1.1 --- a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Thu May 20 06:34:23 2010 -0700 1.2 +++ b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Fri May 21 02:59:24 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 }