113 void empty_expression_stack(); // Resets both Lesp and SP.
114
115 public:
116 // Load values from bytecode stream:
117
118 enum signedOrNot { Signed, Unsigned };
119 enum setCCOrNot { set_CC, dont_set_CC };
120
121 void get_2_byte_integer_at_bcp(int bcp_offset,
122 Register Rdst,
123 signedOrNot is_signed);
124
125 void get_4_byte_integer_at_bcp(int bcp_offset,
126 Register Rdst,
127 signedOrNot is_signed = Unsigned);
128
129 void get_cache_index_at_bcp(Register Rdst, int bcp_offset, size_t index_size);
130
131 void get_cache_and_index_at_bcp(Register cache, int bcp_offset, size_t index_size = sizeof(u2));
132
133
134 // common code
135
136 void field_offset_at(int n, Register tmp, Register dest, Register base);
137 int field_offset_at(Register object, address bcp, int offset);
138 void fast_iaaccess(int n, address bcp);
139 void fast_iagetfield(address bcp);
140 void fast_iaputfield(address bcp, bool do_store_check);
141
142 void index_check(Register array, Register index, int index_shift, Register tmp, Register res);
143 void index_check_without_pop(Register array, Register index, int index_shift, Register tmp, Register res);
144
145 void get_const(Register Rdst);
146 void get_constant_pool(Register Rdst);
147 void get_constant_pool_cache(Register Rdst);
148 void get_cpool_and_tags(Register Rcpool, Register Rtags);
149 void is_a(Label& L);
150
151 // Java Call Helpers
152 void call_from_interpreter(Register Rtarget_method, Register Rret_addr, Register Rscratch1, Register Rscratch2);
|
113 void empty_expression_stack(); // Resets both Lesp and SP.
114
115 public:
116 // Load values from bytecode stream:
117
118 enum signedOrNot { Signed, Unsigned };
119 enum setCCOrNot { set_CC, dont_set_CC };
120
121 void get_2_byte_integer_at_bcp(int bcp_offset,
122 Register Rdst,
123 signedOrNot is_signed);
124
125 void get_4_byte_integer_at_bcp(int bcp_offset,
126 Register Rdst,
127 signedOrNot is_signed = Unsigned);
128
129 void get_cache_index_at_bcp(Register Rdst, int bcp_offset, size_t index_size);
130
131 void get_cache_and_index_at_bcp(Register cache, int bcp_offset, size_t index_size = sizeof(u2));
132
133 void get_u4(Register Rdst, Register Rsrc, int offset, signedOrNot is_signed);
134
135 // common code
136
137 void field_offset_at(int n, Register tmp, Register dest, Register base);
138 int field_offset_at(Register object, address bcp, int offset);
139 void fast_iaaccess(int n, address bcp);
140 void fast_iagetfield(address bcp);
141 void fast_iaputfield(address bcp, bool do_store_check);
142
143 void index_check(Register array, Register index, int index_shift, Register tmp, Register res);
144 void index_check_without_pop(Register array, Register index, int index_shift, Register tmp, Register res);
145
146 void get_const(Register Rdst);
147 void get_constant_pool(Register Rdst);
148 void get_constant_pool_cache(Register Rdst);
149 void get_cpool_and_tags(Register Rcpool, Register Rtags);
150 void is_a(Label& L);
151
152 // Java Call Helpers
153 void call_from_interpreter(Register Rtarget_method, Register Rret_addr, Register Rscratch1, Register Rscratch2);
|