OLD | NEW |
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 | 5 |
6 | 6 |
7 #ifndef V8_MIPS_FRAMES_MIPS_H_ | 7 #ifndef V8_MIPS_FRAMES_MIPS_H_ |
8 #define V8_MIPS_FRAMES_MIPS_H_ | 8 #define V8_MIPS_FRAMES_MIPS_H_ |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
11 namespace internal { | 11 namespace internal { |
12 | 12 |
13 // Register lists. | 13 // Register lists. |
14 // Note that the bit values must match those used in actual instruction | 14 // Note that the bit values must match those used in actual instruction |
15 // encoding. | 15 // encoding. |
16 const int kNumRegs = 32; | 16 const int kNumRegs = 32; |
17 | 17 |
18 const RegList kJSCallerSaved = | 18 const RegList kJSCallerSaved = |
19 1 << 2 | // v0 | 19 1 << 2 | // v0 |
20 1 << 3 | // v1 | 20 1 << 3 | // v1 |
21 1 << 4 | // a0 | 21 1 << 4 | // a0 |
22 1 << 5 | // a1 | 22 1 << 5 | // a1 |
23 1 << 6 | // a2 | 23 1 << 6 | // a2 |
24 1 << 7 | // a3 | 24 1 << 7 | // a3 |
25 1 << 8 | // t0 | 25 1 << 8 | // a4 |
26 1 << 9 | // t1 | 26 1 << 9 | // a5 |
27 1 << 10 | // t2 | 27 1 << 10 | // a6 |
28 1 << 11 | // t3 | 28 1 << 11 | // a7 |
29 1 << 12 | // t4 | 29 1 << 12 | // t0 |
30 1 << 13 | // t5 | 30 1 << 13 | // t1 |
31 1 << 14 | // t6 | 31 1 << 14 | // t2 |
32 1 << 15; // t7 | 32 1 << 15; // t3 |
33 | 33 |
34 const int kNumJSCallerSaved = 14; | 34 const int kNumJSCallerSaved = 14; |
35 | 35 |
36 | 36 |
37 // Return the code of the n-th caller-saved register available to JavaScript | 37 // Return the code of the n-th caller-saved register available to JavaScript |
38 // e.g. JSCallerSavedReg(0) returns a0.code() == 4. | 38 // e.g. JSCallerSavedReg(0) returns a0.code() == 4. |
39 int JSCallerSavedCode(int n); | 39 int JSCallerSavedCode(int n); |
40 | 40 |
41 | 41 |
42 // Callee-saved registers preserved when switching from C to JavaScript. | 42 // Callee-saved registers preserved when switching from C to JavaScript. |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 // Map with indexes on stack that corresponds to codes of saved registers. | 91 // Map with indexes on stack that corresponds to codes of saved registers. |
92 const int kSafepointRegisterStackIndexMap[kNumRegs] = { | 92 const int kSafepointRegisterStackIndexMap[kNumRegs] = { |
93 kUndefIndex, // zero_reg | 93 kUndefIndex, // zero_reg |
94 kUndefIndex, // at | 94 kUndefIndex, // at |
95 0, // v0 | 95 0, // v0 |
96 1, // v1 | 96 1, // v1 |
97 2, // a0 | 97 2, // a0 |
98 3, // a1 | 98 3, // a1 |
99 4, // a2 | 99 4, // a2 |
100 5, // a3 | 100 5, // a3 |
101 6, // t0 | 101 6, // a4 |
102 7, // t1 | 102 7, // a5 |
103 8, // t2 | 103 8, // a6 |
104 9, // t3 | 104 9, // a7 |
105 10, // t4 | 105 10, // t0 |
106 11, // t5 | 106 11, // t1 |
107 12, // t6 | 107 12, // t2 |
108 13, // t7 | 108 13, // t3 |
109 14, // s0 | 109 14, // s0 |
110 15, // s1 | 110 15, // s1 |
111 16, // s2 | 111 16, // s2 |
112 17, // s3 | 112 17, // s3 |
113 18, // s4 | 113 18, // s4 |
114 19, // s5 | 114 19, // s5 |
115 20, // s6 | 115 20, // s6 |
116 21, // s7 | 116 21, // s7 |
117 kUndefIndex, // t8 | 117 kUndefIndex, // t8 |
118 kUndefIndex, // t9 | 118 kUndefIndex, // t9 |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 | 206 |
207 | 207 |
208 inline void StackHandler::SetFp(Address slot, Address fp) { | 208 inline void StackHandler::SetFp(Address slot, Address fp) { |
209 Memory::Address_at(slot) = fp; | 209 Memory::Address_at(slot) = fp; |
210 } | 210 } |
211 | 211 |
212 | 212 |
213 } } // namespace v8::internal | 213 } } // namespace v8::internal |
214 | 214 |
215 #endif | 215 #endif |
OLD | NEW |