equal
deleted
inserted
replaced
719 const Type *ConvF2DNode::Value( PhaseTransform *phase ) const { |
719 const Type *ConvF2DNode::Value( PhaseTransform *phase ) const { |
720 const Type *t = phase->type( in(1) ); |
720 const Type *t = phase->type( in(1) ); |
721 if( t == Type::TOP ) return Type::TOP; |
721 if( t == Type::TOP ) return Type::TOP; |
722 if( t == Type::FLOAT ) return Type::DOUBLE; |
722 if( t == Type::FLOAT ) return Type::DOUBLE; |
723 const TypeF *tf = t->is_float_constant(); |
723 const TypeF *tf = t->is_float_constant(); |
724 #ifndef IA64 |
|
725 return TypeD::make( (double)tf->getf() ); |
724 return TypeD::make( (double)tf->getf() ); |
726 #else |
|
727 float x = tf->getf(); |
|
728 return TypeD::make( (x == 0.0f) ? (double)x : (double)x + ia64_double_zero ); |
|
729 #endif |
|
730 } |
725 } |
731 |
726 |
732 //============================================================================= |
727 //============================================================================= |
733 //------------------------------Value------------------------------------------ |
728 //------------------------------Value------------------------------------------ |
734 const Type *ConvF2INode::Value( PhaseTransform *phase ) const { |
729 const Type *ConvF2INode::Value( PhaseTransform *phase ) const { |