src/share/vm/opto/machnode.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8031320_9 Sdiff src/share/vm/opto

src/share/vm/opto/machnode.hpp

Print this page




  36 class CodeBuffer;
  37 class JVMState;
  38 class MachCallDynamicJavaNode;
  39 class MachCallJavaNode;
  40 class MachCallLeafNode;
  41 class MachCallNode;
  42 class MachCallRuntimeNode;
  43 class MachCallStaticJavaNode;
  44 class MachEpilogNode;
  45 class MachIfNode;
  46 class MachNullCheckNode;
  47 class MachOper;
  48 class MachProjNode;
  49 class MachPrologNode;
  50 class MachReturnNode;
  51 class MachSafePointNode;
  52 class MachSpillCopyNode;
  53 class Matcher;
  54 class PhaseRegAlloc;
  55 class RegMask;

  56 class State;
  57 
  58 //---------------------------MachOper------------------------------------------
  59 class MachOper : public ResourceObj {
  60 public:
  61   // Allocate right next to the MachNodes in the same arena
  62   void *operator new( size_t x, Compile* C ) throw() { return C->node_arena()->Amalloc_D(x); }
  63 
  64   // Opcode
  65   virtual uint opcode() const = 0;
  66 
  67   // Number of input edges.
  68   // Generally at least 1
  69   virtual uint num_edges() const { return 1; }
  70   // Array of Register masks
  71   virtual const RegMask *in_RegMask(int index) const;
  72 
  73   // Methods to output the encoding of the operand
  74 
  75   // Negate conditional branches.  Error for non-branch Nodes


 698 #ifndef PRODUCT
 699   virtual void dump_spec(outputStream *st) const;
 700 #endif
 701 };
 702 
 703 //------------------------------MachGotoNode-----------------------------------
 704 // Machine-specific versions of GotoNodes
 705 class MachGotoNode : public MachBranchNode {
 706 public:
 707   MachGotoNode() : MachBranchNode() {
 708     init_class_id(Class_MachGoto);
 709   }
 710 };
 711 
 712 //------------------------------MachFastLockNode-------------------------------------
 713 // Machine-specific versions of FastLockNodes
 714 class MachFastLockNode : public MachNode {
 715   virtual uint size_of() const { return sizeof(*this); } // Size is bigger
 716 public:
 717   BiasedLockingCounters* _counters;
 718 

 719   MachFastLockNode() : MachNode() {}
 720 };
 721 
 722 //------------------------------MachReturnNode--------------------------------
 723 // Machine-specific versions of subroutine returns
 724 class MachReturnNode : public MachNode {
 725   virtual uint size_of() const; // Size is bigger
 726 public:
 727   RegMask *_in_rms;             // Input register masks, set during allocation
 728   ReallocMark _nesting;         // assertion check for reallocations
 729   const TypePtr* _adr_type;     // memory effects of call or return
 730   MachReturnNode() : MachNode() {
 731     init_class_id(Class_MachReturn);
 732     _adr_type = TypePtr::BOTTOM; // the default: all of memory
 733   }
 734 
 735   void set_adr_type(const TypePtr* atp) { _adr_type = atp; }
 736 
 737   virtual const RegMask &in_RegMask(uint) const;
 738   virtual bool pinned() const { return true; };




  36 class CodeBuffer;
  37 class JVMState;
  38 class MachCallDynamicJavaNode;
  39 class MachCallJavaNode;
  40 class MachCallLeafNode;
  41 class MachCallNode;
  42 class MachCallRuntimeNode;
  43 class MachCallStaticJavaNode;
  44 class MachEpilogNode;
  45 class MachIfNode;
  46 class MachNullCheckNode;
  47 class MachOper;
  48 class MachProjNode;
  49 class MachPrologNode;
  50 class MachReturnNode;
  51 class MachSafePointNode;
  52 class MachSpillCopyNode;
  53 class Matcher;
  54 class PhaseRegAlloc;
  55 class RegMask;
  56 class RTMLockingCounters;
  57 class State;
  58 
  59 //---------------------------MachOper------------------------------------------
  60 class MachOper : public ResourceObj {
  61 public:
  62   // Allocate right next to the MachNodes in the same arena
  63   void *operator new( size_t x, Compile* C ) throw() { return C->node_arena()->Amalloc_D(x); }
  64 
  65   // Opcode
  66   virtual uint opcode() const = 0;
  67 
  68   // Number of input edges.
  69   // Generally at least 1
  70   virtual uint num_edges() const { return 1; }
  71   // Array of Register masks
  72   virtual const RegMask *in_RegMask(int index) const;
  73 
  74   // Methods to output the encoding of the operand
  75 
  76   // Negate conditional branches.  Error for non-branch Nodes


 699 #ifndef PRODUCT
 700   virtual void dump_spec(outputStream *st) const;
 701 #endif
 702 };
 703 
 704 //------------------------------MachGotoNode-----------------------------------
 705 // Machine-specific versions of GotoNodes
 706 class MachGotoNode : public MachBranchNode {
 707 public:
 708   MachGotoNode() : MachBranchNode() {
 709     init_class_id(Class_MachGoto);
 710   }
 711 };
 712 
 713 //------------------------------MachFastLockNode-------------------------------------
 714 // Machine-specific versions of FastLockNodes
 715 class MachFastLockNode : public MachNode {
 716   virtual uint size_of() const { return sizeof(*this); } // Size is bigger
 717 public:
 718   BiasedLockingCounters* _counters;
 719   RTMLockingCounters* _rtmcounters;      // RTM lock counters for inflated locks
 720   RTMLockingCounters* _stackrtmcounters; // RTM lock counters for stack locks
 721   MachFastLockNode() : MachNode() {}
 722 };
 723 
 724 //------------------------------MachReturnNode--------------------------------
 725 // Machine-specific versions of subroutine returns
 726 class MachReturnNode : public MachNode {
 727   virtual uint size_of() const; // Size is bigger
 728 public:
 729   RegMask *_in_rms;             // Input register masks, set during allocation
 730   ReallocMark _nesting;         // assertion check for reallocations
 731   const TypePtr* _adr_type;     // memory effects of call or return
 732   MachReturnNode() : MachNode() {
 733     init_class_id(Class_MachReturn);
 734     _adr_type = TypePtr::BOTTOM; // the default: all of memory
 735   }
 736 
 737   void set_adr_type(const TypePtr* atp) { _adr_type = atp; }
 738 
 739   virtual const RegMask &in_RegMask(uint) const;
 740   virtual bool pinned() const { return true; };


src/share/vm/opto/machnode.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File