Mercurial > hg > truffle
comparison 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 |
comparison
equal
deleted
inserted
replaced
6842:b9a9ed0f8eeb | 6853:d804e148cff8 |
---|---|
272 virtual uint ideal_reg() const { return Op_RegI; } | 272 virtual uint ideal_reg() const { return Op_RegI; } |
273 virtual int store_Opcode() const { return Op_StoreI; } | 273 virtual int store_Opcode() const { return Op_StoreI; } |
274 virtual BasicType memory_type() const { return T_INT; } | 274 virtual BasicType memory_type() const { return T_INT; } |
275 }; | 275 }; |
276 | 276 |
277 //------------------------------LoadUI2LNode----------------------------------- | |
278 // Load an unsigned integer into long from memory | |
279 class LoadUI2LNode : public LoadNode { | |
280 public: | |
281 LoadUI2LNode(Node* c, Node* mem, Node* adr, const TypePtr* at, const TypeLong* t = TypeLong::UINT) | |
282 : LoadNode(c, mem, adr, at, t) {} | |
283 virtual int Opcode() const; | |
284 virtual uint ideal_reg() const { return Op_RegL; } | |
285 virtual int store_Opcode() const { return Op_StoreL; } | |
286 virtual BasicType memory_type() const { return T_LONG; } | |
287 }; | |
288 | |
289 //------------------------------LoadRangeNode---------------------------------- | 277 //------------------------------LoadRangeNode---------------------------------- |
290 // Load an array length from the array | 278 // Load an array length from the array |
291 class LoadRangeNode : public LoadINode { | 279 class LoadRangeNode : public LoadINode { |
292 public: | 280 public: |
293 LoadRangeNode( Node *c, Node *mem, Node *adr, const TypeInt *ti = TypeInt::POS ) | 281 LoadRangeNode( Node *c, Node *mem, Node *adr, const TypeInt *ti = TypeInt::POS ) |
435 | 423 |
436 //------------------------------LoadNKlassNode--------------------------------- | 424 //------------------------------LoadNKlassNode--------------------------------- |
437 // Load a narrow Klass from an object. | 425 // Load a narrow Klass from an object. |
438 class LoadNKlassNode : public LoadNNode { | 426 class LoadNKlassNode : public LoadNNode { |
439 public: | 427 public: |
440 LoadNKlassNode( Node *c, Node *mem, Node *adr, const TypePtr *at, const TypeNarrowOop *tk ) | 428 LoadNKlassNode( Node *c, Node *mem, Node *adr, const TypePtr *at, const TypeNarrowKlass *tk ) |
441 : LoadNNode(c,mem,adr,at,tk) {} | 429 : LoadNNode(c,mem,adr,at,tk) {} |
442 virtual int Opcode() const; | 430 virtual int Opcode() const; |
443 virtual uint ideal_reg() const { return Op_RegN; } | 431 virtual uint ideal_reg() const { return Op_RegN; } |
444 virtual int store_Opcode() const { return Op_StoreN; } | 432 virtual int store_Opcode() const { return Op_StoreNKlass; } |
445 virtual BasicType memory_type() const { return T_NARROWOOP; } | 433 virtual BasicType memory_type() const { return T_NARROWKLASS; } |
446 | 434 |
447 virtual const Type *Value( PhaseTransform *phase ) const; | 435 virtual const Type *Value( PhaseTransform *phase ) const; |
448 virtual Node *Identity( PhaseTransform *phase ); | 436 virtual Node *Identity( PhaseTransform *phase ); |
449 virtual bool depends_only_on_test() const { return true; } | 437 virtual bool depends_only_on_test() const { return true; } |
450 }; | 438 }; |
589 class StoreNNode : public StoreNode { | 577 class StoreNNode : public StoreNode { |
590 public: | 578 public: |
591 StoreNNode( Node *c, Node *mem, Node *adr, const TypePtr* at, Node *val ) : StoreNode(c,mem,adr,at,val) {} | 579 StoreNNode( Node *c, Node *mem, Node *adr, const TypePtr* at, Node *val ) : StoreNode(c,mem,adr,at,val) {} |
592 virtual int Opcode() const; | 580 virtual int Opcode() const; |
593 virtual BasicType memory_type() const { return T_NARROWOOP; } | 581 virtual BasicType memory_type() const { return T_NARROWOOP; } |
582 }; | |
583 | |
584 //------------------------------StoreNKlassNode-------------------------------------- | |
585 // Store narrow klass to memory | |
586 class StoreNKlassNode : public StoreNNode { | |
587 public: | |
588 StoreNKlassNode( Node *c, Node *mem, Node *adr, const TypePtr* at, Node *val ) : StoreNNode(c,mem,adr,at,val) {} | |
589 virtual int Opcode() const; | |
590 virtual BasicType memory_type() const { return T_NARROWKLASS; } | |
594 }; | 591 }; |
595 | 592 |
596 //------------------------------StoreCMNode----------------------------------- | 593 //------------------------------StoreCMNode----------------------------------- |
597 // Store card-mark byte to memory for CM | 594 // Store card-mark byte to memory for CM |
598 // The last StoreCM before a SafePoint must be preserved and occur after its "oop" store | 595 // The last StoreCM before a SafePoint must be preserved and occur after its "oop" store |