Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/c1/c1_LIRAssembler.cpp
          +++ new/src/share/vm/c1/c1_LIRAssembler.cpp
↓ open down ↓ 293 lines elided ↑ open up ↑
 294  294    _masm->code_section()->relocate(pc(), relocInfo::poll_type);
 295  295    int pc_offset = code_offset();
 296  296    flush_debug_info(pc_offset);
 297  297    info->record_debug_info(compilation()->debug_info_recorder(), pc_offset);
 298  298    if (info->exception_handlers() != NULL) {
 299  299      compilation()->add_exception_handlers_for_pco(pc_offset, info->exception_handlers());
 300  300    }
 301  301  }
 302  302  
 303  303  
 304      -void LIR_Assembler::add_call_info(int pc_offset, CodeEmitInfo* cinfo, bool is_method_handle_invoke) {
      304 +void LIR_Assembler::add_call_info(int pc_offset, CodeEmitInfo* cinfo) {
 305  305    flush_debug_info(pc_offset);
 306      -  cinfo->record_debug_info(compilation()->debug_info_recorder(), pc_offset, is_method_handle_invoke);
      306 +  cinfo->record_debug_info(compilation()->debug_info_recorder(), pc_offset);
 307  307    if (cinfo->exception_handlers() != NULL) {
 308  308      compilation()->add_exception_handlers_for_pco(pc_offset, cinfo->exception_handlers());
 309  309    }
 310  310  }
 311  311  
 312  312  static ValueStack* debug_info(Instruction* ins) {
 313  313    StateSplit* ss = ins->as_StateSplit();
 314  314    if (ss != NULL) return ss->state();
 315  315    return ins->lock_stack();
 316  316  }
↓ open down ↓ 89 lines elided ↑ open up ↑
 406  406  }
 407  407  
 408  408  void LIR_Assembler::emit_rtcall(LIR_OpRTCall* op) {
 409  409    rt_call(op->result_opr(), op->addr(), op->arguments(), op->tmp(), op->info());
 410  410  }
 411  411  
 412  412  
 413  413  void LIR_Assembler::emit_call(LIR_OpJavaCall* op) {
 414  414    verify_oop_map(op->info());
 415  415  
 416      -  // JSR 292
 417      -  // Preserve the SP over MethodHandle call sites.
 418      -  if (op->is_method_handle_invoke()) {
 419      -    preserve_SP(op);
 420      -  }
 421      -
 422  416    if (os::is_MP()) {
 423  417      // must align calls sites, otherwise they can't be updated atomically on MP hardware
 424  418      align_call(op->code());
 425  419    }
 426  420  
 427  421    // emit the static call stub stuff out of line
 428  422    emit_static_call_stub();
 429  423  
 430  424    switch (op->code()) {
 431  425    case lir_static_call:
↓ open down ↓ 5 lines elided ↑ open up ↑
 437  431      break;
 438  432    case lir_icvirtual_call:
 439  433      ic_call(op);
 440  434      break;
 441  435    case lir_virtual_call:
 442  436      vtable_call(op);
 443  437      break;
 444  438    default: ShouldNotReachHere();
 445  439    }
 446  440  
 447      -  if (op->is_method_handle_invoke()) {
 448      -    restore_SP(op);
 449      -  }
 450      -
 451  441  #if defined(X86) && defined(TIERED)
 452  442    // C2 leave fpu stack dirty clean it
 453  443    if (UseSSE < 2) {
 454  444      int i;
 455  445      for ( i = 1; i <= 7 ; i++ ) {
 456  446        ffree(i);
 457  447      }
 458  448      if (!op->result_opr()->is_float_kind()) {
 459  449        ffree(0);
 460  450      }
↓ open down ↓ 348 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX