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 | 6 |
7 #include "src/ast/scopes.h" | 7 #include "src/ast/scopes.h" |
8 #include "src/compiler/code-generator-impl.h" | 8 #include "src/compiler/code-generator-impl.h" |
9 #include "src/compiler/gap-resolver.h" | 9 #include "src/compiler/gap-resolver.h" |
10 #include "src/compiler/node-matchers.h" | 10 #include "src/compiler/node-matchers.h" |
(...skipping 1303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1314 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); | 1314 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); |
1315 } else { | 1315 } else { |
1316 __ Push(i.InputRegister(0)); | 1316 __ Push(i.InputRegister(0)); |
1317 frame_access_state()->IncreaseSPDelta(1); | 1317 frame_access_state()->IncreaseSPDelta(1); |
1318 } | 1318 } |
1319 DCHECK_EQ(LeaveRC, i.OutputRCBit()); | 1319 DCHECK_EQ(LeaveRC, i.OutputRCBit()); |
1320 break; | 1320 break; |
1321 case kPPC_PushFrame: { | 1321 case kPPC_PushFrame: { |
1322 int num_slots = i.InputInt32(1); | 1322 int num_slots = i.InputInt32(1); |
1323 if (instr->InputAt(0)->IsDoubleRegister()) { | 1323 if (instr->InputAt(0)->IsDoubleRegister()) { |
1324 __ stfdu(i.InputDoubleRegister(0), | 1324 __ StoreDoubleU(i.InputDoubleRegister(0), |
1325 MemOperand(sp, -num_slots * kPointerSize)); | 1325 MemOperand(sp, -num_slots * kPointerSize), r0); |
1326 } else { | 1326 } else { |
1327 __ StorePU(i.InputRegister(0), | 1327 __ StorePU(i.InputRegister(0), |
1328 MemOperand(sp, -num_slots * kPointerSize), r0); | 1328 MemOperand(sp, -num_slots * kPointerSize), r0); |
1329 } | 1329 } |
1330 break; | 1330 break; |
1331 } | 1331 } |
1332 case kPPC_StoreToStackSlot: { | 1332 case kPPC_StoreToStackSlot: { |
1333 int slot = i.InputInt32(1); | 1333 int slot = i.InputInt32(1); |
1334 if (instr->InputAt(0)->IsDoubleRegister()) { | 1334 if (instr->InputAt(0)->IsDoubleRegister()) { |
1335 __ stfd(i.InputDoubleRegister(0), MemOperand(sp, slot * kPointerSize)); | 1335 __ StoreDouble(i.InputDoubleRegister(0), |
| 1336 MemOperand(sp, slot * kPointerSize), r0); |
1336 } else { | 1337 } else { |
1337 __ StoreP(i.InputRegister(0), MemOperand(sp, slot * kPointerSize), r0); | 1338 __ StoreP(i.InputRegister(0), MemOperand(sp, slot * kPointerSize), r0); |
1338 } | 1339 } |
1339 break; | 1340 break; |
1340 } | 1341 } |
1341 case kPPC_ExtendSignWord8: | 1342 case kPPC_ExtendSignWord8: |
1342 __ extsb(i.OutputRegister(), i.InputRegister(0)); | 1343 __ extsb(i.OutputRegister(), i.InputRegister(0)); |
1343 DCHECK_EQ(LeaveRC, i.OutputRCBit()); | 1344 DCHECK_EQ(LeaveRC, i.OutputRCBit()); |
1344 break; | 1345 break; |
1345 case kPPC_ExtendSignWord16: | 1346 case kPPC_ExtendSignWord16: |
(...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2110 padding_size -= v8::internal::Assembler::kInstrSize; | 2111 padding_size -= v8::internal::Assembler::kInstrSize; |
2111 } | 2112 } |
2112 } | 2113 } |
2113 } | 2114 } |
2114 | 2115 |
2115 #undef __ | 2116 #undef __ |
2116 | 2117 |
2117 } // namespace compiler | 2118 } // namespace compiler |
2118 } // namespace internal | 2119 } // namespace internal |
2119 } // namespace v8 | 2120 } // namespace v8 |
OLD | NEW |