Mercurial > hg > graal-compiler
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 { |