#! ../ulm-generator/1_ulm_build/stack/ulm
#TEXT 8
0x0000000000000000: 08 00 00 02 #     ldzwq 0, %2
0x0000000000000004: 08 00 15 06 #     ldzwq 21, %6
0x0000000000000008: 08 00 00 07 #     ldzwq @w3(x), %7
0x000000000000000C: 15 00 00 07 #     shldwq @w2(x), %7
0x0000000000000010: 15 00 00 07 #     shldwq @w1(x), %7
0x0000000000000014: 15 01 38 07 #     shldwq @w0(x), %7
0x0000000000000018: 19 06 00 07 #     movq %6, (%7)
0x000000000000001C: 08 00 00 06 #     ldzwq @w3(x), %6
0x0000000000000020: 15 00 00 06 #     shldwq @w2(x), %6
0x0000000000000024: 15 00 00 06 #     shldwq @w1(x), %6
0x0000000000000028: 15 01 38 06 #     shldwq @w0(x), %6
0x000000000000002C: 12 06 00 06 #     movq (%6), %6
0x0000000000000030: 0F 02 06 06 #     imulq 2, %6, %6
0x0000000000000034: 08 00 00 07 #     ldzwq @w3(x), %7
0x0000000000000038: 15 00 00 07 #     shldwq @w2(x), %7
0x000000000000003C: 15 00 00 07 #     shldwq @w1(x), %7
0x0000000000000040: 15 01 38 07 #     shldwq @w0(x), %7
0x0000000000000044: 19 06 00 07 #     movq %6, (%7)
0x0000000000000048: 08 00 00 06 #     ldzwq @w3(x), %6
0x000000000000004C: 15 00 00 06 #     shldwq @w2(x), %6
0x0000000000000050: 15 00 00 06 #     shldwq @w1(x), %6
0x0000000000000054: 15 01 38 06 #     shldwq @w0(x), %6
0x0000000000000058: 12 06 00 06 #     movq (%6), %6
0x000000000000005C: 05 20 02 02 #     subq 32, %2, %2
0x0000000000000060: 19 06 18 02 #     movq %6, 24(%2)
0x0000000000000064: 08 00 00 04 #     ldzwq @w3(print_uint64), %4
0x0000000000000068: 15 00 00 04 #     shldwq @w2(print_uint64), %4
0x000000000000006C: 15 00 00 04 #     shldwq @w1(print_uint64), %4
0x0000000000000070: 15 00 D0 04 #     shldwq @w0(print_uint64), %4
0x0000000000000074: 14 04 03 00 #     call %4, %3
0x0000000000000078: 0A 20 02 02 #     addq 32, %2, %2
0x000000000000007C: 13 0A 00 00 #     putc 10
0x0000000000000080: 01 00 00 00 #     halt %0
0x0000000000000084: 19 03 00 02 #     movq %RET_ADDR, ret(%SP)
0x0000000000000088: 19 01 08 02 #     movq %FP, fp(%SP)
0x000000000000008C: 0A 00 02 01 #     addq 0, %SP, %FP
0x0000000000000090: 05 10 02 02 #     subq 8*2, %SP, %SP
0x0000000000000094: 0E 00 00 06 #     movq %0, %dest
0x0000000000000098: 02 07 00 00 #     getc %ch
0x000000000000009C: 05 30 07 00 #     subq 48, %ch, %0
0x00000000000000A0: 0D 00 00 07 #     jb .get_uint64.ret
0x00000000000000A4: 05 39 07 00 #     subq 57, %ch, %0
0x00000000000000A8: 0C 00 00 05 #     ja .get_uint64.ret
0x00000000000000AC: 05 30 07 07 #     subq 48, %ch, %ch
0x00000000000000B0: 0F 0A 06 06 #     imulq 10, %dest, %dest
0x00000000000000B4: 0E 07 06 06 #     addq %ch, %dest, %dest
0x00000000000000B8: 04 FF FF F8 #     jmp .get_uint64.read
0x00000000000000BC: 19 06 10 01 #     movq %dest, rval(%FP)
0x00000000000000C0: 0E 01 00 02 #     movq %FP, %SP
0x00000000000000C4: 12 02 08 01 #     movq fp(%SP), %FP
0x00000000000000C8: 12 02 00 03 #     movq ret(%SP), %RET_ADDR
0x00000000000000CC: 14 03 00 00 #     jmp %RET_ADDR, %0
0x00000000000000D0: 19 03 00 02 #     movq %RET_ADDR, ret(%SP)
0x00000000000000D4: 19 01 08 02 #     movq %FP, fp(%SP)
0x00000000000000D8: 0A 00 02 01 #     addq 0, %SP, %FP
0x00000000000000DC: 05 10 02 02 #     subq 8*2, %SP, %SP
0x00000000000000E0: 16 00 14 06 #     ldpa .print_uint64.pool, %buf
0x00000000000000E4: 17 06 00 06 #     ldfp (%buf), %buf
0x00000000000000E8: 0E 06 00 09 #     movq %buf, %p
0x00000000000000EC: 12 01 18 07 #     movq fparam0(%FP), %val
0x00000000000000F0: 10 0A 07 07 #     divq 10, %val, %val
0x00000000000000F4: 0A 30 08 08 #     addq 48, %digit, %digit
0x00000000000000F8: 11 08 00 09 #     movb %digit, (%p)
0x00000000000000FC: 0A 01 09 09 #     addq 1, %p, %p
0x0000000000000100: 05 00 07 00 #     subq 0, %val, %0
0x0000000000000104: 06 FF FF FB #     jnz .print_uint64.get_digit
0x0000000000000108: 05 01 09 09 #     subq 1, %p, %p
0x000000000000010C: 09 09 00 08 #     movzbq (%p), %digit
0x0000000000000110: 03 08 00 00 #     putc %digit
0x0000000000000114: 18 06 09 00 #     subq %buf, %p, %0
0x0000000000000118: 06 FF FF FC #     jnz .print_uint64.print_digit
0x000000000000011C: 0E 01 00 02 #     movq %FP, %SP
0x0000000000000120: 12 02 08 01 #     movq fp(%SP), %FP
0x0000000000000124: 12 02 00 03 #     movq ret(%SP), %RET_ADDR
0x0000000000000128: 14 03 00 00 #     jmp %RET_ADDR, %0
0x000000000000012C: 00 00 00 00 #      for alignment
0x0000000000000130: 00 00 00 00
0x0000000000000134: 00 00 00 08 #     .quad .print_uint64.buf
#DATA 1
#BSS 8 28
#SYMTAB
b x                    0x0000000000000000
t print_uint64         0x00000000000000D0
a FP                   0x0000000000000001
a SP                   0x0000000000000002
a RET_ADDR             0x0000000000000003
a ret                  0x0000000000000000
a fp                   0x0000000000000008
a rval                 0x0000000000000010
a fparam0              0x0000000000000018
t get_uint64           0x0000000000000084
a dest                 0x0000000000000006
a ch                   0x0000000000000007
t .get_uint64.read     0x0000000000000098
t .get_uint64.ret      0x00000000000000BC
b .print_uint64.buf    0x0000000000000008
a buf                  0x0000000000000006
a val                  0x0000000000000007
a digit                0x0000000000000008
a p                    0x0000000000000009
t .print_uint64.pool   0x0000000000000130
t .print_uint64.get_digit 0x00000000000000F0
t .print_uint64.print_digit 0x0000000000000108
#FIXUPS
text 0x0000000000000130  0 64 absolute [bss]+8
text 0x0000000000000070  8 16 absolute @w0([text]+208)
text 0x000000000000006C  8 16 absolute @w1([text]+208)
text 0x0000000000000068  8 16 absolute @w2([text]+208)
text 0x0000000000000064  8 16 absolute @w3([text]+208)
text 0x0000000000000054  8 16 absolute @w0([bss]+312)
text 0x0000000000000050  8 16 absolute @w1([bss]+312)
text 0x000000000000004C  8 16 absolute @w2([bss]+312)
text 0x0000000000000048  8 16 absolute @w3([bss]+312)
text 0x0000000000000040  8 16 absolute @w0([bss]+312)
text 0x000000000000003C  8 16 absolute @w1([bss]+312)
text 0x0000000000000038  8 16 absolute @w2([bss]+312)
text 0x0000000000000034  8 16 absolute @w3([bss]+312)
text 0x0000000000000028  8 16 absolute @w0([bss]+312)
text 0x0000000000000024  8 16 absolute @w1([bss]+312)
text 0x0000000000000020  8 16 absolute @w2([bss]+312)
text 0x000000000000001C  8 16 absolute @w3([bss]+312)
text 0x0000000000000014  8 16 absolute @w0([bss]+312)
text 0x0000000000000010  8 16 absolute @w1([bss]+312)
text 0x000000000000000C  8 16 absolute @w2([bss]+312)
text 0x0000000000000008  8 16 absolute @w3([bss]+312)
