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