105 106 inline intptr_t* frame::interpreter_frame_bcp_addr() const { 107 return (intptr_t*) &(get_interpreterState()->_bcp); 108 } 109 110 inline ConstantPoolCache** frame::interpreter_frame_cache_addr() const { 111 return &(get_interpreterState()->_constants); 112 } 113 114 inline Method** frame::interpreter_frame_method_addr() const { 115 return &(get_interpreterState()->_method); 116 } 117 118 inline intptr_t* frame::interpreter_frame_mdp_addr() const { 119 return (intptr_t*) &(get_interpreterState()->_mdx); 120 } 121 122 inline intptr_t* frame::interpreter_frame_tos_address() const { 123 return get_interpreterState()->_stack + 1; 124 } 125 #endif // CC_INTERP 126 127 inline int frame::interpreter_frame_monitor_size() { 128 return BasicObjectLock::size(); 129 } 130 131 inline intptr_t* frame::interpreter_frame_expression_stack() const { 132 intptr_t* monitor_end = (intptr_t*) interpreter_frame_monitor_end(); 133 return monitor_end - 1; 134 } 135 136 inline jint frame::interpreter_frame_expression_stack_direction() { 137 return -1; 138 } 139 140 // Return a unique id for this frame. The id must have a value where 141 // we can distinguish identity and younger/older relationship. NULL 142 // represents an invalid (incomparable) frame. 143 inline intptr_t* frame::id() const { 144 return fp(); | 105 106 inline intptr_t* frame::interpreter_frame_bcp_addr() const { 107 return (intptr_t*) &(get_interpreterState()->_bcp); 108 } 109 110 inline ConstantPoolCache** frame::interpreter_frame_cache_addr() const { 111 return &(get_interpreterState()->_constants); 112 } 113 114 inline Method** frame::interpreter_frame_method_addr() const { 115 return &(get_interpreterState()->_method); 116 } 117 118 inline intptr_t* frame::interpreter_frame_mdp_addr() const { 119 return (intptr_t*) &(get_interpreterState()->_mdx); 120 } 121 122 inline intptr_t* frame::interpreter_frame_tos_address() const { 123 return get_interpreterState()->_stack + 1; 124 } 125 126 inline oop* frame::interpreter_frame_temp_oop_addr() const { 127 interpreterState istate = get_interpreterState(); 128 return (oop *)&istate->_oop_temp; 129 } 130 #endif // CC_INTERP 131 132 inline int frame::interpreter_frame_monitor_size() { 133 return BasicObjectLock::size(); 134 } 135 136 inline intptr_t* frame::interpreter_frame_expression_stack() const { 137 intptr_t* monitor_end = (intptr_t*) interpreter_frame_monitor_end(); 138 return monitor_end - 1; 139 } 140 141 inline jint frame::interpreter_frame_expression_stack_direction() { 142 return -1; 143 } 144 145 // Return a unique id for this frame. The id must have a value where 146 // we can distinguish identity and younger/older relationship. NULL 147 // represents an invalid (incomparable) frame. 148 inline intptr_t* frame::id() const { 149 return fp(); |