108 interpreter_frame_oop_temp_offset = 2, // for native calls only
109
110 interpreter_frame_sender_sp_offset = -1,
111 // outgoing sp before a call to an invoked method
112 interpreter_frame_last_sp_offset = interpreter_frame_sender_sp_offset - 1,
113 interpreter_frame_method_offset = interpreter_frame_last_sp_offset - 1,
114 interpreter_frame_mdp_offset = interpreter_frame_method_offset - 1,
115 interpreter_frame_cache_offset = interpreter_frame_mdp_offset - 1,
116 interpreter_frame_locals_offset = interpreter_frame_cache_offset - 1,
117 interpreter_frame_bcp_offset = interpreter_frame_locals_offset - 1,
118 interpreter_frame_initial_sp_offset = interpreter_frame_bcp_offset - 1,
119
120 interpreter_frame_monitor_block_top_offset = interpreter_frame_initial_sp_offset,
121 interpreter_frame_monitor_block_bottom_offset = interpreter_frame_initial_sp_offset,
122
123 #endif // CC_INTERP
124
125 // Entry frames
126 #ifdef AMD64
127 #ifdef _WIN64
128 entry_frame_after_call_words = 28,
129 entry_frame_call_wrapper_offset = 2,
130
131 arg_reg_save_area_bytes = 32 // Register argument save area
132 #else
133 entry_frame_after_call_words = 13,
134 entry_frame_call_wrapper_offset = -6,
135
136 arg_reg_save_area_bytes = 0
137 #endif // _WIN64
138 #else
139 entry_frame_call_wrapper_offset = 2
140 #endif // AMD64
141 };
142
143 intptr_t ptr_at(int offset) const {
144 return *ptr_at_addr(offset);
145 }
146
147 void ptr_at_put(int offset, intptr_t value) {
148 *ptr_at_addr(offset) = value;
|
108 interpreter_frame_oop_temp_offset = 2, // for native calls only
109
110 interpreter_frame_sender_sp_offset = -1,
111 // outgoing sp before a call to an invoked method
112 interpreter_frame_last_sp_offset = interpreter_frame_sender_sp_offset - 1,
113 interpreter_frame_method_offset = interpreter_frame_last_sp_offset - 1,
114 interpreter_frame_mdp_offset = interpreter_frame_method_offset - 1,
115 interpreter_frame_cache_offset = interpreter_frame_mdp_offset - 1,
116 interpreter_frame_locals_offset = interpreter_frame_cache_offset - 1,
117 interpreter_frame_bcp_offset = interpreter_frame_locals_offset - 1,
118 interpreter_frame_initial_sp_offset = interpreter_frame_bcp_offset - 1,
119
120 interpreter_frame_monitor_block_top_offset = interpreter_frame_initial_sp_offset,
121 interpreter_frame_monitor_block_bottom_offset = interpreter_frame_initial_sp_offset,
122
123 #endif // CC_INTERP
124
125 // Entry frames
126 #ifdef AMD64
127 #ifdef _WIN64
128 entry_frame_after_call_words = 60,
129 entry_frame_call_wrapper_offset = 2,
130
131 arg_reg_save_area_bytes = 32 // Register argument save area
132 #else
133 entry_frame_after_call_words = 13,
134 entry_frame_call_wrapper_offset = -6,
135
136 arg_reg_save_area_bytes = 0
137 #endif // _WIN64
138 #else
139 entry_frame_call_wrapper_offset = 2
140 #endif // AMD64
141 };
142
143 intptr_t ptr_at(int offset) const {
144 return *ptr_at_addr(offset);
145 }
146
147 void ptr_at_put(int offset, intptr_t value) {
148 *ptr_at_addr(offset) = value;
|