| 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/arm64/macro-assembler-arm64.h" | 7 #include "src/arm64/macro-assembler-arm64.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 592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 603 i.InputInt6(3)); | 603 i.InputInt6(3)); |
| 604 break; | 604 break; |
| 605 case kArm64TestAndBranch32: | 605 case kArm64TestAndBranch32: |
| 606 case kArm64TestAndBranch: | 606 case kArm64TestAndBranch: |
| 607 // Pseudo instructions turned into tbz/tbnz in AssembleArchBranch. | 607 // Pseudo instructions turned into tbz/tbnz in AssembleArchBranch. |
| 608 break; | 608 break; |
| 609 case kArm64CompareAndBranch32: | 609 case kArm64CompareAndBranch32: |
| 610 // Pseudo instruction turned into cbz/cbnz in AssembleArchBranch. | 610 // Pseudo instruction turned into cbz/cbnz in AssembleArchBranch. |
| 611 break; | 611 break; |
| 612 case kArm64Claim: { | 612 case kArm64Claim: { |
| 613 int words = MiscField::decode(instr->opcode()); | 613 __ Claim(i.InputInt32(0)); |
| 614 __ Claim(words); | |
| 615 break; | 614 break; |
| 616 } | 615 } |
| 617 case kArm64Poke: { | 616 case kArm64Poke: { |
| 618 int slot = MiscField::decode(instr->opcode()); | 617 Operand operand(i.InputInt32(1) * kPointerSize); |
| 619 Operand operand(slot * kPointerSize); | |
| 620 __ Poke(i.InputRegister(0), operand); | 618 __ Poke(i.InputRegister(0), operand); |
| 621 break; | 619 break; |
| 622 } | 620 } |
| 623 case kArm64PokePairZero: { | |
| 624 // TODO(dcarney): test slot offset and register order. | |
| 625 int slot = MiscField::decode(instr->opcode()) - 1; | |
| 626 __ PokePair(i.InputRegister(0), xzr, slot * kPointerSize); | |
| 627 break; | |
| 628 } | |
| 629 case kArm64PokePair: { | 621 case kArm64PokePair: { |
| 630 int slot = MiscField::decode(instr->opcode()) - 1; | 622 int slot = i.InputInt32(2) - 1; |
| 631 __ PokePair(i.InputRegister(1), i.InputRegister(0), slot * kPointerSize); | 623 __ PokePair(i.InputRegister(1), i.InputRegister(0), slot * kPointerSize); |
| 632 break; | 624 break; |
| 633 } | 625 } |
| 634 case kArm64Clz32: | 626 case kArm64Clz32: |
| 635 __ Clz(i.OutputRegister32(), i.InputRegister32(0)); | 627 __ Clz(i.OutputRegister32(), i.InputRegister32(0)); |
| 636 break; | 628 break; |
| 637 case kArm64Cmp: | 629 case kArm64Cmp: |
| 638 __ Cmp(i.InputRegister(0), i.InputOperand(1)); | 630 __ Cmp(i.InputRegister(0), i.InputOperand(1)); |
| 639 break; | 631 break; |
| 640 case kArm64Cmp32: | 632 case kArm64Cmp32: |
| (...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1219 } | 1211 } |
| 1220 } | 1212 } |
| 1221 MarkLazyDeoptSite(); | 1213 MarkLazyDeoptSite(); |
| 1222 } | 1214 } |
| 1223 | 1215 |
| 1224 #undef __ | 1216 #undef __ |
| 1225 | 1217 |
| 1226 } // namespace compiler | 1218 } // namespace compiler |
| 1227 } // namespace internal | 1219 } // namespace internal |
| 1228 } // namespace v8 | 1220 } // namespace v8 |
| OLD | NEW |