< 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 >