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/arm/macro-assembler-arm.h" | 7 #include "src/arm/macro-assembler-arm.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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 case kMode_Operand2_R_ASR_R: | 72 case kMode_Operand2_R_ASR_R: |
73 return Operand(InputRegister(index + 0), ASR, InputRegister(index + 1)); | 73 return Operand(InputRegister(index + 0), ASR, InputRegister(index + 1)); |
74 case kMode_Operand2_R_LSL_I: | 74 case kMode_Operand2_R_LSL_I: |
75 return Operand(InputRegister(index + 0), LSL, InputInt5(index + 1)); | 75 return Operand(InputRegister(index + 0), LSL, InputInt5(index + 1)); |
76 case kMode_Operand2_R_LSL_R: | 76 case kMode_Operand2_R_LSL_R: |
77 return Operand(InputRegister(index + 0), LSL, InputRegister(index + 1)); | 77 return Operand(InputRegister(index + 0), LSL, InputRegister(index + 1)); |
78 case kMode_Operand2_R_LSR_I: | 78 case kMode_Operand2_R_LSR_I: |
79 return Operand(InputRegister(index + 0), LSR, InputInt5(index + 1)); | 79 return Operand(InputRegister(index + 0), LSR, InputInt5(index + 1)); |
80 case kMode_Operand2_R_LSR_R: | 80 case kMode_Operand2_R_LSR_R: |
81 return Operand(InputRegister(index + 0), LSR, InputRegister(index + 1)); | 81 return Operand(InputRegister(index + 0), LSR, InputRegister(index + 1)); |
| 82 case kMode_Operand2_R_ROR_I: |
| 83 return Operand(InputRegister(index + 0), ROR, InputInt5(index + 1)); |
| 84 case kMode_Operand2_R_ROR_R: |
| 85 return Operand(InputRegister(index + 0), ROR, InputRegister(index + 1)); |
82 } | 86 } |
83 UNREACHABLE(); | 87 UNREACHABLE(); |
84 return Operand::Zero(); | 88 return Operand::Zero(); |
85 } | 89 } |
86 | 90 |
87 MemOperand InputOffset(int* first_index) { | 91 MemOperand InputOffset(int* first_index) { |
88 const int index = *first_index; | 92 const int index = *first_index; |
89 switch (AddressingModeField::decode(instr_->opcode())) { | 93 switch (AddressingModeField::decode(instr_->opcode())) { |
90 case kMode_None: | 94 case kMode_None: |
91 case kMode_Operand2_I: | 95 case kMode_Operand2_I: |
92 case kMode_Operand2_R: | 96 case kMode_Operand2_R: |
93 case kMode_Operand2_R_ASR_I: | 97 case kMode_Operand2_R_ASR_I: |
94 case kMode_Operand2_R_ASR_R: | 98 case kMode_Operand2_R_ASR_R: |
95 case kMode_Operand2_R_LSL_I: | 99 case kMode_Operand2_R_LSL_I: |
96 case kMode_Operand2_R_LSL_R: | 100 case kMode_Operand2_R_LSL_R: |
97 case kMode_Operand2_R_LSR_I: | 101 case kMode_Operand2_R_LSR_I: |
98 case kMode_Operand2_R_LSR_R: | 102 case kMode_Operand2_R_LSR_R: |
| 103 case kMode_Operand2_R_ROR_I: |
| 104 case kMode_Operand2_R_ROR_R: |
99 break; | 105 break; |
100 case kMode_Offset_RI: | 106 case kMode_Offset_RI: |
101 *first_index += 2; | 107 *first_index += 2; |
102 return MemOperand(InputRegister(index + 0), InputInt32(index + 1)); | 108 return MemOperand(InputRegister(index + 0), InputInt32(index + 1)); |
103 case kMode_Offset_RR: | 109 case kMode_Offset_RR: |
104 *first_index += 2; | 110 *first_index += 2; |
105 return MemOperand(InputRegister(index + 0), InputRegister(index + 1)); | 111 return MemOperand(InputRegister(index + 0), InputRegister(index + 1)); |
106 } | 112 } |
107 UNREACHABLE(); | 113 UNREACHABLE(); |
108 return MemOperand(r0); | 114 return MemOperand(r0); |
(...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
819 int end_pc) { | 825 int end_pc) { |
820 return false; | 826 return false; |
821 } | 827 } |
822 | 828 |
823 #endif // DEBUG | 829 #endif // DEBUG |
824 | 830 |
825 #undef __ | 831 #undef __ |
826 } | 832 } |
827 } | 833 } |
828 } // namespace v8::internal::compiler | 834 } // namespace v8::internal::compiler |
OLD | NEW |