diff --git a/SMPInstr.cpp b/SMPInstr.cpp index fec0ace08a95372042425d0599e4c0eaf6e8373f..01d931b77817c04ca38395eb408c002419df0ff8 100644 --- a/SMPInstr.cpp +++ b/SMPInstr.cpp @@ -1369,6 +1369,18 @@ bool SMPInstr::InferOperatorType(SMPRegTransfer *CurrRT) { break; case SMP_OUTPUT: // output to port + case SMP_SIGN_EXTEND: + case SMP_ZERO_EXTEND: + case SMP_S_COMPARE: // signed compare (subtraction-based) + case SMP_U_COMPARE: // unsigned compare (AND-based) + case SMP_LESS_THAN: // boolean test operators + case SMP_GREATER_THAN: + case SMP_LESS_EQUAL: + case SMP_GREATER_EQUAL: + case SMP_EQUAL: + case SMP_NOT_EQUAL: + case SMP_LOGICAL_AND: + case SMP_LOGICAL_OR: break; case SMP_ADDRESS_OF: // take effective address @@ -1395,21 +1407,9 @@ bool SMPInstr::InferOperatorType(SMPRegTransfer *CurrRT) { case SMP_U_DIVIDE: case SMP_S_DIVIDE: case SMP_U_REMAINDER: - case SMP_SIGN_EXTEND: - case SMP_ZERO_EXTEND: case SMP_BITWISE_NOT: // unary operator case SMP_BITWISE_XOR: case SMP_NEGATE: // unary negation - case SMP_S_COMPARE: // signed compare (subtraction-based) - case SMP_U_COMPARE: // unsigned compare (AND-based) - case SMP_LESS_THAN: // boolean test operators - case SMP_GREATER_THAN: - case SMP_LESS_EQUAL: - case SMP_GREATER_EQUAL: - case SMP_EQUAL: - case SMP_NOT_EQUAL: - case SMP_LOGICAL_AND: - case SMP_LOGICAL_OR: case SMP_UNARY_NUMERIC_OPERATION: // miscellaneous; produces NUMERIC result case SMP_BINARY_NUMERIC_OPERATION: // miscellaneous; produces NUMERIC result case SMP_SYSTEM_OPERATION: // for instructions such as CPUID, RDTSC, etc.; NUMERIC