hotspot/src/share/vm/opto/graphKit.cpp
changeset 360 21d113ecbf6a
parent 247 2aeab9ac7fea
child 590 2954744d7bba
child 1374 4c24294029a9
equal deleted inserted replaced
357:f4edb0d9f109 360:21d113ecbf6a
  1326   Node* mem = memory(adr_idx);
  1326   Node* mem = memory(adr_idx);
  1327   Node* ld;
  1327   Node* ld;
  1328   if (require_atomic_access && bt == T_LONG) {
  1328   if (require_atomic_access && bt == T_LONG) {
  1329     ld = LoadLNode::make_atomic(C, ctl, mem, adr, adr_type, t);
  1329     ld = LoadLNode::make_atomic(C, ctl, mem, adr, adr_type, t);
  1330   } else {
  1330   } else {
  1331     ld = LoadNode::make(C, ctl, mem, adr, adr_type, t, bt);
  1331     ld = LoadNode::make(_gvn, ctl, mem, adr, adr_type, t, bt);
  1332   }
  1332   }
  1333   return _gvn.transform(ld);
  1333   return _gvn.transform(ld);
  1334 }
  1334 }
  1335 
  1335 
  1336 Node* GraphKit::store_to_memory(Node* ctl, Node* adr, Node *val, BasicType bt,
  1336 Node* GraphKit::store_to_memory(Node* ctl, Node* adr, Node *val, BasicType bt,
  1342   Node *mem = memory(adr_idx);
  1342   Node *mem = memory(adr_idx);
  1343   Node* st;
  1343   Node* st;
  1344   if (require_atomic_access && bt == T_LONG) {
  1344   if (require_atomic_access && bt == T_LONG) {
  1345     st = StoreLNode::make_atomic(C, ctl, mem, adr, adr_type, val);
  1345     st = StoreLNode::make_atomic(C, ctl, mem, adr, adr_type, val);
  1346   } else {
  1346   } else {
  1347     st = StoreNode::make(C, ctl, mem, adr, adr_type, val, bt);
  1347     st = StoreNode::make(_gvn, ctl, mem, adr, adr_type, val, bt);
  1348   }
  1348   }
  1349   st = _gvn.transform(st);
  1349   st = _gvn.transform(st);
  1350   set_memory(st, adr_idx);
  1350   set_memory(st, adr_idx);
  1351   // Back-to-back stores can only remove intermediate store with DU info
  1351   // Back-to-back stores can only remove intermediate store with DU info
  1352   // so push on worklist for optimizer.
  1352   // so push on worklist for optimizer.