src/share/vm/opto/movenode.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8034812 Cdiff src/share/vm/opto/movenode.cpp

src/share/vm/opto/movenode.cpp

Print this page

        

*** 158,174 **** //------------------------------make------------------------------------------- // Make a correctly-flavored CMove. Since _type is directly determined // from the inputs we do not need to specify it here. CMoveNode *CMoveNode::make( Compile *C, Node *c, Node *bol, Node *left, Node *right, const Type *t ) { switch( t->basic_type() ) { ! case T_INT: return new (C) CMoveINode( bol, left, right, t->is_int() ); ! case T_FLOAT: return new (C) CMoveFNode( bol, left, right, t ); ! case T_DOUBLE: return new (C) CMoveDNode( bol, left, right, t ); ! case T_LONG: return new (C) CMoveLNode( bol, left, right, t->is_long() ); ! case T_OBJECT: return new (C) CMovePNode( c, bol, left, right, t->is_oopptr() ); ! case T_ADDRESS: return new (C) CMovePNode( c, bol, left, right, t->is_ptr() ); ! case T_NARROWOOP: return new (C) CMoveNNode( c, bol, left, right, t ); default: ShouldNotReachHere(); return NULL; } } --- 158,174 ---- //------------------------------make------------------------------------------- // Make a correctly-flavored CMove. Since _type is directly determined // from the inputs we do not need to specify it here. CMoveNode *CMoveNode::make( Compile *C, Node *c, Node *bol, Node *left, Node *right, const Type *t ) { switch( t->basic_type() ) { ! case T_INT: return new CMoveINode( bol, left, right, t->is_int() ); ! case T_FLOAT: return new CMoveFNode( bol, left, right, t ); ! case T_DOUBLE: return new CMoveDNode( bol, left, right, t ); ! case T_LONG: return new CMoveLNode( bol, left, right, t->is_long() ); ! case T_OBJECT: return new CMovePNode( c, bol, left, right, t->is_oopptr() ); ! case T_ADDRESS: return new CMovePNode( c, bol, left, right, t->is_ptr() ); ! case T_NARROWOOP: return new CMoveNNode( c, bol, left, right, t ); default: ShouldNotReachHere(); return NULL; } }
*** 231,243 **** // Convert to a bool (flipped) // Build int->bool conversion #ifndef PRODUCT if( PrintOpto ) tty->print_cr("CMOV to I2B"); #endif ! Node *n = new (phase->C) Conv2BNode( cmp->in(1) ); if( flip ) ! n = new (phase->C) XorINode( phase->transform(n), phase->intcon(1) ); return n; } //============================================================================= --- 231,243 ---- // Convert to a bool (flipped) // Build int->bool conversion #ifndef PRODUCT if( PrintOpto ) tty->print_cr("CMOV to I2B"); #endif ! Node *n = new Conv2BNode( cmp->in(1) ); if( flip ) ! n = new XorINode( phase->transform(n), phase->intcon(1) ); return n; } //=============================================================================
*** 287,299 **** // Allow only SubF(0,X) and fail out for all others; NegF is not OK if( sub->Opcode() != Op_SubF || sub->in(2) != X || phase->type(sub->in(1)) != TypeF::ZERO ) return NULL; ! Node *abs = new (phase->C) AbsFNode( X ); if( flip ) ! abs = new (phase->C) SubFNode(sub->in(1), phase->transform(abs)); return abs; } //============================================================================= --- 287,299 ---- // Allow only SubF(0,X) and fail out for all others; NegF is not OK if( sub->Opcode() != Op_SubF || sub->in(2) != X || phase->type(sub->in(1)) != TypeF::ZERO ) return NULL; ! Node *abs = new AbsFNode( X ); if( flip ) ! abs = new SubFNode(sub->in(1), phase->transform(abs)); return abs; } //=============================================================================
*** 343,355 **** // Allow only SubD(0,X) and fail out for all others; NegD is not OK if( sub->Opcode() != Op_SubD || sub->in(2) != X || phase->type(sub->in(1)) != TypeD::ZERO ) return NULL; ! Node *abs = new (phase->C) AbsDNode( X ); if( flip ) ! abs = new (phase->C) SubDNode(sub->in(1), phase->transform(abs)); return abs; } //------------------------------Value------------------------------------------ --- 343,355 ---- // Allow only SubD(0,X) and fail out for all others; NegD is not OK if( sub->Opcode() != Op_SubD || sub->in(2) != X || phase->type(sub->in(1)) != TypeD::ZERO ) return NULL; ! Node *abs = new AbsDNode( X ); if( flip ) ! abs = new SubDNode(sub->in(1), phase->transform(abs)); return abs; } //------------------------------Value------------------------------------------
src/share/vm/opto/movenode.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File