< prev index next >

src/hotspot/cpu/ppc/frame_ppc.inline.hpp

Print this page
rev 55858 : 8228649: [PPC64] SA reads wrong slots from interpreter frames
Summary: Make frame layout consistent between dbg and product build and implement offsets accordingly.
Reviewed-by: goetz, gromero

*** 128,150 **** } inline intptr_t** frame::interpreter_frame_locals_addr() const { return (intptr_t**) &(get_ijava_state()->locals); } inline intptr_t* frame::interpreter_frame_bcp_addr() const { return (intptr_t*) &(get_ijava_state()->bcp); } inline intptr_t* frame::interpreter_frame_mdp_addr() const { return (intptr_t*) &(get_ijava_state()->mdx); } // Pointer beyond the "oldest/deepest" BasicObjectLock on stack. inline BasicObjectLock* frame::interpreter_frame_monitor_end() const { ! return (BasicObjectLock *) get_ijava_state()->monitors; } inline BasicObjectLock* frame::interpreter_frame_monitor_begin() const { ! return (BasicObjectLock *) get_ijava_state(); } // Return register stack slot addr at which currently interpreted method is found. inline Method** frame::interpreter_frame_method_addr() const { return (Method**) &(get_ijava_state()->method); --- 128,153 ---- } inline intptr_t** frame::interpreter_frame_locals_addr() const { return (intptr_t**) &(get_ijava_state()->locals); } + inline intptr_t* frame::interpreter_frame_bcp_addr() const { return (intptr_t*) &(get_ijava_state()->bcp); } + inline intptr_t* frame::interpreter_frame_mdp_addr() const { return (intptr_t*) &(get_ijava_state()->mdx); } + // Pointer beyond the "oldest/deepest" BasicObjectLock on stack. inline BasicObjectLock* frame::interpreter_frame_monitor_end() const { ! return (BasicObjectLock*) get_ijava_state()->monitors; } inline BasicObjectLock* frame::interpreter_frame_monitor_begin() const { ! return (BasicObjectLock*) get_ijava_state(); } // Return register stack slot addr at which currently interpreted method is found. inline Method** frame::interpreter_frame_method_addr() const { return (Method**) &(get_ijava_state()->method);
*** 152,178 **** inline oop* frame::interpreter_frame_mirror_addr() const { return (oop*) &(get_ijava_state()->mirror); } - inline ConstantPoolCache** frame::interpreter_frame_cpoolcache_addr() const { - return (ConstantPoolCache**) &(get_ijava_state()->cpoolCache); - } inline ConstantPoolCache** frame::interpreter_frame_cache_addr() const { return (ConstantPoolCache**) &(get_ijava_state()->cpoolCache); } inline oop* frame::interpreter_frame_temp_oop_addr() const { ! return (oop *) &(get_ijava_state()->oop_tmp); } inline intptr_t* frame::interpreter_frame_esp() const { return (intptr_t*) get_ijava_state()->esp; } // Convenient setters inline void frame::interpreter_frame_set_monitor_end(BasicObjectLock* end) { get_ijava_state()->monitors = (intptr_t) end;} ! inline void frame::interpreter_frame_set_cpcache(ConstantPoolCache* cp) { *frame::interpreter_frame_cpoolcache_addr() = cp; } inline void frame::interpreter_frame_set_esp(intptr_t* esp) { get_ijava_state()->esp = (intptr_t) esp; } inline void frame::interpreter_frame_set_top_frame_sp(intptr_t* top_frame_sp) { get_ijava_state()->top_frame_sp = (intptr_t) top_frame_sp; } inline void frame::interpreter_frame_set_sender_sp(intptr_t* sender_sp) { get_ijava_state()->sender_sp = (intptr_t) sender_sp; } inline intptr_t* frame::interpreter_frame_expression_stack() const { --- 155,179 ---- inline oop* frame::interpreter_frame_mirror_addr() const { return (oop*) &(get_ijava_state()->mirror); } inline ConstantPoolCache** frame::interpreter_frame_cache_addr() const { return (ConstantPoolCache**) &(get_ijava_state()->cpoolCache); } inline oop* frame::interpreter_frame_temp_oop_addr() const { ! return (oop*) &(get_ijava_state()->oop_tmp); } + inline intptr_t* frame::interpreter_frame_esp() const { return (intptr_t*) get_ijava_state()->esp; } // Convenient setters inline void frame::interpreter_frame_set_monitor_end(BasicObjectLock* end) { get_ijava_state()->monitors = (intptr_t) end;} ! inline void frame::interpreter_frame_set_cpcache(ConstantPoolCache* cp) { *interpreter_frame_cache_addr() = cp; } inline void frame::interpreter_frame_set_esp(intptr_t* esp) { get_ijava_state()->esp = (intptr_t) esp; } inline void frame::interpreter_frame_set_top_frame_sp(intptr_t* top_frame_sp) { get_ijava_state()->top_frame_sp = (intptr_t) top_frame_sp; } inline void frame::interpreter_frame_set_sender_sp(intptr_t* sender_sp) { get_ijava_state()->sender_sp = (intptr_t) sender_sp; } inline intptr_t* frame::interpreter_frame_expression_stack() const {
< prev index next >