1062 |
1062 |
1063 //------------------------------dump_spec------------------------------------- |
1063 //------------------------------dump_spec------------------------------------- |
1064 // Print special per-node info |
1064 // Print special per-node info |
1065 #ifndef PRODUCT |
1065 #ifndef PRODUCT |
1066 void BoolTest::dump_on(outputStream *st) const { |
1066 void BoolTest::dump_on(outputStream *st) const { |
1067 const char *msg[] = {"eq","gt","??","lt","ne","le","??","ge"}; |
1067 const char *msg[] = {"eq","gt","of","lt","ne","le","nof","ge"}; |
1068 st->print(msg[_test]); |
1068 st->print(msg[_test]); |
1069 } |
1069 } |
1070 #endif |
1070 #endif |
1071 |
1071 |
1072 //============================================================================= |
1072 //============================================================================= |
1124 // Change "bool tst (cmp con x)" into "bool ~tst (cmp x con)". |
1124 // Change "bool tst (cmp con x)" into "bool ~tst (cmp x con)". |
1125 // This moves the constant to the right. Helps value-numbering. |
1125 // This moves the constant to the right. Helps value-numbering. |
1126 Node *cmp = in(1); |
1126 Node *cmp = in(1); |
1127 if( !cmp->is_Sub() ) return NULL; |
1127 if( !cmp->is_Sub() ) return NULL; |
1128 int cop = cmp->Opcode(); |
1128 int cop = cmp->Opcode(); |
1129 if( cop == Op_FastLock || cop == Op_FastUnlock ) return NULL; |
1129 if( cop == Op_FastLock || cop == Op_FastUnlock || cop == Op_FlagsProj) return NULL; |
1130 Node *cmp1 = cmp->in(1); |
1130 Node *cmp1 = cmp->in(1); |
1131 Node *cmp2 = cmp->in(2); |
1131 Node *cmp2 = cmp->in(2); |
1132 if( !cmp1 ) return NULL; |
1132 if( !cmp1 ) return NULL; |
1133 |
1133 |
1134 // Constant on left? |
1134 // Constant on left? |