hotspot/src/share/vm/c1/c1_LIRGenerator.cpp
changeset 7895 e71bad345f3a
parent 7713 1e06d2419258
parent 7894 48e7725b6bc4
child 8066 919e5489b292
equal deleted inserted replaced
7739:f658ec2730fa 7895:e71bad345f3a
  1988   off.load_item();
  1988   off.load_item();
  1989   src.load_item();
  1989   src.load_item();
  1990 
  1990 
  1991   LIR_Opr reg = reg = rlock_result(x, x->basic_type());
  1991   LIR_Opr reg = reg = rlock_result(x, x->basic_type());
  1992 
  1992 
       
  1993   get_Object_unsafe(reg, src.result(), off.result(), type, x->is_volatile());
  1993   if (x->is_volatile() && os::is_MP()) __ membar_acquire();
  1994   if (x->is_volatile() && os::is_MP()) __ membar_acquire();
  1994   get_Object_unsafe(reg, src.result(), off.result(), type, x->is_volatile());
       
  1995   if (x->is_volatile() && os::is_MP()) __ membar();
       
  1996 }
  1995 }
  1997 
  1996 
  1998 
  1997 
  1999 void LIRGenerator::do_UnsafePutObject(UnsafePutObject* x) {
  1998 void LIRGenerator::do_UnsafePutObject(UnsafePutObject* x) {
  2000   BasicType type = x->basic_type();
  1999   BasicType type = x->basic_type();
  2012 
  2011 
  2013   set_no_result(x);
  2012   set_no_result(x);
  2014 
  2013 
  2015   if (x->is_volatile() && os::is_MP()) __ membar_release();
  2014   if (x->is_volatile() && os::is_MP()) __ membar_release();
  2016   put_Object_unsafe(src.result(), off.result(), data.result(), type, x->is_volatile());
  2015   put_Object_unsafe(src.result(), off.result(), data.result(), type, x->is_volatile());
       
  2016   if (x->is_volatile() && os::is_MP()) __ membar();
  2017 }
  2017 }
  2018 
  2018 
  2019 
  2019 
  2020 void LIRGenerator::do_UnsafePrefetch(UnsafePrefetch* x, bool is_store) {
  2020 void LIRGenerator::do_UnsafePrefetch(UnsafePrefetch* x, bool is_store) {
  2021   LIRItem src(x->object(), this);
  2021   LIRItem src(x->object(), this);