Print this page
rev 2161 : [mq]: initial-intrinsification-changes
rev 2162 : [mq]: code-review-comments-vladimir
rev 2163 : [mq]: client_assertion_fauilure

Split Close
Expand all
Collapse all
          --- old/src/cpu/x86/vm/c1_CodeStubs_x86.cpp
          +++ new/src/cpu/x86/vm/c1_CodeStubs_x86.cpp
↓ open down ↓ 453 lines elided ↑ open up ↑
 454  454    __ incrementl(ExternalAddress((address)&Runtime1::_arraycopy_slowcase_cnt));
 455  455  #endif
 456  456  
 457  457    __ jmp(_continuation);
 458  458  }
 459  459  
 460  460  /////////////////////////////////////////////////////////////////////////////
 461  461  #ifndef SERIALGC
 462  462  
 463  463  void G1PreBarrierStub::emit_code(LIR_Assembler* ce) {
 464      -
 465      -  // At this point we know that marking is in progress
      464 +  // At this point we know that marking is in progress.
      465 +  // If do_load() is true then we have to emit the
      466 +  // load of the previous value; otherwise it has already
      467 +  // been loaded into _pre_val.
 466  468  
 467  469    __ bind(_entry);
 468  470    assert(pre_val()->is_register(), "Precondition.");
 469  471  
 470  472    Register pre_val_reg = pre_val()->as_register();
 471  473  
 472      -  ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/);
      474 +  if (do_load()) {
      475 +    ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/);
      476 +  }
 473  477  
 474  478    __ cmpptr(pre_val_reg, (int32_t) NULL_WORD);
 475  479    __ jcc(Assembler::equal, _continuation);
 476  480    ce->store_parameter(pre_val()->as_register(), 0);
 477  481    __ call(RuntimeAddress(Runtime1::entry_for(Runtime1::g1_pre_barrier_slow_id)));
 478  482    __ jmp(_continuation);
 479  483  
 480  484  }
 481  485  
 482  486  jbyte* G1PostBarrierStub::_byte_map_base = NULL;
↓ open down ↓ 24 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX