< prev index next >

src/hotspot/share/opto/mulnode.hpp

Print this page




 272   const Type *bottom_type() const { return Type::DOUBLE; }
 273   virtual uint ideal_reg() const { return Op_RegD; }
 274   virtual const Type* Value(PhaseGVN* phase) const;
 275 };
 276 
 277 //------------------------------FmaFNode--------------------------------------
 278 // fused-multiply-add float
 279 class FmaFNode : public Node {
 280 public:
 281   FmaFNode(Node *c, Node *in1, Node *in2, Node *in3) : Node(c, in1, in2, in3) {}
 282   virtual int Opcode() const;
 283   const Type *bottom_type() const { return Type::FLOAT; }
 284   virtual uint ideal_reg() const { return Op_RegF; }
 285   virtual const Type* Value(PhaseGVN* phase) const;
 286 };
 287 
 288 //------------------------------MulAddS2INode----------------------------------
 289 // Multiply shorts into integers and add them.
 290 // Semantics: I_OUT = S1 * S2 + S3 * S4
 291 class MulAddS2INode : public Node {

 292 public:
 293   MulAddS2INode(Node* in1, Node *in2, Node *in3, Node* in4) : Node(0, in1, in2, in3, in4) {}
 294   virtual int Opcode() const;
 295   const Type *bottom_type() const { return TypeInt::INT; }
 296   virtual uint ideal_reg() const { return Op_RegI; }
 297 };
 298 
 299 #endif // SHARE_VM_OPTO_MULNODE_HPP


 272   const Type *bottom_type() const { return Type::DOUBLE; }
 273   virtual uint ideal_reg() const { return Op_RegD; }
 274   virtual const Type* Value(PhaseGVN* phase) const;
 275 };
 276 
 277 //------------------------------FmaFNode--------------------------------------
 278 // fused-multiply-add float
 279 class FmaFNode : public Node {
 280 public:
 281   FmaFNode(Node *c, Node *in1, Node *in2, Node *in3) : Node(c, in1, in2, in3) {}
 282   virtual int Opcode() const;
 283   const Type *bottom_type() const { return Type::FLOAT; }
 284   virtual uint ideal_reg() const { return Op_RegF; }
 285   virtual const Type* Value(PhaseGVN* phase) const;
 286 };
 287 
 288 //------------------------------MulAddS2INode----------------------------------
 289 // Multiply shorts into integers and add them.
 290 // Semantics: I_OUT = S1 * S2 + S3 * S4
 291 class MulAddS2INode : public Node {
 292   virtual uint hash() const;
 293 public:
 294   MulAddS2INode(Node* in1, Node *in2, Node *in3, Node* in4) : Node(0, in1, in2, in3, in4) {}
 295   virtual int Opcode() const;
 296   const Type *bottom_type() const { return TypeInt::INT; }
 297   virtual uint ideal_reg() const { return Op_RegI; }
 298 };
 299 
 300 #endif // SHARE_VM_OPTO_MULNODE_HPP
< prev index next >