Newer
Older
DE2_115_PROG / software / DE2_115_ASM / DE2_115_ASM.objdump
@takayun takayun on 22 Dec 2016 718 KB add inst SUB

DE2_115_ASM.elf:     file format elf32-littlenios2
DE2_115_ASM.elf
architecture: nios2, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x000001b4

Program Header:
    LOAD off    0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12
         filesz 0x00000020 memsz 0x00000020 flags r-x
    LOAD off    0x00001020 vaddr 0x00000020 paddr 0x00000020 align 2**12
         filesz 0x00010694 memsz 0x00010694 flags r-x
    LOAD off    0x000116b4 vaddr 0x000106b4 paddr 0x0001223c align 2**12
         filesz 0x00001b88 memsz 0x00001b88 flags rw-
    LOAD off    0x00013dc4 vaddr 0x00013dc4 paddr 0x00013dc4 align 2**12
         filesz 0x00000000 memsz 0x00000810 flags rw-

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .entry        00000020  00000000  00000000  00001000  2**5
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .exceptions   00000194  00000020  00000020  00001020  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .text         0000fddc  000001b4  000001b4  000011b4  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  3 .rodata       00000724  0000ff90  0000ff90  00010f90  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  4 .rwdata       00001b88  000106b4  0001223c  000116b4  2**2
                  CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA
  5 .bss          00000810  00013dc4  00013dc4  00013dc4  2**2
                  ALLOC, SMALL_DATA
  6 .comment      00000026  00000000  00000000  0001323c  2**0
                  CONTENTS, READONLY
  7 .debug_aranges 00000e18  00000000  00000000  00013268  2**3
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 000017d8  00000000  00000000  00014080  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   000251cd  00000000  00000000  00015858  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 00008258  00000000  00000000  0003aa25  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   00015d82  00000000  00000000  00042c7d  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_frame  0000202c  00000000  00000000  00058a00  2**2
                  CONTENTS, READONLY, DEBUGGING
 13 .debug_str    000023b5  00000000  00000000  0005aa2c  2**0
                  CONTENTS, READONLY, DEBUGGING
 14 .debug_loc    0000c7db  00000000  00000000  0005cde1  2**0
                  CONTENTS, READONLY, DEBUGGING
 15 .debug_alt_sim_info 00000040  00000000  00000000  000695bc  2**2
                  CONTENTS, READONLY, DEBUGGING
 16 .debug_ranges 000009e0  00000000  00000000  00069600  2**3
                  CONTENTS, READONLY, DEBUGGING
 17 .thread_model 00000003  00000000  00000000  0006d7ff  2**0
                  CONTENTS, READONLY
 18 .cpu          0000000f  00000000  00000000  0006d802  2**0
                  CONTENTS, READONLY
 19 .qsys         00000001  00000000  00000000  0006d811  2**0
                  CONTENTS, READONLY
 20 .simulation_enabled 00000001  00000000  00000000  0006d812  2**0
                  CONTENTS, READONLY
 21 .stderr_dev   00000009  00000000  00000000  0006d813  2**0
                  CONTENTS, READONLY
 22 .stdin_dev    00000009  00000000  00000000  0006d81c  2**0
                  CONTENTS, READONLY
 23 .stdout_dev   00000009  00000000  00000000  0006d825  2**0
                  CONTENTS, READONLY
 24 .sopc_system_name 0000000b  00000000  00000000  0006d82e  2**0
                  CONTENTS, READONLY
 25 .quartus_project_dir 00000030  00000000  00000000  0006d839  2**0
                  CONTENTS, READONLY
 26 .sopcinfo     0007d2ad  00000000  00000000  0006d869  2**0
                  CONTENTS, READONLY
SYMBOL TABLE:
00000000 l    d  .entry	00000000 .entry
00000020 l    d  .exceptions	00000000 .exceptions
000001b4 l    d  .text	00000000 .text
0000ff90 l    d  .rodata	00000000 .rodata
000106b4 l    d  .rwdata	00000000 .rwdata
00013dc4 l    d  .bss	00000000 .bss
00000000 l    d  .comment	00000000 .comment
00000000 l    d  .debug_aranges	00000000 .debug_aranges
00000000 l    d  .debug_pubnames	00000000 .debug_pubnames
00000000 l    d  .debug_info	00000000 .debug_info
00000000 l    d  .debug_abbrev	00000000 .debug_abbrev
00000000 l    d  .debug_line	00000000 .debug_line
00000000 l    d  .debug_frame	00000000 .debug_frame
00000000 l    d  .debug_str	00000000 .debug_str
00000000 l    d  .debug_loc	00000000 .debug_loc
00000000 l    d  .debug_alt_sim_info	00000000 .debug_alt_sim_info
00000000 l    d  .debug_ranges	00000000 .debug_ranges
000001ec l       .text	00000000 alt_after_alt_main
00000000 l    df *ABS*	00000000 alt_irq_handler.c
00000000 l    df *ABS*	00000000 LCD.c
00000000 l    df *ABS*	00000000 hello_world_small.c
000003dc l     F .text	000000c0 init
00000734 l     F .text	00000044 reset_mem_cancel
00000778 l     F .text	000000b4 reset_mem
0000082c l     F .text	00000044 reset_pc_cancel
00000870 l     F .text	00000090 reset_pc
00000000 l    df *ABS*	00000000 hex_encoder.c
00000000 l    df *ABS*	00000000 hex_out.c
00000000 l    df *ABS*	00000000 input_int.c
000014f8 l     F .text	000000e8 update_sw_reg
00013dcc l     O .bss	00000004 event_code.1400
00013dd0 l     O .bss	00000001 status.1399
00000000 l    df *ABS*	00000000 inst_decoder.c
00000000 l    df *ABS*	00000000 lcd_out.c
00000000 l    df *ABS*	00000000 sys_debug.c
00000000 l    df *ABS*	00000000 sys_except.c
00000000 l    df *ABS*	00000000 sys_memory.c
00013e0c l     O .bss	00000100 memory
00013f0c l     O .bss	00000400 inst_memory
00000000 l    df *ABS*	00000000 sys_prog.c
00000000 l    df *ABS*	00000000 sys_register.c
00000000 l    df *ABS*	00000000 lib2-divmod.c
00002ad8 l     F .text	0000007c udivmodsi4
00000000 l    df *ABS*	00000000 lib2-mul.c
00000000 l    df *ABS*	00000000 ctype_.c
000101e5 l     O .rodata	00000180 _ctype_b
00000000 l    df *ABS*	00000000 sprintf.c
00000000 l    df *ABS*	00000000 strlen.c
00000000 l    df *ABS*	00000000 vfprintf.c
00002da4 l     F .text	00000058 __sprint_r
000103d6 l     O .rodata	00000010 blanks.3452
000103c6 l     O .rodata	00000010 zeroes.3453
00000000 l    df *ABS*	00000000 wsetup.c
00000000 l    df *ABS*	00000000 dtoa.c
00004e20 l     F .text	00000244 quorem
00000000 l    df *ABS*	00000000 fflush.c
00000000 l    df *ABS*	00000000 findfp.c
00006848 l     F .text	00000058 std
00006954 l     F .text	00000008 __fp_lock
0000695c l     F .text	00000008 __fp_unlock
00000000 l    df *ABS*	00000000 mallocr.c
00000000 l    df *ABS*	00000000 fvwrite.c
00000000 l    df *ABS*	00000000 fwalk.c
00000000 l    df *ABS*	00000000 impure.c
000106b4 l     O .rwdata	00000400 impure_data
00000000 l    df *ABS*	00000000 locale.c
00012204 l     O .rwdata	00000004 charset
0001040c l     O .rodata	00000030 lconv
00000000 l    df *ABS*	00000000 makebuf.c
00000000 l    df *ABS*	00000000 mallocr.c
00000000 l    df *ABS*	00000000 memchr.c
00000000 l    df *ABS*	00000000 memcpy.c
00000000 l    df *ABS*	00000000 memmove.c
00000000 l    df *ABS*	00000000 memset.c
00000000 l    df *ABS*	00000000 mprec.c
00010554 l     O .rodata	0000000c p05.2458
00000000 l    df *ABS*	00000000 mallocr.c
00000000 l    df *ABS*	00000000 s_isinfd.c
00000000 l    df *ABS*	00000000 s_isnand.c
00000000 l    df *ABS*	00000000 sbrkr.c
00000000 l    df *ABS*	00000000 stdio.c
00000000 l    df *ABS*	00000000 strcmp.c
00000000 l    df *ABS*	00000000 writer.c
00000000 l    df *ABS*	00000000 mallocr.c
00000000 l    df *ABS*	00000000 closer.c
00000000 l    df *ABS*	00000000 fclose.c
00000000 l    df *ABS*	00000000 fstatr.c
00000000 l    df *ABS*	00000000 int_errno.c
00000000 l    df *ABS*	00000000 isattyr.c
00000000 l    df *ABS*	00000000 lseekr.c
00000000 l    df *ABS*	00000000 readr.c
00000000 l    df *ABS*	00000000 libgcc2.c
00000000 l    df *ABS*	00000000 libgcc2.c
00000000 l    df *ABS*	00000000 dp-bit.c
0000ad08 l     F .text	00000410 _fpadd_parts
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 libgcc2.c
00000000 l    df *ABS*	00000000 libgcc2.c
00000000 l    df *ABS*	00000000 libgcc2.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 dp-bit.c
00000000 l    df *ABS*	00000000 alt_close.c
0000c5ec l     F .text	00000060 alt_get_errno
00000000 l    df *ABS*	00000000 alt_dev.c
0000c64c l     F .text	0000002c alt_dev_null_write
00000000 l    df *ABS*	00000000 alt_errno.c
00000000 l    df *ABS*	00000000 alt_fstat.c
0000c750 l     F .text	00000060 alt_get_errno
00000000 l    df *ABS*	00000000 alt_isatty.c
0000c874 l     F .text	00000060 alt_get_errno
00000000 l    df *ABS*	00000000 alt_load.c
0000c954 l     F .text	0000006c alt_load_section
00000000 l    df *ABS*	00000000 alt_lseek.c
0000cab4 l     F .text	00000060 alt_get_errno
00000000 l    df *ABS*	00000000 alt_main.c
00000000 l    df *ABS*	00000000 alt_malloc_lock.c
00000000 l    df *ABS*	00000000 alt_read.c
0000cce4 l     F .text	00000060 alt_get_errno
00000000 l    df *ABS*	00000000 alt_release_fd.c
00000000 l    df *ABS*	00000000 alt_sbrk.c
00012228 l     O .rwdata	00000004 heap_end
00000000 l    df *ABS*	00000000 alt_usleep.c
00000000 l    df *ABS*	00000000 alt_write.c
0000cfcc l     F .text	00000060 alt_get_errno
00000000 l    df *ABS*	00000000 alt_sys_init.c
00011070 l     O .rwdata	00001060 jtag_uart
000120d0 l     O .rwdata	00000120 lcd_16207_0
0000d0bc l     F .text	00000038 alt_dev_reg
00000000 l    df *ABS*	00000000 altera_avalon_jtag_uart_fd.c
00000000 l    df *ABS*	00000000 altera_avalon_jtag_uart_init.c
0000d2fc l     F .text	00000228 altera_avalon_jtag_uart_irq
0000d524 l     F .text	000000b0 altera_avalon_jtag_uart_timeout
00000000 l    df *ABS*	00000000 altera_avalon_jtag_uart_ioctl.c
00000000 l    df *ABS*	00000000 altera_avalon_jtag_uart_read.c
00000000 l    df *ABS*	00000000 altera_avalon_jtag_uart_write.c
00000000 l    df *ABS*	00000000 altera_avalon_lcd_16207.c
0001222c l     O .rwdata	00000004 colstart
0000dba0 l     F .text	000000b8 lcd_write_command
0000dc58 l     F .text	000000d4 lcd_write_data
0000dd2c l     F .text	000000d8 lcd_clear_screen
0000de04 l     F .text	00000214 lcd_repaint_screen
0000e018 l     F .text	000000e0 lcd_scroll_up
0000e0f8 l     F .text	000002e4 lcd_handle_escape
0000e918 l     F .text	000000cc alt_lcd_16207_timeout
00000000 l    df *ABS*	00000000 altera_avalon_lcd_16207_fd.c
00000000 l    df *ABS*	00000000 alt_alarm_start.c
00000000 l    df *ABS*	00000000 alt_busy_sleep.c
00000000 l    df *ABS*	00000000 alt_dcache_flush_all.c
00000000 l    df *ABS*	00000000 alt_dev_llist_insert.c
0000eef8 l     F .text	00000060 alt_get_errno
00000000 l    df *ABS*	00000000 alt_do_ctors.c
00000000 l    df *ABS*	00000000 alt_do_dtors.c
00000000 l    df *ABS*	00000000 alt_icache_flush_all.c
00000000 l    df *ABS*	00000000 alt_iic.c
00000000 l    df *ABS*	00000000 alt_iic_isr_register.c
00000000 l    df *ABS*	00000000 alt_io_redirect.c
0000f308 l     F .text	000000d8 alt_open_fd
00000000 l    df *ABS*	00000000 alt_irq_vars.c
00000000 l    df *ABS*	00000000 alt_open.c
0000f458 l     F .text	000000f8 alt_file_locked
0000f6dc l     F .text	00000060 alt_get_errno
00000000 l    df *ABS*	00000000 alt_tick.c
00000000 l    df *ABS*	00000000 altera_nios2_qsys_irq.c
00000000 l    df *ABS*	00000000 alt_find_dev.c
00000000 l    df *ABS*	00000000 alt_find_file.c
00000000 l    df *ABS*	00000000 alt_get_fd.c
00000000 l    df *ABS*	00000000 atexit.c
00000000 l    df *ABS*	00000000 exit.c
00000000 l    df *ABS*	00000000 memcmp.c
00000000 l    df *ABS*	00000000 __atexit.c
00000000 l    df *ABS*	00000000 __call_atexit.c
0000fd78 l     F .text	00000004 register_fini
00000000 l    df *ABS*	00000000 alt_exit.c
0000ff2c l     F .text	00000040 alt_sim_halt
00008638 g     F .text	00000094 _mprec_log10
00008724 g     F .text	00000088 __any_on
00009edc g     F .text	00000070 _isatty_r
0001052c g     O .rodata	00000028 __mprec_tinytens
00001b20 g     F .text	00000038 inst_load
0000cb14 g     F .text	0000006c alt_main
00014344 g     O .bss	00000100 alt_irq
00009f4c g     F .text	00000078 _lseek_r
0001223c g       *ABS*	00000000 __flash_rwdata_start
0000b828 g     F .text	00000088 __eqdf2
000145d4 g       *ABS*	00000000 __alt_heap_start
000028c8 g     F .text	00000070 get_pc
00009994 g     F .text	00000068 __sseek
000068b0 g     F .text	000000a4 __sinit
000027bc g     F .text	00000084 inc_pc
00001348 g     F .text	00000090 clear_block
000075bc g     F .text	00000084 _setlocale_r
0000049c g     F .text	000000e4 store_value
000069b0 g     F .text	0000009c __sfmoreglue
0000cba0 g     F .text	00000020 __malloc_unlock
00001bec g     F .text	0000005c inst_add
00001e9c g     F .text	00000050 inst_jine
000080b4 g     F .text	000000e0 memmove
000069a0 g     F .text	00000010 _cleanup
000087ac g     F .text	000000bc _Balloc
00000350 g     F .text	0000008c LCD_Test
0000b938 g     F .text	00000088 __gtdf2
00000000  w      *UND*	00000000 __errno
00000000 g     F .entry	0000000c __reset
00000020 g       *ABS*	00000000 __flash_exceptions_start
00009e68 g     F .text	00000074 _fstat_r
00013df0 g     O .bss	00000004 errno
00013df8 g     O .bss	00000004 alt_argv
0001a1f0 g       *ABS*	00000000 _gp
0000ce78 g     F .text	00000030 usleep
00010ef0 g     O .rwdata	00000180 alt_fd_list
00001a54 g     F .text	0000005c inst_jump
00002500 g     F .text	0000003c delay10ms
0000f900 g     F .text	00000094 alt_find_dev
00008014 g     F .text	000000a0 memcpy
00006994 g     F .text	0000000c _cleanup_r
0000bad0 g     F .text	000000f8 __floatsidf
0000f3e0 g     F .text	00000078 alt_io_redirect
0000ba48 g     F .text	00000088 __ltdf2
0000ff90 g       *ABS*	00000000 __DTOR_END__
00008588 g     F .text	000000b0 __ratio
00002938 g     F .text	00000150 run_proc
0000d73c g     F .text	00000224 altera_avalon_jtag_uart_read
00000000  w      *UND*	00000000 malloc
00002c14 g     F .text	00000008 __udivsi3
0000c7b0 g     F .text	000000c4 isatty
0001043c g     O .rodata	000000c8 __mprec_tens
00007598 g     F .text	00000008 __locale_charset
00013de4 g     O .bss	00000004 __malloc_top_pad
00012200 g     O .rwdata	00000004 __mb_cur_max
000075a0 g     F .text	0000000c _localeconv_r
00008f10 g     F .text	0000003c __i2b
00006f7c g     F .text	0000049c __sfvwrite_r
0000991c g     F .text	00000070 _sbrk_r
00001f34 g     F .text	00000028 lcd_caret_reset
00001e4c g     F .text	00000050 inst_jieq
00009fc4 g     F .text	00000078 _read_r
00010ab4 g     O .rwdata	0000000c __lc_ctype
00012220 g     O .rwdata	00000004 alt_max_fd
0000c2ec g     F .text	00000138 __unpack_d
00009d44 g     F .text	00000110 _fclose_r
000020cc g     F .text	00000170 convertRegName
00006814 g     F .text	00000034 fflush
00013de8 g     O .bss	00000004 __malloc_max_sbrked_mem
00001ab0 g     F .text	00000070 inst_output
0000b198 g     F .text	00000074 __adddf3
00008468 g     F .text	00000120 __b2d
00002690 g     F .text	0000009c memory_store
0000a6a8 g     F .text	00000660 __umoddi3
0000c9c0 g     F .text	000000f4 lseek
000121fc g     O .rwdata	00000004 _global_impure_ptr
000092b8 g     F .text	000005f4 _realloc_r
000145d4 g       *ABS*	00000000 __bss_end
0000f210 g     F .text	000000f8 alt_iic_isr_register
0000f7d4 g     F .text	0000010c alt_tick
00013dc4 g     O .bss	00000005 stack
0000a03c g     F .text	0000066c __udivdi3
00010504 g     O .rodata	00000028 __mprec_bigtens
00009198 g     F .text	00000120 __s2b
0000bca0 g     F .text	00000194 __floatunsidf
00008388 g     F .text	00000060 __mcmp
000121f4 g     O .rwdata	00000004 __ctype_ptr
0000697c g     F .text	00000018 __fp_lock_all
0000f1c8 g     F .text	00000048 alt_ic_irq_enabled
00001c48 g     F .text	0000005c inst_sub
0000f73c g     F .text	00000098 alt_alarm_stop
00013e00 g     O .bss	00000004 alt_irq_active
00001790 g     F .text	0000004c inst_fetch
000000ec g     F .exceptions	000000c8 alt_irq_handler
00010ec8 g     O .rwdata	00000028 alt_dev_null
0000ee28 g     F .text	0000001c alt_dcache_flush_all
00008254 g     F .text	00000070 __hi0bits
00014334 g     O .bss	0000000f global_registers
0000bbc8 g     F .text	000000d8 __fixdfsi
00001d74 g     F .text	0000006c inst_jeq
0001223c g       *ABS*	00000000 __ram_rwdata_end
00000000 g       *ABS*	00000000 __alt_mem_onchip_memory
00012218 g     O .rwdata	00000008 alt_dev_list
0000cea8 g     F .text	00000124 write
000106b4 g       *ABS*	00000000 __ram_rodata_end
0000c678 g     F .text	000000d8 fstat
00009078 g     F .text	00000120 __pow5mult
00013dd8 g     O .bss	00000004 __nlocale_changed
00002c1c g     F .text	00000008 __umodsi3
000145d4 g       *ABS*	00000000 end
0000e3dc g     F .text	0000053c altera_avalon_lcd_16207_write
00002840 g     F .text	00000050 add_pc
0000d23c g     F .text	000000c0 altera_avalon_jtag_uart_init
0000ff8c g       *ABS*	00000000 __CTOR_LIST__
00032000 g       *ABS*	00000000 __alt_stack_pointer
0000bf58 g     F .text	00000080 __clzsi2
0000d960 g     F .text	00000240 altera_avalon_jtag_uart_write
000068a0 g     F .text	00000004 __sfp_lock_acquire
00007f30 g     F .text	000000e4 memchr
00002dfc g     F .text	00001ec4 ___vfprintf_internal_r
00002cd0 g     F .text	00000060 _sprintf_r
00006c68 g     F .text	00000314 _free_r
0000fd7c g     F .text	000001b0 __call_exitprocs
00013ddc g     O .bss	00000004 __mlocale_changed
000013d8 g     F .text	000000f8 print_number
0001220c g     O .rwdata	00000004 __malloc_sbrk_base
000001b4 g     F .text	0000003c _start
00013e04 g     O .bss	00000004 _alt_tick_rate
000011b8 g     F .text	00000190 print_block
00008b70 g     F .text	0000014c __lshift
00013e08 g     O .bss	00000004 _alt_nticks
0000cbc0 g     F .text	00000124 read
0000d060 g     F .text	0000005c alt_sys_init
0000fc44 g     F .text	00000134 __register_exitproc
00008cbc g     F .text	00000254 __multiply
00001f84 g     F .text	00000030 lcd_print
0000d5d4 g     F .text	00000074 altera_avalon_jtag_uart_close
00002c24 g     F .text	00000038 __mulsi3
000106b4 g       *ABS*	00000000 __ram_rwdata_start
0000ff90 g       *ABS*	00000000 __ram_rodata_start
0001430c g     O .bss	00000028 __malloc_current_mallinfo
00008868 g     F .text	0000017c __d2b
0000d0f4 g     F .text	00000058 altera_avalon_jtag_uart_read_fd
0000fab4 g     F .text	000000d0 alt_get_fd
0000253c g     F .text	00000040 panic
0000eccc g     F .text	0000015c alt_busy_sleep
0000c424 g     F .text	000000c8 __fpcmp_parts_d
00009cd4 g     F .text	00000070 _close_r
0000fbd0 g     F .text	00000074 memcmp
0000d1a4 g     F .text	00000048 altera_avalon_jtag_uart_close_fd
000145d4 g       *ABS*	00000000 __alt_stack_base
0000d1ec g     F .text	00000050 altera_avalon_jtag_uart_ioctl_fd
00001b90 g     F .text	0000005c inst_delay
00001b58 g     F .text	00000038 inst_store
00001fb4 g     F .text	000000ac display_inst
00004ce4 g     F .text	0000013c __swsetup_r
0000b5d0 g     F .text	00000258 __divdf3
00006a4c g     F .text	000000f0 __sfp
000086cc g     F .text	00000058 __copybits
00010ac0 g     O .rwdata	00000408 __malloc_av_
000068ac g     F .text	00000004 __sinit_lock_release
0000b20c g     F .text	000003c4 __muldf3
00009a78 g     F .text	00000060 __sread
0000f994 g     F .text	00000120 alt_find_file
0000ee44 g     F .text	000000b4 alt_dev_llist_insert
0000cb80 g     F .text	00000020 __malloc_lock
0000cdbc g     F .text	000000bc sbrk
00006618 g     F .text	000001fc _fflush_r
00009c0c g     F .text	000000c8 _calloc_r
00013dc4 g       *ABS*	00000000 __bss_start
000001f0 g     F .text	0000009c LCD_Init
00008194 g     F .text	00000098 memset
00001eec g     F .text	00000048 lcd_init
00000900 g     F .text	00000288 main
00013dfc g     O .bss	00000004 alt_envp
00013dec g     O .bss	00000004 __malloc_max_total_mem
0000d14c g     F .text	00000058 altera_avalon_jtag_uart_write_fd
0000e9e4 g     F .text	0000013c altera_avalon_lcd_16207_init
00000314 g     F .text	0000003c LCD_Line2
00000b88 g     F .text	000001dc encodeNumHex
0000998c g     F .text	00000008 __sclose
00032000 g       *ABS*	00000000 __alt_heap_limit
00009e54 g     F .text	00000014 fclose
00014444 g     O .bss	00000190 _atexit0
00005064 g     F .text	000015b4 _dtoa_r
000077f0 g     F .text	00000740 _malloc_r
00012224 g     O .rwdata	00000004 alt_errno
000074e0 g     F .text	000000b8 _fwalk
000014d0 g     F .text	00000028 in_int
00002b54 g     F .text	00000060 __divsi3
00010560 g     O .rodata	00000014 __thenan_df
00006b3c g     F .text	0000012c _malloc_trim_r
0000ff90 g       *ABS*	00000000 __CTOR_END__
00009ad8 g     F .text	000000bc strcmp
0000ff90 g       *ABS*	00000000 __flash_rodata_start
0000ff90 g       *ABS*	00000000 __DTOR_LIST__
0000b8b0 g     F .text	00000088 __nedf2
0000d02c g     F .text	00000034 alt_irq_init
0000028c g     F .text	00000088 LCD_Show_Text
0000cd44 g     F .text	00000078 alt_release_fd
00002c5c g     F .text	00000074 sprintf
00010574 g     O .rodata	00000100 __clz_tab
00013de0 g     O .bss	00000004 _PathLocale
0000fb84 g     F .text	00000014 atexit
00002890 g     F .text	00000038 set_pc
00009b94 g     F .text	00000078 _write_r
00007640 g     F .text	0000001c setlocale
000006c4 g     F .text	00000070 print_change_memory
0000168c g     F .text	00000104 push_int
00002060 g     F .text	0000006c display_mem
000121f8 g     O .rwdata	00000004 _impure_ptr
00013df4 g     O .bss	00000004 alt_argc
00013dd4 g     O .bss	00000004 global_current_memory
0000efbc g     F .text	00000064 _do_dtors
00000020 g       .exceptions	00000000 alt_irq_entry
000083e8 g     F .text	00000080 __ulp
000098ac g     F .text	00000040 __isinfd
00006964 g     F .text	00000018 __fp_unlock_all
0000eb20 g     F .text	00000058 altera_avalon_lcd_16207_write_fd
00012210 g     O .rwdata	00000008 alt_fs_list
00000020 g       *ABS*	00000000 __ram_exceptions_start
000075ac g     F .text	00000010 localeconv
00000d64 g     F .text	00000454 encodeLatHex
0000223c g     F .text	000002c4 convertInstName
0000f03c g     F .text	00000050 alt_ic_isr_register
0001223c g       *ABS*	00000000 _edata
000145d4 g       *ABS*	00000000 _end
000001b4 g       *ABS*	00000000 __ram_exceptions_end
0000d648 g     F .text	000000f4 altera_avalon_jtag_uart_ioctl
00001f5c g     F .text	00000028 lcd_caret_reset2
0000f128 g     F .text	000000a0 alt_ic_irq_disable
0000257c g     F .text	0000007c memory_init
000099fc g     F .text	0000007c __swrite
00012208 g     O .rwdata	00000004 __malloc_trim_threshold
0000f8e0 g     F .text	00000020 altera_nios2_qsys_irq_init
0000fb98 g     F .text	00000038 exit
0000272c g     F .text	00000090 memory_load
00007418 g     F .text	000000c8 _fwalk_reent
000089e4 g     F .text	0000018c __mdiff
00002bb4 g     F .text	00000060 __modsi3
00032000 g       *ABS*	00000000 __alt_data_end
00000020 g     F .exceptions	00000000 alt_exception
000068a4 g     F .text	00000004 __sfp_lock_release
000017dc g     F .text	00000278 inst_decode
000100e4 g     O .rodata	00000101 _ctype_
00001ca4 g     F .text	000000d0 inst_comp
0000ff6c g     F .text	00000020 _exit
000098ec g     F .text	00000030 __isnand
00002a88 g     F .text	00000050 registers_init
0000eb78 g     F .text	00000154 alt_alarm_start
0000be34 g     F .text	00000124 __muldi3
0000765c g     F .text	00000194 __smakebuf_r
00001de0 g     F .text	0000006c inst_jne
00002d30 g     F .text	00000074 strlen
0000f550 g     F .text	0000018c open
0000b9c0 g     F .text	00000088 __gedf2
00000580 g     F .text	00000144 store_inst
0000f020 g     F .text	0000001c alt_icache_flush_all
00012230 g     O .rwdata	00000004 alt_priority_mask
0000f08c g     F .text	0000009c alt_ic_irq_enable
00004cc0 g     F .text	00000024 __vfprintf_internal
0000b118 g     F .text	00000080 __subdf3
000082c4 g     F .text	000000c4 __lo0bits
00012234 g     O .rwdata	00000008 alt_alarm_list
0000ef58 g     F .text	00000064 _do_ctors
000025f8 g     F .text	00000050 inst_memory_store
0000c4ec g     F .text	00000100 close
000015e0 g     F .text	000000ac push_decode
0000c8d4 g     F .text	00000080 alt_load
0000bfd8 g     F .text	00000314 __pack_d
000121f0 g     O .rwdata	00000001 PUSH_EVENT
00002648 g     F .text	00000048 inst_memory_load
00000000  w      *UND*	00000000 free
000068a8 g     F .text	00000004 __sinit_lock_acquire
00008f4c g     F .text	0000012c __multadd
0000822c g     F .text	00000028 _Bfree



Disassembly of section .entry:

00000000 <__reset>:
 * Jump to the _start entry point in the .text section if reset code
 * is allowed or if optimizing for RTL simulation.
 */
#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE)
    /* Jump to the _start entry point in the .text section. */
    movhi r1, %hi(_start)
   0:	00400034 	movhi	at,0
    ori r1, r1, %lo(_start)
   4:	08406d14 	ori	at,at,436
    jmp r1
   8:	0800683a 	jmp	at
	...

Disassembly of section .exceptions:

00000020 <alt_exception>:
         * Process an exception.  For all exceptions we must preserve all
         * caller saved registers on the stack (See the Nios2 ABI
         * documentation for details).
         */

        addi  sp, sp, -76
  20:	deffed04 	addi	sp,sp,-76

#endif

#endif

        stw   ra,  0(sp)
  24:	dfc00015 	stw	ra,0(sp)
        /*
         * Leave a gap in the stack frame at 4(sp) for the muldiv handler to
         * store zero into.
         */

        stw   r1,   8(sp)
  28:	d8400215 	stw	at,8(sp)
        stw   r2,  12(sp)
  2c:	d8800315 	stw	r2,12(sp)
        stw   r3,  16(sp)
  30:	d8c00415 	stw	r3,16(sp)
        stw   r4,  20(sp)
  34:	d9000515 	stw	r4,20(sp)
        stw   r5,  24(sp)
  38:	d9400615 	stw	r5,24(sp)
        stw   r6,  28(sp)
  3c:	d9800715 	stw	r6,28(sp)
        stw   r7,  32(sp)
  40:	d9c00815 	stw	r7,32(sp)

        rdctl r5, estatus
  44:	000b307a 	rdctl	r5,estatus

        stw   r8,  36(sp)
  48:	da000915 	stw	r8,36(sp)
        stw   r9,  40(sp)
  4c:	da400a15 	stw	r9,40(sp)
        stw   r10, 44(sp)
  50:	da800b15 	stw	r10,44(sp)
        stw   r11, 48(sp)
  54:	dac00c15 	stw	r11,48(sp)
        stw   r12, 52(sp)
  58:	db000d15 	stw	r12,52(sp)
        stw   r13, 56(sp)
  5c:	db400e15 	stw	r13,56(sp)
        stw   r14, 60(sp)
  60:	db800f15 	stw	r14,60(sp)
        stw   r15, 64(sp)
  64:	dbc01015 	stw	r15,64(sp)
        /*
         * ea-4 contains the address of the instruction being executed
         * when the exception occured. For interrupt exceptions, we will
         * will be re-issue the isntruction. Store it in 72(sp)
         */
        stw   r5,  68(sp)  /* estatus */
  68:	d9401115 	stw	r5,68(sp)
        addi  r15, ea, -4  /* instruction that caused exception */
  6c:	ebffff04 	addi	r15,ea,-4
        stw   r15,  72(sp)
  70:	dbc01215 	stw	r15,72(sp)
#else
        /*
         * Test to see if the exception was a software exception or caused 
         * by an external interrupt, and vector accordingly.
         */
        rdctl r4, ipending
  74:	0009313a 	rdctl	r4,ipending
        andi  r2, r5, 1
  78:	2880004c 	andi	r2,r5,1
        beq   r2, zero, .Lnot_irq
  7c:	10000326 	beq	r2,zero,8c <alt_exception+0x6c>
        beq   r4, zero, .Lnot_irq
  80:	20000226 	beq	r4,zero,8c <alt_exception+0x6c>
        /*
         * Now that all necessary registers have been preserved, call 
         * alt_irq_handler() to process the interrupts.
         */

        call alt_irq_handler
  84:	00000ec0 	call	ec <alt_irq_handler>

        .section .exceptions.irqreturn, "xa"

        br    .Lexception_exit
  88:	00000306 	br	98 <alt_exception+0x78>
         * upon completion, so we write ea (address of instruction *after*
         * the one where the exception occured) into 72(sp). The actual
         * instruction that caused the exception is written in r2, which these
         * handlers will utilize.
         */
        stw   ea,  72(sp)  /* Don't re-issue */
  8c:	df401215 	stw	ea,72(sp)
        ldw   r2, -4(ea)   /* Instruction that caused exception */
  90:	e8bfff17 	ldw	r2,-4(ea)
#ifdef NIOS2_HAS_DEBUG_STUB
       /*
        *  Either tell the user now (if there is a debugger attached) or go into
        *  the debug monitor which will loop until a debugger is attached.
        */
        break
  94:	003da03a 	break	0
        /* 
         * Restore the saved registers, so that all general purpose registers 
         * have been restored to their state at the time the interrupt occured.
         */

        ldw   r5,  68(sp)
  98:	d9401117 	ldw	r5,68(sp)
        ldw   ea,  72(sp)  /* This becomes the PC once eret is executed */
  9c:	df401217 	ldw	ea,72(sp)
        ldw   ra,   0(sp)
  a0:	dfc00017 	ldw	ra,0(sp)

        wrctl estatus, r5
  a4:	2801707a 	wrctl	estatus,r5

        ldw   r1,   8(sp)
  a8:	d8400217 	ldw	at,8(sp)
        ldw   r2,  12(sp)
  ac:	d8800317 	ldw	r2,12(sp)
        ldw   r3,  16(sp)
  b0:	d8c00417 	ldw	r3,16(sp)
        ldw   r4,  20(sp)
  b4:	d9000517 	ldw	r4,20(sp)
        ldw   r5,  24(sp)
  b8:	d9400617 	ldw	r5,24(sp)
        ldw   r6,  28(sp)
  bc:	d9800717 	ldw	r6,28(sp)
        ldw   r7,  32(sp)
  c0:	d9c00817 	ldw	r7,32(sp)
#ifdef ALT_STACK_CHECK
        ldw   et, %gprel(alt_exception_old_stack_limit)(gp)
#endif
#endif

        ldw   r8,  36(sp)
  c4:	da000917 	ldw	r8,36(sp)
        ldw   r9,  40(sp)
  c8:	da400a17 	ldw	r9,40(sp)
        ldw   r10, 44(sp)
  cc:	da800b17 	ldw	r10,44(sp)
        ldw   r11, 48(sp)
  d0:	dac00c17 	ldw	r11,48(sp)
        ldw   r12, 52(sp)
  d4:	db000d17 	ldw	r12,52(sp)
        ldw   r13, 56(sp)
  d8:	db400e17 	ldw	r13,56(sp)
        ldw   r14, 60(sp)
  dc:	db800f17 	ldw	r14,60(sp)
        ldw   r15, 64(sp)
  e0:	dbc01017 	ldw	r15,64(sp)
#endif

        ldw   sp,  76(sp)

#else
        addi  sp, sp, 76
  e4:	dec01304 	addi	sp,sp,76

        /*
         * Return to the interrupted instruction.
         */

        eret
  e8:	ef80083a 	eret

000000ec <alt_irq_handler>:
 * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined.
 */

void alt_irq_handler (void) __attribute__ ((section (".exceptions")));
void alt_irq_handler (void)
{
  ec:	defff904 	addi	sp,sp,-28
  f0:	dfc00615 	stw	ra,24(sp)
  f4:	df000515 	stw	fp,20(sp)
  f8:	df000504 	addi	fp,sp,20
#ifndef NIOS2_EIC_PRESENT
static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void)
{
  alt_u32 active;

  NIOS2_READ_IPENDING (active);
  fc:	0005313a 	rdctl	r2,ipending
 100:	e0bffc15 	stw	r2,-16(fp)

  return active;
 104:	e0bffc17 	ldw	r2,-16(fp)
   * Consider the case where the high priority interupt is asserted during
   * the interrupt entry sequence for a lower priority interrupt to see why
   * this is the case.
   */

  active = alt_irq_pending ();
 108:	e0bfff15 	stw	r2,-4(fp)

  do
  {
    i = 0;
 10c:	e03ffd15 	stw	zero,-12(fp)
    mask = 1;
 110:	00800044 	movi	r2,1
 114:	e0bffe15 	stw	r2,-8(fp)
     * called to clear the interrupt condition.
     */

    do
    {
      if (active & mask)
 118:	e0ffff17 	ldw	r3,-4(fp)
 11c:	e0bffe17 	ldw	r2,-8(fp)
 120:	1884703a 	and	r2,r3,r2
 124:	1005003a 	cmpeq	r2,r2,zero
 128:	1000161e 	bne	r2,zero,184 <alt_irq_handler+0x98>
      { 
#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT
        alt_irq[i].handler(alt_irq[i].context); 
 12c:	e0bffd17 	ldw	r2,-12(fp)
 130:	00c00074 	movhi	r3,1
 134:	18d0d104 	addi	r3,r3,17220
 138:	100490fa 	slli	r2,r2,3
 13c:	10c5883a 	add	r2,r2,r3
 140:	11400017 	ldw	r5,0(r2)
 144:	e0bffd17 	ldw	r2,-12(fp)
 148:	00c00074 	movhi	r3,1
 14c:	18d0d104 	addi	r3,r3,17220
 150:	100490fa 	slli	r2,r2,3
 154:	10c5883a 	add	r2,r2,r3
 158:	10800104 	addi	r2,r2,4
 15c:	11000017 	ldw	r4,0(r2)
 160:	283ee83a 	callr	r5
#ifndef NIOS2_EIC_PRESENT
static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void)
{
  alt_u32 active;

  NIOS2_READ_IPENDING (active);
 164:	0005313a 	rdctl	r2,ipending
 168:	e0bffb15 	stw	r2,-20(fp)

  return active;
 16c:	e0bffb17 	ldw	r2,-20(fp)
      mask <<= 1;
      i++;

    } while (1);

    active = alt_irq_pending ();
 170:	e0bfff15 	stw	r2,-4(fp)
    
  } while (active);
 174:	e0bfff17 	ldw	r2,-4(fp)
 178:	1004c03a 	cmpne	r2,r2,zero
 17c:	103fe31e 	bne	r2,zero,10c <alt_irq_handler+0x20>
 180:	00000706 	br	1a0 <alt_irq_handler+0xb4>
#else
        alt_irq[i].handler(alt_irq[i].context, i); 
#endif
        break;
      }
      mask <<= 1;
 184:	e0bffe17 	ldw	r2,-8(fp)
 188:	1085883a 	add	r2,r2,r2
 18c:	e0bffe15 	stw	r2,-8(fp)
      i++;
 190:	e0bffd17 	ldw	r2,-12(fp)
 194:	10800044 	addi	r2,r2,1
 198:	e0bffd15 	stw	r2,-12(fp)

    } while (1);
 19c:	003fde06 	br	118 <alt_irq_handler+0x2c>
  /*
   * Notify the operating system that interrupt processing is complete.
   */ 

  ALT_OS_INT_EXIT();
}
 1a0:	e037883a 	mov	sp,fp
 1a4:	dfc00117 	ldw	ra,4(sp)
 1a8:	df000017 	ldw	fp,0(sp)
 1ac:	dec00204 	addi	sp,sp,8
 1b0:	f800283a 	ret

Disassembly of section .text:

000001b4 <_start>:
#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0)    
    /*
     * Now that the caches are initialized, set up the stack pointer.
     * The value provided by the linker is assumed to be correctly aligned.
     */
    movhi sp, %hi(__alt_stack_pointer)
     1b4:	06c000f4 	movhi	sp,3
    ori sp, sp, %lo(__alt_stack_pointer)
     1b8:	dec80014 	ori	sp,sp,8192

    /* Set up the global pointer. */
    movhi gp, %hi(_gp)
     1bc:	06800074 	movhi	gp,1
    ori gp, gp, %lo(_gp)
     1c0:	d6a87c14 	ori	gp,gp,41456
 */
#ifndef ALT_SIM_OPTIMIZE
    /* Log that the BSS is about to be cleared. */
    ALT_LOG_PUTS(alt_log_msg_bss)

    movhi r2, %hi(__bss_start)
     1c4:	00800074 	movhi	r2,1
    ori r2, r2, %lo(__bss_start)
     1c8:	108f7114 	ori	r2,r2,15812

    movhi r3, %hi(__bss_end)
     1cc:	00c00074 	movhi	r3,1
    ori r3, r3, %lo(__bss_end)
     1d0:	18d17514 	ori	r3,r3,17876

    beq r2, r3, 1f
     1d4:	10c00326 	beq	r2,r3,1e4 <_start+0x30>

0:
    stw zero, (r2)
     1d8:	10000015 	stw	zero,0(r2)
    addi r2, r2, 4
     1dc:	10800104 	addi	r2,r2,4
    bltu r2, r3, 0b
     1e0:	10fffd36 	bltu	r2,r3,1d8 <_start+0x24>
     * section aren't defined until alt_load() has been called).
     */
    mov   et, zero
#endif

    call alt_load
     1e4:	000c8d40 	call	c8d4 <alt_load>

    /* Log that alt_main is about to be called. */
    ALT_LOG_PUTS(alt_log_msg_alt_main)

    /* Call the C entry point. It should never return. */
    call alt_main
     1e8:	000cb140 	call	cb14 <alt_main>

000001ec <alt_after_alt_main>:

    /* Wait in infinite loop in case alt_main does return. */
alt_after_alt_main:
    br alt_after_alt_main
     1ec:	003fff06 	br	1ec <alt_after_alt_main>

000001f0 <LCD_Init>:
#include <io.h>
#include "system.h"
#include "LCD.h"
//-------------------------------------------------------------------------
void LCD_Init()
{
     1f0:	defffe04 	addi	sp,sp,-8
     1f4:	dfc00115 	stw	ra,4(sp)
     1f8:	df000015 	stw	fp,0(sp)
     1fc:	d839883a 	mov	fp,sp
  lcd_write_cmd(LCD_16207_0_BASE,0x38);
     200:	00c00134 	movhi	r3,4
     204:	18c40c04 	addi	r3,r3,4144
     208:	00800e04 	movi	r2,56
     20c:	18800035 	stwio	r2,0(r3)
  usleep(2000);
     210:	0101f404 	movi	r4,2000
     214:	000ce780 	call	ce78 <usleep>
  lcd_write_cmd(LCD_16207_0_BASE,0x0C);
     218:	00c00134 	movhi	r3,4
     21c:	18c40c04 	addi	r3,r3,4144
     220:	00800304 	movi	r2,12
     224:	18800035 	stwio	r2,0(r3)
  usleep(2000);
     228:	0101f404 	movi	r4,2000
     22c:	000ce780 	call	ce78 <usleep>
  lcd_write_cmd(LCD_16207_0_BASE,0x01);
     230:	00c00134 	movhi	r3,4
     234:	18c40c04 	addi	r3,r3,4144
     238:	00800044 	movi	r2,1
     23c:	18800035 	stwio	r2,0(r3)
  usleep(2000);
     240:	0101f404 	movi	r4,2000
     244:	000ce780 	call	ce78 <usleep>
  lcd_write_cmd(LCD_16207_0_BASE,0x06);
     248:	00c00134 	movhi	r3,4
     24c:	18c40c04 	addi	r3,r3,4144
     250:	00800184 	movi	r2,6
     254:	18800035 	stwio	r2,0(r3)
  usleep(2000);
     258:	0101f404 	movi	r4,2000
     25c:	000ce780 	call	ce78 <usleep>
  lcd_write_cmd(LCD_16207_0_BASE,0x80);
     260:	00c00134 	movhi	r3,4
     264:	18c40c04 	addi	r3,r3,4144
     268:	00802004 	movi	r2,128
     26c:	18800035 	stwio	r2,0(r3)
  usleep(2000);
     270:	0101f404 	movi	r4,2000
     274:	000ce780 	call	ce78 <usleep>
}
     278:	e037883a 	mov	sp,fp
     27c:	dfc00117 	ldw	ra,4(sp)
     280:	df000017 	ldw	fp,0(sp)
     284:	dec00204 	addi	sp,sp,8
     288:	f800283a 	ret

0000028c <LCD_Show_Text>:
//-------------------------------------------------------------------------
void LCD_Show_Text(const char* Text)
{
     28c:	defffb04 	addi	sp,sp,-20
     290:	dfc00415 	stw	ra,16(sp)
     294:	df000315 	stw	fp,12(sp)
     298:	dc000215 	stw	r16,8(sp)
     29c:	df000204 	addi	fp,sp,8
     2a0:	e13fff15 	stw	r4,-4(fp)
  int i;
  for(i=0;i<strlen(Text);i++)
     2a4:	e03ffe15 	stw	zero,-8(fp)
     2a8:	00001006 	br	2ec <LCD_Show_Text+0x60>
  {
    lcd_write_data(LCD_16207_0_BASE,Text[i]);
     2ac:	e0bffe17 	ldw	r2,-8(fp)
     2b0:	1007883a 	mov	r3,r2
     2b4:	e0bfff17 	ldw	r2,-4(fp)
     2b8:	1885883a 	add	r2,r3,r2
     2bc:	10800003 	ldbu	r2,0(r2)
     2c0:	10c03fcc 	andi	r3,r2,255
     2c4:	18c0201c 	xori	r3,r3,128
     2c8:	18ffe004 	addi	r3,r3,-128
     2cc:	00800134 	movhi	r2,4
     2d0:	10840e04 	addi	r2,r2,4152
     2d4:	10c00035 	stwio	r3,0(r2)
    usleep(2000);
     2d8:	0101f404 	movi	r4,2000
     2dc:	000ce780 	call	ce78 <usleep>
}
//-------------------------------------------------------------------------
void LCD_Show_Text(const char* Text)
{
  int i;
  for(i=0;i<strlen(Text);i++)
     2e0:	e0bffe17 	ldw	r2,-8(fp)
     2e4:	10800044 	addi	r2,r2,1
     2e8:	e0bffe15 	stw	r2,-8(fp)
     2ec:	e43ffe17 	ldw	r16,-8(fp)
     2f0:	e13fff17 	ldw	r4,-4(fp)
     2f4:	0002d300 	call	2d30 <strlen>
     2f8:	80bfec36 	bltu	r16,r2,2ac <LCD_Show_Text+0x20>
  {
    lcd_write_data(LCD_16207_0_BASE,Text[i]);
    usleep(2000);
  }
}
     2fc:	e037883a 	mov	sp,fp
     300:	dfc00217 	ldw	ra,8(sp)
     304:	df000117 	ldw	fp,4(sp)
     308:	dc000017 	ldw	r16,0(sp)
     30c:	dec00304 	addi	sp,sp,12
     310:	f800283a 	ret

00000314 <LCD_Line2>:
//-------------------------------------------------------------------------
void LCD_Line2()
{
     314:	defffe04 	addi	sp,sp,-8
     318:	dfc00115 	stw	ra,4(sp)
     31c:	df000015 	stw	fp,0(sp)
     320:	d839883a 	mov	fp,sp
  lcd_write_cmd(LCD_16207_0_BASE,0xC0);
     324:	00c00134 	movhi	r3,4
     328:	18c40c04 	addi	r3,r3,4144
     32c:	00803004 	movi	r2,192
     330:	18800035 	stwio	r2,0(r3)
  usleep(2000);
     334:	0101f404 	movi	r4,2000
     338:	000ce780 	call	ce78 <usleep>
}
     33c:	e037883a 	mov	sp,fp
     340:	dfc00117 	ldw	ra,4(sp)
     344:	df000017 	ldw	fp,0(sp)
     348:	dec00204 	addi	sp,sp,8
     34c:	f800283a 	ret

00000350 <LCD_Test>:
//-------------------------------------------------------------------------
void LCD_Test()
{
     350:	defff604 	addi	sp,sp,-40
     354:	dfc00915 	stw	ra,36(sp)
     358:	df000815 	stw	fp,32(sp)
     35c:	df000804 	addi	fp,sp,32
  char Text1[16] = "<NIOS II on UP4>";
     360:	00c00074 	movhi	r3,1
     364:	18ffe404 	addi	r3,r3,-112
     368:	18800017 	ldw	r2,0(r3)
     36c:	e0bff815 	stw	r2,-32(fp)
     370:	18800117 	ldw	r2,4(r3)
     374:	e0bff915 	stw	r2,-28(fp)
     378:	18800217 	ldw	r2,8(r3)
     37c:	e0bffa15 	stw	r2,-24(fp)
     380:	18800317 	ldw	r2,12(r3)
     384:	e0bffb15 	stw	r2,-20(fp)
  char Text2[16] = "Nice to See You!";
     388:	00c00074 	movhi	r3,1
     38c:	18ffe904 	addi	r3,r3,-92
     390:	18800017 	ldw	r2,0(r3)
     394:	e0bffc15 	stw	r2,-16(fp)
     398:	18800117 	ldw	r2,4(r3)
     39c:	e0bffd15 	stw	r2,-12(fp)
     3a0:	18800217 	ldw	r2,8(r3)
     3a4:	e0bffe15 	stw	r2,-8(fp)
     3a8:	18800317 	ldw	r2,12(r3)
     3ac:	e0bfff15 	stw	r2,-4(fp)
  //  Initial LCD
  LCD_Init();
     3b0:	00001f00 	call	1f0 <LCD_Init>
  //  Show Text to LCD
  LCD_Show_Text(Text1);
     3b4:	e13ff804 	addi	r4,fp,-32
     3b8:	000028c0 	call	28c <LCD_Show_Text>
  //  Change Line2
  LCD_Line2();
     3bc:	00003140 	call	314 <LCD_Line2>
  //  Show Text to LCD
  LCD_Show_Text(Text2);
     3c0:	e13ffc04 	addi	r4,fp,-16
     3c4:	000028c0 	call	28c <LCD_Show_Text>
}
     3c8:	e037883a 	mov	sp,fp
     3cc:	dfc00117 	ldw	ra,4(sp)
     3d0:	df000017 	ldw	fp,0(sp)
     3d4:	dec00204 	addi	sp,sp,8
     3d8:	f800283a 	ret

000003dc <init>:
#include "sys_debug.h"
#include "sys_prog.h"

#define ledrs (volatile int *) LEDRS_BASE

static void init() {
     3dc:	defffe04 	addi	sp,sp,-8
     3e0:	dfc00115 	stw	ra,4(sp)
     3e4:	df000015 	stw	fp,0(sp)
     3e8:	d839883a 	mov	fp,sp
	// lcd
	lcd_init();
     3ec:	0001eec0 	call	1eec <lcd_init>
	lcd_print("Starting now...");
     3f0:	01000074 	movhi	r4,1
     3f4:	213fee04 	addi	r4,r4,-72
     3f8:	0001f840 	call	1f84 <lcd_print>

	registers_init();
     3fc:	0002a880 	call	2a88 <registers_init>
	memory_init();
     400:	000257c0 	call	257c <memory_init>
	// hex
	clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7);
     404:	0009883a 	mov	r4,zero
     408:	00013480 	call	1348 <clear_block>
     40c:	01000044 	movi	r4,1
     410:	00013480 	call	1348 <clear_block>
     414:	01000084 	movi	r4,2
     418:	00013480 	call	1348 <clear_block>
	print_block("he", 2, HEX6_7);
     41c:	01000074 	movhi	r4,1
     420:	213ff204 	addi	r4,r4,-56
     424:	01400084 	movi	r5,2
     428:	01800084 	movi	r6,2
     42c:	00011b80 	call	11b8 <print_block>
	print_block("lo", 2, HEX4_5);
     430:	01000074 	movhi	r4,1
     434:	213ff304 	addi	r4,r4,-52
     438:	01400084 	movi	r5,2
     43c:	01800044 	movi	r6,1
     440:	00011b80 	call	11b8 <print_block>
	print_block("you1", 4, HEX0_3);
     444:	01000074 	movhi	r4,1
     448:	213ff404 	addi	r4,r4,-48
     44c:	01400104 	movi	r5,4
     450:	000d883a 	mov	r6,zero
     454:	00011b80 	call	11b8 <print_block>
	delay10ms(200);
     458:	01003204 	movi	r4,200
     45c:	00025000 	call	2500 <delay10ms>
	clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7);
     460:	0009883a 	mov	r4,zero
     464:	00013480 	call	1348 <clear_block>
     468:	01000044 	movi	r4,1
     46c:	00013480 	call	1348 <clear_block>
     470:	01000084 	movi	r4,2
     474:	00013480 	call	1348 <clear_block>

	lcd_caret_reset2();
     478:	0001f5c0 	call	1f5c <lcd_caret_reset2>
	lcd_print("Ok!");
     47c:	01000074 	movhi	r4,1
     480:	213ff604 	addi	r4,r4,-40
     484:	0001f840 	call	1f84 <lcd_print>
}
     488:	e037883a 	mov	sp,fp
     48c:	dfc00117 	ldw	ra,4(sp)
     490:	df000017 	ldw	fp,0(sp)
     494:	dec00204 	addi	sp,sp,8
     498:	f800283a 	ret

0000049c <store_value>:

char stack[5];

void store_value(){
     49c:	defffb04 	addi	sp,sp,-20
     4a0:	dfc00415 	stw	ra,16(sp)
     4a4:	df000315 	stw	fp,12(sp)
     4a8:	df000304 	addi	fp,sp,12
	unsigned int memi = global_registers[Ssw_memi];
     4ac:	00800074 	movhi	r2,1
     4b0:	1090cd04 	addi	r2,r2,17204
     4b4:	10800283 	ldbu	r2,10(r2)
     4b8:	10803fcc 	andi	r2,r2,255
     4bc:	1080201c 	xori	r2,r2,128
     4c0:	10bfe004 	addi	r2,r2,-128
     4c4:	e0bffd15 	stw	r2,-12(fp)
	memory_store(memi, Ssw_data);
     4c8:	e13ffd17 	ldw	r4,-12(fp)
     4cc:	014001c4 	movi	r5,7
     4d0:	00026900 	call	2690 <memory_store>

	{	// デバック表示
		char buf[5];
		sprintf(buf, "%02x", (unsigned char)memi);
     4d4:	e0bffd17 	ldw	r2,-12(fp)
     4d8:	11803fcc 	andi	r6,r2,255
     4dc:	e13ffe04 	addi	r4,fp,-8
     4e0:	01400074 	movhi	r5,1
     4e4:	297ff704 	addi	r5,r5,-36
     4e8:	0002c5c0 	call	2c5c <sprintf>
		print_block(buf, 2, HEX6_7);
     4ec:	e13ffe04 	addi	r4,fp,-8
     4f0:	01400084 	movi	r5,2
     4f4:	01800084 	movi	r6,2
     4f8:	00011b80 	call	11b8 <print_block>
		print_block("--", 2, HEX4_5);
     4fc:	01000074 	movhi	r4,1
     500:	213ff904 	addi	r4,r4,-28
     504:	01400084 	movi	r5,2
     508:	01800044 	movi	r6,1
     50c:	00011b80 	call	11b8 <print_block>
		sprintf(buf, "%04d", global_registers[Ssw_data]);
     510:	00800074 	movhi	r2,1
     514:	1090cd04 	addi	r2,r2,17204
     518:	108001c3 	ldbu	r2,7(r2)
     51c:	11803fcc 	andi	r6,r2,255
     520:	3180201c 	xori	r6,r6,128
     524:	31bfe004 	addi	r6,r6,-128
     528:	e13ffe04 	addi	r4,fp,-8
     52c:	01400074 	movhi	r5,1
     530:	297ffa04 	addi	r5,r5,-24
     534:	0002c5c0 	call	2c5c <sprintf>
		print_block(buf, 4, HEX0_3);
     538:	e13ffe04 	addi	r4,fp,-8
     53c:	01400104 	movi	r5,4
     540:	000d883a 	mov	r6,zero
     544:	00011b80 	call	11b8 <print_block>

		display_mem((unsigned char)memi, global_registers[Ssw_data]);
     548:	e0bffd17 	ldw	r2,-12(fp)
     54c:	11003fcc 	andi	r4,r2,255
     550:	00800074 	movhi	r2,1
     554:	1090cd04 	addi	r2,r2,17204
     558:	108001c3 	ldbu	r2,7(r2)
     55c:	11403fcc 	andi	r5,r2,255
     560:	2940201c 	xori	r5,r5,128
     564:	297fe004 	addi	r5,r5,-128
     568:	00020600 	call	2060 <display_mem>
	}
}
     56c:	e037883a 	mov	sp,fp
     570:	dfc00117 	ldw	ra,4(sp)
     574:	df000017 	ldw	fp,0(sp)
     578:	dec00204 	addi	sp,sp,8
     57c:	f800283a 	ret

00000580 <store_inst>:
void store_inst(){
     580:	defff904 	addi	sp,sp,-28
     584:	dfc00615 	stw	ra,24(sp)
     588:	df000515 	stw	fp,20(sp)
     58c:	df000504 	addi	fp,sp,20
	char reg_index;
	unsigned int stored_pc;
	struct InstRec inst_rec;

	// 必要な情報の取得
	inst = global_registers[Ssw_inst];
     590:	00800074 	movhi	r2,1
     594:	1090cd04 	addi	r2,r2,17204
     598:	10800203 	ldbu	r2,8(r2)
     59c:	e0bffc85 	stb	r2,-14(fp)
	mem_index = global_registers[Ssw_memi];
     5a0:	00800074 	movhi	r2,1
     5a4:	1090cd04 	addi	r2,r2,17204
     5a8:	10800283 	ldbu	r2,10(r2)
     5ac:	e0bffc45 	stb	r2,-15(fp)
	reg_index = global_registers[Ssw_regi];
     5b0:	00800074 	movhi	r2,1
     5b4:	1090cd04 	addi	r2,r2,17204
     5b8:	10800243 	ldbu	r2,9(r2)
     5bc:	e0bffc05 	stb	r2,-16(fp)
	inst_rec.inst = (unsigned int)inst;
     5c0:	e0bffc83 	ldbu	r2,-14(fp)
     5c4:	108003cc 	andi	r2,r2,15
     5c8:	10803fcc 	andi	r2,r2,255
     5cc:	110003cc 	andi	r4,r2,15
     5d0:	e0fffd17 	ldw	r3,-12(fp)
     5d4:	00bffc04 	movi	r2,-16
     5d8:	1884703a 	and	r2,r3,r2
     5dc:	1104b03a 	or	r2,r2,r4
     5e0:	e0bffd15 	stw	r2,-12(fp)
	inst_rec.memi = (unsigned int)mem_index;
     5e4:	e0bffc43 	ldbu	r2,-15(fp)
     5e8:	108003cc 	andi	r2,r2,15
     5ec:	10803fcc 	andi	r2,r2,255
     5f0:	108003cc 	andi	r2,r2,15
     5f4:	1008913a 	slli	r4,r2,4
     5f8:	e0fffd17 	ldw	r3,-12(fp)
     5fc:	00bfc3c4 	movi	r2,-241
     600:	1884703a 	and	r2,r3,r2
     604:	1104b03a 	or	r2,r2,r4
     608:	e0bffd15 	stw	r2,-12(fp)
	inst_rec.regi = (unsigned int)reg_index;
     60c:	e0bffc03 	ldbu	r2,-16(fp)
     610:	108003cc 	andi	r2,r2,15
     614:	10803fcc 	andi	r2,r2,255
     618:	108003cc 	andi	r2,r2,15
     61c:	1008923a 	slli	r4,r2,8
     620:	e0fffd17 	ldw	r3,-12(fp)
     624:	00bc3fc4 	movi	r2,-3841
     628:	1884703a 	and	r2,r3,r2
     62c:	1104b03a 	or	r2,r2,r4
     630:	e0bffd15 	stw	r2,-12(fp)

	// ストア処理
	stored_pc = get_pc();
     634:	00028c80 	call	28c8 <get_pc>
     638:	e0bffb15 	stw	r2,-20(fp)
	inst_memory_store(get_pc(), inst_rec);
     63c:	00028c80 	call	28c8 <get_pc>
     640:	1009883a 	mov	r4,r2
     644:	e17ffd17 	ldw	r5,-12(fp)
     648:	00025f80 	call	25f8 <inst_memory_store>
	inc_pc();
     64c:	00027bc0 	call	27bc <inc_pc>
	{	// デバック表示
		char buf[5];
		sprintf(buf, "%04d", inst_rec.inst);
     650:	e0bffd17 	ldw	r2,-12(fp)
     654:	108003cc 	andi	r2,r2,15
     658:	11803fcc 	andi	r6,r2,255
     65c:	e13ffe04 	addi	r4,fp,-8
     660:	01400074 	movhi	r5,1
     664:	297ffa04 	addi	r5,r5,-24
     668:	0002c5c0 	call	2c5c <sprintf>
		print_block(buf, 4, HEX0_3);
     66c:	e13ffe04 	addi	r4,fp,-8
     670:	01400104 	movi	r5,4
     674:	000d883a 	mov	r6,zero
     678:	00011b80 	call	11b8 <print_block>
		sprintf(buf, "%02x", get_pc());
     67c:	00028c80 	call	28c8 <get_pc>
     680:	100d883a 	mov	r6,r2
     684:	e13ffe04 	addi	r4,fp,-8
     688:	01400074 	movhi	r5,1
     68c:	297ff704 	addi	r5,r5,-36
     690:	0002c5c0 	call	2c5c <sprintf>
		print_block(buf, 2, HEX4_5);
     694:	e13ffe04 	addi	r4,fp,-8
     698:	01400084 	movi	r5,2
     69c:	01800044 	movi	r6,1
     6a0:	00011b80 	call	11b8 <print_block>

		display_inst(inst_rec, stored_pc);
     6a4:	e13ffd17 	ldw	r4,-12(fp)
     6a8:	e17ffb17 	ldw	r5,-20(fp)
     6ac:	0001fb40 	call	1fb4 <display_inst>
	}
}
     6b0:	e037883a 	mov	sp,fp
     6b4:	dfc00117 	ldw	ra,4(sp)
     6b8:	df000017 	ldw	fp,0(sp)
     6bc:	dec00204 	addi	sp,sp,8
     6c0:	f800283a 	ret

000006c4 <print_change_memory>:

void print_change_memory(unsigned int current_memory) {
     6c4:	defff804 	addi	sp,sp,-32
     6c8:	dfc00715 	stw	ra,28(sp)
     6cc:	df000615 	stw	fp,24(sp)
     6d0:	df000604 	addi	fp,sp,24
     6d4:	e13fff15 	stw	r4,-4(fp)
	char buf[17];
	sprintf(buf, "Current page:%2d", current_memory);
     6d8:	e13ffa04 	addi	r4,fp,-24
     6dc:	01400074 	movhi	r5,1
     6e0:	297ffc04 	addi	r5,r5,-16
     6e4:	e1bfff17 	ldw	r6,-4(fp)
     6e8:	0002c5c0 	call	2c5c <sprintf>
	lcd_caret_reset();
     6ec:	0001f340 	call	1f34 <lcd_caret_reset>
	lcd_print("Change program");
     6f0:	01000074 	movhi	r4,1
     6f4:	21000104 	addi	r4,r4,4
     6f8:	0001f840 	call	1f84 <lcd_print>
	lcd_caret_reset2();
     6fc:	0001f5c0 	call	1f5c <lcd_caret_reset2>
	lcd_print(buf);
     700:	e13ffa04 	addi	r4,fp,-24
     704:	0001f840 	call	1f84 <lcd_print>
	clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7);
     708:	0009883a 	mov	r4,zero
     70c:	00013480 	call	1348 <clear_block>
     710:	01000044 	movi	r4,1
     714:	00013480 	call	1348 <clear_block>
     718:	01000084 	movi	r4,2
     71c:	00013480 	call	1348 <clear_block>
}
     720:	e037883a 	mov	sp,fp
     724:	dfc00117 	ldw	ra,4(sp)
     728:	df000017 	ldw	fp,0(sp)
     72c:	dec00204 	addi	sp,sp,8
     730:	f800283a 	ret

00000734 <reset_mem_cancel>:

static void reset_mem_cancel() {
     734:	defffe04 	addi	sp,sp,-8
     738:	dfc00115 	stw	ra,4(sp)
     73c:	df000015 	stw	fp,0(sp)
     740:	d839883a 	mov	fp,sp
	lcd_caret_reset();
     744:	0001f340 	call	1f34 <lcd_caret_reset>
	lcd_print("rewrite all 0?");
     748:	01000074 	movhi	r4,1
     74c:	21000504 	addi	r4,r4,20
     750:	0001f840 	call	1f84 <lcd_print>
	lcd_caret_reset2();
     754:	0001f5c0 	call	1f5c <lcd_caret_reset2>
	lcd_print("push again -> NG");
     758:	01000074 	movhi	r4,1
     75c:	21000904 	addi	r4,r4,36
     760:	0001f840 	call	1f84 <lcd_print>
}
     764:	e037883a 	mov	sp,fp
     768:	dfc00117 	ldw	ra,4(sp)
     76c:	df000017 	ldw	fp,0(sp)
     770:	dec00204 	addi	sp,sp,8
     774:	f800283a 	ret

00000778 <reset_mem>:
static char reset_mem(char confirmed) {
     778:	defffb04 	addi	sp,sp,-20
     77c:	dfc00415 	stw	ra,16(sp)
     780:	df000315 	stw	fp,12(sp)
     784:	df000304 	addi	fp,sp,12
     788:	e13ffe05 	stb	r4,-8(fp)
	if (confirmed == 0) {
     78c:	e0bffe07 	ldb	r2,-8(fp)
     790:	1004c03a 	cmpne	r2,r2,zero
     794:	10000b1e 	bne	r2,zero,7c4 <reset_mem+0x4c>
			lcd_caret_reset();
     798:	0001f340 	call	1f34 <lcd_caret_reset>
			lcd_print("rewrite all 0?");
     79c:	01000074 	movhi	r4,1
     7a0:	21000504 	addi	r4,r4,20
     7a4:	0001f840 	call	1f84 <lcd_print>
			lcd_caret_reset2();
     7a8:	0001f5c0 	call	1f5c <lcd_caret_reset2>
			lcd_print("push again");
     7ac:	01000074 	movhi	r4,1
     7b0:	21000e04 	addi	r4,r4,56
     7b4:	0001f840 	call	1f84 <lcd_print>
			// 確認要請
			return 1;
     7b8:	00800044 	movi	r2,1
     7bc:	e0bfff15 	stw	r2,-4(fp)
     7c0:	00001406 	br	814 <reset_mem+0x9c>
		} else {
			int i;
			for (i = 0; i < MEM_SIZE; i++){
     7c4:	e03ffd15 	stw	zero,-12(fp)
     7c8:	00000606 	br	7e4 <reset_mem+0x6c>
				memory_store(i,Szero);
     7cc:	e13ffd17 	ldw	r4,-12(fp)
     7d0:	000b883a 	mov	r5,zero
     7d4:	00026900 	call	2690 <memory_store>
			lcd_print("push again");
			// 確認要請
			return 1;
		} else {
			int i;
			for (i = 0; i < MEM_SIZE; i++){
     7d8:	e0bffd17 	ldw	r2,-12(fp)
     7dc:	10800044 	addi	r2,r2,1
     7e0:	e0bffd15 	stw	r2,-12(fp)
     7e4:	e0bffd17 	ldw	r2,-12(fp)
     7e8:	10800410 	cmplti	r2,r2,16
     7ec:	103ff71e 	bne	r2,zero,7cc <reset_mem+0x54>
				memory_store(i,Szero);
			}
			lcd_caret_reset();
     7f0:	0001f340 	call	1f34 <lcd_caret_reset>
			lcd_print("rewrite all 0?");
     7f4:	01000074 	movhi	r4,1
     7f8:	21000504 	addi	r4,r4,20
     7fc:	0001f840 	call	1f84 <lcd_print>
			lcd_caret_reset2();
     800:	0001f5c0 	call	1f5c <lcd_caret_reset2>
			lcd_print("push again -> OK");
     804:	01000074 	movhi	r4,1
     808:	21001104 	addi	r4,r4,68
     80c:	0001f840 	call	1f84 <lcd_print>

			// PCリセット完了
			return 0;
     810:	e03fff15 	stw	zero,-4(fp)
     814:	e0bfff17 	ldw	r2,-4(fp)
	}
}
     818:	e037883a 	mov	sp,fp
     81c:	dfc00117 	ldw	ra,4(sp)
     820:	df000017 	ldw	fp,0(sp)
     824:	dec00204 	addi	sp,sp,8
     828:	f800283a 	ret

0000082c <reset_pc_cancel>:
static void reset_pc_cancel() {
     82c:	defffe04 	addi	sp,sp,-8
     830:	dfc00115 	stw	ra,4(sp)
     834:	df000015 	stw	fp,0(sp)
     838:	d839883a 	mov	fp,sp
	lcd_caret_reset();
     83c:	0001f340 	call	1f34 <lcd_caret_reset>
	lcd_print("reset pc?");
     840:	01000074 	movhi	r4,1
     844:	21001604 	addi	r4,r4,88
     848:	0001f840 	call	1f84 <lcd_print>
	lcd_caret_reset2();
     84c:	0001f5c0 	call	1f5c <lcd_caret_reset2>
	lcd_print("push again -> NG");
     850:	01000074 	movhi	r4,1
     854:	21000904 	addi	r4,r4,36
     858:	0001f840 	call	1f84 <lcd_print>
}
     85c:	e037883a 	mov	sp,fp
     860:	dfc00117 	ldw	ra,4(sp)
     864:	df000017 	ldw	fp,0(sp)
     868:	dec00204 	addi	sp,sp,8
     86c:	f800283a 	ret

00000870 <reset_pc>:
static char reset_pc(char confirmed) {
     870:	defffc04 	addi	sp,sp,-16
     874:	dfc00315 	stw	ra,12(sp)
     878:	df000215 	stw	fp,8(sp)
     87c:	df000204 	addi	fp,sp,8
     880:	e13ffe05 	stb	r4,-8(fp)
	if (confirmed == 0) {
     884:	e0bffe07 	ldb	r2,-8(fp)
     888:	1004c03a 	cmpne	r2,r2,zero
     88c:	10000b1e 	bne	r2,zero,8bc <reset_pc+0x4c>
		lcd_caret_reset();
     890:	0001f340 	call	1f34 <lcd_caret_reset>
		lcd_print("reset pc?");
     894:	01000074 	movhi	r4,1
     898:	21001604 	addi	r4,r4,88
     89c:	0001f840 	call	1f84 <lcd_print>
		lcd_caret_reset2();
     8a0:	0001f5c0 	call	1f5c <lcd_caret_reset2>
		lcd_print("push again");
     8a4:	01000074 	movhi	r4,1
     8a8:	21000e04 	addi	r4,r4,56
     8ac:	0001f840 	call	1f84 <lcd_print>
		// 確認要請
		return 1;
     8b0:	00800044 	movi	r2,1
     8b4:	e0bfff15 	stw	r2,-4(fp)
     8b8:	00000b06 	br	8e8 <reset_pc+0x78>
	} else {
		set_pc(0);
     8bc:	0009883a 	mov	r4,zero
     8c0:	00028900 	call	2890 <set_pc>

		lcd_caret_reset();
     8c4:	0001f340 	call	1f34 <lcd_caret_reset>
		lcd_print("reset pc?");
     8c8:	01000074 	movhi	r4,1
     8cc:	21001604 	addi	r4,r4,88
     8d0:	0001f840 	call	1f84 <lcd_print>
		lcd_caret_reset2();
     8d4:	0001f5c0 	call	1f5c <lcd_caret_reset2>
		lcd_print("push again -> OK");
     8d8:	01000074 	movhi	r4,1
     8dc:	21001104 	addi	r4,r4,68
     8e0:	0001f840 	call	1f84 <lcd_print>

		// PCリセット完了
		return 0;
     8e4:	e03fff15 	stw	zero,-4(fp)
     8e8:	e0bfff17 	ldw	r2,-4(fp)
	}
}
     8ec:	e037883a 	mov	sp,fp
     8f0:	dfc00117 	ldw	ra,4(sp)
     8f4:	df000017 	ldw	fp,0(sp)
     8f8:	dec00204 	addi	sp,sp,8
     8fc:	f800283a 	ret

00000900 <main>:


int main()
{
     900:	defffc04 	addi	sp,sp,-16
     904:	dfc00315 	stw	ra,12(sp)
     908:	df000215 	stw	fp,8(sp)
     90c:	df000204 	addi	fp,sp,8
	init();
     910:	00003dc0 	call	3dc <init>

	enum RunMode fRun = RUN_STOP;
     914:	e03fff15 	stw	zero,-4(fp)
	char reset_pc_confirmed = 0;
     918:	e03ffec5 	stb	zero,-5(fp)
	char reset_mem_confirmed = 0;
     91c:	e03ffe85 	stb	zero,-6(fp)
     920:	00000006 	br	924 <main+0x24>

	while(1) {
		// interrupt
		in_int();
     924:	00014d00 	call	14d0 <in_int>

		// event
		// CANCEL
		if (global_registers[Ssw_rw] == 0
     928:	00800074 	movhi	r2,1
     92c:	1090cd04 	addi	r2,r2,17204
     930:	10800303 	ldbu	r2,12(r2)
     934:	10803fcc 	andi	r2,r2,255
     938:	1080201c 	xori	r2,r2,128
     93c:	10bfe004 	addi	r2,r2,-128
     940:	1005003a 	cmpeq	r2,r2,zero
     944:	10000e1e 	bne	r2,zero,980 <main+0x80>
     948:	00800074 	movhi	r2,1
     94c:	10887c04 	addi	r2,r2,8688
     950:	10800003 	ldbu	r2,0(r2)
     954:	10803fcc 	andi	r2,r2,255
     958:	1080008c 	andi	r2,r2,2
     95c:	1005003a 	cmpeq	r2,r2,zero
     960:	10000c1e 	bne	r2,zero,994 <main+0x94>
     964:	00800074 	movhi	r2,1
     968:	10887c04 	addi	r2,r2,8688
     96c:	10800003 	ldbu	r2,0(r2)
     970:	10803fcc 	andi	r2,r2,255
     974:	1080010c 	andi	r2,r2,4
     978:	1004c03a 	cmpne	r2,r2,zero
     97c:	1000051e 	bne	r2,zero,994 <main+0x94>
		|| ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_VALSTR))) {
			if (reset_mem_confirmed == 1) {
     980:	e0bffe87 	ldb	r2,-6(fp)
     984:	10800058 	cmpnei	r2,r2,1
     988:	1000021e 	bne	r2,zero,994 <main+0x94>
				reset_mem_confirmed = 0; //確認キャンセル
     98c:	e03ffe85 	stb	zero,-6(fp)
				reset_mem_cancel();
     990:	00007340 	call	734 <reset_mem_cancel>
			}
		}
		if (global_registers[Ssw_rw] == 0
     994:	00800074 	movhi	r2,1
     998:	1090cd04 	addi	r2,r2,17204
     99c:	10800303 	ldbu	r2,12(r2)
     9a0:	10803fcc 	andi	r2,r2,255
     9a4:	1080201c 	xori	r2,r2,128
     9a8:	10bfe004 	addi	r2,r2,-128
     9ac:	1005003a 	cmpeq	r2,r2,zero
     9b0:	10000e1e 	bne	r2,zero,9ec <main+0xec>
     9b4:	00800074 	movhi	r2,1
     9b8:	10887c04 	addi	r2,r2,8688
     9bc:	10800003 	ldbu	r2,0(r2)
     9c0:	10803fcc 	andi	r2,r2,255
     9c4:	1080008c 	andi	r2,r2,2
     9c8:	1005003a 	cmpeq	r2,r2,zero
     9cc:	10000c1e 	bne	r2,zero,a00 <main+0x100>
     9d0:	00800074 	movhi	r2,1
     9d4:	10887c04 	addi	r2,r2,8688
     9d8:	10800003 	ldbu	r2,0(r2)
     9dc:	10803fcc 	andi	r2,r2,255
     9e0:	1080020c 	andi	r2,r2,8
     9e4:	1004c03a 	cmpne	r2,r2,zero
     9e8:	1000051e 	bne	r2,zero,a00 <main+0x100>
		|| ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_INSSTR))) {
			if (reset_pc_confirmed == 1) {
     9ec:	e0bffec7 	ldb	r2,-5(fp)
     9f0:	10800058 	cmpnei	r2,r2,1
     9f4:	1000021e 	bne	r2,zero,a00 <main+0x100>
				reset_pc_confirmed = 0; //確認キャンセル
     9f8:	e03ffec5 	stb	zero,-5(fp)
				reset_pc_cancel();
     9fc:	000082c0 	call	82c <reset_pc_cancel>
			}
		}
		// CONFIRM
		if (PUSH_EVENT & PUSH_VALSTR) {
     a00:	00800074 	movhi	r2,1
     a04:	10887c04 	addi	r2,r2,8688
     a08:	10800003 	ldbu	r2,0(r2)
     a0c:	10803fcc 	andi	r2,r2,255
     a10:	1080010c 	andi	r2,r2,4
     a14:	1005003a 	cmpeq	r2,r2,zero
     a18:	1000161e 	bne	r2,zero,a74 <main+0x174>
			// 値のストア
			if (global_registers[Ssw_rw] == 1) {
     a1c:	00800074 	movhi	r2,1
     a20:	1090cd04 	addi	r2,r2,17204
     a24:	10800303 	ldbu	r2,12(r2)
     a28:	10803fcc 	andi	r2,r2,255
     a2c:	1080201c 	xori	r2,r2,128
     a30:	10bfe004 	addi	r2,r2,-128
     a34:	10800058 	cmpnei	r2,r2,1
     a38:	10000d1e 	bne	r2,zero,a70 <main+0x170>
				//削除
				char res = reset_mem(reset_mem_confirmed);//仮確認の承認
     a3c:	e13ffe87 	ldb	r4,-6(fp)
     a40:	00007780 	call	778 <reset_mem>
     a44:	e0bffe45 	stb	r2,-7(fp)
				if (1 == res) reset_mem_confirmed = 1; //仮確認
     a48:	e0bffe47 	ldb	r2,-7(fp)
     a4c:	10800058 	cmpnei	r2,r2,1
     a50:	1000021e 	bne	r2,zero,a5c <main+0x15c>
     a54:	00800044 	movi	r2,1
     a58:	e0bffe85 	stb	r2,-6(fp)
				if (0 == res) reset_mem_confirmed = 0; //リセットの確認
     a5c:	e0bffe47 	ldb	r2,-7(fp)
     a60:	1004c03a 	cmpne	r2,r2,zero
     a64:	1000031e 	bne	r2,zero,a74 <main+0x174>
     a68:	e03ffe85 	stb	zero,-6(fp)
     a6c:	00000106 	br	a74 <main+0x174>
			} else {
				store_value();
     a70:	000049c0 	call	49c <store_value>
			}
		}
		if (PUSH_EVENT & PUSH_INSSTR) {
     a74:	00800074 	movhi	r2,1
     a78:	10887c04 	addi	r2,r2,8688
     a7c:	10800003 	ldbu	r2,0(r2)
     a80:	10803fcc 	andi	r2,r2,255
     a84:	1080020c 	andi	r2,r2,8
     a88:	1005003a 	cmpeq	r2,r2,zero
     a8c:	1000161e 	bne	r2,zero,ae8 <main+0x1e8>
			// 命令のストア
			if (global_registers[Ssw_rw] == 1) {
     a90:	00800074 	movhi	r2,1
     a94:	1090cd04 	addi	r2,r2,17204
     a98:	10800303 	ldbu	r2,12(r2)
     a9c:	10803fcc 	andi	r2,r2,255
     aa0:	1080201c 	xori	r2,r2,128
     aa4:	10bfe004 	addi	r2,r2,-128
     aa8:	10800058 	cmpnei	r2,r2,1
     aac:	10000d1e 	bne	r2,zero,ae4 <main+0x1e4>
				//PCのリセット
				char res = reset_pc(reset_pc_confirmed);//仮確認の承認
     ab0:	e13ffec7 	ldb	r4,-5(fp)
     ab4:	00008700 	call	870 <reset_pc>
     ab8:	e0bffe05 	stb	r2,-8(fp)
				if (1 == res) reset_pc_confirmed = 1; //仮確認
     abc:	e0bffe07 	ldb	r2,-8(fp)
     ac0:	10800058 	cmpnei	r2,r2,1
     ac4:	1000021e 	bne	r2,zero,ad0 <main+0x1d0>
     ac8:	00800044 	movi	r2,1
     acc:	e0bffec5 	stb	r2,-5(fp)
				if (0 == res) reset_pc_confirmed = 0; //リセットの確認
     ad0:	e0bffe07 	ldb	r2,-8(fp)
     ad4:	1004c03a 	cmpne	r2,r2,zero
     ad8:	1000031e 	bne	r2,zero,ae8 <main+0x1e8>
     adc:	e03ffec5 	stb	zero,-5(fp)
     ae0:	00000106 	br	ae8 <main+0x1e8>
			} else {
				store_inst();
     ae4:	00005800 	call	580 <store_inst>
			}
		}
		// RUN
		if (PUSH_EVENT & PUSH_RUN) {
     ae8:	00800074 	movhi	r2,1
     aec:	10887c04 	addi	r2,r2,8688
     af0:	10800003 	ldbu	r2,0(r2)
     af4:	10803fcc 	andi	r2,r2,255
     af8:	1080040c 	andi	r2,r2,16
     afc:	1005003a 	cmpeq	r2,r2,zero
     b00:	10001a1e 	bne	r2,zero,b6c <main+0x26c>
			if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) {
     b04:	00800074 	movhi	r2,1
     b08:	1090cd04 	addi	r2,r2,17204
     b0c:	108002c3 	ldbu	r2,11(r2)
     b10:	10c03fcc 	andi	r3,r2,255
     b14:	18c0201c 	xori	r3,r3,128
     b18:	18ffe004 	addi	r3,r3,-128
     b1c:	00800074 	movhi	r2,1
     b20:	108f7504 	addi	r2,r2,15828
     b24:	10800017 	ldw	r2,0(r2)
     b28:	18800e26 	beq	r3,r2,b64 <main+0x264>
				global_current_memory = (unsigned int)global_registers[Ssw_psel];
     b2c:	00800074 	movhi	r2,1
     b30:	1090cd04 	addi	r2,r2,17204
     b34:	108002c3 	ldbu	r2,11(r2)
     b38:	10c03fcc 	andi	r3,r2,255
     b3c:	18c0201c 	xori	r3,r3,128
     b40:	18ffe004 	addi	r3,r3,-128
     b44:	00800074 	movhi	r2,1
     b48:	108f7504 	addi	r2,r2,15828
     b4c:	10c00015 	stw	r3,0(r2)
				print_change_memory(global_current_memory);
     b50:	00800074 	movhi	r2,1
     b54:	108f7504 	addi	r2,r2,15828
     b58:	11000017 	ldw	r4,0(r2)
     b5c:	00006c40 	call	6c4 <print_change_memory>
     b60:	00000206 	br	b6c <main+0x26c>
			}
			else {
				// プログラム初期化設定
				fRun = RUN_INIT;
     b64:	00800044 	movi	r2,1
     b68:	e0bfff15 	stw	r2,-4(fp)
			}
		}
		if (fRun != RUN_STOP) {
     b6c:	e0bfff17 	ldw	r2,-4(fp)
     b70:	1005003a 	cmpeq	r2,r2,zero
     b74:	103f6b1e 	bne	r2,zero,924 <main+0x24>
			// プログラム実行割り込み & 実行モード更新
			fRun = run_proc(fRun);
     b78:	e13fff17 	ldw	r4,-4(fp)
     b7c:	00029380 	call	2938 <run_proc>
     b80:	e0bfff15 	stw	r2,-4(fp)
		}
	}
     b84:	003f6706 	br	924 <main+0x24>

00000b88 <encodeNumHex>:
 */

#include "hex_encoder.h"
#include <ctype.h>

void encodeNumHex(int hex_i, int num) {
     b88:	defffc04 	addi	sp,sp,-16
     b8c:	df000315 	stw	fp,12(sp)
     b90:	df000304 	addi	fp,sp,12
     b94:	e13ffe15 	stw	r4,-8(fp)
     b98:	e17fff15 	stw	r5,-4(fp)
	char encoded = 0;
     b9c:	e03ffd05 	stb	zero,-12(fp)
	switch (num) {
     ba0:	e0bfff17 	ldw	r2,-4(fp)
     ba4:	108002a8 	cmpgeui	r2,r2,10
     ba8:	10002f1e 	bne	r2,zero,c68 <encodeNumHex+0xe0>
     bac:	e0bfff17 	ldw	r2,-4(fp)
     bb0:	1085883a 	add	r2,r2,r2
     bb4:	1087883a 	add	r3,r2,r2
     bb8:	00800034 	movhi	r2,0
     bbc:	1082f304 	addi	r2,r2,3020
     bc0:	1885883a 	add	r2,r3,r2
     bc4:	10800017 	ldw	r2,0(r2)
     bc8:	1000683a 	jmp	r2
     bcc:	00000bf4 	movhi	zero,47
     bd0:	00000c00 	call	c0 <__flash_exceptions_start+0xa0>
     bd4:	00000c0c 	andi	zero,zero,48
     bd8:	00000c18 	cmpnei	zero,zero,48
     bdc:	00000c24 	muli	zero,zero,48
     be0:	00000c30 	cmpltui	zero,zero,48
     be4:	00000c3c 	xorhi	zero,zero,48
     be8:	00000c48 	cmpgei	zero,zero,49
     bec:	00000c54 	movui	zero,49
     bf0:	00000c5c 	xori	zero,zero,49
	case 0:
		encoded = (char)0x40;	// 100 0000
     bf4:	00801004 	movi	r2,64
     bf8:	e0bffd05 	stb	r2,-12(fp)
		break;
     bfc:	00001b06 	br	c6c <encodeNumHex+0xe4>
	case 1:
		encoded = (char)0xF9;	// 111 1001
     c00:	00bffe44 	movi	r2,-7
     c04:	e0bffd05 	stb	r2,-12(fp)
		break;
     c08:	00001806 	br	c6c <encodeNumHex+0xe4>
	case 2:
		encoded = (char)0x24;	// 010 0100
     c0c:	00800904 	movi	r2,36
     c10:	e0bffd05 	stb	r2,-12(fp)
		break;
     c14:	00001506 	br	c6c <encodeNumHex+0xe4>
	case 3:
		encoded = (char)0x30;	// 011 0000
     c18:	00800c04 	movi	r2,48
     c1c:	e0bffd05 	stb	r2,-12(fp)
		break;
     c20:	00001206 	br	c6c <encodeNumHex+0xe4>
	case 4:
		encoded = (char)0x19;	// 001 1001
     c24:	00800644 	movi	r2,25
     c28:	e0bffd05 	stb	r2,-12(fp)
		break;
     c2c:	00000f06 	br	c6c <encodeNumHex+0xe4>
	case 5:
		encoded = (char)0x12;	// 001 0010
     c30:	00800484 	movi	r2,18
     c34:	e0bffd05 	stb	r2,-12(fp)
		break;
     c38:	00000c06 	br	c6c <encodeNumHex+0xe4>
	case 6:
		encoded = (char)0x02;	// 000 0010
     c3c:	00800084 	movi	r2,2
     c40:	e0bffd05 	stb	r2,-12(fp)
		break;
     c44:	00000906 	br	c6c <encodeNumHex+0xe4>
	case 7:
		encoded = (char)0x58;	// 101 1000
     c48:	00801604 	movi	r2,88
     c4c:	e0bffd05 	stb	r2,-12(fp)
		break;
     c50:	00000606 	br	c6c <encodeNumHex+0xe4>
	case 8:
		encoded = (char)0x00;	// 000 0000
     c54:	e03ffd05 	stb	zero,-12(fp)
		break;
     c58:	00000406 	br	c6c <encodeNumHex+0xe4>
	case 9:
		encoded = (char)0x10;	// 001 0000
     c5c:	00800404 	movi	r2,16
     c60:	e0bffd05 	stb	r2,-12(fp)
		break;
     c64:	00000106 	br	c6c <encodeNumHex+0xe4>
	default:
		encoded = 0;
     c68:	e03ffd05 	stb	zero,-12(fp)
		break;
	}

	switch (hex_i) {
     c6c:	e0bffe17 	ldw	r2,-8(fp)
     c70:	10800228 	cmpgeui	r2,r2,8
     c74:	1000371e 	bne	r2,zero,d54 <encodeNumHex+0x1cc>
     c78:	e0bffe17 	ldw	r2,-8(fp)
     c7c:	1085883a 	add	r2,r2,r2
     c80:	1087883a 	add	r3,r2,r2
     c84:	00800034 	movhi	r2,0
     c88:	10832604 	addi	r2,r2,3224
     c8c:	1885883a 	add	r2,r3,r2
     c90:	10800017 	ldw	r2,0(r2)
     c94:	1000683a 	jmp	r2
     c98:	00000cb8 	rdprs	zero,zero,50
     c9c:	00000ccc 	andi	zero,zero,51
     ca0:	00000ce0 	cmpeqi	zero,zero,51
     ca4:	00000cf4 	movhi	zero,51
     ca8:	00000d08 	cmpgei	zero,zero,52
     cac:	00000d1c 	xori	zero,zero,52
     cb0:	00000d30 	cmpltui	zero,zero,52
     cb4:	00000d44 	movi	zero,53
	case 0:
		*hex0 = encoded;
     cb8:	00c00134 	movhi	r3,4
     cbc:	18c42c04 	addi	r3,r3,4272
     cc0:	e0bffd03 	ldbu	r2,-12(fp)
     cc4:	18800005 	stb	r2,0(r3)
		break;
     cc8:	00002206 	br	d54 <encodeNumHex+0x1cc>
	case 1:
		*hex1 = encoded;
     ccc:	00c00134 	movhi	r3,4
     cd0:	18c42804 	addi	r3,r3,4256
     cd4:	e0bffd03 	ldbu	r2,-12(fp)
     cd8:	18800005 	stb	r2,0(r3)
		break;
     cdc:	00001d06 	br	d54 <encodeNumHex+0x1cc>
	case 2:
		*hex2 = encoded;
     ce0:	00c00134 	movhi	r3,4
     ce4:	18c42404 	addi	r3,r3,4240
     ce8:	e0bffd03 	ldbu	r2,-12(fp)
     cec:	18800005 	stb	r2,0(r3)
		break;
     cf0:	00001806 	br	d54 <encodeNumHex+0x1cc>
	case 3:
		*hex3 = encoded;
     cf4:	00c00134 	movhi	r3,4
     cf8:	18c42004 	addi	r3,r3,4224
     cfc:	e0bffd03 	ldbu	r2,-12(fp)
     d00:	18800005 	stb	r2,0(r3)
		break;
     d04:	00001306 	br	d54 <encodeNumHex+0x1cc>
	case 4:
		*hex4 = encoded;
     d08:	00c00134 	movhi	r3,4
     d0c:	18c41c04 	addi	r3,r3,4208
     d10:	e0bffd03 	ldbu	r2,-12(fp)
     d14:	18800005 	stb	r2,0(r3)
		break;
     d18:	00000e06 	br	d54 <encodeNumHex+0x1cc>
	case 5:
		*hex5 = encoded;
     d1c:	00c00134 	movhi	r3,4
     d20:	18c41804 	addi	r3,r3,4192
     d24:	e0bffd03 	ldbu	r2,-12(fp)
     d28:	18800005 	stb	r2,0(r3)
		break;
     d2c:	00000906 	br	d54 <encodeNumHex+0x1cc>
	case 6:
		*hex6 = encoded;
     d30:	00c00134 	movhi	r3,4
     d34:	18c41404 	addi	r3,r3,4176
     d38:	e0bffd03 	ldbu	r2,-12(fp)
     d3c:	18800005 	stb	r2,0(r3)
		break;
     d40:	00000406 	br	d54 <encodeNumHex+0x1cc>
	case 7:
		*hex7 = encoded;
     d44:	00c00134 	movhi	r3,4
     d48:	18c41004 	addi	r3,r3,4160
     d4c:	e0bffd03 	ldbu	r2,-12(fp)
     d50:	18800005 	stb	r2,0(r3)
		break;
	default:
		break;
	}
}
     d54:	e037883a 	mov	sp,fp
     d58:	df000017 	ldw	fp,0(sp)
     d5c:	dec00104 	addi	sp,sp,4
     d60:	f800283a 	ret

00000d64 <encodeLatHex>:

void encodeLatHex(int hex_i, char c) {
     d64:	defffa04 	addi	sp,sp,-24
     d68:	dfc00515 	stw	ra,20(sp)
     d6c:	df000415 	stw	fp,16(sp)
     d70:	df000404 	addi	fp,sp,16
     d74:	e13ffd15 	stw	r4,-12(fp)
     d78:	e17ffe05 	stb	r5,-8(fp)
	char encoded = 0;
     d7c:	e03ffc05 	stb	zero,-16(fp)

	if (isdigit(c)) {
     d80:	e0bffe07 	ldb	r2,-8(fp)
     d84:	1007883a 	mov	r3,r2
     d88:	00800074 	movhi	r2,1
     d8c:	10887d04 	addi	r2,r2,8692
     d90:	10800017 	ldw	r2,0(r2)
     d94:	1885883a 	add	r2,r3,r2
     d98:	10800003 	ldbu	r2,0(r2)
     d9c:	10803fcc 	andi	r2,r2,255
     da0:	1080010c 	andi	r2,r2,4
     da4:	1005003a 	cmpeq	r2,r2,zero
     da8:	1000051e 	bne	r2,zero,dc0 <encodeLatHex+0x5c>
		encodeNumHex(hex_i, c-'0');
     dac:	e0bffe07 	ldb	r2,-8(fp)
     db0:	117ff404 	addi	r5,r2,-48
     db4:	e13ffd17 	ldw	r4,-12(fp)
     db8:	0000b880 	call	b88 <encodeNumHex>
		return;
     dbc:	0000f906 	br	11a4 <encodeLatHex+0x440>
	}

	switch (c) {
     dc0:	e0bffe07 	ldb	r2,-8(fp)
     dc4:	10bff804 	addi	r2,r2,-32
     dc8:	e0bfff15 	stw	r2,-4(fp)
     dcc:	e0ffff17 	ldw	r3,-4(fp)
     dd0:	188016e8 	cmpgeui	r2,r3,91
     dd4:	1000b81e 	bne	r2,zero,10b8 <encodeLatHex+0x354>
     dd8:	e13fff17 	ldw	r4,-4(fp)
     ddc:	e13fff17 	ldw	r4,-4(fp)
     de0:	2105883a 	add	r2,r4,r4
     de4:	1087883a 	add	r3,r2,r2
     de8:	00800034 	movhi	r2,0
     dec:	10837f04 	addi	r2,r2,3580
     df0:	1885883a 	add	r2,r3,r2
     df4:	10800017 	ldw	r2,0(r2)
     df8:	1000683a 	jmp	r2
     dfc:	00000f68 	cmpgeui	zero,zero,61
     e00:	000010b8 	rdprs	zero,zero,66
     e04:	000010b8 	rdprs	zero,zero,66
     e08:	000010b8 	rdprs	zero,zero,66
     e0c:	000010b8 	rdprs	zero,zero,66
     e10:	000010b8 	rdprs	zero,zero,66
     e14:	000010b8 	rdprs	zero,zero,66
     e18:	000010b8 	rdprs	zero,zero,66
     e1c:	000010b8 	rdprs	zero,zero,66
     e20:	000010b8 	rdprs	zero,zero,66
     e24:	000010b8 	rdprs	zero,zero,66
     e28:	000010b8 	rdprs	zero,zero,66
     e2c:	000010b8 	rdprs	zero,zero,66
     e30:	00000f74 	movhi	zero,61
     e34:	000010b8 	rdprs	zero,zero,66
     e38:	000010b8 	rdprs	zero,zero,66
     e3c:	000010b8 	rdprs	zero,zero,66
     e40:	000010b8 	rdprs	zero,zero,66
     e44:	000010b8 	rdprs	zero,zero,66
     e48:	000010b8 	rdprs	zero,zero,66
     e4c:	000010b8 	rdprs	zero,zero,66
     e50:	000010b8 	rdprs	zero,zero,66
     e54:	000010b8 	rdprs	zero,zero,66
     e58:	000010b8 	rdprs	zero,zero,66
     e5c:	000010b8 	rdprs	zero,zero,66
     e60:	000010b8 	rdprs	zero,zero,66
     e64:	000010b8 	rdprs	zero,zero,66
     e68:	000010b8 	rdprs	zero,zero,66
     e6c:	000010b8 	rdprs	zero,zero,66
     e70:	000010b8 	rdprs	zero,zero,66
     e74:	000010b8 	rdprs	zero,zero,66
     e78:	000010b8 	rdprs	zero,zero,66
     e7c:	000010b8 	rdprs	zero,zero,66
     e80:	000010b8 	rdprs	zero,zero,66
     e84:	000010b8 	rdprs	zero,zero,66
     e88:	000010b8 	rdprs	zero,zero,66
     e8c:	000010b8 	rdprs	zero,zero,66
     e90:	000010b8 	rdprs	zero,zero,66
     e94:	000010b8 	rdprs	zero,zero,66
     e98:	000010b8 	rdprs	zero,zero,66
     e9c:	000010b8 	rdprs	zero,zero,66
     ea0:	000010b8 	rdprs	zero,zero,66
     ea4:	000010b8 	rdprs	zero,zero,66
     ea8:	000010b8 	rdprs	zero,zero,66
     eac:	000010b8 	rdprs	zero,zero,66
     eb0:	000010b8 	rdprs	zero,zero,66
     eb4:	000010b8 	rdprs	zero,zero,66
     eb8:	000010b8 	rdprs	zero,zero,66
     ebc:	000010b8 	rdprs	zero,zero,66
     ec0:	000010b8 	rdprs	zero,zero,66
     ec4:	000010b8 	rdprs	zero,zero,66
     ec8:	000010b8 	rdprs	zero,zero,66
     ecc:	000010b8 	rdprs	zero,zero,66
     ed0:	000010b8 	rdprs	zero,zero,66
     ed4:	000010b8 	rdprs	zero,zero,66
     ed8:	000010b8 	rdprs	zero,zero,66
     edc:	000010b8 	rdprs	zero,zero,66
     ee0:	000010b8 	rdprs	zero,zero,66
     ee4:	000010b8 	rdprs	zero,zero,66
     ee8:	000010b8 	rdprs	zero,zero,66
     eec:	000010b8 	rdprs	zero,zero,66
     ef0:	000010b8 	rdprs	zero,zero,66
     ef4:	000010b8 	rdprs	zero,zero,66
     ef8:	000010b8 	rdprs	zero,zero,66
     efc:	000010b8 	rdprs	zero,zero,66
     f00:	00000f80 	call	f8 <alt_irq_handler+0xc>
     f04:	00000f8c 	andi	zero,zero,62
     f08:	00000f98 	cmpnei	zero,zero,62
     f0c:	00000fa4 	muli	zero,zero,62
     f10:	00000fb0 	cmpltui	zero,zero,62
     f14:	00000fbc 	xorhi	zero,zero,62
     f18:	00000fc8 	cmpgei	zero,zero,63
     f1c:	00000fd4 	movui	zero,63
     f20:	00000fe0 	cmpeqi	zero,zero,63
     f24:	00000fec 	andhi	zero,zero,63
     f28:	00000ff8 	rdprs	zero,zero,63
     f2c:	00001004 	movi	zero,64
     f30:	00001010 	cmplti	zero,zero,64
     f34:	0000101c 	xori	zero,zero,64
     f38:	00001028 	cmpgeui	zero,zero,64
     f3c:	00001034 	movhi	zero,64
     f40:	00001040 	call	104 <alt_irq_handler+0x18>
     f44:	0000104c 	andi	zero,zero,65
     f48:	00001058 	cmpnei	zero,zero,65
     f4c:	00001064 	muli	zero,zero,65
     f50:	00001070 	cmpltui	zero,zero,65
     f54:	0000107c 	xorhi	zero,zero,65
     f58:	00001088 	cmpgei	zero,zero,66
     f5c:	00001094 	movui	zero,66
     f60:	000010a0 	cmpeqi	zero,zero,66
     f64:	000010ac 	andhi	zero,zero,66
	case ' ':
		encoded = (char)0xFF;	// 111 1111
     f68:	00bfffc4 	movi	r2,-1
     f6c:	e0bffc05 	stb	r2,-16(fp)
		break;
     f70:	00005206 	br	10bc <encodeLatHex+0x358>
	case '-':
		encoded = (char)0x3F;	// 011 1111
     f74:	00800fc4 	movi	r2,63
     f78:	e0bffc05 	stb	r2,-16(fp)
		break;
     f7c:	00004f06 	br	10bc <encodeLatHex+0x358>
	case 'a':
		encoded = (char)0x08;	// 000 1000
     f80:	00800204 	movi	r2,8
     f84:	e0bffc05 	stb	r2,-16(fp)
		break;
     f88:	00004c06 	br	10bc <encodeLatHex+0x358>
	case 'b':
		encoded = (char)0x03;	// 000 0011
     f8c:	008000c4 	movi	r2,3
     f90:	e0bffc05 	stb	r2,-16(fp)
		break;
     f94:	00004906 	br	10bc <encodeLatHex+0x358>
	case 'c':
		encoded = (char)0x27;	// 010 0111
     f98:	008009c4 	movi	r2,39
     f9c:	e0bffc05 	stb	r2,-16(fp)
		break;
     fa0:	00004606 	br	10bc <encodeLatHex+0x358>
	case 'd':
		encoded = (char)0x21;	// 010 0001
     fa4:	00800844 	movi	r2,33
     fa8:	e0bffc05 	stb	r2,-16(fp)
		break;
     fac:	00004306 	br	10bc <encodeLatHex+0x358>
	case 'e':
		encoded = (char)0x06;	// 000 0110
     fb0:	00800184 	movi	r2,6
     fb4:	e0bffc05 	stb	r2,-16(fp)
		break;
     fb8:	00004006 	br	10bc <encodeLatHex+0x358>
	case 'f':
		encoded = (char)0x0E;	// 000 1110
     fbc:	00800384 	movi	r2,14
     fc0:	e0bffc05 	stb	r2,-16(fp)
		break;
     fc4:	00003d06 	br	10bc <encodeLatHex+0x358>
	case 'g':
		encoded = (char)0x42;	// 100 0010
     fc8:	00801084 	movi	r2,66
     fcc:	e0bffc05 	stb	r2,-16(fp)
		break;
     fd0:	00003a06 	br	10bc <encodeLatHex+0x358>
	case 'h':
		encoded = (char)0x0B;	// 000 1011
     fd4:	008002c4 	movi	r2,11
     fd8:	e0bffc05 	stb	r2,-16(fp)
		break;
     fdc:	00003706 	br	10bc <encodeLatHex+0x358>
	case 'i':
		encoded = (char)0xFB;	// 111 1011
     fe0:	00bffec4 	movi	r2,-5
     fe4:	e0bffc05 	stb	r2,-16(fp)
		break;
     fe8:	00003406 	br	10bc <encodeLatHex+0x358>
	case 'j':
		encoded = (char)0x61;	// 110 0001
     fec:	00801844 	movi	r2,97
     ff0:	e0bffc05 	stb	r2,-16(fp)
		break;
     ff4:	00003106 	br	10bc <encodeLatHex+0x358>
	case 'k':
		encoded = (char)0x0A;	// 000 1010
     ff8:	00800284 	movi	r2,10
     ffc:	e0bffc05 	stb	r2,-16(fp)
		break;
    1000:	00002e06 	br	10bc <encodeLatHex+0x358>
	case 'l':
		encoded = (char)0x47;	// 100 0111
    1004:	008011c4 	movi	r2,71
    1008:	e0bffc05 	stb	r2,-16(fp)
		break;
    100c:	00002b06 	br	10bc <encodeLatHex+0x358>
	case 'm':
		encoded = (char)0x48;	// 100 1000
    1010:	00801204 	movi	r2,72
    1014:	e0bffc05 	stb	r2,-16(fp)
		break;
    1018:	00002806 	br	10bc <encodeLatHex+0x358>
	case 'n':
		encoded = (char)0x2B;	// 010 1011
    101c:	00800ac4 	movi	r2,43
    1020:	e0bffc05 	stb	r2,-16(fp)
		break;
    1024:	00002506 	br	10bc <encodeLatHex+0x358>
	case 'o':
		encoded = (char)0x23;	// 010 0011
    1028:	008008c4 	movi	r2,35
    102c:	e0bffc05 	stb	r2,-16(fp)
		break;
    1030:	00002206 	br	10bc <encodeLatHex+0x358>
	case 'p':
		encoded = (char)0x0C;	// 000 1100
    1034:	00800304 	movi	r2,12
    1038:	e0bffc05 	stb	r2,-16(fp)
		break;
    103c:	00001f06 	br	10bc <encodeLatHex+0x358>
	case 'q':
		encoded = (char)0x04;	// 000 0100
    1040:	00800104 	movi	r2,4
    1044:	e0bffc05 	stb	r2,-16(fp)
		break;
    1048:	00001c06 	br	10bc <encodeLatHex+0x358>
	case 'r':
		encoded = (char)0x2F;	// 010 1111
    104c:	00800bc4 	movi	r2,47
    1050:	e0bffc05 	stb	r2,-16(fp)
		break;
    1054:	00001906 	br	10bc <encodeLatHex+0x358>
	case 's':
		encoded = (char)0x13;	// 001 0011
    1058:	008004c4 	movi	r2,19
    105c:	e0bffc05 	stb	r2,-16(fp)
		break;
    1060:	00001606 	br	10bc <encodeLatHex+0x358>
	case 't':
		encoded = (char)0x07;	// 000 0111
    1064:	008001c4 	movi	r2,7
    1068:	e0bffc05 	stb	r2,-16(fp)
		break;
    106c:	00001306 	br	10bc <encodeLatHex+0x358>
	case 'u':
		encoded = (char)0x63;	// 110 0011
    1070:	008018c4 	movi	r2,99
    1074:	e0bffc05 	stb	r2,-16(fp)
		break;
    1078:	00001006 	br	10bc <encodeLatHex+0x358>
	case 'v':
		encoded = (char)0x41;	// 100 0001
    107c:	00801044 	movi	r2,65
    1080:	e0bffc05 	stb	r2,-16(fp)
		break;
    1084:	00000d06 	br	10bc <encodeLatHex+0x358>
	case 'w':
		encoded = (char)0x01;	// 000 0001
    1088:	00800044 	movi	r2,1
    108c:	e0bffc05 	stb	r2,-16(fp)
		break;
    1090:	00000a06 	br	10bc <encodeLatHex+0x358>
	case 'x':
		encoded = (char)0x09;	// 000 1001
    1094:	00800244 	movi	r2,9
    1098:	e0bffc05 	stb	r2,-16(fp)
		break;
    109c:	00000706 	br	10bc <encodeLatHex+0x358>
	case 'y':
		encoded = (char)0x11;	// 001 0001
    10a0:	00800444 	movi	r2,17
    10a4:	e0bffc05 	stb	r2,-16(fp)
		break;
    10a8:	00000406 	br	10bc <encodeLatHex+0x358>
	case 'z':
		encoded = (char)0x64;	// 110 0100
    10ac:	00801904 	movi	r2,100
    10b0:	e0bffc05 	stb	r2,-16(fp)
		break;
    10b4:	00000106 	br	10bc <encodeLatHex+0x358>
	default:
		encoded = 0;
    10b8:	e03ffc05 	stb	zero,-16(fp)
		break;
	}

	switch (hex_i) {
    10bc:	e0bffd17 	ldw	r2,-12(fp)
    10c0:	10800228 	cmpgeui	r2,r2,8
    10c4:	1000371e 	bne	r2,zero,11a4 <encodeLatHex+0x440>
    10c8:	e0bffd17 	ldw	r2,-12(fp)
    10cc:	1085883a 	add	r2,r2,r2
    10d0:	1087883a 	add	r3,r2,r2
    10d4:	00800034 	movhi	r2,0
    10d8:	10843a04 	addi	r2,r2,4328
    10dc:	1885883a 	add	r2,r3,r2
    10e0:	10800017 	ldw	r2,0(r2)
    10e4:	1000683a 	jmp	r2
    10e8:	00001108 	cmpgei	zero,zero,68
    10ec:	0000111c 	xori	zero,zero,68
    10f0:	00001130 	cmpltui	zero,zero,68
    10f4:	00001144 	movi	zero,69
    10f8:	00001158 	cmpnei	zero,zero,69
    10fc:	0000116c 	andhi	zero,zero,69
    1100:	00001180 	call	118 <alt_irq_handler+0x2c>
    1104:	00001194 	movui	zero,70
	case 0:
		*hex0 = encoded;
    1108:	00c00134 	movhi	r3,4
    110c:	18c42c04 	addi	r3,r3,4272
    1110:	e0bffc03 	ldbu	r2,-16(fp)
    1114:	18800005 	stb	r2,0(r3)
		break;
    1118:	00002206 	br	11a4 <encodeLatHex+0x440>
	case 1:
		*hex1 = encoded;
    111c:	00c00134 	movhi	r3,4
    1120:	18c42804 	addi	r3,r3,4256
    1124:	e0bffc03 	ldbu	r2,-16(fp)
    1128:	18800005 	stb	r2,0(r3)
		break;
    112c:	00001d06 	br	11a4 <encodeLatHex+0x440>
	case 2:
		*hex2 = encoded;
    1130:	00c00134 	movhi	r3,4
    1134:	18c42404 	addi	r3,r3,4240
    1138:	e0bffc03 	ldbu	r2,-16(fp)
    113c:	18800005 	stb	r2,0(r3)
		break;
    1140:	00001806 	br	11a4 <encodeLatHex+0x440>
	case 3:
		*hex3 = encoded;
    1144:	00c00134 	movhi	r3,4
    1148:	18c42004 	addi	r3,r3,4224
    114c:	e0bffc03 	ldbu	r2,-16(fp)
    1150:	18800005 	stb	r2,0(r3)
		break;
    1154:	00001306 	br	11a4 <encodeLatHex+0x440>
	case 4:
		*hex4 = encoded;
    1158:	00c00134 	movhi	r3,4
    115c:	18c41c04 	addi	r3,r3,4208
    1160:	e0bffc03 	ldbu	r2,-16(fp)
    1164:	18800005 	stb	r2,0(r3)
		break;
    1168:	00000e06 	br	11a4 <encodeLatHex+0x440>
	case 5:
		*hex5 = encoded;
    116c:	00c00134 	movhi	r3,4
    1170:	18c41804 	addi	r3,r3,4192
    1174:	e0bffc03 	ldbu	r2,-16(fp)
    1178:	18800005 	stb	r2,0(r3)
		break;
    117c:	00000906 	br	11a4 <encodeLatHex+0x440>
	case 6:
		*hex6 = encoded;
    1180:	00c00134 	movhi	r3,4
    1184:	18c41404 	addi	r3,r3,4176
    1188:	e0bffc03 	ldbu	r2,-16(fp)
    118c:	18800005 	stb	r2,0(r3)
		break;
    1190:	00000406 	br	11a4 <encodeLatHex+0x440>
	case 7:
		*hex7 = encoded;
    1194:	00c00134 	movhi	r3,4
    1198:	18c41004 	addi	r3,r3,4160
    119c:	e0bffc03 	ldbu	r2,-16(fp)
    11a0:	18800005 	stb	r2,0(r3)
		break;
	default:
		break;
	}
}
    11a4:	e037883a 	mov	sp,fp
    11a8:	dfc00117 	ldw	ra,4(sp)
    11ac:	df000017 	ldw	fp,0(sp)
    11b0:	dec00204 	addi	sp,sp,8
    11b4:	f800283a 	ret

000011b8 <print_block>:
 */
#include "hex_out.h"
#include "hex_encoder.h"
#include "sys_except.h"

void print_block(char * str, unsigned int size, enum BLOCK_N block_i) {
    11b8:	defffa04 	addi	sp,sp,-24
    11bc:	dfc00515 	stw	ra,20(sp)
    11c0:	df000415 	stw	fp,16(sp)
    11c4:	df000404 	addi	fp,sp,16
    11c8:	e13ffd15 	stw	r4,-12(fp)
    11cc:	e17ffe15 	stw	r5,-8(fp)
    11d0:	e1bfff15 	stw	r6,-4(fp)
	int i;
	if (block_i == HEX0_3) {
    11d4:	e0bfff17 	ldw	r2,-4(fp)
    11d8:	1004c03a 	cmpne	r2,r2,zero
    11dc:	10001a1e 	bne	r2,zero,1248 <print_block+0x90>
		if (size > 4) panic();
    11e0:	e0bffe17 	ldw	r2,-8(fp)
    11e4:	10800170 	cmpltui	r2,r2,5
    11e8:	1000011e 	bne	r2,zero,11f0 <print_block+0x38>
    11ec:	000253c0 	call	253c <panic>
		for (i = 0; i < size; i++) {
    11f0:	e03ffc15 	stw	zero,-16(fp)
    11f4:	00001006 	br	1238 <print_block+0x80>
			encodeLatHex(i,str[size-1-i]);
    11f8:	e0fffc17 	ldw	r3,-16(fp)
    11fc:	e0bffe17 	ldw	r2,-8(fp)
    1200:	10c5c83a 	sub	r2,r2,r3
    1204:	1007883a 	mov	r3,r2
    1208:	e0bffd17 	ldw	r2,-12(fp)
    120c:	1885883a 	add	r2,r3,r2
    1210:	10bfffc4 	addi	r2,r2,-1
    1214:	10800003 	ldbu	r2,0(r2)
    1218:	11403fcc 	andi	r5,r2,255
    121c:	2940201c 	xori	r5,r5,128
    1220:	297fe004 	addi	r5,r5,-128
    1224:	e13ffc17 	ldw	r4,-16(fp)
    1228:	0000d640 	call	d64 <encodeLatHex>

void print_block(char * str, unsigned int size, enum BLOCK_N block_i) {
	int i;
	if (block_i == HEX0_3) {
		if (size > 4) panic();
		for (i = 0; i < size; i++) {
    122c:	e0bffc17 	ldw	r2,-16(fp)
    1230:	10800044 	addi	r2,r2,1
    1234:	e0bffc15 	stw	r2,-16(fp)
    1238:	e0fffc17 	ldw	r3,-16(fp)
    123c:	e0bffe17 	ldw	r2,-8(fp)
    1240:	18bfed36 	bltu	r3,r2,11f8 <print_block+0x40>
    1244:	00003b06 	br	1334 <print_block+0x17c>
			encodeLatHex(i,str[size-1-i]);
		}
	}
	else if (block_i == HEX4_5) {
    1248:	e0bfff17 	ldw	r2,-4(fp)
    124c:	10800058 	cmpnei	r2,r2,1
    1250:	10001b1e 	bne	r2,zero,12c0 <print_block+0x108>
		if (size > 2) panic();
    1254:	e0bffe17 	ldw	r2,-8(fp)
    1258:	108000f0 	cmpltui	r2,r2,3
    125c:	1000011e 	bne	r2,zero,1264 <print_block+0xac>
    1260:	000253c0 	call	253c <panic>
		for (i = 0; i < size; i++) {
    1264:	e03ffc15 	stw	zero,-16(fp)
    1268:	00001106 	br	12b0 <print_block+0xf8>
			encodeLatHex(i+4,str[size-1-i]);
    126c:	e0bffc17 	ldw	r2,-16(fp)
    1270:	11000104 	addi	r4,r2,4
    1274:	e0fffc17 	ldw	r3,-16(fp)
    1278:	e0bffe17 	ldw	r2,-8(fp)
    127c:	10c5c83a 	sub	r2,r2,r3
    1280:	1007883a 	mov	r3,r2
    1284:	e0bffd17 	ldw	r2,-12(fp)
    1288:	1885883a 	add	r2,r3,r2
    128c:	10bfffc4 	addi	r2,r2,-1
    1290:	10800003 	ldbu	r2,0(r2)
    1294:	11403fcc 	andi	r5,r2,255
    1298:	2940201c 	xori	r5,r5,128
    129c:	297fe004 	addi	r5,r5,-128
    12a0:	0000d640 	call	d64 <encodeLatHex>
			encodeLatHex(i,str[size-1-i]);
		}
	}
	else if (block_i == HEX4_5) {
		if (size > 2) panic();
		for (i = 0; i < size; i++) {
    12a4:	e0bffc17 	ldw	r2,-16(fp)
    12a8:	10800044 	addi	r2,r2,1
    12ac:	e0bffc15 	stw	r2,-16(fp)
    12b0:	e0fffc17 	ldw	r3,-16(fp)
    12b4:	e0bffe17 	ldw	r2,-8(fp)
    12b8:	18bfec36 	bltu	r3,r2,126c <print_block+0xb4>
    12bc:	00001d06 	br	1334 <print_block+0x17c>
			encodeLatHex(i+4,str[size-1-i]);
		}
	}
	else if (block_i == HEX6_7) {
    12c0:	e0bfff17 	ldw	r2,-4(fp)
    12c4:	10800098 	cmpnei	r2,r2,2
    12c8:	10001a1e 	bne	r2,zero,1334 <print_block+0x17c>
		if (size > 2) panic();
    12cc:	e0bffe17 	ldw	r2,-8(fp)
    12d0:	108000f0 	cmpltui	r2,r2,3
    12d4:	1000011e 	bne	r2,zero,12dc <print_block+0x124>
    12d8:	000253c0 	call	253c <panic>
		for (i = 0; i < size; i++) {
    12dc:	e03ffc15 	stw	zero,-16(fp)
    12e0:	00001106 	br	1328 <print_block+0x170>
			encodeLatHex(i+6,str[size-1-i]);
    12e4:	e0bffc17 	ldw	r2,-16(fp)
    12e8:	11000184 	addi	r4,r2,6
    12ec:	e0fffc17 	ldw	r3,-16(fp)
    12f0:	e0bffe17 	ldw	r2,-8(fp)
    12f4:	10c5c83a 	sub	r2,r2,r3
    12f8:	1007883a 	mov	r3,r2
    12fc:	e0bffd17 	ldw	r2,-12(fp)
    1300:	1885883a 	add	r2,r3,r2
    1304:	10bfffc4 	addi	r2,r2,-1
    1308:	10800003 	ldbu	r2,0(r2)
    130c:	11403fcc 	andi	r5,r2,255
    1310:	2940201c 	xori	r5,r5,128
    1314:	297fe004 	addi	r5,r5,-128
    1318:	0000d640 	call	d64 <encodeLatHex>
			encodeLatHex(i+4,str[size-1-i]);
		}
	}
	else if (block_i == HEX6_7) {
		if (size > 2) panic();
		for (i = 0; i < size; i++) {
    131c:	e0bffc17 	ldw	r2,-16(fp)
    1320:	10800044 	addi	r2,r2,1
    1324:	e0bffc15 	stw	r2,-16(fp)
    1328:	e0fffc17 	ldw	r3,-16(fp)
    132c:	e0bffe17 	ldw	r2,-8(fp)
    1330:	18bfec36 	bltu	r3,r2,12e4 <print_block+0x12c>
			encodeLatHex(i+6,str[size-1-i]);
		}
	}
}
    1334:	e037883a 	mov	sp,fp
    1338:	dfc00117 	ldw	ra,4(sp)
    133c:	df000017 	ldw	fp,0(sp)
    1340:	dec00204 	addi	sp,sp,8
    1344:	f800283a 	ret

00001348 <clear_block>:

void clear_block(enum BLOCK_N block_i) {
    1348:	defffd04 	addi	sp,sp,-12
    134c:	dfc00215 	stw	ra,8(sp)
    1350:	df000115 	stw	fp,4(sp)
    1354:	df000104 	addi	fp,sp,4
    1358:	e13fff15 	stw	r4,-4(fp)
	if (block_i == HEX0_3) {
    135c:	e0bfff17 	ldw	r2,-4(fp)
    1360:	1004c03a 	cmpne	r2,r2,zero
    1364:	1000061e 	bne	r2,zero,1380 <clear_block+0x38>
		print_block("    ", 4, HEX0_3);
    1368:	01000074 	movhi	r4,1
    136c:	21001904 	addi	r4,r4,100
    1370:	01400104 	movi	r5,4
    1374:	000d883a 	mov	r6,zero
    1378:	00011b80 	call	11b8 <print_block>
    137c:	00001106 	br	13c4 <clear_block+0x7c>
	}
	else if (block_i == HEX4_5) {
    1380:	e0bfff17 	ldw	r2,-4(fp)
    1384:	10800058 	cmpnei	r2,r2,1
    1388:	1000061e 	bne	r2,zero,13a4 <clear_block+0x5c>
		print_block("  ", 2, HEX4_5);
    138c:	01000074 	movhi	r4,1
    1390:	21001b04 	addi	r4,r4,108
    1394:	01400084 	movi	r5,2
    1398:	01800044 	movi	r6,1
    139c:	00011b80 	call	11b8 <print_block>
    13a0:	00000806 	br	13c4 <clear_block+0x7c>
	}
	else if (block_i == HEX6_7) {
    13a4:	e0bfff17 	ldw	r2,-4(fp)
    13a8:	10800098 	cmpnei	r2,r2,2
    13ac:	1000051e 	bne	r2,zero,13c4 <clear_block+0x7c>
		print_block("  ", 2, HEX6_7);
    13b0:	01000074 	movhi	r4,1
    13b4:	21001b04 	addi	r4,r4,108
    13b8:	01400084 	movi	r5,2
    13bc:	01800084 	movi	r6,2
    13c0:	00011b80 	call	11b8 <print_block>
	}
}
    13c4:	e037883a 	mov	sp,fp
    13c8:	dfc00117 	ldw	ra,4(sp)
    13cc:	df000017 	ldw	fp,0(sp)
    13d0:	dec00204 	addi	sp,sp,8
    13d4:	f800283a 	ret

000013d8 <print_number>:

void print_number(char num) {
    13d8:	defff904 	addi	sp,sp,-28
    13dc:	dfc00615 	stw	ra,24(sp)
    13e0:	df000515 	stw	fp,20(sp)
    13e4:	df000504 	addi	fp,sp,20
    13e8:	e13fff05 	stb	r4,-4(fp)
	int i;
	char buf[5];
	char val;
	for (i = 0; i < 4; i++) {
    13ec:	e03ffc15 	stw	zero,-16(fp)
    13f0:	00002906 	br	1498 <print_number+0xc0>
		if (num < 0) {
    13f4:	e0bfff07 	ldb	r2,-4(fp)
    13f8:	1004403a 	cmpge	r2,r2,zero
    13fc:	1000061e 	bne	r2,zero,1418 <print_number+0x40>
			buf[0] = '-';
    1400:	00800b44 	movi	r2,45
    1404:	e0bffd05 	stb	r2,-12(fp)
			val = -num;
    1408:	e0bfff03 	ldbu	r2,-4(fp)
    140c:	0085c83a 	sub	r2,zero,r2
    1410:	e0bffb05 	stb	r2,-20(fp)
    1414:	00000406 	br	1428 <print_number+0x50>
		} else {
			buf[0] = ' ';
    1418:	00800804 	movi	r2,32
    141c:	e0bffd05 	stb	r2,-12(fp)
			val = num;
    1420:	e0bfff03 	ldbu	r2,-4(fp)
    1424:	e0bffb05 	stb	r2,-20(fp)
		}
		buf[1] = val/100%10 + '0';
    1428:	e13ffb07 	ldb	r4,-20(fp)
    142c:	01401904 	movi	r5,100
    1430:	0002b540 	call	2b54 <__divsi3>
    1434:	11003fcc 	andi	r4,r2,255
    1438:	2100201c 	xori	r4,r4,128
    143c:	213fe004 	addi	r4,r4,-128
    1440:	01400284 	movi	r5,10
    1444:	0002bb40 	call	2bb4 <__modsi3>
    1448:	10800c04 	addi	r2,r2,48
    144c:	e0bffd45 	stb	r2,-11(fp)
		buf[2] = val/10%10 + '0';
    1450:	e13ffb07 	ldb	r4,-20(fp)
    1454:	01400284 	movi	r5,10
    1458:	0002b540 	call	2b54 <__divsi3>
    145c:	11003fcc 	andi	r4,r2,255
    1460:	2100201c 	xori	r4,r4,128
    1464:	213fe004 	addi	r4,r4,-128
    1468:	01400284 	movi	r5,10
    146c:	0002bb40 	call	2bb4 <__modsi3>
    1470:	10800c04 	addi	r2,r2,48
    1474:	e0bffd85 	stb	r2,-10(fp)
		buf[3] = val%10 + '0';
    1478:	e13ffb07 	ldb	r4,-20(fp)
    147c:	01400284 	movi	r5,10
    1480:	0002bb40 	call	2bb4 <__modsi3>
    1484:	10800c04 	addi	r2,r2,48
    1488:	e0bffdc5 	stb	r2,-9(fp)

void print_number(char num) {
	int i;
	char buf[5];
	char val;
	for (i = 0; i < 4; i++) {
    148c:	e0bffc17 	ldw	r2,-16(fp)
    1490:	10800044 	addi	r2,r2,1
    1494:	e0bffc15 	stw	r2,-16(fp)
    1498:	e0bffc17 	ldw	r2,-16(fp)
    149c:	10800110 	cmplti	r2,r2,4
    14a0:	103fd41e 	bne	r2,zero,13f4 <print_number+0x1c>
		}
		buf[1] = val/100%10 + '0';
		buf[2] = val/10%10 + '0';
		buf[3] = val%10 + '0';
	}
	clear_block(HEX0_3);
    14a4:	0009883a 	mov	r4,zero
    14a8:	00013480 	call	1348 <clear_block>
	print_block(buf, 4, HEX0_3);
    14ac:	e13ffd04 	addi	r4,fp,-12
    14b0:	01400104 	movi	r5,4
    14b4:	000d883a 	mov	r6,zero
    14b8:	00011b80 	call	11b8 <print_block>
}
    14bc:	e037883a 	mov	sp,fp
    14c0:	dfc00117 	ldw	ra,4(sp)
    14c4:	df000017 	ldw	fp,0(sp)
    14c8:	dec00204 	addi	sp,sp,8
    14cc:	f800283a 	ret

000014d0 <in_int>:
#include "input_int.h"
#include "sys_register.h"

unsigned char PUSH_EVENT = PUSH_NONE;

void in_int() {
    14d0:	defffe04 	addi	sp,sp,-8
    14d4:	dfc00115 	stw	ra,4(sp)
    14d8:	df000015 	stw	fp,0(sp)
    14dc:	d839883a 	mov	fp,sp
	push_int();
    14e0:	000168c0 	call	168c <push_int>
}
    14e4:	e037883a 	mov	sp,fp
    14e8:	dfc00117 	ldw	ra,4(sp)
    14ec:	df000017 	ldw	fp,0(sp)
    14f0:	dec00204 	addi	sp,sp,8
    14f4:	f800283a 	ret

000014f8 <update_sw_reg>:

static void update_sw_reg(sw_t s) {
    14f8:	defffe04 	addi	sp,sp,-8
    14fc:	df000115 	stw	fp,4(sp)
    1500:	df000104 	addi	fp,sp,4
    1504:	e13fff15 	stw	r4,-4(fp)
	global_registers[Ssw_data] = (char)s.data.value;
    1508:	e0bfff17 	ldw	r2,-4(fp)
    150c:	1004d2ba 	srli	r2,r2,10
    1510:	1007883a 	mov	r3,r2
    1514:	00bfffc4 	movi	r2,-1
    1518:	1884703a 	and	r2,r3,r2
    151c:	1007883a 	mov	r3,r2
    1520:	00800074 	movhi	r2,1
    1524:	1090cd04 	addi	r2,r2,17204
    1528:	10c001c5 	stb	r3,7(r2)
	global_registers[Ssw_inst] = (char)s.splited.instruction_code;
    152c:	e0bfff17 	ldw	r2,-4(fp)
    1530:	1004d3ba 	srli	r2,r2,14
    1534:	108003cc 	andi	r2,r2,15
    1538:	1007883a 	mov	r3,r2
    153c:	00800074 	movhi	r2,1
    1540:	1090cd04 	addi	r2,r2,17204
    1544:	10c00205 	stb	r3,8(r2)
	global_registers[Ssw_memi] = (char)s.splited.memory_index;
    1548:	e0bfff17 	ldw	r2,-4(fp)
    154c:	1004d1ba 	srli	r2,r2,6
    1550:	108003cc 	andi	r2,r2,15
    1554:	1007883a 	mov	r3,r2
    1558:	00800074 	movhi	r2,1
    155c:	1090cd04 	addi	r2,r2,17204
    1560:	10c00285 	stb	r3,10(r2)
	global_registers[Ssw_regi] = (char)s.splited.register_index;
    1564:	e0bfff17 	ldw	r2,-4(fp)
    1568:	1004d2ba 	srli	r2,r2,10
    156c:	108003cc 	andi	r2,r2,15
    1570:	1007883a 	mov	r3,r2
    1574:	00800074 	movhi	r2,1
    1578:	1090cd04 	addi	r2,r2,17204
    157c:	10c00245 	stb	r3,9(r2)
	global_registers[Ssw_psel] = (char)s.splited.program_selecter;
    1580:	e0bfff17 	ldw	r2,-4(fp)
    1584:	1004d0ba 	srli	r2,r2,2
    1588:	108003cc 	andi	r2,r2,15
    158c:	1007883a 	mov	r3,r2
    1590:	00800074 	movhi	r2,1
    1594:	1090cd04 	addi	r2,r2,17204
    1598:	10c002c5 	stb	r3,11(r2)
	global_registers[Ssw_rw] = (char)s.splited.rw_mode;
    159c:	e0bfff17 	ldw	r2,-4(fp)
    15a0:	1004d07a 	srli	r2,r2,1
    15a4:	1080004c 	andi	r2,r2,1
    15a8:	1007883a 	mov	r3,r2
    15ac:	00800074 	movhi	r2,1
    15b0:	1090cd04 	addi	r2,r2,17204
    15b4:	10c00305 	stb	r3,12(r2)
	global_registers[Ssw_run] = (char)s.splited.run_mode;
    15b8:	e0bfff17 	ldw	r2,-4(fp)
    15bc:	1080004c 	andi	r2,r2,1
    15c0:	1007883a 	mov	r3,r2
    15c4:	00800074 	movhi	r2,1
    15c8:	1090cd04 	addi	r2,r2,17204
    15cc:	10c00345 	stb	r3,13(r2)
}
    15d0:	e037883a 	mov	sp,fp
    15d4:	df000017 	ldw	fp,0(sp)
    15d8:	dec00104 	addi	sp,sp,4
    15dc:	f800283a 	ret

000015e0 <push_decode>:

enum PushEvent push_decode(char psw) {
    15e0:	defffc04 	addi	sp,sp,-16
    15e4:	df000315 	stw	fp,12(sp)
    15e8:	df000304 	addi	fp,sp,12
    15ec:	e13ffe05 	stb	r4,-8(fp)
	int result = PUSH_NONE;
    15f0:	00800044 	movi	r2,1
    15f4:	e0bffd15 	stw	r2,-12(fp)
	switch(psw) {
    15f8:	e0bffe07 	ldb	r2,-8(fp)
    15fc:	e0bfff15 	stw	r2,-4(fp)
    1600:	e0ffff17 	ldw	r3,-4(fp)
    1604:	18800160 	cmpeqi	r2,r3,5
    1608:	10000e1e 	bne	r2,zero,1644 <push_decode+0x64>
    160c:	e0ffff17 	ldw	r3,-4(fp)
    1610:	188001a0 	cmpeqi	r2,r3,6
    1614:	1000121e 	bne	r2,zero,1660 <push_decode+0x80>
    1618:	e0ffff17 	ldw	r3,-4(fp)
    161c:	188000e0 	cmpeqi	r2,r3,3
    1620:	1000011e 	bne	r2,zero,1628 <push_decode+0x48>
    1624:	00001406 	br	1678 <push_decode+0x98>
	case 0x3:
		result += PUSH_ANY;
    1628:	e0bffd17 	ldw	r2,-12(fp)
    162c:	10800084 	addi	r2,r2,2
    1630:	e0bffd15 	stw	r2,-12(fp)
		result += PUSH_VALSTR;
    1634:	e0bffd17 	ldw	r2,-12(fp)
    1638:	10800104 	addi	r2,r2,4
    163c:	e0bffd15 	stw	r2,-12(fp)
		break;
    1640:	00000d06 	br	1678 <push_decode+0x98>
	case 0x5:
		result += PUSH_ANY;
    1644:	e0bffd17 	ldw	r2,-12(fp)
    1648:	10800084 	addi	r2,r2,2
    164c:	e0bffd15 	stw	r2,-12(fp)
		result += PUSH_INSSTR;
    1650:	e0bffd17 	ldw	r2,-12(fp)
    1654:	10800204 	addi	r2,r2,8
    1658:	e0bffd15 	stw	r2,-12(fp)
		break;
    165c:	00000606 	br	1678 <push_decode+0x98>
	case 0x6:
		result += PUSH_ANY;
    1660:	e0bffd17 	ldw	r2,-12(fp)
    1664:	10800084 	addi	r2,r2,2
    1668:	e0bffd15 	stw	r2,-12(fp)
		result += PUSH_RUN;
    166c:	e0bffd17 	ldw	r2,-12(fp)
    1670:	10800404 	addi	r2,r2,16
    1674:	e0bffd15 	stw	r2,-12(fp)
		break;
	}
	return result;
    1678:	e0bffd17 	ldw	r2,-12(fp)
}
    167c:	e037883a 	mov	sp,fp
    1680:	df000017 	ldw	fp,0(sp)
    1684:	dec00104 	addi	sp,sp,4
    1688:	f800283a 	ret

0000168c <push_int>:

void push_int() {
    168c:	defffc04 	addi	sp,sp,-16
    1690:	dfc00315 	stw	ra,12(sp)
    1694:	df000215 	stw	fp,8(sp)
    1698:	df000204 	addi	fp,sp,8
	static unsigned char status = 0;
	static enum PushEvent event_code;
	volatile sw_t s;
	s.sw = *switches;
    169c:	00800134 	movhi	r2,4
    16a0:	10843404 	addi	r2,r2,4304
    16a4:	10800017 	ldw	r2,0(r2)
    16a8:	e0bffe15 	stw	r2,-8(fp)

	switch (status) {
    16ac:	d0a6f803 	ldbu	r2,-25632(gp)
    16b0:	10803fcc 	andi	r2,r2,255
    16b4:	e0bfff15 	stw	r2,-4(fp)
    16b8:	e0ffff17 	ldw	r3,-4(fp)
    16bc:	18800060 	cmpeqi	r2,r3,1
    16c0:	10001e1e 	bne	r2,zero,173c <push_int+0xb0>
    16c4:	e0ffff17 	ldw	r3,-4(fp)
    16c8:	188000a0 	cmpeqi	r2,r3,2
    16cc:	1000261e 	bne	r2,zero,1768 <push_int+0xdc>
    16d0:	e0ffff17 	ldw	r3,-4(fp)
    16d4:	1805003a 	cmpeq	r2,r3,zero
    16d8:	1000011e 	bne	r2,zero,16e0 <push_int+0x54>
    16dc:	00002606 	br	1778 <push_int+0xec>
	case 0:
		PUSH_EVENT = PUSH_NONE;
    16e0:	00800044 	movi	r2,1
    16e4:	d0a00005 	stb	r2,-32768(gp)
		if (*push_switches != 7) {
    16e8:	00800134 	movhi	r2,4
    16ec:	10843004 	addi	r2,r2,4288
    16f0:	10800003 	ldbu	r2,0(r2)
    16f4:	10803fcc 	andi	r2,r2,255
    16f8:	1080201c 	xori	r2,r2,128
    16fc:	10bfe004 	addi	r2,r2,-128
    1700:	108001e0 	cmpeqi	r2,r2,7
    1704:	10000a1e 	bne	r2,zero,1730 <push_int+0xa4>
			event_code = push_decode(*push_switches);
    1708:	00800134 	movhi	r2,4
    170c:	10843004 	addi	r2,r2,4288
    1710:	10800003 	ldbu	r2,0(r2)
    1714:	11003fcc 	andi	r4,r2,255
    1718:	2100201c 	xori	r4,r4,128
    171c:	213fe004 	addi	r4,r4,-128
    1720:	00015e00 	call	15e0 <push_decode>
    1724:	d0a6f715 	stw	r2,-25636(gp)
			status = 1;
    1728:	00800044 	movi	r2,1
    172c:	d0a6f805 	stb	r2,-25632(gp)
		}
		update_sw_reg(s);	// スイッチレジスタ更新
    1730:	e13ffe17 	ldw	r4,-8(fp)
    1734:	00014f80 	call	14f8 <update_sw_reg>
		break;
    1738:	00001006 	br	177c <push_int+0xf0>
	case 1:
		if (*push_switches == 7) status = 2;
    173c:	00800134 	movhi	r2,4
    1740:	10843004 	addi	r2,r2,4288
    1744:	10800003 	ldbu	r2,0(r2)
    1748:	10803fcc 	andi	r2,r2,255
    174c:	1080201c 	xori	r2,r2,128
    1750:	10bfe004 	addi	r2,r2,-128
    1754:	108001d8 	cmpnei	r2,r2,7
    1758:	1000081e 	bne	r2,zero,177c <push_int+0xf0>
    175c:	00800084 	movi	r2,2
    1760:	d0a6f805 	stb	r2,-25632(gp)
		break;
    1764:	00000506 	br	177c <push_int+0xf0>
	case 2:
		PUSH_EVENT = event_code;
    1768:	d0a6f717 	ldw	r2,-25636(gp)
    176c:	d0a00005 	stb	r2,-32768(gp)
		status = 0;
    1770:	d026f805 	stb	zero,-25632(gp)
		break;
    1774:	00000106 	br	177c <push_int+0xf0>
	default:
		status = 0;
    1778:	d026f805 	stb	zero,-25632(gp)
		break;
	}
}
    177c:	e037883a 	mov	sp,fp
    1780:	dfc00117 	ldw	ra,4(sp)
    1784:	df000017 	ldw	fp,0(sp)
    1788:	dec00204 	addi	sp,sp,8
    178c:	f800283a 	ret

00001790 <inst_fetch>:
#include "hex_out.h"
#include "sys_prog.h"
#include <stdio.h>
#include <unistd.h>

struct InstRec inst_fetch(){
    1790:	defffd04 	addi	sp,sp,-12
    1794:	dfc00215 	stw	ra,8(sp)
    1798:	df000115 	stw	fp,4(sp)
    179c:	df000104 	addi	fp,sp,4
	struct InstRec rec = inst_memory_load((unsigned int)global_registers[Spc]);
    17a0:	00800074 	movhi	r2,1
    17a4:	1090cd04 	addi	r2,r2,17204
    17a8:	10800043 	ldbu	r2,1(r2)
    17ac:	11003fcc 	andi	r4,r2,255
    17b0:	2100201c 	xori	r4,r4,128
    17b4:	213fe004 	addi	r4,r4,-128
    17b8:	00026480 	call	2648 <inst_memory_load>
    17bc:	e0bfff15 	stw	r2,-4(fp)
	inc_pc();
    17c0:	00027bc0 	call	27bc <inc_pc>
	return rec;
    17c4:	e0bfff17 	ldw	r2,-4(fp)
}
    17c8:	e037883a 	mov	sp,fp
    17cc:	dfc00117 	ldw	ra,4(sp)
    17d0:	df000017 	ldw	fp,0(sp)
    17d4:	dec00204 	addi	sp,sp,8
    17d8:	f800283a 	ret

000017dc <inst_decode>:

void inst_decode(struct InstRec inst_rec){
    17dc:	defffc04 	addi	sp,sp,-16
    17e0:	dfc00315 	stw	ra,12(sp)
    17e4:	df000215 	stw	fp,8(sp)
    17e8:	df000204 	addi	fp,sp,8
    17ec:	e13ffe15 	stw	r4,-8(fp)
	switch(inst_rec.inst) {
    17f0:	e0bffe17 	ldw	r2,-8(fp)
    17f4:	108003cc 	andi	r2,r2,15
    17f8:	10803fcc 	andi	r2,r2,255
    17fc:	e0bfff15 	stw	r2,-4(fp)
    1800:	e0ffff17 	ldw	r3,-4(fp)
    1804:	18800368 	cmpgeui	r2,r3,13
    1808:	10008d1e 	bne	r2,zero,1a40 <inst_decode+0x264>
    180c:	e13fff17 	ldw	r4,-4(fp)
    1810:	e13fff17 	ldw	r4,-4(fp)
    1814:	2105883a 	add	r2,r4,r4
    1818:	1087883a 	add	r3,r2,r2
    181c:	00800034 	movhi	r2,0
    1820:	10860c04 	addi	r2,r2,6192
    1824:	1885883a 	add	r2,r3,r2
    1828:	10800017 	ldw	r2,0(r2)
    182c:	1000683a 	jmp	r2
    1830:	00001a40 	call	1a4 <alt_irq_handler+0xb8>
    1834:	00001864 	muli	zero,zero,97
    1838:	0000188c 	andi	zero,zero,98
    183c:	000018b4 	movhi	zero,98
    1840:	000018dc 	xori	zero,zero,99
    1844:	00001904 	movi	zero,100
    1848:	0000192c 	andhi	zero,zero,100
    184c:	0000197c 	xorhi	zero,zero,101
    1850:	000019a4 	muli	zero,zero,102
    1854:	000019cc 	andi	zero,zero,103
    1858:	000019f4 	movhi	zero,103
    185c:	00001a1c 	xori	zero,zero,104
    1860:	00001954 	movui	zero,101
	case INST_END:
		break;
	case INST_JUMP:
		inst_jump(inst_rec.regi, inst_rec.memi);
    1864:	e0bffe17 	ldw	r2,-8(fp)
    1868:	1004d23a 	srli	r2,r2,8
    186c:	108003cc 	andi	r2,r2,15
    1870:	11003fcc 	andi	r4,r2,255
    1874:	e0bffe17 	ldw	r2,-8(fp)
    1878:	1004d13a 	srli	r2,r2,4
    187c:	108003cc 	andi	r2,r2,15
    1880:	11403fcc 	andi	r5,r2,255
    1884:	0001a540 	call	1a54 <inst_jump>
		break;
    1888:	00006d06 	br	1a40 <inst_decode+0x264>
	case INST_OUTPUT:
		inst_output(inst_rec.regi, inst_rec.memi);
    188c:	e0bffe17 	ldw	r2,-8(fp)
    1890:	1004d23a 	srli	r2,r2,8
    1894:	108003cc 	andi	r2,r2,15
    1898:	11003fcc 	andi	r4,r2,255
    189c:	e0bffe17 	ldw	r2,-8(fp)
    18a0:	1004d13a 	srli	r2,r2,4
    18a4:	108003cc 	andi	r2,r2,15
    18a8:	11403fcc 	andi	r5,r2,255
    18ac:	0001ab00 	call	1ab0 <inst_output>
		break;
    18b0:	00006306 	br	1a40 <inst_decode+0x264>
	case INST_LOAD:
		inst_load(inst_rec.regi, inst_rec.memi);
    18b4:	e0bffe17 	ldw	r2,-8(fp)
    18b8:	1004d23a 	srli	r2,r2,8
    18bc:	108003cc 	andi	r2,r2,15
    18c0:	11003fcc 	andi	r4,r2,255
    18c4:	e0bffe17 	ldw	r2,-8(fp)
    18c8:	1004d13a 	srli	r2,r2,4
    18cc:	108003cc 	andi	r2,r2,15
    18d0:	11403fcc 	andi	r5,r2,255
    18d4:	0001b200 	call	1b20 <inst_load>
		break;
    18d8:	00005906 	br	1a40 <inst_decode+0x264>
	case INST_STORE:
		inst_store(inst_rec.regi, inst_rec.memi);
    18dc:	e0bffe17 	ldw	r2,-8(fp)
    18e0:	1004d23a 	srli	r2,r2,8
    18e4:	108003cc 	andi	r2,r2,15
    18e8:	11003fcc 	andi	r4,r2,255
    18ec:	e0bffe17 	ldw	r2,-8(fp)
    18f0:	1004d13a 	srli	r2,r2,4
    18f4:	108003cc 	andi	r2,r2,15
    18f8:	11403fcc 	andi	r5,r2,255
    18fc:	0001b580 	call	1b58 <inst_store>
		break;
    1900:	00004f06 	br	1a40 <inst_decode+0x264>
	case INST_DELAY:
		inst_delay(inst_rec.regi, inst_rec.memi);
    1904:	e0bffe17 	ldw	r2,-8(fp)
    1908:	1004d23a 	srli	r2,r2,8
    190c:	108003cc 	andi	r2,r2,15
    1910:	11003fcc 	andi	r4,r2,255
    1914:	e0bffe17 	ldw	r2,-8(fp)
    1918:	1004d13a 	srli	r2,r2,4
    191c:	108003cc 	andi	r2,r2,15
    1920:	11403fcc 	andi	r5,r2,255
    1924:	0001b900 	call	1b90 <inst_delay>
		break;
    1928:	00004506 	br	1a40 <inst_decode+0x264>
	case INST_ADD:
		inst_add(inst_rec.regi, inst_rec.memi);
    192c:	e0bffe17 	ldw	r2,-8(fp)
    1930:	1004d23a 	srli	r2,r2,8
    1934:	108003cc 	andi	r2,r2,15
    1938:	11003fcc 	andi	r4,r2,255
    193c:	e0bffe17 	ldw	r2,-8(fp)
    1940:	1004d13a 	srli	r2,r2,4
    1944:	108003cc 	andi	r2,r2,15
    1948:	11403fcc 	andi	r5,r2,255
    194c:	0001bec0 	call	1bec <inst_add>
		break;
    1950:	00003b06 	br	1a40 <inst_decode+0x264>
	case INST_SUB:
		inst_sub(inst_rec.regi, inst_rec.memi);
    1954:	e0bffe17 	ldw	r2,-8(fp)
    1958:	1004d23a 	srli	r2,r2,8
    195c:	108003cc 	andi	r2,r2,15
    1960:	11003fcc 	andi	r4,r2,255
    1964:	e0bffe17 	ldw	r2,-8(fp)
    1968:	1004d13a 	srli	r2,r2,4
    196c:	108003cc 	andi	r2,r2,15
    1970:	11403fcc 	andi	r5,r2,255
    1974:	0001c480 	call	1c48 <inst_sub>
		break;
    1978:	00003106 	br	1a40 <inst_decode+0x264>
	case INST_COMP:
		inst_comp(inst_rec.regi, inst_rec.memi);
    197c:	e0bffe17 	ldw	r2,-8(fp)
    1980:	1004d23a 	srli	r2,r2,8
    1984:	108003cc 	andi	r2,r2,15
    1988:	11003fcc 	andi	r4,r2,255
    198c:	e0bffe17 	ldw	r2,-8(fp)
    1990:	1004d13a 	srli	r2,r2,4
    1994:	108003cc 	andi	r2,r2,15
    1998:	11403fcc 	andi	r5,r2,255
    199c:	0001ca40 	call	1ca4 <inst_comp>
		break;
    19a0:	00002706 	br	1a40 <inst_decode+0x264>
	case INST_JEQ:
		inst_jeq(inst_rec.regi, inst_rec.memi);
    19a4:	e0bffe17 	ldw	r2,-8(fp)
    19a8:	1004d23a 	srli	r2,r2,8
    19ac:	108003cc 	andi	r2,r2,15
    19b0:	11003fcc 	andi	r4,r2,255
    19b4:	e0bffe17 	ldw	r2,-8(fp)
    19b8:	1004d13a 	srli	r2,r2,4
    19bc:	108003cc 	andi	r2,r2,15
    19c0:	11403fcc 	andi	r5,r2,255
    19c4:	0001d740 	call	1d74 <inst_jeq>
		break;
    19c8:	00001d06 	br	1a40 <inst_decode+0x264>
	case INST_JNE:
		inst_jne(inst_rec.regi, inst_rec.memi);
    19cc:	e0bffe17 	ldw	r2,-8(fp)
    19d0:	1004d23a 	srli	r2,r2,8
    19d4:	108003cc 	andi	r2,r2,15
    19d8:	11003fcc 	andi	r4,r2,255
    19dc:	e0bffe17 	ldw	r2,-8(fp)
    19e0:	1004d13a 	srli	r2,r2,4
    19e4:	108003cc 	andi	r2,r2,15
    19e8:	11403fcc 	andi	r5,r2,255
    19ec:	0001de00 	call	1de0 <inst_jne>
		break;
    19f0:	00001306 	br	1a40 <inst_decode+0x264>
	case INST_JIEQ:
		inst_jieq(inst_rec.regi, inst_rec.memi);
    19f4:	e0bffe17 	ldw	r2,-8(fp)
    19f8:	1004d23a 	srli	r2,r2,8
    19fc:	108003cc 	andi	r2,r2,15
    1a00:	11003fcc 	andi	r4,r2,255
    1a04:	e0bffe17 	ldw	r2,-8(fp)
    1a08:	1004d13a 	srli	r2,r2,4
    1a0c:	108003cc 	andi	r2,r2,15
    1a10:	11403fcc 	andi	r5,r2,255
    1a14:	0001e4c0 	call	1e4c <inst_jieq>
		break;
    1a18:	00000906 	br	1a40 <inst_decode+0x264>
	case INST_JINE:
		inst_jine(inst_rec.regi, inst_rec.memi);
    1a1c:	e0bffe17 	ldw	r2,-8(fp)
    1a20:	1004d23a 	srli	r2,r2,8
    1a24:	108003cc 	andi	r2,r2,15
    1a28:	11003fcc 	andi	r4,r2,255
    1a2c:	e0bffe17 	ldw	r2,-8(fp)
    1a30:	1004d13a 	srli	r2,r2,4
    1a34:	108003cc 	andi	r2,r2,15
    1a38:	11403fcc 	andi	r5,r2,255
    1a3c:	0001e9c0 	call	1e9c <inst_jine>
		break;
	}
}
    1a40:	e037883a 	mov	sp,fp
    1a44:	dfc00117 	ldw	ra,4(sp)
    1a48:	df000017 	ldw	fp,0(sp)
    1a4c:	dec00204 	addi	sp,sp,8
    1a50:	f800283a 	ret

00001a54 <inst_jump>:

void inst_jump(enum Register reg, unsigned char memory_index){
    1a54:	defffc04 	addi	sp,sp,-16
    1a58:	dfc00315 	stw	ra,12(sp)
    1a5c:	df000215 	stw	fp,8(sp)
    1a60:	df000204 	addi	fp,sp,8
    1a64:	e13ffe15 	stw	r4,-8(fp)
    1a68:	e17fff05 	stb	r5,-4(fp)
	set_pc(global_registers[reg]+memory_index);
    1a6c:	e0fffe17 	ldw	r3,-8(fp)
    1a70:	00800074 	movhi	r2,1
    1a74:	1090cd04 	addi	r2,r2,17204
    1a78:	10c5883a 	add	r2,r2,r3
    1a7c:	10800003 	ldbu	r2,0(r2)
    1a80:	10c03fcc 	andi	r3,r2,255
    1a84:	18c0201c 	xori	r3,r3,128
    1a88:	18ffe004 	addi	r3,r3,-128
    1a8c:	e0bfff03 	ldbu	r2,-4(fp)
    1a90:	1885883a 	add	r2,r3,r2
    1a94:	1009883a 	mov	r4,r2
    1a98:	00028900 	call	2890 <set_pc>
}
    1a9c:	e037883a 	mov	sp,fp
    1aa0:	dfc00117 	ldw	ra,4(sp)
    1aa4:	df000017 	ldw	fp,0(sp)
    1aa8:	dec00204 	addi	sp,sp,8
    1aac:	f800283a 	ret

00001ab0 <inst_output>:
void inst_output(enum Register reg, unsigned char memory_index){
    1ab0:	defffa04 	addi	sp,sp,-24
    1ab4:	dfc00515 	stw	ra,20(sp)
    1ab8:	df000415 	stw	fp,16(sp)
    1abc:	df000404 	addi	fp,sp,16
    1ac0:	e13ffe15 	stw	r4,-8(fp)
    1ac4:	e17fff05 	stb	r5,-4(fp)
	//メモリの値を7セグに表示
	char buf[5];
	memory_load(memory_index, Sseg);
    1ac8:	e13fff03 	ldbu	r4,-4(fp)
    1acc:	01400384 	movi	r5,14
    1ad0:	000272c0 	call	272c <memory_load>
	sprintf(buf, "%04d", global_registers[Sseg]);
    1ad4:	00800074 	movhi	r2,1
    1ad8:	1090cd04 	addi	r2,r2,17204
    1adc:	10800383 	ldbu	r2,14(r2)
    1ae0:	11803fcc 	andi	r6,r2,255
    1ae4:	3180201c 	xori	r6,r6,128
    1ae8:	31bfe004 	addi	r6,r6,-128
    1aec:	e13ffc04 	addi	r4,fp,-16
    1af0:	01400074 	movhi	r5,1
    1af4:	29401c04 	addi	r5,r5,112
    1af8:	0002c5c0 	call	2c5c <sprintf>
	print_block(buf, 4, HEX0_3);
    1afc:	e13ffc04 	addi	r4,fp,-16
    1b00:	01400104 	movi	r5,4
    1b04:	000d883a 	mov	r6,zero
    1b08:	00011b80 	call	11b8 <print_block>
}
    1b0c:	e037883a 	mov	sp,fp
    1b10:	dfc00117 	ldw	ra,4(sp)
    1b14:	df000017 	ldw	fp,0(sp)
    1b18:	dec00204 	addi	sp,sp,8
    1b1c:	f800283a 	ret

00001b20 <inst_load>:
void inst_load(enum Register reg, unsigned char memory_index){
    1b20:	defffc04 	addi	sp,sp,-16
    1b24:	dfc00315 	stw	ra,12(sp)
    1b28:	df000215 	stw	fp,8(sp)
    1b2c:	df000204 	addi	fp,sp,8
    1b30:	e13ffe15 	stw	r4,-8(fp)
    1b34:	e17fff05 	stb	r5,-4(fp)
	memory_load(memory_index, reg);
    1b38:	e13fff03 	ldbu	r4,-4(fp)
    1b3c:	e17ffe17 	ldw	r5,-8(fp)
    1b40:	000272c0 	call	272c <memory_load>
}
    1b44:	e037883a 	mov	sp,fp
    1b48:	dfc00117 	ldw	ra,4(sp)
    1b4c:	df000017 	ldw	fp,0(sp)
    1b50:	dec00204 	addi	sp,sp,8
    1b54:	f800283a 	ret

00001b58 <inst_store>:
void inst_store(enum Register reg, unsigned char memory_index){
    1b58:	defffc04 	addi	sp,sp,-16
    1b5c:	dfc00315 	stw	ra,12(sp)
    1b60:	df000215 	stw	fp,8(sp)
    1b64:	df000204 	addi	fp,sp,8
    1b68:	e13ffe15 	stw	r4,-8(fp)
    1b6c:	e17fff05 	stb	r5,-4(fp)
	memory_store(memory_index, reg);
    1b70:	e13fff03 	ldbu	r4,-4(fp)
    1b74:	e17ffe17 	ldw	r5,-8(fp)
    1b78:	00026900 	call	2690 <memory_store>
}
    1b7c:	e037883a 	mov	sp,fp
    1b80:	dfc00117 	ldw	ra,4(sp)
    1b84:	df000017 	ldw	fp,0(sp)
    1b88:	dec00204 	addi	sp,sp,8
    1b8c:	f800283a 	ret

00001b90 <inst_delay>:
void inst_delay(enum Register reg, unsigned char memory_index){
    1b90:	defffc04 	addi	sp,sp,-16
    1b94:	dfc00315 	stw	ra,12(sp)
    1b98:	df000215 	stw	fp,8(sp)
    1b9c:	df000204 	addi	fp,sp,8
    1ba0:	e13ffe15 	stw	r4,-8(fp)
    1ba4:	e17fff05 	stb	r5,-4(fp)
	//レジスタの値*10ms待つ
	usleep((int)global_registers[reg]*10000);
    1ba8:	e0fffe17 	ldw	r3,-8(fp)
    1bac:	00800074 	movhi	r2,1
    1bb0:	1090cd04 	addi	r2,r2,17204
    1bb4:	10c5883a 	add	r2,r2,r3
    1bb8:	10800003 	ldbu	r2,0(r2)
    1bbc:	11003fcc 	andi	r4,r2,255
    1bc0:	2100201c 	xori	r4,r4,128
    1bc4:	213fe004 	addi	r4,r4,-128
    1bc8:	0149c404 	movi	r5,10000
    1bcc:	0002c240 	call	2c24 <__mulsi3>
    1bd0:	1009883a 	mov	r4,r2
    1bd4:	000ce780 	call	ce78 <usleep>
}
    1bd8:	e037883a 	mov	sp,fp
    1bdc:	dfc00117 	ldw	ra,4(sp)
    1be0:	df000017 	ldw	fp,0(sp)
    1be4:	dec00204 	addi	sp,sp,8
    1be8:	f800283a 	ret

00001bec <inst_add>:
void inst_add(enum Register reg, unsigned char memory_index){
    1bec:	defffd04 	addi	sp,sp,-12
    1bf0:	df000215 	stw	fp,8(sp)
    1bf4:	df000204 	addi	fp,sp,8
    1bf8:	e13ffe15 	stw	r4,-8(fp)
    1bfc:	e17fff05 	stb	r5,-4(fp)
	global_registers[Sacc]+=global_registers[reg];
    1c00:	00800074 	movhi	r2,1
    1c04:	1090cd04 	addi	r2,r2,17204
    1c08:	10800143 	ldbu	r2,5(r2)
    1c0c:	1009883a 	mov	r4,r2
    1c10:	e0fffe17 	ldw	r3,-8(fp)
    1c14:	00800074 	movhi	r2,1
    1c18:	1090cd04 	addi	r2,r2,17204
    1c1c:	10c5883a 	add	r2,r2,r3
    1c20:	10800003 	ldbu	r2,0(r2)
    1c24:	2085883a 	add	r2,r4,r2
    1c28:	1007883a 	mov	r3,r2
    1c2c:	00800074 	movhi	r2,1
    1c30:	1090cd04 	addi	r2,r2,17204
    1c34:	10c00145 	stb	r3,5(r2)
}
    1c38:	e037883a 	mov	sp,fp
    1c3c:	df000017 	ldw	fp,0(sp)
    1c40:	dec00104 	addi	sp,sp,4
    1c44:	f800283a 	ret

00001c48 <inst_sub>:
void inst_sub(enum Register reg, unsigned char memory_index){
    1c48:	defffd04 	addi	sp,sp,-12
    1c4c:	df000215 	stw	fp,8(sp)
    1c50:	df000204 	addi	fp,sp,8
    1c54:	e13ffe15 	stw	r4,-8(fp)
    1c58:	e17fff05 	stb	r5,-4(fp)
	global_registers[Sacc]-=global_registers[reg];
    1c5c:	00800074 	movhi	r2,1
    1c60:	1090cd04 	addi	r2,r2,17204
    1c64:	10800143 	ldbu	r2,5(r2)
    1c68:	1009883a 	mov	r4,r2
    1c6c:	e0fffe17 	ldw	r3,-8(fp)
    1c70:	00800074 	movhi	r2,1
    1c74:	1090cd04 	addi	r2,r2,17204
    1c78:	10c5883a 	add	r2,r2,r3
    1c7c:	10800003 	ldbu	r2,0(r2)
    1c80:	2085c83a 	sub	r2,r4,r2
    1c84:	1007883a 	mov	r3,r2
    1c88:	00800074 	movhi	r2,1
    1c8c:	1090cd04 	addi	r2,r2,17204
    1c90:	10c00145 	stb	r3,5(r2)
}
    1c94:	e037883a 	mov	sp,fp
    1c98:	df000017 	ldw	fp,0(sp)
    1c9c:	dec00104 	addi	sp,sp,4
    1ca0:	f800283a 	ret

00001ca4 <inst_comp>:
void inst_comp(enum Register reg, unsigned char memory_index){
    1ca4:	defffd04 	addi	sp,sp,-12
    1ca8:	df000215 	stw	fp,8(sp)
    1cac:	df000204 	addi	fp,sp,8
    1cb0:	e13ffe15 	stw	r4,-8(fp)
    1cb4:	e17fff05 	stb	r5,-4(fp)
	if(global_registers[Sacc]==global_registers[reg]){
    1cb8:	00800074 	movhi	r2,1
    1cbc:	1090cd04 	addi	r2,r2,17204
    1cc0:	11000143 	ldbu	r4,5(r2)
    1cc4:	e0fffe17 	ldw	r3,-8(fp)
    1cc8:	00800074 	movhi	r2,1
    1ccc:	1090cd04 	addi	r2,r2,17204
    1cd0:	10c5883a 	add	r2,r2,r3
    1cd4:	10800003 	ldbu	r2,0(r2)
    1cd8:	20c03fcc 	andi	r3,r4,255
    1cdc:	18c0201c 	xori	r3,r3,128
    1ce0:	18ffe004 	addi	r3,r3,-128
    1ce4:	10803fcc 	andi	r2,r2,255
    1ce8:	1080201c 	xori	r2,r2,128
    1cec:	10bfe004 	addi	r2,r2,-128
    1cf0:	1880041e 	bne	r3,r2,1d04 <inst_comp+0x60>
		global_registers[Sflg]=0;
    1cf4:	00800074 	movhi	r2,1
    1cf8:	1090cd04 	addi	r2,r2,17204
    1cfc:	10000185 	stb	zero,6(r2)
    1d00:	00001806 	br	1d64 <inst_comp+0xc0>
	} else if(global_registers[Sacc] > global_registers[reg]){
    1d04:	00800074 	movhi	r2,1
    1d08:	1090cd04 	addi	r2,r2,17204
    1d0c:	11000143 	ldbu	r4,5(r2)
    1d10:	e0fffe17 	ldw	r3,-8(fp)
    1d14:	00800074 	movhi	r2,1
    1d18:	1090cd04 	addi	r2,r2,17204
    1d1c:	10c5883a 	add	r2,r2,r3
    1d20:	10800003 	ldbu	r2,0(r2)
    1d24:	20c03fcc 	andi	r3,r4,255
    1d28:	18c0201c 	xori	r3,r3,128
    1d2c:	18ffe004 	addi	r3,r3,-128
    1d30:	10803fcc 	andi	r2,r2,255
    1d34:	1080201c 	xori	r2,r2,128
    1d38:	10bfe004 	addi	r2,r2,-128
    1d3c:	10c0050e 	bge	r2,r3,1d54 <inst_comp+0xb0>
		global_registers[Sflg]=-1;
    1d40:	00c00074 	movhi	r3,1
    1d44:	18d0cd04 	addi	r3,r3,17204
    1d48:	00bfffc4 	movi	r2,-1
    1d4c:	18800185 	stb	r2,6(r3)
    1d50:	00000406 	br	1d64 <inst_comp+0xc0>
	}else{
		global_registers[Sflg]=1;
    1d54:	00c00074 	movhi	r3,1
    1d58:	18d0cd04 	addi	r3,r3,17204
    1d5c:	00800044 	movi	r2,1
    1d60:	18800185 	stb	r2,6(r3)
	}
}
    1d64:	e037883a 	mov	sp,fp
    1d68:	df000017 	ldw	fp,0(sp)
    1d6c:	dec00104 	addi	sp,sp,4
    1d70:	f800283a 	ret

00001d74 <inst_jeq>:
void inst_jeq(enum Register reg, unsigned char memory_index){
    1d74:	defffc04 	addi	sp,sp,-16
    1d78:	dfc00315 	stw	ra,12(sp)
    1d7c:	df000215 	stw	fp,8(sp)
    1d80:	df000204 	addi	fp,sp,8
    1d84:	e13ffe15 	stw	r4,-8(fp)
    1d88:	e17fff05 	stb	r5,-4(fp)
	if(global_registers[Sflg]==global_registers[reg]){
    1d8c:	00800074 	movhi	r2,1
    1d90:	1090cd04 	addi	r2,r2,17204
    1d94:	11000183 	ldbu	r4,6(r2)
    1d98:	e0fffe17 	ldw	r3,-8(fp)
    1d9c:	00800074 	movhi	r2,1
    1da0:	1090cd04 	addi	r2,r2,17204
    1da4:	10c5883a 	add	r2,r2,r3
    1da8:	10800003 	ldbu	r2,0(r2)
    1dac:	20c03fcc 	andi	r3,r4,255
    1db0:	18c0201c 	xori	r3,r3,128
    1db4:	18ffe004 	addi	r3,r3,-128
    1db8:	10803fcc 	andi	r2,r2,255
    1dbc:	1080201c 	xori	r2,r2,128
    1dc0:	10bfe004 	addi	r2,r2,-128
    1dc4:	1880011e 	bne	r3,r2,1dcc <inst_jeq+0x58>
		inc_pc();
    1dc8:	00027bc0 	call	27bc <inc_pc>
	}
}
    1dcc:	e037883a 	mov	sp,fp
    1dd0:	dfc00117 	ldw	ra,4(sp)
    1dd4:	df000017 	ldw	fp,0(sp)
    1dd8:	dec00204 	addi	sp,sp,8
    1ddc:	f800283a 	ret

00001de0 <inst_jne>:
void inst_jne(enum Register reg, unsigned char memory_index){
    1de0:	defffc04 	addi	sp,sp,-16
    1de4:	dfc00315 	stw	ra,12(sp)
    1de8:	df000215 	stw	fp,8(sp)
    1dec:	df000204 	addi	fp,sp,8
    1df0:	e13ffe15 	stw	r4,-8(fp)
    1df4:	e17fff05 	stb	r5,-4(fp)
	if(global_registers[Sflg]!=global_registers[reg]){
    1df8:	00800074 	movhi	r2,1
    1dfc:	1090cd04 	addi	r2,r2,17204
    1e00:	11000183 	ldbu	r4,6(r2)
    1e04:	e0fffe17 	ldw	r3,-8(fp)
    1e08:	00800074 	movhi	r2,1
    1e0c:	1090cd04 	addi	r2,r2,17204
    1e10:	10c5883a 	add	r2,r2,r3
    1e14:	10800003 	ldbu	r2,0(r2)
    1e18:	20c03fcc 	andi	r3,r4,255
    1e1c:	18c0201c 	xori	r3,r3,128
    1e20:	18ffe004 	addi	r3,r3,-128
    1e24:	10803fcc 	andi	r2,r2,255
    1e28:	1080201c 	xori	r2,r2,128
    1e2c:	10bfe004 	addi	r2,r2,-128
    1e30:	18800126 	beq	r3,r2,1e38 <inst_jne+0x58>
		inc_pc();
    1e34:	00027bc0 	call	27bc <inc_pc>
	}
}
    1e38:	e037883a 	mov	sp,fp
    1e3c:	dfc00117 	ldw	ra,4(sp)
    1e40:	df000017 	ldw	fp,0(sp)
    1e44:	dec00204 	addi	sp,sp,8
    1e48:	f800283a 	ret

00001e4c <inst_jieq>:
void inst_jieq(char im, unsigned char memory_index){
    1e4c:	defffc04 	addi	sp,sp,-16
    1e50:	dfc00315 	stw	ra,12(sp)
    1e54:	df000215 	stw	fp,8(sp)
    1e58:	df000204 	addi	fp,sp,8
    1e5c:	e13ffe05 	stb	r4,-8(fp)
    1e60:	e17fff05 	stb	r5,-4(fp)
	if(global_registers[Sflg]==im){
    1e64:	00800074 	movhi	r2,1
    1e68:	1090cd04 	addi	r2,r2,17204
    1e6c:	10800183 	ldbu	r2,6(r2)
    1e70:	10c03fcc 	andi	r3,r2,255
    1e74:	18c0201c 	xori	r3,r3,128
    1e78:	18ffe004 	addi	r3,r3,-128
    1e7c:	e0bffe07 	ldb	r2,-8(fp)
    1e80:	1880011e 	bne	r3,r2,1e88 <inst_jieq+0x3c>
		inc_pc();
    1e84:	00027bc0 	call	27bc <inc_pc>
	}
}
    1e88:	e037883a 	mov	sp,fp
    1e8c:	dfc00117 	ldw	ra,4(sp)
    1e90:	df000017 	ldw	fp,0(sp)
    1e94:	dec00204 	addi	sp,sp,8
    1e98:	f800283a 	ret

00001e9c <inst_jine>:
void inst_jine(char im, unsigned char memory_index){
    1e9c:	defffc04 	addi	sp,sp,-16
    1ea0:	dfc00315 	stw	ra,12(sp)
    1ea4:	df000215 	stw	fp,8(sp)
    1ea8:	df000204 	addi	fp,sp,8
    1eac:	e13ffe05 	stb	r4,-8(fp)
    1eb0:	e17fff05 	stb	r5,-4(fp)
	if(global_registers[Sflg]!=im){
    1eb4:	00800074 	movhi	r2,1
    1eb8:	1090cd04 	addi	r2,r2,17204
    1ebc:	10800183 	ldbu	r2,6(r2)
    1ec0:	10c03fcc 	andi	r3,r2,255
    1ec4:	18c0201c 	xori	r3,r3,128
    1ec8:	18ffe004 	addi	r3,r3,-128
    1ecc:	e0bffe07 	ldb	r2,-8(fp)
    1ed0:	18800126 	beq	r3,r2,1ed8 <inst_jine+0x3c>
		inc_pc();
    1ed4:	00027bc0 	call	27bc <inc_pc>
	}
}
    1ed8:	e037883a 	mov	sp,fp
    1edc:	dfc00117 	ldw	ra,4(sp)
    1ee0:	df000017 	ldw	fp,0(sp)
    1ee4:	dec00204 	addi	sp,sp,8
    1ee8:	f800283a 	ret

00001eec <lcd_init>:
#include <unistd.h>
#include "system.h"
#include "LCD.h"

// LCDの初期化
void lcd_init() {
    1eec:	defffe04 	addi	sp,sp,-8
    1ef0:	dfc00115 	stw	ra,4(sp)
    1ef4:	df000015 	stw	fp,0(sp)
    1ef8:	d839883a 	mov	fp,sp
	*lcd_on = 1;
    1efc:	00c00134 	movhi	r3,4
    1f00:	18c40404 	addi	r3,r3,4112
    1f04:	00800044 	movi	r2,1
    1f08:	18800005 	stb	r2,0(r3)
	*lcd_blon = 1;
    1f0c:	00c00134 	movhi	r3,4
    1f10:	18c40804 	addi	r3,r3,4128
    1f14:	00800044 	movi	r2,1
    1f18:	18800005 	stb	r2,0(r3)
	LCD_Init();
    1f1c:	00001f00 	call	1f0 <LCD_Init>
}
    1f20:	e037883a 	mov	sp,fp
    1f24:	dfc00117 	ldw	ra,4(sp)
    1f28:	df000017 	ldw	fp,0(sp)
    1f2c:	dec00204 	addi	sp,sp,8
    1f30:	f800283a 	ret

00001f34 <lcd_caret_reset>:

// LCDのキャレットを1行目のはじめに移動する
void lcd_caret_reset() {
    1f34:	defffe04 	addi	sp,sp,-8
    1f38:	dfc00115 	stw	ra,4(sp)
    1f3c:	df000015 	stw	fp,0(sp)
    1f40:	d839883a 	mov	fp,sp
	LCD_Init();
    1f44:	00001f00 	call	1f0 <LCD_Init>
}
    1f48:	e037883a 	mov	sp,fp
    1f4c:	dfc00117 	ldw	ra,4(sp)
    1f50:	df000017 	ldw	fp,0(sp)
    1f54:	dec00204 	addi	sp,sp,8
    1f58:	f800283a 	ret

00001f5c <lcd_caret_reset2>:

// LCDのキャレットを2行目のはじめに移動する
void lcd_caret_reset2() {
    1f5c:	defffe04 	addi	sp,sp,-8
    1f60:	dfc00115 	stw	ra,4(sp)
    1f64:	df000015 	stw	fp,0(sp)
    1f68:	d839883a 	mov	fp,sp
	LCD_Line2();
    1f6c:	00003140 	call	314 <LCD_Line2>
}
    1f70:	e037883a 	mov	sp,fp
    1f74:	dfc00117 	ldw	ra,4(sp)
    1f78:	df000017 	ldw	fp,0(sp)
    1f7c:	dec00204 	addi	sp,sp,8
    1f80:	f800283a 	ret

00001f84 <lcd_print>:

// LCDに文字を表示する
void lcd_print(const char *str) {
    1f84:	defffd04 	addi	sp,sp,-12
    1f88:	dfc00215 	stw	ra,8(sp)
    1f8c:	df000115 	stw	fp,4(sp)
    1f90:	df000104 	addi	fp,sp,4
    1f94:	e13fff15 	stw	r4,-4(fp)
	LCD_Show_Text(str);
    1f98:	e13fff17 	ldw	r4,-4(fp)
    1f9c:	000028c0 	call	28c <LCD_Show_Text>
}
    1fa0:	e037883a 	mov	sp,fp
    1fa4:	dfc00117 	ldw	ra,4(sp)
    1fa8:	df000017 	ldw	fp,0(sp)
    1fac:	dec00204 	addi	sp,sp,8
    1fb0:	f800283a 	ret

00001fb4 <display_inst>:
#include "sys_debug.h"
#include <stdio.h>
#include "lcd_out.h"
#include <unistd.h>

void display_inst(struct InstRec inst, unsigned int pc) {
    1fb4:	defff504 	addi	sp,sp,-44
    1fb8:	dfc00a15 	stw	ra,40(sp)
    1fbc:	df000915 	stw	fp,36(sp)
    1fc0:	df000904 	addi	fp,sp,36
    1fc4:	e13ffe15 	stw	r4,-8(fp)
    1fc8:	e17fff15 	stw	r5,-4(fp)
	char inst_name[INST_NAME_ARRAY_LEN];	// 命令名
	char reg_name[REG_NAME_ARRAY_LEN];		// レジスタ名
	char buf[17];

	// 命令の名前の取得
	convertInstName(inst_name, inst.inst);
    1fcc:	e0bffe17 	ldw	r2,-8(fp)
    1fd0:	108003cc 	andi	r2,r2,15
    1fd4:	11403fcc 	andi	r5,r2,255
    1fd8:	e13ff704 	addi	r4,fp,-36
    1fdc:	000223c0 	call	223c <convertInstName>
	// レジスタの名前の取得
	convertRegName(reg_name, inst.regi);
    1fe0:	e0bffe17 	ldw	r2,-8(fp)
    1fe4:	1004d23a 	srli	r2,r2,8
    1fe8:	108003cc 	andi	r2,r2,15
    1fec:	11403fcc 	andi	r5,r2,255
    1ff0:	e13ff844 	addi	r4,fp,-31
    1ff4:	00020cc0 	call	20cc <convertRegName>

	lcd_caret_reset();
    1ff8:	0001f340 	call	1f34 <lcd_caret_reset>
	sprintf(buf, "PC:0x%02x -> %4s",pc,inst_name);
    1ffc:	e13ff944 	addi	r4,fp,-27
    2000:	01400074 	movhi	r5,1
    2004:	29401e04 	addi	r5,r5,120
    2008:	e1bfff17 	ldw	r6,-4(fp)
    200c:	e1fff704 	addi	r7,fp,-36
    2010:	0002c5c0 	call	2c5c <sprintf>
	lcd_print(buf);
    2014:	e13ff944 	addi	r4,fp,-27
    2018:	0001f840 	call	1f84 <lcd_print>
	lcd_caret_reset2();
    201c:	0001f5c0 	call	1f5c <lcd_caret_reset2>
	sprintf(buf, "REG:%3s,MEM:0x%1x",reg_name,inst.memi);
    2020:	e0bffe17 	ldw	r2,-8(fp)
    2024:	1004d13a 	srli	r2,r2,4
    2028:	108003cc 	andi	r2,r2,15
    202c:	11c03fcc 	andi	r7,r2,255
    2030:	e13ff944 	addi	r4,fp,-27
    2034:	e1bff844 	addi	r6,fp,-31
    2038:	01400074 	movhi	r5,1
    203c:	29402304 	addi	r5,r5,140
    2040:	0002c5c0 	call	2c5c <sprintf>
	lcd_print(buf);
    2044:	e13ff944 	addi	r4,fp,-27
    2048:	0001f840 	call	1f84 <lcd_print>
}
    204c:	e037883a 	mov	sp,fp
    2050:	dfc00117 	ldw	ra,4(sp)
    2054:	df000017 	ldw	fp,0(sp)
    2058:	dec00204 	addi	sp,sp,8
    205c:	f800283a 	ret

00002060 <display_mem>:

void display_mem(unsigned char memi, char memv) {
    2060:	defff704 	addi	sp,sp,-36
    2064:	dfc00815 	stw	ra,32(sp)
    2068:	df000715 	stw	fp,28(sp)
    206c:	df000704 	addi	fp,sp,28
    2070:	e13ffe05 	stb	r4,-8(fp)
    2074:	e17fff05 	stb	r5,-4(fp)
	char buf[17];

	lcd_caret_reset();
    2078:	0001f340 	call	1f34 <lcd_caret_reset>
	sprintf(buf, "MEM:0x%1x",memi);
    207c:	e1bffe03 	ldbu	r6,-8(fp)
    2080:	e13ff904 	addi	r4,fp,-28
    2084:	01400074 	movhi	r5,1
    2088:	29402804 	addi	r5,r5,160
    208c:	0002c5c0 	call	2c5c <sprintf>
	lcd_print(buf);
    2090:	e13ff904 	addi	r4,fp,-28
    2094:	0001f840 	call	1f84 <lcd_print>
	lcd_caret_reset2();
    2098:	0001f5c0 	call	1f5c <lcd_caret_reset2>
	sprintf(buf, "value:%d",memv);
    209c:	e1bfff07 	ldb	r6,-4(fp)
    20a0:	e13ff904 	addi	r4,fp,-28
    20a4:	01400074 	movhi	r5,1
    20a8:	29402b04 	addi	r5,r5,172
    20ac:	0002c5c0 	call	2c5c <sprintf>
	lcd_print(buf);
    20b0:	e13ff904 	addi	r4,fp,-28
    20b4:	0001f840 	call	1f84 <lcd_print>
}
    20b8:	e037883a 	mov	sp,fp
    20bc:	dfc00117 	ldw	ra,4(sp)
    20c0:	df000017 	ldw	fp,0(sp)
    20c4:	dec00204 	addi	sp,sp,8
    20c8:	f800283a 	ret

000020cc <convertRegName>:

void convertRegName(char reg_name[REG_NAME_ARRAY_LEN], enum Register reg_code) {
    20cc:	defffd04 	addi	sp,sp,-12
    20d0:	df000215 	stw	fp,8(sp)
    20d4:	df000204 	addi	fp,sp,8
    20d8:	e13ffe15 	stw	r4,-8(fp)
    20dc:	e17fff15 	stw	r5,-4(fp)
	switch(reg_code) {
    20e0:	e0bfff17 	ldw	r2,-4(fp)
    20e4:	108001e8 	cmpgeui	r2,r2,7
    20e8:	1000481e 	bne	r2,zero,220c <convertRegName+0x140>
    20ec:	e0bfff17 	ldw	r2,-4(fp)
    20f0:	1085883a 	add	r2,r2,r2
    20f4:	1087883a 	add	r3,r2,r2
    20f8:	00800034 	movhi	r2,0
    20fc:	10884304 	addi	r2,r2,8460
    2100:	1885883a 	add	r2,r3,r2
    2104:	10800017 	ldw	r2,0(r2)
    2108:	1000683a 	jmp	r2
    210c:	00002128 	cmpgeui	zero,zero,132
    2110:	00002144 	movi	zero,133
    2114:	00002160 	cmpeqi	zero,zero,133
    2118:	0000217c 	xorhi	zero,zero,133
    211c:	000021a0 	cmpeqi	zero,zero,134
    2120:	000021c4 	movi	zero,135
    2124:	000021e8 	cmpgeui	zero,zero,135
	case Szero:
		sprintf(reg_name, STRING_REG_ZERO);
    2128:	e0bffe17 	ldw	r2,-8(fp)
    212c:	00c01684 	movi	r3,90
    2130:	10c00005 	stb	r3,0(r2)
    2134:	00c01144 	movi	r3,69
    2138:	10c00045 	stb	r3,1(r2)
    213c:	10000085 	stb	zero,2(r2)
		break;
    2140:	00003a06 	br	222c <convertRegName+0x160>
	case Spc:
		sprintf(reg_name, STRING_REG_PC);
    2144:	e0bffe17 	ldw	r2,-8(fp)
    2148:	00c01404 	movi	r3,80
    214c:	10c00005 	stb	r3,0(r2)
    2150:	00c010c4 	movi	r3,67
    2154:	10c00045 	stb	r3,1(r2)
    2158:	10000085 	stb	zero,2(r2)
		break;
    215c:	00003306 	br	222c <convertRegName+0x160>
	case Ssp:
		sprintf(reg_name, STRING_REG_SP);
    2160:	e0bffe17 	ldw	r2,-8(fp)
    2164:	00c014c4 	movi	r3,83
    2168:	10c00005 	stb	r3,0(r2)
    216c:	00c01404 	movi	r3,80
    2170:	10c00045 	stb	r3,1(r2)
    2174:	10000085 	stb	zero,2(r2)
		break;
    2178:	00002c06 	br	222c <convertRegName+0x160>
	case Sgp0:
		sprintf(reg_name, STRING_REG_GP0);
    217c:	e0fffe17 	ldw	r3,-8(fp)
    2180:	008011c4 	movi	r2,71
    2184:	18800005 	stb	r2,0(r3)
    2188:	00801404 	movi	r2,80
    218c:	18800045 	stb	r2,1(r3)
    2190:	00800c04 	movi	r2,48
    2194:	18800085 	stb	r2,2(r3)
    2198:	180000c5 	stb	zero,3(r3)
		break;
    219c:	00002306 	br	222c <convertRegName+0x160>
	case Sgp1:
		sprintf(reg_name, STRING_REG_GP1);
    21a0:	e0fffe17 	ldw	r3,-8(fp)
    21a4:	008011c4 	movi	r2,71
    21a8:	18800005 	stb	r2,0(r3)
    21ac:	00801404 	movi	r2,80
    21b0:	18800045 	stb	r2,1(r3)
    21b4:	00800c44 	movi	r2,49
    21b8:	18800085 	stb	r2,2(r3)
    21bc:	180000c5 	stb	zero,3(r3)
		break;
    21c0:	00001a06 	br	222c <convertRegName+0x160>
	case Sacc:
		sprintf(reg_name, STRING_REG_ACC);
    21c4:	e0fffe17 	ldw	r3,-8(fp)
    21c8:	00801044 	movi	r2,65
    21cc:	18800005 	stb	r2,0(r3)
    21d0:	008010c4 	movi	r2,67
    21d4:	18800045 	stb	r2,1(r3)
    21d8:	008010c4 	movi	r2,67
    21dc:	18800085 	stb	r2,2(r3)
    21e0:	180000c5 	stb	zero,3(r3)
		break;
    21e4:	00001106 	br	222c <convertRegName+0x160>
	case Sflg:
		sprintf(reg_name, STRING_REG_FLG);
    21e8:	e0fffe17 	ldw	r3,-8(fp)
    21ec:	00801184 	movi	r2,70
    21f0:	18800005 	stb	r2,0(r3)
    21f4:	00801304 	movi	r2,76
    21f8:	18800045 	stb	r2,1(r3)
    21fc:	008011c4 	movi	r2,71
    2200:	18800085 	stb	r2,2(r3)
    2204:	180000c5 	stb	zero,3(r3)
		break;
    2208:	00000806 	br	222c <convertRegName+0x160>
	default:
		sprintf(reg_name, "non");
    220c:	e0fffe17 	ldw	r3,-8(fp)
    2210:	00801b84 	movi	r2,110
    2214:	18800005 	stb	r2,0(r3)
    2218:	00801bc4 	movi	r2,111
    221c:	18800045 	stb	r2,1(r3)
    2220:	00801b84 	movi	r2,110
    2224:	18800085 	stb	r2,2(r3)
    2228:	180000c5 	stb	zero,3(r3)
		break;
	}
}
    222c:	e037883a 	mov	sp,fp
    2230:	df000017 	ldw	fp,0(sp)
    2234:	dec00104 	addi	sp,sp,4
    2238:	f800283a 	ret

0000223c <convertInstName>:


void convertInstName(char inst_name[INST_NAME_ARRAY_LEN], unsigned char inst_code) {
    223c:	defffc04 	addi	sp,sp,-16
    2240:	df000315 	stw	fp,12(sp)
    2244:	df000304 	addi	fp,sp,12
    2248:	e13ffd15 	stw	r4,-12(fp)
    224c:	e17ffe05 	stb	r5,-8(fp)
	switch(inst_code) {
    2250:	e0bffe03 	ldbu	r2,-8(fp)
    2254:	e0bfff15 	stw	r2,-4(fp)
    2258:	e0ffff17 	ldw	r3,-4(fp)
    225c:	18800368 	cmpgeui	r2,r3,13
    2260:	1000991e 	bne	r2,zero,24c8 <convertInstName+0x28c>
    2264:	e13fff17 	ldw	r4,-4(fp)
    2268:	e13fff17 	ldw	r4,-4(fp)
    226c:	2105883a 	add	r2,r4,r4
    2270:	1087883a 	add	r3,r2,r2
    2274:	00800034 	movhi	r2,0
    2278:	1088a204 	addi	r2,r2,8840
    227c:	1885883a 	add	r2,r3,r2
    2280:	10800017 	ldw	r2,0(r2)
    2284:	1000683a 	jmp	r2
    2288:	000022bc 	xorhi	zero,zero,138
    228c:	000022e0 	cmpeqi	zero,zero,139
    2290:	0000230c 	andi	zero,zero,140
    2294:	00002330 	cmpltui	zero,zero,140
    2298:	0000235c 	xori	zero,zero,141
    229c:	00002388 	cmpgei	zero,zero,142
    22a0:	000023b4 	movhi	zero,142
    22a4:	000023fc 	xorhi	zero,zero,143
    22a8:	00002428 	cmpgeui	zero,zero,144
    22ac:	0000244c 	andi	zero,zero,145
    22b0:	00002470 	cmpltui	zero,zero,145
    22b4:	0000249c 	xori	zero,zero,146
    22b8:	000023d8 	cmpnei	zero,zero,143
	case INST_END:
		sprintf(inst_name, STRING_INST_END);
    22bc:	e0fffd17 	ldw	r3,-12(fp)
    22c0:	00801144 	movi	r2,69
    22c4:	18800005 	stb	r2,0(r3)
    22c8:	00801384 	movi	r2,78
    22cc:	18800045 	stb	r2,1(r3)
    22d0:	00801104 	movi	r2,68
    22d4:	18800085 	stb	r2,2(r3)
    22d8:	180000c5 	stb	zero,3(r3)
		break;
    22dc:	00008406 	br	24f0 <convertInstName+0x2b4>
	case INST_JUMP:
		sprintf(inst_name, STRING_INST_JUMP);
    22e0:	e0fffd17 	ldw	r3,-12(fp)
    22e4:	00801284 	movi	r2,74
    22e8:	18800005 	stb	r2,0(r3)
    22ec:	00801544 	movi	r2,85
    22f0:	18800045 	stb	r2,1(r3)
    22f4:	00801344 	movi	r2,77
    22f8:	18800085 	stb	r2,2(r3)
    22fc:	00801404 	movi	r2,80
    2300:	188000c5 	stb	r2,3(r3)
    2304:	18000105 	stb	zero,4(r3)
		break;
    2308:	00007906 	br	24f0 <convertInstName+0x2b4>
	case INST_OUTPUT:
		sprintf(inst_name, STRING_INST_OUTPUT);
    230c:	e0fffd17 	ldw	r3,-12(fp)
    2310:	008013c4 	movi	r2,79
    2314:	18800005 	stb	r2,0(r3)
    2318:	00801544 	movi	r2,85
    231c:	18800045 	stb	r2,1(r3)
    2320:	00801504 	movi	r2,84
    2324:	18800085 	stb	r2,2(r3)
    2328:	180000c5 	stb	zero,3(r3)
		break;
    232c:	00007006 	br	24f0 <convertInstName+0x2b4>
	case INST_LOAD:
		sprintf(inst_name, STRING_INST_LOAD);
    2330:	e0fffd17 	ldw	r3,-12(fp)
    2334:	00801304 	movi	r2,76
    2338:	18800005 	stb	r2,0(r3)
    233c:	008013c4 	movi	r2,79
    2340:	18800045 	stb	r2,1(r3)
    2344:	00801044 	movi	r2,65
    2348:	18800085 	stb	r2,2(r3)
    234c:	00801104 	movi	r2,68
    2350:	188000c5 	stb	r2,3(r3)
    2354:	18000105 	stb	zero,4(r3)
		break;
    2358:	00006506 	br	24f0 <convertInstName+0x2b4>
	case INST_STORE:
		sprintf(inst_name, STRING_INST_STORE);
    235c:	e0fffd17 	ldw	r3,-12(fp)
    2360:	008014c4 	movi	r2,83
    2364:	18800005 	stb	r2,0(r3)
    2368:	00801504 	movi	r2,84
    236c:	18800045 	stb	r2,1(r3)
    2370:	008013c4 	movi	r2,79
    2374:	18800085 	stb	r2,2(r3)
    2378:	00801484 	movi	r2,82
    237c:	188000c5 	stb	r2,3(r3)
    2380:	18000105 	stb	zero,4(r3)
		break;
    2384:	00005a06 	br	24f0 <convertInstName+0x2b4>
	case INST_DELAY:
		sprintf(inst_name, STRING_INST_DELAY);
    2388:	e0fffd17 	ldw	r3,-12(fp)
    238c:	00801104 	movi	r2,68
    2390:	18800005 	stb	r2,0(r3)
    2394:	00801144 	movi	r2,69
    2398:	18800045 	stb	r2,1(r3)
    239c:	00801304 	movi	r2,76
    23a0:	18800085 	stb	r2,2(r3)
    23a4:	00801644 	movi	r2,89
    23a8:	188000c5 	stb	r2,3(r3)
    23ac:	18000105 	stb	zero,4(r3)
		break;
    23b0:	00004f06 	br	24f0 <convertInstName+0x2b4>
	case INST_ADD:
		sprintf(inst_name, STRING_INST_ADD);
    23b4:	e0fffd17 	ldw	r3,-12(fp)
    23b8:	00801044 	movi	r2,65
    23bc:	18800005 	stb	r2,0(r3)
    23c0:	00801104 	movi	r2,68
    23c4:	18800045 	stb	r2,1(r3)
    23c8:	00801104 	movi	r2,68
    23cc:	18800085 	stb	r2,2(r3)
    23d0:	180000c5 	stb	zero,3(r3)
		break;
    23d4:	00004606 	br	24f0 <convertInstName+0x2b4>
	case INST_SUB:
		sprintf(inst_name, STRING_INST_SUB);
    23d8:	e0fffd17 	ldw	r3,-12(fp)
    23dc:	008014c4 	movi	r2,83
    23e0:	18800005 	stb	r2,0(r3)
    23e4:	00801544 	movi	r2,85
    23e8:	18800045 	stb	r2,1(r3)
    23ec:	00801084 	movi	r2,66
    23f0:	18800085 	stb	r2,2(r3)
    23f4:	180000c5 	stb	zero,3(r3)
		break;
    23f8:	00003d06 	br	24f0 <convertInstName+0x2b4>
	case INST_COMP:
		sprintf(inst_name, STRING_INST_COMP);
    23fc:	e0fffd17 	ldw	r3,-12(fp)
    2400:	008010c4 	movi	r2,67
    2404:	18800005 	stb	r2,0(r3)
    2408:	008013c4 	movi	r2,79
    240c:	18800045 	stb	r2,1(r3)
    2410:	00801344 	movi	r2,77
    2414:	18800085 	stb	r2,2(r3)
    2418:	00801404 	movi	r2,80
    241c:	188000c5 	stb	r2,3(r3)
    2420:	18000105 	stb	zero,4(r3)
		break;
    2424:	00003206 	br	24f0 <convertInstName+0x2b4>
	case INST_JEQ:
		sprintf(inst_name, STRING_INST_JEQ);
    2428:	e0fffd17 	ldw	r3,-12(fp)
    242c:	00801284 	movi	r2,74
    2430:	18800005 	stb	r2,0(r3)
    2434:	00801144 	movi	r2,69
    2438:	18800045 	stb	r2,1(r3)
    243c:	00801444 	movi	r2,81
    2440:	18800085 	stb	r2,2(r3)
    2444:	180000c5 	stb	zero,3(r3)
		break;
    2448:	00002906 	br	24f0 <convertInstName+0x2b4>
	case INST_JNE:
		sprintf(inst_name, STRING_INST_JNE);
    244c:	e0fffd17 	ldw	r3,-12(fp)
    2450:	00801284 	movi	r2,74
    2454:	18800005 	stb	r2,0(r3)
    2458:	00801384 	movi	r2,78
    245c:	18800045 	stb	r2,1(r3)
    2460:	00801144 	movi	r2,69
    2464:	18800085 	stb	r2,2(r3)
    2468:	180000c5 	stb	zero,3(r3)
		break;
    246c:	00002006 	br	24f0 <convertInstName+0x2b4>
	case INST_JIEQ:
		sprintf(inst_name, STRING_INST_JIEQ);
    2470:	e0fffd17 	ldw	r3,-12(fp)
    2474:	00801284 	movi	r2,74
    2478:	18800005 	stb	r2,0(r3)
    247c:	00801244 	movi	r2,73
    2480:	18800045 	stb	r2,1(r3)
    2484:	00801144 	movi	r2,69
    2488:	18800085 	stb	r2,2(r3)
    248c:	00801444 	movi	r2,81
    2490:	188000c5 	stb	r2,3(r3)
    2494:	18000105 	stb	zero,4(r3)
		break;
    2498:	00001506 	br	24f0 <convertInstName+0x2b4>
	case INST_JINE:
		sprintf(inst_name, STRING_INST_JINE);
    249c:	e0fffd17 	ldw	r3,-12(fp)
    24a0:	00801284 	movi	r2,74
    24a4:	18800005 	stb	r2,0(r3)
    24a8:	00801244 	movi	r2,73
    24ac:	18800045 	stb	r2,1(r3)
    24b0:	00801384 	movi	r2,78
    24b4:	18800085 	stb	r2,2(r3)
    24b8:	00801144 	movi	r2,69
    24bc:	188000c5 	stb	r2,3(r3)
    24c0:	18000105 	stb	zero,4(r3)
		break;
    24c4:	00000a06 	br	24f0 <convertInstName+0x2b4>
	default:
		sprintf(inst_name, "NoOp");
    24c8:	e0fffd17 	ldw	r3,-12(fp)
    24cc:	00801384 	movi	r2,78
    24d0:	18800005 	stb	r2,0(r3)
    24d4:	00801bc4 	movi	r2,111
    24d8:	18800045 	stb	r2,1(r3)
    24dc:	008013c4 	movi	r2,79
    24e0:	18800085 	stb	r2,2(r3)
    24e4:	00801c04 	movi	r2,112
    24e8:	188000c5 	stb	r2,3(r3)
    24ec:	18000105 	stb	zero,4(r3)
		break;
	}
}
    24f0:	e037883a 	mov	sp,fp
    24f4:	df000017 	ldw	fp,0(sp)
    24f8:	dec00104 	addi	sp,sp,4
    24fc:	f800283a 	ret

00002500 <delay10ms>:

void delay10ms(unsigned int s) {
    2500:	defffd04 	addi	sp,sp,-12
    2504:	dfc00215 	stw	ra,8(sp)
    2508:	df000115 	stw	fp,4(sp)
    250c:	df000104 	addi	fp,sp,4
    2510:	e13fff15 	stw	r4,-4(fp)
	usleep(s*10000);
    2514:	e13fff17 	ldw	r4,-4(fp)
    2518:	0149c404 	movi	r5,10000
    251c:	0002c240 	call	2c24 <__mulsi3>
    2520:	1009883a 	mov	r4,r2
    2524:	000ce780 	call	ce78 <usleep>
}
    2528:	e037883a 	mov	sp,fp
    252c:	dfc00117 	ldw	ra,4(sp)
    2530:	df000017 	ldw	fp,0(sp)
    2534:	dec00204 	addi	sp,sp,8
    2538:	f800283a 	ret

0000253c <panic>:
 *      Author: takayun
 */
#include "system.h"
#include "hex_out.h"

void panic() {
    253c:	defffe04 	addi	sp,sp,-8
    2540:	dfc00115 	stw	ra,4(sp)
    2544:	df000015 	stw	fp,0(sp)
    2548:	d839883a 	mov	fp,sp
	clear_block(HEX0_3);
    254c:	0009883a 	mov	r4,zero
    2550:	00013480 	call	1348 <clear_block>
	print_block("err ", 4, HEX0_3);
    2554:	01000074 	movhi	r4,1
    2558:	21002e04 	addi	r4,r4,184
    255c:	01400104 	movi	r5,4
    2560:	000d883a 	mov	r6,zero
    2564:	00011b80 	call	11b8 <print_block>
}
    2568:	e037883a 	mov	sp,fp
    256c:	dfc00117 	ldw	ra,4(sp)
    2570:	df000017 	ldw	fp,0(sp)
    2574:	dec00204 	addi	sp,sp,8
    2578:	f800283a 	ret

0000257c <memory_init>:

/**************************************************
 *						Impl
 **************************************************/

void memory_init() {
    257c:	defffd04 	addi	sp,sp,-12
    2580:	df000215 	stw	fp,8(sp)
    2584:	df000204 	addi	fp,sp,8
	int i, j;
	for (i = 0; i < MEMS_COUNT; i++)
    2588:	e03fff15 	stw	zero,-4(fp)
    258c:	00001306 	br	25dc <memory_init+0x60>
	for (j = 0; j < MEM_SIZE; j++) {
    2590:	e03ffe15 	stw	zero,-8(fp)
    2594:	00000b06 	br	25c4 <memory_init+0x48>
		memory[i][j] = 0;
    2598:	e0bfff17 	ldw	r2,-4(fp)
    259c:	e13ffe17 	ldw	r4,-8(fp)
    25a0:	00c00074 	movhi	r3,1
    25a4:	18cf8304 	addi	r3,r3,15884
    25a8:	1004913a 	slli	r2,r2,4
    25ac:	10c5883a 	add	r2,r2,r3
    25b0:	1105883a 	add	r2,r2,r4
    25b4:	10000005 	stb	zero,0(r2)
 **************************************************/

void memory_init() {
	int i, j;
	for (i = 0; i < MEMS_COUNT; i++)
	for (j = 0; j < MEM_SIZE; j++) {
    25b8:	e0bffe17 	ldw	r2,-8(fp)
    25bc:	10800044 	addi	r2,r2,1
    25c0:	e0bffe15 	stw	r2,-8(fp)
    25c4:	e0bffe17 	ldw	r2,-8(fp)
    25c8:	10800410 	cmplti	r2,r2,16
    25cc:	103ff21e 	bne	r2,zero,2598 <memory_init+0x1c>
 *						Impl
 **************************************************/

void memory_init() {
	int i, j;
	for (i = 0; i < MEMS_COUNT; i++)
    25d0:	e0bfff17 	ldw	r2,-4(fp)
    25d4:	10800044 	addi	r2,r2,1
    25d8:	e0bfff15 	stw	r2,-4(fp)
    25dc:	e0bfff17 	ldw	r2,-4(fp)
    25e0:	10800410 	cmplti	r2,r2,16
    25e4:	103fea1e 	bne	r2,zero,2590 <memory_init+0x14>
	for (j = 0; j < MEM_SIZE; j++) {
		memory[i][j] = 0;
	}
}
    25e8:	e037883a 	mov	sp,fp
    25ec:	df000017 	ldw	fp,0(sp)
    25f0:	dec00104 	addi	sp,sp,4
    25f4:	f800283a 	ret

000025f8 <inst_memory_store>:

void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){
    25f8:	defffd04 	addi	sp,sp,-12
    25fc:	df000215 	stw	fp,8(sp)
    2600:	df000204 	addi	fp,sp,8
    2604:	e13ffe15 	stw	r4,-8(fp)
    2608:	e17fff15 	stw	r5,-4(fp)
	inst_memory[global_current_memory][mem_addr] = inst_rec;
    260c:	d0a6f917 	ldw	r2,-25628(gp)
    2610:	e0fffe17 	ldw	r3,-8(fp)
    2614:	01000074 	movhi	r4,1
    2618:	210fc304 	addi	r4,r4,16140
    261c:	1004913a 	slli	r2,r2,4
    2620:	10c5883a 	add	r2,r2,r3
    2624:	1085883a 	add	r2,r2,r2
    2628:	1085883a 	add	r2,r2,r2
    262c:	1107883a 	add	r3,r2,r4
    2630:	e0bfff17 	ldw	r2,-4(fp)
    2634:	18800015 	stw	r2,0(r3)
}
    2638:	e037883a 	mov	sp,fp
    263c:	df000017 	ldw	fp,0(sp)
    2640:	dec00104 	addi	sp,sp,4
    2644:	f800283a 	ret

00002648 <inst_memory_load>:
struct InstRec inst_memory_load(unsigned int mem_addr){
    2648:	defffe04 	addi	sp,sp,-8
    264c:	df000115 	stw	fp,4(sp)
    2650:	df000104 	addi	fp,sp,4
    2654:	e13fff15 	stw	r4,-4(fp)
	return inst_memory[global_current_memory][mem_addr];
    2658:	d0a6f917 	ldw	r2,-25628(gp)
    265c:	e0ffff17 	ldw	r3,-4(fp)
    2660:	01000074 	movhi	r4,1
    2664:	210fc304 	addi	r4,r4,16140
    2668:	1004913a 	slli	r2,r2,4
    266c:	10c5883a 	add	r2,r2,r3
    2670:	1085883a 	add	r2,r2,r2
    2674:	1085883a 	add	r2,r2,r2
    2678:	1105883a 	add	r2,r2,r4
    267c:	10800017 	ldw	r2,0(r2)
}
    2680:	e037883a 	mov	sp,fp
    2684:	df000017 	ldw	fp,0(sp)
    2688:	dec00104 	addi	sp,sp,4
    268c:	f800283a 	ret

00002690 <memory_store>:

char memory_store(unsigned int mem_addr, enum Register reg) {
    2690:	defffc04 	addi	sp,sp,-16
    2694:	dfc00315 	stw	ra,12(sp)
    2698:	df000215 	stw	fp,8(sp)
    269c:	df000204 	addi	fp,sp,8
    26a0:	e13ffe15 	stw	r4,-8(fp)
    26a4:	e17fff15 	stw	r5,-4(fp)
	if (!(mem_addr < MEM_SIZE)) panic();
    26a8:	e0bffe17 	ldw	r2,-8(fp)
    26ac:	10800430 	cmpltui	r2,r2,16
    26b0:	1000011e 	bne	r2,zero,26b8 <memory_store+0x28>
    26b4:	000253c0 	call	253c <panic>
	memory[global_current_memory][mem_addr] = global_registers[reg];
    26b8:	d166f917 	ldw	r5,-25628(gp)
    26bc:	e1bffe17 	ldw	r6,-8(fp)
    26c0:	e0ffff17 	ldw	r3,-4(fp)
    26c4:	00800074 	movhi	r2,1
    26c8:	1090cd04 	addi	r2,r2,17204
    26cc:	10c5883a 	add	r2,r2,r3
    26d0:	11000003 	ldbu	r4,0(r2)
    26d4:	00c00074 	movhi	r3,1
    26d8:	18cf8304 	addi	r3,r3,15884
    26dc:	2804913a 	slli	r2,r5,4
    26e0:	10c5883a 	add	r2,r2,r3
    26e4:	1185883a 	add	r2,r2,r6
    26e8:	11000005 	stb	r4,0(r2)
	return memory[global_current_memory][mem_addr];
    26ec:	d0a6f917 	ldw	r2,-25628(gp)
    26f0:	e13ffe17 	ldw	r4,-8(fp)
    26f4:	00c00074 	movhi	r3,1
    26f8:	18cf8304 	addi	r3,r3,15884
    26fc:	1004913a 	slli	r2,r2,4
    2700:	10c5883a 	add	r2,r2,r3
    2704:	1105883a 	add	r2,r2,r4
    2708:	10800003 	ldbu	r2,0(r2)
    270c:	10803fcc 	andi	r2,r2,255
    2710:	1080201c 	xori	r2,r2,128
    2714:	10bfe004 	addi	r2,r2,-128
}
    2718:	e037883a 	mov	sp,fp
    271c:	dfc00117 	ldw	ra,4(sp)
    2720:	df000017 	ldw	fp,0(sp)
    2724:	dec00204 	addi	sp,sp,8
    2728:	f800283a 	ret

0000272c <memory_load>:

char memory_load(unsigned int mem_addr, enum Register reg) {
    272c:	defffc04 	addi	sp,sp,-16
    2730:	dfc00315 	stw	ra,12(sp)
    2734:	df000215 	stw	fp,8(sp)
    2738:	df000204 	addi	fp,sp,8
    273c:	e13ffe15 	stw	r4,-8(fp)
    2740:	e17fff15 	stw	r5,-4(fp)
	if (!(mem_addr < MEM_SIZE)) panic();
    2744:	e0bffe17 	ldw	r2,-8(fp)
    2748:	10800430 	cmpltui	r2,r2,16
    274c:	1000011e 	bne	r2,zero,2754 <memory_load+0x28>
    2750:	000253c0 	call	253c <panic>
	global_registers[reg] = memory[global_current_memory][mem_addr];
    2754:	e17fff17 	ldw	r5,-4(fp)
    2758:	d0a6f917 	ldw	r2,-25628(gp)
    275c:	e13ffe17 	ldw	r4,-8(fp)
    2760:	00c00074 	movhi	r3,1
    2764:	18cf8304 	addi	r3,r3,15884
    2768:	1004913a 	slli	r2,r2,4
    276c:	10c5883a 	add	r2,r2,r3
    2770:	1105883a 	add	r2,r2,r4
    2774:	10c00003 	ldbu	r3,0(r2)
    2778:	00800074 	movhi	r2,1
    277c:	1090cd04 	addi	r2,r2,17204
    2780:	1145883a 	add	r2,r2,r5
    2784:	10c00005 	stb	r3,0(r2)
	return global_registers[reg];
    2788:	e0ffff17 	ldw	r3,-4(fp)
    278c:	00800074 	movhi	r2,1
    2790:	1090cd04 	addi	r2,r2,17204
    2794:	10c5883a 	add	r2,r2,r3
    2798:	10800003 	ldbu	r2,0(r2)
    279c:	10803fcc 	andi	r2,r2,255
    27a0:	1080201c 	xori	r2,r2,128
    27a4:	10bfe004 	addi	r2,r2,-128
}
    27a8:	e037883a 	mov	sp,fp
    27ac:	dfc00117 	ldw	ra,4(sp)
    27b0:	df000017 	ldw	fp,0(sp)
    27b4:	dec00204 	addi	sp,sp,8
    27b8:	f800283a 	ret

000027bc <inc_pc>:
#include "sys_register.h"
#include "sys_memory.h"
#include "hex_out.h"
#include "lcd_out.h"

unsigned int inc_pc() {
    27bc:	deffff04 	addi	sp,sp,-4
    27c0:	df000015 	stw	fp,0(sp)
    27c4:	d839883a 	mov	fp,sp
	if ((unsigned char)global_registers[Spc]+1 < MEM_SIZE*MEMS_COUNT - global_current_memory*MEM_SIZE ) {
    27c8:	00800074 	movhi	r2,1
    27cc:	1090cd04 	addi	r2,r2,17204
    27d0:	10800043 	ldbu	r2,1(r2)
    27d4:	10803fcc 	andi	r2,r2,255
    27d8:	10800044 	addi	r2,r2,1
    27dc:	1009883a 	mov	r4,r2
    27e0:	00800074 	movhi	r2,1
    27e4:	108f7504 	addi	r2,r2,15828
    27e8:	10800017 	ldw	r2,0(r2)
    27ec:	1006913a 	slli	r3,r2,4
    27f0:	00804004 	movi	r2,256
    27f4:	10c5c83a 	sub	r2,r2,r3
    27f8:	2080092e 	bgeu	r4,r2,2820 <inc_pc+0x64>
		global_registers[Spc] = (unsigned char)global_registers[Spc] + 1;
    27fc:	00800074 	movhi	r2,1
    2800:	1090cd04 	addi	r2,r2,17204
    2804:	10800043 	ldbu	r2,1(r2)
    2808:	10800044 	addi	r2,r2,1
    280c:	1007883a 	mov	r3,r2
    2810:	00800074 	movhi	r2,1
    2814:	1090cd04 	addi	r2,r2,17204
    2818:	10c00045 	stb	r3,1(r2)
    281c:	00000306 	br	282c <inc_pc+0x70>
	} else {
		global_registers[Spc] = 0;
    2820:	00800074 	movhi	r2,1
    2824:	1090cd04 	addi	r2,r2,17204
    2828:	10000045 	stb	zero,1(r2)
	}
	return 0;
    282c:	0005883a 	mov	r2,zero
}
    2830:	e037883a 	mov	sp,fp
    2834:	df000017 	ldw	fp,0(sp)
    2838:	dec00104 	addi	sp,sp,4
    283c:	f800283a 	ret

00002840 <add_pc>:
unsigned int add_pc(unsigned int cnt) {
    2840:	defffc04 	addi	sp,sp,-16
    2844:	dfc00315 	stw	ra,12(sp)
    2848:	df000215 	stw	fp,8(sp)
    284c:	df000204 	addi	fp,sp,8
    2850:	e13fff15 	stw	r4,-4(fp)
	int i;
	for (i = 0; i < cnt; i++) inc_pc();
    2854:	e03ffe15 	stw	zero,-8(fp)
    2858:	00000406 	br	286c <add_pc+0x2c>
    285c:	00027bc0 	call	27bc <inc_pc>
    2860:	e0bffe17 	ldw	r2,-8(fp)
    2864:	10800044 	addi	r2,r2,1
    2868:	e0bffe15 	stw	r2,-8(fp)
    286c:	e0fffe17 	ldw	r3,-8(fp)
    2870:	e0bfff17 	ldw	r2,-4(fp)
    2874:	18bff936 	bltu	r3,r2,285c <add_pc+0x1c>
	return 0;
    2878:	0005883a 	mov	r2,zero
}
    287c:	e037883a 	mov	sp,fp
    2880:	dfc00117 	ldw	ra,4(sp)
    2884:	df000017 	ldw	fp,0(sp)
    2888:	dec00204 	addi	sp,sp,8
    288c:	f800283a 	ret

00002890 <set_pc>:
unsigned int set_pc(unsigned int cnt) {
    2890:	defffe04 	addi	sp,sp,-8
    2894:	df000115 	stw	fp,4(sp)
    2898:	df000104 	addi	fp,sp,4
    289c:	e13fff15 	stw	r4,-4(fp)
	global_registers[Spc]=cnt;
    28a0:	e0bfff17 	ldw	r2,-4(fp)
    28a4:	1007883a 	mov	r3,r2
    28a8:	00800074 	movhi	r2,1
    28ac:	1090cd04 	addi	r2,r2,17204
    28b0:	10c00045 	stb	r3,1(r2)
	return 0;
    28b4:	0005883a 	mov	r2,zero
}
    28b8:	e037883a 	mov	sp,fp
    28bc:	df000017 	ldw	fp,0(sp)
    28c0:	dec00104 	addi	sp,sp,4
    28c4:	f800283a 	ret

000028c8 <get_pc>:
unsigned int get_pc() {
    28c8:	defffe04 	addi	sp,sp,-8
    28cc:	df000115 	stw	fp,4(sp)
    28d0:	df000104 	addi	fp,sp,4
	if ((unsigned char)global_registers[Spc] < MEM_SIZE*MEMS_COUNT - global_current_memory*MEM_SIZE ) {
    28d4:	00800074 	movhi	r2,1
    28d8:	1090cd04 	addi	r2,r2,17204
    28dc:	10800043 	ldbu	r2,1(r2)
    28e0:	11003fcc 	andi	r4,r2,255
    28e4:	00800074 	movhi	r2,1
    28e8:	108f7504 	addi	r2,r2,15828
    28ec:	10800017 	ldw	r2,0(r2)
    28f0:	1006913a 	slli	r3,r2,4
    28f4:	00804004 	movi	r2,256
    28f8:	10c5c83a 	sub	r2,r2,r3
    28fc:	2080082e 	bgeu	r4,r2,2920 <get_pc+0x58>
		return (unsigned int)global_registers[Spc];
    2900:	00800074 	movhi	r2,1
    2904:	1090cd04 	addi	r2,r2,17204
    2908:	10800043 	ldbu	r2,1(r2)
    290c:	10803fcc 	andi	r2,r2,255
    2910:	1080201c 	xori	r2,r2,128
    2914:	10bfe004 	addi	r2,r2,-128
    2918:	e0bfff15 	stw	r2,-4(fp)
    291c:	00000106 	br	2924 <get_pc+0x5c>
	} else {
		return 0;
    2920:	e03fff15 	stw	zero,-4(fp)
    2924:	e0bfff17 	ldw	r2,-4(fp)
	}
}
    2928:	e037883a 	mov	sp,fp
    292c:	df000017 	ldw	fp,0(sp)
    2930:	dec00104 	addi	sp,sp,4
    2934:	f800283a 	ret

00002938 <run_proc>:

enum RunMode run_proc(enum RunMode mode) {
    2938:	defff904 	addi	sp,sp,-28
    293c:	dfc00615 	stw	ra,24(sp)
    2940:	df000515 	stw	fp,20(sp)
    2944:	df000504 	addi	fp,sp,20
    2948:	e13ffe15 	stw	r4,-8(fp)
	volatile struct InstRec inst_rec;

	if (RUN_INIT == mode) {
    294c:	e0bffe17 	ldw	r2,-8(fp)
    2950:	10800058 	cmpnei	r2,r2,1
    2954:	1000101e 	bne	r2,zero,2998 <run_proc+0x60>
		lcd_caret_reset();
    2958:	0001f340 	call	1f34 <lcd_caret_reset>
		lcd_print("Run...now");
    295c:	01000074 	movhi	r4,1
    2960:	21003004 	addi	r4,r4,192
    2964:	0001f840 	call	1f84 <lcd_print>

		global_registers[Spc] = 0;
    2968:	00800074 	movhi	r2,1
    296c:	1090cd04 	addi	r2,r2,17204
    2970:	10000045 	stb	zero,1(r2)
		clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7);
    2974:	0009883a 	mov	r4,zero
    2978:	00013480 	call	1348 <clear_block>
    297c:	01000044 	movi	r4,1
    2980:	00013480 	call	1348 <clear_block>
    2984:	01000084 	movi	r4,2
    2988:	00013480 	call	1348 <clear_block>

		// プログラム実行中へ遷移
		return RUN_PROC;
    298c:	00800084 	movi	r2,2
    2990:	e0bfff15 	stw	r2,-4(fp)
    2994:	00003606 	br	2a70 <run_proc+0x138>
	}

	if (RUN_PROC == mode) {
    2998:	e0bffe17 	ldw	r2,-8(fp)
    299c:	10800098 	cmpnei	r2,r2,2
    29a0:	1000291e 	bne	r2,zero,2a48 <run_proc+0x110>
		// 命令フェッチ
		inst_rec = inst_fetch();
    29a4:	00017900 	call	1790 <inst_fetch>
    29a8:	e0bffb15 	stw	r2,-20(fp)
		// 命令デコード実行
		inst_decode(inst_rec);
    29ac:	e13ffb17 	ldw	r4,-20(fp)
    29b0:	00017dc0 	call	17dc <inst_decode>
		// pc表示
		{
			char buf[5];
			sprintf(buf, "%02x", (unsigned char)global_registers[Spc]);
    29b4:	00800074 	movhi	r2,1
    29b8:	1090cd04 	addi	r2,r2,17204
    29bc:	10800043 	ldbu	r2,1(r2)
    29c0:	11803fcc 	andi	r6,r2,255
    29c4:	e13ffc04 	addi	r4,fp,-16
    29c8:	01400074 	movhi	r5,1
    29cc:	29403304 	addi	r5,r5,204
    29d0:	0002c5c0 	call	2c5c <sprintf>
			print_block("pc", 2, HEX6_7);
    29d4:	01000074 	movhi	r4,1
    29d8:	21003504 	addi	r4,r4,212
    29dc:	01400084 	movi	r5,2
    29e0:	01800084 	movi	r6,2
    29e4:	00011b80 	call	11b8 <print_block>
			print_block(buf, 2, HEX4_5);
    29e8:	e13ffc04 	addi	r4,fp,-16
    29ec:	01400084 	movi	r5,2
    29f0:	01800044 	movi	r6,1
    29f4:	00011b80 	call	11b8 <print_block>
		}

		// デバック用
		if ( global_registers[Ssw_run] ) delay10ms(100U);
    29f8:	00800074 	movhi	r2,1
    29fc:	1090cd04 	addi	r2,r2,17204
    2a00:	10800343 	ldbu	r2,13(r2)
    2a04:	10803fcc 	andi	r2,r2,255
    2a08:	1080201c 	xori	r2,r2,128
    2a0c:	10bfe004 	addi	r2,r2,-128
    2a10:	1005003a 	cmpeq	r2,r2,zero
    2a14:	1000021e 	bne	r2,zero,2a20 <run_proc+0xe8>
    2a18:	01001904 	movi	r4,100
    2a1c:	00025000 	call	2500 <delay10ms>

		// プログラム終了判定
		if (inst_rec.inst != INST_END) return RUN_PROC;
    2a20:	e0bffb17 	ldw	r2,-20(fp)
    2a24:	108003cc 	andi	r2,r2,15
    2a28:	1005003a 	cmpeq	r2,r2,zero
    2a2c:	1000031e 	bne	r2,zero,2a3c <run_proc+0x104>
    2a30:	00800084 	movi	r2,2
    2a34:	e0bfff15 	stw	r2,-4(fp)
    2a38:	00000d06 	br	2a70 <run_proc+0x138>
		return RUN_TERM;
    2a3c:	008000c4 	movi	r2,3
    2a40:	e0bfff15 	stw	r2,-4(fp)
    2a44:	00000a06 	br	2a70 <run_proc+0x138>
	}

	if (RUN_TERM == mode) {
    2a48:	e0bffe17 	ldw	r2,-8(fp)
    2a4c:	108000d8 	cmpnei	r2,r2,3
    2a50:	1000061e 	bne	r2,zero,2a6c <run_proc+0x134>
		lcd_caret_reset();
    2a54:	0001f340 	call	1f34 <lcd_caret_reset>
		lcd_print("Run...Exit");
    2a58:	01000074 	movhi	r4,1
    2a5c:	21003604 	addi	r4,r4,216
    2a60:	0001f840 	call	1f84 <lcd_print>
		return RUN_STOP;
    2a64:	e03fff15 	stw	zero,-4(fp)
    2a68:	00000106 	br	2a70 <run_proc+0x138>
	}

	// Default
	return RUN_STOP;
    2a6c:	e03fff15 	stw	zero,-4(fp)
    2a70:	e0bfff17 	ldw	r2,-4(fp)
}
    2a74:	e037883a 	mov	sp,fp
    2a78:	dfc00117 	ldw	ra,4(sp)
    2a7c:	df000017 	ldw	fp,0(sp)
    2a80:	dec00204 	addi	sp,sp,8
    2a84:	f800283a 	ret

00002a88 <registers_init>:
 */
#include "sys_register.h"

char global_registers[REG_MAX_COUNT];

void registers_init() {
    2a88:	defffe04 	addi	sp,sp,-8
    2a8c:	df000115 	stw	fp,4(sp)
    2a90:	df000104 	addi	fp,sp,4
	int i;
	for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0;
    2a94:	e03fff15 	stw	zero,-4(fp)
    2a98:	00000806 	br	2abc <registers_init+0x34>
    2a9c:	e0ffff17 	ldw	r3,-4(fp)
    2aa0:	00800074 	movhi	r2,1
    2aa4:	1090cd04 	addi	r2,r2,17204
    2aa8:	10c5883a 	add	r2,r2,r3
    2aac:	10000005 	stb	zero,0(r2)
    2ab0:	e0bfff17 	ldw	r2,-4(fp)
    2ab4:	10800044 	addi	r2,r2,1
    2ab8:	e0bfff15 	stw	r2,-4(fp)
    2abc:	e0bfff17 	ldw	r2,-4(fp)
    2ac0:	108003d0 	cmplti	r2,r2,15
    2ac4:	103ff51e 	bne	r2,zero,2a9c <registers_init+0x14>
}
    2ac8:	e037883a 	mov	sp,fp
    2acc:	df000017 	ldw	fp,0(sp)
    2ad0:	dec00104 	addi	sp,sp,4
    2ad4:	f800283a 	ret

00002ad8 <udivmodsi4>:
    2ad8:	29001b2e 	bgeu	r5,r4,2b48 <udivmodsi4+0x70>
    2adc:	28001a16 	blt	r5,zero,2b48 <udivmodsi4+0x70>
    2ae0:	00800044 	movi	r2,1
    2ae4:	0007883a 	mov	r3,zero
    2ae8:	01c007c4 	movi	r7,31
    2aec:	00000306 	br	2afc <udivmodsi4+0x24>
    2af0:	19c01326 	beq	r3,r7,2b40 <udivmodsi4+0x68>
    2af4:	18c00044 	addi	r3,r3,1
    2af8:	28000416 	blt	r5,zero,2b0c <udivmodsi4+0x34>
    2afc:	294b883a 	add	r5,r5,r5
    2b00:	1085883a 	add	r2,r2,r2
    2b04:	293ffa36 	bltu	r5,r4,2af0 <udivmodsi4+0x18>
    2b08:	10000d26 	beq	r2,zero,2b40 <udivmodsi4+0x68>
    2b0c:	0007883a 	mov	r3,zero
    2b10:	21400236 	bltu	r4,r5,2b1c <udivmodsi4+0x44>
    2b14:	2149c83a 	sub	r4,r4,r5
    2b18:	1886b03a 	or	r3,r3,r2
    2b1c:	1004d07a 	srli	r2,r2,1
    2b20:	280ad07a 	srli	r5,r5,1
    2b24:	103ffa1e 	bne	r2,zero,2b10 <udivmodsi4+0x38>
    2b28:	30000226 	beq	r6,zero,2b34 <udivmodsi4+0x5c>
    2b2c:	2005883a 	mov	r2,r4
    2b30:	f800283a 	ret
    2b34:	1809883a 	mov	r4,r3
    2b38:	2005883a 	mov	r2,r4
    2b3c:	f800283a 	ret
    2b40:	0007883a 	mov	r3,zero
    2b44:	003ff806 	br	2b28 <udivmodsi4+0x50>
    2b48:	00800044 	movi	r2,1
    2b4c:	0007883a 	mov	r3,zero
    2b50:	003fef06 	br	2b10 <udivmodsi4+0x38>

00002b54 <__divsi3>:
    2b54:	defffe04 	addi	sp,sp,-8
    2b58:	dc000015 	stw	r16,0(sp)
    2b5c:	dfc00115 	stw	ra,4(sp)
    2b60:	0021883a 	mov	r16,zero
    2b64:	20000c16 	blt	r4,zero,2b98 <__divsi3+0x44>
    2b68:	000d883a 	mov	r6,zero
    2b6c:	28000e16 	blt	r5,zero,2ba8 <__divsi3+0x54>
    2b70:	0002ad80 	call	2ad8 <udivmodsi4>
    2b74:	1007883a 	mov	r3,r2
    2b78:	8005003a 	cmpeq	r2,r16,zero
    2b7c:	1000011e 	bne	r2,zero,2b84 <__divsi3+0x30>
    2b80:	00c7c83a 	sub	r3,zero,r3
    2b84:	1805883a 	mov	r2,r3
    2b88:	dfc00117 	ldw	ra,4(sp)
    2b8c:	dc000017 	ldw	r16,0(sp)
    2b90:	dec00204 	addi	sp,sp,8
    2b94:	f800283a 	ret
    2b98:	0109c83a 	sub	r4,zero,r4
    2b9c:	04000044 	movi	r16,1
    2ba0:	000d883a 	mov	r6,zero
    2ba4:	283ff20e 	bge	r5,zero,2b70 <__divsi3+0x1c>
    2ba8:	014bc83a 	sub	r5,zero,r5
    2bac:	8021003a 	cmpeq	r16,r16,zero
    2bb0:	003fef06 	br	2b70 <__divsi3+0x1c>

00002bb4 <__modsi3>:
    2bb4:	deffff04 	addi	sp,sp,-4
    2bb8:	dfc00015 	stw	ra,0(sp)
    2bbc:	01800044 	movi	r6,1
    2bc0:	2807883a 	mov	r3,r5
    2bc4:	20000416 	blt	r4,zero,2bd8 <__modsi3+0x24>
    2bc8:	28000c16 	blt	r5,zero,2bfc <__modsi3+0x48>
    2bcc:	dfc00017 	ldw	ra,0(sp)
    2bd0:	dec00104 	addi	sp,sp,4
    2bd4:	0002ad81 	jmpi	2ad8 <udivmodsi4>
    2bd8:	0109c83a 	sub	r4,zero,r4
    2bdc:	28000b16 	blt	r5,zero,2c0c <__modsi3+0x58>
    2be0:	180b883a 	mov	r5,r3
    2be4:	01800044 	movi	r6,1
    2be8:	0002ad80 	call	2ad8 <udivmodsi4>
    2bec:	0085c83a 	sub	r2,zero,r2
    2bf0:	dfc00017 	ldw	ra,0(sp)
    2bf4:	dec00104 	addi	sp,sp,4
    2bf8:	f800283a 	ret
    2bfc:	014bc83a 	sub	r5,zero,r5
    2c00:	dfc00017 	ldw	ra,0(sp)
    2c04:	dec00104 	addi	sp,sp,4
    2c08:	0002ad81 	jmpi	2ad8 <udivmodsi4>
    2c0c:	0147c83a 	sub	r3,zero,r5
    2c10:	003ff306 	br	2be0 <__modsi3+0x2c>

00002c14 <__udivsi3>:
    2c14:	000d883a 	mov	r6,zero
    2c18:	0002ad81 	jmpi	2ad8 <udivmodsi4>

00002c1c <__umodsi3>:
    2c1c:	01800044 	movi	r6,1
    2c20:	0002ad81 	jmpi	2ad8 <udivmodsi4>

00002c24 <__mulsi3>:
    2c24:	20000a26 	beq	r4,zero,2c50 <__mulsi3+0x2c>
    2c28:	0007883a 	mov	r3,zero
    2c2c:	2080004c 	andi	r2,r4,1
    2c30:	1005003a 	cmpeq	r2,r2,zero
    2c34:	2008d07a 	srli	r4,r4,1
    2c38:	1000011e 	bne	r2,zero,2c40 <__mulsi3+0x1c>
    2c3c:	1947883a 	add	r3,r3,r5
    2c40:	294b883a 	add	r5,r5,r5
    2c44:	203ff91e 	bne	r4,zero,2c2c <__mulsi3+0x8>
    2c48:	1805883a 	mov	r2,r3
    2c4c:	f800283a 	ret
    2c50:	0007883a 	mov	r3,zero
    2c54:	1805883a 	mov	r2,r3
    2c58:	f800283a 	ret

00002c5c <sprintf>:
    2c5c:	deffe504 	addi	sp,sp,-108
    2c60:	2013883a 	mov	r9,r4
    2c64:	dfc01815 	stw	ra,96(sp)
    2c68:	d9801915 	stw	r6,100(sp)
    2c6c:	d9c01a15 	stw	r7,104(sp)
    2c70:	d8801904 	addi	r2,sp,100
    2c74:	d8800015 	stw	r2,0(sp)
    2c78:	00800074 	movhi	r2,1
    2c7c:	10887e04 	addi	r2,r2,8696
    2c80:	11000017 	ldw	r4,0(r2)
    2c84:	d9c00017 	ldw	r7,0(sp)
    2c88:	00808204 	movi	r2,520
    2c8c:	00e00034 	movhi	r3,32768
    2c90:	18ffffc4 	addi	r3,r3,-1
    2c94:	280d883a 	mov	r6,r5
    2c98:	d880040d 	sth	r2,16(sp)
    2c9c:	d9400104 	addi	r5,sp,4
    2ca0:	00bfffc4 	movi	r2,-1
    2ca4:	d8c00615 	stw	r3,24(sp)
    2ca8:	d8c00315 	stw	r3,12(sp)
    2cac:	da400515 	stw	r9,20(sp)
    2cb0:	d880048d 	sth	r2,18(sp)
    2cb4:	da400115 	stw	r9,4(sp)
    2cb8:	0002dfc0 	call	2dfc <___vfprintf_internal_r>
    2cbc:	d8c00117 	ldw	r3,4(sp)
    2cc0:	18000005 	stb	zero,0(r3)
    2cc4:	dfc01817 	ldw	ra,96(sp)
    2cc8:	dec01b04 	addi	sp,sp,108
    2ccc:	f800283a 	ret

00002cd0 <_sprintf_r>:
    2cd0:	deffe604 	addi	sp,sp,-104
    2cd4:	2813883a 	mov	r9,r5
    2cd8:	dfc01815 	stw	ra,96(sp)
    2cdc:	d9c01915 	stw	r7,100(sp)
    2ce0:	d8801904 	addi	r2,sp,100
    2ce4:	d8800015 	stw	r2,0(sp)
    2ce8:	100f883a 	mov	r7,r2
    2cec:	00808204 	movi	r2,520
    2cf0:	00e00034 	movhi	r3,32768
    2cf4:	18ffffc4 	addi	r3,r3,-1
    2cf8:	d880040d 	sth	r2,16(sp)
    2cfc:	d9400104 	addi	r5,sp,4
    2d00:	00bfffc4 	movi	r2,-1
    2d04:	d8c00615 	stw	r3,24(sp)
    2d08:	d8c00315 	stw	r3,12(sp)
    2d0c:	da400515 	stw	r9,20(sp)
    2d10:	d880048d 	sth	r2,18(sp)
    2d14:	da400115 	stw	r9,4(sp)
    2d18:	0002dfc0 	call	2dfc <___vfprintf_internal_r>
    2d1c:	d8c00117 	ldw	r3,4(sp)
    2d20:	18000005 	stb	zero,0(r3)
    2d24:	dfc01817 	ldw	ra,96(sp)
    2d28:	dec01a04 	addi	sp,sp,104
    2d2c:	f800283a 	ret

00002d30 <strlen>:
    2d30:	208000cc 	andi	r2,r4,3
    2d34:	2011883a 	mov	r8,r4
    2d38:	1000161e 	bne	r2,zero,2d94 <strlen+0x64>
    2d3c:	20c00017 	ldw	r3,0(r4)
    2d40:	017fbff4 	movhi	r5,65279
    2d44:	297fbfc4 	addi	r5,r5,-257
    2d48:	01e02074 	movhi	r7,32897
    2d4c:	39e02004 	addi	r7,r7,-32640
    2d50:	1945883a 	add	r2,r3,r5
    2d54:	11c4703a 	and	r2,r2,r7
    2d58:	00c6303a 	nor	r3,zero,r3
    2d5c:	1886703a 	and	r3,r3,r2
    2d60:	18000c1e 	bne	r3,zero,2d94 <strlen+0x64>
    2d64:	280d883a 	mov	r6,r5
    2d68:	380b883a 	mov	r5,r7
    2d6c:	21000104 	addi	r4,r4,4
    2d70:	20800017 	ldw	r2,0(r4)
    2d74:	1187883a 	add	r3,r2,r6
    2d78:	1946703a 	and	r3,r3,r5
    2d7c:	0084303a 	nor	r2,zero,r2
    2d80:	10c4703a 	and	r2,r2,r3
    2d84:	103ff926 	beq	r2,zero,2d6c <strlen+0x3c>
    2d88:	20800007 	ldb	r2,0(r4)
    2d8c:	10000326 	beq	r2,zero,2d9c <strlen+0x6c>
    2d90:	21000044 	addi	r4,r4,1
    2d94:	20800007 	ldb	r2,0(r4)
    2d98:	103ffd1e 	bne	r2,zero,2d90 <strlen+0x60>
    2d9c:	2205c83a 	sub	r2,r4,r8
    2da0:	f800283a 	ret

00002da4 <__sprint_r>:
    2da4:	30800217 	ldw	r2,8(r6)
    2da8:	defffe04 	addi	sp,sp,-8
    2dac:	dc000015 	stw	r16,0(sp)
    2db0:	dfc00115 	stw	ra,4(sp)
    2db4:	3021883a 	mov	r16,r6
    2db8:	0007883a 	mov	r3,zero
    2dbc:	1000061e 	bne	r2,zero,2dd8 <__sprint_r+0x34>
    2dc0:	1805883a 	mov	r2,r3
    2dc4:	30000115 	stw	zero,4(r6)
    2dc8:	dfc00117 	ldw	ra,4(sp)
    2dcc:	dc000017 	ldw	r16,0(sp)
    2dd0:	dec00204 	addi	sp,sp,8
    2dd4:	f800283a 	ret
    2dd8:	0006f7c0 	call	6f7c <__sfvwrite_r>
    2ddc:	1007883a 	mov	r3,r2
    2de0:	1805883a 	mov	r2,r3
    2de4:	80000115 	stw	zero,4(r16)
    2de8:	80000215 	stw	zero,8(r16)
    2dec:	dfc00117 	ldw	ra,4(sp)
    2df0:	dc000017 	ldw	r16,0(sp)
    2df4:	dec00204 	addi	sp,sp,8
    2df8:	f800283a 	ret

00002dfc <___vfprintf_internal_r>:
    2dfc:	defea404 	addi	sp,sp,-1392
    2e00:	dd815815 	stw	r22,1376(sp)
    2e04:	dc015215 	stw	r16,1352(sp)
    2e08:	d9c15115 	stw	r7,1348(sp)
    2e0c:	dfc15b15 	stw	ra,1388(sp)
    2e10:	df015a15 	stw	fp,1384(sp)
    2e14:	ddc15915 	stw	r23,1380(sp)
    2e18:	dd415715 	stw	r21,1372(sp)
    2e1c:	dd015615 	stw	r20,1368(sp)
    2e20:	dcc15515 	stw	r19,1364(sp)
    2e24:	dc815415 	stw	r18,1360(sp)
    2e28:	dc415315 	stw	r17,1356(sp)
    2e2c:	282d883a 	mov	r22,r5
    2e30:	3021883a 	mov	r16,r6
    2e34:	d9014f15 	stw	r4,1340(sp)
    2e38:	00075a00 	call	75a0 <_localeconv_r>
    2e3c:	10800017 	ldw	r2,0(r2)
    2e40:	d9c15117 	ldw	r7,1348(sp)
    2e44:	d8814915 	stw	r2,1316(sp)
    2e48:	d8814f17 	ldw	r2,1340(sp)
    2e4c:	10000226 	beq	r2,zero,2e58 <___vfprintf_internal_r+0x5c>
    2e50:	10800e17 	ldw	r2,56(r2)
    2e54:	10020d26 	beq	r2,zero,368c <___vfprintf_internal_r+0x890>
    2e58:	b080030b 	ldhu	r2,12(r22)
    2e5c:	1080020c 	andi	r2,r2,8
    2e60:	10020e26 	beq	r2,zero,369c <___vfprintf_internal_r+0x8a0>
    2e64:	b0800417 	ldw	r2,16(r22)
    2e68:	10020c26 	beq	r2,zero,369c <___vfprintf_internal_r+0x8a0>
    2e6c:	b200030b 	ldhu	r8,12(r22)
    2e70:	00800284 	movi	r2,10
    2e74:	40c0068c 	andi	r3,r8,26
    2e78:	18802f1e 	bne	r3,r2,2f38 <___vfprintf_internal_r+0x13c>
    2e7c:	b080038f 	ldh	r2,14(r22)
    2e80:	10002d16 	blt	r2,zero,2f38 <___vfprintf_internal_r+0x13c>
    2e84:	b240038b 	ldhu	r9,14(r22)
    2e88:	b2800717 	ldw	r10,28(r22)
    2e8c:	b2c00917 	ldw	r11,36(r22)
    2e90:	d9014f17 	ldw	r4,1340(sp)
    2e94:	dc402904 	addi	r17,sp,164
    2e98:	d8804004 	addi	r2,sp,256
    2e9c:	00c10004 	movi	r3,1024
    2ea0:	423fff4c 	andi	r8,r8,65533
    2ea4:	800d883a 	mov	r6,r16
    2ea8:	880b883a 	mov	r5,r17
    2eac:	da002c0d 	sth	r8,176(sp)
    2eb0:	da402c8d 	sth	r9,178(sp)
    2eb4:	da803015 	stw	r10,192(sp)
    2eb8:	dac03215 	stw	r11,200(sp)
    2ebc:	d8802d15 	stw	r2,180(sp)
    2ec0:	d8c02e15 	stw	r3,184(sp)
    2ec4:	d8802915 	stw	r2,164(sp)
    2ec8:	d8c02b15 	stw	r3,172(sp)
    2ecc:	d8002f15 	stw	zero,188(sp)
    2ed0:	0002dfc0 	call	2dfc <___vfprintf_internal_r>
    2ed4:	d8814b15 	stw	r2,1324(sp)
    2ed8:	10000416 	blt	r2,zero,2eec <___vfprintf_internal_r+0xf0>
    2edc:	d9014f17 	ldw	r4,1340(sp)
    2ee0:	880b883a 	mov	r5,r17
    2ee4:	00066180 	call	6618 <_fflush_r>
    2ee8:	1002321e 	bne	r2,zero,37b4 <___vfprintf_internal_r+0x9b8>
    2eec:	d8802c0b 	ldhu	r2,176(sp)
    2ef0:	1080100c 	andi	r2,r2,64
    2ef4:	10000326 	beq	r2,zero,2f04 <___vfprintf_internal_r+0x108>
    2ef8:	b080030b 	ldhu	r2,12(r22)
    2efc:	10801014 	ori	r2,r2,64
    2f00:	b080030d 	sth	r2,12(r22)
    2f04:	d8814b17 	ldw	r2,1324(sp)
    2f08:	dfc15b17 	ldw	ra,1388(sp)
    2f0c:	df015a17 	ldw	fp,1384(sp)
    2f10:	ddc15917 	ldw	r23,1380(sp)
    2f14:	dd815817 	ldw	r22,1376(sp)
    2f18:	dd415717 	ldw	r21,1372(sp)
    2f1c:	dd015617 	ldw	r20,1368(sp)
    2f20:	dcc15517 	ldw	r19,1364(sp)
    2f24:	dc815417 	ldw	r18,1360(sp)
    2f28:	dc415317 	ldw	r17,1356(sp)
    2f2c:	dc015217 	ldw	r16,1352(sp)
    2f30:	dec15c04 	addi	sp,sp,1392
    2f34:	f800283a 	ret
    2f38:	0005883a 	mov	r2,zero
    2f3c:	0007883a 	mov	r3,zero
    2f40:	dd401904 	addi	r21,sp,100
    2f44:	d8814215 	stw	r2,1288(sp)
    2f48:	802f883a 	mov	r23,r16
    2f4c:	d8c14315 	stw	r3,1292(sp)
    2f50:	d8014b15 	stw	zero,1324(sp)
    2f54:	d8014815 	stw	zero,1312(sp)
    2f58:	d8014415 	stw	zero,1296(sp)
    2f5c:	d8014715 	stw	zero,1308(sp)
    2f60:	dd400c15 	stw	r21,48(sp)
    2f64:	d8000e15 	stw	zero,56(sp)
    2f68:	d8000d15 	stw	zero,52(sp)
    2f6c:	b8800007 	ldb	r2,0(r23)
    2f70:	10001926 	beq	r2,zero,2fd8 <___vfprintf_internal_r+0x1dc>
    2f74:	00c00944 	movi	r3,37
    2f78:	10c01726 	beq	r2,r3,2fd8 <___vfprintf_internal_r+0x1dc>
    2f7c:	b821883a 	mov	r16,r23
    2f80:	00000106 	br	2f88 <___vfprintf_internal_r+0x18c>
    2f84:	10c00326 	beq	r2,r3,2f94 <___vfprintf_internal_r+0x198>
    2f88:	84000044 	addi	r16,r16,1
    2f8c:	80800007 	ldb	r2,0(r16)
    2f90:	103ffc1e 	bne	r2,zero,2f84 <___vfprintf_internal_r+0x188>
    2f94:	85e7c83a 	sub	r19,r16,r23
    2f98:	98000e26 	beq	r19,zero,2fd4 <___vfprintf_internal_r+0x1d8>
    2f9c:	dc800e17 	ldw	r18,56(sp)
    2fa0:	dc400d17 	ldw	r17,52(sp)
    2fa4:	008001c4 	movi	r2,7
    2fa8:	94e5883a 	add	r18,r18,r19
    2fac:	8c400044 	addi	r17,r17,1
    2fb0:	adc00015 	stw	r23,0(r21)
    2fb4:	dc800e15 	stw	r18,56(sp)
    2fb8:	acc00115 	stw	r19,4(r21)
    2fbc:	dc400d15 	stw	r17,52(sp)
    2fc0:	14428b16 	blt	r2,r17,39f0 <___vfprintf_internal_r+0xbf4>
    2fc4:	ad400204 	addi	r21,r21,8
    2fc8:	d9014b17 	ldw	r4,1324(sp)
    2fcc:	24c9883a 	add	r4,r4,r19
    2fd0:	d9014b15 	stw	r4,1324(sp)
    2fd4:	802f883a 	mov	r23,r16
    2fd8:	b8800007 	ldb	r2,0(r23)
    2fdc:	10013c26 	beq	r2,zero,34d0 <___vfprintf_internal_r+0x6d4>
    2fe0:	bdc00044 	addi	r23,r23,1
    2fe4:	d8000405 	stb	zero,16(sp)
    2fe8:	b8c00007 	ldb	r3,0(r23)
    2fec:	04ffffc4 	movi	r19,-1
    2ff0:	d8014c15 	stw	zero,1328(sp)
    2ff4:	d8014a15 	stw	zero,1320(sp)
    2ff8:	d8c14d15 	stw	r3,1332(sp)
    2ffc:	bdc00044 	addi	r23,r23,1
    3000:	d9414d17 	ldw	r5,1332(sp)
    3004:	00801604 	movi	r2,88
    3008:	28fff804 	addi	r3,r5,-32
    300c:	10c06036 	bltu	r2,r3,3190 <___vfprintf_internal_r+0x394>
    3010:	18c5883a 	add	r2,r3,r3
    3014:	1085883a 	add	r2,r2,r2
    3018:	00c00034 	movhi	r3,0
    301c:	18cc0b04 	addi	r3,r3,12332
    3020:	10c5883a 	add	r2,r2,r3
    3024:	11000017 	ldw	r4,0(r2)
    3028:	2000683a 	jmp	r4
    302c:	00003fa0 	cmpeqi	zero,zero,254
    3030:	00003190 	cmplti	zero,zero,198
    3034:	00003190 	cmplti	zero,zero,198
    3038:	00003f8c 	andi	zero,zero,254
    303c:	00003190 	cmplti	zero,zero,198
    3040:	00003190 	cmplti	zero,zero,198
    3044:	00003190 	cmplti	zero,zero,198
    3048:	00003190 	cmplti	zero,zero,198
    304c:	00003190 	cmplti	zero,zero,198
    3050:	00003190 	cmplti	zero,zero,198
    3054:	00003d6c 	andhi	zero,zero,245
    3058:	00003f7c 	xorhi	zero,zero,253
    305c:	00003190 	cmplti	zero,zero,198
    3060:	00003d84 	movi	zero,246
    3064:	00004024 	muli	zero,zero,256
    3068:	00003190 	cmplti	zero,zero,198
    306c:	00004010 	cmplti	zero,zero,256
    3070:	00003fcc 	andi	zero,zero,255
    3074:	00003fcc 	andi	zero,zero,255
    3078:	00003fcc 	andi	zero,zero,255
    307c:	00003fcc 	andi	zero,zero,255
    3080:	00003fcc 	andi	zero,zero,255
    3084:	00003fcc 	andi	zero,zero,255
    3088:	00003fcc 	andi	zero,zero,255
    308c:	00003fcc 	andi	zero,zero,255
    3090:	00003fcc 	andi	zero,zero,255
    3094:	00003190 	cmplti	zero,zero,198
    3098:	00003190 	cmplti	zero,zero,198
    309c:	00003190 	cmplti	zero,zero,198
    30a0:	00003190 	cmplti	zero,zero,198
    30a4:	00003190 	cmplti	zero,zero,198
    30a8:	00003190 	cmplti	zero,zero,198
    30ac:	00003190 	cmplti	zero,zero,198
    30b0:	00003190 	cmplti	zero,zero,198
    30b4:	00003190 	cmplti	zero,zero,198
    30b8:	00003190 	cmplti	zero,zero,198
    30bc:	000037e8 	cmpgeui	zero,zero,223
    30c0:	00003e54 	movui	zero,249
    30c4:	00003190 	cmplti	zero,zero,198
    30c8:	00003e54 	movui	zero,249
    30cc:	00003190 	cmplti	zero,zero,198
    30d0:	00003190 	cmplti	zero,zero,198
    30d4:	00003190 	cmplti	zero,zero,198
    30d8:	00003190 	cmplti	zero,zero,198
    30dc:	00003fb8 	rdprs	zero,zero,254
    30e0:	00003190 	cmplti	zero,zero,198
    30e4:	00003190 	cmplti	zero,zero,198
    30e8:	0000389c 	xori	zero,zero,226
    30ec:	00003190 	cmplti	zero,zero,198
    30f0:	00003190 	cmplti	zero,zero,198
    30f4:	00003190 	cmplti	zero,zero,198
    30f8:	00003190 	cmplti	zero,zero,198
    30fc:	00003190 	cmplti	zero,zero,198
    3100:	000038e8 	cmpgeui	zero,zero,227
    3104:	00003190 	cmplti	zero,zero,198
    3108:	00003190 	cmplti	zero,zero,198
    310c:	00003f08 	cmpgei	zero,zero,252
    3110:	00003190 	cmplti	zero,zero,198
    3114:	00003190 	cmplti	zero,zero,198
    3118:	00003190 	cmplti	zero,zero,198
    311c:	00003190 	cmplti	zero,zero,198
    3120:	00003190 	cmplti	zero,zero,198
    3124:	00003190 	cmplti	zero,zero,198
    3128:	00003190 	cmplti	zero,zero,198
    312c:	00003190 	cmplti	zero,zero,198
    3130:	00003190 	cmplti	zero,zero,198
    3134:	00003190 	cmplti	zero,zero,198
    3138:	00003edc 	xori	zero,zero,251
    313c:	000037f4 	movhi	zero,223
    3140:	00003e54 	movui	zero,249
    3144:	00003e54 	movui	zero,249
    3148:	00003e54 	movui	zero,249
    314c:	00003e40 	call	3e4 <init+0x8>
    3150:	000037f4 	movhi	zero,223
    3154:	00003190 	cmplti	zero,zero,198
    3158:	00003190 	cmplti	zero,zero,198
    315c:	00003dc8 	cmpgei	zero,zero,247
    3160:	00003190 	cmplti	zero,zero,198
    3164:	00003d98 	cmpnei	zero,zero,246
    3168:	000038a8 	cmpgeui	zero,zero,226
    316c:	00003df8 	rdprs	zero,zero,247
    3170:	00003de4 	muli	zero,zero,247
    3174:	00003190 	cmplti	zero,zero,198
    3178:	0000408c 	andi	zero,zero,258
    317c:	00003190 	cmplti	zero,zero,198
    3180:	000038f4 	movhi	zero,227
    3184:	00003190 	cmplti	zero,zero,198
    3188:	00003190 	cmplti	zero,zero,198
    318c:	00003f6c 	andhi	zero,zero,253
    3190:	d9014d17 	ldw	r4,1332(sp)
    3194:	2000ce26 	beq	r4,zero,34d0 <___vfprintf_internal_r+0x6d4>
    3198:	01400044 	movi	r5,1
    319c:	d9800f04 	addi	r6,sp,60
    31a0:	d9c14015 	stw	r7,1280(sp)
    31a4:	d9414515 	stw	r5,1300(sp)
    31a8:	d9814115 	stw	r6,1284(sp)
    31ac:	280f883a 	mov	r7,r5
    31b0:	d9000f05 	stb	r4,60(sp)
    31b4:	d8000405 	stb	zero,16(sp)
    31b8:	d8014615 	stw	zero,1304(sp)
    31bc:	d8c14c17 	ldw	r3,1328(sp)
    31c0:	1880008c 	andi	r2,r3,2
    31c4:	1005003a 	cmpeq	r2,r2,zero
    31c8:	d8815015 	stw	r2,1344(sp)
    31cc:	1000031e 	bne	r2,zero,31dc <___vfprintf_internal_r+0x3e0>
    31d0:	d9014517 	ldw	r4,1300(sp)
    31d4:	21000084 	addi	r4,r4,2
    31d8:	d9014515 	stw	r4,1300(sp)
    31dc:	d9414c17 	ldw	r5,1328(sp)
    31e0:	2940210c 	andi	r5,r5,132
    31e4:	d9414e15 	stw	r5,1336(sp)
    31e8:	28002d1e 	bne	r5,zero,32a0 <___vfprintf_internal_r+0x4a4>
    31ec:	d9814a17 	ldw	r6,1320(sp)
    31f0:	d8814517 	ldw	r2,1300(sp)
    31f4:	30a1c83a 	sub	r16,r6,r2
    31f8:	0400290e 	bge	zero,r16,32a0 <___vfprintf_internal_r+0x4a4>
    31fc:	00800404 	movi	r2,16
    3200:	14045e0e 	bge	r2,r16,437c <___vfprintf_internal_r+0x1580>
    3204:	dc800e17 	ldw	r18,56(sp)
    3208:	dc400d17 	ldw	r17,52(sp)
    320c:	1027883a 	mov	r19,r2
    3210:	07000074 	movhi	fp,1
    3214:	e700f584 	addi	fp,fp,982
    3218:	050001c4 	movi	r20,7
    321c:	00000306 	br	322c <___vfprintf_internal_r+0x430>
    3220:	843ffc04 	addi	r16,r16,-16
    3224:	ad400204 	addi	r21,r21,8
    3228:	9c00130e 	bge	r19,r16,3278 <___vfprintf_internal_r+0x47c>
    322c:	94800404 	addi	r18,r18,16
    3230:	8c400044 	addi	r17,r17,1
    3234:	af000015 	stw	fp,0(r21)
    3238:	acc00115 	stw	r19,4(r21)
    323c:	dc800e15 	stw	r18,56(sp)
    3240:	dc400d15 	stw	r17,52(sp)
    3244:	a47ff60e 	bge	r20,r17,3220 <___vfprintf_internal_r+0x424>
    3248:	d9014f17 	ldw	r4,1340(sp)
    324c:	b00b883a 	mov	r5,r22
    3250:	d9800c04 	addi	r6,sp,48
    3254:	d9c15115 	stw	r7,1348(sp)
    3258:	0002da40 	call	2da4 <__sprint_r>
    325c:	d9c15117 	ldw	r7,1348(sp)
    3260:	10009e1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3264:	843ffc04 	addi	r16,r16,-16
    3268:	dc800e17 	ldw	r18,56(sp)
    326c:	dc400d17 	ldw	r17,52(sp)
    3270:	dd401904 	addi	r21,sp,100
    3274:	9c3fed16 	blt	r19,r16,322c <___vfprintf_internal_r+0x430>
    3278:	9425883a 	add	r18,r18,r16
    327c:	8c400044 	addi	r17,r17,1
    3280:	008001c4 	movi	r2,7
    3284:	af000015 	stw	fp,0(r21)
    3288:	ac000115 	stw	r16,4(r21)
    328c:	dc800e15 	stw	r18,56(sp)
    3290:	dc400d15 	stw	r17,52(sp)
    3294:	1441f516 	blt	r2,r17,3a6c <___vfprintf_internal_r+0xc70>
    3298:	ad400204 	addi	r21,r21,8
    329c:	00000206 	br	32a8 <___vfprintf_internal_r+0x4ac>
    32a0:	dc800e17 	ldw	r18,56(sp)
    32a4:	dc400d17 	ldw	r17,52(sp)
    32a8:	d8800407 	ldb	r2,16(sp)
    32ac:	10000b26 	beq	r2,zero,32dc <___vfprintf_internal_r+0x4e0>
    32b0:	00800044 	movi	r2,1
    32b4:	94800044 	addi	r18,r18,1
    32b8:	8c400044 	addi	r17,r17,1
    32bc:	a8800115 	stw	r2,4(r21)
    32c0:	d8c00404 	addi	r3,sp,16
    32c4:	008001c4 	movi	r2,7
    32c8:	a8c00015 	stw	r3,0(r21)
    32cc:	dc800e15 	stw	r18,56(sp)
    32d0:	dc400d15 	stw	r17,52(sp)
    32d4:	1441da16 	blt	r2,r17,3a40 <___vfprintf_internal_r+0xc44>
    32d8:	ad400204 	addi	r21,r21,8
    32dc:	d9015017 	ldw	r4,1344(sp)
    32e0:	20000b1e 	bne	r4,zero,3310 <___vfprintf_internal_r+0x514>
    32e4:	d8800444 	addi	r2,sp,17
    32e8:	94800084 	addi	r18,r18,2
    32ec:	8c400044 	addi	r17,r17,1
    32f0:	a8800015 	stw	r2,0(r21)
    32f4:	00c00084 	movi	r3,2
    32f8:	008001c4 	movi	r2,7
    32fc:	a8c00115 	stw	r3,4(r21)
    3300:	dc800e15 	stw	r18,56(sp)
    3304:	dc400d15 	stw	r17,52(sp)
    3308:	1441c216 	blt	r2,r17,3a14 <___vfprintf_internal_r+0xc18>
    330c:	ad400204 	addi	r21,r21,8
    3310:	d9414e17 	ldw	r5,1336(sp)
    3314:	00802004 	movi	r2,128
    3318:	2880b126 	beq	r5,r2,35e0 <___vfprintf_internal_r+0x7e4>
    331c:	d8c14617 	ldw	r3,1304(sp)
    3320:	19e1c83a 	sub	r16,r3,r7
    3324:	0400260e 	bge	zero,r16,33c0 <___vfprintf_internal_r+0x5c4>
    3328:	00800404 	movi	r2,16
    332c:	1403cf0e 	bge	r2,r16,426c <___vfprintf_internal_r+0x1470>
    3330:	1027883a 	mov	r19,r2
    3334:	07000074 	movhi	fp,1
    3338:	e700f184 	addi	fp,fp,966
    333c:	050001c4 	movi	r20,7
    3340:	00000306 	br	3350 <___vfprintf_internal_r+0x554>
    3344:	843ffc04 	addi	r16,r16,-16
    3348:	ad400204 	addi	r21,r21,8
    334c:	9c00130e 	bge	r19,r16,339c <___vfprintf_internal_r+0x5a0>
    3350:	94800404 	addi	r18,r18,16
    3354:	8c400044 	addi	r17,r17,1
    3358:	af000015 	stw	fp,0(r21)
    335c:	acc00115 	stw	r19,4(r21)
    3360:	dc800e15 	stw	r18,56(sp)
    3364:	dc400d15 	stw	r17,52(sp)
    3368:	a47ff60e 	bge	r20,r17,3344 <___vfprintf_internal_r+0x548>
    336c:	d9014f17 	ldw	r4,1340(sp)
    3370:	b00b883a 	mov	r5,r22
    3374:	d9800c04 	addi	r6,sp,48
    3378:	d9c15115 	stw	r7,1348(sp)
    337c:	0002da40 	call	2da4 <__sprint_r>
    3380:	d9c15117 	ldw	r7,1348(sp)
    3384:	1000551e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3388:	843ffc04 	addi	r16,r16,-16
    338c:	dc800e17 	ldw	r18,56(sp)
    3390:	dc400d17 	ldw	r17,52(sp)
    3394:	dd401904 	addi	r21,sp,100
    3398:	9c3fed16 	blt	r19,r16,3350 <___vfprintf_internal_r+0x554>
    339c:	9425883a 	add	r18,r18,r16
    33a0:	8c400044 	addi	r17,r17,1
    33a4:	008001c4 	movi	r2,7
    33a8:	af000015 	stw	fp,0(r21)
    33ac:	ac000115 	stw	r16,4(r21)
    33b0:	dc800e15 	stw	r18,56(sp)
    33b4:	dc400d15 	stw	r17,52(sp)
    33b8:	14418216 	blt	r2,r17,39c4 <___vfprintf_internal_r+0xbc8>
    33bc:	ad400204 	addi	r21,r21,8
    33c0:	d9014c17 	ldw	r4,1328(sp)
    33c4:	2080400c 	andi	r2,r4,256
    33c8:	10004a1e 	bne	r2,zero,34f4 <___vfprintf_internal_r+0x6f8>
    33cc:	d9414117 	ldw	r5,1284(sp)
    33d0:	91e5883a 	add	r18,r18,r7
    33d4:	8c400044 	addi	r17,r17,1
    33d8:	008001c4 	movi	r2,7
    33dc:	a9400015 	stw	r5,0(r21)
    33e0:	a9c00115 	stw	r7,4(r21)
    33e4:	dc800e15 	stw	r18,56(sp)
    33e8:	dc400d15 	stw	r17,52(sp)
    33ec:	14416716 	blt	r2,r17,398c <___vfprintf_internal_r+0xb90>
    33f0:	a8c00204 	addi	r3,r21,8
    33f4:	d9814c17 	ldw	r6,1328(sp)
    33f8:	3080010c 	andi	r2,r6,4
    33fc:	10002826 	beq	r2,zero,34a0 <___vfprintf_internal_r+0x6a4>
    3400:	d8814a17 	ldw	r2,1320(sp)
    3404:	d9014517 	ldw	r4,1300(sp)
    3408:	1121c83a 	sub	r16,r2,r4
    340c:	0400240e 	bge	zero,r16,34a0 <___vfprintf_internal_r+0x6a4>
    3410:	00800404 	movi	r2,16
    3414:	1404550e 	bge	r2,r16,456c <___vfprintf_internal_r+0x1770>
    3418:	dc400d17 	ldw	r17,52(sp)
    341c:	1027883a 	mov	r19,r2
    3420:	07000074 	movhi	fp,1
    3424:	e700f584 	addi	fp,fp,982
    3428:	050001c4 	movi	r20,7
    342c:	00000306 	br	343c <___vfprintf_internal_r+0x640>
    3430:	843ffc04 	addi	r16,r16,-16
    3434:	18c00204 	addi	r3,r3,8
    3438:	9c00110e 	bge	r19,r16,3480 <___vfprintf_internal_r+0x684>
    343c:	94800404 	addi	r18,r18,16
    3440:	8c400044 	addi	r17,r17,1
    3444:	1f000015 	stw	fp,0(r3)
    3448:	1cc00115 	stw	r19,4(r3)
    344c:	dc800e15 	stw	r18,56(sp)
    3450:	dc400d15 	stw	r17,52(sp)
    3454:	a47ff60e 	bge	r20,r17,3430 <___vfprintf_internal_r+0x634>
    3458:	d9014f17 	ldw	r4,1340(sp)
    345c:	b00b883a 	mov	r5,r22
    3460:	d9800c04 	addi	r6,sp,48
    3464:	0002da40 	call	2da4 <__sprint_r>
    3468:	10001c1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    346c:	843ffc04 	addi	r16,r16,-16
    3470:	dc800e17 	ldw	r18,56(sp)
    3474:	dc400d17 	ldw	r17,52(sp)
    3478:	d8c01904 	addi	r3,sp,100
    347c:	9c3fef16 	blt	r19,r16,343c <___vfprintf_internal_r+0x640>
    3480:	9425883a 	add	r18,r18,r16
    3484:	8c400044 	addi	r17,r17,1
    3488:	008001c4 	movi	r2,7
    348c:	1f000015 	stw	fp,0(r3)
    3490:	1c000115 	stw	r16,4(r3)
    3494:	dc800e15 	stw	r18,56(sp)
    3498:	dc400d15 	stw	r17,52(sp)
    349c:	1440cb16 	blt	r2,r17,37cc <___vfprintf_internal_r+0x9d0>
    34a0:	d8814a17 	ldw	r2,1320(sp)
    34a4:	d9414517 	ldw	r5,1300(sp)
    34a8:	1140010e 	bge	r2,r5,34b0 <___vfprintf_internal_r+0x6b4>
    34ac:	2805883a 	mov	r2,r5
    34b0:	d9814b17 	ldw	r6,1324(sp)
    34b4:	308d883a 	add	r6,r6,r2
    34b8:	d9814b15 	stw	r6,1324(sp)
    34bc:	90013b1e 	bne	r18,zero,39ac <___vfprintf_internal_r+0xbb0>
    34c0:	d9c14017 	ldw	r7,1280(sp)
    34c4:	dd401904 	addi	r21,sp,100
    34c8:	d8000d15 	stw	zero,52(sp)
    34cc:	003ea706 	br	2f6c <___vfprintf_internal_r+0x170>
    34d0:	d8800e17 	ldw	r2,56(sp)
    34d4:	1005451e 	bne	r2,zero,49ec <___vfprintf_internal_r+0x1bf0>
    34d8:	d8000d15 	stw	zero,52(sp)
    34dc:	b080030b 	ldhu	r2,12(r22)
    34e0:	1080100c 	andi	r2,r2,64
    34e4:	103e8726 	beq	r2,zero,2f04 <___vfprintf_internal_r+0x108>
    34e8:	00bfffc4 	movi	r2,-1
    34ec:	d8814b15 	stw	r2,1324(sp)
    34f0:	003e8406 	br	2f04 <___vfprintf_internal_r+0x108>
    34f4:	d9814d17 	ldw	r6,1332(sp)
    34f8:	00801944 	movi	r2,101
    34fc:	11806e16 	blt	r2,r6,36b8 <___vfprintf_internal_r+0x8bc>
    3500:	d9414717 	ldw	r5,1308(sp)
    3504:	00c00044 	movi	r3,1
    3508:	1943490e 	bge	r3,r5,4230 <___vfprintf_internal_r+0x1434>
    350c:	d8814117 	ldw	r2,1284(sp)
    3510:	94800044 	addi	r18,r18,1
    3514:	8c400044 	addi	r17,r17,1
    3518:	a8800015 	stw	r2,0(r21)
    351c:	008001c4 	movi	r2,7
    3520:	a8c00115 	stw	r3,4(r21)
    3524:	dc800e15 	stw	r18,56(sp)
    3528:	dc400d15 	stw	r17,52(sp)
    352c:	1441ca16 	blt	r2,r17,3c58 <___vfprintf_internal_r+0xe5c>
    3530:	a8c00204 	addi	r3,r21,8
    3534:	d9014917 	ldw	r4,1316(sp)
    3538:	00800044 	movi	r2,1
    353c:	94800044 	addi	r18,r18,1
    3540:	8c400044 	addi	r17,r17,1
    3544:	18800115 	stw	r2,4(r3)
    3548:	008001c4 	movi	r2,7
    354c:	19000015 	stw	r4,0(r3)
    3550:	dc800e15 	stw	r18,56(sp)
    3554:	dc400d15 	stw	r17,52(sp)
    3558:	1441b616 	blt	r2,r17,3c34 <___vfprintf_internal_r+0xe38>
    355c:	1cc00204 	addi	r19,r3,8
    3560:	d9014217 	ldw	r4,1288(sp)
    3564:	d9414317 	ldw	r5,1292(sp)
    3568:	000d883a 	mov	r6,zero
    356c:	000f883a 	mov	r7,zero
    3570:	000b8b00 	call	b8b0 <__nedf2>
    3574:	10017426 	beq	r2,zero,3b48 <___vfprintf_internal_r+0xd4c>
    3578:	d9414717 	ldw	r5,1308(sp)
    357c:	d9814117 	ldw	r6,1284(sp)
    3580:	8c400044 	addi	r17,r17,1
    3584:	2c85883a 	add	r2,r5,r18
    3588:	14bfffc4 	addi	r18,r2,-1
    358c:	28bfffc4 	addi	r2,r5,-1
    3590:	30c00044 	addi	r3,r6,1
    3594:	98800115 	stw	r2,4(r19)
    3598:	008001c4 	movi	r2,7
    359c:	98c00015 	stw	r3,0(r19)
    35a0:	dc800e15 	stw	r18,56(sp)
    35a4:	dc400d15 	stw	r17,52(sp)
    35a8:	14418e16 	blt	r2,r17,3be4 <___vfprintf_internal_r+0xde8>
    35ac:	9cc00204 	addi	r19,r19,8
    35b0:	d9414817 	ldw	r5,1312(sp)
    35b4:	d8800804 	addi	r2,sp,32
    35b8:	8c400044 	addi	r17,r17,1
    35bc:	9165883a 	add	r18,r18,r5
    35c0:	98800015 	stw	r2,0(r19)
    35c4:	008001c4 	movi	r2,7
    35c8:	99400115 	stw	r5,4(r19)
    35cc:	dc800e15 	stw	r18,56(sp)
    35d0:	dc400d15 	stw	r17,52(sp)
    35d4:	1440ed16 	blt	r2,r17,398c <___vfprintf_internal_r+0xb90>
    35d8:	98c00204 	addi	r3,r19,8
    35dc:	003f8506 	br	33f4 <___vfprintf_internal_r+0x5f8>
    35e0:	d9814a17 	ldw	r6,1320(sp)
    35e4:	d8814517 	ldw	r2,1300(sp)
    35e8:	30a1c83a 	sub	r16,r6,r2
    35ec:	043f4b0e 	bge	zero,r16,331c <___vfprintf_internal_r+0x520>
    35f0:	00800404 	movi	r2,16
    35f4:	14043a0e 	bge	r2,r16,46e0 <___vfprintf_internal_r+0x18e4>
    35f8:	1027883a 	mov	r19,r2
    35fc:	07000074 	movhi	fp,1
    3600:	e700f184 	addi	fp,fp,966
    3604:	050001c4 	movi	r20,7
    3608:	00000306 	br	3618 <___vfprintf_internal_r+0x81c>
    360c:	843ffc04 	addi	r16,r16,-16
    3610:	ad400204 	addi	r21,r21,8
    3614:	9c00130e 	bge	r19,r16,3664 <___vfprintf_internal_r+0x868>
    3618:	94800404 	addi	r18,r18,16
    361c:	8c400044 	addi	r17,r17,1
    3620:	af000015 	stw	fp,0(r21)
    3624:	acc00115 	stw	r19,4(r21)
    3628:	dc800e15 	stw	r18,56(sp)
    362c:	dc400d15 	stw	r17,52(sp)
    3630:	a47ff60e 	bge	r20,r17,360c <___vfprintf_internal_r+0x810>
    3634:	d9014f17 	ldw	r4,1340(sp)
    3638:	b00b883a 	mov	r5,r22
    363c:	d9800c04 	addi	r6,sp,48
    3640:	d9c15115 	stw	r7,1348(sp)
    3644:	0002da40 	call	2da4 <__sprint_r>
    3648:	d9c15117 	ldw	r7,1348(sp)
    364c:	103fa31e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3650:	843ffc04 	addi	r16,r16,-16
    3654:	dc800e17 	ldw	r18,56(sp)
    3658:	dc400d17 	ldw	r17,52(sp)
    365c:	dd401904 	addi	r21,sp,100
    3660:	9c3fed16 	blt	r19,r16,3618 <___vfprintf_internal_r+0x81c>
    3664:	9425883a 	add	r18,r18,r16
    3668:	8c400044 	addi	r17,r17,1
    366c:	008001c4 	movi	r2,7
    3670:	af000015 	stw	fp,0(r21)
    3674:	ac000115 	stw	r16,4(r21)
    3678:	dc800e15 	stw	r18,56(sp)
    367c:	dc400d15 	stw	r17,52(sp)
    3680:	14416116 	blt	r2,r17,3c08 <___vfprintf_internal_r+0xe0c>
    3684:	ad400204 	addi	r21,r21,8
    3688:	003f2406 	br	331c <___vfprintf_internal_r+0x520>
    368c:	d9014f17 	ldw	r4,1340(sp)
    3690:	00068b00 	call	68b0 <__sinit>
    3694:	d9c15117 	ldw	r7,1348(sp)
    3698:	003def06 	br	2e58 <___vfprintf_internal_r+0x5c>
    369c:	d9014f17 	ldw	r4,1340(sp)
    36a0:	b00b883a 	mov	r5,r22
    36a4:	d9c15115 	stw	r7,1348(sp)
    36a8:	0004ce40 	call	4ce4 <__swsetup_r>
    36ac:	d9c15117 	ldw	r7,1348(sp)
    36b0:	103dee26 	beq	r2,zero,2e6c <___vfprintf_internal_r+0x70>
    36b4:	003f8c06 	br	34e8 <___vfprintf_internal_r+0x6ec>
    36b8:	d9014217 	ldw	r4,1288(sp)
    36bc:	d9414317 	ldw	r5,1292(sp)
    36c0:	000d883a 	mov	r6,zero
    36c4:	000f883a 	mov	r7,zero
    36c8:	000b8280 	call	b828 <__eqdf2>
    36cc:	1000f21e 	bne	r2,zero,3a98 <___vfprintf_internal_r+0xc9c>
    36d0:	00800074 	movhi	r2,1
    36d4:	1080f104 	addi	r2,r2,964
    36d8:	94800044 	addi	r18,r18,1
    36dc:	8c400044 	addi	r17,r17,1
    36e0:	a8800015 	stw	r2,0(r21)
    36e4:	00c00044 	movi	r3,1
    36e8:	008001c4 	movi	r2,7
    36ec:	a8c00115 	stw	r3,4(r21)
    36f0:	dc800e15 	stw	r18,56(sp)
    36f4:	dc400d15 	stw	r17,52(sp)
    36f8:	14430016 	blt	r2,r17,42fc <___vfprintf_internal_r+0x1500>
    36fc:	a8c00204 	addi	r3,r21,8
    3700:	d8800517 	ldw	r2,20(sp)
    3704:	d9014717 	ldw	r4,1308(sp)
    3708:	11015c0e 	bge	r2,r4,3c7c <___vfprintf_internal_r+0xe80>
    370c:	dc400d17 	ldw	r17,52(sp)
    3710:	d9814917 	ldw	r6,1316(sp)
    3714:	00800044 	movi	r2,1
    3718:	94800044 	addi	r18,r18,1
    371c:	8c400044 	addi	r17,r17,1
    3720:	18800115 	stw	r2,4(r3)
    3724:	008001c4 	movi	r2,7
    3728:	19800015 	stw	r6,0(r3)
    372c:	dc800e15 	stw	r18,56(sp)
    3730:	dc400d15 	stw	r17,52(sp)
    3734:	14431616 	blt	r2,r17,4390 <___vfprintf_internal_r+0x1594>
    3738:	18c00204 	addi	r3,r3,8
    373c:	d8814717 	ldw	r2,1308(sp)
    3740:	143fffc4 	addi	r16,r2,-1
    3744:	043f2b0e 	bge	zero,r16,33f4 <___vfprintf_internal_r+0x5f8>
    3748:	00800404 	movi	r2,16
    374c:	1402a80e 	bge	r2,r16,41f0 <___vfprintf_internal_r+0x13f4>
    3750:	dc400d17 	ldw	r17,52(sp)
    3754:	1027883a 	mov	r19,r2
    3758:	07000074 	movhi	fp,1
    375c:	e700f184 	addi	fp,fp,966
    3760:	050001c4 	movi	r20,7
    3764:	00000306 	br	3774 <___vfprintf_internal_r+0x978>
    3768:	18c00204 	addi	r3,r3,8
    376c:	843ffc04 	addi	r16,r16,-16
    3770:	9c02a20e 	bge	r19,r16,41fc <___vfprintf_internal_r+0x1400>
    3774:	94800404 	addi	r18,r18,16
    3778:	8c400044 	addi	r17,r17,1
    377c:	1f000015 	stw	fp,0(r3)
    3780:	1cc00115 	stw	r19,4(r3)
    3784:	dc800e15 	stw	r18,56(sp)
    3788:	dc400d15 	stw	r17,52(sp)
    378c:	a47ff60e 	bge	r20,r17,3768 <___vfprintf_internal_r+0x96c>
    3790:	d9014f17 	ldw	r4,1340(sp)
    3794:	b00b883a 	mov	r5,r22
    3798:	d9800c04 	addi	r6,sp,48
    379c:	0002da40 	call	2da4 <__sprint_r>
    37a0:	103f4e1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    37a4:	dc800e17 	ldw	r18,56(sp)
    37a8:	dc400d17 	ldw	r17,52(sp)
    37ac:	d8c01904 	addi	r3,sp,100
    37b0:	003fee06 	br	376c <___vfprintf_internal_r+0x970>
    37b4:	d8802c0b 	ldhu	r2,176(sp)
    37b8:	00ffffc4 	movi	r3,-1
    37bc:	d8c14b15 	stw	r3,1324(sp)
    37c0:	1080100c 	andi	r2,r2,64
    37c4:	103dcc1e 	bne	r2,zero,2ef8 <___vfprintf_internal_r+0xfc>
    37c8:	003dce06 	br	2f04 <___vfprintf_internal_r+0x108>
    37cc:	d9014f17 	ldw	r4,1340(sp)
    37d0:	b00b883a 	mov	r5,r22
    37d4:	d9800c04 	addi	r6,sp,48
    37d8:	0002da40 	call	2da4 <__sprint_r>
    37dc:	103f3f1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    37e0:	dc800e17 	ldw	r18,56(sp)
    37e4:	003f2e06 	br	34a0 <___vfprintf_internal_r+0x6a4>
    37e8:	d9414c17 	ldw	r5,1328(sp)
    37ec:	29400414 	ori	r5,r5,16
    37f0:	d9414c15 	stw	r5,1328(sp)
    37f4:	d9814c17 	ldw	r6,1328(sp)
    37f8:	3080080c 	andi	r2,r6,32
    37fc:	10014f1e 	bne	r2,zero,3d3c <___vfprintf_internal_r+0xf40>
    3800:	d8c14c17 	ldw	r3,1328(sp)
    3804:	1880040c 	andi	r2,r3,16
    3808:	1002f01e 	bne	r2,zero,43cc <___vfprintf_internal_r+0x15d0>
    380c:	d9014c17 	ldw	r4,1328(sp)
    3810:	2080100c 	andi	r2,r4,64
    3814:	1002ed26 	beq	r2,zero,43cc <___vfprintf_internal_r+0x15d0>
    3818:	3880000f 	ldh	r2,0(r7)
    381c:	39c00104 	addi	r7,r7,4
    3820:	d9c14015 	stw	r7,1280(sp)
    3824:	1023d7fa 	srai	r17,r2,31
    3828:	1021883a 	mov	r16,r2
    382c:	88037816 	blt	r17,zero,4610 <___vfprintf_internal_r+0x1814>
    3830:	01000044 	movi	r4,1
    3834:	98000416 	blt	r19,zero,3848 <___vfprintf_internal_r+0xa4c>
    3838:	d8c14c17 	ldw	r3,1328(sp)
    383c:	00bfdfc4 	movi	r2,-129
    3840:	1886703a 	and	r3,r3,r2
    3844:	d8c14c15 	stw	r3,1328(sp)
    3848:	8444b03a 	or	r2,r16,r17
    384c:	10022c1e 	bne	r2,zero,4100 <___vfprintf_internal_r+0x1304>
    3850:	98022b1e 	bne	r19,zero,4100 <___vfprintf_internal_r+0x1304>
    3854:	20803fcc 	andi	r2,r4,255
    3858:	1002a126 	beq	r2,zero,42e0 <___vfprintf_internal_r+0x14e4>
    385c:	d8c01904 	addi	r3,sp,100
    3860:	dd000f04 	addi	r20,sp,60
    3864:	d8c14115 	stw	r3,1284(sp)
    3868:	d8c14117 	ldw	r3,1284(sp)
    386c:	dcc14515 	stw	r19,1300(sp)
    3870:	a0c5c83a 	sub	r2,r20,r3
    3874:	11c00a04 	addi	r7,r2,40
    3878:	99c0010e 	bge	r19,r7,3880 <___vfprintf_internal_r+0xa84>
    387c:	d9c14515 	stw	r7,1300(sp)
    3880:	dcc14615 	stw	r19,1304(sp)
    3884:	d8800407 	ldb	r2,16(sp)
    3888:	103e4c26 	beq	r2,zero,31bc <___vfprintf_internal_r+0x3c0>
    388c:	d8814517 	ldw	r2,1300(sp)
    3890:	10800044 	addi	r2,r2,1
    3894:	d8814515 	stw	r2,1300(sp)
    3898:	003e4806 	br	31bc <___vfprintf_internal_r+0x3c0>
    389c:	d9814c17 	ldw	r6,1328(sp)
    38a0:	31800414 	ori	r6,r6,16
    38a4:	d9814c15 	stw	r6,1328(sp)
    38a8:	d8c14c17 	ldw	r3,1328(sp)
    38ac:	1880080c 	andi	r2,r3,32
    38b0:	1001271e 	bne	r2,zero,3d50 <___vfprintf_internal_r+0xf54>
    38b4:	d9414c17 	ldw	r5,1328(sp)
    38b8:	2880040c 	andi	r2,r5,16
    38bc:	1002bc1e 	bne	r2,zero,43b0 <___vfprintf_internal_r+0x15b4>
    38c0:	d9814c17 	ldw	r6,1328(sp)
    38c4:	3080100c 	andi	r2,r6,64
    38c8:	1002b926 	beq	r2,zero,43b0 <___vfprintf_internal_r+0x15b4>
    38cc:	3c00000b 	ldhu	r16,0(r7)
    38d0:	0009883a 	mov	r4,zero
    38d4:	39c00104 	addi	r7,r7,4
    38d8:	0023883a 	mov	r17,zero
    38dc:	d9c14015 	stw	r7,1280(sp)
    38e0:	d8000405 	stb	zero,16(sp)
    38e4:	003fd306 	br	3834 <___vfprintf_internal_r+0xa38>
    38e8:	d9014c17 	ldw	r4,1328(sp)
    38ec:	21000414 	ori	r4,r4,16
    38f0:	d9014c15 	stw	r4,1328(sp)
    38f4:	d9414c17 	ldw	r5,1328(sp)
    38f8:	2880080c 	andi	r2,r5,32
    38fc:	1001081e 	bne	r2,zero,3d20 <___vfprintf_internal_r+0xf24>
    3900:	d8c14c17 	ldw	r3,1328(sp)
    3904:	1880040c 	andi	r2,r3,16
    3908:	1002b61e 	bne	r2,zero,43e4 <___vfprintf_internal_r+0x15e8>
    390c:	d9014c17 	ldw	r4,1328(sp)
    3910:	2080100c 	andi	r2,r4,64
    3914:	1002b326 	beq	r2,zero,43e4 <___vfprintf_internal_r+0x15e8>
    3918:	3c00000b 	ldhu	r16,0(r7)
    391c:	01000044 	movi	r4,1
    3920:	39c00104 	addi	r7,r7,4
    3924:	0023883a 	mov	r17,zero
    3928:	d9c14015 	stw	r7,1280(sp)
    392c:	d8000405 	stb	zero,16(sp)
    3930:	003fc006 	br	3834 <___vfprintf_internal_r+0xa38>
    3934:	d9014f17 	ldw	r4,1340(sp)
    3938:	b00b883a 	mov	r5,r22
    393c:	d9800c04 	addi	r6,sp,48
    3940:	0002da40 	call	2da4 <__sprint_r>
    3944:	103ee51e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3948:	dc800e17 	ldw	r18,56(sp)
    394c:	d8c01904 	addi	r3,sp,100
    3950:	d9814c17 	ldw	r6,1328(sp)
    3954:	3080004c 	andi	r2,r6,1
    3958:	1005003a 	cmpeq	r2,r2,zero
    395c:	103ea51e 	bne	r2,zero,33f4 <___vfprintf_internal_r+0x5f8>
    3960:	00800044 	movi	r2,1
    3964:	dc400d17 	ldw	r17,52(sp)
    3968:	18800115 	stw	r2,4(r3)
    396c:	d8814917 	ldw	r2,1316(sp)
    3970:	94800044 	addi	r18,r18,1
    3974:	8c400044 	addi	r17,r17,1
    3978:	18800015 	stw	r2,0(r3)
    397c:	008001c4 	movi	r2,7
    3980:	dc800e15 	stw	r18,56(sp)
    3984:	dc400d15 	stw	r17,52(sp)
    3988:	1442240e 	bge	r2,r17,421c <___vfprintf_internal_r+0x1420>
    398c:	d9014f17 	ldw	r4,1340(sp)
    3990:	b00b883a 	mov	r5,r22
    3994:	d9800c04 	addi	r6,sp,48
    3998:	0002da40 	call	2da4 <__sprint_r>
    399c:	103ecf1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    39a0:	dc800e17 	ldw	r18,56(sp)
    39a4:	d8c01904 	addi	r3,sp,100
    39a8:	003e9206 	br	33f4 <___vfprintf_internal_r+0x5f8>
    39ac:	d9014f17 	ldw	r4,1340(sp)
    39b0:	b00b883a 	mov	r5,r22
    39b4:	d9800c04 	addi	r6,sp,48
    39b8:	0002da40 	call	2da4 <__sprint_r>
    39bc:	103ec026 	beq	r2,zero,34c0 <___vfprintf_internal_r+0x6c4>
    39c0:	003ec606 	br	34dc <___vfprintf_internal_r+0x6e0>
    39c4:	d9014f17 	ldw	r4,1340(sp)
    39c8:	b00b883a 	mov	r5,r22
    39cc:	d9800c04 	addi	r6,sp,48
    39d0:	d9c15115 	stw	r7,1348(sp)
    39d4:	0002da40 	call	2da4 <__sprint_r>
    39d8:	d9c15117 	ldw	r7,1348(sp)
    39dc:	103ebf1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    39e0:	dc800e17 	ldw	r18,56(sp)
    39e4:	dc400d17 	ldw	r17,52(sp)
    39e8:	dd401904 	addi	r21,sp,100
    39ec:	003e7406 	br	33c0 <___vfprintf_internal_r+0x5c4>
    39f0:	d9014f17 	ldw	r4,1340(sp)
    39f4:	b00b883a 	mov	r5,r22
    39f8:	d9800c04 	addi	r6,sp,48
    39fc:	d9c15115 	stw	r7,1348(sp)
    3a00:	0002da40 	call	2da4 <__sprint_r>
    3a04:	d9c15117 	ldw	r7,1348(sp)
    3a08:	103eb41e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3a0c:	dd401904 	addi	r21,sp,100
    3a10:	003d6d06 	br	2fc8 <___vfprintf_internal_r+0x1cc>
    3a14:	d9014f17 	ldw	r4,1340(sp)
    3a18:	b00b883a 	mov	r5,r22
    3a1c:	d9800c04 	addi	r6,sp,48
    3a20:	d9c15115 	stw	r7,1348(sp)
    3a24:	0002da40 	call	2da4 <__sprint_r>
    3a28:	d9c15117 	ldw	r7,1348(sp)
    3a2c:	103eab1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3a30:	dc800e17 	ldw	r18,56(sp)
    3a34:	dc400d17 	ldw	r17,52(sp)
    3a38:	dd401904 	addi	r21,sp,100
    3a3c:	003e3406 	br	3310 <___vfprintf_internal_r+0x514>
    3a40:	d9014f17 	ldw	r4,1340(sp)
    3a44:	b00b883a 	mov	r5,r22
    3a48:	d9800c04 	addi	r6,sp,48
    3a4c:	d9c15115 	stw	r7,1348(sp)
    3a50:	0002da40 	call	2da4 <__sprint_r>
    3a54:	d9c15117 	ldw	r7,1348(sp)
    3a58:	103ea01e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3a5c:	dc800e17 	ldw	r18,56(sp)
    3a60:	dc400d17 	ldw	r17,52(sp)
    3a64:	dd401904 	addi	r21,sp,100
    3a68:	003e1c06 	br	32dc <___vfprintf_internal_r+0x4e0>
    3a6c:	d9014f17 	ldw	r4,1340(sp)
    3a70:	b00b883a 	mov	r5,r22
    3a74:	d9800c04 	addi	r6,sp,48
    3a78:	d9c15115 	stw	r7,1348(sp)
    3a7c:	0002da40 	call	2da4 <__sprint_r>
    3a80:	d9c15117 	ldw	r7,1348(sp)
    3a84:	103e951e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3a88:	dc800e17 	ldw	r18,56(sp)
    3a8c:	dc400d17 	ldw	r17,52(sp)
    3a90:	dd401904 	addi	r21,sp,100
    3a94:	003e0406 	br	32a8 <___vfprintf_internal_r+0x4ac>
    3a98:	d9000517 	ldw	r4,20(sp)
    3a9c:	0102580e 	bge	zero,r4,4400 <___vfprintf_internal_r+0x1604>
    3aa0:	d9814717 	ldw	r6,1308(sp)
    3aa4:	21807a16 	blt	r4,r6,3c90 <___vfprintf_internal_r+0xe94>
    3aa8:	d8814117 	ldw	r2,1284(sp)
    3aac:	91a5883a 	add	r18,r18,r6
    3ab0:	8c400044 	addi	r17,r17,1
    3ab4:	a8800015 	stw	r2,0(r21)
    3ab8:	008001c4 	movi	r2,7
    3abc:	a9800115 	stw	r6,4(r21)
    3ac0:	dc800e15 	stw	r18,56(sp)
    3ac4:	dc400d15 	stw	r17,52(sp)
    3ac8:	1442fc16 	blt	r2,r17,46bc <___vfprintf_internal_r+0x18c0>
    3acc:	a8c00204 	addi	r3,r21,8
    3ad0:	d9414717 	ldw	r5,1308(sp)
    3ad4:	2161c83a 	sub	r16,r4,r5
    3ad8:	043f9d0e 	bge	zero,r16,3950 <___vfprintf_internal_r+0xb54>
    3adc:	00800404 	movi	r2,16
    3ae0:	1402190e 	bge	r2,r16,4348 <___vfprintf_internal_r+0x154c>
    3ae4:	dc400d17 	ldw	r17,52(sp)
    3ae8:	1027883a 	mov	r19,r2
    3aec:	07000074 	movhi	fp,1
    3af0:	e700f184 	addi	fp,fp,966
    3af4:	050001c4 	movi	r20,7
    3af8:	00000306 	br	3b08 <___vfprintf_internal_r+0xd0c>
    3afc:	18c00204 	addi	r3,r3,8
    3b00:	843ffc04 	addi	r16,r16,-16
    3b04:	9c02130e 	bge	r19,r16,4354 <___vfprintf_internal_r+0x1558>
    3b08:	94800404 	addi	r18,r18,16
    3b0c:	8c400044 	addi	r17,r17,1
    3b10:	1f000015 	stw	fp,0(r3)
    3b14:	1cc00115 	stw	r19,4(r3)
    3b18:	dc800e15 	stw	r18,56(sp)
    3b1c:	dc400d15 	stw	r17,52(sp)
    3b20:	a47ff60e 	bge	r20,r17,3afc <___vfprintf_internal_r+0xd00>
    3b24:	d9014f17 	ldw	r4,1340(sp)
    3b28:	b00b883a 	mov	r5,r22
    3b2c:	d9800c04 	addi	r6,sp,48
    3b30:	0002da40 	call	2da4 <__sprint_r>
    3b34:	103e691e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3b38:	dc800e17 	ldw	r18,56(sp)
    3b3c:	dc400d17 	ldw	r17,52(sp)
    3b40:	d8c01904 	addi	r3,sp,100
    3b44:	003fee06 	br	3b00 <___vfprintf_internal_r+0xd04>
    3b48:	d8814717 	ldw	r2,1308(sp)
    3b4c:	143fffc4 	addi	r16,r2,-1
    3b50:	043e970e 	bge	zero,r16,35b0 <___vfprintf_internal_r+0x7b4>
    3b54:	00800404 	movi	r2,16
    3b58:	1400180e 	bge	r2,r16,3bbc <___vfprintf_internal_r+0xdc0>
    3b5c:	1029883a 	mov	r20,r2
    3b60:	07000074 	movhi	fp,1
    3b64:	e700f184 	addi	fp,fp,966
    3b68:	054001c4 	movi	r21,7
    3b6c:	00000306 	br	3b7c <___vfprintf_internal_r+0xd80>
    3b70:	9cc00204 	addi	r19,r19,8
    3b74:	843ffc04 	addi	r16,r16,-16
    3b78:	a400120e 	bge	r20,r16,3bc4 <___vfprintf_internal_r+0xdc8>
    3b7c:	94800404 	addi	r18,r18,16
    3b80:	8c400044 	addi	r17,r17,1
    3b84:	9f000015 	stw	fp,0(r19)
    3b88:	9d000115 	stw	r20,4(r19)
    3b8c:	dc800e15 	stw	r18,56(sp)
    3b90:	dc400d15 	stw	r17,52(sp)
    3b94:	ac7ff60e 	bge	r21,r17,3b70 <___vfprintf_internal_r+0xd74>
    3b98:	d9014f17 	ldw	r4,1340(sp)
    3b9c:	b00b883a 	mov	r5,r22
    3ba0:	d9800c04 	addi	r6,sp,48
    3ba4:	0002da40 	call	2da4 <__sprint_r>
    3ba8:	103e4c1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3bac:	dc800e17 	ldw	r18,56(sp)
    3bb0:	dc400d17 	ldw	r17,52(sp)
    3bb4:	dcc01904 	addi	r19,sp,100
    3bb8:	003fee06 	br	3b74 <___vfprintf_internal_r+0xd78>
    3bbc:	07000074 	movhi	fp,1
    3bc0:	e700f184 	addi	fp,fp,966
    3bc4:	9425883a 	add	r18,r18,r16
    3bc8:	8c400044 	addi	r17,r17,1
    3bcc:	008001c4 	movi	r2,7
    3bd0:	9f000015 	stw	fp,0(r19)
    3bd4:	9c000115 	stw	r16,4(r19)
    3bd8:	dc800e15 	stw	r18,56(sp)
    3bdc:	dc400d15 	stw	r17,52(sp)
    3be0:	147e720e 	bge	r2,r17,35ac <___vfprintf_internal_r+0x7b0>
    3be4:	d9014f17 	ldw	r4,1340(sp)
    3be8:	b00b883a 	mov	r5,r22
    3bec:	d9800c04 	addi	r6,sp,48
    3bf0:	0002da40 	call	2da4 <__sprint_r>
    3bf4:	103e391e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3bf8:	dc800e17 	ldw	r18,56(sp)
    3bfc:	dc400d17 	ldw	r17,52(sp)
    3c00:	dcc01904 	addi	r19,sp,100
    3c04:	003e6a06 	br	35b0 <___vfprintf_internal_r+0x7b4>
    3c08:	d9014f17 	ldw	r4,1340(sp)
    3c0c:	b00b883a 	mov	r5,r22
    3c10:	d9800c04 	addi	r6,sp,48
    3c14:	d9c15115 	stw	r7,1348(sp)
    3c18:	0002da40 	call	2da4 <__sprint_r>
    3c1c:	d9c15117 	ldw	r7,1348(sp)
    3c20:	103e2e1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3c24:	dc800e17 	ldw	r18,56(sp)
    3c28:	dc400d17 	ldw	r17,52(sp)
    3c2c:	dd401904 	addi	r21,sp,100
    3c30:	003dba06 	br	331c <___vfprintf_internal_r+0x520>
    3c34:	d9014f17 	ldw	r4,1340(sp)
    3c38:	b00b883a 	mov	r5,r22
    3c3c:	d9800c04 	addi	r6,sp,48
    3c40:	0002da40 	call	2da4 <__sprint_r>
    3c44:	103e251e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3c48:	dc800e17 	ldw	r18,56(sp)
    3c4c:	dc400d17 	ldw	r17,52(sp)
    3c50:	dcc01904 	addi	r19,sp,100
    3c54:	003e4206 	br	3560 <___vfprintf_internal_r+0x764>
    3c58:	d9014f17 	ldw	r4,1340(sp)
    3c5c:	b00b883a 	mov	r5,r22
    3c60:	d9800c04 	addi	r6,sp,48
    3c64:	0002da40 	call	2da4 <__sprint_r>
    3c68:	103e1c1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    3c6c:	dc800e17 	ldw	r18,56(sp)
    3c70:	dc400d17 	ldw	r17,52(sp)
    3c74:	d8c01904 	addi	r3,sp,100
    3c78:	003e2e06 	br	3534 <___vfprintf_internal_r+0x738>
    3c7c:	d9414c17 	ldw	r5,1328(sp)
    3c80:	2880004c 	andi	r2,r5,1
    3c84:	1005003a 	cmpeq	r2,r2,zero
    3c88:	103dda1e 	bne	r2,zero,33f4 <___vfprintf_internal_r+0x5f8>
    3c8c:	003e9f06 	br	370c <___vfprintf_internal_r+0x910>
    3c90:	d8c14117 	ldw	r3,1284(sp)
    3c94:	9125883a 	add	r18,r18,r4
    3c98:	8c400044 	addi	r17,r17,1
    3c9c:	008001c4 	movi	r2,7
    3ca0:	a8c00015 	stw	r3,0(r21)
    3ca4:	a9000115 	stw	r4,4(r21)
    3ca8:	dc800e15 	stw	r18,56(sp)
    3cac:	dc400d15 	stw	r17,52(sp)
    3cb0:	14426c16 	blt	r2,r17,4664 <___vfprintf_internal_r+0x1868>
    3cb4:	a8c00204 	addi	r3,r21,8
    3cb8:	d9414917 	ldw	r5,1316(sp)
    3cbc:	00800044 	movi	r2,1
    3cc0:	94800044 	addi	r18,r18,1
    3cc4:	8c400044 	addi	r17,r17,1
    3cc8:	18800115 	stw	r2,4(r3)
    3ccc:	008001c4 	movi	r2,7
    3cd0:	19400015 	stw	r5,0(r3)
    3cd4:	dc800e15 	stw	r18,56(sp)
    3cd8:	dc400d15 	stw	r17,52(sp)
    3cdc:	2021883a 	mov	r16,r4
    3ce0:	14425616 	blt	r2,r17,463c <___vfprintf_internal_r+0x1840>
    3ce4:	19400204 	addi	r5,r3,8
    3ce8:	d9814717 	ldw	r6,1308(sp)
    3cec:	8c400044 	addi	r17,r17,1
    3cf0:	dc400d15 	stw	r17,52(sp)
    3cf4:	3107c83a 	sub	r3,r6,r4
    3cf8:	d9014117 	ldw	r4,1284(sp)
    3cfc:	90e5883a 	add	r18,r18,r3
    3d00:	28c00115 	stw	r3,4(r5)
    3d04:	8105883a 	add	r2,r16,r4
    3d08:	28800015 	stw	r2,0(r5)
    3d0c:	008001c4 	movi	r2,7
    3d10:	dc800e15 	stw	r18,56(sp)
    3d14:	147f1d16 	blt	r2,r17,398c <___vfprintf_internal_r+0xb90>
    3d18:	28c00204 	addi	r3,r5,8
    3d1c:	003db506 	br	33f4 <___vfprintf_internal_r+0x5f8>
    3d20:	3c000017 	ldw	r16,0(r7)
    3d24:	3c400117 	ldw	r17,4(r7)
    3d28:	39800204 	addi	r6,r7,8
    3d2c:	01000044 	movi	r4,1
    3d30:	d9814015 	stw	r6,1280(sp)
    3d34:	d8000405 	stb	zero,16(sp)
    3d38:	003ebe06 	br	3834 <___vfprintf_internal_r+0xa38>
    3d3c:	3c000017 	ldw	r16,0(r7)
    3d40:	3c400117 	ldw	r17,4(r7)
    3d44:	38800204 	addi	r2,r7,8
    3d48:	d8814015 	stw	r2,1280(sp)
    3d4c:	003eb706 	br	382c <___vfprintf_internal_r+0xa30>
    3d50:	3c000017 	ldw	r16,0(r7)
    3d54:	3c400117 	ldw	r17,4(r7)
    3d58:	39000204 	addi	r4,r7,8
    3d5c:	d9014015 	stw	r4,1280(sp)
    3d60:	0009883a 	mov	r4,zero
    3d64:	d8000405 	stb	zero,16(sp)
    3d68:	003eb206 	br	3834 <___vfprintf_internal_r+0xa38>
    3d6c:	38c00017 	ldw	r3,0(r7)
    3d70:	39c00104 	addi	r7,r7,4
    3d74:	d8c14a15 	stw	r3,1320(sp)
    3d78:	1800d70e 	bge	r3,zero,40d8 <___vfprintf_internal_r+0x12dc>
    3d7c:	00c7c83a 	sub	r3,zero,r3
    3d80:	d8c14a15 	stw	r3,1320(sp)
    3d84:	d9014c17 	ldw	r4,1328(sp)
    3d88:	b8c00007 	ldb	r3,0(r23)
    3d8c:	21000114 	ori	r4,r4,4
    3d90:	d9014c15 	stw	r4,1328(sp)
    3d94:	003c9806 	br	2ff8 <___vfprintf_internal_r+0x1fc>
    3d98:	d9814c17 	ldw	r6,1328(sp)
    3d9c:	3080080c 	andi	r2,r6,32
    3da0:	1001f626 	beq	r2,zero,457c <___vfprintf_internal_r+0x1780>
    3da4:	d9014b17 	ldw	r4,1324(sp)
    3da8:	38800017 	ldw	r2,0(r7)
    3dac:	39c00104 	addi	r7,r7,4
    3db0:	d9c14015 	stw	r7,1280(sp)
    3db4:	2007d7fa 	srai	r3,r4,31
    3db8:	d9c14017 	ldw	r7,1280(sp)
    3dbc:	11000015 	stw	r4,0(r2)
    3dc0:	10c00115 	stw	r3,4(r2)
    3dc4:	003c6906 	br	2f6c <___vfprintf_internal_r+0x170>
    3dc8:	b8c00007 	ldb	r3,0(r23)
    3dcc:	00801b04 	movi	r2,108
    3dd0:	18825526 	beq	r3,r2,4728 <___vfprintf_internal_r+0x192c>
    3dd4:	d9414c17 	ldw	r5,1328(sp)
    3dd8:	29400414 	ori	r5,r5,16
    3ddc:	d9414c15 	stw	r5,1328(sp)
    3de0:	003c8506 	br	2ff8 <___vfprintf_internal_r+0x1fc>
    3de4:	d9814c17 	ldw	r6,1328(sp)
    3de8:	b8c00007 	ldb	r3,0(r23)
    3dec:	31800814 	ori	r6,r6,32
    3df0:	d9814c15 	stw	r6,1328(sp)
    3df4:	003c8006 	br	2ff8 <___vfprintf_internal_r+0x1fc>
    3df8:	d8814c17 	ldw	r2,1328(sp)
    3dfc:	3c000017 	ldw	r16,0(r7)
    3e00:	00c01e04 	movi	r3,120
    3e04:	10800094 	ori	r2,r2,2
    3e08:	d8814c15 	stw	r2,1328(sp)
    3e0c:	39c00104 	addi	r7,r7,4
    3e10:	01400074 	movhi	r5,1
    3e14:	2940da04 	addi	r5,r5,872
    3e18:	00800c04 	movi	r2,48
    3e1c:	0023883a 	mov	r17,zero
    3e20:	01000084 	movi	r4,2
    3e24:	d9c14015 	stw	r7,1280(sp)
    3e28:	d8c14d15 	stw	r3,1332(sp)
    3e2c:	d9414415 	stw	r5,1296(sp)
    3e30:	d8800445 	stb	r2,17(sp)
    3e34:	d8c00485 	stb	r3,18(sp)
    3e38:	d8000405 	stb	zero,16(sp)
    3e3c:	003e7d06 	br	3834 <___vfprintf_internal_r+0xa38>
    3e40:	d8814c17 	ldw	r2,1328(sp)
    3e44:	b8c00007 	ldb	r3,0(r23)
    3e48:	10801014 	ori	r2,r2,64
    3e4c:	d8814c15 	stw	r2,1328(sp)
    3e50:	003c6906 	br	2ff8 <___vfprintf_internal_r+0x1fc>
    3e54:	d9414c17 	ldw	r5,1328(sp)
    3e58:	2880020c 	andi	r2,r5,8
    3e5c:	1001e526 	beq	r2,zero,45f4 <___vfprintf_internal_r+0x17f8>
    3e60:	39800017 	ldw	r6,0(r7)
    3e64:	38800204 	addi	r2,r7,8
    3e68:	d8814015 	stw	r2,1280(sp)
    3e6c:	d9814215 	stw	r6,1288(sp)
    3e70:	39c00117 	ldw	r7,4(r7)
    3e74:	d9c14315 	stw	r7,1292(sp)
    3e78:	d9014217 	ldw	r4,1288(sp)
    3e7c:	d9414317 	ldw	r5,1292(sp)
    3e80:	00098ac0 	call	98ac <__isinfd>
    3e84:	10021d26 	beq	r2,zero,46fc <___vfprintf_internal_r+0x1900>
    3e88:	d9014217 	ldw	r4,1288(sp)
    3e8c:	d9414317 	ldw	r5,1292(sp)
    3e90:	000d883a 	mov	r6,zero
    3e94:	000f883a 	mov	r7,zero
    3e98:	000ba480 	call	ba48 <__ltdf2>
    3e9c:	1002d016 	blt	r2,zero,49e0 <___vfprintf_internal_r+0x1be4>
    3ea0:	d9414d17 	ldw	r5,1332(sp)
    3ea4:	008011c4 	movi	r2,71
    3ea8:	11421016 	blt	r2,r5,46ec <___vfprintf_internal_r+0x18f0>
    3eac:	01800074 	movhi	r6,1
    3eb0:	3180df04 	addi	r6,r6,892
    3eb4:	d9814115 	stw	r6,1284(sp)
    3eb8:	d9014c17 	ldw	r4,1328(sp)
    3ebc:	00c000c4 	movi	r3,3
    3ec0:	00bfdfc4 	movi	r2,-129
    3ec4:	2088703a 	and	r4,r4,r2
    3ec8:	180f883a 	mov	r7,r3
    3ecc:	d8c14515 	stw	r3,1300(sp)
    3ed0:	d9014c15 	stw	r4,1328(sp)
    3ed4:	d8014615 	stw	zero,1304(sp)
    3ed8:	003e6a06 	br	3884 <___vfprintf_internal_r+0xa88>
    3edc:	38800017 	ldw	r2,0(r7)
    3ee0:	00c00044 	movi	r3,1
    3ee4:	39c00104 	addi	r7,r7,4
    3ee8:	d9c14015 	stw	r7,1280(sp)
    3eec:	d9000f04 	addi	r4,sp,60
    3ef0:	180f883a 	mov	r7,r3
    3ef4:	d8c14515 	stw	r3,1300(sp)
    3ef8:	d9014115 	stw	r4,1284(sp)
    3efc:	d8800f05 	stb	r2,60(sp)
    3f00:	d8000405 	stb	zero,16(sp)
    3f04:	003cac06 	br	31b8 <___vfprintf_internal_r+0x3bc>
    3f08:	01400074 	movhi	r5,1
    3f0c:	2940e504 	addi	r5,r5,916
    3f10:	d9414415 	stw	r5,1296(sp)
    3f14:	d9814c17 	ldw	r6,1328(sp)
    3f18:	3080080c 	andi	r2,r6,32
    3f1c:	1000ff26 	beq	r2,zero,431c <___vfprintf_internal_r+0x1520>
    3f20:	3c000017 	ldw	r16,0(r7)
    3f24:	3c400117 	ldw	r17,4(r7)
    3f28:	38800204 	addi	r2,r7,8
    3f2c:	d8814015 	stw	r2,1280(sp)
    3f30:	d9414c17 	ldw	r5,1328(sp)
    3f34:	2880004c 	andi	r2,r5,1
    3f38:	1005003a 	cmpeq	r2,r2,zero
    3f3c:	1000b91e 	bne	r2,zero,4224 <___vfprintf_internal_r+0x1428>
    3f40:	8444b03a 	or	r2,r16,r17
    3f44:	1000b726 	beq	r2,zero,4224 <___vfprintf_internal_r+0x1428>
    3f48:	d9814d17 	ldw	r6,1332(sp)
    3f4c:	29400094 	ori	r5,r5,2
    3f50:	00800c04 	movi	r2,48
    3f54:	01000084 	movi	r4,2
    3f58:	d9414c15 	stw	r5,1328(sp)
    3f5c:	d8800445 	stb	r2,17(sp)
    3f60:	d9800485 	stb	r6,18(sp)
    3f64:	d8000405 	stb	zero,16(sp)
    3f68:	003e3206 	br	3834 <___vfprintf_internal_r+0xa38>
    3f6c:	01800074 	movhi	r6,1
    3f70:	3180da04 	addi	r6,r6,872
    3f74:	d9814415 	stw	r6,1296(sp)
    3f78:	003fe606 	br	3f14 <___vfprintf_internal_r+0x1118>
    3f7c:	00800ac4 	movi	r2,43
    3f80:	d8800405 	stb	r2,16(sp)
    3f84:	b8c00007 	ldb	r3,0(r23)
    3f88:	003c1b06 	br	2ff8 <___vfprintf_internal_r+0x1fc>
    3f8c:	d8814c17 	ldw	r2,1328(sp)
    3f90:	b8c00007 	ldb	r3,0(r23)
    3f94:	10800054 	ori	r2,r2,1
    3f98:	d8814c15 	stw	r2,1328(sp)
    3f9c:	003c1606 	br	2ff8 <___vfprintf_internal_r+0x1fc>
    3fa0:	d8800407 	ldb	r2,16(sp)
    3fa4:	10004c1e 	bne	r2,zero,40d8 <___vfprintf_internal_r+0x12dc>
    3fa8:	00800804 	movi	r2,32
    3fac:	d8800405 	stb	r2,16(sp)
    3fb0:	b8c00007 	ldb	r3,0(r23)
    3fb4:	003c1006 	br	2ff8 <___vfprintf_internal_r+0x1fc>
    3fb8:	d9814c17 	ldw	r6,1328(sp)
    3fbc:	b8c00007 	ldb	r3,0(r23)
    3fc0:	31800214 	ori	r6,r6,8
    3fc4:	d9814c15 	stw	r6,1328(sp)
    3fc8:	003c0b06 	br	2ff8 <___vfprintf_internal_r+0x1fc>
    3fcc:	0009883a 	mov	r4,zero
    3fd0:	04000244 	movi	r16,9
    3fd4:	01400284 	movi	r5,10
    3fd8:	d9c15115 	stw	r7,1348(sp)
    3fdc:	0002c240 	call	2c24 <__mulsi3>
    3fe0:	b9000007 	ldb	r4,0(r23)
    3fe4:	d8c14d17 	ldw	r3,1332(sp)
    3fe8:	bdc00044 	addi	r23,r23,1
    3fec:	d9014d15 	stw	r4,1332(sp)
    3ff0:	d9414d17 	ldw	r5,1332(sp)
    3ff4:	1885883a 	add	r2,r3,r2
    3ff8:	113ff404 	addi	r4,r2,-48
    3ffc:	28bff404 	addi	r2,r5,-48
    4000:	d9c15117 	ldw	r7,1348(sp)
    4004:	80bff32e 	bgeu	r16,r2,3fd4 <___vfprintf_internal_r+0x11d8>
    4008:	d9014a15 	stw	r4,1320(sp)
    400c:	003bfc06 	br	3000 <___vfprintf_internal_r+0x204>
    4010:	d8814c17 	ldw	r2,1328(sp)
    4014:	b8c00007 	ldb	r3,0(r23)
    4018:	10802014 	ori	r2,r2,128
    401c:	d8814c15 	stw	r2,1328(sp)
    4020:	003bf506 	br	2ff8 <___vfprintf_internal_r+0x1fc>
    4024:	b8c00007 	ldb	r3,0(r23)
    4028:	00800a84 	movi	r2,42
    402c:	bdc00044 	addi	r23,r23,1
    4030:	18831826 	beq	r3,r2,4c94 <___vfprintf_internal_r+0x1e98>
    4034:	d8c14d15 	stw	r3,1332(sp)
    4038:	18bff404 	addi	r2,r3,-48
    403c:	00c00244 	movi	r3,9
    4040:	18827b36 	bltu	r3,r2,4a30 <___vfprintf_internal_r+0x1c34>
    4044:	1821883a 	mov	r16,r3
    4048:	0009883a 	mov	r4,zero
    404c:	01400284 	movi	r5,10
    4050:	d9c15115 	stw	r7,1348(sp)
    4054:	0002c240 	call	2c24 <__mulsi3>
    4058:	d9414d17 	ldw	r5,1332(sp)
    405c:	b9800007 	ldb	r6,0(r23)
    4060:	d9c15117 	ldw	r7,1348(sp)
    4064:	1145883a 	add	r2,r2,r5
    4068:	113ff404 	addi	r4,r2,-48
    406c:	30bff404 	addi	r2,r6,-48
    4070:	d9814d15 	stw	r6,1332(sp)
    4074:	bdc00044 	addi	r23,r23,1
    4078:	80bff42e 	bgeu	r16,r2,404c <___vfprintf_internal_r+0x1250>
    407c:	2027883a 	mov	r19,r4
    4080:	203bdf0e 	bge	r4,zero,3000 <___vfprintf_internal_r+0x204>
    4084:	04ffffc4 	movi	r19,-1
    4088:	003bdd06 	br	3000 <___vfprintf_internal_r+0x204>
    408c:	d8000405 	stb	zero,16(sp)
    4090:	39800017 	ldw	r6,0(r7)
    4094:	39c00104 	addi	r7,r7,4
    4098:	d9c14015 	stw	r7,1280(sp)
    409c:	d9814115 	stw	r6,1284(sp)
    40a0:	3001c926 	beq	r6,zero,47c8 <___vfprintf_internal_r+0x19cc>
    40a4:	98000e16 	blt	r19,zero,40e0 <___vfprintf_internal_r+0x12e4>
    40a8:	d9014117 	ldw	r4,1284(sp)
    40ac:	000b883a 	mov	r5,zero
    40b0:	980d883a 	mov	r6,r19
    40b4:	0007f300 	call	7f30 <memchr>
    40b8:	10025926 	beq	r2,zero,4a20 <___vfprintf_internal_r+0x1c24>
    40bc:	d8c14117 	ldw	r3,1284(sp)
    40c0:	10cfc83a 	sub	r7,r2,r3
    40c4:	99c19e16 	blt	r19,r7,4740 <___vfprintf_internal_r+0x1944>
    40c8:	d9c14515 	stw	r7,1300(sp)
    40cc:	38000916 	blt	r7,zero,40f4 <___vfprintf_internal_r+0x12f8>
    40d0:	d8014615 	stw	zero,1304(sp)
    40d4:	003deb06 	br	3884 <___vfprintf_internal_r+0xa88>
    40d8:	b8c00007 	ldb	r3,0(r23)
    40dc:	003bc606 	br	2ff8 <___vfprintf_internal_r+0x1fc>
    40e0:	d9014117 	ldw	r4,1284(sp)
    40e4:	0002d300 	call	2d30 <strlen>
    40e8:	d8814515 	stw	r2,1300(sp)
    40ec:	100f883a 	mov	r7,r2
    40f0:	103ff70e 	bge	r2,zero,40d0 <___vfprintf_internal_r+0x12d4>
    40f4:	d8014515 	stw	zero,1300(sp)
    40f8:	d8014615 	stw	zero,1304(sp)
    40fc:	003de106 	br	3884 <___vfprintf_internal_r+0xa88>
    4100:	20c03fcc 	andi	r3,r4,255
    4104:	00800044 	movi	r2,1
    4108:	18802d26 	beq	r3,r2,41c0 <___vfprintf_internal_r+0x13c4>
    410c:	18800e36 	bltu	r3,r2,4148 <___vfprintf_internal_r+0x134c>
    4110:	00800084 	movi	r2,2
    4114:	1880fa26 	beq	r3,r2,4500 <___vfprintf_internal_r+0x1704>
    4118:	01000074 	movhi	r4,1
    411c:	2100ea04 	addi	r4,r4,936
    4120:	0002d300 	call	2d30 <strlen>
    4124:	100f883a 	mov	r7,r2
    4128:	dcc14515 	stw	r19,1300(sp)
    412c:	9880010e 	bge	r19,r2,4134 <___vfprintf_internal_r+0x1338>
    4130:	d8814515 	stw	r2,1300(sp)
    4134:	00800074 	movhi	r2,1
    4138:	1080ea04 	addi	r2,r2,936
    413c:	dcc14615 	stw	r19,1304(sp)
    4140:	d8814115 	stw	r2,1284(sp)
    4144:	003dcf06 	br	3884 <___vfprintf_internal_r+0xa88>
    4148:	d9401904 	addi	r5,sp,100
    414c:	dd000f04 	addi	r20,sp,60
    4150:	d9414115 	stw	r5,1284(sp)
    4154:	880a977a 	slli	r5,r17,29
    4158:	d9814117 	ldw	r6,1284(sp)
    415c:	8004d0fa 	srli	r2,r16,3
    4160:	8806d0fa 	srli	r3,r17,3
    4164:	810001cc 	andi	r4,r16,7
    4168:	2884b03a 	or	r2,r5,r2
    416c:	31bfffc4 	addi	r6,r6,-1
    4170:	21000c04 	addi	r4,r4,48
    4174:	d9814115 	stw	r6,1284(sp)
    4178:	10cab03a 	or	r5,r2,r3
    417c:	31000005 	stb	r4,0(r6)
    4180:	1021883a 	mov	r16,r2
    4184:	1823883a 	mov	r17,r3
    4188:	283ff21e 	bne	r5,zero,4154 <___vfprintf_internal_r+0x1358>
    418c:	d8c14c17 	ldw	r3,1328(sp)
    4190:	1880004c 	andi	r2,r3,1
    4194:	1005003a 	cmpeq	r2,r2,zero
    4198:	103db31e 	bne	r2,zero,3868 <___vfprintf_internal_r+0xa6c>
    419c:	20803fcc 	andi	r2,r4,255
    41a0:	1080201c 	xori	r2,r2,128
    41a4:	10bfe004 	addi	r2,r2,-128
    41a8:	00c00c04 	movi	r3,48
    41ac:	10fdae26 	beq	r2,r3,3868 <___vfprintf_internal_r+0xa6c>
    41b0:	31bfffc4 	addi	r6,r6,-1
    41b4:	d9814115 	stw	r6,1284(sp)
    41b8:	30c00005 	stb	r3,0(r6)
    41bc:	003daa06 	br	3868 <___vfprintf_internal_r+0xa6c>
    41c0:	88800068 	cmpgeui	r2,r17,1
    41c4:	10002c1e 	bne	r2,zero,4278 <___vfprintf_internal_r+0x147c>
    41c8:	8800021e 	bne	r17,zero,41d4 <___vfprintf_internal_r+0x13d8>
    41cc:	00800244 	movi	r2,9
    41d0:	14002936 	bltu	r2,r16,4278 <___vfprintf_internal_r+0x147c>
    41d4:	d90018c4 	addi	r4,sp,99
    41d8:	dd000f04 	addi	r20,sp,60
    41dc:	d9014115 	stw	r4,1284(sp)
    41e0:	d9014117 	ldw	r4,1284(sp)
    41e4:	80800c04 	addi	r2,r16,48
    41e8:	20800005 	stb	r2,0(r4)
    41ec:	003d9e06 	br	3868 <___vfprintf_internal_r+0xa6c>
    41f0:	dc400d17 	ldw	r17,52(sp)
    41f4:	07000074 	movhi	fp,1
    41f8:	e700f184 	addi	fp,fp,966
    41fc:	9425883a 	add	r18,r18,r16
    4200:	8c400044 	addi	r17,r17,1
    4204:	008001c4 	movi	r2,7
    4208:	1f000015 	stw	fp,0(r3)
    420c:	1c000115 	stw	r16,4(r3)
    4210:	dc800e15 	stw	r18,56(sp)
    4214:	dc400d15 	stw	r17,52(sp)
    4218:	147ddc16 	blt	r2,r17,398c <___vfprintf_internal_r+0xb90>
    421c:	18c00204 	addi	r3,r3,8
    4220:	003c7406 	br	33f4 <___vfprintf_internal_r+0x5f8>
    4224:	01000084 	movi	r4,2
    4228:	d8000405 	stb	zero,16(sp)
    422c:	003d8106 	br	3834 <___vfprintf_internal_r+0xa38>
    4230:	d9814c17 	ldw	r6,1328(sp)
    4234:	30c4703a 	and	r2,r6,r3
    4238:	1005003a 	cmpeq	r2,r2,zero
    423c:	103cb326 	beq	r2,zero,350c <___vfprintf_internal_r+0x710>
    4240:	d9014117 	ldw	r4,1284(sp)
    4244:	94800044 	addi	r18,r18,1
    4248:	8c400044 	addi	r17,r17,1
    424c:	008001c4 	movi	r2,7
    4250:	a9000015 	stw	r4,0(r21)
    4254:	a8c00115 	stw	r3,4(r21)
    4258:	dc800e15 	stw	r18,56(sp)
    425c:	dc400d15 	stw	r17,52(sp)
    4260:	147e6016 	blt	r2,r17,3be4 <___vfprintf_internal_r+0xde8>
    4264:	acc00204 	addi	r19,r21,8
    4268:	003cd106 	br	35b0 <___vfprintf_internal_r+0x7b4>
    426c:	07000074 	movhi	fp,1
    4270:	e700f184 	addi	fp,fp,966
    4274:	003c4906 	br	339c <___vfprintf_internal_r+0x5a0>
    4278:	dd000f04 	addi	r20,sp,60
    427c:	dc801904 	addi	r18,sp,100
    4280:	8009883a 	mov	r4,r16
    4284:	880b883a 	mov	r5,r17
    4288:	01800284 	movi	r6,10
    428c:	000f883a 	mov	r7,zero
    4290:	000a6a80 	call	a6a8 <__umoddi3>
    4294:	12000c04 	addi	r8,r2,48
    4298:	94bfffc4 	addi	r18,r18,-1
    429c:	8009883a 	mov	r4,r16
    42a0:	880b883a 	mov	r5,r17
    42a4:	01800284 	movi	r6,10
    42a8:	000f883a 	mov	r7,zero
    42ac:	92000005 	stb	r8,0(r18)
    42b0:	000a03c0 	call	a03c <__udivdi3>
    42b4:	1009883a 	mov	r4,r2
    42b8:	1021883a 	mov	r16,r2
    42bc:	18800068 	cmpgeui	r2,r3,1
    42c0:	1823883a 	mov	r17,r3
    42c4:	103fee1e 	bne	r2,zero,4280 <___vfprintf_internal_r+0x1484>
    42c8:	1800021e 	bne	r3,zero,42d4 <___vfprintf_internal_r+0x14d8>
    42cc:	00800244 	movi	r2,9
    42d0:	113feb36 	bltu	r2,r4,4280 <___vfprintf_internal_r+0x1484>
    42d4:	94bfffc4 	addi	r18,r18,-1
    42d8:	dc814115 	stw	r18,1284(sp)
    42dc:	003fc006 	br	41e0 <___vfprintf_internal_r+0x13e4>
    42e0:	d9014c17 	ldw	r4,1328(sp)
    42e4:	2080004c 	andi	r2,r4,1
    42e8:	10009a1e 	bne	r2,zero,4554 <___vfprintf_internal_r+0x1758>
    42ec:	d9401904 	addi	r5,sp,100
    42f0:	dd000f04 	addi	r20,sp,60
    42f4:	d9414115 	stw	r5,1284(sp)
    42f8:	003d5b06 	br	3868 <___vfprintf_internal_r+0xa6c>
    42fc:	d9014f17 	ldw	r4,1340(sp)
    4300:	b00b883a 	mov	r5,r22
    4304:	d9800c04 	addi	r6,sp,48
    4308:	0002da40 	call	2da4 <__sprint_r>
    430c:	103c731e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    4310:	dc800e17 	ldw	r18,56(sp)
    4314:	d8c01904 	addi	r3,sp,100
    4318:	003cf906 	br	3700 <___vfprintf_internal_r+0x904>
    431c:	d8c14c17 	ldw	r3,1328(sp)
    4320:	1880040c 	andi	r2,r3,16
    4324:	1000711e 	bne	r2,zero,44ec <___vfprintf_internal_r+0x16f0>
    4328:	d9014c17 	ldw	r4,1328(sp)
    432c:	2080100c 	andi	r2,r4,64
    4330:	10006e26 	beq	r2,zero,44ec <___vfprintf_internal_r+0x16f0>
    4334:	3c00000b 	ldhu	r16,0(r7)
    4338:	0023883a 	mov	r17,zero
    433c:	39c00104 	addi	r7,r7,4
    4340:	d9c14015 	stw	r7,1280(sp)
    4344:	003efa06 	br	3f30 <___vfprintf_internal_r+0x1134>
    4348:	dc400d17 	ldw	r17,52(sp)
    434c:	07000074 	movhi	fp,1
    4350:	e700f184 	addi	fp,fp,966
    4354:	9425883a 	add	r18,r18,r16
    4358:	8c400044 	addi	r17,r17,1
    435c:	008001c4 	movi	r2,7
    4360:	1f000015 	stw	fp,0(r3)
    4364:	1c000115 	stw	r16,4(r3)
    4368:	dc800e15 	stw	r18,56(sp)
    436c:	dc400d15 	stw	r17,52(sp)
    4370:	147d7016 	blt	r2,r17,3934 <___vfprintf_internal_r+0xb38>
    4374:	18c00204 	addi	r3,r3,8
    4378:	003d7506 	br	3950 <___vfprintf_internal_r+0xb54>
    437c:	dc800e17 	ldw	r18,56(sp)
    4380:	dc400d17 	ldw	r17,52(sp)
    4384:	07000074 	movhi	fp,1
    4388:	e700f584 	addi	fp,fp,982
    438c:	003bba06 	br	3278 <___vfprintf_internal_r+0x47c>
    4390:	d9014f17 	ldw	r4,1340(sp)
    4394:	b00b883a 	mov	r5,r22
    4398:	d9800c04 	addi	r6,sp,48
    439c:	0002da40 	call	2da4 <__sprint_r>
    43a0:	103c4e1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    43a4:	dc800e17 	ldw	r18,56(sp)
    43a8:	d8c01904 	addi	r3,sp,100
    43ac:	003ce306 	br	373c <___vfprintf_internal_r+0x940>
    43b0:	3c000017 	ldw	r16,0(r7)
    43b4:	0009883a 	mov	r4,zero
    43b8:	39c00104 	addi	r7,r7,4
    43bc:	0023883a 	mov	r17,zero
    43c0:	d9c14015 	stw	r7,1280(sp)
    43c4:	d8000405 	stb	zero,16(sp)
    43c8:	003d1a06 	br	3834 <___vfprintf_internal_r+0xa38>
    43cc:	38800017 	ldw	r2,0(r7)
    43d0:	39c00104 	addi	r7,r7,4
    43d4:	d9c14015 	stw	r7,1280(sp)
    43d8:	1023d7fa 	srai	r17,r2,31
    43dc:	1021883a 	mov	r16,r2
    43e0:	003d1206 	br	382c <___vfprintf_internal_r+0xa30>
    43e4:	3c000017 	ldw	r16,0(r7)
    43e8:	01000044 	movi	r4,1
    43ec:	39c00104 	addi	r7,r7,4
    43f0:	0023883a 	mov	r17,zero
    43f4:	d9c14015 	stw	r7,1280(sp)
    43f8:	d8000405 	stb	zero,16(sp)
    43fc:	003d0d06 	br	3834 <___vfprintf_internal_r+0xa38>
    4400:	00800074 	movhi	r2,1
    4404:	1080f104 	addi	r2,r2,964
    4408:	94800044 	addi	r18,r18,1
    440c:	8c400044 	addi	r17,r17,1
    4410:	a8800015 	stw	r2,0(r21)
    4414:	00c00044 	movi	r3,1
    4418:	008001c4 	movi	r2,7
    441c:	a8c00115 	stw	r3,4(r21)
    4420:	dc800e15 	stw	r18,56(sp)
    4424:	dc400d15 	stw	r17,52(sp)
    4428:	1440ca16 	blt	r2,r17,4754 <___vfprintf_internal_r+0x1958>
    442c:	a8c00204 	addi	r3,r21,8
    4430:	2000061e 	bne	r4,zero,444c <___vfprintf_internal_r+0x1650>
    4434:	d9414717 	ldw	r5,1308(sp)
    4438:	2800041e 	bne	r5,zero,444c <___vfprintf_internal_r+0x1650>
    443c:	d9814c17 	ldw	r6,1328(sp)
    4440:	3080004c 	andi	r2,r6,1
    4444:	1005003a 	cmpeq	r2,r2,zero
    4448:	103bea1e 	bne	r2,zero,33f4 <___vfprintf_internal_r+0x5f8>
    444c:	00800044 	movi	r2,1
    4450:	dc400d17 	ldw	r17,52(sp)
    4454:	18800115 	stw	r2,4(r3)
    4458:	d8814917 	ldw	r2,1316(sp)
    445c:	94800044 	addi	r18,r18,1
    4460:	8c400044 	addi	r17,r17,1
    4464:	18800015 	stw	r2,0(r3)
    4468:	008001c4 	movi	r2,7
    446c:	dc800e15 	stw	r18,56(sp)
    4470:	dc400d15 	stw	r17,52(sp)
    4474:	1440ca16 	blt	r2,r17,47a0 <___vfprintf_internal_r+0x19a4>
    4478:	18c00204 	addi	r3,r3,8
    447c:	0121c83a 	sub	r16,zero,r4
    4480:	0400500e 	bge	zero,r16,45c4 <___vfprintf_internal_r+0x17c8>
    4484:	00800404 	movi	r2,16
    4488:	1400800e 	bge	r2,r16,468c <___vfprintf_internal_r+0x1890>
    448c:	1027883a 	mov	r19,r2
    4490:	07000074 	movhi	fp,1
    4494:	e700f184 	addi	fp,fp,966
    4498:	050001c4 	movi	r20,7
    449c:	00000306 	br	44ac <___vfprintf_internal_r+0x16b0>
    44a0:	18c00204 	addi	r3,r3,8
    44a4:	843ffc04 	addi	r16,r16,-16
    44a8:	9c007a0e 	bge	r19,r16,4694 <___vfprintf_internal_r+0x1898>
    44ac:	94800404 	addi	r18,r18,16
    44b0:	8c400044 	addi	r17,r17,1
    44b4:	1f000015 	stw	fp,0(r3)
    44b8:	1cc00115 	stw	r19,4(r3)
    44bc:	dc800e15 	stw	r18,56(sp)
    44c0:	dc400d15 	stw	r17,52(sp)
    44c4:	a47ff60e 	bge	r20,r17,44a0 <___vfprintf_internal_r+0x16a4>
    44c8:	d9014f17 	ldw	r4,1340(sp)
    44cc:	b00b883a 	mov	r5,r22
    44d0:	d9800c04 	addi	r6,sp,48
    44d4:	0002da40 	call	2da4 <__sprint_r>
    44d8:	103c001e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    44dc:	dc800e17 	ldw	r18,56(sp)
    44e0:	dc400d17 	ldw	r17,52(sp)
    44e4:	d8c01904 	addi	r3,sp,100
    44e8:	003fee06 	br	44a4 <___vfprintf_internal_r+0x16a8>
    44ec:	3c000017 	ldw	r16,0(r7)
    44f0:	0023883a 	mov	r17,zero
    44f4:	39c00104 	addi	r7,r7,4
    44f8:	d9c14015 	stw	r7,1280(sp)
    44fc:	003e8c06 	br	3f30 <___vfprintf_internal_r+0x1134>
    4500:	d9401904 	addi	r5,sp,100
    4504:	dd000f04 	addi	r20,sp,60
    4508:	d9414115 	stw	r5,1284(sp)
    450c:	d9814417 	ldw	r6,1296(sp)
    4510:	880a973a 	slli	r5,r17,28
    4514:	8004d13a 	srli	r2,r16,4
    4518:	810003cc 	andi	r4,r16,15
    451c:	3109883a 	add	r4,r6,r4
    4520:	2884b03a 	or	r2,r5,r2
    4524:	21400003 	ldbu	r5,0(r4)
    4528:	d9014117 	ldw	r4,1284(sp)
    452c:	8806d13a 	srli	r3,r17,4
    4530:	1021883a 	mov	r16,r2
    4534:	213fffc4 	addi	r4,r4,-1
    4538:	d9014115 	stw	r4,1284(sp)
    453c:	d9814117 	ldw	r6,1284(sp)
    4540:	10c8b03a 	or	r4,r2,r3
    4544:	1823883a 	mov	r17,r3
    4548:	31400005 	stb	r5,0(r6)
    454c:	203fef1e 	bne	r4,zero,450c <___vfprintf_internal_r+0x1710>
    4550:	003cc506 	br	3868 <___vfprintf_internal_r+0xa6c>
    4554:	00800c04 	movi	r2,48
    4558:	d98018c4 	addi	r6,sp,99
    455c:	dd000f04 	addi	r20,sp,60
    4560:	d88018c5 	stb	r2,99(sp)
    4564:	d9814115 	stw	r6,1284(sp)
    4568:	003cbf06 	br	3868 <___vfprintf_internal_r+0xa6c>
    456c:	dc400d17 	ldw	r17,52(sp)
    4570:	07000074 	movhi	fp,1
    4574:	e700f584 	addi	fp,fp,982
    4578:	003bc106 	br	3480 <___vfprintf_internal_r+0x684>
    457c:	d9414c17 	ldw	r5,1328(sp)
    4580:	2880040c 	andi	r2,r5,16
    4584:	10007c26 	beq	r2,zero,4778 <___vfprintf_internal_r+0x197c>
    4588:	38800017 	ldw	r2,0(r7)
    458c:	39c00104 	addi	r7,r7,4
    4590:	d9c14015 	stw	r7,1280(sp)
    4594:	d9814b17 	ldw	r6,1324(sp)
    4598:	d9c14017 	ldw	r7,1280(sp)
    459c:	11800015 	stw	r6,0(r2)
    45a0:	003a7206 	br	2f6c <___vfprintf_internal_r+0x170>
    45a4:	d9014f17 	ldw	r4,1340(sp)
    45a8:	b00b883a 	mov	r5,r22
    45ac:	d9800c04 	addi	r6,sp,48
    45b0:	0002da40 	call	2da4 <__sprint_r>
    45b4:	103bc91e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    45b8:	dc800e17 	ldw	r18,56(sp)
    45bc:	dc400d17 	ldw	r17,52(sp)
    45c0:	d8c01904 	addi	r3,sp,100
    45c4:	d9014717 	ldw	r4,1308(sp)
    45c8:	d9414117 	ldw	r5,1284(sp)
    45cc:	8c400044 	addi	r17,r17,1
    45d0:	9125883a 	add	r18,r18,r4
    45d4:	008001c4 	movi	r2,7
    45d8:	19400015 	stw	r5,0(r3)
    45dc:	19000115 	stw	r4,4(r3)
    45e0:	dc800e15 	stw	r18,56(sp)
    45e4:	dc400d15 	stw	r17,52(sp)
    45e8:	147ce816 	blt	r2,r17,398c <___vfprintf_internal_r+0xb90>
    45ec:	18c00204 	addi	r3,r3,8
    45f0:	003b8006 	br	33f4 <___vfprintf_internal_r+0x5f8>
    45f4:	38c00017 	ldw	r3,0(r7)
    45f8:	39000204 	addi	r4,r7,8
    45fc:	d9014015 	stw	r4,1280(sp)
    4600:	d8c14215 	stw	r3,1288(sp)
    4604:	39c00117 	ldw	r7,4(r7)
    4608:	d9c14315 	stw	r7,1292(sp)
    460c:	003e1a06 	br	3e78 <___vfprintf_internal_r+0x107c>
    4610:	0005883a 	mov	r2,zero
    4614:	1409c83a 	sub	r4,r2,r16
    4618:	1105803a 	cmpltu	r2,r2,r4
    461c:	044bc83a 	sub	r5,zero,r17
    4620:	2885c83a 	sub	r2,r5,r2
    4624:	2021883a 	mov	r16,r4
    4628:	1023883a 	mov	r17,r2
    462c:	01000044 	movi	r4,1
    4630:	00800b44 	movi	r2,45
    4634:	d8800405 	stb	r2,16(sp)
    4638:	003c7e06 	br	3834 <___vfprintf_internal_r+0xa38>
    463c:	d9014f17 	ldw	r4,1340(sp)
    4640:	b00b883a 	mov	r5,r22
    4644:	d9800c04 	addi	r6,sp,48
    4648:	0002da40 	call	2da4 <__sprint_r>
    464c:	103ba31e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    4650:	dc800e17 	ldw	r18,56(sp)
    4654:	dc400d17 	ldw	r17,52(sp)
    4658:	d9000517 	ldw	r4,20(sp)
    465c:	d9401904 	addi	r5,sp,100
    4660:	003da106 	br	3ce8 <___vfprintf_internal_r+0xeec>
    4664:	d9014f17 	ldw	r4,1340(sp)
    4668:	b00b883a 	mov	r5,r22
    466c:	d9800c04 	addi	r6,sp,48
    4670:	0002da40 	call	2da4 <__sprint_r>
    4674:	103b991e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    4678:	dc800e17 	ldw	r18,56(sp)
    467c:	dc400d17 	ldw	r17,52(sp)
    4680:	d9000517 	ldw	r4,20(sp)
    4684:	d8c01904 	addi	r3,sp,100
    4688:	003d8b06 	br	3cb8 <___vfprintf_internal_r+0xebc>
    468c:	07000074 	movhi	fp,1
    4690:	e700f184 	addi	fp,fp,966
    4694:	9425883a 	add	r18,r18,r16
    4698:	8c400044 	addi	r17,r17,1
    469c:	008001c4 	movi	r2,7
    46a0:	1f000015 	stw	fp,0(r3)
    46a4:	1c000115 	stw	r16,4(r3)
    46a8:	dc800e15 	stw	r18,56(sp)
    46ac:	dc400d15 	stw	r17,52(sp)
    46b0:	147fbc16 	blt	r2,r17,45a4 <___vfprintf_internal_r+0x17a8>
    46b4:	18c00204 	addi	r3,r3,8
    46b8:	003fc206 	br	45c4 <___vfprintf_internal_r+0x17c8>
    46bc:	d9014f17 	ldw	r4,1340(sp)
    46c0:	b00b883a 	mov	r5,r22
    46c4:	d9800c04 	addi	r6,sp,48
    46c8:	0002da40 	call	2da4 <__sprint_r>
    46cc:	103b831e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    46d0:	dc800e17 	ldw	r18,56(sp)
    46d4:	d9000517 	ldw	r4,20(sp)
    46d8:	d8c01904 	addi	r3,sp,100
    46dc:	003cfc06 	br	3ad0 <___vfprintf_internal_r+0xcd4>
    46e0:	07000074 	movhi	fp,1
    46e4:	e700f184 	addi	fp,fp,966
    46e8:	003bde06 	br	3664 <___vfprintf_internal_r+0x868>
    46ec:	00800074 	movhi	r2,1
    46f0:	1080e004 	addi	r2,r2,896
    46f4:	d8814115 	stw	r2,1284(sp)
    46f8:	003def06 	br	3eb8 <___vfprintf_internal_r+0x10bc>
    46fc:	d9014217 	ldw	r4,1288(sp)
    4700:	d9414317 	ldw	r5,1292(sp)
    4704:	00098ec0 	call	98ec <__isnand>
    4708:	10003926 	beq	r2,zero,47f0 <___vfprintf_internal_r+0x19f4>
    470c:	d9414d17 	ldw	r5,1332(sp)
    4710:	008011c4 	movi	r2,71
    4714:	1140ce16 	blt	r2,r5,4a50 <___vfprintf_internal_r+0x1c54>
    4718:	01800074 	movhi	r6,1
    471c:	3180e104 	addi	r6,r6,900
    4720:	d9814115 	stw	r6,1284(sp)
    4724:	003de406 	br	3eb8 <___vfprintf_internal_r+0x10bc>
    4728:	d9014c17 	ldw	r4,1328(sp)
    472c:	bdc00044 	addi	r23,r23,1
    4730:	b8c00007 	ldb	r3,0(r23)
    4734:	21000814 	ori	r4,r4,32
    4738:	d9014c15 	stw	r4,1328(sp)
    473c:	003a2e06 	br	2ff8 <___vfprintf_internal_r+0x1fc>
    4740:	dcc14515 	stw	r19,1300(sp)
    4744:	98011016 	blt	r19,zero,4b88 <___vfprintf_internal_r+0x1d8c>
    4748:	980f883a 	mov	r7,r19
    474c:	d8014615 	stw	zero,1304(sp)
    4750:	003c4c06 	br	3884 <___vfprintf_internal_r+0xa88>
    4754:	d9014f17 	ldw	r4,1340(sp)
    4758:	b00b883a 	mov	r5,r22
    475c:	d9800c04 	addi	r6,sp,48
    4760:	0002da40 	call	2da4 <__sprint_r>
    4764:	103b5d1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    4768:	dc800e17 	ldw	r18,56(sp)
    476c:	d9000517 	ldw	r4,20(sp)
    4770:	d8c01904 	addi	r3,sp,100
    4774:	003f2e06 	br	4430 <___vfprintf_internal_r+0x1634>
    4778:	d8c14c17 	ldw	r3,1328(sp)
    477c:	1880100c 	andi	r2,r3,64
    4780:	1000a026 	beq	r2,zero,4a04 <___vfprintf_internal_r+0x1c08>
    4784:	38800017 	ldw	r2,0(r7)
    4788:	39c00104 	addi	r7,r7,4
    478c:	d9c14015 	stw	r7,1280(sp)
    4790:	d9014b17 	ldw	r4,1324(sp)
    4794:	d9c14017 	ldw	r7,1280(sp)
    4798:	1100000d 	sth	r4,0(r2)
    479c:	0039f306 	br	2f6c <___vfprintf_internal_r+0x170>
    47a0:	d9014f17 	ldw	r4,1340(sp)
    47a4:	b00b883a 	mov	r5,r22
    47a8:	d9800c04 	addi	r6,sp,48
    47ac:	0002da40 	call	2da4 <__sprint_r>
    47b0:	103b4a1e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    47b4:	dc800e17 	ldw	r18,56(sp)
    47b8:	dc400d17 	ldw	r17,52(sp)
    47bc:	d9000517 	ldw	r4,20(sp)
    47c0:	d8c01904 	addi	r3,sp,100
    47c4:	003f2d06 	br	447c <___vfprintf_internal_r+0x1680>
    47c8:	00800184 	movi	r2,6
    47cc:	14c09a36 	bltu	r2,r19,4a38 <___vfprintf_internal_r+0x1c3c>
    47d0:	dcc14515 	stw	r19,1300(sp)
    47d4:	9800010e 	bge	r19,zero,47dc <___vfprintf_internal_r+0x19e0>
    47d8:	d8014515 	stw	zero,1300(sp)
    47dc:	00800074 	movhi	r2,1
    47e0:	1080e304 	addi	r2,r2,908
    47e4:	980f883a 	mov	r7,r19
    47e8:	d8814115 	stw	r2,1284(sp)
    47ec:	003a7206 	br	31b8 <___vfprintf_internal_r+0x3bc>
    47f0:	00bfffc4 	movi	r2,-1
    47f4:	9880e226 	beq	r19,r2,4b80 <___vfprintf_internal_r+0x1d84>
    47f8:	d9414d17 	ldw	r5,1332(sp)
    47fc:	008019c4 	movi	r2,103
    4800:	2880dc26 	beq	r5,r2,4b74 <___vfprintf_internal_r+0x1d78>
    4804:	008011c4 	movi	r2,71
    4808:	2880da26 	beq	r5,r2,4b74 <___vfprintf_internal_r+0x1d78>
    480c:	d9414c17 	ldw	r5,1328(sp)
    4810:	d9014317 	ldw	r4,1292(sp)
    4814:	d9814217 	ldw	r6,1288(sp)
    4818:	29404014 	ori	r5,r5,256
    481c:	d9414c15 	stw	r5,1328(sp)
    4820:	2000cc16 	blt	r4,zero,4b54 <___vfprintf_internal_r+0x1d58>
    4824:	3021883a 	mov	r16,r6
    4828:	2023883a 	mov	r17,r4
    482c:	0039883a 	mov	fp,zero
    4830:	d9414d17 	ldw	r5,1332(sp)
    4834:	00801984 	movi	r2,102
    4838:	2880b726 	beq	r5,r2,4b18 <___vfprintf_internal_r+0x1d1c>
    483c:	00801184 	movi	r2,70
    4840:	2880b526 	beq	r5,r2,4b18 <___vfprintf_internal_r+0x1d1c>
    4844:	00801944 	movi	r2,101
    4848:	2880c826 	beq	r5,r2,4b6c <___vfprintf_internal_r+0x1d70>
    484c:	00801144 	movi	r2,69
    4850:	2880c626 	beq	r5,r2,4b6c <___vfprintf_internal_r+0x1d70>
    4854:	9829883a 	mov	r20,r19
    4858:	d9014f17 	ldw	r4,1340(sp)
    485c:	d8800504 	addi	r2,sp,20
    4860:	880d883a 	mov	r6,r17
    4864:	d8800115 	stw	r2,4(sp)
    4868:	d8c00604 	addi	r3,sp,24
    486c:	d8800704 	addi	r2,sp,28
    4870:	800b883a 	mov	r5,r16
    4874:	01c00084 	movi	r7,2
    4878:	d8c00215 	stw	r3,8(sp)
    487c:	d8800315 	stw	r2,12(sp)
    4880:	dd000015 	stw	r20,0(sp)
    4884:	00050640 	call	5064 <_dtoa_r>
    4888:	d9814d17 	ldw	r6,1332(sp)
    488c:	d8814115 	stw	r2,1284(sp)
    4890:	008019c4 	movi	r2,103
    4894:	30809526 	beq	r6,r2,4aec <___vfprintf_internal_r+0x1cf0>
    4898:	d8c14d17 	ldw	r3,1332(sp)
    489c:	008011c4 	movi	r2,71
    48a0:	18809226 	beq	r3,r2,4aec <___vfprintf_internal_r+0x1cf0>
    48a4:	d9414117 	ldw	r5,1284(sp)
    48a8:	d9814d17 	ldw	r6,1332(sp)
    48ac:	00801984 	movi	r2,102
    48b0:	2d25883a 	add	r18,r5,r20
    48b4:	30808626 	beq	r6,r2,4ad0 <___vfprintf_internal_r+0x1cd4>
    48b8:	00801184 	movi	r2,70
    48bc:	30808426 	beq	r6,r2,4ad0 <___vfprintf_internal_r+0x1cd4>
    48c0:	000d883a 	mov	r6,zero
    48c4:	000f883a 	mov	r7,zero
    48c8:	880b883a 	mov	r5,r17
    48cc:	8009883a 	mov	r4,r16
    48d0:	000b8280 	call	b828 <__eqdf2>
    48d4:	1000751e 	bne	r2,zero,4aac <___vfprintf_internal_r+0x1cb0>
    48d8:	9005883a 	mov	r2,r18
    48dc:	dc800715 	stw	r18,28(sp)
    48e0:	d9014117 	ldw	r4,1284(sp)
    48e4:	d9414d17 	ldw	r5,1332(sp)
    48e8:	00c019c4 	movi	r3,103
    48ec:	1125c83a 	sub	r18,r2,r4
    48f0:	28c06826 	beq	r5,r3,4a94 <___vfprintf_internal_r+0x1c98>
    48f4:	008011c4 	movi	r2,71
    48f8:	28806626 	beq	r5,r2,4a94 <___vfprintf_internal_r+0x1c98>
    48fc:	d9000517 	ldw	r4,20(sp)
    4900:	d8c14d17 	ldw	r3,1332(sp)
    4904:	00801944 	movi	r2,101
    4908:	10c05516 	blt	r2,r3,4a60 <___vfprintf_internal_r+0x1c64>
    490c:	213fffc4 	addi	r4,r4,-1
    4910:	d9000515 	stw	r4,20(sp)
    4914:	d8c00805 	stb	r3,32(sp)
    4918:	2021883a 	mov	r16,r4
    491c:	2000c116 	blt	r4,zero,4c24 <___vfprintf_internal_r+0x1e28>
    4920:	00800ac4 	movi	r2,43
    4924:	d8800845 	stb	r2,33(sp)
    4928:	00800244 	movi	r2,9
    492c:	1400af0e 	bge	r2,r16,4bec <___vfprintf_internal_r+0x1df0>
    4930:	1027883a 	mov	r19,r2
    4934:	dc400b84 	addi	r17,sp,46
    4938:	8009883a 	mov	r4,r16
    493c:	01400284 	movi	r5,10
    4940:	0002bb40 	call	2bb4 <__modsi3>
    4944:	10800c04 	addi	r2,r2,48
    4948:	8c7fffc4 	addi	r17,r17,-1
    494c:	8009883a 	mov	r4,r16
    4950:	01400284 	movi	r5,10
    4954:	88800005 	stb	r2,0(r17)
    4958:	0002b540 	call	2b54 <__divsi3>
    495c:	1021883a 	mov	r16,r2
    4960:	98bff516 	blt	r19,r2,4938 <___vfprintf_internal_r+0x1b3c>
    4964:	10c00c04 	addi	r3,r2,48
    4968:	d88009c4 	addi	r2,sp,39
    496c:	108001c4 	addi	r2,r2,7
    4970:	897fffc4 	addi	r5,r17,-1
    4974:	88ffffc5 	stb	r3,-1(r17)
    4978:	2880a72e 	bgeu	r5,r2,4c18 <___vfprintf_internal_r+0x1e1c>
    497c:	1009883a 	mov	r4,r2
    4980:	d9800804 	addi	r6,sp,32
    4984:	d8c00884 	addi	r3,sp,34
    4988:	28800003 	ldbu	r2,0(r5)
    498c:	29400044 	addi	r5,r5,1
    4990:	18800005 	stb	r2,0(r3)
    4994:	18c00044 	addi	r3,r3,1
    4998:	293ffb36 	bltu	r5,r4,4988 <___vfprintf_internal_r+0x1b8c>
    499c:	1987c83a 	sub	r3,r3,r6
    49a0:	00800044 	movi	r2,1
    49a4:	d8c14815 	stw	r3,1312(sp)
    49a8:	90cf883a 	add	r7,r18,r3
    49ac:	1480960e 	bge	r2,r18,4c08 <___vfprintf_internal_r+0x1e0c>
    49b0:	39c00044 	addi	r7,r7,1
    49b4:	d9c14515 	stw	r7,1300(sp)
    49b8:	38003416 	blt	r7,zero,4a8c <___vfprintf_internal_r+0x1c90>
    49bc:	e0803fcc 	andi	r2,fp,255
    49c0:	1080201c 	xori	r2,r2,128
    49c4:	10bfe004 	addi	r2,r2,-128
    49c8:	10004e26 	beq	r2,zero,4b04 <___vfprintf_internal_r+0x1d08>
    49cc:	00800b44 	movi	r2,45
    49d0:	dc814715 	stw	r18,1308(sp)
    49d4:	d8014615 	stw	zero,1304(sp)
    49d8:	d8800405 	stb	r2,16(sp)
    49dc:	003bab06 	br	388c <___vfprintf_internal_r+0xa90>
    49e0:	00800b44 	movi	r2,45
    49e4:	d8800405 	stb	r2,16(sp)
    49e8:	003d2d06 	br	3ea0 <___vfprintf_internal_r+0x10a4>
    49ec:	d9014f17 	ldw	r4,1340(sp)
    49f0:	b00b883a 	mov	r5,r22
    49f4:	d9800c04 	addi	r6,sp,48
    49f8:	0002da40 	call	2da4 <__sprint_r>
    49fc:	103ab71e 	bne	r2,zero,34dc <___vfprintf_internal_r+0x6e0>
    4a00:	003ab506 	br	34d8 <___vfprintf_internal_r+0x6dc>
    4a04:	38800017 	ldw	r2,0(r7)
    4a08:	39c00104 	addi	r7,r7,4
    4a0c:	d9c14015 	stw	r7,1280(sp)
    4a10:	d9414b17 	ldw	r5,1324(sp)
    4a14:	d9c14017 	ldw	r7,1280(sp)
    4a18:	11400015 	stw	r5,0(r2)
    4a1c:	00395306 	br	2f6c <___vfprintf_internal_r+0x170>
    4a20:	980f883a 	mov	r7,r19
    4a24:	dcc14515 	stw	r19,1300(sp)
    4a28:	d8014615 	stw	zero,1304(sp)
    4a2c:	003b9506 	br	3884 <___vfprintf_internal_r+0xa88>
    4a30:	0027883a 	mov	r19,zero
    4a34:	00397206 	br	3000 <___vfprintf_internal_r+0x204>
    4a38:	00c00074 	movhi	r3,1
    4a3c:	18c0e304 	addi	r3,r3,908
    4a40:	100f883a 	mov	r7,r2
    4a44:	d8814515 	stw	r2,1300(sp)
    4a48:	d8c14115 	stw	r3,1284(sp)
    4a4c:	0039da06 	br	31b8 <___vfprintf_internal_r+0x3bc>
    4a50:	00800074 	movhi	r2,1
    4a54:	1080e204 	addi	r2,r2,904
    4a58:	d8814115 	stw	r2,1284(sp)
    4a5c:	003d1606 	br	3eb8 <___vfprintf_internal_r+0x10bc>
    4a60:	d9414d17 	ldw	r5,1332(sp)
    4a64:	00801984 	movi	r2,102
    4a68:	28804926 	beq	r5,r2,4b90 <___vfprintf_internal_r+0x1d94>
    4a6c:	200f883a 	mov	r7,r4
    4a70:	24805716 	blt	r4,r18,4bd0 <___vfprintf_internal_r+0x1dd4>
    4a74:	d9414c17 	ldw	r5,1328(sp)
    4a78:	2880004c 	andi	r2,r5,1
    4a7c:	10000126 	beq	r2,zero,4a84 <___vfprintf_internal_r+0x1c88>
    4a80:	21c00044 	addi	r7,r4,1
    4a84:	d9c14515 	stw	r7,1300(sp)
    4a88:	383fcc0e 	bge	r7,zero,49bc <___vfprintf_internal_r+0x1bc0>
    4a8c:	d8014515 	stw	zero,1300(sp)
    4a90:	003fca06 	br	49bc <___vfprintf_internal_r+0x1bc0>
    4a94:	d9000517 	ldw	r4,20(sp)
    4a98:	00bfff04 	movi	r2,-4
    4a9c:	1100480e 	bge	r2,r4,4bc0 <___vfprintf_internal_r+0x1dc4>
    4aa0:	99004716 	blt	r19,r4,4bc0 <___vfprintf_internal_r+0x1dc4>
    4aa4:	d8c14d15 	stw	r3,1332(sp)
    4aa8:	003ff006 	br	4a6c <___vfprintf_internal_r+0x1c70>
    4aac:	d8800717 	ldw	r2,28(sp)
    4ab0:	14bf8b2e 	bgeu	r2,r18,48e0 <___vfprintf_internal_r+0x1ae4>
    4ab4:	9007883a 	mov	r3,r18
    4ab8:	01000c04 	movi	r4,48
    4abc:	11000005 	stb	r4,0(r2)
    4ac0:	10800044 	addi	r2,r2,1
    4ac4:	d8800715 	stw	r2,28(sp)
    4ac8:	18bffc1e 	bne	r3,r2,4abc <___vfprintf_internal_r+0x1cc0>
    4acc:	003f8406 	br	48e0 <___vfprintf_internal_r+0x1ae4>
    4ad0:	d8814117 	ldw	r2,1284(sp)
    4ad4:	10c00007 	ldb	r3,0(r2)
    4ad8:	00800c04 	movi	r2,48
    4adc:	18805b26 	beq	r3,r2,4c4c <___vfprintf_internal_r+0x1e50>
    4ae0:	d9000517 	ldw	r4,20(sp)
    4ae4:	9125883a 	add	r18,r18,r4
    4ae8:	003f7506 	br	48c0 <___vfprintf_internal_r+0x1ac4>
    4aec:	d9014c17 	ldw	r4,1328(sp)
    4af0:	2080004c 	andi	r2,r4,1
    4af4:	1005003a 	cmpeq	r2,r2,zero
    4af8:	103f6a26 	beq	r2,zero,48a4 <___vfprintf_internal_r+0x1aa8>
    4afc:	d8800717 	ldw	r2,28(sp)
    4b00:	003f7706 	br	48e0 <___vfprintf_internal_r+0x1ae4>
    4b04:	d9c14515 	stw	r7,1300(sp)
    4b08:	38004d16 	blt	r7,zero,4c40 <___vfprintf_internal_r+0x1e44>
    4b0c:	dc814715 	stw	r18,1308(sp)
    4b10:	d8014615 	stw	zero,1304(sp)
    4b14:	003b5b06 	br	3884 <___vfprintf_internal_r+0xa88>
    4b18:	d9014f17 	ldw	r4,1340(sp)
    4b1c:	d8800504 	addi	r2,sp,20
    4b20:	d8800115 	stw	r2,4(sp)
    4b24:	d8c00604 	addi	r3,sp,24
    4b28:	d8800704 	addi	r2,sp,28
    4b2c:	800b883a 	mov	r5,r16
    4b30:	880d883a 	mov	r6,r17
    4b34:	01c000c4 	movi	r7,3
    4b38:	d8c00215 	stw	r3,8(sp)
    4b3c:	d8800315 	stw	r2,12(sp)
    4b40:	dcc00015 	stw	r19,0(sp)
    4b44:	9829883a 	mov	r20,r19
    4b48:	00050640 	call	5064 <_dtoa_r>
    4b4c:	d8814115 	stw	r2,1284(sp)
    4b50:	003f5106 	br	4898 <___vfprintf_internal_r+0x1a9c>
    4b54:	d8c14217 	ldw	r3,1288(sp)
    4b58:	d9014317 	ldw	r4,1292(sp)
    4b5c:	07000b44 	movi	fp,45
    4b60:	1821883a 	mov	r16,r3
    4b64:	2460003c 	xorhi	r17,r4,32768
    4b68:	003f3106 	br	4830 <___vfprintf_internal_r+0x1a34>
    4b6c:	9d000044 	addi	r20,r19,1
    4b70:	003f3906 	br	4858 <___vfprintf_internal_r+0x1a5c>
    4b74:	983f251e 	bne	r19,zero,480c <___vfprintf_internal_r+0x1a10>
    4b78:	04c00044 	movi	r19,1
    4b7c:	003f2306 	br	480c <___vfprintf_internal_r+0x1a10>
    4b80:	04c00184 	movi	r19,6
    4b84:	003f2106 	br	480c <___vfprintf_internal_r+0x1a10>
    4b88:	d8014515 	stw	zero,1300(sp)
    4b8c:	003eee06 	br	4748 <___vfprintf_internal_r+0x194c>
    4b90:	200f883a 	mov	r7,r4
    4b94:	0100370e 	bge	zero,r4,4c74 <___vfprintf_internal_r+0x1e78>
    4b98:	9800031e 	bne	r19,zero,4ba8 <___vfprintf_internal_r+0x1dac>
    4b9c:	d9814c17 	ldw	r6,1328(sp)
    4ba0:	3080004c 	andi	r2,r6,1
    4ba4:	103fb726 	beq	r2,zero,4a84 <___vfprintf_internal_r+0x1c88>
    4ba8:	20800044 	addi	r2,r4,1
    4bac:	98a7883a 	add	r19,r19,r2
    4bb0:	dcc14515 	stw	r19,1300(sp)
    4bb4:	980f883a 	mov	r7,r19
    4bb8:	983f800e 	bge	r19,zero,49bc <___vfprintf_internal_r+0x1bc0>
    4bbc:	003fb306 	br	4a8c <___vfprintf_internal_r+0x1c90>
    4bc0:	d9814d17 	ldw	r6,1332(sp)
    4bc4:	31bfff84 	addi	r6,r6,-2
    4bc8:	d9814d15 	stw	r6,1332(sp)
    4bcc:	003f4c06 	br	4900 <___vfprintf_internal_r+0x1b04>
    4bd0:	0100180e 	bge	zero,r4,4c34 <___vfprintf_internal_r+0x1e38>
    4bd4:	00800044 	movi	r2,1
    4bd8:	1485883a 	add	r2,r2,r18
    4bdc:	d8814515 	stw	r2,1300(sp)
    4be0:	100f883a 	mov	r7,r2
    4be4:	103f750e 	bge	r2,zero,49bc <___vfprintf_internal_r+0x1bc0>
    4be8:	003fa806 	br	4a8c <___vfprintf_internal_r+0x1c90>
    4bec:	80c00c04 	addi	r3,r16,48
    4bf0:	00800c04 	movi	r2,48
    4bf4:	d8c008c5 	stb	r3,35(sp)
    4bf8:	d9800804 	addi	r6,sp,32
    4bfc:	d8c00904 	addi	r3,sp,36
    4c00:	d8800885 	stb	r2,34(sp)
    4c04:	003f6506 	br	499c <___vfprintf_internal_r+0x1ba0>
    4c08:	d9014c17 	ldw	r4,1328(sp)
    4c0c:	2084703a 	and	r2,r4,r2
    4c10:	103f9c26 	beq	r2,zero,4a84 <___vfprintf_internal_r+0x1c88>
    4c14:	003f6606 	br	49b0 <___vfprintf_internal_r+0x1bb4>
    4c18:	d9800804 	addi	r6,sp,32
    4c1c:	d8c00884 	addi	r3,sp,34
    4c20:	003f5e06 	br	499c <___vfprintf_internal_r+0x1ba0>
    4c24:	00800b44 	movi	r2,45
    4c28:	0121c83a 	sub	r16,zero,r4
    4c2c:	d8800845 	stb	r2,33(sp)
    4c30:	003f3d06 	br	4928 <___vfprintf_internal_r+0x1b2c>
    4c34:	00800084 	movi	r2,2
    4c38:	1105c83a 	sub	r2,r2,r4
    4c3c:	003fe606 	br	4bd8 <___vfprintf_internal_r+0x1ddc>
    4c40:	d8014515 	stw	zero,1300(sp)
    4c44:	dc814715 	stw	r18,1308(sp)
    4c48:	003fb106 	br	4b10 <___vfprintf_internal_r+0x1d14>
    4c4c:	000d883a 	mov	r6,zero
    4c50:	000f883a 	mov	r7,zero
    4c54:	8009883a 	mov	r4,r16
    4c58:	880b883a 	mov	r5,r17
    4c5c:	000b8b00 	call	b8b0 <__nedf2>
    4c60:	103f9f26 	beq	r2,zero,4ae0 <___vfprintf_internal_r+0x1ce4>
    4c64:	00800044 	movi	r2,1
    4c68:	1509c83a 	sub	r4,r2,r20
    4c6c:	d9000515 	stw	r4,20(sp)
    4c70:	003f9b06 	br	4ae0 <___vfprintf_internal_r+0x1ce4>
    4c74:	98000d1e 	bne	r19,zero,4cac <___vfprintf_internal_r+0x1eb0>
    4c78:	d8c14c17 	ldw	r3,1328(sp)
    4c7c:	1880004c 	andi	r2,r3,1
    4c80:	10000a1e 	bne	r2,zero,4cac <___vfprintf_internal_r+0x1eb0>
    4c84:	01000044 	movi	r4,1
    4c88:	200f883a 	mov	r7,r4
    4c8c:	d9014515 	stw	r4,1300(sp)
    4c90:	003f4a06 	br	49bc <___vfprintf_internal_r+0x1bc0>
    4c94:	3cc00017 	ldw	r19,0(r7)
    4c98:	39c00104 	addi	r7,r7,4
    4c9c:	983d0e0e 	bge	r19,zero,40d8 <___vfprintf_internal_r+0x12dc>
    4ca0:	b8c00007 	ldb	r3,0(r23)
    4ca4:	04ffffc4 	movi	r19,-1
    4ca8:	0038d306 	br	2ff8 <___vfprintf_internal_r+0x1fc>
    4cac:	9cc00084 	addi	r19,r19,2
    4cb0:	dcc14515 	stw	r19,1300(sp)
    4cb4:	980f883a 	mov	r7,r19
    4cb8:	983f400e 	bge	r19,zero,49bc <___vfprintf_internal_r+0x1bc0>
    4cbc:	003f7306 	br	4a8c <___vfprintf_internal_r+0x1c90>

00004cc0 <__vfprintf_internal>:
    4cc0:	00800074 	movhi	r2,1
    4cc4:	10887e04 	addi	r2,r2,8696
    4cc8:	2013883a 	mov	r9,r4
    4ccc:	11000017 	ldw	r4,0(r2)
    4cd0:	2805883a 	mov	r2,r5
    4cd4:	300f883a 	mov	r7,r6
    4cd8:	480b883a 	mov	r5,r9
    4cdc:	100d883a 	mov	r6,r2
    4ce0:	0002dfc1 	jmpi	2dfc <___vfprintf_internal_r>

00004ce4 <__swsetup_r>:
    4ce4:	00800074 	movhi	r2,1
    4ce8:	10887e04 	addi	r2,r2,8696
    4cec:	10c00017 	ldw	r3,0(r2)
    4cf0:	defffd04 	addi	sp,sp,-12
    4cf4:	dc400115 	stw	r17,4(sp)
    4cf8:	dc000015 	stw	r16,0(sp)
    4cfc:	dfc00215 	stw	ra,8(sp)
    4d00:	2023883a 	mov	r17,r4
    4d04:	2821883a 	mov	r16,r5
    4d08:	18000226 	beq	r3,zero,4d14 <__swsetup_r+0x30>
    4d0c:	18800e17 	ldw	r2,56(r3)
    4d10:	10001f26 	beq	r2,zero,4d90 <__swsetup_r+0xac>
    4d14:	8100030b 	ldhu	r4,12(r16)
    4d18:	2080020c 	andi	r2,r4,8
    4d1c:	10002826 	beq	r2,zero,4dc0 <__swsetup_r+0xdc>
    4d20:	81400417 	ldw	r5,16(r16)
    4d24:	28001d26 	beq	r5,zero,4d9c <__swsetup_r+0xb8>
    4d28:	2080004c 	andi	r2,r4,1
    4d2c:	1005003a 	cmpeq	r2,r2,zero
    4d30:	10000b26 	beq	r2,zero,4d60 <__swsetup_r+0x7c>
    4d34:	2080008c 	andi	r2,r4,2
    4d38:	10001226 	beq	r2,zero,4d84 <__swsetup_r+0xa0>
    4d3c:	0005883a 	mov	r2,zero
    4d40:	80800215 	stw	r2,8(r16)
    4d44:	28000b26 	beq	r5,zero,4d74 <__swsetup_r+0x90>
    4d48:	0005883a 	mov	r2,zero
    4d4c:	dfc00217 	ldw	ra,8(sp)
    4d50:	dc400117 	ldw	r17,4(sp)
    4d54:	dc000017 	ldw	r16,0(sp)
    4d58:	dec00304 	addi	sp,sp,12
    4d5c:	f800283a 	ret
    4d60:	80800517 	ldw	r2,20(r16)
    4d64:	80000215 	stw	zero,8(r16)
    4d68:	0085c83a 	sub	r2,zero,r2
    4d6c:	80800615 	stw	r2,24(r16)
    4d70:	283ff51e 	bne	r5,zero,4d48 <__swsetup_r+0x64>
    4d74:	2080200c 	andi	r2,r4,128
    4d78:	103ff326 	beq	r2,zero,4d48 <__swsetup_r+0x64>
    4d7c:	00bfffc4 	movi	r2,-1
    4d80:	003ff206 	br	4d4c <__swsetup_r+0x68>
    4d84:	80800517 	ldw	r2,20(r16)
    4d88:	80800215 	stw	r2,8(r16)
    4d8c:	003fed06 	br	4d44 <__swsetup_r+0x60>
    4d90:	1809883a 	mov	r4,r3
    4d94:	00068b00 	call	68b0 <__sinit>
    4d98:	003fde06 	br	4d14 <__swsetup_r+0x30>
    4d9c:	20c0a00c 	andi	r3,r4,640
    4da0:	00808004 	movi	r2,512
    4da4:	18bfe026 	beq	r3,r2,4d28 <__swsetup_r+0x44>
    4da8:	8809883a 	mov	r4,r17
    4dac:	800b883a 	mov	r5,r16
    4db0:	000765c0 	call	765c <__smakebuf_r>
    4db4:	8100030b 	ldhu	r4,12(r16)
    4db8:	81400417 	ldw	r5,16(r16)
    4dbc:	003fda06 	br	4d28 <__swsetup_r+0x44>
    4dc0:	2080040c 	andi	r2,r4,16
    4dc4:	103fed26 	beq	r2,zero,4d7c <__swsetup_r+0x98>
    4dc8:	2080010c 	andi	r2,r4,4
    4dcc:	10001226 	beq	r2,zero,4e18 <__swsetup_r+0x134>
    4dd0:	81400c17 	ldw	r5,48(r16)
    4dd4:	28000526 	beq	r5,zero,4dec <__swsetup_r+0x108>
    4dd8:	80801004 	addi	r2,r16,64
    4ddc:	28800226 	beq	r5,r2,4de8 <__swsetup_r+0x104>
    4de0:	8809883a 	mov	r4,r17
    4de4:	0006c680 	call	6c68 <_free_r>
    4de8:	80000c15 	stw	zero,48(r16)
    4dec:	8080030b 	ldhu	r2,12(r16)
    4df0:	81400417 	ldw	r5,16(r16)
    4df4:	80000115 	stw	zero,4(r16)
    4df8:	10bff6cc 	andi	r2,r2,65499
    4dfc:	8080030d 	sth	r2,12(r16)
    4e00:	81400015 	stw	r5,0(r16)
    4e04:	8080030b 	ldhu	r2,12(r16)
    4e08:	10800214 	ori	r2,r2,8
    4e0c:	113fffcc 	andi	r4,r2,65535
    4e10:	8080030d 	sth	r2,12(r16)
    4e14:	003fc306 	br	4d24 <__swsetup_r+0x40>
    4e18:	81400417 	ldw	r5,16(r16)
    4e1c:	003ff906 	br	4e04 <__swsetup_r+0x120>

00004e20 <quorem>:
    4e20:	28c00417 	ldw	r3,16(r5)
    4e24:	20800417 	ldw	r2,16(r4)
    4e28:	defff104 	addi	sp,sp,-60
    4e2c:	dfc00e15 	stw	ra,56(sp)
    4e30:	df000d15 	stw	fp,52(sp)
    4e34:	ddc00c15 	stw	r23,48(sp)
    4e38:	dd800b15 	stw	r22,44(sp)
    4e3c:	dd400a15 	stw	r21,40(sp)
    4e40:	dd000915 	stw	r20,36(sp)
    4e44:	dcc00815 	stw	r19,32(sp)
    4e48:	dc800715 	stw	r18,28(sp)
    4e4c:	dc400615 	stw	r17,24(sp)
    4e50:	dc000515 	stw	r16,20(sp)
    4e54:	d9000315 	stw	r4,12(sp)
    4e58:	d9400415 	stw	r5,16(sp)
    4e5c:	10c07f16 	blt	r2,r3,505c <quorem+0x23c>
    4e60:	1d3fffc4 	addi	r20,r3,-1
    4e64:	d8c00417 	ldw	r3,16(sp)
    4e68:	d9000317 	ldw	r4,12(sp)
    4e6c:	a505883a 	add	r2,r20,r20
    4e70:	1085883a 	add	r2,r2,r2
    4e74:	1cc00504 	addi	r19,r3,20
    4e78:	25c00504 	addi	r23,r4,20
    4e7c:	98ad883a 	add	r22,r19,r2
    4e80:	15c7883a 	add	r3,r2,r23
    4e84:	b1400017 	ldw	r5,0(r22)
    4e88:	19000017 	ldw	r4,0(r3)
    4e8c:	d8c00015 	stw	r3,0(sp)
    4e90:	29400044 	addi	r5,r5,1
    4e94:	d9000215 	stw	r4,8(sp)
    4e98:	0002c140 	call	2c14 <__udivsi3>
    4e9c:	1039883a 	mov	fp,r2
    4ea0:	10003d1e 	bne	r2,zero,4f98 <quorem+0x178>
    4ea4:	d9400417 	ldw	r5,16(sp)
    4ea8:	d9000317 	ldw	r4,12(sp)
    4eac:	00083880 	call	8388 <__mcmp>
    4eb0:	10002c16 	blt	r2,zero,4f64 <quorem+0x144>
    4eb4:	e7000044 	addi	fp,fp,1
    4eb8:	b80f883a 	mov	r7,r23
    4ebc:	0011883a 	mov	r8,zero
    4ec0:	0009883a 	mov	r4,zero
    4ec4:	99400017 	ldw	r5,0(r19)
    4ec8:	38c00017 	ldw	r3,0(r7)
    4ecc:	9cc00104 	addi	r19,r19,4
    4ed0:	28bfffcc 	andi	r2,r5,65535
    4ed4:	2085883a 	add	r2,r4,r2
    4ed8:	11bfffcc 	andi	r6,r2,65535
    4edc:	193fffcc 	andi	r4,r3,65535
    4ee0:	1004d43a 	srli	r2,r2,16
    4ee4:	280ad43a 	srli	r5,r5,16
    4ee8:	2189c83a 	sub	r4,r4,r6
    4eec:	2209883a 	add	r4,r4,r8
    4ef0:	1806d43a 	srli	r3,r3,16
    4ef4:	288b883a 	add	r5,r5,r2
    4ef8:	200dd43a 	srai	r6,r4,16
    4efc:	28bfffcc 	andi	r2,r5,65535
    4f00:	1887c83a 	sub	r3,r3,r2
    4f04:	1987883a 	add	r3,r3,r6
    4f08:	3900000d 	sth	r4,0(r7)
    4f0c:	38c0008d 	sth	r3,2(r7)
    4f10:	2808d43a 	srli	r4,r5,16
    4f14:	39c00104 	addi	r7,r7,4
    4f18:	1811d43a 	srai	r8,r3,16
    4f1c:	b4ffe92e 	bgeu	r22,r19,4ec4 <quorem+0xa4>
    4f20:	a505883a 	add	r2,r20,r20
    4f24:	1085883a 	add	r2,r2,r2
    4f28:	b885883a 	add	r2,r23,r2
    4f2c:	10c00017 	ldw	r3,0(r2)
    4f30:	18000c1e 	bne	r3,zero,4f64 <quorem+0x144>
    4f34:	113fff04 	addi	r4,r2,-4
    4f38:	b900082e 	bgeu	r23,r4,4f5c <quorem+0x13c>
    4f3c:	10bfff17 	ldw	r2,-4(r2)
    4f40:	10000326 	beq	r2,zero,4f50 <quorem+0x130>
    4f44:	00000506 	br	4f5c <quorem+0x13c>
    4f48:	20800017 	ldw	r2,0(r4)
    4f4c:	1000031e 	bne	r2,zero,4f5c <quorem+0x13c>
    4f50:	213fff04 	addi	r4,r4,-4
    4f54:	a53fffc4 	addi	r20,r20,-1
    4f58:	b93ffb36 	bltu	r23,r4,4f48 <quorem+0x128>
    4f5c:	d9000317 	ldw	r4,12(sp)
    4f60:	25000415 	stw	r20,16(r4)
    4f64:	e005883a 	mov	r2,fp
    4f68:	dfc00e17 	ldw	ra,56(sp)
    4f6c:	df000d17 	ldw	fp,52(sp)
    4f70:	ddc00c17 	ldw	r23,48(sp)
    4f74:	dd800b17 	ldw	r22,44(sp)
    4f78:	dd400a17 	ldw	r21,40(sp)
    4f7c:	dd000917 	ldw	r20,36(sp)
    4f80:	dcc00817 	ldw	r19,32(sp)
    4f84:	dc800717 	ldw	r18,28(sp)
    4f88:	dc400617 	ldw	r17,24(sp)
    4f8c:	dc000517 	ldw	r16,20(sp)
    4f90:	dec00f04 	addi	sp,sp,60
    4f94:	f800283a 	ret
    4f98:	b823883a 	mov	r17,r23
    4f9c:	9825883a 	mov	r18,r19
    4fa0:	d8000115 	stw	zero,4(sp)
    4fa4:	002b883a 	mov	r21,zero
    4fa8:	94000017 	ldw	r16,0(r18)
    4fac:	e009883a 	mov	r4,fp
    4fb0:	94800104 	addi	r18,r18,4
    4fb4:	817fffcc 	andi	r5,r16,65535
    4fb8:	0002c240 	call	2c24 <__mulsi3>
    4fbc:	800ad43a 	srli	r5,r16,16
    4fc0:	e009883a 	mov	r4,fp
    4fc4:	a8a1883a 	add	r16,r21,r2
    4fc8:	0002c240 	call	2c24 <__mulsi3>
    4fcc:	89000017 	ldw	r4,0(r17)
    4fd0:	80ffffcc 	andi	r3,r16,65535
    4fd4:	8020d43a 	srli	r16,r16,16
    4fd8:	217fffcc 	andi	r5,r4,65535
    4fdc:	28cbc83a 	sub	r5,r5,r3
    4fe0:	d8c00117 	ldw	r3,4(sp)
    4fe4:	2008d43a 	srli	r4,r4,16
    4fe8:	1405883a 	add	r2,r2,r16
    4fec:	28cb883a 	add	r5,r5,r3
    4ff0:	280dd43a 	srai	r6,r5,16
    4ff4:	10ffffcc 	andi	r3,r2,65535
    4ff8:	20c9c83a 	sub	r4,r4,r3
    4ffc:	2189883a 	add	r4,r4,r6
    5000:	8900008d 	sth	r4,2(r17)
    5004:	2009d43a 	srai	r4,r4,16
    5008:	8940000d 	sth	r5,0(r17)
    500c:	102ad43a 	srli	r21,r2,16
    5010:	8c400104 	addi	r17,r17,4
    5014:	d9000115 	stw	r4,4(sp)
    5018:	b4bfe32e 	bgeu	r22,r18,4fa8 <quorem+0x188>
    501c:	d9000217 	ldw	r4,8(sp)
    5020:	203fa01e 	bne	r4,zero,4ea4 <quorem+0x84>
    5024:	d8800017 	ldw	r2,0(sp)
    5028:	10ffff04 	addi	r3,r2,-4
    502c:	b8c0082e 	bgeu	r23,r3,5050 <quorem+0x230>
    5030:	10bfff17 	ldw	r2,-4(r2)
    5034:	10000326 	beq	r2,zero,5044 <quorem+0x224>
    5038:	00000506 	br	5050 <quorem+0x230>
    503c:	18800017 	ldw	r2,0(r3)
    5040:	1000031e 	bne	r2,zero,5050 <quorem+0x230>
    5044:	18ffff04 	addi	r3,r3,-4
    5048:	a53fffc4 	addi	r20,r20,-1
    504c:	b8fffb36 	bltu	r23,r3,503c <quorem+0x21c>
    5050:	d8c00317 	ldw	r3,12(sp)
    5054:	1d000415 	stw	r20,16(r3)
    5058:	003f9206 	br	4ea4 <quorem+0x84>
    505c:	0005883a 	mov	r2,zero
    5060:	003fc106 	br	4f68 <quorem+0x148>

00005064 <_dtoa_r>:
    5064:	22001017 	ldw	r8,64(r4)
    5068:	deffda04 	addi	sp,sp,-152
    506c:	dd402115 	stw	r21,132(sp)
    5070:	dd002015 	stw	r20,128(sp)
    5074:	dc801e15 	stw	r18,120(sp)
    5078:	dc401d15 	stw	r17,116(sp)
    507c:	dfc02515 	stw	ra,148(sp)
    5080:	df002415 	stw	fp,144(sp)
    5084:	ddc02315 	stw	r23,140(sp)
    5088:	dd802215 	stw	r22,136(sp)
    508c:	dcc01f15 	stw	r19,124(sp)
    5090:	dc001c15 	stw	r16,112(sp)
    5094:	d9001615 	stw	r4,88(sp)
    5098:	3023883a 	mov	r17,r6
    509c:	2829883a 	mov	r20,r5
    50a0:	d9c01715 	stw	r7,92(sp)
    50a4:	dc802817 	ldw	r18,160(sp)
    50a8:	302b883a 	mov	r21,r6
    50ac:	40000a26 	beq	r8,zero,50d8 <_dtoa_r+0x74>
    50b0:	20801117 	ldw	r2,68(r4)
    50b4:	400b883a 	mov	r5,r8
    50b8:	40800115 	stw	r2,4(r8)
    50bc:	20c01117 	ldw	r3,68(r4)
    50c0:	00800044 	movi	r2,1
    50c4:	10c4983a 	sll	r2,r2,r3
    50c8:	40800215 	stw	r2,8(r8)
    50cc:	000822c0 	call	822c <_Bfree>
    50d0:	d8c01617 	ldw	r3,88(sp)
    50d4:	18001015 	stw	zero,64(r3)
    50d8:	8800a316 	blt	r17,zero,5368 <_dtoa_r+0x304>
    50dc:	90000015 	stw	zero,0(r18)
    50e0:	a8dffc2c 	andhi	r3,r21,32752
    50e4:	009ffc34 	movhi	r2,32752
    50e8:	18809126 	beq	r3,r2,5330 <_dtoa_r+0x2cc>
    50ec:	000d883a 	mov	r6,zero
    50f0:	000f883a 	mov	r7,zero
    50f4:	a009883a 	mov	r4,r20
    50f8:	a80b883a 	mov	r5,r21
    50fc:	dd001215 	stw	r20,72(sp)
    5100:	dd401315 	stw	r21,76(sp)
    5104:	000b8b00 	call	b8b0 <__nedf2>
    5108:	1000171e 	bne	r2,zero,5168 <_dtoa_r+0x104>
    510c:	d9802717 	ldw	r6,156(sp)
    5110:	00800044 	movi	r2,1
    5114:	30800015 	stw	r2,0(r6)
    5118:	d8802917 	ldw	r2,164(sp)
    511c:	10029b26 	beq	r2,zero,5b8c <_dtoa_r+0xb28>
    5120:	d9002917 	ldw	r4,164(sp)
    5124:	00800074 	movhi	r2,1
    5128:	1080f144 	addi	r2,r2,965
    512c:	10ffffc4 	addi	r3,r2,-1
    5130:	20800015 	stw	r2,0(r4)
    5134:	1805883a 	mov	r2,r3
    5138:	dfc02517 	ldw	ra,148(sp)
    513c:	df002417 	ldw	fp,144(sp)
    5140:	ddc02317 	ldw	r23,140(sp)
    5144:	dd802217 	ldw	r22,136(sp)
    5148:	dd402117 	ldw	r21,132(sp)
    514c:	dd002017 	ldw	r20,128(sp)
    5150:	dcc01f17 	ldw	r19,124(sp)
    5154:	dc801e17 	ldw	r18,120(sp)
    5158:	dc401d17 	ldw	r17,116(sp)
    515c:	dc001c17 	ldw	r16,112(sp)
    5160:	dec02604 	addi	sp,sp,152
    5164:	f800283a 	ret
    5168:	d9001617 	ldw	r4,88(sp)
    516c:	d9401217 	ldw	r5,72(sp)
    5170:	d8800104 	addi	r2,sp,4
    5174:	a80d883a 	mov	r6,r21
    5178:	d9c00204 	addi	r7,sp,8
    517c:	d8800015 	stw	r2,0(sp)
    5180:	00088680 	call	8868 <__d2b>
    5184:	d8800715 	stw	r2,28(sp)
    5188:	a804d53a 	srli	r2,r21,20
    518c:	1101ffcc 	andi	r4,r2,2047
    5190:	20008626 	beq	r4,zero,53ac <_dtoa_r+0x348>
    5194:	d8c01217 	ldw	r3,72(sp)
    5198:	00800434 	movhi	r2,16
    519c:	10bfffc4 	addi	r2,r2,-1
    51a0:	ddc00117 	ldw	r23,4(sp)
    51a4:	a884703a 	and	r2,r21,r2
    51a8:	1811883a 	mov	r8,r3
    51ac:	124ffc34 	orhi	r9,r2,16368
    51b0:	25bf0044 	addi	r22,r4,-1023
    51b4:	d8000815 	stw	zero,32(sp)
    51b8:	0005883a 	mov	r2,zero
    51bc:	00cffe34 	movhi	r3,16376
    51c0:	480b883a 	mov	r5,r9
    51c4:	4009883a 	mov	r4,r8
    51c8:	180f883a 	mov	r7,r3
    51cc:	100d883a 	mov	r6,r2
    51d0:	000b1180 	call	b118 <__subdf3>
    51d4:	0218dbf4 	movhi	r8,25455
    51d8:	4210d844 	addi	r8,r8,17249
    51dc:	024ff4f4 	movhi	r9,16339
    51e0:	4a61e9c4 	addi	r9,r9,-30809
    51e4:	480f883a 	mov	r7,r9
    51e8:	400d883a 	mov	r6,r8
    51ec:	180b883a 	mov	r5,r3
    51f0:	1009883a 	mov	r4,r2
    51f4:	000b20c0 	call	b20c <__muldf3>
    51f8:	0222d874 	movhi	r8,35681
    51fc:	42322cc4 	addi	r8,r8,-14157
    5200:	024ff1f4 	movhi	r9,16327
    5204:	4a628a04 	addi	r9,r9,-30168
    5208:	480f883a 	mov	r7,r9
    520c:	400d883a 	mov	r6,r8
    5210:	180b883a 	mov	r5,r3
    5214:	1009883a 	mov	r4,r2
    5218:	000b1980 	call	b198 <__adddf3>
    521c:	b009883a 	mov	r4,r22
    5220:	1021883a 	mov	r16,r2
    5224:	1823883a 	mov	r17,r3
    5228:	000bad00 	call	bad0 <__floatsidf>
    522c:	021427f4 	movhi	r8,20639
    5230:	421e7ec4 	addi	r8,r8,31227
    5234:	024ff4f4 	movhi	r9,16339
    5238:	4a5104c4 	addi	r9,r9,17427
    523c:	480f883a 	mov	r7,r9
    5240:	400d883a 	mov	r6,r8
    5244:	180b883a 	mov	r5,r3
    5248:	1009883a 	mov	r4,r2
    524c:	000b20c0 	call	b20c <__muldf3>
    5250:	180f883a 	mov	r7,r3
    5254:	880b883a 	mov	r5,r17
    5258:	100d883a 	mov	r6,r2
    525c:	8009883a 	mov	r4,r16
    5260:	000b1980 	call	b198 <__adddf3>
    5264:	1009883a 	mov	r4,r2
    5268:	180b883a 	mov	r5,r3
    526c:	1021883a 	mov	r16,r2
    5270:	1823883a 	mov	r17,r3
    5274:	000bbc80 	call	bbc8 <__fixdfsi>
    5278:	000d883a 	mov	r6,zero
    527c:	000f883a 	mov	r7,zero
    5280:	8009883a 	mov	r4,r16
    5284:	880b883a 	mov	r5,r17
    5288:	d8800d15 	stw	r2,52(sp)
    528c:	000ba480 	call	ba48 <__ltdf2>
    5290:	10031716 	blt	r2,zero,5ef0 <_dtoa_r+0xe8c>
    5294:	d8c00d17 	ldw	r3,52(sp)
    5298:	00800584 	movi	r2,22
    529c:	10c1482e 	bgeu	r2,r3,57c0 <_dtoa_r+0x75c>
    52a0:	01000044 	movi	r4,1
    52a4:	d9000c15 	stw	r4,48(sp)
    52a8:	bd85c83a 	sub	r2,r23,r22
    52ac:	11bfffc4 	addi	r6,r2,-1
    52b0:	30030b16 	blt	r6,zero,5ee0 <_dtoa_r+0xe7c>
    52b4:	d9800a15 	stw	r6,40(sp)
    52b8:	d8001115 	stw	zero,68(sp)
    52bc:	d8c00d17 	ldw	r3,52(sp)
    52c0:	1802ff16 	blt	r3,zero,5ec0 <_dtoa_r+0xe5c>
    52c4:	d9000a17 	ldw	r4,40(sp)
    52c8:	d8c00915 	stw	r3,36(sp)
    52cc:	d8001015 	stw	zero,64(sp)
    52d0:	20c9883a 	add	r4,r4,r3
    52d4:	d9000a15 	stw	r4,40(sp)
    52d8:	d9001717 	ldw	r4,92(sp)
    52dc:	00800244 	movi	r2,9
    52e0:	11004636 	bltu	r2,r4,53fc <_dtoa_r+0x398>
    52e4:	00800144 	movi	r2,5
    52e8:	11020416 	blt	r2,r4,5afc <_dtoa_r+0xa98>
    52ec:	04400044 	movi	r17,1
    52f0:	d8c01717 	ldw	r3,92(sp)
    52f4:	00800144 	movi	r2,5
    52f8:	10c1ed36 	bltu	r2,r3,5ab0 <_dtoa_r+0xa4c>
    52fc:	18c5883a 	add	r2,r3,r3
    5300:	1085883a 	add	r2,r2,r2
    5304:	00c00034 	movhi	r3,0
    5308:	18d4c604 	addi	r3,r3,21272
    530c:	10c5883a 	add	r2,r2,r3
    5310:	11000017 	ldw	r4,0(r2)
    5314:	2000683a 	jmp	r4
    5318:	00005404 	movi	zero,336
    531c:	00005404 	movi	zero,336
    5320:	00005e04 	movi	zero,376
    5324:	00005ddc 	xori	zero,zero,375
    5328:	00005e20 	cmpeqi	zero,zero,376
    532c:	00005e2c 	andhi	zero,zero,376
    5330:	d9002717 	ldw	r4,156(sp)
    5334:	0089c3c4 	movi	r2,9999
    5338:	20800015 	stw	r2,0(r4)
    533c:	a0001026 	beq	r20,zero,5380 <_dtoa_r+0x31c>
    5340:	00c00074 	movhi	r3,1
    5344:	18c0fd04 	addi	r3,r3,1012
    5348:	d9802917 	ldw	r6,164(sp)
    534c:	303f7926 	beq	r6,zero,5134 <_dtoa_r+0xd0>
    5350:	188000c7 	ldb	r2,3(r3)
    5354:	190000c4 	addi	r4,r3,3
    5358:	1000101e 	bne	r2,zero,539c <_dtoa_r+0x338>
    535c:	d8802917 	ldw	r2,164(sp)
    5360:	11000015 	stw	r4,0(r2)
    5364:	003f7306 	br	5134 <_dtoa_r+0xd0>
    5368:	00a00034 	movhi	r2,32768
    536c:	10bfffc4 	addi	r2,r2,-1
    5370:	00c00044 	movi	r3,1
    5374:	88aa703a 	and	r21,r17,r2
    5378:	90c00015 	stw	r3,0(r18)
    537c:	003f5806 	br	50e0 <_dtoa_r+0x7c>
    5380:	00800434 	movhi	r2,16
    5384:	10bfffc4 	addi	r2,r2,-1
    5388:	a884703a 	and	r2,r21,r2
    538c:	103fec1e 	bne	r2,zero,5340 <_dtoa_r+0x2dc>
    5390:	00c00074 	movhi	r3,1
    5394:	18c0fa04 	addi	r3,r3,1000
    5398:	003feb06 	br	5348 <_dtoa_r+0x2e4>
    539c:	d8802917 	ldw	r2,164(sp)
    53a0:	19000204 	addi	r4,r3,8
    53a4:	11000015 	stw	r4,0(r2)
    53a8:	003f6206 	br	5134 <_dtoa_r+0xd0>
    53ac:	ddc00117 	ldw	r23,4(sp)
    53b0:	d8800217 	ldw	r2,8(sp)
    53b4:	01000804 	movi	r4,32
    53b8:	b8c10c84 	addi	r3,r23,1074
    53bc:	18a3883a 	add	r17,r3,r2
    53c0:	2441b80e 	bge	r4,r17,5aa4 <_dtoa_r+0xa40>
    53c4:	00c01004 	movi	r3,64
    53c8:	1c47c83a 	sub	r3,r3,r17
    53cc:	88bff804 	addi	r2,r17,-32
    53d0:	a8c6983a 	sll	r3,r21,r3
    53d4:	a084d83a 	srl	r2,r20,r2
    53d8:	1888b03a 	or	r4,r3,r2
    53dc:	000bca00 	call	bca0 <__floatunsidf>
    53e0:	1011883a 	mov	r8,r2
    53e4:	00bf8434 	movhi	r2,65040
    53e8:	01000044 	movi	r4,1
    53ec:	10d3883a 	add	r9,r2,r3
    53f0:	8dbef344 	addi	r22,r17,-1075
    53f4:	d9000815 	stw	r4,32(sp)
    53f8:	003f6f06 	br	51b8 <_dtoa_r+0x154>
    53fc:	d8001715 	stw	zero,92(sp)
    5400:	04400044 	movi	r17,1
    5404:	00bfffc4 	movi	r2,-1
    5408:	00c00044 	movi	r3,1
    540c:	d8800e15 	stw	r2,56(sp)
    5410:	d8002615 	stw	zero,152(sp)
    5414:	d8800f15 	stw	r2,60(sp)
    5418:	d8c00b15 	stw	r3,44(sp)
    541c:	1021883a 	mov	r16,r2
    5420:	d8801617 	ldw	r2,88(sp)
    5424:	10001115 	stw	zero,68(r2)
    5428:	d8801617 	ldw	r2,88(sp)
    542c:	11401117 	ldw	r5,68(r2)
    5430:	1009883a 	mov	r4,r2
    5434:	00087ac0 	call	87ac <_Balloc>
    5438:	d8c01617 	ldw	r3,88(sp)
    543c:	d8800515 	stw	r2,20(sp)
    5440:	18801015 	stw	r2,64(r3)
    5444:	00800384 	movi	r2,14
    5448:	14006836 	bltu	r2,r16,55ec <_dtoa_r+0x588>
    544c:	8805003a 	cmpeq	r2,r17,zero
    5450:	1000661e 	bne	r2,zero,55ec <_dtoa_r+0x588>
    5454:	d9000d17 	ldw	r4,52(sp)
    5458:	0102300e 	bge	zero,r4,5d1c <_dtoa_r+0xcb8>
    545c:	208003cc 	andi	r2,r4,15
    5460:	100490fa 	slli	r2,r2,3
    5464:	2025d13a 	srai	r18,r4,4
    5468:	00c00074 	movhi	r3,1
    546c:	18c10f04 	addi	r3,r3,1084
    5470:	10c5883a 	add	r2,r2,r3
    5474:	90c0040c 	andi	r3,r18,16
    5478:	14000017 	ldw	r16,0(r2)
    547c:	14400117 	ldw	r17,4(r2)
    5480:	18036a1e 	bne	r3,zero,622c <_dtoa_r+0x11c8>
    5484:	05800084 	movi	r22,2
    5488:	90001026 	beq	r18,zero,54cc <_dtoa_r+0x468>
    548c:	04c00074 	movhi	r19,1
    5490:	9cc14104 	addi	r19,r19,1284
    5494:	9080004c 	andi	r2,r18,1
    5498:	1005003a 	cmpeq	r2,r2,zero
    549c:	1000081e 	bne	r2,zero,54c0 <_dtoa_r+0x45c>
    54a0:	99800017 	ldw	r6,0(r19)
    54a4:	99c00117 	ldw	r7,4(r19)
    54a8:	880b883a 	mov	r5,r17
    54ac:	8009883a 	mov	r4,r16
    54b0:	000b20c0 	call	b20c <__muldf3>
    54b4:	1021883a 	mov	r16,r2
    54b8:	b5800044 	addi	r22,r22,1
    54bc:	1823883a 	mov	r17,r3
    54c0:	9025d07a 	srai	r18,r18,1
    54c4:	9cc00204 	addi	r19,r19,8
    54c8:	903ff21e 	bne	r18,zero,5494 <_dtoa_r+0x430>
    54cc:	a80b883a 	mov	r5,r21
    54d0:	a009883a 	mov	r4,r20
    54d4:	880f883a 	mov	r7,r17
    54d8:	800d883a 	mov	r6,r16
    54dc:	000b5d00 	call	b5d0 <__divdf3>
    54e0:	1029883a 	mov	r20,r2
    54e4:	182b883a 	mov	r21,r3
    54e8:	d8c00c17 	ldw	r3,48(sp)
    54ec:	1805003a 	cmpeq	r2,r3,zero
    54f0:	1000081e 	bne	r2,zero,5514 <_dtoa_r+0x4b0>
    54f4:	0005883a 	mov	r2,zero
    54f8:	00cffc34 	movhi	r3,16368
    54fc:	180f883a 	mov	r7,r3
    5500:	a009883a 	mov	r4,r20
    5504:	a80b883a 	mov	r5,r21
    5508:	100d883a 	mov	r6,r2
    550c:	000ba480 	call	ba48 <__ltdf2>
    5510:	1003fe16 	blt	r2,zero,650c <_dtoa_r+0x14a8>
    5514:	b009883a 	mov	r4,r22
    5518:	000bad00 	call	bad0 <__floatsidf>
    551c:	180b883a 	mov	r5,r3
    5520:	1009883a 	mov	r4,r2
    5524:	a00d883a 	mov	r6,r20
    5528:	a80f883a 	mov	r7,r21
    552c:	000b20c0 	call	b20c <__muldf3>
    5530:	0011883a 	mov	r8,zero
    5534:	02500734 	movhi	r9,16412
    5538:	1009883a 	mov	r4,r2
    553c:	180b883a 	mov	r5,r3
    5540:	480f883a 	mov	r7,r9
    5544:	400d883a 	mov	r6,r8
    5548:	000b1980 	call	b198 <__adddf3>
    554c:	d9000f17 	ldw	r4,60(sp)
    5550:	102d883a 	mov	r22,r2
    5554:	00bf3034 	movhi	r2,64704
    5558:	18b9883a 	add	fp,r3,r2
    555c:	e02f883a 	mov	r23,fp
    5560:	20028f1e 	bne	r4,zero,5fa0 <_dtoa_r+0xf3c>
    5564:	0005883a 	mov	r2,zero
    5568:	00d00534 	movhi	r3,16404
    556c:	a009883a 	mov	r4,r20
    5570:	a80b883a 	mov	r5,r21
    5574:	180f883a 	mov	r7,r3
    5578:	100d883a 	mov	r6,r2
    557c:	000b1180 	call	b118 <__subdf3>
    5580:	1009883a 	mov	r4,r2
    5584:	e00f883a 	mov	r7,fp
    5588:	180b883a 	mov	r5,r3
    558c:	b00d883a 	mov	r6,r22
    5590:	1025883a 	mov	r18,r2
    5594:	1827883a 	mov	r19,r3
    5598:	000b9380 	call	b938 <__gtdf2>
    559c:	00834f16 	blt	zero,r2,62dc <_dtoa_r+0x1278>
    55a0:	e0e0003c 	xorhi	r3,fp,32768
    55a4:	9009883a 	mov	r4,r18
    55a8:	980b883a 	mov	r5,r19
    55ac:	180f883a 	mov	r7,r3
    55b0:	b00d883a 	mov	r6,r22
    55b4:	000ba480 	call	ba48 <__ltdf2>
    55b8:	1000080e 	bge	r2,zero,55dc <_dtoa_r+0x578>
    55bc:	0027883a 	mov	r19,zero
    55c0:	0025883a 	mov	r18,zero
    55c4:	d8802617 	ldw	r2,152(sp)
    55c8:	df000517 	ldw	fp,20(sp)
    55cc:	d8000615 	stw	zero,24(sp)
    55d0:	0084303a 	nor	r2,zero,r2
    55d4:	d8800d15 	stw	r2,52(sp)
    55d8:	00019b06 	br	5c48 <_dtoa_r+0xbe4>
    55dc:	d9801217 	ldw	r6,72(sp)
    55e0:	d8801317 	ldw	r2,76(sp)
    55e4:	3029883a 	mov	r20,r6
    55e8:	102b883a 	mov	r21,r2
    55ec:	d8c00217 	ldw	r3,8(sp)
    55f0:	18008516 	blt	r3,zero,5808 <_dtoa_r+0x7a4>
    55f4:	d9000d17 	ldw	r4,52(sp)
    55f8:	00800384 	movi	r2,14
    55fc:	11008216 	blt	r2,r4,5808 <_dtoa_r+0x7a4>
    5600:	200490fa 	slli	r2,r4,3
    5604:	d9802617 	ldw	r6,152(sp)
    5608:	00c00074 	movhi	r3,1
    560c:	18c10f04 	addi	r3,r3,1084
    5610:	10c5883a 	add	r2,r2,r3
    5614:	14800017 	ldw	r18,0(r2)
    5618:	14c00117 	ldw	r19,4(r2)
    561c:	30031e16 	blt	r6,zero,6298 <_dtoa_r+0x1234>
    5620:	d9000517 	ldw	r4,20(sp)
    5624:	d8c00f17 	ldw	r3,60(sp)
    5628:	a823883a 	mov	r17,r21
    562c:	a021883a 	mov	r16,r20
    5630:	192b883a 	add	r21,r3,r4
    5634:	2039883a 	mov	fp,r4
    5638:	00000f06 	br	5678 <_dtoa_r+0x614>
    563c:	0005883a 	mov	r2,zero
    5640:	00d00934 	movhi	r3,16420
    5644:	5009883a 	mov	r4,r10
    5648:	580b883a 	mov	r5,r11
    564c:	180f883a 	mov	r7,r3
    5650:	100d883a 	mov	r6,r2
    5654:	000b20c0 	call	b20c <__muldf3>
    5658:	180b883a 	mov	r5,r3
    565c:	000d883a 	mov	r6,zero
    5660:	000f883a 	mov	r7,zero
    5664:	1009883a 	mov	r4,r2
    5668:	1021883a 	mov	r16,r2
    566c:	1823883a 	mov	r17,r3
    5670:	000b8b00 	call	b8b0 <__nedf2>
    5674:	10004526 	beq	r2,zero,578c <_dtoa_r+0x728>
    5678:	900d883a 	mov	r6,r18
    567c:	980f883a 	mov	r7,r19
    5680:	8009883a 	mov	r4,r16
    5684:	880b883a 	mov	r5,r17
    5688:	000b5d00 	call	b5d0 <__divdf3>
    568c:	180b883a 	mov	r5,r3
    5690:	1009883a 	mov	r4,r2
    5694:	000bbc80 	call	bbc8 <__fixdfsi>
    5698:	1009883a 	mov	r4,r2
    569c:	1029883a 	mov	r20,r2
    56a0:	000bad00 	call	bad0 <__floatsidf>
    56a4:	180f883a 	mov	r7,r3
    56a8:	9009883a 	mov	r4,r18
    56ac:	980b883a 	mov	r5,r19
    56b0:	100d883a 	mov	r6,r2
    56b4:	000b20c0 	call	b20c <__muldf3>
    56b8:	180f883a 	mov	r7,r3
    56bc:	880b883a 	mov	r5,r17
    56c0:	8009883a 	mov	r4,r16
    56c4:	100d883a 	mov	r6,r2
    56c8:	000b1180 	call	b118 <__subdf3>
    56cc:	1015883a 	mov	r10,r2
    56d0:	a0800c04 	addi	r2,r20,48
    56d4:	e0800005 	stb	r2,0(fp)
    56d8:	e7000044 	addi	fp,fp,1
    56dc:	1817883a 	mov	r11,r3
    56e0:	e57fd61e 	bne	fp,r21,563c <_dtoa_r+0x5d8>
    56e4:	500d883a 	mov	r6,r10
    56e8:	180f883a 	mov	r7,r3
    56ec:	5009883a 	mov	r4,r10
    56f0:	180b883a 	mov	r5,r3
    56f4:	000b1980 	call	b198 <__adddf3>
    56f8:	100d883a 	mov	r6,r2
    56fc:	9009883a 	mov	r4,r18
    5700:	980b883a 	mov	r5,r19
    5704:	180f883a 	mov	r7,r3
    5708:	1021883a 	mov	r16,r2
    570c:	1823883a 	mov	r17,r3
    5710:	000ba480 	call	ba48 <__ltdf2>
    5714:	10000816 	blt	r2,zero,5738 <_dtoa_r+0x6d4>
    5718:	980b883a 	mov	r5,r19
    571c:	800d883a 	mov	r6,r16
    5720:	880f883a 	mov	r7,r17
    5724:	9009883a 	mov	r4,r18
    5728:	000b8280 	call	b828 <__eqdf2>
    572c:	1000171e 	bne	r2,zero,578c <_dtoa_r+0x728>
    5730:	a080004c 	andi	r2,r20,1
    5734:	10001526 	beq	r2,zero,578c <_dtoa_r+0x728>
    5738:	d8800d17 	ldw	r2,52(sp)
    573c:	d8800415 	stw	r2,16(sp)
    5740:	e009883a 	mov	r4,fp
    5744:	213fffc4 	addi	r4,r4,-1
    5748:	20c00007 	ldb	r3,0(r4)
    574c:	00800e44 	movi	r2,57
    5750:	1880081e 	bne	r3,r2,5774 <_dtoa_r+0x710>
    5754:	d8800517 	ldw	r2,20(sp)
    5758:	113ffa1e 	bne	r2,r4,5744 <_dtoa_r+0x6e0>
    575c:	d8c00417 	ldw	r3,16(sp)
    5760:	d9800517 	ldw	r6,20(sp)
    5764:	00800c04 	movi	r2,48
    5768:	18c00044 	addi	r3,r3,1
    576c:	d8c00415 	stw	r3,16(sp)
    5770:	30800005 	stb	r2,0(r6)
    5774:	20800003 	ldbu	r2,0(r4)
    5778:	d8c00417 	ldw	r3,16(sp)
    577c:	27000044 	addi	fp,r4,1
    5780:	10800044 	addi	r2,r2,1
    5784:	d8c00d15 	stw	r3,52(sp)
    5788:	20800005 	stb	r2,0(r4)
    578c:	d9001617 	ldw	r4,88(sp)
    5790:	d9400717 	ldw	r5,28(sp)
    5794:	000822c0 	call	822c <_Bfree>
    5798:	e0000005 	stb	zero,0(fp)
    579c:	d9800d17 	ldw	r6,52(sp)
    57a0:	d8c02717 	ldw	r3,156(sp)
    57a4:	d9002917 	ldw	r4,164(sp)
    57a8:	30800044 	addi	r2,r6,1
    57ac:	18800015 	stw	r2,0(r3)
    57b0:	20029c26 	beq	r4,zero,6224 <_dtoa_r+0x11c0>
    57b4:	d8c00517 	ldw	r3,20(sp)
    57b8:	27000015 	stw	fp,0(r4)
    57bc:	003e5d06 	br	5134 <_dtoa_r+0xd0>
    57c0:	d9800d17 	ldw	r6,52(sp)
    57c4:	00c00074 	movhi	r3,1
    57c8:	18c10f04 	addi	r3,r3,1084
    57cc:	d9001217 	ldw	r4,72(sp)
    57d0:	300490fa 	slli	r2,r6,3
    57d4:	d9401317 	ldw	r5,76(sp)
    57d8:	10c5883a 	add	r2,r2,r3
    57dc:	12000017 	ldw	r8,0(r2)
    57e0:	12400117 	ldw	r9,4(r2)
    57e4:	400d883a 	mov	r6,r8
    57e8:	480f883a 	mov	r7,r9
    57ec:	000ba480 	call	ba48 <__ltdf2>
    57f0:	1000030e 	bge	r2,zero,5800 <_dtoa_r+0x79c>
    57f4:	d8800d17 	ldw	r2,52(sp)
    57f8:	10bfffc4 	addi	r2,r2,-1
    57fc:	d8800d15 	stw	r2,52(sp)
    5800:	d8000c15 	stw	zero,48(sp)
    5804:	003ea806 	br	52a8 <_dtoa_r+0x244>
    5808:	d9000b17 	ldw	r4,44(sp)
    580c:	202cc03a 	cmpne	r22,r4,zero
    5810:	b000c71e 	bne	r22,zero,5b30 <_dtoa_r+0xacc>
    5814:	dc001117 	ldw	r16,68(sp)
    5818:	dc801017 	ldw	r18,64(sp)
    581c:	0027883a 	mov	r19,zero
    5820:	04000b0e 	bge	zero,r16,5850 <_dtoa_r+0x7ec>
    5824:	d8c00a17 	ldw	r3,40(sp)
    5828:	00c0090e 	bge	zero,r3,5850 <_dtoa_r+0x7ec>
    582c:	8005883a 	mov	r2,r16
    5830:	1c011316 	blt	r3,r16,5c80 <_dtoa_r+0xc1c>
    5834:	d9000a17 	ldw	r4,40(sp)
    5838:	d9801117 	ldw	r6,68(sp)
    583c:	80a1c83a 	sub	r16,r16,r2
    5840:	2089c83a 	sub	r4,r4,r2
    5844:	308dc83a 	sub	r6,r6,r2
    5848:	d9000a15 	stw	r4,40(sp)
    584c:	d9801115 	stw	r6,68(sp)
    5850:	d8801017 	ldw	r2,64(sp)
    5854:	0080150e 	bge	zero,r2,58ac <_dtoa_r+0x848>
    5858:	d8c00b17 	ldw	r3,44(sp)
    585c:	1805003a 	cmpeq	r2,r3,zero
    5860:	1001c91e 	bne	r2,zero,5f88 <_dtoa_r+0xf24>
    5864:	04800e0e 	bge	zero,r18,58a0 <_dtoa_r+0x83c>
    5868:	d9001617 	ldw	r4,88(sp)
    586c:	980b883a 	mov	r5,r19
    5870:	900d883a 	mov	r6,r18
    5874:	00090780 	call	9078 <__pow5mult>
    5878:	d9001617 	ldw	r4,88(sp)
    587c:	d9800717 	ldw	r6,28(sp)
    5880:	100b883a 	mov	r5,r2
    5884:	1027883a 	mov	r19,r2
    5888:	0008cbc0 	call	8cbc <__multiply>
    588c:	d9001617 	ldw	r4,88(sp)
    5890:	d9400717 	ldw	r5,28(sp)
    5894:	1023883a 	mov	r17,r2
    5898:	000822c0 	call	822c <_Bfree>
    589c:	dc400715 	stw	r17,28(sp)
    58a0:	d9001017 	ldw	r4,64(sp)
    58a4:	248dc83a 	sub	r6,r4,r18
    58a8:	30010e1e 	bne	r6,zero,5ce4 <_dtoa_r+0xc80>
    58ac:	d9001617 	ldw	r4,88(sp)
    58b0:	04400044 	movi	r17,1
    58b4:	880b883a 	mov	r5,r17
    58b8:	0008f100 	call	8f10 <__i2b>
    58bc:	d9800917 	ldw	r6,36(sp)
    58c0:	1025883a 	mov	r18,r2
    58c4:	0180040e 	bge	zero,r6,58d8 <_dtoa_r+0x874>
    58c8:	d9001617 	ldw	r4,88(sp)
    58cc:	100b883a 	mov	r5,r2
    58d0:	00090780 	call	9078 <__pow5mult>
    58d4:	1025883a 	mov	r18,r2
    58d8:	d8801717 	ldw	r2,92(sp)
    58dc:	8880f30e 	bge	r17,r2,5cac <_dtoa_r+0xc48>
    58e0:	0023883a 	mov	r17,zero
    58e4:	d9800917 	ldw	r6,36(sp)
    58e8:	30019e1e 	bne	r6,zero,5f64 <_dtoa_r+0xf00>
    58ec:	00c00044 	movi	r3,1
    58f0:	d9000a17 	ldw	r4,40(sp)
    58f4:	20c5883a 	add	r2,r4,r3
    58f8:	10c007cc 	andi	r3,r2,31
    58fc:	1800841e 	bne	r3,zero,5b10 <_dtoa_r+0xaac>
    5900:	00800704 	movi	r2,28
    5904:	d9000a17 	ldw	r4,40(sp)
    5908:	d9801117 	ldw	r6,68(sp)
    590c:	80a1883a 	add	r16,r16,r2
    5910:	2089883a 	add	r4,r4,r2
    5914:	308d883a 	add	r6,r6,r2
    5918:	d9000a15 	stw	r4,40(sp)
    591c:	d9801115 	stw	r6,68(sp)
    5920:	d8801117 	ldw	r2,68(sp)
    5924:	0080050e 	bge	zero,r2,593c <_dtoa_r+0x8d8>
    5928:	d9400717 	ldw	r5,28(sp)
    592c:	d9001617 	ldw	r4,88(sp)
    5930:	100d883a 	mov	r6,r2
    5934:	0008b700 	call	8b70 <__lshift>
    5938:	d8800715 	stw	r2,28(sp)
    593c:	d8c00a17 	ldw	r3,40(sp)
    5940:	00c0050e 	bge	zero,r3,5958 <_dtoa_r+0x8f4>
    5944:	d9001617 	ldw	r4,88(sp)
    5948:	900b883a 	mov	r5,r18
    594c:	180d883a 	mov	r6,r3
    5950:	0008b700 	call	8b70 <__lshift>
    5954:	1025883a 	mov	r18,r2
    5958:	d9000c17 	ldw	r4,48(sp)
    595c:	2005003a 	cmpeq	r2,r4,zero
    5960:	10016f26 	beq	r2,zero,5f20 <_dtoa_r+0xebc>
    5964:	d9000f17 	ldw	r4,60(sp)
    5968:	0102170e 	bge	zero,r4,61c8 <_dtoa_r+0x1164>
    596c:	d9800b17 	ldw	r6,44(sp)
    5970:	3005003a 	cmpeq	r2,r6,zero
    5974:	1000881e 	bne	r2,zero,5b98 <_dtoa_r+0xb34>
    5978:	0400050e 	bge	zero,r16,5990 <_dtoa_r+0x92c>
    597c:	d9001617 	ldw	r4,88(sp)
    5980:	980b883a 	mov	r5,r19
    5984:	800d883a 	mov	r6,r16
    5988:	0008b700 	call	8b70 <__lshift>
    598c:	1027883a 	mov	r19,r2
    5990:	8804c03a 	cmpne	r2,r17,zero
    5994:	1002541e 	bne	r2,zero,62e8 <_dtoa_r+0x1284>
    5998:	980b883a 	mov	r5,r19
    599c:	dd800517 	ldw	r22,20(sp)
    59a0:	dcc00615 	stw	r19,24(sp)
    59a4:	a700004c 	andi	fp,r20,1
    59a8:	2827883a 	mov	r19,r5
    59ac:	d9000717 	ldw	r4,28(sp)
    59b0:	900b883a 	mov	r5,r18
    59b4:	0004e200 	call	4e20 <quorem>
    59b8:	d9000717 	ldw	r4,28(sp)
    59bc:	d9400617 	ldw	r5,24(sp)
    59c0:	1023883a 	mov	r17,r2
    59c4:	8dc00c04 	addi	r23,r17,48
    59c8:	00083880 	call	8388 <__mcmp>
    59cc:	d9001617 	ldw	r4,88(sp)
    59d0:	900b883a 	mov	r5,r18
    59d4:	980d883a 	mov	r6,r19
    59d8:	1029883a 	mov	r20,r2
    59dc:	00089e40 	call	89e4 <__mdiff>
    59e0:	102b883a 	mov	r21,r2
    59e4:	10800317 	ldw	r2,12(r2)
    59e8:	1001281e 	bne	r2,zero,5e8c <_dtoa_r+0xe28>
    59ec:	d9000717 	ldw	r4,28(sp)
    59f0:	a80b883a 	mov	r5,r21
    59f4:	00083880 	call	8388 <__mcmp>
    59f8:	d9001617 	ldw	r4,88(sp)
    59fc:	1021883a 	mov	r16,r2
    5a00:	a80b883a 	mov	r5,r21
    5a04:	000822c0 	call	822c <_Bfree>
    5a08:	8000041e 	bne	r16,zero,5a1c <_dtoa_r+0x9b8>
    5a0c:	d8801717 	ldw	r2,92(sp)
    5a10:	1000021e 	bne	r2,zero,5a1c <_dtoa_r+0x9b8>
    5a14:	e004c03a 	cmpne	r2,fp,zero
    5a18:	10011726 	beq	r2,zero,5e78 <_dtoa_r+0xe14>
    5a1c:	a0010616 	blt	r20,zero,5e38 <_dtoa_r+0xdd4>
    5a20:	a000041e 	bne	r20,zero,5a34 <_dtoa_r+0x9d0>
    5a24:	d8c01717 	ldw	r3,92(sp)
    5a28:	1800021e 	bne	r3,zero,5a34 <_dtoa_r+0x9d0>
    5a2c:	e004c03a 	cmpne	r2,fp,zero
    5a30:	10010126 	beq	r2,zero,5e38 <_dtoa_r+0xdd4>
    5a34:	04023d16 	blt	zero,r16,632c <_dtoa_r+0x12c8>
    5a38:	b5c00005 	stb	r23,0(r22)
    5a3c:	d9800517 	ldw	r6,20(sp)
    5a40:	d9000f17 	ldw	r4,60(sp)
    5a44:	b5800044 	addi	r22,r22,1
    5a48:	3105883a 	add	r2,r6,r4
    5a4c:	b0806526 	beq	r22,r2,5be4 <_dtoa_r+0xb80>
    5a50:	d9400717 	ldw	r5,28(sp)
    5a54:	d9001617 	ldw	r4,88(sp)
    5a58:	01800284 	movi	r6,10
    5a5c:	000f883a 	mov	r7,zero
    5a60:	0008f4c0 	call	8f4c <__multadd>
    5a64:	d8800715 	stw	r2,28(sp)
    5a68:	d8800617 	ldw	r2,24(sp)
    5a6c:	14c10c26 	beq	r2,r19,5ea0 <_dtoa_r+0xe3c>
    5a70:	d9400617 	ldw	r5,24(sp)
    5a74:	d9001617 	ldw	r4,88(sp)
    5a78:	01800284 	movi	r6,10
    5a7c:	000f883a 	mov	r7,zero
    5a80:	0008f4c0 	call	8f4c <__multadd>
    5a84:	d9001617 	ldw	r4,88(sp)
    5a88:	980b883a 	mov	r5,r19
    5a8c:	01800284 	movi	r6,10
    5a90:	000f883a 	mov	r7,zero
    5a94:	d8800615 	stw	r2,24(sp)
    5a98:	0008f4c0 	call	8f4c <__multadd>
    5a9c:	1027883a 	mov	r19,r2
    5aa0:	003fc206 	br	59ac <_dtoa_r+0x948>
    5aa4:	2445c83a 	sub	r2,r4,r17
    5aa8:	a088983a 	sll	r4,r20,r2
    5aac:	003e4b06 	br	53dc <_dtoa_r+0x378>
    5ab0:	01bfffc4 	movi	r6,-1
    5ab4:	00800044 	movi	r2,1
    5ab8:	d9800e15 	stw	r6,56(sp)
    5abc:	d9800f15 	stw	r6,60(sp)
    5ac0:	d8800b15 	stw	r2,44(sp)
    5ac4:	d8c01617 	ldw	r3,88(sp)
    5ac8:	008005c4 	movi	r2,23
    5acc:	18001115 	stw	zero,68(r3)
    5ad0:	1580082e 	bgeu	r2,r22,5af4 <_dtoa_r+0xa90>
    5ad4:	00c00104 	movi	r3,4
    5ad8:	0009883a 	mov	r4,zero
    5adc:	18c7883a 	add	r3,r3,r3
    5ae0:	18800504 	addi	r2,r3,20
    5ae4:	21000044 	addi	r4,r4,1
    5ae8:	b0bffc2e 	bgeu	r22,r2,5adc <_dtoa_r+0xa78>
    5aec:	d9801617 	ldw	r6,88(sp)
    5af0:	31001115 	stw	r4,68(r6)
    5af4:	dc000f17 	ldw	r16,60(sp)
    5af8:	003e4b06 	br	5428 <_dtoa_r+0x3c4>
    5afc:	d9801717 	ldw	r6,92(sp)
    5b00:	0023883a 	mov	r17,zero
    5b04:	31bfff04 	addi	r6,r6,-4
    5b08:	d9801715 	stw	r6,92(sp)
    5b0c:	003df806 	br	52f0 <_dtoa_r+0x28c>
    5b10:	00800804 	movi	r2,32
    5b14:	10c9c83a 	sub	r4,r2,r3
    5b18:	00c00104 	movi	r3,4
    5b1c:	19005a16 	blt	r3,r4,5c88 <_dtoa_r+0xc24>
    5b20:	008000c4 	movi	r2,3
    5b24:	113f7e16 	blt	r2,r4,5920 <_dtoa_r+0x8bc>
    5b28:	20800704 	addi	r2,r4,28
    5b2c:	003f7506 	br	5904 <_dtoa_r+0x8a0>
    5b30:	d9801717 	ldw	r6,92(sp)
    5b34:	00800044 	movi	r2,1
    5b38:	1180a10e 	bge	r2,r6,5dc0 <_dtoa_r+0xd5c>
    5b3c:	d9800f17 	ldw	r6,60(sp)
    5b40:	d8c01017 	ldw	r3,64(sp)
    5b44:	30bfffc4 	addi	r2,r6,-1
    5b48:	1881c616 	blt	r3,r2,6264 <_dtoa_r+0x1200>
    5b4c:	18a5c83a 	sub	r18,r3,r2
    5b50:	d8800f17 	ldw	r2,60(sp)
    5b54:	10026216 	blt	r2,zero,64e0 <_dtoa_r+0x147c>
    5b58:	dc001117 	ldw	r16,68(sp)
    5b5c:	1007883a 	mov	r3,r2
    5b60:	d9800a17 	ldw	r6,40(sp)
    5b64:	d8801117 	ldw	r2,68(sp)
    5b68:	d9001617 	ldw	r4,88(sp)
    5b6c:	30cd883a 	add	r6,r6,r3
    5b70:	10c5883a 	add	r2,r2,r3
    5b74:	01400044 	movi	r5,1
    5b78:	d9800a15 	stw	r6,40(sp)
    5b7c:	d8801115 	stw	r2,68(sp)
    5b80:	0008f100 	call	8f10 <__i2b>
    5b84:	1027883a 	mov	r19,r2
    5b88:	003f2506 	br	5820 <_dtoa_r+0x7bc>
    5b8c:	00c00074 	movhi	r3,1
    5b90:	18c0f104 	addi	r3,r3,964
    5b94:	003d6706 	br	5134 <_dtoa_r+0xd0>
    5b98:	dd800517 	ldw	r22,20(sp)
    5b9c:	04000044 	movi	r16,1
    5ba0:	00000706 	br	5bc0 <_dtoa_r+0xb5c>
    5ba4:	d9400717 	ldw	r5,28(sp)
    5ba8:	d9001617 	ldw	r4,88(sp)
    5bac:	01800284 	movi	r6,10
    5bb0:	000f883a 	mov	r7,zero
    5bb4:	0008f4c0 	call	8f4c <__multadd>
    5bb8:	d8800715 	stw	r2,28(sp)
    5bbc:	84000044 	addi	r16,r16,1
    5bc0:	d9000717 	ldw	r4,28(sp)
    5bc4:	900b883a 	mov	r5,r18
    5bc8:	0004e200 	call	4e20 <quorem>
    5bcc:	15c00c04 	addi	r23,r2,48
    5bd0:	b5c00005 	stb	r23,0(r22)
    5bd4:	d8c00f17 	ldw	r3,60(sp)
    5bd8:	b5800044 	addi	r22,r22,1
    5bdc:	80fff116 	blt	r16,r3,5ba4 <_dtoa_r+0xb40>
    5be0:	d8000615 	stw	zero,24(sp)
    5be4:	d9400717 	ldw	r5,28(sp)
    5be8:	d9001617 	ldw	r4,88(sp)
    5bec:	01800044 	movi	r6,1
    5bf0:	0008b700 	call	8b70 <__lshift>
    5bf4:	1009883a 	mov	r4,r2
    5bf8:	900b883a 	mov	r5,r18
    5bfc:	d8800715 	stw	r2,28(sp)
    5c00:	00083880 	call	8388 <__mcmp>
    5c04:	00803c0e 	bge	zero,r2,5cf8 <_dtoa_r+0xc94>
    5c08:	b009883a 	mov	r4,r22
    5c0c:	213fffc4 	addi	r4,r4,-1
    5c10:	21400003 	ldbu	r5,0(r4)
    5c14:	00800e44 	movi	r2,57
    5c18:	28c03fcc 	andi	r3,r5,255
    5c1c:	18c0201c 	xori	r3,r3,128
    5c20:	18ffe004 	addi	r3,r3,-128
    5c24:	1881981e 	bne	r3,r2,6288 <_dtoa_r+0x1224>
    5c28:	d9800517 	ldw	r6,20(sp)
    5c2c:	21bff71e 	bne	r4,r6,5c0c <_dtoa_r+0xba8>
    5c30:	d8800d17 	ldw	r2,52(sp)
    5c34:	37000044 	addi	fp,r6,1
    5c38:	10800044 	addi	r2,r2,1
    5c3c:	d8800d15 	stw	r2,52(sp)
    5c40:	00800c44 	movi	r2,49
    5c44:	30800005 	stb	r2,0(r6)
    5c48:	d9001617 	ldw	r4,88(sp)
    5c4c:	900b883a 	mov	r5,r18
    5c50:	000822c0 	call	822c <_Bfree>
    5c54:	983ecd26 	beq	r19,zero,578c <_dtoa_r+0x728>
    5c58:	d8c00617 	ldw	r3,24(sp)
    5c5c:	18000426 	beq	r3,zero,5c70 <_dtoa_r+0xc0c>
    5c60:	1cc00326 	beq	r3,r19,5c70 <_dtoa_r+0xc0c>
    5c64:	d9001617 	ldw	r4,88(sp)
    5c68:	180b883a 	mov	r5,r3
    5c6c:	000822c0 	call	822c <_Bfree>
    5c70:	d9001617 	ldw	r4,88(sp)
    5c74:	980b883a 	mov	r5,r19
    5c78:	000822c0 	call	822c <_Bfree>
    5c7c:	003ec306 	br	578c <_dtoa_r+0x728>
    5c80:	1805883a 	mov	r2,r3
    5c84:	003eeb06 	br	5834 <_dtoa_r+0x7d0>
    5c88:	d9800a17 	ldw	r6,40(sp)
    5c8c:	d8c01117 	ldw	r3,68(sp)
    5c90:	20bfff04 	addi	r2,r4,-4
    5c94:	308d883a 	add	r6,r6,r2
    5c98:	1887883a 	add	r3,r3,r2
    5c9c:	80a1883a 	add	r16,r16,r2
    5ca0:	d9800a15 	stw	r6,40(sp)
    5ca4:	d8c01115 	stw	r3,68(sp)
    5ca8:	003f1d06 	br	5920 <_dtoa_r+0x8bc>
    5cac:	a03f0c1e 	bne	r20,zero,58e0 <_dtoa_r+0x87c>
    5cb0:	00800434 	movhi	r2,16
    5cb4:	10bfffc4 	addi	r2,r2,-1
    5cb8:	a884703a 	and	r2,r21,r2
    5cbc:	103f081e 	bne	r2,zero,58e0 <_dtoa_r+0x87c>
    5cc0:	a89ffc2c 	andhi	r2,r21,32752
    5cc4:	103f0626 	beq	r2,zero,58e0 <_dtoa_r+0x87c>
    5cc8:	d8c01117 	ldw	r3,68(sp)
    5ccc:	d9000a17 	ldw	r4,40(sp)
    5cd0:	18c00044 	addi	r3,r3,1
    5cd4:	21000044 	addi	r4,r4,1
    5cd8:	d8c01115 	stw	r3,68(sp)
    5cdc:	d9000a15 	stw	r4,40(sp)
    5ce0:	003f0006 	br	58e4 <_dtoa_r+0x880>
    5ce4:	d9400717 	ldw	r5,28(sp)
    5ce8:	d9001617 	ldw	r4,88(sp)
    5cec:	00090780 	call	9078 <__pow5mult>
    5cf0:	d8800715 	stw	r2,28(sp)
    5cf4:	003eed06 	br	58ac <_dtoa_r+0x848>
    5cf8:	1000021e 	bne	r2,zero,5d04 <_dtoa_r+0xca0>
    5cfc:	b880004c 	andi	r2,r23,1
    5d00:	103fc11e 	bne	r2,zero,5c08 <_dtoa_r+0xba4>
    5d04:	b5bfffc4 	addi	r22,r22,-1
    5d08:	b0c00007 	ldb	r3,0(r22)
    5d0c:	00800c04 	movi	r2,48
    5d10:	18bffc26 	beq	r3,r2,5d04 <_dtoa_r+0xca0>
    5d14:	b7000044 	addi	fp,r22,1
    5d18:	003fcb06 	br	5c48 <_dtoa_r+0xbe4>
    5d1c:	d9800d17 	ldw	r6,52(sp)
    5d20:	018fc83a 	sub	r7,zero,r6
    5d24:	3801f726 	beq	r7,zero,6504 <_dtoa_r+0x14a0>
    5d28:	398003cc 	andi	r6,r7,15
    5d2c:	300c90fa 	slli	r6,r6,3
    5d30:	01400074 	movhi	r5,1
    5d34:	29410f04 	addi	r5,r5,1084
    5d38:	d9001217 	ldw	r4,72(sp)
    5d3c:	314d883a 	add	r6,r6,r5
    5d40:	30c00117 	ldw	r3,4(r6)
    5d44:	30800017 	ldw	r2,0(r6)
    5d48:	d9401317 	ldw	r5,76(sp)
    5d4c:	3821d13a 	srai	r16,r7,4
    5d50:	100d883a 	mov	r6,r2
    5d54:	180f883a 	mov	r7,r3
    5d58:	000b20c0 	call	b20c <__muldf3>
    5d5c:	1011883a 	mov	r8,r2
    5d60:	1813883a 	mov	r9,r3
    5d64:	1029883a 	mov	r20,r2
    5d68:	182b883a 	mov	r21,r3
    5d6c:	8001e526 	beq	r16,zero,6504 <_dtoa_r+0x14a0>
    5d70:	05800084 	movi	r22,2
    5d74:	04400074 	movhi	r17,1
    5d78:	8c414104 	addi	r17,r17,1284
    5d7c:	8080004c 	andi	r2,r16,1
    5d80:	1005003a 	cmpeq	r2,r2,zero
    5d84:	1000081e 	bne	r2,zero,5da8 <_dtoa_r+0xd44>
    5d88:	89800017 	ldw	r6,0(r17)
    5d8c:	89c00117 	ldw	r7,4(r17)
    5d90:	480b883a 	mov	r5,r9
    5d94:	4009883a 	mov	r4,r8
    5d98:	000b20c0 	call	b20c <__muldf3>
    5d9c:	1011883a 	mov	r8,r2
    5da0:	b5800044 	addi	r22,r22,1
    5da4:	1813883a 	mov	r9,r3
    5da8:	8021d07a 	srai	r16,r16,1
    5dac:	8c400204 	addi	r17,r17,8
    5db0:	803ff21e 	bne	r16,zero,5d7c <_dtoa_r+0xd18>
    5db4:	4029883a 	mov	r20,r8
    5db8:	482b883a 	mov	r21,r9
    5dbc:	003dca06 	br	54e8 <_dtoa_r+0x484>
    5dc0:	d9000817 	ldw	r4,32(sp)
    5dc4:	2005003a 	cmpeq	r2,r4,zero
    5dc8:	1001f61e 	bne	r2,zero,65a4 <_dtoa_r+0x1540>
    5dcc:	dc001117 	ldw	r16,68(sp)
    5dd0:	dc801017 	ldw	r18,64(sp)
    5dd4:	18c10cc4 	addi	r3,r3,1075
    5dd8:	003f6106 	br	5b60 <_dtoa_r+0xafc>
    5ddc:	d8000b15 	stw	zero,44(sp)
    5de0:	d9802617 	ldw	r6,152(sp)
    5de4:	d8c00d17 	ldw	r3,52(sp)
    5de8:	30800044 	addi	r2,r6,1
    5dec:	18ad883a 	add	r22,r3,r2
    5df0:	b13fffc4 	addi	r4,r22,-1
    5df4:	d9000e15 	stw	r4,56(sp)
    5df8:	0581f60e 	bge	zero,r22,65d4 <_dtoa_r+0x1570>
    5dfc:	dd800f15 	stw	r22,60(sp)
    5e00:	003f3006 	br	5ac4 <_dtoa_r+0xa60>
    5e04:	d8000b15 	stw	zero,44(sp)
    5e08:	d9002617 	ldw	r4,152(sp)
    5e0c:	0101eb0e 	bge	zero,r4,65bc <_dtoa_r+0x1558>
    5e10:	202d883a 	mov	r22,r4
    5e14:	d9000e15 	stw	r4,56(sp)
    5e18:	d9000f15 	stw	r4,60(sp)
    5e1c:	003f2906 	br	5ac4 <_dtoa_r+0xa60>
    5e20:	01800044 	movi	r6,1
    5e24:	d9800b15 	stw	r6,44(sp)
    5e28:	003ff706 	br	5e08 <_dtoa_r+0xda4>
    5e2c:	01000044 	movi	r4,1
    5e30:	d9000b15 	stw	r4,44(sp)
    5e34:	003fea06 	br	5de0 <_dtoa_r+0xd7c>
    5e38:	04000c0e 	bge	zero,r16,5e6c <_dtoa_r+0xe08>
    5e3c:	d9400717 	ldw	r5,28(sp)
    5e40:	d9001617 	ldw	r4,88(sp)
    5e44:	01800044 	movi	r6,1
    5e48:	0008b700 	call	8b70 <__lshift>
    5e4c:	1009883a 	mov	r4,r2
    5e50:	900b883a 	mov	r5,r18
    5e54:	d8800715 	stw	r2,28(sp)
    5e58:	00083880 	call	8388 <__mcmp>
    5e5c:	0081e00e 	bge	zero,r2,65e0 <_dtoa_r+0x157c>
    5e60:	bdc00044 	addi	r23,r23,1
    5e64:	00800e84 	movi	r2,58
    5e68:	b881a226 	beq	r23,r2,64f4 <_dtoa_r+0x1490>
    5e6c:	b7000044 	addi	fp,r22,1
    5e70:	b5c00005 	stb	r23,0(r22)
    5e74:	003f7406 	br	5c48 <_dtoa_r+0xbe4>
    5e78:	00800e44 	movi	r2,57
    5e7c:	b8819d26 	beq	r23,r2,64f4 <_dtoa_r+0x1490>
    5e80:	053ffa0e 	bge	zero,r20,5e6c <_dtoa_r+0xe08>
    5e84:	8dc00c44 	addi	r23,r17,49
    5e88:	003ff806 	br	5e6c <_dtoa_r+0xe08>
    5e8c:	d9001617 	ldw	r4,88(sp)
    5e90:	a80b883a 	mov	r5,r21
    5e94:	04000044 	movi	r16,1
    5e98:	000822c0 	call	822c <_Bfree>
    5e9c:	003edf06 	br	5a1c <_dtoa_r+0x9b8>
    5ea0:	d9001617 	ldw	r4,88(sp)
    5ea4:	980b883a 	mov	r5,r19
    5ea8:	01800284 	movi	r6,10
    5eac:	000f883a 	mov	r7,zero
    5eb0:	0008f4c0 	call	8f4c <__multadd>
    5eb4:	1027883a 	mov	r19,r2
    5eb8:	d8800615 	stw	r2,24(sp)
    5ebc:	003ebb06 	br	59ac <_dtoa_r+0x948>
    5ec0:	d9801117 	ldw	r6,68(sp)
    5ec4:	d8800d17 	ldw	r2,52(sp)
    5ec8:	d8000915 	stw	zero,36(sp)
    5ecc:	308dc83a 	sub	r6,r6,r2
    5ed0:	0087c83a 	sub	r3,zero,r2
    5ed4:	d9801115 	stw	r6,68(sp)
    5ed8:	d8c01015 	stw	r3,64(sp)
    5edc:	003cfe06 	br	52d8 <_dtoa_r+0x274>
    5ee0:	018dc83a 	sub	r6,zero,r6
    5ee4:	d9801115 	stw	r6,68(sp)
    5ee8:	d8000a15 	stw	zero,40(sp)
    5eec:	003cf306 	br	52bc <_dtoa_r+0x258>
    5ef0:	d9000d17 	ldw	r4,52(sp)
    5ef4:	000bad00 	call	bad0 <__floatsidf>
    5ef8:	880b883a 	mov	r5,r17
    5efc:	8009883a 	mov	r4,r16
    5f00:	180f883a 	mov	r7,r3
    5f04:	100d883a 	mov	r6,r2
    5f08:	000b8b00 	call	b8b0 <__nedf2>
    5f0c:	103ce126 	beq	r2,zero,5294 <_dtoa_r+0x230>
    5f10:	d9800d17 	ldw	r6,52(sp)
    5f14:	31bfffc4 	addi	r6,r6,-1
    5f18:	d9800d15 	stw	r6,52(sp)
    5f1c:	003cdd06 	br	5294 <_dtoa_r+0x230>
    5f20:	d9000717 	ldw	r4,28(sp)
    5f24:	900b883a 	mov	r5,r18
    5f28:	00083880 	call	8388 <__mcmp>
    5f2c:	103e8d0e 	bge	r2,zero,5964 <_dtoa_r+0x900>
    5f30:	d9400717 	ldw	r5,28(sp)
    5f34:	d9001617 	ldw	r4,88(sp)
    5f38:	01800284 	movi	r6,10
    5f3c:	000f883a 	mov	r7,zero
    5f40:	0008f4c0 	call	8f4c <__multadd>
    5f44:	d9800d17 	ldw	r6,52(sp)
    5f48:	d8800715 	stw	r2,28(sp)
    5f4c:	31bfffc4 	addi	r6,r6,-1
    5f50:	d9800d15 	stw	r6,52(sp)
    5f54:	b001a71e 	bne	r22,zero,65f4 <_dtoa_r+0x1590>
    5f58:	d8800e17 	ldw	r2,56(sp)
    5f5c:	d8800f15 	stw	r2,60(sp)
    5f60:	003e8006 	br	5964 <_dtoa_r+0x900>
    5f64:	90800417 	ldw	r2,16(r18)
    5f68:	1085883a 	add	r2,r2,r2
    5f6c:	1085883a 	add	r2,r2,r2
    5f70:	1485883a 	add	r2,r2,r18
    5f74:	11000417 	ldw	r4,16(r2)
    5f78:	00082540 	call	8254 <__hi0bits>
    5f7c:	00c00804 	movi	r3,32
    5f80:	1887c83a 	sub	r3,r3,r2
    5f84:	003e5a06 	br	58f0 <_dtoa_r+0x88c>
    5f88:	d9400717 	ldw	r5,28(sp)
    5f8c:	d9801017 	ldw	r6,64(sp)
    5f90:	d9001617 	ldw	r4,88(sp)
    5f94:	00090780 	call	9078 <__pow5mult>
    5f98:	d8800715 	stw	r2,28(sp)
    5f9c:	003e4306 	br	58ac <_dtoa_r+0x848>
    5fa0:	d9800f17 	ldw	r6,60(sp)
    5fa4:	d8800d17 	ldw	r2,52(sp)
    5fa8:	d9800315 	stw	r6,12(sp)
    5fac:	d8800415 	stw	r2,16(sp)
    5fb0:	d8c00b17 	ldw	r3,44(sp)
    5fb4:	1805003a 	cmpeq	r2,r3,zero
    5fb8:	1000e21e 	bne	r2,zero,6344 <_dtoa_r+0x12e0>
    5fbc:	d9000317 	ldw	r4,12(sp)
    5fc0:	0005883a 	mov	r2,zero
    5fc4:	00cff834 	movhi	r3,16352
    5fc8:	200c90fa 	slli	r6,r4,3
    5fcc:	01000074 	movhi	r4,1
    5fd0:	21010f04 	addi	r4,r4,1084
    5fd4:	180b883a 	mov	r5,r3
    5fd8:	310d883a 	add	r6,r6,r4
    5fdc:	327fff17 	ldw	r9,-4(r6)
    5fe0:	323ffe17 	ldw	r8,-8(r6)
    5fe4:	1009883a 	mov	r4,r2
    5fe8:	480f883a 	mov	r7,r9
    5fec:	400d883a 	mov	r6,r8
    5ff0:	000b5d00 	call	b5d0 <__divdf3>
    5ff4:	180b883a 	mov	r5,r3
    5ff8:	b00d883a 	mov	r6,r22
    5ffc:	b80f883a 	mov	r7,r23
    6000:	1009883a 	mov	r4,r2
    6004:	000b1180 	call	b118 <__subdf3>
    6008:	a80b883a 	mov	r5,r21
    600c:	a009883a 	mov	r4,r20
    6010:	d8c01915 	stw	r3,100(sp)
    6014:	d8801815 	stw	r2,96(sp)
    6018:	000bbc80 	call	bbc8 <__fixdfsi>
    601c:	1009883a 	mov	r4,r2
    6020:	1027883a 	mov	r19,r2
    6024:	000bad00 	call	bad0 <__floatsidf>
    6028:	a80b883a 	mov	r5,r21
    602c:	a009883a 	mov	r4,r20
    6030:	180f883a 	mov	r7,r3
    6034:	100d883a 	mov	r6,r2
    6038:	000b1180 	call	b118 <__subdf3>
    603c:	d9801817 	ldw	r6,96(sp)
    6040:	1823883a 	mov	r17,r3
    6044:	d8801415 	stw	r2,80(sp)
    6048:	302d883a 	mov	r22,r6
    604c:	d9800517 	ldw	r6,20(sp)
    6050:	9cc00c04 	addi	r19,r19,48
    6054:	dc401515 	stw	r17,84(sp)
    6058:	d8c01917 	ldw	r3,100(sp)
    605c:	34c00005 	stb	r19,0(r6)
    6060:	d8800517 	ldw	r2,20(sp)
    6064:	d9401917 	ldw	r5,100(sp)
    6068:	d9801417 	ldw	r6,80(sp)
    606c:	b009883a 	mov	r4,r22
    6070:	880f883a 	mov	r7,r17
    6074:	182f883a 	mov	r23,r3
    6078:	17000044 	addi	fp,r2,1
    607c:	000b9380 	call	b938 <__gtdf2>
    6080:	00804e16 	blt	zero,r2,61bc <_dtoa_r+0x1158>
    6084:	d9801417 	ldw	r6,80(sp)
    6088:	0005883a 	mov	r2,zero
    608c:	00cffc34 	movhi	r3,16368
    6090:	180b883a 	mov	r5,r3
    6094:	880f883a 	mov	r7,r17
    6098:	1009883a 	mov	r4,r2
    609c:	000b1180 	call	b118 <__subdf3>
    60a0:	d9401917 	ldw	r5,100(sp)
    60a4:	180f883a 	mov	r7,r3
    60a8:	b009883a 	mov	r4,r22
    60ac:	100d883a 	mov	r6,r2
    60b0:	000b9380 	call	b938 <__gtdf2>
    60b4:	00bda216 	blt	zero,r2,5740 <_dtoa_r+0x6dc>
    60b8:	d8c00317 	ldw	r3,12(sp)
    60bc:	00800044 	movi	r2,1
    60c0:	10c01216 	blt	r2,r3,610c <_dtoa_r+0x10a8>
    60c4:	003d4506 	br	55dc <_dtoa_r+0x578>
    60c8:	d9801417 	ldw	r6,80(sp)
    60cc:	0005883a 	mov	r2,zero
    60d0:	00cffc34 	movhi	r3,16368
    60d4:	180b883a 	mov	r5,r3
    60d8:	880f883a 	mov	r7,r17
    60dc:	1009883a 	mov	r4,r2
    60e0:	000b1180 	call	b118 <__subdf3>
    60e4:	d9c01b17 	ldw	r7,108(sp)
    60e8:	180b883a 	mov	r5,r3
    60ec:	1009883a 	mov	r4,r2
    60f0:	b00d883a 	mov	r6,r22
    60f4:	000ba480 	call	ba48 <__ltdf2>
    60f8:	103d9116 	blt	r2,zero,5740 <_dtoa_r+0x6dc>
    60fc:	d9800517 	ldw	r6,20(sp)
    6100:	d9000317 	ldw	r4,12(sp)
    6104:	3105883a 	add	r2,r6,r4
    6108:	e0bd3426 	beq	fp,r2,55dc <_dtoa_r+0x578>
    610c:	04500934 	movhi	r17,16420
    6110:	0021883a 	mov	r16,zero
    6114:	b80b883a 	mov	r5,r23
    6118:	b009883a 	mov	r4,r22
    611c:	800d883a 	mov	r6,r16
    6120:	880f883a 	mov	r7,r17
    6124:	000b20c0 	call	b20c <__muldf3>
    6128:	d9401517 	ldw	r5,84(sp)
    612c:	d9001417 	ldw	r4,80(sp)
    6130:	880f883a 	mov	r7,r17
    6134:	000d883a 	mov	r6,zero
    6138:	d8801a15 	stw	r2,104(sp)
    613c:	d8c01b15 	stw	r3,108(sp)
    6140:	000b20c0 	call	b20c <__muldf3>
    6144:	180b883a 	mov	r5,r3
    6148:	1009883a 	mov	r4,r2
    614c:	1823883a 	mov	r17,r3
    6150:	1021883a 	mov	r16,r2
    6154:	000bbc80 	call	bbc8 <__fixdfsi>
    6158:	1009883a 	mov	r4,r2
    615c:	102b883a 	mov	r21,r2
    6160:	000bad00 	call	bad0 <__floatsidf>
    6164:	880b883a 	mov	r5,r17
    6168:	8009883a 	mov	r4,r16
    616c:	180f883a 	mov	r7,r3
    6170:	100d883a 	mov	r6,r2
    6174:	000b1180 	call	b118 <__subdf3>
    6178:	1021883a 	mov	r16,r2
    617c:	d9001b17 	ldw	r4,108(sp)
    6180:	1823883a 	mov	r17,r3
    6184:	dc001415 	stw	r16,80(sp)
    6188:	ad400c04 	addi	r21,r21,48
    618c:	dc401515 	stw	r17,84(sp)
    6190:	d8801a17 	ldw	r2,104(sp)
    6194:	e5400005 	stb	r21,0(fp)
    6198:	202f883a 	mov	r23,r4
    619c:	d9c01b17 	ldw	r7,108(sp)
    61a0:	d9001417 	ldw	r4,80(sp)
    61a4:	880b883a 	mov	r5,r17
    61a8:	100d883a 	mov	r6,r2
    61ac:	102d883a 	mov	r22,r2
    61b0:	e7000044 	addi	fp,fp,1
    61b4:	000ba480 	call	ba48 <__ltdf2>
    61b8:	103fc30e 	bge	r2,zero,60c8 <_dtoa_r+0x1064>
    61bc:	d9000417 	ldw	r4,16(sp)
    61c0:	d9000d15 	stw	r4,52(sp)
    61c4:	003d7106 	br	578c <_dtoa_r+0x728>
    61c8:	d9801717 	ldw	r6,92(sp)
    61cc:	00800084 	movi	r2,2
    61d0:	11bde60e 	bge	r2,r6,596c <_dtoa_r+0x908>
    61d4:	203cfb1e 	bne	r4,zero,55c4 <_dtoa_r+0x560>
    61d8:	d9001617 	ldw	r4,88(sp)
    61dc:	900b883a 	mov	r5,r18
    61e0:	01800144 	movi	r6,5
    61e4:	000f883a 	mov	r7,zero
    61e8:	0008f4c0 	call	8f4c <__multadd>
    61ec:	d9000717 	ldw	r4,28(sp)
    61f0:	100b883a 	mov	r5,r2
    61f4:	1025883a 	mov	r18,r2
    61f8:	00083880 	call	8388 <__mcmp>
    61fc:	00bcf10e 	bge	zero,r2,55c4 <_dtoa_r+0x560>
    6200:	d8c00d17 	ldw	r3,52(sp)
    6204:	d9000517 	ldw	r4,20(sp)
    6208:	d8000615 	stw	zero,24(sp)
    620c:	18c00044 	addi	r3,r3,1
    6210:	d8c00d15 	stw	r3,52(sp)
    6214:	00800c44 	movi	r2,49
    6218:	27000044 	addi	fp,r4,1
    621c:	20800005 	stb	r2,0(r4)
    6220:	003e8906 	br	5c48 <_dtoa_r+0xbe4>
    6224:	d8c00517 	ldw	r3,20(sp)
    6228:	003bc206 	br	5134 <_dtoa_r+0xd0>
    622c:	01800074 	movhi	r6,1
    6230:	31814104 	addi	r6,r6,1284
    6234:	30c00917 	ldw	r3,36(r6)
    6238:	30800817 	ldw	r2,32(r6)
    623c:	d9001217 	ldw	r4,72(sp)
    6240:	d9401317 	ldw	r5,76(sp)
    6244:	180f883a 	mov	r7,r3
    6248:	100d883a 	mov	r6,r2
    624c:	000b5d00 	call	b5d0 <__divdf3>
    6250:	948003cc 	andi	r18,r18,15
    6254:	058000c4 	movi	r22,3
    6258:	1029883a 	mov	r20,r2
    625c:	182b883a 	mov	r21,r3
    6260:	003c8906 	br	5488 <_dtoa_r+0x424>
    6264:	d9001017 	ldw	r4,64(sp)
    6268:	d9800917 	ldw	r6,36(sp)
    626c:	0025883a 	mov	r18,zero
    6270:	1105c83a 	sub	r2,r2,r4
    6274:	2089883a 	add	r4,r4,r2
    6278:	308d883a 	add	r6,r6,r2
    627c:	d9001015 	stw	r4,64(sp)
    6280:	d9800915 	stw	r6,36(sp)
    6284:	003e3206 	br	5b50 <_dtoa_r+0xaec>
    6288:	28800044 	addi	r2,r5,1
    628c:	27000044 	addi	fp,r4,1
    6290:	20800005 	stb	r2,0(r4)
    6294:	003e6c06 	br	5c48 <_dtoa_r+0xbe4>
    6298:	d8800f17 	ldw	r2,60(sp)
    629c:	00bce016 	blt	zero,r2,5620 <_dtoa_r+0x5bc>
    62a0:	d9800f17 	ldw	r6,60(sp)
    62a4:	303cc51e 	bne	r6,zero,55bc <_dtoa_r+0x558>
    62a8:	0005883a 	mov	r2,zero
    62ac:	00d00534 	movhi	r3,16404
    62b0:	980b883a 	mov	r5,r19
    62b4:	180f883a 	mov	r7,r3
    62b8:	9009883a 	mov	r4,r18
    62bc:	100d883a 	mov	r6,r2
    62c0:	000b20c0 	call	b20c <__muldf3>
    62c4:	180b883a 	mov	r5,r3
    62c8:	a80f883a 	mov	r7,r21
    62cc:	1009883a 	mov	r4,r2
    62d0:	a00d883a 	mov	r6,r20
    62d4:	000b9c00 	call	b9c0 <__gedf2>
    62d8:	103cb80e 	bge	r2,zero,55bc <_dtoa_r+0x558>
    62dc:	0027883a 	mov	r19,zero
    62e0:	0025883a 	mov	r18,zero
    62e4:	003fc606 	br	6200 <_dtoa_r+0x119c>
    62e8:	99400117 	ldw	r5,4(r19)
    62ec:	d9001617 	ldw	r4,88(sp)
    62f0:	00087ac0 	call	87ac <_Balloc>
    62f4:	99800417 	ldw	r6,16(r19)
    62f8:	11000304 	addi	r4,r2,12
    62fc:	99400304 	addi	r5,r19,12
    6300:	318d883a 	add	r6,r6,r6
    6304:	318d883a 	add	r6,r6,r6
    6308:	31800204 	addi	r6,r6,8
    630c:	1023883a 	mov	r17,r2
    6310:	00080140 	call	8014 <memcpy>
    6314:	d9001617 	ldw	r4,88(sp)
    6318:	880b883a 	mov	r5,r17
    631c:	01800044 	movi	r6,1
    6320:	0008b700 	call	8b70 <__lshift>
    6324:	100b883a 	mov	r5,r2
    6328:	003d9c06 	br	599c <_dtoa_r+0x938>
    632c:	00800e44 	movi	r2,57
    6330:	b8807026 	beq	r23,r2,64f4 <_dtoa_r+0x1490>
    6334:	b8800044 	addi	r2,r23,1
    6338:	b7000044 	addi	fp,r22,1
    633c:	b0800005 	stb	r2,0(r22)
    6340:	003e4106 	br	5c48 <_dtoa_r+0xbe4>
    6344:	d8800317 	ldw	r2,12(sp)
    6348:	01800074 	movhi	r6,1
    634c:	31810f04 	addi	r6,r6,1084
    6350:	b009883a 	mov	r4,r22
    6354:	100e90fa 	slli	r7,r2,3
    6358:	b80b883a 	mov	r5,r23
    635c:	398f883a 	add	r7,r7,r6
    6360:	38bffe17 	ldw	r2,-8(r7)
    6364:	d9800517 	ldw	r6,20(sp)
    6368:	38ffff17 	ldw	r3,-4(r7)
    636c:	37000044 	addi	fp,r6,1
    6370:	180f883a 	mov	r7,r3
    6374:	100d883a 	mov	r6,r2
    6378:	000b20c0 	call	b20c <__muldf3>
    637c:	a80b883a 	mov	r5,r21
    6380:	a009883a 	mov	r4,r20
    6384:	182f883a 	mov	r23,r3
    6388:	102d883a 	mov	r22,r2
    638c:	000bbc80 	call	bbc8 <__fixdfsi>
    6390:	1009883a 	mov	r4,r2
    6394:	1027883a 	mov	r19,r2
    6398:	000bad00 	call	bad0 <__floatsidf>
    639c:	a80b883a 	mov	r5,r21
    63a0:	a009883a 	mov	r4,r20
    63a4:	180f883a 	mov	r7,r3
    63a8:	100d883a 	mov	r6,r2
    63ac:	000b1180 	call	b118 <__subdf3>
    63b0:	180b883a 	mov	r5,r3
    63b4:	d8c00517 	ldw	r3,20(sp)
    63b8:	9cc00c04 	addi	r19,r19,48
    63bc:	1009883a 	mov	r4,r2
    63c0:	1cc00005 	stb	r19,0(r3)
    63c4:	2021883a 	mov	r16,r4
    63c8:	d9000317 	ldw	r4,12(sp)
    63cc:	00800044 	movi	r2,1
    63d0:	2823883a 	mov	r17,r5
    63d4:	20802226 	beq	r4,r2,6460 <_dtoa_r+0x13fc>
    63d8:	1029883a 	mov	r20,r2
    63dc:	0005883a 	mov	r2,zero
    63e0:	00d00934 	movhi	r3,16420
    63e4:	180f883a 	mov	r7,r3
    63e8:	100d883a 	mov	r6,r2
    63ec:	880b883a 	mov	r5,r17
    63f0:	8009883a 	mov	r4,r16
    63f4:	000b20c0 	call	b20c <__muldf3>
    63f8:	180b883a 	mov	r5,r3
    63fc:	1009883a 	mov	r4,r2
    6400:	1823883a 	mov	r17,r3
    6404:	1021883a 	mov	r16,r2
    6408:	000bbc80 	call	bbc8 <__fixdfsi>
    640c:	1009883a 	mov	r4,r2
    6410:	102b883a 	mov	r21,r2
    6414:	000bad00 	call	bad0 <__floatsidf>
    6418:	880b883a 	mov	r5,r17
    641c:	8009883a 	mov	r4,r16
    6420:	180f883a 	mov	r7,r3
    6424:	100d883a 	mov	r6,r2
    6428:	000b1180 	call	b118 <__subdf3>
    642c:	180b883a 	mov	r5,r3
    6430:	d8c00517 	ldw	r3,20(sp)
    6434:	1009883a 	mov	r4,r2
    6438:	ad400c04 	addi	r21,r21,48
    643c:	1d05883a 	add	r2,r3,r20
    6440:	15400005 	stb	r21,0(r2)
    6444:	2021883a 	mov	r16,r4
    6448:	d9000317 	ldw	r4,12(sp)
    644c:	a5000044 	addi	r20,r20,1
    6450:	2823883a 	mov	r17,r5
    6454:	a13fe11e 	bne	r20,r4,63dc <_dtoa_r+0x1378>
    6458:	e505883a 	add	r2,fp,r20
    645c:	173fffc4 	addi	fp,r2,-1
    6460:	0025883a 	mov	r18,zero
    6464:	04cff834 	movhi	r19,16352
    6468:	b009883a 	mov	r4,r22
    646c:	b80b883a 	mov	r5,r23
    6470:	900d883a 	mov	r6,r18
    6474:	980f883a 	mov	r7,r19
    6478:	000b1980 	call	b198 <__adddf3>
    647c:	180b883a 	mov	r5,r3
    6480:	1009883a 	mov	r4,r2
    6484:	800d883a 	mov	r6,r16
    6488:	880f883a 	mov	r7,r17
    648c:	000ba480 	call	ba48 <__ltdf2>
    6490:	103cab16 	blt	r2,zero,5740 <_dtoa_r+0x6dc>
    6494:	0009883a 	mov	r4,zero
    6498:	980b883a 	mov	r5,r19
    649c:	b80f883a 	mov	r7,r23
    64a0:	b00d883a 	mov	r6,r22
    64a4:	000b1180 	call	b118 <__subdf3>
    64a8:	180b883a 	mov	r5,r3
    64ac:	880f883a 	mov	r7,r17
    64b0:	1009883a 	mov	r4,r2
    64b4:	800d883a 	mov	r6,r16
    64b8:	000b9380 	call	b938 <__gtdf2>
    64bc:	00bc470e 	bge	zero,r2,55dc <_dtoa_r+0x578>
    64c0:	00c00c04 	movi	r3,48
    64c4:	e73fffc4 	addi	fp,fp,-1
    64c8:	e0800007 	ldb	r2,0(fp)
    64cc:	10fffd26 	beq	r2,r3,64c4 <_dtoa_r+0x1460>
    64d0:	d9800417 	ldw	r6,16(sp)
    64d4:	e7000044 	addi	fp,fp,1
    64d8:	d9800d15 	stw	r6,52(sp)
    64dc:	003cab06 	br	578c <_dtoa_r+0x728>
    64e0:	d8c00f17 	ldw	r3,60(sp)
    64e4:	d9001117 	ldw	r4,68(sp)
    64e8:	20e1c83a 	sub	r16,r4,r3
    64ec:	0007883a 	mov	r3,zero
    64f0:	003d9b06 	br	5b60 <_dtoa_r+0xafc>
    64f4:	00800e44 	movi	r2,57
    64f8:	b0800005 	stb	r2,0(r22)
    64fc:	b5800044 	addi	r22,r22,1
    6500:	003dc106 	br	5c08 <_dtoa_r+0xba4>
    6504:	05800084 	movi	r22,2
    6508:	003bf706 	br	54e8 <_dtoa_r+0x484>
    650c:	d9000f17 	ldw	r4,60(sp)
    6510:	013c000e 	bge	zero,r4,5514 <_dtoa_r+0x4b0>
    6514:	d9800e17 	ldw	r6,56(sp)
    6518:	01bc300e 	bge	zero,r6,55dc <_dtoa_r+0x578>
    651c:	0005883a 	mov	r2,zero
    6520:	00d00934 	movhi	r3,16420
    6524:	a80b883a 	mov	r5,r21
    6528:	180f883a 	mov	r7,r3
    652c:	a009883a 	mov	r4,r20
    6530:	100d883a 	mov	r6,r2
    6534:	000b20c0 	call	b20c <__muldf3>
    6538:	b1000044 	addi	r4,r22,1
    653c:	1021883a 	mov	r16,r2
    6540:	1823883a 	mov	r17,r3
    6544:	000bad00 	call	bad0 <__floatsidf>
    6548:	880b883a 	mov	r5,r17
    654c:	8009883a 	mov	r4,r16
    6550:	180f883a 	mov	r7,r3
    6554:	100d883a 	mov	r6,r2
    6558:	000b20c0 	call	b20c <__muldf3>
    655c:	0011883a 	mov	r8,zero
    6560:	02500734 	movhi	r9,16412
    6564:	180b883a 	mov	r5,r3
    6568:	480f883a 	mov	r7,r9
    656c:	1009883a 	mov	r4,r2
    6570:	400d883a 	mov	r6,r8
    6574:	000b1980 	call	b198 <__adddf3>
    6578:	102d883a 	mov	r22,r2
    657c:	00bf3034 	movhi	r2,64704
    6580:	10ef883a 	add	r23,r2,r3
    6584:	d8800d17 	ldw	r2,52(sp)
    6588:	d8c00e17 	ldw	r3,56(sp)
    658c:	8029883a 	mov	r20,r16
    6590:	10bfffc4 	addi	r2,r2,-1
    6594:	882b883a 	mov	r21,r17
    6598:	d8800415 	stw	r2,16(sp)
    659c:	d8c00315 	stw	r3,12(sp)
    65a0:	003e8306 	br	5fb0 <_dtoa_r+0xf4c>
    65a4:	d8800117 	ldw	r2,4(sp)
    65a8:	dc001117 	ldw	r16,68(sp)
    65ac:	dc801017 	ldw	r18,64(sp)
    65b0:	00c00d84 	movi	r3,54
    65b4:	1887c83a 	sub	r3,r3,r2
    65b8:	003d6906 	br	5b60 <_dtoa_r+0xafc>
    65bc:	01800044 	movi	r6,1
    65c0:	3021883a 	mov	r16,r6
    65c4:	d9800f15 	stw	r6,60(sp)
    65c8:	d9802615 	stw	r6,152(sp)
    65cc:	d9800e15 	stw	r6,56(sp)
    65d0:	003b9306 	br	5420 <_dtoa_r+0x3bc>
    65d4:	b021883a 	mov	r16,r22
    65d8:	dd800f15 	stw	r22,60(sp)
    65dc:	003b9006 	br	5420 <_dtoa_r+0x3bc>
    65e0:	103e221e 	bne	r2,zero,5e6c <_dtoa_r+0xe08>
    65e4:	b880004c 	andi	r2,r23,1
    65e8:	1005003a 	cmpeq	r2,r2,zero
    65ec:	103e1f1e 	bne	r2,zero,5e6c <_dtoa_r+0xe08>
    65f0:	003e1b06 	br	5e60 <_dtoa_r+0xdfc>
    65f4:	d9001617 	ldw	r4,88(sp)
    65f8:	980b883a 	mov	r5,r19
    65fc:	01800284 	movi	r6,10
    6600:	000f883a 	mov	r7,zero
    6604:	0008f4c0 	call	8f4c <__multadd>
    6608:	d8c00e17 	ldw	r3,56(sp)
    660c:	1027883a 	mov	r19,r2
    6610:	d8c00f15 	stw	r3,60(sp)
    6614:	003cd306 	br	5964 <_dtoa_r+0x900>

00006618 <_fflush_r>:
    6618:	defffb04 	addi	sp,sp,-20
    661c:	dcc00315 	stw	r19,12(sp)
    6620:	dc800215 	stw	r18,8(sp)
    6624:	dfc00415 	stw	ra,16(sp)
    6628:	dc400115 	stw	r17,4(sp)
    662c:	dc000015 	stw	r16,0(sp)
    6630:	2027883a 	mov	r19,r4
    6634:	2825883a 	mov	r18,r5
    6638:	20000226 	beq	r4,zero,6644 <_fflush_r+0x2c>
    663c:	20800e17 	ldw	r2,56(r4)
    6640:	10005626 	beq	r2,zero,679c <_fflush_r+0x184>
    6644:	9100030b 	ldhu	r4,12(r18)
    6648:	20ffffcc 	andi	r3,r4,65535
    664c:	18e0001c 	xori	r3,r3,32768
    6650:	18e00004 	addi	r3,r3,-32768
    6654:	1880020c 	andi	r2,r3,8
    6658:	1000261e 	bne	r2,zero,66f4 <_fflush_r+0xdc>
    665c:	90c00117 	ldw	r3,4(r18)
    6660:	20820014 	ori	r2,r4,2048
    6664:	9080030d 	sth	r2,12(r18)
    6668:	1009883a 	mov	r4,r2
    666c:	00c0400e 	bge	zero,r3,6770 <_fflush_r+0x158>
    6670:	92000a17 	ldw	r8,40(r18)
    6674:	40004026 	beq	r8,zero,6778 <_fflush_r+0x160>
    6678:	2084000c 	andi	r2,r4,4096
    667c:	10005326 	beq	r2,zero,67cc <_fflush_r+0x1b4>
    6680:	94001417 	ldw	r16,80(r18)
    6684:	9080030b 	ldhu	r2,12(r18)
    6688:	1080010c 	andi	r2,r2,4
    668c:	1000481e 	bne	r2,zero,67b0 <_fflush_r+0x198>
    6690:	91400717 	ldw	r5,28(r18)
    6694:	9809883a 	mov	r4,r19
    6698:	800d883a 	mov	r6,r16
    669c:	000f883a 	mov	r7,zero
    66a0:	403ee83a 	callr	r8
    66a4:	8080261e 	bne	r16,r2,6740 <_fflush_r+0x128>
    66a8:	9080030b 	ldhu	r2,12(r18)
    66ac:	91000417 	ldw	r4,16(r18)
    66b0:	90000115 	stw	zero,4(r18)
    66b4:	10bdffcc 	andi	r2,r2,63487
    66b8:	10ffffcc 	andi	r3,r2,65535
    66bc:	18c4000c 	andi	r3,r3,4096
    66c0:	9080030d 	sth	r2,12(r18)
    66c4:	91000015 	stw	r4,0(r18)
    66c8:	18002b26 	beq	r3,zero,6778 <_fflush_r+0x160>
    66cc:	0007883a 	mov	r3,zero
    66d0:	1805883a 	mov	r2,r3
    66d4:	94001415 	stw	r16,80(r18)
    66d8:	dfc00417 	ldw	ra,16(sp)
    66dc:	dcc00317 	ldw	r19,12(sp)
    66e0:	dc800217 	ldw	r18,8(sp)
    66e4:	dc400117 	ldw	r17,4(sp)
    66e8:	dc000017 	ldw	r16,0(sp)
    66ec:	dec00504 	addi	sp,sp,20
    66f0:	f800283a 	ret
    66f4:	94400417 	ldw	r17,16(r18)
    66f8:	88001f26 	beq	r17,zero,6778 <_fflush_r+0x160>
    66fc:	90800017 	ldw	r2,0(r18)
    6700:	18c000cc 	andi	r3,r3,3
    6704:	94400015 	stw	r17,0(r18)
    6708:	1461c83a 	sub	r16,r2,r17
    670c:	18002526 	beq	r3,zero,67a4 <_fflush_r+0x18c>
    6710:	0005883a 	mov	r2,zero
    6714:	90800215 	stw	r2,8(r18)
    6718:	0400170e 	bge	zero,r16,6778 <_fflush_r+0x160>
    671c:	90c00917 	ldw	r3,36(r18)
    6720:	91400717 	ldw	r5,28(r18)
    6724:	880d883a 	mov	r6,r17
    6728:	800f883a 	mov	r7,r16
    672c:	9809883a 	mov	r4,r19
    6730:	183ee83a 	callr	r3
    6734:	88a3883a 	add	r17,r17,r2
    6738:	80a1c83a 	sub	r16,r16,r2
    673c:	00bff616 	blt	zero,r2,6718 <_fflush_r+0x100>
    6740:	9080030b 	ldhu	r2,12(r18)
    6744:	00ffffc4 	movi	r3,-1
    6748:	10801014 	ori	r2,r2,64
    674c:	9080030d 	sth	r2,12(r18)
    6750:	1805883a 	mov	r2,r3
    6754:	dfc00417 	ldw	ra,16(sp)
    6758:	dcc00317 	ldw	r19,12(sp)
    675c:	dc800217 	ldw	r18,8(sp)
    6760:	dc400117 	ldw	r17,4(sp)
    6764:	dc000017 	ldw	r16,0(sp)
    6768:	dec00504 	addi	sp,sp,20
    676c:	f800283a 	ret
    6770:	90800f17 	ldw	r2,60(r18)
    6774:	00bfbe16 	blt	zero,r2,6670 <_fflush_r+0x58>
    6778:	0007883a 	mov	r3,zero
    677c:	1805883a 	mov	r2,r3
    6780:	dfc00417 	ldw	ra,16(sp)
    6784:	dcc00317 	ldw	r19,12(sp)
    6788:	dc800217 	ldw	r18,8(sp)
    678c:	dc400117 	ldw	r17,4(sp)
    6790:	dc000017 	ldw	r16,0(sp)
    6794:	dec00504 	addi	sp,sp,20
    6798:	f800283a 	ret
    679c:	00068b00 	call	68b0 <__sinit>
    67a0:	003fa806 	br	6644 <_fflush_r+0x2c>
    67a4:	90800517 	ldw	r2,20(r18)
    67a8:	90800215 	stw	r2,8(r18)
    67ac:	003fda06 	br	6718 <_fflush_r+0x100>
    67b0:	90800117 	ldw	r2,4(r18)
    67b4:	90c00c17 	ldw	r3,48(r18)
    67b8:	80a1c83a 	sub	r16,r16,r2
    67bc:	183fb426 	beq	r3,zero,6690 <_fflush_r+0x78>
    67c0:	90800f17 	ldw	r2,60(r18)
    67c4:	80a1c83a 	sub	r16,r16,r2
    67c8:	003fb106 	br	6690 <_fflush_r+0x78>
    67cc:	91400717 	ldw	r5,28(r18)
    67d0:	9809883a 	mov	r4,r19
    67d4:	000d883a 	mov	r6,zero
    67d8:	01c00044 	movi	r7,1
    67dc:	403ee83a 	callr	r8
    67e0:	1021883a 	mov	r16,r2
    67e4:	00bfffc4 	movi	r2,-1
    67e8:	80800226 	beq	r16,r2,67f4 <_fflush_r+0x1dc>
    67ec:	92000a17 	ldw	r8,40(r18)
    67f0:	003fa406 	br	6684 <_fflush_r+0x6c>
    67f4:	98c00017 	ldw	r3,0(r19)
    67f8:	00800744 	movi	r2,29
    67fc:	18bfde26 	beq	r3,r2,6778 <_fflush_r+0x160>
    6800:	9080030b 	ldhu	r2,12(r18)
    6804:	8007883a 	mov	r3,r16
    6808:	10801014 	ori	r2,r2,64
    680c:	9080030d 	sth	r2,12(r18)
    6810:	003fcf06 	br	6750 <_fflush_r+0x138>

00006814 <fflush>:
    6814:	01400034 	movhi	r5,0
    6818:	29598604 	addi	r5,r5,26136
    681c:	2007883a 	mov	r3,r4
    6820:	20000526 	beq	r4,zero,6838 <fflush+0x24>
    6824:	00800074 	movhi	r2,1
    6828:	10887e04 	addi	r2,r2,8696
    682c:	11000017 	ldw	r4,0(r2)
    6830:	180b883a 	mov	r5,r3
    6834:	00066181 	jmpi	6618 <_fflush_r>
    6838:	00800074 	movhi	r2,1
    683c:	10887f04 	addi	r2,r2,8700
    6840:	11000017 	ldw	r4,0(r2)
    6844:	00074181 	jmpi	7418 <_fwalk_reent>

00006848 <std>:
    6848:	00800074 	movhi	r2,1
    684c:	10a66304 	addi	r2,r2,-26228
    6850:	20800b15 	stw	r2,44(r4)
    6854:	00800074 	movhi	r2,1
    6858:	10a69e04 	addi	r2,r2,-25992
    685c:	20800815 	stw	r2,32(r4)
    6860:	00c00074 	movhi	r3,1
    6864:	18e67f04 	addi	r3,r3,-26116
    6868:	00800074 	movhi	r2,1
    686c:	10a66504 	addi	r2,r2,-26220
    6870:	2140030d 	sth	r5,12(r4)
    6874:	2180038d 	sth	r6,14(r4)
    6878:	20c00915 	stw	r3,36(r4)
    687c:	20800a15 	stw	r2,40(r4)
    6880:	20000015 	stw	zero,0(r4)
    6884:	20000115 	stw	zero,4(r4)
    6888:	20000215 	stw	zero,8(r4)
    688c:	20000415 	stw	zero,16(r4)
    6890:	20000515 	stw	zero,20(r4)
    6894:	20000615 	stw	zero,24(r4)
    6898:	21000715 	stw	r4,28(r4)
    689c:	f800283a 	ret

000068a0 <__sfp_lock_acquire>:
    68a0:	f800283a 	ret

000068a4 <__sfp_lock_release>:
    68a4:	f800283a 	ret

000068a8 <__sinit_lock_acquire>:
    68a8:	f800283a 	ret

000068ac <__sinit_lock_release>:
    68ac:	f800283a 	ret

000068b0 <__sinit>:
    68b0:	20800e17 	ldw	r2,56(r4)
    68b4:	defffd04 	addi	sp,sp,-12
    68b8:	dc400115 	stw	r17,4(sp)
    68bc:	dc000015 	stw	r16,0(sp)
    68c0:	dfc00215 	stw	ra,8(sp)
    68c4:	04400044 	movi	r17,1
    68c8:	01400104 	movi	r5,4
    68cc:	000d883a 	mov	r6,zero
    68d0:	2021883a 	mov	r16,r4
    68d4:	2200bb04 	addi	r8,r4,748
    68d8:	200f883a 	mov	r7,r4
    68dc:	10000526 	beq	r2,zero,68f4 <__sinit+0x44>
    68e0:	dfc00217 	ldw	ra,8(sp)
    68e4:	dc400117 	ldw	r17,4(sp)
    68e8:	dc000017 	ldw	r16,0(sp)
    68ec:	dec00304 	addi	sp,sp,12
    68f0:	f800283a 	ret
    68f4:	21000117 	ldw	r4,4(r4)
    68f8:	00800034 	movhi	r2,0
    68fc:	109a6504 	addi	r2,r2,27028
    6900:	00c000c4 	movi	r3,3
    6904:	80800f15 	stw	r2,60(r16)
    6908:	80c0b915 	stw	r3,740(r16)
    690c:	8200ba15 	stw	r8,744(r16)
    6910:	84400e15 	stw	r17,56(r16)
    6914:	8000b815 	stw	zero,736(r16)
    6918:	00068480 	call	6848 <std>
    691c:	81000217 	ldw	r4,8(r16)
    6920:	880d883a 	mov	r6,r17
    6924:	800f883a 	mov	r7,r16
    6928:	01400284 	movi	r5,10
    692c:	00068480 	call	6848 <std>
    6930:	81000317 	ldw	r4,12(r16)
    6934:	800f883a 	mov	r7,r16
    6938:	01400484 	movi	r5,18
    693c:	01800084 	movi	r6,2
    6940:	dfc00217 	ldw	ra,8(sp)
    6944:	dc400117 	ldw	r17,4(sp)
    6948:	dc000017 	ldw	r16,0(sp)
    694c:	dec00304 	addi	sp,sp,12
    6950:	00068481 	jmpi	6848 <std>

00006954 <__fp_lock>:
    6954:	0005883a 	mov	r2,zero
    6958:	f800283a 	ret

0000695c <__fp_unlock>:
    695c:	0005883a 	mov	r2,zero
    6960:	f800283a 	ret

00006964 <__fp_unlock_all>:
    6964:	00800074 	movhi	r2,1
    6968:	10887e04 	addi	r2,r2,8696
    696c:	11000017 	ldw	r4,0(r2)
    6970:	01400034 	movhi	r5,0
    6974:	295a5704 	addi	r5,r5,26972
    6978:	00074e01 	jmpi	74e0 <_fwalk>

0000697c <__fp_lock_all>:
    697c:	00800074 	movhi	r2,1
    6980:	10887e04 	addi	r2,r2,8696
    6984:	11000017 	ldw	r4,0(r2)
    6988:	01400034 	movhi	r5,0
    698c:	295a5504 	addi	r5,r5,26964
    6990:	00074e01 	jmpi	74e0 <_fwalk>

00006994 <_cleanup_r>:
    6994:	01400074 	movhi	r5,1
    6998:	29679504 	addi	r5,r5,-25004
    699c:	00074e01 	jmpi	74e0 <_fwalk>

000069a0 <_cleanup>:
    69a0:	00800074 	movhi	r2,1
    69a4:	10887f04 	addi	r2,r2,8700
    69a8:	11000017 	ldw	r4,0(r2)
    69ac:	00069941 	jmpi	6994 <_cleanup_r>

000069b0 <__sfmoreglue>:
    69b0:	defffc04 	addi	sp,sp,-16
    69b4:	dc000015 	stw	r16,0(sp)
    69b8:	2821883a 	mov	r16,r5
    69bc:	dc400115 	stw	r17,4(sp)
    69c0:	01401704 	movi	r5,92
    69c4:	2023883a 	mov	r17,r4
    69c8:	8009883a 	mov	r4,r16
    69cc:	dfc00315 	stw	ra,12(sp)
    69d0:	dcc00215 	stw	r19,8(sp)
    69d4:	0002c240 	call	2c24 <__mulsi3>
    69d8:	11400304 	addi	r5,r2,12
    69dc:	8809883a 	mov	r4,r17
    69e0:	1027883a 	mov	r19,r2
    69e4:	00077f00 	call	77f0 <_malloc_r>
    69e8:	10c00304 	addi	r3,r2,12
    69ec:	1023883a 	mov	r17,r2
    69f0:	1809883a 	mov	r4,r3
    69f4:	980d883a 	mov	r6,r19
    69f8:	000b883a 	mov	r5,zero
    69fc:	10000b26 	beq	r2,zero,6a2c <__sfmoreglue+0x7c>
    6a00:	14000115 	stw	r16,4(r2)
    6a04:	10c00215 	stw	r3,8(r2)
    6a08:	10000015 	stw	zero,0(r2)
    6a0c:	00081940 	call	8194 <memset>
    6a10:	8805883a 	mov	r2,r17
    6a14:	dfc00317 	ldw	ra,12(sp)
    6a18:	dcc00217 	ldw	r19,8(sp)
    6a1c:	dc400117 	ldw	r17,4(sp)
    6a20:	dc000017 	ldw	r16,0(sp)
    6a24:	dec00404 	addi	sp,sp,16
    6a28:	f800283a 	ret
    6a2c:	0023883a 	mov	r17,zero
    6a30:	8805883a 	mov	r2,r17
    6a34:	dfc00317 	ldw	ra,12(sp)
    6a38:	dcc00217 	ldw	r19,8(sp)
    6a3c:	dc400117 	ldw	r17,4(sp)
    6a40:	dc000017 	ldw	r16,0(sp)
    6a44:	dec00404 	addi	sp,sp,16
    6a48:	f800283a 	ret

00006a4c <__sfp>:
    6a4c:	defffd04 	addi	sp,sp,-12
    6a50:	00800074 	movhi	r2,1
    6a54:	10887f04 	addi	r2,r2,8700
    6a58:	dc000015 	stw	r16,0(sp)
    6a5c:	14000017 	ldw	r16,0(r2)
    6a60:	dc400115 	stw	r17,4(sp)
    6a64:	dfc00215 	stw	ra,8(sp)
    6a68:	80800e17 	ldw	r2,56(r16)
    6a6c:	2023883a 	mov	r17,r4
    6a70:	10002626 	beq	r2,zero,6b0c <__sfp+0xc0>
    6a74:	8400b804 	addi	r16,r16,736
    6a78:	80800117 	ldw	r2,4(r16)
    6a7c:	81000217 	ldw	r4,8(r16)
    6a80:	10ffffc4 	addi	r3,r2,-1
    6a84:	18000916 	blt	r3,zero,6aac <__sfp+0x60>
    6a88:	2080030f 	ldh	r2,12(r4)
    6a8c:	10000b26 	beq	r2,zero,6abc <__sfp+0x70>
    6a90:	017fffc4 	movi	r5,-1
    6a94:	00000206 	br	6aa0 <__sfp+0x54>
    6a98:	2080030f 	ldh	r2,12(r4)
    6a9c:	10000726 	beq	r2,zero,6abc <__sfp+0x70>
    6aa0:	18ffffc4 	addi	r3,r3,-1
    6aa4:	21001704 	addi	r4,r4,92
    6aa8:	197ffb1e 	bne	r3,r5,6a98 <__sfp+0x4c>
    6aac:	80800017 	ldw	r2,0(r16)
    6ab0:	10001926 	beq	r2,zero,6b18 <__sfp+0xcc>
    6ab4:	1021883a 	mov	r16,r2
    6ab8:	003fef06 	br	6a78 <__sfp+0x2c>
    6abc:	00bfffc4 	movi	r2,-1
    6ac0:	00c00044 	movi	r3,1
    6ac4:	2080038d 	sth	r2,14(r4)
    6ac8:	20c0030d 	sth	r3,12(r4)
    6acc:	20000015 	stw	zero,0(r4)
    6ad0:	20000215 	stw	zero,8(r4)
    6ad4:	20000115 	stw	zero,4(r4)
    6ad8:	20000415 	stw	zero,16(r4)
    6adc:	20000515 	stw	zero,20(r4)
    6ae0:	20000615 	stw	zero,24(r4)
    6ae4:	20000c15 	stw	zero,48(r4)
    6ae8:	20000d15 	stw	zero,52(r4)
    6aec:	20001115 	stw	zero,68(r4)
    6af0:	20001215 	stw	zero,72(r4)
    6af4:	2005883a 	mov	r2,r4
    6af8:	dfc00217 	ldw	ra,8(sp)
    6afc:	dc400117 	ldw	r17,4(sp)
    6b00:	dc000017 	ldw	r16,0(sp)
    6b04:	dec00304 	addi	sp,sp,12
    6b08:	f800283a 	ret
    6b0c:	8009883a 	mov	r4,r16
    6b10:	00068b00 	call	68b0 <__sinit>
    6b14:	003fd706 	br	6a74 <__sfp+0x28>
    6b18:	8809883a 	mov	r4,r17
    6b1c:	01400104 	movi	r5,4
    6b20:	00069b00 	call	69b0 <__sfmoreglue>
    6b24:	80800015 	stw	r2,0(r16)
    6b28:	103fe21e 	bne	r2,zero,6ab4 <__sfp+0x68>
    6b2c:	00800304 	movi	r2,12
    6b30:	0009883a 	mov	r4,zero
    6b34:	88800015 	stw	r2,0(r17)
    6b38:	003fee06 	br	6af4 <__sfp+0xa8>

00006b3c <_malloc_trim_r>:
    6b3c:	defffb04 	addi	sp,sp,-20
    6b40:	dcc00315 	stw	r19,12(sp)
    6b44:	04c00074 	movhi	r19,1
    6b48:	9cc2b004 	addi	r19,r19,2752
    6b4c:	dc800215 	stw	r18,8(sp)
    6b50:	dc400115 	stw	r17,4(sp)
    6b54:	dc000015 	stw	r16,0(sp)
    6b58:	2823883a 	mov	r17,r5
    6b5c:	2025883a 	mov	r18,r4
    6b60:	dfc00415 	stw	ra,16(sp)
    6b64:	000cb800 	call	cb80 <__malloc_lock>
    6b68:	98800217 	ldw	r2,8(r19)
    6b6c:	9009883a 	mov	r4,r18
    6b70:	000b883a 	mov	r5,zero
    6b74:	10c00117 	ldw	r3,4(r2)
    6b78:	00bfff04 	movi	r2,-4
    6b7c:	18a0703a 	and	r16,r3,r2
    6b80:	8463c83a 	sub	r17,r16,r17
    6b84:	8c43fbc4 	addi	r17,r17,4079
    6b88:	8822d33a 	srli	r17,r17,12
    6b8c:	0083ffc4 	movi	r2,4095
    6b90:	8c7fffc4 	addi	r17,r17,-1
    6b94:	8822933a 	slli	r17,r17,12
    6b98:	1440060e 	bge	r2,r17,6bb4 <_malloc_trim_r+0x78>
    6b9c:	000991c0 	call	991c <_sbrk_r>
    6ba0:	98c00217 	ldw	r3,8(r19)
    6ba4:	9009883a 	mov	r4,r18
    6ba8:	044bc83a 	sub	r5,zero,r17
    6bac:	80c7883a 	add	r3,r16,r3
    6bb0:	10c00926 	beq	r2,r3,6bd8 <_malloc_trim_r+0x9c>
    6bb4:	000cba00 	call	cba0 <__malloc_unlock>
    6bb8:	0005883a 	mov	r2,zero
    6bbc:	dfc00417 	ldw	ra,16(sp)
    6bc0:	dcc00317 	ldw	r19,12(sp)
    6bc4:	dc800217 	ldw	r18,8(sp)
    6bc8:	dc400117 	ldw	r17,4(sp)
    6bcc:	dc000017 	ldw	r16,0(sp)
    6bd0:	dec00504 	addi	sp,sp,20
    6bd4:	f800283a 	ret
    6bd8:	9009883a 	mov	r4,r18
    6bdc:	000991c0 	call	991c <_sbrk_r>
    6be0:	844dc83a 	sub	r6,r16,r17
    6be4:	00ffffc4 	movi	r3,-1
    6be8:	9009883a 	mov	r4,r18
    6bec:	000b883a 	mov	r5,zero
    6bf0:	01c00074 	movhi	r7,1
    6bf4:	39d0c304 	addi	r7,r7,17164
    6bf8:	31800054 	ori	r6,r6,1
    6bfc:	10c00926 	beq	r2,r3,6c24 <_malloc_trim_r+0xe8>
    6c00:	38800017 	ldw	r2,0(r7)
    6c04:	98c00217 	ldw	r3,8(r19)
    6c08:	9009883a 	mov	r4,r18
    6c0c:	1445c83a 	sub	r2,r2,r17
    6c10:	38800015 	stw	r2,0(r7)
    6c14:	19800115 	stw	r6,4(r3)
    6c18:	000cba00 	call	cba0 <__malloc_unlock>
    6c1c:	00800044 	movi	r2,1
    6c20:	003fe606 	br	6bbc <_malloc_trim_r+0x80>
    6c24:	000991c0 	call	991c <_sbrk_r>
    6c28:	99800217 	ldw	r6,8(r19)
    6c2c:	100f883a 	mov	r7,r2
    6c30:	9009883a 	mov	r4,r18
    6c34:	1187c83a 	sub	r3,r2,r6
    6c38:	008003c4 	movi	r2,15
    6c3c:	19400054 	ori	r5,r3,1
    6c40:	10ffdc0e 	bge	r2,r3,6bb4 <_malloc_trim_r+0x78>
    6c44:	00800074 	movhi	r2,1
    6c48:	10888304 	addi	r2,r2,8716
    6c4c:	10c00017 	ldw	r3,0(r2)
    6c50:	00800074 	movhi	r2,1
    6c54:	1090c304 	addi	r2,r2,17164
    6c58:	31400115 	stw	r5,4(r6)
    6c5c:	38c7c83a 	sub	r3,r7,r3
    6c60:	10c00015 	stw	r3,0(r2)
    6c64:	003fd306 	br	6bb4 <_malloc_trim_r+0x78>

00006c68 <_free_r>:
    6c68:	defffd04 	addi	sp,sp,-12
    6c6c:	dc400115 	stw	r17,4(sp)
    6c70:	dc000015 	stw	r16,0(sp)
    6c74:	dfc00215 	stw	ra,8(sp)
    6c78:	2821883a 	mov	r16,r5
    6c7c:	2023883a 	mov	r17,r4
    6c80:	28005a26 	beq	r5,zero,6dec <_free_r+0x184>
    6c84:	000cb800 	call	cb80 <__malloc_lock>
    6c88:	823ffe04 	addi	r8,r16,-8
    6c8c:	41400117 	ldw	r5,4(r8)
    6c90:	00bfff84 	movi	r2,-2
    6c94:	02800074 	movhi	r10,1
    6c98:	5282b004 	addi	r10,r10,2752
    6c9c:	288e703a 	and	r7,r5,r2
    6ca0:	41cd883a 	add	r6,r8,r7
    6ca4:	30c00117 	ldw	r3,4(r6)
    6ca8:	51000217 	ldw	r4,8(r10)
    6cac:	00bfff04 	movi	r2,-4
    6cb0:	1892703a 	and	r9,r3,r2
    6cb4:	5017883a 	mov	r11,r10
    6cb8:	31006726 	beq	r6,r4,6e58 <_free_r+0x1f0>
    6cbc:	2880004c 	andi	r2,r5,1
    6cc0:	1005003a 	cmpeq	r2,r2,zero
    6cc4:	32400115 	stw	r9,4(r6)
    6cc8:	10001a1e 	bne	r2,zero,6d34 <_free_r+0xcc>
    6ccc:	000b883a 	mov	r5,zero
    6cd0:	3247883a 	add	r3,r6,r9
    6cd4:	18800117 	ldw	r2,4(r3)
    6cd8:	1080004c 	andi	r2,r2,1
    6cdc:	1000231e 	bne	r2,zero,6d6c <_free_r+0x104>
    6ce0:	280ac03a 	cmpne	r5,r5,zero
    6ce4:	3a4f883a 	add	r7,r7,r9
    6ce8:	2800451e 	bne	r5,zero,6e00 <_free_r+0x198>
    6cec:	31000217 	ldw	r4,8(r6)
    6cf0:	00800074 	movhi	r2,1
    6cf4:	1082b204 	addi	r2,r2,2760
    6cf8:	20807b26 	beq	r4,r2,6ee8 <_free_r+0x280>
    6cfc:	30800317 	ldw	r2,12(r6)
    6d00:	3a07883a 	add	r3,r7,r8
    6d04:	19c00015 	stw	r7,0(r3)
    6d08:	11000215 	stw	r4,8(r2)
    6d0c:	20800315 	stw	r2,12(r4)
    6d10:	38800054 	ori	r2,r7,1
    6d14:	40800115 	stw	r2,4(r8)
    6d18:	28001a26 	beq	r5,zero,6d84 <_free_r+0x11c>
    6d1c:	8809883a 	mov	r4,r17
    6d20:	dfc00217 	ldw	ra,8(sp)
    6d24:	dc400117 	ldw	r17,4(sp)
    6d28:	dc000017 	ldw	r16,0(sp)
    6d2c:	dec00304 	addi	sp,sp,12
    6d30:	000cba01 	jmpi	cba0 <__malloc_unlock>
    6d34:	80bffe17 	ldw	r2,-8(r16)
    6d38:	50c00204 	addi	r3,r10,8
    6d3c:	4091c83a 	sub	r8,r8,r2
    6d40:	41000217 	ldw	r4,8(r8)
    6d44:	388f883a 	add	r7,r7,r2
    6d48:	20c06126 	beq	r4,r3,6ed0 <_free_r+0x268>
    6d4c:	40800317 	ldw	r2,12(r8)
    6d50:	3247883a 	add	r3,r6,r9
    6d54:	000b883a 	mov	r5,zero
    6d58:	11000215 	stw	r4,8(r2)
    6d5c:	20800315 	stw	r2,12(r4)
    6d60:	18800117 	ldw	r2,4(r3)
    6d64:	1080004c 	andi	r2,r2,1
    6d68:	103fdd26 	beq	r2,zero,6ce0 <_free_r+0x78>
    6d6c:	38800054 	ori	r2,r7,1
    6d70:	3a07883a 	add	r3,r7,r8
    6d74:	280ac03a 	cmpne	r5,r5,zero
    6d78:	40800115 	stw	r2,4(r8)
    6d7c:	19c00015 	stw	r7,0(r3)
    6d80:	283fe61e 	bne	r5,zero,6d1c <_free_r+0xb4>
    6d84:	00807fc4 	movi	r2,511
    6d88:	11c01f2e 	bgeu	r2,r7,6e08 <_free_r+0x1a0>
    6d8c:	3806d27a 	srli	r3,r7,9
    6d90:	1800481e 	bne	r3,zero,6eb4 <_free_r+0x24c>
    6d94:	3804d0fa 	srli	r2,r7,3
    6d98:	100690fa 	slli	r3,r2,3
    6d9c:	1acd883a 	add	r6,r3,r11
    6da0:	31400217 	ldw	r5,8(r6)
    6da4:	31405926 	beq	r6,r5,6f0c <_free_r+0x2a4>
    6da8:	28800117 	ldw	r2,4(r5)
    6dac:	00ffff04 	movi	r3,-4
    6db0:	10c4703a 	and	r2,r2,r3
    6db4:	3880022e 	bgeu	r7,r2,6dc0 <_free_r+0x158>
    6db8:	29400217 	ldw	r5,8(r5)
    6dbc:	317ffa1e 	bne	r6,r5,6da8 <_free_r+0x140>
    6dc0:	29800317 	ldw	r6,12(r5)
    6dc4:	41800315 	stw	r6,12(r8)
    6dc8:	41400215 	stw	r5,8(r8)
    6dcc:	8809883a 	mov	r4,r17
    6dd0:	2a000315 	stw	r8,12(r5)
    6dd4:	32000215 	stw	r8,8(r6)
    6dd8:	dfc00217 	ldw	ra,8(sp)
    6ddc:	dc400117 	ldw	r17,4(sp)
    6de0:	dc000017 	ldw	r16,0(sp)
    6de4:	dec00304 	addi	sp,sp,12
    6de8:	000cba01 	jmpi	cba0 <__malloc_unlock>
    6dec:	dfc00217 	ldw	ra,8(sp)
    6df0:	dc400117 	ldw	r17,4(sp)
    6df4:	dc000017 	ldw	r16,0(sp)
    6df8:	dec00304 	addi	sp,sp,12
    6dfc:	f800283a 	ret
    6e00:	31000217 	ldw	r4,8(r6)
    6e04:	003fbd06 	br	6cfc <_free_r+0x94>
    6e08:	3806d0fa 	srli	r3,r7,3
    6e0c:	00800044 	movi	r2,1
    6e10:	51400117 	ldw	r5,4(r10)
    6e14:	180890fa 	slli	r4,r3,3
    6e18:	1807d0ba 	srai	r3,r3,2
    6e1c:	22c9883a 	add	r4,r4,r11
    6e20:	21800217 	ldw	r6,8(r4)
    6e24:	10c4983a 	sll	r2,r2,r3
    6e28:	41000315 	stw	r4,12(r8)
    6e2c:	41800215 	stw	r6,8(r8)
    6e30:	288ab03a 	or	r5,r5,r2
    6e34:	22000215 	stw	r8,8(r4)
    6e38:	8809883a 	mov	r4,r17
    6e3c:	51400115 	stw	r5,4(r10)
    6e40:	32000315 	stw	r8,12(r6)
    6e44:	dfc00217 	ldw	ra,8(sp)
    6e48:	dc400117 	ldw	r17,4(sp)
    6e4c:	dc000017 	ldw	r16,0(sp)
    6e50:	dec00304 	addi	sp,sp,12
    6e54:	000cba01 	jmpi	cba0 <__malloc_unlock>
    6e58:	2880004c 	andi	r2,r5,1
    6e5c:	3a4d883a 	add	r6,r7,r9
    6e60:	1000071e 	bne	r2,zero,6e80 <_free_r+0x218>
    6e64:	80bffe17 	ldw	r2,-8(r16)
    6e68:	4091c83a 	sub	r8,r8,r2
    6e6c:	41000317 	ldw	r4,12(r8)
    6e70:	40c00217 	ldw	r3,8(r8)
    6e74:	308d883a 	add	r6,r6,r2
    6e78:	20c00215 	stw	r3,8(r4)
    6e7c:	19000315 	stw	r4,12(r3)
    6e80:	00800074 	movhi	r2,1
    6e84:	10888204 	addi	r2,r2,8712
    6e88:	11000017 	ldw	r4,0(r2)
    6e8c:	30c00054 	ori	r3,r6,1
    6e90:	52000215 	stw	r8,8(r10)
    6e94:	40c00115 	stw	r3,4(r8)
    6e98:	313fa036 	bltu	r6,r4,6d1c <_free_r+0xb4>
    6e9c:	00800074 	movhi	r2,1
    6ea0:	108f7904 	addi	r2,r2,15844
    6ea4:	11400017 	ldw	r5,0(r2)
    6ea8:	8809883a 	mov	r4,r17
    6eac:	0006b3c0 	call	6b3c <_malloc_trim_r>
    6eb0:	003f9a06 	br	6d1c <_free_r+0xb4>
    6eb4:	00800104 	movi	r2,4
    6eb8:	10c0072e 	bgeu	r2,r3,6ed8 <_free_r+0x270>
    6ebc:	00800504 	movi	r2,20
    6ec0:	10c01936 	bltu	r2,r3,6f28 <_free_r+0x2c0>
    6ec4:	188016c4 	addi	r2,r3,91
    6ec8:	100690fa 	slli	r3,r2,3
    6ecc:	003fb306 	br	6d9c <_free_r+0x134>
    6ed0:	01400044 	movi	r5,1
    6ed4:	003f7e06 	br	6cd0 <_free_r+0x68>
    6ed8:	3804d1ba 	srli	r2,r7,6
    6edc:	10800e04 	addi	r2,r2,56
    6ee0:	100690fa 	slli	r3,r2,3
    6ee4:	003fad06 	br	6d9c <_free_r+0x134>
    6ee8:	22000315 	stw	r8,12(r4)
    6eec:	22000215 	stw	r8,8(r4)
    6ef0:	3a05883a 	add	r2,r7,r8
    6ef4:	38c00054 	ori	r3,r7,1
    6ef8:	11c00015 	stw	r7,0(r2)
    6efc:	41000215 	stw	r4,8(r8)
    6f00:	40c00115 	stw	r3,4(r8)
    6f04:	41000315 	stw	r4,12(r8)
    6f08:	003f8406 	br	6d1c <_free_r+0xb4>
    6f0c:	1005d0ba 	srai	r2,r2,2
    6f10:	00c00044 	movi	r3,1
    6f14:	51000117 	ldw	r4,4(r10)
    6f18:	1886983a 	sll	r3,r3,r2
    6f1c:	20c8b03a 	or	r4,r4,r3
    6f20:	51000115 	stw	r4,4(r10)
    6f24:	003fa706 	br	6dc4 <_free_r+0x15c>
    6f28:	00801504 	movi	r2,84
    6f2c:	10c00436 	bltu	r2,r3,6f40 <_free_r+0x2d8>
    6f30:	3804d33a 	srli	r2,r7,12
    6f34:	10801b84 	addi	r2,r2,110
    6f38:	100690fa 	slli	r3,r2,3
    6f3c:	003f9706 	br	6d9c <_free_r+0x134>
    6f40:	00805504 	movi	r2,340
    6f44:	10c00436 	bltu	r2,r3,6f58 <_free_r+0x2f0>
    6f48:	3804d3fa 	srli	r2,r7,15
    6f4c:	10801dc4 	addi	r2,r2,119
    6f50:	100690fa 	slli	r3,r2,3
    6f54:	003f9106 	br	6d9c <_free_r+0x134>
    6f58:	00815504 	movi	r2,1364
    6f5c:	10c0032e 	bgeu	r2,r3,6f6c <_free_r+0x304>
    6f60:	00801f84 	movi	r2,126
    6f64:	00c0fc04 	movi	r3,1008
    6f68:	003f8c06 	br	6d9c <_free_r+0x134>
    6f6c:	3804d4ba 	srli	r2,r7,18
    6f70:	10801f04 	addi	r2,r2,124
    6f74:	100690fa 	slli	r3,r2,3
    6f78:	003f8806 	br	6d9c <_free_r+0x134>

00006f7c <__sfvwrite_r>:
    6f7c:	30800217 	ldw	r2,8(r6)
    6f80:	defff504 	addi	sp,sp,-44
    6f84:	df000915 	stw	fp,36(sp)
    6f88:	dd800715 	stw	r22,28(sp)
    6f8c:	dc800315 	stw	r18,12(sp)
    6f90:	dfc00a15 	stw	ra,40(sp)
    6f94:	ddc00815 	stw	r23,32(sp)
    6f98:	dd400615 	stw	r21,24(sp)
    6f9c:	dd000515 	stw	r20,20(sp)
    6fa0:	dcc00415 	stw	r19,16(sp)
    6fa4:	dc400215 	stw	r17,8(sp)
    6fa8:	dc000115 	stw	r16,4(sp)
    6fac:	302d883a 	mov	r22,r6
    6fb0:	2039883a 	mov	fp,r4
    6fb4:	2825883a 	mov	r18,r5
    6fb8:	10001c26 	beq	r2,zero,702c <__sfvwrite_r+0xb0>
    6fbc:	29c0030b 	ldhu	r7,12(r5)
    6fc0:	3880020c 	andi	r2,r7,8
    6fc4:	10002726 	beq	r2,zero,7064 <__sfvwrite_r+0xe8>
    6fc8:	28800417 	ldw	r2,16(r5)
    6fcc:	10002526 	beq	r2,zero,7064 <__sfvwrite_r+0xe8>
    6fd0:	3880008c 	andi	r2,r7,2
    6fd4:	b5400017 	ldw	r21,0(r22)
    6fd8:	10002826 	beq	r2,zero,707c <__sfvwrite_r+0x100>
    6fdc:	0021883a 	mov	r16,zero
    6fe0:	0023883a 	mov	r17,zero
    6fe4:	880d883a 	mov	r6,r17
    6fe8:	e009883a 	mov	r4,fp
    6fec:	00810004 	movi	r2,1024
    6ff0:	80006e26 	beq	r16,zero,71ac <__sfvwrite_r+0x230>
    6ff4:	800f883a 	mov	r7,r16
    6ff8:	91400717 	ldw	r5,28(r18)
    6ffc:	1400012e 	bgeu	r2,r16,7004 <__sfvwrite_r+0x88>
    7000:	100f883a 	mov	r7,r2
    7004:	90c00917 	ldw	r3,36(r18)
    7008:	183ee83a 	callr	r3
    700c:	1007883a 	mov	r3,r2
    7010:	80a1c83a 	sub	r16,r16,r2
    7014:	88a3883a 	add	r17,r17,r2
    7018:	00806d0e 	bge	zero,r2,71d0 <__sfvwrite_r+0x254>
    701c:	b0800217 	ldw	r2,8(r22)
    7020:	10c5c83a 	sub	r2,r2,r3
    7024:	b0800215 	stw	r2,8(r22)
    7028:	103fee1e 	bne	r2,zero,6fe4 <__sfvwrite_r+0x68>
    702c:	0009883a 	mov	r4,zero
    7030:	2005883a 	mov	r2,r4
    7034:	dfc00a17 	ldw	ra,40(sp)
    7038:	df000917 	ldw	fp,36(sp)
    703c:	ddc00817 	ldw	r23,32(sp)
    7040:	dd800717 	ldw	r22,28(sp)
    7044:	dd400617 	ldw	r21,24(sp)
    7048:	dd000517 	ldw	r20,20(sp)
    704c:	dcc00417 	ldw	r19,16(sp)
    7050:	dc800317 	ldw	r18,12(sp)
    7054:	dc400217 	ldw	r17,8(sp)
    7058:	dc000117 	ldw	r16,4(sp)
    705c:	dec00b04 	addi	sp,sp,44
    7060:	f800283a 	ret
    7064:	0004ce40 	call	4ce4 <__swsetup_r>
    7068:	1000e41e 	bne	r2,zero,73fc <__sfvwrite_r+0x480>
    706c:	91c0030b 	ldhu	r7,12(r18)
    7070:	b5400017 	ldw	r21,0(r22)
    7074:	3880008c 	andi	r2,r7,2
    7078:	103fd81e 	bne	r2,zero,6fdc <__sfvwrite_r+0x60>
    707c:	3880004c 	andi	r2,r7,1
    7080:	1005003a 	cmpeq	r2,r2,zero
    7084:	10005726 	beq	r2,zero,71e4 <__sfvwrite_r+0x268>
    7088:	0029883a 	mov	r20,zero
    708c:	002f883a 	mov	r23,zero
    7090:	a0004226 	beq	r20,zero,719c <__sfvwrite_r+0x220>
    7094:	3880800c 	andi	r2,r7,512
    7098:	94000217 	ldw	r16,8(r18)
    709c:	10008b26 	beq	r2,zero,72cc <__sfvwrite_r+0x350>
    70a0:	800d883a 	mov	r6,r16
    70a4:	a400a536 	bltu	r20,r16,733c <__sfvwrite_r+0x3c0>
    70a8:	3881200c 	andi	r2,r7,1152
    70ac:	10002726 	beq	r2,zero,714c <__sfvwrite_r+0x1d0>
    70b0:	90800517 	ldw	r2,20(r18)
    70b4:	92000417 	ldw	r8,16(r18)
    70b8:	91400017 	ldw	r5,0(r18)
    70bc:	1087883a 	add	r3,r2,r2
    70c0:	1887883a 	add	r3,r3,r2
    70c4:	1808d7fa 	srli	r4,r3,31
    70c8:	2a21c83a 	sub	r16,r5,r8
    70cc:	80800044 	addi	r2,r16,1
    70d0:	20c9883a 	add	r4,r4,r3
    70d4:	2027d07a 	srai	r19,r4,1
    70d8:	a085883a 	add	r2,r20,r2
    70dc:	980d883a 	mov	r6,r19
    70e0:	9880022e 	bgeu	r19,r2,70ec <__sfvwrite_r+0x170>
    70e4:	1027883a 	mov	r19,r2
    70e8:	100d883a 	mov	r6,r2
    70ec:	3881000c 	andi	r2,r7,1024
    70f0:	1000b826 	beq	r2,zero,73d4 <__sfvwrite_r+0x458>
    70f4:	300b883a 	mov	r5,r6
    70f8:	e009883a 	mov	r4,fp
    70fc:	00077f00 	call	77f0 <_malloc_r>
    7100:	10003126 	beq	r2,zero,71c8 <__sfvwrite_r+0x24c>
    7104:	91400417 	ldw	r5,16(r18)
    7108:	1009883a 	mov	r4,r2
    710c:	800d883a 	mov	r6,r16
    7110:	1023883a 	mov	r17,r2
    7114:	00080140 	call	8014 <memcpy>
    7118:	90c0030b 	ldhu	r3,12(r18)
    711c:	00beffc4 	movi	r2,-1025
    7120:	1886703a 	and	r3,r3,r2
    7124:	18c02014 	ori	r3,r3,128
    7128:	90c0030d 	sth	r3,12(r18)
    712c:	9c07c83a 	sub	r3,r19,r16
    7130:	8c05883a 	add	r2,r17,r16
    7134:	a00d883a 	mov	r6,r20
    7138:	a021883a 	mov	r16,r20
    713c:	90800015 	stw	r2,0(r18)
    7140:	90c00215 	stw	r3,8(r18)
    7144:	94400415 	stw	r17,16(r18)
    7148:	94c00515 	stw	r19,20(r18)
    714c:	91000017 	ldw	r4,0(r18)
    7150:	b80b883a 	mov	r5,r23
    7154:	a023883a 	mov	r17,r20
    7158:	00080b40 	call	80b4 <memmove>
    715c:	90c00217 	ldw	r3,8(r18)
    7160:	90800017 	ldw	r2,0(r18)
    7164:	a027883a 	mov	r19,r20
    7168:	1c07c83a 	sub	r3,r3,r16
    716c:	1405883a 	add	r2,r2,r16
    7170:	90c00215 	stw	r3,8(r18)
    7174:	a021883a 	mov	r16,r20
    7178:	90800015 	stw	r2,0(r18)
    717c:	b0800217 	ldw	r2,8(r22)
    7180:	1405c83a 	sub	r2,r2,r16
    7184:	b0800215 	stw	r2,8(r22)
    7188:	103fa826 	beq	r2,zero,702c <__sfvwrite_r+0xb0>
    718c:	a469c83a 	sub	r20,r20,r17
    7190:	91c0030b 	ldhu	r7,12(r18)
    7194:	bcef883a 	add	r23,r23,r19
    7198:	a03fbe1e 	bne	r20,zero,7094 <__sfvwrite_r+0x118>
    719c:	adc00017 	ldw	r23,0(r21)
    71a0:	ad000117 	ldw	r20,4(r21)
    71a4:	ad400204 	addi	r21,r21,8
    71a8:	003fb906 	br	7090 <__sfvwrite_r+0x114>
    71ac:	ac400017 	ldw	r17,0(r21)
    71b0:	ac000117 	ldw	r16,4(r21)
    71b4:	ad400204 	addi	r21,r21,8
    71b8:	003f8a06 	br	6fe4 <__sfvwrite_r+0x68>
    71bc:	91400417 	ldw	r5,16(r18)
    71c0:	e009883a 	mov	r4,fp
    71c4:	0006c680 	call	6c68 <_free_r>
    71c8:	00800304 	movi	r2,12
    71cc:	e0800015 	stw	r2,0(fp)
    71d0:	9080030b 	ldhu	r2,12(r18)
    71d4:	013fffc4 	movi	r4,-1
    71d8:	10801014 	ori	r2,r2,64
    71dc:	9080030d 	sth	r2,12(r18)
    71e0:	003f9306 	br	7030 <__sfvwrite_r+0xb4>
    71e4:	0027883a 	mov	r19,zero
    71e8:	002f883a 	mov	r23,zero
    71ec:	d8000015 	stw	zero,0(sp)
    71f0:	0029883a 	mov	r20,zero
    71f4:	98001e26 	beq	r19,zero,7270 <__sfvwrite_r+0x2f4>
    71f8:	d8c00017 	ldw	r3,0(sp)
    71fc:	1804c03a 	cmpne	r2,r3,zero
    7200:	10005e26 	beq	r2,zero,737c <__sfvwrite_r+0x400>
    7204:	9821883a 	mov	r16,r19
    7208:	a4c0012e 	bgeu	r20,r19,7210 <__sfvwrite_r+0x294>
    720c:	a021883a 	mov	r16,r20
    7210:	91000017 	ldw	r4,0(r18)
    7214:	90800417 	ldw	r2,16(r18)
    7218:	91800217 	ldw	r6,8(r18)
    721c:	91c00517 	ldw	r7,20(r18)
    7220:	1100022e 	bgeu	r2,r4,722c <__sfvwrite_r+0x2b0>
    7224:	31e3883a 	add	r17,r6,r7
    7228:	8c001616 	blt	r17,r16,7284 <__sfvwrite_r+0x308>
    722c:	81c03816 	blt	r16,r7,7310 <__sfvwrite_r+0x394>
    7230:	90c00917 	ldw	r3,36(r18)
    7234:	91400717 	ldw	r5,28(r18)
    7238:	e009883a 	mov	r4,fp
    723c:	b80d883a 	mov	r6,r23
    7240:	183ee83a 	callr	r3
    7244:	1023883a 	mov	r17,r2
    7248:	00bfe10e 	bge	zero,r2,71d0 <__sfvwrite_r+0x254>
    724c:	a469c83a 	sub	r20,r20,r17
    7250:	a0001826 	beq	r20,zero,72b4 <__sfvwrite_r+0x338>
    7254:	b0800217 	ldw	r2,8(r22)
    7258:	1445c83a 	sub	r2,r2,r17
    725c:	b0800215 	stw	r2,8(r22)
    7260:	103f7226 	beq	r2,zero,702c <__sfvwrite_r+0xb0>
    7264:	9c67c83a 	sub	r19,r19,r17
    7268:	bc6f883a 	add	r23,r23,r17
    726c:	983fe21e 	bne	r19,zero,71f8 <__sfvwrite_r+0x27c>
    7270:	adc00017 	ldw	r23,0(r21)
    7274:	acc00117 	ldw	r19,4(r21)
    7278:	ad400204 	addi	r21,r21,8
    727c:	d8000015 	stw	zero,0(sp)
    7280:	003fdc06 	br	71f4 <__sfvwrite_r+0x278>
    7284:	b80b883a 	mov	r5,r23
    7288:	880d883a 	mov	r6,r17
    728c:	00080b40 	call	80b4 <memmove>
    7290:	90c00017 	ldw	r3,0(r18)
    7294:	e009883a 	mov	r4,fp
    7298:	900b883a 	mov	r5,r18
    729c:	1c47883a 	add	r3,r3,r17
    72a0:	90c00015 	stw	r3,0(r18)
    72a4:	00066180 	call	6618 <_fflush_r>
    72a8:	103fc91e 	bne	r2,zero,71d0 <__sfvwrite_r+0x254>
    72ac:	a469c83a 	sub	r20,r20,r17
    72b0:	a03fe81e 	bne	r20,zero,7254 <__sfvwrite_r+0x2d8>
    72b4:	e009883a 	mov	r4,fp
    72b8:	900b883a 	mov	r5,r18
    72bc:	00066180 	call	6618 <_fflush_r>
    72c0:	103fc31e 	bne	r2,zero,71d0 <__sfvwrite_r+0x254>
    72c4:	d8000015 	stw	zero,0(sp)
    72c8:	003fe206 	br	7254 <__sfvwrite_r+0x2d8>
    72cc:	91000017 	ldw	r4,0(r18)
    72d0:	90800417 	ldw	r2,16(r18)
    72d4:	1100022e 	bgeu	r2,r4,72e0 <__sfvwrite_r+0x364>
    72d8:	8023883a 	mov	r17,r16
    72dc:	85003136 	bltu	r16,r20,73a4 <__sfvwrite_r+0x428>
    72e0:	91c00517 	ldw	r7,20(r18)
    72e4:	a1c01836 	bltu	r20,r7,7348 <__sfvwrite_r+0x3cc>
    72e8:	90c00917 	ldw	r3,36(r18)
    72ec:	91400717 	ldw	r5,28(r18)
    72f0:	e009883a 	mov	r4,fp
    72f4:	b80d883a 	mov	r6,r23
    72f8:	183ee83a 	callr	r3
    72fc:	1021883a 	mov	r16,r2
    7300:	00bfb30e 	bge	zero,r2,71d0 <__sfvwrite_r+0x254>
    7304:	1023883a 	mov	r17,r2
    7308:	1027883a 	mov	r19,r2
    730c:	003f9b06 	br	717c <__sfvwrite_r+0x200>
    7310:	b80b883a 	mov	r5,r23
    7314:	800d883a 	mov	r6,r16
    7318:	00080b40 	call	80b4 <memmove>
    731c:	90c00217 	ldw	r3,8(r18)
    7320:	90800017 	ldw	r2,0(r18)
    7324:	8023883a 	mov	r17,r16
    7328:	1c07c83a 	sub	r3,r3,r16
    732c:	1405883a 	add	r2,r2,r16
    7330:	90c00215 	stw	r3,8(r18)
    7334:	90800015 	stw	r2,0(r18)
    7338:	003fc406 	br	724c <__sfvwrite_r+0x2d0>
    733c:	a00d883a 	mov	r6,r20
    7340:	a021883a 	mov	r16,r20
    7344:	003f8106 	br	714c <__sfvwrite_r+0x1d0>
    7348:	b80b883a 	mov	r5,r23
    734c:	a00d883a 	mov	r6,r20
    7350:	00080b40 	call	80b4 <memmove>
    7354:	90c00217 	ldw	r3,8(r18)
    7358:	90800017 	ldw	r2,0(r18)
    735c:	a021883a 	mov	r16,r20
    7360:	1d07c83a 	sub	r3,r3,r20
    7364:	1505883a 	add	r2,r2,r20
    7368:	a023883a 	mov	r17,r20
    736c:	a027883a 	mov	r19,r20
    7370:	90c00215 	stw	r3,8(r18)
    7374:	90800015 	stw	r2,0(r18)
    7378:	003f8006 	br	717c <__sfvwrite_r+0x200>
    737c:	b809883a 	mov	r4,r23
    7380:	01400284 	movi	r5,10
    7384:	980d883a 	mov	r6,r19
    7388:	0007f300 	call	7f30 <memchr>
    738c:	10001726 	beq	r2,zero,73ec <__sfvwrite_r+0x470>
    7390:	15c5c83a 	sub	r2,r2,r23
    7394:	15000044 	addi	r20,r2,1
    7398:	00800044 	movi	r2,1
    739c:	d8800015 	stw	r2,0(sp)
    73a0:	003f9806 	br	7204 <__sfvwrite_r+0x288>
    73a4:	b80b883a 	mov	r5,r23
    73a8:	800d883a 	mov	r6,r16
    73ac:	00080b40 	call	80b4 <memmove>
    73b0:	90c00017 	ldw	r3,0(r18)
    73b4:	e009883a 	mov	r4,fp
    73b8:	900b883a 	mov	r5,r18
    73bc:	1c07883a 	add	r3,r3,r16
    73c0:	90c00015 	stw	r3,0(r18)
    73c4:	8027883a 	mov	r19,r16
    73c8:	00066180 	call	6618 <_fflush_r>
    73cc:	103f6b26 	beq	r2,zero,717c <__sfvwrite_r+0x200>
    73d0:	003f7f06 	br	71d0 <__sfvwrite_r+0x254>
    73d4:	400b883a 	mov	r5,r8
    73d8:	e009883a 	mov	r4,fp
    73dc:	00092b80 	call	92b8 <_realloc_r>
    73e0:	103f7626 	beq	r2,zero,71bc <__sfvwrite_r+0x240>
    73e4:	1023883a 	mov	r17,r2
    73e8:	003f5006 	br	712c <__sfvwrite_r+0x1b0>
    73ec:	00c00044 	movi	r3,1
    73f0:	9d000044 	addi	r20,r19,1
    73f4:	d8c00015 	stw	r3,0(sp)
    73f8:	003f8206 	br	7204 <__sfvwrite_r+0x288>
    73fc:	9080030b 	ldhu	r2,12(r18)
    7400:	00c00244 	movi	r3,9
    7404:	013fffc4 	movi	r4,-1
    7408:	10801014 	ori	r2,r2,64
    740c:	9080030d 	sth	r2,12(r18)
    7410:	e0c00015 	stw	r3,0(fp)
    7414:	003f0606 	br	7030 <__sfvwrite_r+0xb4>

00007418 <_fwalk_reent>:
    7418:	defff704 	addi	sp,sp,-36
    741c:	dcc00315 	stw	r19,12(sp)
    7420:	24c0b804 	addi	r19,r4,736
    7424:	dd800615 	stw	r22,24(sp)
    7428:	dd400515 	stw	r21,20(sp)
    742c:	dfc00815 	stw	ra,32(sp)
    7430:	ddc00715 	stw	r23,28(sp)
    7434:	dd000415 	stw	r20,16(sp)
    7438:	dc800215 	stw	r18,8(sp)
    743c:	dc400115 	stw	r17,4(sp)
    7440:	dc000015 	stw	r16,0(sp)
    7444:	202b883a 	mov	r21,r4
    7448:	282d883a 	mov	r22,r5
    744c:	00068a00 	call	68a0 <__sfp_lock_acquire>
    7450:	98002126 	beq	r19,zero,74d8 <_fwalk_reent+0xc0>
    7454:	002f883a 	mov	r23,zero
    7458:	9c800117 	ldw	r18,4(r19)
    745c:	9c000217 	ldw	r16,8(r19)
    7460:	90bfffc4 	addi	r2,r18,-1
    7464:	10000d16 	blt	r2,zero,749c <_fwalk_reent+0x84>
    7468:	0023883a 	mov	r17,zero
    746c:	053fffc4 	movi	r20,-1
    7470:	8080030f 	ldh	r2,12(r16)
    7474:	8c400044 	addi	r17,r17,1
    7478:	10000626 	beq	r2,zero,7494 <_fwalk_reent+0x7c>
    747c:	8080038f 	ldh	r2,14(r16)
    7480:	800b883a 	mov	r5,r16
    7484:	a809883a 	mov	r4,r21
    7488:	15000226 	beq	r2,r20,7494 <_fwalk_reent+0x7c>
    748c:	b03ee83a 	callr	r22
    7490:	b8aeb03a 	or	r23,r23,r2
    7494:	84001704 	addi	r16,r16,92
    7498:	947ff51e 	bne	r18,r17,7470 <_fwalk_reent+0x58>
    749c:	9cc00017 	ldw	r19,0(r19)
    74a0:	983fed1e 	bne	r19,zero,7458 <_fwalk_reent+0x40>
    74a4:	00068a40 	call	68a4 <__sfp_lock_release>
    74a8:	b805883a 	mov	r2,r23
    74ac:	dfc00817 	ldw	ra,32(sp)
    74b0:	ddc00717 	ldw	r23,28(sp)
    74b4:	dd800617 	ldw	r22,24(sp)
    74b8:	dd400517 	ldw	r21,20(sp)
    74bc:	dd000417 	ldw	r20,16(sp)
    74c0:	dcc00317 	ldw	r19,12(sp)
    74c4:	dc800217 	ldw	r18,8(sp)
    74c8:	dc400117 	ldw	r17,4(sp)
    74cc:	dc000017 	ldw	r16,0(sp)
    74d0:	dec00904 	addi	sp,sp,36
    74d4:	f800283a 	ret
    74d8:	002f883a 	mov	r23,zero
    74dc:	003ff106 	br	74a4 <_fwalk_reent+0x8c>

000074e0 <_fwalk>:
    74e0:	defff804 	addi	sp,sp,-32
    74e4:	dcc00315 	stw	r19,12(sp)
    74e8:	24c0b804 	addi	r19,r4,736
    74ec:	dd400515 	stw	r21,20(sp)
    74f0:	dfc00715 	stw	ra,28(sp)
    74f4:	dd800615 	stw	r22,24(sp)
    74f8:	dd000415 	stw	r20,16(sp)
    74fc:	dc800215 	stw	r18,8(sp)
    7500:	dc400115 	stw	r17,4(sp)
    7504:	dc000015 	stw	r16,0(sp)
    7508:	282b883a 	mov	r21,r5
    750c:	00068a00 	call	68a0 <__sfp_lock_acquire>
    7510:	98001f26 	beq	r19,zero,7590 <_fwalk+0xb0>
    7514:	002d883a 	mov	r22,zero
    7518:	9c800117 	ldw	r18,4(r19)
    751c:	9c000217 	ldw	r16,8(r19)
    7520:	90bfffc4 	addi	r2,r18,-1
    7524:	10000c16 	blt	r2,zero,7558 <_fwalk+0x78>
    7528:	0023883a 	mov	r17,zero
    752c:	053fffc4 	movi	r20,-1
    7530:	8080030f 	ldh	r2,12(r16)
    7534:	8c400044 	addi	r17,r17,1
    7538:	10000526 	beq	r2,zero,7550 <_fwalk+0x70>
    753c:	8080038f 	ldh	r2,14(r16)
    7540:	8009883a 	mov	r4,r16
    7544:	15000226 	beq	r2,r20,7550 <_fwalk+0x70>
    7548:	a83ee83a 	callr	r21
    754c:	b0acb03a 	or	r22,r22,r2
    7550:	84001704 	addi	r16,r16,92
    7554:	947ff61e 	bne	r18,r17,7530 <_fwalk+0x50>
    7558:	9cc00017 	ldw	r19,0(r19)
    755c:	983fee1e 	bne	r19,zero,7518 <_fwalk+0x38>
    7560:	00068a40 	call	68a4 <__sfp_lock_release>
    7564:	b005883a 	mov	r2,r22
    7568:	dfc00717 	ldw	ra,28(sp)
    756c:	dd800617 	ldw	r22,24(sp)
    7570:	dd400517 	ldw	r21,20(sp)
    7574:	dd000417 	ldw	r20,16(sp)
    7578:	dcc00317 	ldw	r19,12(sp)
    757c:	dc800217 	ldw	r18,8(sp)
    7580:	dc400117 	ldw	r17,4(sp)
    7584:	dc000017 	ldw	r16,0(sp)
    7588:	dec00804 	addi	sp,sp,32
    758c:	f800283a 	ret
    7590:	002d883a 	mov	r22,zero
    7594:	003ff206 	br	7560 <_fwalk+0x80>

00007598 <__locale_charset>:
    7598:	d0a00517 	ldw	r2,-32748(gp)
    759c:	f800283a 	ret

000075a0 <_localeconv_r>:
    75a0:	00800074 	movhi	r2,1
    75a4:	10810304 	addi	r2,r2,1036
    75a8:	f800283a 	ret

000075ac <localeconv>:
    75ac:	00800074 	movhi	r2,1
    75b0:	10887e04 	addi	r2,r2,8696
    75b4:	11000017 	ldw	r4,0(r2)
    75b8:	00075a01 	jmpi	75a0 <_localeconv_r>

000075bc <_setlocale_r>:
    75bc:	defffc04 	addi	sp,sp,-16
    75c0:	00c00074 	movhi	r3,1
    75c4:	18c0fe04 	addi	r3,r3,1016
    75c8:	dc800215 	stw	r18,8(sp)
    75cc:	dc400115 	stw	r17,4(sp)
    75d0:	dc000015 	stw	r16,0(sp)
    75d4:	2023883a 	mov	r17,r4
    75d8:	2825883a 	mov	r18,r5
    75dc:	dfc00315 	stw	ra,12(sp)
    75e0:	3021883a 	mov	r16,r6
    75e4:	3009883a 	mov	r4,r6
    75e8:	180b883a 	mov	r5,r3
    75ec:	30000926 	beq	r6,zero,7614 <_setlocale_r+0x58>
    75f0:	0009ad80 	call	9ad8 <strcmp>
    75f4:	8009883a 	mov	r4,r16
    75f8:	01400074 	movhi	r5,1
    75fc:	2940e904 	addi	r5,r5,932
    7600:	10000b1e 	bne	r2,zero,7630 <_setlocale_r+0x74>
    7604:	8c000d15 	stw	r16,52(r17)
    7608:	8c800c15 	stw	r18,48(r17)
    760c:	00c00074 	movhi	r3,1
    7610:	18c0fe04 	addi	r3,r3,1016
    7614:	1805883a 	mov	r2,r3
    7618:	dfc00317 	ldw	ra,12(sp)
    761c:	dc800217 	ldw	r18,8(sp)
    7620:	dc400117 	ldw	r17,4(sp)
    7624:	dc000017 	ldw	r16,0(sp)
    7628:	dec00404 	addi	sp,sp,16
    762c:	f800283a 	ret
    7630:	0009ad80 	call	9ad8 <strcmp>
    7634:	0007883a 	mov	r3,zero
    7638:	103ff226 	beq	r2,zero,7604 <_setlocale_r+0x48>
    763c:	003ff506 	br	7614 <_setlocale_r+0x58>

00007640 <setlocale>:
    7640:	01800074 	movhi	r6,1
    7644:	31887e04 	addi	r6,r6,8696
    7648:	2007883a 	mov	r3,r4
    764c:	31000017 	ldw	r4,0(r6)
    7650:	280d883a 	mov	r6,r5
    7654:	180b883a 	mov	r5,r3
    7658:	00075bc1 	jmpi	75bc <_setlocale_r>

0000765c <__smakebuf_r>:
    765c:	2880030b 	ldhu	r2,12(r5)
    7660:	deffed04 	addi	sp,sp,-76
    7664:	dc401015 	stw	r17,64(sp)
    7668:	1080008c 	andi	r2,r2,2
    766c:	dc000f15 	stw	r16,60(sp)
    7670:	dfc01215 	stw	ra,72(sp)
    7674:	dc801115 	stw	r18,68(sp)
    7678:	2821883a 	mov	r16,r5
    767c:	2023883a 	mov	r17,r4
    7680:	10000b26 	beq	r2,zero,76b0 <__smakebuf_r+0x54>
    7684:	28c010c4 	addi	r3,r5,67
    7688:	00800044 	movi	r2,1
    768c:	28800515 	stw	r2,20(r5)
    7690:	28c00415 	stw	r3,16(r5)
    7694:	28c00015 	stw	r3,0(r5)
    7698:	dfc01217 	ldw	ra,72(sp)
    769c:	dc801117 	ldw	r18,68(sp)
    76a0:	dc401017 	ldw	r17,64(sp)
    76a4:	dc000f17 	ldw	r16,60(sp)
    76a8:	dec01304 	addi	sp,sp,76
    76ac:	f800283a 	ret
    76b0:	2940038f 	ldh	r5,14(r5)
    76b4:	28002116 	blt	r5,zero,773c <__smakebuf_r+0xe0>
    76b8:	d80d883a 	mov	r6,sp
    76bc:	0009e680 	call	9e68 <_fstat_r>
    76c0:	10001e16 	blt	r2,zero,773c <__smakebuf_r+0xe0>
    76c4:	d8800117 	ldw	r2,4(sp)
    76c8:	00e00014 	movui	r3,32768
    76cc:	113c000c 	andi	r4,r2,61440
    76d0:	20c03126 	beq	r4,r3,7798 <__smakebuf_r+0x13c>
    76d4:	8080030b 	ldhu	r2,12(r16)
    76d8:	00c80004 	movi	r3,8192
    76dc:	10820014 	ori	r2,r2,2048
    76e0:	8080030d 	sth	r2,12(r16)
    76e4:	20c01e26 	beq	r4,r3,7760 <__smakebuf_r+0x104>
    76e8:	04810004 	movi	r18,1024
    76ec:	8809883a 	mov	r4,r17
    76f0:	900b883a 	mov	r5,r18
    76f4:	00077f00 	call	77f0 <_malloc_r>
    76f8:	1009883a 	mov	r4,r2
    76fc:	10003126 	beq	r2,zero,77c4 <__smakebuf_r+0x168>
    7700:	80c0030b 	ldhu	r3,12(r16)
    7704:	00800034 	movhi	r2,0
    7708:	109a6504 	addi	r2,r2,27028
    770c:	88800f15 	stw	r2,60(r17)
    7710:	18c02014 	ori	r3,r3,128
    7714:	84800515 	stw	r18,20(r16)
    7718:	80c0030d 	sth	r3,12(r16)
    771c:	81000415 	stw	r4,16(r16)
    7720:	81000015 	stw	r4,0(r16)
    7724:	dfc01217 	ldw	ra,72(sp)
    7728:	dc801117 	ldw	r18,68(sp)
    772c:	dc401017 	ldw	r17,64(sp)
    7730:	dc000f17 	ldw	r16,60(sp)
    7734:	dec01304 	addi	sp,sp,76
    7738:	f800283a 	ret
    773c:	80c0030b 	ldhu	r3,12(r16)
    7740:	1880200c 	andi	r2,r3,128
    7744:	10000426 	beq	r2,zero,7758 <__smakebuf_r+0xfc>
    7748:	04801004 	movi	r18,64
    774c:	18820014 	ori	r2,r3,2048
    7750:	8080030d 	sth	r2,12(r16)
    7754:	003fe506 	br	76ec <__smakebuf_r+0x90>
    7758:	04810004 	movi	r18,1024
    775c:	003ffb06 	br	774c <__smakebuf_r+0xf0>
    7760:	8140038f 	ldh	r5,14(r16)
    7764:	8809883a 	mov	r4,r17
    7768:	0009edc0 	call	9edc <_isatty_r>
    776c:	103fde26 	beq	r2,zero,76e8 <__smakebuf_r+0x8c>
    7770:	8080030b 	ldhu	r2,12(r16)
    7774:	80c010c4 	addi	r3,r16,67
    7778:	04810004 	movi	r18,1024
    777c:	10800054 	ori	r2,r2,1
    7780:	8080030d 	sth	r2,12(r16)
    7784:	00800044 	movi	r2,1
    7788:	80c00415 	stw	r3,16(r16)
    778c:	80800515 	stw	r2,20(r16)
    7790:	80c00015 	stw	r3,0(r16)
    7794:	003fd506 	br	76ec <__smakebuf_r+0x90>
    7798:	80c00a17 	ldw	r3,40(r16)
    779c:	00800074 	movhi	r2,1
    77a0:	10a66504 	addi	r2,r2,-26220
    77a4:	18bfcb1e 	bne	r3,r2,76d4 <__smakebuf_r+0x78>
    77a8:	8080030b 	ldhu	r2,12(r16)
    77ac:	00c10004 	movi	r3,1024
    77b0:	1825883a 	mov	r18,r3
    77b4:	10c4b03a 	or	r2,r2,r3
    77b8:	8080030d 	sth	r2,12(r16)
    77bc:	80c01315 	stw	r3,76(r16)
    77c0:	003fca06 	br	76ec <__smakebuf_r+0x90>
    77c4:	8100030b 	ldhu	r4,12(r16)
    77c8:	2080800c 	andi	r2,r4,512
    77cc:	103fb21e 	bne	r2,zero,7698 <__smakebuf_r+0x3c>
    77d0:	80c010c4 	addi	r3,r16,67
    77d4:	21000094 	ori	r4,r4,2
    77d8:	00800044 	movi	r2,1
    77dc:	80800515 	stw	r2,20(r16)
    77e0:	8100030d 	sth	r4,12(r16)
    77e4:	80c00415 	stw	r3,16(r16)
    77e8:	80c00015 	stw	r3,0(r16)
    77ec:	003faa06 	br	7698 <__smakebuf_r+0x3c>

000077f0 <_malloc_r>:
    77f0:	defff604 	addi	sp,sp,-40
    77f4:	28c002c4 	addi	r3,r5,11
    77f8:	00800584 	movi	r2,22
    77fc:	dc800215 	stw	r18,8(sp)
    7800:	dfc00915 	stw	ra,36(sp)
    7804:	df000815 	stw	fp,32(sp)
    7808:	ddc00715 	stw	r23,28(sp)
    780c:	dd800615 	stw	r22,24(sp)
    7810:	dd400515 	stw	r21,20(sp)
    7814:	dd000415 	stw	r20,16(sp)
    7818:	dcc00315 	stw	r19,12(sp)
    781c:	dc400115 	stw	r17,4(sp)
    7820:	dc000015 	stw	r16,0(sp)
    7824:	2025883a 	mov	r18,r4
    7828:	10c01236 	bltu	r2,r3,7874 <_malloc_r+0x84>
    782c:	04400404 	movi	r17,16
    7830:	8940142e 	bgeu	r17,r5,7884 <_malloc_r+0x94>
    7834:	00800304 	movi	r2,12
    7838:	0007883a 	mov	r3,zero
    783c:	90800015 	stw	r2,0(r18)
    7840:	1805883a 	mov	r2,r3
    7844:	dfc00917 	ldw	ra,36(sp)
    7848:	df000817 	ldw	fp,32(sp)
    784c:	ddc00717 	ldw	r23,28(sp)
    7850:	dd800617 	ldw	r22,24(sp)
    7854:	dd400517 	ldw	r21,20(sp)
    7858:	dd000417 	ldw	r20,16(sp)
    785c:	dcc00317 	ldw	r19,12(sp)
    7860:	dc800217 	ldw	r18,8(sp)
    7864:	dc400117 	ldw	r17,4(sp)
    7868:	dc000017 	ldw	r16,0(sp)
    786c:	dec00a04 	addi	sp,sp,40
    7870:	f800283a 	ret
    7874:	00bffe04 	movi	r2,-8
    7878:	18a2703a 	and	r17,r3,r2
    787c:	883fed16 	blt	r17,zero,7834 <_malloc_r+0x44>
    7880:	897fec36 	bltu	r17,r5,7834 <_malloc_r+0x44>
    7884:	9009883a 	mov	r4,r18
    7888:	000cb800 	call	cb80 <__malloc_lock>
    788c:	00807dc4 	movi	r2,503
    7890:	14402b2e 	bgeu	r2,r17,7940 <_malloc_r+0x150>
    7894:	8806d27a 	srli	r3,r17,9
    7898:	18003f1e 	bne	r3,zero,7998 <_malloc_r+0x1a8>
    789c:	880cd0fa 	srli	r6,r17,3
    78a0:	300490fa 	slli	r2,r6,3
    78a4:	02c00074 	movhi	r11,1
    78a8:	5ac2b004 	addi	r11,r11,2752
    78ac:	12cb883a 	add	r5,r2,r11
    78b0:	2c000317 	ldw	r16,12(r5)
    78b4:	580f883a 	mov	r7,r11
    78b8:	2c00041e 	bne	r5,r16,78cc <_malloc_r+0xdc>
    78bc:	00000a06 	br	78e8 <_malloc_r+0xf8>
    78c0:	1800860e 	bge	r3,zero,7adc <_malloc_r+0x2ec>
    78c4:	84000317 	ldw	r16,12(r16)
    78c8:	2c000726 	beq	r5,r16,78e8 <_malloc_r+0xf8>
    78cc:	80800117 	ldw	r2,4(r16)
    78d0:	00ffff04 	movi	r3,-4
    78d4:	10c8703a 	and	r4,r2,r3
    78d8:	2447c83a 	sub	r3,r4,r17
    78dc:	008003c4 	movi	r2,15
    78e0:	10fff70e 	bge	r2,r3,78c0 <_malloc_r+0xd0>
    78e4:	31bfffc4 	addi	r6,r6,-1
    78e8:	32400044 	addi	r9,r6,1
    78ec:	02800074 	movhi	r10,1
    78f0:	5282b204 	addi	r10,r10,2760
    78f4:	54000217 	ldw	r16,8(r10)
    78f8:	8280a026 	beq	r16,r10,7b7c <_malloc_r+0x38c>
    78fc:	80800117 	ldw	r2,4(r16)
    7900:	00ffff04 	movi	r3,-4
    7904:	10ca703a 	and	r5,r2,r3
    7908:	2c4dc83a 	sub	r6,r5,r17
    790c:	008003c4 	movi	r2,15
    7910:	11808316 	blt	r2,r6,7b20 <_malloc_r+0x330>
    7914:	52800315 	stw	r10,12(r10)
    7918:	52800215 	stw	r10,8(r10)
    791c:	30002916 	blt	r6,zero,79c4 <_malloc_r+0x1d4>
    7920:	8147883a 	add	r3,r16,r5
    7924:	18800117 	ldw	r2,4(r3)
    7928:	9009883a 	mov	r4,r18
    792c:	10800054 	ori	r2,r2,1
    7930:	18800115 	stw	r2,4(r3)
    7934:	000cba00 	call	cba0 <__malloc_unlock>
    7938:	80c00204 	addi	r3,r16,8
    793c:	003fc006 	br	7840 <_malloc_r+0x50>
    7940:	02c00074 	movhi	r11,1
    7944:	5ac2b004 	addi	r11,r11,2752
    7948:	8ac5883a 	add	r2,r17,r11
    794c:	14000317 	ldw	r16,12(r2)
    7950:	580f883a 	mov	r7,r11
    7954:	8806d0fa 	srli	r3,r17,3
    7958:	14006c26 	beq	r2,r16,7b0c <_malloc_r+0x31c>
    795c:	80c00117 	ldw	r3,4(r16)
    7960:	00bfff04 	movi	r2,-4
    7964:	81800317 	ldw	r6,12(r16)
    7968:	1886703a 	and	r3,r3,r2
    796c:	80c7883a 	add	r3,r16,r3
    7970:	18800117 	ldw	r2,4(r3)
    7974:	81400217 	ldw	r5,8(r16)
    7978:	9009883a 	mov	r4,r18
    797c:	10800054 	ori	r2,r2,1
    7980:	18800115 	stw	r2,4(r3)
    7984:	31400215 	stw	r5,8(r6)
    7988:	29800315 	stw	r6,12(r5)
    798c:	000cba00 	call	cba0 <__malloc_unlock>
    7990:	80c00204 	addi	r3,r16,8
    7994:	003faa06 	br	7840 <_malloc_r+0x50>
    7998:	00800104 	movi	r2,4
    799c:	10c0052e 	bgeu	r2,r3,79b4 <_malloc_r+0x1c4>
    79a0:	00800504 	movi	r2,20
    79a4:	10c07836 	bltu	r2,r3,7b88 <_malloc_r+0x398>
    79a8:	198016c4 	addi	r6,r3,91
    79ac:	300490fa 	slli	r2,r6,3
    79b0:	003fbc06 	br	78a4 <_malloc_r+0xb4>
    79b4:	8804d1ba 	srli	r2,r17,6
    79b8:	11800e04 	addi	r6,r2,56
    79bc:	300490fa 	slli	r2,r6,3
    79c0:	003fb806 	br	78a4 <_malloc_r+0xb4>
    79c4:	00807fc4 	movi	r2,511
    79c8:	1140bb36 	bltu	r2,r5,7cb8 <_malloc_r+0x4c8>
    79cc:	2806d0fa 	srli	r3,r5,3
    79d0:	573ffe04 	addi	fp,r10,-8
    79d4:	00800044 	movi	r2,1
    79d8:	180890fa 	slli	r4,r3,3
    79dc:	1807d0ba 	srai	r3,r3,2
    79e0:	e1c00117 	ldw	r7,4(fp)
    79e4:	5909883a 	add	r4,r11,r4
    79e8:	21400217 	ldw	r5,8(r4)
    79ec:	10c4983a 	sll	r2,r2,r3
    79f0:	81000315 	stw	r4,12(r16)
    79f4:	81400215 	stw	r5,8(r16)
    79f8:	388eb03a 	or	r7,r7,r2
    79fc:	2c000315 	stw	r16,12(r5)
    7a00:	24000215 	stw	r16,8(r4)
    7a04:	e1c00115 	stw	r7,4(fp)
    7a08:	4807883a 	mov	r3,r9
    7a0c:	4800cd16 	blt	r9,zero,7d44 <_malloc_r+0x554>
    7a10:	1807d0ba 	srai	r3,r3,2
    7a14:	00800044 	movi	r2,1
    7a18:	10c8983a 	sll	r4,r2,r3
    7a1c:	39004436 	bltu	r7,r4,7b30 <_malloc_r+0x340>
    7a20:	21c4703a 	and	r2,r4,r7
    7a24:	10000a1e 	bne	r2,zero,7a50 <_malloc_r+0x260>
    7a28:	2109883a 	add	r4,r4,r4
    7a2c:	00bfff04 	movi	r2,-4
    7a30:	4884703a 	and	r2,r9,r2
    7a34:	3906703a 	and	r3,r7,r4
    7a38:	12400104 	addi	r9,r2,4
    7a3c:	1800041e 	bne	r3,zero,7a50 <_malloc_r+0x260>
    7a40:	2109883a 	add	r4,r4,r4
    7a44:	3904703a 	and	r2,r7,r4
    7a48:	4a400104 	addi	r9,r9,4
    7a4c:	103ffc26 	beq	r2,zero,7a40 <_malloc_r+0x250>
    7a50:	480490fa 	slli	r2,r9,3
    7a54:	4819883a 	mov	r12,r9
    7a58:	023fff04 	movi	r8,-4
    7a5c:	589b883a 	add	r13,r11,r2
    7a60:	6807883a 	mov	r3,r13
    7a64:	014003c4 	movi	r5,15
    7a68:	1c000317 	ldw	r16,12(r3)
    7a6c:	1c00041e 	bne	r3,r16,7a80 <_malloc_r+0x290>
    7a70:	0000a706 	br	7d10 <_malloc_r+0x520>
    7a74:	3000ab0e 	bge	r6,zero,7d24 <_malloc_r+0x534>
    7a78:	84000317 	ldw	r16,12(r16)
    7a7c:	1c00a426 	beq	r3,r16,7d10 <_malloc_r+0x520>
    7a80:	80800117 	ldw	r2,4(r16)
    7a84:	1204703a 	and	r2,r2,r8
    7a88:	144dc83a 	sub	r6,r2,r17
    7a8c:	29bff90e 	bge	r5,r6,7a74 <_malloc_r+0x284>
    7a90:	81000317 	ldw	r4,12(r16)
    7a94:	80c00217 	ldw	r3,8(r16)
    7a98:	89400054 	ori	r5,r17,1
    7a9c:	8445883a 	add	r2,r16,r17
    7aa0:	20c00215 	stw	r3,8(r4)
    7aa4:	19000315 	stw	r4,12(r3)
    7aa8:	81400115 	stw	r5,4(r16)
    7aac:	1187883a 	add	r3,r2,r6
    7ab0:	31000054 	ori	r4,r6,1
    7ab4:	50800315 	stw	r2,12(r10)
    7ab8:	50800215 	stw	r2,8(r10)
    7abc:	19800015 	stw	r6,0(r3)
    7ac0:	11000115 	stw	r4,4(r2)
    7ac4:	12800215 	stw	r10,8(r2)
    7ac8:	12800315 	stw	r10,12(r2)
    7acc:	9009883a 	mov	r4,r18
    7ad0:	000cba00 	call	cba0 <__malloc_unlock>
    7ad4:	80c00204 	addi	r3,r16,8
    7ad8:	003f5906 	br	7840 <_malloc_r+0x50>
    7adc:	8109883a 	add	r4,r16,r4
    7ae0:	20800117 	ldw	r2,4(r4)
    7ae4:	80c00217 	ldw	r3,8(r16)
    7ae8:	81400317 	ldw	r5,12(r16)
    7aec:	10800054 	ori	r2,r2,1
    7af0:	20800115 	stw	r2,4(r4)
    7af4:	28c00215 	stw	r3,8(r5)
    7af8:	19400315 	stw	r5,12(r3)
    7afc:	9009883a 	mov	r4,r18
    7b00:	000cba00 	call	cba0 <__malloc_unlock>
    7b04:	80c00204 	addi	r3,r16,8
    7b08:	003f4d06 	br	7840 <_malloc_r+0x50>
    7b0c:	80800204 	addi	r2,r16,8
    7b10:	14000317 	ldw	r16,12(r2)
    7b14:	143f911e 	bne	r2,r16,795c <_malloc_r+0x16c>
    7b18:	1a400084 	addi	r9,r3,2
    7b1c:	003f7306 	br	78ec <_malloc_r+0xfc>
    7b20:	88c00054 	ori	r3,r17,1
    7b24:	8445883a 	add	r2,r16,r17
    7b28:	80c00115 	stw	r3,4(r16)
    7b2c:	003fdf06 	br	7aac <_malloc_r+0x2bc>
    7b30:	e4000217 	ldw	r16,8(fp)
    7b34:	00bfff04 	movi	r2,-4
    7b38:	80c00117 	ldw	r3,4(r16)
    7b3c:	802d883a 	mov	r22,r16
    7b40:	18aa703a 	and	r21,r3,r2
    7b44:	ac401636 	bltu	r21,r17,7ba0 <_malloc_r+0x3b0>
    7b48:	ac49c83a 	sub	r4,r21,r17
    7b4c:	008003c4 	movi	r2,15
    7b50:	1100130e 	bge	r2,r4,7ba0 <_malloc_r+0x3b0>
    7b54:	88800054 	ori	r2,r17,1
    7b58:	8447883a 	add	r3,r16,r17
    7b5c:	80800115 	stw	r2,4(r16)
    7b60:	20800054 	ori	r2,r4,1
    7b64:	18800115 	stw	r2,4(r3)
    7b68:	e0c00215 	stw	r3,8(fp)
    7b6c:	9009883a 	mov	r4,r18
    7b70:	000cba00 	call	cba0 <__malloc_unlock>
    7b74:	80c00204 	addi	r3,r16,8
    7b78:	003f3106 	br	7840 <_malloc_r+0x50>
    7b7c:	39c00117 	ldw	r7,4(r7)
    7b80:	573ffe04 	addi	fp,r10,-8
    7b84:	003fa006 	br	7a08 <_malloc_r+0x218>
    7b88:	00801504 	movi	r2,84
    7b8c:	10c06736 	bltu	r2,r3,7d2c <_malloc_r+0x53c>
    7b90:	8804d33a 	srli	r2,r17,12
    7b94:	11801b84 	addi	r6,r2,110
    7b98:	300490fa 	slli	r2,r6,3
    7b9c:	003f4106 	br	78a4 <_malloc_r+0xb4>
    7ba0:	d0a6fd17 	ldw	r2,-25612(gp)
    7ba4:	d0e00717 	ldw	r3,-32740(gp)
    7ba8:	053fffc4 	movi	r20,-1
    7bac:	10800404 	addi	r2,r2,16
    7bb0:	88a7883a 	add	r19,r17,r2
    7bb4:	1d000326 	beq	r3,r20,7bc4 <_malloc_r+0x3d4>
    7bb8:	98c3ffc4 	addi	r3,r19,4095
    7bbc:	00bc0004 	movi	r2,-4096
    7bc0:	18a6703a 	and	r19,r3,r2
    7bc4:	9009883a 	mov	r4,r18
    7bc8:	980b883a 	mov	r5,r19
    7bcc:	000991c0 	call	991c <_sbrk_r>
    7bd0:	1009883a 	mov	r4,r2
    7bd4:	15000426 	beq	r2,r20,7be8 <_malloc_r+0x3f8>
    7bd8:	854b883a 	add	r5,r16,r21
    7bdc:	1029883a 	mov	r20,r2
    7be0:	11405a2e 	bgeu	r2,r5,7d4c <_malloc_r+0x55c>
    7be4:	87000c26 	beq	r16,fp,7c18 <_malloc_r+0x428>
    7be8:	e4000217 	ldw	r16,8(fp)
    7bec:	80c00117 	ldw	r3,4(r16)
    7bf0:	00bfff04 	movi	r2,-4
    7bf4:	1884703a 	and	r2,r3,r2
    7bf8:	14400336 	bltu	r2,r17,7c08 <_malloc_r+0x418>
    7bfc:	1449c83a 	sub	r4,r2,r17
    7c00:	008003c4 	movi	r2,15
    7c04:	113fd316 	blt	r2,r4,7b54 <_malloc_r+0x364>
    7c08:	9009883a 	mov	r4,r18
    7c0c:	000cba00 	call	cba0 <__malloc_unlock>
    7c10:	0007883a 	mov	r3,zero
    7c14:	003f0a06 	br	7840 <_malloc_r+0x50>
    7c18:	05c00074 	movhi	r23,1
    7c1c:	bdd0c304 	addi	r23,r23,17164
    7c20:	b8800017 	ldw	r2,0(r23)
    7c24:	988d883a 	add	r6,r19,r2
    7c28:	b9800015 	stw	r6,0(r23)
    7c2c:	d0e00717 	ldw	r3,-32740(gp)
    7c30:	00bfffc4 	movi	r2,-1
    7c34:	18808e26 	beq	r3,r2,7e70 <_malloc_r+0x680>
    7c38:	2145c83a 	sub	r2,r4,r5
    7c3c:	3085883a 	add	r2,r6,r2
    7c40:	b8800015 	stw	r2,0(r23)
    7c44:	20c001cc 	andi	r3,r4,7
    7c48:	18005f1e 	bne	r3,zero,7dc8 <_malloc_r+0x5d8>
    7c4c:	000b883a 	mov	r5,zero
    7c50:	a4c5883a 	add	r2,r20,r19
    7c54:	1083ffcc 	andi	r2,r2,4095
    7c58:	00c40004 	movi	r3,4096
    7c5c:	1887c83a 	sub	r3,r3,r2
    7c60:	28e7883a 	add	r19,r5,r3
    7c64:	9009883a 	mov	r4,r18
    7c68:	980b883a 	mov	r5,r19
    7c6c:	000991c0 	call	991c <_sbrk_r>
    7c70:	1007883a 	mov	r3,r2
    7c74:	00bfffc4 	movi	r2,-1
    7c78:	18807a26 	beq	r3,r2,7e64 <_malloc_r+0x674>
    7c7c:	1d05c83a 	sub	r2,r3,r20
    7c80:	9885883a 	add	r2,r19,r2
    7c84:	10c00054 	ori	r3,r2,1
    7c88:	b8800017 	ldw	r2,0(r23)
    7c8c:	a021883a 	mov	r16,r20
    7c90:	a0c00115 	stw	r3,4(r20)
    7c94:	9885883a 	add	r2,r19,r2
    7c98:	b8800015 	stw	r2,0(r23)
    7c9c:	e5000215 	stw	r20,8(fp)
    7ca0:	b7003626 	beq	r22,fp,7d7c <_malloc_r+0x58c>
    7ca4:	018003c4 	movi	r6,15
    7ca8:	35404b36 	bltu	r6,r21,7dd8 <_malloc_r+0x5e8>
    7cac:	00800044 	movi	r2,1
    7cb0:	a0800115 	stw	r2,4(r20)
    7cb4:	003fcd06 	br	7bec <_malloc_r+0x3fc>
    7cb8:	2808d27a 	srli	r4,r5,9
    7cbc:	2000371e 	bne	r4,zero,7d9c <_malloc_r+0x5ac>
    7cc0:	2808d0fa 	srli	r4,r5,3
    7cc4:	200690fa 	slli	r3,r4,3
    7cc8:	1ad1883a 	add	r8,r3,r11
    7ccc:	41800217 	ldw	r6,8(r8)
    7cd0:	41805b26 	beq	r8,r6,7e40 <_malloc_r+0x650>
    7cd4:	30800117 	ldw	r2,4(r6)
    7cd8:	00ffff04 	movi	r3,-4
    7cdc:	10c4703a 	and	r2,r2,r3
    7ce0:	2880022e 	bgeu	r5,r2,7cec <_malloc_r+0x4fc>
    7ce4:	31800217 	ldw	r6,8(r6)
    7ce8:	41bffa1e 	bne	r8,r6,7cd4 <_malloc_r+0x4e4>
    7cec:	32000317 	ldw	r8,12(r6)
    7cf0:	39c00117 	ldw	r7,4(r7)
    7cf4:	82000315 	stw	r8,12(r16)
    7cf8:	81800215 	stw	r6,8(r16)
    7cfc:	07000074 	movhi	fp,1
    7d00:	e702b004 	addi	fp,fp,2752
    7d04:	34000315 	stw	r16,12(r6)
    7d08:	44000215 	stw	r16,8(r8)
    7d0c:	003f3e06 	br	7a08 <_malloc_r+0x218>
    7d10:	63000044 	addi	r12,r12,1
    7d14:	608000cc 	andi	r2,r12,3
    7d18:	10005d26 	beq	r2,zero,7e90 <_malloc_r+0x6a0>
    7d1c:	18c00204 	addi	r3,r3,8
    7d20:	003f5106 	br	7a68 <_malloc_r+0x278>
    7d24:	8089883a 	add	r4,r16,r2
    7d28:	003f6d06 	br	7ae0 <_malloc_r+0x2f0>
    7d2c:	00805504 	movi	r2,340
    7d30:	10c02036 	bltu	r2,r3,7db4 <_malloc_r+0x5c4>
    7d34:	8804d3fa 	srli	r2,r17,15
    7d38:	11801dc4 	addi	r6,r2,119
    7d3c:	300490fa 	slli	r2,r6,3
    7d40:	003ed806 	br	78a4 <_malloc_r+0xb4>
    7d44:	48c000c4 	addi	r3,r9,3
    7d48:	003f3106 	br	7a10 <_malloc_r+0x220>
    7d4c:	05c00074 	movhi	r23,1
    7d50:	bdd0c304 	addi	r23,r23,17164
    7d54:	b8800017 	ldw	r2,0(r23)
    7d58:	988d883a 	add	r6,r19,r2
    7d5c:	b9800015 	stw	r6,0(r23)
    7d60:	293fb21e 	bne	r5,r4,7c2c <_malloc_r+0x43c>
    7d64:	2083ffcc 	andi	r2,r4,4095
    7d68:	103fb01e 	bne	r2,zero,7c2c <_malloc_r+0x43c>
    7d6c:	e4000217 	ldw	r16,8(fp)
    7d70:	9d45883a 	add	r2,r19,r21
    7d74:	10800054 	ori	r2,r2,1
    7d78:	80800115 	stw	r2,4(r16)
    7d7c:	b8c00017 	ldw	r3,0(r23)
    7d80:	d0a6fe17 	ldw	r2,-25608(gp)
    7d84:	10c0012e 	bgeu	r2,r3,7d8c <_malloc_r+0x59c>
    7d88:	d0e6fe15 	stw	r3,-25608(gp)
    7d8c:	d0a6ff17 	ldw	r2,-25604(gp)
    7d90:	10ff962e 	bgeu	r2,r3,7bec <_malloc_r+0x3fc>
    7d94:	d0e6ff15 	stw	r3,-25604(gp)
    7d98:	003f9406 	br	7bec <_malloc_r+0x3fc>
    7d9c:	00800104 	movi	r2,4
    7da0:	11001e36 	bltu	r2,r4,7e1c <_malloc_r+0x62c>
    7da4:	2804d1ba 	srli	r2,r5,6
    7da8:	11000e04 	addi	r4,r2,56
    7dac:	200690fa 	slli	r3,r4,3
    7db0:	003fc506 	br	7cc8 <_malloc_r+0x4d8>
    7db4:	00815504 	movi	r2,1364
    7db8:	10c01d2e 	bgeu	r2,r3,7e30 <_malloc_r+0x640>
    7dbc:	01801f84 	movi	r6,126
    7dc0:	0080fc04 	movi	r2,1008
    7dc4:	003eb706 	br	78a4 <_malloc_r+0xb4>
    7dc8:	00800204 	movi	r2,8
    7dcc:	10cbc83a 	sub	r5,r2,r3
    7dd0:	2169883a 	add	r20,r4,r5
    7dd4:	003f9e06 	br	7c50 <_malloc_r+0x460>
    7dd8:	00bffe04 	movi	r2,-8
    7ddc:	a93ffd04 	addi	r4,r21,-12
    7de0:	2088703a 	and	r4,r4,r2
    7de4:	b10b883a 	add	r5,r22,r4
    7de8:	00c00144 	movi	r3,5
    7dec:	28c00215 	stw	r3,8(r5)
    7df0:	28c00115 	stw	r3,4(r5)
    7df4:	b0800117 	ldw	r2,4(r22)
    7df8:	1080004c 	andi	r2,r2,1
    7dfc:	2084b03a 	or	r2,r4,r2
    7e00:	b0800115 	stw	r2,4(r22)
    7e04:	313fdd2e 	bgeu	r6,r4,7d7c <_malloc_r+0x58c>
    7e08:	b1400204 	addi	r5,r22,8
    7e0c:	9009883a 	mov	r4,r18
    7e10:	0006c680 	call	6c68 <_free_r>
    7e14:	e4000217 	ldw	r16,8(fp)
    7e18:	003fd806 	br	7d7c <_malloc_r+0x58c>
    7e1c:	00800504 	movi	r2,20
    7e20:	11001536 	bltu	r2,r4,7e78 <_malloc_r+0x688>
    7e24:	210016c4 	addi	r4,r4,91
    7e28:	200690fa 	slli	r3,r4,3
    7e2c:	003fa606 	br	7cc8 <_malloc_r+0x4d8>
    7e30:	8804d4ba 	srli	r2,r17,18
    7e34:	11801f04 	addi	r6,r2,124
    7e38:	300490fa 	slli	r2,r6,3
    7e3c:	003e9906 	br	78a4 <_malloc_r+0xb4>
    7e40:	2009d0ba 	srai	r4,r4,2
    7e44:	01400074 	movhi	r5,1
    7e48:	2942b004 	addi	r5,r5,2752
    7e4c:	00c00044 	movi	r3,1
    7e50:	28800117 	ldw	r2,4(r5)
    7e54:	1906983a 	sll	r3,r3,r4
    7e58:	10c4b03a 	or	r2,r2,r3
    7e5c:	28800115 	stw	r2,4(r5)
    7e60:	003fa306 	br	7cf0 <_malloc_r+0x500>
    7e64:	0027883a 	mov	r19,zero
    7e68:	00c00044 	movi	r3,1
    7e6c:	003f8606 	br	7c88 <_malloc_r+0x498>
    7e70:	d1200715 	stw	r4,-32740(gp)
    7e74:	003f7306 	br	7c44 <_malloc_r+0x454>
    7e78:	00801504 	movi	r2,84
    7e7c:	11001936 	bltu	r2,r4,7ee4 <_malloc_r+0x6f4>
    7e80:	2804d33a 	srli	r2,r5,12
    7e84:	11001b84 	addi	r4,r2,110
    7e88:	200690fa 	slli	r3,r4,3
    7e8c:	003f8e06 	br	7cc8 <_malloc_r+0x4d8>
    7e90:	480b883a 	mov	r5,r9
    7e94:	6807883a 	mov	r3,r13
    7e98:	288000cc 	andi	r2,r5,3
    7e9c:	18fffe04 	addi	r3,r3,-8
    7ea0:	297fffc4 	addi	r5,r5,-1
    7ea4:	10001526 	beq	r2,zero,7efc <_malloc_r+0x70c>
    7ea8:	18800217 	ldw	r2,8(r3)
    7eac:	10fffa26 	beq	r2,r3,7e98 <_malloc_r+0x6a8>
    7eb0:	2109883a 	add	r4,r4,r4
    7eb4:	393f1e36 	bltu	r7,r4,7b30 <_malloc_r+0x340>
    7eb8:	203f1d26 	beq	r4,zero,7b30 <_malloc_r+0x340>
    7ebc:	21c4703a 	and	r2,r4,r7
    7ec0:	10000226 	beq	r2,zero,7ecc <_malloc_r+0x6dc>
    7ec4:	6013883a 	mov	r9,r12
    7ec8:	003ee106 	br	7a50 <_malloc_r+0x260>
    7ecc:	2109883a 	add	r4,r4,r4
    7ed0:	3904703a 	and	r2,r7,r4
    7ed4:	63000104 	addi	r12,r12,4
    7ed8:	103ffc26 	beq	r2,zero,7ecc <_malloc_r+0x6dc>
    7edc:	6013883a 	mov	r9,r12
    7ee0:	003edb06 	br	7a50 <_malloc_r+0x260>
    7ee4:	00805504 	movi	r2,340
    7ee8:	11000836 	bltu	r2,r4,7f0c <_malloc_r+0x71c>
    7eec:	2804d3fa 	srli	r2,r5,15
    7ef0:	11001dc4 	addi	r4,r2,119
    7ef4:	200690fa 	slli	r3,r4,3
    7ef8:	003f7306 	br	7cc8 <_malloc_r+0x4d8>
    7efc:	0104303a 	nor	r2,zero,r4
    7f00:	388e703a 	and	r7,r7,r2
    7f04:	e1c00115 	stw	r7,4(fp)
    7f08:	003fe906 	br	7eb0 <_malloc_r+0x6c0>
    7f0c:	00815504 	movi	r2,1364
    7f10:	1100032e 	bgeu	r2,r4,7f20 <_malloc_r+0x730>
    7f14:	01001f84 	movi	r4,126
    7f18:	00c0fc04 	movi	r3,1008
    7f1c:	003f6a06 	br	7cc8 <_malloc_r+0x4d8>
    7f20:	2804d4ba 	srli	r2,r5,18
    7f24:	11001f04 	addi	r4,r2,124
    7f28:	200690fa 	slli	r3,r4,3
    7f2c:	003f6606 	br	7cc8 <_malloc_r+0x4d8>

00007f30 <memchr>:
    7f30:	008000c4 	movi	r2,3
    7f34:	29403fcc 	andi	r5,r5,255
    7f38:	2007883a 	mov	r3,r4
    7f3c:	1180022e 	bgeu	r2,r6,7f48 <memchr+0x18>
    7f40:	2084703a 	and	r2,r4,r2
    7f44:	10000b26 	beq	r2,zero,7f74 <memchr+0x44>
    7f48:	313fffc4 	addi	r4,r6,-1
    7f4c:	3000051e 	bne	r6,zero,7f64 <memchr+0x34>
    7f50:	00002c06 	br	8004 <memchr+0xd4>
    7f54:	213fffc4 	addi	r4,r4,-1
    7f58:	00bfffc4 	movi	r2,-1
    7f5c:	18c00044 	addi	r3,r3,1
    7f60:	20802826 	beq	r4,r2,8004 <memchr+0xd4>
    7f64:	18800003 	ldbu	r2,0(r3)
    7f68:	28bffa1e 	bne	r5,r2,7f54 <memchr+0x24>
    7f6c:	1805883a 	mov	r2,r3
    7f70:	f800283a 	ret
    7f74:	0011883a 	mov	r8,zero
    7f78:	0007883a 	mov	r3,zero
    7f7c:	01c00104 	movi	r7,4
    7f80:	4004923a 	slli	r2,r8,8
    7f84:	18c00044 	addi	r3,r3,1
    7f88:	1151883a 	add	r8,r2,r5
    7f8c:	19fffc1e 	bne	r3,r7,7f80 <memchr+0x50>
    7f90:	02bfbff4 	movhi	r10,65279
    7f94:	52bfbfc4 	addi	r10,r10,-257
    7f98:	02602074 	movhi	r9,32897
    7f9c:	4a602004 	addi	r9,r9,-32640
    7fa0:	02c000c4 	movi	r11,3
    7fa4:	20800017 	ldw	r2,0(r4)
    7fa8:	31bfff04 	addi	r6,r6,-4
    7fac:	200f883a 	mov	r7,r4
    7fb0:	1204f03a 	xor	r2,r2,r8
    7fb4:	1287883a 	add	r3,r2,r10
    7fb8:	1a46703a 	and	r3,r3,r9
    7fbc:	0084303a 	nor	r2,zero,r2
    7fc0:	10c4703a 	and	r2,r2,r3
    7fc4:	10000b26 	beq	r2,zero,7ff4 <memchr+0xc4>
    7fc8:	20800003 	ldbu	r2,0(r4)
    7fcc:	28800f26 	beq	r5,r2,800c <memchr+0xdc>
    7fd0:	20800043 	ldbu	r2,1(r4)
    7fd4:	21c00044 	addi	r7,r4,1
    7fd8:	28800c26 	beq	r5,r2,800c <memchr+0xdc>
    7fdc:	20800083 	ldbu	r2,2(r4)
    7fe0:	21c00084 	addi	r7,r4,2
    7fe4:	28800926 	beq	r5,r2,800c <memchr+0xdc>
    7fe8:	208000c3 	ldbu	r2,3(r4)
    7fec:	21c000c4 	addi	r7,r4,3
    7ff0:	28800626 	beq	r5,r2,800c <memchr+0xdc>
    7ff4:	21000104 	addi	r4,r4,4
    7ff8:	59bfea36 	bltu	r11,r6,7fa4 <memchr+0x74>
    7ffc:	2007883a 	mov	r3,r4
    8000:	003fd106 	br	7f48 <memchr+0x18>
    8004:	0005883a 	mov	r2,zero
    8008:	f800283a 	ret
    800c:	3805883a 	mov	r2,r7
    8010:	f800283a 	ret

00008014 <memcpy>:
    8014:	01c003c4 	movi	r7,15
    8018:	2007883a 	mov	r3,r4
    801c:	3980032e 	bgeu	r7,r6,802c <memcpy+0x18>
    8020:	2904b03a 	or	r2,r5,r4
    8024:	108000cc 	andi	r2,r2,3
    8028:	10000926 	beq	r2,zero,8050 <memcpy+0x3c>
    802c:	30000626 	beq	r6,zero,8048 <memcpy+0x34>
    8030:	30cd883a 	add	r6,r6,r3
    8034:	28800003 	ldbu	r2,0(r5)
    8038:	29400044 	addi	r5,r5,1
    803c:	18800005 	stb	r2,0(r3)
    8040:	18c00044 	addi	r3,r3,1
    8044:	30fffb1e 	bne	r6,r3,8034 <memcpy+0x20>
    8048:	2005883a 	mov	r2,r4
    804c:	f800283a 	ret
    8050:	3811883a 	mov	r8,r7
    8054:	200f883a 	mov	r7,r4
    8058:	28c00017 	ldw	r3,0(r5)
    805c:	31bffc04 	addi	r6,r6,-16
    8060:	38c00015 	stw	r3,0(r7)
    8064:	28800117 	ldw	r2,4(r5)
    8068:	38800115 	stw	r2,4(r7)
    806c:	28c00217 	ldw	r3,8(r5)
    8070:	38c00215 	stw	r3,8(r7)
    8074:	28800317 	ldw	r2,12(r5)
    8078:	29400404 	addi	r5,r5,16
    807c:	38800315 	stw	r2,12(r7)
    8080:	39c00404 	addi	r7,r7,16
    8084:	41bff436 	bltu	r8,r6,8058 <memcpy+0x44>
    8088:	008000c4 	movi	r2,3
    808c:	1180072e 	bgeu	r2,r6,80ac <memcpy+0x98>
    8090:	1007883a 	mov	r3,r2
    8094:	28800017 	ldw	r2,0(r5)
    8098:	31bfff04 	addi	r6,r6,-4
    809c:	29400104 	addi	r5,r5,4
    80a0:	38800015 	stw	r2,0(r7)
    80a4:	39c00104 	addi	r7,r7,4
    80a8:	19bffa36 	bltu	r3,r6,8094 <memcpy+0x80>
    80ac:	3807883a 	mov	r3,r7
    80b0:	003fde06 	br	802c <memcpy+0x18>

000080b4 <memmove>:
    80b4:	2807883a 	mov	r3,r5
    80b8:	2011883a 	mov	r8,r4
    80bc:	29000c2e 	bgeu	r5,r4,80f0 <memmove+0x3c>
    80c0:	298f883a 	add	r7,r5,r6
    80c4:	21c00a2e 	bgeu	r4,r7,80f0 <memmove+0x3c>
    80c8:	30000726 	beq	r6,zero,80e8 <memmove+0x34>
    80cc:	2187883a 	add	r3,r4,r6
    80d0:	198dc83a 	sub	r6,r3,r6
    80d4:	39ffffc4 	addi	r7,r7,-1
    80d8:	38800003 	ldbu	r2,0(r7)
    80dc:	18ffffc4 	addi	r3,r3,-1
    80e0:	18800005 	stb	r2,0(r3)
    80e4:	19bffb1e 	bne	r3,r6,80d4 <memmove+0x20>
    80e8:	2005883a 	mov	r2,r4
    80ec:	f800283a 	ret
    80f0:	01c003c4 	movi	r7,15
    80f4:	39800a36 	bltu	r7,r6,8120 <memmove+0x6c>
    80f8:	303ffb26 	beq	r6,zero,80e8 <memmove+0x34>
    80fc:	400f883a 	mov	r7,r8
    8100:	320d883a 	add	r6,r6,r8
    8104:	28800003 	ldbu	r2,0(r5)
    8108:	29400044 	addi	r5,r5,1
    810c:	38800005 	stb	r2,0(r7)
    8110:	39c00044 	addi	r7,r7,1
    8114:	39bffb1e 	bne	r7,r6,8104 <memmove+0x50>
    8118:	2005883a 	mov	r2,r4
    811c:	f800283a 	ret
    8120:	1904b03a 	or	r2,r3,r4
    8124:	108000cc 	andi	r2,r2,3
    8128:	103ff31e 	bne	r2,zero,80f8 <memmove+0x44>
    812c:	3811883a 	mov	r8,r7
    8130:	180b883a 	mov	r5,r3
    8134:	200f883a 	mov	r7,r4
    8138:	28c00017 	ldw	r3,0(r5)
    813c:	31bffc04 	addi	r6,r6,-16
    8140:	38c00015 	stw	r3,0(r7)
    8144:	28800117 	ldw	r2,4(r5)
    8148:	38800115 	stw	r2,4(r7)
    814c:	28c00217 	ldw	r3,8(r5)
    8150:	38c00215 	stw	r3,8(r7)
    8154:	28800317 	ldw	r2,12(r5)
    8158:	29400404 	addi	r5,r5,16
    815c:	38800315 	stw	r2,12(r7)
    8160:	39c00404 	addi	r7,r7,16
    8164:	41bff436 	bltu	r8,r6,8138 <memmove+0x84>
    8168:	008000c4 	movi	r2,3
    816c:	1180072e 	bgeu	r2,r6,818c <memmove+0xd8>
    8170:	1007883a 	mov	r3,r2
    8174:	28800017 	ldw	r2,0(r5)
    8178:	31bfff04 	addi	r6,r6,-4
    817c:	29400104 	addi	r5,r5,4
    8180:	38800015 	stw	r2,0(r7)
    8184:	39c00104 	addi	r7,r7,4
    8188:	19bffa36 	bltu	r3,r6,8174 <memmove+0xc0>
    818c:	3811883a 	mov	r8,r7
    8190:	003fd906 	br	80f8 <memmove+0x44>

00008194 <memset>:
    8194:	008000c4 	movi	r2,3
    8198:	29403fcc 	andi	r5,r5,255
    819c:	2007883a 	mov	r3,r4
    81a0:	1180022e 	bgeu	r2,r6,81ac <memset+0x18>
    81a4:	2084703a 	and	r2,r4,r2
    81a8:	10000826 	beq	r2,zero,81cc <memset+0x38>
    81ac:	30000526 	beq	r6,zero,81c4 <memset+0x30>
    81b0:	2805883a 	mov	r2,r5
    81b4:	30cd883a 	add	r6,r6,r3
    81b8:	18800005 	stb	r2,0(r3)
    81bc:	18c00044 	addi	r3,r3,1
    81c0:	19bffd1e 	bne	r3,r6,81b8 <memset+0x24>
    81c4:	2005883a 	mov	r2,r4
    81c8:	f800283a 	ret
    81cc:	2804923a 	slli	r2,r5,8
    81d0:	020003c4 	movi	r8,15
    81d4:	200f883a 	mov	r7,r4
    81d8:	2884b03a 	or	r2,r5,r2
    81dc:	1006943a 	slli	r3,r2,16
    81e0:	10c6b03a 	or	r3,r2,r3
    81e4:	41800a2e 	bgeu	r8,r6,8210 <memset+0x7c>
    81e8:	4005883a 	mov	r2,r8
    81ec:	31bffc04 	addi	r6,r6,-16
    81f0:	38c00015 	stw	r3,0(r7)
    81f4:	38c00115 	stw	r3,4(r7)
    81f8:	38c00215 	stw	r3,8(r7)
    81fc:	38c00315 	stw	r3,12(r7)
    8200:	39c00404 	addi	r7,r7,16
    8204:	11bff936 	bltu	r2,r6,81ec <memset+0x58>
    8208:	008000c4 	movi	r2,3
    820c:	1180052e 	bgeu	r2,r6,8224 <memset+0x90>
    8210:	31bfff04 	addi	r6,r6,-4
    8214:	008000c4 	movi	r2,3
    8218:	38c00015 	stw	r3,0(r7)
    821c:	39c00104 	addi	r7,r7,4
    8220:	11bffb36 	bltu	r2,r6,8210 <memset+0x7c>
    8224:	3807883a 	mov	r3,r7
    8228:	003fe006 	br	81ac <memset+0x18>

0000822c <_Bfree>:
    822c:	28000826 	beq	r5,zero,8250 <_Bfree+0x24>
    8230:	28800117 	ldw	r2,4(r5)
    8234:	21001317 	ldw	r4,76(r4)
    8238:	1085883a 	add	r2,r2,r2
    823c:	1085883a 	add	r2,r2,r2
    8240:	1105883a 	add	r2,r2,r4
    8244:	10c00017 	ldw	r3,0(r2)
    8248:	28c00015 	stw	r3,0(r5)
    824c:	11400015 	stw	r5,0(r2)
    8250:	f800283a 	ret

00008254 <__hi0bits>:
    8254:	20bfffec 	andhi	r2,r4,65535
    8258:	10001426 	beq	r2,zero,82ac <__hi0bits+0x58>
    825c:	0007883a 	mov	r3,zero
    8260:	20bfc02c 	andhi	r2,r4,65280
    8264:	1000021e 	bne	r2,zero,8270 <__hi0bits+0x1c>
    8268:	2008923a 	slli	r4,r4,8
    826c:	18c00204 	addi	r3,r3,8
    8270:	20bc002c 	andhi	r2,r4,61440
    8274:	1000021e 	bne	r2,zero,8280 <__hi0bits+0x2c>
    8278:	2008913a 	slli	r4,r4,4
    827c:	18c00104 	addi	r3,r3,4
    8280:	20b0002c 	andhi	r2,r4,49152
    8284:	1000031e 	bne	r2,zero,8294 <__hi0bits+0x40>
    8288:	2105883a 	add	r2,r4,r4
    828c:	18c00084 	addi	r3,r3,2
    8290:	1089883a 	add	r4,r2,r2
    8294:	20000316 	blt	r4,zero,82a4 <__hi0bits+0x50>
    8298:	2090002c 	andhi	r2,r4,16384
    829c:	10000626 	beq	r2,zero,82b8 <__hi0bits+0x64>
    82a0:	18c00044 	addi	r3,r3,1
    82a4:	1805883a 	mov	r2,r3
    82a8:	f800283a 	ret
    82ac:	2008943a 	slli	r4,r4,16
    82b0:	00c00404 	movi	r3,16
    82b4:	003fea06 	br	8260 <__hi0bits+0xc>
    82b8:	00c00804 	movi	r3,32
    82bc:	1805883a 	mov	r2,r3
    82c0:	f800283a 	ret

000082c4 <__lo0bits>:
    82c4:	20c00017 	ldw	r3,0(r4)
    82c8:	188001cc 	andi	r2,r3,7
    82cc:	10000a26 	beq	r2,zero,82f8 <__lo0bits+0x34>
    82d0:	1880004c 	andi	r2,r3,1
    82d4:	1005003a 	cmpeq	r2,r2,zero
    82d8:	10002126 	beq	r2,zero,8360 <__lo0bits+0x9c>
    82dc:	1880008c 	andi	r2,r3,2
    82e0:	1000251e 	bne	r2,zero,8378 <__lo0bits+0xb4>
    82e4:	1804d0ba 	srli	r2,r3,2
    82e8:	01400084 	movi	r5,2
    82ec:	20800015 	stw	r2,0(r4)
    82f0:	2805883a 	mov	r2,r5
    82f4:	f800283a 	ret
    82f8:	18bfffcc 	andi	r2,r3,65535
    82fc:	10001526 	beq	r2,zero,8354 <__lo0bits+0x90>
    8300:	000b883a 	mov	r5,zero
    8304:	18803fcc 	andi	r2,r3,255
    8308:	1000021e 	bne	r2,zero,8314 <__lo0bits+0x50>
    830c:	1806d23a 	srli	r3,r3,8
    8310:	29400204 	addi	r5,r5,8
    8314:	188003cc 	andi	r2,r3,15
    8318:	1000021e 	bne	r2,zero,8324 <__lo0bits+0x60>
    831c:	1806d13a 	srli	r3,r3,4
    8320:	29400104 	addi	r5,r5,4
    8324:	188000cc 	andi	r2,r3,3
    8328:	1000021e 	bne	r2,zero,8334 <__lo0bits+0x70>
    832c:	1806d0ba 	srli	r3,r3,2
    8330:	29400084 	addi	r5,r5,2
    8334:	1880004c 	andi	r2,r3,1
    8338:	1000031e 	bne	r2,zero,8348 <__lo0bits+0x84>
    833c:	1806d07a 	srli	r3,r3,1
    8340:	18000a26 	beq	r3,zero,836c <__lo0bits+0xa8>
    8344:	29400044 	addi	r5,r5,1
    8348:	2805883a 	mov	r2,r5
    834c:	20c00015 	stw	r3,0(r4)
    8350:	f800283a 	ret
    8354:	1806d43a 	srli	r3,r3,16
    8358:	01400404 	movi	r5,16
    835c:	003fe906 	br	8304 <__lo0bits+0x40>
    8360:	000b883a 	mov	r5,zero
    8364:	2805883a 	mov	r2,r5
    8368:	f800283a 	ret
    836c:	01400804 	movi	r5,32
    8370:	2805883a 	mov	r2,r5
    8374:	f800283a 	ret
    8378:	1804d07a 	srli	r2,r3,1
    837c:	01400044 	movi	r5,1
    8380:	20800015 	stw	r2,0(r4)
    8384:	003fda06 	br	82f0 <__lo0bits+0x2c>

00008388 <__mcmp>:
    8388:	20800417 	ldw	r2,16(r4)
    838c:	28c00417 	ldw	r3,16(r5)
    8390:	10cfc83a 	sub	r7,r2,r3
    8394:	38000c1e 	bne	r7,zero,83c8 <__mcmp+0x40>
    8398:	18c5883a 	add	r2,r3,r3
    839c:	1085883a 	add	r2,r2,r2
    83a0:	10c00504 	addi	r3,r2,20
    83a4:	21000504 	addi	r4,r4,20
    83a8:	28cb883a 	add	r5,r5,r3
    83ac:	2085883a 	add	r2,r4,r2
    83b0:	10bfff04 	addi	r2,r2,-4
    83b4:	297fff04 	addi	r5,r5,-4
    83b8:	11800017 	ldw	r6,0(r2)
    83bc:	28c00017 	ldw	r3,0(r5)
    83c0:	30c0031e 	bne	r6,r3,83d0 <__mcmp+0x48>
    83c4:	20bffa36 	bltu	r4,r2,83b0 <__mcmp+0x28>
    83c8:	3805883a 	mov	r2,r7
    83cc:	f800283a 	ret
    83d0:	30c00336 	bltu	r6,r3,83e0 <__mcmp+0x58>
    83d4:	01c00044 	movi	r7,1
    83d8:	3805883a 	mov	r2,r7
    83dc:	f800283a 	ret
    83e0:	01ffffc4 	movi	r7,-1
    83e4:	003ff806 	br	83c8 <__mcmp+0x40>

000083e8 <__ulp>:
    83e8:	295ffc2c 	andhi	r5,r5,32752
    83ec:	013f3034 	movhi	r4,64704
    83f0:	290b883a 	add	r5,r5,r4
    83f4:	0145c83a 	sub	r2,zero,r5
    83f8:	1007d53a 	srai	r3,r2,20
    83fc:	000d883a 	mov	r6,zero
    8400:	0140040e 	bge	zero,r5,8414 <__ulp+0x2c>
    8404:	280f883a 	mov	r7,r5
    8408:	3807883a 	mov	r3,r7
    840c:	3005883a 	mov	r2,r6
    8410:	f800283a 	ret
    8414:	008004c4 	movi	r2,19
    8418:	193ffb04 	addi	r4,r3,-20
    841c:	10c00c0e 	bge	r2,r3,8450 <__ulp+0x68>
    8420:	008007c4 	movi	r2,31
    8424:	1107c83a 	sub	r3,r2,r4
    8428:	00800784 	movi	r2,30
    842c:	01400044 	movi	r5,1
    8430:	11000216 	blt	r2,r4,843c <__ulp+0x54>
    8434:	00800044 	movi	r2,1
    8438:	10ca983a 	sll	r5,r2,r3
    843c:	000f883a 	mov	r7,zero
    8440:	280d883a 	mov	r6,r5
    8444:	3807883a 	mov	r3,r7
    8448:	3005883a 	mov	r2,r6
    844c:	f800283a 	ret
    8450:	00800234 	movhi	r2,8
    8454:	10cfd83a 	sra	r7,r2,r3
    8458:	000d883a 	mov	r6,zero
    845c:	3005883a 	mov	r2,r6
    8460:	3807883a 	mov	r3,r7
    8464:	f800283a 	ret

00008468 <__b2d>:
    8468:	20800417 	ldw	r2,16(r4)
    846c:	defff904 	addi	sp,sp,-28
    8470:	dd000415 	stw	r20,16(sp)
    8474:	1085883a 	add	r2,r2,r2
    8478:	25000504 	addi	r20,r4,20
    847c:	1085883a 	add	r2,r2,r2
    8480:	dc000015 	stw	r16,0(sp)
    8484:	a0a1883a 	add	r16,r20,r2
    8488:	dd400515 	stw	r21,20(sp)
    848c:	857fff17 	ldw	r21,-4(r16)
    8490:	dc400115 	stw	r17,4(sp)
    8494:	dfc00615 	stw	ra,24(sp)
    8498:	a809883a 	mov	r4,r21
    849c:	2823883a 	mov	r17,r5
    84a0:	dcc00315 	stw	r19,12(sp)
    84a4:	dc800215 	stw	r18,8(sp)
    84a8:	00082540 	call	8254 <__hi0bits>
    84ac:	100b883a 	mov	r5,r2
    84b0:	00800804 	movi	r2,32
    84b4:	1145c83a 	sub	r2,r2,r5
    84b8:	88800015 	stw	r2,0(r17)
    84bc:	00800284 	movi	r2,10
    84c0:	80ffff04 	addi	r3,r16,-4
    84c4:	11401416 	blt	r2,r5,8518 <__b2d+0xb0>
    84c8:	008002c4 	movi	r2,11
    84cc:	1149c83a 	sub	r4,r2,r5
    84d0:	a0c02736 	bltu	r20,r3,8570 <__b2d+0x108>
    84d4:	000d883a 	mov	r6,zero
    84d8:	28800544 	addi	r2,r5,21
    84dc:	a906d83a 	srl	r3,r21,r4
    84e0:	a884983a 	sll	r2,r21,r2
    84e4:	1ccffc34 	orhi	r19,r3,16368
    84e8:	11a4b03a 	or	r18,r2,r6
    84ec:	9005883a 	mov	r2,r18
    84f0:	9807883a 	mov	r3,r19
    84f4:	dfc00617 	ldw	ra,24(sp)
    84f8:	dd400517 	ldw	r21,20(sp)
    84fc:	dd000417 	ldw	r20,16(sp)
    8500:	dcc00317 	ldw	r19,12(sp)
    8504:	dc800217 	ldw	r18,8(sp)
    8508:	dc400117 	ldw	r17,4(sp)
    850c:	dc000017 	ldw	r16,0(sp)
    8510:	dec00704 	addi	sp,sp,28
    8514:	f800283a 	ret
    8518:	a0c00e36 	bltu	r20,r3,8554 <__b2d+0xec>
    851c:	293ffd44 	addi	r4,r5,-11
    8520:	000d883a 	mov	r6,zero
    8524:	20000f26 	beq	r4,zero,8564 <__b2d+0xfc>
    8528:	00800804 	movi	r2,32
    852c:	110bc83a 	sub	r5,r2,r4
    8530:	a0c01236 	bltu	r20,r3,857c <__b2d+0x114>
    8534:	000f883a 	mov	r7,zero
    8538:	a904983a 	sll	r2,r21,r4
    853c:	3146d83a 	srl	r3,r6,r5
    8540:	3108983a 	sll	r4,r6,r4
    8544:	108ffc34 	orhi	r2,r2,16368
    8548:	18a6b03a 	or	r19,r3,r2
    854c:	3924b03a 	or	r18,r7,r4
    8550:	003fe606 	br	84ec <__b2d+0x84>
    8554:	293ffd44 	addi	r4,r5,-11
    8558:	81bffe17 	ldw	r6,-8(r16)
    855c:	80fffe04 	addi	r3,r16,-8
    8560:	203ff11e 	bne	r4,zero,8528 <__b2d+0xc0>
    8564:	accffc34 	orhi	r19,r21,16368
    8568:	3025883a 	mov	r18,r6
    856c:	003fdf06 	br	84ec <__b2d+0x84>
    8570:	18bfff17 	ldw	r2,-4(r3)
    8574:	110cd83a 	srl	r6,r2,r4
    8578:	003fd706 	br	84d8 <__b2d+0x70>
    857c:	18bfff17 	ldw	r2,-4(r3)
    8580:	114ed83a 	srl	r7,r2,r5
    8584:	003fec06 	br	8538 <__b2d+0xd0>

00008588 <__ratio>:
    8588:	defff904 	addi	sp,sp,-28
    858c:	dc400215 	stw	r17,8(sp)
    8590:	2823883a 	mov	r17,r5
    8594:	d80b883a 	mov	r5,sp
    8598:	dfc00615 	stw	ra,24(sp)
    859c:	dd000515 	stw	r20,20(sp)
    85a0:	dcc00415 	stw	r19,16(sp)
    85a4:	dc800315 	stw	r18,12(sp)
    85a8:	2025883a 	mov	r18,r4
    85ac:	00084680 	call	8468 <__b2d>
    85b0:	8809883a 	mov	r4,r17
    85b4:	d9400104 	addi	r5,sp,4
    85b8:	1027883a 	mov	r19,r2
    85bc:	1829883a 	mov	r20,r3
    85c0:	00084680 	call	8468 <__b2d>
    85c4:	89000417 	ldw	r4,16(r17)
    85c8:	91c00417 	ldw	r7,16(r18)
    85cc:	d9800117 	ldw	r6,4(sp)
    85d0:	180b883a 	mov	r5,r3
    85d4:	390fc83a 	sub	r7,r7,r4
    85d8:	1009883a 	mov	r4,r2
    85dc:	d8800017 	ldw	r2,0(sp)
    85e0:	380e917a 	slli	r7,r7,5
    85e4:	2011883a 	mov	r8,r4
    85e8:	1185c83a 	sub	r2,r2,r6
    85ec:	11c5883a 	add	r2,r2,r7
    85f0:	1006953a 	slli	r3,r2,20
    85f4:	2813883a 	mov	r9,r5
    85f8:	00800d0e 	bge	zero,r2,8630 <__ratio+0xa8>
    85fc:	1d29883a 	add	r20,r3,r20
    8600:	a00b883a 	mov	r5,r20
    8604:	480f883a 	mov	r7,r9
    8608:	9809883a 	mov	r4,r19
    860c:	400d883a 	mov	r6,r8
    8610:	000b5d00 	call	b5d0 <__divdf3>
    8614:	dfc00617 	ldw	ra,24(sp)
    8618:	dd000517 	ldw	r20,20(sp)
    861c:	dcc00417 	ldw	r19,16(sp)
    8620:	dc800317 	ldw	r18,12(sp)
    8624:	dc400217 	ldw	r17,8(sp)
    8628:	dec00704 	addi	sp,sp,28
    862c:	f800283a 	ret
    8630:	28d3c83a 	sub	r9,r5,r3
    8634:	003ff206 	br	8600 <__ratio+0x78>

00008638 <_mprec_log10>:
    8638:	defffe04 	addi	sp,sp,-8
    863c:	008005c4 	movi	r2,23
    8640:	dc000015 	stw	r16,0(sp)
    8644:	dfc00115 	stw	ra,4(sp)
    8648:	2021883a 	mov	r16,r4
    864c:	11000c16 	blt	r2,r4,8680 <_mprec_log10+0x48>
    8650:	200490fa 	slli	r2,r4,3
    8654:	00c00074 	movhi	r3,1
    8658:	18c10f04 	addi	r3,r3,1084
    865c:	10c5883a 	add	r2,r2,r3
    8660:	12400117 	ldw	r9,4(r2)
    8664:	12000017 	ldw	r8,0(r2)
    8668:	4807883a 	mov	r3,r9
    866c:	4005883a 	mov	r2,r8
    8670:	dfc00117 	ldw	ra,4(sp)
    8674:	dc000017 	ldw	r16,0(sp)
    8678:	dec00204 	addi	sp,sp,8
    867c:	f800283a 	ret
    8680:	0011883a 	mov	r8,zero
    8684:	024ffc34 	movhi	r9,16368
    8688:	0005883a 	mov	r2,zero
    868c:	00d00934 	movhi	r3,16420
    8690:	480b883a 	mov	r5,r9
    8694:	4009883a 	mov	r4,r8
    8698:	180f883a 	mov	r7,r3
    869c:	100d883a 	mov	r6,r2
    86a0:	000b20c0 	call	b20c <__muldf3>
    86a4:	843fffc4 	addi	r16,r16,-1
    86a8:	1011883a 	mov	r8,r2
    86ac:	1813883a 	mov	r9,r3
    86b0:	803ff51e 	bne	r16,zero,8688 <_mprec_log10+0x50>
    86b4:	4005883a 	mov	r2,r8
    86b8:	4807883a 	mov	r3,r9
    86bc:	dfc00117 	ldw	ra,4(sp)
    86c0:	dc000017 	ldw	r16,0(sp)
    86c4:	dec00204 	addi	sp,sp,8
    86c8:	f800283a 	ret

000086cc <__copybits>:
    86cc:	297fffc4 	addi	r5,r5,-1
    86d0:	30800417 	ldw	r2,16(r6)
    86d4:	280bd17a 	srai	r5,r5,5
    86d8:	31800504 	addi	r6,r6,20
    86dc:	1085883a 	add	r2,r2,r2
    86e0:	294b883a 	add	r5,r5,r5
    86e4:	294b883a 	add	r5,r5,r5
    86e8:	1085883a 	add	r2,r2,r2
    86ec:	290b883a 	add	r5,r5,r4
    86f0:	3087883a 	add	r3,r6,r2
    86f4:	29400104 	addi	r5,r5,4
    86f8:	30c0052e 	bgeu	r6,r3,8710 <__copybits+0x44>
    86fc:	30800017 	ldw	r2,0(r6)
    8700:	31800104 	addi	r6,r6,4
    8704:	20800015 	stw	r2,0(r4)
    8708:	21000104 	addi	r4,r4,4
    870c:	30fffb36 	bltu	r6,r3,86fc <__copybits+0x30>
    8710:	2140032e 	bgeu	r4,r5,8720 <__copybits+0x54>
    8714:	20000015 	stw	zero,0(r4)
    8718:	21000104 	addi	r4,r4,4
    871c:	217ffd36 	bltu	r4,r5,8714 <__copybits+0x48>
    8720:	f800283a 	ret

00008724 <__any_on>:
    8724:	20800417 	ldw	r2,16(r4)
    8728:	2807d17a 	srai	r3,r5,5
    872c:	21000504 	addi	r4,r4,20
    8730:	10c00d0e 	bge	r2,r3,8768 <__any_on+0x44>
    8734:	1085883a 	add	r2,r2,r2
    8738:	1085883a 	add	r2,r2,r2
    873c:	208d883a 	add	r6,r4,r2
    8740:	2180182e 	bgeu	r4,r6,87a4 <__any_on+0x80>
    8744:	30bfff17 	ldw	r2,-4(r6)
    8748:	30ffff04 	addi	r3,r6,-4
    874c:	1000041e 	bne	r2,zero,8760 <__any_on+0x3c>
    8750:	20c0142e 	bgeu	r4,r3,87a4 <__any_on+0x80>
    8754:	18ffff04 	addi	r3,r3,-4
    8758:	18800017 	ldw	r2,0(r3)
    875c:	103ffc26 	beq	r2,zero,8750 <__any_on+0x2c>
    8760:	00800044 	movi	r2,1
    8764:	f800283a 	ret
    8768:	18800a0e 	bge	r3,r2,8794 <__any_on+0x70>
    876c:	294007cc 	andi	r5,r5,31
    8770:	28000826 	beq	r5,zero,8794 <__any_on+0x70>
    8774:	18c5883a 	add	r2,r3,r3
    8778:	1085883a 	add	r2,r2,r2
    877c:	208d883a 	add	r6,r4,r2
    8780:	30c00017 	ldw	r3,0(r6)
    8784:	1944d83a 	srl	r2,r3,r5
    8788:	1144983a 	sll	r2,r2,r5
    878c:	18bff41e 	bne	r3,r2,8760 <__any_on+0x3c>
    8790:	003feb06 	br	8740 <__any_on+0x1c>
    8794:	18c5883a 	add	r2,r3,r3
    8798:	1085883a 	add	r2,r2,r2
    879c:	208d883a 	add	r6,r4,r2
    87a0:	003fe706 	br	8740 <__any_on+0x1c>
    87a4:	0005883a 	mov	r2,zero
    87a8:	f800283a 	ret

000087ac <_Balloc>:
    87ac:	20c01317 	ldw	r3,76(r4)
    87b0:	defffb04 	addi	sp,sp,-20
    87b4:	dcc00315 	stw	r19,12(sp)
    87b8:	dc800215 	stw	r18,8(sp)
    87bc:	dfc00415 	stw	ra,16(sp)
    87c0:	2825883a 	mov	r18,r5
    87c4:	dc400115 	stw	r17,4(sp)
    87c8:	dc000015 	stw	r16,0(sp)
    87cc:	2027883a 	mov	r19,r4
    87d0:	01800404 	movi	r6,16
    87d4:	01400104 	movi	r5,4
    87d8:	18001726 	beq	r3,zero,8838 <_Balloc+0x8c>
    87dc:	01400044 	movi	r5,1
    87e0:	9485883a 	add	r2,r18,r18
    87e4:	2ca2983a 	sll	r17,r5,r18
    87e8:	1085883a 	add	r2,r2,r2
    87ec:	10c7883a 	add	r3,r2,r3
    87f0:	1c000017 	ldw	r16,0(r3)
    87f4:	8c4d883a 	add	r6,r17,r17
    87f8:	318d883a 	add	r6,r6,r6
    87fc:	9809883a 	mov	r4,r19
    8800:	31800504 	addi	r6,r6,20
    8804:	80001226 	beq	r16,zero,8850 <_Balloc+0xa4>
    8808:	80800017 	ldw	r2,0(r16)
    880c:	18800015 	stw	r2,0(r3)
    8810:	80000415 	stw	zero,16(r16)
    8814:	80000315 	stw	zero,12(r16)
    8818:	8005883a 	mov	r2,r16
    881c:	dfc00417 	ldw	ra,16(sp)
    8820:	dcc00317 	ldw	r19,12(sp)
    8824:	dc800217 	ldw	r18,8(sp)
    8828:	dc400117 	ldw	r17,4(sp)
    882c:	dc000017 	ldw	r16,0(sp)
    8830:	dec00504 	addi	sp,sp,20
    8834:	f800283a 	ret
    8838:	0009c0c0 	call	9c0c <_calloc_r>
    883c:	1007883a 	mov	r3,r2
    8840:	0021883a 	mov	r16,zero
    8844:	98801315 	stw	r2,76(r19)
    8848:	103fe41e 	bne	r2,zero,87dc <_Balloc+0x30>
    884c:	003ff206 	br	8818 <_Balloc+0x6c>
    8850:	0009c0c0 	call	9c0c <_calloc_r>
    8854:	103ff026 	beq	r2,zero,8818 <_Balloc+0x6c>
    8858:	1021883a 	mov	r16,r2
    885c:	14800115 	stw	r18,4(r2)
    8860:	14400215 	stw	r17,8(r2)
    8864:	003fea06 	br	8810 <_Balloc+0x64>

00008868 <__d2b>:
    8868:	defff504 	addi	sp,sp,-44
    886c:	dcc00515 	stw	r19,20(sp)
    8870:	04c00044 	movi	r19,1
    8874:	dc000215 	stw	r16,8(sp)
    8878:	2821883a 	mov	r16,r5
    887c:	980b883a 	mov	r5,r19
    8880:	ddc00915 	stw	r23,36(sp)
    8884:	dd800815 	stw	r22,32(sp)
    8888:	dd400715 	stw	r21,28(sp)
    888c:	dd000615 	stw	r20,24(sp)
    8890:	dc800415 	stw	r18,16(sp)
    8894:	dc400315 	stw	r17,12(sp)
    8898:	dfc00a15 	stw	ra,40(sp)
    889c:	3023883a 	mov	r17,r6
    88a0:	382d883a 	mov	r22,r7
    88a4:	ddc00b17 	ldw	r23,44(sp)
    88a8:	00087ac0 	call	87ac <_Balloc>
    88ac:	1025883a 	mov	r18,r2
    88b0:	00a00034 	movhi	r2,32768
    88b4:	10bfffc4 	addi	r2,r2,-1
    88b8:	8888703a 	and	r4,r17,r2
    88bc:	202ad53a 	srli	r21,r4,20
    88c0:	00800434 	movhi	r2,16
    88c4:	10bfffc4 	addi	r2,r2,-1
    88c8:	8886703a 	and	r3,r17,r2
    88cc:	a829003a 	cmpeq	r20,r21,zero
    88d0:	800b883a 	mov	r5,r16
    88d4:	d8c00115 	stw	r3,4(sp)
    88d8:	94000504 	addi	r16,r18,20
    88dc:	a000021e 	bne	r20,zero,88e8 <__d2b+0x80>
    88e0:	18c00434 	orhi	r3,r3,16
    88e4:	d8c00115 	stw	r3,4(sp)
    88e8:	28002726 	beq	r5,zero,8988 <__d2b+0x120>
    88ec:	d809883a 	mov	r4,sp
    88f0:	d9400015 	stw	r5,0(sp)
    88f4:	00082c40 	call	82c4 <__lo0bits>
    88f8:	100d883a 	mov	r6,r2
    88fc:	10003526 	beq	r2,zero,89d4 <__d2b+0x16c>
    8900:	d8c00117 	ldw	r3,4(sp)
    8904:	00800804 	movi	r2,32
    8908:	1185c83a 	sub	r2,r2,r6
    890c:	d9000017 	ldw	r4,0(sp)
    8910:	1886983a 	sll	r3,r3,r2
    8914:	1906b03a 	or	r3,r3,r4
    8918:	90c00515 	stw	r3,20(r18)
    891c:	d8c00117 	ldw	r3,4(sp)
    8920:	1986d83a 	srl	r3,r3,r6
    8924:	d8c00115 	stw	r3,4(sp)
    8928:	180b003a 	cmpeq	r5,r3,zero
    892c:	00800084 	movi	r2,2
    8930:	114bc83a 	sub	r5,r2,r5
    8934:	80c00115 	stw	r3,4(r16)
    8938:	91400415 	stw	r5,16(r18)
    893c:	a0001a1e 	bne	r20,zero,89a8 <__d2b+0x140>
    8940:	3545883a 	add	r2,r6,r21
    8944:	10bef344 	addi	r2,r2,-1075
    8948:	00c00d44 	movi	r3,53
    894c:	b0800015 	stw	r2,0(r22)
    8950:	1987c83a 	sub	r3,r3,r6
    8954:	b8c00015 	stw	r3,0(r23)
    8958:	9005883a 	mov	r2,r18
    895c:	dfc00a17 	ldw	ra,40(sp)
    8960:	ddc00917 	ldw	r23,36(sp)
    8964:	dd800817 	ldw	r22,32(sp)
    8968:	dd400717 	ldw	r21,28(sp)
    896c:	dd000617 	ldw	r20,24(sp)
    8970:	dcc00517 	ldw	r19,20(sp)
    8974:	dc800417 	ldw	r18,16(sp)
    8978:	dc400317 	ldw	r17,12(sp)
    897c:	dc000217 	ldw	r16,8(sp)
    8980:	dec00b04 	addi	sp,sp,44
    8984:	f800283a 	ret
    8988:	d9000104 	addi	r4,sp,4
    898c:	00082c40 	call	82c4 <__lo0bits>
    8990:	11800804 	addi	r6,r2,32
    8994:	d8800117 	ldw	r2,4(sp)
    8998:	94c00415 	stw	r19,16(r18)
    899c:	980b883a 	mov	r5,r19
    89a0:	90800515 	stw	r2,20(r18)
    89a4:	a03fe626 	beq	r20,zero,8940 <__d2b+0xd8>
    89a8:	2945883a 	add	r2,r5,r5
    89ac:	1085883a 	add	r2,r2,r2
    89b0:	1405883a 	add	r2,r2,r16
    89b4:	113fff17 	ldw	r4,-4(r2)
    89b8:	30fef384 	addi	r3,r6,-1074
    89bc:	2820917a 	slli	r16,r5,5
    89c0:	b0c00015 	stw	r3,0(r22)
    89c4:	00082540 	call	8254 <__hi0bits>
    89c8:	80a1c83a 	sub	r16,r16,r2
    89cc:	bc000015 	stw	r16,0(r23)
    89d0:	003fe106 	br	8958 <__d2b+0xf0>
    89d4:	d8800017 	ldw	r2,0(sp)
    89d8:	90800515 	stw	r2,20(r18)
    89dc:	d8c00117 	ldw	r3,4(sp)
    89e0:	003fd106 	br	8928 <__d2b+0xc0>

000089e4 <__mdiff>:
    89e4:	defffb04 	addi	sp,sp,-20
    89e8:	dc000015 	stw	r16,0(sp)
    89ec:	2821883a 	mov	r16,r5
    89f0:	dc800215 	stw	r18,8(sp)
    89f4:	300b883a 	mov	r5,r6
    89f8:	2025883a 	mov	r18,r4
    89fc:	8009883a 	mov	r4,r16
    8a00:	dc400115 	stw	r17,4(sp)
    8a04:	dfc00415 	stw	ra,16(sp)
    8a08:	dcc00315 	stw	r19,12(sp)
    8a0c:	3023883a 	mov	r17,r6
    8a10:	00083880 	call	8388 <__mcmp>
    8a14:	10004226 	beq	r2,zero,8b20 <__mdiff+0x13c>
    8a18:	10005016 	blt	r2,zero,8b5c <__mdiff+0x178>
    8a1c:	0027883a 	mov	r19,zero
    8a20:	81400117 	ldw	r5,4(r16)
    8a24:	9009883a 	mov	r4,r18
    8a28:	00087ac0 	call	87ac <_Balloc>
    8a2c:	1019883a 	mov	r12,r2
    8a30:	82800417 	ldw	r10,16(r16)
    8a34:	88800417 	ldw	r2,16(r17)
    8a38:	81800504 	addi	r6,r16,20
    8a3c:	5287883a 	add	r3,r10,r10
    8a40:	1085883a 	add	r2,r2,r2
    8a44:	18c7883a 	add	r3,r3,r3
    8a48:	1085883a 	add	r2,r2,r2
    8a4c:	8a000504 	addi	r8,r17,20
    8a50:	64c00315 	stw	r19,12(r12)
    8a54:	30db883a 	add	r13,r6,r3
    8a58:	4097883a 	add	r11,r8,r2
    8a5c:	61c00504 	addi	r7,r12,20
    8a60:	0013883a 	mov	r9,zero
    8a64:	31000017 	ldw	r4,0(r6)
    8a68:	41400017 	ldw	r5,0(r8)
    8a6c:	42000104 	addi	r8,r8,4
    8a70:	20bfffcc 	andi	r2,r4,65535
    8a74:	28ffffcc 	andi	r3,r5,65535
    8a78:	10c5c83a 	sub	r2,r2,r3
    8a7c:	1245883a 	add	r2,r2,r9
    8a80:	2008d43a 	srli	r4,r4,16
    8a84:	280ad43a 	srli	r5,r5,16
    8a88:	1007d43a 	srai	r3,r2,16
    8a8c:	3880000d 	sth	r2,0(r7)
    8a90:	2149c83a 	sub	r4,r4,r5
    8a94:	20c9883a 	add	r4,r4,r3
    8a98:	3900008d 	sth	r4,2(r7)
    8a9c:	31800104 	addi	r6,r6,4
    8aa0:	39c00104 	addi	r7,r7,4
    8aa4:	2013d43a 	srai	r9,r4,16
    8aa8:	42ffee36 	bltu	r8,r11,8a64 <__mdiff+0x80>
    8aac:	33400c2e 	bgeu	r6,r13,8ae0 <__mdiff+0xfc>
    8ab0:	30800017 	ldw	r2,0(r6)
    8ab4:	31800104 	addi	r6,r6,4
    8ab8:	10ffffcc 	andi	r3,r2,65535
    8abc:	1a47883a 	add	r3,r3,r9
    8ac0:	1004d43a 	srli	r2,r2,16
    8ac4:	1809d43a 	srai	r4,r3,16
    8ac8:	38c0000d 	sth	r3,0(r7)
    8acc:	1105883a 	add	r2,r2,r4
    8ad0:	3880008d 	sth	r2,2(r7)
    8ad4:	1013d43a 	srai	r9,r2,16
    8ad8:	39c00104 	addi	r7,r7,4
    8adc:	337ff436 	bltu	r6,r13,8ab0 <__mdiff+0xcc>
    8ae0:	38bfff17 	ldw	r2,-4(r7)
    8ae4:	38ffff04 	addi	r3,r7,-4
    8ae8:	1000041e 	bne	r2,zero,8afc <__mdiff+0x118>
    8aec:	18ffff04 	addi	r3,r3,-4
    8af0:	18800017 	ldw	r2,0(r3)
    8af4:	52bfffc4 	addi	r10,r10,-1
    8af8:	103ffc26 	beq	r2,zero,8aec <__mdiff+0x108>
    8afc:	6005883a 	mov	r2,r12
    8b00:	62800415 	stw	r10,16(r12)
    8b04:	dfc00417 	ldw	ra,16(sp)
    8b08:	dcc00317 	ldw	r19,12(sp)
    8b0c:	dc800217 	ldw	r18,8(sp)
    8b10:	dc400117 	ldw	r17,4(sp)
    8b14:	dc000017 	ldw	r16,0(sp)
    8b18:	dec00504 	addi	sp,sp,20
    8b1c:	f800283a 	ret
    8b20:	9009883a 	mov	r4,r18
    8b24:	000b883a 	mov	r5,zero
    8b28:	00087ac0 	call	87ac <_Balloc>
    8b2c:	1019883a 	mov	r12,r2
    8b30:	00800044 	movi	r2,1
    8b34:	60800415 	stw	r2,16(r12)
    8b38:	6005883a 	mov	r2,r12
    8b3c:	60000515 	stw	zero,20(r12)
    8b40:	dfc00417 	ldw	ra,16(sp)
    8b44:	dcc00317 	ldw	r19,12(sp)
    8b48:	dc800217 	ldw	r18,8(sp)
    8b4c:	dc400117 	ldw	r17,4(sp)
    8b50:	dc000017 	ldw	r16,0(sp)
    8b54:	dec00504 	addi	sp,sp,20
    8b58:	f800283a 	ret
    8b5c:	880d883a 	mov	r6,r17
    8b60:	04c00044 	movi	r19,1
    8b64:	8023883a 	mov	r17,r16
    8b68:	3021883a 	mov	r16,r6
    8b6c:	003fac06 	br	8a20 <__mdiff+0x3c>

00008b70 <__lshift>:
    8b70:	defff904 	addi	sp,sp,-28
    8b74:	28800417 	ldw	r2,16(r5)
    8b78:	dc000015 	stw	r16,0(sp)
    8b7c:	3021d17a 	srai	r16,r6,5
    8b80:	28c00217 	ldw	r3,8(r5)
    8b84:	10800044 	addi	r2,r2,1
    8b88:	dc400115 	stw	r17,4(sp)
    8b8c:	80a3883a 	add	r17,r16,r2
    8b90:	dd400515 	stw	r21,20(sp)
    8b94:	dd000415 	stw	r20,16(sp)
    8b98:	dc800215 	stw	r18,8(sp)
    8b9c:	dfc00615 	stw	ra,24(sp)
    8ba0:	2825883a 	mov	r18,r5
    8ba4:	dcc00315 	stw	r19,12(sp)
    8ba8:	3029883a 	mov	r20,r6
    8bac:	202b883a 	mov	r21,r4
    8bb0:	29400117 	ldw	r5,4(r5)
    8bb4:	1c40030e 	bge	r3,r17,8bc4 <__lshift+0x54>
    8bb8:	18c7883a 	add	r3,r3,r3
    8bbc:	29400044 	addi	r5,r5,1
    8bc0:	1c7ffd16 	blt	r3,r17,8bb8 <__lshift+0x48>
    8bc4:	a809883a 	mov	r4,r21
    8bc8:	00087ac0 	call	87ac <_Balloc>
    8bcc:	1027883a 	mov	r19,r2
    8bd0:	11400504 	addi	r5,r2,20
    8bd4:	0400090e 	bge	zero,r16,8bfc <__lshift+0x8c>
    8bd8:	2805883a 	mov	r2,r5
    8bdc:	0007883a 	mov	r3,zero
    8be0:	18c00044 	addi	r3,r3,1
    8be4:	10000015 	stw	zero,0(r2)
    8be8:	10800104 	addi	r2,r2,4
    8bec:	80fffc1e 	bne	r16,r3,8be0 <__lshift+0x70>
    8bf0:	8405883a 	add	r2,r16,r16
    8bf4:	1085883a 	add	r2,r2,r2
    8bf8:	288b883a 	add	r5,r5,r2
    8bfc:	90800417 	ldw	r2,16(r18)
    8c00:	91000504 	addi	r4,r18,20
    8c04:	a18007cc 	andi	r6,r20,31
    8c08:	1085883a 	add	r2,r2,r2
    8c0c:	1085883a 	add	r2,r2,r2
    8c10:	208f883a 	add	r7,r4,r2
    8c14:	30001e26 	beq	r6,zero,8c90 <__lshift+0x120>
    8c18:	00800804 	movi	r2,32
    8c1c:	1191c83a 	sub	r8,r2,r6
    8c20:	0007883a 	mov	r3,zero
    8c24:	20800017 	ldw	r2,0(r4)
    8c28:	1184983a 	sll	r2,r2,r6
    8c2c:	1884b03a 	or	r2,r3,r2
    8c30:	28800015 	stw	r2,0(r5)
    8c34:	20c00017 	ldw	r3,0(r4)
    8c38:	21000104 	addi	r4,r4,4
    8c3c:	29400104 	addi	r5,r5,4
    8c40:	1a06d83a 	srl	r3,r3,r8
    8c44:	21fff736 	bltu	r4,r7,8c24 <__lshift+0xb4>
    8c48:	28c00015 	stw	r3,0(r5)
    8c4c:	18000126 	beq	r3,zero,8c54 <__lshift+0xe4>
    8c50:	8c400044 	addi	r17,r17,1
    8c54:	88bfffc4 	addi	r2,r17,-1
    8c58:	98800415 	stw	r2,16(r19)
    8c5c:	a809883a 	mov	r4,r21
    8c60:	900b883a 	mov	r5,r18
    8c64:	000822c0 	call	822c <_Bfree>
    8c68:	9805883a 	mov	r2,r19
    8c6c:	dfc00617 	ldw	ra,24(sp)
    8c70:	dd400517 	ldw	r21,20(sp)
    8c74:	dd000417 	ldw	r20,16(sp)
    8c78:	dcc00317 	ldw	r19,12(sp)
    8c7c:	dc800217 	ldw	r18,8(sp)
    8c80:	dc400117 	ldw	r17,4(sp)
    8c84:	dc000017 	ldw	r16,0(sp)
    8c88:	dec00704 	addi	sp,sp,28
    8c8c:	f800283a 	ret
    8c90:	20800017 	ldw	r2,0(r4)
    8c94:	21000104 	addi	r4,r4,4
    8c98:	28800015 	stw	r2,0(r5)
    8c9c:	29400104 	addi	r5,r5,4
    8ca0:	21ffec2e 	bgeu	r4,r7,8c54 <__lshift+0xe4>
    8ca4:	20800017 	ldw	r2,0(r4)
    8ca8:	21000104 	addi	r4,r4,4
    8cac:	28800015 	stw	r2,0(r5)
    8cb0:	29400104 	addi	r5,r5,4
    8cb4:	21fff636 	bltu	r4,r7,8c90 <__lshift+0x120>
    8cb8:	003fe606 	br	8c54 <__lshift+0xe4>

00008cbc <__multiply>:
    8cbc:	defff004 	addi	sp,sp,-64
    8cc0:	dc800815 	stw	r18,32(sp)
    8cc4:	dc400715 	stw	r17,28(sp)
    8cc8:	2c800417 	ldw	r18,16(r5)
    8ccc:	34400417 	ldw	r17,16(r6)
    8cd0:	dcc00915 	stw	r19,36(sp)
    8cd4:	dc000615 	stw	r16,24(sp)
    8cd8:	dfc00f15 	stw	ra,60(sp)
    8cdc:	df000e15 	stw	fp,56(sp)
    8ce0:	ddc00d15 	stw	r23,52(sp)
    8ce4:	dd800c15 	stw	r22,48(sp)
    8ce8:	dd400b15 	stw	r21,44(sp)
    8cec:	dd000a15 	stw	r20,40(sp)
    8cf0:	2821883a 	mov	r16,r5
    8cf4:	3027883a 	mov	r19,r6
    8cf8:	9440040e 	bge	r18,r17,8d0c <__multiply+0x50>
    8cfc:	8825883a 	mov	r18,r17
    8d00:	2c400417 	ldw	r17,16(r5)
    8d04:	2827883a 	mov	r19,r5
    8d08:	3021883a 	mov	r16,r6
    8d0c:	80800217 	ldw	r2,8(r16)
    8d10:	9447883a 	add	r3,r18,r17
    8d14:	d8c00415 	stw	r3,16(sp)
    8d18:	81400117 	ldw	r5,4(r16)
    8d1c:	10c0010e 	bge	r2,r3,8d24 <__multiply+0x68>
    8d20:	29400044 	addi	r5,r5,1
    8d24:	00087ac0 	call	87ac <_Balloc>
    8d28:	d8800515 	stw	r2,20(sp)
    8d2c:	d9000417 	ldw	r4,16(sp)
    8d30:	d8c00517 	ldw	r3,20(sp)
    8d34:	2105883a 	add	r2,r4,r4
    8d38:	1085883a 	add	r2,r2,r2
    8d3c:	19000504 	addi	r4,r3,20
    8d40:	2085883a 	add	r2,r4,r2
    8d44:	d8800315 	stw	r2,12(sp)
    8d48:	2080052e 	bgeu	r4,r2,8d60 <__multiply+0xa4>
    8d4c:	2005883a 	mov	r2,r4
    8d50:	d8c00317 	ldw	r3,12(sp)
    8d54:	10000015 	stw	zero,0(r2)
    8d58:	10800104 	addi	r2,r2,4
    8d5c:	10fffc36 	bltu	r2,r3,8d50 <__multiply+0x94>
    8d60:	8c45883a 	add	r2,r17,r17
    8d64:	9487883a 	add	r3,r18,r18
    8d68:	9dc00504 	addi	r23,r19,20
    8d6c:	1085883a 	add	r2,r2,r2
    8d70:	84000504 	addi	r16,r16,20
    8d74:	18c7883a 	add	r3,r3,r3
    8d78:	b885883a 	add	r2,r23,r2
    8d7c:	dc000015 	stw	r16,0(sp)
    8d80:	d8800215 	stw	r2,8(sp)
    8d84:	80f9883a 	add	fp,r16,r3
    8d88:	b880432e 	bgeu	r23,r2,8e98 <__multiply+0x1dc>
    8d8c:	d9000115 	stw	r4,4(sp)
    8d90:	b9000017 	ldw	r4,0(r23)
    8d94:	253fffcc 	andi	r20,r4,65535
    8d98:	a0001a26 	beq	r20,zero,8e04 <__multiply+0x148>
    8d9c:	dcc00017 	ldw	r19,0(sp)
    8da0:	dc800117 	ldw	r18,4(sp)
    8da4:	002b883a 	mov	r21,zero
    8da8:	9c400017 	ldw	r17,0(r19)
    8dac:	94000017 	ldw	r16,0(r18)
    8db0:	a009883a 	mov	r4,r20
    8db4:	897fffcc 	andi	r5,r17,65535
    8db8:	0002c240 	call	2c24 <__mulsi3>
    8dbc:	880ad43a 	srli	r5,r17,16
    8dc0:	80ffffcc 	andi	r3,r16,65535
    8dc4:	a8c7883a 	add	r3,r21,r3
    8dc8:	a009883a 	mov	r4,r20
    8dcc:	10e3883a 	add	r17,r2,r3
    8dd0:	8020d43a 	srli	r16,r16,16
    8dd4:	0002c240 	call	2c24 <__mulsi3>
    8dd8:	8806d43a 	srli	r3,r17,16
    8ddc:	1405883a 	add	r2,r2,r16
    8de0:	9cc00104 	addi	r19,r19,4
    8de4:	1887883a 	add	r3,r3,r2
    8de8:	90c0008d 	sth	r3,2(r18)
    8dec:	9440000d 	sth	r17,0(r18)
    8df0:	182ad43a 	srli	r21,r3,16
    8df4:	94800104 	addi	r18,r18,4
    8df8:	9f3feb36 	bltu	r19,fp,8da8 <__multiply+0xec>
    8dfc:	95400015 	stw	r21,0(r18)
    8e00:	b9000017 	ldw	r4,0(r23)
    8e04:	202ad43a 	srli	r21,r4,16
    8e08:	a8001c26 	beq	r21,zero,8e7c <__multiply+0x1c0>
    8e0c:	d9000117 	ldw	r4,4(sp)
    8e10:	dd000017 	ldw	r20,0(sp)
    8e14:	002d883a 	mov	r22,zero
    8e18:	24c00017 	ldw	r19,0(r4)
    8e1c:	2025883a 	mov	r18,r4
    8e20:	9823883a 	mov	r17,r19
    8e24:	a4000017 	ldw	r16,0(r20)
    8e28:	a809883a 	mov	r4,r21
    8e2c:	a5000104 	addi	r20,r20,4
    8e30:	817fffcc 	andi	r5,r16,65535
    8e34:	0002c240 	call	2c24 <__mulsi3>
    8e38:	8806d43a 	srli	r3,r17,16
    8e3c:	800ad43a 	srli	r5,r16,16
    8e40:	94c0000d 	sth	r19,0(r18)
    8e44:	b0c7883a 	add	r3,r22,r3
    8e48:	10e1883a 	add	r16,r2,r3
    8e4c:	9400008d 	sth	r16,2(r18)
    8e50:	a809883a 	mov	r4,r21
    8e54:	94800104 	addi	r18,r18,4
    8e58:	0002c240 	call	2c24 <__mulsi3>
    8e5c:	94400017 	ldw	r17,0(r18)
    8e60:	8020d43a 	srli	r16,r16,16
    8e64:	88ffffcc 	andi	r3,r17,65535
    8e68:	10c5883a 	add	r2,r2,r3
    8e6c:	80a7883a 	add	r19,r16,r2
    8e70:	982cd43a 	srli	r22,r19,16
    8e74:	a73feb36 	bltu	r20,fp,8e24 <__multiply+0x168>
    8e78:	94c00015 	stw	r19,0(r18)
    8e7c:	d8800217 	ldw	r2,8(sp)
    8e80:	bdc00104 	addi	r23,r23,4
    8e84:	b880042e 	bgeu	r23,r2,8e98 <__multiply+0x1dc>
    8e88:	d8c00117 	ldw	r3,4(sp)
    8e8c:	18c00104 	addi	r3,r3,4
    8e90:	d8c00115 	stw	r3,4(sp)
    8e94:	003fbe06 	br	8d90 <__multiply+0xd4>
    8e98:	d9000417 	ldw	r4,16(sp)
    8e9c:	01000c0e 	bge	zero,r4,8ed0 <__multiply+0x214>
    8ea0:	d8c00317 	ldw	r3,12(sp)
    8ea4:	18bfff17 	ldw	r2,-4(r3)
    8ea8:	18ffff04 	addi	r3,r3,-4
    8eac:	10000326 	beq	r2,zero,8ebc <__multiply+0x200>
    8eb0:	00000706 	br	8ed0 <__multiply+0x214>
    8eb4:	18800017 	ldw	r2,0(r3)
    8eb8:	1000051e 	bne	r2,zero,8ed0 <__multiply+0x214>
    8ebc:	d9000417 	ldw	r4,16(sp)
    8ec0:	18ffff04 	addi	r3,r3,-4
    8ec4:	213fffc4 	addi	r4,r4,-1
    8ec8:	d9000415 	stw	r4,16(sp)
    8ecc:	203ff91e 	bne	r4,zero,8eb4 <__multiply+0x1f8>
    8ed0:	d8800417 	ldw	r2,16(sp)
    8ed4:	d8c00517 	ldw	r3,20(sp)
    8ed8:	18800415 	stw	r2,16(r3)
    8edc:	1805883a 	mov	r2,r3
    8ee0:	dfc00f17 	ldw	ra,60(sp)
    8ee4:	df000e17 	ldw	fp,56(sp)
    8ee8:	ddc00d17 	ldw	r23,52(sp)
    8eec:	dd800c17 	ldw	r22,48(sp)
    8ef0:	dd400b17 	ldw	r21,44(sp)
    8ef4:	dd000a17 	ldw	r20,40(sp)
    8ef8:	dcc00917 	ldw	r19,36(sp)
    8efc:	dc800817 	ldw	r18,32(sp)
    8f00:	dc400717 	ldw	r17,28(sp)
    8f04:	dc000617 	ldw	r16,24(sp)
    8f08:	dec01004 	addi	sp,sp,64
    8f0c:	f800283a 	ret

00008f10 <__i2b>:
    8f10:	defffd04 	addi	sp,sp,-12
    8f14:	dc000015 	stw	r16,0(sp)
    8f18:	04000044 	movi	r16,1
    8f1c:	dc800115 	stw	r18,4(sp)
    8f20:	2825883a 	mov	r18,r5
    8f24:	800b883a 	mov	r5,r16
    8f28:	dfc00215 	stw	ra,8(sp)
    8f2c:	00087ac0 	call	87ac <_Balloc>
    8f30:	14000415 	stw	r16,16(r2)
    8f34:	14800515 	stw	r18,20(r2)
    8f38:	dfc00217 	ldw	ra,8(sp)
    8f3c:	dc800117 	ldw	r18,4(sp)
    8f40:	dc000017 	ldw	r16,0(sp)
    8f44:	dec00304 	addi	sp,sp,12
    8f48:	f800283a 	ret

00008f4c <__multadd>:
    8f4c:	defff604 	addi	sp,sp,-40
    8f50:	dd800615 	stw	r22,24(sp)
    8f54:	2d800417 	ldw	r22,16(r5)
    8f58:	df000815 	stw	fp,32(sp)
    8f5c:	ddc00715 	stw	r23,28(sp)
    8f60:	dd400515 	stw	r21,20(sp)
    8f64:	dd000415 	stw	r20,16(sp)
    8f68:	dcc00315 	stw	r19,12(sp)
    8f6c:	dc800215 	stw	r18,8(sp)
    8f70:	dfc00915 	stw	ra,36(sp)
    8f74:	dc400115 	stw	r17,4(sp)
    8f78:	dc000015 	stw	r16,0(sp)
    8f7c:	282f883a 	mov	r23,r5
    8f80:	2039883a 	mov	fp,r4
    8f84:	302b883a 	mov	r21,r6
    8f88:	3829883a 	mov	r20,r7
    8f8c:	2c800504 	addi	r18,r5,20
    8f90:	0027883a 	mov	r19,zero
    8f94:	94400017 	ldw	r17,0(r18)
    8f98:	a80b883a 	mov	r5,r21
    8f9c:	9cc00044 	addi	r19,r19,1
    8fa0:	893fffcc 	andi	r4,r17,65535
    8fa4:	0002c240 	call	2c24 <__mulsi3>
    8fa8:	8808d43a 	srli	r4,r17,16
    8fac:	1521883a 	add	r16,r2,r20
    8fb0:	a80b883a 	mov	r5,r21
    8fb4:	0002c240 	call	2c24 <__mulsi3>
    8fb8:	8008d43a 	srli	r4,r16,16
    8fbc:	843fffcc 	andi	r16,r16,65535
    8fc0:	1105883a 	add	r2,r2,r4
    8fc4:	1006943a 	slli	r3,r2,16
    8fc8:	1028d43a 	srli	r20,r2,16
    8fcc:	1c07883a 	add	r3,r3,r16
    8fd0:	90c00015 	stw	r3,0(r18)
    8fd4:	94800104 	addi	r18,r18,4
    8fd8:	9dbfee16 	blt	r19,r22,8f94 <__multadd+0x48>
    8fdc:	a0000826 	beq	r20,zero,9000 <__multadd+0xb4>
    8fe0:	b8800217 	ldw	r2,8(r23)
    8fe4:	b080130e 	bge	r22,r2,9034 <__multadd+0xe8>
    8fe8:	b585883a 	add	r2,r22,r22
    8fec:	1085883a 	add	r2,r2,r2
    8ff0:	15c5883a 	add	r2,r2,r23
    8ff4:	b0c00044 	addi	r3,r22,1
    8ff8:	15000515 	stw	r20,20(r2)
    8ffc:	b8c00415 	stw	r3,16(r23)
    9000:	b805883a 	mov	r2,r23
    9004:	dfc00917 	ldw	ra,36(sp)
    9008:	df000817 	ldw	fp,32(sp)
    900c:	ddc00717 	ldw	r23,28(sp)
    9010:	dd800617 	ldw	r22,24(sp)
    9014:	dd400517 	ldw	r21,20(sp)
    9018:	dd000417 	ldw	r20,16(sp)
    901c:	dcc00317 	ldw	r19,12(sp)
    9020:	dc800217 	ldw	r18,8(sp)
    9024:	dc400117 	ldw	r17,4(sp)
    9028:	dc000017 	ldw	r16,0(sp)
    902c:	dec00a04 	addi	sp,sp,40
    9030:	f800283a 	ret
    9034:	b9400117 	ldw	r5,4(r23)
    9038:	e009883a 	mov	r4,fp
    903c:	29400044 	addi	r5,r5,1
    9040:	00087ac0 	call	87ac <_Balloc>
    9044:	b9800417 	ldw	r6,16(r23)
    9048:	b9400304 	addi	r5,r23,12
    904c:	11000304 	addi	r4,r2,12
    9050:	318d883a 	add	r6,r6,r6
    9054:	318d883a 	add	r6,r6,r6
    9058:	31800204 	addi	r6,r6,8
    905c:	1023883a 	mov	r17,r2
    9060:	00080140 	call	8014 <memcpy>
    9064:	b80b883a 	mov	r5,r23
    9068:	e009883a 	mov	r4,fp
    906c:	000822c0 	call	822c <_Bfree>
    9070:	882f883a 	mov	r23,r17
    9074:	003fdc06 	br	8fe8 <__multadd+0x9c>

00009078 <__pow5mult>:
    9078:	defffa04 	addi	sp,sp,-24
    907c:	308000cc 	andi	r2,r6,3
    9080:	dd000415 	stw	r20,16(sp)
    9084:	dcc00315 	stw	r19,12(sp)
    9088:	dc000015 	stw	r16,0(sp)
    908c:	dfc00515 	stw	ra,20(sp)
    9090:	dc800215 	stw	r18,8(sp)
    9094:	dc400115 	stw	r17,4(sp)
    9098:	3021883a 	mov	r16,r6
    909c:	2027883a 	mov	r19,r4
    90a0:	2829883a 	mov	r20,r5
    90a4:	10002b1e 	bne	r2,zero,9154 <__pow5mult+0xdc>
    90a8:	8025d0ba 	srai	r18,r16,2
    90ac:	90001b26 	beq	r18,zero,911c <__pow5mult+0xa4>
    90b0:	9c001217 	ldw	r16,72(r19)
    90b4:	8000081e 	bne	r16,zero,90d8 <__pow5mult+0x60>
    90b8:	00003006 	br	917c <__pow5mult+0x104>
    90bc:	800b883a 	mov	r5,r16
    90c0:	800d883a 	mov	r6,r16
    90c4:	9809883a 	mov	r4,r19
    90c8:	90001426 	beq	r18,zero,911c <__pow5mult+0xa4>
    90cc:	80800017 	ldw	r2,0(r16)
    90d0:	10001b26 	beq	r2,zero,9140 <__pow5mult+0xc8>
    90d4:	1021883a 	mov	r16,r2
    90d8:	9080004c 	andi	r2,r18,1
    90dc:	1005003a 	cmpeq	r2,r2,zero
    90e0:	9025d07a 	srai	r18,r18,1
    90e4:	800d883a 	mov	r6,r16
    90e8:	9809883a 	mov	r4,r19
    90ec:	a00b883a 	mov	r5,r20
    90f0:	103ff21e 	bne	r2,zero,90bc <__pow5mult+0x44>
    90f4:	0008cbc0 	call	8cbc <__multiply>
    90f8:	a00b883a 	mov	r5,r20
    90fc:	9809883a 	mov	r4,r19
    9100:	1023883a 	mov	r17,r2
    9104:	000822c0 	call	822c <_Bfree>
    9108:	8829883a 	mov	r20,r17
    910c:	800b883a 	mov	r5,r16
    9110:	800d883a 	mov	r6,r16
    9114:	9809883a 	mov	r4,r19
    9118:	903fec1e 	bne	r18,zero,90cc <__pow5mult+0x54>
    911c:	a005883a 	mov	r2,r20
    9120:	dfc00517 	ldw	ra,20(sp)
    9124:	dd000417 	ldw	r20,16(sp)
    9128:	dcc00317 	ldw	r19,12(sp)
    912c:	dc800217 	ldw	r18,8(sp)
    9130:	dc400117 	ldw	r17,4(sp)
    9134:	dc000017 	ldw	r16,0(sp)
    9138:	dec00604 	addi	sp,sp,24
    913c:	f800283a 	ret
    9140:	0008cbc0 	call	8cbc <__multiply>
    9144:	80800015 	stw	r2,0(r16)
    9148:	1021883a 	mov	r16,r2
    914c:	10000015 	stw	zero,0(r2)
    9150:	003fe106 	br	90d8 <__pow5mult+0x60>
    9154:	1085883a 	add	r2,r2,r2
    9158:	00c00074 	movhi	r3,1
    915c:	18c15504 	addi	r3,r3,1364
    9160:	1085883a 	add	r2,r2,r2
    9164:	10c5883a 	add	r2,r2,r3
    9168:	11bfff17 	ldw	r6,-4(r2)
    916c:	000f883a 	mov	r7,zero
    9170:	0008f4c0 	call	8f4c <__multadd>
    9174:	1029883a 	mov	r20,r2
    9178:	003fcb06 	br	90a8 <__pow5mult+0x30>
    917c:	9809883a 	mov	r4,r19
    9180:	01409c44 	movi	r5,625
    9184:	0008f100 	call	8f10 <__i2b>
    9188:	98801215 	stw	r2,72(r19)
    918c:	1021883a 	mov	r16,r2
    9190:	10000015 	stw	zero,0(r2)
    9194:	003fd006 	br	90d8 <__pow5mult+0x60>

00009198 <__s2b>:
    9198:	defff904 	addi	sp,sp,-28
    919c:	dcc00315 	stw	r19,12(sp)
    91a0:	dc800215 	stw	r18,8(sp)
    91a4:	2827883a 	mov	r19,r5
    91a8:	2025883a 	mov	r18,r4
    91ac:	01400244 	movi	r5,9
    91b0:	39000204 	addi	r4,r7,8
    91b4:	dd000415 	stw	r20,16(sp)
    91b8:	dc400115 	stw	r17,4(sp)
    91bc:	dfc00615 	stw	ra,24(sp)
    91c0:	dd400515 	stw	r21,20(sp)
    91c4:	dc000015 	stw	r16,0(sp)
    91c8:	3829883a 	mov	r20,r7
    91cc:	3023883a 	mov	r17,r6
    91d0:	0002b540 	call	2b54 <__divsi3>
    91d4:	00c00044 	movi	r3,1
    91d8:	1880350e 	bge	r3,r2,92b0 <__s2b+0x118>
    91dc:	000b883a 	mov	r5,zero
    91e0:	18c7883a 	add	r3,r3,r3
    91e4:	29400044 	addi	r5,r5,1
    91e8:	18bffd16 	blt	r3,r2,91e0 <__s2b+0x48>
    91ec:	9009883a 	mov	r4,r18
    91f0:	00087ac0 	call	87ac <_Balloc>
    91f4:	1011883a 	mov	r8,r2
    91f8:	d8800717 	ldw	r2,28(sp)
    91fc:	00c00044 	movi	r3,1
    9200:	01800244 	movi	r6,9
    9204:	40800515 	stw	r2,20(r8)
    9208:	40c00415 	stw	r3,16(r8)
    920c:	3440260e 	bge	r6,r17,92a8 <__s2b+0x110>
    9210:	3021883a 	mov	r16,r6
    9214:	99ab883a 	add	r21,r19,r6
    9218:	9c05883a 	add	r2,r19,r16
    921c:	11c00007 	ldb	r7,0(r2)
    9220:	400b883a 	mov	r5,r8
    9224:	9009883a 	mov	r4,r18
    9228:	39fff404 	addi	r7,r7,-48
    922c:	01800284 	movi	r6,10
    9230:	0008f4c0 	call	8f4c <__multadd>
    9234:	84000044 	addi	r16,r16,1
    9238:	1011883a 	mov	r8,r2
    923c:	8c3ff61e 	bne	r17,r16,9218 <__s2b+0x80>
    9240:	ac45883a 	add	r2,r21,r17
    9244:	117ffe04 	addi	r5,r2,-8
    9248:	880d883a 	mov	r6,r17
    924c:	35000c0e 	bge	r6,r20,9280 <__s2b+0xe8>
    9250:	a185c83a 	sub	r2,r20,r6
    9254:	2821883a 	mov	r16,r5
    9258:	28a3883a 	add	r17,r5,r2
    925c:	81c00007 	ldb	r7,0(r16)
    9260:	400b883a 	mov	r5,r8
    9264:	9009883a 	mov	r4,r18
    9268:	39fff404 	addi	r7,r7,-48
    926c:	01800284 	movi	r6,10
    9270:	0008f4c0 	call	8f4c <__multadd>
    9274:	84000044 	addi	r16,r16,1
    9278:	1011883a 	mov	r8,r2
    927c:	847ff71e 	bne	r16,r17,925c <__s2b+0xc4>
    9280:	4005883a 	mov	r2,r8
    9284:	dfc00617 	ldw	ra,24(sp)
    9288:	dd400517 	ldw	r21,20(sp)
    928c:	dd000417 	ldw	r20,16(sp)
    9290:	dcc00317 	ldw	r19,12(sp)
    9294:	dc800217 	ldw	r18,8(sp)
    9298:	dc400117 	ldw	r17,4(sp)
    929c:	dc000017 	ldw	r16,0(sp)
    92a0:	dec00704 	addi	sp,sp,28
    92a4:	f800283a 	ret
    92a8:	99400284 	addi	r5,r19,10
    92ac:	003fe706 	br	924c <__s2b+0xb4>
    92b0:	000b883a 	mov	r5,zero
    92b4:	003fcd06 	br	91ec <__s2b+0x54>

000092b8 <_realloc_r>:
    92b8:	defff404 	addi	sp,sp,-48
    92bc:	dd800815 	stw	r22,32(sp)
    92c0:	dc800415 	stw	r18,16(sp)
    92c4:	dc400315 	stw	r17,12(sp)
    92c8:	dfc00b15 	stw	ra,44(sp)
    92cc:	df000a15 	stw	fp,40(sp)
    92d0:	ddc00915 	stw	r23,36(sp)
    92d4:	dd400715 	stw	r21,28(sp)
    92d8:	dd000615 	stw	r20,24(sp)
    92dc:	dcc00515 	stw	r19,20(sp)
    92e0:	dc000215 	stw	r16,8(sp)
    92e4:	2825883a 	mov	r18,r5
    92e8:	3023883a 	mov	r17,r6
    92ec:	202d883a 	mov	r22,r4
    92f0:	2800c926 	beq	r5,zero,9618 <_realloc_r+0x360>
    92f4:	000cb800 	call	cb80 <__malloc_lock>
    92f8:	943ffe04 	addi	r16,r18,-8
    92fc:	88c002c4 	addi	r3,r17,11
    9300:	00800584 	movi	r2,22
    9304:	82000117 	ldw	r8,4(r16)
    9308:	10c01b2e 	bgeu	r2,r3,9378 <_realloc_r+0xc0>
    930c:	00bffe04 	movi	r2,-8
    9310:	188e703a 	and	r7,r3,r2
    9314:	3839883a 	mov	fp,r7
    9318:	38001a16 	blt	r7,zero,9384 <_realloc_r+0xcc>
    931c:	e4401936 	bltu	fp,r17,9384 <_realloc_r+0xcc>
    9320:	013fff04 	movi	r4,-4
    9324:	4126703a 	and	r19,r8,r4
    9328:	99c02616 	blt	r19,r7,93c4 <_realloc_r+0x10c>
    932c:	802b883a 	mov	r21,r16
    9330:	9829883a 	mov	r20,r19
    9334:	84000204 	addi	r16,r16,8
    9338:	a80f883a 	mov	r7,r21
    933c:	a70dc83a 	sub	r6,r20,fp
    9340:	008003c4 	movi	r2,15
    9344:	1180c136 	bltu	r2,r6,964c <_realloc_r+0x394>
    9348:	38800117 	ldw	r2,4(r7)
    934c:	a549883a 	add	r4,r20,r21
    9350:	1080004c 	andi	r2,r2,1
    9354:	a084b03a 	or	r2,r20,r2
    9358:	38800115 	stw	r2,4(r7)
    935c:	20c00117 	ldw	r3,4(r4)
    9360:	18c00054 	ori	r3,r3,1
    9364:	20c00115 	stw	r3,4(r4)
    9368:	b009883a 	mov	r4,r22
    936c:	000cba00 	call	cba0 <__malloc_unlock>
    9370:	8023883a 	mov	r17,r16
    9374:	00000606 	br	9390 <_realloc_r+0xd8>
    9378:	01c00404 	movi	r7,16
    937c:	3839883a 	mov	fp,r7
    9380:	e47fe72e 	bgeu	fp,r17,9320 <_realloc_r+0x68>
    9384:	00800304 	movi	r2,12
    9388:	0023883a 	mov	r17,zero
    938c:	b0800015 	stw	r2,0(r22)
    9390:	8805883a 	mov	r2,r17
    9394:	dfc00b17 	ldw	ra,44(sp)
    9398:	df000a17 	ldw	fp,40(sp)
    939c:	ddc00917 	ldw	r23,36(sp)
    93a0:	dd800817 	ldw	r22,32(sp)
    93a4:	dd400717 	ldw	r21,28(sp)
    93a8:	dd000617 	ldw	r20,24(sp)
    93ac:	dcc00517 	ldw	r19,20(sp)
    93b0:	dc800417 	ldw	r18,16(sp)
    93b4:	dc400317 	ldw	r17,12(sp)
    93b8:	dc000217 	ldw	r16,8(sp)
    93bc:	dec00c04 	addi	sp,sp,48
    93c0:	f800283a 	ret
    93c4:	00800074 	movhi	r2,1
    93c8:	1082b004 	addi	r2,r2,2752
    93cc:	12400217 	ldw	r9,8(r2)
    93d0:	84cd883a 	add	r6,r16,r19
    93d4:	802b883a 	mov	r21,r16
    93d8:	3240b926 	beq	r6,r9,96c0 <_realloc_r+0x408>
    93dc:	31400117 	ldw	r5,4(r6)
    93e0:	00bfff84 	movi	r2,-2
    93e4:	2884703a 	and	r2,r5,r2
    93e8:	1185883a 	add	r2,r2,r6
    93ec:	10c00117 	ldw	r3,4(r2)
    93f0:	18c0004c 	andi	r3,r3,1
    93f4:	1807003a 	cmpeq	r3,r3,zero
    93f8:	1800a326 	beq	r3,zero,9688 <_realloc_r+0x3d0>
    93fc:	2908703a 	and	r4,r5,r4
    9400:	9929883a 	add	r20,r19,r4
    9404:	a1c0a30e 	bge	r20,r7,9694 <_realloc_r+0x3dc>
    9408:	4080004c 	andi	r2,r8,1
    940c:	1000551e 	bne	r2,zero,9564 <_realloc_r+0x2ac>
    9410:	80800017 	ldw	r2,0(r16)
    9414:	80afc83a 	sub	r23,r16,r2
    9418:	b8c00117 	ldw	r3,4(r23)
    941c:	00bfff04 	movi	r2,-4
    9420:	1884703a 	and	r2,r3,r2
    9424:	30002e26 	beq	r6,zero,94e0 <_realloc_r+0x228>
    9428:	3240b926 	beq	r6,r9,9710 <_realloc_r+0x458>
    942c:	98a9883a 	add	r20,r19,r2
    9430:	2509883a 	add	r4,r4,r20
    9434:	d9000015 	stw	r4,0(sp)
    9438:	21c02a16 	blt	r4,r7,94e4 <_realloc_r+0x22c>
    943c:	30800317 	ldw	r2,12(r6)
    9440:	30c00217 	ldw	r3,8(r6)
    9444:	01400904 	movi	r5,36
    9448:	99bfff04 	addi	r6,r19,-4
    944c:	18800315 	stw	r2,12(r3)
    9450:	10c00215 	stw	r3,8(r2)
    9454:	b9000317 	ldw	r4,12(r23)
    9458:	b8800217 	ldw	r2,8(r23)
    945c:	b82b883a 	mov	r21,r23
    9460:	bc000204 	addi	r16,r23,8
    9464:	20800215 	stw	r2,8(r4)
    9468:	11000315 	stw	r4,12(r2)
    946c:	2980e436 	bltu	r5,r6,9800 <_realloc_r+0x548>
    9470:	008004c4 	movi	r2,19
    9474:	9009883a 	mov	r4,r18
    9478:	8011883a 	mov	r8,r16
    947c:	11800f2e 	bgeu	r2,r6,94bc <_realloc_r+0x204>
    9480:	90800017 	ldw	r2,0(r18)
    9484:	ba000404 	addi	r8,r23,16
    9488:	91000204 	addi	r4,r18,8
    948c:	b8800215 	stw	r2,8(r23)
    9490:	90c00117 	ldw	r3,4(r18)
    9494:	008006c4 	movi	r2,27
    9498:	b8c00315 	stw	r3,12(r23)
    949c:	1180072e 	bgeu	r2,r6,94bc <_realloc_r+0x204>
    94a0:	90c00217 	ldw	r3,8(r18)
    94a4:	ba000604 	addi	r8,r23,24
    94a8:	91000404 	addi	r4,r18,16
    94ac:	b8c00415 	stw	r3,16(r23)
    94b0:	90800317 	ldw	r2,12(r18)
    94b4:	b8800515 	stw	r2,20(r23)
    94b8:	3140e726 	beq	r6,r5,9858 <_realloc_r+0x5a0>
    94bc:	20800017 	ldw	r2,0(r4)
    94c0:	dd000017 	ldw	r20,0(sp)
    94c4:	b80f883a 	mov	r7,r23
    94c8:	40800015 	stw	r2,0(r8)
    94cc:	20c00117 	ldw	r3,4(r4)
    94d0:	40c00115 	stw	r3,4(r8)
    94d4:	20800217 	ldw	r2,8(r4)
    94d8:	40800215 	stw	r2,8(r8)
    94dc:	003f9706 	br	933c <_realloc_r+0x84>
    94e0:	98a9883a 	add	r20,r19,r2
    94e4:	a1c01f16 	blt	r20,r7,9564 <_realloc_r+0x2ac>
    94e8:	b8c00317 	ldw	r3,12(r23)
    94ec:	b8800217 	ldw	r2,8(r23)
    94f0:	99bfff04 	addi	r6,r19,-4
    94f4:	01400904 	movi	r5,36
    94f8:	b82b883a 	mov	r21,r23
    94fc:	18800215 	stw	r2,8(r3)
    9500:	10c00315 	stw	r3,12(r2)
    9504:	bc000204 	addi	r16,r23,8
    9508:	2980c336 	bltu	r5,r6,9818 <_realloc_r+0x560>
    950c:	008004c4 	movi	r2,19
    9510:	9009883a 	mov	r4,r18
    9514:	8011883a 	mov	r8,r16
    9518:	11800f2e 	bgeu	r2,r6,9558 <_realloc_r+0x2a0>
    951c:	90800017 	ldw	r2,0(r18)
    9520:	ba000404 	addi	r8,r23,16
    9524:	91000204 	addi	r4,r18,8
    9528:	b8800215 	stw	r2,8(r23)
    952c:	90c00117 	ldw	r3,4(r18)
    9530:	008006c4 	movi	r2,27
    9534:	b8c00315 	stw	r3,12(r23)
    9538:	1180072e 	bgeu	r2,r6,9558 <_realloc_r+0x2a0>
    953c:	90c00217 	ldw	r3,8(r18)
    9540:	ba000604 	addi	r8,r23,24
    9544:	91000404 	addi	r4,r18,16
    9548:	b8c00415 	stw	r3,16(r23)
    954c:	90800317 	ldw	r2,12(r18)
    9550:	b8800515 	stw	r2,20(r23)
    9554:	3140c726 	beq	r6,r5,9874 <_realloc_r+0x5bc>
    9558:	20800017 	ldw	r2,0(r4)
    955c:	b80f883a 	mov	r7,r23
    9560:	003fd906 	br	94c8 <_realloc_r+0x210>
    9564:	880b883a 	mov	r5,r17
    9568:	b009883a 	mov	r4,r22
    956c:	00077f00 	call	77f0 <_malloc_r>
    9570:	1023883a 	mov	r17,r2
    9574:	10002526 	beq	r2,zero,960c <_realloc_r+0x354>
    9578:	80800117 	ldw	r2,4(r16)
    957c:	00ffff84 	movi	r3,-2
    9580:	893ffe04 	addi	r4,r17,-8
    9584:	10c4703a 	and	r2,r2,r3
    9588:	8085883a 	add	r2,r16,r2
    958c:	20809526 	beq	r4,r2,97e4 <_realloc_r+0x52c>
    9590:	99bfff04 	addi	r6,r19,-4
    9594:	01c00904 	movi	r7,36
    9598:	39804536 	bltu	r7,r6,96b0 <_realloc_r+0x3f8>
    959c:	008004c4 	movi	r2,19
    95a0:	9009883a 	mov	r4,r18
    95a4:	880b883a 	mov	r5,r17
    95a8:	11800f2e 	bgeu	r2,r6,95e8 <_realloc_r+0x330>
    95ac:	90800017 	ldw	r2,0(r18)
    95b0:	89400204 	addi	r5,r17,8
    95b4:	91000204 	addi	r4,r18,8
    95b8:	88800015 	stw	r2,0(r17)
    95bc:	90c00117 	ldw	r3,4(r18)
    95c0:	008006c4 	movi	r2,27
    95c4:	88c00115 	stw	r3,4(r17)
    95c8:	1180072e 	bgeu	r2,r6,95e8 <_realloc_r+0x330>
    95cc:	90c00217 	ldw	r3,8(r18)
    95d0:	89400404 	addi	r5,r17,16
    95d4:	91000404 	addi	r4,r18,16
    95d8:	88c00215 	stw	r3,8(r17)
    95dc:	90800317 	ldw	r2,12(r18)
    95e0:	88800315 	stw	r2,12(r17)
    95e4:	31c09126 	beq	r6,r7,982c <_realloc_r+0x574>
    95e8:	20800017 	ldw	r2,0(r4)
    95ec:	28800015 	stw	r2,0(r5)
    95f0:	20c00117 	ldw	r3,4(r4)
    95f4:	28c00115 	stw	r3,4(r5)
    95f8:	20800217 	ldw	r2,8(r4)
    95fc:	28800215 	stw	r2,8(r5)
    9600:	900b883a 	mov	r5,r18
    9604:	b009883a 	mov	r4,r22
    9608:	0006c680 	call	6c68 <_free_r>
    960c:	b009883a 	mov	r4,r22
    9610:	000cba00 	call	cba0 <__malloc_unlock>
    9614:	003f5e06 	br	9390 <_realloc_r+0xd8>
    9618:	300b883a 	mov	r5,r6
    961c:	dfc00b17 	ldw	ra,44(sp)
    9620:	df000a17 	ldw	fp,40(sp)
    9624:	ddc00917 	ldw	r23,36(sp)
    9628:	dd800817 	ldw	r22,32(sp)
    962c:	dd400717 	ldw	r21,28(sp)
    9630:	dd000617 	ldw	r20,24(sp)
    9634:	dcc00517 	ldw	r19,20(sp)
    9638:	dc800417 	ldw	r18,16(sp)
    963c:	dc400317 	ldw	r17,12(sp)
    9640:	dc000217 	ldw	r16,8(sp)
    9644:	dec00c04 	addi	sp,sp,48
    9648:	00077f01 	jmpi	77f0 <_malloc_r>
    964c:	38800117 	ldw	r2,4(r7)
    9650:	e54b883a 	add	r5,fp,r21
    9654:	31000054 	ori	r4,r6,1
    9658:	1080004c 	andi	r2,r2,1
    965c:	1704b03a 	or	r2,r2,fp
    9660:	38800115 	stw	r2,4(r7)
    9664:	29000115 	stw	r4,4(r5)
    9668:	2987883a 	add	r3,r5,r6
    966c:	18800117 	ldw	r2,4(r3)
    9670:	29400204 	addi	r5,r5,8
    9674:	b009883a 	mov	r4,r22
    9678:	10800054 	ori	r2,r2,1
    967c:	18800115 	stw	r2,4(r3)
    9680:	0006c680 	call	6c68 <_free_r>
    9684:	003f3806 	br	9368 <_realloc_r+0xb0>
    9688:	000d883a 	mov	r6,zero
    968c:	0009883a 	mov	r4,zero
    9690:	003f5d06 	br	9408 <_realloc_r+0x150>
    9694:	30c00217 	ldw	r3,8(r6)
    9698:	30800317 	ldw	r2,12(r6)
    969c:	800f883a 	mov	r7,r16
    96a0:	84000204 	addi	r16,r16,8
    96a4:	10c00215 	stw	r3,8(r2)
    96a8:	18800315 	stw	r2,12(r3)
    96ac:	003f2306 	br	933c <_realloc_r+0x84>
    96b0:	8809883a 	mov	r4,r17
    96b4:	900b883a 	mov	r5,r18
    96b8:	00080b40 	call	80b4 <memmove>
    96bc:	003fd006 	br	9600 <_realloc_r+0x348>
    96c0:	30800117 	ldw	r2,4(r6)
    96c4:	e0c00404 	addi	r3,fp,16
    96c8:	1108703a 	and	r4,r2,r4
    96cc:	9905883a 	add	r2,r19,r4
    96d0:	10ff4d16 	blt	r2,r3,9408 <_realloc_r+0x150>
    96d4:	1705c83a 	sub	r2,r2,fp
    96d8:	870b883a 	add	r5,r16,fp
    96dc:	10800054 	ori	r2,r2,1
    96e0:	28800115 	stw	r2,4(r5)
    96e4:	80c00117 	ldw	r3,4(r16)
    96e8:	00800074 	movhi	r2,1
    96ec:	1082b004 	addi	r2,r2,2752
    96f0:	b009883a 	mov	r4,r22
    96f4:	18c0004c 	andi	r3,r3,1
    96f8:	e0c6b03a 	or	r3,fp,r3
    96fc:	11400215 	stw	r5,8(r2)
    9700:	80c00115 	stw	r3,4(r16)
    9704:	000cba00 	call	cba0 <__malloc_unlock>
    9708:	84400204 	addi	r17,r16,8
    970c:	003f2006 	br	9390 <_realloc_r+0xd8>
    9710:	98a9883a 	add	r20,r19,r2
    9714:	2509883a 	add	r4,r4,r20
    9718:	e0800404 	addi	r2,fp,16
    971c:	d9000115 	stw	r4,4(sp)
    9720:	20bf7016 	blt	r4,r2,94e4 <_realloc_r+0x22c>
    9724:	b8c00317 	ldw	r3,12(r23)
    9728:	b8800217 	ldw	r2,8(r23)
    972c:	99bfff04 	addi	r6,r19,-4
    9730:	01400904 	movi	r5,36
    9734:	18800215 	stw	r2,8(r3)
    9738:	10c00315 	stw	r3,12(r2)
    973c:	bc400204 	addi	r17,r23,8
    9740:	29804136 	bltu	r5,r6,9848 <_realloc_r+0x590>
    9744:	008004c4 	movi	r2,19
    9748:	9009883a 	mov	r4,r18
    974c:	880f883a 	mov	r7,r17
    9750:	11800f2e 	bgeu	r2,r6,9790 <_realloc_r+0x4d8>
    9754:	90800017 	ldw	r2,0(r18)
    9758:	b9c00404 	addi	r7,r23,16
    975c:	91000204 	addi	r4,r18,8
    9760:	b8800215 	stw	r2,8(r23)
    9764:	90c00117 	ldw	r3,4(r18)
    9768:	008006c4 	movi	r2,27
    976c:	b8c00315 	stw	r3,12(r23)
    9770:	1180072e 	bgeu	r2,r6,9790 <_realloc_r+0x4d8>
    9774:	90c00217 	ldw	r3,8(r18)
    9778:	b9c00604 	addi	r7,r23,24
    977c:	91000404 	addi	r4,r18,16
    9780:	b8c00415 	stw	r3,16(r23)
    9784:	90800317 	ldw	r2,12(r18)
    9788:	b8800515 	stw	r2,20(r23)
    978c:	31404026 	beq	r6,r5,9890 <_realloc_r+0x5d8>
    9790:	20800017 	ldw	r2,0(r4)
    9794:	38800015 	stw	r2,0(r7)
    9798:	20c00117 	ldw	r3,4(r4)
    979c:	38c00115 	stw	r3,4(r7)
    97a0:	20800217 	ldw	r2,8(r4)
    97a4:	38800215 	stw	r2,8(r7)
    97a8:	d8c00117 	ldw	r3,4(sp)
    97ac:	bf0b883a 	add	r5,r23,fp
    97b0:	b009883a 	mov	r4,r22
    97b4:	1f05c83a 	sub	r2,r3,fp
    97b8:	10800054 	ori	r2,r2,1
    97bc:	28800115 	stw	r2,4(r5)
    97c0:	b8c00117 	ldw	r3,4(r23)
    97c4:	00800074 	movhi	r2,1
    97c8:	1082b004 	addi	r2,r2,2752
    97cc:	11400215 	stw	r5,8(r2)
    97d0:	18c0004c 	andi	r3,r3,1
    97d4:	e0c6b03a 	or	r3,fp,r3
    97d8:	b8c00115 	stw	r3,4(r23)
    97dc:	000cba00 	call	cba0 <__malloc_unlock>
    97e0:	003eeb06 	br	9390 <_realloc_r+0xd8>
    97e4:	20800117 	ldw	r2,4(r4)
    97e8:	00ffff04 	movi	r3,-4
    97ec:	800f883a 	mov	r7,r16
    97f0:	10c4703a 	and	r2,r2,r3
    97f4:	98a9883a 	add	r20,r19,r2
    97f8:	84000204 	addi	r16,r16,8
    97fc:	003ecf06 	br	933c <_realloc_r+0x84>
    9800:	900b883a 	mov	r5,r18
    9804:	8009883a 	mov	r4,r16
    9808:	00080b40 	call	80b4 <memmove>
    980c:	dd000017 	ldw	r20,0(sp)
    9810:	b80f883a 	mov	r7,r23
    9814:	003ec906 	br	933c <_realloc_r+0x84>
    9818:	900b883a 	mov	r5,r18
    981c:	8009883a 	mov	r4,r16
    9820:	00080b40 	call	80b4 <memmove>
    9824:	b80f883a 	mov	r7,r23
    9828:	003ec406 	br	933c <_realloc_r+0x84>
    982c:	90c00417 	ldw	r3,16(r18)
    9830:	89400604 	addi	r5,r17,24
    9834:	91000604 	addi	r4,r18,24
    9838:	88c00415 	stw	r3,16(r17)
    983c:	90800517 	ldw	r2,20(r18)
    9840:	88800515 	stw	r2,20(r17)
    9844:	003f6806 	br	95e8 <_realloc_r+0x330>
    9848:	900b883a 	mov	r5,r18
    984c:	8809883a 	mov	r4,r17
    9850:	00080b40 	call	80b4 <memmove>
    9854:	003fd406 	br	97a8 <_realloc_r+0x4f0>
    9858:	90c00417 	ldw	r3,16(r18)
    985c:	91000604 	addi	r4,r18,24
    9860:	ba000804 	addi	r8,r23,32
    9864:	b8c00615 	stw	r3,24(r23)
    9868:	90800517 	ldw	r2,20(r18)
    986c:	b8800715 	stw	r2,28(r23)
    9870:	003f1206 	br	94bc <_realloc_r+0x204>
    9874:	90c00417 	ldw	r3,16(r18)
    9878:	91000604 	addi	r4,r18,24
    987c:	ba000804 	addi	r8,r23,32
    9880:	b8c00615 	stw	r3,24(r23)
    9884:	90800517 	ldw	r2,20(r18)
    9888:	b8800715 	stw	r2,28(r23)
    988c:	003f3206 	br	9558 <_realloc_r+0x2a0>
    9890:	90c00417 	ldw	r3,16(r18)
    9894:	91000604 	addi	r4,r18,24
    9898:	b9c00804 	addi	r7,r23,32
    989c:	b8c00615 	stw	r3,24(r23)
    98a0:	90800517 	ldw	r2,20(r18)
    98a4:	b8800715 	stw	r2,28(r23)
    98a8:	003fb906 	br	9790 <_realloc_r+0x4d8>

000098ac <__isinfd>:
    98ac:	200d883a 	mov	r6,r4
    98b0:	0109c83a 	sub	r4,zero,r4
    98b4:	2188b03a 	or	r4,r4,r6
    98b8:	2008d7fa 	srli	r4,r4,31
    98bc:	00a00034 	movhi	r2,32768
    98c0:	10bfffc4 	addi	r2,r2,-1
    98c4:	1144703a 	and	r2,r2,r5
    98c8:	2088b03a 	or	r4,r4,r2
    98cc:	009ffc34 	movhi	r2,32752
    98d0:	1105c83a 	sub	r2,r2,r4
    98d4:	0087c83a 	sub	r3,zero,r2
    98d8:	10c4b03a 	or	r2,r2,r3
    98dc:	1004d7fa 	srli	r2,r2,31
    98e0:	00c00044 	movi	r3,1
    98e4:	1885c83a 	sub	r2,r3,r2
    98e8:	f800283a 	ret

000098ec <__isnand>:
    98ec:	200d883a 	mov	r6,r4
    98f0:	0109c83a 	sub	r4,zero,r4
    98f4:	2188b03a 	or	r4,r4,r6
    98f8:	2008d7fa 	srli	r4,r4,31
    98fc:	00a00034 	movhi	r2,32768
    9900:	10bfffc4 	addi	r2,r2,-1
    9904:	1144703a 	and	r2,r2,r5
    9908:	2088b03a 	or	r4,r4,r2
    990c:	009ffc34 	movhi	r2,32752
    9910:	1105c83a 	sub	r2,r2,r4
    9914:	1004d7fa 	srli	r2,r2,31
    9918:	f800283a 	ret

0000991c <_sbrk_r>:
    991c:	defffd04 	addi	sp,sp,-12
    9920:	dc000015 	stw	r16,0(sp)
    9924:	04000074 	movhi	r16,1
    9928:	840f7c04 	addi	r16,r16,15856
    992c:	dc400115 	stw	r17,4(sp)
    9930:	80000015 	stw	zero,0(r16)
    9934:	2023883a 	mov	r17,r4
    9938:	2809883a 	mov	r4,r5
    993c:	dfc00215 	stw	ra,8(sp)
    9940:	000cdbc0 	call	cdbc <sbrk>
    9944:	1007883a 	mov	r3,r2
    9948:	00bfffc4 	movi	r2,-1
    994c:	18800626 	beq	r3,r2,9968 <_sbrk_r+0x4c>
    9950:	1805883a 	mov	r2,r3
    9954:	dfc00217 	ldw	ra,8(sp)
    9958:	dc400117 	ldw	r17,4(sp)
    995c:	dc000017 	ldw	r16,0(sp)
    9960:	dec00304 	addi	sp,sp,12
    9964:	f800283a 	ret
    9968:	80800017 	ldw	r2,0(r16)
    996c:	103ff826 	beq	r2,zero,9950 <_sbrk_r+0x34>
    9970:	88800015 	stw	r2,0(r17)
    9974:	1805883a 	mov	r2,r3
    9978:	dfc00217 	ldw	ra,8(sp)
    997c:	dc400117 	ldw	r17,4(sp)
    9980:	dc000017 	ldw	r16,0(sp)
    9984:	dec00304 	addi	sp,sp,12
    9988:	f800283a 	ret

0000998c <__sclose>:
    998c:	2940038f 	ldh	r5,14(r5)
    9990:	0009cd41 	jmpi	9cd4 <_close_r>

00009994 <__sseek>:
    9994:	defffe04 	addi	sp,sp,-8
    9998:	dc000015 	stw	r16,0(sp)
    999c:	2821883a 	mov	r16,r5
    99a0:	2940038f 	ldh	r5,14(r5)
    99a4:	dfc00115 	stw	ra,4(sp)
    99a8:	0009f4c0 	call	9f4c <_lseek_r>
    99ac:	1007883a 	mov	r3,r2
    99b0:	00bfffc4 	movi	r2,-1
    99b4:	18800926 	beq	r3,r2,99dc <__sseek+0x48>
    99b8:	8080030b 	ldhu	r2,12(r16)
    99bc:	80c01415 	stw	r3,80(r16)
    99c0:	10840014 	ori	r2,r2,4096
    99c4:	8080030d 	sth	r2,12(r16)
    99c8:	1805883a 	mov	r2,r3
    99cc:	dfc00117 	ldw	ra,4(sp)
    99d0:	dc000017 	ldw	r16,0(sp)
    99d4:	dec00204 	addi	sp,sp,8
    99d8:	f800283a 	ret
    99dc:	8080030b 	ldhu	r2,12(r16)
    99e0:	10bbffcc 	andi	r2,r2,61439
    99e4:	8080030d 	sth	r2,12(r16)
    99e8:	1805883a 	mov	r2,r3
    99ec:	dfc00117 	ldw	ra,4(sp)
    99f0:	dc000017 	ldw	r16,0(sp)
    99f4:	dec00204 	addi	sp,sp,8
    99f8:	f800283a 	ret

000099fc <__swrite>:
    99fc:	2880030b 	ldhu	r2,12(r5)
    9a00:	defffb04 	addi	sp,sp,-20
    9a04:	dcc00315 	stw	r19,12(sp)
    9a08:	1080400c 	andi	r2,r2,256
    9a0c:	dc800215 	stw	r18,8(sp)
    9a10:	dc400115 	stw	r17,4(sp)
    9a14:	dc000015 	stw	r16,0(sp)
    9a18:	3027883a 	mov	r19,r6
    9a1c:	3825883a 	mov	r18,r7
    9a20:	dfc00415 	stw	ra,16(sp)
    9a24:	2821883a 	mov	r16,r5
    9a28:	000d883a 	mov	r6,zero
    9a2c:	01c00084 	movi	r7,2
    9a30:	2023883a 	mov	r17,r4
    9a34:	10000226 	beq	r2,zero,9a40 <__swrite+0x44>
    9a38:	2940038f 	ldh	r5,14(r5)
    9a3c:	0009f4c0 	call	9f4c <_lseek_r>
    9a40:	8080030b 	ldhu	r2,12(r16)
    9a44:	8140038f 	ldh	r5,14(r16)
    9a48:	8809883a 	mov	r4,r17
    9a4c:	10bbffcc 	andi	r2,r2,61439
    9a50:	980d883a 	mov	r6,r19
    9a54:	900f883a 	mov	r7,r18
    9a58:	8080030d 	sth	r2,12(r16)
    9a5c:	dfc00417 	ldw	ra,16(sp)
    9a60:	dcc00317 	ldw	r19,12(sp)
    9a64:	dc800217 	ldw	r18,8(sp)
    9a68:	dc400117 	ldw	r17,4(sp)
    9a6c:	dc000017 	ldw	r16,0(sp)
    9a70:	dec00504 	addi	sp,sp,20
    9a74:	0009b941 	jmpi	9b94 <_write_r>

00009a78 <__sread>:
    9a78:	defffe04 	addi	sp,sp,-8
    9a7c:	dc000015 	stw	r16,0(sp)
    9a80:	2821883a 	mov	r16,r5
    9a84:	2940038f 	ldh	r5,14(r5)
    9a88:	dfc00115 	stw	ra,4(sp)
    9a8c:	0009fc40 	call	9fc4 <_read_r>
    9a90:	1007883a 	mov	r3,r2
    9a94:	10000816 	blt	r2,zero,9ab8 <__sread+0x40>
    9a98:	80801417 	ldw	r2,80(r16)
    9a9c:	10c5883a 	add	r2,r2,r3
    9aa0:	80801415 	stw	r2,80(r16)
    9aa4:	1805883a 	mov	r2,r3
    9aa8:	dfc00117 	ldw	ra,4(sp)
    9aac:	dc000017 	ldw	r16,0(sp)
    9ab0:	dec00204 	addi	sp,sp,8
    9ab4:	f800283a 	ret
    9ab8:	8080030b 	ldhu	r2,12(r16)
    9abc:	10bbffcc 	andi	r2,r2,61439
    9ac0:	8080030d 	sth	r2,12(r16)
    9ac4:	1805883a 	mov	r2,r3
    9ac8:	dfc00117 	ldw	ra,4(sp)
    9acc:	dc000017 	ldw	r16,0(sp)
    9ad0:	dec00204 	addi	sp,sp,8
    9ad4:	f800283a 	ret

00009ad8 <strcmp>:
    9ad8:	2144b03a 	or	r2,r4,r5
    9adc:	108000cc 	andi	r2,r2,3
    9ae0:	10001d1e 	bne	r2,zero,9b58 <strcmp+0x80>
    9ae4:	200f883a 	mov	r7,r4
    9ae8:	28800017 	ldw	r2,0(r5)
    9aec:	21000017 	ldw	r4,0(r4)
    9af0:	280d883a 	mov	r6,r5
    9af4:	2080161e 	bne	r4,r2,9b50 <strcmp+0x78>
    9af8:	023fbff4 	movhi	r8,65279
    9afc:	423fbfc4 	addi	r8,r8,-257
    9b00:	2207883a 	add	r3,r4,r8
    9b04:	01602074 	movhi	r5,32897
    9b08:	29602004 	addi	r5,r5,-32640
    9b0c:	1946703a 	and	r3,r3,r5
    9b10:	0104303a 	nor	r2,zero,r4
    9b14:	10c4703a 	and	r2,r2,r3
    9b18:	10001c1e 	bne	r2,zero,9b8c <strcmp+0xb4>
    9b1c:	4013883a 	mov	r9,r8
    9b20:	2811883a 	mov	r8,r5
    9b24:	00000106 	br	9b2c <strcmp+0x54>
    9b28:	1800181e 	bne	r3,zero,9b8c <strcmp+0xb4>
    9b2c:	39c00104 	addi	r7,r7,4
    9b30:	39000017 	ldw	r4,0(r7)
    9b34:	31800104 	addi	r6,r6,4
    9b38:	31400017 	ldw	r5,0(r6)
    9b3c:	2245883a 	add	r2,r4,r9
    9b40:	1204703a 	and	r2,r2,r8
    9b44:	0106303a 	nor	r3,zero,r4
    9b48:	1886703a 	and	r3,r3,r2
    9b4c:	217ff626 	beq	r4,r5,9b28 <strcmp+0x50>
    9b50:	3809883a 	mov	r4,r7
    9b54:	300b883a 	mov	r5,r6
    9b58:	20c00007 	ldb	r3,0(r4)
    9b5c:	1800051e 	bne	r3,zero,9b74 <strcmp+0x9c>
    9b60:	00000606 	br	9b7c <strcmp+0xa4>
    9b64:	21000044 	addi	r4,r4,1
    9b68:	20c00007 	ldb	r3,0(r4)
    9b6c:	29400044 	addi	r5,r5,1
    9b70:	18000226 	beq	r3,zero,9b7c <strcmp+0xa4>
    9b74:	28800007 	ldb	r2,0(r5)
    9b78:	18bffa26 	beq	r3,r2,9b64 <strcmp+0x8c>
    9b7c:	20c00003 	ldbu	r3,0(r4)
    9b80:	28800003 	ldbu	r2,0(r5)
    9b84:	1885c83a 	sub	r2,r3,r2
    9b88:	f800283a 	ret
    9b8c:	0005883a 	mov	r2,zero
    9b90:	f800283a 	ret

00009b94 <_write_r>:
    9b94:	defffd04 	addi	sp,sp,-12
    9b98:	dc000015 	stw	r16,0(sp)
    9b9c:	04000074 	movhi	r16,1
    9ba0:	840f7c04 	addi	r16,r16,15856
    9ba4:	dc400115 	stw	r17,4(sp)
    9ba8:	80000015 	stw	zero,0(r16)
    9bac:	2023883a 	mov	r17,r4
    9bb0:	2809883a 	mov	r4,r5
    9bb4:	300b883a 	mov	r5,r6
    9bb8:	380d883a 	mov	r6,r7
    9bbc:	dfc00215 	stw	ra,8(sp)
    9bc0:	000cea80 	call	cea8 <write>
    9bc4:	1007883a 	mov	r3,r2
    9bc8:	00bfffc4 	movi	r2,-1
    9bcc:	18800626 	beq	r3,r2,9be8 <_write_r+0x54>
    9bd0:	1805883a 	mov	r2,r3
    9bd4:	dfc00217 	ldw	ra,8(sp)
    9bd8:	dc400117 	ldw	r17,4(sp)
    9bdc:	dc000017 	ldw	r16,0(sp)
    9be0:	dec00304 	addi	sp,sp,12
    9be4:	f800283a 	ret
    9be8:	80800017 	ldw	r2,0(r16)
    9bec:	103ff826 	beq	r2,zero,9bd0 <_write_r+0x3c>
    9bf0:	88800015 	stw	r2,0(r17)
    9bf4:	1805883a 	mov	r2,r3
    9bf8:	dfc00217 	ldw	ra,8(sp)
    9bfc:	dc400117 	ldw	r17,4(sp)
    9c00:	dc000017 	ldw	r16,0(sp)
    9c04:	dec00304 	addi	sp,sp,12
    9c08:	f800283a 	ret

00009c0c <_calloc_r>:
    9c0c:	defffe04 	addi	sp,sp,-8
    9c10:	dc400015 	stw	r17,0(sp)
    9c14:	2023883a 	mov	r17,r4
    9c18:	2809883a 	mov	r4,r5
    9c1c:	300b883a 	mov	r5,r6
    9c20:	dfc00115 	stw	ra,4(sp)
    9c24:	0002c240 	call	2c24 <__mulsi3>
    9c28:	100b883a 	mov	r5,r2
    9c2c:	8809883a 	mov	r4,r17
    9c30:	00077f00 	call	77f0 <_malloc_r>
    9c34:	1023883a 	mov	r17,r2
    9c38:	01c00904 	movi	r7,36
    9c3c:	10000d26 	beq	r2,zero,9c74 <_calloc_r+0x68>
    9c40:	10ffff17 	ldw	r3,-4(r2)
    9c44:	1009883a 	mov	r4,r2
    9c48:	00bfff04 	movi	r2,-4
    9c4c:	1886703a 	and	r3,r3,r2
    9c50:	1887883a 	add	r3,r3,r2
    9c54:	180d883a 	mov	r6,r3
    9c58:	000b883a 	mov	r5,zero
    9c5c:	38c01736 	bltu	r7,r3,9cbc <_calloc_r+0xb0>
    9c60:	008004c4 	movi	r2,19
    9c64:	10c00836 	bltu	r2,r3,9c88 <_calloc_r+0x7c>
    9c68:	20000215 	stw	zero,8(r4)
    9c6c:	20000015 	stw	zero,0(r4)
    9c70:	20000115 	stw	zero,4(r4)
    9c74:	8805883a 	mov	r2,r17
    9c78:	dfc00117 	ldw	ra,4(sp)
    9c7c:	dc400017 	ldw	r17,0(sp)
    9c80:	dec00204 	addi	sp,sp,8
    9c84:	f800283a 	ret
    9c88:	008006c4 	movi	r2,27
    9c8c:	88000015 	stw	zero,0(r17)
    9c90:	88000115 	stw	zero,4(r17)
    9c94:	89000204 	addi	r4,r17,8
    9c98:	10fff32e 	bgeu	r2,r3,9c68 <_calloc_r+0x5c>
    9c9c:	88000215 	stw	zero,8(r17)
    9ca0:	88000315 	stw	zero,12(r17)
    9ca4:	89000404 	addi	r4,r17,16
    9ca8:	19ffef1e 	bne	r3,r7,9c68 <_calloc_r+0x5c>
    9cac:	89000604 	addi	r4,r17,24
    9cb0:	88000415 	stw	zero,16(r17)
    9cb4:	88000515 	stw	zero,20(r17)
    9cb8:	003feb06 	br	9c68 <_calloc_r+0x5c>
    9cbc:	00081940 	call	8194 <memset>
    9cc0:	8805883a 	mov	r2,r17
    9cc4:	dfc00117 	ldw	ra,4(sp)
    9cc8:	dc400017 	ldw	r17,0(sp)
    9ccc:	dec00204 	addi	sp,sp,8
    9cd0:	f800283a 	ret

00009cd4 <_close_r>:
    9cd4:	defffd04 	addi	sp,sp,-12
    9cd8:	dc000015 	stw	r16,0(sp)
    9cdc:	04000074 	movhi	r16,1
    9ce0:	840f7c04 	addi	r16,r16,15856
    9ce4:	dc400115 	stw	r17,4(sp)
    9ce8:	80000015 	stw	zero,0(r16)
    9cec:	2023883a 	mov	r17,r4
    9cf0:	2809883a 	mov	r4,r5
    9cf4:	dfc00215 	stw	ra,8(sp)
    9cf8:	000c4ec0 	call	c4ec <close>
    9cfc:	1007883a 	mov	r3,r2
    9d00:	00bfffc4 	movi	r2,-1
    9d04:	18800626 	beq	r3,r2,9d20 <_close_r+0x4c>
    9d08:	1805883a 	mov	r2,r3
    9d0c:	dfc00217 	ldw	ra,8(sp)
    9d10:	dc400117 	ldw	r17,4(sp)
    9d14:	dc000017 	ldw	r16,0(sp)
    9d18:	dec00304 	addi	sp,sp,12
    9d1c:	f800283a 	ret
    9d20:	80800017 	ldw	r2,0(r16)
    9d24:	103ff826 	beq	r2,zero,9d08 <_close_r+0x34>
    9d28:	88800015 	stw	r2,0(r17)
    9d2c:	1805883a 	mov	r2,r3
    9d30:	dfc00217 	ldw	ra,8(sp)
    9d34:	dc400117 	ldw	r17,4(sp)
    9d38:	dc000017 	ldw	r16,0(sp)
    9d3c:	dec00304 	addi	sp,sp,12
    9d40:	f800283a 	ret

00009d44 <_fclose_r>:
    9d44:	defffc04 	addi	sp,sp,-16
    9d48:	dc400115 	stw	r17,4(sp)
    9d4c:	dc000015 	stw	r16,0(sp)
    9d50:	dfc00315 	stw	ra,12(sp)
    9d54:	dc800215 	stw	r18,8(sp)
    9d58:	2821883a 	mov	r16,r5
    9d5c:	2023883a 	mov	r17,r4
    9d60:	28002926 	beq	r5,zero,9e08 <_fclose_r+0xc4>
    9d64:	00068a00 	call	68a0 <__sfp_lock_acquire>
    9d68:	88000226 	beq	r17,zero,9d74 <_fclose_r+0x30>
    9d6c:	88800e17 	ldw	r2,56(r17)
    9d70:	10002d26 	beq	r2,zero,9e28 <_fclose_r+0xe4>
    9d74:	8080030f 	ldh	r2,12(r16)
    9d78:	10002226 	beq	r2,zero,9e04 <_fclose_r+0xc0>
    9d7c:	8809883a 	mov	r4,r17
    9d80:	800b883a 	mov	r5,r16
    9d84:	00066180 	call	6618 <_fflush_r>
    9d88:	1025883a 	mov	r18,r2
    9d8c:	80800b17 	ldw	r2,44(r16)
    9d90:	10000426 	beq	r2,zero,9da4 <_fclose_r+0x60>
    9d94:	81400717 	ldw	r5,28(r16)
    9d98:	8809883a 	mov	r4,r17
    9d9c:	103ee83a 	callr	r2
    9da0:	10002a16 	blt	r2,zero,9e4c <_fclose_r+0x108>
    9da4:	8080030b 	ldhu	r2,12(r16)
    9da8:	1080200c 	andi	r2,r2,128
    9dac:	1000231e 	bne	r2,zero,9e3c <_fclose_r+0xf8>
    9db0:	81400c17 	ldw	r5,48(r16)
    9db4:	28000526 	beq	r5,zero,9dcc <_fclose_r+0x88>
    9db8:	80801004 	addi	r2,r16,64
    9dbc:	28800226 	beq	r5,r2,9dc8 <_fclose_r+0x84>
    9dc0:	8809883a 	mov	r4,r17
    9dc4:	0006c680 	call	6c68 <_free_r>
    9dc8:	80000c15 	stw	zero,48(r16)
    9dcc:	81401117 	ldw	r5,68(r16)
    9dd0:	28000326 	beq	r5,zero,9de0 <_fclose_r+0x9c>
    9dd4:	8809883a 	mov	r4,r17
    9dd8:	0006c680 	call	6c68 <_free_r>
    9ddc:	80001115 	stw	zero,68(r16)
    9de0:	8000030d 	sth	zero,12(r16)
    9de4:	00068a40 	call	68a4 <__sfp_lock_release>
    9de8:	9005883a 	mov	r2,r18
    9dec:	dfc00317 	ldw	ra,12(sp)
    9df0:	dc800217 	ldw	r18,8(sp)
    9df4:	dc400117 	ldw	r17,4(sp)
    9df8:	dc000017 	ldw	r16,0(sp)
    9dfc:	dec00404 	addi	sp,sp,16
    9e00:	f800283a 	ret
    9e04:	00068a40 	call	68a4 <__sfp_lock_release>
    9e08:	0025883a 	mov	r18,zero
    9e0c:	9005883a 	mov	r2,r18
    9e10:	dfc00317 	ldw	ra,12(sp)
    9e14:	dc800217 	ldw	r18,8(sp)
    9e18:	dc400117 	ldw	r17,4(sp)
    9e1c:	dc000017 	ldw	r16,0(sp)
    9e20:	dec00404 	addi	sp,sp,16
    9e24:	f800283a 	ret
    9e28:	8809883a 	mov	r4,r17
    9e2c:	00068b00 	call	68b0 <__sinit>
    9e30:	8080030f 	ldh	r2,12(r16)
    9e34:	103fd11e 	bne	r2,zero,9d7c <_fclose_r+0x38>
    9e38:	003ff206 	br	9e04 <_fclose_r+0xc0>
    9e3c:	81400417 	ldw	r5,16(r16)
    9e40:	8809883a 	mov	r4,r17
    9e44:	0006c680 	call	6c68 <_free_r>
    9e48:	003fd906 	br	9db0 <_fclose_r+0x6c>
    9e4c:	04bfffc4 	movi	r18,-1
    9e50:	003fd406 	br	9da4 <_fclose_r+0x60>

00009e54 <fclose>:
    9e54:	00800074 	movhi	r2,1
    9e58:	10887e04 	addi	r2,r2,8696
    9e5c:	200b883a 	mov	r5,r4
    9e60:	11000017 	ldw	r4,0(r2)
    9e64:	0009d441 	jmpi	9d44 <_fclose_r>

00009e68 <_fstat_r>:
    9e68:	defffd04 	addi	sp,sp,-12
    9e6c:	dc000015 	stw	r16,0(sp)
    9e70:	04000074 	movhi	r16,1
    9e74:	840f7c04 	addi	r16,r16,15856
    9e78:	dc400115 	stw	r17,4(sp)
    9e7c:	80000015 	stw	zero,0(r16)
    9e80:	2023883a 	mov	r17,r4
    9e84:	2809883a 	mov	r4,r5
    9e88:	300b883a 	mov	r5,r6
    9e8c:	dfc00215 	stw	ra,8(sp)
    9e90:	000c6780 	call	c678 <fstat>
    9e94:	1007883a 	mov	r3,r2
    9e98:	00bfffc4 	movi	r2,-1
    9e9c:	18800626 	beq	r3,r2,9eb8 <_fstat_r+0x50>
    9ea0:	1805883a 	mov	r2,r3
    9ea4:	dfc00217 	ldw	ra,8(sp)
    9ea8:	dc400117 	ldw	r17,4(sp)
    9eac:	dc000017 	ldw	r16,0(sp)
    9eb0:	dec00304 	addi	sp,sp,12
    9eb4:	f800283a 	ret
    9eb8:	80800017 	ldw	r2,0(r16)
    9ebc:	103ff826 	beq	r2,zero,9ea0 <_fstat_r+0x38>
    9ec0:	88800015 	stw	r2,0(r17)
    9ec4:	1805883a 	mov	r2,r3
    9ec8:	dfc00217 	ldw	ra,8(sp)
    9ecc:	dc400117 	ldw	r17,4(sp)
    9ed0:	dc000017 	ldw	r16,0(sp)
    9ed4:	dec00304 	addi	sp,sp,12
    9ed8:	f800283a 	ret

00009edc <_isatty_r>:
    9edc:	defffd04 	addi	sp,sp,-12
    9ee0:	dc000015 	stw	r16,0(sp)
    9ee4:	04000074 	movhi	r16,1
    9ee8:	840f7c04 	addi	r16,r16,15856
    9eec:	dc400115 	stw	r17,4(sp)
    9ef0:	80000015 	stw	zero,0(r16)
    9ef4:	2023883a 	mov	r17,r4
    9ef8:	2809883a 	mov	r4,r5
    9efc:	dfc00215 	stw	ra,8(sp)
    9f00:	000c7b00 	call	c7b0 <isatty>
    9f04:	1007883a 	mov	r3,r2
    9f08:	00bfffc4 	movi	r2,-1
    9f0c:	18800626 	beq	r3,r2,9f28 <_isatty_r+0x4c>
    9f10:	1805883a 	mov	r2,r3
    9f14:	dfc00217 	ldw	ra,8(sp)
    9f18:	dc400117 	ldw	r17,4(sp)
    9f1c:	dc000017 	ldw	r16,0(sp)
    9f20:	dec00304 	addi	sp,sp,12
    9f24:	f800283a 	ret
    9f28:	80800017 	ldw	r2,0(r16)
    9f2c:	103ff826 	beq	r2,zero,9f10 <_isatty_r+0x34>
    9f30:	88800015 	stw	r2,0(r17)
    9f34:	1805883a 	mov	r2,r3
    9f38:	dfc00217 	ldw	ra,8(sp)
    9f3c:	dc400117 	ldw	r17,4(sp)
    9f40:	dc000017 	ldw	r16,0(sp)
    9f44:	dec00304 	addi	sp,sp,12
    9f48:	f800283a 	ret

00009f4c <_lseek_r>:
    9f4c:	defffd04 	addi	sp,sp,-12
    9f50:	dc000015 	stw	r16,0(sp)
    9f54:	04000074 	movhi	r16,1
    9f58:	840f7c04 	addi	r16,r16,15856
    9f5c:	dc400115 	stw	r17,4(sp)
    9f60:	80000015 	stw	zero,0(r16)
    9f64:	2023883a 	mov	r17,r4
    9f68:	2809883a 	mov	r4,r5
    9f6c:	300b883a 	mov	r5,r6
    9f70:	380d883a 	mov	r6,r7
    9f74:	dfc00215 	stw	ra,8(sp)
    9f78:	000c9c00 	call	c9c0 <lseek>
    9f7c:	1007883a 	mov	r3,r2
    9f80:	00bfffc4 	movi	r2,-1
    9f84:	18800626 	beq	r3,r2,9fa0 <_lseek_r+0x54>
    9f88:	1805883a 	mov	r2,r3
    9f8c:	dfc00217 	ldw	ra,8(sp)
    9f90:	dc400117 	ldw	r17,4(sp)
    9f94:	dc000017 	ldw	r16,0(sp)
    9f98:	dec00304 	addi	sp,sp,12
    9f9c:	f800283a 	ret
    9fa0:	80800017 	ldw	r2,0(r16)
    9fa4:	103ff826 	beq	r2,zero,9f88 <_lseek_r+0x3c>
    9fa8:	88800015 	stw	r2,0(r17)
    9fac:	1805883a 	mov	r2,r3
    9fb0:	dfc00217 	ldw	ra,8(sp)
    9fb4:	dc400117 	ldw	r17,4(sp)
    9fb8:	dc000017 	ldw	r16,0(sp)
    9fbc:	dec00304 	addi	sp,sp,12
    9fc0:	f800283a 	ret

00009fc4 <_read_r>:
    9fc4:	defffd04 	addi	sp,sp,-12
    9fc8:	dc000015 	stw	r16,0(sp)
    9fcc:	04000074 	movhi	r16,1
    9fd0:	840f7c04 	addi	r16,r16,15856
    9fd4:	dc400115 	stw	r17,4(sp)
    9fd8:	80000015 	stw	zero,0(r16)
    9fdc:	2023883a 	mov	r17,r4
    9fe0:	2809883a 	mov	r4,r5
    9fe4:	300b883a 	mov	r5,r6
    9fe8:	380d883a 	mov	r6,r7
    9fec:	dfc00215 	stw	ra,8(sp)
    9ff0:	000cbc00 	call	cbc0 <read>
    9ff4:	1007883a 	mov	r3,r2
    9ff8:	00bfffc4 	movi	r2,-1
    9ffc:	18800626 	beq	r3,r2,a018 <_read_r+0x54>
    a000:	1805883a 	mov	r2,r3
    a004:	dfc00217 	ldw	ra,8(sp)
    a008:	dc400117 	ldw	r17,4(sp)
    a00c:	dc000017 	ldw	r16,0(sp)
    a010:	dec00304 	addi	sp,sp,12
    a014:	f800283a 	ret
    a018:	80800017 	ldw	r2,0(r16)
    a01c:	103ff826 	beq	r2,zero,a000 <_read_r+0x3c>
    a020:	88800015 	stw	r2,0(r17)
    a024:	1805883a 	mov	r2,r3
    a028:	dfc00217 	ldw	ra,8(sp)
    a02c:	dc400117 	ldw	r17,4(sp)
    a030:	dc000017 	ldw	r16,0(sp)
    a034:	dec00304 	addi	sp,sp,12
    a038:	f800283a 	ret

0000a03c <__udivdi3>:
    a03c:	defff104 	addi	sp,sp,-60
    a040:	0015883a 	mov	r10,zero
    a044:	2005883a 	mov	r2,r4
    a048:	3011883a 	mov	r8,r6
    a04c:	df000d15 	stw	fp,52(sp)
    a050:	dd400a15 	stw	r21,40(sp)
    a054:	dcc00815 	stw	r19,32(sp)
    a058:	dfc00e15 	stw	ra,56(sp)
    a05c:	ddc00c15 	stw	r23,48(sp)
    a060:	dd800b15 	stw	r22,44(sp)
    a064:	dd000915 	stw	r20,36(sp)
    a068:	dc800715 	stw	r18,28(sp)
    a06c:	dc400615 	stw	r17,24(sp)
    a070:	dc000515 	stw	r16,20(sp)
    a074:	da800315 	stw	r10,12(sp)
    a078:	4027883a 	mov	r19,r8
    a07c:	1039883a 	mov	fp,r2
    a080:	282b883a 	mov	r21,r5
    a084:	da800415 	stw	r10,16(sp)
    a088:	3800401e 	bne	r7,zero,a18c <__udivdi3+0x150>
    a08c:	2a006536 	bltu	r5,r8,a224 <__udivdi3+0x1e8>
    a090:	4000b526 	beq	r8,zero,a368 <__udivdi3+0x32c>
    a094:	00bfffd4 	movui	r2,65535
    a098:	14c0ad36 	bltu	r2,r19,a350 <__udivdi3+0x314>
    a09c:	00803fc4 	movi	r2,255
    a0a0:	14c15e36 	bltu	r2,r19,a61c <__udivdi3+0x5e0>
    a0a4:	000b883a 	mov	r5,zero
    a0a8:	0005883a 	mov	r2,zero
    a0ac:	9884d83a 	srl	r2,r19,r2
    a0b0:	01000074 	movhi	r4,1
    a0b4:	21015d04 	addi	r4,r4,1396
    a0b8:	01800804 	movi	r6,32
    a0bc:	1105883a 	add	r2,r2,r4
    a0c0:	10c00003 	ldbu	r3,0(r2)
    a0c4:	28c7883a 	add	r3,r5,r3
    a0c8:	30e9c83a 	sub	r20,r6,r3
    a0cc:	a0010a1e 	bne	r20,zero,a4f8 <__udivdi3+0x4bc>
    a0d0:	982ed43a 	srli	r23,r19,16
    a0d4:	acebc83a 	sub	r21,r21,r19
    a0d8:	9dbfffcc 	andi	r22,r19,65535
    a0dc:	05000044 	movi	r20,1
    a0e0:	a809883a 	mov	r4,r21
    a0e4:	b80b883a 	mov	r5,r23
    a0e8:	0002c140 	call	2c14 <__udivsi3>
    a0ec:	100b883a 	mov	r5,r2
    a0f0:	b009883a 	mov	r4,r22
    a0f4:	1021883a 	mov	r16,r2
    a0f8:	0002c240 	call	2c24 <__mulsi3>
    a0fc:	a809883a 	mov	r4,r21
    a100:	b80b883a 	mov	r5,r23
    a104:	1023883a 	mov	r17,r2
    a108:	0002c1c0 	call	2c1c <__umodsi3>
    a10c:	1004943a 	slli	r2,r2,16
    a110:	e006d43a 	srli	r3,fp,16
    a114:	10c4b03a 	or	r2,r2,r3
    a118:	1440042e 	bgeu	r2,r17,a12c <__udivdi3+0xf0>
    a11c:	14c5883a 	add	r2,r2,r19
    a120:	843fffc4 	addi	r16,r16,-1
    a124:	14c00136 	bltu	r2,r19,a12c <__udivdi3+0xf0>
    a128:	14415c36 	bltu	r2,r17,a69c <__udivdi3+0x660>
    a12c:	1463c83a 	sub	r17,r2,r17
    a130:	8809883a 	mov	r4,r17
    a134:	b80b883a 	mov	r5,r23
    a138:	0002c140 	call	2c14 <__udivsi3>
    a13c:	100b883a 	mov	r5,r2
    a140:	b009883a 	mov	r4,r22
    a144:	102b883a 	mov	r21,r2
    a148:	0002c240 	call	2c24 <__mulsi3>
    a14c:	8809883a 	mov	r4,r17
    a150:	b80b883a 	mov	r5,r23
    a154:	1025883a 	mov	r18,r2
    a158:	0002c1c0 	call	2c1c <__umodsi3>
    a15c:	1004943a 	slli	r2,r2,16
    a160:	e0ffffcc 	andi	r3,fp,65535
    a164:	10c4b03a 	or	r2,r2,r3
    a168:	1480042e 	bgeu	r2,r18,a17c <__udivdi3+0x140>
    a16c:	9885883a 	add	r2,r19,r2
    a170:	ad7fffc4 	addi	r21,r21,-1
    a174:	14c00136 	bltu	r2,r19,a17c <__udivdi3+0x140>
    a178:	14813c36 	bltu	r2,r18,a66c <__udivdi3+0x630>
    a17c:	8004943a 	slli	r2,r16,16
    a180:	a009883a 	mov	r4,r20
    a184:	a884b03a 	or	r2,r21,r2
    a188:	00001506 	br	a1e0 <__udivdi3+0x1a4>
    a18c:	380d883a 	mov	r6,r7
    a190:	29c06c36 	bltu	r5,r7,a344 <__udivdi3+0x308>
    a194:	00bfffd4 	movui	r2,65535
    a198:	11c06436 	bltu	r2,r7,a32c <__udivdi3+0x2f0>
    a19c:	00803fc4 	movi	r2,255
    a1a0:	11c11836 	bltu	r2,r7,a604 <__udivdi3+0x5c8>
    a1a4:	000b883a 	mov	r5,zero
    a1a8:	0005883a 	mov	r2,zero
    a1ac:	3084d83a 	srl	r2,r6,r2
    a1b0:	01000074 	movhi	r4,1
    a1b4:	21015d04 	addi	r4,r4,1396
    a1b8:	01c00804 	movi	r7,32
    a1bc:	1105883a 	add	r2,r2,r4
    a1c0:	10c00003 	ldbu	r3,0(r2)
    a1c4:	28c7883a 	add	r3,r5,r3
    a1c8:	38edc83a 	sub	r22,r7,r3
    a1cc:	b000731e 	bne	r22,zero,a39c <__udivdi3+0x360>
    a1d0:	35400136 	bltu	r6,r21,a1d8 <__udivdi3+0x19c>
    a1d4:	e4c05b36 	bltu	fp,r19,a344 <__udivdi3+0x308>
    a1d8:	00800044 	movi	r2,1
    a1dc:	0009883a 	mov	r4,zero
    a1e0:	d8800315 	stw	r2,12(sp)
    a1e4:	d9400317 	ldw	r5,12(sp)
    a1e8:	2007883a 	mov	r3,r4
    a1ec:	d9000415 	stw	r4,16(sp)
    a1f0:	2805883a 	mov	r2,r5
    a1f4:	dfc00e17 	ldw	ra,56(sp)
    a1f8:	df000d17 	ldw	fp,52(sp)
    a1fc:	ddc00c17 	ldw	r23,48(sp)
    a200:	dd800b17 	ldw	r22,44(sp)
    a204:	dd400a17 	ldw	r21,40(sp)
    a208:	dd000917 	ldw	r20,36(sp)
    a20c:	dcc00817 	ldw	r19,32(sp)
    a210:	dc800717 	ldw	r18,28(sp)
    a214:	dc400617 	ldw	r17,24(sp)
    a218:	dc000517 	ldw	r16,20(sp)
    a21c:	dec00f04 	addi	sp,sp,60
    a220:	f800283a 	ret
    a224:	00bfffd4 	movui	r2,65535
    a228:	12005636 	bltu	r2,r8,a384 <__udivdi3+0x348>
    a22c:	00803fc4 	movi	r2,255
    a230:	12010036 	bltu	r2,r8,a634 <__udivdi3+0x5f8>
    a234:	000b883a 	mov	r5,zero
    a238:	0005883a 	mov	r2,zero
    a23c:	9884d83a 	srl	r2,r19,r2
    a240:	01000074 	movhi	r4,1
    a244:	21015d04 	addi	r4,r4,1396
    a248:	01800804 	movi	r6,32
    a24c:	1105883a 	add	r2,r2,r4
    a250:	10c00003 	ldbu	r3,0(r2)
    a254:	28c7883a 	add	r3,r5,r3
    a258:	30cbc83a 	sub	r5,r6,r3
    a25c:	28000626 	beq	r5,zero,a278 <__udivdi3+0x23c>
    a260:	3145c83a 	sub	r2,r6,r5
    a264:	e084d83a 	srl	r2,fp,r2
    a268:	a946983a 	sll	r3,r21,r5
    a26c:	e178983a 	sll	fp,fp,r5
    a270:	9966983a 	sll	r19,r19,r5
    a274:	18aab03a 	or	r21,r3,r2
    a278:	982ed43a 	srli	r23,r19,16
    a27c:	a809883a 	mov	r4,r21
    a280:	9cbfffcc 	andi	r18,r19,65535
    a284:	b80b883a 	mov	r5,r23
    a288:	0002c140 	call	2c14 <__udivsi3>
    a28c:	100b883a 	mov	r5,r2
    a290:	9009883a 	mov	r4,r18
    a294:	1021883a 	mov	r16,r2
    a298:	0002c240 	call	2c24 <__mulsi3>
    a29c:	a809883a 	mov	r4,r21
    a2a0:	b80b883a 	mov	r5,r23
    a2a4:	1023883a 	mov	r17,r2
    a2a8:	0002c1c0 	call	2c1c <__umodsi3>
    a2ac:	1004943a 	slli	r2,r2,16
    a2b0:	e006d43a 	srli	r3,fp,16
    a2b4:	10c4b03a 	or	r2,r2,r3
    a2b8:	1440042e 	bgeu	r2,r17,a2cc <__udivdi3+0x290>
    a2bc:	14c5883a 	add	r2,r2,r19
    a2c0:	843fffc4 	addi	r16,r16,-1
    a2c4:	14c00136 	bltu	r2,r19,a2cc <__udivdi3+0x290>
    a2c8:	1440ea36 	bltu	r2,r17,a674 <__udivdi3+0x638>
    a2cc:	1463c83a 	sub	r17,r2,r17
    a2d0:	8809883a 	mov	r4,r17
    a2d4:	b80b883a 	mov	r5,r23
    a2d8:	0002c140 	call	2c14 <__udivsi3>
    a2dc:	100b883a 	mov	r5,r2
    a2e0:	9009883a 	mov	r4,r18
    a2e4:	102b883a 	mov	r21,r2
    a2e8:	0002c240 	call	2c24 <__mulsi3>
    a2ec:	8809883a 	mov	r4,r17
    a2f0:	b80b883a 	mov	r5,r23
    a2f4:	1025883a 	mov	r18,r2
    a2f8:	0002c1c0 	call	2c1c <__umodsi3>
    a2fc:	1004943a 	slli	r2,r2,16
    a300:	e0ffffcc 	andi	r3,fp,65535
    a304:	10c4b03a 	or	r2,r2,r3
    a308:	1480042e 	bgeu	r2,r18,a31c <__udivdi3+0x2e0>
    a30c:	9885883a 	add	r2,r19,r2
    a310:	ad7fffc4 	addi	r21,r21,-1
    a314:	14c00136 	bltu	r2,r19,a31c <__udivdi3+0x2e0>
    a318:	1480d936 	bltu	r2,r18,a680 <__udivdi3+0x644>
    a31c:	8004943a 	slli	r2,r16,16
    a320:	0009883a 	mov	r4,zero
    a324:	a884b03a 	or	r2,r21,r2
    a328:	003fad06 	br	a1e0 <__udivdi3+0x1a4>
    a32c:	00804034 	movhi	r2,256
    a330:	10bfffc4 	addi	r2,r2,-1
    a334:	11c0b636 	bltu	r2,r7,a610 <__udivdi3+0x5d4>
    a338:	01400404 	movi	r5,16
    a33c:	2805883a 	mov	r2,r5
    a340:	003f9a06 	br	a1ac <__udivdi3+0x170>
    a344:	0005883a 	mov	r2,zero
    a348:	0009883a 	mov	r4,zero
    a34c:	003fa406 	br	a1e0 <__udivdi3+0x1a4>
    a350:	00804034 	movhi	r2,256
    a354:	10bfffc4 	addi	r2,r2,-1
    a358:	14c0b336 	bltu	r2,r19,a628 <__udivdi3+0x5ec>
    a35c:	01400404 	movi	r5,16
    a360:	2805883a 	mov	r2,r5
    a364:	003f5106 	br	a0ac <__udivdi3+0x70>
    a368:	01000044 	movi	r4,1
    a36c:	000b883a 	mov	r5,zero
    a370:	0002c140 	call	2c14 <__udivsi3>
    a374:	1027883a 	mov	r19,r2
    a378:	00bfffd4 	movui	r2,65535
    a37c:	14fff436 	bltu	r2,r19,a350 <__udivdi3+0x314>
    a380:	003f4606 	br	a09c <__udivdi3+0x60>
    a384:	00804034 	movhi	r2,256
    a388:	10bfffc4 	addi	r2,r2,-1
    a38c:	1200ac36 	bltu	r2,r8,a640 <__udivdi3+0x604>
    a390:	01400404 	movi	r5,16
    a394:	2805883a 	mov	r2,r5
    a398:	003fa806 	br	a23c <__udivdi3+0x200>
    a39c:	3d85c83a 	sub	r2,r7,r22
    a3a0:	3588983a 	sll	r4,r6,r22
    a3a4:	9886d83a 	srl	r3,r19,r2
    a3a8:	a8a2d83a 	srl	r17,r21,r2
    a3ac:	e084d83a 	srl	r2,fp,r2
    a3b0:	20eeb03a 	or	r23,r4,r3
    a3b4:	b824d43a 	srli	r18,r23,16
    a3b8:	ad86983a 	sll	r3,r21,r22
    a3bc:	8809883a 	mov	r4,r17
    a3c0:	900b883a 	mov	r5,r18
    a3c4:	1886b03a 	or	r3,r3,r2
    a3c8:	d8c00115 	stw	r3,4(sp)
    a3cc:	bc3fffcc 	andi	r16,r23,65535
    a3d0:	0002c140 	call	2c14 <__udivsi3>
    a3d4:	100b883a 	mov	r5,r2
    a3d8:	8009883a 	mov	r4,r16
    a3dc:	1029883a 	mov	r20,r2
    a3e0:	0002c240 	call	2c24 <__mulsi3>
    a3e4:	900b883a 	mov	r5,r18
    a3e8:	8809883a 	mov	r4,r17
    a3ec:	102b883a 	mov	r21,r2
    a3f0:	0002c1c0 	call	2c1c <__umodsi3>
    a3f4:	d9400117 	ldw	r5,4(sp)
    a3f8:	1004943a 	slli	r2,r2,16
    a3fc:	9da6983a 	sll	r19,r19,r22
    a400:	2806d43a 	srli	r3,r5,16
    a404:	10c4b03a 	or	r2,r2,r3
    a408:	1540032e 	bgeu	r2,r21,a418 <__udivdi3+0x3dc>
    a40c:	15c5883a 	add	r2,r2,r23
    a410:	a53fffc4 	addi	r20,r20,-1
    a414:	15c0912e 	bgeu	r2,r23,a65c <__udivdi3+0x620>
    a418:	1563c83a 	sub	r17,r2,r21
    a41c:	8809883a 	mov	r4,r17
    a420:	900b883a 	mov	r5,r18
    a424:	0002c140 	call	2c14 <__udivsi3>
    a428:	100b883a 	mov	r5,r2
    a42c:	8009883a 	mov	r4,r16
    a430:	102b883a 	mov	r21,r2
    a434:	0002c240 	call	2c24 <__mulsi3>
    a438:	8809883a 	mov	r4,r17
    a43c:	900b883a 	mov	r5,r18
    a440:	1021883a 	mov	r16,r2
    a444:	0002c1c0 	call	2c1c <__umodsi3>
    a448:	da800117 	ldw	r10,4(sp)
    a44c:	1004943a 	slli	r2,r2,16
    a450:	50ffffcc 	andi	r3,r10,65535
    a454:	10c6b03a 	or	r3,r2,r3
    a458:	1c00032e 	bgeu	r3,r16,a468 <__udivdi3+0x42c>
    a45c:	1dc7883a 	add	r3,r3,r23
    a460:	ad7fffc4 	addi	r21,r21,-1
    a464:	1dc0792e 	bgeu	r3,r23,a64c <__udivdi3+0x610>
    a468:	a004943a 	slli	r2,r20,16
    a46c:	982ed43a 	srli	r23,r19,16
    a470:	9cffffcc 	andi	r19,r19,65535
    a474:	a8a4b03a 	or	r18,r21,r2
    a478:	947fffcc 	andi	r17,r18,65535
    a47c:	902ad43a 	srli	r21,r18,16
    a480:	8809883a 	mov	r4,r17
    a484:	980b883a 	mov	r5,r19
    a488:	1c21c83a 	sub	r16,r3,r16
    a48c:	0002c240 	call	2c24 <__mulsi3>
    a490:	8809883a 	mov	r4,r17
    a494:	b80b883a 	mov	r5,r23
    a498:	1029883a 	mov	r20,r2
    a49c:	0002c240 	call	2c24 <__mulsi3>
    a4a0:	980b883a 	mov	r5,r19
    a4a4:	a809883a 	mov	r4,r21
    a4a8:	1023883a 	mov	r17,r2
    a4ac:	0002c240 	call	2c24 <__mulsi3>
    a4b0:	a809883a 	mov	r4,r21
    a4b4:	b80b883a 	mov	r5,r23
    a4b8:	1027883a 	mov	r19,r2
    a4bc:	0002c240 	call	2c24 <__mulsi3>
    a4c0:	1009883a 	mov	r4,r2
    a4c4:	a004d43a 	srli	r2,r20,16
    a4c8:	8ce3883a 	add	r17,r17,r19
    a4cc:	1447883a 	add	r3,r2,r17
    a4d0:	1cc0022e 	bgeu	r3,r19,a4dc <__udivdi3+0x4a0>
    a4d4:	00800074 	movhi	r2,1
    a4d8:	2089883a 	add	r4,r4,r2
    a4dc:	1804d43a 	srli	r2,r3,16
    a4e0:	2085883a 	add	r2,r4,r2
    a4e4:	80804436 	bltu	r16,r2,a5f8 <__udivdi3+0x5bc>
    a4e8:	80803e26 	beq	r16,r2,a5e4 <__udivdi3+0x5a8>
    a4ec:	9005883a 	mov	r2,r18
    a4f0:	0009883a 	mov	r4,zero
    a4f4:	003f3a06 	br	a1e0 <__udivdi3+0x1a4>
    a4f8:	9d26983a 	sll	r19,r19,r20
    a4fc:	3505c83a 	sub	r2,r6,r20
    a500:	a8a2d83a 	srl	r17,r21,r2
    a504:	982ed43a 	srli	r23,r19,16
    a508:	e084d83a 	srl	r2,fp,r2
    a50c:	ad06983a 	sll	r3,r21,r20
    a510:	8809883a 	mov	r4,r17
    a514:	b80b883a 	mov	r5,r23
    a518:	1886b03a 	or	r3,r3,r2
    a51c:	d8c00015 	stw	r3,0(sp)
    a520:	9dbfffcc 	andi	r22,r19,65535
    a524:	0002c140 	call	2c14 <__udivsi3>
    a528:	100b883a 	mov	r5,r2
    a52c:	b009883a 	mov	r4,r22
    a530:	d8800215 	stw	r2,8(sp)
    a534:	0002c240 	call	2c24 <__mulsi3>
    a538:	8809883a 	mov	r4,r17
    a53c:	b80b883a 	mov	r5,r23
    a540:	102b883a 	mov	r21,r2
    a544:	0002c1c0 	call	2c1c <__umodsi3>
    a548:	d9000017 	ldw	r4,0(sp)
    a54c:	1004943a 	slli	r2,r2,16
    a550:	2006d43a 	srli	r3,r4,16
    a554:	10c4b03a 	or	r2,r2,r3
    a558:	1540052e 	bgeu	r2,r21,a570 <__udivdi3+0x534>
    a55c:	d9400217 	ldw	r5,8(sp)
    a560:	14c5883a 	add	r2,r2,r19
    a564:	297fffc4 	addi	r5,r5,-1
    a568:	d9400215 	stw	r5,8(sp)
    a56c:	14c0462e 	bgeu	r2,r19,a688 <__udivdi3+0x64c>
    a570:	1563c83a 	sub	r17,r2,r21
    a574:	8809883a 	mov	r4,r17
    a578:	b80b883a 	mov	r5,r23
    a57c:	0002c140 	call	2c14 <__udivsi3>
    a580:	100b883a 	mov	r5,r2
    a584:	b009883a 	mov	r4,r22
    a588:	1025883a 	mov	r18,r2
    a58c:	0002c240 	call	2c24 <__mulsi3>
    a590:	8809883a 	mov	r4,r17
    a594:	b80b883a 	mov	r5,r23
    a598:	1021883a 	mov	r16,r2
    a59c:	0002c1c0 	call	2c1c <__umodsi3>
    a5a0:	da800017 	ldw	r10,0(sp)
    a5a4:	1004943a 	slli	r2,r2,16
    a5a8:	50ffffcc 	andi	r3,r10,65535
    a5ac:	10c6b03a 	or	r3,r2,r3
    a5b0:	1c00062e 	bgeu	r3,r16,a5cc <__udivdi3+0x590>
    a5b4:	1cc7883a 	add	r3,r3,r19
    a5b8:	94bfffc4 	addi	r18,r18,-1
    a5bc:	1cc00336 	bltu	r3,r19,a5cc <__udivdi3+0x590>
    a5c0:	1c00022e 	bgeu	r3,r16,a5cc <__udivdi3+0x590>
    a5c4:	94bfffc4 	addi	r18,r18,-1
    a5c8:	1cc7883a 	add	r3,r3,r19
    a5cc:	d9000217 	ldw	r4,8(sp)
    a5d0:	e538983a 	sll	fp,fp,r20
    a5d4:	1c2bc83a 	sub	r21,r3,r16
    a5d8:	2004943a 	slli	r2,r4,16
    a5dc:	90a8b03a 	or	r20,r18,r2
    a5e0:	003ebf06 	br	a0e0 <__udivdi3+0xa4>
    a5e4:	1804943a 	slli	r2,r3,16
    a5e8:	e588983a 	sll	r4,fp,r22
    a5ec:	a0ffffcc 	andi	r3,r20,65535
    a5f0:	10c5883a 	add	r2,r2,r3
    a5f4:	20bfbd2e 	bgeu	r4,r2,a4ec <__udivdi3+0x4b0>
    a5f8:	90bfffc4 	addi	r2,r18,-1
    a5fc:	0009883a 	mov	r4,zero
    a600:	003ef706 	br	a1e0 <__udivdi3+0x1a4>
    a604:	01400204 	movi	r5,8
    a608:	2805883a 	mov	r2,r5
    a60c:	003ee706 	br	a1ac <__udivdi3+0x170>
    a610:	01400604 	movi	r5,24
    a614:	2805883a 	mov	r2,r5
    a618:	003ee406 	br	a1ac <__udivdi3+0x170>
    a61c:	01400204 	movi	r5,8
    a620:	2805883a 	mov	r2,r5
    a624:	003ea106 	br	a0ac <__udivdi3+0x70>
    a628:	01400604 	movi	r5,24
    a62c:	2805883a 	mov	r2,r5
    a630:	003e9e06 	br	a0ac <__udivdi3+0x70>
    a634:	01400204 	movi	r5,8
    a638:	2805883a 	mov	r2,r5
    a63c:	003eff06 	br	a23c <__udivdi3+0x200>
    a640:	01400604 	movi	r5,24
    a644:	2805883a 	mov	r2,r5
    a648:	003efc06 	br	a23c <__udivdi3+0x200>
    a64c:	1c3f862e 	bgeu	r3,r16,a468 <__udivdi3+0x42c>
    a650:	1dc7883a 	add	r3,r3,r23
    a654:	ad7fffc4 	addi	r21,r21,-1
    a658:	003f8306 	br	a468 <__udivdi3+0x42c>
    a65c:	157f6e2e 	bgeu	r2,r21,a418 <__udivdi3+0x3dc>
    a660:	a53fffc4 	addi	r20,r20,-1
    a664:	15c5883a 	add	r2,r2,r23
    a668:	003f6b06 	br	a418 <__udivdi3+0x3dc>
    a66c:	ad7fffc4 	addi	r21,r21,-1
    a670:	003ec206 	br	a17c <__udivdi3+0x140>
    a674:	843fffc4 	addi	r16,r16,-1
    a678:	14c5883a 	add	r2,r2,r19
    a67c:	003f1306 	br	a2cc <__udivdi3+0x290>
    a680:	ad7fffc4 	addi	r21,r21,-1
    a684:	003f2506 	br	a31c <__udivdi3+0x2e0>
    a688:	157fb92e 	bgeu	r2,r21,a570 <__udivdi3+0x534>
    a68c:	297fffc4 	addi	r5,r5,-1
    a690:	14c5883a 	add	r2,r2,r19
    a694:	d9400215 	stw	r5,8(sp)
    a698:	003fb506 	br	a570 <__udivdi3+0x534>
    a69c:	843fffc4 	addi	r16,r16,-1
    a6a0:	14c5883a 	add	r2,r2,r19
    a6a4:	003ea106 	br	a12c <__udivdi3+0xf0>

0000a6a8 <__umoddi3>:
    a6a8:	defff004 	addi	sp,sp,-64
    a6ac:	3011883a 	mov	r8,r6
    a6b0:	000d883a 	mov	r6,zero
    a6b4:	dd400b15 	stw	r21,44(sp)
    a6b8:	dcc00915 	stw	r19,36(sp)
    a6bc:	dc000615 	stw	r16,24(sp)
    a6c0:	dfc00f15 	stw	ra,60(sp)
    a6c4:	df000e15 	stw	fp,56(sp)
    a6c8:	ddc00d15 	stw	r23,52(sp)
    a6cc:	dd800c15 	stw	r22,48(sp)
    a6d0:	dd000a15 	stw	r20,40(sp)
    a6d4:	dc800815 	stw	r18,32(sp)
    a6d8:	dc400715 	stw	r17,28(sp)
    a6dc:	2817883a 	mov	r11,r5
    a6e0:	d9800415 	stw	r6,16(sp)
    a6e4:	4027883a 	mov	r19,r8
    a6e8:	d9800515 	stw	r6,20(sp)
    a6ec:	2021883a 	mov	r16,r4
    a6f0:	282b883a 	mov	r21,r5
    a6f4:	38002c1e 	bne	r7,zero,a7a8 <__umoddi3+0x100>
    a6f8:	2a005636 	bltu	r5,r8,a854 <__umoddi3+0x1ac>
    a6fc:	40009a26 	beq	r8,zero,a968 <__umoddi3+0x2c0>
    a700:	00bfffd4 	movui	r2,65535
    a704:	14c09236 	bltu	r2,r19,a950 <__umoddi3+0x2a8>
    a708:	00803fc4 	movi	r2,255
    a70c:	14c15c36 	bltu	r2,r19,ac80 <__umoddi3+0x5d8>
    a710:	000b883a 	mov	r5,zero
    a714:	0005883a 	mov	r2,zero
    a718:	9884d83a 	srl	r2,r19,r2
    a71c:	01000074 	movhi	r4,1
    a720:	21015d04 	addi	r4,r4,1396
    a724:	01800804 	movi	r6,32
    a728:	1105883a 	add	r2,r2,r4
    a72c:	10c00003 	ldbu	r3,0(r2)
    a730:	28c7883a 	add	r3,r5,r3
    a734:	30e5c83a 	sub	r18,r6,r3
    a738:	9000a41e 	bne	r18,zero,a9cc <__umoddi3+0x324>
    a73c:	982ed43a 	srli	r23,r19,16
    a740:	acebc83a 	sub	r21,r21,r19
    a744:	9d3fffcc 	andi	r20,r19,65535
    a748:	002d883a 	mov	r22,zero
    a74c:	a809883a 	mov	r4,r21
    a750:	b80b883a 	mov	r5,r23
    a754:	0002c140 	call	2c14 <__udivsi3>
    a758:	100b883a 	mov	r5,r2
    a75c:	a009883a 	mov	r4,r20
    a760:	0002c240 	call	2c24 <__mulsi3>
    a764:	a809883a 	mov	r4,r21
    a768:	b80b883a 	mov	r5,r23
    a76c:	1023883a 	mov	r17,r2
    a770:	0002c1c0 	call	2c1c <__umodsi3>
    a774:	1004943a 	slli	r2,r2,16
    a778:	8006d43a 	srli	r3,r16,16
    a77c:	10c4b03a 	or	r2,r2,r3
    a780:	1440032e 	bgeu	r2,r17,a790 <__umoddi3+0xe8>
    a784:	14c5883a 	add	r2,r2,r19
    a788:	14c00136 	bltu	r2,r19,a790 <__umoddi3+0xe8>
    a78c:	14415836 	bltu	r2,r17,acf0 <__umoddi3+0x648>
    a790:	1463c83a 	sub	r17,r2,r17
    a794:	8809883a 	mov	r4,r17
    a798:	b80b883a 	mov	r5,r23
    a79c:	0002c140 	call	2c14 <__udivsi3>
    a7a0:	a009883a 	mov	r4,r20
    a7a4:	00005306 	br	a8f4 <__umoddi3+0x24c>
    a7a8:	380d883a 	mov	r6,r7
    a7ac:	29c0132e 	bgeu	r5,r7,a7fc <__umoddi3+0x154>
    a7b0:	d9000415 	stw	r4,16(sp)
    a7b4:	d9400515 	stw	r5,20(sp)
    a7b8:	d9400417 	ldw	r5,16(sp)
    a7bc:	5813883a 	mov	r9,r11
    a7c0:	2811883a 	mov	r8,r5
    a7c4:	4005883a 	mov	r2,r8
    a7c8:	4807883a 	mov	r3,r9
    a7cc:	dfc00f17 	ldw	ra,60(sp)
    a7d0:	df000e17 	ldw	fp,56(sp)
    a7d4:	ddc00d17 	ldw	r23,52(sp)
    a7d8:	dd800c17 	ldw	r22,48(sp)
    a7dc:	dd400b17 	ldw	r21,44(sp)
    a7e0:	dd000a17 	ldw	r20,40(sp)
    a7e4:	dcc00917 	ldw	r19,36(sp)
    a7e8:	dc800817 	ldw	r18,32(sp)
    a7ec:	dc400717 	ldw	r17,28(sp)
    a7f0:	dc000617 	ldw	r16,24(sp)
    a7f4:	dec01004 	addi	sp,sp,64
    a7f8:	f800283a 	ret
    a7fc:	00bfffd4 	movui	r2,65535
    a800:	11c06636 	bltu	r2,r7,a99c <__umoddi3+0x2f4>
    a804:	00803fc4 	movi	r2,255
    a808:	11c12036 	bltu	r2,r7,ac8c <__umoddi3+0x5e4>
    a80c:	000b883a 	mov	r5,zero
    a810:	0005883a 	mov	r2,zero
    a814:	3084d83a 	srl	r2,r6,r2
    a818:	01000074 	movhi	r4,1
    a81c:	21015d04 	addi	r4,r4,1396
    a820:	01c00804 	movi	r7,32
    a824:	1105883a 	add	r2,r2,r4
    a828:	10c00003 	ldbu	r3,0(r2)
    a82c:	28c7883a 	add	r3,r5,r3
    a830:	38e5c83a 	sub	r18,r7,r3
    a834:	9000941e 	bne	r18,zero,aa88 <__umoddi3+0x3e0>
    a838:	35405e36 	bltu	r6,r21,a9b4 <__umoddi3+0x30c>
    a83c:	84c05d2e 	bgeu	r16,r19,a9b4 <__umoddi3+0x30c>
    a840:	8011883a 	mov	r8,r16
    a844:	a813883a 	mov	r9,r21
    a848:	dc000415 	stw	r16,16(sp)
    a84c:	dd400515 	stw	r21,20(sp)
    a850:	003fdc06 	br	a7c4 <__umoddi3+0x11c>
    a854:	00bfffd4 	movui	r2,65535
    a858:	12004a36 	bltu	r2,r8,a984 <__umoddi3+0x2dc>
    a85c:	00803fc4 	movi	r2,255
    a860:	12010d36 	bltu	r2,r8,ac98 <__umoddi3+0x5f0>
    a864:	000b883a 	mov	r5,zero
    a868:	0005883a 	mov	r2,zero
    a86c:	9884d83a 	srl	r2,r19,r2
    a870:	01000074 	movhi	r4,1
    a874:	21015d04 	addi	r4,r4,1396
    a878:	01800804 	movi	r6,32
    a87c:	1105883a 	add	r2,r2,r4
    a880:	10c00003 	ldbu	r3,0(r2)
    a884:	28c7883a 	add	r3,r5,r3
    a888:	30c7c83a 	sub	r3,r6,r3
    a88c:	1800dc1e 	bne	r3,zero,ac00 <__umoddi3+0x558>
    a890:	002d883a 	mov	r22,zero
    a894:	982ed43a 	srli	r23,r19,16
    a898:	a809883a 	mov	r4,r21
    a89c:	9cbfffcc 	andi	r18,r19,65535
    a8a0:	b80b883a 	mov	r5,r23
    a8a4:	0002c140 	call	2c14 <__udivsi3>
    a8a8:	100b883a 	mov	r5,r2
    a8ac:	9009883a 	mov	r4,r18
    a8b0:	0002c240 	call	2c24 <__mulsi3>
    a8b4:	a809883a 	mov	r4,r21
    a8b8:	b80b883a 	mov	r5,r23
    a8bc:	1023883a 	mov	r17,r2
    a8c0:	0002c1c0 	call	2c1c <__umodsi3>
    a8c4:	1004943a 	slli	r2,r2,16
    a8c8:	8006d43a 	srli	r3,r16,16
    a8cc:	10c4b03a 	or	r2,r2,r3
    a8d0:	1440032e 	bgeu	r2,r17,a8e0 <__umoddi3+0x238>
    a8d4:	14c5883a 	add	r2,r2,r19
    a8d8:	14c00136 	bltu	r2,r19,a8e0 <__umoddi3+0x238>
    a8dc:	14410236 	bltu	r2,r17,ace8 <__umoddi3+0x640>
    a8e0:	1463c83a 	sub	r17,r2,r17
    a8e4:	8809883a 	mov	r4,r17
    a8e8:	b80b883a 	mov	r5,r23
    a8ec:	0002c140 	call	2c14 <__udivsi3>
    a8f0:	9009883a 	mov	r4,r18
    a8f4:	100b883a 	mov	r5,r2
    a8f8:	0002c240 	call	2c24 <__mulsi3>
    a8fc:	8809883a 	mov	r4,r17
    a900:	b80b883a 	mov	r5,r23
    a904:	102b883a 	mov	r21,r2
    a908:	0002c1c0 	call	2c1c <__umodsi3>
    a90c:	1004943a 	slli	r2,r2,16
    a910:	80ffffcc 	andi	r3,r16,65535
    a914:	10c4b03a 	or	r2,r2,r3
    a918:	1540042e 	bgeu	r2,r21,a92c <__umoddi3+0x284>
    a91c:	14c5883a 	add	r2,r2,r19
    a920:	14c00236 	bltu	r2,r19,a92c <__umoddi3+0x284>
    a924:	1540012e 	bgeu	r2,r21,a92c <__umoddi3+0x284>
    a928:	14c5883a 	add	r2,r2,r19
    a92c:	1545c83a 	sub	r2,r2,r21
    a930:	1584d83a 	srl	r2,r2,r22
    a934:	0013883a 	mov	r9,zero
    a938:	d8800415 	stw	r2,16(sp)
    a93c:	d8c00417 	ldw	r3,16(sp)
    a940:	0005883a 	mov	r2,zero
    a944:	d8800515 	stw	r2,20(sp)
    a948:	1811883a 	mov	r8,r3
    a94c:	003f9d06 	br	a7c4 <__umoddi3+0x11c>
    a950:	00804034 	movhi	r2,256
    a954:	10bfffc4 	addi	r2,r2,-1
    a958:	14c0c636 	bltu	r2,r19,ac74 <__umoddi3+0x5cc>
    a95c:	01400404 	movi	r5,16
    a960:	2805883a 	mov	r2,r5
    a964:	003f6c06 	br	a718 <__umoddi3+0x70>
    a968:	01000044 	movi	r4,1
    a96c:	000b883a 	mov	r5,zero
    a970:	0002c140 	call	2c14 <__udivsi3>
    a974:	1027883a 	mov	r19,r2
    a978:	00bfffd4 	movui	r2,65535
    a97c:	14fff436 	bltu	r2,r19,a950 <__umoddi3+0x2a8>
    a980:	003f6106 	br	a708 <__umoddi3+0x60>
    a984:	00804034 	movhi	r2,256
    a988:	10bfffc4 	addi	r2,r2,-1
    a98c:	1200c536 	bltu	r2,r8,aca4 <__umoddi3+0x5fc>
    a990:	01400404 	movi	r5,16
    a994:	2805883a 	mov	r2,r5
    a998:	003fb406 	br	a86c <__umoddi3+0x1c4>
    a99c:	00804034 	movhi	r2,256
    a9a0:	10bfffc4 	addi	r2,r2,-1
    a9a4:	11c0c236 	bltu	r2,r7,acb0 <__umoddi3+0x608>
    a9a8:	01400404 	movi	r5,16
    a9ac:	2805883a 	mov	r2,r5
    a9b0:	003f9806 	br	a814 <__umoddi3+0x16c>
    a9b4:	84c9c83a 	sub	r4,r16,r19
    a9b8:	8105803a 	cmpltu	r2,r16,r4
    a9bc:	a987c83a 	sub	r3,r21,r6
    a9c0:	18abc83a 	sub	r21,r3,r2
    a9c4:	2021883a 	mov	r16,r4
    a9c8:	003f9d06 	br	a840 <__umoddi3+0x198>
    a9cc:	9ca6983a 	sll	r19,r19,r18
    a9d0:	3485c83a 	sub	r2,r6,r18
    a9d4:	a8a2d83a 	srl	r17,r21,r2
    a9d8:	982ed43a 	srli	r23,r19,16
    a9dc:	ac86983a 	sll	r3,r21,r18
    a9e0:	8084d83a 	srl	r2,r16,r2
    a9e4:	8809883a 	mov	r4,r17
    a9e8:	b80b883a 	mov	r5,r23
    a9ec:	18b8b03a 	or	fp,r3,r2
    a9f0:	9d3fffcc 	andi	r20,r19,65535
    a9f4:	0002c140 	call	2c14 <__udivsi3>
    a9f8:	100b883a 	mov	r5,r2
    a9fc:	a009883a 	mov	r4,r20
    aa00:	0002c240 	call	2c24 <__mulsi3>
    aa04:	8809883a 	mov	r4,r17
    aa08:	b80b883a 	mov	r5,r23
    aa0c:	102b883a 	mov	r21,r2
    aa10:	0002c1c0 	call	2c1c <__umodsi3>
    aa14:	1004943a 	slli	r2,r2,16
    aa18:	e006d43a 	srli	r3,fp,16
    aa1c:	902d883a 	mov	r22,r18
    aa20:	10c4b03a 	or	r2,r2,r3
    aa24:	1540022e 	bgeu	r2,r21,aa30 <__umoddi3+0x388>
    aa28:	14c5883a 	add	r2,r2,r19
    aa2c:	14c0ab2e 	bgeu	r2,r19,acdc <__umoddi3+0x634>
    aa30:	1563c83a 	sub	r17,r2,r21
    aa34:	8809883a 	mov	r4,r17
    aa38:	b80b883a 	mov	r5,r23
    aa3c:	0002c140 	call	2c14 <__udivsi3>
    aa40:	100b883a 	mov	r5,r2
    aa44:	a009883a 	mov	r4,r20
    aa48:	0002c240 	call	2c24 <__mulsi3>
    aa4c:	8809883a 	mov	r4,r17
    aa50:	b80b883a 	mov	r5,r23
    aa54:	102b883a 	mov	r21,r2
    aa58:	0002c1c0 	call	2c1c <__umodsi3>
    aa5c:	1004943a 	slli	r2,r2,16
    aa60:	e0ffffcc 	andi	r3,fp,65535
    aa64:	10c4b03a 	or	r2,r2,r3
    aa68:	1540042e 	bgeu	r2,r21,aa7c <__umoddi3+0x3d4>
    aa6c:	14c5883a 	add	r2,r2,r19
    aa70:	14c00236 	bltu	r2,r19,aa7c <__umoddi3+0x3d4>
    aa74:	1540012e 	bgeu	r2,r21,aa7c <__umoddi3+0x3d4>
    aa78:	14c5883a 	add	r2,r2,r19
    aa7c:	84a0983a 	sll	r16,r16,r18
    aa80:	156bc83a 	sub	r21,r2,r21
    aa84:	003f3106 	br	a74c <__umoddi3+0xa4>
    aa88:	3c8fc83a 	sub	r7,r7,r18
    aa8c:	3486983a 	sll	r3,r6,r18
    aa90:	99c4d83a 	srl	r2,r19,r7
    aa94:	a9e2d83a 	srl	r17,r21,r7
    aa98:	ac8c983a 	sll	r6,r21,r18
    aa9c:	18acb03a 	or	r22,r3,r2
    aaa0:	b02ed43a 	srli	r23,r22,16
    aaa4:	81c4d83a 	srl	r2,r16,r7
    aaa8:	8809883a 	mov	r4,r17
    aaac:	b80b883a 	mov	r5,r23
    aab0:	308cb03a 	or	r6,r6,r2
    aab4:	d9c00315 	stw	r7,12(sp)
    aab8:	d9800215 	stw	r6,8(sp)
    aabc:	b53fffcc 	andi	r20,r22,65535
    aac0:	0002c140 	call	2c14 <__udivsi3>
    aac4:	100b883a 	mov	r5,r2
    aac8:	a009883a 	mov	r4,r20
    aacc:	1039883a 	mov	fp,r2
    aad0:	0002c240 	call	2c24 <__mulsi3>
    aad4:	8809883a 	mov	r4,r17
    aad8:	b80b883a 	mov	r5,r23
    aadc:	102b883a 	mov	r21,r2
    aae0:	0002c1c0 	call	2c1c <__umodsi3>
    aae4:	d9000217 	ldw	r4,8(sp)
    aae8:	1004943a 	slli	r2,r2,16
    aaec:	9ca6983a 	sll	r19,r19,r18
    aaf0:	2006d43a 	srli	r3,r4,16
    aaf4:	84a0983a 	sll	r16,r16,r18
    aaf8:	dcc00015 	stw	r19,0(sp)
    aafc:	10c4b03a 	or	r2,r2,r3
    ab00:	dc000115 	stw	r16,4(sp)
    ab04:	1540032e 	bgeu	r2,r21,ab14 <__umoddi3+0x46c>
    ab08:	1585883a 	add	r2,r2,r22
    ab0c:	e73fffc4 	addi	fp,fp,-1
    ab10:	15806e2e 	bgeu	r2,r22,accc <__umoddi3+0x624>
    ab14:	1563c83a 	sub	r17,r2,r21
    ab18:	8809883a 	mov	r4,r17
    ab1c:	b80b883a 	mov	r5,r23
    ab20:	0002c140 	call	2c14 <__udivsi3>
    ab24:	100b883a 	mov	r5,r2
    ab28:	a009883a 	mov	r4,r20
    ab2c:	1021883a 	mov	r16,r2
    ab30:	0002c240 	call	2c24 <__mulsi3>
    ab34:	b80b883a 	mov	r5,r23
    ab38:	8809883a 	mov	r4,r17
    ab3c:	1029883a 	mov	r20,r2
    ab40:	0002c1c0 	call	2c1c <__umodsi3>
    ab44:	d9400217 	ldw	r5,8(sp)
    ab48:	1004943a 	slli	r2,r2,16
    ab4c:	28ffffcc 	andi	r3,r5,65535
    ab50:	10c4b03a 	or	r2,r2,r3
    ab54:	1500032e 	bgeu	r2,r20,ab64 <__umoddi3+0x4bc>
    ab58:	1585883a 	add	r2,r2,r22
    ab5c:	843fffc4 	addi	r16,r16,-1
    ab60:	1580562e 	bgeu	r2,r22,acbc <__umoddi3+0x614>
    ab64:	d9800017 	ldw	r6,0(sp)
    ab68:	e022943a 	slli	r17,fp,16
    ab6c:	302ed43a 	srli	r23,r6,16
    ab70:	8462b03a 	or	r17,r16,r17
    ab74:	34ffffcc 	andi	r19,r6,65535
    ab78:	882ad43a 	srli	r21,r17,16
    ab7c:	8c7fffcc 	andi	r17,r17,65535
    ab80:	8809883a 	mov	r4,r17
    ab84:	980b883a 	mov	r5,r19
    ab88:	1521c83a 	sub	r16,r2,r20
    ab8c:	0002c240 	call	2c24 <__mulsi3>
    ab90:	8809883a 	mov	r4,r17
    ab94:	b80b883a 	mov	r5,r23
    ab98:	1029883a 	mov	r20,r2
    ab9c:	0002c240 	call	2c24 <__mulsi3>
    aba0:	980b883a 	mov	r5,r19
    aba4:	a809883a 	mov	r4,r21
    aba8:	1023883a 	mov	r17,r2
    abac:	0002c240 	call	2c24 <__mulsi3>
    abb0:	a809883a 	mov	r4,r21
    abb4:	b80b883a 	mov	r5,r23
    abb8:	1027883a 	mov	r19,r2
    abbc:	0002c240 	call	2c24 <__mulsi3>
    abc0:	100b883a 	mov	r5,r2
    abc4:	a004d43a 	srli	r2,r20,16
    abc8:	8ce3883a 	add	r17,r17,r19
    abcc:	1449883a 	add	r4,r2,r17
    abd0:	24c0022e 	bgeu	r4,r19,abdc <__umoddi3+0x534>
    abd4:	00800074 	movhi	r2,1
    abd8:	288b883a 	add	r5,r5,r2
    abdc:	2004d43a 	srli	r2,r4,16
    abe0:	2008943a 	slli	r4,r4,16
    abe4:	a0ffffcc 	andi	r3,r20,65535
    abe8:	288d883a 	add	r6,r5,r2
    abec:	20c9883a 	add	r4,r4,r3
    abf0:	81800b36 	bltu	r16,r6,ac20 <__umoddi3+0x578>
    abf4:	81804026 	beq	r16,r6,acf8 <__umoddi3+0x650>
    abf8:	818dc83a 	sub	r6,r16,r6
    abfc:	00000f06 	br	ac3c <__umoddi3+0x594>
    ac00:	30c5c83a 	sub	r2,r6,r3
    ac04:	182d883a 	mov	r22,r3
    ac08:	8084d83a 	srl	r2,r16,r2
    ac0c:	a8c6983a 	sll	r3,r21,r3
    ac10:	9da6983a 	sll	r19,r19,r22
    ac14:	85a0983a 	sll	r16,r16,r22
    ac18:	18aab03a 	or	r21,r3,r2
    ac1c:	003f1d06 	br	a894 <__umoddi3+0x1ec>
    ac20:	d8c00017 	ldw	r3,0(sp)
    ac24:	20c5c83a 	sub	r2,r4,r3
    ac28:	2089803a 	cmpltu	r4,r4,r2
    ac2c:	3587c83a 	sub	r3,r6,r22
    ac30:	1907c83a 	sub	r3,r3,r4
    ac34:	80cdc83a 	sub	r6,r16,r3
    ac38:	1009883a 	mov	r4,r2
    ac3c:	d9400117 	ldw	r5,4(sp)
    ac40:	2905c83a 	sub	r2,r5,r4
    ac44:	2887803a 	cmpltu	r3,r5,r2
    ac48:	30c7c83a 	sub	r3,r6,r3
    ac4c:	d9800317 	ldw	r6,12(sp)
    ac50:	1484d83a 	srl	r2,r2,r18
    ac54:	1988983a 	sll	r4,r3,r6
    ac58:	1c86d83a 	srl	r3,r3,r18
    ac5c:	2088b03a 	or	r4,r4,r2
    ac60:	2011883a 	mov	r8,r4
    ac64:	1813883a 	mov	r9,r3
    ac68:	d9000415 	stw	r4,16(sp)
    ac6c:	d8c00515 	stw	r3,20(sp)
    ac70:	003ed406 	br	a7c4 <__umoddi3+0x11c>
    ac74:	01400604 	movi	r5,24
    ac78:	2805883a 	mov	r2,r5
    ac7c:	003ea606 	br	a718 <__umoddi3+0x70>
    ac80:	01400204 	movi	r5,8
    ac84:	2805883a 	mov	r2,r5
    ac88:	003ea306 	br	a718 <__umoddi3+0x70>
    ac8c:	01400204 	movi	r5,8
    ac90:	2805883a 	mov	r2,r5
    ac94:	003edf06 	br	a814 <__umoddi3+0x16c>
    ac98:	01400204 	movi	r5,8
    ac9c:	2805883a 	mov	r2,r5
    aca0:	003ef206 	br	a86c <__umoddi3+0x1c4>
    aca4:	01400604 	movi	r5,24
    aca8:	2805883a 	mov	r2,r5
    acac:	003eef06 	br	a86c <__umoddi3+0x1c4>
    acb0:	01400604 	movi	r5,24
    acb4:	2805883a 	mov	r2,r5
    acb8:	003ed606 	br	a814 <__umoddi3+0x16c>
    acbc:	153fa92e 	bgeu	r2,r20,ab64 <__umoddi3+0x4bc>
    acc0:	843fffc4 	addi	r16,r16,-1
    acc4:	1585883a 	add	r2,r2,r22
    acc8:	003fa606 	br	ab64 <__umoddi3+0x4bc>
    accc:	157f912e 	bgeu	r2,r21,ab14 <__umoddi3+0x46c>
    acd0:	e73fffc4 	addi	fp,fp,-1
    acd4:	1585883a 	add	r2,r2,r22
    acd8:	003f8e06 	br	ab14 <__umoddi3+0x46c>
    acdc:	157f542e 	bgeu	r2,r21,aa30 <__umoddi3+0x388>
    ace0:	14c5883a 	add	r2,r2,r19
    ace4:	003f5206 	br	aa30 <__umoddi3+0x388>
    ace8:	14c5883a 	add	r2,r2,r19
    acec:	003efc06 	br	a8e0 <__umoddi3+0x238>
    acf0:	14c5883a 	add	r2,r2,r19
    acf4:	003ea606 	br	a790 <__umoddi3+0xe8>
    acf8:	d8800117 	ldw	r2,4(sp)
    acfc:	113fc836 	bltu	r2,r4,ac20 <__umoddi3+0x578>
    ad00:	000d883a 	mov	r6,zero
    ad04:	003fcd06 	br	ac3c <__umoddi3+0x594>

0000ad08 <_fpadd_parts>:
    ad08:	defff804 	addi	sp,sp,-32
    ad0c:	dcc00315 	stw	r19,12(sp)
    ad10:	2027883a 	mov	r19,r4
    ad14:	21000017 	ldw	r4,0(r4)
    ad18:	00c00044 	movi	r3,1
    ad1c:	dd400515 	stw	r21,20(sp)
    ad20:	dd000415 	stw	r20,16(sp)
    ad24:	ddc00715 	stw	r23,28(sp)
    ad28:	dd800615 	stw	r22,24(sp)
    ad2c:	dc800215 	stw	r18,8(sp)
    ad30:	dc400115 	stw	r17,4(sp)
    ad34:	dc000015 	stw	r16,0(sp)
    ad38:	282b883a 	mov	r21,r5
    ad3c:	3029883a 	mov	r20,r6
    ad40:	1900632e 	bgeu	r3,r4,aed0 <_fpadd_parts+0x1c8>
    ad44:	28800017 	ldw	r2,0(r5)
    ad48:	1880812e 	bgeu	r3,r2,af50 <_fpadd_parts+0x248>
    ad4c:	00c00104 	movi	r3,4
    ad50:	20c0dc26 	beq	r4,r3,b0c4 <_fpadd_parts+0x3bc>
    ad54:	10c07e26 	beq	r2,r3,af50 <_fpadd_parts+0x248>
    ad58:	00c00084 	movi	r3,2
    ad5c:	10c06726 	beq	r2,r3,aefc <_fpadd_parts+0x1f4>
    ad60:	20c07b26 	beq	r4,r3,af50 <_fpadd_parts+0x248>
    ad64:	9dc00217 	ldw	r23,8(r19)
    ad68:	28c00217 	ldw	r3,8(r5)
    ad6c:	9c400317 	ldw	r17,12(r19)
    ad70:	2bc00317 	ldw	r15,12(r5)
    ad74:	b8cdc83a 	sub	r6,r23,r3
    ad78:	9c800417 	ldw	r18,16(r19)
    ad7c:	2c000417 	ldw	r16,16(r5)
    ad80:	3009883a 	mov	r4,r6
    ad84:	30009716 	blt	r6,zero,afe4 <_fpadd_parts+0x2dc>
    ad88:	00800fc4 	movi	r2,63
    ad8c:	11806b16 	blt	r2,r6,af3c <_fpadd_parts+0x234>
    ad90:	0100a40e 	bge	zero,r4,b024 <_fpadd_parts+0x31c>
    ad94:	35bff804 	addi	r22,r6,-32
    ad98:	b000bc16 	blt	r22,zero,b08c <_fpadd_parts+0x384>
    ad9c:	8596d83a 	srl	r11,r16,r22
    ada0:	0019883a 	mov	r12,zero
    ada4:	0013883a 	mov	r9,zero
    ada8:	01000044 	movi	r4,1
    adac:	0015883a 	mov	r10,zero
    adb0:	b000be16 	blt	r22,zero,b0ac <_fpadd_parts+0x3a4>
    adb4:	2590983a 	sll	r8,r4,r22
    adb8:	000f883a 	mov	r7,zero
    adbc:	00bfffc4 	movi	r2,-1
    adc0:	3889883a 	add	r4,r7,r2
    adc4:	408b883a 	add	r5,r8,r2
    adc8:	21cd803a 	cmpltu	r6,r4,r7
    adcc:	314b883a 	add	r5,r6,r5
    add0:	7904703a 	and	r2,r15,r4
    add4:	8146703a 	and	r3,r16,r5
    add8:	10c4b03a 	or	r2,r2,r3
    addc:	10000226 	beq	r2,zero,ade8 <_fpadd_parts+0xe0>
    ade0:	02400044 	movi	r9,1
    ade4:	0015883a 	mov	r10,zero
    ade8:	5a5eb03a 	or	r15,r11,r9
    adec:	62a0b03a 	or	r16,r12,r10
    adf0:	99400117 	ldw	r5,4(r19)
    adf4:	a8800117 	ldw	r2,4(r21)
    adf8:	28806e26 	beq	r5,r2,afb4 <_fpadd_parts+0x2ac>
    adfc:	28006626 	beq	r5,zero,af98 <_fpadd_parts+0x290>
    ae00:	7c45c83a 	sub	r2,r15,r17
    ae04:	7889803a 	cmpltu	r4,r15,r2
    ae08:	8487c83a 	sub	r3,r16,r18
    ae0c:	1909c83a 	sub	r4,r3,r4
    ae10:	100d883a 	mov	r6,r2
    ae14:	200f883a 	mov	r7,r4
    ae18:	38007716 	blt	r7,zero,aff8 <_fpadd_parts+0x2f0>
    ae1c:	a5c00215 	stw	r23,8(r20)
    ae20:	a1c00415 	stw	r7,16(r20)
    ae24:	a0000115 	stw	zero,4(r20)
    ae28:	a1800315 	stw	r6,12(r20)
    ae2c:	a2000317 	ldw	r8,12(r20)
    ae30:	a2400417 	ldw	r9,16(r20)
    ae34:	00bfffc4 	movi	r2,-1
    ae38:	408b883a 	add	r5,r8,r2
    ae3c:	2a09803a 	cmpltu	r4,r5,r8
    ae40:	488d883a 	add	r6,r9,r2
    ae44:	01c40034 	movhi	r7,4096
    ae48:	39ffffc4 	addi	r7,r7,-1
    ae4c:	218d883a 	add	r6,r4,r6
    ae50:	39801736 	bltu	r7,r6,aeb0 <_fpadd_parts+0x1a8>
    ae54:	31c06526 	beq	r6,r7,afec <_fpadd_parts+0x2e4>
    ae58:	a3000217 	ldw	r12,8(r20)
    ae5c:	4209883a 	add	r4,r8,r8
    ae60:	00bfffc4 	movi	r2,-1
    ae64:	220f803a 	cmpltu	r7,r4,r8
    ae68:	4a4b883a 	add	r5,r9,r9
    ae6c:	394f883a 	add	r7,r7,r5
    ae70:	2095883a 	add	r10,r4,r2
    ae74:	3897883a 	add	r11,r7,r2
    ae78:	510d803a 	cmpltu	r6,r10,r4
    ae7c:	6099883a 	add	r12,r12,r2
    ae80:	32d7883a 	add	r11,r6,r11
    ae84:	00840034 	movhi	r2,4096
    ae88:	10bfffc4 	addi	r2,r2,-1
    ae8c:	2011883a 	mov	r8,r4
    ae90:	3813883a 	mov	r9,r7
    ae94:	a1000315 	stw	r4,12(r20)
    ae98:	a1c00415 	stw	r7,16(r20)
    ae9c:	a3000215 	stw	r12,8(r20)
    aea0:	12c00336 	bltu	r2,r11,aeb0 <_fpadd_parts+0x1a8>
    aea4:	58bfed1e 	bne	r11,r2,ae5c <_fpadd_parts+0x154>
    aea8:	00bfff84 	movi	r2,-2
    aeac:	12bfeb2e 	bgeu	r2,r10,ae5c <_fpadd_parts+0x154>
    aeb0:	a2800417 	ldw	r10,16(r20)
    aeb4:	008000c4 	movi	r2,3
    aeb8:	00c80034 	movhi	r3,8192
    aebc:	18ffffc4 	addi	r3,r3,-1
    aec0:	a2400317 	ldw	r9,12(r20)
    aec4:	a0800015 	stw	r2,0(r20)
    aec8:	1a802336 	bltu	r3,r10,af58 <_fpadd_parts+0x250>
    aecc:	a027883a 	mov	r19,r20
    aed0:	9805883a 	mov	r2,r19
    aed4:	ddc00717 	ldw	r23,28(sp)
    aed8:	dd800617 	ldw	r22,24(sp)
    aedc:	dd400517 	ldw	r21,20(sp)
    aee0:	dd000417 	ldw	r20,16(sp)
    aee4:	dcc00317 	ldw	r19,12(sp)
    aee8:	dc800217 	ldw	r18,8(sp)
    aeec:	dc400117 	ldw	r17,4(sp)
    aef0:	dc000017 	ldw	r16,0(sp)
    aef4:	dec00804 	addi	sp,sp,32
    aef8:	f800283a 	ret
    aefc:	20fff41e 	bne	r4,r3,aed0 <_fpadd_parts+0x1c8>
    af00:	31000015 	stw	r4,0(r6)
    af04:	98800117 	ldw	r2,4(r19)
    af08:	30800115 	stw	r2,4(r6)
    af0c:	98c00217 	ldw	r3,8(r19)
    af10:	30c00215 	stw	r3,8(r6)
    af14:	98800317 	ldw	r2,12(r19)
    af18:	30800315 	stw	r2,12(r6)
    af1c:	98c00417 	ldw	r3,16(r19)
    af20:	30c00415 	stw	r3,16(r6)
    af24:	98800117 	ldw	r2,4(r19)
    af28:	28c00117 	ldw	r3,4(r5)
    af2c:	3027883a 	mov	r19,r6
    af30:	10c4703a 	and	r2,r2,r3
    af34:	30800115 	stw	r2,4(r6)
    af38:	003fe506 	br	aed0 <_fpadd_parts+0x1c8>
    af3c:	1dc02616 	blt	r3,r23,afd8 <_fpadd_parts+0x2d0>
    af40:	0023883a 	mov	r17,zero
    af44:	182f883a 	mov	r23,r3
    af48:	0025883a 	mov	r18,zero
    af4c:	003fa806 	br	adf0 <_fpadd_parts+0xe8>
    af50:	a827883a 	mov	r19,r21
    af54:	003fde06 	br	aed0 <_fpadd_parts+0x1c8>
    af58:	01800044 	movi	r6,1
    af5c:	500497fa 	slli	r2,r10,31
    af60:	4808d07a 	srli	r4,r9,1
    af64:	518ad83a 	srl	r5,r10,r6
    af68:	a2000217 	ldw	r8,8(r20)
    af6c:	1108b03a 	or	r4,r2,r4
    af70:	0007883a 	mov	r3,zero
    af74:	4984703a 	and	r2,r9,r6
    af78:	208cb03a 	or	r6,r4,r2
    af7c:	28ceb03a 	or	r7,r5,r3
    af80:	42000044 	addi	r8,r8,1
    af84:	a027883a 	mov	r19,r20
    af88:	a1c00415 	stw	r7,16(r20)
    af8c:	a2000215 	stw	r8,8(r20)
    af90:	a1800315 	stw	r6,12(r20)
    af94:	003fce06 	br	aed0 <_fpadd_parts+0x1c8>
    af98:	8bc5c83a 	sub	r2,r17,r15
    af9c:	8889803a 	cmpltu	r4,r17,r2
    afa0:	9407c83a 	sub	r3,r18,r16
    afa4:	1909c83a 	sub	r4,r3,r4
    afa8:	100d883a 	mov	r6,r2
    afac:	200f883a 	mov	r7,r4
    afb0:	003f9906 	br	ae18 <_fpadd_parts+0x110>
    afb4:	7c45883a 	add	r2,r15,r17
    afb8:	13c9803a 	cmpltu	r4,r2,r15
    afbc:	8487883a 	add	r3,r16,r18
    afc0:	20c9883a 	add	r4,r4,r3
    afc4:	a1400115 	stw	r5,4(r20)
    afc8:	a5c00215 	stw	r23,8(r20)
    afcc:	a0800315 	stw	r2,12(r20)
    afd0:	a1000415 	stw	r4,16(r20)
    afd4:	003fb606 	br	aeb0 <_fpadd_parts+0x1a8>
    afd8:	001f883a 	mov	r15,zero
    afdc:	0021883a 	mov	r16,zero
    afe0:	003f8306 	br	adf0 <_fpadd_parts+0xe8>
    afe4:	018dc83a 	sub	r6,zero,r6
    afe8:	003f6706 	br	ad88 <_fpadd_parts+0x80>
    afec:	00bfff84 	movi	r2,-2
    aff0:	117faf36 	bltu	r2,r5,aeb0 <_fpadd_parts+0x1a8>
    aff4:	003f9806 	br	ae58 <_fpadd_parts+0x150>
    aff8:	0005883a 	mov	r2,zero
    affc:	1189c83a 	sub	r4,r2,r6
    b000:	1105803a 	cmpltu	r2,r2,r4
    b004:	01cbc83a 	sub	r5,zero,r7
    b008:	2885c83a 	sub	r2,r5,r2
    b00c:	01800044 	movi	r6,1
    b010:	a1800115 	stw	r6,4(r20)
    b014:	a5c00215 	stw	r23,8(r20)
    b018:	a1000315 	stw	r4,12(r20)
    b01c:	a0800415 	stw	r2,16(r20)
    b020:	003f8206 	br	ae2c <_fpadd_parts+0x124>
    b024:	203f7226 	beq	r4,zero,adf0 <_fpadd_parts+0xe8>
    b028:	35bff804 	addi	r22,r6,-32
    b02c:	b9af883a 	add	r23,r23,r6
    b030:	b0003116 	blt	r22,zero,b0f8 <_fpadd_parts+0x3f0>
    b034:	959ad83a 	srl	r13,r18,r22
    b038:	001d883a 	mov	r14,zero
    b03c:	000f883a 	mov	r7,zero
    b040:	01000044 	movi	r4,1
    b044:	0011883a 	mov	r8,zero
    b048:	b0002516 	blt	r22,zero,b0e0 <_fpadd_parts+0x3d8>
    b04c:	2594983a 	sll	r10,r4,r22
    b050:	0013883a 	mov	r9,zero
    b054:	00bfffc4 	movi	r2,-1
    b058:	4889883a 	add	r4,r9,r2
    b05c:	508b883a 	add	r5,r10,r2
    b060:	224d803a 	cmpltu	r6,r4,r9
    b064:	314b883a 	add	r5,r6,r5
    b068:	8904703a 	and	r2,r17,r4
    b06c:	9146703a 	and	r3,r18,r5
    b070:	10c4b03a 	or	r2,r2,r3
    b074:	10000226 	beq	r2,zero,b080 <_fpadd_parts+0x378>
    b078:	01c00044 	movi	r7,1
    b07c:	0011883a 	mov	r8,zero
    b080:	69e2b03a 	or	r17,r13,r7
    b084:	7224b03a 	or	r18,r14,r8
    b088:	003f5906 	br	adf0 <_fpadd_parts+0xe8>
    b08c:	8407883a 	add	r3,r16,r16
    b090:	008007c4 	movi	r2,31
    b094:	1185c83a 	sub	r2,r2,r6
    b098:	1886983a 	sll	r3,r3,r2
    b09c:	7996d83a 	srl	r11,r15,r6
    b0a0:	8198d83a 	srl	r12,r16,r6
    b0a4:	1ad6b03a 	or	r11,r3,r11
    b0a8:	003f3e06 	br	ada4 <_fpadd_parts+0x9c>
    b0ac:	2006d07a 	srli	r3,r4,1
    b0b0:	008007c4 	movi	r2,31
    b0b4:	1185c83a 	sub	r2,r2,r6
    b0b8:	1890d83a 	srl	r8,r3,r2
    b0bc:	218e983a 	sll	r7,r4,r6
    b0c0:	003f3e06 	br	adbc <_fpadd_parts+0xb4>
    b0c4:	113f821e 	bne	r2,r4,aed0 <_fpadd_parts+0x1c8>
    b0c8:	28c00117 	ldw	r3,4(r5)
    b0cc:	98800117 	ldw	r2,4(r19)
    b0d0:	10ff7f26 	beq	r2,r3,aed0 <_fpadd_parts+0x1c8>
    b0d4:	04c00074 	movhi	r19,1
    b0d8:	9cc15804 	addi	r19,r19,1376
    b0dc:	003f7c06 	br	aed0 <_fpadd_parts+0x1c8>
    b0e0:	2006d07a 	srli	r3,r4,1
    b0e4:	008007c4 	movi	r2,31
    b0e8:	1185c83a 	sub	r2,r2,r6
    b0ec:	1894d83a 	srl	r10,r3,r2
    b0f0:	2192983a 	sll	r9,r4,r6
    b0f4:	003fd706 	br	b054 <_fpadd_parts+0x34c>
    b0f8:	9487883a 	add	r3,r18,r18
    b0fc:	008007c4 	movi	r2,31
    b100:	1185c83a 	sub	r2,r2,r6
    b104:	1886983a 	sll	r3,r3,r2
    b108:	899ad83a 	srl	r13,r17,r6
    b10c:	919cd83a 	srl	r14,r18,r6
    b110:	1b5ab03a 	or	r13,r3,r13
    b114:	003fc906 	br	b03c <_fpadd_parts+0x334>

0000b118 <__subdf3>:
    b118:	deffea04 	addi	sp,sp,-88
    b11c:	dcc01415 	stw	r19,80(sp)
    b120:	dcc00404 	addi	r19,sp,16
    b124:	2011883a 	mov	r8,r4
    b128:	2813883a 	mov	r9,r5
    b12c:	dc401315 	stw	r17,76(sp)
    b130:	d809883a 	mov	r4,sp
    b134:	980b883a 	mov	r5,r19
    b138:	dc400904 	addi	r17,sp,36
    b13c:	dfc01515 	stw	ra,84(sp)
    b140:	da400115 	stw	r9,4(sp)
    b144:	d9c00315 	stw	r7,12(sp)
    b148:	da000015 	stw	r8,0(sp)
    b14c:	d9800215 	stw	r6,8(sp)
    b150:	000c2ec0 	call	c2ec <__unpack_d>
    b154:	d9000204 	addi	r4,sp,8
    b158:	880b883a 	mov	r5,r17
    b15c:	000c2ec0 	call	c2ec <__unpack_d>
    b160:	d8800a17 	ldw	r2,40(sp)
    b164:	880b883a 	mov	r5,r17
    b168:	9809883a 	mov	r4,r19
    b16c:	d9800e04 	addi	r6,sp,56
    b170:	1080005c 	xori	r2,r2,1
    b174:	d8800a15 	stw	r2,40(sp)
    b178:	000ad080 	call	ad08 <_fpadd_parts>
    b17c:	1009883a 	mov	r4,r2
    b180:	000bfd80 	call	bfd8 <__pack_d>
    b184:	dfc01517 	ldw	ra,84(sp)
    b188:	dcc01417 	ldw	r19,80(sp)
    b18c:	dc401317 	ldw	r17,76(sp)
    b190:	dec01604 	addi	sp,sp,88
    b194:	f800283a 	ret

0000b198 <__adddf3>:
    b198:	deffea04 	addi	sp,sp,-88
    b19c:	dcc01415 	stw	r19,80(sp)
    b1a0:	dcc00404 	addi	r19,sp,16
    b1a4:	2011883a 	mov	r8,r4
    b1a8:	2813883a 	mov	r9,r5
    b1ac:	dc401315 	stw	r17,76(sp)
    b1b0:	d809883a 	mov	r4,sp
    b1b4:	980b883a 	mov	r5,r19
    b1b8:	dc400904 	addi	r17,sp,36
    b1bc:	dfc01515 	stw	ra,84(sp)
    b1c0:	da400115 	stw	r9,4(sp)
    b1c4:	d9c00315 	stw	r7,12(sp)
    b1c8:	da000015 	stw	r8,0(sp)
    b1cc:	d9800215 	stw	r6,8(sp)
    b1d0:	000c2ec0 	call	c2ec <__unpack_d>
    b1d4:	d9000204 	addi	r4,sp,8
    b1d8:	880b883a 	mov	r5,r17
    b1dc:	000c2ec0 	call	c2ec <__unpack_d>
    b1e0:	d9800e04 	addi	r6,sp,56
    b1e4:	9809883a 	mov	r4,r19
    b1e8:	880b883a 	mov	r5,r17
    b1ec:	000ad080 	call	ad08 <_fpadd_parts>
    b1f0:	1009883a 	mov	r4,r2
    b1f4:	000bfd80 	call	bfd8 <__pack_d>
    b1f8:	dfc01517 	ldw	ra,84(sp)
    b1fc:	dcc01417 	ldw	r19,80(sp)
    b200:	dc401317 	ldw	r17,76(sp)
    b204:	dec01604 	addi	sp,sp,88
    b208:	f800283a 	ret

0000b20c <__muldf3>:
    b20c:	deffe004 	addi	sp,sp,-128
    b210:	dc401815 	stw	r17,96(sp)
    b214:	dc400404 	addi	r17,sp,16
    b218:	2011883a 	mov	r8,r4
    b21c:	2813883a 	mov	r9,r5
    b220:	dc001715 	stw	r16,92(sp)
    b224:	d809883a 	mov	r4,sp
    b228:	880b883a 	mov	r5,r17
    b22c:	dc000904 	addi	r16,sp,36
    b230:	dfc01f15 	stw	ra,124(sp)
    b234:	da400115 	stw	r9,4(sp)
    b238:	d9c00315 	stw	r7,12(sp)
    b23c:	da000015 	stw	r8,0(sp)
    b240:	d9800215 	stw	r6,8(sp)
    b244:	ddc01e15 	stw	r23,120(sp)
    b248:	dd801d15 	stw	r22,116(sp)
    b24c:	dd401c15 	stw	r21,112(sp)
    b250:	dd001b15 	stw	r20,108(sp)
    b254:	dcc01a15 	stw	r19,104(sp)
    b258:	dc801915 	stw	r18,100(sp)
    b25c:	000c2ec0 	call	c2ec <__unpack_d>
    b260:	d9000204 	addi	r4,sp,8
    b264:	800b883a 	mov	r5,r16
    b268:	000c2ec0 	call	c2ec <__unpack_d>
    b26c:	d9000417 	ldw	r4,16(sp)
    b270:	00800044 	movi	r2,1
    b274:	1100102e 	bgeu	r2,r4,b2b8 <__muldf3+0xac>
    b278:	d8c00917 	ldw	r3,36(sp)
    b27c:	10c0062e 	bgeu	r2,r3,b298 <__muldf3+0x8c>
    b280:	00800104 	movi	r2,4
    b284:	20800a26 	beq	r4,r2,b2b0 <__muldf3+0xa4>
    b288:	1880cc26 	beq	r3,r2,b5bc <__muldf3+0x3b0>
    b28c:	00800084 	movi	r2,2
    b290:	20800926 	beq	r4,r2,b2b8 <__muldf3+0xac>
    b294:	1880191e 	bne	r3,r2,b2fc <__muldf3+0xf0>
    b298:	d8c00a17 	ldw	r3,40(sp)
    b29c:	d8800517 	ldw	r2,20(sp)
    b2a0:	8009883a 	mov	r4,r16
    b2a4:	10c4c03a 	cmpne	r2,r2,r3
    b2a8:	d8800a15 	stw	r2,40(sp)
    b2ac:	00000706 	br	b2cc <__muldf3+0xc0>
    b2b0:	00800084 	movi	r2,2
    b2b4:	1880c326 	beq	r3,r2,b5c4 <__muldf3+0x3b8>
    b2b8:	d8800517 	ldw	r2,20(sp)
    b2bc:	d8c00a17 	ldw	r3,40(sp)
    b2c0:	8809883a 	mov	r4,r17
    b2c4:	10c4c03a 	cmpne	r2,r2,r3
    b2c8:	d8800515 	stw	r2,20(sp)
    b2cc:	000bfd80 	call	bfd8 <__pack_d>
    b2d0:	dfc01f17 	ldw	ra,124(sp)
    b2d4:	ddc01e17 	ldw	r23,120(sp)
    b2d8:	dd801d17 	ldw	r22,116(sp)
    b2dc:	dd401c17 	ldw	r21,112(sp)
    b2e0:	dd001b17 	ldw	r20,108(sp)
    b2e4:	dcc01a17 	ldw	r19,104(sp)
    b2e8:	dc801917 	ldw	r18,100(sp)
    b2ec:	dc401817 	ldw	r17,96(sp)
    b2f0:	dc001717 	ldw	r16,92(sp)
    b2f4:	dec02004 	addi	sp,sp,128
    b2f8:	f800283a 	ret
    b2fc:	dd800717 	ldw	r22,28(sp)
    b300:	dc800c17 	ldw	r18,48(sp)
    b304:	002b883a 	mov	r21,zero
    b308:	0023883a 	mov	r17,zero
    b30c:	a80b883a 	mov	r5,r21
    b310:	b00d883a 	mov	r6,r22
    b314:	880f883a 	mov	r7,r17
    b318:	ddc00817 	ldw	r23,32(sp)
    b31c:	dcc00d17 	ldw	r19,52(sp)
    b320:	9009883a 	mov	r4,r18
    b324:	000be340 	call	be34 <__muldi3>
    b328:	001b883a 	mov	r13,zero
    b32c:	680f883a 	mov	r7,r13
    b330:	b009883a 	mov	r4,r22
    b334:	000b883a 	mov	r5,zero
    b338:	980d883a 	mov	r6,r19
    b33c:	b82d883a 	mov	r22,r23
    b340:	002f883a 	mov	r23,zero
    b344:	db401615 	stw	r13,88(sp)
    b348:	d8801315 	stw	r2,76(sp)
    b34c:	d8c01415 	stw	r3,80(sp)
    b350:	dcc01515 	stw	r19,84(sp)
    b354:	000be340 	call	be34 <__muldi3>
    b358:	b00d883a 	mov	r6,r22
    b35c:	000b883a 	mov	r5,zero
    b360:	9009883a 	mov	r4,r18
    b364:	b80f883a 	mov	r7,r23
    b368:	1021883a 	mov	r16,r2
    b36c:	1823883a 	mov	r17,r3
    b370:	000be340 	call	be34 <__muldi3>
    b374:	8085883a 	add	r2,r16,r2
    b378:	140d803a 	cmpltu	r6,r2,r16
    b37c:	88c7883a 	add	r3,r17,r3
    b380:	30cd883a 	add	r6,r6,r3
    b384:	1029883a 	mov	r20,r2
    b388:	302b883a 	mov	r21,r6
    b38c:	da801317 	ldw	r10,76(sp)
    b390:	dac01417 	ldw	r11,80(sp)
    b394:	db001517 	ldw	r12,84(sp)
    b398:	db401617 	ldw	r13,88(sp)
    b39c:	3440612e 	bgeu	r6,r17,b524 <__muldf3+0x318>
    b3a0:	0009883a 	mov	r4,zero
    b3a4:	5105883a 	add	r2,r10,r4
    b3a8:	128d803a 	cmpltu	r6,r2,r10
    b3ac:	5d07883a 	add	r3,r11,r20
    b3b0:	30cd883a 	add	r6,r6,r3
    b3b4:	0021883a 	mov	r16,zero
    b3b8:	04400044 	movi	r17,1
    b3bc:	1025883a 	mov	r18,r2
    b3c0:	3027883a 	mov	r19,r6
    b3c4:	32c06236 	bltu	r6,r11,b550 <__muldf3+0x344>
    b3c8:	59807a26 	beq	r11,r6,b5b4 <__muldf3+0x3a8>
    b3cc:	680b883a 	mov	r5,r13
    b3d0:	b80f883a 	mov	r7,r23
    b3d4:	6009883a 	mov	r4,r12
    b3d8:	b00d883a 	mov	r6,r22
    b3dc:	000be340 	call	be34 <__muldi3>
    b3e0:	1009883a 	mov	r4,r2
    b3e4:	000f883a 	mov	r7,zero
    b3e8:	1545883a 	add	r2,r2,r21
    b3ec:	1111803a 	cmpltu	r8,r2,r4
    b3f0:	19c7883a 	add	r3,r3,r7
    b3f4:	40c7883a 	add	r3,r8,r3
    b3f8:	88cb883a 	add	r5,r17,r3
    b3fc:	d8c00617 	ldw	r3,24(sp)
    b400:	8089883a 	add	r4,r16,r2
    b404:	d8800b17 	ldw	r2,44(sp)
    b408:	18c00104 	addi	r3,r3,4
    b40c:	240d803a 	cmpltu	r6,r4,r16
    b410:	10c7883a 	add	r3,r2,r3
    b414:	2013883a 	mov	r9,r4
    b418:	d8800a17 	ldw	r2,40(sp)
    b41c:	d9000517 	ldw	r4,20(sp)
    b420:	314d883a 	add	r6,r6,r5
    b424:	3015883a 	mov	r10,r6
    b428:	2088c03a 	cmpne	r4,r4,r2
    b42c:	00880034 	movhi	r2,8192
    b430:	10bfffc4 	addi	r2,r2,-1
    b434:	d9000f15 	stw	r4,60(sp)
    b438:	d8c01015 	stw	r3,64(sp)
    b43c:	1180162e 	bgeu	r2,r6,b498 <__muldf3+0x28c>
    b440:	1811883a 	mov	r8,r3
    b444:	101f883a 	mov	r15,r2
    b448:	980497fa 	slli	r2,r19,31
    b44c:	9016d07a 	srli	r11,r18,1
    b450:	500697fa 	slli	r3,r10,31
    b454:	480cd07a 	srli	r6,r9,1
    b458:	500ed07a 	srli	r7,r10,1
    b45c:	12d6b03a 	or	r11,r2,r11
    b460:	00800044 	movi	r2,1
    b464:	198cb03a 	or	r6,r3,r6
    b468:	4888703a 	and	r4,r9,r2
    b46c:	9818d07a 	srli	r12,r19,1
    b470:	001b883a 	mov	r13,zero
    b474:	03a00034 	movhi	r14,32768
    b478:	3013883a 	mov	r9,r6
    b47c:	3815883a 	mov	r10,r7
    b480:	4091883a 	add	r8,r8,r2
    b484:	20000226 	beq	r4,zero,b490 <__muldf3+0x284>
    b488:	5b64b03a 	or	r18,r11,r13
    b48c:	63a6b03a 	or	r19,r12,r14
    b490:	7abfed36 	bltu	r15,r10,b448 <__muldf3+0x23c>
    b494:	da001015 	stw	r8,64(sp)
    b498:	00840034 	movhi	r2,4096
    b49c:	10bfffc4 	addi	r2,r2,-1
    b4a0:	12801436 	bltu	r2,r10,b4f4 <__muldf3+0x2e8>
    b4a4:	da001017 	ldw	r8,64(sp)
    b4a8:	101f883a 	mov	r15,r2
    b4ac:	4a45883a 	add	r2,r9,r9
    b4b0:	124d803a 	cmpltu	r6,r2,r9
    b4b4:	5287883a 	add	r3,r10,r10
    b4b8:	9497883a 	add	r11,r18,r18
    b4bc:	5c8f803a 	cmpltu	r7,r11,r18
    b4c0:	9cd9883a 	add	r12,r19,r19
    b4c4:	01000044 	movi	r4,1
    b4c8:	30cd883a 	add	r6,r6,r3
    b4cc:	3b0f883a 	add	r7,r7,r12
    b4d0:	423fffc4 	addi	r8,r8,-1
    b4d4:	1013883a 	mov	r9,r2
    b4d8:	3015883a 	mov	r10,r6
    b4dc:	111ab03a 	or	r13,r2,r4
    b4e0:	98003016 	blt	r19,zero,b5a4 <__muldf3+0x398>
    b4e4:	5825883a 	mov	r18,r11
    b4e8:	3827883a 	mov	r19,r7
    b4ec:	7abfef2e 	bgeu	r15,r10,b4ac <__muldf3+0x2a0>
    b4f0:	da001015 	stw	r8,64(sp)
    b4f4:	00803fc4 	movi	r2,255
    b4f8:	488e703a 	and	r7,r9,r2
    b4fc:	00802004 	movi	r2,128
    b500:	0007883a 	mov	r3,zero
    b504:	0011883a 	mov	r8,zero
    b508:	38801826 	beq	r7,r2,b56c <__muldf3+0x360>
    b50c:	008000c4 	movi	r2,3
    b510:	d9000e04 	addi	r4,sp,56
    b514:	da801215 	stw	r10,72(sp)
    b518:	d8800e15 	stw	r2,56(sp)
    b51c:	da401115 	stw	r9,68(sp)
    b520:	003f6a06 	br	b2cc <__muldf3+0xc0>
    b524:	89802126 	beq	r17,r6,b5ac <__muldf3+0x3a0>
    b528:	0009883a 	mov	r4,zero
    b52c:	5105883a 	add	r2,r10,r4
    b530:	128d803a 	cmpltu	r6,r2,r10
    b534:	5d07883a 	add	r3,r11,r20
    b538:	30cd883a 	add	r6,r6,r3
    b53c:	0021883a 	mov	r16,zero
    b540:	0023883a 	mov	r17,zero
    b544:	1025883a 	mov	r18,r2
    b548:	3027883a 	mov	r19,r6
    b54c:	32ff9e2e 	bgeu	r6,r11,b3c8 <__muldf3+0x1bc>
    b550:	00800044 	movi	r2,1
    b554:	8089883a 	add	r4,r16,r2
    b558:	240d803a 	cmpltu	r6,r4,r16
    b55c:	344d883a 	add	r6,r6,r17
    b560:	2021883a 	mov	r16,r4
    b564:	3023883a 	mov	r17,r6
    b568:	003f9806 	br	b3cc <__muldf3+0x1c0>
    b56c:	403fe71e 	bne	r8,zero,b50c <__muldf3+0x300>
    b570:	01004004 	movi	r4,256
    b574:	4904703a 	and	r2,r9,r4
    b578:	10c4b03a 	or	r2,r2,r3
    b57c:	103fe31e 	bne	r2,zero,b50c <__muldf3+0x300>
    b580:	94c4b03a 	or	r2,r18,r19
    b584:	103fe126 	beq	r2,zero,b50c <__muldf3+0x300>
    b588:	49c5883a 	add	r2,r9,r7
    b58c:	1251803a 	cmpltu	r8,r2,r9
    b590:	4291883a 	add	r8,r8,r10
    b594:	013fc004 	movi	r4,-256
    b598:	1112703a 	and	r9,r2,r4
    b59c:	4015883a 	mov	r10,r8
    b5a0:	003fda06 	br	b50c <__muldf3+0x300>
    b5a4:	6813883a 	mov	r9,r13
    b5a8:	003fce06 	br	b4e4 <__muldf3+0x2d8>
    b5ac:	143f7c36 	bltu	r2,r16,b3a0 <__muldf3+0x194>
    b5b0:	003fdd06 	br	b528 <__muldf3+0x31c>
    b5b4:	12bf852e 	bgeu	r2,r10,b3cc <__muldf3+0x1c0>
    b5b8:	003fe506 	br	b550 <__muldf3+0x344>
    b5bc:	00800084 	movi	r2,2
    b5c0:	20bf351e 	bne	r4,r2,b298 <__muldf3+0x8c>
    b5c4:	01000074 	movhi	r4,1
    b5c8:	21015804 	addi	r4,r4,1376
    b5cc:	003f3f06 	br	b2cc <__muldf3+0xc0>

0000b5d0 <__divdf3>:
    b5d0:	deffed04 	addi	sp,sp,-76
    b5d4:	dcc01115 	stw	r19,68(sp)
    b5d8:	dcc00404 	addi	r19,sp,16
    b5dc:	2011883a 	mov	r8,r4
    b5e0:	2813883a 	mov	r9,r5
    b5e4:	dc000e15 	stw	r16,56(sp)
    b5e8:	d809883a 	mov	r4,sp
    b5ec:	980b883a 	mov	r5,r19
    b5f0:	dc000904 	addi	r16,sp,36
    b5f4:	dfc01215 	stw	ra,72(sp)
    b5f8:	da400115 	stw	r9,4(sp)
    b5fc:	d9c00315 	stw	r7,12(sp)
    b600:	da000015 	stw	r8,0(sp)
    b604:	d9800215 	stw	r6,8(sp)
    b608:	dc801015 	stw	r18,64(sp)
    b60c:	dc400f15 	stw	r17,60(sp)
    b610:	000c2ec0 	call	c2ec <__unpack_d>
    b614:	d9000204 	addi	r4,sp,8
    b618:	800b883a 	mov	r5,r16
    b61c:	000c2ec0 	call	c2ec <__unpack_d>
    b620:	d9000417 	ldw	r4,16(sp)
    b624:	00800044 	movi	r2,1
    b628:	11000b2e 	bgeu	r2,r4,b658 <__divdf3+0x88>
    b62c:	d9400917 	ldw	r5,36(sp)
    b630:	1140762e 	bgeu	r2,r5,b80c <__divdf3+0x23c>
    b634:	d8800517 	ldw	r2,20(sp)
    b638:	d8c00a17 	ldw	r3,40(sp)
    b63c:	01800104 	movi	r6,4
    b640:	10c4f03a 	xor	r2,r2,r3
    b644:	d8800515 	stw	r2,20(sp)
    b648:	21800226 	beq	r4,r6,b654 <__divdf3+0x84>
    b64c:	00800084 	movi	r2,2
    b650:	2080141e 	bne	r4,r2,b6a4 <__divdf3+0xd4>
    b654:	29000926 	beq	r5,r4,b67c <__divdf3+0xac>
    b658:	9809883a 	mov	r4,r19
    b65c:	000bfd80 	call	bfd8 <__pack_d>
    b660:	dfc01217 	ldw	ra,72(sp)
    b664:	dcc01117 	ldw	r19,68(sp)
    b668:	dc801017 	ldw	r18,64(sp)
    b66c:	dc400f17 	ldw	r17,60(sp)
    b670:	dc000e17 	ldw	r16,56(sp)
    b674:	dec01304 	addi	sp,sp,76
    b678:	f800283a 	ret
    b67c:	01000074 	movhi	r4,1
    b680:	21015804 	addi	r4,r4,1376
    b684:	000bfd80 	call	bfd8 <__pack_d>
    b688:	dfc01217 	ldw	ra,72(sp)
    b68c:	dcc01117 	ldw	r19,68(sp)
    b690:	dc801017 	ldw	r18,64(sp)
    b694:	dc400f17 	ldw	r17,60(sp)
    b698:	dc000e17 	ldw	r16,56(sp)
    b69c:	dec01304 	addi	sp,sp,76
    b6a0:	f800283a 	ret
    b6a4:	29805b26 	beq	r5,r6,b814 <__divdf3+0x244>
    b6a8:	28802d26 	beq	r5,r2,b760 <__divdf3+0x190>
    b6ac:	d8c00617 	ldw	r3,24(sp)
    b6b0:	d8800b17 	ldw	r2,44(sp)
    b6b4:	d9c00817 	ldw	r7,32(sp)
    b6b8:	dc400d17 	ldw	r17,52(sp)
    b6bc:	188bc83a 	sub	r5,r3,r2
    b6c0:	d9800717 	ldw	r6,28(sp)
    b6c4:	dc000c17 	ldw	r16,48(sp)
    b6c8:	d9400615 	stw	r5,24(sp)
    b6cc:	3c403836 	bltu	r7,r17,b7b0 <__divdf3+0x1e0>
    b6d0:	89c03626 	beq	r17,r7,b7ac <__divdf3+0x1dc>
    b6d4:	0015883a 	mov	r10,zero
    b6d8:	001d883a 	mov	r14,zero
    b6dc:	02c40034 	movhi	r11,4096
    b6e0:	001f883a 	mov	r15,zero
    b6e4:	003f883a 	mov	ra,zero
    b6e8:	04800f44 	movi	r18,61
    b6ec:	00000f06 	br	b72c <__divdf3+0x15c>
    b6f0:	601d883a 	mov	r14,r12
    b6f4:	681f883a 	mov	r15,r13
    b6f8:	400d883a 	mov	r6,r8
    b6fc:	100f883a 	mov	r7,r2
    b700:	3191883a 	add	r8,r6,r6
    b704:	5808d07a 	srli	r4,r11,1
    b708:	4185803a 	cmpltu	r2,r8,r6
    b70c:	39d3883a 	add	r9,r7,r7
    b710:	28c6b03a 	or	r3,r5,r3
    b714:	1245883a 	add	r2,r2,r9
    b718:	1815883a 	mov	r10,r3
    b71c:	2017883a 	mov	r11,r4
    b720:	400d883a 	mov	r6,r8
    b724:	100f883a 	mov	r7,r2
    b728:	fc801726 	beq	ra,r18,b788 <__divdf3+0x1b8>
    b72c:	580a97fa 	slli	r5,r11,31
    b730:	5006d07a 	srli	r3,r10,1
    b734:	ffc00044 	addi	ra,ra,1
    b738:	3c7ff136 	bltu	r7,r17,b700 <__divdf3+0x130>
    b73c:	3411c83a 	sub	r8,r6,r16
    b740:	3205803a 	cmpltu	r2,r6,r8
    b744:	3c53c83a 	sub	r9,r7,r17
    b748:	7298b03a 	or	r12,r14,r10
    b74c:	7adab03a 	or	r13,r15,r11
    b750:	4885c83a 	sub	r2,r9,r2
    b754:	89ffe61e 	bne	r17,r7,b6f0 <__divdf3+0x120>
    b758:	343fe936 	bltu	r6,r16,b700 <__divdf3+0x130>
    b75c:	003fe406 	br	b6f0 <__divdf3+0x120>
    b760:	9809883a 	mov	r4,r19
    b764:	d9800415 	stw	r6,16(sp)
    b768:	000bfd80 	call	bfd8 <__pack_d>
    b76c:	dfc01217 	ldw	ra,72(sp)
    b770:	dcc01117 	ldw	r19,68(sp)
    b774:	dc801017 	ldw	r18,64(sp)
    b778:	dc400f17 	ldw	r17,60(sp)
    b77c:	dc000e17 	ldw	r16,56(sp)
    b780:	dec01304 	addi	sp,sp,76
    b784:	f800283a 	ret
    b788:	00803fc4 	movi	r2,255
    b78c:	7090703a 	and	r8,r14,r2
    b790:	00802004 	movi	r2,128
    b794:	0007883a 	mov	r3,zero
    b798:	0013883a 	mov	r9,zero
    b79c:	40800d26 	beq	r8,r2,b7d4 <__divdf3+0x204>
    b7a0:	dbc00815 	stw	r15,32(sp)
    b7a4:	db800715 	stw	r14,28(sp)
    b7a8:	003fab06 	br	b658 <__divdf3+0x88>
    b7ac:	343fc92e 	bgeu	r6,r16,b6d4 <__divdf3+0x104>
    b7b0:	3185883a 	add	r2,r6,r6
    b7b4:	1189803a 	cmpltu	r4,r2,r6
    b7b8:	39c7883a 	add	r3,r7,r7
    b7bc:	20c9883a 	add	r4,r4,r3
    b7c0:	297fffc4 	addi	r5,r5,-1
    b7c4:	100d883a 	mov	r6,r2
    b7c8:	200f883a 	mov	r7,r4
    b7cc:	d9400615 	stw	r5,24(sp)
    b7d0:	003fc006 	br	b6d4 <__divdf3+0x104>
    b7d4:	483ff21e 	bne	r9,zero,b7a0 <__divdf3+0x1d0>
    b7d8:	01004004 	movi	r4,256
    b7dc:	7104703a 	and	r2,r14,r4
    b7e0:	10c4b03a 	or	r2,r2,r3
    b7e4:	103fee1e 	bne	r2,zero,b7a0 <__divdf3+0x1d0>
    b7e8:	31c4b03a 	or	r2,r6,r7
    b7ec:	103fec26 	beq	r2,zero,b7a0 <__divdf3+0x1d0>
    b7f0:	7205883a 	add	r2,r14,r8
    b7f4:	1391803a 	cmpltu	r8,r2,r14
    b7f8:	43d1883a 	add	r8,r8,r15
    b7fc:	013fc004 	movi	r4,-256
    b800:	111c703a 	and	r14,r2,r4
    b804:	401f883a 	mov	r15,r8
    b808:	003fe506 	br	b7a0 <__divdf3+0x1d0>
    b80c:	8009883a 	mov	r4,r16
    b810:	003f9206 	br	b65c <__divdf3+0x8c>
    b814:	9809883a 	mov	r4,r19
    b818:	d8000715 	stw	zero,28(sp)
    b81c:	d8000815 	stw	zero,32(sp)
    b820:	d8000615 	stw	zero,24(sp)
    b824:	003f8d06 	br	b65c <__divdf3+0x8c>

0000b828 <__eqdf2>:
    b828:	deffef04 	addi	sp,sp,-68
    b82c:	dc400f15 	stw	r17,60(sp)
    b830:	dc400404 	addi	r17,sp,16
    b834:	2005883a 	mov	r2,r4
    b838:	2807883a 	mov	r3,r5
    b83c:	dc000e15 	stw	r16,56(sp)
    b840:	d809883a 	mov	r4,sp
    b844:	880b883a 	mov	r5,r17
    b848:	dc000904 	addi	r16,sp,36
    b84c:	d8c00115 	stw	r3,4(sp)
    b850:	d8800015 	stw	r2,0(sp)
    b854:	d9800215 	stw	r6,8(sp)
    b858:	dfc01015 	stw	ra,64(sp)
    b85c:	d9c00315 	stw	r7,12(sp)
    b860:	000c2ec0 	call	c2ec <__unpack_d>
    b864:	d9000204 	addi	r4,sp,8
    b868:	800b883a 	mov	r5,r16
    b86c:	000c2ec0 	call	c2ec <__unpack_d>
    b870:	d8800417 	ldw	r2,16(sp)
    b874:	00c00044 	movi	r3,1
    b878:	180d883a 	mov	r6,r3
    b87c:	1880062e 	bgeu	r3,r2,b898 <__eqdf2+0x70>
    b880:	d8800917 	ldw	r2,36(sp)
    b884:	8809883a 	mov	r4,r17
    b888:	800b883a 	mov	r5,r16
    b88c:	1880022e 	bgeu	r3,r2,b898 <__eqdf2+0x70>
    b890:	000c4240 	call	c424 <__fpcmp_parts_d>
    b894:	100d883a 	mov	r6,r2
    b898:	3005883a 	mov	r2,r6
    b89c:	dfc01017 	ldw	ra,64(sp)
    b8a0:	dc400f17 	ldw	r17,60(sp)
    b8a4:	dc000e17 	ldw	r16,56(sp)
    b8a8:	dec01104 	addi	sp,sp,68
    b8ac:	f800283a 	ret

0000b8b0 <__nedf2>:
    b8b0:	deffef04 	addi	sp,sp,-68
    b8b4:	dc400f15 	stw	r17,60(sp)
    b8b8:	dc400404 	addi	r17,sp,16
    b8bc:	2005883a 	mov	r2,r4
    b8c0:	2807883a 	mov	r3,r5
    b8c4:	dc000e15 	stw	r16,56(sp)
    b8c8:	d809883a 	mov	r4,sp
    b8cc:	880b883a 	mov	r5,r17
    b8d0:	dc000904 	addi	r16,sp,36
    b8d4:	d8c00115 	stw	r3,4(sp)
    b8d8:	d8800015 	stw	r2,0(sp)
    b8dc:	d9800215 	stw	r6,8(sp)
    b8e0:	dfc01015 	stw	ra,64(sp)
    b8e4:	d9c00315 	stw	r7,12(sp)
    b8e8:	000c2ec0 	call	c2ec <__unpack_d>
    b8ec:	d9000204 	addi	r4,sp,8
    b8f0:	800b883a 	mov	r5,r16
    b8f4:	000c2ec0 	call	c2ec <__unpack_d>
    b8f8:	d8800417 	ldw	r2,16(sp)
    b8fc:	00c00044 	movi	r3,1
    b900:	180d883a 	mov	r6,r3
    b904:	1880062e 	bgeu	r3,r2,b920 <__nedf2+0x70>
    b908:	d8800917 	ldw	r2,36(sp)
    b90c:	8809883a 	mov	r4,r17
    b910:	800b883a 	mov	r5,r16
    b914:	1880022e 	bgeu	r3,r2,b920 <__nedf2+0x70>
    b918:	000c4240 	call	c424 <__fpcmp_parts_d>
    b91c:	100d883a 	mov	r6,r2
    b920:	3005883a 	mov	r2,r6
    b924:	dfc01017 	ldw	ra,64(sp)
    b928:	dc400f17 	ldw	r17,60(sp)
    b92c:	dc000e17 	ldw	r16,56(sp)
    b930:	dec01104 	addi	sp,sp,68
    b934:	f800283a 	ret

0000b938 <__gtdf2>:
    b938:	deffef04 	addi	sp,sp,-68
    b93c:	dc400f15 	stw	r17,60(sp)
    b940:	dc400404 	addi	r17,sp,16
    b944:	2005883a 	mov	r2,r4
    b948:	2807883a 	mov	r3,r5
    b94c:	dc000e15 	stw	r16,56(sp)
    b950:	d809883a 	mov	r4,sp
    b954:	880b883a 	mov	r5,r17
    b958:	dc000904 	addi	r16,sp,36
    b95c:	d8c00115 	stw	r3,4(sp)
    b960:	d8800015 	stw	r2,0(sp)
    b964:	d9800215 	stw	r6,8(sp)
    b968:	dfc01015 	stw	ra,64(sp)
    b96c:	d9c00315 	stw	r7,12(sp)
    b970:	000c2ec0 	call	c2ec <__unpack_d>
    b974:	d9000204 	addi	r4,sp,8
    b978:	800b883a 	mov	r5,r16
    b97c:	000c2ec0 	call	c2ec <__unpack_d>
    b980:	d8800417 	ldw	r2,16(sp)
    b984:	00c00044 	movi	r3,1
    b988:	01bfffc4 	movi	r6,-1
    b98c:	1880062e 	bgeu	r3,r2,b9a8 <__gtdf2+0x70>
    b990:	d8800917 	ldw	r2,36(sp)
    b994:	8809883a 	mov	r4,r17
    b998:	800b883a 	mov	r5,r16
    b99c:	1880022e 	bgeu	r3,r2,b9a8 <__gtdf2+0x70>
    b9a0:	000c4240 	call	c424 <__fpcmp_parts_d>
    b9a4:	100d883a 	mov	r6,r2
    b9a8:	3005883a 	mov	r2,r6
    b9ac:	dfc01017 	ldw	ra,64(sp)
    b9b0:	dc400f17 	ldw	r17,60(sp)
    b9b4:	dc000e17 	ldw	r16,56(sp)
    b9b8:	dec01104 	addi	sp,sp,68
    b9bc:	f800283a 	ret

0000b9c0 <__gedf2>:
    b9c0:	deffef04 	addi	sp,sp,-68
    b9c4:	dc400f15 	stw	r17,60(sp)
    b9c8:	dc400404 	addi	r17,sp,16
    b9cc:	2005883a 	mov	r2,r4
    b9d0:	2807883a 	mov	r3,r5
    b9d4:	dc000e15 	stw	r16,56(sp)
    b9d8:	d809883a 	mov	r4,sp
    b9dc:	880b883a 	mov	r5,r17
    b9e0:	dc000904 	addi	r16,sp,36
    b9e4:	d8c00115 	stw	r3,4(sp)
    b9e8:	d8800015 	stw	r2,0(sp)
    b9ec:	d9800215 	stw	r6,8(sp)
    b9f0:	dfc01015 	stw	ra,64(sp)
    b9f4:	d9c00315 	stw	r7,12(sp)
    b9f8:	000c2ec0 	call	c2ec <__unpack_d>
    b9fc:	d9000204 	addi	r4,sp,8
    ba00:	800b883a 	mov	r5,r16
    ba04:	000c2ec0 	call	c2ec <__unpack_d>
    ba08:	d8800417 	ldw	r2,16(sp)
    ba0c:	00c00044 	movi	r3,1
    ba10:	01bfffc4 	movi	r6,-1
    ba14:	1880062e 	bgeu	r3,r2,ba30 <__gedf2+0x70>
    ba18:	d8800917 	ldw	r2,36(sp)
    ba1c:	8809883a 	mov	r4,r17
    ba20:	800b883a 	mov	r5,r16
    ba24:	1880022e 	bgeu	r3,r2,ba30 <__gedf2+0x70>
    ba28:	000c4240 	call	c424 <__fpcmp_parts_d>
    ba2c:	100d883a 	mov	r6,r2
    ba30:	3005883a 	mov	r2,r6
    ba34:	dfc01017 	ldw	ra,64(sp)
    ba38:	dc400f17 	ldw	r17,60(sp)
    ba3c:	dc000e17 	ldw	r16,56(sp)
    ba40:	dec01104 	addi	sp,sp,68
    ba44:	f800283a 	ret

0000ba48 <__ltdf2>:
    ba48:	deffef04 	addi	sp,sp,-68
    ba4c:	dc400f15 	stw	r17,60(sp)
    ba50:	dc400404 	addi	r17,sp,16
    ba54:	2005883a 	mov	r2,r4
    ba58:	2807883a 	mov	r3,r5
    ba5c:	dc000e15 	stw	r16,56(sp)
    ba60:	d809883a 	mov	r4,sp
    ba64:	880b883a 	mov	r5,r17
    ba68:	dc000904 	addi	r16,sp,36
    ba6c:	d8c00115 	stw	r3,4(sp)
    ba70:	d8800015 	stw	r2,0(sp)
    ba74:	d9800215 	stw	r6,8(sp)
    ba78:	dfc01015 	stw	ra,64(sp)
    ba7c:	d9c00315 	stw	r7,12(sp)
    ba80:	000c2ec0 	call	c2ec <__unpack_d>
    ba84:	d9000204 	addi	r4,sp,8
    ba88:	800b883a 	mov	r5,r16
    ba8c:	000c2ec0 	call	c2ec <__unpack_d>
    ba90:	d8800417 	ldw	r2,16(sp)
    ba94:	00c00044 	movi	r3,1
    ba98:	180d883a 	mov	r6,r3
    ba9c:	1880062e 	bgeu	r3,r2,bab8 <__ltdf2+0x70>
    baa0:	d8800917 	ldw	r2,36(sp)
    baa4:	8809883a 	mov	r4,r17
    baa8:	800b883a 	mov	r5,r16
    baac:	1880022e 	bgeu	r3,r2,bab8 <__ltdf2+0x70>
    bab0:	000c4240 	call	c424 <__fpcmp_parts_d>
    bab4:	100d883a 	mov	r6,r2
    bab8:	3005883a 	mov	r2,r6
    babc:	dfc01017 	ldw	ra,64(sp)
    bac0:	dc400f17 	ldw	r17,60(sp)
    bac4:	dc000e17 	ldw	r16,56(sp)
    bac8:	dec01104 	addi	sp,sp,68
    bacc:	f800283a 	ret

0000bad0 <__floatsidf>:
    bad0:	2006d7fa 	srli	r3,r4,31
    bad4:	defff604 	addi	sp,sp,-40
    bad8:	008000c4 	movi	r2,3
    badc:	dfc00915 	stw	ra,36(sp)
    bae0:	dcc00815 	stw	r19,32(sp)
    bae4:	dc800715 	stw	r18,28(sp)
    bae8:	dc400615 	stw	r17,24(sp)
    baec:	dc000515 	stw	r16,20(sp)
    baf0:	d8800015 	stw	r2,0(sp)
    baf4:	d8c00115 	stw	r3,4(sp)
    baf8:	20000f1e 	bne	r4,zero,bb38 <__floatsidf+0x68>
    bafc:	00800084 	movi	r2,2
    bb00:	d8800015 	stw	r2,0(sp)
    bb04:	d809883a 	mov	r4,sp
    bb08:	000bfd80 	call	bfd8 <__pack_d>
    bb0c:	1009883a 	mov	r4,r2
    bb10:	180b883a 	mov	r5,r3
    bb14:	2005883a 	mov	r2,r4
    bb18:	2807883a 	mov	r3,r5
    bb1c:	dfc00917 	ldw	ra,36(sp)
    bb20:	dcc00817 	ldw	r19,32(sp)
    bb24:	dc800717 	ldw	r18,28(sp)
    bb28:	dc400617 	ldw	r17,24(sp)
    bb2c:	dc000517 	ldw	r16,20(sp)
    bb30:	dec00a04 	addi	sp,sp,40
    bb34:	f800283a 	ret
    bb38:	00800f04 	movi	r2,60
    bb3c:	1807003a 	cmpeq	r3,r3,zero
    bb40:	d8800215 	stw	r2,8(sp)
    bb44:	18001126 	beq	r3,zero,bb8c <__floatsidf+0xbc>
    bb48:	0027883a 	mov	r19,zero
    bb4c:	2025883a 	mov	r18,r4
    bb50:	d9000315 	stw	r4,12(sp)
    bb54:	dcc00415 	stw	r19,16(sp)
    bb58:	000bf580 	call	bf58 <__clzsi2>
    bb5c:	11000744 	addi	r4,r2,29
    bb60:	013fe80e 	bge	zero,r4,bb04 <__floatsidf+0x34>
    bb64:	10bfff44 	addi	r2,r2,-3
    bb68:	10000c16 	blt	r2,zero,bb9c <__floatsidf+0xcc>
    bb6c:	90a2983a 	sll	r17,r18,r2
    bb70:	0021883a 	mov	r16,zero
    bb74:	d8800217 	ldw	r2,8(sp)
    bb78:	dc400415 	stw	r17,16(sp)
    bb7c:	dc000315 	stw	r16,12(sp)
    bb80:	1105c83a 	sub	r2,r2,r4
    bb84:	d8800215 	stw	r2,8(sp)
    bb88:	003fde06 	br	bb04 <__floatsidf+0x34>
    bb8c:	00a00034 	movhi	r2,32768
    bb90:	20800a26 	beq	r4,r2,bbbc <__floatsidf+0xec>
    bb94:	0109c83a 	sub	r4,zero,r4
    bb98:	003feb06 	br	bb48 <__floatsidf+0x78>
    bb9c:	9006d07a 	srli	r3,r18,1
    bba0:	008007c4 	movi	r2,31
    bba4:	1105c83a 	sub	r2,r2,r4
    bba8:	1886d83a 	srl	r3,r3,r2
    bbac:	9922983a 	sll	r17,r19,r4
    bbb0:	9120983a 	sll	r16,r18,r4
    bbb4:	1c62b03a 	or	r17,r3,r17
    bbb8:	003fee06 	br	bb74 <__floatsidf+0xa4>
    bbbc:	0009883a 	mov	r4,zero
    bbc0:	01707834 	movhi	r5,49632
    bbc4:	003fd306 	br	bb14 <__floatsidf+0x44>

0000bbc8 <__fixdfsi>:
    bbc8:	defff804 	addi	sp,sp,-32
    bbcc:	2005883a 	mov	r2,r4
    bbd0:	2807883a 	mov	r3,r5
    bbd4:	d809883a 	mov	r4,sp
    bbd8:	d9400204 	addi	r5,sp,8
    bbdc:	d8c00115 	stw	r3,4(sp)
    bbe0:	d8800015 	stw	r2,0(sp)
    bbe4:	dfc00715 	stw	ra,28(sp)
    bbe8:	000c2ec0 	call	c2ec <__unpack_d>
    bbec:	d8c00217 	ldw	r3,8(sp)
    bbf0:	00800084 	movi	r2,2
    bbf4:	1880051e 	bne	r3,r2,bc0c <__fixdfsi+0x44>
    bbf8:	0007883a 	mov	r3,zero
    bbfc:	1805883a 	mov	r2,r3
    bc00:	dfc00717 	ldw	ra,28(sp)
    bc04:	dec00804 	addi	sp,sp,32
    bc08:	f800283a 	ret
    bc0c:	00800044 	movi	r2,1
    bc10:	10fff92e 	bgeu	r2,r3,bbf8 <__fixdfsi+0x30>
    bc14:	00800104 	movi	r2,4
    bc18:	18800426 	beq	r3,r2,bc2c <__fixdfsi+0x64>
    bc1c:	d8c00417 	ldw	r3,16(sp)
    bc20:	183ff516 	blt	r3,zero,bbf8 <__fixdfsi+0x30>
    bc24:	00800784 	movi	r2,30
    bc28:	10c0080e 	bge	r2,r3,bc4c <__fixdfsi+0x84>
    bc2c:	d8800317 	ldw	r2,12(sp)
    bc30:	1000121e 	bne	r2,zero,bc7c <__fixdfsi+0xb4>
    bc34:	00e00034 	movhi	r3,32768
    bc38:	18ffffc4 	addi	r3,r3,-1
    bc3c:	1805883a 	mov	r2,r3
    bc40:	dfc00717 	ldw	ra,28(sp)
    bc44:	dec00804 	addi	sp,sp,32
    bc48:	f800283a 	ret
    bc4c:	00800f04 	movi	r2,60
    bc50:	10d1c83a 	sub	r8,r2,r3
    bc54:	40bff804 	addi	r2,r8,-32
    bc58:	d9800517 	ldw	r6,20(sp)
    bc5c:	d9c00617 	ldw	r7,24(sp)
    bc60:	10000816 	blt	r2,zero,bc84 <__fixdfsi+0xbc>
    bc64:	3888d83a 	srl	r4,r7,r2
    bc68:	d8800317 	ldw	r2,12(sp)
    bc6c:	2007883a 	mov	r3,r4
    bc70:	103fe226 	beq	r2,zero,bbfc <__fixdfsi+0x34>
    bc74:	0107c83a 	sub	r3,zero,r4
    bc78:	003fe006 	br	bbfc <__fixdfsi+0x34>
    bc7c:	00e00034 	movhi	r3,32768
    bc80:	003fde06 	br	bbfc <__fixdfsi+0x34>
    bc84:	39c7883a 	add	r3,r7,r7
    bc88:	008007c4 	movi	r2,31
    bc8c:	1205c83a 	sub	r2,r2,r8
    bc90:	1886983a 	sll	r3,r3,r2
    bc94:	3208d83a 	srl	r4,r6,r8
    bc98:	1908b03a 	or	r4,r3,r4
    bc9c:	003ff206 	br	bc68 <__fixdfsi+0xa0>

0000bca0 <__floatunsidf>:
    bca0:	defff204 	addi	sp,sp,-56
    bca4:	dfc00d15 	stw	ra,52(sp)
    bca8:	ddc00c15 	stw	r23,48(sp)
    bcac:	dd800b15 	stw	r22,44(sp)
    bcb0:	dd400a15 	stw	r21,40(sp)
    bcb4:	dd000915 	stw	r20,36(sp)
    bcb8:	dcc00815 	stw	r19,32(sp)
    bcbc:	dc800715 	stw	r18,28(sp)
    bcc0:	dc400615 	stw	r17,24(sp)
    bcc4:	dc000515 	stw	r16,20(sp)
    bcc8:	d8000115 	stw	zero,4(sp)
    bccc:	20000f1e 	bne	r4,zero,bd0c <__floatunsidf+0x6c>
    bcd0:	00800084 	movi	r2,2
    bcd4:	d8800015 	stw	r2,0(sp)
    bcd8:	d809883a 	mov	r4,sp
    bcdc:	000bfd80 	call	bfd8 <__pack_d>
    bce0:	dfc00d17 	ldw	ra,52(sp)
    bce4:	ddc00c17 	ldw	r23,48(sp)
    bce8:	dd800b17 	ldw	r22,44(sp)
    bcec:	dd400a17 	ldw	r21,40(sp)
    bcf0:	dd000917 	ldw	r20,36(sp)
    bcf4:	dcc00817 	ldw	r19,32(sp)
    bcf8:	dc800717 	ldw	r18,28(sp)
    bcfc:	dc400617 	ldw	r17,24(sp)
    bd00:	dc000517 	ldw	r16,20(sp)
    bd04:	dec00e04 	addi	sp,sp,56
    bd08:	f800283a 	ret
    bd0c:	008000c4 	movi	r2,3
    bd10:	00c00f04 	movi	r3,60
    bd14:	002f883a 	mov	r23,zero
    bd18:	202d883a 	mov	r22,r4
    bd1c:	d8800015 	stw	r2,0(sp)
    bd20:	d8c00215 	stw	r3,8(sp)
    bd24:	d9000315 	stw	r4,12(sp)
    bd28:	ddc00415 	stw	r23,16(sp)
    bd2c:	000bf580 	call	bf58 <__clzsi2>
    bd30:	12400744 	addi	r9,r2,29
    bd34:	48000b16 	blt	r9,zero,bd64 <__floatunsidf+0xc4>
    bd38:	483fe726 	beq	r9,zero,bcd8 <__floatunsidf+0x38>
    bd3c:	10bfff44 	addi	r2,r2,-3
    bd40:	10002e16 	blt	r2,zero,bdfc <__floatunsidf+0x15c>
    bd44:	b0a2983a 	sll	r17,r22,r2
    bd48:	0021883a 	mov	r16,zero
    bd4c:	d8800217 	ldw	r2,8(sp)
    bd50:	dc400415 	stw	r17,16(sp)
    bd54:	dc000315 	stw	r16,12(sp)
    bd58:	1245c83a 	sub	r2,r2,r9
    bd5c:	d8800215 	stw	r2,8(sp)
    bd60:	003fdd06 	br	bcd8 <__floatunsidf+0x38>
    bd64:	0255c83a 	sub	r10,zero,r9
    bd68:	51bff804 	addi	r6,r10,-32
    bd6c:	30001b16 	blt	r6,zero,bddc <__floatunsidf+0x13c>
    bd70:	b9a8d83a 	srl	r20,r23,r6
    bd74:	002b883a 	mov	r21,zero
    bd78:	000f883a 	mov	r7,zero
    bd7c:	01000044 	movi	r4,1
    bd80:	0011883a 	mov	r8,zero
    bd84:	30002516 	blt	r6,zero,be1c <__floatunsidf+0x17c>
    bd88:	21a6983a 	sll	r19,r4,r6
    bd8c:	0025883a 	mov	r18,zero
    bd90:	00bfffc4 	movi	r2,-1
    bd94:	9089883a 	add	r4,r18,r2
    bd98:	988b883a 	add	r5,r19,r2
    bd9c:	248d803a 	cmpltu	r6,r4,r18
    bda0:	314b883a 	add	r5,r6,r5
    bda4:	b104703a 	and	r2,r22,r4
    bda8:	b946703a 	and	r3,r23,r5
    bdac:	10c4b03a 	or	r2,r2,r3
    bdb0:	10000226 	beq	r2,zero,bdbc <__floatunsidf+0x11c>
    bdb4:	01c00044 	movi	r7,1
    bdb8:	0011883a 	mov	r8,zero
    bdbc:	d9000217 	ldw	r4,8(sp)
    bdc0:	a1c4b03a 	or	r2,r20,r7
    bdc4:	aa06b03a 	or	r3,r21,r8
    bdc8:	2249c83a 	sub	r4,r4,r9
    bdcc:	d8c00415 	stw	r3,16(sp)
    bdd0:	d9000215 	stw	r4,8(sp)
    bdd4:	d8800315 	stw	r2,12(sp)
    bdd8:	003fbf06 	br	bcd8 <__floatunsidf+0x38>
    bddc:	bdc7883a 	add	r3,r23,r23
    bde0:	008007c4 	movi	r2,31
    bde4:	1285c83a 	sub	r2,r2,r10
    bde8:	1886983a 	sll	r3,r3,r2
    bdec:	b2a8d83a 	srl	r20,r22,r10
    bdf0:	baaad83a 	srl	r21,r23,r10
    bdf4:	1d28b03a 	or	r20,r3,r20
    bdf8:	003fdf06 	br	bd78 <__floatunsidf+0xd8>
    bdfc:	b006d07a 	srli	r3,r22,1
    be00:	008007c4 	movi	r2,31
    be04:	1245c83a 	sub	r2,r2,r9
    be08:	1886d83a 	srl	r3,r3,r2
    be0c:	ba62983a 	sll	r17,r23,r9
    be10:	b260983a 	sll	r16,r22,r9
    be14:	1c62b03a 	or	r17,r3,r17
    be18:	003fcc06 	br	bd4c <__floatunsidf+0xac>
    be1c:	2006d07a 	srli	r3,r4,1
    be20:	008007c4 	movi	r2,31
    be24:	1285c83a 	sub	r2,r2,r10
    be28:	18a6d83a 	srl	r19,r3,r2
    be2c:	22a4983a 	sll	r18,r4,r10
    be30:	003fd706 	br	bd90 <__floatunsidf+0xf0>

0000be34 <__muldi3>:
    be34:	defff204 	addi	sp,sp,-56
    be38:	df000c15 	stw	fp,48(sp)
    be3c:	3038d43a 	srli	fp,r6,16
    be40:	dd000815 	stw	r20,32(sp)
    be44:	dc400515 	stw	r17,20(sp)
    be48:	2028d43a 	srli	r20,r4,16
    be4c:	247fffcc 	andi	r17,r4,65535
    be50:	dc000415 	stw	r16,16(sp)
    be54:	343fffcc 	andi	r16,r6,65535
    be58:	dcc00715 	stw	r19,28(sp)
    be5c:	d9000015 	stw	r4,0(sp)
    be60:	2827883a 	mov	r19,r5
    be64:	8809883a 	mov	r4,r17
    be68:	d9400115 	stw	r5,4(sp)
    be6c:	800b883a 	mov	r5,r16
    be70:	d9800215 	stw	r6,8(sp)
    be74:	dfc00d15 	stw	ra,52(sp)
    be78:	d9c00315 	stw	r7,12(sp)
    be7c:	dd800a15 	stw	r22,40(sp)
    be80:	dd400915 	stw	r21,36(sp)
    be84:	302d883a 	mov	r22,r6
    be88:	ddc00b15 	stw	r23,44(sp)
    be8c:	dc800615 	stw	r18,24(sp)
    be90:	0002c240 	call	2c24 <__mulsi3>
    be94:	8809883a 	mov	r4,r17
    be98:	e00b883a 	mov	r5,fp
    be9c:	102b883a 	mov	r21,r2
    bea0:	0002c240 	call	2c24 <__mulsi3>
    bea4:	800b883a 	mov	r5,r16
    bea8:	a009883a 	mov	r4,r20
    beac:	1023883a 	mov	r17,r2
    beb0:	0002c240 	call	2c24 <__mulsi3>
    beb4:	a009883a 	mov	r4,r20
    beb8:	e00b883a 	mov	r5,fp
    bebc:	1021883a 	mov	r16,r2
    bec0:	0002c240 	call	2c24 <__mulsi3>
    bec4:	a8ffffcc 	andi	r3,r21,65535
    bec8:	a82ad43a 	srli	r21,r21,16
    becc:	8c23883a 	add	r17,r17,r16
    bed0:	1011883a 	mov	r8,r2
    bed4:	ac6b883a 	add	r21,r21,r17
    bed8:	a804943a 	slli	r2,r21,16
    bedc:	b009883a 	mov	r4,r22
    bee0:	980b883a 	mov	r5,r19
    bee4:	10c7883a 	add	r3,r2,r3
    bee8:	a812d43a 	srli	r9,r21,16
    beec:	180d883a 	mov	r6,r3
    bef0:	ac00022e 	bgeu	r21,r16,befc <__muldi3+0xc8>
    bef4:	00800074 	movhi	r2,1
    bef8:	4091883a 	add	r8,r8,r2
    befc:	4267883a 	add	r19,r8,r9
    bf00:	302d883a 	mov	r22,r6
    bf04:	0002c240 	call	2c24 <__mulsi3>
    bf08:	d9400317 	ldw	r5,12(sp)
    bf0c:	d9000017 	ldw	r4,0(sp)
    bf10:	1023883a 	mov	r17,r2
    bf14:	0002c240 	call	2c24 <__mulsi3>
    bf18:	14cb883a 	add	r5,r2,r19
    bf1c:	894b883a 	add	r5,r17,r5
    bf20:	b005883a 	mov	r2,r22
    bf24:	2807883a 	mov	r3,r5
    bf28:	dfc00d17 	ldw	ra,52(sp)
    bf2c:	df000c17 	ldw	fp,48(sp)
    bf30:	ddc00b17 	ldw	r23,44(sp)
    bf34:	dd800a17 	ldw	r22,40(sp)
    bf38:	dd400917 	ldw	r21,36(sp)
    bf3c:	dd000817 	ldw	r20,32(sp)
    bf40:	dcc00717 	ldw	r19,28(sp)
    bf44:	dc800617 	ldw	r18,24(sp)
    bf48:	dc400517 	ldw	r17,20(sp)
    bf4c:	dc000417 	ldw	r16,16(sp)
    bf50:	dec00e04 	addi	sp,sp,56
    bf54:	f800283a 	ret

0000bf58 <__clzsi2>:
    bf58:	00bfffd4 	movui	r2,65535
    bf5c:	11000e36 	bltu	r2,r4,bf98 <__clzsi2+0x40>
    bf60:	00803fc4 	movi	r2,255
    bf64:	01400204 	movi	r5,8
    bf68:	0007883a 	mov	r3,zero
    bf6c:	11001036 	bltu	r2,r4,bfb0 <__clzsi2+0x58>
    bf70:	000b883a 	mov	r5,zero
    bf74:	20c6d83a 	srl	r3,r4,r3
    bf78:	00800074 	movhi	r2,1
    bf7c:	10815d04 	addi	r2,r2,1396
    bf80:	1887883a 	add	r3,r3,r2
    bf84:	18800003 	ldbu	r2,0(r3)
    bf88:	00c00804 	movi	r3,32
    bf8c:	2885883a 	add	r2,r5,r2
    bf90:	1885c83a 	sub	r2,r3,r2
    bf94:	f800283a 	ret
    bf98:	01400404 	movi	r5,16
    bf9c:	00804034 	movhi	r2,256
    bfa0:	10bfffc4 	addi	r2,r2,-1
    bfa4:	2807883a 	mov	r3,r5
    bfa8:	113ff22e 	bgeu	r2,r4,bf74 <__clzsi2+0x1c>
    bfac:	01400604 	movi	r5,24
    bfb0:	2807883a 	mov	r3,r5
    bfb4:	20c6d83a 	srl	r3,r4,r3
    bfb8:	00800074 	movhi	r2,1
    bfbc:	10815d04 	addi	r2,r2,1396
    bfc0:	1887883a 	add	r3,r3,r2
    bfc4:	18800003 	ldbu	r2,0(r3)
    bfc8:	00c00804 	movi	r3,32
    bfcc:	2885883a 	add	r2,r5,r2
    bfd0:	1885c83a 	sub	r2,r3,r2
    bfd4:	f800283a 	ret

0000bfd8 <__pack_d>:
    bfd8:	20c00017 	ldw	r3,0(r4)
    bfdc:	defffd04 	addi	sp,sp,-12
    bfe0:	dc000015 	stw	r16,0(sp)
    bfe4:	dc800215 	stw	r18,8(sp)
    bfe8:	dc400115 	stw	r17,4(sp)
    bfec:	00800044 	movi	r2,1
    bff0:	22000317 	ldw	r8,12(r4)
    bff4:	001f883a 	mov	r15,zero
    bff8:	22400417 	ldw	r9,16(r4)
    bffc:	24000117 	ldw	r16,4(r4)
    c000:	10c0552e 	bgeu	r2,r3,c158 <__pack_d+0x180>
    c004:	00800104 	movi	r2,4
    c008:	18804f26 	beq	r3,r2,c148 <__pack_d+0x170>
    c00c:	00800084 	movi	r2,2
    c010:	18800226 	beq	r3,r2,c01c <__pack_d+0x44>
    c014:	4244b03a 	or	r2,r8,r9
    c018:	10001a1e 	bne	r2,zero,c084 <__pack_d+0xac>
    c01c:	000d883a 	mov	r6,zero
    c020:	000f883a 	mov	r7,zero
    c024:	0011883a 	mov	r8,zero
    c028:	00800434 	movhi	r2,16
    c02c:	10bfffc4 	addi	r2,r2,-1
    c030:	301d883a 	mov	r14,r6
    c034:	3884703a 	and	r2,r7,r2
    c038:	400a953a 	slli	r5,r8,20
    c03c:	79bffc2c 	andhi	r6,r15,65520
    c040:	308cb03a 	or	r6,r6,r2
    c044:	00e00434 	movhi	r3,32784
    c048:	18ffffc4 	addi	r3,r3,-1
    c04c:	800497fa 	slli	r2,r16,31
    c050:	30c6703a 	and	r3,r6,r3
    c054:	1946b03a 	or	r3,r3,r5
    c058:	01600034 	movhi	r5,32768
    c05c:	297fffc4 	addi	r5,r5,-1
    c060:	194a703a 	and	r5,r3,r5
    c064:	288ab03a 	or	r5,r5,r2
    c068:	2807883a 	mov	r3,r5
    c06c:	7005883a 	mov	r2,r14
    c070:	dc800217 	ldw	r18,8(sp)
    c074:	dc400117 	ldw	r17,4(sp)
    c078:	dc000017 	ldw	r16,0(sp)
    c07c:	dec00304 	addi	sp,sp,12
    c080:	f800283a 	ret
    c084:	21000217 	ldw	r4,8(r4)
    c088:	00bf0084 	movi	r2,-1022
    c08c:	20803f16 	blt	r4,r2,c18c <__pack_d+0x1b4>
    c090:	0080ffc4 	movi	r2,1023
    c094:	11002c16 	blt	r2,r4,c148 <__pack_d+0x170>
    c098:	00803fc4 	movi	r2,255
    c09c:	408c703a 	and	r6,r8,r2
    c0a0:	00802004 	movi	r2,128
    c0a4:	0007883a 	mov	r3,zero
    c0a8:	000f883a 	mov	r7,zero
    c0ac:	2280ffc4 	addi	r10,r4,1023
    c0b0:	30801e26 	beq	r6,r2,c12c <__pack_d+0x154>
    c0b4:	00801fc4 	movi	r2,127
    c0b8:	4089883a 	add	r4,r8,r2
    c0bc:	220d803a 	cmpltu	r6,r4,r8
    c0c0:	324d883a 	add	r6,r6,r9
    c0c4:	2011883a 	mov	r8,r4
    c0c8:	3013883a 	mov	r9,r6
    c0cc:	00880034 	movhi	r2,8192
    c0d0:	10bfffc4 	addi	r2,r2,-1
    c0d4:	12400d36 	bltu	r2,r9,c10c <__pack_d+0x134>
    c0d8:	4804963a 	slli	r2,r9,24
    c0dc:	400cd23a 	srli	r6,r8,8
    c0e0:	480ed23a 	srli	r7,r9,8
    c0e4:	013fffc4 	movi	r4,-1
    c0e8:	118cb03a 	or	r6,r2,r6
    c0ec:	01400434 	movhi	r5,16
    c0f0:	297fffc4 	addi	r5,r5,-1
    c0f4:	3104703a 	and	r2,r6,r4
    c0f8:	3946703a 	and	r3,r7,r5
    c0fc:	5201ffcc 	andi	r8,r10,2047
    c100:	100d883a 	mov	r6,r2
    c104:	180f883a 	mov	r7,r3
    c108:	003fc706 	br	c028 <__pack_d+0x50>
    c10c:	480897fa 	slli	r4,r9,31
    c110:	4004d07a 	srli	r2,r8,1
    c114:	4806d07a 	srli	r3,r9,1
    c118:	52800044 	addi	r10,r10,1
    c11c:	2084b03a 	or	r2,r4,r2
    c120:	1011883a 	mov	r8,r2
    c124:	1813883a 	mov	r9,r3
    c128:	003feb06 	br	c0d8 <__pack_d+0x100>
    c12c:	383fe11e 	bne	r7,zero,c0b4 <__pack_d+0xdc>
    c130:	01004004 	movi	r4,256
    c134:	4104703a 	and	r2,r8,r4
    c138:	10c4b03a 	or	r2,r2,r3
    c13c:	103fe326 	beq	r2,zero,c0cc <__pack_d+0xf4>
    c140:	3005883a 	mov	r2,r6
    c144:	003fdc06 	br	c0b8 <__pack_d+0xe0>
    c148:	000d883a 	mov	r6,zero
    c14c:	000f883a 	mov	r7,zero
    c150:	0201ffc4 	movi	r8,2047
    c154:	003fb406 	br	c028 <__pack_d+0x50>
    c158:	0005883a 	mov	r2,zero
    c15c:	00c00234 	movhi	r3,8
    c160:	408cb03a 	or	r6,r8,r2
    c164:	48ceb03a 	or	r7,r9,r3
    c168:	013fffc4 	movi	r4,-1
    c16c:	01400434 	movhi	r5,16
    c170:	297fffc4 	addi	r5,r5,-1
    c174:	3104703a 	and	r2,r6,r4
    c178:	3946703a 	and	r3,r7,r5
    c17c:	100d883a 	mov	r6,r2
    c180:	180f883a 	mov	r7,r3
    c184:	0201ffc4 	movi	r8,2047
    c188:	003fa706 	br	c028 <__pack_d+0x50>
    c18c:	1109c83a 	sub	r4,r2,r4
    c190:	00800e04 	movi	r2,56
    c194:	11004316 	blt	r2,r4,c2a4 <__pack_d+0x2cc>
    c198:	21fff804 	addi	r7,r4,-32
    c19c:	38004516 	blt	r7,zero,c2b4 <__pack_d+0x2dc>
    c1a0:	49d8d83a 	srl	r12,r9,r7
    c1a4:	001b883a 	mov	r13,zero
    c1a8:	0023883a 	mov	r17,zero
    c1ac:	01400044 	movi	r5,1
    c1b0:	0025883a 	mov	r18,zero
    c1b4:	38004716 	blt	r7,zero,c2d4 <__pack_d+0x2fc>
    c1b8:	29d6983a 	sll	r11,r5,r7
    c1bc:	0015883a 	mov	r10,zero
    c1c0:	00bfffc4 	movi	r2,-1
    c1c4:	5089883a 	add	r4,r10,r2
    c1c8:	588b883a 	add	r5,r11,r2
    c1cc:	228d803a 	cmpltu	r6,r4,r10
    c1d0:	314b883a 	add	r5,r6,r5
    c1d4:	4104703a 	and	r2,r8,r4
    c1d8:	4946703a 	and	r3,r9,r5
    c1dc:	10c4b03a 	or	r2,r2,r3
    c1e0:	10000226 	beq	r2,zero,c1ec <__pack_d+0x214>
    c1e4:	04400044 	movi	r17,1
    c1e8:	0025883a 	mov	r18,zero
    c1ec:	00803fc4 	movi	r2,255
    c1f0:	644eb03a 	or	r7,r12,r17
    c1f4:	3892703a 	and	r9,r7,r2
    c1f8:	00802004 	movi	r2,128
    c1fc:	6c90b03a 	or	r8,r13,r18
    c200:	0015883a 	mov	r10,zero
    c204:	48801626 	beq	r9,r2,c260 <__pack_d+0x288>
    c208:	01001fc4 	movi	r4,127
    c20c:	3905883a 	add	r2,r7,r4
    c210:	11cd803a 	cmpltu	r6,r2,r7
    c214:	320d883a 	add	r6,r6,r8
    c218:	100f883a 	mov	r7,r2
    c21c:	00840034 	movhi	r2,4096
    c220:	10bfffc4 	addi	r2,r2,-1
    c224:	3011883a 	mov	r8,r6
    c228:	0007883a 	mov	r3,zero
    c22c:	11801b36 	bltu	r2,r6,c29c <__pack_d+0x2c4>
    c230:	4004963a 	slli	r2,r8,24
    c234:	3808d23a 	srli	r4,r7,8
    c238:	400ad23a 	srli	r5,r8,8
    c23c:	1813883a 	mov	r9,r3
    c240:	1108b03a 	or	r4,r2,r4
    c244:	00bfffc4 	movi	r2,-1
    c248:	00c00434 	movhi	r3,16
    c24c:	18ffffc4 	addi	r3,r3,-1
    c250:	208c703a 	and	r6,r4,r2
    c254:	28ce703a 	and	r7,r5,r3
    c258:	4a01ffcc 	andi	r8,r9,2047
    c25c:	003f7206 	br	c028 <__pack_d+0x50>
    c260:	503fe91e 	bne	r10,zero,c208 <__pack_d+0x230>
    c264:	01004004 	movi	r4,256
    c268:	3904703a 	and	r2,r7,r4
    c26c:	0007883a 	mov	r3,zero
    c270:	10c4b03a 	or	r2,r2,r3
    c274:	10000626 	beq	r2,zero,c290 <__pack_d+0x2b8>
    c278:	3a45883a 	add	r2,r7,r9
    c27c:	11cd803a 	cmpltu	r6,r2,r7
    c280:	320d883a 	add	r6,r6,r8
    c284:	100f883a 	mov	r7,r2
    c288:	3011883a 	mov	r8,r6
    c28c:	0007883a 	mov	r3,zero
    c290:	00840034 	movhi	r2,4096
    c294:	10bfffc4 	addi	r2,r2,-1
    c298:	123fe52e 	bgeu	r2,r8,c230 <__pack_d+0x258>
    c29c:	00c00044 	movi	r3,1
    c2a0:	003fe306 	br	c230 <__pack_d+0x258>
    c2a4:	0009883a 	mov	r4,zero
    c2a8:	0013883a 	mov	r9,zero
    c2ac:	000b883a 	mov	r5,zero
    c2b0:	003fe406 	br	c244 <__pack_d+0x26c>
    c2b4:	4a47883a 	add	r3,r9,r9
    c2b8:	008007c4 	movi	r2,31
    c2bc:	1105c83a 	sub	r2,r2,r4
    c2c0:	1886983a 	sll	r3,r3,r2
    c2c4:	4118d83a 	srl	r12,r8,r4
    c2c8:	491ad83a 	srl	r13,r9,r4
    c2cc:	1b18b03a 	or	r12,r3,r12
    c2d0:	003fb506 	br	c1a8 <__pack_d+0x1d0>
    c2d4:	2806d07a 	srli	r3,r5,1
    c2d8:	008007c4 	movi	r2,31
    c2dc:	1105c83a 	sub	r2,r2,r4
    c2e0:	1896d83a 	srl	r11,r3,r2
    c2e4:	2914983a 	sll	r10,r5,r4
    c2e8:	003fb506 	br	c1c0 <__pack_d+0x1e8>

0000c2ec <__unpack_d>:
    c2ec:	20c00117 	ldw	r3,4(r4)
    c2f0:	22400017 	ldw	r9,0(r4)
    c2f4:	00800434 	movhi	r2,16
    c2f8:	10bfffc4 	addi	r2,r2,-1
    c2fc:	1808d53a 	srli	r4,r3,20
    c300:	180cd7fa 	srli	r6,r3,31
    c304:	1894703a 	and	r10,r3,r2
    c308:	2201ffcc 	andi	r8,r4,2047
    c30c:	281b883a 	mov	r13,r5
    c310:	4817883a 	mov	r11,r9
    c314:	29800115 	stw	r6,4(r5)
    c318:	5019883a 	mov	r12,r10
    c31c:	40001e1e 	bne	r8,zero,c398 <__unpack_d+0xac>
    c320:	4a84b03a 	or	r2,r9,r10
    c324:	10001926 	beq	r2,zero,c38c <__unpack_d+0xa0>
    c328:	4804d63a 	srli	r2,r9,24
    c32c:	500c923a 	slli	r6,r10,8
    c330:	013f0084 	movi	r4,-1022
    c334:	00c40034 	movhi	r3,4096
    c338:	18ffffc4 	addi	r3,r3,-1
    c33c:	118cb03a 	or	r6,r2,r6
    c340:	008000c4 	movi	r2,3
    c344:	480a923a 	slli	r5,r9,8
    c348:	68800015 	stw	r2,0(r13)
    c34c:	69000215 	stw	r4,8(r13)
    c350:	19800b36 	bltu	r3,r6,c380 <__unpack_d+0x94>
    c354:	200f883a 	mov	r7,r4
    c358:	1811883a 	mov	r8,r3
    c35c:	2945883a 	add	r2,r5,r5
    c360:	1149803a 	cmpltu	r4,r2,r5
    c364:	3187883a 	add	r3,r6,r6
    c368:	20c9883a 	add	r4,r4,r3
    c36c:	100b883a 	mov	r5,r2
    c370:	200d883a 	mov	r6,r4
    c374:	39ffffc4 	addi	r7,r7,-1
    c378:	413ff82e 	bgeu	r8,r4,c35c <__unpack_d+0x70>
    c37c:	69c00215 	stw	r7,8(r13)
    c380:	69800415 	stw	r6,16(r13)
    c384:	69400315 	stw	r5,12(r13)
    c388:	f800283a 	ret
    c38c:	00800084 	movi	r2,2
    c390:	28800015 	stw	r2,0(r5)
    c394:	f800283a 	ret
    c398:	0081ffc4 	movi	r2,2047
    c39c:	40800f26 	beq	r8,r2,c3dc <__unpack_d+0xf0>
    c3a0:	480cd63a 	srli	r6,r9,24
    c3a4:	5006923a 	slli	r3,r10,8
    c3a8:	4804923a 	slli	r2,r9,8
    c3ac:	0009883a 	mov	r4,zero
    c3b0:	30c6b03a 	or	r3,r6,r3
    c3b4:	01440034 	movhi	r5,4096
    c3b8:	110cb03a 	or	r6,r2,r4
    c3bc:	423f0044 	addi	r8,r8,-1023
    c3c0:	194eb03a 	or	r7,r3,r5
    c3c4:	008000c4 	movi	r2,3
    c3c8:	69c00415 	stw	r7,16(r13)
    c3cc:	6a000215 	stw	r8,8(r13)
    c3d0:	68800015 	stw	r2,0(r13)
    c3d4:	69800315 	stw	r6,12(r13)
    c3d8:	f800283a 	ret
    c3dc:	4a84b03a 	or	r2,r9,r10
    c3e0:	1000031e 	bne	r2,zero,c3f0 <__unpack_d+0x104>
    c3e4:	00800104 	movi	r2,4
    c3e8:	28800015 	stw	r2,0(r5)
    c3ec:	f800283a 	ret
    c3f0:	0009883a 	mov	r4,zero
    c3f4:	01400234 	movhi	r5,8
    c3f8:	4904703a 	and	r2,r9,r4
    c3fc:	5146703a 	and	r3,r10,r5
    c400:	10c4b03a 	or	r2,r2,r3
    c404:	10000526 	beq	r2,zero,c41c <__unpack_d+0x130>
    c408:	00800044 	movi	r2,1
    c40c:	68800015 	stw	r2,0(r13)
    c410:	6b000415 	stw	r12,16(r13)
    c414:	6ac00315 	stw	r11,12(r13)
    c418:	f800283a 	ret
    c41c:	68000015 	stw	zero,0(r13)
    c420:	003ffb06 	br	c410 <__unpack_d+0x124>

0000c424 <__fpcmp_parts_d>:
    c424:	21800017 	ldw	r6,0(r4)
    c428:	00c00044 	movi	r3,1
    c42c:	19800a2e 	bgeu	r3,r6,c458 <__fpcmp_parts_d+0x34>
    c430:	28800017 	ldw	r2,0(r5)
    c434:	1880082e 	bgeu	r3,r2,c458 <__fpcmp_parts_d+0x34>
    c438:	00c00104 	movi	r3,4
    c43c:	30c02626 	beq	r6,r3,c4d8 <__fpcmp_parts_d+0xb4>
    c440:	10c02226 	beq	r2,r3,c4cc <__fpcmp_parts_d+0xa8>
    c444:	00c00084 	movi	r3,2
    c448:	30c00526 	beq	r6,r3,c460 <__fpcmp_parts_d+0x3c>
    c44c:	10c0071e 	bne	r2,r3,c46c <__fpcmp_parts_d+0x48>
    c450:	20800117 	ldw	r2,4(r4)
    c454:	1000091e 	bne	r2,zero,c47c <__fpcmp_parts_d+0x58>
    c458:	00800044 	movi	r2,1
    c45c:	f800283a 	ret
    c460:	10c01a1e 	bne	r2,r3,c4cc <__fpcmp_parts_d+0xa8>
    c464:	0005883a 	mov	r2,zero
    c468:	f800283a 	ret
    c46c:	22000117 	ldw	r8,4(r4)
    c470:	28800117 	ldw	r2,4(r5)
    c474:	40800326 	beq	r8,r2,c484 <__fpcmp_parts_d+0x60>
    c478:	403ff726 	beq	r8,zero,c458 <__fpcmp_parts_d+0x34>
    c47c:	00bfffc4 	movi	r2,-1
    c480:	f800283a 	ret
    c484:	20c00217 	ldw	r3,8(r4)
    c488:	28800217 	ldw	r2,8(r5)
    c48c:	10fffa16 	blt	r2,r3,c478 <__fpcmp_parts_d+0x54>
    c490:	18800916 	blt	r3,r2,c4b8 <__fpcmp_parts_d+0x94>
    c494:	21c00417 	ldw	r7,16(r4)
    c498:	28c00417 	ldw	r3,16(r5)
    c49c:	21800317 	ldw	r6,12(r4)
    c4a0:	28800317 	ldw	r2,12(r5)
    c4a4:	19fff436 	bltu	r3,r7,c478 <__fpcmp_parts_d+0x54>
    c4a8:	38c00526 	beq	r7,r3,c4c0 <__fpcmp_parts_d+0x9c>
    c4ac:	38c00236 	bltu	r7,r3,c4b8 <__fpcmp_parts_d+0x94>
    c4b0:	19ffec1e 	bne	r3,r7,c464 <__fpcmp_parts_d+0x40>
    c4b4:	30bfeb2e 	bgeu	r6,r2,c464 <__fpcmp_parts_d+0x40>
    c4b8:	403fe71e 	bne	r8,zero,c458 <__fpcmp_parts_d+0x34>
    c4bc:	003fef06 	br	c47c <__fpcmp_parts_d+0x58>
    c4c0:	11bffa2e 	bgeu	r2,r6,c4ac <__fpcmp_parts_d+0x88>
    c4c4:	403fe426 	beq	r8,zero,c458 <__fpcmp_parts_d+0x34>
    c4c8:	003fec06 	br	c47c <__fpcmp_parts_d+0x58>
    c4cc:	28800117 	ldw	r2,4(r5)
    c4d0:	103fe11e 	bne	r2,zero,c458 <__fpcmp_parts_d+0x34>
    c4d4:	003fe906 	br	c47c <__fpcmp_parts_d+0x58>
    c4d8:	11bfdd1e 	bne	r2,r6,c450 <__fpcmp_parts_d+0x2c>
    c4dc:	28c00117 	ldw	r3,4(r5)
    c4e0:	20800117 	ldw	r2,4(r4)
    c4e4:	1885c83a 	sub	r2,r3,r2
    c4e8:	f800283a 	ret

0000c4ec <close>:
 *
 * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h
 */
 
int ALT_CLOSE (int fildes)
{
    c4ec:	defff804 	addi	sp,sp,-32
    c4f0:	dfc00715 	stw	ra,28(sp)
    c4f4:	df000615 	stw	fp,24(sp)
    c4f8:	df000604 	addi	fp,sp,24
    c4fc:	e13ffc15 	stw	r4,-16(fp)
   * A common error case is that when the file descriptor was created, the call
   * to open() failed resulting in a negative file descriptor. This is trapped
   * below so that we don't try and process an invalid file descriptor.
   */

  fd = (fildes < 0) ? NULL : &alt_fd_list[fildes];
    c500:	e0bffc17 	ldw	r2,-16(fp)
    c504:	1004803a 	cmplt	r2,r2,zero
    c508:	1000091e 	bne	r2,zero,c530 <close+0x44>
    c50c:	e13ffc17 	ldw	r4,-16(fp)
    c510:	01400304 	movi	r5,12
    c514:	0002c240 	call	2c24 <__mulsi3>
    c518:	1007883a 	mov	r3,r2
    c51c:	00800074 	movhi	r2,1
    c520:	1083bc04 	addi	r2,r2,3824
    c524:	1887883a 	add	r3,r3,r2
    c528:	e0ffff15 	stw	r3,-4(fp)
    c52c:	00000106 	br	c534 <close+0x48>
    c530:	e03fff15 	stw	zero,-4(fp)
    c534:	e0bfff17 	ldw	r2,-4(fp)
    c538:	e0bffb15 	stw	r2,-20(fp)

  if (fd)
    c53c:	e0bffb17 	ldw	r2,-20(fp)
    c540:	1005003a 	cmpeq	r2,r2,zero
    c544:	10001d1e 	bne	r2,zero,c5bc <close+0xd0>
    /*
     * If the associated file system/device has a close function, call it so 
     * that any necessary cleanup code can run.
     */

    rval = (fd->dev->close) ? fd->dev->close(fd) : 0;
    c548:	e0bffb17 	ldw	r2,-20(fp)
    c54c:	10800017 	ldw	r2,0(r2)
    c550:	10800417 	ldw	r2,16(r2)
    c554:	1005003a 	cmpeq	r2,r2,zero
    c558:	1000071e 	bne	r2,zero,c578 <close+0x8c>
    c55c:	e0bffb17 	ldw	r2,-20(fp)
    c560:	10800017 	ldw	r2,0(r2)
    c564:	10800417 	ldw	r2,16(r2)
    c568:	e13ffb17 	ldw	r4,-20(fp)
    c56c:	103ee83a 	callr	r2
    c570:	e0bffe15 	stw	r2,-8(fp)
    c574:	00000106 	br	c57c <close+0x90>
    c578:	e03ffe15 	stw	zero,-8(fp)
    c57c:	e0bffe17 	ldw	r2,-8(fp)
    c580:	e0bffa15 	stw	r2,-24(fp)

    /* Free the file descriptor structure and return. */

    alt_release_fd (fildes);
    c584:	e13ffc17 	ldw	r4,-16(fp)
    c588:	000cd440 	call	cd44 <alt_release_fd>
    if (rval < 0)
    c58c:	e0bffa17 	ldw	r2,-24(fp)
    c590:	1004403a 	cmpge	r2,r2,zero
    c594:	1000071e 	bne	r2,zero,c5b4 <close+0xc8>
    {
      ALT_ERRNO = -rval;
    c598:	000c5ec0 	call	c5ec <alt_get_errno>
    c59c:	e0fffa17 	ldw	r3,-24(fp)
    c5a0:	00c7c83a 	sub	r3,zero,r3
    c5a4:	10c00015 	stw	r3,0(r2)
      return -1;
    c5a8:	00bfffc4 	movi	r2,-1
    c5ac:	e0bffd15 	stw	r2,-12(fp)
    c5b0:	00000806 	br	c5d4 <close+0xe8>
    }
    return 0;
    c5b4:	e03ffd15 	stw	zero,-12(fp)
    c5b8:	00000606 	br	c5d4 <close+0xe8>
  }
  else
  {
    ALT_ERRNO = EBADFD;
    c5bc:	000c5ec0 	call	c5ec <alt_get_errno>
    c5c0:	1007883a 	mov	r3,r2
    c5c4:	00801444 	movi	r2,81
    c5c8:	18800015 	stw	r2,0(r3)
    return -1;
    c5cc:	00bfffc4 	movi	r2,-1
    c5d0:	e0bffd15 	stw	r2,-12(fp)
    c5d4:	e0bffd17 	ldw	r2,-12(fp)
  }
}
    c5d8:	e037883a 	mov	sp,fp
    c5dc:	dfc00117 	ldw	ra,4(sp)
    c5e0:	df000017 	ldw	fp,0(sp)
    c5e4:	dec00204 	addi	sp,sp,8
    c5e8:	f800283a 	ret

0000c5ec <alt_get_errno>:
#undef errno

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
    c5ec:	defffd04 	addi	sp,sp,-12
    c5f0:	dfc00215 	stw	ra,8(sp)
    c5f4:	df000115 	stw	fp,4(sp)
    c5f8:	df000104 	addi	fp,sp,4
  return ((alt_errno) ? alt_errno() : &errno);
    c5fc:	00800074 	movhi	r2,1
    c600:	10888904 	addi	r2,r2,8740
    c604:	10800017 	ldw	r2,0(r2)
    c608:	1005003a 	cmpeq	r2,r2,zero
    c60c:	1000061e 	bne	r2,zero,c628 <alt_get_errno+0x3c>
    c610:	00800074 	movhi	r2,1
    c614:	10888904 	addi	r2,r2,8740
    c618:	10800017 	ldw	r2,0(r2)
    c61c:	103ee83a 	callr	r2
    c620:	e0bfff15 	stw	r2,-4(fp)
    c624:	00000306 	br	c634 <alt_get_errno+0x48>
    c628:	00800074 	movhi	r2,1
    c62c:	108f7c04 	addi	r2,r2,15856
    c630:	e0bfff15 	stw	r2,-4(fp)
    c634:	e0bfff17 	ldw	r2,-4(fp)
}
    c638:	e037883a 	mov	sp,fp
    c63c:	dfc00117 	ldw	ra,4(sp)
    c640:	df000017 	ldw	fp,0(sp)
    c644:	dec00204 	addi	sp,sp,8
    c648:	f800283a 	ret

0000c64c <alt_dev_null_write>:
 * by the alt_dev_null device. It simple discards all data passed to it, and
 * indicates that the data has been successfully transmitted.
 */

static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len)
{
    c64c:	defffc04 	addi	sp,sp,-16
    c650:	df000315 	stw	fp,12(sp)
    c654:	df000304 	addi	fp,sp,12
    c658:	e13ffd15 	stw	r4,-12(fp)
    c65c:	e17ffe15 	stw	r5,-8(fp)
    c660:	e1bfff15 	stw	r6,-4(fp)
  return len;
    c664:	e0bfff17 	ldw	r2,-4(fp)
}
    c668:	e037883a 	mov	sp,fp
    c66c:	df000017 	ldw	fp,0(sp)
    c670:	dec00104 	addi	sp,sp,4
    c674:	f800283a 	ret

0000c678 <fstat>:
}

#else /* !ALT_USE_DIRECT_DRIVERS */

int ALT_FSTAT (int file, struct stat *st)
{
    c678:	defff904 	addi	sp,sp,-28
    c67c:	dfc00615 	stw	ra,24(sp)
    c680:	df000515 	stw	fp,20(sp)
    c684:	df000504 	addi	fp,sp,20
    c688:	e13ffc15 	stw	r4,-16(fp)
    c68c:	e17ffd15 	stw	r5,-12(fp)
   * A common error case is that when the file descriptor was created, the call
   * to open() failed resulting in a negative file descriptor. This is trapped
   * below so that we don't try and process an invalid file descriptor.
   */

  fd = (file < 0) ? NULL : &alt_fd_list[file];
    c690:	e0bffc17 	ldw	r2,-16(fp)
    c694:	1004803a 	cmplt	r2,r2,zero
    c698:	1000091e 	bne	r2,zero,c6c0 <fstat+0x48>
    c69c:	e13ffc17 	ldw	r4,-16(fp)
    c6a0:	01400304 	movi	r5,12
    c6a4:	0002c240 	call	2c24 <__mulsi3>
    c6a8:	1007883a 	mov	r3,r2
    c6ac:	00800074 	movhi	r2,1
    c6b0:	1083bc04 	addi	r2,r2,3824
    c6b4:	1887883a 	add	r3,r3,r2
    c6b8:	e0ffff15 	stw	r3,-4(fp)
    c6bc:	00000106 	br	c6c4 <fstat+0x4c>
    c6c0:	e03fff15 	stw	zero,-4(fp)
    c6c4:	e0bfff17 	ldw	r2,-4(fp)
    c6c8:	e0bffb15 	stw	r2,-20(fp)
  
  if (fd)
    c6cc:	e0bffb17 	ldw	r2,-20(fp)
    c6d0:	1005003a 	cmpeq	r2,r2,zero
    c6d4:	1000121e 	bne	r2,zero,c720 <fstat+0xa8>
  {
    /* Call the drivers fstat() function to fill out the "st" structure. */

    if (fd->dev->fstat)
    c6d8:	e0bffb17 	ldw	r2,-20(fp)
    c6dc:	10800017 	ldw	r2,0(r2)
    c6e0:	10800817 	ldw	r2,32(r2)
    c6e4:	1005003a 	cmpeq	r2,r2,zero
    c6e8:	1000081e 	bne	r2,zero,c70c <fstat+0x94>
    {
      return fd->dev->fstat(fd, st);
    c6ec:	e0bffb17 	ldw	r2,-20(fp)
    c6f0:	10800017 	ldw	r2,0(r2)
    c6f4:	10800817 	ldw	r2,32(r2)
    c6f8:	e13ffb17 	ldw	r4,-20(fp)
    c6fc:	e17ffd17 	ldw	r5,-12(fp)
    c700:	103ee83a 	callr	r2
    c704:	e0bffe15 	stw	r2,-8(fp)
    c708:	00000b06 	br	c738 <fstat+0xc0>
     * device.
     */
 
    else
    {
      st->st_mode = _IFCHR;
    c70c:	e0fffd17 	ldw	r3,-12(fp)
    c710:	00880004 	movi	r2,8192
    c714:	18800115 	stw	r2,4(r3)
      return 0;
    c718:	e03ffe15 	stw	zero,-8(fp)
    c71c:	00000606 	br	c738 <fstat+0xc0>
    }
  }
  else
  {
    ALT_ERRNO = EBADFD;
    c720:	000c7500 	call	c750 <alt_get_errno>
    c724:	1007883a 	mov	r3,r2
    c728:	00801444 	movi	r2,81
    c72c:	18800015 	stw	r2,0(r3)
    return -1;
    c730:	00bfffc4 	movi	r2,-1
    c734:	e0bffe15 	stw	r2,-8(fp)
    c738:	e0bffe17 	ldw	r2,-8(fp)
  }
}
    c73c:	e037883a 	mov	sp,fp
    c740:	dfc00117 	ldw	ra,4(sp)
    c744:	df000017 	ldw	fp,0(sp)
    c748:	dec00204 	addi	sp,sp,8
    c74c:	f800283a 	ret

0000c750 <alt_get_errno>:
#undef errno

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
    c750:	defffd04 	addi	sp,sp,-12
    c754:	dfc00215 	stw	ra,8(sp)
    c758:	df000115 	stw	fp,4(sp)
    c75c:	df000104 	addi	fp,sp,4
  return ((alt_errno) ? alt_errno() : &errno);
    c760:	00800074 	movhi	r2,1
    c764:	10888904 	addi	r2,r2,8740
    c768:	10800017 	ldw	r2,0(r2)
    c76c:	1005003a 	cmpeq	r2,r2,zero
    c770:	1000061e 	bne	r2,zero,c78c <alt_get_errno+0x3c>
    c774:	00800074 	movhi	r2,1
    c778:	10888904 	addi	r2,r2,8740
    c77c:	10800017 	ldw	r2,0(r2)
    c780:	103ee83a 	callr	r2
    c784:	e0bfff15 	stw	r2,-4(fp)
    c788:	00000306 	br	c798 <alt_get_errno+0x48>
    c78c:	00800074 	movhi	r2,1
    c790:	108f7c04 	addi	r2,r2,15856
    c794:	e0bfff15 	stw	r2,-4(fp)
    c798:	e0bfff17 	ldw	r2,-4(fp)
}
    c79c:	e037883a 	mov	sp,fp
    c7a0:	dfc00117 	ldw	ra,4(sp)
    c7a4:	df000017 	ldw	fp,0(sp)
    c7a8:	dec00204 	addi	sp,sp,8
    c7ac:	f800283a 	ret

0000c7b0 <isatty>:
 *
 * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h
 */
 
int ALT_ISATTY (int file)
{
    c7b0:	deffeb04 	addi	sp,sp,-84
    c7b4:	dfc01415 	stw	ra,80(sp)
    c7b8:	df001315 	stw	fp,76(sp)
    c7bc:	df001304 	addi	fp,sp,76
    c7c0:	e13ffd15 	stw	r4,-12(fp)
   * A common error case is that when the file descriptor was created, the call
   * to open() failed resulting in a negative file descriptor. This is trapped
   * below so that we don't try and process an invalid file descriptor.
   */

  fd = (file < 0) ? NULL : &alt_fd_list[file];
    c7c4:	e0bffd17 	ldw	r2,-12(fp)
    c7c8:	1004803a 	cmplt	r2,r2,zero
    c7cc:	1000091e 	bne	r2,zero,c7f4 <isatty+0x44>
    c7d0:	e13ffd17 	ldw	r4,-12(fp)
    c7d4:	01400304 	movi	r5,12
    c7d8:	0002c240 	call	2c24 <__mulsi3>
    c7dc:	1007883a 	mov	r3,r2
    c7e0:	00800074 	movhi	r2,1
    c7e4:	1083bc04 	addi	r2,r2,3824
    c7e8:	1887883a 	add	r3,r3,r2
    c7ec:	e0ffff15 	stw	r3,-4(fp)
    c7f0:	00000106 	br	c7f8 <isatty+0x48>
    c7f4:	e03fff15 	stw	zero,-4(fp)
    c7f8:	e0bfff17 	ldw	r2,-4(fp)
    c7fc:	e0bfed15 	stw	r2,-76(fp)
  
  if (fd)
    c800:	e0bfed17 	ldw	r2,-76(fp)
    c804:	1005003a 	cmpeq	r2,r2,zero
    c808:	10000f1e 	bne	r2,zero,c848 <isatty+0x98>
    /*
     * If a device driver does not provide an fstat() function, then it is 
     * treated as a terminal device by default.
     */

    if (!fd->dev->fstat)
    c80c:	e0bfed17 	ldw	r2,-76(fp)
    c810:	10800017 	ldw	r2,0(r2)
    c814:	10800817 	ldw	r2,32(r2)
    c818:	1004c03a 	cmpne	r2,r2,zero
    c81c:	1000031e 	bne	r2,zero,c82c <isatty+0x7c>
    {
      return 1;
    c820:	00800044 	movi	r2,1
    c824:	e0bffe15 	stw	r2,-8(fp)
    c828:	00000c06 	br	c85c <isatty+0xac>
     * this is called so that the device can identify itself.
     */ 

    else
    {
      fstat (file, &stat);
    c82c:	e17fee04 	addi	r5,fp,-72
    c830:	e13ffd17 	ldw	r4,-12(fp)
    c834:	000c6780 	call	c678 <fstat>
      return (stat.st_mode == _IFCHR) ? 1 : 0;
    c838:	e0bfef17 	ldw	r2,-68(fp)
    c83c:	10880020 	cmpeqi	r2,r2,8192
    c840:	e0bffe15 	stw	r2,-8(fp)
    c844:	00000506 	br	c85c <isatty+0xac>
    }
  }
  else
  {
    ALT_ERRNO = EBADFD;
    c848:	000c8740 	call	c874 <alt_get_errno>
    c84c:	1007883a 	mov	r3,r2
    c850:	00801444 	movi	r2,81
    c854:	18800015 	stw	r2,0(r3)
    return 0;
    c858:	e03ffe15 	stw	zero,-8(fp)
    c85c:	e0bffe17 	ldw	r2,-8(fp)
  }
}
    c860:	e037883a 	mov	sp,fp
    c864:	dfc00117 	ldw	ra,4(sp)
    c868:	df000017 	ldw	fp,0(sp)
    c86c:	dec00204 	addi	sp,sp,8
    c870:	f800283a 	ret

0000c874 <alt_get_errno>:
#undef errno

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
    c874:	defffd04 	addi	sp,sp,-12
    c878:	dfc00215 	stw	ra,8(sp)
    c87c:	df000115 	stw	fp,4(sp)
    c880:	df000104 	addi	fp,sp,4
  return ((alt_errno) ? alt_errno() : &errno);
    c884:	00800074 	movhi	r2,1
    c888:	10888904 	addi	r2,r2,8740
    c88c:	10800017 	ldw	r2,0(r2)
    c890:	1005003a 	cmpeq	r2,r2,zero
    c894:	1000061e 	bne	r2,zero,c8b0 <alt_get_errno+0x3c>
    c898:	00800074 	movhi	r2,1
    c89c:	10888904 	addi	r2,r2,8740
    c8a0:	10800017 	ldw	r2,0(r2)
    c8a4:	103ee83a 	callr	r2
    c8a8:	e0bfff15 	stw	r2,-4(fp)
    c8ac:	00000306 	br	c8bc <alt_get_errno+0x48>
    c8b0:	00800074 	movhi	r2,1
    c8b4:	108f7c04 	addi	r2,r2,15856
    c8b8:	e0bfff15 	stw	r2,-4(fp)
    c8bc:	e0bfff17 	ldw	r2,-4(fp)
}
    c8c0:	e037883a 	mov	sp,fp
    c8c4:	dfc00117 	ldw	ra,4(sp)
    c8c8:	df000017 	ldw	fp,0(sp)
    c8cc:	dec00204 	addi	sp,sp,8
    c8d0:	f800283a 	ret

0000c8d4 <alt_load>:
 * there is no bootloader, so this application is responsible for loading to
 * RAM any sections that are required.
 */  

void alt_load (void)
{
    c8d4:	defffe04 	addi	sp,sp,-8
    c8d8:	dfc00115 	stw	ra,4(sp)
    c8dc:	df000015 	stw	fp,0(sp)
    c8e0:	d839883a 	mov	fp,sp
  /* 
   * Copy the .rwdata section. 
   */

  alt_load_section (&__flash_rwdata_start, 
    c8e4:	01000074 	movhi	r4,1
    c8e8:	21088f04 	addi	r4,r4,8764
    c8ec:	01400074 	movhi	r5,1
    c8f0:	2941ad04 	addi	r5,r5,1716
    c8f4:	01800074 	movhi	r6,1
    c8f8:	31888f04 	addi	r6,r6,8764
    c8fc:	000c9540 	call	c954 <alt_load_section>

  /*
   * Copy the exception handler.
   */

  alt_load_section (&__flash_exceptions_start, 
    c900:	01000034 	movhi	r4,0
    c904:	21000804 	addi	r4,r4,32
    c908:	01400034 	movhi	r5,0
    c90c:	29400804 	addi	r5,r5,32
    c910:	01800034 	movhi	r6,0
    c914:	31806d04 	addi	r6,r6,436
    c918:	000c9540 	call	c954 <alt_load_section>

  /*
   * Copy the .rodata section.
   */

  alt_load_section (&__flash_rodata_start, 
    c91c:	01000074 	movhi	r4,1
    c920:	213fe404 	addi	r4,r4,-112
    c924:	01400074 	movhi	r5,1
    c928:	297fe404 	addi	r5,r5,-112
    c92c:	01800074 	movhi	r6,1
    c930:	3181ad04 	addi	r6,r6,1716
    c934:	000c9540 	call	c954 <alt_load_section>
  
  /*
   * Now ensure that the caches are in synch.
   */
  
  alt_dcache_flush_all();
    c938:	000ee280 	call	ee28 <alt_dcache_flush_all>
  alt_icache_flush_all();
    c93c:	000f0200 	call	f020 <alt_icache_flush_all>
}
    c940:	e037883a 	mov	sp,fp
    c944:	dfc00117 	ldw	ra,4(sp)
    c948:	df000017 	ldw	fp,0(sp)
    c94c:	dec00204 	addi	sp,sp,8
    c950:	f800283a 	ret

0000c954 <alt_load_section>:
 */

static void ALT_INLINE alt_load_section (alt_u32* from, 
                                         alt_u32* to, 
                                         alt_u32* end)
{
    c954:	defffc04 	addi	sp,sp,-16
    c958:	df000315 	stw	fp,12(sp)
    c95c:	df000304 	addi	fp,sp,12
    c960:	e13ffd15 	stw	r4,-12(fp)
    c964:	e17ffe15 	stw	r5,-8(fp)
    c968:	e1bfff15 	stw	r6,-4(fp)
  if (to != from)
    c96c:	e0fffe17 	ldw	r3,-8(fp)
    c970:	e0bffd17 	ldw	r2,-12(fp)
    c974:	18800e26 	beq	r3,r2,c9b0 <alt_load_section+0x5c>
  {
    while( to != end )
    c978:	00000a06 	br	c9a4 <alt_load_section+0x50>
    {
      *to++ = *from++;
    c97c:	e0bffd17 	ldw	r2,-12(fp)
    c980:	10c00017 	ldw	r3,0(r2)
    c984:	e0bffe17 	ldw	r2,-8(fp)
    c988:	10c00015 	stw	r3,0(r2)
    c98c:	e0bffe17 	ldw	r2,-8(fp)
    c990:	10800104 	addi	r2,r2,4
    c994:	e0bffe15 	stw	r2,-8(fp)
    c998:	e0bffd17 	ldw	r2,-12(fp)
    c99c:	10800104 	addi	r2,r2,4
    c9a0:	e0bffd15 	stw	r2,-12(fp)
                                         alt_u32* to, 
                                         alt_u32* end)
{
  if (to != from)
  {
    while( to != end )
    c9a4:	e0fffe17 	ldw	r3,-8(fp)
    c9a8:	e0bfff17 	ldw	r2,-4(fp)
    c9ac:	18bff31e 	bne	r3,r2,c97c <alt_load_section+0x28>
    {
      *to++ = *from++;
    }
  }
}
    c9b0:	e037883a 	mov	sp,fp
    c9b4:	df000017 	ldw	fp,0(sp)
    c9b8:	dec00104 	addi	sp,sp,4
    c9bc:	f800283a 	ret

0000c9c0 <lseek>:
 * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h
 *
 */

off_t ALT_LSEEK (int file, off_t ptr, int dir)
{
    c9c0:	defff804 	addi	sp,sp,-32
    c9c4:	dfc00715 	stw	ra,28(sp)
    c9c8:	df000615 	stw	fp,24(sp)
    c9cc:	df000604 	addi	fp,sp,24
    c9d0:	e13ffc15 	stw	r4,-16(fp)
    c9d4:	e17ffd15 	stw	r5,-12(fp)
    c9d8:	e1bffe15 	stw	r6,-8(fp)
  alt_fd* fd;
  off_t   rc = 0; 
    c9dc:	e03ffa15 	stw	zero,-24(fp)
   * A common error case is that when the file descriptor was created, the call
   * to open() failed resulting in a negative file descriptor. This is trapped
   * below so that we don't try and process an invalid file descriptor.
   */

  fd = (file < 0) ? NULL : &alt_fd_list[file];
    c9e0:	e0bffc17 	ldw	r2,-16(fp)
    c9e4:	1004803a 	cmplt	r2,r2,zero
    c9e8:	1000091e 	bne	r2,zero,ca10 <lseek+0x50>
    c9ec:	e13ffc17 	ldw	r4,-16(fp)
    c9f0:	01400304 	movi	r5,12
    c9f4:	0002c240 	call	2c24 <__mulsi3>
    c9f8:	1007883a 	mov	r3,r2
    c9fc:	00800074 	movhi	r2,1
    ca00:	1083bc04 	addi	r2,r2,3824
    ca04:	1887883a 	add	r3,r3,r2
    ca08:	e0ffff15 	stw	r3,-4(fp)
    ca0c:	00000106 	br	ca14 <lseek+0x54>
    ca10:	e03fff15 	stw	zero,-4(fp)
    ca14:	e0bfff17 	ldw	r2,-4(fp)
    ca18:	e0bffb15 	stw	r2,-20(fp)
  
  if (fd) 
    ca1c:	e0bffb17 	ldw	r2,-20(fp)
    ca20:	1005003a 	cmpeq	r2,r2,zero
    ca24:	1000111e 	bne	r2,zero,ca6c <lseek+0xac>
    /*
     * If the device driver provides an implementation of the lseek() function,
     * then call that to process the request.
     */
 
    if (fd->dev->lseek)
    ca28:	e0bffb17 	ldw	r2,-20(fp)
    ca2c:	10800017 	ldw	r2,0(r2)
    ca30:	10800717 	ldw	r2,28(r2)
    ca34:	1005003a 	cmpeq	r2,r2,zero
    ca38:	1000091e 	bne	r2,zero,ca60 <lseek+0xa0>
    {
      rc = fd->dev->lseek(fd, ptr, dir);
    ca3c:	e0bffb17 	ldw	r2,-20(fp)
    ca40:	10800017 	ldw	r2,0(r2)
    ca44:	10800717 	ldw	r2,28(r2)
    ca48:	e13ffb17 	ldw	r4,-20(fp)
    ca4c:	e17ffd17 	ldw	r5,-12(fp)
    ca50:	e1bffe17 	ldw	r6,-8(fp)
    ca54:	103ee83a 	callr	r2
    ca58:	e0bffa15 	stw	r2,-24(fp)
    ca5c:	00000506 	br	ca74 <lseek+0xb4>
     * Otherwise return an error.
     */

    else
    {
      rc = -ENOTSUP;
    ca60:	00bfde84 	movi	r2,-134
    ca64:	e0bffa15 	stw	r2,-24(fp)
    ca68:	00000206 	br	ca74 <lseek+0xb4>
    }
  }
  else  
  {
    rc = -EBADFD;
    ca6c:	00bfebc4 	movi	r2,-81
    ca70:	e0bffa15 	stw	r2,-24(fp)
  }

  if (rc < 0)
    ca74:	e0bffa17 	ldw	r2,-24(fp)
    ca78:	1004403a 	cmpge	r2,r2,zero
    ca7c:	1000071e 	bne	r2,zero,ca9c <lseek+0xdc>
  {
    ALT_ERRNO = -rc;
    ca80:	000cab40 	call	cab4 <alt_get_errno>
    ca84:	1007883a 	mov	r3,r2
    ca88:	e0bffa17 	ldw	r2,-24(fp)
    ca8c:	0085c83a 	sub	r2,zero,r2
    ca90:	18800015 	stw	r2,0(r3)
    rc = -1;
    ca94:	00bfffc4 	movi	r2,-1
    ca98:	e0bffa15 	stw	r2,-24(fp)
  }

  return rc;
    ca9c:	e0bffa17 	ldw	r2,-24(fp)
}
    caa0:	e037883a 	mov	sp,fp
    caa4:	dfc00117 	ldw	ra,4(sp)
    caa8:	df000017 	ldw	fp,0(sp)
    caac:	dec00204 	addi	sp,sp,8
    cab0:	f800283a 	ret

0000cab4 <alt_get_errno>:
#undef errno

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
    cab4:	defffd04 	addi	sp,sp,-12
    cab8:	dfc00215 	stw	ra,8(sp)
    cabc:	df000115 	stw	fp,4(sp)
    cac0:	df000104 	addi	fp,sp,4
  return ((alt_errno) ? alt_errno() : &errno);
    cac4:	00800074 	movhi	r2,1
    cac8:	10888904 	addi	r2,r2,8740
    cacc:	10800017 	ldw	r2,0(r2)
    cad0:	1005003a 	cmpeq	r2,r2,zero
    cad4:	1000061e 	bne	r2,zero,caf0 <alt_get_errno+0x3c>
    cad8:	00800074 	movhi	r2,1
    cadc:	10888904 	addi	r2,r2,8740
    cae0:	10800017 	ldw	r2,0(r2)
    cae4:	103ee83a 	callr	r2
    cae8:	e0bfff15 	stw	r2,-4(fp)
    caec:	00000306 	br	cafc <alt_get_errno+0x48>
    caf0:	00800074 	movhi	r2,1
    caf4:	108f7c04 	addi	r2,r2,15856
    caf8:	e0bfff15 	stw	r2,-4(fp)
    cafc:	e0bfff17 	ldw	r2,-4(fp)
}
    cb00:	e037883a 	mov	sp,fp
    cb04:	dfc00117 	ldw	ra,4(sp)
    cb08:	df000017 	ldw	fp,0(sp)
    cb0c:	dec00204 	addi	sp,sp,8
    cb10:	f800283a 	ret

0000cb14 <alt_main>:
 * devices/filesystems/components in the system; and call the entry point for
 * the users application, i.e. main().
 */

void alt_main (void)
{
    cb14:	defffd04 	addi	sp,sp,-12
    cb18:	dfc00215 	stw	ra,8(sp)
    cb1c:	df000115 	stw	fp,4(sp)
    cb20:	df000104 	addi	fp,sp,4
#endif

  /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */
  ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n");
  /* Initialize the interrupt controller. */
  alt_irq_init (NULL);
    cb24:	0009883a 	mov	r4,zero
    cb28:	000d02c0 	call	d02c <alt_irq_init>
  ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n");
  ALT_SEM_CREATE (&alt_fd_list_lock, 1);

  /* Initialize the device drivers/software components. */
  ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n");
  alt_sys_init();
    cb2c:	000d0600 	call	d060 <alt_sys_init>
   * devices be present (not equal to /dev/null) and if direct drivers
   * aren't being used.
   */

    ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n");
    alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR);
    cb30:	01000074 	movhi	r4,1
    cb34:	2101a004 	addi	r4,r4,1664
    cb38:	01400074 	movhi	r5,1
    cb3c:	2941a004 	addi	r5,r5,1664
    cb40:	01800074 	movhi	r6,1
    cb44:	3181a004 	addi	r6,r6,1664
    cb48:	000f3e00 	call	f3e0 <alt_io_redirect>
  /* 
   * Call the C++ constructors 
   */

  ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n");
  _do_ctors ();
    cb4c:	000ef580 	call	ef58 <_do_ctors>
   * redefined as _exit()). This is in the interest of reducing code footprint,
   * in that the atexit() overhead is removed when it's not needed.
   */

  ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n");
  atexit (_do_dtors);
    cb50:	01000074 	movhi	r4,1
    cb54:	213bef04 	addi	r4,r4,-4164
    cb58:	000fb840 	call	fb84 <atexit>
  ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n");

#ifdef ALT_NO_EXIT
  main (alt_argc, alt_argv, alt_envp);
#else
  result = main (alt_argc, alt_argv, alt_envp);
    cb5c:	d1270117 	ldw	r4,-25596(gp)
    cb60:	d1670217 	ldw	r5,-25592(gp)
    cb64:	d1a70317 	ldw	r6,-25588(gp)
    cb68:	00009000 	call	900 <main>
    cb6c:	e0bfff15 	stw	r2,-4(fp)
  close(STDOUT_FILENO);
    cb70:	01000044 	movi	r4,1
    cb74:	000c4ec0 	call	c4ec <close>
  exit (result);
    cb78:	e13fff17 	ldw	r4,-4(fp)
    cb7c:	000fb980 	call	fb98 <exit>

0000cb80 <__malloc_lock>:
 * configuration is single threaded, so there is nothing to do here. Note that 
 * this requires that malloc is never called by an interrupt service routine.
 */

void __malloc_lock ( struct _reent *_r )
{
    cb80:	defffe04 	addi	sp,sp,-8
    cb84:	df000115 	stw	fp,4(sp)
    cb88:	df000104 	addi	fp,sp,4
    cb8c:	e13fff15 	stw	r4,-4(fp)
}
    cb90:	e037883a 	mov	sp,fp
    cb94:	df000017 	ldw	fp,0(sp)
    cb98:	dec00104 	addi	sp,sp,4
    cb9c:	f800283a 	ret

0000cba0 <__malloc_unlock>:
/*
 *
 */

void __malloc_unlock ( struct _reent *_r )
{
    cba0:	defffe04 	addi	sp,sp,-8
    cba4:	df000115 	stw	fp,4(sp)
    cba8:	df000104 	addi	fp,sp,4
    cbac:	e13fff15 	stw	r4,-4(fp)
}
    cbb0:	e037883a 	mov	sp,fp
    cbb4:	df000017 	ldw	fp,0(sp)
    cbb8:	dec00104 	addi	sp,sp,4
    cbbc:	f800283a 	ret

0000cbc0 <read>:
}

#else /* !ALT_USE_DIRECT_DRIVERS */

int ALT_READ (int file, void *ptr, size_t len)
{
    cbc0:	defff704 	addi	sp,sp,-36
    cbc4:	dfc00815 	stw	ra,32(sp)
    cbc8:	df000715 	stw	fp,28(sp)
    cbcc:	df000704 	addi	fp,sp,28
    cbd0:	e13ffb15 	stw	r4,-20(fp)
    cbd4:	e17ffc15 	stw	r5,-16(fp)
    cbd8:	e1bffd15 	stw	r6,-12(fp)
   * A common error case is that when the file descriptor was created, the call
   * to open() failed resulting in a negative file descriptor. This is trapped
   * below so that we don't try and process an invalid file descriptor.
   */

  fd = (file < 0) ? NULL : &alt_fd_list[file];
    cbdc:	e0bffb17 	ldw	r2,-20(fp)
    cbe0:	1004803a 	cmplt	r2,r2,zero
    cbe4:	1000091e 	bne	r2,zero,cc0c <read+0x4c>
    cbe8:	e13ffb17 	ldw	r4,-20(fp)
    cbec:	01400304 	movi	r5,12
    cbf0:	0002c240 	call	2c24 <__mulsi3>
    cbf4:	1007883a 	mov	r3,r2
    cbf8:	00800074 	movhi	r2,1
    cbfc:	1083bc04 	addi	r2,r2,3824
    cc00:	1887883a 	add	r3,r3,r2
    cc04:	e0ffff15 	stw	r3,-4(fp)
    cc08:	00000106 	br	cc10 <read+0x50>
    cc0c:	e03fff15 	stw	zero,-4(fp)
    cc10:	e0bfff17 	ldw	r2,-4(fp)
    cc14:	e0bffa15 	stw	r2,-24(fp)
  
  if (fd)
    cc18:	e0bffa17 	ldw	r2,-24(fp)
    cc1c:	1005003a 	cmpeq	r2,r2,zero
    cc20:	1000241e 	bne	r2,zero,ccb4 <read+0xf4>
     * If the file has not been opened with read access, or if the driver does
     * not provide an implementation of read(), generate an error. Otherwise
     * call the drivers read() function to process the request.
     */

    if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && 
    cc24:	e0bffa17 	ldw	r2,-24(fp)
    cc28:	10800217 	ldw	r2,8(r2)
    cc2c:	108000cc 	andi	r2,r2,3
    cc30:	10800060 	cmpeqi	r2,r2,1
    cc34:	10001a1e 	bne	r2,zero,cca0 <read+0xe0>
    cc38:	e0bffa17 	ldw	r2,-24(fp)
    cc3c:	10800017 	ldw	r2,0(r2)
    cc40:	10800517 	ldw	r2,20(r2)
    cc44:	1005003a 	cmpeq	r2,r2,zero
    cc48:	1000151e 	bne	r2,zero,cca0 <read+0xe0>
        (fd->dev->read))
      {
        if ((rval = fd->dev->read(fd, ptr, len)) < 0)
    cc4c:	e0bffa17 	ldw	r2,-24(fp)
    cc50:	10800017 	ldw	r2,0(r2)
    cc54:	10800517 	ldw	r2,20(r2)
    cc58:	e17ffc17 	ldw	r5,-16(fp)
    cc5c:	e1bffd17 	ldw	r6,-12(fp)
    cc60:	e13ffa17 	ldw	r4,-24(fp)
    cc64:	103ee83a 	callr	r2
    cc68:	e0bff915 	stw	r2,-28(fp)
    cc6c:	e0bff917 	ldw	r2,-28(fp)
    cc70:	1004403a 	cmpge	r2,r2,zero
    cc74:	1000071e 	bne	r2,zero,cc94 <read+0xd4>
        {
          ALT_ERRNO = -rval;
    cc78:	000cce40 	call	cce4 <alt_get_errno>
    cc7c:	e0fff917 	ldw	r3,-28(fp)
    cc80:	00c7c83a 	sub	r3,zero,r3
    cc84:	10c00015 	stw	r3,0(r2)
          return -1;
    cc88:	00bfffc4 	movi	r2,-1
    cc8c:	e0bffe15 	stw	r2,-8(fp)
    cc90:	00000e06 	br	cccc <read+0x10c>
        }
        return rval;
    cc94:	e0bff917 	ldw	r2,-28(fp)
    cc98:	e0bffe15 	stw	r2,-8(fp)
    cc9c:	00000b06 	br	cccc <read+0x10c>
      }
      else
      {
        ALT_ERRNO = EACCES;
    cca0:	000cce40 	call	cce4 <alt_get_errno>
    cca4:	1007883a 	mov	r3,r2
    cca8:	00800344 	movi	r2,13
    ccac:	18800015 	stw	r2,0(r3)
    ccb0:	00000406 	br	ccc4 <read+0x104>
      }
    }
  else
  {
    ALT_ERRNO = EBADFD;
    ccb4:	000cce40 	call	cce4 <alt_get_errno>
    ccb8:	1007883a 	mov	r3,r2
    ccbc:	00801444 	movi	r2,81
    ccc0:	18800015 	stw	r2,0(r3)
  }
  return -1;
    ccc4:	00bfffc4 	movi	r2,-1
    ccc8:	e0bffe15 	stw	r2,-8(fp)
    cccc:	e0bffe17 	ldw	r2,-8(fp)
}
    ccd0:	e037883a 	mov	sp,fp
    ccd4:	dfc00117 	ldw	ra,4(sp)
    ccd8:	df000017 	ldw	fp,0(sp)
    ccdc:	dec00204 	addi	sp,sp,8
    cce0:	f800283a 	ret

0000cce4 <alt_get_errno>:
#undef errno

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
    cce4:	defffd04 	addi	sp,sp,-12
    cce8:	dfc00215 	stw	ra,8(sp)
    ccec:	df000115 	stw	fp,4(sp)
    ccf0:	df000104 	addi	fp,sp,4
  return ((alt_errno) ? alt_errno() : &errno);
    ccf4:	00800074 	movhi	r2,1
    ccf8:	10888904 	addi	r2,r2,8740
    ccfc:	10800017 	ldw	r2,0(r2)
    cd00:	1005003a 	cmpeq	r2,r2,zero
    cd04:	1000061e 	bne	r2,zero,cd20 <alt_get_errno+0x3c>
    cd08:	00800074 	movhi	r2,1
    cd0c:	10888904 	addi	r2,r2,8740
    cd10:	10800017 	ldw	r2,0(r2)
    cd14:	103ee83a 	callr	r2
    cd18:	e0bfff15 	stw	r2,-4(fp)
    cd1c:	00000306 	br	cd2c <alt_get_errno+0x48>
    cd20:	00800074 	movhi	r2,1
    cd24:	108f7c04 	addi	r2,r2,15856
    cd28:	e0bfff15 	stw	r2,-4(fp)
    cd2c:	e0bfff17 	ldw	r2,-4(fp)
}
    cd30:	e037883a 	mov	sp,fp
    cd34:	dfc00117 	ldw	ra,4(sp)
    cd38:	df000017 	ldw	fp,0(sp)
    cd3c:	dec00204 	addi	sp,sp,8
    cd40:	f800283a 	ret

0000cd44 <alt_release_fd>:
 * File descriptors correcponding to standard in, standard out and standard 
 * error cannont be released backed to the pool. They are always reserved.
 */

void alt_release_fd (int fd)
{
    cd44:	defffc04 	addi	sp,sp,-16
    cd48:	dfc00315 	stw	ra,12(sp)
    cd4c:	df000215 	stw	fp,8(sp)
    cd50:	dc000115 	stw	r16,4(sp)
    cd54:	df000104 	addi	fp,sp,4
    cd58:	e13fff15 	stw	r4,-4(fp)
  if (fd > 2)
    cd5c:	e0bfff17 	ldw	r2,-4(fp)
    cd60:	108000d0 	cmplti	r2,r2,3
    cd64:	10000f1e 	bne	r2,zero,cda4 <alt_release_fd+0x60>
  {
    alt_fd_list[fd].fd_flags = 0;
    cd68:	e13fff17 	ldw	r4,-4(fp)
    cd6c:	04000074 	movhi	r16,1
    cd70:	8403bc04 	addi	r16,r16,3824
    cd74:	01400304 	movi	r5,12
    cd78:	0002c240 	call	2c24 <__mulsi3>
    cd7c:	1405883a 	add	r2,r2,r16
    cd80:	10800204 	addi	r2,r2,8
    cd84:	10000015 	stw	zero,0(r2)
    alt_fd_list[fd].dev      = 0;
    cd88:	e13fff17 	ldw	r4,-4(fp)
    cd8c:	04000074 	movhi	r16,1
    cd90:	8403bc04 	addi	r16,r16,3824
    cd94:	01400304 	movi	r5,12
    cd98:	0002c240 	call	2c24 <__mulsi3>
    cd9c:	1405883a 	add	r2,r2,r16
    cda0:	10000015 	stw	zero,0(r2)
  }
}
    cda4:	e037883a 	mov	sp,fp
    cda8:	dfc00217 	ldw	ra,8(sp)
    cdac:	df000117 	ldw	fp,4(sp)
    cdb0:	dc000017 	ldw	r16,0(sp)
    cdb4:	dec00304 	addi	sp,sp,12
    cdb8:	f800283a 	ret

0000cdbc <sbrk>:
#endif
 
caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function ));

caddr_t ALT_SBRK (int incr)
{ 
    cdbc:	defff804 	addi	sp,sp,-32
    cdc0:	df000715 	stw	fp,28(sp)
    cdc4:	df000704 	addi	fp,sp,28
    cdc8:	e13ffe15 	stw	r4,-8(fp)
static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE 
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
    cdcc:	0005303a 	rdctl	r2,status
    cdd0:	e0bffb15 	stw	r2,-20(fp)

  NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK);
    cdd4:	e0fffb17 	ldw	r3,-20(fp)
    cdd8:	00bfff84 	movi	r2,-2
    cddc:	1884703a 	and	r2,r3,r2
    cde0:	1001703a 	wrctl	status,r2
  
  return context;
    cde4:	e0bffb17 	ldw	r2,-20(fp)
  alt_irq_context context;
  char *prev_heap_end; 

  context = alt_irq_disable_all();
    cde8:	e0bffd15 	stw	r2,-12(fp)

  /* Always return data aligned on a word boundary */
  heap_end = (char *)(((unsigned int)heap_end + 3) & ~3);
    cdec:	d0a00e17 	ldw	r2,-32712(gp)
    cdf0:	10c000c4 	addi	r3,r2,3
    cdf4:	00bfff04 	movi	r2,-4
    cdf8:	1884703a 	and	r2,r3,r2
    cdfc:	d0a00e15 	stw	r2,-32712(gp)
  if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) {
    alt_irq_enable_all(context);
    return (caddr_t)-1;
  }
#else
  if ((heap_end + incr) > __alt_heap_limit) {
    ce00:	d0e00e17 	ldw	r3,-32712(gp)
    ce04:	e0bffe17 	ldw	r2,-8(fp)
    ce08:	1887883a 	add	r3,r3,r2
    ce0c:	008000f4 	movhi	r2,3
    ce10:	10880004 	addi	r2,r2,8192
    ce14:	10c0072e 	bgeu	r2,r3,ce34 <sbrk+0x78>
    ce18:	e0bffd17 	ldw	r2,-12(fp)
    ce1c:	e0bffa15 	stw	r2,-24(fp)
  status &= ~NIOS2_STATUS_PIE_MSK;
  status |= (context & NIOS2_STATUS_PIE_MSK);
  
  NIOS2_WRITE_STATUS (status);
#else
  NIOS2_WRITE_STATUS (context);
    ce20:	e0bffa17 	ldw	r2,-24(fp)
    ce24:	1001703a 	wrctl	status,r2
    alt_irq_enable_all(context);
    return (caddr_t)-1;
    ce28:	00bfffc4 	movi	r2,-1
    ce2c:	e0bfff15 	stw	r2,-4(fp)
    ce30:	00000c06 	br	ce64 <sbrk+0xa8>
  }
#endif

  prev_heap_end = heap_end; 
    ce34:	d0a00e17 	ldw	r2,-32712(gp)
    ce38:	e0bffc15 	stw	r2,-16(fp)
  heap_end += incr; 
    ce3c:	d0e00e17 	ldw	r3,-32712(gp)
    ce40:	e0bffe17 	ldw	r2,-8(fp)
    ce44:	1885883a 	add	r2,r3,r2
    ce48:	d0a00e15 	stw	r2,-32712(gp)
    ce4c:	e0bffd17 	ldw	r2,-12(fp)
    ce50:	e0bff915 	stw	r2,-28(fp)
    ce54:	e0bff917 	ldw	r2,-28(fp)
    ce58:	1001703a 	wrctl	status,r2

#endif

  alt_irq_enable_all(context);

  return (caddr_t) prev_heap_end; 
    ce5c:	e0bffc17 	ldw	r2,-16(fp)
    ce60:	e0bfff15 	stw	r2,-4(fp)
    ce64:	e0bfff17 	ldw	r2,-4(fp)
} 
    ce68:	e037883a 	mov	sp,fp
    ce6c:	df000017 	ldw	fp,0(sp)
    ce70:	dec00104 	addi	sp,sp,4
    ce74:	f800283a 	ret

0000ce78 <usleep>:
#if defined (__GNUC__) && __GNUC__ >= 4
int ALT_USLEEP (useconds_t us)
#else
unsigned int ALT_USLEEP (unsigned int us)
#endif
{
    ce78:	defffd04 	addi	sp,sp,-12
    ce7c:	dfc00215 	stw	ra,8(sp)
    ce80:	df000115 	stw	fp,4(sp)
    ce84:	df000104 	addi	fp,sp,4
    ce88:	e13fff15 	stw	r4,-4(fp)
  return alt_busy_sleep(us);
    ce8c:	e13fff17 	ldw	r4,-4(fp)
    ce90:	000eccc0 	call	eccc <alt_busy_sleep>
}
    ce94:	e037883a 	mov	sp,fp
    ce98:	dfc00117 	ldw	ra,4(sp)
    ce9c:	df000017 	ldw	fp,0(sp)
    cea0:	dec00204 	addi	sp,sp,8
    cea4:	f800283a 	ret

0000cea8 <write>:
}

#else /* !ALT_USE_DIRECT_DRIVERS */

int ALT_WRITE (int file, const void *ptr, size_t len)
{
    cea8:	defff704 	addi	sp,sp,-36
    ceac:	dfc00815 	stw	ra,32(sp)
    ceb0:	df000715 	stw	fp,28(sp)
    ceb4:	df000704 	addi	fp,sp,28
    ceb8:	e13ffb15 	stw	r4,-20(fp)
    cebc:	e17ffc15 	stw	r5,-16(fp)
    cec0:	e1bffd15 	stw	r6,-12(fp)
   * A common error case is that when the file descriptor was created, the call
   * to open() failed resulting in a negative file descriptor. This is trapped
   * below so that we don't try and process an invalid file descriptor.
   */

  fd = (file < 0) ? NULL : &alt_fd_list[file];
    cec4:	e0bffb17 	ldw	r2,-20(fp)
    cec8:	1004803a 	cmplt	r2,r2,zero
    cecc:	1000091e 	bne	r2,zero,cef4 <write+0x4c>
    ced0:	e13ffb17 	ldw	r4,-20(fp)
    ced4:	01400304 	movi	r5,12
    ced8:	0002c240 	call	2c24 <__mulsi3>
    cedc:	1007883a 	mov	r3,r2
    cee0:	00800074 	movhi	r2,1
    cee4:	1083bc04 	addi	r2,r2,3824
    cee8:	1887883a 	add	r3,r3,r2
    ceec:	e0ffff15 	stw	r3,-4(fp)
    cef0:	00000106 	br	cef8 <write+0x50>
    cef4:	e03fff15 	stw	zero,-4(fp)
    cef8:	e0bfff17 	ldw	r2,-4(fp)
    cefc:	e0bffa15 	stw	r2,-24(fp)
  
  if (fd)
    cf00:	e0bffa17 	ldw	r2,-24(fp)
    cf04:	1005003a 	cmpeq	r2,r2,zero
    cf08:	1000241e 	bne	r2,zero,cf9c <write+0xf4>
     * If the file has not been opened with write access, or if the driver does
     * not provide an implementation of write(), generate an error. Otherwise
     * call the drivers write() function to process the request.
     */

    if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write)
    cf0c:	e0bffa17 	ldw	r2,-24(fp)
    cf10:	10800217 	ldw	r2,8(r2)
    cf14:	108000cc 	andi	r2,r2,3
    cf18:	1005003a 	cmpeq	r2,r2,zero
    cf1c:	10001a1e 	bne	r2,zero,cf88 <write+0xe0>
    cf20:	e0bffa17 	ldw	r2,-24(fp)
    cf24:	10800017 	ldw	r2,0(r2)
    cf28:	10800617 	ldw	r2,24(r2)
    cf2c:	1005003a 	cmpeq	r2,r2,zero
    cf30:	1000151e 	bne	r2,zero,cf88 <write+0xe0>
    {
      
      /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */
      ALT_LOG_WRITE_FUNCTION(ptr,len);

      if ((rval = fd->dev->write(fd, ptr, len)) < 0)
    cf34:	e0bffa17 	ldw	r2,-24(fp)
    cf38:	10800017 	ldw	r2,0(r2)
    cf3c:	10800617 	ldw	r2,24(r2)
    cf40:	e17ffc17 	ldw	r5,-16(fp)
    cf44:	e1bffd17 	ldw	r6,-12(fp)
    cf48:	e13ffa17 	ldw	r4,-24(fp)
    cf4c:	103ee83a 	callr	r2
    cf50:	e0bff915 	stw	r2,-28(fp)
    cf54:	e0bff917 	ldw	r2,-28(fp)
    cf58:	1004403a 	cmpge	r2,r2,zero
    cf5c:	1000071e 	bne	r2,zero,cf7c <write+0xd4>
      {
        ALT_ERRNO = -rval;
    cf60:	000cfcc0 	call	cfcc <alt_get_errno>
    cf64:	e0fff917 	ldw	r3,-28(fp)
    cf68:	00c7c83a 	sub	r3,zero,r3
    cf6c:	10c00015 	stw	r3,0(r2)
        return -1;
    cf70:	00bfffc4 	movi	r2,-1
    cf74:	e0bffe15 	stw	r2,-8(fp)
    cf78:	00000e06 	br	cfb4 <write+0x10c>
      }
      return rval;
    cf7c:	e0bff917 	ldw	r2,-28(fp)
    cf80:	e0bffe15 	stw	r2,-8(fp)
    cf84:	00000b06 	br	cfb4 <write+0x10c>
    }
    else
    {
      ALT_ERRNO = EACCES;
    cf88:	000cfcc0 	call	cfcc <alt_get_errno>
    cf8c:	1007883a 	mov	r3,r2
    cf90:	00800344 	movi	r2,13
    cf94:	18800015 	stw	r2,0(r3)
    cf98:	00000406 	br	cfac <write+0x104>
    }
  }
  else  
  {
    ALT_ERRNO = EBADFD;
    cf9c:	000cfcc0 	call	cfcc <alt_get_errno>
    cfa0:	1007883a 	mov	r3,r2
    cfa4:	00801444 	movi	r2,81
    cfa8:	18800015 	stw	r2,0(r3)
  }
  return -1;
    cfac:	00bfffc4 	movi	r2,-1
    cfb0:	e0bffe15 	stw	r2,-8(fp)
    cfb4:	e0bffe17 	ldw	r2,-8(fp)
}
    cfb8:	e037883a 	mov	sp,fp
    cfbc:	dfc00117 	ldw	ra,4(sp)
    cfc0:	df000017 	ldw	fp,0(sp)
    cfc4:	dec00204 	addi	sp,sp,8
    cfc8:	f800283a 	ret

0000cfcc <alt_get_errno>:
#undef errno

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
    cfcc:	defffd04 	addi	sp,sp,-12
    cfd0:	dfc00215 	stw	ra,8(sp)
    cfd4:	df000115 	stw	fp,4(sp)
    cfd8:	df000104 	addi	fp,sp,4
  return ((alt_errno) ? alt_errno() : &errno);
    cfdc:	00800074 	movhi	r2,1
    cfe0:	10888904 	addi	r2,r2,8740
    cfe4:	10800017 	ldw	r2,0(r2)
    cfe8:	1005003a 	cmpeq	r2,r2,zero
    cfec:	1000061e 	bne	r2,zero,d008 <alt_get_errno+0x3c>
    cff0:	00800074 	movhi	r2,1
    cff4:	10888904 	addi	r2,r2,8740
    cff8:	10800017 	ldw	r2,0(r2)
    cffc:	103ee83a 	callr	r2
    d000:	e0bfff15 	stw	r2,-4(fp)
    d004:	00000306 	br	d014 <alt_get_errno+0x48>
    d008:	00800074 	movhi	r2,1
    d00c:	108f7c04 	addi	r2,r2,15856
    d010:	e0bfff15 	stw	r2,-4(fp)
    d014:	e0bfff17 	ldw	r2,-4(fp)
}
    d018:	e037883a 	mov	sp,fp
    d01c:	dfc00117 	ldw	ra,4(sp)
    d020:	df000017 	ldw	fp,0(sp)
    d024:	dec00204 	addi	sp,sp,8
    d028:	f800283a 	ret

0000d02c <alt_irq_init>:
 * The "base" parameter is ignored and only
 * present for backwards-compatibility.
 */

void alt_irq_init ( const void* base )
{
    d02c:	defffd04 	addi	sp,sp,-12
    d030:	dfc00215 	stw	ra,8(sp)
    d034:	df000115 	stw	fp,4(sp)
    d038:	df000104 	addi	fp,sp,4
    d03c:	e13fff15 	stw	r4,-4(fp)
    ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor);
    d040:	000f8e00 	call	f8e0 <altera_nios2_qsys_irq_init>
 * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts.
 */
static ALT_INLINE void ALT_ALWAYS_INLINE 
       alt_irq_cpu_enable_interrupts ()
{
    NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK
    d044:	00800044 	movi	r2,1
    d048:	1001703a 	wrctl	status,r2
    alt_irq_cpu_enable_interrupts();
}
    d04c:	e037883a 	mov	sp,fp
    d050:	dfc00117 	ldw	ra,4(sp)
    d054:	df000017 	ldw	fp,0(sp)
    d058:	dec00204 	addi	sp,sp,8
    d05c:	f800283a 	ret

0000d060 <alt_sys_init>:
 * Initialize the non-interrupt controller devices.
 * Called after alt_irq_init().
 */

void alt_sys_init( void )
{
    d060:	defffe04 	addi	sp,sp,-8
    d064:	dfc00115 	stw	ra,4(sp)
    d068:	df000015 	stw	fp,0(sp)
    d06c:	d839883a 	mov	fp,sp
    ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart);
    d070:	01000074 	movhi	r4,1
    d074:	21042604 	addi	r4,r4,4248
    d078:	000b883a 	mov	r5,zero
    d07c:	01800144 	movi	r6,5
    d080:	000d23c0 	call	d23c <altera_avalon_jtag_uart_init>
    d084:	01000074 	movhi	r4,1
    d088:	21041c04 	addi	r4,r4,4208
    d08c:	000d0bc0 	call	d0bc <alt_dev_reg>
    ALTERA_AVALON_LCD_16207_INIT ( LCD_16207_0, lcd_16207_0);
    d090:	01000074 	movhi	r4,1
    d094:	21083e04 	addi	r4,r4,8440
    d098:	000e9e40 	call	e9e4 <altera_avalon_lcd_16207_init>
    d09c:	01000074 	movhi	r4,1
    d0a0:	21083404 	addi	r4,r4,8400
    d0a4:	000d0bc0 	call	d0bc <alt_dev_reg>
}
    d0a8:	e037883a 	mov	sp,fp
    d0ac:	dfc00117 	ldw	ra,4(sp)
    d0b0:	df000017 	ldw	fp,0(sp)
    d0b4:	dec00204 	addi	sp,sp,8
    d0b8:	f800283a 	ret

0000d0bc <alt_dev_reg>:
 */

extern int alt_fs_reg  (alt_dev* dev); 

static ALT_INLINE int alt_dev_reg (alt_dev* dev)
{
    d0bc:	defffd04 	addi	sp,sp,-12
    d0c0:	dfc00215 	stw	ra,8(sp)
    d0c4:	df000115 	stw	fp,4(sp)
    d0c8:	df000104 	addi	fp,sp,4
    d0cc:	e13fff15 	stw	r4,-4(fp)
  extern alt_llist alt_dev_list;

  return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list);
    d0d0:	e13fff17 	ldw	r4,-4(fp)
    d0d4:	01400074 	movhi	r5,1
    d0d8:	29488604 	addi	r5,r5,8728
    d0dc:	000ee440 	call	ee44 <alt_dev_llist_insert>
}
    d0e0:	e037883a 	mov	sp,fp
    d0e4:	dfc00117 	ldw	ra,4(sp)
    d0e8:	df000017 	ldw	fp,0(sp)
    d0ec:	dec00204 	addi	sp,sp,8
    d0f0:	f800283a 	ret

0000d0f4 <altera_avalon_jtag_uart_read_fd>:
 *
 */

int 
altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space)
{
    d0f4:	defffa04 	addi	sp,sp,-24
    d0f8:	dfc00515 	stw	ra,20(sp)
    d0fc:	df000415 	stw	fp,16(sp)
    d100:	df000404 	addi	fp,sp,16
    d104:	e13ffd15 	stw	r4,-12(fp)
    d108:	e17ffe15 	stw	r5,-8(fp)
    d10c:	e1bfff15 	stw	r6,-4(fp)
    altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; 
    d110:	e0bffd17 	ldw	r2,-12(fp)
    d114:	10800017 	ldw	r2,0(r2)
    d118:	e0bffc15 	stw	r2,-16(fp)

    return altera_avalon_jtag_uart_read(&dev->state, buffer, space,
    d11c:	e0bffc17 	ldw	r2,-16(fp)
    d120:	11000a04 	addi	r4,r2,40
    d124:	e0bffd17 	ldw	r2,-12(fp)
    d128:	11c00217 	ldw	r7,8(r2)
    d12c:	e17ffe17 	ldw	r5,-8(fp)
    d130:	e1bfff17 	ldw	r6,-4(fp)
    d134:	000d73c0 	call	d73c <altera_avalon_jtag_uart_read>
      fd->fd_flags);
}
    d138:	e037883a 	mov	sp,fp
    d13c:	dfc00117 	ldw	ra,4(sp)
    d140:	df000017 	ldw	fp,0(sp)
    d144:	dec00204 	addi	sp,sp,8
    d148:	f800283a 	ret

0000d14c <altera_avalon_jtag_uart_write_fd>:

int 
altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space)
{
    d14c:	defffa04 	addi	sp,sp,-24
    d150:	dfc00515 	stw	ra,20(sp)
    d154:	df000415 	stw	fp,16(sp)
    d158:	df000404 	addi	fp,sp,16
    d15c:	e13ffd15 	stw	r4,-12(fp)
    d160:	e17ffe15 	stw	r5,-8(fp)
    d164:	e1bfff15 	stw	r6,-4(fp)
    altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; 
    d168:	e0bffd17 	ldw	r2,-12(fp)
    d16c:	10800017 	ldw	r2,0(r2)
    d170:	e0bffc15 	stw	r2,-16(fp)

    return altera_avalon_jtag_uart_write(&dev->state, buffer, space,
    d174:	e0bffc17 	ldw	r2,-16(fp)
    d178:	11000a04 	addi	r4,r2,40
    d17c:	e0bffd17 	ldw	r2,-12(fp)
    d180:	11c00217 	ldw	r7,8(r2)
    d184:	e17ffe17 	ldw	r5,-8(fp)
    d188:	e1bfff17 	ldw	r6,-4(fp)
    d18c:	000d9600 	call	d960 <altera_avalon_jtag_uart_write>
      fd->fd_flags);
}
    d190:	e037883a 	mov	sp,fp
    d194:	dfc00117 	ldw	ra,4(sp)
    d198:	df000017 	ldw	fp,0(sp)
    d19c:	dec00204 	addi	sp,sp,8
    d1a0:	f800283a 	ret

0000d1a4 <altera_avalon_jtag_uart_close_fd>:

#ifndef ALTERA_AVALON_JTAG_UART_SMALL

int 
altera_avalon_jtag_uart_close_fd(alt_fd* fd)
{
    d1a4:	defffc04 	addi	sp,sp,-16
    d1a8:	dfc00315 	stw	ra,12(sp)
    d1ac:	df000215 	stw	fp,8(sp)
    d1b0:	df000204 	addi	fp,sp,8
    d1b4:	e13fff15 	stw	r4,-4(fp)
    altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; 
    d1b8:	e0bfff17 	ldw	r2,-4(fp)
    d1bc:	10800017 	ldw	r2,0(r2)
    d1c0:	e0bffe15 	stw	r2,-8(fp)

    return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags);
    d1c4:	e0bffe17 	ldw	r2,-8(fp)
    d1c8:	11000a04 	addi	r4,r2,40
    d1cc:	e0bfff17 	ldw	r2,-4(fp)
    d1d0:	11400217 	ldw	r5,8(r2)
    d1d4:	000d5d40 	call	d5d4 <altera_avalon_jtag_uart_close>
}
    d1d8:	e037883a 	mov	sp,fp
    d1dc:	dfc00117 	ldw	ra,4(sp)
    d1e0:	df000017 	ldw	fp,0(sp)
    d1e4:	dec00204 	addi	sp,sp,8
    d1e8:	f800283a 	ret

0000d1ec <altera_avalon_jtag_uart_ioctl_fd>:

int 
altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg)
{
    d1ec:	defffa04 	addi	sp,sp,-24
    d1f0:	dfc00515 	stw	ra,20(sp)
    d1f4:	df000415 	stw	fp,16(sp)
    d1f8:	df000404 	addi	fp,sp,16
    d1fc:	e13ffd15 	stw	r4,-12(fp)
    d200:	e17ffe15 	stw	r5,-8(fp)
    d204:	e1bfff15 	stw	r6,-4(fp)
    altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev;
    d208:	e0bffd17 	ldw	r2,-12(fp)
    d20c:	10800017 	ldw	r2,0(r2)
    d210:	e0bffc15 	stw	r2,-16(fp)

    return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg);
    d214:	e0bffc17 	ldw	r2,-16(fp)
    d218:	11000a04 	addi	r4,r2,40
    d21c:	e17ffe17 	ldw	r5,-8(fp)
    d220:	e1bfff17 	ldw	r6,-4(fp)
    d224:	000d6480 	call	d648 <altera_avalon_jtag_uart_ioctl>
}
    d228:	e037883a 	mov	sp,fp
    d22c:	dfc00117 	ldw	ra,4(sp)
    d230:	df000017 	ldw	fp,0(sp)
    d234:	dec00204 	addi	sp,sp,8
    d238:	f800283a 	ret

0000d23c <altera_avalon_jtag_uart_init>:
 * Return 1 on sucessful IRQ register and 0 on failure.
 */

void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, 
                                  int irq_controller_id, int irq)
{
    d23c:	defffa04 	addi	sp,sp,-24
    d240:	dfc00515 	stw	ra,20(sp)
    d244:	df000415 	stw	fp,16(sp)
    d248:	df000404 	addi	fp,sp,16
    d24c:	e13ffd15 	stw	r4,-12(fp)
    d250:	e17ffe15 	stw	r5,-8(fp)
    d254:	e1bfff15 	stw	r6,-4(fp)
  ALT_FLAG_CREATE(&sp->events, 0);
  ALT_SEM_CREATE(&sp->read_lock, 1);
  ALT_SEM_CREATE(&sp->write_lock, 1);

  /* enable read interrupts at the device */
  sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK;
    d258:	e0fffd17 	ldw	r3,-12(fp)
    d25c:	00800044 	movi	r2,1
    d260:	18800815 	stw	r2,32(r3)

  IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); 
    d264:	e0bffd17 	ldw	r2,-12(fp)
    d268:	10800017 	ldw	r2,0(r2)
    d26c:	11000104 	addi	r4,r2,4
    d270:	e0bffd17 	ldw	r2,-12(fp)
    d274:	10800817 	ldw	r2,32(r2)
    d278:	1007883a 	mov	r3,r2
    d27c:	2005883a 	mov	r2,r4
    d280:	10c00035 	stwio	r3,0(r2)
  
  /* register the interrupt handler */
#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT
  alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, 
    d284:	e13ffe17 	ldw	r4,-8(fp)
    d288:	e17fff17 	ldw	r5,-4(fp)
    d28c:	d8000015 	stw	zero,0(sp)
    d290:	01800074 	movhi	r6,1
    d294:	31b4bf04 	addi	r6,r6,-11524
    d298:	e1fffd17 	ldw	r7,-12(fp)
    d29c:	000f03c0 	call	f03c <alt_ic_isr_register>
#else
  alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq);
#endif  

  /* Register an alarm to go off every second to check for presence of host */
  sp->host_inactive = 0;
    d2a0:	e0bffd17 	ldw	r2,-12(fp)
    d2a4:	10000915 	stw	zero,36(r2)

  if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), 
    d2a8:	e0bffd17 	ldw	r2,-12(fp)
    d2ac:	11000204 	addi	r4,r2,8
 * Obtain the system clock rate in ticks/s. 
 */

static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void)
{
  return _alt_tick_rate;
    d2b0:	00800074 	movhi	r2,1
    d2b4:	108f8104 	addi	r2,r2,15876
    d2b8:	10800017 	ldw	r2,0(r2)
    d2bc:	100b883a 	mov	r5,r2
    d2c0:	01800074 	movhi	r6,1
    d2c4:	31b54904 	addi	r6,r6,-10972
    d2c8:	e1fffd17 	ldw	r7,-12(fp)
    d2cc:	000eb780 	call	eb78 <alt_alarm_start>
    d2d0:	1004403a 	cmpge	r2,r2,zero
    d2d4:	1000041e 	bne	r2,zero,d2e8 <altera_avalon_jtag_uart_init+0xac>
    &altera_avalon_jtag_uart_timeout, sp) < 0)
  {
    /* If we can't set the alarm then record "don't know if host present" 
     * and behave as though the host is present.
     */
    sp->timeout = INT_MAX;
    d2d8:	e0fffd17 	ldw	r3,-12(fp)
    d2dc:	00a00034 	movhi	r2,32768
    d2e0:	10bfffc4 	addi	r2,r2,-1
    d2e4:	18800115 	stw	r2,4(r3)
  }

  /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ 
  ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base);
}
    d2e8:	e037883a 	mov	sp,fp
    d2ec:	dfc00117 	ldw	ra,4(sp)
    d2f0:	df000017 	ldw	fp,0(sp)
    d2f4:	dec00204 	addi	sp,sp,8
    d2f8:	f800283a 	ret

0000d2fc <altera_avalon_jtag_uart_irq>:
#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT
static void altera_avalon_jtag_uart_irq(void* context)
#else
static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id)
#endif
{
    d2fc:	defff804 	addi	sp,sp,-32
    d300:	df000715 	stw	fp,28(sp)
    d304:	df000704 	addi	fp,sp,28
    d308:	e13fff15 	stw	r4,-4(fp)
  altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context;
    d30c:	e0bfff17 	ldw	r2,-4(fp)
    d310:	e0bffe15 	stw	r2,-8(fp)
  unsigned int base = sp->base;
    d314:	e0bffe17 	ldw	r2,-8(fp)
    d318:	10800017 	ldw	r2,0(r2)
    d31c:	e0bffd15 	stw	r2,-12(fp)
    d320:	00000006 	br	d324 <altera_avalon_jtag_uart_irq+0x28>
  /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ 
  ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp);

  for ( ; ; )
  {
    unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base);
    d324:	e0bffd17 	ldw	r2,-12(fp)
    d328:	10800104 	addi	r2,r2,4
    d32c:	10800037 	ldwio	r2,0(r2)
    d330:	e0bffc15 	stw	r2,-16(fp)

    /* Return once nothing more to do */
    if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0)
    d334:	e0bffc17 	ldw	r2,-16(fp)
    d338:	1080c00c 	andi	r2,r2,768
    d33c:	1005003a 	cmpeq	r2,r2,zero
    d340:	1000741e 	bne	r2,zero,d514 <altera_avalon_jtag_uart_irq+0x218>
      break;

    if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK)
    d344:	e0bffc17 	ldw	r2,-16(fp)
    d348:	1080400c 	andi	r2,r2,256
    d34c:	1005003a 	cmpeq	r2,r2,zero
    d350:	1000351e 	bne	r2,zero,d428 <altera_avalon_jtag_uart_irq+0x12c>
    {
      /* process a read irq.  Start by assuming that there is data in the
       * receive FIFO (otherwise why would we have been interrupted?)
       */
      unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST;
    d354:	00800074 	movhi	r2,1
    d358:	e0bffb15 	stw	r2,-20(fp)
      for ( ; ; )
      {
        /* Check whether there is space in the buffer.  If not then we must not
         * read any characters from the buffer as they will be lost.
         */
        unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN;
    d35c:	e0bffe17 	ldw	r2,-8(fp)
    d360:	10800a17 	ldw	r2,40(r2)
    d364:	10800044 	addi	r2,r2,1
    d368:	1081ffcc 	andi	r2,r2,2047
    d36c:	e0bffa15 	stw	r2,-24(fp)
        if (next == sp->rx_out)
    d370:	e0bffe17 	ldw	r2,-8(fp)
    d374:	10c00b17 	ldw	r3,44(r2)
    d378:	e0bffa17 	ldw	r2,-24(fp)
    d37c:	18801626 	beq	r3,r2,d3d8 <altera_avalon_jtag_uart_irq+0xdc>
          break;

        /* Try to remove a character from the FIFO and find out whether there
         * are any more characters remaining.
         */
        data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base);
    d380:	e0bffd17 	ldw	r2,-12(fp)
    d384:	10800037 	ldwio	r2,0(r2)
    d388:	e0bffb15 	stw	r2,-20(fp)
        
        if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0)
    d38c:	e0bffb17 	ldw	r2,-20(fp)
    d390:	10a0000c 	andi	r2,r2,32768
    d394:	1005003a 	cmpeq	r2,r2,zero
    d398:	10000f1e 	bne	r2,zero,d3d8 <altera_avalon_jtag_uart_irq+0xdc>
          break;

        sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST;
    d39c:	e0bffe17 	ldw	r2,-8(fp)
    d3a0:	10c00a17 	ldw	r3,40(r2)
    d3a4:	e0bffb17 	ldw	r2,-20(fp)
    d3a8:	1009883a 	mov	r4,r2
    d3ac:	e0bffe17 	ldw	r2,-8(fp)
    d3b0:	1885883a 	add	r2,r3,r2
    d3b4:	10800e04 	addi	r2,r2,56
    d3b8:	11000005 	stb	r4,0(r2)
        sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN;
    d3bc:	e0bffe17 	ldw	r2,-8(fp)
    d3c0:	10800a17 	ldw	r2,40(r2)
    d3c4:	10800044 	addi	r2,r2,1
    d3c8:	10c1ffcc 	andi	r3,r2,2047
    d3cc:	e0bffe17 	ldw	r2,-8(fp)
    d3d0:	10c00a15 	stw	r3,40(r2)

        /* Post an event to notify jtag_uart_read that a character has been read */
        ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET);
      }
    d3d4:	003fe106 	br	d35c <altera_avalon_jtag_uart_irq+0x60>

      if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK)
    d3d8:	e0bffb17 	ldw	r2,-20(fp)
    d3dc:	10bfffec 	andhi	r2,r2,65535
    d3e0:	1005003a 	cmpeq	r2,r2,zero
    d3e4:	1000101e 	bne	r2,zero,d428 <altera_avalon_jtag_uart_irq+0x12c>
      {
        /* If there is still data available here then the buffer is full 
         * so turn off receive interrupts until some space becomes available.
         */
        sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK;
    d3e8:	e0bffe17 	ldw	r2,-8(fp)
    d3ec:	10c00817 	ldw	r3,32(r2)
    d3f0:	00bfff84 	movi	r2,-2
    d3f4:	1886703a 	and	r3,r3,r2
    d3f8:	e0bffe17 	ldw	r2,-8(fp)
    d3fc:	10c00815 	stw	r3,32(r2)
        IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable);
    d400:	e0bffd17 	ldw	r2,-12(fp)
    d404:	11000104 	addi	r4,r2,4
    d408:	e0bffe17 	ldw	r2,-8(fp)
    d40c:	10800817 	ldw	r2,32(r2)
    d410:	1007883a 	mov	r3,r2
    d414:	2005883a 	mov	r2,r4
    d418:	10c00035 	stwio	r3,0(r2)
        
        /* Dummy read to ensure IRQ is cleared prior to ISR completion */
        IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base);
    d41c:	e0bffd17 	ldw	r2,-12(fp)
    d420:	10800104 	addi	r2,r2,4
    d424:	10800037 	ldwio	r2,0(r2)
      }
    }

    if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)
    d428:	e0bffc17 	ldw	r2,-16(fp)
    d42c:	1080800c 	andi	r2,r2,512
    d430:	1005003a 	cmpeq	r2,r2,zero
    d434:	103fbb1e 	bne	r2,zero,d324 <altera_avalon_jtag_uart_irq+0x28>
    {
      /* process a write irq */
      unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST;
    d438:	e0bffc17 	ldw	r2,-16(fp)
    d43c:	10bfffec 	andhi	r2,r2,65535
    d440:	1004d43a 	srli	r2,r2,16
    d444:	e0bff915 	stw	r2,-28(fp)

      while (space > 0 && sp->tx_out != sp->tx_in)
    d448:	00001506 	br	d4a0 <altera_avalon_jtag_uart_irq+0x1a4>
      {
        IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]);
    d44c:	e13ffd17 	ldw	r4,-12(fp)
    d450:	e0bffe17 	ldw	r2,-8(fp)
    d454:	10c00d17 	ldw	r3,52(r2)
    d458:	e0bffe17 	ldw	r2,-8(fp)
    d45c:	1885883a 	add	r2,r3,r2
    d460:	10820e04 	addi	r2,r2,2104
    d464:	10800003 	ldbu	r2,0(r2)
    d468:	10c03fcc 	andi	r3,r2,255
    d46c:	18c0201c 	xori	r3,r3,128
    d470:	18ffe004 	addi	r3,r3,-128
    d474:	2005883a 	mov	r2,r4
    d478:	10c00035 	stwio	r3,0(r2)

        sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN;
    d47c:	e0bffe17 	ldw	r2,-8(fp)
    d480:	10800d17 	ldw	r2,52(r2)
    d484:	10800044 	addi	r2,r2,1
    d488:	10c1ffcc 	andi	r3,r2,2047
    d48c:	e0bffe17 	ldw	r2,-8(fp)
    d490:	10c00d15 	stw	r3,52(r2)

        /* Post an event to notify jtag_uart_write that a character has been written */
        ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET);

        space--;
    d494:	e0bff917 	ldw	r2,-28(fp)
    d498:	10bfffc4 	addi	r2,r2,-1
    d49c:	e0bff915 	stw	r2,-28(fp)
    if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)
    {
      /* process a write irq */
      unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST;

      while (space > 0 && sp->tx_out != sp->tx_in)
    d4a0:	e0bff917 	ldw	r2,-28(fp)
    d4a4:	1005003a 	cmpeq	r2,r2,zero
    d4a8:	1000051e 	bne	r2,zero,d4c0 <altera_avalon_jtag_uart_irq+0x1c4>
    d4ac:	e0bffe17 	ldw	r2,-8(fp)
    d4b0:	10c00d17 	ldw	r3,52(r2)
    d4b4:	e0bffe17 	ldw	r2,-8(fp)
    d4b8:	10800c17 	ldw	r2,48(r2)
    d4bc:	18bfe31e 	bne	r3,r2,d44c <altera_avalon_jtag_uart_irq+0x150>
        ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET);

        space--;
      }

      if (space > 0)
    d4c0:	e0bff917 	ldw	r2,-28(fp)
    d4c4:	1005003a 	cmpeq	r2,r2,zero
    d4c8:	103f961e 	bne	r2,zero,d324 <altera_avalon_jtag_uart_irq+0x28>
      {
        /* If we don't have any more data available then turn off the TX interrupt */
        sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK;
    d4cc:	e0bffe17 	ldw	r2,-8(fp)
    d4d0:	10c00817 	ldw	r3,32(r2)
    d4d4:	00bfff44 	movi	r2,-3
    d4d8:	1886703a 	and	r3,r3,r2
    d4dc:	e0bffe17 	ldw	r2,-8(fp)
    d4e0:	10c00815 	stw	r3,32(r2)
        IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable);
    d4e4:	e0bffe17 	ldw	r2,-8(fp)
    d4e8:	10800017 	ldw	r2,0(r2)
    d4ec:	11000104 	addi	r4,r2,4
    d4f0:	e0bffe17 	ldw	r2,-8(fp)
    d4f4:	10800817 	ldw	r2,32(r2)
    d4f8:	1007883a 	mov	r3,r2
    d4fc:	2005883a 	mov	r2,r4
    d500:	10c00035 	stwio	r3,0(r2)
        
        /* Dummy read to ensure IRQ is cleared prior to ISR completion */
        IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base);
    d504:	e0bffd17 	ldw	r2,-12(fp)
    d508:	10800104 	addi	r2,r2,4
    d50c:	10800037 	ldwio	r2,0(r2)
      }
    }
  }
    d510:	003f8406 	br	d324 <altera_avalon_jtag_uart_irq+0x28>
}
    d514:	e037883a 	mov	sp,fp
    d518:	df000017 	ldw	fp,0(sp)
    d51c:	dec00104 	addi	sp,sp,4
    d520:	f800283a 	ret

0000d524 <altera_avalon_jtag_uart_timeout>:
 * Timeout routine is called every second
 */

static alt_u32 
altera_avalon_jtag_uart_timeout(void* context) 
{
    d524:	defffc04 	addi	sp,sp,-16
    d528:	df000315 	stw	fp,12(sp)
    d52c:	df000304 	addi	fp,sp,12
    d530:	e13fff15 	stw	r4,-4(fp)
  altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context;
    d534:	e0bfff17 	ldw	r2,-4(fp)
    d538:	e0bffe15 	stw	r2,-8(fp)

  unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base);
    d53c:	e0bffe17 	ldw	r2,-8(fp)
    d540:	10800017 	ldw	r2,0(r2)
    d544:	10800104 	addi	r2,r2,4
    d548:	10800037 	ldwio	r2,0(r2)
    d54c:	e0bffd15 	stw	r2,-12(fp)

  if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK)
    d550:	e0bffd17 	ldw	r2,-12(fp)
    d554:	1081000c 	andi	r2,r2,1024
    d558:	1005003a 	cmpeq	r2,r2,zero
    d55c:	10000c1e 	bne	r2,zero,d590 <altera_avalon_jtag_uart_timeout+0x6c>
  {
    IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK);
    d560:	e0bffe17 	ldw	r2,-8(fp)
    d564:	10800017 	ldw	r2,0(r2)
    d568:	11000104 	addi	r4,r2,4
    d56c:	e0bffe17 	ldw	r2,-8(fp)
    d570:	10800817 	ldw	r2,32(r2)
    d574:	10810014 	ori	r2,r2,1024
    d578:	1007883a 	mov	r3,r2
    d57c:	2005883a 	mov	r2,r4
    d580:	10c00035 	stwio	r3,0(r2)
    sp->host_inactive = 0;
    d584:	e0bffe17 	ldw	r2,-8(fp)
    d588:	10000915 	stw	zero,36(r2)
    d58c:	00000a06 	br	d5b8 <altera_avalon_jtag_uart_timeout+0x94>
  }
  else if (sp->host_inactive < INT_MAX - 2) {
    d590:	e0bffe17 	ldw	r2,-8(fp)
    d594:	10c00917 	ldw	r3,36(r2)
    d598:	00a00034 	movhi	r2,32768
    d59c:	10bfff04 	addi	r2,r2,-4
    d5a0:	10c00536 	bltu	r2,r3,d5b8 <altera_avalon_jtag_uart_timeout+0x94>
    sp->host_inactive++;
    d5a4:	e0bffe17 	ldw	r2,-8(fp)
    d5a8:	10800917 	ldw	r2,36(r2)
    d5ac:	10c00044 	addi	r3,r2,1
    d5b0:	e0bffe17 	ldw	r2,-8(fp)
    d5b4:	10c00915 	stw	r3,36(r2)
    d5b8:	00800074 	movhi	r2,1
    d5bc:	108f8104 	addi	r2,r2,15876
    d5c0:	10800017 	ldw	r2,0(r2)
      ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET);
    }
  }

  return alt_ticks_per_second();
}
    d5c4:	e037883a 	mov	sp,fp
    d5c8:	df000017 	ldw	fp,0(sp)
    d5cc:	dec00104 	addi	sp,sp,4
    d5d0:	f800283a 	ret

0000d5d4 <altera_avalon_jtag_uart_close>:
 * The close routine is not implemented for the small driver; instead it will
 * map to null. This is because the small driver simply waits while characters
 * are transmitted; there is no interrupt-serviced buffer to empty 
 */
int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags)
{
    d5d4:	defffc04 	addi	sp,sp,-16
    d5d8:	df000315 	stw	fp,12(sp)
    d5dc:	df000304 	addi	fp,sp,12
    d5e0:	e13ffd15 	stw	r4,-12(fp)
    d5e4:	e17ffe15 	stw	r5,-8(fp)
  /* 
   * Wait for all transmit data to be emptied by the JTAG UART ISR, or
   * for a host-inactivity timeout, in which case transmit data will be lost
   */
  while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) {
    d5e8:	00000706 	br	d608 <altera_avalon_jtag_uart_close+0x34>
    if (flags & O_NONBLOCK) {
    d5ec:	e0bffe17 	ldw	r2,-8(fp)
    d5f0:	1090000c 	andi	r2,r2,16384
    d5f4:	1005003a 	cmpeq	r2,r2,zero
    d5f8:	1000031e 	bne	r2,zero,d608 <altera_avalon_jtag_uart_close+0x34>
      return -EWOULDBLOCK; 
    d5fc:	00bffd44 	movi	r2,-11
    d600:	e0bfff15 	stw	r2,-4(fp)
    d604:	00000b06 	br	d634 <altera_avalon_jtag_uart_close+0x60>
{
  /* 
   * Wait for all transmit data to be emptied by the JTAG UART ISR, or
   * for a host-inactivity timeout, in which case transmit data will be lost
   */
  while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) {
    d608:	e0bffd17 	ldw	r2,-12(fp)
    d60c:	10c00d17 	ldw	r3,52(r2)
    d610:	e0bffd17 	ldw	r2,-12(fp)
    d614:	10800c17 	ldw	r2,48(r2)
    d618:	18800526 	beq	r3,r2,d630 <altera_avalon_jtag_uart_close+0x5c>
    d61c:	e0bffd17 	ldw	r2,-12(fp)
    d620:	10c00917 	ldw	r3,36(r2)
    d624:	e0bffd17 	ldw	r2,-12(fp)
    d628:	10800117 	ldw	r2,4(r2)
    d62c:	18bfef36 	bltu	r3,r2,d5ec <altera_avalon_jtag_uart_close+0x18>
    if (flags & O_NONBLOCK) {
      return -EWOULDBLOCK; 
    }
  }

  return 0;
    d630:	e03fff15 	stw	zero,-4(fp)
    d634:	e0bfff17 	ldw	r2,-4(fp)
}
    d638:	e037883a 	mov	sp,fp
    d63c:	df000017 	ldw	fp,0(sp)
    d640:	dec00104 	addi	sp,sp,4
    d644:	f800283a 	ret

0000d648 <altera_avalon_jtag_uart_ioctl>:
/* ----------------------------------------------------------- */

int 
altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req,
  void* arg)
{
    d648:	defff804 	addi	sp,sp,-32
    d64c:	df000715 	stw	fp,28(sp)
    d650:	df000704 	addi	fp,sp,28
    d654:	e13ffb15 	stw	r4,-20(fp)
    d658:	e17ffc15 	stw	r5,-16(fp)
    d65c:	e1bffd15 	stw	r6,-12(fp)
  int rc = -ENOTTY;
    d660:	00bff9c4 	movi	r2,-25
    d664:	e0bffa15 	stw	r2,-24(fp)

  switch (req)
    d668:	e0bffc17 	ldw	r2,-16(fp)
    d66c:	e0bfff15 	stw	r2,-4(fp)
    d670:	e0ffff17 	ldw	r3,-4(fp)
    d674:	189a8060 	cmpeqi	r2,r3,27137
    d678:	1000041e 	bne	r2,zero,d68c <altera_avalon_jtag_uart_ioctl+0x44>
    d67c:	e0ffff17 	ldw	r3,-4(fp)
    d680:	189a80a0 	cmpeqi	r2,r3,27138
    d684:	10001b1e 	bne	r2,zero,d6f4 <altera_avalon_jtag_uart_ioctl+0xac>
    d688:	00002706 	br	d728 <altera_avalon_jtag_uart_ioctl+0xe0>
  {
  case TIOCSTIMEOUT:
    /* Set the time to wait until assuming host is not connected */
    if (sp->timeout != INT_MAX)
    d68c:	e0bffb17 	ldw	r2,-20(fp)
    d690:	10c00117 	ldw	r3,4(r2)
    d694:	00a00034 	movhi	r2,32768
    d698:	10bfffc4 	addi	r2,r2,-1
    d69c:	18802226 	beq	r3,r2,d728 <altera_avalon_jtag_uart_ioctl+0xe0>
    {
      int timeout = *((int *)arg);
    d6a0:	e0bffd17 	ldw	r2,-12(fp)
    d6a4:	10800017 	ldw	r2,0(r2)
    d6a8:	e0bff915 	stw	r2,-28(fp)
      sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1;
    d6ac:	e0bff917 	ldw	r2,-28(fp)
    d6b0:	10800090 	cmplti	r2,r2,2
    d6b4:	1000071e 	bne	r2,zero,d6d4 <altera_avalon_jtag_uart_ioctl+0x8c>
    d6b8:	e0fff917 	ldw	r3,-28(fp)
    d6bc:	00a00034 	movhi	r2,32768
    d6c0:	10bfffc4 	addi	r2,r2,-1
    d6c4:	18800326 	beq	r3,r2,d6d4 <altera_avalon_jtag_uart_ioctl+0x8c>
    d6c8:	e0bff917 	ldw	r2,-28(fp)
    d6cc:	e0bffe15 	stw	r2,-8(fp)
    d6d0:	00000306 	br	d6e0 <altera_avalon_jtag_uart_ioctl+0x98>
    d6d4:	00e00034 	movhi	r3,32768
    d6d8:	18ffff84 	addi	r3,r3,-2
    d6dc:	e0fffe15 	stw	r3,-8(fp)
    d6e0:	e0bffb17 	ldw	r2,-20(fp)
    d6e4:	e0fffe17 	ldw	r3,-8(fp)
    d6e8:	10c00115 	stw	r3,4(r2)
      rc = 0;
    d6ec:	e03ffa15 	stw	zero,-24(fp)
    }
    break;
    d6f0:	00000d06 	br	d728 <altera_avalon_jtag_uart_ioctl+0xe0>

  case TIOCGCONNECTED:
    /* Find out whether host is connected */
    if (sp->timeout != INT_MAX)
    d6f4:	e0bffb17 	ldw	r2,-20(fp)
    d6f8:	10c00117 	ldw	r3,4(r2)
    d6fc:	00a00034 	movhi	r2,32768
    d700:	10bfffc4 	addi	r2,r2,-1
    d704:	18800826 	beq	r3,r2,d728 <altera_avalon_jtag_uart_ioctl+0xe0>
    {
      *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0;
    d708:	e13ffd17 	ldw	r4,-12(fp)
    d70c:	e0bffb17 	ldw	r2,-20(fp)
    d710:	10c00917 	ldw	r3,36(r2)
    d714:	e0bffb17 	ldw	r2,-20(fp)
    d718:	10800117 	ldw	r2,4(r2)
    d71c:	1885803a 	cmpltu	r2,r3,r2
    d720:	20800015 	stw	r2,0(r4)
      rc = 0;
    d724:	e03ffa15 	stw	zero,-24(fp)

  default:
    break;
  }

  return rc;
    d728:	e0bffa17 	ldw	r2,-24(fp)
}
    d72c:	e037883a 	mov	sp,fp
    d730:	df000017 	ldw	fp,0(sp)
    d734:	dec00104 	addi	sp,sp,4
    d738:	f800283a 	ret

0000d73c <altera_avalon_jtag_uart_read>:
/* ----------------------------------------------------------- */

int 
altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, 
  char * buffer, int space, int flags)
{
    d73c:	defff204 	addi	sp,sp,-56
    d740:	dfc00d15 	stw	ra,52(sp)
    d744:	df000c15 	stw	fp,48(sp)
    d748:	df000c04 	addi	fp,sp,48
    d74c:	e13ffb15 	stw	r4,-20(fp)
    d750:	e17ffc15 	stw	r5,-16(fp)
    d754:	e1bffd15 	stw	r6,-12(fp)
    d758:	e1fffe15 	stw	r7,-8(fp)
  char * ptr = buffer;
    d75c:	e0bffc17 	ldw	r2,-16(fp)
    d760:	e0bffa15 	stw	r2,-24(fp)
   * When running in a multi threaded environment, obtain the "read_lock"
   * semaphore. This ensures that reading from the device is thread-safe.
   */
  ALT_SEM_PEND (sp->read_lock, 0);

  while (space > 0)
    d764:	00004806 	br	d888 <altera_avalon_jtag_uart_read+0x14c>
    unsigned int in, out;

    /* Read as much data as possible */
    do
    {
      in  = sp->rx_in;
    d768:	e0bffb17 	ldw	r2,-20(fp)
    d76c:	10800a17 	ldw	r2,40(r2)
    d770:	e0bff715 	stw	r2,-36(fp)
      out = sp->rx_out;
    d774:	e0bffb17 	ldw	r2,-20(fp)
    d778:	10800b17 	ldw	r2,44(r2)
    d77c:	e0bff615 	stw	r2,-40(fp)

      if (in >= out)
    d780:	e0fff717 	ldw	r3,-36(fp)
    d784:	e0bff617 	ldw	r2,-40(fp)
    d788:	18800536 	bltu	r3,r2,d7a0 <altera_avalon_jtag_uart_read+0x64>
        n = in - out;
    d78c:	e0bff717 	ldw	r2,-36(fp)
    d790:	e0fff617 	ldw	r3,-40(fp)
    d794:	10c5c83a 	sub	r2,r2,r3
    d798:	e0bff815 	stw	r2,-32(fp)
    d79c:	00000406 	br	d7b0 <altera_avalon_jtag_uart_read+0x74>
      else
        n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out;
    d7a0:	00820004 	movi	r2,2048
    d7a4:	e0fff617 	ldw	r3,-40(fp)
    d7a8:	10c5c83a 	sub	r2,r2,r3
    d7ac:	e0bff815 	stw	r2,-32(fp)

      if (n == 0)
    d7b0:	e0bff817 	ldw	r2,-32(fp)
    d7b4:	1005003a 	cmpeq	r2,r2,zero
    d7b8:	10001f1e 	bne	r2,zero,d838 <altera_avalon_jtag_uart_read+0xfc>
        break; /* No more data available */

      if (n > space)
    d7bc:	e0fffd17 	ldw	r3,-12(fp)
    d7c0:	e0bff817 	ldw	r2,-32(fp)
    d7c4:	1880022e 	bgeu	r3,r2,d7d0 <altera_avalon_jtag_uart_read+0x94>
        n = space;
    d7c8:	e0bffd17 	ldw	r2,-12(fp)
    d7cc:	e0bff815 	stw	r2,-32(fp)

      memcpy(ptr, sp->rx_buf + out, n);
    d7d0:	e0bffb17 	ldw	r2,-20(fp)
    d7d4:	10c00e04 	addi	r3,r2,56
    d7d8:	e0bff617 	ldw	r2,-40(fp)
    d7dc:	1887883a 	add	r3,r3,r2
    d7e0:	e0bffa17 	ldw	r2,-24(fp)
    d7e4:	1009883a 	mov	r4,r2
    d7e8:	180b883a 	mov	r5,r3
    d7ec:	e1bff817 	ldw	r6,-32(fp)
    d7f0:	00080140 	call	8014 <memcpy>
      ptr   += n;
    d7f4:	e0fff817 	ldw	r3,-32(fp)
    d7f8:	e0bffa17 	ldw	r2,-24(fp)
    d7fc:	10c5883a 	add	r2,r2,r3
    d800:	e0bffa15 	stw	r2,-24(fp)
      space -= n;
    d804:	e0fffd17 	ldw	r3,-12(fp)
    d808:	e0bff817 	ldw	r2,-32(fp)
    d80c:	1885c83a 	sub	r2,r3,r2
    d810:	e0bffd15 	stw	r2,-12(fp)

      sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN;
    d814:	e0fff617 	ldw	r3,-40(fp)
    d818:	e0bff817 	ldw	r2,-32(fp)
    d81c:	1885883a 	add	r2,r3,r2
    d820:	10c1ffcc 	andi	r3,r2,2047
    d824:	e0bffb17 	ldw	r2,-20(fp)
    d828:	10c00b15 	stw	r3,44(r2)
    }
    while (space > 0);
    d82c:	e0bffd17 	ldw	r2,-12(fp)
    d830:	10800048 	cmpgei	r2,r2,1
    d834:	103fcc1e 	bne	r2,zero,d768 <altera_avalon_jtag_uart_read+0x2c>

    /* If we read any data then return it */
    if (ptr != buffer)
    d838:	e0fffa17 	ldw	r3,-24(fp)
    d83c:	e0bffc17 	ldw	r2,-16(fp)
    d840:	1880141e 	bne	r3,r2,d894 <altera_avalon_jtag_uart_read+0x158>
      break;

    /* If in non-blocking mode then return error */
    if (flags & O_NONBLOCK)
    d844:	e0bffe17 	ldw	r2,-8(fp)
    d848:	1090000c 	andi	r2,r2,16384
    d84c:	1004c03a 	cmpne	r2,r2,zero
    d850:	1000101e 	bne	r2,zero,d894 <altera_avalon_jtag_uart_read+0x158>
      while (in == sp->rx_in && sp->host_inactive < sp->timeout)
        ;
    }
#else
    /* No OS: Always spin */
    while (in == sp->rx_in && sp->host_inactive < sp->timeout)
    d854:	e0bffb17 	ldw	r2,-20(fp)
    d858:	10c00a17 	ldw	r3,40(r2)
    d85c:	e0bff717 	ldw	r2,-36(fp)
    d860:	1880051e 	bne	r3,r2,d878 <altera_avalon_jtag_uart_read+0x13c>
    d864:	e0bffb17 	ldw	r2,-20(fp)
    d868:	10c00917 	ldw	r3,36(r2)
    d86c:	e0bffb17 	ldw	r2,-20(fp)
    d870:	10800117 	ldw	r2,4(r2)
    d874:	18bff736 	bltu	r3,r2,d854 <altera_avalon_jtag_uart_read+0x118>
      ;
#endif /* __ucosii__ */

    if (in == sp->rx_in)
    d878:	e0bffb17 	ldw	r2,-20(fp)
    d87c:	10c00a17 	ldw	r3,40(r2)
    d880:	e0bff717 	ldw	r2,-36(fp)
    d884:	18800326 	beq	r3,r2,d894 <altera_avalon_jtag_uart_read+0x158>
   * When running in a multi threaded environment, obtain the "read_lock"
   * semaphore. This ensures that reading from the device is thread-safe.
   */
  ALT_SEM_PEND (sp->read_lock, 0);

  while (space > 0)
    d888:	e0bffd17 	ldw	r2,-12(fp)
    d88c:	10800048 	cmpgei	r2,r2,1
    d890:	103fb51e 	bne	r2,zero,d768 <altera_avalon_jtag_uart_read+0x2c>
   * semaphore so that other threads can access the buffer.
   */

  ALT_SEM_POST (sp->read_lock);

  if (ptr != buffer)
    d894:	e0fffa17 	ldw	r3,-24(fp)
    d898:	e0bffc17 	ldw	r2,-16(fp)
    d89c:	18801926 	beq	r3,r2,d904 <altera_avalon_jtag_uart_read+0x1c8>
static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE 
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
    d8a0:	0005303a 	rdctl	r2,status
    d8a4:	e0bff515 	stw	r2,-44(fp)

  NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK);
    d8a8:	e0fff517 	ldw	r3,-44(fp)
    d8ac:	00bfff84 	movi	r2,-2
    d8b0:	1884703a 	and	r2,r3,r2
    d8b4:	1001703a 	wrctl	status,r2
  
  return context;
    d8b8:	e0bff517 	ldw	r2,-44(fp)
  {
    /* If we read any data then there is space in the buffer so enable interrupts */
    context = alt_irq_disable_all();
    d8bc:	e0bff915 	stw	r2,-28(fp)
    sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK;
    d8c0:	e0bffb17 	ldw	r2,-20(fp)
    d8c4:	10800817 	ldw	r2,32(r2)
    d8c8:	10c00054 	ori	r3,r2,1
    d8cc:	e0bffb17 	ldw	r2,-20(fp)
    d8d0:	10c00815 	stw	r3,32(r2)
    IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable);
    d8d4:	e0bffb17 	ldw	r2,-20(fp)
    d8d8:	10800017 	ldw	r2,0(r2)
    d8dc:	11000104 	addi	r4,r2,4
    d8e0:	e0bffb17 	ldw	r2,-20(fp)
    d8e4:	10800817 	ldw	r2,32(r2)
    d8e8:	1007883a 	mov	r3,r2
    d8ec:	2005883a 	mov	r2,r4
    d8f0:	10c00035 	stwio	r3,0(r2)
    d8f4:	e0bff917 	ldw	r2,-28(fp)
    d8f8:	e0bff415 	stw	r2,-48(fp)
  status &= ~NIOS2_STATUS_PIE_MSK;
  status |= (context & NIOS2_STATUS_PIE_MSK);
  
  NIOS2_WRITE_STATUS (status);
#else
  NIOS2_WRITE_STATUS (context);
    d8fc:	e0bff417 	ldw	r2,-48(fp)
    d900:	1001703a 	wrctl	status,r2
    alt_irq_enable_all(context);
  }

  if (ptr != buffer)
    d904:	e0fffa17 	ldw	r3,-24(fp)
    d908:	e0bffc17 	ldw	r2,-16(fp)
    d90c:	18800526 	beq	r3,r2,d924 <altera_avalon_jtag_uart_read+0x1e8>
    return ptr - buffer;
    d910:	e0fffa17 	ldw	r3,-24(fp)
    d914:	e0bffc17 	ldw	r2,-16(fp)
    d918:	1887c83a 	sub	r3,r3,r2
    d91c:	e0ffff15 	stw	r3,-4(fp)
    d920:	00000906 	br	d948 <altera_avalon_jtag_uart_read+0x20c>
  else if (flags & O_NONBLOCK)
    d924:	e0bffe17 	ldw	r2,-8(fp)
    d928:	1090000c 	andi	r2,r2,16384
    d92c:	1005003a 	cmpeq	r2,r2,zero
    d930:	1000031e 	bne	r2,zero,d940 <altera_avalon_jtag_uart_read+0x204>
    return -EWOULDBLOCK;
    d934:	00bffd44 	movi	r2,-11
    d938:	e0bfff15 	stw	r2,-4(fp)
    d93c:	00000206 	br	d948 <altera_avalon_jtag_uart_read+0x20c>
  else
    return -EIO;
    d940:	00bffec4 	movi	r2,-5
    d944:	e0bfff15 	stw	r2,-4(fp)
    d948:	e0bfff17 	ldw	r2,-4(fp)
}
    d94c:	e037883a 	mov	sp,fp
    d950:	dfc00117 	ldw	ra,4(sp)
    d954:	df000017 	ldw	fp,0(sp)
    d958:	dec00204 	addi	sp,sp,8
    d95c:	f800283a 	ret

0000d960 <altera_avalon_jtag_uart_write>:
/* ----------------------------------------------------------- */

int 
altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, 
  const char * ptr, int count, int flags)
{
    d960:	defff204 	addi	sp,sp,-56
    d964:	dfc00d15 	stw	ra,52(sp)
    d968:	df000c15 	stw	fp,48(sp)
    d96c:	df000c04 	addi	fp,sp,48
    d970:	e13ffb15 	stw	r4,-20(fp)
    d974:	e17ffc15 	stw	r5,-16(fp)
    d978:	e1bffd15 	stw	r6,-12(fp)
    d97c:	e1fffe15 	stw	r7,-8(fp)
  /* Remove warning at optimisation level 03 by seting out to 0 */
  unsigned int in, out=0;
    d980:	e03ff915 	stw	zero,-28(fp)
  unsigned int n;
  alt_irq_context context;

  const char * start = ptr;
    d984:	e0bffc17 	ldw	r2,-16(fp)
    d988:	e0bff615 	stw	r2,-40(fp)
  ALT_SEM_PEND (sp->write_lock, 0);

  do
  {
    /* Copy as much as we can into the transmit buffer */
    while (count > 0)
    d98c:	00003a06 	br	da78 <altera_avalon_jtag_uart_write+0x118>
    {
      /* We need a stable value of the out pointer to calculate the space available */
      in  = sp->tx_in;
    d990:	e0bffb17 	ldw	r2,-20(fp)
    d994:	10800c17 	ldw	r2,48(r2)
    d998:	e0bffa15 	stw	r2,-24(fp)
      out = sp->tx_out;
    d99c:	e0bffb17 	ldw	r2,-20(fp)
    d9a0:	10800d17 	ldw	r2,52(r2)
    d9a4:	e0bff915 	stw	r2,-28(fp)

      if (in < out)
    d9a8:	e0fffa17 	ldw	r3,-24(fp)
    d9ac:	e0bff917 	ldw	r2,-28(fp)
    d9b0:	1880062e 	bgeu	r3,r2,d9cc <altera_avalon_jtag_uart_write+0x6c>
        n = out - 1 - in;
    d9b4:	e0fff917 	ldw	r3,-28(fp)
    d9b8:	e0bffa17 	ldw	r2,-24(fp)
    d9bc:	1885c83a 	sub	r2,r3,r2
    d9c0:	10bfffc4 	addi	r2,r2,-1
    d9c4:	e0bff815 	stw	r2,-32(fp)
    d9c8:	00000c06 	br	d9fc <altera_avalon_jtag_uart_write+0x9c>
      else if (out > 0)
    d9cc:	e0bff917 	ldw	r2,-28(fp)
    d9d0:	1005003a 	cmpeq	r2,r2,zero
    d9d4:	1000051e 	bne	r2,zero,d9ec <altera_avalon_jtag_uart_write+0x8c>
        n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in;
    d9d8:	00820004 	movi	r2,2048
    d9dc:	e0fffa17 	ldw	r3,-24(fp)
    d9e0:	10c5c83a 	sub	r2,r2,r3
    d9e4:	e0bff815 	stw	r2,-32(fp)
    d9e8:	00000406 	br	d9fc <altera_avalon_jtag_uart_write+0x9c>
      else
        n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in;
    d9ec:	0081ffc4 	movi	r2,2047
    d9f0:	e0fffa17 	ldw	r3,-24(fp)
    d9f4:	10c5c83a 	sub	r2,r2,r3
    d9f8:	e0bff815 	stw	r2,-32(fp)

      if (n == 0)
    d9fc:	e0bff817 	ldw	r2,-32(fp)
    da00:	1005003a 	cmpeq	r2,r2,zero
    da04:	10001f1e 	bne	r2,zero,da84 <altera_avalon_jtag_uart_write+0x124>
        break;

      if (n > count)
    da08:	e0fffd17 	ldw	r3,-12(fp)
    da0c:	e0bff817 	ldw	r2,-32(fp)
    da10:	1880022e 	bgeu	r3,r2,da1c <altera_avalon_jtag_uart_write+0xbc>
        n = count;
    da14:	e0bffd17 	ldw	r2,-12(fp)
    da18:	e0bff815 	stw	r2,-32(fp)

      memcpy(sp->tx_buf + in, ptr, n);
    da1c:	e0bffb17 	ldw	r2,-20(fp)
    da20:	10c20e04 	addi	r3,r2,2104
    da24:	e0bffa17 	ldw	r2,-24(fp)
    da28:	1885883a 	add	r2,r3,r2
    da2c:	e0fffc17 	ldw	r3,-16(fp)
    da30:	1009883a 	mov	r4,r2
    da34:	180b883a 	mov	r5,r3
    da38:	e1bff817 	ldw	r6,-32(fp)
    da3c:	00080140 	call	8014 <memcpy>
      ptr   += n;
    da40:	e0fff817 	ldw	r3,-32(fp)
    da44:	e0bffc17 	ldw	r2,-16(fp)
    da48:	10c5883a 	add	r2,r2,r3
    da4c:	e0bffc15 	stw	r2,-16(fp)
      count -= n;
    da50:	e0fffd17 	ldw	r3,-12(fp)
    da54:	e0bff817 	ldw	r2,-32(fp)
    da58:	1885c83a 	sub	r2,r3,r2
    da5c:	e0bffd15 	stw	r2,-12(fp)

      sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN;
    da60:	e0fffa17 	ldw	r3,-24(fp)
    da64:	e0bff817 	ldw	r2,-32(fp)
    da68:	1885883a 	add	r2,r3,r2
    da6c:	10c1ffcc 	andi	r3,r2,2047
    da70:	e0bffb17 	ldw	r2,-20(fp)
    da74:	10c00c15 	stw	r3,48(r2)
  ALT_SEM_PEND (sp->write_lock, 0);

  do
  {
    /* Copy as much as we can into the transmit buffer */
    while (count > 0)
    da78:	e0bffd17 	ldw	r2,-12(fp)
    da7c:	10800048 	cmpgei	r2,r2,1
    da80:	103fc31e 	bne	r2,zero,d990 <altera_avalon_jtag_uart_write+0x30>
static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE 
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
    da84:	0005303a 	rdctl	r2,status
    da88:	e0bff515 	stw	r2,-44(fp)

  NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK);
    da8c:	e0fff517 	ldw	r3,-44(fp)
    da90:	00bfff84 	movi	r2,-2
    da94:	1884703a 	and	r2,r3,r2
    da98:	1001703a 	wrctl	status,r2
  
  return context;
    da9c:	e0bff517 	ldw	r2,-44(fp)
     * to enable interrupts if there is no space left in the FIFO
     *
     * For now kick the interrupt routine every time to make it transmit 
     * the data 
     */
    context = alt_irq_disable_all();
    daa0:	e0bff715 	stw	r2,-36(fp)
    sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK;
    daa4:	e0bffb17 	ldw	r2,-20(fp)
    daa8:	10800817 	ldw	r2,32(r2)
    daac:	10c00094 	ori	r3,r2,2
    dab0:	e0bffb17 	ldw	r2,-20(fp)
    dab4:	10c00815 	stw	r3,32(r2)
    IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable);
    dab8:	e0bffb17 	ldw	r2,-20(fp)
    dabc:	10800017 	ldw	r2,0(r2)
    dac0:	11000104 	addi	r4,r2,4
    dac4:	e0bffb17 	ldw	r2,-20(fp)
    dac8:	10800817 	ldw	r2,32(r2)
    dacc:	1007883a 	mov	r3,r2
    dad0:	2005883a 	mov	r2,r4
    dad4:	10c00035 	stwio	r3,0(r2)
    dad8:	e0bff717 	ldw	r2,-36(fp)
    dadc:	e0bff415 	stw	r2,-48(fp)
  status &= ~NIOS2_STATUS_PIE_MSK;
  status |= (context & NIOS2_STATUS_PIE_MSK);
  
  NIOS2_WRITE_STATUS (status);
#else
  NIOS2_WRITE_STATUS (context);
    dae0:	e0bff417 	ldw	r2,-48(fp)
    dae4:	1001703a 	wrctl	status,r2
    /* 
     * If there is any data left then either return now or block until 
     * some has been sent 
     */
    /* consider: test whether there is anything there while doing this and delay for at most 2s. */
    if (count > 0)
    dae8:	e0bffd17 	ldw	r2,-12(fp)
    daec:	10800050 	cmplti	r2,r2,1
    daf0:	1000111e 	bne	r2,zero,db38 <altera_avalon_jtag_uart_write+0x1d8>
    {
      if (flags & O_NONBLOCK)
    daf4:	e0bffe17 	ldw	r2,-8(fp)
    daf8:	1090000c 	andi	r2,r2,16384
    dafc:	1004c03a 	cmpne	r2,r2,zero
    db00:	1000101e 	bne	r2,zero,db44 <altera_avalon_jtag_uart_write+0x1e4>
      /*
       * No OS present: Always wait for data to be removed from buffer.  Once
       * the interrupt routine has removed some data then we will be able to
       * insert some more.
       */
      while (out == sp->tx_out && sp->host_inactive < sp->timeout)
    db04:	e0bffb17 	ldw	r2,-20(fp)
    db08:	10c00d17 	ldw	r3,52(r2)
    db0c:	e0bff917 	ldw	r2,-28(fp)
    db10:	1880051e 	bne	r3,r2,db28 <altera_avalon_jtag_uart_write+0x1c8>
    db14:	e0bffb17 	ldw	r2,-20(fp)
    db18:	10c00917 	ldw	r3,36(r2)
    db1c:	e0bffb17 	ldw	r2,-20(fp)
    db20:	10800117 	ldw	r2,4(r2)
    db24:	18bff736 	bltu	r3,r2,db04 <altera_avalon_jtag_uart_write+0x1a4>
        ;
#endif /* __ucosii__ */

      if (out == sp->tx_out)
    db28:	e0bffb17 	ldw	r2,-20(fp)
    db2c:	10c00d17 	ldw	r3,52(r2)
    db30:	e0bff917 	ldw	r2,-28(fp)
    db34:	18800326 	beq	r3,r2,db44 <altera_avalon_jtag_uart_write+0x1e4>
         break;
    }
  }
  while (count > 0);
    db38:	e0bffd17 	ldw	r2,-12(fp)
    db3c:	10800048 	cmpgei	r2,r2,1
    db40:	103fcd1e 	bne	r2,zero,da78 <altera_avalon_jtag_uart_write+0x118>
   * Now that access to the circular buffer is complete, release the write
   * semaphore so that other threads can access the buffer.
   */
  ALT_SEM_POST (sp->write_lock);

  if (ptr != start)
    db44:	e0fffc17 	ldw	r3,-16(fp)
    db48:	e0bff617 	ldw	r2,-40(fp)
    db4c:	18800526 	beq	r3,r2,db64 <altera_avalon_jtag_uart_write+0x204>
    return ptr - start;
    db50:	e0fffc17 	ldw	r3,-16(fp)
    db54:	e0bff617 	ldw	r2,-40(fp)
    db58:	1887c83a 	sub	r3,r3,r2
    db5c:	e0ffff15 	stw	r3,-4(fp)
    db60:	00000906 	br	db88 <altera_avalon_jtag_uart_write+0x228>
  else if (flags & O_NONBLOCK)
    db64:	e0bffe17 	ldw	r2,-8(fp)
    db68:	1090000c 	andi	r2,r2,16384
    db6c:	1005003a 	cmpeq	r2,r2,zero
    db70:	1000031e 	bne	r2,zero,db80 <altera_avalon_jtag_uart_write+0x220>
    return -EWOULDBLOCK;
    db74:	00bffd44 	movi	r2,-11
    db78:	e0bfff15 	stw	r2,-4(fp)
    db7c:	00000206 	br	db88 <altera_avalon_jtag_uart_write+0x228>
    sp->tx_out = sp->tx_in = 0;
    return ptr - start + count;
  }
#endif
  else
    return -EIO; /* Host not connected */
    db80:	00bffec4 	movi	r2,-5
    db84:	e0bfff15 	stw	r2,-4(fp)
    db88:	e0bfff17 	ldw	r2,-4(fp)
}
    db8c:	e037883a 	mov	sp,fp
    db90:	dfc00117 	ldw	ra,4(sp)
    db94:	df000017 	ldw	fp,0(sp)
    db98:	dec00204 	addi	sp,sp,8
    db9c:	f800283a 	ret

0000dba0 <lcd_write_command>:

/* --------------------------------------------------------------------- */

static void lcd_write_command(altera_avalon_lcd_16207_state* sp, 
  unsigned char command)
{
    dba0:	defffa04 	addi	sp,sp,-24
    dba4:	dfc00515 	stw	ra,20(sp)
    dba8:	df000415 	stw	fp,16(sp)
    dbac:	df000404 	addi	fp,sp,16
    dbb0:	e13ffe15 	stw	r4,-8(fp)
    dbb4:	e17fff05 	stb	r5,-4(fp)
  unsigned int base = sp->base;
    dbb8:	e0bffe17 	ldw	r2,-8(fp)
    dbbc:	10800017 	ldw	r2,0(r2)
    dbc0:	e0bffd15 	stw	r2,-12(fp)
  /* We impose a timeout on the driver in case the LCD panel isn't connected.
   * The first time we call this function the timeout is approx 25ms 
   * (assuming 5 cycles per loop and a 200MHz clock).  Obviously systems
   * with slower clocks, or debug builds, or slower memory will take longer.
   */
  int i = 1000000;
    dbc4:	008003f4 	movhi	r2,15
    dbc8:	10909004 	addi	r2,r2,16960
    dbcc:	e0bffc15 	stw	r2,-16(fp)

  /* Don't bother if the LCD panel didn't work before */
  if (sp->broken)
    dbd0:	e0bffe17 	ldw	r2,-8(fp)
    dbd4:	10800803 	ldbu	r2,32(r2)
    dbd8:	10803fcc 	andi	r2,r2,255
    dbdc:	1080201c 	xori	r2,r2,128
    dbe0:	10bfe004 	addi	r2,r2,-128
    dbe4:	1004c03a 	cmpne	r2,r2,zero
    dbe8:	1000161e 	bne	r2,zero,dc44 <lcd_write_command+0xa4>
    return;

  /* Wait until LCD isn't busy. */
  while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK)
    dbec:	00000a06 	br	dc18 <lcd_write_command+0x78>
    if (--i == 0)
    dbf0:	e0bffc17 	ldw	r2,-16(fp)
    dbf4:	10bfffc4 	addi	r2,r2,-1
    dbf8:	e0bffc15 	stw	r2,-16(fp)
    dbfc:	e0bffc17 	ldw	r2,-16(fp)
    dc00:	1004c03a 	cmpne	r2,r2,zero
    dc04:	1000041e 	bne	r2,zero,dc18 <lcd_write_command+0x78>
    {
      sp->broken = 1;
    dc08:	e0fffe17 	ldw	r3,-8(fp)
    dc0c:	00800044 	movi	r2,1
    dc10:	18800805 	stb	r2,32(r3)
      return;
    dc14:	00000b06 	br	dc44 <lcd_write_command+0xa4>
  /* Don't bother if the LCD panel didn't work before */
  if (sp->broken)
    return;

  /* Wait until LCD isn't busy. */
  while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK)
    dc18:	e0bffd17 	ldw	r2,-12(fp)
    dc1c:	10800104 	addi	r2,r2,4
    dc20:	10800037 	ldwio	r2,0(r2)
    dc24:	1080200c 	andi	r2,r2,128
    dc28:	1004c03a 	cmpne	r2,r2,zero
    dc2c:	103ff01e 	bne	r2,zero,dbf0 <lcd_write_command+0x50>
    }

  /* Despite what it says in the datasheet, the LCD isn't ready to accept
   * a write immediately after it returns BUSY=0.  Wait for 100us more.
   */
  usleep(100);
    dc30:	01001904 	movi	r4,100
    dc34:	000ce780 	call	ce78 <usleep>

  IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, command);
    dc38:	e0bffd17 	ldw	r2,-12(fp)
    dc3c:	e0ffff03 	ldbu	r3,-4(fp)
    dc40:	10c00035 	stwio	r3,0(r2)
}
    dc44:	e037883a 	mov	sp,fp
    dc48:	dfc00117 	ldw	ra,4(sp)
    dc4c:	df000017 	ldw	fp,0(sp)
    dc50:	dec00204 	addi	sp,sp,8
    dc54:	f800283a 	ret

0000dc58 <lcd_write_data>:

/* --------------------------------------------------------------------- */

static void lcd_write_data(altera_avalon_lcd_16207_state* sp, 
  unsigned char data)
{
    dc58:	defffa04 	addi	sp,sp,-24
    dc5c:	dfc00515 	stw	ra,20(sp)
    dc60:	df000415 	stw	fp,16(sp)
    dc64:	df000404 	addi	fp,sp,16
    dc68:	e13ffe15 	stw	r4,-8(fp)
    dc6c:	e17fff05 	stb	r5,-4(fp)
  unsigned int base = sp->base;
    dc70:	e0bffe17 	ldw	r2,-8(fp)
    dc74:	10800017 	ldw	r2,0(r2)
    dc78:	e0bffd15 	stw	r2,-12(fp)
  /* We impose a timeout on the driver in case the LCD panel isn't connected.
   * The first time we call this function the timeout is approx 25ms 
   * (assuming 5 cycles per loop and a 200MHz clock).  Obviously systems
   * with slower clocks, or debug builds, or slower memory will take longer.
   */
  int i = 1000000;
    dc7c:	008003f4 	movhi	r2,15
    dc80:	10909004 	addi	r2,r2,16960
    dc84:	e0bffc15 	stw	r2,-16(fp)

  /* Don't bother if the LCD panel didn't work before */
  if (sp->broken)
    dc88:	e0bffe17 	ldw	r2,-8(fp)
    dc8c:	10800803 	ldbu	r2,32(r2)
    dc90:	10803fcc 	andi	r2,r2,255
    dc94:	1080201c 	xori	r2,r2,128
    dc98:	10bfe004 	addi	r2,r2,-128
    dc9c:	1004c03a 	cmpne	r2,r2,zero
    dca0:	10001d1e 	bne	r2,zero,dd18 <lcd_write_data+0xc0>
    return;

  /* Wait until LCD isn't busy. */
  while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK)
    dca4:	00000a06 	br	dcd0 <lcd_write_data+0x78>
    if (--i == 0)
    dca8:	e0bffc17 	ldw	r2,-16(fp)
    dcac:	10bfffc4 	addi	r2,r2,-1
    dcb0:	e0bffc15 	stw	r2,-16(fp)
    dcb4:	e0bffc17 	ldw	r2,-16(fp)
    dcb8:	1004c03a 	cmpne	r2,r2,zero
    dcbc:	1000041e 	bne	r2,zero,dcd0 <lcd_write_data+0x78>
    {
      sp->broken = 1;
    dcc0:	e0fffe17 	ldw	r3,-8(fp)
    dcc4:	00800044 	movi	r2,1
    dcc8:	18800805 	stb	r2,32(r3)
      return;
    dccc:	00001206 	br	dd18 <lcd_write_data+0xc0>
  /* Don't bother if the LCD panel didn't work before */
  if (sp->broken)
    return;

  /* Wait until LCD isn't busy. */
  while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK)
    dcd0:	e0bffd17 	ldw	r2,-12(fp)
    dcd4:	10800104 	addi	r2,r2,4
    dcd8:	10800037 	ldwio	r2,0(r2)
    dcdc:	1080200c 	andi	r2,r2,128
    dce0:	1004c03a 	cmpne	r2,r2,zero
    dce4:	103ff01e 	bne	r2,zero,dca8 <lcd_write_data+0x50>
    }

  /* Despite what it says in the datasheet, the LCD isn't ready to accept
   * a write immediately after it returns BUSY=0.  Wait for 100us more.
   */
  usleep(100);
    dce8:	01001904 	movi	r4,100
    dcec:	000ce780 	call	ce78 <usleep>

  IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data);
    dcf0:	e0bffd17 	ldw	r2,-12(fp)
    dcf4:	10800204 	addi	r2,r2,8
    dcf8:	e0ffff03 	ldbu	r3,-4(fp)
    dcfc:	10c00035 	stwio	r3,0(r2)

  sp->address++;
    dd00:	e0bffe17 	ldw	r2,-8(fp)
    dd04:	108008c3 	ldbu	r2,35(r2)
    dd08:	10800044 	addi	r2,r2,1
    dd0c:	1007883a 	mov	r3,r2
    dd10:	e0bffe17 	ldw	r2,-8(fp)
    dd14:	10c008c5 	stb	r3,35(r2)
}
    dd18:	e037883a 	mov	sp,fp
    dd1c:	dfc00117 	ldw	ra,4(sp)
    dd20:	df000017 	ldw	fp,0(sp)
    dd24:	dec00204 	addi	sp,sp,8
    dd28:	f800283a 	ret

0000dd2c <lcd_clear_screen>:

/* --------------------------------------------------------------------- */

static void lcd_clear_screen(altera_avalon_lcd_16207_state* sp)
{
    dd2c:	defffb04 	addi	sp,sp,-20
    dd30:	dfc00415 	stw	ra,16(sp)
    dd34:	df000315 	stw	fp,12(sp)
    dd38:	dc000215 	stw	r16,8(sp)
    dd3c:	df000204 	addi	fp,sp,8
    dd40:	e13fff15 	stw	r4,-4(fp)
  int y;

  lcd_write_command(sp, LCD_CMD_CLEAR);
    dd44:	e13fff17 	ldw	r4,-4(fp)
    dd48:	01400044 	movi	r5,1
    dd4c:	000dba00 	call	dba0 <lcd_write_command>

  sp->x = 0;
    dd50:	e0bfff17 	ldw	r2,-4(fp)
    dd54:	10000845 	stb	zero,33(r2)
  sp->y = 0;
    dd58:	e0bfff17 	ldw	r2,-4(fp)
    dd5c:	10000885 	stb	zero,34(r2)
  sp->address = 0;
    dd60:	e0bfff17 	ldw	r2,-4(fp)
    dd64:	100008c5 	stb	zero,35(r2)

  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
    dd68:	e03ffe15 	stw	zero,-8(fp)
    dd6c:	00001c06 	br	dde0 <lcd_clear_screen+0xb4>
  {
    memset(sp->line[y].data, ' ', sizeof(sp->line[0].data));
    dd70:	e13ffe17 	ldw	r4,-8(fp)
    dd74:	014018c4 	movi	r5,99
    dd78:	0002c240 	call	2c24 <__mulsi3>
    dd7c:	10c01004 	addi	r3,r2,64
    dd80:	e0bfff17 	ldw	r2,-4(fp)
    dd84:	1889883a 	add	r4,r3,r2
    dd88:	01400804 	movi	r5,32
    dd8c:	01801444 	movi	r6,81
    dd90:	00081940 	call	8194 <memset>
    memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible));
    dd94:	e13ffe17 	ldw	r4,-8(fp)
    dd98:	014018c4 	movi	r5,99
    dd9c:	0002c240 	call	2c24 <__mulsi3>
    dda0:	10c00c04 	addi	r3,r2,48
    dda4:	e0bfff17 	ldw	r2,-4(fp)
    dda8:	1889883a 	add	r4,r3,r2
    ddac:	01400804 	movi	r5,32
    ddb0:	01800404 	movi	r6,16
    ddb4:	00081940 	call	8194 <memset>
    sp->line[y].width = 0;
    ddb8:	e13ffe17 	ldw	r4,-8(fp)
    ddbc:	e43fff17 	ldw	r16,-4(fp)
    ddc0:	014018c4 	movi	r5,99
    ddc4:	0002c240 	call	2c24 <__mulsi3>
    ddc8:	1405883a 	add	r2,r2,r16
    ddcc:	10802404 	addi	r2,r2,144
    ddd0:	10000045 	stb	zero,1(r2)

  sp->x = 0;
  sp->y = 0;
  sp->address = 0;

  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
    ddd4:	e0bffe17 	ldw	r2,-8(fp)
    ddd8:	10800044 	addi	r2,r2,1
    dddc:	e0bffe15 	stw	r2,-8(fp)
    dde0:	e0bffe17 	ldw	r2,-8(fp)
    dde4:	10800090 	cmplti	r2,r2,2
    dde8:	103fe11e 	bne	r2,zero,dd70 <lcd_clear_screen+0x44>
  {
    memset(sp->line[y].data, ' ', sizeof(sp->line[0].data));
    memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible));
    sp->line[y].width = 0;
  }
}
    ddec:	e037883a 	mov	sp,fp
    ddf0:	dfc00217 	ldw	ra,8(sp)
    ddf4:	df000117 	ldw	fp,4(sp)
    ddf8:	dc000017 	ldw	r16,0(sp)
    ddfc:	dec00304 	addi	sp,sp,12
    de00:	f800283a 	ret

0000de04 <lcd_repaint_screen>:

/* --------------------------------------------------------------------- */

static void lcd_repaint_screen(altera_avalon_lcd_16207_state* sp)
{
    de04:	defff404 	addi	sp,sp,-48
    de08:	dfc00b15 	stw	ra,44(sp)
    de0c:	df000a15 	stw	fp,40(sp)
    de10:	dc800915 	stw	r18,36(sp)
    de14:	dc400815 	stw	r17,32(sp)
    de18:	dc000715 	stw	r16,28(sp)
    de1c:	df000704 	addi	fp,sp,28
    de20:	e13fff15 	stw	r4,-4(fp)
  /* scrollpos controls how much the lines have scrolled round.  The speed
   * each line scrolls at is controlled by its speed variable - while
   * scrolline lines will wrap at the position set by width
   */

  int scrollpos = sp->scrollpos;
    de24:	e0bfff17 	ldw	r2,-4(fp)
    de28:	10800943 	ldbu	r2,37(r2)
    de2c:	10803fcc 	andi	r2,r2,255
    de30:	1080201c 	xori	r2,r2,128
    de34:	10bfe004 	addi	r2,r2,-128
    de38:	e0bffc15 	stw	r2,-16(fp)

  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
    de3c:	e03ffe15 	stw	zero,-8(fp)
    de40:	00006a06 	br	dfec <lcd_repaint_screen+0x1e8>
  {
    int width  = sp->line[y].width;
    de44:	e13ffe17 	ldw	r4,-8(fp)
    de48:	e43fff17 	ldw	r16,-4(fp)
    de4c:	014018c4 	movi	r5,99
    de50:	0002c240 	call	2c24 <__mulsi3>
    de54:	1405883a 	add	r2,r2,r16
    de58:	10802404 	addi	r2,r2,144
    de5c:	10800043 	ldbu	r2,1(r2)
    de60:	10803fcc 	andi	r2,r2,255
    de64:	1080201c 	xori	r2,r2,128
    de68:	10bfe004 	addi	r2,r2,-128
    de6c:	e0bffb15 	stw	r2,-20(fp)
    int offset = (scrollpos * sp->line[y].speed) >> 8;
    de70:	e13ffe17 	ldw	r4,-8(fp)
    de74:	e43fff17 	ldw	r16,-4(fp)
    de78:	014018c4 	movi	r5,99
    de7c:	0002c240 	call	2c24 <__mulsi3>
    de80:	1405883a 	add	r2,r2,r16
    de84:	10802404 	addi	r2,r2,144
    de88:	10800083 	ldbu	r2,2(r2)
    de8c:	11003fcc 	andi	r4,r2,255
    de90:	e17ffc17 	ldw	r5,-16(fp)
    de94:	0002c240 	call	2c24 <__mulsi3>
    de98:	1005d23a 	srai	r2,r2,8
    de9c:	e0bffa15 	stw	r2,-24(fp)
    if (offset >= width)
    dea0:	e0fffa17 	ldw	r3,-24(fp)
    dea4:	e0bffb17 	ldw	r2,-20(fp)
    dea8:	18800116 	blt	r3,r2,deb0 <lcd_repaint_screen+0xac>
      offset = 0;
    deac:	e03ffa15 	stw	zero,-24(fp)

    for (x = 0 ; x < ALT_LCD_WIDTH ; x++)
    deb0:	e03ffd15 	stw	zero,-12(fp)
    deb4:	00004706 	br	dfd4 <lcd_repaint_screen+0x1d0>
    {
      char c = sp->line[y].data[(x + offset) % width];
    deb8:	e47ffe17 	ldw	r17,-8(fp)
    debc:	e0fffd17 	ldw	r3,-12(fp)
    dec0:	e0bffa17 	ldw	r2,-24(fp)
    dec4:	1889883a 	add	r4,r3,r2
    dec8:	e17ffb17 	ldw	r5,-20(fp)
    decc:	0002bb40 	call	2bb4 <__modsi3>
    ded0:	1025883a 	mov	r18,r2
    ded4:	e43fff17 	ldw	r16,-4(fp)
    ded8:	8809883a 	mov	r4,r17
    dedc:	014018c4 	movi	r5,99
    dee0:	0002c240 	call	2c24 <__mulsi3>
    dee4:	1405883a 	add	r2,r2,r16
    dee8:	1485883a 	add	r2,r2,r18
    deec:	10801004 	addi	r2,r2,64
    def0:	10800003 	ldbu	r2,0(r2)
    def4:	e0bff945 	stb	r2,-27(fp)

      /* Writing data takes 40us, so don't do it unless required */
      if (sp->line[y].visible[x] != c)
    def8:	e13ffe17 	ldw	r4,-8(fp)
    defc:	e47ffd17 	ldw	r17,-12(fp)
    df00:	e43fff17 	ldw	r16,-4(fp)
    df04:	014018c4 	movi	r5,99
    df08:	0002c240 	call	2c24 <__mulsi3>
    df0c:	1405883a 	add	r2,r2,r16
    df10:	1445883a 	add	r2,r2,r17
    df14:	10800c04 	addi	r2,r2,48
    df18:	10800003 	ldbu	r2,0(r2)
    df1c:	10c03fcc 	andi	r3,r2,255
    df20:	18c0201c 	xori	r3,r3,128
    df24:	18ffe004 	addi	r3,r3,-128
    df28:	e0bff947 	ldb	r2,-27(fp)
    df2c:	18802626 	beq	r3,r2,dfc8 <lcd_repaint_screen+0x1c4>
      {
        unsigned char address = x + colstart[y];
    df30:	e0fffe17 	ldw	r3,-8(fp)
    df34:	d0a00f04 	addi	r2,gp,-32708
    df38:	1885883a 	add	r2,r3,r2
    df3c:	10800003 	ldbu	r2,0(r2)
    df40:	1007883a 	mov	r3,r2
    df44:	e0bffd17 	ldw	r2,-12(fp)
    df48:	1885883a 	add	r2,r3,r2
    df4c:	e0bff905 	stb	r2,-28(fp)

        if (address != sp->address)
    df50:	e0fff903 	ldbu	r3,-28(fp)
    df54:	e0bfff17 	ldw	r2,-4(fp)
    df58:	108008c3 	ldbu	r2,35(r2)
    df5c:	10803fcc 	andi	r2,r2,255
    df60:	1080201c 	xori	r2,r2,128
    df64:	10bfe004 	addi	r2,r2,-128
    df68:	18800926 	beq	r3,r2,df90 <lcd_repaint_screen+0x18c>
        {
          lcd_write_command(sp, LCD_CMD_WRITE_DATA | address);
    df6c:	e0fff903 	ldbu	r3,-28(fp)
    df70:	00bfe004 	movi	r2,-128
    df74:	1884b03a 	or	r2,r3,r2
    df78:	11403fcc 	andi	r5,r2,255
    df7c:	e13fff17 	ldw	r4,-4(fp)
    df80:	000dba00 	call	dba0 <lcd_write_command>
          sp->address = address;
    df84:	e0fff903 	ldbu	r3,-28(fp)
    df88:	e0bfff17 	ldw	r2,-4(fp)
    df8c:	10c008c5 	stb	r3,35(r2)
        }

        lcd_write_data(sp, c);
    df90:	e0bff943 	ldbu	r2,-27(fp)
    df94:	11403fcc 	andi	r5,r2,255
    df98:	e13fff17 	ldw	r4,-4(fp)
    df9c:	000dc580 	call	dc58 <lcd_write_data>
        sp->line[y].visible[x] = c;
    dfa0:	e13ffe17 	ldw	r4,-8(fp)
    dfa4:	e47ffd17 	ldw	r17,-12(fp)
    dfa8:	e43fff17 	ldw	r16,-4(fp)
    dfac:	014018c4 	movi	r5,99
    dfb0:	0002c240 	call	2c24 <__mulsi3>
    dfb4:	1405883a 	add	r2,r2,r16
    dfb8:	1445883a 	add	r2,r2,r17
    dfbc:	10c00c04 	addi	r3,r2,48
    dfc0:	e0bff943 	ldbu	r2,-27(fp)
    dfc4:	18800005 	stb	r2,0(r3)
    int width  = sp->line[y].width;
    int offset = (scrollpos * sp->line[y].speed) >> 8;
    if (offset >= width)
      offset = 0;

    for (x = 0 ; x < ALT_LCD_WIDTH ; x++)
    dfc8:	e0bffd17 	ldw	r2,-12(fp)
    dfcc:	10800044 	addi	r2,r2,1
    dfd0:	e0bffd15 	stw	r2,-12(fp)
    dfd4:	e0bffd17 	ldw	r2,-12(fp)
    dfd8:	10800410 	cmplti	r2,r2,16
    dfdc:	103fb61e 	bne	r2,zero,deb8 <lcd_repaint_screen+0xb4>
   * scrolline lines will wrap at the position set by width
   */

  int scrollpos = sp->scrollpos;

  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
    dfe0:	e0bffe17 	ldw	r2,-8(fp)
    dfe4:	10800044 	addi	r2,r2,1
    dfe8:	e0bffe15 	stw	r2,-8(fp)
    dfec:	e0bffe17 	ldw	r2,-8(fp)
    dff0:	10800090 	cmplti	r2,r2,2
    dff4:	103f931e 	bne	r2,zero,de44 <lcd_repaint_screen+0x40>
        lcd_write_data(sp, c);
        sp->line[y].visible[x] = c;
      }
    }
  }
}
    dff8:	e037883a 	mov	sp,fp
    dffc:	dfc00417 	ldw	ra,16(sp)
    e000:	df000317 	ldw	fp,12(sp)
    e004:	dc800217 	ldw	r18,8(sp)
    e008:	dc400117 	ldw	r17,4(sp)
    e00c:	dc000017 	ldw	r16,0(sp)
    e010:	dec00504 	addi	sp,sp,20
    e014:	f800283a 	ret

0000e018 <lcd_scroll_up>:

/* --------------------------------------------------------------------- */

static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp)
{
    e018:	defffb04 	addi	sp,sp,-20
    e01c:	dfc00415 	stw	ra,16(sp)
    e020:	df000315 	stw	fp,12(sp)
    e024:	dc000215 	stw	r16,8(sp)
    e028:	df000204 	addi	fp,sp,8
    e02c:	e13fff15 	stw	r4,-4(fp)
  int y;

  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
    e030:	e03ffe15 	stw	zero,-8(fp)
    e034:	00002106 	br	e0bc <lcd_scroll_up+0xa4>
  {
    if (y < ALT_LCD_HEIGHT-1)
    e038:	e0bffe17 	ldw	r2,-8(fp)
    e03c:	10800048 	cmpgei	r2,r2,1
    e040:	1000121e 	bne	r2,zero,e08c <lcd_scroll_up+0x74>
      memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH);
    e044:	e13ffe17 	ldw	r4,-8(fp)
    e048:	014018c4 	movi	r5,99
    e04c:	0002c240 	call	2c24 <__mulsi3>
    e050:	10c01004 	addi	r3,r2,64
    e054:	e0bfff17 	ldw	r2,-4(fp)
    e058:	18a1883a 	add	r16,r3,r2
    e05c:	e0bffe17 	ldw	r2,-8(fp)
    e060:	11000044 	addi	r4,r2,1
    e064:	014018c4 	movi	r5,99
    e068:	0002c240 	call	2c24 <__mulsi3>
    e06c:	10c01004 	addi	r3,r2,64
    e070:	e0bfff17 	ldw	r2,-4(fp)
    e074:	1885883a 	add	r2,r3,r2
    e078:	8009883a 	mov	r4,r16
    e07c:	100b883a 	mov	r5,r2
    e080:	01801404 	movi	r6,80
    e084:	00080140 	call	8014 <memcpy>
    e088:	00000906 	br	e0b0 <lcd_scroll_up+0x98>
    else
      memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH);
    e08c:	e13ffe17 	ldw	r4,-8(fp)
    e090:	014018c4 	movi	r5,99
    e094:	0002c240 	call	2c24 <__mulsi3>
    e098:	10c01004 	addi	r3,r2,64
    e09c:	e0bfff17 	ldw	r2,-4(fp)
    e0a0:	1889883a 	add	r4,r3,r2
    e0a4:	01400804 	movi	r5,32
    e0a8:	01801404 	movi	r6,80
    e0ac:	00081940 	call	8194 <memset>

static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp)
{
  int y;

  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
    e0b0:	e0bffe17 	ldw	r2,-8(fp)
    e0b4:	10800044 	addi	r2,r2,1
    e0b8:	e0bffe15 	stw	r2,-8(fp)
    e0bc:	e0bffe17 	ldw	r2,-8(fp)
    e0c0:	10800090 	cmplti	r2,r2,2
    e0c4:	103fdc1e 	bne	r2,zero,e038 <lcd_scroll_up+0x20>
      memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH);
    else
      memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH);
  }

  sp->y--;
    e0c8:	e0bfff17 	ldw	r2,-4(fp)
    e0cc:	10800883 	ldbu	r2,34(r2)
    e0d0:	10bfffc4 	addi	r2,r2,-1
    e0d4:	1007883a 	mov	r3,r2
    e0d8:	e0bfff17 	ldw	r2,-4(fp)
    e0dc:	10c00885 	stb	r3,34(r2)
}
    e0e0:	e037883a 	mov	sp,fp
    e0e4:	dfc00217 	ldw	ra,8(sp)
    e0e8:	df000117 	ldw	fp,4(sp)
    e0ec:	dc000017 	ldw	r16,0(sp)
    e0f0:	dec00304 	addi	sp,sp,12
    e0f4:	f800283a 	ret

0000e0f8 <lcd_handle_escape>:

/* --------------------------------------------------------------------- */

static void lcd_handle_escape(altera_avalon_lcd_16207_state* sp, char c)
{
    e0f8:	defff804 	addi	sp,sp,-32
    e0fc:	dfc00715 	stw	ra,28(sp)
    e100:	df000615 	stw	fp,24(sp)
    e104:	df000604 	addi	fp,sp,24
    e108:	e13ffd15 	stw	r4,-12(fp)
    e10c:	e17ffe05 	stb	r5,-8(fp)
  int parm1 = 0, parm2 = 0;
    e110:	e03ffc15 	stw	zero,-16(fp)
    e114:	e03ffb15 	stw	zero,-20(fp)

  if (sp->escape[0] == '[')
    e118:	e0bffd17 	ldw	r2,-12(fp)
    e11c:	10800a03 	ldbu	r2,40(r2)
    e120:	10803fcc 	andi	r2,r2,255
    e124:	1080201c 	xori	r2,r2,128
    e128:	10bfe004 	addi	r2,r2,-128
    e12c:	108016d8 	cmpnei	r2,r2,91
    e130:	10004d1e 	bne	r2,zero,e268 <lcd_handle_escape+0x170>
  {
    char * ptr = sp->escape+1;
    e134:	e0bffd17 	ldw	r2,-12(fp)
    e138:	10800a04 	addi	r2,r2,40
    e13c:	10800044 	addi	r2,r2,1
    e140:	e0bffa15 	stw	r2,-24(fp)
    while (isdigit(*ptr))
    e144:	00000f06 	br	e184 <lcd_handle_escape+0x8c>
      parm1 = (parm1 * 10) + (*ptr++ - '0');
    e148:	e13ffc17 	ldw	r4,-16(fp)
    e14c:	01400284 	movi	r5,10
    e150:	0002c240 	call	2c24 <__mulsi3>
    e154:	1007883a 	mov	r3,r2
    e158:	e0bffa17 	ldw	r2,-24(fp)
    e15c:	10800003 	ldbu	r2,0(r2)
    e160:	10803fcc 	andi	r2,r2,255
    e164:	1080201c 	xori	r2,r2,128
    e168:	10bfe004 	addi	r2,r2,-128
    e16c:	1885883a 	add	r2,r3,r2
    e170:	10bff404 	addi	r2,r2,-48
    e174:	e0bffc15 	stw	r2,-16(fp)
    e178:	e0bffa17 	ldw	r2,-24(fp)
    e17c:	10800044 	addi	r2,r2,1
    e180:	e0bffa15 	stw	r2,-24(fp)
  int parm1 = 0, parm2 = 0;

  if (sp->escape[0] == '[')
  {
    char * ptr = sp->escape+1;
    while (isdigit(*ptr))
    e184:	e0bffa17 	ldw	r2,-24(fp)
    e188:	10800003 	ldbu	r2,0(r2)
    e18c:	10803fcc 	andi	r2,r2,255
    e190:	1080201c 	xori	r2,r2,128
    e194:	10bfe004 	addi	r2,r2,-128
    e198:	1007883a 	mov	r3,r2
    e19c:	00800074 	movhi	r2,1
    e1a0:	10887d04 	addi	r2,r2,8692
    e1a4:	10800017 	ldw	r2,0(r2)
    e1a8:	1885883a 	add	r2,r3,r2
    e1ac:	10800003 	ldbu	r2,0(r2)
    e1b0:	10803fcc 	andi	r2,r2,255
    e1b4:	1080010c 	andi	r2,r2,4
    e1b8:	1004c03a 	cmpne	r2,r2,zero
    e1bc:	103fe21e 	bne	r2,zero,e148 <lcd_handle_escape+0x50>
      parm1 = (parm1 * 10) + (*ptr++ - '0');

    if (*ptr == ';')
    e1c0:	e0bffa17 	ldw	r2,-24(fp)
    e1c4:	10800003 	ldbu	r2,0(r2)
    e1c8:	10803fcc 	andi	r2,r2,255
    e1cc:	1080201c 	xori	r2,r2,128
    e1d0:	10bfe004 	addi	r2,r2,-128
    e1d4:	10800ed8 	cmpnei	r2,r2,59
    e1d8:	1000251e 	bne	r2,zero,e270 <lcd_handle_escape+0x178>
    {
      ptr++;
    e1dc:	e0bffa17 	ldw	r2,-24(fp)
    e1e0:	10800044 	addi	r2,r2,1
    e1e4:	e0bffa15 	stw	r2,-24(fp)
      while (isdigit(*ptr))
    e1e8:	00000f06 	br	e228 <lcd_handle_escape+0x130>
        parm2 = (parm2 * 10) + (*ptr++ - '0');
    e1ec:	e13ffb17 	ldw	r4,-20(fp)
    e1f0:	01400284 	movi	r5,10
    e1f4:	0002c240 	call	2c24 <__mulsi3>
    e1f8:	1007883a 	mov	r3,r2
    e1fc:	e0bffa17 	ldw	r2,-24(fp)
    e200:	10800003 	ldbu	r2,0(r2)
    e204:	10803fcc 	andi	r2,r2,255
    e208:	1080201c 	xori	r2,r2,128
    e20c:	10bfe004 	addi	r2,r2,-128
    e210:	1885883a 	add	r2,r3,r2
    e214:	10bff404 	addi	r2,r2,-48
    e218:	e0bffb15 	stw	r2,-20(fp)
    e21c:	e0bffa17 	ldw	r2,-24(fp)
    e220:	10800044 	addi	r2,r2,1
    e224:	e0bffa15 	stw	r2,-24(fp)
      parm1 = (parm1 * 10) + (*ptr++ - '0');

    if (*ptr == ';')
    {
      ptr++;
      while (isdigit(*ptr))
    e228:	e0bffa17 	ldw	r2,-24(fp)
    e22c:	10800003 	ldbu	r2,0(r2)
    e230:	10803fcc 	andi	r2,r2,255
    e234:	1080201c 	xori	r2,r2,128
    e238:	10bfe004 	addi	r2,r2,-128
    e23c:	1007883a 	mov	r3,r2
    e240:	00800074 	movhi	r2,1
    e244:	10887d04 	addi	r2,r2,8692
    e248:	10800017 	ldw	r2,0(r2)
    e24c:	1885883a 	add	r2,r3,r2
    e250:	10800003 	ldbu	r2,0(r2)
    e254:	10803fcc 	andi	r2,r2,255
    e258:	1080010c 	andi	r2,r2,4
    e25c:	1004c03a 	cmpne	r2,r2,zero
    e260:	103fe21e 	bne	r2,zero,e1ec <lcd_handle_escape+0xf4>
    e264:	00000206 	br	e270 <lcd_handle_escape+0x178>
        parm2 = (parm2 * 10) + (*ptr++ - '0');
    }
  }
  else
    parm1 = -1;
    e268:	00bfffc4 	movi	r2,-1
    e26c:	e0bffc15 	stw	r2,-16(fp)

  switch (c)
    e270:	e0bffe07 	ldb	r2,-8(fp)
    e274:	e0bfff15 	stw	r2,-4(fp)
    e278:	e0ffff17 	ldw	r3,-4(fp)
    e27c:	188012a0 	cmpeqi	r2,r3,74
    e280:	10002f1e 	bne	r2,zero,e340 <lcd_handle_escape+0x248>
    e284:	e0ffff17 	ldw	r3,-4(fp)
    e288:	188012c8 	cmpgei	r2,r3,75
    e28c:	1000041e 	bne	r2,zero,e2a0 <lcd_handle_escape+0x1a8>
    e290:	e0ffff17 	ldw	r3,-4(fp)
    e294:	18801220 	cmpeqi	r2,r3,72
    e298:	1000081e 	bne	r2,zero,e2bc <lcd_handle_escape+0x1c4>
    e29c:	00004a06 	br	e3c8 <lcd_handle_escape+0x2d0>
    e2a0:	e0ffff17 	ldw	r3,-4(fp)
    e2a4:	188012e0 	cmpeqi	r2,r3,75
    e2a8:	10002b1e 	bne	r2,zero,e358 <lcd_handle_escape+0x260>
    e2ac:	e0ffff17 	ldw	r3,-4(fp)
    e2b0:	188019a0 	cmpeqi	r2,r3,102
    e2b4:	1000011e 	bne	r2,zero,e2bc <lcd_handle_escape+0x1c4>
    e2b8:	00004306 	br	e3c8 <lcd_handle_escape+0x2d0>
  {
  case 'H': /* ESC '[' <y> ';' <x> 'H'  : Move cursor to location */
  case 'f': /* Same as above */
    if (parm2 > 0)
    e2bc:	e0bffb17 	ldw	r2,-20(fp)
    e2c0:	10800050 	cmplti	r2,r2,1
    e2c4:	1000051e 	bne	r2,zero,e2dc <lcd_handle_escape+0x1e4>
      sp->x = parm2 - 1;
    e2c8:	e0bffb17 	ldw	r2,-20(fp)
    e2cc:	10bfffc4 	addi	r2,r2,-1
    e2d0:	1007883a 	mov	r3,r2
    e2d4:	e0bffd17 	ldw	r2,-12(fp)
    e2d8:	10c00845 	stb	r3,33(r2)
    if (parm1 > 0)
    e2dc:	e0bffc17 	ldw	r2,-16(fp)
    e2e0:	10800050 	cmplti	r2,r2,1
    e2e4:	1000381e 	bne	r2,zero,e3c8 <lcd_handle_escape+0x2d0>
    {
      sp->y = parm1 - 1;
    e2e8:	e0bffc17 	ldw	r2,-16(fp)
    e2ec:	10bfffc4 	addi	r2,r2,-1
    e2f0:	1007883a 	mov	r3,r2
    e2f4:	e0bffd17 	ldw	r2,-12(fp)
    e2f8:	10c00885 	stb	r3,34(r2)
      if (sp->y > ALT_LCD_HEIGHT * 2)
    e2fc:	e0bffd17 	ldw	r2,-12(fp)
    e300:	10800883 	ldbu	r2,34(r2)
    e304:	10803fcc 	andi	r2,r2,255
    e308:	10800170 	cmpltui	r2,r2,5
    e30c:	1000061e 	bne	r2,zero,e328 <lcd_handle_escape+0x230>
        sp->y = ALT_LCD_HEIGHT * 2;
    e310:	e0fffd17 	ldw	r3,-12(fp)
    e314:	00800104 	movi	r2,4
    e318:	18800885 	stb	r2,34(r3)
      while (sp->y > ALT_LCD_HEIGHT)
    e31c:	00000206 	br	e328 <lcd_handle_escape+0x230>
        lcd_scroll_up(sp);
    e320:	e13ffd17 	ldw	r4,-12(fp)
    e324:	000e0180 	call	e018 <lcd_scroll_up>
    if (parm1 > 0)
    {
      sp->y = parm1 - 1;
      if (sp->y > ALT_LCD_HEIGHT * 2)
        sp->y = ALT_LCD_HEIGHT * 2;
      while (sp->y > ALT_LCD_HEIGHT)
    e328:	e0bffd17 	ldw	r2,-12(fp)
    e32c:	10800883 	ldbu	r2,34(r2)
    e330:	10803fcc 	andi	r2,r2,255
    e334:	108000e8 	cmpgeui	r2,r2,3
    e338:	103ff91e 	bne	r2,zero,e320 <lcd_handle_escape+0x228>
        lcd_scroll_up(sp);
    }
    break;
    e33c:	00002206 	br	e3c8 <lcd_handle_escape+0x2d0>
    /*   ESC J      is clear to beginning of line    [unimplemented]
     *   ESC [ 0 J  is clear to bottom of screen     [unimplemented]
     *   ESC [ 1 J  is clear to beginning of screen  [unimplemented]
     *   ESC [ 2 J  is clear screen
     */
    if (parm1 == 2)
    e340:	e0bffc17 	ldw	r2,-16(fp)
    e344:	10800098 	cmpnei	r2,r2,2
    e348:	10001f1e 	bne	r2,zero,e3c8 <lcd_handle_escape+0x2d0>
      lcd_clear_screen(sp);
    e34c:	e13ffd17 	ldw	r4,-12(fp)
    e350:	000dd2c0 	call	dd2c <lcd_clear_screen>
    break;
    e354:	00001c06 	br	e3c8 <lcd_handle_escape+0x2d0>
    /*   ESC K      is clear to end of line
     *   ESC [ 0 K  is clear to end of line
     *   ESC [ 1 K  is clear to beginning of line    [unimplemented]
     *   ESC [ 2 K  is clear line                    [unimplemented]
     */
    if (parm1 < 1)
    e358:	e0bffc17 	ldw	r2,-16(fp)
    e35c:	10800048 	cmpgei	r2,r2,1
    e360:	1000191e 	bne	r2,zero,e3c8 <lcd_handle_escape+0x2d0>
    {
      if (sp->x < ALT_LCD_VIRTUAL_WIDTH)
    e364:	e0bffd17 	ldw	r2,-12(fp)
    e368:	10800843 	ldbu	r2,33(r2)
    e36c:	10803fcc 	andi	r2,r2,255
    e370:	10801428 	cmpgeui	r2,r2,80
    e374:	1000141e 	bne	r2,zero,e3c8 <lcd_handle_escape+0x2d0>
        memset(sp->line[sp->y].data + sp->x, ' ', ALT_LCD_VIRTUAL_WIDTH - sp->x);
    e378:	e0bffd17 	ldw	r2,-12(fp)
    e37c:	10800883 	ldbu	r2,34(r2)
    e380:	11003fcc 	andi	r4,r2,255
    e384:	014018c4 	movi	r5,99
    e388:	0002c240 	call	2c24 <__mulsi3>
    e38c:	10c01004 	addi	r3,r2,64
    e390:	e0bffd17 	ldw	r2,-12(fp)
    e394:	1887883a 	add	r3,r3,r2
    e398:	e0bffd17 	ldw	r2,-12(fp)
    e39c:	10800843 	ldbu	r2,33(r2)
    e3a0:	10803fcc 	andi	r2,r2,255
    e3a4:	1889883a 	add	r4,r3,r2
    e3a8:	e0bffd17 	ldw	r2,-12(fp)
    e3ac:	10800843 	ldbu	r2,33(r2)
    e3b0:	10c03fcc 	andi	r3,r2,255
    e3b4:	00801404 	movi	r2,80
    e3b8:	10c5c83a 	sub	r2,r2,r3
    e3bc:	100d883a 	mov	r6,r2
    e3c0:	01400804 	movi	r5,32
    e3c4:	00081940 	call	8194 <memset>
    }
    break;
  }
}
    e3c8:	e037883a 	mov	sp,fp
    e3cc:	dfc00117 	ldw	ra,4(sp)
    e3d0:	df000017 	ldw	fp,0(sp)
    e3d4:	dec00204 	addi	sp,sp,8
    e3d8:	f800283a 	ret

0000e3dc <altera_avalon_lcd_16207_write>:

/* --------------------------------------------------------------------- */

int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, 
  const char* ptr, int len, int flags)
{
    e3dc:	defff004 	addi	sp,sp,-64
    e3e0:	dfc00f15 	stw	ra,60(sp)
    e3e4:	df000e15 	stw	fp,56(sp)
    e3e8:	dc800d15 	stw	r18,52(sp)
    e3ec:	dc400c15 	stw	r17,48(sp)
    e3f0:	dc000b15 	stw	r16,44(sp)
    e3f4:	df000b04 	addi	fp,sp,44
    e3f8:	e13ffc15 	stw	r4,-16(fp)
    e3fc:	e17ffd15 	stw	r5,-12(fp)
    e400:	e1bffe15 	stw	r6,-8(fp)
    e404:	e1ffff15 	stw	r7,-4(fp)
  const char* end = ptr + len;
    e408:	e0bffe17 	ldw	r2,-8(fp)
    e40c:	1007883a 	mov	r3,r2
    e410:	e0bffd17 	ldw	r2,-12(fp)
    e414:	10c5883a 	add	r2,r2,r3
    e418:	e0bffb15 	stw	r2,-20(fp)

  ALT_SEM_PEND (sp->write_lock, 0);

  /* Tell the routine which is called off the timer interrupt that the
   * foreground routines are active so it must not repaint the display. */
  sp->active = 1;
    e41c:	e0fffc17 	ldw	r3,-16(fp)
    e420:	00800044 	movi	r2,1
    e424:	188009c5 	stb	r2,39(r3)

  for ( ; ptr < end ; ptr++)
    e428:	0000a306 	br	e6b8 <altera_avalon_lcd_16207_write+0x2dc>
  {
    char c = *ptr;
    e42c:	e0bffd17 	ldw	r2,-12(fp)
    e430:	10800003 	ldbu	r2,0(r2)
    e434:	e0bff805 	stb	r2,-32(fp)

    if (sp->esccount >= 0)
    e438:	e0bffc17 	ldw	r2,-16(fp)
    e43c:	10800903 	ldbu	r2,36(r2)
    e440:	10803fcc 	andi	r2,r2,255
    e444:	1080201c 	xori	r2,r2,128
    e448:	10bfe004 	addi	r2,r2,-128
    e44c:	1004803a 	cmplt	r2,r2,zero
    e450:	10003b1e 	bne	r2,zero,e540 <altera_avalon_lcd_16207_write+0x164>
    {
      unsigned int esccount = sp->esccount;
    e454:	e0bffc17 	ldw	r2,-16(fp)
    e458:	10800903 	ldbu	r2,36(r2)
    e45c:	10803fcc 	andi	r2,r2,255
    e460:	1080201c 	xori	r2,r2,128
    e464:	10bfe004 	addi	r2,r2,-128
    e468:	e0bff715 	stw	r2,-36(fp)

      /* Single character escape sequences can end with any character
       * Multi character escape sequences start with '[' and contain
       * digits and semicolons before terminating
       */
      if ((esccount == 0 && c != '[') ||
    e46c:	e0bff717 	ldw	r2,-36(fp)
    e470:	1004c03a 	cmpne	r2,r2,zero
    e474:	1000031e 	bne	r2,zero,e484 <altera_avalon_lcd_16207_write+0xa8>
    e478:	e0bff807 	ldb	r2,-32(fp)
    e47c:	108016d8 	cmpnei	r2,r2,91
    e480:	1000111e 	bne	r2,zero,e4c8 <altera_avalon_lcd_16207_write+0xec>
    e484:	e0bff717 	ldw	r2,-36(fp)
    e488:	1005003a 	cmpeq	r2,r2,zero
    e48c:	10001a1e 	bne	r2,zero,e4f8 <altera_avalon_lcd_16207_write+0x11c>
    e490:	e0bff807 	ldb	r2,-32(fp)
    e494:	1007883a 	mov	r3,r2
    e498:	00800074 	movhi	r2,1
    e49c:	10887d04 	addi	r2,r2,8692
    e4a0:	10800017 	ldw	r2,0(r2)
    e4a4:	1885883a 	add	r2,r3,r2
    e4a8:	10800003 	ldbu	r2,0(r2)
    e4ac:	10803fcc 	andi	r2,r2,255
    e4b0:	1080010c 	andi	r2,r2,4
    e4b4:	1004c03a 	cmpne	r2,r2,zero
    e4b8:	10000f1e 	bne	r2,zero,e4f8 <altera_avalon_lcd_16207_write+0x11c>
    e4bc:	e0bff807 	ldb	r2,-32(fp)
    e4c0:	10800ee0 	cmpeqi	r2,r2,59
    e4c4:	10000c1e 	bne	r2,zero,e4f8 <altera_avalon_lcd_16207_write+0x11c>
          (esccount > 0 && !isdigit(c) && c != ';'))
      {
        sp->escape[esccount] = 0;
    e4c8:	e0fff717 	ldw	r3,-36(fp)
    e4cc:	e0bffc17 	ldw	r2,-16(fp)
    e4d0:	1885883a 	add	r2,r3,r2
    e4d4:	10800a04 	addi	r2,r2,40
    e4d8:	10000005 	stb	zero,0(r2)

        lcd_handle_escape(sp, c);
    e4dc:	e17ff807 	ldb	r5,-32(fp)
    e4e0:	e13ffc17 	ldw	r4,-16(fp)
    e4e4:	000e0f80 	call	e0f8 <lcd_handle_escape>

        sp->esccount = -1;
    e4e8:	e0fffc17 	ldw	r3,-16(fp)
    e4ec:	00bfffc4 	movi	r2,-1
    e4f0:	18800905 	stb	r2,36(r3)

      /* Single character escape sequences can end with any character
       * Multi character escape sequences start with '[' and contain
       * digits and semicolons before terminating
       */
      if ((esccount == 0 && c != '[') ||
    e4f4:	00006d06 	br	e6ac <altera_avalon_lcd_16207_write+0x2d0>

        lcd_handle_escape(sp, c);

        sp->esccount = -1;
      }
      else if (sp->esccount < sizeof(sp->escape)-1)
    e4f8:	e0bffc17 	ldw	r2,-16(fp)
    e4fc:	10800903 	ldbu	r2,36(r2)
    e500:	10803fcc 	andi	r2,r2,255
    e504:	108001e8 	cmpgeui	r2,r2,7
    e508:	1000681e 	bne	r2,zero,e6ac <altera_avalon_lcd_16207_write+0x2d0>
      {
        sp->escape[esccount] = c;
    e50c:	e0fff717 	ldw	r3,-36(fp)
    e510:	e0bffc17 	ldw	r2,-16(fp)
    e514:	1885883a 	add	r2,r3,r2
    e518:	10c00a04 	addi	r3,r2,40
    e51c:	e0bff803 	ldbu	r2,-32(fp)
    e520:	18800005 	stb	r2,0(r3)
        sp->esccount++;
    e524:	e0bffc17 	ldw	r2,-16(fp)
    e528:	10800903 	ldbu	r2,36(r2)
    e52c:	10800044 	addi	r2,r2,1
    e530:	1007883a 	mov	r3,r2
    e534:	e0bffc17 	ldw	r2,-16(fp)
    e538:	10c00905 	stb	r3,36(r2)
    e53c:	00005b06 	br	e6ac <altera_avalon_lcd_16207_write+0x2d0>
      }
    }
    else if (c == 27) /* ESC */
    e540:	e0bff807 	ldb	r2,-32(fp)
    e544:	108006d8 	cmpnei	r2,r2,27
    e548:	1000031e 	bne	r2,zero,e558 <altera_avalon_lcd_16207_write+0x17c>
    {
      sp->esccount = 0;
    e54c:	e0bffc17 	ldw	r2,-16(fp)
    e550:	10000905 	stb	zero,36(r2)
    e554:	00005506 	br	e6ac <altera_avalon_lcd_16207_write+0x2d0>
    }
    else if (c == '\r')
    e558:	e0bff807 	ldb	r2,-32(fp)
    e55c:	10800358 	cmpnei	r2,r2,13
    e560:	1000031e 	bne	r2,zero,e570 <altera_avalon_lcd_16207_write+0x194>
    {
      sp->x = 0;
    e564:	e0bffc17 	ldw	r2,-16(fp)
    e568:	10000845 	stb	zero,33(r2)
    e56c:	00004f06 	br	e6ac <altera_avalon_lcd_16207_write+0x2d0>
    }
    else if (c == '\n')
    e570:	e0bff807 	ldb	r2,-32(fp)
    e574:	10800298 	cmpnei	r2,r2,10
    e578:	1000101e 	bne	r2,zero,e5bc <altera_avalon_lcd_16207_write+0x1e0>
    {
      sp->x = 0;
    e57c:	e0bffc17 	ldw	r2,-16(fp)
    e580:	10000845 	stb	zero,33(r2)
      sp->y++;
    e584:	e0bffc17 	ldw	r2,-16(fp)
    e588:	10800883 	ldbu	r2,34(r2)
    e58c:	10800044 	addi	r2,r2,1
    e590:	1007883a 	mov	r3,r2
    e594:	e0bffc17 	ldw	r2,-16(fp)
    e598:	10c00885 	stb	r3,34(r2)

      /* Let the cursor sit at X=0, Y=HEIGHT without scrolling so the user
       * can print two lines of data without losing one.
       */
      if (sp->y > ALT_LCD_HEIGHT)
    e59c:	e0bffc17 	ldw	r2,-16(fp)
    e5a0:	10800883 	ldbu	r2,34(r2)
    e5a4:	10803fcc 	andi	r2,r2,255
    e5a8:	108000f0 	cmpltui	r2,r2,3
    e5ac:	10003f1e 	bne	r2,zero,e6ac <altera_avalon_lcd_16207_write+0x2d0>
        lcd_scroll_up(sp);
    e5b0:	e13ffc17 	ldw	r4,-16(fp)
    e5b4:	000e0180 	call	e018 <lcd_scroll_up>
    e5b8:	00003c06 	br	e6ac <altera_avalon_lcd_16207_write+0x2d0>
    }
    else if (c == '\b')
    e5bc:	e0bff807 	ldb	r2,-32(fp)
    e5c0:	10800218 	cmpnei	r2,r2,8
    e5c4:	10000c1e 	bne	r2,zero,e5f8 <altera_avalon_lcd_16207_write+0x21c>
    {
      if (sp->x > 0)
    e5c8:	e0bffc17 	ldw	r2,-16(fp)
    e5cc:	10800843 	ldbu	r2,33(r2)
    e5d0:	10803fcc 	andi	r2,r2,255
    e5d4:	1005003a 	cmpeq	r2,r2,zero
    e5d8:	1000341e 	bne	r2,zero,e6ac <altera_avalon_lcd_16207_write+0x2d0>
        sp->x--;
    e5dc:	e0bffc17 	ldw	r2,-16(fp)
    e5e0:	10800843 	ldbu	r2,33(r2)
    e5e4:	10bfffc4 	addi	r2,r2,-1
    e5e8:	1007883a 	mov	r3,r2
    e5ec:	e0bffc17 	ldw	r2,-16(fp)
    e5f0:	10c00845 	stb	r3,33(r2)
    e5f4:	00002d06 	br	e6ac <altera_avalon_lcd_16207_write+0x2d0>
    }
    else if (isprint(c))
    e5f8:	e0bff807 	ldb	r2,-32(fp)
    e5fc:	1007883a 	mov	r3,r2
    e600:	00800074 	movhi	r2,1
    e604:	10887d04 	addi	r2,r2,8692
    e608:	10800017 	ldw	r2,0(r2)
    e60c:	1885883a 	add	r2,r3,r2
    e610:	10800003 	ldbu	r2,0(r2)
    e614:	10803fcc 	andi	r2,r2,255
    e618:	1080201c 	xori	r2,r2,128
    e61c:	10bfe004 	addi	r2,r2,-128
    e620:	108025cc 	andi	r2,r2,151
    e624:	1005003a 	cmpeq	r2,r2,zero
    e628:	1000201e 	bne	r2,zero,e6ac <altera_avalon_lcd_16207_write+0x2d0>
    {
      /* If we didn't scroll on the last linefeed then we might need to do
       * it now. */
      if (sp->y >= ALT_LCD_HEIGHT)
    e62c:	e0bffc17 	ldw	r2,-16(fp)
    e630:	10800883 	ldbu	r2,34(r2)
    e634:	10803fcc 	andi	r2,r2,255
    e638:	108000b0 	cmpltui	r2,r2,2
    e63c:	1000021e 	bne	r2,zero,e648 <altera_avalon_lcd_16207_write+0x26c>
        lcd_scroll_up(sp);
    e640:	e13ffc17 	ldw	r4,-16(fp)
    e644:	000e0180 	call	e018 <lcd_scroll_up>

      if (sp->x < ALT_LCD_VIRTUAL_WIDTH)
    e648:	e0bffc17 	ldw	r2,-16(fp)
    e64c:	10800843 	ldbu	r2,33(r2)
    e650:	10803fcc 	andi	r2,r2,255
    e654:	10801428 	cmpgeui	r2,r2,80
    e658:	10000e1e 	bne	r2,zero,e694 <altera_avalon_lcd_16207_write+0x2b8>
        sp->line[sp->y].data[sp->x] = c;
    e65c:	e0bffc17 	ldw	r2,-16(fp)
    e660:	10800883 	ldbu	r2,34(r2)
    e664:	11003fcc 	andi	r4,r2,255
    e668:	e0bffc17 	ldw	r2,-16(fp)
    e66c:	10800843 	ldbu	r2,33(r2)
    e670:	14403fcc 	andi	r17,r2,255
    e674:	e43ffc17 	ldw	r16,-16(fp)
    e678:	014018c4 	movi	r5,99
    e67c:	0002c240 	call	2c24 <__mulsi3>
    e680:	1405883a 	add	r2,r2,r16
    e684:	1445883a 	add	r2,r2,r17
    e688:	10c01004 	addi	r3,r2,64
    e68c:	e0bff803 	ldbu	r2,-32(fp)
    e690:	18800005 	stb	r2,0(r3)

      sp->x++;
    e694:	e0bffc17 	ldw	r2,-16(fp)
    e698:	10800843 	ldbu	r2,33(r2)
    e69c:	10800044 	addi	r2,r2,1
    e6a0:	1007883a 	mov	r3,r2
    e6a4:	e0bffc17 	ldw	r2,-16(fp)
    e6a8:	10c00845 	stb	r3,33(r2)

  /* Tell the routine which is called off the timer interrupt that the
   * foreground routines are active so it must not repaint the display. */
  sp->active = 1;

  for ( ; ptr < end ; ptr++)
    e6ac:	e0bffd17 	ldw	r2,-12(fp)
    e6b0:	10800044 	addi	r2,r2,1
    e6b4:	e0bffd15 	stw	r2,-12(fp)
    e6b8:	e0fffd17 	ldw	r3,-12(fp)
    e6bc:	e0bffb17 	ldw	r2,-20(fp)
    e6c0:	18bf5a36 	bltu	r3,r2,e42c <altera_avalon_lcd_16207_write+0x50>
      sp->x++;
    }
  }

  /* Recalculate the scrolling parameters */
  widthmax = ALT_LCD_WIDTH;
    e6c4:	00800404 	movi	r2,16
    e6c8:	e0bff915 	stw	r2,-28(fp)
  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
    e6cc:	e03ffa15 	stw	zero,-24(fp)
    e6d0:	00003906 	br	e7b8 <altera_avalon_lcd_16207_write+0x3dc>
  {
    int width;
    for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--)
    e6d4:	00801404 	movi	r2,80
    e6d8:	e0bff615 	stw	r2,-40(fp)
    e6dc:	00001206 	br	e728 <altera_avalon_lcd_16207_write+0x34c>
      if (sp->line[y].data[width-1] != ' ')
    e6e0:	e13ffa17 	ldw	r4,-24(fp)
    e6e4:	e0bff617 	ldw	r2,-40(fp)
    e6e8:	147fffc4 	addi	r17,r2,-1
    e6ec:	e43ffc17 	ldw	r16,-16(fp)
    e6f0:	014018c4 	movi	r5,99
    e6f4:	0002c240 	call	2c24 <__mulsi3>
    e6f8:	1405883a 	add	r2,r2,r16
    e6fc:	1445883a 	add	r2,r2,r17
    e700:	10801004 	addi	r2,r2,64
    e704:	10800003 	ldbu	r2,0(r2)
    e708:	10803fcc 	andi	r2,r2,255
    e70c:	1080201c 	xori	r2,r2,128
    e710:	10bfe004 	addi	r2,r2,-128
    e714:	10800818 	cmpnei	r2,r2,32
    e718:	1000061e 	bne	r2,zero,e734 <altera_avalon_lcd_16207_write+0x358>
  /* Recalculate the scrolling parameters */
  widthmax = ALT_LCD_WIDTH;
  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
  {
    int width;
    for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--)
    e71c:	e0bff617 	ldw	r2,-40(fp)
    e720:	10bfffc4 	addi	r2,r2,-1
    e724:	e0bff615 	stw	r2,-40(fp)
    e728:	e0bff617 	ldw	r2,-40(fp)
    e72c:	10800048 	cmpgei	r2,r2,1
    e730:	103feb1e 	bne	r2,zero,e6e0 <altera_avalon_lcd_16207_write+0x304>

    /* The minimum width is the size of the LCD panel.  If the real width
     * is long enough to require scrolling then add an extra space so the
     * end of the message doesn't run into the beginning of it.
     */
    if (width <= ALT_LCD_WIDTH)
    e734:	e0bff617 	ldw	r2,-40(fp)
    e738:	10800448 	cmpgei	r2,r2,17
    e73c:	1000031e 	bne	r2,zero,e74c <altera_avalon_lcd_16207_write+0x370>
      width = ALT_LCD_WIDTH;
    e740:	00800404 	movi	r2,16
    e744:	e0bff615 	stw	r2,-40(fp)
    e748:	00000306 	br	e758 <altera_avalon_lcd_16207_write+0x37c>
    else
      width++;
    e74c:	e0bff617 	ldw	r2,-40(fp)
    e750:	10800044 	addi	r2,r2,1
    e754:	e0bff615 	stw	r2,-40(fp)

    sp->line[y].width = width;
    e758:	e13ffa17 	ldw	r4,-24(fp)
    e75c:	e0bff617 	ldw	r2,-40(fp)
    e760:	1023883a 	mov	r17,r2
    e764:	e43ffc17 	ldw	r16,-16(fp)
    e768:	014018c4 	movi	r5,99
    e76c:	0002c240 	call	2c24 <__mulsi3>
    e770:	1405883a 	add	r2,r2,r16
    e774:	10802404 	addi	r2,r2,144
    e778:	14400045 	stb	r17,1(r2)
    if (widthmax < width)
    e77c:	e0fff917 	ldw	r3,-28(fp)
    e780:	e0bff617 	ldw	r2,-40(fp)
    e784:	1880020e 	bge	r3,r2,e790 <altera_avalon_lcd_16207_write+0x3b4>
      widthmax = width;
    e788:	e0bff617 	ldw	r2,-40(fp)
    e78c:	e0bff915 	stw	r2,-28(fp)
    sp->line[y].speed = 0; /* By default lines don't scroll */
    e790:	e13ffa17 	ldw	r4,-24(fp)
    e794:	e43ffc17 	ldw	r16,-16(fp)
    e798:	014018c4 	movi	r5,99
    e79c:	0002c240 	call	2c24 <__mulsi3>
    e7a0:	1405883a 	add	r2,r2,r16
    e7a4:	10802404 	addi	r2,r2,144
    e7a8:	10000085 	stb	zero,2(r2)
    }
  }

  /* Recalculate the scrolling parameters */
  widthmax = ALT_LCD_WIDTH;
  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
    e7ac:	e0bffa17 	ldw	r2,-24(fp)
    e7b0:	10800044 	addi	r2,r2,1
    e7b4:	e0bffa15 	stw	r2,-24(fp)
    e7b8:	e0bffa17 	ldw	r2,-24(fp)
    e7bc:	10800090 	cmplti	r2,r2,2
    e7c0:	103fc41e 	bne	r2,zero,e6d4 <altera_avalon_lcd_16207_write+0x2f8>
    if (widthmax < width)
      widthmax = width;
    sp->line[y].speed = 0; /* By default lines don't scroll */
  }

  if (widthmax <= ALT_LCD_WIDTH)
    e7c4:	e0bff917 	ldw	r2,-28(fp)
    e7c8:	10800448 	cmpgei	r2,r2,17
    e7cc:	1000031e 	bne	r2,zero,e7dc <altera_avalon_lcd_16207_write+0x400>
    sp->scrollmax = 0;
    e7d0:	e0bffc17 	ldw	r2,-16(fp)
    e7d4:	10000985 	stb	zero,38(r2)
    e7d8:	00003106 	br	e8a0 <altera_avalon_lcd_16207_write+0x4c4>
  else
  {
    widthmax *= 2;
    e7dc:	e0bff917 	ldw	r2,-28(fp)
    e7e0:	1085883a 	add	r2,r2,r2
    e7e4:	e0bff915 	stw	r2,-28(fp)
    sp->scrollmax = widthmax;
    e7e8:	e0bff917 	ldw	r2,-28(fp)
    e7ec:	1007883a 	mov	r3,r2
    e7f0:	e0bffc17 	ldw	r2,-16(fp)
    e7f4:	10c00985 	stb	r3,38(r2)

    /* Now calculate how fast each of the other lines should go */
    for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
    e7f8:	e03ffa15 	stw	zero,-24(fp)
    e7fc:	00002506 	br	e894 <altera_avalon_lcd_16207_write+0x4b8>
      if (sp->line[y].width > ALT_LCD_WIDTH)
    e800:	e13ffa17 	ldw	r4,-24(fp)
    e804:	e43ffc17 	ldw	r16,-16(fp)
    e808:	014018c4 	movi	r5,99
    e80c:	0002c240 	call	2c24 <__mulsi3>
    e810:	1405883a 	add	r2,r2,r16
    e814:	10802404 	addi	r2,r2,144
    e818:	10800043 	ldbu	r2,1(r2)
    e81c:	10803fcc 	andi	r2,r2,255
    e820:	1080201c 	xori	r2,r2,128
    e824:	10bfe004 	addi	r2,r2,-128
    e828:	10800450 	cmplti	r2,r2,17
    e82c:	1000161e 	bne	r2,zero,e888 <altera_avalon_lcd_16207_write+0x4ac>
         */
#if 1
        /* This option makes all the lines scroll round at different speeds
         * which are chosen so that all the scrolls finish at the same time.
         */
        sp->line[y].speed = 256 * sp->line[y].width / widthmax;
    e830:	e4bffa17 	ldw	r18,-24(fp)
    e834:	e13ffa17 	ldw	r4,-24(fp)
    e838:	e43ffc17 	ldw	r16,-16(fp)
    e83c:	014018c4 	movi	r5,99
    e840:	0002c240 	call	2c24 <__mulsi3>
    e844:	1405883a 	add	r2,r2,r16
    e848:	10802404 	addi	r2,r2,144
    e84c:	10800043 	ldbu	r2,1(r2)
    e850:	10803fcc 	andi	r2,r2,255
    e854:	1080201c 	xori	r2,r2,128
    e858:	10bfe004 	addi	r2,r2,-128
    e85c:	1008923a 	slli	r4,r2,8
    e860:	e17ff917 	ldw	r5,-28(fp)
    e864:	0002b540 	call	2b54 <__divsi3>
    e868:	1023883a 	mov	r17,r2
    e86c:	e43ffc17 	ldw	r16,-16(fp)
    e870:	9009883a 	mov	r4,r18
    e874:	014018c4 	movi	r5,99
    e878:	0002c240 	call	2c24 <__mulsi3>
    e87c:	1405883a 	add	r2,r2,r16
    e880:	10802404 	addi	r2,r2,144
    e884:	14400085 	stb	r17,2(r2)
  {
    widthmax *= 2;
    sp->scrollmax = widthmax;

    /* Now calculate how fast each of the other lines should go */
    for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
    e888:	e0bffa17 	ldw	r2,-24(fp)
    e88c:	10800044 	addi	r2,r2,1
    e890:	e0bffa15 	stw	r2,-24(fp)
    e894:	e0bffa17 	ldw	r2,-24(fp)
    e898:	10800090 	cmplti	r2,r2,2
    e89c:	103fd81e 	bne	r2,zero,e800 <altera_avalon_lcd_16207_write+0x424>
   * (because active was set when the timer interrupt occurred).  If there
   * has been a missed repaint then paint again.  And again.  etc.
   */
  for ( ; ; )
  {
    int old_scrollpos = sp->scrollpos;
    e8a0:	e0bffc17 	ldw	r2,-16(fp)
    e8a4:	10800943 	ldbu	r2,37(r2)
    e8a8:	10803fcc 	andi	r2,r2,255
    e8ac:	1080201c 	xori	r2,r2,128
    e8b0:	10bfe004 	addi	r2,r2,-128
    e8b4:	e0bff515 	stw	r2,-44(fp)

    lcd_repaint_screen(sp);
    e8b8:	e13ffc17 	ldw	r4,-16(fp)
    e8bc:	000de040 	call	de04 <lcd_repaint_screen>

    /* Let the timer routines repaint the display again */
    sp->active = 0;
    e8c0:	e0bffc17 	ldw	r2,-16(fp)
    e8c4:	100009c5 	stb	zero,39(r2)

    /* Have the timer routines tried to scroll while we were painting?
     * If not then we can exit */
    if (sp->scrollpos == old_scrollpos)
    e8c8:	e0bffc17 	ldw	r2,-16(fp)
    e8cc:	10800943 	ldbu	r2,37(r2)
    e8d0:	10c03fcc 	andi	r3,r2,255
    e8d4:	18c0201c 	xori	r3,r3,128
    e8d8:	18ffe004 	addi	r3,r3,-128
    e8dc:	e0bff517 	ldw	r2,-44(fp)
    e8e0:	18800426 	beq	r3,r2,e8f4 <altera_avalon_lcd_16207_write+0x518>
      break;

    /* We need to repaint again since the display scrolled while we were
     * painting last time */
    sp->active = 1;
    e8e4:	e0fffc17 	ldw	r3,-16(fp)
    e8e8:	00800044 	movi	r2,1
    e8ec:	188009c5 	stb	r2,39(r3)
  }
    e8f0:	003feb06 	br	e8a0 <altera_avalon_lcd_16207_write+0x4c4>
   * semaphore so that other threads can access the buffer.
   */

  ALT_SEM_POST (sp->write_lock);

  return len;
    e8f4:	e0bffe17 	ldw	r2,-8(fp)
}
    e8f8:	e037883a 	mov	sp,fp
    e8fc:	dfc00417 	ldw	ra,16(sp)
    e900:	df000317 	ldw	fp,12(sp)
    e904:	dc800217 	ldw	r18,8(sp)
    e908:	dc400117 	ldw	r17,4(sp)
    e90c:	dc000017 	ldw	r16,0(sp)
    e910:	dec00504 	addi	sp,sp,20
    e914:	f800283a 	ret

0000e918 <alt_lcd_16207_timeout>:
/*
 * Timeout routine is called every second
 */

static alt_u32 alt_lcd_16207_timeout(void* context) 
{
    e918:	defffc04 	addi	sp,sp,-16
    e91c:	dfc00315 	stw	ra,12(sp)
    e920:	df000215 	stw	fp,8(sp)
    e924:	df000204 	addi	fp,sp,8
    e928:	e13fff15 	stw	r4,-4(fp)
  altera_avalon_lcd_16207_state* sp = (altera_avalon_lcd_16207_state*)context;
    e92c:	e0bfff17 	ldw	r2,-4(fp)
    e930:	e0bffe15 	stw	r2,-8(fp)

  /* Update the scrolling position */
  if (sp->scrollpos + 1 >= sp->scrollmax)
    e934:	e0bffe17 	ldw	r2,-8(fp)
    e938:	10800943 	ldbu	r2,37(r2)
    e93c:	10803fcc 	andi	r2,r2,255
    e940:	1080201c 	xori	r2,r2,128
    e944:	10bfe004 	addi	r2,r2,-128
    e948:	10c00044 	addi	r3,r2,1
    e94c:	e0bffe17 	ldw	r2,-8(fp)
    e950:	10800983 	ldbu	r2,38(r2)
    e954:	10803fcc 	andi	r2,r2,255
    e958:	1080201c 	xori	r2,r2,128
    e95c:	10bfe004 	addi	r2,r2,-128
    e960:	18800316 	blt	r3,r2,e970 <alt_lcd_16207_timeout+0x58>
    sp->scrollpos = 0;
    e964:	e0bffe17 	ldw	r2,-8(fp)
    e968:	10000945 	stb	zero,37(r2)
    e96c:	00000606 	br	e988 <alt_lcd_16207_timeout+0x70>
  else
    sp->scrollpos = sp->scrollpos + 1;
    e970:	e0bffe17 	ldw	r2,-8(fp)
    e974:	10800943 	ldbu	r2,37(r2)
    e978:	10800044 	addi	r2,r2,1
    e97c:	1007883a 	mov	r3,r2
    e980:	e0bffe17 	ldw	r2,-8(fp)
    e984:	10c00945 	stb	r3,37(r2)

  /* Repaint the panel unless the foreground will do it again soon */
  if (sp->scrollmax > 0 && !sp->active)
    e988:	e0bffe17 	ldw	r2,-8(fp)
    e98c:	10800983 	ldbu	r2,38(r2)
    e990:	10803fcc 	andi	r2,r2,255
    e994:	1080201c 	xori	r2,r2,128
    e998:	10bfe004 	addi	r2,r2,-128
    e99c:	10800050 	cmplti	r2,r2,1
    e9a0:	1000091e 	bne	r2,zero,e9c8 <alt_lcd_16207_timeout+0xb0>
    e9a4:	e0bffe17 	ldw	r2,-8(fp)
    e9a8:	108009c3 	ldbu	r2,39(r2)
    e9ac:	10803fcc 	andi	r2,r2,255
    e9b0:	1080201c 	xori	r2,r2,128
    e9b4:	10bfe004 	addi	r2,r2,-128
    e9b8:	1004c03a 	cmpne	r2,r2,zero
    e9bc:	1000021e 	bne	r2,zero,e9c8 <alt_lcd_16207_timeout+0xb0>
    lcd_repaint_screen(sp);
    e9c0:	e13ffe17 	ldw	r4,-8(fp)
    e9c4:	000de040 	call	de04 <lcd_repaint_screen>

  return sp->period;
    e9c8:	e0bffe17 	ldw	r2,-8(fp)
    e9cc:	10800717 	ldw	r2,28(r2)
}
    e9d0:	e037883a 	mov	sp,fp
    e9d4:	dfc00117 	ldw	ra,4(sp)
    e9d8:	df000017 	ldw	fp,0(sp)
    e9dc:	dec00204 	addi	sp,sp,8
    e9e0:	f800283a 	ret

0000e9e4 <altera_avalon_lcd_16207_init>:

/*
 * Called at boot time to initialise the LCD driver
 */
void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp)
{
    e9e4:	defffc04 	addi	sp,sp,-16
    e9e8:	dfc00315 	stw	ra,12(sp)
    e9ec:	df000215 	stw	fp,8(sp)
    e9f0:	df000204 	addi	fp,sp,8
    e9f4:	e13fff15 	stw	r4,-4(fp)
  unsigned int base = sp->base;
    e9f8:	e0bfff17 	ldw	r2,-4(fp)
    e9fc:	10800017 	ldw	r2,0(r2)
    ea00:	e0bffe15 	stw	r2,-8(fp)

  /* Mark the device as functional */
  sp->broken = 0;
    ea04:	e0bfff17 	ldw	r2,-4(fp)
    ea08:	10000805 	stb	zero,32(r2)
   * the BUSY bit in the status register doesn't work until the display
   * has been reset three times.
   */

  /* Wait for 15 ms then reset */
  usleep(15000);
    ea0c:	010ea604 	movi	r4,15000
    ea10:	000ce780 	call	ce78 <usleep>
  IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT);
    ea14:	e0bffe17 	ldw	r2,-8(fp)
    ea18:	1007883a 	mov	r3,r2
    ea1c:	00800c04 	movi	r2,48
    ea20:	18800035 	stwio	r2,0(r3)

  /* Wait for another 4.1ms and reset again */
  usleep(4100);  
    ea24:	01040104 	movi	r4,4100
    ea28:	000ce780 	call	ce78 <usleep>
  IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT);
    ea2c:	e0bffe17 	ldw	r2,-8(fp)
    ea30:	1007883a 	mov	r3,r2
    ea34:	00800c04 	movi	r2,48
    ea38:	18800035 	stwio	r2,0(r3)

  /* Wait a further 1 ms and reset a third time */
  usleep(1000);
    ea3c:	0100fa04 	movi	r4,1000
    ea40:	000ce780 	call	ce78 <usleep>
  IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT);
    ea44:	e0bffe17 	ldw	r2,-8(fp)
    ea48:	1007883a 	mov	r3,r2
    ea4c:	00800c04 	movi	r2,48
    ea50:	18800035 	stwio	r2,0(r3)

  /* Setup interface parameters: 8 bit bus, 2 rows, 5x7 font */
  lcd_write_command(sp, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT | LCD_CMD_TWO_LINE);
    ea54:	e13fff17 	ldw	r4,-4(fp)
    ea58:	01400e04 	movi	r5,56
    ea5c:	000dba00 	call	dba0 <lcd_write_command>
  
  /* Turn display off */
  lcd_write_command(sp, LCD_CMD_ONOFF);
    ea60:	e13fff17 	ldw	r4,-4(fp)
    ea64:	01400204 	movi	r5,8
    ea68:	000dba00 	call	dba0 <lcd_write_command>

  /* Clear display */
  lcd_clear_screen(sp);
    ea6c:	e13fff17 	ldw	r4,-4(fp)
    ea70:	000dd2c0 	call	dd2c <lcd_clear_screen>
  
  /* Set mode: increment after writing, don't shift display */
  lcd_write_command(sp, LCD_CMD_MODES | LCD_CMD_MODE_INC);
    ea74:	e13fff17 	ldw	r4,-4(fp)
    ea78:	01400184 	movi	r5,6
    ea7c:	000dba00 	call	dba0 <lcd_write_command>

  /* Turn display on */
  lcd_write_command(sp, LCD_CMD_ONOFF | LCD_CMD_ENABLE_DISP);
    ea80:	e13fff17 	ldw	r4,-4(fp)
    ea84:	01400304 	movi	r5,12
    ea88:	000dba00 	call	dba0 <lcd_write_command>

  sp->esccount = -1;
    ea8c:	e0ffff17 	ldw	r3,-4(fp)
    ea90:	00bfffc4 	movi	r2,-1
    ea94:	18800905 	stb	r2,36(r3)
  memset(sp->escape, 0, sizeof(sp->escape));
    ea98:	e0bfff17 	ldw	r2,-4(fp)
    ea9c:	11000a04 	addi	r4,r2,40
    eaa0:	000b883a 	mov	r5,zero
    eaa4:	01800204 	movi	r6,8
    eaa8:	00081940 	call	8194 <memset>

  sp->scrollpos = 0;
    eaac:	e0bfff17 	ldw	r2,-4(fp)
    eab0:	10000945 	stb	zero,37(r2)
  sp->scrollmax = 0;
    eab4:	e0bfff17 	ldw	r2,-4(fp)
    eab8:	10000985 	stb	zero,38(r2)
  sp->active = 0;
    eabc:	e0bfff17 	ldw	r2,-4(fp)
    eac0:	100009c5 	stb	zero,39(r2)
    eac4:	00800074 	movhi	r2,1
    eac8:	108f8104 	addi	r2,r2,15876
    eacc:	10800017 	ldw	r2,0(r2)
    ead0:	1009883a 	mov	r4,r2

  sp->period = alt_ticks_per_second() / 10; /* Call every 100ms */
    ead4:	01400284 	movi	r5,10
    ead8:	0002c140 	call	2c14 <__udivsi3>
    eadc:	1007883a 	mov	r3,r2
    eae0:	e0bfff17 	ldw	r2,-4(fp)
    eae4:	10c00715 	stw	r3,28(r2)

  alt_alarm_start(&sp->alarm, sp->period, &alt_lcd_16207_timeout, sp);
    eae8:	e0bfff17 	ldw	r2,-4(fp)
    eaec:	11000104 	addi	r4,r2,4
    eaf0:	e0bfff17 	ldw	r2,-4(fp)
    eaf4:	10800717 	ldw	r2,28(r2)
    eaf8:	100b883a 	mov	r5,r2
    eafc:	01800074 	movhi	r6,1
    eb00:	31ba4604 	addi	r6,r6,-5864
    eb04:	e1ffff17 	ldw	r7,-4(fp)
    eb08:	000eb780 	call	eb78 <alt_alarm_start>
}
    eb0c:	e037883a 	mov	sp,fp
    eb10:	dfc00117 	ldw	ra,4(sp)
    eb14:	df000017 	ldw	fp,0(sp)
    eb18:	dec00204 	addi	sp,sp,8
    eb1c:	f800283a 	ret

0000eb20 <altera_avalon_lcd_16207_write_fd>:
extern int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp,
  const char* ptr, int count, int flags);

int 
altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* buffer, int space)
{
    eb20:	defffa04 	addi	sp,sp,-24
    eb24:	dfc00515 	stw	ra,20(sp)
    eb28:	df000415 	stw	fp,16(sp)
    eb2c:	df000404 	addi	fp,sp,16
    eb30:	e13ffd15 	stw	r4,-12(fp)
    eb34:	e17ffe15 	stw	r5,-8(fp)
    eb38:	e1bfff15 	stw	r6,-4(fp)
    altera_avalon_lcd_16207_dev* dev = (altera_avalon_lcd_16207_dev*) fd->dev; 
    eb3c:	e0bffd17 	ldw	r2,-12(fp)
    eb40:	10800017 	ldw	r2,0(r2)
    eb44:	e0bffc15 	stw	r2,-16(fp)

    return altera_avalon_lcd_16207_write(&dev->state, buffer, space,
    eb48:	e0bffc17 	ldw	r2,-16(fp)
    eb4c:	11000a04 	addi	r4,r2,40
    eb50:	e0bffd17 	ldw	r2,-12(fp)
    eb54:	11c00217 	ldw	r7,8(r2)
    eb58:	e17ffe17 	ldw	r5,-8(fp)
    eb5c:	e1bfff17 	ldw	r6,-4(fp)
    eb60:	000e3dc0 	call	e3dc <altera_avalon_lcd_16207_write>
      fd->fd_flags);
}
    eb64:	e037883a 	mov	sp,fp
    eb68:	dfc00117 	ldw	ra,4(sp)
    eb6c:	df000017 	ldw	fp,0(sp)
    eb70:	dec00204 	addi	sp,sp,8
    eb74:	f800283a 	ret

0000eb78 <alt_alarm_start>:
 */ 

int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks,
                     alt_u32 (*callback) (void* context),
                     void* context)
{
    eb78:	defff404 	addi	sp,sp,-48
    eb7c:	df000b15 	stw	fp,44(sp)
    eb80:	df000b04 	addi	fp,sp,44
    eb84:	e13ffb15 	stw	r4,-20(fp)
    eb88:	e17ffc15 	stw	r5,-16(fp)
    eb8c:	e1bffd15 	stw	r6,-12(fp)
    eb90:	e1fffe15 	stw	r7,-8(fp)
  alt_irq_context irq_context;
  alt_u32 current_nticks = 0;
    eb94:	e03ff915 	stw	zero,-28(fp)
    eb98:	00800074 	movhi	r2,1
    eb9c:	108f8104 	addi	r2,r2,15876
    eba0:	10800017 	ldw	r2,0(r2)
  
  if (alt_ticks_per_second ())
    eba4:	1005003a 	cmpeq	r2,r2,zero
    eba8:	1000411e 	bne	r2,zero,ecb0 <alt_alarm_start+0x138>
  {
    if (alarm)
    ebac:	e0bffb17 	ldw	r2,-20(fp)
    ebb0:	1005003a 	cmpeq	r2,r2,zero
    ebb4:	10003b1e 	bne	r2,zero,eca4 <alt_alarm_start+0x12c>
    {
      alarm->callback = callback;
    ebb8:	e0fffb17 	ldw	r3,-20(fp)
    ebbc:	e0bffd17 	ldw	r2,-12(fp)
    ebc0:	18800315 	stw	r2,12(r3)
      alarm->context  = context;
    ebc4:	e0fffb17 	ldw	r3,-20(fp)
    ebc8:	e0bffe17 	ldw	r2,-8(fp)
    ebcc:	18800515 	stw	r2,20(r3)
static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE 
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
    ebd0:	0005303a 	rdctl	r2,status
    ebd4:	e0bff815 	stw	r2,-32(fp)

  NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK);
    ebd8:	e0fff817 	ldw	r3,-32(fp)
    ebdc:	00bfff84 	movi	r2,-2
    ebe0:	1884703a 	and	r2,r3,r2
    ebe4:	1001703a 	wrctl	status,r2
  
  return context;
    ebe8:	e0bff817 	ldw	r2,-32(fp)
 
      irq_context = alt_irq_disable_all ();
    ebec:	e0bffa15 	stw	r2,-24(fp)
 * alt_nticks() returns the elapsed number of system clock ticks since reset.
 */

static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void)
{
  return _alt_nticks;
    ebf0:	00800074 	movhi	r2,1
    ebf4:	108f8204 	addi	r2,r2,15880
    ebf8:	10800017 	ldw	r2,0(r2)
      
      current_nticks = alt_nticks();
    ebfc:	e0bff915 	stw	r2,-28(fp)
      
      alarm->time = nticks + current_nticks + 1; 
    ec00:	e0fffc17 	ldw	r3,-16(fp)
    ec04:	e0bff917 	ldw	r2,-28(fp)
    ec08:	1885883a 	add	r2,r3,r2
    ec0c:	10c00044 	addi	r3,r2,1
    ec10:	e0bffb17 	ldw	r2,-20(fp)
    ec14:	10c00215 	stw	r3,8(r2)
      /* 
       * If the desired alarm time causes a roll-over, set the rollover
       * flag. This will prevent the subsequent tick event from causing
       * an alarm too early.
       */
      if(alarm->time < current_nticks)
    ec18:	e0bffb17 	ldw	r2,-20(fp)
    ec1c:	10c00217 	ldw	r3,8(r2)
    ec20:	e0bff917 	ldw	r2,-28(fp)
    ec24:	1880042e 	bgeu	r3,r2,ec38 <alt_alarm_start+0xc0>
      {
        alarm->rollover = 1;
    ec28:	e0fffb17 	ldw	r3,-20(fp)
    ec2c:	00800044 	movi	r2,1
    ec30:	18800405 	stb	r2,16(r3)
    ec34:	00000206 	br	ec40 <alt_alarm_start+0xc8>
      }
      else
      {
        alarm->rollover = 0;
    ec38:	e0bffb17 	ldw	r2,-20(fp)
    ec3c:	10000405 	stb	zero,16(r2)
      }
    
      alt_llist_insert (&alt_alarm_list, &alarm->llist);
    ec40:	e0fffb17 	ldw	r3,-20(fp)
    ec44:	00800074 	movhi	r2,1
    ec48:	10888d04 	addi	r2,r2,8756
    ec4c:	e0bff615 	stw	r2,-40(fp)
    ec50:	e0fff715 	stw	r3,-36(fp)
 */

static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, 
                alt_llist* entry)
{
  entry->previous = list;
    ec54:	e0fff717 	ldw	r3,-36(fp)
    ec58:	e0bff617 	ldw	r2,-40(fp)
    ec5c:	18800115 	stw	r2,4(r3)
  entry->next     = list->next;
    ec60:	e0bff617 	ldw	r2,-40(fp)
    ec64:	10c00017 	ldw	r3,0(r2)
    ec68:	e0bff717 	ldw	r2,-36(fp)
    ec6c:	10c00015 	stw	r3,0(r2)

  list->next->previous = entry;
    ec70:	e0bff617 	ldw	r2,-40(fp)
    ec74:	10c00017 	ldw	r3,0(r2)
    ec78:	e0bff717 	ldw	r2,-36(fp)
    ec7c:	18800115 	stw	r2,4(r3)
  list->next           = entry;
    ec80:	e0fff617 	ldw	r3,-40(fp)
    ec84:	e0bff717 	ldw	r2,-36(fp)
    ec88:	18800015 	stw	r2,0(r3)
    ec8c:	e0bffa17 	ldw	r2,-24(fp)
    ec90:	e0bff515 	stw	r2,-44(fp)
  status &= ~NIOS2_STATUS_PIE_MSK;
  status |= (context & NIOS2_STATUS_PIE_MSK);
  
  NIOS2_WRITE_STATUS (status);
#else
  NIOS2_WRITE_STATUS (context);
    ec94:	e0bff517 	ldw	r2,-44(fp)
    ec98:	1001703a 	wrctl	status,r2
      alt_irq_enable_all (irq_context);

      return 0;
    ec9c:	e03fff15 	stw	zero,-4(fp)
    eca0:	00000506 	br	ecb8 <alt_alarm_start+0x140>
    }
    else
    {
      return -EINVAL;
    eca4:	00bffa84 	movi	r2,-22
    eca8:	e0bfff15 	stw	r2,-4(fp)
    ecac:	00000206 	br	ecb8 <alt_alarm_start+0x140>
    }
  }
  else
  {
    return -ENOTSUP;
    ecb0:	00bfde84 	movi	r2,-134
    ecb4:	e0bfff15 	stw	r2,-4(fp)
    ecb8:	e0bfff17 	ldw	r2,-4(fp)
  }
}
    ecbc:	e037883a 	mov	sp,fp
    ecc0:	df000017 	ldw	fp,0(sp)
    ecc4:	dec00104 	addi	sp,sp,4
    ecc8:	f800283a 	ret

0000eccc <alt_busy_sleep>:
#include "alt_types.h"

#include "priv/alt_busy_sleep.h"

unsigned int alt_busy_sleep (unsigned int us)
{
    eccc:	defffa04 	addi	sp,sp,-24
    ecd0:	dfc00515 	stw	ra,20(sp)
    ecd4:	df000415 	stw	fp,16(sp)
    ecd8:	df000404 	addi	fp,sp,16
    ecdc:	e13fff15 	stw	r4,-4(fp)
  int big_loops;
  alt_u32 cycles_per_loop;
  
  if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny"))
  {
    cycles_per_loop = 9;
    ece0:	00800244 	movi	r2,9
    ece4:	e0bffc15 	stw	r2,-16(fp)
  {
    cycles_per_loop = 3;
  }
  

  big_loops = us / (INT_MAX/
    ece8:	e13ffc17 	ldw	r4,-16(fp)
    ecec:	014003f4 	movhi	r5,15
    ecf0:	29509004 	addi	r5,r5,16960
    ecf4:	0002c240 	call	2c24 <__mulsi3>
    ecf8:	100b883a 	mov	r5,r2
    ecfc:	0100bef4 	movhi	r4,763
    ed00:	213c2004 	addi	r4,r4,-3968
    ed04:	0002c140 	call	2c14 <__udivsi3>
    ed08:	100b883a 	mov	r5,r2
    ed0c:	01200034 	movhi	r4,32768
    ed10:	213fffc4 	addi	r4,r4,-1
    ed14:	0002c140 	call	2c14 <__udivsi3>
    ed18:	100b883a 	mov	r5,r2
    ed1c:	e13fff17 	ldw	r4,-4(fp)
    ed20:	0002c140 	call	2c14 <__udivsi3>
    ed24:	e0bffd15 	stw	r2,-12(fp)
  (ALT_CPU_FREQ/(cycles_per_loop * 1000000)));

  if (big_loops)
    ed28:	e0bffd17 	ldw	r2,-12(fp)
    ed2c:	1005003a 	cmpeq	r2,r2,zero
    ed30:	10002a1e 	bne	r2,zero,eddc <alt_busy_sleep+0x110>
  {
    for(i=0;i<big_loops;i++)
    ed34:	e03ffe15 	stw	zero,-8(fp)
    ed38:	00001706 	br	ed98 <alt_busy_sleep+0xcc>
      /*
      * Do NOT Try to single step the asm statement below 
      * (single step will never return)
      * Step out of this function or set a breakpoint after the asm statements
      */
      __asm__ volatile (
    ed3c:	00a00034 	movhi	r2,32768
    ed40:	10bfffc4 	addi	r2,r2,-1
    ed44:	10bfffc4 	addi	r2,r2,-1
    ed48:	103ffe1e 	bne	r2,zero,ed44 <alt_busy_sleep+0x78>
        "\n1:"
        "\n\t.pushsection .debug_alt_sim_info"
        "\n\t.int 4, 0, 0b, 1b"
        "\n\t.popsection"
        :: "r" (INT_MAX));
      us -= (INT_MAX/(ALT_CPU_FREQ/
    ed4c:	e13ffc17 	ldw	r4,-16(fp)
    ed50:	014003f4 	movhi	r5,15
    ed54:	29509004 	addi	r5,r5,16960
    ed58:	0002c240 	call	2c24 <__mulsi3>
    ed5c:	100b883a 	mov	r5,r2
    ed60:	0100bef4 	movhi	r4,763
    ed64:	213c2004 	addi	r4,r4,-3968
    ed68:	0002c140 	call	2c14 <__udivsi3>
    ed6c:	100b883a 	mov	r5,r2
    ed70:	01200034 	movhi	r4,32768
    ed74:	213fffc4 	addi	r4,r4,-1
    ed78:	0002c140 	call	2c14 <__udivsi3>
    ed7c:	1007883a 	mov	r3,r2
    ed80:	e0bfff17 	ldw	r2,-4(fp)
    ed84:	10c5c83a 	sub	r2,r2,r3
    ed88:	e0bfff15 	stw	r2,-4(fp)
  big_loops = us / (INT_MAX/
  (ALT_CPU_FREQ/(cycles_per_loop * 1000000)));

  if (big_loops)
  {
    for(i=0;i<big_loops;i++)
    ed8c:	e0bffe17 	ldw	r2,-8(fp)
    ed90:	10800044 	addi	r2,r2,1
    ed94:	e0bffe15 	stw	r2,-8(fp)
    ed98:	e0fffe17 	ldw	r3,-8(fp)
    ed9c:	e0bffd17 	ldw	r2,-12(fp)
    eda0:	18bfe616 	blt	r3,r2,ed3c <alt_busy_sleep+0x70>
    /*
    * Do NOT Try to single step the asm statement below 
    * (single step will never return)
    * Step out of this function or set a breakpoint after the asm statements
    */
    __asm__ volatile (
    eda4:	e13ffc17 	ldw	r4,-16(fp)
    eda8:	014003f4 	movhi	r5,15
    edac:	29509004 	addi	r5,r5,16960
    edb0:	0002c240 	call	2c24 <__mulsi3>
    edb4:	100b883a 	mov	r5,r2
    edb8:	0100bef4 	movhi	r4,763
    edbc:	213c2004 	addi	r4,r4,-3968
    edc0:	0002c140 	call	2c14 <__udivsi3>
    edc4:	1009883a 	mov	r4,r2
    edc8:	e17fff17 	ldw	r5,-4(fp)
    edcc:	0002c240 	call	2c24 <__mulsi3>
    edd0:	10bfffc4 	addi	r2,r2,-1
    edd4:	103ffe1e 	bne	r2,zero,edd0 <alt_busy_sleep+0x104>
    edd8:	00000d06 	br	ee10 <alt_busy_sleep+0x144>
    /*
    * Do NOT Try to single step the asm statement below 
    * (single step will never return)
    * Step out of this function or set a breakpoint after the asm statements
    */
    __asm__ volatile (
    eddc:	e13ffc17 	ldw	r4,-16(fp)
    ede0:	014003f4 	movhi	r5,15
    ede4:	29509004 	addi	r5,r5,16960
    ede8:	0002c240 	call	2c24 <__mulsi3>
    edec:	100b883a 	mov	r5,r2
    edf0:	0100bef4 	movhi	r4,763
    edf4:	213c2004 	addi	r4,r4,-3968
    edf8:	0002c140 	call	2c14 <__udivsi3>
    edfc:	1009883a 	mov	r4,r2
    ee00:	e17fff17 	ldw	r5,-4(fp)
    ee04:	0002c240 	call	2c24 <__mulsi3>
    ee08:	10bfffc4 	addi	r2,r2,-1
    ee0c:	00bffe16 	blt	zero,r2,ee08 <alt_busy_sleep+0x13c>
      "\n\t.int 4, 0, 0b, 1b"
      "\n\t.popsection"
      :: "r" (us*(ALT_CPU_FREQ/(cycles_per_loop * 1000000))));
  }
#endif /* #ifndef ALT_SIM_OPTIMIZE */
  return 0;
    ee10:	0005883a 	mov	r2,zero
}
    ee14:	e037883a 	mov	sp,fp
    ee18:	dfc00117 	ldw	ra,4(sp)
    ee1c:	df000017 	ldw	fp,0(sp)
    ee20:	dec00204 	addi	sp,sp,8
    ee24:	f800283a 	ret

0000ee28 <alt_dcache_flush_all>:
/*
 * alt_dcache_flush_all() is called to flush the entire data cache.
 */

void alt_dcache_flush_all (void)
{
    ee28:	deffff04 	addi	sp,sp,-4
    ee2c:	df000015 	stw	fp,0(sp)
    ee30:	d839883a 	mov	fp,sp
  for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE)
  { 
    __asm__ volatile ("flushd (%0)" :: "r" (i));
  }
#endif /* NIOS2_DCACHE_SIZE > 0 */
}
    ee34:	e037883a 	mov	sp,fp
    ee38:	df000017 	ldw	fp,0(sp)
    ee3c:	dec00104 	addi	sp,sp,4
    ee40:	f800283a 	ret

0000ee44 <alt_dev_llist_insert>:
/*
 *
 */

int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list)
{
    ee44:	defff904 	addi	sp,sp,-28
    ee48:	dfc00615 	stw	ra,24(sp)
    ee4c:	df000515 	stw	fp,20(sp)
    ee50:	df000504 	addi	fp,sp,20
    ee54:	e13ffd15 	stw	r4,-12(fp)
    ee58:	e17ffe15 	stw	r5,-8(fp)
  /*
   * check that the device exists, and that it has a valid name.
   */

  if (!dev || !dev->name)
    ee5c:	e0bffd17 	ldw	r2,-12(fp)
    ee60:	1005003a 	cmpeq	r2,r2,zero
    ee64:	1000041e 	bne	r2,zero,ee78 <alt_dev_llist_insert+0x34>
    ee68:	e0bffd17 	ldw	r2,-12(fp)
    ee6c:	10800217 	ldw	r2,8(r2)
    ee70:	1004c03a 	cmpne	r2,r2,zero
    ee74:	1000071e 	bne	r2,zero,ee94 <alt_dev_llist_insert+0x50>
  {
    ALT_ERRNO = EINVAL;
    ee78:	000eef80 	call	eef8 <alt_get_errno>
    ee7c:	1007883a 	mov	r3,r2
    ee80:	00800584 	movi	r2,22
    ee84:	18800015 	stw	r2,0(r3)
    return -EINVAL;
    ee88:	00bffa84 	movi	r2,-22
    ee8c:	e0bfff15 	stw	r2,-4(fp)
    ee90:	00001306 	br	eee0 <alt_dev_llist_insert+0x9c>
  
  /*
   * register the device.
   */
  
  alt_llist_insert(list, &dev->llist);
    ee94:	e0fffd17 	ldw	r3,-12(fp)
    ee98:	e0bffe17 	ldw	r2,-8(fp)
    ee9c:	e0bffb15 	stw	r2,-20(fp)
    eea0:	e0fffc15 	stw	r3,-16(fp)
 */

static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, 
                alt_llist* entry)
{
  entry->previous = list;
    eea4:	e0fffc17 	ldw	r3,-16(fp)
    eea8:	e0bffb17 	ldw	r2,-20(fp)
    eeac:	18800115 	stw	r2,4(r3)
  entry->next     = list->next;
    eeb0:	e0bffb17 	ldw	r2,-20(fp)
    eeb4:	10c00017 	ldw	r3,0(r2)
    eeb8:	e0bffc17 	ldw	r2,-16(fp)
    eebc:	10c00015 	stw	r3,0(r2)

  list->next->previous = entry;
    eec0:	e0bffb17 	ldw	r2,-20(fp)
    eec4:	10c00017 	ldw	r3,0(r2)
    eec8:	e0bffc17 	ldw	r2,-16(fp)
    eecc:	18800115 	stw	r2,4(r3)
  list->next           = entry;
    eed0:	e0fffb17 	ldw	r3,-20(fp)
    eed4:	e0bffc17 	ldw	r2,-16(fp)
    eed8:	18800015 	stw	r2,0(r3)

  return 0;  
    eedc:	e03fff15 	stw	zero,-4(fp)
    eee0:	e0bfff17 	ldw	r2,-4(fp)
}
    eee4:	e037883a 	mov	sp,fp
    eee8:	dfc00117 	ldw	ra,4(sp)
    eeec:	df000017 	ldw	fp,0(sp)
    eef0:	dec00204 	addi	sp,sp,8
    eef4:	f800283a 	ret

0000eef8 <alt_get_errno>:
#undef errno

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
    eef8:	defffd04 	addi	sp,sp,-12
    eefc:	dfc00215 	stw	ra,8(sp)
    ef00:	df000115 	stw	fp,4(sp)
    ef04:	df000104 	addi	fp,sp,4
  return ((alt_errno) ? alt_errno() : &errno);
    ef08:	00800074 	movhi	r2,1
    ef0c:	10888904 	addi	r2,r2,8740
    ef10:	10800017 	ldw	r2,0(r2)
    ef14:	1005003a 	cmpeq	r2,r2,zero
    ef18:	1000061e 	bne	r2,zero,ef34 <alt_get_errno+0x3c>
    ef1c:	00800074 	movhi	r2,1
    ef20:	10888904 	addi	r2,r2,8740
    ef24:	10800017 	ldw	r2,0(r2)
    ef28:	103ee83a 	callr	r2
    ef2c:	e0bfff15 	stw	r2,-4(fp)
    ef30:	00000306 	br	ef40 <alt_get_errno+0x48>
    ef34:	00800074 	movhi	r2,1
    ef38:	108f7c04 	addi	r2,r2,15856
    ef3c:	e0bfff15 	stw	r2,-4(fp)
    ef40:	e0bfff17 	ldw	r2,-4(fp)
}
    ef44:	e037883a 	mov	sp,fp
    ef48:	dfc00117 	ldw	ra,4(sp)
    ef4c:	df000017 	ldw	fp,0(sp)
    ef50:	dec00204 	addi	sp,sp,8
    ef54:	f800283a 	ret

0000ef58 <_do_ctors>:
/*
 * Run the C++ static constructors.
 */

void _do_ctors(void)
{
    ef58:	defffd04 	addi	sp,sp,-12
    ef5c:	dfc00215 	stw	ra,8(sp)
    ef60:	df000115 	stw	fp,4(sp)
    ef64:	df000104 	addi	fp,sp,4
  constructor* ctor;

  for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--)
    ef68:	00bfff04 	movi	r2,-4
    ef6c:	00c00074 	movhi	r3,1
    ef70:	18ffe404 	addi	r3,r3,-112
    ef74:	1885883a 	add	r2,r3,r2
    ef78:	e0bfff15 	stw	r2,-4(fp)
    ef7c:	00000606 	br	ef98 <_do_ctors+0x40>
        (*ctor) (); 
    ef80:	e0bfff17 	ldw	r2,-4(fp)
    ef84:	10800017 	ldw	r2,0(r2)
    ef88:	103ee83a 	callr	r2

void _do_ctors(void)
{
  constructor* ctor;

  for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--)
    ef8c:	e0bfff17 	ldw	r2,-4(fp)
    ef90:	10bfff04 	addi	r2,r2,-4
    ef94:	e0bfff15 	stw	r2,-4(fp)
    ef98:	e0ffff17 	ldw	r3,-4(fp)
    ef9c:	00800074 	movhi	r2,1
    efa0:	10bfe304 	addi	r2,r2,-116
    efa4:	18bff62e 	bgeu	r3,r2,ef80 <_do_ctors+0x28>
        (*ctor) (); 
}
    efa8:	e037883a 	mov	sp,fp
    efac:	dfc00117 	ldw	ra,4(sp)
    efb0:	df000017 	ldw	fp,0(sp)
    efb4:	dec00204 	addi	sp,sp,8
    efb8:	f800283a 	ret

0000efbc <_do_dtors>:
/*
 * Run the C++ static destructors.
 */

void _do_dtors(void)
{
    efbc:	defffd04 	addi	sp,sp,-12
    efc0:	dfc00215 	stw	ra,8(sp)
    efc4:	df000115 	stw	fp,4(sp)
    efc8:	df000104 	addi	fp,sp,4
  destructor* dtor;

  for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--)
    efcc:	00bfff04 	movi	r2,-4
    efd0:	00c00074 	movhi	r3,1
    efd4:	18ffe404 	addi	r3,r3,-112
    efd8:	1885883a 	add	r2,r3,r2
    efdc:	e0bfff15 	stw	r2,-4(fp)
    efe0:	00000606 	br	effc <_do_dtors+0x40>
        (*dtor) (); 
    efe4:	e0bfff17 	ldw	r2,-4(fp)
    efe8:	10800017 	ldw	r2,0(r2)
    efec:	103ee83a 	callr	r2

void _do_dtors(void)
{
  destructor* dtor;

  for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--)
    eff0:	e0bfff17 	ldw	r2,-4(fp)
    eff4:	10bfff04 	addi	r2,r2,-4
    eff8:	e0bfff15 	stw	r2,-4(fp)
    effc:	e0ffff17 	ldw	r3,-4(fp)
    f000:	00800074 	movhi	r2,1
    f004:	10bfe404 	addi	r2,r2,-112
    f008:	18bff62e 	bgeu	r3,r2,efe4 <_do_dtors+0x28>
        (*dtor) (); 
}
    f00c:	e037883a 	mov	sp,fp
    f010:	dfc00117 	ldw	ra,4(sp)
    f014:	df000017 	ldw	fp,0(sp)
    f018:	dec00204 	addi	sp,sp,8
    f01c:	f800283a 	ret

0000f020 <alt_icache_flush_all>:
/*
 * alt_icache_flush_all() is called to flush the entire instruction cache.
 */

void alt_icache_flush_all (void)
{
    f020:	deffff04 	addi	sp,sp,-4
    f024:	df000015 	stw	fp,0(sp)
    f028:	d839883a 	mov	fp,sp
#if NIOS2_ICACHE_SIZE > 0
  alt_icache_flush (0, NIOS2_ICACHE_SIZE);
#endif
}
    f02c:	e037883a 	mov	sp,fp
    f030:	df000017 	ldw	fp,0(sp)
    f034:	dec00104 	addi	sp,sp,4
    f038:	f800283a 	ret

0000f03c <alt_ic_isr_register>:
  * @param irq              IRQ number
  * @return                 0 if successful, else error (-1)
  */
int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, 
  void *isr_context, void *flags)
{
    f03c:	defff904 	addi	sp,sp,-28
    f040:	dfc00615 	stw	ra,24(sp)
    f044:	df000515 	stw	fp,20(sp)
    f048:	df000504 	addi	fp,sp,20
    f04c:	e13ffc15 	stw	r4,-16(fp)
    f050:	e17ffd15 	stw	r5,-12(fp)
    f054:	e1bffe15 	stw	r6,-8(fp)
    f058:	e1ffff15 	stw	r7,-4(fp)
    return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags);
    f05c:	e0800217 	ldw	r2,8(fp)
    f060:	d8800015 	stw	r2,0(sp)
    f064:	e13ffc17 	ldw	r4,-16(fp)
    f068:	e17ffd17 	ldw	r5,-12(fp)
    f06c:	e1bffe17 	ldw	r6,-8(fp)
    f070:	e1ffff17 	ldw	r7,-4(fp)
    f074:	000f2100 	call	f210 <alt_iic_isr_register>
}  
    f078:	e037883a 	mov	sp,fp
    f07c:	dfc00117 	ldw	ra,4(sp)
    f080:	df000017 	ldw	fp,0(sp)
    f084:	dec00204 	addi	sp,sp,8
    f088:	f800283a 	ret

0000f08c <alt_ic_irq_enable>:
  * @param ic_id            Ignored.
  * @param irq              IRQ number
  * @return                 0 if successful, else error (-1)
  */
int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq)
{
    f08c:	defff904 	addi	sp,sp,-28
    f090:	df000615 	stw	fp,24(sp)
    f094:	df000604 	addi	fp,sp,24
    f098:	e13ffe15 	stw	r4,-8(fp)
    f09c:	e17fff15 	stw	r5,-4(fp)
    f0a0:	e0bfff17 	ldw	r2,-4(fp)
    f0a4:	e0bffc15 	stw	r2,-16(fp)
static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE 
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
    f0a8:	0005303a 	rdctl	r2,status
    f0ac:	e0bffb15 	stw	r2,-20(fp)

  NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK);
    f0b0:	e0fffb17 	ldw	r3,-20(fp)
    f0b4:	00bfff84 	movi	r2,-2
    f0b8:	1884703a 	and	r2,r3,r2
    f0bc:	1001703a 	wrctl	status,r2
  
  return context;
    f0c0:	e0bffb17 	ldw	r2,-20(fp)
static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id)
{
  alt_irq_context  status;
  extern volatile alt_u32 alt_irq_active;

  status = alt_irq_disable_all ();
    f0c4:	e0bffd15 	stw	r2,-12(fp)

  alt_irq_active |= (1 << id);
    f0c8:	e0fffc17 	ldw	r3,-16(fp)
    f0cc:	00800044 	movi	r2,1
    f0d0:	10c4983a 	sll	r2,r2,r3
    f0d4:	1007883a 	mov	r3,r2
    f0d8:	00800074 	movhi	r2,1
    f0dc:	108f8004 	addi	r2,r2,15872
    f0e0:	10800017 	ldw	r2,0(r2)
    f0e4:	1886b03a 	or	r3,r3,r2
    f0e8:	00800074 	movhi	r2,1
    f0ec:	108f8004 	addi	r2,r2,15872
    f0f0:	10c00015 	stw	r3,0(r2)
  NIOS2_WRITE_IENABLE (alt_irq_active);
    f0f4:	00800074 	movhi	r2,1
    f0f8:	108f8004 	addi	r2,r2,15872
    f0fc:	10800017 	ldw	r2,0(r2)
    f100:	100170fa 	wrctl	ienable,r2
    f104:	e0bffd17 	ldw	r2,-12(fp)
    f108:	e0bffa15 	stw	r2,-24(fp)
  status &= ~NIOS2_STATUS_PIE_MSK;
  status |= (context & NIOS2_STATUS_PIE_MSK);
  
  NIOS2_WRITE_STATUS (status);
#else
  NIOS2_WRITE_STATUS (context);
    f10c:	e0bffa17 	ldw	r2,-24(fp)
    f110:	1001703a 	wrctl	status,r2

  alt_irq_enable_all(status);

  return 0;
    f114:	0005883a 	mov	r2,zero
    return alt_irq_enable(irq);
}
    f118:	e037883a 	mov	sp,fp
    f11c:	df000017 	ldw	fp,0(sp)
    f120:	dec00104 	addi	sp,sp,4
    f124:	f800283a 	ret

0000f128 <alt_ic_irq_disable>:
  * @param ic_id            Ignored.
  * @param irq              IRQ number
  * @return                 0 if successful, else error (-1)
  */
int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq)
{
    f128:	defff904 	addi	sp,sp,-28
    f12c:	df000615 	stw	fp,24(sp)
    f130:	df000604 	addi	fp,sp,24
    f134:	e13ffe15 	stw	r4,-8(fp)
    f138:	e17fff15 	stw	r5,-4(fp)
    f13c:	e0bfff17 	ldw	r2,-4(fp)
    f140:	e0bffc15 	stw	r2,-16(fp)
static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE 
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
    f144:	0005303a 	rdctl	r2,status
    f148:	e0bffb15 	stw	r2,-20(fp)

  NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK);
    f14c:	e0fffb17 	ldw	r3,-20(fp)
    f150:	00bfff84 	movi	r2,-2
    f154:	1884703a 	and	r2,r3,r2
    f158:	1001703a 	wrctl	status,r2
  
  return context;
    f15c:	e0bffb17 	ldw	r2,-20(fp)
static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id)
{
  alt_irq_context  status;
  extern volatile alt_u32 alt_irq_active;

  status = alt_irq_disable_all ();
    f160:	e0bffd15 	stw	r2,-12(fp)

  alt_irq_active &= ~(1 << id);
    f164:	e0fffc17 	ldw	r3,-16(fp)
    f168:	00800044 	movi	r2,1
    f16c:	10c4983a 	sll	r2,r2,r3
    f170:	0084303a 	nor	r2,zero,r2
    f174:	1007883a 	mov	r3,r2
    f178:	00800074 	movhi	r2,1
    f17c:	108f8004 	addi	r2,r2,15872
    f180:	10800017 	ldw	r2,0(r2)
    f184:	1886703a 	and	r3,r3,r2
    f188:	00800074 	movhi	r2,1
    f18c:	108f8004 	addi	r2,r2,15872
    f190:	10c00015 	stw	r3,0(r2)
  NIOS2_WRITE_IENABLE (alt_irq_active);
    f194:	00800074 	movhi	r2,1
    f198:	108f8004 	addi	r2,r2,15872
    f19c:	10800017 	ldw	r2,0(r2)
    f1a0:	100170fa 	wrctl	ienable,r2
    f1a4:	e0bffd17 	ldw	r2,-12(fp)
    f1a8:	e0bffa15 	stw	r2,-24(fp)
  status &= ~NIOS2_STATUS_PIE_MSK;
  status |= (context & NIOS2_STATUS_PIE_MSK);
  
  NIOS2_WRITE_STATUS (status);
#else
  NIOS2_WRITE_STATUS (context);
    f1ac:	e0bffa17 	ldw	r2,-24(fp)
    f1b0:	1001703a 	wrctl	status,r2

  alt_irq_enable_all(status);

  return 0;
    f1b4:	0005883a 	mov	r2,zero
    return alt_irq_disable(irq);
}
    f1b8:	e037883a 	mov	sp,fp
    f1bc:	df000017 	ldw	fp,0(sp)
    f1c0:	dec00104 	addi	sp,sp,4
    f1c4:	f800283a 	ret

0000f1c8 <alt_ic_irq_enabled>:
  * @param irq              IRQ number
  * @return                 Zero if corresponding interrupt is disabled and
  *                         non-zero otherwise.
  */
alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq)
{
    f1c8:	defffc04 	addi	sp,sp,-16
    f1cc:	df000315 	stw	fp,12(sp)
    f1d0:	df000304 	addi	fp,sp,12
    f1d4:	e13ffe15 	stw	r4,-8(fp)
    f1d8:	e17fff15 	stw	r5,-4(fp)
    alt_u32 irq_enabled;

    NIOS2_READ_IENABLE(irq_enabled);
    f1dc:	000530fa 	rdctl	r2,ienable
    f1e0:	e0bffd15 	stw	r2,-12(fp)

    return (irq_enabled & (1 << irq)) ? 1: 0;
    f1e4:	e0ffff17 	ldw	r3,-4(fp)
    f1e8:	00800044 	movi	r2,1
    f1ec:	10c4983a 	sll	r2,r2,r3
    f1f0:	1007883a 	mov	r3,r2
    f1f4:	e0bffd17 	ldw	r2,-12(fp)
    f1f8:	1884703a 	and	r2,r3,r2
    f1fc:	1004c03a 	cmpne	r2,r2,zero
}
    f200:	e037883a 	mov	sp,fp
    f204:	df000017 	ldw	fp,0(sp)
    f208:	dec00104 	addi	sp,sp,4
    f20c:	f800283a 	ret

0000f210 <alt_iic_isr_register>:
  * @param flags            
  * @return                 0 if successful, else error (-1)
  */
int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, 
  void *isr_context, void *flags)
{
    f210:	defff404 	addi	sp,sp,-48
    f214:	dfc00b15 	stw	ra,44(sp)
    f218:	df000a15 	stw	fp,40(sp)
    f21c:	df000a04 	addi	fp,sp,40
    f220:	e13ffb15 	stw	r4,-20(fp)
    f224:	e17ffc15 	stw	r5,-16(fp)
    f228:	e1bffd15 	stw	r6,-12(fp)
    f22c:	e1fffe15 	stw	r7,-8(fp)
  int rc = -EINVAL;  
    f230:	00bffa84 	movi	r2,-22
    f234:	e0bffa15 	stw	r2,-24(fp)
  int id = irq;             /* IRQ interpreted as the interrupt ID. */
    f238:	e0bffc17 	ldw	r2,-16(fp)
    f23c:	e0bff915 	stw	r2,-28(fp)
  alt_irq_context status;

  if (id < ALT_NIRQ)
    f240:	e0bff917 	ldw	r2,-28(fp)
    f244:	10800808 	cmpgei	r2,r2,32
    f248:	1000291e 	bne	r2,zero,f2f0 <alt_iic_isr_register+0xe0>
static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE 
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
    f24c:	0005303a 	rdctl	r2,status
    f250:	e0bff715 	stw	r2,-36(fp)

  NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK);
    f254:	e0fff717 	ldw	r3,-36(fp)
    f258:	00bfff84 	movi	r2,-2
    f25c:	1884703a 	and	r2,r3,r2
    f260:	1001703a 	wrctl	status,r2
  
  return context;
    f264:	e0bff717 	ldw	r2,-36(fp)
     * interrupts are disabled while the handler tables are updated to ensure
     * that an interrupt doesn't occur while the tables are in an inconsistant
     * state.
     */

    status = alt_irq_disable_all();
    f268:	e0bff815 	stw	r2,-32(fp)

    alt_irq[id].handler = isr;
    f26c:	e0bff917 	ldw	r2,-28(fp)
    f270:	00c00074 	movhi	r3,1
    f274:	18d0d104 	addi	r3,r3,17220
    f278:	100490fa 	slli	r2,r2,3
    f27c:	10c7883a 	add	r3,r2,r3
    f280:	e0bffd17 	ldw	r2,-12(fp)
    f284:	18800015 	stw	r2,0(r3)
    alt_irq[id].context = isr_context;
    f288:	e0bff917 	ldw	r2,-28(fp)
    f28c:	00c00074 	movhi	r3,1
    f290:	18d0d104 	addi	r3,r3,17220
    f294:	100490fa 	slli	r2,r2,3
    f298:	10c5883a 	add	r2,r2,r3
    f29c:	10c00104 	addi	r3,r2,4
    f2a0:	e0bffe17 	ldw	r2,-8(fp)
    f2a4:	18800015 	stw	r2,0(r3)

    rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id);
    f2a8:	e0bffd17 	ldw	r2,-12(fp)
    f2ac:	1005003a 	cmpeq	r2,r2,zero
    f2b0:	1000051e 	bne	r2,zero,f2c8 <alt_iic_isr_register+0xb8>
    f2b4:	e17ff917 	ldw	r5,-28(fp)
    f2b8:	e13ffb17 	ldw	r4,-20(fp)
    f2bc:	000f08c0 	call	f08c <alt_ic_irq_enable>
    f2c0:	e0bfff15 	stw	r2,-4(fp)
    f2c4:	00000406 	br	f2d8 <alt_iic_isr_register+0xc8>
    f2c8:	e17ff917 	ldw	r5,-28(fp)
    f2cc:	e13ffb17 	ldw	r4,-20(fp)
    f2d0:	000f1280 	call	f128 <alt_ic_irq_disable>
    f2d4:	e0bfff15 	stw	r2,-4(fp)
    f2d8:	e0bfff17 	ldw	r2,-4(fp)
    f2dc:	e0bffa15 	stw	r2,-24(fp)
    f2e0:	e0bff817 	ldw	r2,-32(fp)
    f2e4:	e0bff615 	stw	r2,-40(fp)
  status &= ~NIOS2_STATUS_PIE_MSK;
  status |= (context & NIOS2_STATUS_PIE_MSK);
  
  NIOS2_WRITE_STATUS (status);
#else
  NIOS2_WRITE_STATUS (context);
    f2e8:	e0bff617 	ldw	r2,-40(fp)
    f2ec:	1001703a 	wrctl	status,r2

    alt_irq_enable_all(status);
  }

  return rc; 
    f2f0:	e0bffa17 	ldw	r2,-24(fp)
}
    f2f4:	e037883a 	mov	sp,fp
    f2f8:	dfc00117 	ldw	ra,4(sp)
    f2fc:	df000017 	ldw	fp,0(sp)
    f300:	dec00204 	addi	sp,sp,8
    f304:	f800283a 	ret

0000f308 <alt_open_fd>:
 * If the device can not be succesfully opened, then the input file descriptor
 * remains unchanged.
 */

static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode)
{
    f308:	defff804 	addi	sp,sp,-32
    f30c:	dfc00715 	stw	ra,28(sp)
    f310:	df000615 	stw	fp,24(sp)
    f314:	dc000515 	stw	r16,20(sp)
    f318:	df000504 	addi	fp,sp,20
    f31c:	e13ffc15 	stw	r4,-16(fp)
    f320:	e17ffd15 	stw	r5,-12(fp)
    f324:	e1bffe15 	stw	r6,-8(fp)
    f328:	e1ffff15 	stw	r7,-4(fp)
  int old;

  old = open (name, flags, mode);
    f32c:	e13ffd17 	ldw	r4,-12(fp)
    f330:	e17ffe17 	ldw	r5,-8(fp)
    f334:	e1bfff17 	ldw	r6,-4(fp)
    f338:	000f5500 	call	f550 <open>
    f33c:	e0bffb15 	stw	r2,-20(fp)

  if (old >= 0)
    f340:	e0bffb17 	ldw	r2,-20(fp)
    f344:	1004803a 	cmplt	r2,r2,zero
    f348:	10001f1e 	bne	r2,zero,f3c8 <alt_open_fd+0xc0>
  {
    fd->dev      = alt_fd_list[old].dev;
    f34c:	e13ffb17 	ldw	r4,-20(fp)
    f350:	04000074 	movhi	r16,1
    f354:	8403bc04 	addi	r16,r16,3824
    f358:	01400304 	movi	r5,12
    f35c:	0002c240 	call	2c24 <__mulsi3>
    f360:	1405883a 	add	r2,r2,r16
    f364:	10c00017 	ldw	r3,0(r2)
    f368:	e0bffc17 	ldw	r2,-16(fp)
    f36c:	10c00015 	stw	r3,0(r2)
    fd->priv     = alt_fd_list[old].priv;
    f370:	e13ffb17 	ldw	r4,-20(fp)
    f374:	04000074 	movhi	r16,1
    f378:	8403bc04 	addi	r16,r16,3824
    f37c:	01400304 	movi	r5,12
    f380:	0002c240 	call	2c24 <__mulsi3>
    f384:	1405883a 	add	r2,r2,r16
    f388:	10800104 	addi	r2,r2,4
    f38c:	10c00017 	ldw	r3,0(r2)
    f390:	e0bffc17 	ldw	r2,-16(fp)
    f394:	10c00115 	stw	r3,4(r2)
    fd->fd_flags = alt_fd_list[old].fd_flags;
    f398:	e13ffb17 	ldw	r4,-20(fp)
    f39c:	04000074 	movhi	r16,1
    f3a0:	8403bc04 	addi	r16,r16,3824
    f3a4:	01400304 	movi	r5,12
    f3a8:	0002c240 	call	2c24 <__mulsi3>
    f3ac:	1405883a 	add	r2,r2,r16
    f3b0:	10800204 	addi	r2,r2,8
    f3b4:	10c00017 	ldw	r3,0(r2)
    f3b8:	e0bffc17 	ldw	r2,-16(fp)
    f3bc:	10c00215 	stw	r3,8(r2)

    alt_release_fd (old);
    f3c0:	e13ffb17 	ldw	r4,-20(fp)
    f3c4:	000cd440 	call	cd44 <alt_release_fd>
  }
} 
    f3c8:	e037883a 	mov	sp,fp
    f3cc:	dfc00217 	ldw	ra,8(sp)
    f3d0:	df000117 	ldw	fp,4(sp)
    f3d4:	dc000017 	ldw	r16,0(sp)
    f3d8:	dec00304 	addi	sp,sp,12
    f3dc:	f800283a 	ret

0000f3e0 <alt_io_redirect>:
 */
 
void alt_io_redirect(const char* stdout_dev, 
                     const char* stdin_dev, 
                     const char* stderr_dev)
{
    f3e0:	defffb04 	addi	sp,sp,-20
    f3e4:	dfc00415 	stw	ra,16(sp)
    f3e8:	df000315 	stw	fp,12(sp)
    f3ec:	df000304 	addi	fp,sp,12
    f3f0:	e13ffd15 	stw	r4,-12(fp)
    f3f4:	e17ffe15 	stw	r5,-8(fp)
    f3f8:	e1bfff15 	stw	r6,-4(fp)
  /* Redirect the channels */

  alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777);
    f3fc:	01000074 	movhi	r4,1
    f400:	2103bf04 	addi	r4,r4,3836
    f404:	e17ffd17 	ldw	r5,-12(fp)
    f408:	01800044 	movi	r6,1
    f40c:	01c07fc4 	movi	r7,511
    f410:	000f3080 	call	f308 <alt_open_fd>
  alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777);
    f414:	01000074 	movhi	r4,1
    f418:	2103bc04 	addi	r4,r4,3824
    f41c:	e17ffe17 	ldw	r5,-8(fp)
    f420:	000d883a 	mov	r6,zero
    f424:	01c07fc4 	movi	r7,511
    f428:	000f3080 	call	f308 <alt_open_fd>
  alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777);
    f42c:	01000074 	movhi	r4,1
    f430:	2103c204 	addi	r4,r4,3848
    f434:	e17fff17 	ldw	r5,-4(fp)
    f438:	01800044 	movi	r6,1
    f43c:	01c07fc4 	movi	r7,511
    f440:	000f3080 	call	f308 <alt_open_fd>
}  
    f444:	e037883a 	mov	sp,fp
    f448:	dfc00117 	ldw	ra,4(sp)
    f44c:	df000017 	ldw	fp,0(sp)
    f450:	dec00204 	addi	sp,sp,8
    f454:	f800283a 	ret

0000f458 <alt_file_locked>:
 * performed for devices. Filesystems are required to handle the ioctl() call
 * themselves, and report the error from the filesystems open() function. 
 */ 

static int alt_file_locked (alt_fd* fd)
{
    f458:	defffa04 	addi	sp,sp,-24
    f45c:	dfc00515 	stw	ra,20(sp)
    f460:	df000415 	stw	fp,16(sp)
    f464:	dc000315 	stw	r16,12(sp)
    f468:	df000304 	addi	fp,sp,12
    f46c:	e13ffe15 	stw	r4,-8(fp)

  /*
   * Mark the file descriptor as belonging to a device.
   */

  fd->fd_flags |= ALT_FD_DEV;
    f470:	e0bffe17 	ldw	r2,-8(fp)
    f474:	10800217 	ldw	r2,8(r2)
    f478:	10d00034 	orhi	r3,r2,16384
    f47c:	e0bffe17 	ldw	r2,-8(fp)
    f480:	10c00215 	stw	r3,8(r2)
  /*
   * Loop through all current file descriptors searching for one that's locked
   * for exclusive access. If a match is found, generate an error.
   */

  for (i = 0; i <= alt_max_fd; i++)
    f484:	e03ffd15 	stw	zero,-12(fp)
    f488:	00002306 	br	f518 <alt_file_locked+0xc0>
  {
    if ((alt_fd_list[i].dev == fd->dev) &&
    f48c:	e13ffd17 	ldw	r4,-12(fp)
    f490:	04000074 	movhi	r16,1
    f494:	8403bc04 	addi	r16,r16,3824
    f498:	01400304 	movi	r5,12
    f49c:	0002c240 	call	2c24 <__mulsi3>
    f4a0:	1405883a 	add	r2,r2,r16
    f4a4:	10c00017 	ldw	r3,0(r2)
    f4a8:	e0bffe17 	ldw	r2,-8(fp)
    f4ac:	10800017 	ldw	r2,0(r2)
    f4b0:	1880161e 	bne	r3,r2,f50c <alt_file_locked+0xb4>
    f4b4:	e13ffd17 	ldw	r4,-12(fp)
    f4b8:	04000074 	movhi	r16,1
    f4bc:	8403bc04 	addi	r16,r16,3824
    f4c0:	01400304 	movi	r5,12
    f4c4:	0002c240 	call	2c24 <__mulsi3>
    f4c8:	1405883a 	add	r2,r2,r16
    f4cc:	10800204 	addi	r2,r2,8
    f4d0:	10800017 	ldw	r2,0(r2)
    f4d4:	1004403a 	cmpge	r2,r2,zero
    f4d8:	10000c1e 	bne	r2,zero,f50c <alt_file_locked+0xb4>
    f4dc:	e13ffd17 	ldw	r4,-12(fp)
    f4e0:	01400304 	movi	r5,12
    f4e4:	0002c240 	call	2c24 <__mulsi3>
    f4e8:	1007883a 	mov	r3,r2
    f4ec:	00800074 	movhi	r2,1
    f4f0:	1083bc04 	addi	r2,r2,3824
    f4f4:	1887883a 	add	r3,r3,r2
    f4f8:	e0bffe17 	ldw	r2,-8(fp)
    f4fc:	18800326 	beq	r3,r2,f50c <alt_file_locked+0xb4>
        (alt_fd_list[i].fd_flags & ALT_FD_EXCL) &&
        (&alt_fd_list[i] != fd))
    {
      return -EACCES;
    f500:	00bffcc4 	movi	r2,-13
    f504:	e0bfff15 	stw	r2,-4(fp)
    f508:	00000a06 	br	f534 <alt_file_locked+0xdc>
  /*
   * Loop through all current file descriptors searching for one that's locked
   * for exclusive access. If a match is found, generate an error.
   */

  for (i = 0; i <= alt_max_fd; i++)
    f50c:	e0bffd17 	ldw	r2,-12(fp)
    f510:	10800044 	addi	r2,r2,1
    f514:	e0bffd15 	stw	r2,-12(fp)
    f518:	00800074 	movhi	r2,1
    f51c:	10888804 	addi	r2,r2,8736
    f520:	10800017 	ldw	r2,0(r2)
    f524:	1007883a 	mov	r3,r2
    f528:	e0bffd17 	ldw	r2,-12(fp)
    f52c:	18bfd72e 	bgeu	r3,r2,f48c <alt_file_locked+0x34>
    }
  }
  
  /* The device is not locked */
 
  return 0;
    f530:	e03fff15 	stw	zero,-4(fp)
    f534:	e0bfff17 	ldw	r2,-4(fp)
}
    f538:	e037883a 	mov	sp,fp
    f53c:	dfc00217 	ldw	ra,8(sp)
    f540:	df000117 	ldw	fp,4(sp)
    f544:	dc000017 	ldw	r16,0(sp)
    f548:	dec00304 	addi	sp,sp,12
    f54c:	f800283a 	ret

0000f550 <open>:
 *
 * ALT_OPEN is mapped onto the open() system call in alt_syscall.h
 */
 
int ALT_OPEN (const char* file, int flags, int mode)
{ 
    f550:	defff404 	addi	sp,sp,-48
    f554:	dfc00b15 	stw	ra,44(sp)
    f558:	df000a15 	stw	fp,40(sp)
    f55c:	df000a04 	addi	fp,sp,40
    f560:	e13ffb15 	stw	r4,-20(fp)
    f564:	e17ffc15 	stw	r5,-16(fp)
    f568:	e1bffd15 	stw	r6,-12(fp)
  alt_dev* dev;
  alt_fd*  fd;
  int index  = -1;
    f56c:	00bfffc4 	movi	r2,-1
    f570:	e0bff815 	stw	r2,-32(fp)
  int status = -ENODEV;
    f574:	00bffb44 	movi	r2,-19
    f578:	e0bff715 	stw	r2,-36(fp)
  int isafs = 0;
    f57c:	e03ff615 	stw	zero,-40(fp)
  /* 
   * Check the device list, to see if a device with a matching name is 
   * registered.
   */
  
  if (!(dev = alt_find_dev (file, &alt_dev_list)))
    f580:	e13ffb17 	ldw	r4,-20(fp)
    f584:	01400074 	movhi	r5,1
    f588:	29488604 	addi	r5,r5,8728
    f58c:	000f9000 	call	f900 <alt_find_dev>
    f590:	e0bffa15 	stw	r2,-24(fp)
    f594:	e0bffa17 	ldw	r2,-24(fp)
    f598:	1004c03a 	cmpne	r2,r2,zero
    f59c:	1000051e 	bne	r2,zero,f5b4 <open+0x64>
  {
    /* No matching device, so try the filesystem list */

    dev   = alt_find_file (file);
    f5a0:	e13ffb17 	ldw	r4,-20(fp)
    f5a4:	000f9940 	call	f994 <alt_find_file>
    f5a8:	e0bffa15 	stw	r2,-24(fp)
    isafs = 1;
    f5ac:	00800044 	movi	r2,1
    f5b0:	e0bff615 	stw	r2,-40(fp)

  /* 
   * If a matching device or filesystem is found, allocate a file descriptor. 
   */

  if (dev)
    f5b4:	e0bffa17 	ldw	r2,-24(fp)
    f5b8:	1005003a 	cmpeq	r2,r2,zero
    f5bc:	1000311e 	bne	r2,zero,f684 <open+0x134>
  {
    if ((index = alt_get_fd (dev)) < 0)
    f5c0:	e13ffa17 	ldw	r4,-24(fp)
    f5c4:	000fab40 	call	fab4 <alt_get_fd>
    f5c8:	e0bff815 	stw	r2,-32(fp)
    f5cc:	e0bff817 	ldw	r2,-32(fp)
    f5d0:	1004403a 	cmpge	r2,r2,zero
    f5d4:	1000031e 	bne	r2,zero,f5e4 <open+0x94>
    {
      status = index;
    f5d8:	e0bff817 	ldw	r2,-32(fp)
    f5dc:	e0bff715 	stw	r2,-36(fp)
    f5e0:	00002a06 	br	f68c <open+0x13c>
    }
    else
    {
      fd = &alt_fd_list[index];
    f5e4:	e13ff817 	ldw	r4,-32(fp)
    f5e8:	01400304 	movi	r5,12
    f5ec:	0002c240 	call	2c24 <__mulsi3>
    f5f0:	1007883a 	mov	r3,r2
    f5f4:	00800074 	movhi	r2,1
    f5f8:	1083bc04 	addi	r2,r2,3824
    f5fc:	1885883a 	add	r2,r3,r2
    f600:	e0bff915 	stw	r2,-28(fp)
      fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK);
    f604:	e0fffc17 	ldw	r3,-16(fp)
    f608:	00900034 	movhi	r2,16384
    f60c:	10bfffc4 	addi	r2,r2,-1
    f610:	1886703a 	and	r3,r3,r2
    f614:	e0bff917 	ldw	r2,-28(fp)
    f618:	10c00215 	stw	r3,8(r2)
      
      /* If this is a device, ensure it isn't already locked */

      if (isafs || ((status = alt_file_locked (fd)) >= 0))
    f61c:	e0bff617 	ldw	r2,-40(fp)
    f620:	1004c03a 	cmpne	r2,r2,zero
    f624:	1000061e 	bne	r2,zero,f640 <open+0xf0>
    f628:	e13ff917 	ldw	r4,-28(fp)
    f62c:	000f4580 	call	f458 <alt_file_locked>
    f630:	e0bff715 	stw	r2,-36(fp)
    f634:	e0bff717 	ldw	r2,-36(fp)
    f638:	1004803a 	cmplt	r2,r2,zero
    f63c:	1000131e 	bne	r2,zero,f68c <open+0x13c>
        /* 
         * If the device or filesystem provides an open() callback function,
         * call it now to perform any device/filesystem specific operations.
         */
    
        status = (dev->open) ? dev->open(fd, file, flags, mode): 0;
    f640:	e0bffa17 	ldw	r2,-24(fp)
    f644:	10800317 	ldw	r2,12(r2)
    f648:	1005003a 	cmpeq	r2,r2,zero
    f64c:	1000091e 	bne	r2,zero,f674 <open+0x124>
    f650:	e0bffa17 	ldw	r2,-24(fp)
    f654:	10800317 	ldw	r2,12(r2)
    f658:	e13ff917 	ldw	r4,-28(fp)
    f65c:	e17ffb17 	ldw	r5,-20(fp)
    f660:	e1bffc17 	ldw	r6,-16(fp)
    f664:	e1fffd17 	ldw	r7,-12(fp)
    f668:	103ee83a 	callr	r2
    f66c:	e0bfff15 	stw	r2,-4(fp)
    f670:	00000106 	br	f678 <open+0x128>
    f674:	e03fff15 	stw	zero,-4(fp)
    f678:	e0bfff17 	ldw	r2,-4(fp)
    f67c:	e0bff715 	stw	r2,-36(fp)
    f680:	00000206 	br	f68c <open+0x13c>
      }
    }
  }
  else
  {
    status = -ENODEV;
    f684:	00bffb44 	movi	r2,-19
    f688:	e0bff715 	stw	r2,-36(fp)
  }

  /* Allocation failed, so clean up and return an error */ 

  if (status < 0)
    f68c:	e0bff717 	ldw	r2,-36(fp)
    f690:	1004403a 	cmpge	r2,r2,zero
    f694:	1000091e 	bne	r2,zero,f6bc <open+0x16c>
  {
    alt_release_fd (index);  
    f698:	e13ff817 	ldw	r4,-32(fp)
    f69c:	000cd440 	call	cd44 <alt_release_fd>
    ALT_ERRNO = -status;
    f6a0:	000f6dc0 	call	f6dc <alt_get_errno>
    f6a4:	e0fff717 	ldw	r3,-36(fp)
    f6a8:	00c7c83a 	sub	r3,zero,r3
    f6ac:	10c00015 	stw	r3,0(r2)
    return -1;
    f6b0:	00bfffc4 	movi	r2,-1
    f6b4:	e0bffe15 	stw	r2,-8(fp)
    f6b8:	00000206 	br	f6c4 <open+0x174>
  }
  
  /* return the reference upon success */

  return index;
    f6bc:	e0bff817 	ldw	r2,-32(fp)
    f6c0:	e0bffe15 	stw	r2,-8(fp)
    f6c4:	e0bffe17 	ldw	r2,-8(fp)
}
    f6c8:	e037883a 	mov	sp,fp
    f6cc:	dfc00117 	ldw	ra,4(sp)
    f6d0:	df000017 	ldw	fp,0(sp)
    f6d4:	dec00204 	addi	sp,sp,8
    f6d8:	f800283a 	ret

0000f6dc <alt_get_errno>:
#undef errno

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
    f6dc:	defffd04 	addi	sp,sp,-12
    f6e0:	dfc00215 	stw	ra,8(sp)
    f6e4:	df000115 	stw	fp,4(sp)
    f6e8:	df000104 	addi	fp,sp,4
  return ((alt_errno) ? alt_errno() : &errno);
    f6ec:	00800074 	movhi	r2,1
    f6f0:	10888904 	addi	r2,r2,8740
    f6f4:	10800017 	ldw	r2,0(r2)
    f6f8:	1005003a 	cmpeq	r2,r2,zero
    f6fc:	1000061e 	bne	r2,zero,f718 <alt_get_errno+0x3c>
    f700:	00800074 	movhi	r2,1
    f704:	10888904 	addi	r2,r2,8740
    f708:	10800017 	ldw	r2,0(r2)
    f70c:	103ee83a 	callr	r2
    f710:	e0bfff15 	stw	r2,-4(fp)
    f714:	00000306 	br	f724 <alt_get_errno+0x48>
    f718:	00800074 	movhi	r2,1
    f71c:	108f7c04 	addi	r2,r2,15856
    f720:	e0bfff15 	stw	r2,-4(fp)
    f724:	e0bfff17 	ldw	r2,-4(fp)
}
    f728:	e037883a 	mov	sp,fp
    f72c:	dfc00117 	ldw	ra,4(sp)
    f730:	df000017 	ldw	fp,0(sp)
    f734:	dec00204 	addi	sp,sp,8
    f738:	f800283a 	ret

0000f73c <alt_alarm_stop>:
 * alarms. Alternatively an alarm can unregister itself by returning zero when 
 * the alarm executes.
 */

void alt_alarm_stop (alt_alarm* alarm)
{
    f73c:	defffa04 	addi	sp,sp,-24
    f740:	df000515 	stw	fp,20(sp)
    f744:	df000504 	addi	fp,sp,20
    f748:	e13fff15 	stw	r4,-4(fp)
static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE 
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
    f74c:	0005303a 	rdctl	r2,status
    f750:	e0bffd15 	stw	r2,-12(fp)

  NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK);
    f754:	e0fffd17 	ldw	r3,-12(fp)
    f758:	00bfff84 	movi	r2,-2
    f75c:	1884703a 	and	r2,r3,r2
    f760:	1001703a 	wrctl	status,r2
  
  return context;
    f764:	e0bffd17 	ldw	r2,-12(fp)
  alt_irq_context irq_context;

  irq_context = alt_irq_disable_all();
    f768:	e0bffe15 	stw	r2,-8(fp)
  alt_llist_remove (&alarm->llist);
    f76c:	e0bfff17 	ldw	r2,-4(fp)
    f770:	e0bffc15 	stw	r2,-16(fp)
 * input argument is the element to remove.
 */
     
static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry)
{
  entry->next->previous = entry->previous;
    f774:	e0bffc17 	ldw	r2,-16(fp)
    f778:	10c00017 	ldw	r3,0(r2)
    f77c:	e0bffc17 	ldw	r2,-16(fp)
    f780:	10800117 	ldw	r2,4(r2)
    f784:	18800115 	stw	r2,4(r3)
  entry->previous->next = entry->next;
    f788:	e0bffc17 	ldw	r2,-16(fp)
    f78c:	10c00117 	ldw	r3,4(r2)
    f790:	e0bffc17 	ldw	r2,-16(fp)
    f794:	10800017 	ldw	r2,0(r2)
    f798:	18800015 	stw	r2,0(r3)
  /* 
   * Set the entry to point to itself, so that any further calls to
   * alt_llist_remove() are harmless.
   */

  entry->previous = entry;
    f79c:	e0fffc17 	ldw	r3,-16(fp)
    f7a0:	e0bffc17 	ldw	r2,-16(fp)
    f7a4:	18800115 	stw	r2,4(r3)
  entry->next     = entry;
    f7a8:	e0fffc17 	ldw	r3,-16(fp)
    f7ac:	e0bffc17 	ldw	r2,-16(fp)
    f7b0:	18800015 	stw	r2,0(r3)
    f7b4:	e0bffe17 	ldw	r2,-8(fp)
    f7b8:	e0bffb15 	stw	r2,-20(fp)
  status &= ~NIOS2_STATUS_PIE_MSK;
  status |= (context & NIOS2_STATUS_PIE_MSK);
  
  NIOS2_WRITE_STATUS (status);
#else
  NIOS2_WRITE_STATUS (context);
    f7bc:	e0bffb17 	ldw	r2,-20(fp)
    f7c0:	1001703a 	wrctl	status,r2
  alt_irq_enable_all (irq_context);
}
    f7c4:	e037883a 	mov	sp,fp
    f7c8:	df000017 	ldw	fp,0(sp)
    f7cc:	dec00104 	addi	sp,sp,4
    f7d0:	f800283a 	ret

0000f7d4 <alt_tick>:
 * 
 * alt_tick() is expected to run at interrupt level.
 */

void alt_tick (void)
{
    f7d4:	defffb04 	addi	sp,sp,-20
    f7d8:	dfc00415 	stw	ra,16(sp)
    f7dc:	df000315 	stw	fp,12(sp)
    f7e0:	df000304 	addi	fp,sp,12
  alt_alarm* next;
  alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next;
    f7e4:	d0a01117 	ldw	r2,-32700(gp)
    f7e8:	e0bffe15 	stw	r2,-8(fp)

  alt_u32    next_callback;

  /* update the tick counter */

  _alt_nticks++;
    f7ec:	d0a70617 	ldw	r2,-25576(gp)
    f7f0:	10800044 	addi	r2,r2,1
    f7f4:	d0a70615 	stw	r2,-25576(gp)

  /* process the registered callbacks */

  while (alarm != (alt_alarm*) &alt_alarm_list)
    f7f8:	00003106 	br	f8c0 <alt_tick+0xec>
  {
    next = (alt_alarm*) alarm->llist.next;
    f7fc:	e0bffe17 	ldw	r2,-8(fp)
    f800:	10800017 	ldw	r2,0(r2)
    f804:	e0bfff15 	stw	r2,-4(fp)
    /* 
     * Upon the tick-counter rolling over it is safe to clear the 
     * roll-over flag; once the flag is cleared this (or subsequnt)
     * tick events are enabled to generate an alarm event. 
     */
    if ((alarm->rollover) && (_alt_nticks == 0))
    f808:	e0bffe17 	ldw	r2,-8(fp)
    f80c:	10800403 	ldbu	r2,16(r2)
    f810:	10803fcc 	andi	r2,r2,255
    f814:	1005003a 	cmpeq	r2,r2,zero
    f818:	1000051e 	bne	r2,zero,f830 <alt_tick+0x5c>
    f81c:	d0a70617 	ldw	r2,-25576(gp)
    f820:	1004c03a 	cmpne	r2,r2,zero
    f824:	1000021e 	bne	r2,zero,f830 <alt_tick+0x5c>
    {
      alarm->rollover = 0;
    f828:	e0bffe17 	ldw	r2,-8(fp)
    f82c:	10000405 	stb	zero,16(r2)
    }
    
    /* if the alarm period has expired, make the callback */    
    if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0))
    f830:	e0bffe17 	ldw	r2,-8(fp)
    f834:	10c00217 	ldw	r3,8(r2)
    f838:	d0a70617 	ldw	r2,-25576(gp)
    f83c:	10c01e36 	bltu	r2,r3,f8b8 <alt_tick+0xe4>
    f840:	e0bffe17 	ldw	r2,-8(fp)
    f844:	10800403 	ldbu	r2,16(r2)
    f848:	10803fcc 	andi	r2,r2,255
    f84c:	1004c03a 	cmpne	r2,r2,zero
    f850:	1000191e 	bne	r2,zero,f8b8 <alt_tick+0xe4>
    {
      next_callback = alarm->callback (alarm->context);
    f854:	e0bffe17 	ldw	r2,-8(fp)
    f858:	10c00317 	ldw	r3,12(r2)
    f85c:	e0bffe17 	ldw	r2,-8(fp)
    f860:	11000517 	ldw	r4,20(r2)
    f864:	183ee83a 	callr	r3
    f868:	e0bffd15 	stw	r2,-12(fp)

      /* deactivate the alarm if the return value is zero */

      if (next_callback == 0)
    f86c:	e0bffd17 	ldw	r2,-12(fp)
    f870:	1004c03a 	cmpne	r2,r2,zero
    f874:	1000031e 	bne	r2,zero,f884 <alt_tick+0xb0>
      {
        alt_alarm_stop (alarm);
    f878:	e13ffe17 	ldw	r4,-8(fp)
    f87c:	000f73c0 	call	f73c <alt_alarm_stop>
    f880:	00000d06 	br	f8b8 <alt_tick+0xe4>
      }
      else
      {
        alarm->time += next_callback;
    f884:	e0bffe17 	ldw	r2,-8(fp)
    f888:	10c00217 	ldw	r3,8(r2)
    f88c:	e0bffd17 	ldw	r2,-12(fp)
    f890:	1887883a 	add	r3,r3,r2
    f894:	e0bffe17 	ldw	r2,-8(fp)
    f898:	10c00215 	stw	r3,8(r2)
        /* 
         * If the desired alarm time causes a roll-over, set the rollover
         * flag. This will prevent the subsequent tick event from causing
         * an alarm too early.
         */
        if(alarm->time < _alt_nticks)
    f89c:	e0bffe17 	ldw	r2,-8(fp)
    f8a0:	10c00217 	ldw	r3,8(r2)
    f8a4:	d0a70617 	ldw	r2,-25576(gp)
    f8a8:	1880032e 	bgeu	r3,r2,f8b8 <alt_tick+0xe4>
        {
          alarm->rollover = 1;
    f8ac:	e0fffe17 	ldw	r3,-8(fp)
    f8b0:	00800044 	movi	r2,1
    f8b4:	18800405 	stb	r2,16(r3)
        }
      }
    }
    alarm = next;
    f8b8:	e0bfff17 	ldw	r2,-4(fp)
    f8bc:	e0bffe15 	stw	r2,-8(fp)

  _alt_nticks++;

  /* process the registered callbacks */

  while (alarm != (alt_alarm*) &alt_alarm_list)
    f8c0:	d0e01104 	addi	r3,gp,-32700
    f8c4:	e0bffe17 	ldw	r2,-8(fp)
    f8c8:	10ffcc1e 	bne	r2,r3,f7fc <alt_tick+0x28>
  /* 
   * Update the operating system specific timer facilities.
   */

  ALT_OS_TIME_TICK();
}
    f8cc:	e037883a 	mov	sp,fp
    f8d0:	dfc00117 	ldw	ra,4(sp)
    f8d4:	df000017 	ldw	fp,0(sp)
    f8d8:	dec00204 	addi	sp,sp,8
    f8dc:	f800283a 	ret

0000f8e0 <altera_nios2_qsys_irq_init>:
/*
 * To initialize the internal interrupt controller, just clear the IENABLE
 * register so that all possible IRQs are disabled.
 */
void altera_nios2_qsys_irq_init(void) 
{
    f8e0:	deffff04 	addi	sp,sp,-4
    f8e4:	df000015 	stw	fp,0(sp)
    f8e8:	d839883a 	mov	fp,sp
    NIOS2_WRITE_IENABLE(0);
    f8ec:	000170fa 	wrctl	ienable,zero
}
    f8f0:	e037883a 	mov	sp,fp
    f8f4:	df000017 	ldw	fp,0(sp)
    f8f8:	dec00104 	addi	sp,sp,4
    f8fc:	f800283a 	ret

0000f900 <alt_find_dev>:
 * "name" must be an exact match for the devices registered name for a match to
 * be found.
 */
 
alt_dev* alt_find_dev(const char* name, alt_llist* llist)
{
    f900:	defff904 	addi	sp,sp,-28
    f904:	dfc00615 	stw	ra,24(sp)
    f908:	df000515 	stw	fp,20(sp)
    f90c:	df000504 	addi	fp,sp,20
    f910:	e13ffd15 	stw	r4,-12(fp)
    f914:	e17ffe15 	stw	r5,-8(fp)
  alt_dev* next = (alt_dev*) llist->next;
    f918:	e0bffe17 	ldw	r2,-8(fp)
    f91c:	10800017 	ldw	r2,0(r2)
    f920:	e0bffc15 	stw	r2,-16(fp)
  alt_32 len;

  len  = strlen(name) + 1;
    f924:	e13ffd17 	ldw	r4,-12(fp)
    f928:	0002d300 	call	2d30 <strlen>
    f92c:	10800044 	addi	r2,r2,1
    f930:	e0bffb15 	stw	r2,-20(fp)
  /*
   * Check each list entry in turn, until a match is found, or we reach the
   * end of the list (i.e. next winds up pointing back to the list head).
   */ 

  while (next != (alt_dev*) llist)
    f934:	00000d06 	br	f96c <alt_find_dev+0x6c>
    /* 
     * memcmp() is used here rather than strcmp() in order to reduce the size
     * of the executable.
     */

    if (!memcmp (next->name, name, len))
    f938:	e0bffc17 	ldw	r2,-16(fp)
    f93c:	11000217 	ldw	r4,8(r2)
    f940:	e1bffb17 	ldw	r6,-20(fp)
    f944:	e17ffd17 	ldw	r5,-12(fp)
    f948:	000fbd00 	call	fbd0 <memcmp>
    f94c:	1004c03a 	cmpne	r2,r2,zero
    f950:	1000031e 	bne	r2,zero,f960 <alt_find_dev+0x60>
    {
      /* match found */

      return next;
    f954:	e0bffc17 	ldw	r2,-16(fp)
    f958:	e0bfff15 	stw	r2,-4(fp)
    f95c:	00000706 	br	f97c <alt_find_dev+0x7c>
    }
    next = (alt_dev*) next->llist.next;
    f960:	e0bffc17 	ldw	r2,-16(fp)
    f964:	10800017 	ldw	r2,0(r2)
    f968:	e0bffc15 	stw	r2,-16(fp)
  /*
   * Check each list entry in turn, until a match is found, or we reach the
   * end of the list (i.e. next winds up pointing back to the list head).
   */ 

  while (next != (alt_dev*) llist)
    f96c:	e0fffe17 	ldw	r3,-8(fp)
    f970:	e0bffc17 	ldw	r2,-16(fp)
    f974:	10fff01e 	bne	r2,r3,f938 <alt_find_dev+0x38>
    next = (alt_dev*) next->llist.next;
  }
  
  /* No match found */
  
  return NULL;
    f978:	e03fff15 	stw	zero,-4(fp)
    f97c:	e0bfff17 	ldw	r2,-4(fp)
}
    f980:	e037883a 	mov	sp,fp
    f984:	dfc00117 	ldw	ra,4(sp)
    f988:	df000017 	ldw	fp,0(sp)
    f98c:	dec00204 	addi	sp,sp,8
    f990:	f800283a 	ret

0000f994 <alt_find_file>:
 * either '/' or '\0' is the prefix of the filename. For example the filename:
 * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". 
 */
 
alt_dev* alt_find_file (const char* name)
{
    f994:	defffa04 	addi	sp,sp,-24
    f998:	dfc00515 	stw	ra,20(sp)
    f99c:	df000415 	stw	fp,16(sp)
    f9a0:	df000404 	addi	fp,sp,16
    f9a4:	e13ffe15 	stw	r4,-8(fp)
  alt_dev* next = (alt_dev*) alt_fs_list.next;   
    f9a8:	00800074 	movhi	r2,1
    f9ac:	10888404 	addi	r2,r2,8720
    f9b0:	10800017 	ldw	r2,0(r2)
    f9b4:	e0bffd15 	stw	r2,-12(fp)
  /*
   * Check each list entry in turn, until a match is found, or we reach the
   * end of the list (i.e. next winds up pointing back to the list head).
   */ 
 
  while (next != (alt_dev*) &alt_fs_list)
    f9b8:	00003306 	br	fa88 <alt_find_file+0xf4>
  {
    len = strlen(next->name);
    f9bc:	e0bffd17 	ldw	r2,-12(fp)
    f9c0:	11000217 	ldw	r4,8(r2)
    f9c4:	0002d300 	call	2d30 <strlen>
    f9c8:	e0bffc15 	stw	r2,-16(fp)
    
    if (next->name[len-1] == '/')
    f9cc:	e0bffd17 	ldw	r2,-12(fp)
    f9d0:	10c00217 	ldw	r3,8(r2)
    f9d4:	e0bffc17 	ldw	r2,-16(fp)
    f9d8:	1885883a 	add	r2,r3,r2
    f9dc:	10bfffc4 	addi	r2,r2,-1
    f9e0:	10800003 	ldbu	r2,0(r2)
    f9e4:	10803fcc 	andi	r2,r2,255
    f9e8:	1080201c 	xori	r2,r2,128
    f9ec:	10bfe004 	addi	r2,r2,-128
    f9f0:	10800bd8 	cmpnei	r2,r2,47
    f9f4:	1000031e 	bne	r2,zero,fa04 <alt_find_file+0x70>
    {
      len -= 1;
    f9f8:	e0bffc17 	ldw	r2,-16(fp)
    f9fc:	10bfffc4 	addi	r2,r2,-1
    fa00:	e0bffc15 	stw	r2,-16(fp)
    }

    if (((name[len] == '/') || (name[len] == '\0')) && 
    fa04:	e0bffc17 	ldw	r2,-16(fp)
    fa08:	1007883a 	mov	r3,r2
    fa0c:	e0bffe17 	ldw	r2,-8(fp)
    fa10:	1885883a 	add	r2,r3,r2
    fa14:	10800003 	ldbu	r2,0(r2)
    fa18:	10803fcc 	andi	r2,r2,255
    fa1c:	1080201c 	xori	r2,r2,128
    fa20:	10bfe004 	addi	r2,r2,-128
    fa24:	10800be0 	cmpeqi	r2,r2,47
    fa28:	10000a1e 	bne	r2,zero,fa54 <alt_find_file+0xc0>
    fa2c:	e0bffc17 	ldw	r2,-16(fp)
    fa30:	1007883a 	mov	r3,r2
    fa34:	e0bffe17 	ldw	r2,-8(fp)
    fa38:	1885883a 	add	r2,r3,r2
    fa3c:	10800003 	ldbu	r2,0(r2)
    fa40:	10803fcc 	andi	r2,r2,255
    fa44:	1080201c 	xori	r2,r2,128
    fa48:	10bfe004 	addi	r2,r2,-128
    fa4c:	1004c03a 	cmpne	r2,r2,zero
    fa50:	10000a1e 	bne	r2,zero,fa7c <alt_find_file+0xe8>
    fa54:	e0bffd17 	ldw	r2,-12(fp)
    fa58:	11000217 	ldw	r4,8(r2)
    fa5c:	e1bffc17 	ldw	r6,-16(fp)
    fa60:	e17ffe17 	ldw	r5,-8(fp)
    fa64:	000fbd00 	call	fbd0 <memcmp>
    fa68:	1004c03a 	cmpne	r2,r2,zero
    fa6c:	1000031e 	bne	r2,zero,fa7c <alt_find_file+0xe8>
        !memcmp (next->name, name, len))
    {
      /* match found */

      return next;
    fa70:	e0bffd17 	ldw	r2,-12(fp)
    fa74:	e0bfff15 	stw	r2,-4(fp)
    fa78:	00000806 	br	fa9c <alt_find_file+0x108>
    }
    next = (alt_dev*) next->llist.next;
    fa7c:	e0bffd17 	ldw	r2,-12(fp)
    fa80:	10800017 	ldw	r2,0(r2)
    fa84:	e0bffd15 	stw	r2,-12(fp)
  /*
   * Check each list entry in turn, until a match is found, or we reach the
   * end of the list (i.e. next winds up pointing back to the list head).
   */ 
 
  while (next != (alt_dev*) &alt_fs_list)
    fa88:	00c00074 	movhi	r3,1
    fa8c:	18c88404 	addi	r3,r3,8720
    fa90:	e0bffd17 	ldw	r2,-12(fp)
    fa94:	10ffc91e 	bne	r2,r3,f9bc <alt_find_file+0x28>
    next = (alt_dev*) next->llist.next;
  }
  
  /* No match found */
  
  return NULL;     
    fa98:	e03fff15 	stw	zero,-4(fp)
    fa9c:	e0bfff17 	ldw	r2,-4(fp)
}
    faa0:	e037883a 	mov	sp,fp
    faa4:	dfc00117 	ldw	ra,4(sp)
    faa8:	df000017 	ldw	fp,0(sp)
    faac:	dec00204 	addi	sp,sp,8
    fab0:	f800283a 	ret

0000fab4 <alt_get_fd>:
 * the offset of the file descriptor within the file descriptor array). A
 * negative value indicates failure.
 */

int alt_get_fd (alt_dev* dev)
{
    fab4:	defffa04 	addi	sp,sp,-24
    fab8:	dfc00515 	stw	ra,20(sp)
    fabc:	df000415 	stw	fp,16(sp)
    fac0:	dc000315 	stw	r16,12(sp)
    fac4:	df000304 	addi	fp,sp,12
    fac8:	e13fff15 	stw	r4,-4(fp)
  alt_32 i;
  int rc = -EMFILE;
    facc:	00bffa04 	movi	r2,-24
    fad0:	e0bffd15 	stw	r2,-12(fp)
   * indicates the highest file descriptor ever allocated. This is used to
   * improve efficency when searching the file descriptor list, and 
   * therefore reduce contention on the alt_fd_list_lock semaphore. 
   */

  for (i = 0; i < ALT_MAX_FD; i++)
    fad4:	e03ffe15 	stw	zero,-8(fp)
    fad8:	00002006 	br	fb5c <alt_get_fd+0xa8>
  {
    if (!alt_fd_list[i].dev)
    fadc:	e13ffe17 	ldw	r4,-8(fp)
    fae0:	04000074 	movhi	r16,1
    fae4:	8403bc04 	addi	r16,r16,3824
    fae8:	01400304 	movi	r5,12
    faec:	0002c240 	call	2c24 <__mulsi3>
    faf0:	1405883a 	add	r2,r2,r16
    faf4:	10800017 	ldw	r2,0(r2)
    faf8:	1004c03a 	cmpne	r2,r2,zero
    fafc:	1000141e 	bne	r2,zero,fb50 <alt_get_fd+0x9c>
    {
      alt_fd_list[i].dev = dev;
    fb00:	e13ffe17 	ldw	r4,-8(fp)
    fb04:	04000074 	movhi	r16,1
    fb08:	8403bc04 	addi	r16,r16,3824
    fb0c:	01400304 	movi	r5,12
    fb10:	0002c240 	call	2c24 <__mulsi3>
    fb14:	1407883a 	add	r3,r2,r16
    fb18:	e0bfff17 	ldw	r2,-4(fp)
    fb1c:	18800015 	stw	r2,0(r3)
      if (i > alt_max_fd)
    fb20:	00800074 	movhi	r2,1
    fb24:	10888804 	addi	r2,r2,8736
    fb28:	10c00017 	ldw	r3,0(r2)
    fb2c:	e0bffe17 	ldw	r2,-8(fp)
    fb30:	1880040e 	bge	r3,r2,fb44 <alt_get_fd+0x90>
      {
        alt_max_fd = i;
    fb34:	00c00074 	movhi	r3,1
    fb38:	18c88804 	addi	r3,r3,8736
    fb3c:	e0bffe17 	ldw	r2,-8(fp)
    fb40:	18800015 	stw	r2,0(r3)
      }
      rc = i;
    fb44:	e0bffe17 	ldw	r2,-8(fp)
    fb48:	e0bffd15 	stw	r2,-12(fp)
      goto alt_get_fd_exit;
    fb4c:	00000606 	br	fb68 <alt_get_fd+0xb4>
   * indicates the highest file descriptor ever allocated. This is used to
   * improve efficency when searching the file descriptor list, and 
   * therefore reduce contention on the alt_fd_list_lock semaphore. 
   */

  for (i = 0; i < ALT_MAX_FD; i++)
    fb50:	e0bffe17 	ldw	r2,-8(fp)
    fb54:	10800044 	addi	r2,r2,1
    fb58:	e0bffe15 	stw	r2,-8(fp)
    fb5c:	e0bffe17 	ldw	r2,-8(fp)
    fb60:	10800810 	cmplti	r2,r2,32
    fb64:	103fdd1e 	bne	r2,zero,fadc <alt_get_fd+0x28>
   * file descriptor pool.
   */

  ALT_SEM_POST(alt_fd_list_lock);

  return rc;
    fb68:	e0bffd17 	ldw	r2,-12(fp)
}
    fb6c:	e037883a 	mov	sp,fp
    fb70:	dfc00217 	ldw	ra,8(sp)
    fb74:	df000117 	ldw	fp,4(sp)
    fb78:	dc000017 	ldw	r16,0(sp)
    fb7c:	dec00304 	addi	sp,sp,12
    fb80:	f800283a 	ret

0000fb84 <atexit>:
    fb84:	200b883a 	mov	r5,r4
    fb88:	000d883a 	mov	r6,zero
    fb8c:	0009883a 	mov	r4,zero
    fb90:	000f883a 	mov	r7,zero
    fb94:	000fc441 	jmpi	fc44 <__register_exitproc>

0000fb98 <exit>:
    fb98:	defffe04 	addi	sp,sp,-8
    fb9c:	000b883a 	mov	r5,zero
    fba0:	dc000015 	stw	r16,0(sp)
    fba4:	dfc00115 	stw	ra,4(sp)
    fba8:	2021883a 	mov	r16,r4
    fbac:	000fd7c0 	call	fd7c <__call_exitprocs>
    fbb0:	00800074 	movhi	r2,1
    fbb4:	10887f04 	addi	r2,r2,8700
    fbb8:	11000017 	ldw	r4,0(r2)
    fbbc:	20800f17 	ldw	r2,60(r4)
    fbc0:	10000126 	beq	r2,zero,fbc8 <exit+0x30>
    fbc4:	103ee83a 	callr	r2
    fbc8:	8009883a 	mov	r4,r16
    fbcc:	000ff6c0 	call	ff6c <_exit>

0000fbd0 <memcmp>:
    fbd0:	00c000c4 	movi	r3,3
    fbd4:	1980032e 	bgeu	r3,r6,fbe4 <memcmp+0x14>
    fbd8:	2144b03a 	or	r2,r4,r5
    fbdc:	10c4703a 	and	r2,r2,r3
    fbe0:	10000f26 	beq	r2,zero,fc20 <memcmp+0x50>
    fbe4:	31ffffc4 	addi	r7,r6,-1
    fbe8:	3000061e 	bne	r6,zero,fc04 <memcmp+0x34>
    fbec:	00000a06 	br	fc18 <memcmp+0x48>
    fbf0:	39ffffc4 	addi	r7,r7,-1
    fbf4:	00bfffc4 	movi	r2,-1
    fbf8:	21000044 	addi	r4,r4,1
    fbfc:	29400044 	addi	r5,r5,1
    fc00:	38800526 	beq	r7,r2,fc18 <memcmp+0x48>
    fc04:	20c00003 	ldbu	r3,0(r4)
    fc08:	28800003 	ldbu	r2,0(r5)
    fc0c:	18bff826 	beq	r3,r2,fbf0 <memcmp+0x20>
    fc10:	1885c83a 	sub	r2,r3,r2
    fc14:	f800283a 	ret
    fc18:	0005883a 	mov	r2,zero
    fc1c:	f800283a 	ret
    fc20:	180f883a 	mov	r7,r3
    fc24:	20c00017 	ldw	r3,0(r4)
    fc28:	28800017 	ldw	r2,0(r5)
    fc2c:	18bfed1e 	bne	r3,r2,fbe4 <memcmp+0x14>
    fc30:	31bfff04 	addi	r6,r6,-4
    fc34:	21000104 	addi	r4,r4,4
    fc38:	29400104 	addi	r5,r5,4
    fc3c:	39bff936 	bltu	r7,r6,fc24 <memcmp+0x54>
    fc40:	003fe806 	br	fbe4 <memcmp+0x14>

0000fc44 <__register_exitproc>:
    fc44:	defffa04 	addi	sp,sp,-24
    fc48:	00800074 	movhi	r2,1
    fc4c:	10887f04 	addi	r2,r2,8700
    fc50:	dc000015 	stw	r16,0(sp)
    fc54:	14000017 	ldw	r16,0(r2)
    fc58:	dd000415 	stw	r20,16(sp)
    fc5c:	2829883a 	mov	r20,r5
    fc60:	81405217 	ldw	r5,328(r16)
    fc64:	dcc00315 	stw	r19,12(sp)
    fc68:	dc800215 	stw	r18,8(sp)
    fc6c:	dc400115 	stw	r17,4(sp)
    fc70:	dfc00515 	stw	ra,20(sp)
    fc74:	2023883a 	mov	r17,r4
    fc78:	3027883a 	mov	r19,r6
    fc7c:	3825883a 	mov	r18,r7
    fc80:	28002526 	beq	r5,zero,fd18 <__register_exitproc+0xd4>
    fc84:	29000117 	ldw	r4,4(r5)
    fc88:	008007c4 	movi	r2,31
    fc8c:	11002716 	blt	r2,r4,fd2c <__register_exitproc+0xe8>
    fc90:	8800101e 	bne	r17,zero,fcd4 <__register_exitproc+0x90>
    fc94:	2105883a 	add	r2,r4,r4
    fc98:	1085883a 	add	r2,r2,r2
    fc9c:	20c00044 	addi	r3,r4,1
    fca0:	1145883a 	add	r2,r2,r5
    fca4:	0009883a 	mov	r4,zero
    fca8:	15000215 	stw	r20,8(r2)
    fcac:	28c00115 	stw	r3,4(r5)
    fcb0:	2005883a 	mov	r2,r4
    fcb4:	dfc00517 	ldw	ra,20(sp)
    fcb8:	dd000417 	ldw	r20,16(sp)
    fcbc:	dcc00317 	ldw	r19,12(sp)
    fcc0:	dc800217 	ldw	r18,8(sp)
    fcc4:	dc400117 	ldw	r17,4(sp)
    fcc8:	dc000017 	ldw	r16,0(sp)
    fccc:	dec00604 	addi	sp,sp,24
    fcd0:	f800283a 	ret
    fcd4:	29802204 	addi	r6,r5,136
    fcd8:	00800044 	movi	r2,1
    fcdc:	110e983a 	sll	r7,r2,r4
    fce0:	30c04017 	ldw	r3,256(r6)
    fce4:	2105883a 	add	r2,r4,r4
    fce8:	1085883a 	add	r2,r2,r2
    fcec:	1185883a 	add	r2,r2,r6
    fcf0:	19c6b03a 	or	r3,r3,r7
    fcf4:	14802015 	stw	r18,128(r2)
    fcf8:	14c00015 	stw	r19,0(r2)
    fcfc:	00800084 	movi	r2,2
    fd00:	30c04015 	stw	r3,256(r6)
    fd04:	88bfe31e 	bne	r17,r2,fc94 <__register_exitproc+0x50>
    fd08:	30804117 	ldw	r2,260(r6)
    fd0c:	11c4b03a 	or	r2,r2,r7
    fd10:	30804115 	stw	r2,260(r6)
    fd14:	003fdf06 	br	fc94 <__register_exitproc+0x50>
    fd18:	00800074 	movhi	r2,1
    fd1c:	10911104 	addi	r2,r2,17476
    fd20:	100b883a 	mov	r5,r2
    fd24:	80805215 	stw	r2,328(r16)
    fd28:	003fd606 	br	fc84 <__register_exitproc+0x40>
    fd2c:	00800034 	movhi	r2,0
    fd30:	10800004 	addi	r2,r2,0
    fd34:	1000021e 	bne	r2,zero,fd40 <__register_exitproc+0xfc>
    fd38:	013fffc4 	movi	r4,-1
    fd3c:	003fdc06 	br	fcb0 <__register_exitproc+0x6c>
    fd40:	01006404 	movi	r4,400
    fd44:	103ee83a 	callr	r2
    fd48:	1007883a 	mov	r3,r2
    fd4c:	103ffa26 	beq	r2,zero,fd38 <__register_exitproc+0xf4>
    fd50:	80805217 	ldw	r2,328(r16)
    fd54:	180b883a 	mov	r5,r3
    fd58:	18000115 	stw	zero,4(r3)
    fd5c:	18800015 	stw	r2,0(r3)
    fd60:	80c05215 	stw	r3,328(r16)
    fd64:	18006215 	stw	zero,392(r3)
    fd68:	18006315 	stw	zero,396(r3)
    fd6c:	0009883a 	mov	r4,zero
    fd70:	883fc826 	beq	r17,zero,fc94 <__register_exitproc+0x50>
    fd74:	003fd706 	br	fcd4 <__register_exitproc+0x90>

0000fd78 <register_fini>:
    fd78:	f800283a 	ret

0000fd7c <__call_exitprocs>:
    fd7c:	00800074 	movhi	r2,1
    fd80:	10887f04 	addi	r2,r2,8700
    fd84:	10800017 	ldw	r2,0(r2)
    fd88:	defff304 	addi	sp,sp,-52
    fd8c:	df000b15 	stw	fp,44(sp)
    fd90:	d8800115 	stw	r2,4(sp)
    fd94:	00800034 	movhi	r2,0
    fd98:	10800004 	addi	r2,r2,0
    fd9c:	1005003a 	cmpeq	r2,r2,zero
    fda0:	d8800215 	stw	r2,8(sp)
    fda4:	d8800117 	ldw	r2,4(sp)
    fda8:	dd400815 	stw	r21,32(sp)
    fdac:	dd000715 	stw	r20,28(sp)
    fdb0:	10805204 	addi	r2,r2,328
    fdb4:	dfc00c15 	stw	ra,48(sp)
    fdb8:	ddc00a15 	stw	r23,40(sp)
    fdbc:	dd800915 	stw	r22,36(sp)
    fdc0:	dcc00615 	stw	r19,24(sp)
    fdc4:	dc800515 	stw	r18,20(sp)
    fdc8:	dc400415 	stw	r17,16(sp)
    fdcc:	dc000315 	stw	r16,12(sp)
    fdd0:	282b883a 	mov	r21,r5
    fdd4:	2039883a 	mov	fp,r4
    fdd8:	d8800015 	stw	r2,0(sp)
    fddc:	2829003a 	cmpeq	r20,r5,zero
    fde0:	d8800117 	ldw	r2,4(sp)
    fde4:	14405217 	ldw	r17,328(r2)
    fde8:	88001026 	beq	r17,zero,fe2c <__call_exitprocs+0xb0>
    fdec:	ddc00017 	ldw	r23,0(sp)
    fdf0:	88800117 	ldw	r2,4(r17)
    fdf4:	8c802204 	addi	r18,r17,136
    fdf8:	143fffc4 	addi	r16,r2,-1
    fdfc:	80000916 	blt	r16,zero,fe24 <__call_exitprocs+0xa8>
    fe00:	05bfffc4 	movi	r22,-1
    fe04:	a000151e 	bne	r20,zero,fe5c <__call_exitprocs+0xe0>
    fe08:	8409883a 	add	r4,r16,r16
    fe0c:	2105883a 	add	r2,r4,r4
    fe10:	1485883a 	add	r2,r2,r18
    fe14:	10c02017 	ldw	r3,128(r2)
    fe18:	a8c01126 	beq	r21,r3,fe60 <__call_exitprocs+0xe4>
    fe1c:	843fffc4 	addi	r16,r16,-1
    fe20:	85bff81e 	bne	r16,r22,fe04 <__call_exitprocs+0x88>
    fe24:	d8800217 	ldw	r2,8(sp)
    fe28:	10003126 	beq	r2,zero,fef0 <__call_exitprocs+0x174>
    fe2c:	dfc00c17 	ldw	ra,48(sp)
    fe30:	df000b17 	ldw	fp,44(sp)
    fe34:	ddc00a17 	ldw	r23,40(sp)
    fe38:	dd800917 	ldw	r22,36(sp)
    fe3c:	dd400817 	ldw	r21,32(sp)
    fe40:	dd000717 	ldw	r20,28(sp)
    fe44:	dcc00617 	ldw	r19,24(sp)
    fe48:	dc800517 	ldw	r18,20(sp)
    fe4c:	dc400417 	ldw	r17,16(sp)
    fe50:	dc000317 	ldw	r16,12(sp)
    fe54:	dec00d04 	addi	sp,sp,52
    fe58:	f800283a 	ret
    fe5c:	8409883a 	add	r4,r16,r16
    fe60:	88c00117 	ldw	r3,4(r17)
    fe64:	2105883a 	add	r2,r4,r4
    fe68:	1445883a 	add	r2,r2,r17
    fe6c:	18ffffc4 	addi	r3,r3,-1
    fe70:	11800217 	ldw	r6,8(r2)
    fe74:	1c001526 	beq	r3,r16,fecc <__call_exitprocs+0x150>
    fe78:	10000215 	stw	zero,8(r2)
    fe7c:	303fe726 	beq	r6,zero,fe1c <__call_exitprocs+0xa0>
    fe80:	00c00044 	movi	r3,1
    fe84:	1c06983a 	sll	r3,r3,r16
    fe88:	90804017 	ldw	r2,256(r18)
    fe8c:	8cc00117 	ldw	r19,4(r17)
    fe90:	1884703a 	and	r2,r3,r2
    fe94:	10001426 	beq	r2,zero,fee8 <__call_exitprocs+0x16c>
    fe98:	90804117 	ldw	r2,260(r18)
    fe9c:	1884703a 	and	r2,r3,r2
    fea0:	10000c1e 	bne	r2,zero,fed4 <__call_exitprocs+0x158>
    fea4:	2105883a 	add	r2,r4,r4
    fea8:	1485883a 	add	r2,r2,r18
    feac:	11400017 	ldw	r5,0(r2)
    feb0:	e009883a 	mov	r4,fp
    feb4:	303ee83a 	callr	r6
    feb8:	88800117 	ldw	r2,4(r17)
    febc:	98bfc81e 	bne	r19,r2,fde0 <__call_exitprocs+0x64>
    fec0:	b8800017 	ldw	r2,0(r23)
    fec4:	147fd526 	beq	r2,r17,fe1c <__call_exitprocs+0xa0>
    fec8:	003fc506 	br	fde0 <__call_exitprocs+0x64>
    fecc:	8c000115 	stw	r16,4(r17)
    fed0:	003fea06 	br	fe7c <__call_exitprocs+0x100>
    fed4:	2105883a 	add	r2,r4,r4
    fed8:	1485883a 	add	r2,r2,r18
    fedc:	11000017 	ldw	r4,0(r2)
    fee0:	303ee83a 	callr	r6
    fee4:	003ff406 	br	feb8 <__call_exitprocs+0x13c>
    fee8:	303ee83a 	callr	r6
    feec:	003ff206 	br	feb8 <__call_exitprocs+0x13c>
    fef0:	88800117 	ldw	r2,4(r17)
    fef4:	1000081e 	bne	r2,zero,ff18 <__call_exitprocs+0x19c>
    fef8:	89000017 	ldw	r4,0(r17)
    fefc:	20000726 	beq	r4,zero,ff1c <__call_exitprocs+0x1a0>
    ff00:	b9000015 	stw	r4,0(r23)
    ff04:	8809883a 	mov	r4,r17
    ff08:	00000000 	call	0 <__alt_mem_onchip_memory>
    ff0c:	bc400017 	ldw	r17,0(r23)
    ff10:	883fb71e 	bne	r17,zero,fdf0 <__call_exitprocs+0x74>
    ff14:	003fc506 	br	fe2c <__call_exitprocs+0xb0>
    ff18:	89000017 	ldw	r4,0(r17)
    ff1c:	882f883a 	mov	r23,r17
    ff20:	2023883a 	mov	r17,r4
    ff24:	883fb21e 	bne	r17,zero,fdf0 <__call_exitprocs+0x74>
    ff28:	003fc006 	br	fe2c <__call_exitprocs+0xb0>

0000ff2c <alt_sim_halt>:

/*
 * Routine called on exit.
 */
static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code)
{
    ff2c:	defffd04 	addi	sp,sp,-12
    ff30:	df000215 	stw	fp,8(sp)
    ff34:	df000204 	addi	fp,sp,8
    ff38:	e13fff15 	stw	r4,-4(fp)
  int r2 = exit_code;
    ff3c:	e0bfff17 	ldw	r2,-4(fp)
    ff40:	e0bffe15 	stw	r2,-8(fp)
  __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */

  __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA );

#else /* !DEBUG_STUB */
  if (r2) {
    ff44:	e0bffe17 	ldw	r2,-8(fp)
    ff48:	1005003a 	cmpeq	r2,r2,zero
    ff4c:	1000021e 	bne	r2,zero,ff58 <alt_sim_halt+0x2c>
    ALT_SIM_FAIL();
    ff50:	002af070 	cmpltui	zero,zero,43969
    ff54:	00000106 	br	ff5c <alt_sim_halt+0x30>
  } else {
    ALT_SIM_PASS();
    ff58:	002af0b0 	cmpltui	zero,zero,43970
  }
#endif /* DEBUG_STUB */
}
    ff5c:	e037883a 	mov	sp,fp
    ff60:	df000017 	ldw	fp,0(sp)
    ff64:	dec00104 	addi	sp,sp,4
    ff68:	f800283a 	ret

0000ff6c <_exit>:
 *
 * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h
 */

void ALT_EXIT (int exit_code)
{
    ff6c:	defffd04 	addi	sp,sp,-12
    ff70:	dfc00215 	stw	ra,8(sp)
    ff74:	df000115 	stw	fp,4(sp)
    ff78:	df000104 	addi	fp,sp,4
    ff7c:	e13fff15 	stw	r4,-4(fp)
  ALT_OS_STOP();

  /* Provide notification to the simulator that we've stopped */

  ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n");
  ALT_SIM_HALT(exit_code);
    ff80:	e13fff17 	ldw	r4,-4(fp)
    ff84:	000ff2c0 	call	ff2c <alt_sim_halt>

  /* spin forever, since there's no where to go back to */

  ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n");
  while (1);
    ff88:	003fff06 	br	ff88 <_exit+0x1c>
    ff8c:	0000fd78 	rdprs	zero,zero,1013