boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

P1-aarch64.M1 (18187B)


      1 ## aarch64.M1 — GENERATED by p1/gen/p1_gen.py. Do not edit by hand.
      2 ##
      3 ## This table targets the P1 ISA described in docs/P1.md.
      4 ## Row shapes are shared; per-arch lowering lives in p1/gen/<arch>.py.
      5 
      6 
      7 ## ---- Materialization
      8 DEFINE li_a0 4000005803000014
      9 DEFINE li_a1 4100005803000014
     10 DEFINE li_a2 4200005803000014
     11 DEFINE li_a3 4300005803000014
     12 DEFINE li_t0 4900005803000014
     13 DEFINE li_t1 4A00005803000014
     14 DEFINE li_t2 4B00005803000014
     15 DEFINE la_a0 4000001802000014
     16 DEFINE la_a1 4100001802000014
     17 DEFINE la_a2 4200001802000014
     18 DEFINE la_a3 4300001802000014
     19 DEFINE la_t0 4900001802000014
     20 DEFINE la_t1 4A00001802000014
     21 DEFINE la_t2 4B00001802000014
     22 DEFINE la_br 5100001802000014
     23 
     24 ## ---- Moves
     25 DEFINE mov_a0,a1 E00301AA
     26 DEFINE mov_a0,a3 E00303AA
     27 DEFINE mov_a0,t0 E00309AA
     28 DEFINE mov_a0,t1 E0030AAA
     29 DEFINE mov_a1,a0 E10300AA
     30 DEFINE mov_a1,t0 E10309AA
     31 DEFINE mov_a1,t1 E1030AAA
     32 DEFINE mov_a1,t2 E1030BAA
     33 DEFINE mov_a2,a1 E20301AA
     34 DEFINE mov_a2,t0 E20309AA
     35 DEFINE mov_a2,t1 E2030AAA
     36 DEFINE mov_t0,a0 E90300AA
     37 DEFINE mov_t1,a0 EA0300AA
     38 DEFINE mov_t1,t0 EA0309AA
     39 DEFINE mov_t2,a0 EB0300AA
     40 DEFINE mov_t2,t1 EB030AAA
     41 
     42 ## ---- Register Arithmetic
     43 DEFINE add_a0,a0,a1 0000018B
     44 DEFINE add_a0,a0,a2 0000028B
     45 DEFINE add_a0,a0,a3 0000038B
     46 DEFINE add_a0,a0,t0 0000098B
     47 DEFINE add_a0,a0,t1 00000A8B
     48 DEFINE add_a0,a2,a0 4000008B
     49 DEFINE add_a0,a2,t2 40000B8B
     50 DEFINE add_a0,t0,a3 2001038B
     51 DEFINE add_a0,t1,a0 4001008B
     52 DEFINE add_a0,t1,t2 40010B8B
     53 DEFINE add_a0,t2,a1 6001018B
     54 DEFINE add_a1,a0,a1 0100018B
     55 DEFINE add_a1,a0,a3 0100038B
     56 DEFINE add_a1,a1,a0 2100008B
     57 DEFINE add_a1,a1,a2 2100028B
     58 DEFINE add_a1,a1,a3 2100038B
     59 DEFINE add_a1,a1,t0 2100098B
     60 DEFINE add_a1,a1,t2 21000B8B
     61 DEFINE add_a1,a2,t0 4100098B
     62 DEFINE add_a1,a3,a1 6100018B
     63 DEFINE add_a1,t0,a0 2101008B
     64 DEFINE add_a1,t2,a1 6101018B
     65 DEFINE add_a1,t2,a3 6101038B
     66 DEFINE add_a1,t2,t1 61010A8B
     67 DEFINE add_a2,a1,a3 2200038B
     68 DEFINE add_a2,a1,t0 2200098B
     69 DEFINE add_a2,a2,a0 4200008B
     70 DEFINE add_a2,a2,a1 4200018B
     71 DEFINE add_a2,a2,a3 4200038B
     72 DEFINE add_a2,a2,t0 4200098B
     73 DEFINE add_a2,a2,t1 42000A8B
     74 DEFINE add_a2,a2,t2 42000B8B
     75 DEFINE add_a2,a3,a1 6200018B
     76 DEFINE add_a2,a3,a2 6200028B
     77 DEFINE add_a2,t0,t1 22010A8B
     78 DEFINE add_a2,t2,a0 6201008B
     79 DEFINE add_a2,t2,a2 6201028B
     80 DEFINE add_a3,a0,a2 0300028B
     81 DEFINE add_a3,a1,t1 23000A8B
     82 DEFINE add_a3,a1,t2 23000B8B
     83 DEFINE add_a3,a2,t1 43000A8B
     84 DEFINE add_a3,a3,a0 6300008B
     85 DEFINE add_a3,a3,a1 6300018B
     86 DEFINE add_a3,a3,a2 6300028B
     87 DEFINE add_a3,a3,t0 6300098B
     88 DEFINE add_a3,a3,t1 63000A8B
     89 DEFINE add_a3,a3,t2 63000B8B
     90 DEFINE add_a3,t0,t2 23010B8B
     91 DEFINE add_a3,t1,a2 4301028B
     92 DEFINE add_t0,a1,t2 29000B8B
     93 DEFINE add_t0,a2,a3 4900038B
     94 DEFINE add_t0,a3,a1 6900018B
     95 DEFINE add_t0,a3,t0 6900098B
     96 DEFINE add_t0,t0,a0 2901008B
     97 DEFINE add_t0,t0,a1 2901018B
     98 DEFINE add_t0,t0,a3 2901038B
     99 DEFINE add_t0,t0,t1 29010A8B
    100 DEFINE add_t0,t2,a3 6901038B
    101 DEFINE add_t1,a0,t0 0A00098B
    102 DEFINE add_t1,a3,t1 6A000A8B
    103 DEFINE add_t1,t0,a0 2A01008B
    104 DEFINE add_t1,t0,t1 2A010A8B
    105 DEFINE add_t1,t1,a2 4A01028B
    106 DEFINE add_t1,t1,t0 4A01098B
    107 DEFINE add_t1,t1,t2 4A010B8B
    108 DEFINE add_t2,a0,t0 0B00098B
    109 DEFINE add_t2,a0,t1 0B000A8B
    110 DEFINE add_t2,a1,t2 2B000B8B
    111 DEFINE add_t2,a2,t1 4B000A8B
    112 DEFINE add_t2,t0,t1 2B010A8B
    113 DEFINE add_t2,t1,t0 4B01098B
    114 DEFINE add_t2,t1,t2 4B010B8B
    115 DEFINE add_t2,t2,a0 6B01008B
    116 DEFINE add_t2,t2,a3 6B01038B
    117 DEFINE add_t2,t2,t1 6B010A8B
    118 DEFINE sub_a0,a0,t1 00000ACB
    119 DEFINE sub_a0,a1,a0 200000CB
    120 DEFINE sub_a0,a1,t2 20000BCB
    121 DEFINE sub_a0,a3,a0 600000CB
    122 DEFINE sub_a0,t0,a1 200101CB
    123 DEFINE sub_a0,t0,t1 20010ACB
    124 DEFINE sub_a0,t1,a0 400100CB
    125 DEFINE sub_a1,t0,a0 210100CB
    126 DEFINE sub_a2,a1,a0 220000CB
    127 DEFINE sub_a2,a2,a2 420002CB
    128 DEFINE sub_a2,a2,t0 420009CB
    129 DEFINE sub_a2,t0,t1 22010ACB
    130 DEFINE sub_a2,t2,a3 620103CB
    131 DEFINE sub_a3,a1,a2 230002CB
    132 DEFINE sub_a3,a3,a2 630002CB
    133 DEFINE sub_a3,t0,a2 230102CB
    134 DEFINE sub_a3,t0,a3 230103CB
    135 DEFINE sub_a3,t1,a2 430102CB
    136 DEFINE sub_a3,t1,a3 430103CB
    137 DEFINE sub_a3,t1,t0 430109CB
    138 DEFINE sub_a3,t2,t1 63010ACB
    139 DEFINE sub_t0,a1,a2 290002CB
    140 DEFINE sub_t0,t0,a1 290101CB
    141 DEFINE sub_t0,t0,t1 29010ACB
    142 DEFINE sub_t0,t1,t0 490109CB
    143 DEFINE sub_t1,t1,t0 4A0109CB
    144 DEFINE sub_t2,t1,t0 4B0109CB
    145 DEFINE and_a3,a3,a2 6300028A
    146 DEFINE or_a0,a0,a2 000002AA
    147 DEFINE or_a3,a3,a2 630002AA
    148 DEFINE or_t0,t0,t1 29010AAA
    149 DEFINE xor_a2,a2,a3 420003CA
    150 DEFINE xor_a3,a3,a2 630002CA
    151 DEFINE shl_a2,a2,a3 4220C39A
    152 DEFINE sar_a2,a2,a3 4228C39A
    153 DEFINE mul_a0,a0,a3 007C039B
    154 DEFINE mul_a0,a0,t0 007C099B
    155 DEFINE mul_a0,t1,t2 407D0B9B
    156 DEFINE mul_a1,t0,t1 217D0A9B
    157 DEFINE mul_a2,a2,t1 427C0A9B
    158 DEFINE mul_a3,a3,a2 637C029B
    159 DEFINE mul_t0,t0,a1 297D019B
    160 DEFINE mul_t0,t0,t1 297D0A9B
    161 DEFINE mul_t2,t0,a2 2B7D029B
    162 DEFINE div_a0,a0,a1 000CC19A
    163 DEFINE div_a0,a0,t1 000CCA9A
    164 DEFINE div_a2,a2,a3 420CC39A
    165 DEFINE rem_a2,a0,a1 100CC19A0282019B
    166 DEFINE rem_a2,a0,t1 100CCA9A02820A9B
    167 DEFINE rem_a2,a2,a3 500CC39A028A039B
    168 DEFINE rem_a2,t0,a1 300DC19A02A6019B
    169 
    170 ## ---- Immediate Arithmetic
    171 DEFINE addi_a0,a0,neg1 000400D1
    172 DEFINE addi_a0,a0,1 00040091
    173 DEFINE addi_a0,a0,32 00800091
    174 DEFINE addi_a1,a1,neg32 218000D1
    175 DEFINE addi_a1,a1,neg2 210800D1
    176 DEFINE addi_a1,a1,1 21040091
    177 DEFINE addi_a1,a1,2 21080091
    178 DEFINE addi_a1,a1,3 210C0091
    179 DEFINE addi_a1,t0,1 21050091
    180 DEFINE addi_a2,a0,1 02040091
    181 DEFINE addi_a2,a2,neg1 420400D1
    182 DEFINE addi_a2,a2,1 42040091
    183 DEFINE addi_a2,a2,2 42080091
    184 DEFINE addi_a2,a2,3 420C0091
    185 DEFINE addi_a2,a2,8 42200091
    186 DEFINE addi_a2,a2,24 42600091
    187 DEFINE addi_a2,a2,48 42C00091
    188 DEFINE addi_a2,t0,1 22050091
    189 DEFINE addi_a2,t0,32 22810091
    190 DEFINE addi_a2,t2,neg48 62C100D1
    191 DEFINE addi_a3,a3,neg1 630400D1
    192 DEFINE addi_a3,a3,1 63040091
    193 DEFINE addi_a3,a3,32 63800091
    194 DEFINE addi_a3,t0,32 23810091
    195 DEFINE addi_a3,t1,32 43810091
    196 DEFINE addi_t0,a0,32 09800091
    197 DEFINE addi_t0,a1,neg32 298000D1
    198 DEFINE addi_t0,a1,32 29800091
    199 DEFINE addi_t0,a3,neg1 690400D1
    200 DEFINE addi_t0,t0,neg1 290500D1
    201 DEFINE addi_t0,t0,1 29050091
    202 DEFINE addi_t0,t0,2 29090091
    203 DEFINE addi_t0,t0,7 291D0091
    204 DEFINE addi_t0,t0,32 29810091
    205 DEFINE addi_t1,t0,32 2A810091
    206 DEFINE addi_t1,t1,neg32 4A8100D1
    207 DEFINE addi_t1,t1,neg1 4A0500D1
    208 DEFINE addi_t1,t1,1 4A050091
    209 DEFINE addi_t1,t1,16 4A410091
    210 DEFINE addi_t1,t1,32 4A810091
    211 DEFINE addi_t2,a1,neg32 2B8000D1
    212 DEFINE addi_t2,t0,neg32 2B8100D1
    213 DEFINE addi_t2,t0,32 2B810091
    214 DEFINE addi_t2,t1,2 4B090091
    215 DEFINE addi_t2,t2,neg1 6B0500D1
    216 DEFINE addi_t2,t2,1 6B050091
    217 DEFINE addi_t2,t2,7 6B1D0091
    218 DEFINE addi_t2,t2,24 6B610091
    219 DEFINE addi_t2,t2,32 6B810091
    220 DEFINE andi_a0,a0,255 F01F80D20000108A
    221 DEFINE andi_a2,a2,15 F00180D24200108A
    222 DEFINE andi_a3,a3,15 F00180D26300108A
    223 DEFINE andi_a3,a3,255 F01F80D26300108A
    224 DEFINE andi_a3,t2,255 F01F80D26301108A
    225 DEFINE shli_a0,a0,3 00F07DD3
    226 DEFINE shli_a0,a0,4 00EC7CD3
    227 DEFINE shli_a1,a1,1 21F87FD3
    228 DEFINE shli_a2,a2,3 42F07DD3
    229 DEFINE shli_a2,t1,3 42F17DD3
    230 DEFINE shli_a3,t0,1 23F97FD3
    231 DEFINE shli_a3,t0,4 23ED7CD3
    232 DEFINE shli_t0,t0,4 29ED7CD3
    233 DEFINE shli_t1,a2,3 4AF07DD3
    234 DEFINE shli_t1,t1,3 4AF17DD3
    235 DEFINE shli_t2,t0,3 2BF17DD3
    236 DEFINE shri_a0,a0,5 00FC45D3
    237 DEFINE shri_a2,a3,4 62FC44D3
    238 DEFINE shri_t2,t2,8 6BFD48D3
    239 
    240 ## ---- Memory
    241 DEFINE ld_a0,a0,0 000040F9
    242 DEFINE ld_a0,a0,8 000440F9
    243 DEFINE ld_a0,a0,16 000840F9
    244 DEFINE ld_a0,a1,0 200040F9
    245 DEFINE ld_a0,a1,16 200840F9
    246 DEFINE ld_a0,a2,0 400040F9
    247 DEFINE ld_a0,a2,24 400C40F9
    248 DEFINE ld_a0,a3,0 600040F9
    249 DEFINE ld_a0,a3,8 600440F9
    250 DEFINE ld_a0,a3,16 600840F9
    251 DEFINE ld_a0,a3,24 600C40F9
    252 DEFINE ld_a0,t0,0 200140F9
    253 DEFINE ld_a0,t0,8 200540F9
    254 DEFINE ld_a0,t0,16 200940F9
    255 DEFINE ld_a0,sp,0 E00B40F9
    256 DEFINE ld_a0,sp,8 E00F40F9
    257 DEFINE ld_a0,sp,24 E01740F9
    258 DEFINE ld_a1,a0,0 010040F9
    259 DEFINE ld_a1,a0,8 010440F9
    260 DEFINE ld_a1,a0,16 010840F9
    261 DEFINE ld_a1,a1,0 210040F9
    262 DEFINE ld_a1,a1,8 210440F9
    263 DEFINE ld_a1,a2,8 410440F9
    264 DEFINE ld_a1,a3,8 610440F9
    265 DEFINE ld_a1,t0,0 210140F9
    266 DEFINE ld_a1,t0,8 210540F9
    267 DEFINE ld_a1,t0,16 210940F9
    268 DEFINE ld_a1,t0,24 210D40F9
    269 DEFINE ld_a1,t1,0 410140F9
    270 DEFINE ld_a1,t1,24 410D40F9
    271 DEFINE ld_a1,t2,16 610940F9
    272 DEFINE ld_a1,sp,0 E10B40F9
    273 DEFINE ld_a1,sp,8 E10F40F9
    274 DEFINE ld_a2,a0,0 020040F9
    275 DEFINE ld_a2,a0,16 020840F9
    276 DEFINE ld_a2,a0,24 020C40F9
    277 DEFINE ld_a2,a1,0 220040F9
    278 DEFINE ld_a2,a2,0 420040F9
    279 DEFINE ld_a2,t0,0 220140F9
    280 DEFINE ld_a2,t0,8 220540F9
    281 DEFINE ld_a2,t0,16 220940F9
    282 DEFINE ld_a2,t0,24 220D40F9
    283 DEFINE ld_a2,t1,neg32 42015EF8
    284 DEFINE ld_a2,t1,0 420140F9
    285 DEFINE ld_a2,t2,0 620140F9
    286 DEFINE ld_a2,sp,16 E21340F9
    287 DEFINE ld_a3,a0,0 030040F9
    288 DEFINE ld_a3,a0,8 030440F9
    289 DEFINE ld_a3,a0,16 030840F9
    290 DEFINE ld_a3,a1,0 230040F9
    291 DEFINE ld_a3,a1,8 230440F9
    292 DEFINE ld_a3,a2,0 430040F9
    293 DEFINE ld_a3,a3,0 630040F9
    294 DEFINE ld_a3,t0,0 230140F9
    295 DEFINE ld_a3,t0,8 230540F9
    296 DEFINE ld_a3,t0,16 230940F9
    297 DEFINE ld_a3,t0,24 230D40F9
    298 DEFINE ld_a3,t1,8 430540F9
    299 DEFINE ld_t0,a0,0 090040F9
    300 DEFINE ld_t0,a0,8 090440F9
    301 DEFINE ld_t0,a0,16 090840F9
    302 DEFINE ld_t0,a0,24 090C40F9
    303 DEFINE ld_t0,a1,0 290040F9
    304 DEFINE ld_t0,a1,8 290440F9
    305 DEFINE ld_t0,a1,16 290840F9
    306 DEFINE ld_t0,a1,24 290C40F9
    307 DEFINE ld_t0,a1,32 291040F9
    308 DEFINE ld_t0,a1,40 291440F9
    309 DEFINE ld_t0,a1,48 291840F9
    310 DEFINE ld_t0,a1,64 292040F9
    311 DEFINE ld_t0,a2,0 490040F9
    312 DEFINE ld_t0,a3,0 690040F9
    313 DEFINE ld_t0,t0,0 290140F9
    314 DEFINE ld_t0,t2,0 690140F9
    315 DEFINE ld_t0,t2,16 690940F9
    316 DEFINE ld_t0,sp,0 E90B40F9
    317 DEFINE ld_t0,sp,8 E90F40F9
    318 DEFINE ld_t0,sp,16 E91340F9
    319 DEFINE ld_t0,sp,24 E91740F9
    320 DEFINE ld_t0,sp,32 E91B40F9
    321 DEFINE ld_t0,sp,40 E91F40F9
    322 DEFINE ld_t1,a0,0 0A0040F9
    323 DEFINE ld_t1,a0,8 0A0440F9
    324 DEFINE ld_t1,a0,16 0A0840F9
    325 DEFINE ld_t1,a0,24 0A0C40F9
    326 DEFINE ld_t1,a1,0 2A0040F9
    327 DEFINE ld_t1,a1,8 2A0440F9
    328 DEFINE ld_t1,a1,16 2A0840F9
    329 DEFINE ld_t1,a1,56 2A1C40F9
    330 DEFINE ld_t1,a2,0 4A0040F9
    331 DEFINE ld_t1,a2,8 4A0440F9
    332 DEFINE ld_t1,a2,16 4A0840F9
    333 DEFINE ld_t1,a3,0 6A0040F9
    334 DEFINE ld_t1,a3,8 6A0440F9
    335 DEFINE ld_t1,t0,0 2A0140F9
    336 DEFINE ld_t1,t0,16 2A0940F9
    337 DEFINE ld_t1,t1,0 4A0140F9
    338 DEFINE ld_t1,t1,16 4A0940F9
    339 DEFINE ld_t1,sp,8 EA0F40F9
    340 DEFINE ld_t1,sp,32 EA1B40F9
    341 DEFINE ld_t1,sp,48 EA2340F9
    342 DEFINE ld_t2,a0,0 0B0040F9
    343 DEFINE ld_t2,a1,0 2B0040F9
    344 DEFINE ld_t2,a3,0 6B0040F9
    345 DEFINE ld_t2,a3,16 6B0840F9
    346 DEFINE ld_t2,t0,0 2B0140F9
    347 DEFINE ld_t2,t0,8 2B0540F9
    348 DEFINE ld_t2,t0,24 2B0D40F9
    349 DEFINE ld_t2,t1,0 4B0140F9
    350 DEFINE ld_t2,t1,8 4B0540F9
    351 DEFINE ld_t2,t1,16 4B0940F9
    352 DEFINE ld_t2,t2,0 6B0140F9
    353 DEFINE ld_t2,sp,16 EB1340F9
    354 DEFINE st_a0,a1,0 200000F9
    355 DEFINE st_a0,a2,0 400000F9
    356 DEFINE st_a0,a2,8 400400F9
    357 DEFINE st_a0,a2,16 400800F9
    358 DEFINE st_a0,a2,24 400C00F9
    359 DEFINE st_a0,a3,0 600000F9
    360 DEFINE st_a0,a3,8 600400F9
    361 DEFINE st_a0,a3,16 600800F9
    362 DEFINE st_a0,t0,0 200100F9
    363 DEFINE st_a0,t0,8 200500F9
    364 DEFINE st_a0,t1,0 400100F9
    365 DEFINE st_a0,t2,0 600100F9
    366 DEFINE st_a0,t2,8 600500F9
    367 DEFINE st_a0,t2,16 600900F9
    368 DEFINE st_a0,sp,0 E00B00F9
    369 DEFINE st_a0,sp,16 E01300F9
    370 DEFINE st_a1,a0,0 010000F9
    371 DEFINE st_a1,a2,0 410000F9
    372 DEFINE st_a1,a2,16 410800F9
    373 DEFINE st_a1,a2,24 410C00F9
    374 DEFINE st_a1,a3,0 610000F9
    375 DEFINE st_a1,a3,8 610400F9
    376 DEFINE st_a1,t0,0 210100F9
    377 DEFINE st_a1,t0,8 210500F9
    378 DEFINE st_a1,t0,16 210900F9
    379 DEFINE st_a1,t0,24 210D00F9
    380 DEFINE st_a1,t1,0 410100F9
    381 DEFINE st_a1,t1,8 410500F9
    382 DEFINE st_a1,t1,16 410900F9
    383 DEFINE st_a1,t1,24 410D00F9
    384 DEFINE st_a1,t2,16 610900F9
    385 DEFINE st_a1,sp,8 E10F00F9
    386 DEFINE st_a1,sp,16 E11300F9
    387 DEFINE st_a2,a0,0 020000F9
    388 DEFINE st_a2,a1,0 220000F9
    389 DEFINE st_a2,a3,0 620000F9
    390 DEFINE st_a2,a3,16 620800F9
    391 DEFINE st_a2,a3,24 620C00F9
    392 DEFINE st_a2,a3,32 621000F9
    393 DEFINE st_a2,t0,0 220100F9
    394 DEFINE st_a2,t0,16 220900F9
    395 DEFINE st_a2,t1,0 420100F9
    396 DEFINE st_a2,t2,0 620100F9
    397 DEFINE st_a3,a0,0 030000F9
    398 DEFINE st_a3,a1,0 230000F9
    399 DEFINE st_a3,a2,0 430000F9
    400 DEFINE st_a3,t0,24 230D00F9
    401 DEFINE st_a3,t1,0 430100F9
    402 DEFINE st_a3,t1,8 430500F9
    403 DEFINE st_a3,t2,0 630100F9
    404 DEFINE st_a3,t2,8 630500F9
    405 DEFINE st_a3,t2,16 630900F9
    406 DEFINE st_a3,t2,24 630D00F9
    407 DEFINE st_t0,a0,0 090000F9
    408 DEFINE st_t0,a0,8 090400F9
    409 DEFINE st_t0,a0,16 090800F9
    410 DEFINE st_t0,a0,24 090C00F9
    411 DEFINE st_t0,a1,0 290000F9
    412 DEFINE st_t0,a1,8 290400F9
    413 DEFINE st_t0,a1,16 290800F9
    414 DEFINE st_t0,a1,24 290C00F9
    415 DEFINE st_t0,a1,32 291000F9
    416 DEFINE st_t0,a1,40 291400F9
    417 DEFINE st_t0,a1,48 291800F9
    418 DEFINE st_t0,a1,56 291C00F9
    419 DEFINE st_t0,a1,64 292000F9
    420 DEFINE st_t0,a2,0 490000F9
    421 DEFINE st_t0,a3,0 690000F9
    422 DEFINE st_t0,t1,0 490100F9
    423 DEFINE st_t0,t2,0 690100F9
    424 DEFINE st_t0,sp,0 E90B00F9
    425 DEFINE st_t0,sp,8 E90F00F9
    426 DEFINE st_t0,sp,16 E91300F9
    427 DEFINE st_t0,sp,24 E91700F9
    428 DEFINE st_t0,sp,32 E91B00F9
    429 DEFINE st_t0,sp,40 E91F00F9
    430 DEFINE st_t0,sp,48 E92300F9
    431 DEFINE st_t1,a0,0 0A0000F9
    432 DEFINE st_t1,a0,24 0A0C00F9
    433 DEFINE st_t1,a0,56 0A1C00F9
    434 DEFINE st_t1,a1,0 2A0000F9
    435 DEFINE st_t1,a2,0 4A0000F9
    436 DEFINE st_t1,a3,0 6A0000F9
    437 DEFINE st_t1,a3,8 6A0400F9
    438 DEFINE st_t1,a3,16 6A0800F9
    439 DEFINE st_t1,a3,24 6A0C00F9
    440 DEFINE st_t1,t0,0 2A0100F9
    441 DEFINE st_t2,a0,0 0B0000F9
    442 DEFINE st_t2,a1,0 2B0000F9
    443 DEFINE st_t2,a2,0 4B0000F9
    444 DEFINE st_t2,a3,0 6B0000F9
    445 DEFINE st_t2,t0,0 2B0100F9
    446 DEFINE st_t2,t1,0 4B0100F9
    447 DEFINE lb_a0,a0,0 00004039
    448 DEFINE lb_a0,a1,0 20004039
    449 DEFINE lb_a0,a2,0 40004039
    450 DEFINE lb_a0,t0,0 20014039
    451 DEFINE lb_a1,a1,0 21004039
    452 DEFINE lb_a1,a2,0 41004039
    453 DEFINE lb_a1,a2,1 41044039
    454 DEFINE lb_a2,a1,0 22004039
    455 DEFINE lb_a2,a2,0 42004039
    456 DEFINE lb_a2,t0,0 22014039
    457 DEFINE lb_a3,a0,0 03004039
    458 DEFINE lb_a3,a1,0 23004039
    459 DEFINE lb_a3,a2,0 43004039
    460 DEFINE lb_a3,a3,0 63004039
    461 DEFINE lb_a3,t2,0 63014039
    462 DEFINE lb_a3,t2,1 63054039
    463 DEFINE lb_t0,a0,0 09004039
    464 DEFINE lb_t0,a0,1 09044039
    465 DEFINE lb_t0,t0,0 29014039
    466 DEFINE lb_t1,t1,0 4A014039
    467 DEFINE lb_t2,a2,0 4B004039
    468 DEFINE lb_t2,t0,0 2B014039
    469 DEFINE lb_t2,t2,0 6B014039
    470 DEFINE sb_a0,a1,0 20000039
    471 DEFINE sb_a0,a2,0 40000039
    472 DEFINE sb_a0,a3,0 60000039
    473 DEFINE sb_a0,t2,0 60010039
    474 DEFINE sb_a1,a2,0 41000039
    475 DEFINE sb_a1,t0,0 21010039
    476 DEFINE sb_a2,a1,0 22000039
    477 DEFINE sb_a2,a3,0 62000039
    478 DEFINE sb_a2,t2,0 62010039
    479 DEFINE sb_a3,a0,0 03000039
    480 DEFINE sb_a3,a1,0 23000039
    481 DEFINE sb_a3,a2,0 43000039
    482 DEFINE sb_a3,t2,0 63010039
    483 DEFINE sb_t0,a3,0 69000039
    484 DEFINE sb_t1,a0,0 0A000039
    485 DEFINE sb_t1,a2,0 4A000039
    486 DEFINE sb_t2,a1,0 2B000039
    487 DEFINE sb_t2,a2,0 4B000039
    488 
    489 ## ---- ABI Access
    490 
    491 ## ---- Branches
    492 DEFINE b 20021FD6
    493 DEFINE beq_a0,a1 1F0001EB4100005420021FD6
    494 DEFINE beq_a0,t0 1F0009EB4100005420021FD6
    495 DEFINE beq_a0,t1 1F000AEB4100005420021FD6
    496 DEFINE beq_a1,a0 3F0000EB4100005420021FD6
    497 DEFINE beq_a1,a2 3F0002EB4100005420021FD6
    498 DEFINE beq_a2,a1 5F0001EB4100005420021FD6
    499 DEFINE beq_a2,a3 5F0003EB4100005420021FD6
    500 DEFINE beq_a3,a0 7F0000EB4100005420021FD6
    501 DEFINE beq_a3,a1 7F0001EB4100005420021FD6
    502 DEFINE beq_a3,a2 7F0002EB4100005420021FD6
    503 DEFINE beq_a3,t0 7F0009EB4100005420021FD6
    504 DEFINE beq_a3,t1 7F000AEB4100005420021FD6
    505 DEFINE beq_t0,a0 3F0100EB4100005420021FD6
    506 DEFINE beq_t0,a1 3F0101EB4100005420021FD6
    507 DEFINE beq_t0,a2 3F0102EB4100005420021FD6
    508 DEFINE beq_t0,t1 3F010AEB4100005420021FD6
    509 DEFINE beq_t0,t2 3F010BEB4100005420021FD6
    510 DEFINE beq_t1,a0 5F0100EB4100005420021FD6
    511 DEFINE beq_t1,a1 5F0101EB4100005420021FD6
    512 DEFINE beq_t1,a2 5F0102EB4100005420021FD6
    513 DEFINE beq_t1,t0 5F0109EB4100005420021FD6
    514 DEFINE beq_t1,t2 5F010BEB4100005420021FD6
    515 DEFINE beq_t2,a2 7F0102EB4100005420021FD6
    516 DEFINE beq_t2,a3 7F0103EB4100005420021FD6
    517 DEFINE beq_t2,t1 7F010AEB4100005420021FD6
    518 DEFINE bne_a0,a1 1F0001EB4000005420021FD6
    519 DEFINE bne_a0,t0 1F0009EB4000005420021FD6
    520 DEFINE bne_a0,t1 1F000AEB4000005420021FD6
    521 DEFINE bne_a1,a0 3F0000EB4000005420021FD6
    522 DEFINE bne_a1,a2 3F0002EB4000005420021FD6
    523 DEFINE bne_a1,t0 3F0009EB4000005420021FD6
    524 DEFINE bne_a2,a1 5F0001EB4000005420021FD6
    525 DEFINE bne_a2,a3 5F0003EB4000005420021FD6
    526 DEFINE bne_a3,a0 7F0000EB4000005420021FD6
    527 DEFINE bne_a3,a1 7F0001EB4000005420021FD6
    528 DEFINE bne_a3,a2 7F0002EB4000005420021FD6
    529 DEFINE bne_a3,t0 7F0009EB4000005420021FD6
    530 DEFINE bne_t0,a0 3F0100EB4000005420021FD6
    531 DEFINE bne_t0,a2 3F0102EB4000005420021FD6
    532 DEFINE bne_t0,t1 3F010AEB4000005420021FD6
    533 DEFINE bne_t0,t2 3F010BEB4000005420021FD6
    534 DEFINE bne_t1,a0 5F0100EB4000005420021FD6
    535 DEFINE bne_t1,a2 5F0102EB4000005420021FD6
    536 DEFINE bne_t1,a3 5F0103EB4000005420021FD6
    537 DEFINE bne_t1,t2 5F010BEB4000005420021FD6
    538 DEFINE bne_t2,a2 7F0102EB4000005420021FD6
    539 DEFINE bne_t2,a3 7F0103EB4000005420021FD6
    540 DEFINE bne_t2,t0 7F0109EB4000005420021FD6
    541 DEFINE blt_a0,a1 1F0001EB4A00005420021FD6
    542 DEFINE blt_a0,a2 1F0002EB4A00005420021FD6
    543 DEFINE blt_a0,t1 1F000AEB4A00005420021FD6
    544 DEFINE blt_a1,a0 3F0000EB4A00005420021FD6
    545 DEFINE blt_a1,a2 3F0002EB4A00005420021FD6
    546 DEFINE blt_a1,t0 3F0009EB4A00005420021FD6
    547 DEFINE blt_a1,t2 3F000BEB4A00005420021FD6
    548 DEFINE blt_a2,a1 5F0001EB4A00005420021FD6
    549 DEFINE blt_a2,a3 5F0003EB4A00005420021FD6
    550 DEFINE blt_a2,t0 5F0009EB4A00005420021FD6
    551 DEFINE blt_a2,t1 5F000AEB4A00005420021FD6
    552 DEFINE blt_a3,a2 7F0002EB4A00005420021FD6
    553 DEFINE blt_a3,t2 7F000BEB4A00005420021FD6
    554 DEFINE blt_t0,a0 3F0100EB4A00005420021FD6
    555 DEFINE blt_t0,a2 3F0102EB4A00005420021FD6
    556 DEFINE blt_t0,t1 3F010AEB4A00005420021FD6
    557 DEFINE blt_t1,a0 5F0100EB4A00005420021FD6
    558 DEFINE blt_t1,a1 5F0101EB4A00005420021FD6
    559 DEFINE blt_t1,t0 5F0109EB4A00005420021FD6
    560 DEFINE blt_t2,a3 7F0103EB4A00005420021FD6
    561 DEFINE blt_t2,t1 7F010AEB4A00005420021FD6
    562 DEFINE beqz_a0 400000B520021FD6
    563 DEFINE beqz_a1 410000B520021FD6
    564 DEFINE beqz_a2 420000B520021FD6
    565 DEFINE beqz_a3 430000B520021FD6
    566 DEFINE beqz_t0 490000B520021FD6
    567 DEFINE beqz_t1 4A0000B520021FD6
    568 DEFINE beqz_t2 4B0000B520021FD6
    569 DEFINE bnez_a0 400000B420021FD6
    570 DEFINE bnez_a1 410000B420021FD6
    571 DEFINE bnez_a2 420000B420021FD6
    572 DEFINE bnez_a3 430000B420021FD6
    573 DEFINE bnez_t0 490000B420021FD6
    574 DEFINE bnez_t1 4A0000B420021FD6
    575 DEFINE bnez_t2 4B0000B420021FD6
    576 DEFINE bltz_a0 1F001FEB4A00005420021FD6
    577 DEFINE bltz_t0 3F011FEB4A00005420021FD6
    578 
    579 ## ---- Calls And Returns
    580 DEFINE call 20023FD6
    581 DEFINE ret C0035FD6
    582 DEFINE eret FE0340F9E80740F91F010091C0035FD6
    583 DEFINE tail FE0340F9E80740F91F01009120021FD6
    584 
    585 ## ---- Frame Management
    586 DEFINE enter_0 FF4300D1FE0300F9E8430091E80700F9
    587 DEFINE enter_8 FF8300D1FE0300F9E8830091E80700F9
    588 DEFINE enter_16 FF8300D1FE0300F9E8830091E80700F9
    589 DEFINE enter_40 FF0301D1FE0300F9E8030191E80700F9
    590 DEFINE enter_56 FF4301D1FE0300F9E8430191E80700F9
    591 
    592 ## ---- System
    593 DEFINE syscall E80300AAF70301AAF80302AAF90303AAE00317AAE10318AAE20319AAE30309AAE40313AAE50314AA010000D4E10317AAE20318AAE30319AA
    594 DEFINE sys_exit 5D00000000000000
    595 DEFINE sys_openat 3800000000000000
    596 DEFINE sys_read 3F00000000000000
    597 DEFINE sys_write 4000000000000000
    598 
    599 ## ---- Program Entry
    600 ## Backend-owned :_start stub per docs/P1.md §Program Entry.
    601 ## Calls p1_main under the one-word direct-result convention
    602 ## (a0=argc, a1=argv) and sys_exits its return value.
    603 :_start
    604 'E00340F9'
    605 'E1230091'
    606 '5100001802000014'
    607 &p1_main
    608 '20023FD6'
    609 'A80B80D2'
    610 '010000D4'