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 |