56 public:
57 enum {
58 pc_return_offset = 0,
59 // All frames
60 link_offset = 0,
61 return_addr_offset = 1,
62 // non-interpreter frames
63 sender_sp_offset = 2,
64
65 // Interpreter frames
66 interpreter_frame_result_handler_offset = 3, // for native calls only
67 interpreter_frame_oop_temp_offset = 2, // for native calls only
68
69 interpreter_frame_sender_sp_offset = -1,
70 // outgoing sp before a call to an invoked method
71 interpreter_frame_last_sp_offset = interpreter_frame_sender_sp_offset - 1,
72 interpreter_frame_method_offset = interpreter_frame_last_sp_offset - 1,
73 interpreter_frame_mirror_offset = interpreter_frame_method_offset - 1,
74 interpreter_frame_mdp_offset = interpreter_frame_mirror_offset - 1,
75 interpreter_frame_cache_offset = interpreter_frame_mdp_offset - 1,
76 interpreter_frame_vt_alloc_ptr_offset = interpreter_frame_cache_offset - 1,
77 interpreter_frame_locals_offset = interpreter_frame_vt_alloc_ptr_offset - 1,
78 interpreter_frame_bcp_offset = interpreter_frame_locals_offset - 1,
79 interpreter_frame_initial_sp_offset = interpreter_frame_bcp_offset - 1,
80
81 interpreter_frame_monitor_block_top_offset = interpreter_frame_initial_sp_offset,
82 interpreter_frame_monitor_block_bottom_offset = interpreter_frame_initial_sp_offset,
83
84 // Entry frames
85 #ifdef AMD64
86 #ifdef _WIN64
87 entry_frame_after_call_words = 60,
88 entry_frame_call_wrapper_offset = 2,
89
90 arg_reg_save_area_bytes = 32 // Register argument save area
91 #else
92 entry_frame_after_call_words = 13,
93 entry_frame_call_wrapper_offset = -6,
94
95 arg_reg_save_area_bytes = 0
96 #endif // _WIN64
97 #else
|
56 public:
57 enum {
58 pc_return_offset = 0,
59 // All frames
60 link_offset = 0,
61 return_addr_offset = 1,
62 // non-interpreter frames
63 sender_sp_offset = 2,
64
65 // Interpreter frames
66 interpreter_frame_result_handler_offset = 3, // for native calls only
67 interpreter_frame_oop_temp_offset = 2, // for native calls only
68
69 interpreter_frame_sender_sp_offset = -1,
70 // outgoing sp before a call to an invoked method
71 interpreter_frame_last_sp_offset = interpreter_frame_sender_sp_offset - 1,
72 interpreter_frame_method_offset = interpreter_frame_last_sp_offset - 1,
73 interpreter_frame_mirror_offset = interpreter_frame_method_offset - 1,
74 interpreter_frame_mdp_offset = interpreter_frame_mirror_offset - 1,
75 interpreter_frame_cache_offset = interpreter_frame_mdp_offset - 1,
76 interpreter_frame_locals_offset = interpreter_frame_cache_offset - 1,
77 interpreter_frame_bcp_offset = interpreter_frame_locals_offset - 1,
78 interpreter_frame_initial_sp_offset = interpreter_frame_bcp_offset - 1,
79
80 interpreter_frame_monitor_block_top_offset = interpreter_frame_initial_sp_offset,
81 interpreter_frame_monitor_block_bottom_offset = interpreter_frame_initial_sp_offset,
82
83 // Entry frames
84 #ifdef AMD64
85 #ifdef _WIN64
86 entry_frame_after_call_words = 60,
87 entry_frame_call_wrapper_offset = 2,
88
89 arg_reg_save_area_bytes = 32 // Register argument save area
90 #else
91 entry_frame_after_call_words = 13,
92 entry_frame_call_wrapper_offset = -6,
93
94 arg_reg_save_area_bytes = 0
95 #endif // _WIN64
96 #else
|