< prev index next >

src/share/vm/opto/subnode.hpp

Print this page

        

*** 471,476 **** --- 471,500 ---- virtual int Opcode() const; const Type *bottom_type() const { return TypeInt::SHORT; } virtual uint ideal_reg() const { return Op_RegI; } }; + //------------------------------FmaDNode-------------------------------------- + // fused-multiply-add double + class FmaDNode : public Node { + public: + FmaDNode(Node *c, Node *in1, Node *in2, Node *in3) : Node(c, in1, in2, in3) {} + virtual int Opcode() const; + const Type *bottom_type() const { return Type::DOUBLE; } + virtual uint match_edge(uint idx) const; + virtual uint ideal_reg() const { return Op_RegD; } + virtual const Type* Value(PhaseGVN* phase) const; + }; + + //------------------------------FmaFNode-------------------------------------- + // fused-multiply-add float + class FmaFNode : public Node { + public: + FmaFNode(Node *c, Node *in1, Node *in2, Node *in3) : Node(c, in1, in2, in3) {} + virtual int Opcode() const; + const Type *bottom_type() const { return Type::FLOAT; } + virtual uint match_edge(uint idx) const; + virtual uint ideal_reg() const { return Op_RegF; } + virtual const Type* Value(PhaseGVN* phase) const; + }; + #endif // SHARE_VM_OPTO_SUBNODE_HPP
< prev index next >