< prev index next >

src/hotspot/share/opto/machnode.hpp

Print this page

        

*** 195,205 **** //------------------------------MachNode--------------------------------------- // Base type for all machine specific nodes. All node classes generated by the // ADLC inherit from this class. class MachNode : public Node { public: ! MachNode() : Node((uint)0), _num_opnds(0), _opnds(NULL) { init_class_id(Class_Mach); } // Required boilerplate virtual uint size_of() const { return sizeof(MachNode); } virtual int Opcode() const; // Always equal to MachNode --- 195,205 ---- //------------------------------MachNode--------------------------------------- // Base type for all machine specific nodes. All node classes generated by the // ADLC inherit from this class. class MachNode : public Node { public: ! MachNode() : Node((uint)0), _barrier(0), _num_opnds(0), _opnds(NULL) { init_class_id(Class_Mach); } // Required boilerplate virtual uint size_of() const { return sizeof(MachNode); } virtual int Opcode() const; // Always equal to MachNode
*** 209,218 **** --- 209,221 ---- virtual uint oper_input_base() const { return 1; } // Position of constant base node in node's inputs. -1 if // no constant base node input. virtual uint mach_constant_base_node_input() const { return (uint)-1; } + uint8_t barrier_data() const { return _barrier; } + void set_barrier_data(uint data) { _barrier = data; } + // Copy inputs and operands to new node of instruction. // Called from cisc_version() and short_branch_version(). // !!!! The method's body is defined in ad_<arch>.cpp file. void fill_new_machnode(MachNode *n) const;
*** 253,262 **** --- 256,268 ---- // same singleton regiser (e.g., Intel IDIV which binds AX to be // both an input and an output). It is nessecary when the input and // output have choices - but they must use the same choice. virtual uint two_adr( ) const { return 0; } + // The GC might require some barrier metadata for machine code emission. + uint8_t _barrier; + // Array of complex operand pointers. Each corresponds to zero or // more leafs. Must be set by MachNode constructor to point to an // internal array of MachOpers. The MachOper array is sized by // specific MachNodes described in the ADL. uint _num_opnds;
< prev index next >