Revert "corrections to shadd/uw after reverting to switch"
authorDmitry Selyutin <ghostmansd@gmail.com>
Tue, 1 Nov 2022 17:37:32 +0000 (20:37 +0300)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 2 Jun 2023 18:51:16 +0000 (19:51 +0100)
This reverts commit 6484c99953ceeff206a5888c148b9412be1b5656.

openpower/isa/bitmanip.mdwn

index 94fd48baa37aed233784ced057b8877b8003843c..89515ec977385f3ffd7f91b253f795c7d55d69c8 100644 (file)
@@ -112,10 +112,11 @@ Pseudo-code:
 
     n <- (RB)
     switch (sm)
-        case (0): RT <- (n[1:XLEN-1] || [0]*1) + (RA)
-        case (1): RT <- (n[2:XLEN-1] || [0]*2) + (RA)
-        case (2): RT <- (n[3:XLEN-1] || [0]*3) + (RA)
-        case (3): RT <- (n[4:XLEN-1] || [0]*4) + (RA)
+        case (0): sum[0:XLEN-1] = (n[0:XLEN-1-1] || [0]*1) + (RA)
+        case (1): sum[0:XLEN-1] = (n[0:XLEN-2-1] || [0]*2) + (RA)
+        case (2): sum[0:XLEN-1] = (n[0:XLEN-3-1] || [0]*3) + (RA)
+        default:  sum[0:XLEN-1] = (n[0:XLEN-4-1] || [0]*4) + (RA)
+    RT <- sum
 
 Special Registers Altered:
 
@@ -132,10 +133,11 @@ Pseudo-code:
 
     n <- ([0]*(XLEN/2)) || (RB)[XLEN/2:XLEN-1]
     switch (sm)
-        case (0): RT <- (n[1:XLEN-1] || [0]*1) + (RA)
-        case (1): RT <- (n[2:XLEN-1] || [0]*2) + (RA)
-        case (2): RT <- (n[3:XLEN-1] || [0]*3) + (RA)
-        case (3): RT <- (n[4:XLEN-1] || [0]*4) + (RA)
+        case (0): sum[0:XLEN-1] = (n[0:XLEN-1-1] || [0]*1) + (RA)
+        case (1): sum[0:XLEN-1] = (n[0:XLEN-2-1] || [0]*2) + (RA)
+        case (2): sum[0:XLEN-1] = (n[0:XLEN-3-1] || [0]*3) + (RA)
+        default:  sum[0:XLEN-1] = (n[0:XLEN-4-1] || [0]*4) + (RA)
+    RT <- sum
 
 Special Registers Altered: