< prev index next >

src/hotspot/cpu/x86/gc/shared/barrierSetAssembler_x86.cpp

Print this page
rev 50099 : 8203157: Object equals abstraction for BarrierSetAssembler


  93             __ encode_heap_oop(val);
  94           }
  95           __ movl(dst, val);
  96         } else
  97 #endif
  98         {
  99           __ movptr(dst, val);
 100         }
 101       }
 102     } else {
 103       assert(on_root, "why else?");
 104       assert(val != noreg, "not supported");
 105       __ movptr(dst, val);
 106     }
 107     break;
 108   }
 109   default: Unimplemented();
 110   }
 111 }
 112 





















 113 void BarrierSetAssembler::try_resolve_jobject_in_native(MacroAssembler* masm, Register jni_env,
 114                                                         Register obj, Register tmp, Label& slowpath) {
 115   __ clear_jweak_tag(obj);
 116   __ movptr(obj, Address(obj, 0));
 117 }


  93             __ encode_heap_oop(val);
  94           }
  95           __ movl(dst, val);
  96         } else
  97 #endif
  98         {
  99           __ movptr(dst, val);
 100         }
 101       }
 102     } else {
 103       assert(on_root, "why else?");
 104       assert(val != noreg, "not supported");
 105       __ movptr(dst, val);
 106     }
 107     break;
 108   }
 109   default: Unimplemented();
 110   }
 111 }
 112 
 113 #ifndef _LP64
 114 void BarrierSetAssembler::obj_equals(MacroAssembler* masm, DecoratorSet decorators,
 115                                      Address obj1, jobject obj2) {
 116   __ cmpoop_raw(obj1, obj2);
 117 }
 118 
 119 void BarrierSetAssembler::obj_equals(MacroAssembler* masm, DecoratorSet decorators,
 120                                      Register obj1, jobject obj2) {
 121   __ cmpoop_raw(obj1, obj2);
 122 }
 123 #endif
 124 void BarrierSetAssembler::obj_equals(MacroAssembler* masm, DecoratorSet decorators,
 125                                      Register obj1, Address obj2) {
 126   __ cmpptr(obj1, obj2);
 127 }
 128 
 129 void BarrierSetAssembler::obj_equals(MacroAssembler* masm, DecoratorSet decorators,
 130                                      Register obj1, Register obj2) {
 131   __ cmpptr(obj1, obj2);
 132 }
 133 
 134 void BarrierSetAssembler::try_resolve_jobject_in_native(MacroAssembler* masm, Register jni_env,
 135                                                         Register obj, Register tmp, Label& slowpath) {
 136   __ clear_jweak_tag(obj);
 137   __ movptr(obj, Address(obj, 0));
 138 }
< prev index next >