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