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