comparison src/share/vm/opto/mulnode.hpp @ 145:f3de1255b035

6603011: RFE: Optimize long division Summary: Transform long division by constant into multiply Reviewed-by: never, kvn
author rasbold
date Wed, 07 May 2008 08:06:46 -0700
parents a61af66fc99e
children d1605aabd0a1
comparison
equal deleted inserted replaced
132:60b728ec77c1 145:f3de1255b035
131 int mul_opcode() const { return Op_MulD; } 131 int mul_opcode() const { return Op_MulD; }
132 const Type *bottom_type() const { return Type::DOUBLE; } 132 const Type *bottom_type() const { return Type::DOUBLE; }
133 virtual uint ideal_reg() const { return Op_RegD; } 133 virtual uint ideal_reg() const { return Op_RegD; }
134 }; 134 };
135 135
136 //-------------------------------MulHiLNode------------------------------------
137 // Upper 64 bits of a 64 bit by 64 bit multiply
138 class MulHiLNode : public Node {
139 public:
140 MulHiLNode( Node *in1, Node *in2 ) : Node(0,in1,in2) {}
141 virtual int Opcode() const;
142 virtual const Type *Value( PhaseTransform *phase ) const;
143 const Type *bottom_type() const { return TypeLong::LONG; }
144 virtual uint ideal_reg() const { return Op_RegL; }
145 };
136 146
137 //------------------------------AndINode--------------------------------------- 147 //------------------------------AndINode---------------------------------------
138 // Logically AND 2 integers. Included with the MUL nodes because it inherits 148 // Logically AND 2 integers. Included with the MUL nodes because it inherits
139 // all the behavior of multiplication on a ring. 149 // all the behavior of multiplication on a ring.
140 class AndINode : public MulINode { 150 class AndINode : public MulINode {