src/share/vm/opto/movenode.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/movenode.cpp Thu May 15 17:09:30 2014
--- new/src/share/vm/opto/movenode.cpp Thu May 15 17:09:30 2014
*** 158,174 ****
--- 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;
}
}
*** 231,243 ****
--- 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;
}
//=============================================================================
*** 287,299 ****
--- 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;
}
//=============================================================================
*** 343,355 ****
--- 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------------------------------------------
src/share/vm/opto/movenode.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File