boot2

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

P1-riscv32.M1 (17777B)


      1 ## riscv32.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 p1wordbytes 0400000000000000
      9 DEFINE p1wordshift 0200000000000000
     10 DEFINE li_a0 170500000325C5006F00C000
     11 DEFINE li_a1 9705000083A5C5006F00C000
     12 DEFINE li_a2 170600000326C6006F00C000
     13 DEFINE li_a3 9706000083A6C6006F00C000
     14 DEFINE li_t0 9702000083A2C2006F00C000
     15 DEFINE li_t1 170300000323C3006F00C000
     16 DEFINE li_t2 9703000083A3C3006F00C000
     17 DEFINE la_a0 170500000325C5006F008000
     18 DEFINE la_a1 9705000083A5C5006F008000
     19 DEFINE la_a2 170600000326C6006F008000
     20 DEFINE la_a3 9706000083A6C6006F008000
     21 DEFINE la_t0 9702000083A2C2006F008000
     22 DEFINE la_t1 170300000323C3006F008000
     23 DEFINE la_t2 9703000083A3C3006F008000
     24 DEFINE la_br 970F000083AFCF006F008000
     25 
     26 ## ---- Moves
     27 DEFINE mov_a0,a1 13850500
     28 DEFINE mov_a0,a3 13850600
     29 DEFINE mov_a0,t0 13850200
     30 DEFINE mov_a0,t1 13050300
     31 DEFINE mov_a1,a0 93050500
     32 DEFINE mov_a1,t0 93850200
     33 DEFINE mov_a1,t1 93050300
     34 DEFINE mov_a1,t2 93850300
     35 DEFINE mov_a2,a1 13860500
     36 DEFINE mov_a2,t0 13860200
     37 DEFINE mov_a2,t1 13060300
     38 DEFINE mov_t0,a0 93020500
     39 DEFINE mov_t1,a0 13030500
     40 DEFINE mov_t1,t0 13830200
     41 DEFINE mov_t2,a0 93030500
     42 DEFINE mov_t2,t1 93030300
     43 
     44 ## ---- Register Arithmetic
     45 DEFINE add_a0,a0,a1 3305B500
     46 DEFINE add_a0,a0,a2 3305C500
     47 DEFINE add_a0,a0,a3 3305D500
     48 DEFINE add_a0,a0,t0 33055500
     49 DEFINE add_a0,a0,t1 33056500
     50 DEFINE add_a0,a2,a0 3305A600
     51 DEFINE add_a0,a2,t2 33057600
     52 DEFINE add_a0,t0,a3 3385D200
     53 DEFINE add_a0,t1,a0 3305A300
     54 DEFINE add_a0,t1,t2 33057300
     55 DEFINE add_a0,t2,a1 3385B300
     56 DEFINE add_a1,a0,a1 B305B500
     57 DEFINE add_a1,a0,a3 B305D500
     58 DEFINE add_a1,a1,a0 B385A500
     59 DEFINE add_a1,a1,a2 B385C500
     60 DEFINE add_a1,a1,a3 B385D500
     61 DEFINE add_a1,a1,t0 B3855500
     62 DEFINE add_a1,a1,t2 B3857500
     63 DEFINE add_a1,a2,t0 B3055600
     64 DEFINE add_a1,a3,a1 B385B600
     65 DEFINE add_a1,t0,a0 B385A200
     66 DEFINE add_a1,t2,a1 B385B300
     67 DEFINE add_a1,t2,a3 B385D300
     68 DEFINE add_a1,t2,t1 B3856300
     69 DEFINE add_a2,a1,a3 3386D500
     70 DEFINE add_a2,a1,t0 33865500
     71 DEFINE add_a2,a2,a0 3306A600
     72 DEFINE add_a2,a2,a1 3306B600
     73 DEFINE add_a2,a2,a3 3306D600
     74 DEFINE add_a2,a2,t0 33065600
     75 DEFINE add_a2,a2,t1 33066600
     76 DEFINE add_a2,a2,t2 33067600
     77 DEFINE add_a2,a3,a1 3386B600
     78 DEFINE add_a2,a3,a2 3386C600
     79 DEFINE add_a2,t0,t1 33866200
     80 DEFINE add_a2,t2,a0 3386A300
     81 DEFINE add_a2,t2,a2 3386C300
     82 DEFINE add_a3,a0,a2 B306C500
     83 DEFINE add_a3,a1,t1 B3866500
     84 DEFINE add_a3,a1,t2 B3867500
     85 DEFINE add_a3,a2,t1 B3066600
     86 DEFINE add_a3,a3,a0 B386A600
     87 DEFINE add_a3,a3,a1 B386B600
     88 DEFINE add_a3,a3,a2 B386C600
     89 DEFINE add_a3,a3,t0 B3865600
     90 DEFINE add_a3,a3,t1 B3866600
     91 DEFINE add_a3,a3,t2 B3867600
     92 DEFINE add_a3,t0,t2 B3867200
     93 DEFINE add_a3,t1,a2 B306C300
     94 DEFINE add_t0,a1,t2 B3827500
     95 DEFINE add_t0,a2,a3 B302D600
     96 DEFINE add_t0,a3,a1 B382B600
     97 DEFINE add_t0,a3,t0 B3825600
     98 DEFINE add_t0,t0,a0 B382A200
     99 DEFINE add_t0,t0,a1 B382B200
    100 DEFINE add_t0,t0,a3 B382D200
    101 DEFINE add_t0,t0,t1 B3826200
    102 DEFINE add_t0,t2,a3 B382D300
    103 DEFINE add_t1,a0,t0 33035500
    104 DEFINE add_t1,a1,t2 33837500
    105 DEFINE add_t1,a3,t1 33836600
    106 DEFINE add_t1,t0,a0 3383A200
    107 DEFINE add_t1,t0,t1 33836200
    108 DEFINE add_t1,t1,a2 3303C300
    109 DEFINE add_t1,t1,t0 33035300
    110 DEFINE add_t1,t1,t2 33037300
    111 DEFINE add_t2,a0,t0 B3035500
    112 DEFINE add_t2,a0,t1 B3036500
    113 DEFINE add_t2,a1,t2 B3837500
    114 DEFINE add_t2,a2,t1 B3036600
    115 DEFINE add_t2,t0,t1 B3836200
    116 DEFINE add_t2,t1,t0 B3035300
    117 DEFINE add_t2,t1,t2 B3037300
    118 DEFINE add_t2,t2,a0 B383A300
    119 DEFINE add_t2,t2,a3 B383D300
    120 DEFINE add_t2,t2,t1 B3836300
    121 DEFINE sub_a0,a0,t1 33056540
    122 DEFINE sub_a0,a1,a0 3385A540
    123 DEFINE sub_a0,a1,t2 33857540
    124 DEFINE sub_a0,a3,a0 3385A640
    125 DEFINE sub_a0,t0,a1 3385B240
    126 DEFINE sub_a0,t0,t1 33856240
    127 DEFINE sub_a0,t1,a0 3305A340
    128 DEFINE sub_a1,t0,a0 B385A240
    129 DEFINE sub_a2,a1,a0 3386A540
    130 DEFINE sub_a2,a2,a2 3306C640
    131 DEFINE sub_a2,a2,t0 33065640
    132 DEFINE sub_a2,t0,t1 33866240
    133 DEFINE sub_a2,t2,a3 3386D340
    134 DEFINE sub_a3,a1,a2 B386C540
    135 DEFINE sub_a3,a3,a2 B386C640
    136 DEFINE sub_a3,t0,a2 B386C240
    137 DEFINE sub_a3,t0,a3 B386D240
    138 DEFINE sub_a3,t1,a2 B306C340
    139 DEFINE sub_a3,t1,a3 B306D340
    140 DEFINE sub_a3,t1,t0 B3065340
    141 DEFINE sub_a3,t2,t1 B3866340
    142 DEFINE sub_t0,a1,a2 B382C540
    143 DEFINE sub_t0,t0,a1 B382B240
    144 DEFINE sub_t0,t0,t1 B3826240
    145 DEFINE sub_t0,t1,t0 B3025340
    146 DEFINE sub_t1,t1,t0 33035340
    147 DEFINE sub_t2,t1,t0 B3035340
    148 DEFINE and_a3,a3,a2 B3F6C600
    149 DEFINE or_a0,a0,a2 3365C500
    150 DEFINE or_a3,a3,a2 B3E6C600
    151 DEFINE or_t0,t0,t1 B3E26200
    152 DEFINE xor_a2,a2,a3 3346D600
    153 DEFINE xor_a3,a3,a2 B3C6C600
    154 DEFINE shl_a2,a2,a3 3316D600
    155 DEFINE shl_t2,t0,t2 B3937200
    156 DEFINE sar_a2,a2,a3 3356D640
    157 DEFINE mul_a0,a0,a3 3305D502
    158 DEFINE mul_a0,a0,t0 33055502
    159 DEFINE mul_a0,t1,t2 33057302
    160 DEFINE mul_a1,t0,t1 B3856202
    161 DEFINE mul_a2,a2,t1 33066602
    162 DEFINE mul_a3,a3,a2 B386C602
    163 DEFINE mul_t0,t0,a1 B382B202
    164 DEFINE mul_t0,t0,t1 B3826202
    165 DEFINE mul_t2,t0,a2 B383C202
    166 DEFINE div_a0,a0,a1 3345B502
    167 DEFINE div_a0,a0,t1 33456502
    168 DEFINE div_a2,a2,a3 3346D602
    169 DEFINE rem_a2,a0,a1 3366B502
    170 DEFINE rem_a2,a0,t1 33666502
    171 DEFINE rem_a2,a2,a3 3366D602
    172 DEFINE rem_a2,t0,a1 33E6B202
    173 
    174 ## ---- Immediate Arithmetic
    175 DEFINE addi_a0,a0,neg1 1305F5FF
    176 DEFINE addi_a0,a0,1 13051500
    177 DEFINE addi_a0,a0,32 13050502
    178 DEFINE addi_a1,a1,neg32 938505FE
    179 DEFINE addi_a1,a1,neg2 9385E5FF
    180 DEFINE addi_a1,a1,1 93851500
    181 DEFINE addi_a1,a1,2 93852500
    182 DEFINE addi_a1,a1,3 93853500
    183 DEFINE addi_a1,t0,1 93851200
    184 DEFINE addi_a2,a0,1 13061500
    185 DEFINE addi_a2,a2,neg1 1306F6FF
    186 DEFINE addi_a2,a2,1 13061600
    187 DEFINE addi_a2,a2,2 13062600
    188 DEFINE addi_a2,a2,3 13063600
    189 DEFINE addi_a2,a2,8 13068600
    190 DEFINE addi_a2,a2,24 13068601
    191 DEFINE addi_a2,a2,48 13060603
    192 DEFINE addi_a2,t0,1 13861200
    193 DEFINE addi_a2,t0,32 13860202
    194 DEFINE addi_a2,t2,neg48 138603FD
    195 DEFINE addi_a3,a3,neg1 9386F6FF
    196 DEFINE addi_a3,a3,1 93861600
    197 DEFINE addi_a3,a3,32 93860602
    198 DEFINE addi_a3,t0,32 93860202
    199 DEFINE addi_a3,t1,32 93060302
    200 DEFINE addi_t0,a0,32 93020502
    201 DEFINE addi_t0,a1,neg32 938205FE
    202 DEFINE addi_t0,a1,32 93820502
    203 DEFINE addi_t0,a3,neg1 9382F6FF
    204 DEFINE addi_t0,t0,neg1 9382F2FF
    205 DEFINE addi_t0,t0,1 93821200
    206 DEFINE addi_t0,t0,2 93822200
    207 DEFINE addi_t0,t0,7 93827200
    208 DEFINE addi_t0,t0,32 93820202
    209 DEFINE addi_t1,t0,32 13830202
    210 DEFINE addi_t1,t1,neg32 130303FE
    211 DEFINE addi_t1,t1,neg1 1303F3FF
    212 DEFINE addi_t1,t1,1 13031300
    213 DEFINE addi_t1,t1,16 13030301
    214 DEFINE addi_t1,t1,32 13030302
    215 DEFINE addi_t2,a1,neg32 938305FE
    216 DEFINE addi_t2,t0,neg32 938302FE
    217 DEFINE addi_t2,t0,32 93830202
    218 DEFINE addi_t2,t1,2 93032300
    219 DEFINE addi_t2,t2,neg1 9383F3FF
    220 DEFINE addi_t2,t2,1 93831300
    221 DEFINE addi_t2,t2,7 93837300
    222 DEFINE addi_t2,t2,24 93838301
    223 DEFINE addi_t2,t2,32 93830302
    224 DEFINE andi_a0,a0,255 1375F50F
    225 DEFINE andi_a2,a2,15 1376F600
    226 DEFINE andi_a3,a3,15 93F6F600
    227 DEFINE andi_a3,a3,255 93F6F60F
    228 DEFINE andi_a3,t2,255 93F6F30F
    229 DEFINE shli_a0,a0,3 13153500
    230 DEFINE shli_a0,a0,4 13154500
    231 DEFINE shli_a1,a1,1 93951500
    232 DEFINE shli_a2,a2,3 13163600
    233 DEFINE shli_a2,t1,3 13163300
    234 DEFINE shli_a3,t0,1 93961200
    235 DEFINE shli_a3,t0,4 93964200
    236 DEFINE shli_t0,t0,4 93924200
    237 DEFINE shli_t1,a2,3 13133600
    238 DEFINE shli_t1,t1,3 13133300
    239 DEFINE shli_t2,t0,3 93933200
    240 DEFINE shri_a0,a0,5 13555500
    241 DEFINE shri_a2,a3,4 13D64600
    242 DEFINE shri_t2,t2,8 93D38300
    243 
    244 ## ---- Memory
    245 DEFINE ld_a0,a0,0 03250500
    246 DEFINE ld_a0,a0,8 03258500
    247 DEFINE ld_a0,a0,16 03250501
    248 DEFINE ld_a0,a1,0 03A50500
    249 DEFINE ld_a0,a1,16 03A50501
    250 DEFINE ld_a0,a2,0 03250600
    251 DEFINE ld_a0,a2,24 03258601
    252 DEFINE ld_a0,a3,0 03A50600
    253 DEFINE ld_a0,a3,8 03A58600
    254 DEFINE ld_a0,a3,16 03A50601
    255 DEFINE ld_a0,a3,24 03A58601
    256 DEFINE ld_a0,t0,0 03A50200
    257 DEFINE ld_a0,t0,8 03A58200
    258 DEFINE ld_a0,t0,16 03A50201
    259 DEFINE ld_a0,sp,0 03258100
    260 DEFINE ld_a0,sp,8 03250101
    261 DEFINE ld_a0,sp,24 03250102
    262 DEFINE ld_a1,a0,0 83250500
    263 DEFINE ld_a1,a0,8 83258500
    264 DEFINE ld_a1,a0,16 83250501
    265 DEFINE ld_a1,a1,0 83A50500
    266 DEFINE ld_a1,a1,8 83A58500
    267 DEFINE ld_a1,a2,8 83258600
    268 DEFINE ld_a1,a3,8 83A58600
    269 DEFINE ld_a1,t0,0 83A50200
    270 DEFINE ld_a1,t0,8 83A58200
    271 DEFINE ld_a1,t0,16 83A50201
    272 DEFINE ld_a1,t0,24 83A58201
    273 DEFINE ld_a1,t1,0 83250300
    274 DEFINE ld_a1,t1,24 83258301
    275 DEFINE ld_a1,t2,16 83A50301
    276 DEFINE ld_a1,sp,0 83258100
    277 DEFINE ld_a1,sp,8 83250101
    278 DEFINE ld_a2,a0,0 03260500
    279 DEFINE ld_a2,a0,16 03260501
    280 DEFINE ld_a2,a0,24 03268501
    281 DEFINE ld_a2,a1,0 03A60500
    282 DEFINE ld_a2,a2,0 03260600
    283 DEFINE ld_a2,t0,0 03A60200
    284 DEFINE ld_a2,t0,8 03A68200
    285 DEFINE ld_a2,t0,16 03A60201
    286 DEFINE ld_a2,t0,24 03A68201
    287 DEFINE ld_a2,t1,neg32 032603FE
    288 DEFINE ld_a2,t1,0 03260300
    289 DEFINE ld_a2,t2,0 03A60300
    290 DEFINE ld_a2,sp,16 03268101
    291 DEFINE ld_a3,a0,0 83260500
    292 DEFINE ld_a3,a0,8 83268500
    293 DEFINE ld_a3,a0,16 83260501
    294 DEFINE ld_a3,a1,0 83A60500
    295 DEFINE ld_a3,a1,8 83A68500
    296 DEFINE ld_a3,a2,0 83260600
    297 DEFINE ld_a3,a3,0 83A60600
    298 DEFINE ld_a3,t0,0 83A60200
    299 DEFINE ld_a3,t0,8 83A68200
    300 DEFINE ld_a3,t0,16 83A60201
    301 DEFINE ld_a3,t0,24 83A68201
    302 DEFINE ld_a3,t1,8 83268300
    303 DEFINE ld_t0,a0,0 83220500
    304 DEFINE ld_t0,a0,8 83228500
    305 DEFINE ld_t0,a0,16 83220501
    306 DEFINE ld_t0,a0,24 83228501
    307 DEFINE ld_t0,a1,0 83A20500
    308 DEFINE ld_t0,a1,24 83A28501
    309 DEFINE ld_t0,a1,32 83A20502
    310 DEFINE ld_t0,a1,40 83A28502
    311 DEFINE ld_t0,a1,48 83A20503
    312 DEFINE ld_t0,a1,64 83A20504
    313 DEFINE ld_t0,a2,0 83220600
    314 DEFINE ld_t0,a3,0 83A20600
    315 DEFINE ld_t0,t0,0 83A20200
    316 DEFINE ld_t0,t1,0 83220300
    317 DEFINE ld_t0,t2,0 83A20300
    318 DEFINE ld_t0,t2,16 83A20301
    319 DEFINE ld_t0,sp,0 83228100
    320 DEFINE ld_t0,sp,8 83220101
    321 DEFINE ld_t0,sp,16 83228101
    322 DEFINE ld_t0,sp,24 83220102
    323 DEFINE ld_t0,sp,32 83228102
    324 DEFINE ld_t0,sp,40 83220103
    325 DEFINE ld_t1,a0,0 03230500
    326 DEFINE ld_t1,a0,8 03238500
    327 DEFINE ld_t1,a0,16 03230501
    328 DEFINE ld_t1,a0,24 03238501
    329 DEFINE ld_t1,a1,0 03A30500
    330 DEFINE ld_t1,a1,8 03A38500
    331 DEFINE ld_t1,a1,16 03A30501
    332 DEFINE ld_t1,a1,56 03A38503
    333 DEFINE ld_t1,a2,0 03230600
    334 DEFINE ld_t1,a2,8 03238600
    335 DEFINE ld_t1,a2,16 03230601
    336 DEFINE ld_t1,a3,0 03A30600
    337 DEFINE ld_t1,a3,8 03A38600
    338 DEFINE ld_t1,t0,0 03A30200
    339 DEFINE ld_t1,t0,16 03A30201
    340 DEFINE ld_t1,t1,0 03230300
    341 DEFINE ld_t1,t1,16 03230301
    342 DEFINE ld_t1,sp,8 03230101
    343 DEFINE ld_t1,sp,32 03238102
    344 DEFINE ld_t1,sp,48 03238103
    345 DEFINE ld_t2,a0,0 83230500
    346 DEFINE ld_t2,a1,0 83A30500
    347 DEFINE ld_t2,a3,0 83A30600
    348 DEFINE ld_t2,a3,16 83A30601
    349 DEFINE ld_t2,t0,0 83A30200
    350 DEFINE ld_t2,t0,8 83A38200
    351 DEFINE ld_t2,t0,24 83A38201
    352 DEFINE ld_t2,t1,0 83230300
    353 DEFINE ld_t2,t1,8 83238300
    354 DEFINE ld_t2,t1,16 83230301
    355 DEFINE ld_t2,t2,0 83A30300
    356 DEFINE ld_t2,sp,16 83238101
    357 DEFINE st_a0,a1,0 23A0A500
    358 DEFINE st_a0,a2,0 2320A600
    359 DEFINE st_a0,a2,8 2324A600
    360 DEFINE st_a0,a2,16 2328A600
    361 DEFINE st_a0,a2,24 232CA600
    362 DEFINE st_a0,a3,0 23A0A600
    363 DEFINE st_a0,a3,8 23A4A600
    364 DEFINE st_a0,a3,16 23A8A600
    365 DEFINE st_a0,t0,0 23A0A200
    366 DEFINE st_a0,t0,8 23A4A200
    367 DEFINE st_a0,t1,0 2320A300
    368 DEFINE st_a0,t2,0 23A0A300
    369 DEFINE st_a0,t2,8 23A4A300
    370 DEFINE st_a0,t2,16 23A8A300
    371 DEFINE st_a0,sp,0 2324A100
    372 DEFINE st_a0,sp,16 232CA100
    373 DEFINE st_a1,a0,0 2320B500
    374 DEFINE st_a1,a2,0 2320B600
    375 DEFINE st_a1,a2,16 2328B600
    376 DEFINE st_a1,a2,24 232CB600
    377 DEFINE st_a1,a3,0 23A0B600
    378 DEFINE st_a1,a3,8 23A4B600
    379 DEFINE st_a1,t0,0 23A0B200
    380 DEFINE st_a1,t0,8 23A4B200
    381 DEFINE st_a1,t0,16 23A8B200
    382 DEFINE st_a1,t0,24 23ACB200
    383 DEFINE st_a1,t1,0 2320B300
    384 DEFINE st_a1,t1,8 2324B300
    385 DEFINE st_a1,t1,16 2328B300
    386 DEFINE st_a1,t1,24 232CB300
    387 DEFINE st_a1,t2,16 23A8B300
    388 DEFINE st_a1,sp,8 2328B100
    389 DEFINE st_a1,sp,16 232CB100
    390 DEFINE st_a2,a0,0 2320C500
    391 DEFINE st_a2,a1,0 23A0C500
    392 DEFINE st_a2,a3,0 23A0C600
    393 DEFINE st_a2,a3,16 23A8C600
    394 DEFINE st_a2,a3,24 23ACC600
    395 DEFINE st_a2,a3,32 23A0C602
    396 DEFINE st_a2,t0,0 23A0C200
    397 DEFINE st_a2,t0,16 23A8C200
    398 DEFINE st_a2,t1,0 2320C300
    399 DEFINE st_a2,t2,0 23A0C300
    400 DEFINE st_a3,a0,0 2320D500
    401 DEFINE st_a3,a1,0 23A0D500
    402 DEFINE st_a3,a2,0 2320D600
    403 DEFINE st_a3,t0,24 23ACD200
    404 DEFINE st_a3,t1,0 2320D300
    405 DEFINE st_a3,t1,8 2324D300
    406 DEFINE st_a3,t2,0 23A0D300
    407 DEFINE st_a3,t2,8 23A4D300
    408 DEFINE st_a3,t2,16 23A8D300
    409 DEFINE st_a3,t2,24 23ACD300
    410 DEFINE st_t0,a0,0 23205500
    411 DEFINE st_t0,a0,8 23245500
    412 DEFINE st_t0,a0,16 23285500
    413 DEFINE st_t0,a0,24 232C5500
    414 DEFINE st_t0,a1,0 23A05500
    415 DEFINE st_t0,a1,8 23A45500
    416 DEFINE st_t0,a1,16 23A85500
    417 DEFINE st_t0,a1,24 23AC5500
    418 DEFINE st_t0,a1,32 23A05502
    419 DEFINE st_t0,a1,40 23A45502
    420 DEFINE st_t0,a1,48 23A85502
    421 DEFINE st_t0,a1,56 23AC5502
    422 DEFINE st_t0,a1,64 23A05504
    423 DEFINE st_t0,a2,0 23205600
    424 DEFINE st_t0,a3,0 23A05600
    425 DEFINE st_t0,t1,0 23205300
    426 DEFINE st_t0,t2,0 23A05300
    427 DEFINE st_t0,sp,0 23245100
    428 DEFINE st_t0,sp,8 23285100
    429 DEFINE st_t0,sp,16 232C5100
    430 DEFINE st_t0,sp,24 23205102
    431 DEFINE st_t0,sp,32 23245102
    432 DEFINE st_t0,sp,40 23285102
    433 DEFINE st_t0,sp,48 232C5102
    434 DEFINE st_t1,a0,0 23206500
    435 DEFINE st_t1,a0,24 232C6500
    436 DEFINE st_t1,a0,56 232C6502
    437 DEFINE st_t1,a1,0 23A06500
    438 DEFINE st_t1,a2,0 23206600
    439 DEFINE st_t1,a3,0 23A06600
    440 DEFINE st_t1,a3,8 23A46600
    441 DEFINE st_t1,a3,16 23A86600
    442 DEFINE st_t1,a3,24 23AC6600
    443 DEFINE st_t1,t0,0 23A06200
    444 DEFINE st_t2,a0,0 23207500
    445 DEFINE st_t2,a1,0 23A07500
    446 DEFINE st_t2,a2,0 23207600
    447 DEFINE st_t2,a3,0 23A07600
    448 DEFINE st_t2,t0,0 23A07200
    449 DEFINE st_t2,t1,0 23207300
    450 DEFINE lb_a0,a0,0 03450500
    451 DEFINE lb_a0,a1,0 03C50500
    452 DEFINE lb_a0,a2,0 03450600
    453 DEFINE lb_a0,t0,0 03C50200
    454 DEFINE lb_a1,a1,0 83C50500
    455 DEFINE lb_a1,a2,0 83450600
    456 DEFINE lb_a1,a2,1 83451600
    457 DEFINE lb_a2,a1,0 03C60500
    458 DEFINE lb_a2,a2,0 03460600
    459 DEFINE lb_a2,t0,0 03C60200
    460 DEFINE lb_a3,a0,0 83460500
    461 DEFINE lb_a3,a1,0 83C60500
    462 DEFINE lb_a3,a2,0 83460600
    463 DEFINE lb_a3,a3,0 83C60600
    464 DEFINE lb_a3,t2,0 83C60300
    465 DEFINE lb_a3,t2,1 83C61300
    466 DEFINE lb_t0,a0,0 83420500
    467 DEFINE lb_t0,a0,1 83421500
    468 DEFINE lb_t0,t0,0 83C20200
    469 DEFINE lb_t1,t1,0 03430300
    470 DEFINE lb_t2,a2,0 83430600
    471 DEFINE lb_t2,t0,0 83C30200
    472 DEFINE lb_t2,t2,0 83C30300
    473 DEFINE sb_a0,a1,0 2380A500
    474 DEFINE sb_a0,a2,0 2300A600
    475 DEFINE sb_a0,a3,0 2380A600
    476 DEFINE sb_a0,t2,0 2380A300
    477 DEFINE sb_a1,a2,0 2300B600
    478 DEFINE sb_a1,t0,0 2380B200
    479 DEFINE sb_a2,a1,0 2380C500
    480 DEFINE sb_a2,a3,0 2380C600
    481 DEFINE sb_a2,t2,0 2380C300
    482 DEFINE sb_a3,a0,0 2300D500
    483 DEFINE sb_a3,a1,0 2380D500
    484 DEFINE sb_a3,a2,0 2300D600
    485 DEFINE sb_a3,t2,0 2380D300
    486 DEFINE sb_t0,a3,0 23805600
    487 DEFINE sb_t1,a0,0 23006500
    488 DEFINE sb_t1,a2,0 23006600
    489 DEFINE sb_t2,a1,0 23807500
    490 DEFINE sb_t2,a2,0 23007600
    491 
    492 ## ---- ABI Access
    493 
    494 ## ---- Branches
    495 DEFINE b 67800F00
    496 DEFINE beq_a0,a1 6314B50067800F00
    497 DEFINE beq_a0,t0 6314550067800F00
    498 DEFINE beq_a0,t1 6314650067800F00
    499 DEFINE beq_a1,a0 6394A50067800F00
    500 DEFINE beq_a1,a2 6394C50067800F00
    501 DEFINE beq_a2,a1 6314B60067800F00
    502 DEFINE beq_a2,a3 6314D60067800F00
    503 DEFINE beq_a3,a0 6394A60067800F00
    504 DEFINE beq_a3,a1 6394B60067800F00
    505 DEFINE beq_a3,a2 6394C60067800F00
    506 DEFINE beq_a3,t0 6394560067800F00
    507 DEFINE beq_a3,t1 6394660067800F00
    508 DEFINE beq_t0,a0 6394A20067800F00
    509 DEFINE beq_t0,a1 6394B20067800F00
    510 DEFINE beq_t0,a2 6394C20067800F00
    511 DEFINE beq_t0,t1 6394620067800F00
    512 DEFINE beq_t0,t2 6394720067800F00
    513 DEFINE beq_t1,a0 6314A30067800F00
    514 DEFINE beq_t1,a1 6314B30067800F00
    515 DEFINE beq_t1,a2 6314C30067800F00
    516 DEFINE beq_t1,t0 6314530067800F00
    517 DEFINE beq_t1,t2 6314730067800F00
    518 DEFINE beq_t2,a2 6394C30067800F00
    519 DEFINE beq_t2,a3 6394D30067800F00
    520 DEFINE beq_t2,t1 6394630067800F00
    521 DEFINE bne_a0,a1 6304B50067800F00
    522 DEFINE bne_a0,t0 6304550067800F00
    523 DEFINE bne_a0,t1 6304650067800F00
    524 DEFINE bne_a1,a0 6384A50067800F00
    525 DEFINE bne_a1,a2 6384C50067800F00
    526 DEFINE bne_a1,t0 6384550067800F00
    527 DEFINE bne_a2,a1 6304B60067800F00
    528 DEFINE bne_a2,a3 6304D60067800F00
    529 DEFINE bne_a3,a0 6384A60067800F00
    530 DEFINE bne_a3,a1 6384B60067800F00
    531 DEFINE bne_a3,a2 6384C60067800F00
    532 DEFINE bne_a3,t0 6384560067800F00
    533 DEFINE bne_t0,a0 6384A20067800F00
    534 DEFINE bne_t0,a2 6384C20067800F00
    535 DEFINE bne_t0,t1 6384620067800F00
    536 DEFINE bne_t0,t2 6384720067800F00
    537 DEFINE bne_t1,a0 6304A30067800F00
    538 DEFINE bne_t1,a2 6304C30067800F00
    539 DEFINE bne_t1,a3 6304D30067800F00
    540 DEFINE bne_t1,t2 6304730067800F00
    541 DEFINE bne_t2,a2 6384C30067800F00
    542 DEFINE bne_t2,a3 6384D30067800F00
    543 DEFINE bne_t2,t0 6384530067800F00
    544 DEFINE blt_a0,a1 6354B50067800F00
    545 DEFINE blt_a0,a2 6354C50067800F00
    546 DEFINE blt_a0,t1 6354650067800F00
    547 DEFINE blt_a1,a0 63D4A50067800F00
    548 DEFINE blt_a1,a2 63D4C50067800F00
    549 DEFINE blt_a1,t0 63D4550067800F00
    550 DEFINE blt_a1,t2 63D4750067800F00
    551 DEFINE blt_a2,a1 6354B60067800F00
    552 DEFINE blt_a2,a3 6354D60067800F00
    553 DEFINE blt_a2,t0 6354560067800F00
    554 DEFINE blt_a2,t1 6354660067800F00
    555 DEFINE blt_a3,a2 63D4C60067800F00
    556 DEFINE blt_a3,t2 63D4760067800F00
    557 DEFINE blt_t0,a0 63D4A20067800F00
    558 DEFINE blt_t0,a2 63D4C20067800F00
    559 DEFINE blt_t0,t1 63D4620067800F00
    560 DEFINE blt_t1,a0 6354A30067800F00
    561 DEFINE blt_t1,a1 6354B30067800F00
    562 DEFINE blt_t1,t0 6354530067800F00
    563 DEFINE blt_t2,a3 63D4D30067800F00
    564 DEFINE blt_t2,t1 63D4630067800F00
    565 DEFINE beqz_a0 6314050067800F00
    566 DEFINE beqz_a1 6394050067800F00
    567 DEFINE beqz_a2 6314060067800F00
    568 DEFINE beqz_a3 6394060067800F00
    569 DEFINE beqz_t0 6394020067800F00
    570 DEFINE beqz_t1 6314030067800F00
    571 DEFINE beqz_t2 6394030067800F00
    572 DEFINE bnez_a0 6304050067800F00
    573 DEFINE bnez_a1 6384050067800F00
    574 DEFINE bnez_a2 6304060067800F00
    575 DEFINE bnez_a3 6384060067800F00
    576 DEFINE bnez_t0 6384020067800F00
    577 DEFINE bnez_t1 6304030067800F00
    578 DEFINE bnez_t2 6384030067800F00
    579 DEFINE bltz_a0 6354050067800F00
    580 DEFINE bltz_t0 63D4020067800F00
    581 
    582 ## ---- Calls And Returns
    583 DEFINE call E7800F00
    584 DEFINE ret 67800000
    585 DEFINE eret 83200100032441001301040067800000
    586 DEFINE tail 83200100032441001301040067800F00
    587 
    588 ## ---- Frame Management
    589 DEFINE enter_0 130101FF232011001304010123228100
    590 DEFINE enter_8 130101FF232011001304010123228100
    591 DEFINE enter_16 130101FE232011001304010223228100
    592 DEFINE enter_40 130101FD232011001304010323228100
    593 DEFINE enter_56 130101FC232011001304010423228100
    594 
    595 ## ---- System
    596 DEFINE syscall 938E0500130E0600138806009308050013850E0093050E00130608009386020013870400930709007300000093850E0013060E0093060800
    597 DEFINE sys_exit 5D00000000000000
    598 DEFINE sys_openat 3800000000000000
    599 DEFINE sys_read 3F00000000000000
    600 DEFINE sys_write 4000000000000000
    601 
    602 ## ---- Program Entry
    603 ## Backend-owned :_start stub per docs/P1.md §Program Entry.
    604 ## Calls p1_main under the one-word direct-result convention
    605 ## (a0=argc, a1=argv) and sys_exits its return value.
    606 :_start
    607 '03250100'
    608 '93054100'
    609 '970F000083AFCF006F008000'
    610 &p1_main
    611 'E7800F00'
    612 '9308D005'
    613 '73000000'