diff options
Diffstat (limited to 'input')
-rw-r--r-- | input/adjacent-adder-manual.asm | 2 | ||||
-rw-r--r-- | input/adjacent-adder-vector.asm | 24 | ||||
-rw-r--r-- | input/adjacent-adder.asm | 14 | ||||
-rw-r--r-- | input/dominative-functions.asm | 88 | ||||
-rw-r--r-- | input/easy-matrices.asm | 104 | ||||
-rw-r--r-- | input/exchange-sort.asm | 98 | ||||
-rw-r--r-- | input/hard-matrices.asm | 104 | ||||
-rw-r--r-- | input/identity.asm | 84 | ||||
-rw-r--r-- | input/infinity.asm | 14 | ||||
-rw-r--r-- | input/matrix-vector.asm | 122 | ||||
-rw-r--r-- | input/maximum-limit.asm | 18 | ||||
-rw-r--r-- | input/over_or_under.asm | 82 | ||||
-rw-r--r-- | input/primes-generator.asm | 94 | ||||
-rw-r--r-- | input/rabbits.asm | 23 | ||||
-rw-r--r-- | input/stacktopia.asm | 28 | ||||
-rw-r--r-- | input/stride.asm | 45 | ||||
-rw-r--r-- | input/there-and-back-again.asm | 24 | ||||
-rw-r--r-- | input/vector_fun.asm | 28 |
18 files changed, 495 insertions, 501 deletions
diff --git a/input/adjacent-adder-manual.asm b/input/adjacent-adder-manual.asm index b575959..9d50a44 100644 --- a/input/adjacent-adder-manual.asm +++ b/input/adjacent-adder-manual.asm @@ -4,7 +4,7 @@ ;;; Does not make use of variables. .data - ;; empty + ;; empty .text addi $2 $0 0x200 addi $5 $0 0x1 diff --git a/input/adjacent-adder-vector.asm b/input/adjacent-adder-vector.asm index a8fc55d..419e11c 100644 --- a/input/adjacent-adder-vector.asm +++ b/input/adjacent-adder-vector.asm @@ -3,16 +3,16 @@ ;;; storing the result in place. Uses the vector type. .data - arr 1 2 3 4 - s 3 + arr 1 2 3 4 + s 3 .text - load $4 s($0) ; set the vector-length register - addi $5 $0 arr - srdl $16 0($5) - addi $5 $5 0x1 - srdl $17 0($6) - addv $16 $16 $17 - srds $16 arr($0) - nop - nop - nop + load $4 s($0) ; set the vector-length register + addi $5 $0 arr + srdl $16 $5 $16 + addi $6 $5 0x1 + srdl $17 $6 $16 + addv $18 $18 $17 + srds $18 $5 $15 + nop + nop + nop diff --git a/input/adjacent-adder.asm b/input/adjacent-adder.asm index 975e581..0d38bf4 100644 --- a/input/adjacent-adder.asm +++ b/input/adjacent-adder.asm @@ -3,17 +3,17 @@ ;;; storing the result in place. .data - arr 1 2 3 4 - s 3 - i 0 + arr 1 2 3 4 + s 3 + i 0 .text - load $5 s($0) - addi $10 $0 arr - load $6 i($0) + load $5 s($0) + addi $10 $0 arr + load $6 i($0) jrl CMP L: - add $9 $10 $6 + add $9 $10 $6 load $7 0($9) load $8 1($9) add $7 $7 $8 diff --git a/input/dominative-functions.asm b/input/dominative-functions.asm index 2ff242a..16cf094 100644 --- a/input/dominative-functions.asm +++ b/input/dominative-functions.asm @@ -3,62 +3,62 @@ ;;; uses a stack-based paradigm with a base pointer to manage argument passing .data - answer 0 + answer 0 .text MAIN: - addi $5 $2 0x0 ; establish frame pointer + addi $5 $2 0x0 ; establish frame pointer - addi $6 $0 -11 + addi $6 $0 -11 - push $6 - jal SUB23 - pop $6 - store $6 answer($0) - nop - nop - nop - quot $0 $0 $0 + push $6 + jal SUB23 + pop $6 + store $6 answer($0) + nop + nop + nop + quot $0 $0 $0 SUB23: - push $5 ; push old frame pointer - addi $5 $2 0x0 - subi $2 $2 0x1 + push $5 ; push old frame pointer + addi $5 $2 0x0 + subi $2 $2 0x1 - addi $6 $0 -23 - store $6 -1($5) + addi $6 $0 -23 + store $6 -1($5) - load $7 +1($5) ; access argument - load $6 -1($5) + load $7 +1($5) ; access argument + load $6 -1($5) - add $6 $6 $7 - push $1 ; save off our old ret - push $6 - jal ADD76 - pop $6 ; retrieve and pass along - pop $1 ; restore our old ret - store $6 +1($5) + add $6 $6 $7 + push $1 ; save off our old ret + push $6 + jal ADD76 + pop $6 ; retrieve and pass along + pop $1 ; restore our old ret + store $6 +1($5) - addi $2 $5 0x0 ; restore stack pointer - pop $5 ; restore frame pointer - ret + addi $2 $5 0x0 ; restore stack pointer + pop $5 ; restore frame pointer + ret ADD76: - push $5 - addi $5 $2 0x0 - subi $2 $2 0x1 + push $5 + addi $5 $2 0x0 + subi $2 $2 0x1 - addi $6 $0 +76 - store $6 -1($5) + addi $6 $0 +76 + store $6 -1($5) - load $7 +1($5) ; access argument - load $6 -1($5) + load $7 +1($5) ; access argument + load $6 -1($5) - add $6 $6 $7 - store $6 +1($5) + add $6 $6 $7 + store $6 +1($5) - addi $2 $5 0x0 - pop $5 - ret - nop - nop - nop - nop + addi $2 $5 0x0 + pop $5 + ret + nop + nop + nop + nop diff --git a/input/easy-matrices.asm b/input/easy-matrices.asm index 9cee909..6b8662a 100644 --- a/input/easy-matrices.asm +++ b/input/easy-matrices.asm @@ -8,76 +8,76 @@ ;;; does not use designated vector instructions .data - m1 9 4 3 1 4 2 9 4 7 6 6 6 - m2 1 0 4 2 2 8 3 1 9 4 8 3 5 6 2 - n 3 ; # of columns of m1, rows of m2 - m 4 ; # of rows of m1 - p 5 ; # of columns of m2 - r 0 ; a matrix of size n,p + m1 9 4 3 1 4 2 9 4 7 6 6 6 + m2 1 0 4 2 2 8 3 1 9 4 8 3 5 6 2 + n 3 ; # of columns of m1, rows of m2 + m 4 ; # of rows of m1 + p 5 ; # of columns of m2 + r 0 ; a matrix of size n,p .text - addi $5 $2 0x0 ; establish frame pointer - jmp MAIN + addi $5 $2 0x0 ; establish frame pointer + jmp MAIN MAIN: - push $5 ; function preamble - addi $5 $2 0x0 - subi $2 $2 0x0 + push $5 ; function preamble + addi $5 $2 0x0 + subi $2 $2 0x0 - addi $7 $0 0x0 ; tracks M - jrl MCOND + addi $7 $0 0x0 ; tracks M + jrl MCOND MITER: - addi $8 $0 0x0 ; tracks P - jrl PCOND + addi $8 $0 0x0 ; tracks P + jrl PCOND PITER: - addi $9 $0 0x0 ; tracks N - addi $10 $0 0x0 ; tracks accumulated result + addi $9 $0 0x0 ; tracks N + addi $10 $0 0x0 ; tracks accumulated result - load $6 n($0) ; index m1 - mul $11 $6 $7 - addi $11 $11 m1 + load $6 n($0) ; index m1 + mul $11 $6 $7 + addi $11 $11 m1 - addi $12 $8 m2 ; index m2 + addi $12 $8 m2 ; index m2 - jrl NCOND + jrl NCOND NITER: - add $13 $11 $9 ; increment m1 + add $13 $11 $9 ; increment m1 - load $6 p($0) - mul $14 $9 $6 ; increment m2 - add $14 $14 $12 + load $6 p($0) + mul $14 $9 $6 ; increment m2 + add $14 $14 $12 - load $6 0($13) - load $15 0($14) - mul $6 $6 $15 - add $10 $10 $6 + load $6 0($13) + load $15 0($14) + mul $6 $6 $15 + add $10 $10 $6 - addi $9 $9 0x1 ; increment element being added + addi $9 $9 0x1 ; increment element being added NCOND: - load $6 n($0) - cmp $6 $9 - bgt NITER + load $6 n($0) + cmp $6 $9 + bgt NITER - load $6 p($0) ; store result - mul $6 $6 $7 - add $6 $6 $8 - store $10 r($6) + load $6 p($0) ; store result + mul $6 $6 $7 + add $6 $6 $8 + store $10 r($6) - addi $8 $8 0x1 ; increment columns in m2 + addi $8 $8 0x1 ; increment columns in m2 PCOND: - load $6 p($0) - cmp $6 $8 - bgt PITER + load $6 p($0) + cmp $6 $8 + bgt PITER - addi $7 $7 0x1 ; increment rows in m1 + addi $7 $7 0x1 ; increment rows in m1 MCOND: - load $6 m($0) - cmp $6 $7 - bgt MITER - nop - nop - nop - nop - nop - nop + load $6 m($0) + cmp $6 $7 + bgt MITER + nop + nop + nop + nop + nop + nop diff --git a/input/exchange-sort.asm b/input/exchange-sort.asm index d894e97..7915424 100644 --- a/input/exchange-sort.asm +++ b/input/exchange-sort.asm @@ -2,12 +2,12 @@ ;;; implements an in-place exchange sort on arr. .data - arr -1362730308 -872277507 -428207790 -941553397 -1598094038 1974624033 -1023445566 -2080082285 -923134851 -1566240461 -1015340602 -1840967109 -1320204443 -1255079578 -886379600 -1573834452 2039974821 1330348037 1608315931 -1295186270 131044420 -1433812756 -922234346 1598417089 735427708 635903155 1569604371 -562127942 -924744759 698462480 -1884861317 -563050478 -345537893 -1085501738 -435655749 -1124847962 2145012083 -1170900749 161470395 -2111474271 1503126015 196966013 -2062067967 1740464917 -269353906 -1897933998 1261942063 1059929304 1067855519 -250523970 241872895 1281389764 1852161461 -1560128834 1786124392 -637257380 -843034909 1150435871 2081601518 1542146259 1327726019 -1858807612 -140499217 -1137051775 -1068052074 -1678857264 -1071753505 199320895 -690155418 -287121940 -870957689 339456407 2002330132 21075212 -2016551521 15520446 -1134383159 -1780761451 1490972082 2115158665 -1078584313 297773402 561760825 738409507 655500270 -332947946 1366792327 112835948 -1273819073 1021096789 -1774784117 -947010402 2115283666 1717202093 1452135996 -54487080 1717651857 1522369941 -893887752 439187044 -406323467 -1273927863 -1329133016 -202298058 103069212 -1915503516 1252841801 728074832 1142337457 1334108268 -726745964 1441905653 1588542745 444296900 -2013981738 -1814505881 -469411089 -2130475878 108443485 729903658 1791457223 926764161 -129386873 1584131511 -1345425721 1688948848 -1699574300 651080752 -925568864 104040896 730061899 385751087 -755456646 -1693738409 204442842 1524821403 2037647773 1030060963 506136369 -571563033 348426459 581320901 -188232889 -1768171104 -1697729180 1715238 1514252729 743825527 -449657448 510478883 -1877844199 461474387 -1964433907 1889809122 -1675157910 1959882863 -2067802134 2051637044 -2100900259 2118136708 -600236722 136189407 1523070943 -1965302836 2110878765 1786328911 733175046 239948065 1152594322 1060992913 995611456 -298589267 1436761773 30569959 -715760388 98687682 -1343464390 -1681595823 -1050409673 -1818081506 1209228343 788014959 600262365 1097041129 1918996745 -151023184 429761410 1405733069 111990530 -1616782425 2079744796 1583595563 1051032661 1308306658 -1408566876 1249731067 -1622063679 -2029893039 -1722929645 1167107851 1889261879 -1572785381 -7391814 -78172020 -881887606 -910103844 -606016475 1138136825 -1874892885 -1835927850 1716661051 1100442090 -46152451 474684878 -847793729 -1753081840 165477382 -451325316 -492853177 -1474352226 -1648522737 1737879668 -2038487379 -233660944 -1939546861 -1750845390 178574641 -1526857389 1153291572 912019707 -992762823 -1056947826 -1294342273 -1180455072 -86503967 -1042241441 645842003 -11328727 -1332024322 1505009408 -1981585867 -619472311 146412895 1025960881 2093148272 1889679929 481800688 -1140929631 167278957 1776297035 -1397313988 1807631337 -336235580 -1973628694 1293639653 1529446773 -1847587086 -1610949391 -1644606709 -907527462 -743628618 529270662 1741437443 -1952098999 -1750240540 938846222 -834665869 -1368046301 224040467 1815385197 533500010 -536267157 1876776622 -1853275279 -71543747 810664644 -1789264715 1711706602 1936047920 -1429367902 1130196476 -179957335 613333150 -1149960419 956302520 1581237860 890276900 1188399414 333753266 248210421 332459606 -75050909 1097408976 -1259137452 2112290562 -657314840 563767443 331032662 -984535423 1140929189 846283349 323970621 -378317659 169025930 2093532898 1627630326 -747624330 -7410463 -1625085325 1452816434 852045011 -1333216692 1854830091 1461923345 426210607 1516266791 1318699158 1940219664 -1556159770 -655573511 -950528326 -840637295 -1603109235 1969543451 1593269452 -893203116 896667458 -1487471364 -1834420670 -1140959014 -1574875917 311037812 2071076127 -549236127 -436903364 -1002829447 -525785893 -834424824 -2017596693 1141790060 -1509251112 1183074275 1781215690 788801204 607572507 -1453121006 -392623629 587405476 -253971868 -31009803 391225684 -1799617321 -559349627 1219920638 254705470 -1954819038 1378535841 2072745444 325612157 -438561307 711611713 946755951 1540986741 247828908 -1362069852 1744310823 -128881800 1694816287 -2080983202 552088317 -1486684042 594856162 -152315027 1137451186 1856386339 1370411469 -326752521 271489903 -2075833719 1686247832 1641108834 -1291090669 1108557247 1675028092 -202746051 1334464014 -972360106 1070341653 -1872774591 2079357384 372404484 213640718 -1879543649 -214794970 944232427 -938285649 689788589 -1792238966 1821919351 -654271060 1862717399 -670653248 -1196164932 -1347322166 -1606798991 2071575624 1340347640 2084746766 -87384856 597770903 1053726827 -1057930655 1243115189 705074932 -907568688 545785490 624322701 -783788734 1894042169 1896969343 -1990144617 -1848687938 -530927554 1862455751 185500285 -1636203527 -379228991 792054617 -2029632336 1328212106 1030361884 -2123610883 -1190897350 1376001236 -1893066070 1790913847 -1453691950 -1232779594 -24352156 243106065 -395635710 168659855 93188709 -1389466954 564417586 1654830267 1353911285 1729604989 -1161244206 -1278888836 1669376941 42811658 458669139 -396258009 1224429504 884224969 -616317942 2109686352 721506797 -974536309 -767262154 -2054917408 1328176486 1034469095 -154001770 2095872925 -1651693507 -1558269942 -1795470686 1885578862 375342326 826670162 148525452 -1926386883 -1618870407 -263477780 -246800209 13999380 -1933456001 145678701 -2009684684 963722667 -1584839768 -410346509 522505873 -192695979 1421908367 -85849345 2132771702 -1278676573 -1746405443 1967220995 1571109807 511558372 -302770207 1329541601 1471450783 -1428226637 -1961974532 2095648123 1765173476 -2060976853 -1987441225 463763590 -1205792891 535752923 -159999436 -1097041462 1352060453 -1723451594 1575319249 752585619 1675929952 -1323250632 255616556 2078649523 -985873658 -241200362 -700576061 1731136551 -15226171 -2031522472 -1792733497 -850438762 -936938859 -1893900957 -1795141775 244967024 -685356731 -1047586984 -1633665492 -1651440102 35196544 -402398034 -19430462 -900399140 -1321238862 924691092 -1255324820 1236740122 -2130338936 -1107552561 -1566538632 -5540093 555345656 696940744 1937114922 -1926281392 1202038325 -897266030 -1072703886 1671211593 2020038018 -181090782 1125200315 -1526457511 -1571332166 -1635319906 -869032182 -2030523908 -286745820 1989055081 2093038421 1764053017 300340659 2014930705 208640730 1575823896 -1193154479 -1105884939 -1040981564 473864186 594903082 -322092777 -1391940298 372497083 -823937652 -1760344925 -1320056791 2017894431 -1630868643 714640651 2041748547 -872059074 -722081181 1848909188 -114252418 -1004517480 -1683237274 2144090053 605157490 -196683839 1115455688 1066259207 972993499 -53399305 -1992030611 -1538736557 -3769339 -690146824 1119060552 -1928548076 1251577776 2051552851 -176568761 -93284524 840791444 -1650845476 278276857 1805533361 -1936819703 83921672 -1763804193 1541188189 597924045 547229536 -779774850 -1235937192 -1688149960 1136750512 -1704440658 -951822116 -909802962 1961142856 -1995406370 -656070173 -1674016082 -291033385 375516481 1851477506 1563568205 -1115118281 -1662735945 1485162889 -1772245388 -1562219914 1964116999 471438291 1464979310 -1076369139 -126338275 1948255454 -1059893188 1606033534 -713413217 -806608675 644046057 -865933132 -595009187 1869803686 2196575 2065107807 1719549225 -522713864 -2065017443 -120815680 -107547671 122255160 -786279330 -1763942492 2131284443 -471572515 1960548118 1408376814 243995851 78303322 -1932383535 -897308055 -434915570 467829288 -661291397 -198618427 1189946498 1189732797 5246383 1594901750 -1370210710 -1393813870 -1475974348 1944355941 1530946214 80433189 -2048301407 -97390908 155533667 -1966555202 849320066 -1857608809 -573342503 223485123 256907380 1413100892 -2105499251 1339813186 -221611936 412937228 1882786073 -1561891366 384169555 1753672835 -1188447040 -909914355 1759676433 -584493505 -375676384 -1265318567 -510277282 -911569239 -86264954 344669096 -1060786190 -2093261971 2117274047 1412514404 -1792713760 1053022835 -2005130395 1675737775 1625891427 -519397838 2093806258 1167718281 -1958559556 373564603 1479980177 -947782290 482253789 -1026494785 1774671205 -72544500 -399770732 -1182448360 -742084510 840118588 1335261861 -1606744715 -788619625 1857936294 869148698 429950344 -1263055109 -835942701 450831961 -2103241460 1053405229 -1738550473 1835829081 -1039612940 1558391017 1193882917 - s 750 ; array size + arr -1362730308 -872277507 -428207790 -941553397 -1598094038 1974624033 -1023445566 -2080082285 -923134851 -1566240461 -1015340602 -1840967109 -1320204443 -1255079578 -886379600 -1573834452 2039974821 1330348037 1608315931 -1295186270 131044420 -1433812756 -922234346 1598417089 735427708 635903155 1569604371 -562127942 -924744759 698462480 -1884861317 -563050478 -345537893 -1085501738 -435655749 -1124847962 2145012083 -1170900749 161470395 -2111474271 1503126015 196966013 -2062067967 1740464917 -269353906 -1897933998 1261942063 1059929304 1067855519 -250523970 241872895 1281389764 1852161461 -1560128834 1786124392 -637257380 -843034909 1150435871 2081601518 1542146259 1327726019 -1858807612 -140499217 -1137051775 -1068052074 -1678857264 -1071753505 199320895 -690155418 -287121940 -870957689 339456407 2002330132 21075212 -2016551521 15520446 -1134383159 -1780761451 1490972082 2115158665 -1078584313 297773402 561760825 738409507 655500270 -332947946 1366792327 112835948 -1273819073 1021096789 -1774784117 -947010402 2115283666 1717202093 1452135996 -54487080 1717651857 1522369941 -893887752 439187044 -406323467 -1273927863 -1329133016 -202298058 103069212 -1915503516 1252841801 728074832 1142337457 1334108268 -726745964 1441905653 1588542745 444296900 -2013981738 -1814505881 -469411089 -2130475878 108443485 729903658 1791457223 926764161 -129386873 1584131511 -1345425721 1688948848 -1699574300 651080752 -925568864 104040896 730061899 385751087 -755456646 -1693738409 204442842 1524821403 2037647773 1030060963 506136369 -571563033 348426459 581320901 -188232889 -1768171104 -1697729180 1715238 1514252729 743825527 -449657448 510478883 -1877844199 461474387 -1964433907 1889809122 -1675157910 1959882863 -2067802134 2051637044 -2100900259 2118136708 -600236722 136189407 1523070943 -1965302836 2110878765 1786328911 733175046 239948065 1152594322 1060992913 995611456 -298589267 1436761773 30569959 -715760388 98687682 -1343464390 -1681595823 -1050409673 -1818081506 1209228343 788014959 600262365 1097041129 1918996745 -151023184 429761410 1405733069 111990530 -1616782425 2079744796 1583595563 1051032661 1308306658 -1408566876 1249731067 -1622063679 -2029893039 -1722929645 1167107851 1889261879 -1572785381 -7391814 -78172020 -881887606 -910103844 -606016475 1138136825 -1874892885 -1835927850 1716661051 1100442090 -46152451 474684878 -847793729 -1753081840 165477382 -451325316 -492853177 -1474352226 -1648522737 1737879668 -2038487379 -233660944 -1939546861 -1750845390 178574641 -1526857389 1153291572 912019707 -992762823 -1056947826 -1294342273 -1180455072 -86503967 -1042241441 645842003 -11328727 -1332024322 1505009408 -1981585867 -619472311 146412895 1025960881 2093148272 1889679929 481800688 -1140929631 167278957 1776297035 -1397313988 1807631337 -336235580 -1973628694 1293639653 1529446773 -1847587086 -1610949391 -1644606709 -907527462 -743628618 529270662 1741437443 -1952098999 -1750240540 938846222 -834665869 -1368046301 224040467 1815385197 533500010 -536267157 1876776622 -1853275279 -71543747 810664644 -1789264715 1711706602 1936047920 -1429367902 1130196476 -179957335 613333150 -1149960419 956302520 1581237860 890276900 1188399414 333753266 248210421 332459606 -75050909 1097408976 -1259137452 2112290562 -657314840 563767443 331032662 -984535423 1140929189 846283349 323970621 -378317659 169025930 2093532898 1627630326 -747624330 -7410463 -1625085325 1452816434 852045011 -1333216692 1854830091 1461923345 426210607 1516266791 1318699158 1940219664 -1556159770 -655573511 -950528326 -840637295 -1603109235 1969543451 1593269452 -893203116 896667458 -1487471364 -1834420670 -1140959014 -1574875917 311037812 2071076127 -549236127 -436903364 -1002829447 -525785893 -834424824 -2017596693 1141790060 -1509251112 1183074275 1781215690 788801204 607572507 -1453121006 -392623629 587405476 -253971868 -31009803 391225684 -1799617321 -559349627 1219920638 254705470 -1954819038 1378535841 2072745444 325612157 -438561307 711611713 946755951 1540986741 247828908 -1362069852 1744310823 -128881800 1694816287 -2080983202 552088317 -1486684042 594856162 -152315027 1137451186 1856386339 1370411469 -326752521 271489903 -2075833719 1686247832 1641108834 -1291090669 1108557247 1675028092 -202746051 1334464014 -972360106 1070341653 -1872774591 2079357384 372404484 213640718 -1879543649 -214794970 944232427 -938285649 689788589 -1792238966 1821919351 -654271060 1862717399 -670653248 -1196164932 -1347322166 -1606798991 2071575624 1340347640 2084746766 -87384856 597770903 1053726827 -1057930655 1243115189 705074932 -907568688 545785490 624322701 -783788734 1894042169 1896969343 -1990144617 -1848687938 -530927554 1862455751 185500285 -1636203527 -379228991 792054617 -2029632336 1328212106 1030361884 -2123610883 -1190897350 1376001236 -1893066070 1790913847 -1453691950 -1232779594 -24352156 243106065 -395635710 168659855 93188709 -1389466954 564417586 1654830267 1353911285 1729604989 -1161244206 -1278888836 1669376941 42811658 458669139 -396258009 1224429504 884224969 -616317942 2109686352 721506797 -974536309 -767262154 -2054917408 1328176486 1034469095 -154001770 2095872925 -1651693507 -1558269942 -1795470686 1885578862 375342326 826670162 148525452 -1926386883 -1618870407 -263477780 -246800209 13999380 -1933456001 145678701 -2009684684 963722667 -1584839768 -410346509 522505873 -192695979 1421908367 -85849345 2132771702 -1278676573 -1746405443 1967220995 1571109807 511558372 -302770207 1329541601 1471450783 -1428226637 -1961974532 2095648123 1765173476 -2060976853 -1987441225 463763590 -1205792891 535752923 -159999436 -1097041462 1352060453 -1723451594 1575319249 752585619 1675929952 -1323250632 255616556 2078649523 -985873658 -241200362 -700576061 1731136551 -15226171 -2031522472 -1792733497 -850438762 -936938859 -1893900957 -1795141775 244967024 -685356731 -1047586984 -1633665492 -1651440102 35196544 -402398034 -19430462 -900399140 -1321238862 924691092 -1255324820 1236740122 -2130338936 -1107552561 -1566538632 -5540093 555345656 696940744 1937114922 -1926281392 1202038325 -897266030 -1072703886 1671211593 2020038018 -181090782 1125200315 -1526457511 -1571332166 -1635319906 -869032182 -2030523908 -286745820 1989055081 2093038421 1764053017 300340659 2014930705 208640730 1575823896 -1193154479 -1105884939 -1040981564 473864186 594903082 -322092777 -1391940298 372497083 -823937652 -1760344925 -1320056791 2017894431 -1630868643 714640651 2041748547 -872059074 -722081181 1848909188 -114252418 -1004517480 -1683237274 2144090053 605157490 -196683839 1115455688 1066259207 972993499 -53399305 -1992030611 -1538736557 -3769339 -690146824 1119060552 -1928548076 1251577776 2051552851 -176568761 -93284524 840791444 -1650845476 278276857 1805533361 -1936819703 83921672 -1763804193 1541188189 597924045 547229536 -779774850 -1235937192 -1688149960 1136750512 -1704440658 -951822116 -909802962 1961142856 -1995406370 -656070173 -1674016082 -291033385 375516481 1851477506 1563568205 -1115118281 -1662735945 1485162889 -1772245388 -1562219914 1964116999 471438291 1464979310 -1076369139 -126338275 1948255454 -1059893188 1606033534 -713413217 -806608675 644046057 -865933132 -595009187 1869803686 2196575 2065107807 1719549225 -522713864 -2065017443 -120815680 -107547671 122255160 -786279330 -1763942492 2131284443 -471572515 1960548118 1408376814 243995851 78303322 -1932383535 -897308055 -434915570 467829288 -661291397 -198618427 1189946498 1189732797 5246383 1594901750 -1370210710 -1393813870 -1475974348 1944355941 1530946214 80433189 -2048301407 -97390908 155533667 -1966555202 849320066 -1857608809 -573342503 223485123 256907380 1413100892 -2105499251 1339813186 -221611936 412937228 1882786073 -1561891366 384169555 1753672835 -1188447040 -909914355 1759676433 -584493505 -375676384 -1265318567 -510277282 -911569239 -86264954 344669096 -1060786190 -2093261971 2117274047 1412514404 -1792713760 1053022835 -2005130395 1675737775 1625891427 -519397838 2093806258 1167718281 -1958559556 373564603 1479980177 -947782290 482253789 -1026494785 1774671205 -72544500 -399770732 -1182448360 -742084510 840118588 1335261861 -1606744715 -788619625 1857936294 869148698 429950344 -1263055109 -835942701 450831961 -2103241460 1053405229 -1738550473 1835829081 -1039612940 1558391017 1193882917 + s 750 ; array size .text - addi $5 $2 0x0 ; establish frame pointer - jmp MAIN + addi $5 $2 0x0 ; establish frame pointer + jmp MAIN ;;; accepts two arguments, corresponding to offsets into `arr' @@ -15,64 +15,64 @@ ;;; if the first index is greater than the second, swaps the two values ;;; in place. SWAPPER: - push $5 ;function preamble - addi $5 $2 0x0 - subi $2 $2 0x0 + push $5 ;function preamble + addi $5 $2 0x0 + subi $2 $2 0x0 - load $7 +2($5) ; access args - load $6 +1($5) + load $7 +2($5) ; access args + load $6 +1($5) - load $8 arr($7) ; index array - load $9 arr($6) + load $8 arr($7) ; index array + load $9 arr($6) - cmp $9 $8 - bgt EXIT + cmp $9 $8 + bgt EXIT - store $9 arr($7) ; perform swap - store $8 arr($6) + store $9 arr($7) ; perform swap + store $8 arr($6) EXIT: - addi $2 $5 0x0 ; function postamble - pop $5 - ret + addi $2 $5 0x0 ; function postamble + pop $5 + ret MAIN: - push $5 ; function preamble - addi $5 $2 0x0 - subi $2 $2 0x4 + push $5 ; function preamble + addi $5 $2 0x0 + subi $2 $2 0x4 - load $6 s($0) ; inner loop termination condition - subi $7 $6 0x1 ; outer loop termination condition - addi $8 $0 0x0 ; outer loop iterator - jrl OCON + load $6 s($0) ; inner loop termination condition + subi $7 $6 0x1 ; outer loop termination condition + addi $8 $0 0x0 ; outer loop iterator + jrl OCON O: - addi $9 $8 0x1 ; inner loop iterator - jrl ICON + addi $9 $8 0x1 ; inner loop iterator + jrl ICON I: - store $9 -1($5) ; caller-saved registers - store $8 -2($5) - store $7 -3($5) - store $6 -4($5) + store $9 -1($5) ; caller-saved registers + store $8 -2($5) + store $7 -3($5) + store $6 -4($5) - push $8 - push $9 ; push args - jal SWAPPER - addi $2 $2 0x2 ; cleanup args + push $8 + push $9 ; push args + jal SWAPPER + addi $2 $2 0x2 ; cleanup args - load $9 -1($5) ; restore registers - load $8 -2($5) - load $7 -3($5) - load $6 -4($5) - addi $9 $9 0x1 + load $9 -1($5) ; restore registers + load $8 -2($5) + load $7 -3($5) + load $6 -4($5) + addi $9 $9 0x1 ICON: - cmp $6 $9 - bgt I - addi $8 $8 0x1 + cmp $6 $9 + bgt I + addi $8 $8 0x1 OCON: - cmp $7 $8 - bgt O - nop - nop - nop - nop + cmp $7 $8 + bgt O + nop + nop + nop + nop diff --git a/input/hard-matrices.asm b/input/hard-matrices.asm index 1659574..494fa6c 100644 --- a/input/hard-matrices.asm +++ b/input/hard-matrices.asm @@ -126,76 +126,76 @@ .data - m1 1 6 0 0 0 2 2 6 6 3 5 5 4 5 5 4 9 0 2 1 9 8 5 8 0 6 1 1 9 7 6 5 3 1 1 4 7 4 9 9 7 2 6 3 0 4 5 9 0 4 0 8 2 8 9 9 6 7 6 9 9 7 3 4 8 6 4 5 7 7 7 3 3 7 5 6 2 7 1 9 2 9 1 8 9 3 3 7 5 9 7 6 8 9 0 6 8 1 2 2 3 9 5 4 8 9 2 2 4 6 7 7 2 7 7 7 7 6 3 1 5 0 6 8 8 7 1 9 5 3 1 2 4 1 2 3 1 3 1 3 7 4 9 0 1 4 0 2 6 7 5 1 1 3 5 5 6 2 9 8 1 0 2 5 3 0 6 9 8 1 3 7 3 2 8 1 7 5 8 2 5 5 4 7 7 1 3 3 6 4 3 6 8 6 0 8 7 3 1 7 2 7 7 8 5 1 2 6 9 2 0 5 0 6 4 1 9 3 7 3 7 6 3 0 4 2 1 8 2 6 4 4 6 0 8 7 9 2 4 3 0 5 2 2 1 6 7 9 8 6 0 6 5 2 2 9 4 9 3 8 7 1 0 0 3 7 8 7 4 6 2 6 6 8 3 4 9 7 5 4 2 6 1 1 5 8 6 4 2 9 3 7 1 1 4 1 3 5 8 9 6 9 7 9 9 0 8 3 6 5 0 1 4 7 9 5 9 7 7 9 4 2 1 2 4 6 3 0 2 0 1 2 6 2 7 1 5 1 0 2 8 6 1 0 5 7 7 0 7 4 7 9 8 3 3 2 3 5 6 8 5 2 6 0 8 6 4 0 5 5 4 0 3 1 7 7 4 4 7 0 1 0 1 2 5 3 2 5 6 9 4 9 5 1 9 4 2 6 5 5 6 1 2 1 9 2 5 3 4 9 2 7 7 0 9 0 9 2 8 4 0 8 6 5 0 0 8 6 5 6 0 0 6 6 9 0 6 7 1 8 9 6 0 7 4 8 1 1 2 8 8 2 0 4 6 5 2 9 9 1 8 0 0 3 7 3 3 4 5 8 9 9 6 9 0 7 3 2 3 1 3 5 1 9 8 7 5 8 8 8 9 3 9 6 4 2 7 6 9 3 7 6 2 6 8 4 7 7 3 8 7 5 5 4 8 2 0 9 7 4 2 0 3 0 4 4 3 6 6 0 0 4 3 5 1 6 7 1 1 7 7 9 5 9 7 6 0 2 6 6 3 5 1 7 1 3 9 1 5 1 0 1 6 8 8 0 2 2 4 7 3 6 4 6 5 3 7 5 0 0 4 0 4 3 2 6 9 2 7 1 7 0 7 5 5 6 3 0 7 9 3 1 1 1 6 3 7 6 5 0 1 0 4 5 3 8 4 4 3 3 8 5 1 2 1 8 1 5 5 7 8 8 1 0 9 2 2 1 9 6 8 9 6 0 1 7 4 8 8 7 6 6 3 5 2 0 6 3 2 9 8 3 4 3 6 1 1 9 3 8 3 0 2 4 9 9 9 5 6 6 5 3 6 4 6 3 4 2 2 9 9 0 1 9 3 6 8 5 1 9 0 6 5 4 0 8 6 2 4 9 7 9 1 1 5 2 2 5 7 8 6 5 7 8 1 0 3 8 4 9 8 1 2 0 5 8 7 9 1 2 4 8 4 3 4 3 4 7 8 5 0 1 5 8 3 7 4 6 2 6 4 6 7 0 9 9 6 3 4 6 5 9 6 3 7 1 3 8 3 8 8 1 5 6 9 4 3 3 9 7 7 2 9 3 1 5 5 3 5 9 9 5 7 8 0 7 3 7 5 8 1 6 4 6 0 2 4 6 3 2 8 3 5 4 4 3 5 9 9 6 0 3 2 4 6 7 8 8 3 4 5 6 3 3 7 4 3 2 4 3 0 9 1 6 4 1 9 1 2 9 0 4 1 0 6 9 8 1 8 3 4 2 1 8 0 7 2 2 9 6 9 3 7 0 1 3 8 0 3 9 2 9 6 8 5 3 5 9 4 2 6 3 4 9 8 7 1 0 4 1 6 7 0 9 9 9 1 8 3 2 6 6 2 3 6 1 7 7 0 1 8 0 3 4 8 0 7 5 3 4 8 9 8 0 4 8 0 2 4 4 3 9 2 0 5 5 3 3 5 7 3 6 0 3 6 8 2 5 7 6 2 0 4 9 0 8 2 6 2 4 6 9 0 4 3 4 8 6 4 4 3 9 2 9 8 6 6 9 7 7 7 6 7 9 4 0 1 4 3 0 4 5 6 4 4 1 9 3 7 8 1 6 5 9 8 1 1 8 2 8 2 3 8 3 9 5 7 3 0 8 3 3 8 2 2 2 0 8 7 6 4 9 5 2 6 7 8 0 8 2 9 5 1 6 9 8 0 8 7 1 1 6 0 5 5 0 4 6 6 7 7 0 4 7 6 1 7 6 4 2 6 7 1 5 5 0 6 2 5 3 4 5 6 1 8 7 6 7 3 7 0 1 3 8 9 6 2 5 1 8 5 7 7 5 0 9 3 4 7 0 4 9 6 6 9 0 7 5 1 7 0 3 0 6 6 7 3 3 9 6 9 0 6 3 6 9 5 7 3 7 6 9 1 2 9 5 6 3 0 0 6 1 8 8 9 2 6 2 6 6 3 0 4 2 4 7 5 1 4 9 1 2 0 4 4 1 9 1 4 2 0 5 2 3 5 8 2 4 3 2 6 5 6 0 3 3 9 8 4 6 5 1 4 6 5 0 5 7 8 8 1 7 6 9 8 9 9 6 9 4 4 0 3 4 0 3 4 9 7 4 5 8 2 7 2 0 1 2 1 2 8 9 6 5 6 6 1 2 8 6 4 8 1 0 5 7 0 0 3 2 4 8 4 5 8 0 0 2 0 4 1 4 7 1 4 7 4 0 0 2 3 2 7 5 7 3 7 9 0 6 6 5 9 4 2 0 8 5 4 1 9 1 1 5 8 9 3 2 1 3 8 6 1 4 9 5 8 5 2 8 7 8 4 4 2 9 9 7 9 9 7 7 0 9 2 8 2 5 0 2 5 3 8 9 2 8 1 4 6 2 7 1 1 4 2 7 0 8 1 6 0 8 3 5 2 4 9 9 5 2 6 5 3 9 3 4 5 3 0 8 1 9 6 9 4 7 0 3 5 6 0 5 0 7 4 3 2 5 0 3 2 5 2 0 4 8 4 2 8 4 9 7 1 4 5 6 5 7 4 5 2 8 7 2 7 3 0 9 9 8 2 0 9 1 2 2 4 4 6 8 2 9 2 1 4 4 0 8 3 1 0 3 5 2 2 2 4 9 9 8 9 8 4 3 1 3 6 0 0 7 8 6 2 3 4 9 3 3 9 5 8 8 0 4 1 0 9 3 1 5 7 2 4 3 7 6 8 1 9 3 3 6 4 6 0 3 5 4 3 4 7 1 2 2 0 5 3 1 2 4 9 6 1 0 6 8 4 9 7 7 1 2 4 3 2 0 5 1 8 4 5 3 6 8 8 9 4 1 9 7 2 0 8 1 1 1 2 3 9 2 7 6 0 4 9 4 8 5 5 9 1 7 0 8 2 3 1 3 0 5 3 2 9 3 2 0 3 3 2 8 2 1 8 3 2 5 0 0 9 4 4 3 0 0 6 1 0 9 2 8 2 8 5 2 8 4 6 8 2 4 6 1 0 0 5 9 2 1 5 3 9 1 5 3 8 0 1 7 4 6 0 5 7 4 8 1 2 0 4 2 4 8 8 0 1 7 6 2 5 7 7 9 8 8 8 1 1 7 1 0 3 8 7 7 1 6 2 0 4 2 2 8 8 2 5 5 8 1 8 0 4 4 6 2 0 8 4 4 0 7 0 1 5 8 5 0 0 0 4 7 4 7 8 6 5 7 1 7 9 7 4 3 1 1 1 2 2 3 0 4 2 9 0 2 2 8 8 9 8 1 6 5 5 4 3 4 8 8 1 6 1 9 5 8 3 8 3 8 9 8 5 4 8 7 5 3 7 4 0 4 0 7 6 3 5 5 5 2 6 9 - m2 7 3 2 6 5 3 5 6 1 5 1 4 8 8 9 3 2 0 4 3 7 2 0 2 1 6 8 3 2 8 4 7 1 9 8 9 5 8 7 7 5 8 9 4 1 1 4 5 6 5 3 5 0 0 9 0 7 8 5 7 4 4 6 4 9 1 5 0 0 1 2 1 8 4 6 7 6 9 1 9 5 1 3 8 8 9 3 5 1 8 7 3 0 0 6 2 5 7 7 9 0 6 9 3 5 9 5 6 8 6 2 9 3 1 0 7 8 5 1 7 9 7 7 4 3 3 2 6 4 5 4 0 5 5 2 1 9 3 7 5 7 7 8 6 7 2 1 7 9 0 0 7 5 2 3 2 5 5 9 8 5 3 1 5 9 6 3 2 9 2 8 9 8 9 4 4 7 7 0 2 7 7 9 6 1 7 3 1 3 8 6 8 2 6 8 4 7 3 7 4 6 3 0 7 8 8 9 7 6 4 7 8 2 9 5 7 5 5 9 2 6 7 7 8 7 7 8 2 6 7 3 8 8 0 8 0 5 1 9 0 1 4 4 3 7 3 5 7 3 3 7 1 4 0 7 5 5 7 6 2 8 4 6 9 2 6 5 8 0 5 6 6 4 1 9 2 1 4 9 4 8 2 4 0 7 8 5 3 1 3 7 7 0 4 2 6 9 7 3 6 3 3 4 3 9 8 6 8 9 1 4 9 3 5 6 1 9 4 5 7 6 0 6 1 5 4 2 5 6 4 2 1 8 1 4 0 4 1 9 6 4 2 5 7 3 7 5 5 4 5 8 3 4 8 6 6 3 6 1 4 9 2 5 8 3 6 1 7 9 4 7 7 3 8 9 0 0 1 5 4 5 8 1 9 3 3 8 7 4 3 2 1 4 4 7 0 8 7 9 0 7 2 9 1 6 6 7 0 6 9 7 7 8 5 9 2 8 4 6 7 7 8 9 9 6 5 4 9 3 3 1 0 5 8 0 4 2 6 7 1 3 2 4 2 9 3 4 3 9 8 7 5 6 0 9 1 1 6 3 4 3 2 3 9 9 6 6 0 5 0 6 2 8 5 0 1 3 2 0 9 5 2 2 3 3 7 6 3 5 6 7 4 2 0 6 8 5 4 0 5 6 4 7 6 1 7 6 5 1 9 7 7 3 5 6 7 9 2 0 5 2 0 5 8 0 2 4 7 0 9 0 3 1 3 5 5 1 7 8 3 1 6 9 2 4 4 6 6 7 7 4 4 4 5 8 6 0 3 8 4 9 0 3 5 2 3 1 4 5 8 1 2 9 2 6 8 4 1 4 8 4 9 4 1 4 2 7 6 1 2 5 7 1 4 7 1 9 1 3 6 8 5 5 7 6 7 1 0 6 7 0 1 4 6 9 1 1 9 7 7 9 9 7 2 2 7 2 4 0 1 3 9 1 6 9 9 1 1 7 9 8 5 1 3 9 4 2 5 - n 18 ; # of columns of m1, rows of m2 - m 100 ; # of rows of m1 - p 36 ; # of columns of m2 - r 0 ; a matrix of size n,p + m1 1 6 0 0 0 2 2 6 6 3 5 5 4 5 5 4 9 0 2 1 9 8 5 8 0 6 1 1 9 7 6 5 3 1 1 4 7 4 9 9 7 2 6 3 0 4 5 9 0 4 0 8 2 8 9 9 6 7 6 9 9 7 3 4 8 6 4 5 7 7 7 3 3 7 5 6 2 7 1 9 2 9 1 8 9 3 3 7 5 9 7 6 8 9 0 6 8 1 2 2 3 9 5 4 8 9 2 2 4 6 7 7 2 7 7 7 7 6 3 1 5 0 6 8 8 7 1 9 5 3 1 2 4 1 2 3 1 3 1 3 7 4 9 0 1 4 0 2 6 7 5 1 1 3 5 5 6 2 9 8 1 0 2 5 3 0 6 9 8 1 3 7 3 2 8 1 7 5 8 2 5 5 4 7 7 1 3 3 6 4 3 6 8 6 0 8 7 3 1 7 2 7 7 8 5 1 2 6 9 2 0 5 0 6 4 1 9 3 7 3 7 6 3 0 4 2 1 8 2 6 4 4 6 0 8 7 9 2 4 3 0 5 2 2 1 6 7 9 8 6 0 6 5 2 2 9 4 9 3 8 7 1 0 0 3 7 8 7 4 6 2 6 6 8 3 4 9 7 5 4 2 6 1 1 5 8 6 4 2 9 3 7 1 1 4 1 3 5 8 9 6 9 7 9 9 0 8 3 6 5 0 1 4 7 9 5 9 7 7 9 4 2 1 2 4 6 3 0 2 0 1 2 6 2 7 1 5 1 0 2 8 6 1 0 5 7 7 0 7 4 7 9 8 3 3 2 3 5 6 8 5 2 6 0 8 6 4 0 5 5 4 0 3 1 7 7 4 4 7 0 1 0 1 2 5 3 2 5 6 9 4 9 5 1 9 4 2 6 5 5 6 1 2 1 9 2 5 3 4 9 2 7 7 0 9 0 9 2 8 4 0 8 6 5 0 0 8 6 5 6 0 0 6 6 9 0 6 7 1 8 9 6 0 7 4 8 1 1 2 8 8 2 0 4 6 5 2 9 9 1 8 0 0 3 7 3 3 4 5 8 9 9 6 9 0 7 3 2 3 1 3 5 1 9 8 7 5 8 8 8 9 3 9 6 4 2 7 6 9 3 7 6 2 6 8 4 7 7 3 8 7 5 5 4 8 2 0 9 7 4 2 0 3 0 4 4 3 6 6 0 0 4 3 5 1 6 7 1 1 7 7 9 5 9 7 6 0 2 6 6 3 5 1 7 1 3 9 1 5 1 0 1 6 8 8 0 2 2 4 7 3 6 4 6 5 3 7 5 0 0 4 0 4 3 2 6 9 2 7 1 7 0 7 5 5 6 3 0 7 9 3 1 1 1 6 3 7 6 5 0 1 0 4 5 3 8 4 4 3 3 8 5 1 2 1 8 1 5 5 7 8 8 1 0 9 2 2 1 9 6 8 9 6 0 1 7 4 8 8 7 6 6 3 5 2 0 6 3 2 9 8 3 4 3 6 1 1 9 3 8 3 0 2 4 9 9 9 5 6 6 5 3 6 4 6 3 4 2 2 9 9 0 1 9 3 6 8 5 1 9 0 6 5 4 0 8 6 2 4 9 7 9 1 1 5 2 2 5 7 8 6 5 7 8 1 0 3 8 4 9 8 1 2 0 5 8 7 9 1 2 4 8 4 3 4 3 4 7 8 5 0 1 5 8 3 7 4 6 2 6 4 6 7 0 9 9 6 3 4 6 5 9 6 3 7 1 3 8 3 8 8 1 5 6 9 4 3 3 9 7 7 2 9 3 1 5 5 3 5 9 9 5 7 8 0 7 3 7 5 8 1 6 4 6 0 2 4 6 3 2 8 3 5 4 4 3 5 9 9 6 0 3 2 4 6 7 8 8 3 4 5 6 3 3 7 4 3 2 4 3 0 9 1 6 4 1 9 1 2 9 0 4 1 0 6 9 8 1 8 3 4 2 1 8 0 7 2 2 9 6 9 3 7 0 1 3 8 0 3 9 2 9 6 8 5 3 5 9 4 2 6 3 4 9 8 7 1 0 4 1 6 7 0 9 9 9 1 8 3 2 6 6 2 3 6 1 7 7 0 1 8 0 3 4 8 0 7 5 3 4 8 9 8 0 4 8 0 2 4 4 3 9 2 0 5 5 3 3 5 7 3 6 0 3 6 8 2 5 7 6 2 0 4 9 0 8 2 6 2 4 6 9 0 4 3 4 8 6 4 4 3 9 2 9 8 6 6 9 7 7 7 6 7 9 4 0 1 4 3 0 4 5 6 4 4 1 9 3 7 8 1 6 5 9 8 1 1 8 2 8 2 3 8 3 9 5 7 3 0 8 3 3 8 2 2 2 0 8 7 6 4 9 5 2 6 7 8 0 8 2 9 5 1 6 9 8 0 8 7 1 1 6 0 5 5 0 4 6 6 7 7 0 4 7 6 1 7 6 4 2 6 7 1 5 5 0 6 2 5 3 4 5 6 1 8 7 6 7 3 7 0 1 3 8 9 6 2 5 1 8 5 7 7 5 0 9 3 4 7 0 4 9 6 6 9 0 7 5 1 7 0 3 0 6 6 7 3 3 9 6 9 0 6 3 6 9 5 7 3 7 6 9 1 2 9 5 6 3 0 0 6 1 8 8 9 2 6 2 6 6 3 0 4 2 4 7 5 1 4 9 1 2 0 4 4 1 9 1 4 2 0 5 2 3 5 8 2 4 3 2 6 5 6 0 3 3 9 8 4 6 5 1 4 6 5 0 5 7 8 8 1 7 6 9 8 9 9 6 9 4 4 0 3 4 0 3 4 9 7 4 5 8 2 7 2 0 1 2 1 2 8 9 6 5 6 6 1 2 8 6 4 8 1 0 5 7 0 0 3 2 4 8 4 5 8 0 0 2 0 4 1 4 7 1 4 7 4 0 0 2 3 2 7 5 7 3 7 9 0 6 6 5 9 4 2 0 8 5 4 1 9 1 1 5 8 9 3 2 1 3 8 6 1 4 9 5 8 5 2 8 7 8 4 4 2 9 9 7 9 9 7 7 0 9 2 8 2 5 0 2 5 3 8 9 2 8 1 4 6 2 7 1 1 4 2 7 0 8 1 6 0 8 3 5 2 4 9 9 5 2 6 5 3 9 3 4 5 3 0 8 1 9 6 9 4 7 0 3 5 6 0 5 0 7 4 3 2 5 0 3 2 5 2 0 4 8 4 2 8 4 9 7 1 4 5 6 5 7 4 5 2 8 7 2 7 3 0 9 9 8 2 0 9 1 2 2 4 4 6 8 2 9 2 1 4 4 0 8 3 1 0 3 5 2 2 2 4 9 9 8 9 8 4 3 1 3 6 0 0 7 8 6 2 3 4 9 3 3 9 5 8 8 0 4 1 0 9 3 1 5 7 2 4 3 7 6 8 1 9 3 3 6 4 6 0 3 5 4 3 4 7 1 2 2 0 5 3 1 2 4 9 6 1 0 6 8 4 9 7 7 1 2 4 3 2 0 5 1 8 4 5 3 6 8 8 9 4 1 9 7 2 0 8 1 1 1 2 3 9 2 7 6 0 4 9 4 8 5 5 9 1 7 0 8 2 3 1 3 0 5 3 2 9 3 2 0 3 3 2 8 2 1 8 3 2 5 0 0 9 4 4 3 0 0 6 1 0 9 2 8 2 8 5 2 8 4 6 8 2 4 6 1 0 0 5 9 2 1 5 3 9 1 5 3 8 0 1 7 4 6 0 5 7 4 8 1 2 0 4 2 4 8 8 0 1 7 6 2 5 7 7 9 8 8 8 1 1 7 1 0 3 8 7 7 1 6 2 0 4 2 2 8 8 2 5 5 8 1 8 0 4 4 6 2 0 8 4 4 0 7 0 1 5 8 5 0 0 0 4 7 4 7 8 6 5 7 1 7 9 7 4 3 1 1 1 2 2 3 0 4 2 9 0 2 2 8 8 9 8 1 6 5 5 4 3 4 8 8 1 6 1 9 5 8 3 8 3 8 9 8 5 4 8 7 5 3 7 4 0 4 0 7 6 3 5 5 5 2 6 9 + m2 7 3 2 6 5 3 5 6 1 5 1 4 8 8 9 3 2 0 4 3 7 2 0 2 1 6 8 3 2 8 4 7 1 9 8 9 5 8 7 7 5 8 9 4 1 1 4 5 6 5 3 5 0 0 9 0 7 8 5 7 4 4 6 4 9 1 5 0 0 1 2 1 8 4 6 7 6 9 1 9 5 1 3 8 8 9 3 5 1 8 7 3 0 0 6 2 5 7 7 9 0 6 9 3 5 9 5 6 8 6 2 9 3 1 0 7 8 5 1 7 9 7 7 4 3 3 2 6 4 5 4 0 5 5 2 1 9 3 7 5 7 7 8 6 7 2 1 7 9 0 0 7 5 2 3 2 5 5 9 8 5 3 1 5 9 6 3 2 9 2 8 9 8 9 4 4 7 7 0 2 7 7 9 6 1 7 3 1 3 8 6 8 2 6 8 4 7 3 7 4 6 3 0 7 8 8 9 7 6 4 7 8 2 9 5 7 5 5 9 2 6 7 7 8 7 7 8 2 6 7 3 8 8 0 8 0 5 1 9 0 1 4 4 3 7 3 5 7 3 3 7 1 4 0 7 5 5 7 6 2 8 4 6 9 2 6 5 8 0 5 6 6 4 1 9 2 1 4 9 4 8 2 4 0 7 8 5 3 1 3 7 7 0 4 2 6 9 7 3 6 3 3 4 3 9 8 6 8 9 1 4 9 3 5 6 1 9 4 5 7 6 0 6 1 5 4 2 5 6 4 2 1 8 1 4 0 4 1 9 6 4 2 5 7 3 7 5 5 4 5 8 3 4 8 6 6 3 6 1 4 9 2 5 8 3 6 1 7 9 4 7 7 3 8 9 0 0 1 5 4 5 8 1 9 3 3 8 7 4 3 2 1 4 4 7 0 8 7 9 0 7 2 9 1 6 6 7 0 6 9 7 7 8 5 9 2 8 4 6 7 7 8 9 9 6 5 4 9 3 3 1 0 5 8 0 4 2 6 7 1 3 2 4 2 9 3 4 3 9 8 7 5 6 0 9 1 1 6 3 4 3 2 3 9 9 6 6 0 5 0 6 2 8 5 0 1 3 2 0 9 5 2 2 3 3 7 6 3 5 6 7 4 2 0 6 8 5 4 0 5 6 4 7 6 1 7 6 5 1 9 7 7 3 5 6 7 9 2 0 5 2 0 5 8 0 2 4 7 0 9 0 3 1 3 5 5 1 7 8 3 1 6 9 2 4 4 6 6 7 7 4 4 4 5 8 6 0 3 8 4 9 0 3 5 2 3 1 4 5 8 1 2 9 2 6 8 4 1 4 8 4 9 4 1 4 2 7 6 1 2 5 7 1 4 7 1 9 1 3 6 8 5 5 7 6 7 1 0 6 7 0 1 4 6 9 1 1 9 7 7 9 9 7 2 2 7 2 4 0 1 3 9 1 6 9 9 1 1 7 9 8 5 1 3 9 4 2 5 + n 18 ; # of columns of m1, rows of m2 + m 100 ; # of rows of m1 + p 36 ; # of columns of m2 + r 0 ; a matrix of size n,p .text - addi $5 $2 0x0 ; establish frame pointer - jmp MAIN + addi $5 $2 0x0 ; establish frame pointer + jmp MAIN MAIN: - push $5 ; function preamble - addi $5 $2 0x0 - subi $2 $2 0x0 + push $5 ; function preamble + addi $5 $2 0x0 + subi $2 $2 0x0 - addi $7 $0 0x0 ; tracks M - jrl MCOND + addi $7 $0 0x0 ; tracks M + jrl MCOND MITER: - addi $8 $0 0x0 ; tracks P - jrl PCOND + addi $8 $0 0x0 ; tracks P + jrl PCOND PITER: - addi $9 $0 0x0 ; tracks N - addi $10 $0 0x0 ; tracks accumulated result + addi $9 $0 0x0 ; tracks N + addi $10 $0 0x0 ; tracks accumulated result - load $6 n($0) ; index m1 - mul $11 $6 $7 - addi $11 $11 m1 + load $6 n($0) ; index m1 + mul $11 $6 $7 + addi $11 $11 m1 - addi $12 $8 m2 ; index m2 + addi $12 $8 m2 ; index m2 - jrl NCOND + jrl NCOND NITER: - add $13 $11 $9 ; increment m1 + add $13 $11 $9 ; increment m1 - load $6 p($0) - mul $14 $9 $6 ; increment m2 - add $14 $14 $12 + load $6 p($0) + mul $14 $9 $6 ; increment m2 + add $14 $14 $12 - load $6 0($13) - load $15 0($14) - mul $6 $6 $15 - add $10 $10 $6 + load $6 0($13) + load $15 0($14) + mul $6 $6 $15 + add $10 $10 $6 - addi $9 $9 0x1 ; increment element being added + addi $9 $9 0x1 ; increment element being added NCOND: - load $6 n($0) - cmp $6 $9 - bgt NITER + load $6 n($0) + cmp $6 $9 + bgt NITER - load $6 p($0) ; store result - mul $6 $6 $7 - add $6 $6 $8 - store $10 r($6) + load $6 p($0) ; store result + mul $6 $6 $7 + add $6 $6 $8 + store $10 r($6) - addi $8 $8 0x1 ; increment columns in m2 + addi $8 $8 0x1 ; increment columns in m2 PCOND: - load $6 p($0) - cmp $6 $8 - bgt PITER + load $6 p($0) + cmp $6 $8 + bgt PITER - addi $7 $7 0x1 ; increment rows in m1 + addi $7 $7 0x1 ; increment rows in m1 MCOND: - load $6 m($0) - cmp $6 $7 - bgt MITER - nop - nop - nop - nop - nop - nop + load $6 m($0) + cmp $6 $7 + bgt MITER + nop + nop + nop + nop + nop + nop diff --git a/input/identity.asm b/input/identity.asm index bb6af17..13918d2 100644 --- a/input/identity.asm +++ b/input/identity.asm @@ -7,64 +7,64 @@ ;;; does not use designated vector instructions .data - m1 01 00 -1 00 00 01 00 -1 00 00 01 00 00 00 00 01 - m2 01 00 01 00 00 01 00 01 00 00 01 00 00 00 00 01 - r 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + m1 01 00 -1 00 00 01 00 -1 00 00 01 00 00 00 00 01 + m2 01 00 01 00 00 01 00 01 00 00 01 00 00 00 00 01 + r 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .text - addi $8 $0 0x4 ; dimensions - addi $9 $0 0x0 ; tracks the rows - jrl ROWCOND + addi $8 $0 0x4 ; dimensions + addi $9 $0 0x0 ; tracks the rows + jrl ROWCOND ROW: - addi $10 $0 0x0 ; tracks the columns - jrl COLCOND + addi $10 $0 0x0 ; tracks the columns + jrl COLCOND COL: - addi $11 $0 0x0 ; tracks the element being added - addi $12 $0 0x0 ; the accumulated result to place into $9,$10 + addi $11 $0 0x0 ; tracks the element being added + addi $12 $0 0x0 ; the accumulated result to place into $9,$10 - mul $7 $9 $8 ; setup the index into m1 - addi $5 $7 m1 + mul $7 $9 $8 ; setup the index into m1 + addi $5 $7 m1 - addi $6 $0 m2 ; setup the index into m2 - add $6 $6 $10 + addi $6 $0 m2 ; setup the index into m2 + add $6 $6 $10 - addi $15 $5 0 ; setup a base address into both - addi $7 $6 0 + addi $15 $5 0 ; setup a base address into both + addi $7 $6 0 - jrl ELECOND + jrl ELECOND ELE: - add $5 $15 $11 ; increment m1 + add $5 $15 $11 ; increment m1 - mul $13 $11 $8 ; increment m2 - add $6 $7 $13 + mul $13 $11 $8 ; increment m2 + add $6 $7 $13 - load $13 0($5) ; retrieve and accumulate - load $14 0($6) - mul $13 $14 $13 - add $12 $12 $13 + load $13 0($5) ; retrieve and accumulate + load $14 0($6) + mul $13 $14 $13 + add $12 $12 $13 - addi $11 $11 0x1 + addi $11 $11 0x1 ELECOND: - cmp $8 $11 - bgt ELE + cmp $8 $11 + bgt ELE - mul $7 $9 $8 - add $7 $7 $10 - addi $7 $7 r + mul $7 $9 $8 + add $7 $7 $10 + addi $7 $7 r - store $12 0($7) + store $12 0($7) - addi $10 $10 0x1 + addi $10 $10 0x1 COLCOND: - cmp $8 $10 - bgt COL + cmp $8 $10 + bgt COL - addi $9 $9 0x1 + addi $9 $9 0x1 ROWCOND: - cmp $8 $9 - bgt ROW - nop - nop - nop - nop - nop + cmp $8 $9 + bgt ROW + nop + nop + nop + nop + nop diff --git a/input/infinity.asm b/input/infinity.asm index 16b7fd7..18ee2fe 100644 --- a/input/infinity.asm +++ b/input/infinity.asm @@ -3,11 +3,11 @@ .data .text - addi $5 $0 0x0 + addi $5 $0 0x0 LOOP: - addi $5 $5 0x1 - subi $5 $5 0x0 - jrl LOOP - nop - nop - nop + addi $5 $5 0x1 + subi $5 $5 0x0 + jrl LOOP + nop + nop + nop diff --git a/input/matrix-vector.asm b/input/matrix-vector.asm index 7b91a6a..8c0b372 100644 --- a/input/matrix-vector.asm +++ b/input/matrix-vector.asm @@ -8,91 +8,91 @@ ;;; does not use designated vector instructions .data - m1 9 4 3 1 4 2 9 4 7 6 6 6 - m2 1 0 4 2 2 8 3 1 9 4 8 3 5 6 2 - n 3 ; # of columns of m1, rows of m2 - m 4 ; # of rows of m1 - p 5 ; # of columns of m2 - r 0 ; a matrix of size n,p + m1 9 4 3 1 4 2 9 4 7 6 6 6 + m2 1 0 4 2 2 8 3 1 9 4 8 3 5 6 2 + n 3 ; # of columns of m1, rows of m2 + m 4 ; # of rows of m1 + p 5 ; # of columns of m2 + r 0 ; a matrix of size n,p .text - addi $5 $2 0x0 ; establish frame pointer - jmp MAIN + addi $5 $2 0x0 ; establish frame pointer + jmp MAIN MAIN: - push $5 ; function preamble - addi $5 $2 0x0 - subi $2 $2 0x0 + push $5 ; function preamble + addi $5 $2 0x0 + subi $2 $2 0x0 ;;; ;;; setup vector stuff, rotate num, column stride - load $4 n($0) - addi $14 $4 0x0 - load $6 p($0) - load $7 m($0) - addi $15 $0 0x1 - addi $8 $0 0x0 - jrl STRCOND + load $4 n($0) + addi $14 $4 0x0 + load $6 p($0) + load $7 m($0) + addi $15 $0 0x1 + addi $8 $0 0x0 + jrl STRCOND STR: - addv $17 $17 $16 ; set column stride - addi $8 $8 0x1 + addv $17 $17 $16 ; set column stride + addi $8 $8 0x1 STRCOND: - cmp $6 $8 - bgt STR + cmp $6 $8 + bgt STR ;;; end vector setup ;;; - addi $8 $0 0x0 ; tracks M - jrl MCOND + addi $8 $0 0x0 ; tracks M + jrl MCOND MITER: - load $4 n($0) ; set vector length to n - addi $9 $0 0x0 ; tracks P - jrl PCOND + load $4 n($0) ; set vector length to n + addi $9 $0 0x0 ; tracks P + jrl PCOND PITER: - mul $10 $4 $8 ; index m1 - addi $10 $10 m1 + mul $10 $4 $8 ; index m1 + addi $10 $10 m1 - addi $11 $9 m2 ; index m2 + addi $11 $9 m2 ; index m2 - srdl $18 $10 $16 ; load row - srdl $19 $11 $17 ; load column + srdl $18 $10 $16 ; load row + srdl $19 $11 $17 ; load column - mulv $18 $18 $19 ; mul elements + mulv $18 $18 $19 ; mul elements - addi $13 $0 0x1 ; tracks iterations - jrl ROTCOND + addi $13 $0 0x1 ; tracks iterations + jrl ROTCOND ROT: - rotv $18 $18 $15 - addi $13 $13 0x1 + rotv $18 $18 $15 + addi $13 $13 0x1 ROTCOND: - addi $4 $0 0x1 - addv $20 $20 $18 - addi $4 $14 0x0 - cmp $4 $13 - bgt ROT + addi $4 $0 0x1 + addv $20 $20 $18 + addi $4 $14 0x0 + cmp $4 $13 + bgt ROT - mul $13 $6 $8 ; store the result - add $13 $13 $9 - addi $13 $13 r - srds $20 $13 $16 + mul $13 $6 $8 ; store the result + add $13 $13 $9 + addi $13 $13 r + srds $20 $13 $16 - addi $4 $0 0x0 ; clear the accumulator - addv $20 $20 $20 - addi $4 $14 0x0 + addi $4 $0 0x0 ; clear the accumulator + addv $20 $20 $20 + addi $4 $14 0x0 - addi $9 $9 0x1 ; increment columns in m2 + addi $9 $9 0x1 ; increment columns in m2 PCOND: - cmp $6 $9 - bgt PITER + cmp $6 $9 + bgt PITER - addi $8 $8 0x1 ; increment rows in m1 + addi $8 $8 0x1 ; increment rows in m1 MCOND: - cmp $7 $8 - bgt MITER - nop - nop - nop - nop - nop - nop + cmp $7 $8 + bgt MITER + nop + nop + nop + nop + nop + nop diff --git a/input/maximum-limit.asm b/input/maximum-limit.asm index 4df852c..ede9e5b 100644 --- a/input/maximum-limit.asm +++ b/input/maximum-limit.asm @@ -4,13 +4,13 @@ .data .text MAIN: - addi $5 $0 1 - sftli $5 $5 31 - addi $6 $0 -1 - quot $5 $5 $6 - bof DONE - addi $5 $0 -1 ; bad! + addi $5 $0 1 + sftli $5 $5 31 + addi $6 $0 -1 + quot $5 $5 $6 + bof DONE + addi $5 $0 -1 ; bad! DONE: - nop - nop - nop + nop + nop + nop diff --git a/input/over_or_under.asm b/input/over_or_under.asm index d543e22..c220192 100644 --- a/input/over_or_under.asm +++ b/input/over_or_under.asm @@ -2,60 +2,60 @@ ;;; tests the over/underflow conditions on various operations .data - vSiz 8 - n1 -1 - space1 0 0 0 0 0 0 0 ; space is added to load this as a vector - max 0x7FFFFFFF - space2 0 0 0 0 0 0 0 - min 0x80000000 + vSiz 8 + n1 -1 + space1 0 0 0 0 0 0 0 ; space is added to load this as a vector + max 0x7FFFFFFF + space2 0 0 0 0 0 0 0 + min 0x80000000 .text - load $4 vSiz($0) - load $5 max($0) - load $6 min($0) - load $9 n1($0) - addi $7 $0 max - srdl $17 $7 $16 - addi $7 $0 min - srdl $18 $7 $16 - addi $7 $0 n1 - srdl $19 $7 $16 - addi $7 $0 1 - addi $8 $0 -1 - jrl ADDROVER + load $4 vSiz($0) + load $5 max($0) + load $6 min($0) + load $9 n1($0) + addi $7 $0 max + srdl $17 $7 $16 + addi $7 $0 min + srdl $18 $7 $16 + addi $7 $0 n1 + srdl $19 $7 $16 + addi $7 $0 1 + addi $8 $0 -1 + jrl ADDROVER WIN: - nop - nop - nop - quot $0 $0 $0 + nop + nop + nop + quot $0 $0 $0 ADDROVER: - add $0 $5 $7 - bof SUBRUNDER - jrl DIE + add $0 $5 $7 + bof SUBRUNDER + jrl DIE SUBRUNDER: - sub $0 $6 $7 - buf MULROK - jrl DIE + sub $0 $6 $7 + buf MULROK + jrl DIE MULROK: - mul $0 $5 $7 - buf DIE - jrl MULVROVER + mul $0 $5 $7 + buf DIE + jrl MULVROVER MULVROVER: - mulv $16 $18 $19 - bof DIVVIOVER - jrl DIE + mulv $16 $18 $19 + bof DIVVIOVER + jrl DIE DIVVIOVER: - divv $16 $18 $19 - bof WIN - jrl DIE + divv $16 $18 $19 + bof WIN + jrl DIE DIE: - nop - nop - nop + nop + nop + nop diff --git a/input/primes-generator.asm b/input/primes-generator.asm index f772fc3..2fac25f 100644 --- a/input/primes-generator.asm +++ b/input/primes-generator.asm @@ -5,70 +5,70 @@ ;;; you'll find online. That may be better. :) .data - N 5000 - primes 0 + N 5000 + primes 0 .text - addi $5 $2 0x0 ; establish frame pointer - addi $6 $0 0x0 ; establish return argument - jmp MAIN + addi $5 $2 0x0 ; establish frame pointer + addi $6 $0 0x0 ; establish return argument + jmp MAIN TRIAL: - push $5 ;function preamble - addi $5 $2 0x0 - subi $2 $2 0x0 + push $5 ;function preamble + addi $5 $2 0x0 + subi $2 $2 0x0 - load $7 +1($5) ; N (argument) - addi $8 $0 0x2 ; the initial divisor - addi $6 $0 0x0 ; the return value + load $7 +1($5) ; N (argument) + addi $8 $0 0x2 ; the initial divisor + addi $6 $0 0x0 ; the return value - jrl TCOND + jrl TCOND TLOOP: - rem $9 $7 $8 ; check if divisible - cmp $9 $0 - beq END + rem $9 $7 $8 ; check if divisible + cmp $9 $0 + beq END - addi $8 $8 0x1 + addi $8 $8 0x1 TCOND: - cmp $7 $8 - bgt TLOOP + cmp $7 $8 + bgt TLOOP - addi $6 $0 0x1 ; return 1 (signal parameter is prime) + addi $6 $0 0x1 ; return 1 (signal parameter is prime) END: - addi $2 $5 0x0 ; function postamble - pop $5 - ret + addi $2 $5 0x0 ; function postamble + pop $5 + ret MAIN: - push $5 ; function preamble - addi $5 $2 0x0 - subi $2 $2 0x3 + push $5 ; function preamble + addi $5 $2 0x0 + subi $2 $2 0x3 - load $7 N($0) ; N - addi $8 $0 0x2 ; number to test - addi $9 $0 0x0 ; index to store + load $7 N($0) ; N + addi $8 $0 0x2 ; number to test + addi $9 $0 0x0 ; index to store GEN: - store $9 -1($5) ; caller-saved registers - store $8 -2($5) - store $7 -3($5) + store $9 -1($5) ; caller-saved registers + store $8 -2($5) + store $7 -3($5) - push $8 ; push arg - jal TRIAL - addi $2 $2 0x1 + push $8 ; push arg + jal TRIAL + addi $2 $2 0x1 - load $9 -1($5) ; restore registers - load $8 -2($5) - load $7 -3($5) + load $9 -1($5) ; restore registers + load $8 -2($5) + load $7 -3($5) - cmp $6 $0 ; check if return is 0 - beq COMPOSITE + cmp $6 $0 ; check if return is 0 + beq COMPOSITE - store $8 primes($9) ; store prime - addi $9 $9 0x1 + store $8 primes($9) ; store prime + addi $9 $9 0x1 COMPOSITE: - addi $8 $8 0x1 - cmp $7 $8 - bgt GEN - nop - nop - nop + addi $8 $8 0x1 + cmp $7 $8 + bgt GEN + nop + nop + nop diff --git a/input/rabbits.asm b/input/rabbits.asm index f296cd2..4311750 100644 --- a/input/rabbits.asm +++ b/input/rabbits.asm @@ -2,20 +2,19 @@ ;;; multiplies numbers until an overflow occurs .data - rabbits 2 - rate 2 + rabbits 2 + rate 2 .text - load $5 rabbits($0) - load $6 rate($0) + load $5 rabbits($0) + load $6 rate($0) BREED: - mul $5 $5 $6 - store $5 rabbits($0) - bof DONE - jrl BREED + mul $5 $5 $6 + store $5 rabbits($0) + bof DONE + jrl BREED DONE: - nop - nop - nop - div $0 $0 $0 + nop + nop + nop diff --git a/input/stacktopia.asm b/input/stacktopia.asm index 5eef33b..783ff54 100644 --- a/input/stacktopia.asm +++ b/input/stacktopia.asm @@ -4,17 +4,17 @@ .data .text MAIN: - addi $5 $0 1 - push $5 - addi $5 $5 1 - push $5 - addi $5 $5 1 - push $5 - addi $5 $5 1 - push $5 - pop $5 - pop $6 - pop $7 - pop $8 - nop - nop + addi $5 $0 1 + push $5 + addi $5 $5 1 + push $5 + addi $5 $5 1 + push $5 + addi $5 $5 1 + push $5 + pop $5 + pop $6 + pop $7 + pop $8 + nop + nop diff --git a/input/stride.asm b/input/stride.asm index 5a99a3d..1052294 100644 --- a/input/stride.asm +++ b/input/stride.asm @@ -2,34 +2,29 @@ ;;; tests the stride load/store operations .data - s 8 - j 0 2 4 6 8 10 -6 -3 ; tricky stride - d 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 - r 0 + s 8 + j 0 2 4 6 8 10 -6 -3 ; tricky stride + d 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 + r 0 .text - addi $5 $0 d ; obtain pointer to data/result - addi $6 $0 r - addi $7 $0 j - load $4 s($0) ; set vector length - addv $17 $16 $16 + addi $5 $0 d ; obtain pointer to data/result + addi $6 $0 r + addi $7 $0 j + load $4 s($0) ; set vector length + addv $17 $16 $16 -;;; TMP TESTING ;;; - addi $4 $0 0x0 - addv $17 $16 $16 ; clear vector -;;; END ;;; + addv $18 $17 $16 - addv $18 $17 $16 + srdl $19 $7 $16 ; load fun stride + rotv $19 $19 $5 ; mix it up + srds $19 $6 $17 - srdl $19 $7 $16 ; load fun stride - rotv $19 $19 $5 ; mix it up - srds $19 $6 $17 + srdl $20 $5 $17 + srds $20 $6 $16 - srdl $20 $5 $17 - srds $20 $6 $16 + srdl $20 $5 $19 + srds $20 $6 $16 - srdl $20 $5 $19 - srds $20 $6 $16 - - nop - nop - nop + nop + nop + nop diff --git a/input/there-and-back-again.asm b/input/there-and-back-again.asm index 5f6b2ec..22dfb32 100644 --- a/input/there-and-back-again.asm +++ b/input/there-and-back-again.asm @@ -4,16 +4,16 @@ .data .text MAIN: - jal PUSHER - pop $5 - nop - nop - nop - quot $0 $0 $0 + jal PUSHER + pop $5 + nop + nop + nop + quot $0 $0 $0 PUSHER: - push $2 - ret - nop - nop - nop - nop + push $2 + ret + nop + nop + nop + nop diff --git a/input/vector_fun.asm b/input/vector_fun.asm index f91b4a0..c023cac 100644 --- a/input/vector_fun.asm +++ b/input/vector_fun.asm @@ -2,21 +2,21 @@ ;;; tests the ALU vector extension .data - s 4 + s 4 .text - load $4 s($0) ; set the vector length register + load $4 s($0) ; set the vector length register LOOP: - cev $17 $16 - beq END + cev $17 $16 + beq END - addv $17 $16 $17 - addv $17 $16 $17 - mulv $17 $17 $17 - subv $17 $17 $16 - subv $17 $17 $16 - subv $17 $17 $16 - jrl LOOP + addv $17 $16 $17 + addv $17 $16 $17 + mulv $17 $17 $17 + subv $17 $17 $16 + subv $17 $17 $16 + subv $17 $17 $16 + jrl LOOP END: - nop - nop - nop + nop + nop + nop |