bug 1244: add assembler and python maxloc listing to slides
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 12 Feb 2024 17:51:50 +0000 (17:51 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 12 Feb 2024 17:51:50 +0000 (17:51 +0000)
conferences/fosdem2024/fosdem2024_ddffirst/fosdem2024_ddffirst.tex
conferences/fosdem2024/fosdem2024_ddffirst/maxloc.py
conferences/fosdem2024/fosdem2024_ddffirst/maxloc.s

index 3317021a89dc363359d71efa3d41085becfebaa8..fdbc83369f330f9c73983aa6705a336a584d619f 100644 (file)
@@ -217,11 +217,19 @@ for (i = 0; i < VL; i++)
 }
 
 \frame{\frametitle{maxloc}
+    \lstinputlisting[language={}]{maxloc.py}
+
        \begin{itemize}
                \item "TODO
        \end{itemize}
 }
 
+\frame{\frametitle{maxlocassembler}
+       
+       \lstinputlisting[language={}]{maxloc.s}
+       
+}
+
 \frame{\frametitle{Summary}
 
  \begin{itemize}
index 031ffc33d27ee751e89e905fa6f95eb0fc5d1533..e596151f876043e1ebc956e80f9b2d06e44b0e2b 100644 (file)
@@ -1,4 +1,3 @@
-
 m,nm,i,n = 0,0,0,len(a)
 while (i<n):
   while (i<n and a[i]<=m): i += 1
index f94ebb7f253fa6b23af277cb2393f555fee4ec82..f72de742ada525b7e148fb4dedffa11faf37d2fa 100644 (file)
@@ -1,15 +1,15 @@
 # while (i<n)
-setvl 2,0,4,0,1,1            # set MVL=4, VL=MIN(MVL,CTR)
-#    while (i<n and a[i]<=m) : i += 1
+setvl 2,0,4,0,1,1     # set MVL=4,VL=MIN(MVL,CTR)
+#  while (i<n and a[i]<=m) : i += 1
 sv.cmp/ff=gt/m=ge *0,0,*10,4 # truncates VL to min
-sv.creqv *16,*16,*16         # set mask on already-tested
-setvl 2,0,4,0,1,1            # set MVL=4, VL=MIN(MVL,CTR)
-mtcrf 128, 0                 # clear CR0 (in case VL=0?)
-#    while (i<n and a[i]>m):
-sv.minmax./ff=le/m=ge/mr 4,*10,4,1 # r4 accumulator
-crternlogi 0,1,2,127         # test greater/equal or VL=0
-sv.crand *19,*16,0           # clear if CR0.eq=0
-#      nm = i (count masked bits. could use crweirds here)
-sv.svstep/mr/m=so 1,0,6,1    # svstep: get vector dststep
-sv.creqv *16,*16,*16         # set mask on already-tested
-bc 12,0, -0x40               # CR0 lt bit clear, branch back
+sv.creqv *16,*16,*16  # set mask on already-tested
+setvl 2,0,4,0,1,1     # set MVL=4,VL=MIN(MVL,CTR)
+mtcrf 128,0           # clear CR0 (in case VL=0?)
+#  while (i<n and a[i]>m):
+sv.minmax./ff=le/m=ge/mr 4,*10,4,1 # r4 accumulate
+crternlogi 0,1,2,127  # test >= (or VL=0)
+sv.crand *19,*16,0    # clear if CR0.eq=0
+#   nm = i: count masked bits. could use crweirds
+sv.svstep/mr/m=so 1,0,6,1 # get vector dststep
+sv.creqv *16,*16,*16  # set mask on already-tested
+bc 12,0,-0x40         # CR0 lt clear, branch back