demo moving pseudocode to separate file
authorJacob Lifshay <programmerjake@gmail.com>
Tue, 1 Aug 2023 02:52:05 +0000 (19:52 -0700)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 22 Dec 2023 19:26:20 +0000 (19:26 +0000)
openpower/isa/av.mdwn
openpower/isa/av/minmax..mdwn [new file with mode: 0644]

index 94c3e1c898820c962f27877edd6996f35f3a07a3..89c67c86c19dd9ba4f8a284dc8be60a81205ddd1 100644 (file)
@@ -10,36 +10,7 @@ MM-Form
 
 Pseudo-code:
 
-    a <- (RA|0)
-    b <- (RB)
-    if MMM[0] then  # word mode
-        # shift left by XLEN/2 to make the dword comparison
-        # do word comparison of the original inputs
-        a <- a[XLEN/2:XLEN-1] || [0] * XLEN/2
-        b <- b[XLEN/2:XLEN-1] || [0] * XLEN/2
-    if MMM[1] then  # signed mode
-        # invert sign bits to make the unsigned comparison
-        # do signed comparison of the original inputs
-        a[0] <- ¬a[0]
-        b[0] <- ¬b[0]
-    # if Rc = 1 then store the result of comparing a and b to CR0
-    if Rc = 1 then
-        if a <u b then
-            CR0 <- 0b100 || XER[SO]
-        if a = b then
-            CR0 <- 0b001 || XER[SO]
-        if a >u b then
-            CR0 <- 0b010 || XER[SO]
-    if MMM[2] then  # max mode
-        # swap a and b to make the less than comparison do
-        # greater than comparison of the original inputs
-        t <- a
-        a <- b
-        b <- t
-    # store the entire selected source (even in word mode)
-    # if Rc = 1 then store the result of comparing a and b to CR0
-    if a <u b then RT <- (RA|0)
-    else RT <- (RB)
+[[!inline pagenames="openpower/isa/av/minmax." raw="yes"]]
 
 Special Registers Altered:
 
diff --git a/openpower/isa/av/minmax..mdwn b/openpower/isa/av/minmax..mdwn
new file mode 100644 (file)
index 0000000..ac32d0a
--- /dev/null
@@ -0,0 +1,30 @@
+    a <- (RA|0)
+    b <- (RB)
+    if MMM[0] then  # word mode
+        # shift left by XLEN/2 to make the dword comparison
+        # do word comparison of the original inputs
+        a <- a[XLEN/2:XLEN-1] || [0] * XLEN/2
+        b <- b[XLEN/2:XLEN-1] || [0] * XLEN/2
+    if MMM[1] then  # signed mode
+        # invert sign bits to make the unsigned comparison
+        # do signed comparison of the original inputs
+        a[0] <- ¬a[0]
+        b[0] <- ¬b[0]
+    # if Rc = 1 then store the result of comparing a and b to CR0
+    if Rc = 1 then
+        if a <u b then
+            CR0 <- 0b100 || XER[SO]
+        if a = b then
+            CR0 <- 0b001 || XER[SO]
+        if a >u b then
+            CR0 <- 0b010 || XER[SO]
+    if MMM[2] then  # max mode
+        # swap a and b to make the less than comparison do
+        # greater than comparison of the original inputs
+        t <- a
+        a <- b
+        b <- t
+    # store the entire selected source (even in word mode)
+    # if Rc = 1 then store the result of comparing a and b to CR0
+    if a <u b then RT <- (RA|0)
+    else RT <- (RB)