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

Side by Side Diff: src/arm/constants-arm.h

Issue 682643002: Add vrint{a,n,p,m,z} instructions to arm assembler. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressing more comments. Created 6 years, 1 month 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
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 #ifndef V8_ARM_CONSTANTS_ARM_H_ 5 #ifndef V8_ARM_CONSTANTS_ARM_H_
6 #define V8_ARM_CONSTANTS_ARM_H_ 6 #define V8_ARM_CONSTANTS_ARM_H_
7 7
8 // ARM EABI is required. 8 // ARM EABI is required.
9 #if defined(__arm__) && !defined(__ARM_EABI__) 9 #if defined(__arm__) && !defined(__ARM_EABI__)
10 #error ARM EABI support is required. 10 #error ARM EABI support is required.
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 BLX = 3 << 4, 154 BLX = 3 << 4,
155 BKPT = 7 << 4, 155 BKPT = 7 << 4,
156 156
157 // With bits 22-21 11. 157 // With bits 22-21 11.
158 CLZ = 1 << 4 158 CLZ = 1 << 4
159 }; 159 };
160 160
161 161
162 // Instruction encoding bits and masks. 162 // Instruction encoding bits and masks.
163 enum { 163 enum {
164 H = 1 << 5, // Halfword (or byte). 164 H = 1 << 5, // Halfword (or byte).
165 S6 = 1 << 6, // Signed (or unsigned). 165 S6 = 1 << 6, // Signed (or unsigned).
166 L = 1 << 20, // Load (or store). 166 L = 1 << 20, // Load (or store).
167 S = 1 << 20, // Set condition code (or leave unchanged). 167 S = 1 << 20, // Set condition code (or leave unchanged).
168 W = 1 << 21, // Writeback base register (or leave unchanged). 168 W = 1 << 21, // Writeback base register (or leave unchanged).
169 A = 1 << 21, // Accumulate in multiply instruction (or not). 169 A = 1 << 21, // Accumulate in multiply instruction (or not).
170 B = 1 << 22, // Unsigned byte (or word). 170 B = 1 << 22, // Unsigned byte (or word).
171 N = 1 << 22, // Long (or short). 171 N = 1 << 22, // Long (or short).
172 U = 1 << 23, // Positive (or negative) offset/index. 172 U = 1 << 23, // Positive (or negative) offset/index.
173 P = 1 << 24, // Offset/pre-indexed addressing (or post-indexed addressing). 173 P = 1 << 24, // Offset/pre-indexed addressing (or post-indexed addressing).
174 I = 1 << 25, // Immediate shifter operand (or not). 174 I = 1 << 25, // Immediate shifter operand (or not).
175 175 B4 = 1 << 4,
176 B4 = 1 << 4, 176 B5 = 1 << 5,
177 B5 = 1 << 5, 177 B6 = 1 << 6,
178 B6 = 1 << 6, 178 B7 = 1 << 7,
179 B7 = 1 << 7, 179 B8 = 1 << 8,
180 B8 = 1 << 8, 180 B9 = 1 << 9,
181 B9 = 1 << 9,
182 B12 = 1 << 12, 181 B12 = 1 << 12,
183 B16 = 1 << 16, 182 B16 = 1 << 16,
183 B17 = 1 << 17,
184 B18 = 1 << 18, 184 B18 = 1 << 18,
185 B19 = 1 << 19, 185 B19 = 1 << 19,
186 B20 = 1 << 20, 186 B20 = 1 << 20,
187 B21 = 1 << 21, 187 B21 = 1 << 21,
188 B22 = 1 << 22, 188 B22 = 1 << 22,
189 B23 = 1 << 23, 189 B23 = 1 << 23,
190 B24 = 1 << 24, 190 B24 = 1 << 24,
191 B25 = 1 << 25, 191 B25 = 1 << 25,
192 B26 = 1 << 26, 192 B26 = 1 << 26,
193 B27 = 1 << 27, 193 B27 = 1 << 27,
194 B28 = 1 << 28, 194 B28 = 1 << 28,
195 195
196 // Instruction bit masks. 196 // Instruction bit masks.
197 kCondMask = 15 << 28, 197 kCondMask = 15 << 28,
198 kALUMask = 0x6f << 21, 198 kALUMask = 0x6f << 21,
199 kRdMask = 15 << 12, // In str instruction. 199 kRdMask = 15 << 12, // In str instruction.
200 kCoprocessorMask = 15 << 8, 200 kCoprocessorMask = 15 << 8,
201 kOpCodeMask = 15 << 21, // In data-processing instructions. 201 kOpCodeMask = 15 << 21, // In data-processing instructions.
202 kImm24Mask = (1 << 24) - 1, 202 kImm24Mask = (1 << 24) - 1,
203 kImm16Mask = (1 << 16) - 1, 203 kImm16Mask = (1 << 16) - 1,
204 kImm8Mask = (1 << 8) - 1, 204 kImm8Mask = (1 << 8) - 1,
205 kOff12Mask = (1 << 12) - 1, 205 kOff12Mask = (1 << 12) - 1,
206 kOff8Mask = (1 << 8) - 1 206 kOff8Mask = (1 << 8) - 1
207 }; 207 };
208 208
209 209
210 // ----------------------------------------------------------------------------- 210 // -----------------------------------------------------------------------------
211 // Addressing modes and instruction variants. 211 // Addressing modes and instruction variants.
212 212
213 // Condition code updating mode. 213 // Condition code updating mode.
214 enum SBit { 214 enum SBit {
215 SetCC = 1 << 20, // Set condition code. 215 SetCC = 1 << 20, // Set condition code.
216 LeaveCC = 0 << 20 // Leave condition code unchanged. 216 LeaveCC = 0 << 20 // Leave condition code unchanged.
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 static int Number(const char* name, bool* is_double); 686 static int Number(const char* name, bool* is_double);
687 687
688 private: 688 private:
689 static const char* names_[kNumVFPRegisters]; 689 static const char* names_[kNumVFPRegisters];
690 }; 690 };
691 691
692 692
693 } } // namespace v8::internal 693 } } // namespace v8::internal
694 694
695 #endif // V8_ARM_CONSTANTS_ARM_H_ 695 #endif // V8_ARM_CONSTANTS_ARM_H_
OLDNEW
« no previous file with comments | « src/arm/assembler-arm.cc ('k') | src/arm/disasm-arm.cc » ('j') | src/arm/simulator-arm.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698