Mercurial > hg > graal-compiler
comparison src/share/vm/opto/memnode.hpp @ 6848:8e47bac5643a
7054512: Compress class pointers after perm gen removal
Summary: support of compress class pointers in the compilers.
Reviewed-by: kvn, twisti
author | roland |
---|---|
date | Tue, 09 Oct 2012 10:11:38 +0200 |
parents | 7eca5de9e0b6 |
children | f6badecb7ea7 |
comparison
equal
deleted
inserted
replaced
6847:65d07d9ee446 | 6848:8e47bac5643a |
---|---|
435 | 435 |
436 //------------------------------LoadNKlassNode--------------------------------- | 436 //------------------------------LoadNKlassNode--------------------------------- |
437 // Load a narrow Klass from an object. | 437 // Load a narrow Klass from an object. |
438 class LoadNKlassNode : public LoadNNode { | 438 class LoadNKlassNode : public LoadNNode { |
439 public: | 439 public: |
440 LoadNKlassNode( Node *c, Node *mem, Node *adr, const TypePtr *at, const TypeNarrowOop *tk ) | 440 LoadNKlassNode( Node *c, Node *mem, Node *adr, const TypePtr *at, const TypeNarrowKlass *tk ) |
441 : LoadNNode(c,mem,adr,at,tk) {} | 441 : LoadNNode(c,mem,adr,at,tk) {} |
442 virtual int Opcode() const; | 442 virtual int Opcode() const; |
443 virtual uint ideal_reg() const { return Op_RegN; } | 443 virtual uint ideal_reg() const { return Op_RegN; } |
444 virtual int store_Opcode() const { return Op_StoreN; } | 444 virtual int store_Opcode() const { return Op_StoreNKlass; } |
445 virtual BasicType memory_type() const { return T_NARROWOOP; } | 445 virtual BasicType memory_type() const { return T_NARROWKLASS; } |
446 | 446 |
447 virtual const Type *Value( PhaseTransform *phase ) const; | 447 virtual const Type *Value( PhaseTransform *phase ) const; |
448 virtual Node *Identity( PhaseTransform *phase ); | 448 virtual Node *Identity( PhaseTransform *phase ); |
449 virtual bool depends_only_on_test() const { return true; } | 449 virtual bool depends_only_on_test() const { return true; } |
450 }; | 450 }; |
589 class StoreNNode : public StoreNode { | 589 class StoreNNode : public StoreNode { |
590 public: | 590 public: |
591 StoreNNode( Node *c, Node *mem, Node *adr, const TypePtr* at, Node *val ) : StoreNode(c,mem,adr,at,val) {} | 591 StoreNNode( Node *c, Node *mem, Node *adr, const TypePtr* at, Node *val ) : StoreNode(c,mem,adr,at,val) {} |
592 virtual int Opcode() const; | 592 virtual int Opcode() const; |
593 virtual BasicType memory_type() const { return T_NARROWOOP; } | 593 virtual BasicType memory_type() const { return T_NARROWOOP; } |
594 }; | |
595 | |
596 //------------------------------StoreNKlassNode-------------------------------------- | |
597 // Store narrow klass to memory | |
598 class StoreNKlassNode : public StoreNNode { | |
599 public: | |
600 StoreNKlassNode( Node *c, Node *mem, Node *adr, const TypePtr* at, Node *val ) : StoreNNode(c,mem,adr,at,val) {} | |
601 virtual int Opcode() const; | |
602 virtual BasicType memory_type() const { return T_NARROWKLASS; } | |
594 }; | 603 }; |
595 | 604 |
596 //------------------------------StoreCMNode----------------------------------- | 605 //------------------------------StoreCMNode----------------------------------- |
597 // Store card-mark byte to memory for CM | 606 // Store card-mark byte to memory for CM |
598 // The last StoreCM before a SafePoint must be preserved and occur after its "oop" store | 607 // The last StoreCM before a SafePoint must be preserved and occur after its "oop" store |