Mercurial > hg > truffle
diff src/share/vm/opto/memnode.hpp @ 6853:d804e148cff8
Merge
author | kvn |
---|---|
date | Fri, 12 Oct 2012 09:22:52 -0700 |
parents | b9a9ed0f8eeb f6badecb7ea7 |
children | b30b3c2a0cf2 |
line wrap: on
line diff
--- a/src/share/vm/opto/memnode.hpp Tue Oct 09 10:09:34 2012 -0700 +++ b/src/share/vm/opto/memnode.hpp Fri Oct 12 09:22:52 2012 -0700 @@ -274,18 +274,6 @@ virtual BasicType memory_type() const { return T_INT; } }; -//------------------------------LoadUI2LNode----------------------------------- -// Load an unsigned integer into long from memory -class LoadUI2LNode : public LoadNode { -public: - LoadUI2LNode(Node* c, Node* mem, Node* adr, const TypePtr* at, const TypeLong* t = TypeLong::UINT) - : LoadNode(c, mem, adr, at, t) {} - virtual int Opcode() const; - virtual uint ideal_reg() const { return Op_RegL; } - virtual int store_Opcode() const { return Op_StoreL; } - virtual BasicType memory_type() const { return T_LONG; } -}; - //------------------------------LoadRangeNode---------------------------------- // Load an array length from the array class LoadRangeNode : public LoadINode { @@ -437,12 +425,12 @@ // Load a narrow Klass from an object. class LoadNKlassNode : public LoadNNode { public: - LoadNKlassNode( Node *c, Node *mem, Node *adr, const TypePtr *at, const TypeNarrowOop *tk ) + LoadNKlassNode( Node *c, Node *mem, Node *adr, const TypePtr *at, const TypeNarrowKlass *tk ) : LoadNNode(c,mem,adr,at,tk) {} virtual int Opcode() const; virtual uint ideal_reg() const { return Op_RegN; } - virtual int store_Opcode() const { return Op_StoreN; } - virtual BasicType memory_type() const { return T_NARROWOOP; } + virtual int store_Opcode() const { return Op_StoreNKlass; } + virtual BasicType memory_type() const { return T_NARROWKLASS; } virtual const Type *Value( PhaseTransform *phase ) const; virtual Node *Identity( PhaseTransform *phase ); @@ -593,6 +581,15 @@ virtual BasicType memory_type() const { return T_NARROWOOP; } }; +//------------------------------StoreNKlassNode-------------------------------------- +// Store narrow klass to memory +class StoreNKlassNode : public StoreNNode { +public: + StoreNKlassNode( Node *c, Node *mem, Node *adr, const TypePtr* at, Node *val ) : StoreNNode(c,mem,adr,at,val) {} + virtual int Opcode() const; + virtual BasicType memory_type() const { return T_NARROWKLASS; } +}; + //------------------------------StoreCMNode----------------------------------- // Store card-mark byte to memory for CM // The last StoreCM before a SafePoint must be preserved and occur after its "oop" store