From 5fc053fb2af1321d77f641614cdaa72aac8bb91f Mon Sep 17 00:00:00 2001 From: clc5q <clc5q@git.zephyr-software.com> Date: Sun, 20 Apr 2008 04:26:56 +0000 Subject: [PATCH] Do not infer NUMERIC types for comparisons and extensions. --- SMPInstr.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/SMPInstr.cpp b/SMPInstr.cpp index fec0ace0..01d931b7 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 -- GitLab