fix dsld pseudocode to use ROTL64 instead of ROTL128
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 28 Oct 2022 12:20:10 +0000 (13:20 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 28 Oct 2022 12:20:10 +0000 (13:20 +0100)
openpower/isa/svfixedarith.mdwn
src/openpower/test/bigint/bigint_cases.py

index e9e4beabb49b8ee2bd255db15a6c53526548fa3c..0de85f2783351f6bb6e46a007c5caba77d665727 100644 (file)
@@ -56,10 +56,10 @@ VA2-Form
 Pseudo-code:
 
     n <- (RB)[58:63]
-    v <- ROTL128([0]*64 || (RA), n)
-    mask <- ¬MASK(64, 63-n)
-    RT <- v[64:127] | ((RC) & mask)
-    RS <- v[0:63]
+    v <- ROTL64((RA), n)
+    mask <- MASK(64, 63-n)
+    RT <- (v[0:63] & mask) | ((RC) & ¬mask)
+    RS <- v[0:63] & ¬mask
 
 Special Registers Altered:
 
index 665f30b04a00a529494c903117786ce37cb02f3f..9abdce5590b15e83ad4f47b8a94819e2b5051225 100644 (file)
@@ -173,7 +173,6 @@ class SVP64BigIntCases(TestAccumulatorBase):
         svstate.vl = 3
         svstate.maxvl = 3
         e = ExpectedState(pc=8, int_regs=gprs)
-        e.intregs[5] = 0x0000_0000_0000_0000     # it's down the other end...
         self.add_case(prog, gprs, expected=e, initial_svstate=svstate)
 
     def case_sv_bigint_mul_by_scalar(self):