151 // failures when searching for the corresponding bci. => Add a nop. |
151 // failures when searching for the corresponding bci. => Add a nop. |
152 // (was bug 5/14/1999 - gri) |
152 // (was bug 5/14/1999 - gri) |
153 __ nop(); |
153 __ nop(); |
154 |
154 |
155 // Generate code for exception handler. |
155 // Generate code for exception handler. |
156 address handler_base = __ start_a_stub(exception_handler_size); |
156 address handler_base = __ start_a_stub(exception_handler_size()); |
157 if (handler_base == NULL) { |
157 if (handler_base == NULL) { |
158 // Not enough space left for the handler. |
158 // Not enough space left for the handler. |
159 bailout("exception handler overflow"); |
159 bailout("exception handler overflow"); |
160 return -1; |
160 return -1; |
161 } |
161 } |
164 |
164 |
165 address a = Runtime1::entry_for (Runtime1::handle_exception_from_callee_id); |
165 address a = Runtime1::entry_for (Runtime1::handle_exception_from_callee_id); |
166 address call_addr = emit_call_c(a); |
166 address call_addr = emit_call_c(a); |
167 CHECK_BAILOUT_(-1); |
167 CHECK_BAILOUT_(-1); |
168 __ should_not_reach_here(); |
168 __ should_not_reach_here(); |
169 guarantee(code_offset() - offset <= exception_handler_size, "overflow"); |
169 guarantee(code_offset() - offset <= exception_handler_size(), "overflow"); |
170 __ end_a_stub(); |
170 __ end_a_stub(); |
171 |
171 |
172 return offset; |
172 return offset; |
173 } |
173 } |
174 |
174 |
249 // failures when searching for the corresponding bci. => Add a nop. |
249 // failures when searching for the corresponding bci. => Add a nop. |
250 // (was bug 5/14/1999 - gri) |
250 // (was bug 5/14/1999 - gri) |
251 __ nop(); |
251 __ nop(); |
252 |
252 |
253 // Generate code for exception handler. |
253 // Generate code for exception handler. |
254 address handler_base = __ start_a_stub(deopt_handler_size); |
254 address handler_base = __ start_a_stub(deopt_handler_size()); |
255 if (handler_base == NULL) { |
255 if (handler_base == NULL) { |
256 // Not enough space left for the handler. |
256 // Not enough space left for the handler. |
257 bailout("deopt handler overflow"); |
257 bailout("deopt handler overflow"); |
258 return -1; |
258 return -1; |
259 } int offset = code_offset(); |
259 } int offset = code_offset(); |
260 // Size must be constant (see HandlerImpl::emit_deopt_handler). |
260 // Size must be constant (see HandlerImpl::emit_deopt_handler). |
261 __ load_const(Z_R1_scratch, SharedRuntime::deopt_blob()->unpack()); |
261 __ load_const(Z_R1_scratch, SharedRuntime::deopt_blob()->unpack()); |
262 __ call(Z_R1_scratch); |
262 __ call(Z_R1_scratch); |
263 guarantee(code_offset() - offset <= deopt_handler_size, "overflow"); |
263 guarantee(code_offset() - offset <= deopt_handler_size(), "overflow"); |
264 __ end_a_stub(); |
264 __ end_a_stub(); |
265 |
265 |
266 return offset; |
266 return offset; |
267 } |
267 } |
268 |
268 |
1155 |
1155 |
1156 // Stub is fixed up when the corresponding call is converted from calling |
1156 // Stub is fixed up when the corresponding call is converted from calling |
1157 // compiled code to calling interpreted code. |
1157 // compiled code to calling interpreted code. |
1158 |
1158 |
1159 address call_pc = __ pc(); |
1159 address call_pc = __ pc(); |
1160 address stub = __ start_a_stub(call_stub_size); |
1160 address stub = __ start_a_stub(call_stub_size()); |
1161 if (stub == NULL) { |
1161 if (stub == NULL) { |
1162 bailout("static call stub overflow"); |
1162 bailout("static call stub overflow"); |
1163 return; |
1163 return; |
1164 } |
1164 } |
1165 |
1165 |
1178 bailout("const section overflow"); |
1178 bailout("const section overflow"); |
1179 return; |
1179 return; |
1180 } |
1180 } |
1181 |
1181 |
1182 __ z_br(Z_R1); |
1182 __ z_br(Z_R1); |
1183 assert(__ offset() - start <= call_stub_size, "stub too big"); |
1183 assert(__ offset() - start <= call_stub_size(), "stub too big"); |
1184 __ end_a_stub(); // Update current stubs pointer and restore insts_end. |
1184 __ end_a_stub(); // Update current stubs pointer and restore insts_end. |
1185 } |
1185 } |
1186 |
1186 |
1187 void LIR_Assembler::comp_op(LIR_Condition condition, LIR_Opr opr1, LIR_Opr opr2, LIR_Op2* op) { |
1187 void LIR_Assembler::comp_op(LIR_Condition condition, LIR_Opr opr1, LIR_Opr opr2, LIR_Op2* op) { |
1188 bool unsigned_comp = condition == lir_cond_belowEqual || condition == lir_cond_aboveEqual; |
1188 bool unsigned_comp = condition == lir_cond_belowEqual || condition == lir_cond_aboveEqual; |