src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp

changeset 1934
e9ff18c4ace7
parent 1907
c18cbe5936b8
parent 1919
61b2245abf36
child 2138
d5d065957597
     1.1 --- a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp	Tue Jun 01 11:48:33 2010 -0700
     1.2 +++ b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp	Wed Jun 02 22:45:42 2010 -0700
     1.3 @@ -736,7 +736,8 @@
     1.4  
     1.5  void LIR_Assembler::call(LIR_OpJavaCall* op, relocInfo::relocType rtype) {
     1.6    __ call(op->addr(), rtype);
     1.7 -  // the peephole pass fills the delay slot
     1.8 +  // The peephole pass fills the delay slot, add_call_info is done in
     1.9 +  // LIR_Assembler::emit_delay.
    1.10  }
    1.11  
    1.12  
    1.13 @@ -745,7 +746,8 @@
    1.14    __ set_oop((jobject)Universe::non_oop_word(), G5_inline_cache_reg);
    1.15    __ relocate(rspec);
    1.16    __ call(op->addr(), relocInfo::none);
    1.17 -  // the peephole pass fills the delay slot
    1.18 +  // The peephole pass fills the delay slot, add_call_info is done in
    1.19 +  // LIR_Assembler::emit_delay.
    1.20  }
    1.21  
    1.22  
    1.23 @@ -766,16 +768,6 @@
    1.24  }
    1.25  
    1.26  
    1.27 -void LIR_Assembler::preserve_SP(LIR_OpJavaCall* op) {
    1.28 -  Unimplemented();
    1.29 -}
    1.30 -
    1.31 -
    1.32 -void LIR_Assembler::restore_SP(LIR_OpJavaCall* op) {
    1.33 -  Unimplemented();
    1.34 -}
    1.35 -
    1.36 -
    1.37  // load with 32-bit displacement
    1.38  int LIR_Assembler::load(Register s, int disp, Register d, BasicType ld_type, CodeEmitInfo *info) {
    1.39    int load_offset = code_offset();
    1.40 @@ -2934,7 +2926,7 @@
    1.41  
    1.42    // we may also be emitting the call info for the instruction
    1.43    // which we are the delay slot of.
    1.44 -  CodeEmitInfo * call_info = op->call_info();
    1.45 +  CodeEmitInfo* call_info = op->call_info();
    1.46    if (call_info) {
    1.47      add_call_info(code_offset(), call_info);
    1.48    }
    1.49 @@ -3159,6 +3151,7 @@
    1.50                tty->print_cr("delayed");
    1.51                inst->at(i - 1)->print();
    1.52                inst->at(i)->print();
    1.53 +              tty->cr();
    1.54              }
    1.55  #endif
    1.56              continue;
    1.57 @@ -3174,8 +3167,8 @@
    1.58        case lir_static_call:
    1.59        case lir_virtual_call:
    1.60        case lir_icvirtual_call:
    1.61 -      case lir_optvirtual_call: {
    1.62 -        LIR_Op* delay_op = NULL;
    1.63 +      case lir_optvirtual_call:
    1.64 +      case lir_dynamic_call: {
    1.65          LIR_Op* prev = inst->at(i - 1);
    1.66          if (LIRFillDelaySlots && prev && prev->code() == lir_move && prev->info() == NULL &&
    1.67              (op->code() != lir_virtual_call ||
    1.68 @@ -3192,15 +3185,14 @@
    1.69              tty->print_cr("delayed");
    1.70              inst->at(i - 1)->print();
    1.71              inst->at(i)->print();
    1.72 +            tty->cr();
    1.73            }
    1.74  #endif
    1.75            continue;
    1.76          }
    1.77  
    1.78 -        if (!delay_op) {
    1.79 -          delay_op = new LIR_OpDelay(new LIR_Op0(lir_nop), op->as_OpJavaCall()->info());
    1.80 -          inst->insert_before(i + 1, delay_op);
    1.81 -        }
    1.82 +        LIR_Op* delay_op = new LIR_OpDelay(new LIR_Op0(lir_nop), op->as_OpJavaCall()->info());
    1.83 +        inst->insert_before(i + 1, delay_op);
    1.84          break;
    1.85        }
    1.86      }

mercurial