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 |