comparison src/share/vm/opto/idealKit.cpp @ 18041:52b4284cb496

Merge with jdk8u20-b26
author Gilles Duboscq <duboscq@ssw.jku.at>
date Wed, 15 Oct 2014 16:02:50 +0200
parents 89152779163c
children
comparison
equal deleted inserted replaced
17606:45d7b2c7029d 18041:52b4284cb496
357 const TypePtr* adr_type = NULL; // debug-mode-only argument 357 const TypePtr* adr_type = NULL; // debug-mode-only argument
358 debug_only(adr_type = C->get_adr_type(adr_idx)); 358 debug_only(adr_type = C->get_adr_type(adr_idx));
359 Node* mem = memory(adr_idx); 359 Node* mem = memory(adr_idx);
360 Node* ld; 360 Node* ld;
361 if (require_atomic_access && bt == T_LONG) { 361 if (require_atomic_access && bt == T_LONG) {
362 ld = LoadLNode::make_atomic(C, ctl, mem, adr, adr_type, t); 362 ld = LoadLNode::make_atomic(C, ctl, mem, adr, adr_type, t, MemNode::unordered);
363 } else { 363 } else {
364 ld = LoadNode::make(_gvn, ctl, mem, adr, adr_type, t, bt); 364 ld = LoadNode::make(_gvn, ctl, mem, adr, adr_type, t, bt, MemNode::unordered);
365 } 365 }
366 return transform(ld); 366 return transform(ld);
367 } 367 }
368 368
369 Node* IdealKit::store(Node* ctl, Node* adr, Node *val, BasicType bt, 369 Node* IdealKit::store(Node* ctl, Node* adr, Node *val, BasicType bt,
370 int adr_idx, 370 int adr_idx,
371 bool require_atomic_access) { 371 MemNode::MemOrd mo, bool require_atomic_access) {
372 assert(adr_idx != Compile::AliasIdxTop, "use other store_to_memory factory" ); 372 assert(adr_idx != Compile::AliasIdxTop, "use other store_to_memory factory");
373 const TypePtr* adr_type = NULL; 373 const TypePtr* adr_type = NULL;
374 debug_only(adr_type = C->get_adr_type(adr_idx)); 374 debug_only(adr_type = C->get_adr_type(adr_idx));
375 Node *mem = memory(adr_idx); 375 Node *mem = memory(adr_idx);
376 Node* st; 376 Node* st;
377 if (require_atomic_access && bt == T_LONG) { 377 if (require_atomic_access && bt == T_LONG) {
378 st = StoreLNode::make_atomic(C, ctl, mem, adr, adr_type, val); 378 st = StoreLNode::make_atomic(C, ctl, mem, adr, adr_type, val, mo);
379 } else { 379 } else {
380 st = StoreNode::make(_gvn, ctl, mem, adr, adr_type, val, bt); 380 st = StoreNode::make(_gvn, ctl, mem, adr, adr_type, val, bt, mo);
381 } 381 }
382 st = transform(st); 382 st = transform(st);
383 set_memory(st, adr_idx); 383 set_memory(st, adr_idx);
384 384
385 return st; 385 return st;