Mercurial > hg > truffle
comparison src/share/vm/opto/memnode.cpp @ 168:7793bd37a336
6705887: Compressed Oops: generate x64 addressing and implicit null checks with narrow oops
Summary: Generate addresses and implicit null checks with narrow oops to avoid decoding.
Reviewed-by: jrose, never
author | kvn |
---|---|
date | Thu, 29 May 2008 12:04:14 -0700 |
parents | c436414a719e |
children | 9148c65abefc |
comparison
equal
deleted
inserted
replaced
167:feeb96a45707 | 168:7793bd37a336 |
---|---|
1623 #ifdef _LP64 | 1623 #ifdef _LP64 |
1624 if (adr_type->is_ptr_to_narrowoop()) { | 1624 if (adr_type->is_ptr_to_narrowoop()) { |
1625 const TypeNarrowOop* narrowtype = tk->is_oopptr()->make_narrowoop(); | 1625 const TypeNarrowOop* narrowtype = tk->is_oopptr()->make_narrowoop(); |
1626 Node* load_klass = gvn.transform(new (C, 3) LoadNKlassNode(ctl, mem, adr, at, narrowtype)); | 1626 Node* load_klass = gvn.transform(new (C, 3) LoadNKlassNode(ctl, mem, adr, at, narrowtype)); |
1627 return DecodeNNode::decode(&gvn, load_klass); | 1627 return DecodeNNode::decode(&gvn, load_klass); |
1628 } else | 1628 } |
1629 #endif | 1629 #endif |
1630 { | 1630 assert(!adr_type->is_ptr_to_narrowoop(), "should have got back a narrow oop"); |
1631 assert(!adr_type->is_ptr_to_narrowoop(), "should have got back a narrow oop"); | 1631 return new (C, 3) LoadKlassNode(ctl, mem, adr, at, tk); |
1632 return new (C, 3) LoadKlassNode(ctl, mem, adr, at, tk); | |
1633 } | |
1634 ShouldNotReachHere(); | |
1635 return (LoadKlassNode*)NULL; | |
1636 } | 1632 } |
1637 | 1633 |
1638 //------------------------------Value------------------------------------------ | 1634 //------------------------------Value------------------------------------------ |
1639 const Type *LoadKlassNode::Value( PhaseTransform *phase ) const { | 1635 const Type *LoadKlassNode::Value( PhaseTransform *phase ) const { |
1640 return klass_value_common(phase); | 1636 return klass_value_common(phase); |