< prev index next >

src/share/vm/opto/memnode.cpp

Print this page

        

*** 65,76 **** _adr_type = in(Address)->bottom_type()->isa_ptr(); #endif dump_adr_type(this, _adr_type, st); Compile* C = Compile::current(); ! if( C->alias_type(_adr_type)->is_volatile() ) st->print(" Volatile!"); } void MemNode::dump_adr_type(const Node* mem, const TypePtr* adr_type, outputStream *st) { st->print(" @"); if (adr_type == NULL) { --- 65,83 ---- _adr_type = in(Address)->bottom_type()->isa_ptr(); #endif dump_adr_type(this, _adr_type, st); Compile* C = Compile::current(); ! if (C->alias_type(_adr_type)->is_volatile()) { st->print(" Volatile!"); + } + if (_unaligned_access) { + st->print(" unaligned"); + } + if (_mismatched_access) { + st->print(" mismatched"); + } } void MemNode::dump_adr_type(const Node* mem, const TypePtr* adr_type, outputStream *st) { st->print(" @"); if (adr_type == NULL) {
*** 3320,3329 **** --- 3327,3339 ---- // an initialization. Returns zero if a check fails. // On success, returns the (constant) offset to which the store applies, // within the initialized memory. intptr_t InitializeNode::can_capture_store(StoreNode* st, PhaseTransform* phase, bool can_reshape) { const int FAIL = 0; + if (st->is_unaligned_access()) { + return FAIL; + } if (st->req() != MemNode::ValueIn + 1) return FAIL; // an inscrutable StoreNode (card mark?) Node* ctl = st->in(MemNode::Control); if (!(ctl != NULL && ctl->is_Proj() && ctl->in(0) == this)) return FAIL; // must be unconditional after the initialization
< prev index next >