489 const Type *bottom_type() const { return Type::DOUBLE; } |
489 const Type *bottom_type() const { return Type::DOUBLE; } |
490 virtual uint ideal_reg() const { return Op_RegD; } |
490 virtual uint ideal_reg() const { return Op_RegD; } |
491 virtual const Type *Value( PhaseTransform *phase ) const; |
491 virtual const Type *Value( PhaseTransform *phase ) const; |
492 }; |
492 }; |
493 |
493 |
494 //------------------------------PowDNode--------------------------------------- |
|
495 // Raise a double to a double power |
|
496 class PowDNode : public Node { |
|
497 public: |
|
498 PowDNode(Compile* C, Node *c, Node *in1, Node *in2 ) : Node(c, in1, in2) { |
|
499 init_flags(Flag_is_expensive); |
|
500 C->add_expensive_node(this); |
|
501 } |
|
502 virtual int Opcode() const; |
|
503 const Type *bottom_type() const { return Type::DOUBLE; } |
|
504 virtual uint ideal_reg() const { return Op_RegD; } |
|
505 virtual const Type *Value( PhaseTransform *phase ) const; |
|
506 }; |
|
507 |
|
508 //-------------------------------ReverseBytesINode-------------------------------- |
494 //-------------------------------ReverseBytesINode-------------------------------- |
509 // reverse bytes of an integer |
495 // reverse bytes of an integer |
510 class ReverseBytesINode : public Node { |
496 class ReverseBytesINode : public Node { |
511 public: |
497 public: |
512 ReverseBytesINode(Node *c, Node *in1) : Node(c, in1) {} |
498 ReverseBytesINode(Node *c, Node *in1) : Node(c, in1) {} |