| 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 1156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1167 MemOperand dst = g.ToMemOperand(destination); | 1167 MemOperand dst = g.ToMemOperand(destination); |
| 1168 __ Move(temp, src); | 1168 __ Move(temp, src); |
| 1169 __ ldc1(src, dst); | 1169 __ ldc1(src, dst); |
| 1170 __ sdc1(temp, dst); | 1170 __ sdc1(temp, dst); |
| 1171 } | 1171 } |
| 1172 } else if (source->IsDoubleStackSlot()) { | 1172 } else if (source->IsDoubleStackSlot()) { |
| 1173 DCHECK(destination->IsDoubleStackSlot()); | 1173 DCHECK(destination->IsDoubleStackSlot()); |
| 1174 Register temp_0 = kScratchReg; | 1174 Register temp_0 = kScratchReg; |
| 1175 FPURegister temp_1 = kScratchDoubleReg; | 1175 FPURegister temp_1 = kScratchDoubleReg; |
| 1176 MemOperand src0 = g.ToMemOperand(source); | 1176 MemOperand src0 = g.ToMemOperand(source); |
| 1177 MemOperand src1(src0.rm(), src0.offset() + kPointerSize); | 1177 MemOperand src1(src0.rm(), src0.offset() + kIntSize); |
| 1178 MemOperand dst0 = g.ToMemOperand(destination); | 1178 MemOperand dst0 = g.ToMemOperand(destination); |
| 1179 MemOperand dst1(dst0.rm(), dst0.offset() + kPointerSize); | 1179 MemOperand dst1(dst0.rm(), dst0.offset() + kIntSize); |
| 1180 __ ldc1(temp_1, dst0); // Save destination in temp_1. | 1180 __ ldc1(temp_1, dst0); // Save destination in temp_1. |
| 1181 __ lw(temp_0, src0); // Then use temp_0 to copy source to destination. | 1181 __ lw(temp_0, src0); // Then use temp_0 to copy source to destination. |
| 1182 __ sw(temp_0, dst0); | 1182 __ sw(temp_0, dst0); |
| 1183 __ lw(temp_0, src1); | 1183 __ lw(temp_0, src1); |
| 1184 __ sw(temp_0, dst1); | 1184 __ sw(temp_0, dst1); |
| 1185 __ sdc1(temp_1, src0); | 1185 __ sdc1(temp_1, src0); |
| 1186 } else { | 1186 } else { |
| 1187 // No other combinations are possible. | 1187 // No other combinations are possible. |
| 1188 UNREACHABLE(); | 1188 UNREACHABLE(); |
| 1189 } | 1189 } |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1222 } | 1222 } |
| 1223 } | 1223 } |
| 1224 MarkLazyDeoptSite(); | 1224 MarkLazyDeoptSite(); |
| 1225 } | 1225 } |
| 1226 | 1226 |
| 1227 #undef __ | 1227 #undef __ |
| 1228 | 1228 |
| 1229 } // namespace compiler | 1229 } // namespace compiler |
| 1230 } // namespace internal | 1230 } // namespace internal |
| 1231 } // namespace v8 | 1231 } // namespace v8 |
| OLD | NEW |