Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(201)

Side by Side Diff: src/compiler/arm/code-generator-arm.cc

Issue 434553002: [arm] Add support for ROR. Refactor operand2 handling. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/compiler/arm/instruction-codes-arm.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « no previous file | src/compiler/arm/instruction-codes-arm.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698