%%%off % Copyright: This file is part of the MMIX Supplement package (c) Martin Ruckert 2014 % File: 5.2.2/radixand.mms % Author: M. Ruckert % Title: Program R, Radix exchange sort PREFIX :Radixsort: key IS $0 Parameter for RSort n IS $1 right IS $0 shares register with key rJ IS $1 shares register with n b IS $2 left IS $3 \.LOC($K_l$). j IS $4 \.LOC($K_j$). d IS $5 $8(i-j)$ ki IS $6 kj IS $7 t IS $8 %%%on :Sort SET left,key 1 &\ut R1. Initialize.\\ $l\is 1$. 8ADDU right,n,left 1 & SUBU right,right,8 1 & $r\is N$. %%% R2 SET j,right A &\ut R2. Begin new stage.\\ $j \is r$. SUB d,left,j A &$i \is l$. %%% R3 LDO ki,j,d C^\prime &\ut R3. Inspect $K_i$ for 1.\\ \lineref|5.2.2.radixR3| AND t,ki,b C^\prime & PBZ t,R4 C^\prime\bg{B+X} & To R4 if it is 0. %%% R6 SUBU j,j,8 C^{\prime\prime}+X &\foolit{j}\ut R6. Decrease \setfool.\\ $j\is j-1$. BNN d,R8 C^{\prime\prime}+X\bg{X} &To R8 if $j