Mercurial > hg > graal-compiler
comparison src/cpu/sparc/vm/frame_sparc.hpp @ 7232:310a68c63b69
Merge.
author | Christian Haeubl <haeubl@ssw.jku.at> |
---|---|
date | Fri, 14 Dec 2012 15:19:38 +0100 |
parents | cd3d6a6b95d9 |
children | 7f77d17d0f13 |
comparison
equal
deleted
inserted
replaced
7231:c0806f4ff3ea | 7232:310a68c63b69 |
---|---|
202 | 202 |
203 // Assumes reg is an out register | 203 // Assumes reg is an out register |
204 intptr_t* out_register_addr(Register reg) const { | 204 intptr_t* out_register_addr(Register reg) const { |
205 return younger_sp_addr_at(reg->after_save()->sp_offset_in_saved_window()); | 205 return younger_sp_addr_at(reg->after_save()->sp_offset_in_saved_window()); |
206 } | 206 } |
207 intptr_t* memory_param_addr(int param_ix, bool is_in) const { | |
208 int offset = callee_register_argument_save_area_sp_offset + param_ix; | |
209 if (is_in) | |
210 return fp_addr_at(offset); | |
211 else | |
212 return sp_addr_at(offset); | |
213 } | |
214 intptr_t* param_addr(int param_ix, bool is_in) const { | |
215 if (param_ix >= callee_register_argument_save_area_words) | |
216 return memory_param_addr(param_ix, is_in); | |
217 else if (is_in) | |
218 return register_addr(Argument(param_ix, true).as_register()); | |
219 else { | |
220 // the registers are stored in the next younger frame | |
221 // %%% is this really necessary? | |
222 ShouldNotReachHere(); | |
223 return NULL; | |
224 } | |
225 } | |
226 | 207 |
227 | 208 |
228 // Interpreter frames | 209 // Interpreter frames |
229 | 210 |
230 public: | 211 public: |
267 ConstantPoolCache** interpreter_frame_cpoolcache_addr() const; | 248 ConstantPoolCache** interpreter_frame_cpoolcache_addr() const; |
268 | 249 |
269 #ifndef CC_INTERP | 250 #ifndef CC_INTERP |
270 | 251 |
271 // where Lmonitors is saved: | 252 // where Lmonitors is saved: |
272 BasicObjectLock** interpreter_frame_monitors_addr() const { | 253 inline BasicObjectLock** interpreter_frame_monitors_addr() const; |
273 return (BasicObjectLock**) sp_addr_at(Lmonitors->sp_offset_in_saved_window()); | 254 inline intptr_t** interpreter_frame_esp_addr() const; |
274 } | |
275 intptr_t** interpreter_frame_esp_addr() const { | |
276 return (intptr_t**)sp_addr_at(Lesp->sp_offset_in_saved_window()); | |
277 } | |
278 | 255 |
279 inline void interpreter_frame_set_tos_address(intptr_t* x); | 256 inline void interpreter_frame_set_tos_address(intptr_t* x); |
280 | 257 |
281 // monitors: | 258 // monitors: |
282 | 259 |