| 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 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 case kMode_Operand2_R_LSR_I: | 68 case kMode_Operand2_R_LSR_I: |
| 69 return Operand(InputRegister32(index), LSR, InputInt5(index + 1)); | 69 return Operand(InputRegister32(index), LSR, InputInt5(index + 1)); |
| 70 case kMode_Operand2_R_ASR_I: | 70 case kMode_Operand2_R_ASR_I: |
| 71 return Operand(InputRegister32(index), ASR, InputInt5(index + 1)); | 71 return Operand(InputRegister32(index), ASR, InputInt5(index + 1)); |
| 72 case kMode_Operand2_R_ROR_I: | 72 case kMode_Operand2_R_ROR_I: |
| 73 return Operand(InputRegister32(index), ROR, InputInt5(index + 1)); | 73 return Operand(InputRegister32(index), ROR, InputInt5(index + 1)); |
| 74 case kMode_Operand2_R_UXTB: | 74 case kMode_Operand2_R_UXTB: |
| 75 return Operand(InputRegister32(index), UXTB); | 75 return Operand(InputRegister32(index), UXTB); |
| 76 case kMode_Operand2_R_UXTH: | 76 case kMode_Operand2_R_UXTH: |
| 77 return Operand(InputRegister32(index), UXTH); | 77 return Operand(InputRegister32(index), UXTH); |
| 78 case kMode_Operand2_R_SXTB: |
| 79 return Operand(InputRegister32(index), SXTB); |
| 80 case kMode_Operand2_R_SXTH: |
| 81 return Operand(InputRegister32(index), SXTH); |
| 78 case kMode_MRI: | 82 case kMode_MRI: |
| 79 case kMode_MRR: | 83 case kMode_MRR: |
| 80 break; | 84 break; |
| 81 } | 85 } |
| 82 UNREACHABLE(); | 86 UNREACHABLE(); |
| 83 return Operand(-1); | 87 return Operand(-1); |
| 84 } | 88 } |
| 85 | 89 |
| 86 Operand InputOperand2_64(size_t index) { | 90 Operand InputOperand2_64(size_t index) { |
| 87 switch (AddressingModeField::decode(instr_->opcode())) { | 91 switch (AddressingModeField::decode(instr_->opcode())) { |
| 88 case kMode_None: | 92 case kMode_None: |
| 89 return InputOperand64(index); | 93 return InputOperand64(index); |
| 90 case kMode_Operand2_R_LSL_I: | 94 case kMode_Operand2_R_LSL_I: |
| 91 return Operand(InputRegister64(index), LSL, InputInt6(index + 1)); | 95 return Operand(InputRegister64(index), LSL, InputInt6(index + 1)); |
| 92 case kMode_Operand2_R_LSR_I: | 96 case kMode_Operand2_R_LSR_I: |
| 93 return Operand(InputRegister64(index), LSR, InputInt6(index + 1)); | 97 return Operand(InputRegister64(index), LSR, InputInt6(index + 1)); |
| 94 case kMode_Operand2_R_ASR_I: | 98 case kMode_Operand2_R_ASR_I: |
| 95 return Operand(InputRegister64(index), ASR, InputInt6(index + 1)); | 99 return Operand(InputRegister64(index), ASR, InputInt6(index + 1)); |
| 96 case kMode_Operand2_R_ROR_I: | 100 case kMode_Operand2_R_ROR_I: |
| 97 return Operand(InputRegister64(index), ROR, InputInt6(index + 1)); | 101 return Operand(InputRegister64(index), ROR, InputInt6(index + 1)); |
| 98 case kMode_Operand2_R_UXTB: | 102 case kMode_Operand2_R_UXTB: |
| 99 return Operand(InputRegister64(index), UXTB); | 103 return Operand(InputRegister64(index), UXTB); |
| 100 case kMode_Operand2_R_UXTH: | 104 case kMode_Operand2_R_UXTH: |
| 101 return Operand(InputRegister64(index), UXTH); | 105 return Operand(InputRegister64(index), UXTH); |
| 106 case kMode_Operand2_R_SXTB: |
| 107 return Operand(InputRegister64(index), SXTB); |
| 108 case kMode_Operand2_R_SXTH: |
| 109 return Operand(InputRegister64(index), SXTH); |
| 102 case kMode_MRI: | 110 case kMode_MRI: |
| 103 case kMode_MRR: | 111 case kMode_MRR: |
| 104 break; | 112 break; |
| 105 } | 113 } |
| 106 UNREACHABLE(); | 114 UNREACHABLE(); |
| 107 return Operand(-1); | 115 return Operand(-1); |
| 108 } | 116 } |
| 109 | 117 |
| 110 MemOperand MemoryOperand(size_t* first_index) { | 118 MemOperand MemoryOperand(size_t* first_index) { |
| 111 const size_t index = *first_index; | 119 const size_t index = *first_index; |
| 112 switch (AddressingModeField::decode(instr_->opcode())) { | 120 switch (AddressingModeField::decode(instr_->opcode())) { |
| 113 case kMode_None: | 121 case kMode_None: |
| 114 case kMode_Operand2_R_LSL_I: | 122 case kMode_Operand2_R_LSL_I: |
| 115 case kMode_Operand2_R_LSR_I: | 123 case kMode_Operand2_R_LSR_I: |
| 116 case kMode_Operand2_R_ASR_I: | 124 case kMode_Operand2_R_ASR_I: |
| 117 case kMode_Operand2_R_ROR_I: | 125 case kMode_Operand2_R_ROR_I: |
| 118 case kMode_Operand2_R_UXTB: | 126 case kMode_Operand2_R_UXTB: |
| 119 case kMode_Operand2_R_UXTH: | 127 case kMode_Operand2_R_UXTH: |
| 128 case kMode_Operand2_R_SXTB: |
| 129 case kMode_Operand2_R_SXTH: |
| 120 break; | 130 break; |
| 121 case kMode_MRI: | 131 case kMode_MRI: |
| 122 *first_index += 2; | 132 *first_index += 2; |
| 123 return MemOperand(InputRegister(index + 0), InputInt32(index + 1)); | 133 return MemOperand(InputRegister(index + 0), InputInt32(index + 1)); |
| 124 case kMode_MRR: | 134 case kMode_MRR: |
| 125 *first_index += 2; | 135 *first_index += 2; |
| 126 return MemOperand(InputRegister(index + 0), InputRegister(index + 1)); | 136 return MemOperand(InputRegister(index + 0), InputRegister(index + 1)); |
| 127 } | 137 } |
| 128 UNREACHABLE(); | 138 UNREACHABLE(); |
| 129 return MemOperand(no_reg); | 139 return MemOperand(no_reg); |
| (...skipping 1121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1251 } | 1261 } |
| 1252 } | 1262 } |
| 1253 MarkLazyDeoptSite(); | 1263 MarkLazyDeoptSite(); |
| 1254 } | 1264 } |
| 1255 | 1265 |
| 1256 #undef __ | 1266 #undef __ |
| 1257 | 1267 |
| 1258 } // namespace compiler | 1268 } // namespace compiler |
| 1259 } // namespace internal | 1269 } // namespace internal |
| 1260 } // namespace v8 | 1270 } // namespace v8 |
| OLD | NEW |