src/cpu/x86/vm/c1_LIRAssembler_x86.cpp

changeset 5736
2795dff62b6c
parent 5628
f98f5d48f511
child 5737
da051ce490eb
     1.1 --- a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	Wed Sep 18 09:31:01 2013 +0200
     1.2 +++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	Wed Sep 18 14:10:21 2013 -0700
     1.3 @@ -1724,14 +1724,6 @@
     1.4    }
     1.5  
     1.6    assert_different_registers(obj, k_RInfo, klass_RInfo);
     1.7 -  if (!k->is_loaded()) {
     1.8 -    klass2reg_with_patching(k_RInfo, op->info_for_patch());
     1.9 -  } else {
    1.10 -#ifdef _LP64
    1.11 -    __ mov_metadata(k_RInfo, k->constant_encoding());
    1.12 -#endif // _LP64
    1.13 -  }
    1.14 -  assert(obj != k_RInfo, "must be different");
    1.15  
    1.16    __ cmpptr(obj, (int32_t)NULL_WORD);
    1.17    if (op->should_profile()) {
    1.18 @@ -1748,6 +1740,14 @@
    1.19    } else {
    1.20      __ jcc(Assembler::equal, *obj_is_null);
    1.21    }
    1.22 +
    1.23 +  if (!k->is_loaded()) {
    1.24 +    klass2reg_with_patching(k_RInfo, op->info_for_patch());
    1.25 +  } else {
    1.26 +#ifdef _LP64
    1.27 +    __ mov_metadata(k_RInfo, k->constant_encoding());
    1.28 +#endif // _LP64
    1.29 +  }
    1.30    __ verify_oop(obj);
    1.31  
    1.32    if (op->fast_check()) {

mercurial