hotspot/src/cpu/s390/vm/c1_LIRAssembler_s390.cpp
changeset 42650 1f304d0c888b
parent 42556 c03d98321ad1
child 42897 57e7b1c75d17
equal deleted inserted replaced
42649:28238583a459 42650:1f304d0c888b
   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;