206 } 207 } 208 209 inline oop* frame::interpreter_frame_temp_oop_addr() const { 210 return (oop *)(fp() + interpreter_frame_oop_temp_offset); 211 } 212 213 inline int frame::interpreter_frame_monitor_size() { 214 return BasicObjectLock::size(); 215 } 216 217 218 // expression stack 219 // (the max_stack arguments are used by the GC; see class FrameClosure) 220 221 inline intptr_t* frame::interpreter_frame_expression_stack() const { 222 intptr_t* monitor_end = (intptr_t*) interpreter_frame_monitor_end(); 223 return monitor_end-1; 224 } 225 226 227 inline jint frame::interpreter_frame_expression_stack_direction() { return -1; } 228 229 230 // Entry frames 231 232 inline JavaCallWrapper** frame::entry_frame_call_wrapper_addr() const { 233 return (JavaCallWrapper**)addr_at(entry_frame_call_wrapper_offset); 234 } 235 236 // Compiled frames 237 238 inline oop frame::saved_oop_result(RegisterMap* map) const { 239 oop* result_adr = (oop *)map->location(rax->as_VMReg()); 240 guarantee(result_adr != NULL, "bad register save location"); 241 242 return (*result_adr); 243 } 244 245 inline void frame::set_saved_oop_result(RegisterMap* map, oop obj) { 246 oop* result_adr = (oop *)map->location(rax->as_VMReg()); 247 guarantee(result_adr != NULL, "bad register save location"); 248 249 *result_adr = obj; | 206 } 207 } 208 209 inline oop* frame::interpreter_frame_temp_oop_addr() const { 210 return (oop *)(fp() + interpreter_frame_oop_temp_offset); 211 } 212 213 inline int frame::interpreter_frame_monitor_size() { 214 return BasicObjectLock::size(); 215 } 216 217 218 // expression stack 219 // (the max_stack arguments are used by the GC; see class FrameClosure) 220 221 inline intptr_t* frame::interpreter_frame_expression_stack() const { 222 intptr_t* monitor_end = (intptr_t*) interpreter_frame_monitor_end(); 223 return monitor_end-1; 224 } 225 226 // Entry frames 227 228 inline JavaCallWrapper** frame::entry_frame_call_wrapper_addr() const { 229 return (JavaCallWrapper**)addr_at(entry_frame_call_wrapper_offset); 230 } 231 232 // Compiled frames 233 234 inline oop frame::saved_oop_result(RegisterMap* map) const { 235 oop* result_adr = (oop *)map->location(rax->as_VMReg()); 236 guarantee(result_adr != NULL, "bad register save location"); 237 238 return (*result_adr); 239 } 240 241 inline void frame::set_saved_oop_result(RegisterMap* map, oop obj) { 242 oop* result_adr = (oop *)map->location(rax->as_VMReg()); 243 guarantee(result_adr != NULL, "bad register save location"); 244 245 *result_adr = obj; |