Print this page
rev 2237 : [mq]: initial-intrinsification-changes
rev 2238 : [mq]: code-review-comments-vladimir
rev 2239 : [mq]: client_assertion_fauilure

Split Close
Expand all
Collapse all
          --- old/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
          +++ new/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
↓ open down ↓ 400 lines elided ↑ open up ↑
 401  401  
 402  402    __ br(Assembler::always, false, Assembler::pt, _continuation);
 403  403    __ delayed()->nop();
 404  404  }
 405  405  
 406  406  
 407  407  ///////////////////////////////////////////////////////////////////////////////////
 408  408  #ifndef SERIALGC
 409  409  
 410  410  void G1PreBarrierStub::emit_code(LIR_Assembler* ce) {
      411 +  // At this point we know that marking is in progress.
      412 +  // If do_load() is true then we have to emit the
      413 +  // load of the previous value; otherwise it has already
      414 +  // been loaded into _pre_val.
      415 +
 411  416    __ bind(_entry);
 412  417  
 413  418    assert(pre_val()->is_register(), "Precondition.");
 414      -
 415  419    Register pre_val_reg = pre_val()->as_register();
 416  420  
 417      -  ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/);
      421 +  if (do_load()) {
      422 +    ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/);
      423 +  }
      424 +
 418  425    if (__ is_in_wdisp16_range(_continuation)) {
 419  426      __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
 420  427                        pre_val_reg, _continuation);
 421  428    } else {
 422  429      __ cmp(pre_val_reg, G0);
 423  430      __ brx(Assembler::equal, false, Assembler::pn, _continuation);
 424  431    }
 425  432    __ delayed()->nop();
 426  433  
 427  434    __ call(Runtime1::entry_for(Runtime1::Runtime1::g1_pre_barrier_slow_id));
↓ open down ↓ 41 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX