equal
deleted
inserted
replaced
161 #elif PLATFORM(ARM_TRADITIONAL) |
161 #elif PLATFORM(ARM_TRADITIONAL) |
162 struct JITStackFrame { |
162 struct JITStackFrame { |
163 JITStubArg padding; // Unused |
163 JITStubArg padding; // Unused |
164 JITStubArg args[7]; |
164 JITStubArg args[7]; |
165 |
165 |
|
166 ReturnAddressPtr thunkReturnAddress; |
|
167 |
166 void* preservedR4; |
168 void* preservedR4; |
167 void* preservedR5; |
169 void* preservedR5; |
168 void* preservedR6; |
170 void* preservedR6; |
169 void* preservedR7; |
171 void* preservedR7; |
170 void* preservedR8; |
172 void* preservedR8; |
171 void* preservedLink; |
173 void* preservedLink; |
172 |
174 |
173 RegisterFile* registerFile; |
175 RegisterFile* registerFile; |
174 CallFrame* callFrame; |
176 CallFrame* callFrame; |
175 JSValue* exception; |
177 JSValue* exception; |
|
178 |
|
179 // These arguments passed on the stack. |
176 Profiler** enabledProfilerReference; |
180 Profiler** enabledProfilerReference; |
177 JSGlobalData* globalData; |
181 JSGlobalData* globalData; |
178 |
182 |
179 // When JIT code makes a call, it pushes its return address just below the rest of the stack. |
183 // When JIT code makes a call, it pushes its return address just below the rest of the stack. |
180 ReturnAddressPtr* returnAddressSlot() { return reinterpret_cast<ReturnAddressPtr*>(this) - 1; } |
184 ReturnAddressPtr* returnAddressSlot() { return &thunkReturnAddress; } |
181 }; |
185 }; |
182 #else |
186 #else |
183 #error "JITStackFrame not defined for this platform." |
187 #error "JITStackFrame not defined for this platform." |
184 #endif |
188 #endif |
185 |
189 |