| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/compiler/code-generator.h" | 5 #include "src/compiler/code-generator.h" |
| 6 #include "src/compiler/code-generator-impl.h" | 6 #include "src/compiler/code-generator-impl.h" |
| 7 #include "src/compiler/gap-resolver.h" | 7 #include "src/compiler/gap-resolver.h" |
| 8 #include "src/compiler/node-matchers.h" | 8 #include "src/compiler/node-matchers.h" |
| 9 #include "src/mips/macro-assembler-mips.h" | 9 #include "src/mips/macro-assembler-mips.h" |
| 10 #include "src/scopes.h" | 10 #include "src/scopes.h" |
| (...skipping 1222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1233 MemOperand dst = g.ToMemOperand(destination); | 1233 MemOperand dst = g.ToMemOperand(destination); |
| 1234 __ Move(temp, src); | 1234 __ Move(temp, src); |
| 1235 __ ldc1(src, dst); | 1235 __ ldc1(src, dst); |
| 1236 __ sdc1(temp, dst); | 1236 __ sdc1(temp, dst); |
| 1237 } | 1237 } |
| 1238 } else if (source->IsDoubleStackSlot()) { | 1238 } else if (source->IsDoubleStackSlot()) { |
| 1239 DCHECK(destination->IsDoubleStackSlot()); | 1239 DCHECK(destination->IsDoubleStackSlot()); |
| 1240 Register temp_0 = kScratchReg; | 1240 Register temp_0 = kScratchReg; |
| 1241 FPURegister temp_1 = kScratchDoubleReg; | 1241 FPURegister temp_1 = kScratchDoubleReg; |
| 1242 MemOperand src0 = g.ToMemOperand(source); | 1242 MemOperand src0 = g.ToMemOperand(source); |
| 1243 MemOperand src1(src0.rm(), src0.offset() + kPointerSize); | 1243 MemOperand src1(src0.rm(), src0.offset() + kIntSize); |
| 1244 MemOperand dst0 = g.ToMemOperand(destination); | 1244 MemOperand dst0 = g.ToMemOperand(destination); |
| 1245 MemOperand dst1(dst0.rm(), dst0.offset() + kPointerSize); | 1245 MemOperand dst1(dst0.rm(), dst0.offset() + kIntSize); |
| 1246 __ ldc1(temp_1, dst0); // Save destination in temp_1. | 1246 __ ldc1(temp_1, dst0); // Save destination in temp_1. |
| 1247 __ lw(temp_0, src0); // Then use temp_0 to copy source to destination. | 1247 __ lw(temp_0, src0); // Then use temp_0 to copy source to destination. |
| 1248 __ sw(temp_0, dst0); | 1248 __ sw(temp_0, dst0); |
| 1249 __ lw(temp_0, src1); | 1249 __ lw(temp_0, src1); |
| 1250 __ sw(temp_0, dst1); | 1250 __ sw(temp_0, dst1); |
| 1251 __ sdc1(temp_1, src0); | 1251 __ sdc1(temp_1, src0); |
| 1252 } else { | 1252 } else { |
| 1253 // No other combinations are possible. | 1253 // No other combinations are possible. |
| 1254 UNREACHABLE(); | 1254 UNREACHABLE(); |
| 1255 } | 1255 } |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1288 } | 1288 } |
| 1289 } | 1289 } |
| 1290 MarkLazyDeoptSite(); | 1290 MarkLazyDeoptSite(); |
| 1291 } | 1291 } |
| 1292 | 1292 |
| 1293 #undef __ | 1293 #undef __ |
| 1294 | 1294 |
| 1295 } // namespace compiler | 1295 } // namespace compiler |
| 1296 } // namespace internal | 1296 } // namespace internal |
| 1297 } // namespace v8 | 1297 } // namespace v8 |
| OLD | NEW |