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

Side by Side Diff: runtime/vm/constants_x64.h

Issue 2974233002: VM: Re-format to use at most one newline between functions (Closed)
Patch Set: Rebase and merge Created 3 years, 5 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
« no previous file with comments | « runtime/vm/constants_ia32.h ('k') | runtime/vm/cpu.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 (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef RUNTIME_VM_CONSTANTS_X64_H_ 5 #ifndef RUNTIME_VM_CONSTANTS_X64_H_
6 #define RUNTIME_VM_CONSTANTS_X64_H_ 6 #define RUNTIME_VM_CONSTANTS_X64_H_
7 7
8 namespace dart { 8 namespace dart {
9 9
10 enum Register { 10 enum Register {
(...skipping 10 matching lines...) Expand all
21 R10 = 10, 21 R10 = 10,
22 R11 = 11, 22 R11 = 11,
23 R12 = 12, 23 R12 = 12,
24 R13 = 13, 24 R13 = 13,
25 R14 = 14, 25 R14 = 14,
26 R15 = 15, 26 R15 = 15,
27 kNumberOfCpuRegisters = 16, 27 kNumberOfCpuRegisters = 16,
28 kNoRegister = -1, // Signals an illegal register. 28 kNoRegister = -1, // Signals an illegal register.
29 }; 29 };
30 30
31
32 enum ByteRegister { 31 enum ByteRegister {
33 AL = 0, 32 AL = 0,
34 CL = 1, 33 CL = 1,
35 DL = 2, 34 DL = 2,
36 BL = 3, 35 BL = 3,
37 AH = 4, 36 AH = 4,
38 CH = 5, 37 CH = 5,
39 DH = 6, 38 DH = 6,
40 BH = 7, 39 BH = 7,
41 kNoByteRegister = -1 // Signals an illegal register. 40 kNoByteRegister = -1 // Signals an illegal register.
42 }; 41 };
43 42
44
45 enum XmmRegister { 43 enum XmmRegister {
46 XMM0 = 0, 44 XMM0 = 0,
47 XMM1 = 1, 45 XMM1 = 1,
48 XMM2 = 2, 46 XMM2 = 2,
49 XMM3 = 3, 47 XMM3 = 3,
50 XMM4 = 4, 48 XMM4 = 4,
51 XMM5 = 5, 49 XMM5 = 5,
52 XMM6 = 6, 50 XMM6 = 6,
53 XMM7 = 7, 51 XMM7 = 7,
54 XMM8 = 8, 52 XMM8 = 8,
55 XMM9 = 9, 53 XMM9 = 9,
56 XMM10 = 10, 54 XMM10 = 10,
57 XMM11 = 11, 55 XMM11 = 11,
58 XMM12 = 12, 56 XMM12 = 12,
59 XMM13 = 13, 57 XMM13 = 13,
60 XMM14 = 14, 58 XMM14 = 14,
61 XMM15 = 15, 59 XMM15 = 15,
62 kNumberOfXmmRegisters = 16, 60 kNumberOfXmmRegisters = 16,
63 kNoXmmRegister = -1 // Signals an illegal register. 61 kNoXmmRegister = -1 // Signals an illegal register.
64 }; 62 };
65 63
66
67 // Architecture independent aliases. 64 // Architecture independent aliases.
68 typedef XmmRegister FpuRegister; 65 typedef XmmRegister FpuRegister;
69 const FpuRegister FpuTMP = XMM0; 66 const FpuRegister FpuTMP = XMM0;
70 const int kNumberOfFpuRegisters = kNumberOfXmmRegisters; 67 const int kNumberOfFpuRegisters = kNumberOfXmmRegisters;
71 const FpuRegister kNoFpuRegister = kNoXmmRegister; 68 const FpuRegister kNoFpuRegister = kNoXmmRegister;
72 69
73
74 enum RexBits { 70 enum RexBits {
75 REX_NONE = 0, 71 REX_NONE = 0,
76 REX_B = 1 << 0, 72 REX_B = 1 << 0,
77 REX_X = 1 << 1, 73 REX_X = 1 << 1,
78 REX_R = 1 << 2, 74 REX_R = 1 << 2,
79 REX_W = 1 << 3, 75 REX_W = 1 << 3,
80 REX_PREFIX = 1 << 6 76 REX_PREFIX = 1 << 6
81 }; 77 };
82 78
83
84 // Register aliases. 79 // Register aliases.
85 const Register TMP = R11; // Used as scratch register by the assembler. 80 const Register TMP = R11; // Used as scratch register by the assembler.
86 const Register TMP2 = kNoRegister; // No second assembler scratch register. 81 const Register TMP2 = kNoRegister; // No second assembler scratch register.
87 const Register CTX = R12; // Location of current context at method entry. 82 const Register CTX = R12; // Location of current context at method entry.
88 // Caches object pool pointer in generated code. 83 // Caches object pool pointer in generated code.
89 const Register PP = R15; 84 const Register PP = R15;
90 const Register SPREG = RSP; // Stack pointer register. 85 const Register SPREG = RSP; // Stack pointer register.
91 const Register FPREG = RBP; // Frame pointer register. 86 const Register FPREG = RBP; // Frame pointer register.
92 const Register ICREG = RBX; // IC data register. 87 const Register ICREG = RBX; // IC data register.
93 const Register ARGS_DESC_REG = R10; // Arguments descriptor register. 88 const Register ARGS_DESC_REG = R10; // Arguments descriptor register.
94 const Register CODE_REG = R12; 89 const Register CODE_REG = R12;
95 const Register THR = R14; // Caches current thread in generated code. 90 const Register THR = R14; // Caches current thread in generated code.
96 const Register CALLEE_SAVED_TEMP = RBX; 91 const Register CALLEE_SAVED_TEMP = RBX;
97 92
98 // Exception object is passed in this register to the catch handlers when an 93 // Exception object is passed in this register to the catch handlers when an
99 // exception is thrown. 94 // exception is thrown.
100 const Register kExceptionObjectReg = RAX; 95 const Register kExceptionObjectReg = RAX;
101 96
102 // Stack trace object is passed in this register to the catch handlers when 97 // Stack trace object is passed in this register to the catch handlers when
103 // an exception is thrown. 98 // an exception is thrown.
104 const Register kStackTraceObjectReg = RDX; 99 const Register kStackTraceObjectReg = RDX;
105 100
106
107 typedef uint32_t RegList; 101 typedef uint32_t RegList;
108 const RegList kAllCpuRegistersList = 0xFFFF; 102 const RegList kAllCpuRegistersList = 0xFFFF;
109 103
110 const RegList kReservedCpuRegisters = 104 const RegList kReservedCpuRegisters =
111 (1 << SPREG) | (1 << FPREG) | (1 << TMP) | (1 << PP) | (1 << THR); 105 (1 << SPREG) | (1 << FPREG) | (1 << TMP) | (1 << PP) | (1 << THR);
112 // CPU registers available to Dart allocator. 106 // CPU registers available to Dart allocator.
113 const RegList kDartAvailableCpuRegs = 107 const RegList kDartAvailableCpuRegs =
114 kAllCpuRegistersList & ~kReservedCpuRegisters; 108 kAllCpuRegistersList & ~kReservedCpuRegisters;
115 109
116
117 enum ScaleFactor { 110 enum ScaleFactor {
118 TIMES_1 = 0, 111 TIMES_1 = 0,
119 TIMES_2 = 1, 112 TIMES_2 = 1,
120 TIMES_4 = 2, 113 TIMES_4 = 2,
121 TIMES_8 = 3, 114 TIMES_8 = 3,
122 TIMES_16 = 4, 115 TIMES_16 = 4,
123 TIMES_HALF_WORD_SIZE = kWordSizeLog2 - 1 116 TIMES_HALF_WORD_SIZE = kWordSizeLog2 - 1
124 }; 117 };
125 118
126
127 enum Condition { 119 enum Condition {
128 OVERFLOW = 0, 120 OVERFLOW = 0,
129 NO_OVERFLOW = 1, 121 NO_OVERFLOW = 1,
130 BELOW = 2, 122 BELOW = 2,
131 ABOVE_EQUAL = 3, 123 ABOVE_EQUAL = 3,
132 EQUAL = 4, 124 EQUAL = 4,
133 NOT_EQUAL = 5, 125 NOT_EQUAL = 5,
134 BELOW_EQUAL = 6, 126 BELOW_EQUAL = 6,
135 ABOVE = 7, 127 ABOVE = 7,
136 SIGN = 8, 128 SIGN = 8,
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 // to allocate or create instances of class Instr. 218 // to allocate or create instances of class Instr.
227 // Use the At(pc) function to create references to Instr. 219 // Use the At(pc) function to create references to Instr.
228 static Instr* At(uword pc) { return reinterpret_cast<Instr*>(pc); } 220 static Instr* At(uword pc) { return reinterpret_cast<Instr*>(pc); }
229 221
230 private: 222 private:
231 DISALLOW_ALLOCATION(); 223 DISALLOW_ALLOCATION();
232 // We need to prevent the creation of instances of class Instr. 224 // We need to prevent the creation of instances of class Instr.
233 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); 225 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr);
234 }; 226 };
235 227
236
237 // The largest multibyte nop we will emit. This could go up to 15 if it 228 // The largest multibyte nop we will emit. This could go up to 15 if it
238 // becomes important to us. 229 // becomes important to us.
239 const int MAX_NOP_SIZE = 8; 230 const int MAX_NOP_SIZE = 8;
240 231
241 } // namespace dart 232 } // namespace dart
242 233
243 #endif // RUNTIME_VM_CONSTANTS_X64_H_ 234 #endif // RUNTIME_VM_CONSTANTS_X64_H_
OLDNEW
« no previous file with comments | « runtime/vm/constants_ia32.h ('k') | runtime/vm/cpu.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698