comparison src/share/vm/adlc/formssel.cpp @ 415:4d9884b01ba6

6754519: don't emit flag fixup for NaN when condition being tested doesn't need it Reviewed-by: kvn, rasbold
author never
date Tue, 28 Oct 2008 09:31:30 -0700
parents 1ee8caae33af
children a1980da045cc
comparison
equal deleted inserted replaced
407:ebfd4ae89bf6 415:4d9884b01ba6
1572 return Opcode::TERTIARY; 1572 return Opcode::TERTIARY;
1573 } 1573 }
1574 return Opcode::NOT_AN_OPCODE; 1574 return Opcode::NOT_AN_OPCODE;
1575 } 1575 }
1576 1576
1577 void Opcode::print_opcode(FILE *fp, Opcode::opcode_type desired_opcode) { 1577 bool Opcode::print_opcode(FILE *fp, Opcode::opcode_type desired_opcode) {
1578 // Default values previously provided by MachNode::primary()... 1578 // Default values previously provided by MachNode::primary()...
1579 const char *description = "default_opcode()"; 1579 const char *description = NULL;
1580 const char *value = "-1"; 1580 const char *value = NULL;
1581 // Check if user provided any opcode definitions 1581 // Check if user provided any opcode definitions
1582 if( this != NULL ) { 1582 if( this != NULL ) {
1583 // Update 'value' if user provided a definition in the instruction 1583 // Update 'value' if user provided a definition in the instruction
1584 switch (desired_opcode) { 1584 switch (desired_opcode) {
1585 case PRIMARY: 1585 case PRIMARY:
1597 default: 1597 default:
1598 assert( false, "ShouldNotReachHere();"); 1598 assert( false, "ShouldNotReachHere();");
1599 break; 1599 break;
1600 } 1600 }
1601 } 1601 }
1602 fprintf(fp, "(%s /*%s*/)", value, description); 1602 if (value != NULL) {
1603 fprintf(fp, "(%s /*%s*/)", value, description);
1604 }
1605 return value != NULL;
1603 } 1606 }
1604 1607
1605 void Opcode::dump() { 1608 void Opcode::dump() {
1606 output(stderr); 1609 output(stderr);
1607 } 1610 }
2608 if ( _disp != NULL ) fprintf(fp," disp == %s\n", _disp); 2611 if ( _disp != NULL ) fprintf(fp," disp == %s\n", _disp);
2609 // fprintf(fp,"\n"); 2612 // fprintf(fp,"\n");
2610 } 2613 }
2611 2614
2612 //------------------------------CondInterface---------------------------------- 2615 //------------------------------CondInterface----------------------------------
2613 CondInterface::CondInterface(char *equal, char *not_equal, 2616 CondInterface::CondInterface(const char* equal, const char* equal_format,
2614 char *less, char *greater_equal, 2617 const char* not_equal, const char* not_equal_format,
2615 char *less_equal, char *greater) 2618 const char* less, const char* less_format,
2619 const char* greater_equal, const char* greater_equal_format,
2620 const char* less_equal, const char* less_equal_format,
2621 const char* greater, const char* greater_format)
2616 : Interface("COND_INTER"), 2622 : Interface("COND_INTER"),
2617 _equal(equal), _not_equal(not_equal), 2623 _equal(equal), _equal_format(equal_format),
2618 _less(less), _greater_equal(greater_equal), 2624 _not_equal(not_equal), _not_equal_format(not_equal_format),
2619 _less_equal(less_equal), _greater(greater) { 2625 _less(less), _less_format(less_format),
2620 // 2626 _greater_equal(greater_equal), _greater_equal_format(greater_equal_format),
2627 _less_equal(less_equal), _less_equal_format(less_equal_format),
2628 _greater(greater), _greater_format(greater_format) {
2621 } 2629 }
2622 CondInterface::~CondInterface() { 2630 CondInterface::~CondInterface() {
2623 // not owner of any character arrays 2631 // not owner of any character arrays
2624 } 2632 }
2625 2633