| 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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 case kMode_None: | 64 case kMode_None: |
| 65 return InputOperand32(index); | 65 return InputOperand32(index); |
| 66 case kMode_Operand2_R_LSL_I: | 66 case kMode_Operand2_R_LSL_I: |
| 67 return Operand(InputRegister32(index), LSL, InputInt5(index + 1)); | 67 return Operand(InputRegister32(index), LSL, InputInt5(index + 1)); |
| 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: |
| 75 return Operand(InputRegister32(index), UXTB); |
| 76 case kMode_Operand2_R_UXTH: |
| 77 return Operand(InputRegister32(index), UXTH); |
| 74 case kMode_MRI: | 78 case kMode_MRI: |
| 75 case kMode_MRR: | 79 case kMode_MRR: |
| 76 break; | 80 break; |
| 77 } | 81 } |
| 78 UNREACHABLE(); | 82 UNREACHABLE(); |
| 79 return Operand(-1); | 83 return Operand(-1); |
| 80 } | 84 } |
| 81 | 85 |
| 82 Operand InputOperand2_64(size_t index) { | 86 Operand InputOperand2_64(size_t index) { |
| 83 switch (AddressingModeField::decode(instr_->opcode())) { | 87 switch (AddressingModeField::decode(instr_->opcode())) { |
| 84 case kMode_None: | 88 case kMode_None: |
| 85 return InputOperand64(index); | 89 return InputOperand64(index); |
| 86 case kMode_Operand2_R_LSL_I: | 90 case kMode_Operand2_R_LSL_I: |
| 87 return Operand(InputRegister64(index), LSL, InputInt6(index + 1)); | 91 return Operand(InputRegister64(index), LSL, InputInt6(index + 1)); |
| 88 case kMode_Operand2_R_LSR_I: | 92 case kMode_Operand2_R_LSR_I: |
| 89 return Operand(InputRegister64(index), LSR, InputInt6(index + 1)); | 93 return Operand(InputRegister64(index), LSR, InputInt6(index + 1)); |
| 90 case kMode_Operand2_R_ASR_I: | 94 case kMode_Operand2_R_ASR_I: |
| 91 return Operand(InputRegister64(index), ASR, InputInt6(index + 1)); | 95 return Operand(InputRegister64(index), ASR, InputInt6(index + 1)); |
| 92 case kMode_Operand2_R_ROR_I: | 96 case kMode_Operand2_R_ROR_I: |
| 93 return Operand(InputRegister64(index), ROR, InputInt6(index + 1)); | 97 return Operand(InputRegister64(index), ROR, InputInt6(index + 1)); |
| 98 case kMode_Operand2_R_UXTB: |
| 99 return Operand(InputRegister64(index), UXTB); |
| 100 case kMode_Operand2_R_UXTH: |
| 101 return Operand(InputRegister64(index), UXTH); |
| 94 case kMode_MRI: | 102 case kMode_MRI: |
| 95 case kMode_MRR: | 103 case kMode_MRR: |
| 96 break; | 104 break; |
| 97 } | 105 } |
| 98 UNREACHABLE(); | 106 UNREACHABLE(); |
| 99 return Operand(-1); | 107 return Operand(-1); |
| 100 } | 108 } |
| 101 | 109 |
| 102 MemOperand MemoryOperand(size_t* first_index) { | 110 MemOperand MemoryOperand(size_t* first_index) { |
| 103 const size_t index = *first_index; | 111 const size_t index = *first_index; |
| 104 switch (AddressingModeField::decode(instr_->opcode())) { | 112 switch (AddressingModeField::decode(instr_->opcode())) { |
| 105 case kMode_None: | 113 case kMode_None: |
| 106 case kMode_Operand2_R_LSL_I: | 114 case kMode_Operand2_R_LSL_I: |
| 107 case kMode_Operand2_R_LSR_I: | 115 case kMode_Operand2_R_LSR_I: |
| 108 case kMode_Operand2_R_ASR_I: | 116 case kMode_Operand2_R_ASR_I: |
| 109 case kMode_Operand2_R_ROR_I: | 117 case kMode_Operand2_R_ROR_I: |
| 118 case kMode_Operand2_R_UXTB: |
| 119 case kMode_Operand2_R_UXTH: |
| 110 break; | 120 break; |
| 111 case kMode_MRI: | 121 case kMode_MRI: |
| 112 *first_index += 2; | 122 *first_index += 2; |
| 113 return MemOperand(InputRegister(index + 0), InputInt32(index + 1)); | 123 return MemOperand(InputRegister(index + 0), InputInt32(index + 1)); |
| 114 case kMode_MRR: | 124 case kMode_MRR: |
| 115 *first_index += 2; | 125 *first_index += 2; |
| 116 return MemOperand(InputRegister(index + 0), InputRegister(index + 1)); | 126 return MemOperand(InputRegister(index + 0), InputRegister(index + 1)); |
| 117 } | 127 } |
| 118 UNREACHABLE(); | 128 UNREACHABLE(); |
| 119 return MemOperand(no_reg); | 129 return MemOperand(no_reg); |
| (...skipping 1076 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1196 } | 1206 } |
| 1197 } | 1207 } |
| 1198 MarkLazyDeoptSite(); | 1208 MarkLazyDeoptSite(); |
| 1199 } | 1209 } |
| 1200 | 1210 |
| 1201 #undef __ | 1211 #undef __ |
| 1202 | 1212 |
| 1203 } // namespace compiler | 1213 } // namespace compiler |
| 1204 } // namespace internal | 1214 } // namespace internal |
| 1205 } // namespace v8 | 1215 } // namespace v8 |
| OLD | NEW |