
hello_world_0.elf:     file format elf32-littlenios2

Disassembly of section .entry:

00800000 <__reset>:
    /* Assume the instruction cache size is always a power of two. */
#if NIOS2_ICACHE_SIZE > 0x8000
    movhi r2, %hi(NIOS2_ICACHE_SIZE)
#else
    movui r2, NIOS2_ICACHE_SIZE
  800000:	00840014 	movui	r2,4096
#endif

0:
    initi r2
  800004:	1001483a 	initi	r2
    addi r2, r2, -NIOS2_ICACHE_LINE_SIZE
  800008:	10bff804 	addi	r2,r2,-32
    bgt r2, zero, 0b
  80000c:	00bffd16 	blt	zero,r2,800004 <__alt_mem_sdram+0x4>
1:

    /*
     * The following debug information tells the ISS not to run the loop above
     * but to perform its actions using faster internal code.
     */
    .pushsection .debug_alt_sim_info
    .int 1, 1, 0b, 1b
    .popsection
#endif /* Initialize Instruction Cache */

/*
 * 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)
  800010:	00402034 	movhi	at,128
    ori r1, r1, %lo(_start)
  800014:	08407214 	ori	at,at,456
    jmp r1
  800018:	0800683a 	jmp	at
  80001c:	00000000 	call	0 <__alt_mem_sdram-0x800000>
Disassembly of section .exceptions:

00800020 <alt_exception>:
         * caller saved registers on the stack (See the Nios2 ABI
         * documentation for details).
         */

        addi  sp, sp, -76
  800020:	deffed04 	addi	sp,sp,-76

#ifdef ALT_STACK_CHECK

        bltu  sp, et, .Lstack_overflow

#endif

#endif

        stw   ra,  0(sp)
  800024:	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)
  800028:	d8400215 	stw	at,8(sp)
        stw   r2,  12(sp)
  80002c:	d8800315 	stw	r2,12(sp)
        stw   r3,  16(sp)
  800030:	d8c00415 	stw	r3,16(sp)
        stw   r4,  20(sp)
  800034:	d9000515 	stw	r4,20(sp)
        stw   r5,  24(sp)
  800038:	d9400615 	stw	r5,24(sp)
        stw   r6,  28(sp)
  80003c:	d9800715 	stw	r6,28(sp)
        stw   r7,  32(sp)
  800040:	d9c00815 	stw	r7,32(sp)

        rdctl r5, estatus
  800044:	000b307a 	rdctl	r5,estatus

        stw   r8,  36(sp)
  800048:	da000915 	stw	r8,36(sp)
        stw   r9,  40(sp)
  80004c:	da400a15 	stw	r9,40(sp)
        stw   r10, 44(sp)
  800050:	da800b15 	stw	r10,44(sp)
        stw   r11, 48(sp)
  800054:	dac00c15 	stw	r11,48(sp)
        stw   r12, 52(sp)
  800058:	db000d15 	stw	r12,52(sp)
        stw   r13, 56(sp)
  80005c:	db400e15 	stw	r13,56(sp)
        stw   r14, 60(sp)
  800060:	db800f15 	stw	r14,60(sp)
        stw   r15, 64(sp)
  800064:	dbc01015 	stw	r15,64(sp)

        stw   r5,  68(sp)
  800068:	d9401115 	stw	r5,68(sp)
        addi  r15, ea, -4 /* re-issue the interrupted instruction */
  80006c:	ebffff04 	addi	r15,ea,-4
        stw   r15,  72(sp)
  800070:	dbc01215 	stw	r15,72(sp)
        /*
         * Test to see if the exception was a software exception or caused 
         * by an external interrupt, and vector accordingly.
         */
        rdctl r4, ipending
  800074:	0009313a 	rdctl	r4,ipending
        andi  r2, r5, 1
  800078:	2880004c 	andi	r2,r5,1
        beq   r2, zero, .Lnot_irq
  80007c:	10000326 	beq	r2,zero,80008c <__ram_exceptions_start+0x6c>
        beq   r4, zero, .Lnot_irq
  800080:	20000226 	beq	r4,zero,80008c <__ram_exceptions_start+0x6c>
#endif /* ALT_CI_INTERRUPT_VECTOR_N */

        .section .exceptions.irqhandler, "xa"
        /*
         * Now that all necessary registers have been preserved, call 
         * alt_irq_handler() to process the interrupts.
         */

        call alt_irq_handler
  800084:	08000ec0 	call	8000ec <alt_irq_handler>

        .section .exceptions.irqreturn, "xa"

        br    .Lexception_exit
  800088:	00000306 	br	800098 <__ram_exceptions_start+0x78>

        /*
         * The interrupt testing code goes here.  If an interrupt is active
         * then it stores ea-4 into 72(sp), handles the interrupt and jumps to
         * .exceptions.exit.  If there is no interrupt then it continues
         */

        .section .exceptions.notirq, "xa"

        stw   ea,  72(sp) /* Return after the instruction which caused the exception */
  80008c:	df401215 	stw	ea,72(sp)
        ldw   r2, -4(ea)
  800090:	e8bfff17 	ldw	r2,-4(ea)

        /*
         * The other exception handling code goes here.
         */

        .section .exceptions.unknown

        /*
        *  If you get here then one of the following could have happened:
        *
        *  - Your program could have been compiled for a full-featured Nios II
        *    core, but it is running on a smaller core, and instruction emulation
        *    has been disabled by defining ALT_NO_INSTRUCTION_EMULATION.
        *
        *    You can work around the problem by re-enabling instruction emulation,
        *    or you can figure out why your program is being compiled for a system
        *    other than the one that it is running on.
        *
        *  - Your program has executed a trap instruction, but has not implemented
        *    a handler for this instruction.
        *
        *  - Your program has executed an illegal instruction (one which is not
        *    defined in the instruction set).
        *
        *  - Your hardware is broken and is generating spurious interrupts (a
        *    peripheral which deasserts its interrupt output before its interrupt
        *    handler has been executed will cause spurious interrupts).
        *
        */

#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
  800094:	003da03a 	break	0

#else

        /*
        *  If there is no debug stub then a BREAK will probably cause a reboot.
        *  An infinate loop will probably be more useful.
        */
0:
        br   0b

#endif

        .section .exceptions.exit, "xa"

        /* 
         * 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)
  800098:	d9401117 	ldw	r5,68(sp)
        ldw   ea,  72(sp)
  80009c:	df401217 	ldw	ea,72(sp)
        ldw   ra,   0(sp)
  8000a0:	dfc00017 	ldw	ra,0(sp)

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

        ldw   r1,   8(sp)
  8000a8:	d8400217 	ldw	at,8(sp)
        ldw   r2,  12(sp)
  8000ac:	d8800317 	ldw	r2,12(sp)
        ldw   r3,  16(sp)
  8000b0:	d8c00417 	ldw	r3,16(sp)
        ldw   r4,  20(sp)
  8000b4:	d9000517 	ldw	r4,20(sp)
        ldw   r5,  24(sp)
  8000b8:	d9400617 	ldw	r5,24(sp)
        ldw   r6,  28(sp)
  8000bc:	d9800717 	ldw	r6,28(sp)
        ldw   r7,  32(sp)
  8000c0:	d9c00817 	ldw	r7,32(sp)

#ifdef ALT_EXCEPTION_STACK
#ifdef ALT_STACK_CHECK
        ldw   et, %gprel(alt_exception_old_stack_limit)(gp)
#endif
#endif

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

#ifdef ALT_EXCEPTION_STACK

#ifdef ALT_STACK_CHECK
        stw   et, %gprel(alt_stack_limit_value)(gp)
        stw   zero, %gprel(alt_exception_old_stack_limit)(gp)
#endif

        ldw   sp,  76(sp)

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

#endif

        /*
         * Return to the interrupted instruction.
         */

        eret
  8000e8:	e800083a 	eret

008000ec <alt_irq_handler>:
 */

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

  NIOS2_READ_IPENDING (active);
  8000fc:	0005313a 	rdctl	r2,ipending
  800100:	e0800415 	stw	r2,16(fp)
  800104:	e0800417 	ldw	r2,16(fp)
  800108:	e0800315 	stw	r2,12(fp)
  80010c:	e0800317 	ldw	r2,12(fp)
  800110:	e0800015 	stw	r2,0(fp)
#ifdef ALT_CI_INTERRUPT_VECTOR
  alt_32 offset;
  char*  alt_irq_base = (char*)alt_irq;
#else
  alt_u32 active;
  alt_u32 mask;
  alt_u32 i;
#endif /* ALT_CI_INTERRUPT_VECTOR */
  
  /*
   * Notify the operating system that we are at interrupt level.
   */ 
  
  ALT_OS_INT_ENTER();

#ifdef ALT_CI_INTERRUPT_VECTOR
  /*
   * Call the interrupt vector custom instruction using the 
   * ALT_CI_INTERRUPT_VECTOR macro.
   * It returns the offset into the vector table of the lowest-valued pending
   * interrupt (corresponds to highest priority) or a negative value if none.
   * The custom instruction assumes that each table entry is eight bytes.
   */
  while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) {
    struct ALT_IRQ_HANDLER* handler_entry = 
      (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset);

    handler_entry->handler(handler_entry->context, offset >> 3);
  }
#else
  /* 
   * Obtain from the interrupt controller a bit list of pending interrupts,
   * and then process the highest priority interrupt. This process loops, 
   * loading the active interrupt list on each pass until alt_irq_pending() 
   * return zero.
   * 
   * The maximum interrupt latency for the highest priority interrupt is
   * reduced by finding out which interrupts are pending as late as possible.
   * 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 ();

  do
  {
    i = 0;
  800114:	e0000215 	stw	zero,8(fp)
    mask = 1;
  800118:	00800044 	movi	r2,1
  80011c:	e0800115 	stw	r2,4(fp)

    /*
     * Test each bit in turn looking for an active interrupt. Once one is 
     * found, the interrupt handler asigned by a call to alt_irq_register() is
     * called to clear the interrupt condition.
     */

    do
    {
      if (active & mask)
  800120:	e0c00017 	ldw	r3,0(fp)
  800124:	e0800117 	ldw	r2,4(fp)
  800128:	1884703a 	and	r2,r3,r2
  80012c:	1005003a 	cmpeq	r2,r2,zero
  800130:	1000101e 	bne	r2,zero,800174 <alt_irq_handler+0x88>
      { 
        alt_irq[i].handler(alt_irq[i].context, i); 
  800134:	00c02074 	movhi	r3,129
  800138:	18f8db04 	addi	r3,r3,-7316
  80013c:	e0800217 	ldw	r2,8(fp)
  800140:	10800224 	muli	r2,r2,8
  800144:	10c9883a 	add	r4,r2,r3
  800148:	00c02074 	movhi	r3,129
  80014c:	18f8db04 	addi	r3,r3,-7316
  800150:	e0800217 	ldw	r2,8(fp)
  800154:	10800224 	muli	r2,r2,8
  800158:	10c5883a 	add	r2,r2,r3
  80015c:	10800104 	addi	r2,r2,4
  800160:	20c00017 	ldw	r3,0(r4)
  800164:	11000017 	ldw	r4,0(r2)
  800168:	e1400217 	ldw	r5,8(fp)
  80016c:	183ee83a 	callr	r3
        break;
  800170:	00000706 	br	800190 <alt_irq_handler+0xa4>
      }
      mask <<= 1;
  800174:	e0800117 	ldw	r2,4(fp)
  800178:	1085883a 	add	r2,r2,r2
  80017c:	e0800115 	stw	r2,4(fp)
      i++;
  800180:	e0800217 	ldw	r2,8(fp)
  800184:	10800044 	addi	r2,r2,1
  800188:	e0800215 	stw	r2,8(fp)

    } while (1);
  80018c:	003fe406 	br	800120 <alt_irq_handler+0x34>
static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void)
{
  alt_u32 active;

  NIOS2_READ_IPENDING (active);
  800190:	0005313a 	rdctl	r2,ipending
  800194:	e0800315 	stw	r2,12(fp)
  800198:	e0800317 	ldw	r2,12(fp)
  80019c:	e0800415 	stw	r2,16(fp)
  8001a0:	e0800417 	ldw	r2,16(fp)
  8001a4:	e0800015 	stw	r2,0(fp)

    active = alt_irq_pending ();
    
  } while (active);
  8001a8:	e0800017 	ldw	r2,0(fp)
  8001ac:	1005003a 	cmpeq	r2,r2,zero
  8001b0:	1000011e 	bne	r2,zero,8001b8 <alt_irq_handler+0xcc>
  8001b4:	003fd706 	br	800114 <alt_irq_handler+0x28>
#endif /* ALT_CI_INTERRUPT_VECTOR */

  /*
   * Notify the operating system that interrupt processing is complete.
   */ 

  ALT_OS_INT_EXIT();
}
  8001b8:	dfc00617 	ldw	ra,24(sp)
  8001bc:	df000517 	ldw	fp,20(sp)
  8001c0:	dec00704 	addi	sp,sp,28
  8001c4:	f800283a 	ret
Disassembly of section .text:

008001c8 <_start>:

    .size __reset, . - __reset
#endif /* Jump to _start */

/*
 * When not using exit, provide an _exit symbol to prevent unresolved
 * references to _exit from the linker script.
 */ 
#ifdef ALT_NO_EXIT
    .globl _exit
_exit:
#endif

/*************************************************************************\
|                          TEXT SECTION (.text)                           |
\*************************************************************************/

/*
 * Start of the .text section, and also the code entry point when
 * the code is executed by a bootloader rather than directly from reset.
 */
    .section .text
    .align 2

    .globl _start
    .type _start, @function
_start:

/*
 * Initialize the data cache if present (i.e. size > 0) and not
 * optimizing for RTL simulation.
 * RTL simulations can ensure the data cache is already initialized
 * so skipping this loop speeds up RTL simulation.
 */

#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE)

    /* Assume the data cache size is always a power of two. */
#if NIOS2_DCACHE_SIZE > 0x8000
    movhi r2, %hi(NIOS2_DCACHE_SIZE)
#else
    movui r2, NIOS2_DCACHE_SIZE
  8001c8:	00820014 	movui	r2,2048
#endif

0:
    initd 0(r2)
  8001cc:	10000033 	initd	0(r2)
    addi r2, r2, -NIOS2_DCACHE_LINE_SIZE
  8001d0:	10bff804 	addi	r2,r2,-32
    bgt r2, zero, 0b
  8001d4:	00bffd16 	blt	zero,r2,8001cc <__ram_exceptions_end+0x4>
1:

    /*
     * The following debug information tells the ISS not to run the loop above
     * but to perform its actions using faster internal code.
     */
    .pushsection .debug_alt_sim_info
    .int 2, 1, 0b, 1b
    .popsection

#endif /* Initialize Data Cache */

    /* Log that caches have been initialized. */
    ALT_LOG_PUTS(alt_log_msg_cache)

    /* Log that the stack pointer is about to be setup. */
    ALT_LOG_PUTS(alt_log_msg_stackpointer)
    
    /* 
     * 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)
  8001d8:	06c04034 	movhi	sp,256
    ori sp, sp, %lo(__alt_stack_pointer)
  8001dc:	dec00014 	ori	sp,sp,0

    /* Set up the global pointer. */
    movhi gp, %hi(_gp)
  8001e0:	06802074 	movhi	gp,129
    ori gp, gp, %lo(_gp)
  8001e4:	d698bc14 	ori	gp,gp,25328

/*
 * Clear the BSS if not optimizing for RTL simulation.
 *
 * This uses the symbols: __bss_start and __bss_end, which are defined 
 * by the linker script. They mark the begining and the end of the bss 
 * region. The linker script guarantees that these values are word aligned. 
 */
#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)
  8001e8:	00802034 	movhi	r2,128
    ori r2, r2, %lo(__bss_start)
  8001ec:	10b8d914 	ori	r2,r2,58212

    movhi r3, %hi(__bss_end)
  8001f0:	00c02034 	movhi	r3,128
    ori r3, r3, %lo(__bss_end)
  8001f4:	18f95e14 	ori	r3,r3,58744

    beq r2, r3, 1f 
  8001f8:	10c00326 	beq	r2,r3,800208 <__ram_exceptions_end+0x40>

0:
    stw zero, (r2)
  8001fc:	10000015 	stw	zero,0(r2)
    addi r2, r2, 4
  800200:	10800104 	addi	r2,r2,4
    bltu r2, r3, 0b
  800204:	10fffd36 	bltu	r2,r3,8001fc <__ram_exceptions_end+0x34>

1:

    /*
     * The following debug information tells the ISS not to run the loop above
     * but to perform its actions using faster internal code.
     */
    .pushsection .debug_alt_sim_info
    .int 3, 1, 0b, 1b
    .popsection
#endif /* ALT_SIM_OPTIMIZE */

/*
 * The alt_load() facility is normally used when there is no bootloader.
 * It copies some sections into RAM so it acts like a mini-bootloader.
 */
#ifdef CALL_ALT_LOAD

#ifdef ALT_STACK_CHECK
    /*
     * If the user has selected stack checking then we need to set up a safe
     * value in the stack limit register so that the relocation functions
     * don't think the stack has overflowed (the contents of the rwdata
     * section aren't defined until alt_load() has been called).
     */
    mov   et, zero
#endif

    call alt_load
  800208:	08091c80 	call	8091c8 <alt_load>

#endif /* CALL_ALT_LOAD */

#ifdef ALT_STACK_CHECK
    /*
     * Set up the stack limit (if required).  The linker has set up the
     * copy of the variable which is in memory.
     */

    ldw   et, %gprel(alt_stack_limit_value)(gp)
#endif

    /* 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
  80020c:	08093e40 	call	8093e4 <alt_main>

00800210 <alt_after_alt_main>:

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

00800214 <main>:

#include <stdio.h>

int main()
{
  800214:	defffe04 	addi	sp,sp,-8
  800218:	dfc00115 	stw	ra,4(sp)
  80021c:	df000015 	stw	fp,0(sp)
  800220:	d839883a 	mov	fp,sp
  printf("Hello from Nios II!\n");
  800224:	01002074 	movhi	r4,129
  800228:	21306904 	addi	r4,r4,-15964
  80022c:	08002440 	call	800244 <printf>

  return 0;
  800230:	0005883a 	mov	r2,zero
}
  800234:	dfc00117 	ldw	ra,4(sp)
  800238:	df000017 	ldw	fp,0(sp)
  80023c:	dec00204 	addi	sp,sp,8
  800240:	f800283a 	ret

00800244 <printf>:
  800244:	defffc04 	addi	sp,sp,-16
  800248:	dfc00015 	stw	ra,0(sp)
  80024c:	d9400115 	stw	r5,4(sp)
  800250:	d9800215 	stw	r6,8(sp)
  800254:	d9c00315 	stw	r7,12(sp)
  800258:	d0a00017 	ldw	r2,-32768(gp)
  80025c:	200b883a 	mov	r5,r4
  800260:	d9800104 	addi	r6,sp,4
  800264:	11000217 	ldw	r4,8(r2)
  800268:	0801f940 	call	801f94 <__vfprintf_internal>
  80026c:	dfc00017 	ldw	ra,0(sp)
  800270:	dec00404 	addi	sp,sp,16
  800274:	f800283a 	ret

00800278 <__sprint>:
  800278:	defffe04 	addi	sp,sp,-8
  80027c:	dc000015 	stw	r16,0(sp)
  800280:	dfc00115 	stw	ra,4(sp)
  800284:	28800217 	ldw	r2,8(r5)
  800288:	2821883a 	mov	r16,r5
  80028c:	0007883a 	mov	r3,zero
  800290:	1000061e 	bne	r2,zero,8002ac <__sprint+0x34>
  800294:	1805883a 	mov	r2,r3
  800298:	28000115 	stw	zero,4(r5)
  80029c:	dfc00117 	ldw	ra,4(sp)
  8002a0:	dc000017 	ldw	r16,0(sp)
  8002a4:	dec00204 	addi	sp,sp,8
  8002a8:	f800283a 	ret
  8002ac:	08043440 	call	804344 <__sfvwrite>
  8002b0:	1007883a 	mov	r3,r2
  8002b4:	1805883a 	mov	r2,r3
  8002b8:	80000115 	stw	zero,4(r16)
  8002bc:	80000215 	stw	zero,8(r16)
  8002c0:	dfc00117 	ldw	ra,4(sp)
  8002c4:	dc000017 	ldw	r16,0(sp)
  8002c8:	dec00204 	addi	sp,sp,8
  8002cc:	f800283a 	ret

008002d0 <___vfprintf_internal_r>:
  8002d0:	defe4a04 	addi	sp,sp,-1752
  8002d4:	dc01b315 	stw	r16,1740(sp)
  8002d8:	d9419e15 	stw	r5,1656(sp)
  8002dc:	d9019d15 	stw	r4,1652(sp)
  8002e0:	dfc1b515 	stw	ra,1748(sp)
  8002e4:	df01b415 	stw	fp,1744(sp)
  8002e8:	dc41b215 	stw	r17,1736(sp)
  8002ec:	dc81b115 	stw	r18,1732(sp)
  8002f0:	dcc1b015 	stw	r19,1728(sp)
  8002f4:	dd01af15 	stw	r20,1724(sp)
  8002f8:	dd41ae15 	stw	r21,1720(sp)
  8002fc:	dd81ad15 	stw	r22,1716(sp)
  800300:	ddc1ac15 	stw	r23,1712(sp)
  800304:	3021883a 	mov	r16,r6
  800308:	d9c19f15 	stw	r7,1660(sp)
  80030c:	080486c0 	call	80486c <localeconv>
  800310:	d8c19e17 	ldw	r3,1656(sp)
  800314:	10800017 	ldw	r2,0(r2)
  800318:	000b883a 	mov	r5,zero
  80031c:	1900030b 	ldhu	r4,12(r3)
  800320:	d881a315 	stw	r2,1676(sp)
  800324:	d941a415 	stw	r5,1680(sp)
  800328:	20bfffcc 	andi	r2,r4,65535
  80032c:	1004d0fa 	srli	r2,r2,3
  800330:	d941a515 	stw	r5,1684(sp)
  800334:	d801a615 	stw	zero,1688(sp)
  800338:	1080005c 	xori	r2,r2,1
  80033c:	1080004c 	andi	r2,r2,1
  800340:	d801a915 	stw	zero,1700(sp)
  800344:	d801aa15 	stw	zero,1704(sp)
  800348:	1000421e 	bne	r2,zero,800454 <___vfprintf_internal_r+0x184>
  80034c:	18800417 	ldw	r2,16(r3)
  800350:	10004026 	beq	r2,zero,800454 <___vfprintf_internal_r+0x184>
  800354:	20c0068c 	andi	r3,r4,26
  800358:	00800284 	movi	r2,10
  80035c:	18804626 	beq	r3,r2,800478 <___vfprintf_internal_r+0x1a8>
  800360:	dc800904 	addi	r18,sp,36
  800364:	802d883a 	mov	r22,r16
  800368:	dc800615 	stw	r18,24(sp)
  80036c:	d8000815 	stw	zero,32(sp)
  800370:	d8000715 	stw	zero,28(sp)
  800374:	d801a115 	stw	zero,1668(sp)
  800378:	b1000003 	ldbu	r4,0(r22)
  80037c:	b027883a 	mov	r19,r22
  800380:	20803fcc 	andi	r2,r4,255
  800384:	1080201c 	xori	r2,r2,128
  800388:	10bfe004 	addi	r2,r2,-128
  80038c:	10000826 	beq	r2,zero,8003b0 <___vfprintf_internal_r+0xe0>
  800390:	00c00944 	movi	r3,37
  800394:	10c00626 	beq	r2,r3,8003b0 <___vfprintf_internal_r+0xe0>
  800398:	b5800044 	addi	r22,r22,1
  80039c:	b1000003 	ldbu	r4,0(r22)
  8003a0:	20803fcc 	andi	r2,r4,255
  8003a4:	1080201c 	xori	r2,r2,128
  8003a8:	10bfe004 	addi	r2,r2,-128
  8003ac:	103ff91e 	bne	r2,zero,800394 <___vfprintf_internal_r+0xc4>
  8003b0:	b4e3c83a 	sub	r17,r22,r19
  8003b4:	88000f26 	beq	r17,zero,8003f4 <___vfprintf_internal_r+0x124>
  8003b8:	d8800817 	ldw	r2,32(sp)
  8003bc:	d8c00717 	ldw	r3,28(sp)
  8003c0:	94c00015 	stw	r19,0(r18)
  8003c4:	1445883a 	add	r2,r2,r17
  8003c8:	18c00044 	addi	r3,r3,1
  8003cc:	d8800815 	stw	r2,32(sp)
  8003d0:	008001c4 	movi	r2,7
  8003d4:	94400115 	stw	r17,4(r18)
  8003d8:	d8c00715 	stw	r3,28(sp)
  8003dc:	94800204 	addi	r18,r18,8
  8003e0:	10c05b16 	blt	r2,r3,800550 <___vfprintf_internal_r+0x280>
  8003e4:	d8c1a117 	ldw	r3,1668(sp)
  8003e8:	b1000003 	ldbu	r4,0(r22)
  8003ec:	1c47883a 	add	r3,r3,r17
  8003f0:	d8c1a115 	stw	r3,1668(sp)
  8003f4:	20803fcc 	andi	r2,r4,255
  8003f8:	1080201c 	xori	r2,r2,128
  8003fc:	10bfe004 	addi	r2,r2,-128
  800400:	10037626 	beq	r2,zero,8011dc <___vfprintf_internal_r+0xf0c>
  800404:	b5800044 	addi	r22,r22,1
  800408:	b1000003 	ldbu	r4,0(r22)
  80040c:	053fffc4 	movi	r20,-1
  800410:	d801a015 	stw	zero,1664(sp)
  800414:	d801a715 	stw	zero,1692(sp)
  800418:	d801a215 	stw	zero,1672(sp)
  80041c:	d8019c05 	stb	zero,1648(sp)
  800420:	27003fcc 	andi	fp,r4,255
  800424:	e700201c 	xori	fp,fp,128
  800428:	e73fe004 	addi	fp,fp,-128
  80042c:	b5800044 	addi	r22,r22,1
  800430:	e0fff804 	addi	r3,fp,-32
  800434:	00801604 	movi	r2,88
  800438:	10c1a336 	bltu	r2,r3,800ac8 <___vfprintf_internal_r+0x7f8>
  80043c:	180490ba 	slli	r2,r3,2
  800440:	00c02074 	movhi	r3,129
  800444:	18f07704 	addi	r3,r3,-15908
  800448:	10c5883a 	add	r2,r2,r3
  80044c:	11000017 	ldw	r4,0(r2)
  800450:	2000683a 	jmp	r4
  800454:	d9019e17 	ldw	r4,1656(sp)
  800458:	08026580 	call	802658 <__swsetup>
  80045c:	00ffffc4 	movi	r3,-1
  800460:	10002e1e 	bne	r2,zero,80051c <___vfprintf_internal_r+0x24c>
  800464:	d9c19e17 	ldw	r7,1656(sp)
  800468:	00800284 	movi	r2,10
  80046c:	3900030b 	ldhu	r4,12(r7)
  800470:	20c0068c 	andi	r3,r4,26
  800474:	18bfba1e 	bne	r3,r2,800360 <___vfprintf_internal_r+0x90>
  800478:	d8819e17 	ldw	r2,1656(sp)
  80047c:	1280038b 	ldhu	r10,14(r2)
  800480:	50bfffcc 	andi	r2,r10,65535
  800484:	10a0001c 	xori	r2,r2,32768
  800488:	10a00004 	addi	r2,r2,-32768
  80048c:	103fb416 	blt	r2,zero,800360 <___vfprintf_internal_r+0x90>
  800490:	d8c19e17 	ldw	r3,1656(sp)
  800494:	d9819f17 	ldw	r6,1660(sp)
  800498:	dc407104 	addi	r17,sp,452
  80049c:	1a000717 	ldw	r8,28(r3)
  8004a0:	1a400917 	ldw	r9,36(r3)
  8004a4:	20bfff4c 	andi	r2,r4,65533
  8004a8:	d8c08804 	addi	r3,sp,544
  8004ac:	01c10004 	movi	r7,1024
  8004b0:	800b883a 	mov	r5,r16
  8004b4:	8809883a 	mov	r4,r17
  8004b8:	d880740d 	sth	r2,464(sp)
  8004bc:	da80748d 	sth	r10,466(sp)
  8004c0:	da007815 	stw	r8,480(sp)
  8004c4:	da407a15 	stw	r9,488(sp)
  8004c8:	d8c07515 	stw	r3,468(sp)
  8004cc:	d9c07615 	stw	r7,472(sp)
  8004d0:	d8c07115 	stw	r3,452(sp)
  8004d4:	d9c07315 	stw	r7,460(sp)
  8004d8:	d8007715 	stw	zero,476(sp)
  8004dc:	0801f940 	call	801f94 <__vfprintf_internal>
  8004e0:	1021883a 	mov	r16,r2
  8004e4:	10000416 	blt	r2,zero,8004f8 <___vfprintf_internal_r+0x228>
  8004e8:	8809883a 	mov	r4,r17
  8004ec:	0803d600 	call	803d60 <fflush>
  8004f0:	10000126 	beq	r2,zero,8004f8 <___vfprintf_internal_r+0x228>
  8004f4:	043fffc4 	movi	r16,-1
  8004f8:	d880740b 	ldhu	r2,464(sp)
  8004fc:	1004d1ba 	srli	r2,r2,6
  800500:	1080004c 	andi	r2,r2,1
  800504:	10000426 	beq	r2,zero,800518 <___vfprintf_internal_r+0x248>
  800508:	d9019e17 	ldw	r4,1656(sp)
  80050c:	2080030b 	ldhu	r2,12(r4)
  800510:	10801014 	ori	r2,r2,64
  800514:	2080030d 	sth	r2,12(r4)
  800518:	8007883a 	mov	r3,r16
  80051c:	1805883a 	mov	r2,r3
  800520:	dfc1b517 	ldw	ra,1748(sp)
  800524:	df01b417 	ldw	fp,1744(sp)
  800528:	dc01b317 	ldw	r16,1740(sp)
  80052c:	dc41b217 	ldw	r17,1736(sp)
  800530:	dc81b117 	ldw	r18,1732(sp)
  800534:	dcc1b017 	ldw	r19,1728(sp)
  800538:	dd01af17 	ldw	r20,1724(sp)
  80053c:	dd41ae17 	ldw	r21,1720(sp)
  800540:	dd81ad17 	ldw	r22,1716(sp)
  800544:	ddc1ac17 	ldw	r23,1712(sp)
  800548:	dec1b604 	addi	sp,sp,1752
  80054c:	f800283a 	ret
  800550:	d9019e17 	ldw	r4,1656(sp)
  800554:	d9c00404 	addi	r7,sp,16
  800558:	39400204 	addi	r5,r7,8
  80055c:	08002780 	call	800278 <__sprint>
  800560:	1003261e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  800564:	d8800404 	addi	r2,sp,16
  800568:	14800504 	addi	r18,r2,20
  80056c:	003f9d06 	br	8003e4 <___vfprintf_internal_r+0x114>
  800570:	d901a017 	ldw	r4,1664(sp)
  800574:	21000414 	ori	r4,r4,16
  800578:	d901a015 	stw	r4,1664(sp)
  80057c:	d941a017 	ldw	r5,1664(sp)
  800580:	2804d17a 	srli	r2,r5,5
  800584:	1080004c 	andi	r2,r2,1
  800588:	10042026 	beq	r2,zero,80160c <___vfprintf_internal_r+0x133c>
  80058c:	d8819f17 	ldw	r2,1660(sp)
  800590:	00c00044 	movi	r3,1
  800594:	14000017 	ldw	r16,0(r2)
  800598:	14400117 	ldw	r17,4(r2)
  80059c:	11c00204 	addi	r7,r2,8
  8005a0:	d9c19f15 	stw	r7,1660(sp)
  8005a4:	d8019c05 	stb	zero,1648(sp)
  8005a8:	dd01a715 	stw	r20,1692(sp)
  8005ac:	a0000416 	blt	r20,zero,8005c0 <___vfprintf_internal_r+0x2f0>
  8005b0:	d941a017 	ldw	r5,1664(sp)
  8005b4:	00bfdfc4 	movi	r2,-129
  8005b8:	288a703a 	and	r5,r5,r2
  8005bc:	d941a015 	stw	r5,1664(sp)
  8005c0:	d9c00404 	addi	r7,sp,16
  8005c4:	8444b03a 	or	r2,r16,r17
  8005c8:	3cc06c04 	addi	r19,r7,432
  8005cc:	1000021e 	bne	r2,zero,8005d8 <___vfprintf_internal_r+0x308>
  8005d0:	d881a717 	ldw	r2,1692(sp)
  8005d4:	10036b26 	beq	r2,zero,801384 <___vfprintf_internal_r+0x10b4>
  8005d8:	18c03fcc 	andi	r3,r3,255
  8005dc:	00800044 	movi	r2,1
  8005e0:	1880ef26 	beq	r3,r2,8009a0 <___vfprintf_internal_r+0x6d0>
  8005e4:	10c35616 	blt	r2,r3,801340 <___vfprintf_internal_r+0x1070>
  8005e8:	1800f926 	beq	r3,zero,8009d0 <___vfprintf_internal_r+0x700>
  8005ec:	04c02074 	movhi	r19,129
  8005f0:	9cf0d004 	addi	r19,r19,-15552
  8005f4:	9809883a 	mov	r4,r19
  8005f8:	0806ae80 	call	806ae8 <strlen>
  8005fc:	102f883a 	mov	r23,r2
  800600:	d881a717 	ldw	r2,1692(sp)
  800604:	ddc1a815 	stw	r23,1696(sp)
  800608:	b880010e 	bge	r23,r2,800610 <___vfprintf_internal_r+0x340>
  80060c:	d881a815 	stw	r2,1696(sp)
  800610:	d8c19c03 	ldbu	r3,1648(sp)
  800614:	18024226 	beq	r3,zero,800f20 <___vfprintf_internal_r+0xc50>
  800618:	d901a817 	ldw	r4,1696(sp)
  80061c:	21000044 	addi	r4,r4,1
  800620:	d901a815 	stw	r4,1696(sp)
  800624:	d881a017 	ldw	r2,1664(sp)
  800628:	1080210c 	andi	r2,r2,132
  80062c:	d881ab15 	stw	r2,1708(sp)
  800630:	10002e1e 	bne	r2,zero,8006ec <___vfprintf_internal_r+0x41c>
  800634:	d941a217 	ldw	r5,1672(sp)
  800638:	d901a817 	ldw	r4,1696(sp)
  80063c:	2921c83a 	sub	r16,r5,r4
  800640:	04002a0e 	bge	zero,r16,8006ec <___vfprintf_internal_r+0x41c>
  800644:	04400404 	movi	r17,16
  800648:	8c001a0e 	bge	r17,r16,8006b4 <___vfprintf_internal_r+0x3e4>
  80064c:	882b883a 	mov	r21,r17
  800650:	050001c4 	movi	r20,7
  800654:	00000206 	br	800660 <___vfprintf_internal_r+0x390>
  800658:	843ffc04 	addi	r16,r16,-16
  80065c:	ac00150e 	bge	r21,r16,8006b4 <___vfprintf_internal_r+0x3e4>
  800660:	d8800817 	ldw	r2,32(sp)
  800664:	d8c00717 	ldw	r3,28(sp)
  800668:	01c02074 	movhi	r7,129
  80066c:	39f06f04 	addi	r7,r7,-15940
  800670:	10800404 	addi	r2,r2,16
  800674:	18c00044 	addi	r3,r3,1
  800678:	91c00015 	stw	r7,0(r18)
  80067c:	94400115 	stw	r17,4(r18)
  800680:	d8800815 	stw	r2,32(sp)
  800684:	d8c00715 	stw	r3,28(sp)
  800688:	94800204 	addi	r18,r18,8
  80068c:	a0fff20e 	bge	r20,r3,800658 <___vfprintf_internal_r+0x388>
  800690:	d9019e17 	ldw	r4,1656(sp)
  800694:	d8800404 	addi	r2,sp,16
  800698:	11400204 	addi	r5,r2,8
  80069c:	08002780 	call	800278 <__sprint>
  8006a0:	1002d61e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  8006a4:	d8c00404 	addi	r3,sp,16
  8006a8:	843ffc04 	addi	r16,r16,-16
  8006ac:	1c800504 	addi	r18,r3,20
  8006b0:	ac3feb16 	blt	r21,r16,800660 <___vfprintf_internal_r+0x390>
  8006b4:	d8800817 	ldw	r2,32(sp)
  8006b8:	d8c00717 	ldw	r3,28(sp)
  8006bc:	01002074 	movhi	r4,129
  8006c0:	21306f04 	addi	r4,r4,-15940
  8006c4:	1405883a 	add	r2,r2,r16
  8006c8:	18c00044 	addi	r3,r3,1
  8006cc:	d8800815 	stw	r2,32(sp)
  8006d0:	008001c4 	movi	r2,7
  8006d4:	91000015 	stw	r4,0(r18)
  8006d8:	94000115 	stw	r16,4(r18)
  8006dc:	d8c00715 	stw	r3,28(sp)
  8006e0:	94800204 	addi	r18,r18,8
  8006e4:	10c38316 	blt	r2,r3,8014f4 <___vfprintf_internal_r+0x1224>
  8006e8:	d8c19c03 	ldbu	r3,1648(sp)
  8006ec:	18803fcc 	andi	r2,r3,255
  8006f0:	1080201c 	xori	r2,r2,128
  8006f4:	10bfe004 	addi	r2,r2,-128
  8006f8:	10021126 	beq	r2,zero,800f40 <___vfprintf_internal_r+0xc70>
  8006fc:	d9000817 	ldw	r4,32(sp)
  800700:	d9400717 	ldw	r5,28(sp)
  800704:	d8819c04 	addi	r2,sp,1648
  800708:	90800015 	stw	r2,0(r18)
  80070c:	21000044 	addi	r4,r4,1
  800710:	29400044 	addi	r5,r5,1
  800714:	00c00044 	movi	r3,1
  800718:	008001c4 	movi	r2,7
  80071c:	90c00115 	stw	r3,4(r18)
  800720:	d9000815 	stw	r4,32(sp)
  800724:	94800204 	addi	r18,r18,8
  800728:	d9400715 	stw	r5,28(sp)
  80072c:	11431e16 	blt	r2,r5,8013a8 <___vfprintf_internal_r+0x10d8>
  800730:	d8c1ab17 	ldw	r3,1708(sp)
  800734:	00802004 	movi	r2,128
  800738:	18821f26 	beq	r3,r2,800fb8 <___vfprintf_internal_r+0xce8>
  80073c:	d8c1a717 	ldw	r3,1692(sp)
  800740:	1de1c83a 	sub	r16,r3,r23
  800744:	0400300e 	bge	zero,r16,800808 <___vfprintf_internal_r+0x538>
  800748:	04400404 	movi	r17,16
  80074c:	8c001a0e 	bge	r17,r16,8007b8 <___vfprintf_internal_r+0x4e8>
  800750:	882b883a 	mov	r21,r17
  800754:	050001c4 	movi	r20,7
  800758:	00000206 	br	800764 <___vfprintf_internal_r+0x494>
  80075c:	843ffc04 	addi	r16,r16,-16
  800760:	ac00150e 	bge	r21,r16,8007b8 <___vfprintf_internal_r+0x4e8>
  800764:	d8800817 	ldw	r2,32(sp)
  800768:	d8c00717 	ldw	r3,28(sp)
  80076c:	01002074 	movhi	r4,129
  800770:	21307304 	addi	r4,r4,-15924
  800774:	10800404 	addi	r2,r2,16
  800778:	18c00044 	addi	r3,r3,1
  80077c:	91000015 	stw	r4,0(r18)
  800780:	94400115 	stw	r17,4(r18)
  800784:	d8800815 	stw	r2,32(sp)
  800788:	d8c00715 	stw	r3,28(sp)
  80078c:	94800204 	addi	r18,r18,8
  800790:	a0fff20e 	bge	r20,r3,80075c <___vfprintf_internal_r+0x48c>
  800794:	d9019e17 	ldw	r4,1656(sp)
  800798:	d9c00404 	addi	r7,sp,16
  80079c:	39400204 	addi	r5,r7,8
  8007a0:	08002780 	call	800278 <__sprint>
  8007a4:	1002951e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  8007a8:	d8800404 	addi	r2,sp,16
  8007ac:	843ffc04 	addi	r16,r16,-16
  8007b0:	14800504 	addi	r18,r2,20
  8007b4:	ac3feb16 	blt	r21,r16,800764 <___vfprintf_internal_r+0x494>
  8007b8:	d8800817 	ldw	r2,32(sp)
  8007bc:	d8c00717 	ldw	r3,28(sp)
  8007c0:	01002074 	movhi	r4,129
  8007c4:	21307304 	addi	r4,r4,-15924
  8007c8:	1405883a 	add	r2,r2,r16
  8007cc:	18c00044 	addi	r3,r3,1
  8007d0:	d8800815 	stw	r2,32(sp)
  8007d4:	008001c4 	movi	r2,7
  8007d8:	91000015 	stw	r4,0(r18)
  8007dc:	94000115 	stw	r16,4(r18)
  8007e0:	d8c00715 	stw	r3,28(sp)
  8007e4:	94800204 	addi	r18,r18,8
  8007e8:	10c0070e 	bge	r2,r3,800808 <___vfprintf_internal_r+0x538>
  8007ec:	d9019e17 	ldw	r4,1656(sp)
  8007f0:	d9c00404 	addi	r7,sp,16
  8007f4:	39400204 	addi	r5,r7,8
  8007f8:	08002780 	call	800278 <__sprint>
  8007fc:	10027f1e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  800800:	d8800404 	addi	r2,sp,16
  800804:	14800504 	addi	r18,r2,20
  800808:	d8c1a017 	ldw	r3,1664(sp)
  80080c:	04400044 	movi	r17,1
  800810:	1804d23a 	srli	r2,r3,8
  800814:	1444703a 	and	r2,r2,r17
  800818:	10021c1e 	bne	r2,zero,80108c <___vfprintf_internal_r+0xdbc>
  80081c:	d8800817 	ldw	r2,32(sp)
  800820:	d8c00717 	ldw	r3,28(sp)
  800824:	94c00015 	stw	r19,0(r18)
  800828:	15c5883a 	add	r2,r2,r23
  80082c:	1c47883a 	add	r3,r3,r17
  800830:	d8800815 	stw	r2,32(sp)
  800834:	008001c4 	movi	r2,7
  800838:	95c00115 	stw	r23,4(r18)
  80083c:	d8c00715 	stw	r3,28(sp)
  800840:	94800204 	addi	r18,r18,8
  800844:	10c26216 	blt	r2,r3,8011d0 <___vfprintf_internal_r+0xf00>
  800848:	d8c1a017 	ldw	r3,1664(sp)
  80084c:	1804d0ba 	srli	r2,r3,2
  800850:	1080004c 	andi	r2,r2,1
  800854:	10003126 	beq	r2,zero,80091c <___vfprintf_internal_r+0x64c>
  800858:	d941a217 	ldw	r5,1672(sp)
  80085c:	d901a817 	ldw	r4,1696(sp)
  800860:	2921c83a 	sub	r16,r5,r4
  800864:	04002d0e 	bge	zero,r16,80091c <___vfprintf_internal_r+0x64c>
  800868:	04400404 	movi	r17,16
  80086c:	8c001a0e 	bge	r17,r16,8008d8 <___vfprintf_internal_r+0x608>
  800870:	8829883a 	mov	r20,r17
  800874:	04c001c4 	movi	r19,7
  800878:	00000206 	br	800884 <___vfprintf_internal_r+0x5b4>
  80087c:	843ffc04 	addi	r16,r16,-16
  800880:	a400150e 	bge	r20,r16,8008d8 <___vfprintf_internal_r+0x608>
  800884:	d8800817 	ldw	r2,32(sp)
  800888:	d8c00717 	ldw	r3,28(sp)
  80088c:	01c02074 	movhi	r7,129
  800890:	39f06f04 	addi	r7,r7,-15940
  800894:	10800404 	addi	r2,r2,16
  800898:	18c00044 	addi	r3,r3,1
  80089c:	91c00015 	stw	r7,0(r18)
  8008a0:	94400115 	stw	r17,4(r18)
  8008a4:	d8800815 	stw	r2,32(sp)
  8008a8:	d8c00715 	stw	r3,28(sp)
  8008ac:	94800204 	addi	r18,r18,8
  8008b0:	98fff20e 	bge	r19,r3,80087c <___vfprintf_internal_r+0x5ac>
  8008b4:	d9019e17 	ldw	r4,1656(sp)
  8008b8:	d8800404 	addi	r2,sp,16
  8008bc:	11400204 	addi	r5,r2,8
  8008c0:	08002780 	call	800278 <__sprint>
  8008c4:	10024d1e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  8008c8:	d8c00404 	addi	r3,sp,16
  8008cc:	843ffc04 	addi	r16,r16,-16
  8008d0:	1c800504 	addi	r18,r3,20
  8008d4:	a43feb16 	blt	r20,r16,800884 <___vfprintf_internal_r+0x5b4>
  8008d8:	d8800817 	ldw	r2,32(sp)
  8008dc:	d8c00717 	ldw	r3,28(sp)
  8008e0:	01002074 	movhi	r4,129
  8008e4:	21306f04 	addi	r4,r4,-15940
  8008e8:	1405883a 	add	r2,r2,r16
  8008ec:	18c00044 	addi	r3,r3,1
  8008f0:	d8800815 	stw	r2,32(sp)
  8008f4:	008001c4 	movi	r2,7
  8008f8:	91000015 	stw	r4,0(r18)
  8008fc:	94000115 	stw	r16,4(r18)
  800900:	d8c00715 	stw	r3,28(sp)
  800904:	10c0050e 	bge	r2,r3,80091c <___vfprintf_internal_r+0x64c>
  800908:	d9019e17 	ldw	r4,1656(sp)
  80090c:	d9c00404 	addi	r7,sp,16
  800910:	39400204 	addi	r5,r7,8
  800914:	08002780 	call	800278 <__sprint>
  800918:	1002381e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  80091c:	d881a817 	ldw	r2,1696(sp)
  800920:	d8c1a217 	ldw	r3,1672(sp)
  800924:	10c0010e 	bge	r2,r3,80092c <___vfprintf_internal_r+0x65c>
  800928:	1805883a 	mov	r2,r3
  80092c:	d901a117 	ldw	r4,1668(sp)
  800930:	2089883a 	add	r4,r4,r2
  800934:	d8800817 	ldw	r2,32(sp)
  800938:	d901a115 	stw	r4,1668(sp)
  80093c:	10023b1e 	bne	r2,zero,80122c <___vfprintf_internal_r+0xf5c>
  800940:	d8c1aa17 	ldw	r3,1704(sp)
  800944:	d8800404 	addi	r2,sp,16
  800948:	d8000715 	stw	zero,28(sp)
  80094c:	14800504 	addi	r18,r2,20
  800950:	183e8926 	beq	r3,zero,800378 <___vfprintf_internal_r+0xa8>
  800954:	1809883a 	mov	r4,r3
  800958:	08049dc0 	call	8049dc <free>
  80095c:	d801aa15 	stw	zero,1704(sp)
  800960:	003e8506 	br	800378 <___vfprintf_internal_r+0xa8>
  800964:	8009883a 	mov	r4,r16
  800968:	880b883a 	mov	r5,r17
  80096c:	01800284 	movi	r6,10
  800970:	000f883a 	mov	r7,zero
  800974:	080735c0 	call	80735c <__umoddi3>
  800978:	11000c04 	addi	r4,r2,48
  80097c:	9cffffc4 	addi	r19,r19,-1
  800980:	99000005 	stb	r4,0(r19)
  800984:	880b883a 	mov	r5,r17
  800988:	8009883a 	mov	r4,r16
  80098c:	01800284 	movi	r6,10
  800990:	000f883a 	mov	r7,zero
  800994:	0806dfc0 	call	806dfc <__udivdi3>
  800998:	1021883a 	mov	r16,r2
  80099c:	1823883a 	mov	r17,r3
  8009a0:	88800068 	cmpgeui	r2,r17,1
  8009a4:	103fef1e 	bne	r2,zero,800964 <___vfprintf_internal_r+0x694>
  8009a8:	8800021e 	bne	r17,zero,8009b4 <___vfprintf_internal_r+0x6e4>
  8009ac:	00800244 	movi	r2,9
  8009b0:	143fec36 	bltu	r2,r16,800964 <___vfprintf_internal_r+0x694>
  8009b4:	9cffffc4 	addi	r19,r19,-1
  8009b8:	80800c04 	addi	r2,r16,48
  8009bc:	98800005 	stb	r2,0(r19)
  8009c0:	d9400404 	addi	r5,sp,16
  8009c4:	2cc5c83a 	sub	r2,r5,r19
  8009c8:	15c06c04 	addi	r23,r2,432
  8009cc:	003f0c06 	br	800600 <___vfprintf_internal_r+0x330>
  8009d0:	8008d0fa 	srli	r4,r16,3
  8009d4:	880a977a 	slli	r5,r17,29
  8009d8:	8806d0fa 	srli	r3,r17,3
  8009dc:	818001cc 	andi	r6,r16,7
  8009e0:	2904b03a 	or	r2,r5,r4
  8009e4:	9cffffc4 	addi	r19,r19,-1
  8009e8:	31800c04 	addi	r6,r6,48
  8009ec:	10c8b03a 	or	r4,r2,r3
  8009f0:	99800005 	stb	r6,0(r19)
  8009f4:	1021883a 	mov	r16,r2
  8009f8:	1823883a 	mov	r17,r3
  8009fc:	203ff41e 	bne	r4,zero,8009d0 <___vfprintf_internal_r+0x700>
  800a00:	d8c1a017 	ldw	r3,1664(sp)
  800a04:	1880004c 	andi	r2,r3,1
  800a08:	103fed26 	beq	r2,zero,8009c0 <___vfprintf_internal_r+0x6f0>
  800a0c:	00800c04 	movi	r2,48
  800a10:	30bfeb26 	beq	r6,r2,8009c0 <___vfprintf_internal_r+0x6f0>
  800a14:	9cffffc4 	addi	r19,r19,-1
  800a18:	003fe806 	br	8009bc <___vfprintf_internal_r+0x6ec>
  800a1c:	d881a017 	ldw	r2,1664(sp)
  800a20:	10800414 	ori	r2,r2,16
  800a24:	d881a015 	stw	r2,1664(sp)
  800a28:	d8c1a017 	ldw	r3,1664(sp)
  800a2c:	1804d17a 	srli	r2,r3,5
  800a30:	1080004c 	andi	r2,r2,1
  800a34:	10030026 	beq	r2,zero,801638 <___vfprintf_internal_r+0x1368>
  800a38:	d8819f17 	ldw	r2,1660(sp)
  800a3c:	0007883a 	mov	r3,zero
  800a40:	14000017 	ldw	r16,0(r2)
  800a44:	14400117 	ldw	r17,4(r2)
  800a48:	11000204 	addi	r4,r2,8
  800a4c:	d9019f15 	stw	r4,1660(sp)
  800a50:	003ed406 	br	8005a4 <___vfprintf_internal_r+0x2d4>
  800a54:	d9c1a017 	ldw	r7,1664(sp)
  800a58:	39c00414 	ori	r7,r7,16
  800a5c:	d9c1a015 	stw	r7,1664(sp)
  800a60:	d8c1a017 	ldw	r3,1664(sp)
  800a64:	1804d17a 	srli	r2,r3,5
  800a68:	1080004c 	andi	r2,r2,1
  800a6c:	1002db26 	beq	r2,zero,8015dc <___vfprintf_internal_r+0x130c>
  800a70:	d8819f17 	ldw	r2,1660(sp)
  800a74:	14400117 	ldw	r17,4(r2)
  800a78:	11000204 	addi	r4,r2,8
  800a7c:	14000017 	ldw	r16,0(r2)
  800a80:	d9019f15 	stw	r4,1660(sp)
  800a84:	88011816 	blt	r17,zero,800ee8 <___vfprintf_internal_r+0xc18>
  800a88:	00c00044 	movi	r3,1
  800a8c:	003ec606 	br	8005a8 <___vfprintf_internal_r+0x2d8>
  800a90:	d8819f17 	ldw	r2,1660(sp)
  800a94:	d9c19f17 	ldw	r7,1660(sp)
  800a98:	10800017 	ldw	r2,0(r2)
  800a9c:	39c00104 	addi	r7,r7,4
  800aa0:	d9c19f15 	stw	r7,1660(sp)
  800aa4:	d881a215 	stw	r2,1672(sp)
  800aa8:	10010d0e 	bge	r2,zero,800ee0 <___vfprintf_internal_r+0xc10>
  800aac:	0085c83a 	sub	r2,zero,r2
  800ab0:	d881a215 	stw	r2,1672(sp)
  800ab4:	d881a017 	ldw	r2,1664(sp)
  800ab8:	b1000003 	ldbu	r4,0(r22)
  800abc:	10800114 	ori	r2,r2,4
  800ac0:	d881a015 	stw	r2,1664(sp)
  800ac4:	003e5606 	br	800420 <___vfprintf_internal_r+0x150>
  800ac8:	e001c426 	beq	fp,zero,8011dc <___vfprintf_internal_r+0xf0c>
  800acc:	d9c00404 	addi	r7,sp,16
  800ad0:	3cc01504 	addi	r19,r7,84
  800ad4:	9f000005 	stb	fp,0(r19)
  800ad8:	05c00044 	movi	r23,1
  800adc:	d8019c05 	stb	zero,1648(sp)
  800ae0:	003ec706 	br	800600 <___vfprintf_internal_r+0x330>
  800ae4:	d8819f17 	ldw	r2,1660(sp)
  800ae8:	14c00017 	ldw	r19,0(r2)
  800aec:	11400104 	addi	r5,r2,4
  800af0:	d8019c05 	stb	zero,1648(sp)
  800af4:	d9419f15 	stw	r5,1660(sp)
  800af8:	9803e426 	beq	r19,zero,801a8c <___vfprintf_internal_r+0x17bc>
  800afc:	008014c4 	movi	r2,83
  800b00:	e0800426 	beq	fp,r2,800b14 <___vfprintf_internal_r+0x844>
  800b04:	d9c1a017 	ldw	r7,1664(sp)
  800b08:	3804d13a 	srli	r2,r7,4
  800b0c:	1080004c 	andi	r2,r2,1
  800b10:	10036026 	beq	r2,zero,801894 <___vfprintf_internal_r+0x15c4>
  800b14:	d9019904 	addi	r4,sp,1636
  800b18:	000b883a 	mov	r5,zero
  800b1c:	01800204 	movi	r6,8
  800b20:	dcc19b15 	stw	r19,1644(sp)
  800b24:	0023883a 	mov	r17,zero
  800b28:	002f883a 	mov	r23,zero
  800b2c:	08053380 	call	805338 <memset>
  800b30:	a004ce16 	blt	r20,zero,801e6c <___vfprintf_internal_r+0x1b9c>
  800b34:	057fffc4 	movi	r21,-1
  800b38:	880490ba 	slli	r2,r17,2
  800b3c:	d8c19b17 	ldw	r3,1644(sp)
  800b40:	10c5883a 	add	r2,r2,r3
  800b44:	11800017 	ldw	r6,0(r2)
  800b48:	30000b26 	beq	r6,zero,800b78 <___vfprintf_internal_r+0x8a8>
  800b4c:	d9019d17 	ldw	r4,1652(sp)
  800b50:	d8800404 	addi	r2,sp,16
  800b54:	11401504 	addi	r5,r2,84
  800b58:	d9c19904 	addi	r7,sp,1636
  800b5c:	08020000 	call	802000 <_wcrtomb_r>
  800b60:	1541a626 	beq	r2,r21,8011fc <___vfprintf_internal_r+0xf2c>
  800b64:	15c5883a 	add	r2,r2,r23
  800b68:	a0800316 	blt	r20,r2,800b78 <___vfprintf_internal_r+0x8a8>
  800b6c:	102f883a 	mov	r23,r2
  800b70:	8c400044 	addi	r17,r17,1
  800b74:	153ff01e 	bne	r2,r20,800b38 <___vfprintf_internal_r+0x868>
  800b78:	b83ea126 	beq	r23,zero,800600 <___vfprintf_internal_r+0x330>
  800b7c:	d9019d17 	ldw	r4,1652(sp)
  800b80:	b9400044 	addi	r5,r23,1
  800b84:	08049f00 	call	8049f0 <_malloc_r>
  800b88:	d881aa15 	stw	r2,1704(sp)
  800b8c:	10019b26 	beq	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  800b90:	d9019904 	addi	r4,sp,1636
  800b94:	000b883a 	mov	r5,zero
  800b98:	01800204 	movi	r6,8
  800b9c:	08053380 	call	805338 <memset>
  800ba0:	d9019d17 	ldw	r4,1652(sp)
  800ba4:	d941aa17 	ldw	r5,1704(sp)
  800ba8:	d8819904 	addi	r2,sp,1636
  800bac:	b80f883a 	mov	r7,r23
  800bb0:	d9819b04 	addi	r6,sp,1644
  800bb4:	d8800015 	stw	r2,0(sp)
  800bb8:	08020880 	call	802088 <_wcsrtombs_r>
  800bbc:	15c18f1e 	bne	r2,r23,8011fc <___vfprintf_internal_r+0xf2c>
  800bc0:	d8c1aa17 	ldw	r3,1704(sp)
  800bc4:	1dc5883a 	add	r2,r3,r23
  800bc8:	1827883a 	mov	r19,r3
  800bcc:	10000005 	stb	zero,0(r2)
  800bd0:	003e8b06 	br	800600 <___vfprintf_internal_r+0x330>
  800bd4:	d8c1a017 	ldw	r3,1664(sp)
  800bd8:	1804d17a 	srli	r2,r3,5
  800bdc:	1080004c 	andi	r2,r2,1
  800be0:	10030426 	beq	r2,zero,8017f4 <___vfprintf_internal_r+0x1524>
  800be4:	d8819f17 	ldw	r2,1660(sp)
  800be8:	d8c1a117 	ldw	r3,1668(sp)
  800bec:	11400017 	ldw	r5,0(r2)
  800bf0:	1809d7fa 	srai	r4,r3,31
  800bf4:	11c00104 	addi	r7,r2,4
  800bf8:	d9c19f15 	stw	r7,1660(sp)
  800bfc:	29000115 	stw	r4,4(r5)
  800c00:	28c00015 	stw	r3,0(r5)
  800c04:	003ddc06 	br	800378 <___vfprintf_internal_r+0xa8>
  800c08:	b7000007 	ldb	fp,0(r22)
  800c0c:	00800a84 	movi	r2,42
  800c10:	b5800044 	addi	r22,r22,1
  800c14:	e084d726 	beq	fp,r2,801f74 <___vfprintf_internal_r+0x1ca4>
  800c18:	e0bff404 	addi	r2,fp,-48
  800c1c:	00c00244 	movi	r3,9
  800c20:	0021883a 	mov	r16,zero
  800c24:	18800736 	bltu	r3,r2,800c44 <___vfprintf_internal_r+0x974>
  800c28:	808002a4 	muli	r2,r16,10
  800c2c:	1705883a 	add	r2,r2,fp
  800c30:	b7000007 	ldb	fp,0(r22)
  800c34:	143ff404 	addi	r16,r2,-48
  800c38:	b5800044 	addi	r22,r22,1
  800c3c:	e0bff404 	addi	r2,fp,-48
  800c40:	18bff92e 	bgeu	r3,r2,800c28 <___vfprintf_internal_r+0x958>
  800c44:	00bfffc4 	movi	r2,-1
  800c48:	8029883a 	mov	r20,r16
  800c4c:	80bdf80e 	bge	r16,r2,800430 <___vfprintf_internal_r+0x160>
  800c50:	1029883a 	mov	r20,r2
  800c54:	003df606 	br	800430 <___vfprintf_internal_r+0x160>
  800c58:	b1000003 	ldbu	r4,0(r22)
  800c5c:	00801b04 	movi	r2,108
  800c60:	20c03fcc 	andi	r3,r4,255
  800c64:	18c0201c 	xori	r3,r3,128
  800c68:	18ffe004 	addi	r3,r3,-128
  800c6c:	18835d26 	beq	r3,r2,8019e4 <___vfprintf_internal_r+0x1714>
  800c70:	d941a017 	ldw	r5,1664(sp)
  800c74:	29400414 	ori	r5,r5,16
  800c78:	d941a015 	stw	r5,1664(sp)
  800c7c:	003de806 	br	800420 <___vfprintf_internal_r+0x150>
  800c80:	b1000003 	ldbu	r4,0(r22)
  800c84:	00800ac4 	movi	r2,43
  800c88:	d8819c05 	stb	r2,1648(sp)
  800c8c:	003de406 	br	800420 <___vfprintf_internal_r+0x150>
  800c90:	d9c1a017 	ldw	r7,1664(sp)
  800c94:	b1000003 	ldbu	r4,0(r22)
  800c98:	39c00814 	ori	r7,r7,32
  800c9c:	d9c1a015 	stw	r7,1664(sp)
  800ca0:	003ddf06 	br	800420 <___vfprintf_internal_r+0x150>
  800ca4:	d8819f17 	ldw	r2,1660(sp)
  800ca8:	01002074 	movhi	r4,129
  800cac:	2130d704 	addi	r4,r4,-15524
  800cb0:	0023883a 	mov	r17,zero
  800cb4:	11c00104 	addi	r7,r2,4
  800cb8:	14000017 	ldw	r16,0(r2)
  800cbc:	d881a017 	ldw	r2,1664(sp)
  800cc0:	00c00084 	movi	r3,2
  800cc4:	07001e04 	movi	fp,120
  800cc8:	10800094 	ori	r2,r2,2
  800ccc:	d9c19f15 	stw	r7,1660(sp)
  800cd0:	d881a015 	stw	r2,1664(sp)
  800cd4:	d901a915 	stw	r4,1700(sp)
  800cd8:	003e3206 	br	8005a4 <___vfprintf_internal_r+0x2d4>
  800cdc:	d941a017 	ldw	r5,1664(sp)
  800ce0:	01002074 	movhi	r4,129
  800ce4:	2130d704 	addi	r4,r4,-15524
  800ce8:	d901a915 	stw	r4,1700(sp)
  800cec:	2804d17a 	srli	r2,r5,5
  800cf0:	1080004c 	andi	r2,r2,1
  800cf4:	10003526 	beq	r2,zero,800dcc <___vfprintf_internal_r+0xafc>
  800cf8:	d8819f17 	ldw	r2,1660(sp)
  800cfc:	14000017 	ldw	r16,0(r2)
  800d00:	14400117 	ldw	r17,4(r2)
  800d04:	11c00204 	addi	r7,r2,8
  800d08:	d9c19f15 	stw	r7,1660(sp)
  800d0c:	d8c1a017 	ldw	r3,1664(sp)
  800d10:	1880004c 	andi	r2,r3,1
  800d14:	00c00084 	movi	r3,2
  800d18:	103e2226 	beq	r2,zero,8005a4 <___vfprintf_internal_r+0x2d4>
  800d1c:	8444b03a 	or	r2,r16,r17
  800d20:	103e2026 	beq	r2,zero,8005a4 <___vfprintf_internal_r+0x2d4>
  800d24:	d901a017 	ldw	r4,1664(sp)
  800d28:	21000094 	ori	r4,r4,2
  800d2c:	d901a015 	stw	r4,1664(sp)
  800d30:	003e1c06 	br	8005a4 <___vfprintf_internal_r+0x2d4>
  800d34:	d941a017 	ldw	r5,1664(sp)
  800d38:	b1000003 	ldbu	r4,0(r22)
  800d3c:	29400054 	ori	r5,r5,1
  800d40:	d941a015 	stw	r5,1664(sp)
  800d44:	003db606 	br	800420 <___vfprintf_internal_r+0x150>
  800d48:	d8800404 	addi	r2,sp,16
  800d4c:	14c01504 	addi	r19,r2,84
  800d50:	008010c4 	movi	r2,67
  800d54:	e0800426 	beq	fp,r2,800d68 <___vfprintf_internal_r+0xa98>
  800d58:	d8c1a017 	ldw	r3,1664(sp)
  800d5c:	1804d13a 	srli	r2,r3,4
  800d60:	1080004c 	andi	r2,r2,1
  800d64:	1002c026 	beq	r2,zero,801868 <___vfprintf_internal_r+0x1598>
  800d68:	d9019204 	addi	r4,sp,1608
  800d6c:	000b883a 	mov	r5,zero
  800d70:	01800204 	movi	r6,8
  800d74:	08053380 	call	805338 <memset>
  800d78:	d8c19f17 	ldw	r3,1660(sp)
  800d7c:	d9019d17 	ldw	r4,1652(sp)
  800d80:	980b883a 	mov	r5,r19
  800d84:	19800017 	ldw	r6,0(r3)
  800d88:	d9c19204 	addi	r7,sp,1608
  800d8c:	08020000 	call	802000 <_wcrtomb_r>
  800d90:	d9019f17 	ldw	r4,1660(sp)
  800d94:	102f883a 	mov	r23,r2
  800d98:	00bfffc4 	movi	r2,-1
  800d9c:	21000104 	addi	r4,r4,4
  800da0:	d9019f15 	stw	r4,1660(sp)
  800da4:	b8811526 	beq	r23,r2,8011fc <___vfprintf_internal_r+0xf2c>
  800da8:	d8019c05 	stb	zero,1648(sp)
  800dac:	003e1406 	br	800600 <___vfprintf_internal_r+0x330>
  800db0:	d941a017 	ldw	r5,1664(sp)
  800db4:	00c02074 	movhi	r3,129
  800db8:	18f0dc04 	addi	r3,r3,-15504
  800dbc:	d8c1a915 	stw	r3,1700(sp)
  800dc0:	2804d17a 	srli	r2,r5,5
  800dc4:	1080004c 	andi	r2,r2,1
  800dc8:	103fcb1e 	bne	r2,zero,800cf8 <___vfprintf_internal_r+0xa28>
  800dcc:	d8c1a017 	ldw	r3,1664(sp)
  800dd0:	1804d13a 	srli	r2,r3,4
  800dd4:	1080004c 	andi	r2,r2,1
  800dd8:	10027c26 	beq	r2,zero,8017cc <___vfprintf_internal_r+0x14fc>
  800ddc:	d8819f17 	ldw	r2,1660(sp)
  800de0:	0023883a 	mov	r17,zero
  800de4:	14000017 	ldw	r16,0(r2)
  800de8:	11000104 	addi	r4,r2,4
  800dec:	d9019f15 	stw	r4,1660(sp)
  800df0:	003fc606 	br	800d0c <___vfprintf_internal_r+0xa3c>
  800df4:	d881a017 	ldw	r2,1664(sp)
  800df8:	b1000003 	ldbu	r4,0(r22)
  800dfc:	10801014 	ori	r2,r2,64
  800e00:	d881a015 	stw	r2,1664(sp)
  800e04:	003d8606 	br	800420 <___vfprintf_internal_r+0x150>
  800e08:	00bfffc4 	movi	r2,-1
  800e0c:	a082fb26 	beq	r20,r2,8019fc <___vfprintf_internal_r+0x172c>
  800e10:	008019c4 	movi	r2,103
  800e14:	e0829c26 	beq	fp,r2,801888 <___vfprintf_internal_r+0x15b8>
  800e18:	008011c4 	movi	r2,71
  800e1c:	e0829a26 	beq	fp,r2,801888 <___vfprintf_internal_r+0x15b8>
  800e20:	d9019f17 	ldw	r4,1660(sp)
  800e24:	20800017 	ldw	r2,0(r4)
  800e28:	20c00117 	ldw	r3,4(r4)
  800e2c:	21400204 	addi	r5,r4,8
  800e30:	d881a415 	stw	r2,1680(sp)
  800e34:	d8c1a515 	stw	r3,1684(sp)
  800e38:	d9419f15 	stw	r5,1660(sp)
  800e3c:	d901a417 	ldw	r4,1680(sp)
  800e40:	d941a517 	ldw	r5,1684(sp)
  800e44:	08067ec0 	call	8067ec <isinf>
  800e48:	1002de26 	beq	r2,zero,8019c4 <___vfprintf_internal_r+0x16f4>
  800e4c:	d901a417 	ldw	r4,1680(sp)
  800e50:	d941a517 	ldw	r5,1684(sp)
  800e54:	000d883a 	mov	r6,zero
  800e58:	000f883a 	mov	r7,zero
  800e5c:	080850c0 	call	80850c <__ltdf2>
  800e60:	10002a16 	blt	r2,zero,800f0c <___vfprintf_internal_r+0xc3c>
  800e64:	04c02074 	movhi	r19,129
  800e68:	9cf0e104 	addi	r19,r19,-15484
  800e6c:	05c000c4 	movi	r23,3
  800e70:	003de306 	br	800600 <___vfprintf_internal_r+0x330>
  800e74:	d9c1a017 	ldw	r7,1664(sp)
  800e78:	b1000003 	ldbu	r4,0(r22)
  800e7c:	39c00214 	ori	r7,r7,8
  800e80:	d9c1a015 	stw	r7,1664(sp)
  800e84:	003d6606 	br	800420 <___vfprintf_internal_r+0x150>
  800e88:	d8819c07 	ldb	r2,1648(sp)
  800e8c:	1000141e 	bne	r2,zero,800ee0 <___vfprintf_internal_r+0xc10>
  800e90:	b1000003 	ldbu	r4,0(r22)
  800e94:	00800804 	movi	r2,32
  800e98:	d8819c05 	stb	r2,1648(sp)
  800e9c:	003d6006 	br	800420 <___vfprintf_internal_r+0x150>
  800ea0:	0021883a 	mov	r16,zero
  800ea4:	00c00244 	movi	r3,9
  800ea8:	808002a4 	muli	r2,r16,10
  800eac:	1705883a 	add	r2,r2,fp
  800eb0:	b7000007 	ldb	fp,0(r22)
  800eb4:	143ff404 	addi	r16,r2,-48
  800eb8:	b5800044 	addi	r22,r22,1
  800ebc:	e0bff404 	addi	r2,fp,-48
  800ec0:	18bff92e 	bgeu	r3,r2,800ea8 <___vfprintf_internal_r+0xbd8>
  800ec4:	dc01a215 	stw	r16,1672(sp)
  800ec8:	003d5906 	br	800430 <___vfprintf_internal_r+0x160>
  800ecc:	d941a017 	ldw	r5,1664(sp)
  800ed0:	b1000003 	ldbu	r4,0(r22)
  800ed4:	29402014 	ori	r5,r5,128
  800ed8:	d941a015 	stw	r5,1664(sp)
  800edc:	003d5006 	br	800420 <___vfprintf_internal_r+0x150>
  800ee0:	b1000003 	ldbu	r4,0(r22)
  800ee4:	003d4e06 	br	800420 <___vfprintf_internal_r+0x150>
  800ee8:	880b883a 	mov	r5,r17
  800eec:	8009883a 	mov	r4,r16
  800ef0:	0806ddc0 	call	806ddc <__negdi2>
  800ef4:	1021883a 	mov	r16,r2
  800ef8:	1823883a 	mov	r17,r3
  800efc:	00800b44 	movi	r2,45
  800f00:	00c00044 	movi	r3,1
  800f04:	d8819c05 	stb	r2,1648(sp)
  800f08:	003da706 	br	8005a8 <___vfprintf_internal_r+0x2d8>
  800f0c:	00800b44 	movi	r2,45
  800f10:	04c02074 	movhi	r19,129
  800f14:	9cf0e104 	addi	r19,r19,-15484
  800f18:	d8819c05 	stb	r2,1648(sp)
  800f1c:	003fd306 	br	800e6c <___vfprintf_internal_r+0xb9c>
  800f20:	d941a017 	ldw	r5,1664(sp)
  800f24:	2804d07a 	srli	r2,r5,1
  800f28:	1080004c 	andi	r2,r2,1
  800f2c:	103dbd26 	beq	r2,zero,800624 <___vfprintf_internal_r+0x354>
  800f30:	d9c1a817 	ldw	r7,1696(sp)
  800f34:	39c00084 	addi	r7,r7,2
  800f38:	d9c1a815 	stw	r7,1696(sp)
  800f3c:	003db906 	br	800624 <___vfprintf_internal_r+0x354>
  800f40:	d941a017 	ldw	r5,1664(sp)
  800f44:	2804d07a 	srli	r2,r5,1
  800f48:	1080004c 	andi	r2,r2,1
  800f4c:	103df826 	beq	r2,zero,800730 <___vfprintf_internal_r+0x460>
  800f50:	d9000817 	ldw	r4,32(sp)
  800f54:	d9400717 	ldw	r5,28(sp)
  800f58:	00800c04 	movi	r2,48
  800f5c:	d9c00404 	addi	r7,sp,16
  800f60:	d8807005 	stb	r2,448(sp)
  800f64:	df007045 	stb	fp,449(sp)
  800f68:	38806c04 	addi	r2,r7,432
  800f6c:	90800015 	stw	r2,0(r18)
  800f70:	21000084 	addi	r4,r4,2
  800f74:	29400044 	addi	r5,r5,1
  800f78:	00c00084 	movi	r3,2
  800f7c:	008001c4 	movi	r2,7
  800f80:	90c00115 	stw	r3,4(r18)
  800f84:	d9000815 	stw	r4,32(sp)
  800f88:	94800204 	addi	r18,r18,8
  800f8c:	d9400715 	stw	r5,28(sp)
  800f90:	117de70e 	bge	r2,r5,800730 <___vfprintf_internal_r+0x460>
  800f94:	d9019e17 	ldw	r4,1656(sp)
  800f98:	39400204 	addi	r5,r7,8
  800f9c:	08002780 	call	800278 <__sprint>
  800fa0:	1000961e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  800fa4:	d8c1ab17 	ldw	r3,1708(sp)
  800fa8:	d8800404 	addi	r2,sp,16
  800fac:	14800504 	addi	r18,r2,20
  800fb0:	00802004 	movi	r2,128
  800fb4:	18bde11e 	bne	r3,r2,80073c <___vfprintf_internal_r+0x46c>
  800fb8:	d941a217 	ldw	r5,1672(sp)
  800fbc:	d901a817 	ldw	r4,1696(sp)
  800fc0:	2921c83a 	sub	r16,r5,r4
  800fc4:	043ddd0e 	bge	zero,r16,80073c <___vfprintf_internal_r+0x46c>
  800fc8:	04400404 	movi	r17,16
  800fcc:	8c001a0e 	bge	r17,r16,801038 <___vfprintf_internal_r+0xd68>
  800fd0:	882b883a 	mov	r21,r17
  800fd4:	050001c4 	movi	r20,7
  800fd8:	00000206 	br	800fe4 <___vfprintf_internal_r+0xd14>
  800fdc:	843ffc04 	addi	r16,r16,-16
  800fe0:	ac00150e 	bge	r21,r16,801038 <___vfprintf_internal_r+0xd68>
  800fe4:	d8800817 	ldw	r2,32(sp)
  800fe8:	d8c00717 	ldw	r3,28(sp)
  800fec:	01c02074 	movhi	r7,129
  800ff0:	39f07304 	addi	r7,r7,-15924
  800ff4:	10800404 	addi	r2,r2,16
  800ff8:	18c00044 	addi	r3,r3,1
  800ffc:	91c00015 	stw	r7,0(r18)
  801000:	94400115 	stw	r17,4(r18)
  801004:	d8800815 	stw	r2,32(sp)
  801008:	d8c00715 	stw	r3,28(sp)
  80100c:	94800204 	addi	r18,r18,8
  801010:	a0fff20e 	bge	r20,r3,800fdc <___vfprintf_internal_r+0xd0c>
  801014:	d9019e17 	ldw	r4,1656(sp)
  801018:	d8800404 	addi	r2,sp,16
  80101c:	11400204 	addi	r5,r2,8
  801020:	08002780 	call	800278 <__sprint>
  801024:	1000751e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801028:	d8c00404 	addi	r3,sp,16
  80102c:	843ffc04 	addi	r16,r16,-16
  801030:	1c800504 	addi	r18,r3,20
  801034:	ac3feb16 	blt	r21,r16,800fe4 <___vfprintf_internal_r+0xd14>
  801038:	d8800817 	ldw	r2,32(sp)
  80103c:	d8c00717 	ldw	r3,28(sp)
  801040:	01002074 	movhi	r4,129
  801044:	21307304 	addi	r4,r4,-15924
  801048:	1405883a 	add	r2,r2,r16
  80104c:	18c00044 	addi	r3,r3,1
  801050:	d8800815 	stw	r2,32(sp)
  801054:	008001c4 	movi	r2,7
  801058:	91000015 	stw	r4,0(r18)
  80105c:	94000115 	stw	r16,4(r18)
  801060:	d8c00715 	stw	r3,28(sp)
  801064:	94800204 	addi	r18,r18,8
  801068:	10fdb40e 	bge	r2,r3,80073c <___vfprintf_internal_r+0x46c>
  80106c:	d9019e17 	ldw	r4,1656(sp)
  801070:	d9c00404 	addi	r7,sp,16
  801074:	39400204 	addi	r5,r7,8
  801078:	08002780 	call	800278 <__sprint>
  80107c:	10005f1e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801080:	d8800404 	addi	r2,sp,16
  801084:	14800504 	addi	r18,r2,20
  801088:	003dac06 	br	80073c <___vfprintf_internal_r+0x46c>
  80108c:	00801944 	movi	r2,101
  801090:	17006c0e 	bge	r2,fp,801244 <___vfprintf_internal_r+0xf74>
  801094:	d901a417 	ldw	r4,1680(sp)
  801098:	d941a517 	ldw	r5,1684(sp)
  80109c:	000d883a 	mov	r6,zero
  8010a0:	000f883a 	mov	r7,zero
  8010a4:	08082dc0 	call	8082dc <__eqdf2>
  8010a8:	1000c71e 	bne	r2,zero,8013c8 <___vfprintf_internal_r+0x10f8>
  8010ac:	d8800817 	ldw	r2,32(sp)
  8010b0:	d9000717 	ldw	r4,28(sp)
  8010b4:	00c02074 	movhi	r3,129
  8010b8:	18f0e204 	addi	r3,r3,-15480
  8010bc:	10800044 	addi	r2,r2,1
  8010c0:	21000044 	addi	r4,r4,1
  8010c4:	04c001c4 	movi	r19,7
  8010c8:	90c00015 	stw	r3,0(r18)
  8010cc:	94400115 	stw	r17,4(r18)
  8010d0:	d8800815 	stw	r2,32(sp)
  8010d4:	d9000715 	stw	r4,28(sp)
  8010d8:	94800204 	addi	r18,r18,8
  8010dc:	9901da16 	blt	r19,r4,801848 <___vfprintf_internal_r+0x1578>
  8010e0:	dc019617 	ldw	r16,1624(sp)
  8010e4:	d8819517 	ldw	r2,1620(sp)
  8010e8:	14000316 	blt	r2,r16,8010f8 <___vfprintf_internal_r+0xe28>
  8010ec:	d941a017 	ldw	r5,1664(sp)
  8010f0:	2880004c 	andi	r2,r5,1
  8010f4:	103dd426 	beq	r2,zero,800848 <___vfprintf_internal_r+0x578>
  8010f8:	d8800817 	ldw	r2,32(sp)
  8010fc:	d8c00717 	ldw	r3,28(sp)
  801100:	d9c1a317 	ldw	r7,1676(sp)
  801104:	10800044 	addi	r2,r2,1
  801108:	18c00044 	addi	r3,r3,1
  80110c:	94400115 	stw	r17,4(r18)
  801110:	91c00015 	stw	r7,0(r18)
  801114:	d8800815 	stw	r2,32(sp)
  801118:	d8c00715 	stw	r3,28(sp)
  80111c:	94800204 	addi	r18,r18,8
  801120:	98c1e716 	blt	r19,r3,8018c0 <___vfprintf_internal_r+0x15f0>
  801124:	843fffc4 	addi	r16,r16,-1
  801128:	043dc70e 	bge	zero,r16,800848 <___vfprintf_internal_r+0x578>
  80112c:	04400404 	movi	r17,16
  801130:	8c001a0e 	bge	r17,r16,80119c <___vfprintf_internal_r+0xecc>
  801134:	9829883a 	mov	r20,r19
  801138:	8827883a 	mov	r19,r17
  80113c:	00000206 	br	801148 <___vfprintf_internal_r+0xe78>
  801140:	843ffc04 	addi	r16,r16,-16
  801144:	9c00150e 	bge	r19,r16,80119c <___vfprintf_internal_r+0xecc>
  801148:	d8800817 	ldw	r2,32(sp)
  80114c:	d8c00717 	ldw	r3,28(sp)
  801150:	01002074 	movhi	r4,129
  801154:	21307304 	addi	r4,r4,-15924
  801158:	10800404 	addi	r2,r2,16
  80115c:	18c00044 	addi	r3,r3,1
  801160:	91000015 	stw	r4,0(r18)
  801164:	94400115 	stw	r17,4(r18)
  801168:	d8800815 	stw	r2,32(sp)
  80116c:	d8c00715 	stw	r3,28(sp)
  801170:	94800204 	addi	r18,r18,8
  801174:	a0fff20e 	bge	r20,r3,801140 <___vfprintf_internal_r+0xe70>
  801178:	d9019e17 	ldw	r4,1656(sp)
  80117c:	d9c00404 	addi	r7,sp,16
  801180:	39400204 	addi	r5,r7,8
  801184:	08002780 	call	800278 <__sprint>
  801188:	10001c1e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  80118c:	d8800404 	addi	r2,sp,16
  801190:	843ffc04 	addi	r16,r16,-16
  801194:	14800504 	addi	r18,r2,20
  801198:	9c3feb16 	blt	r19,r16,801148 <___vfprintf_internal_r+0xe78>
  80119c:	d8800817 	ldw	r2,32(sp)
  8011a0:	d8c00717 	ldw	r3,28(sp)
  8011a4:	01002074 	movhi	r4,129
  8011a8:	21307304 	addi	r4,r4,-15924
  8011ac:	1405883a 	add	r2,r2,r16
  8011b0:	18c00044 	addi	r3,r3,1
  8011b4:	d8800815 	stw	r2,32(sp)
  8011b8:	008001c4 	movi	r2,7
  8011bc:	91000015 	stw	r4,0(r18)
  8011c0:	94000115 	stw	r16,4(r18)
  8011c4:	d8c00715 	stw	r3,28(sp)
  8011c8:	94800204 	addi	r18,r18,8
  8011cc:	10fd9e0e 	bge	r2,r3,800848 <___vfprintf_internal_r+0x578>
  8011d0:	d9019e17 	ldw	r4,1656(sp)
  8011d4:	d9c00404 	addi	r7,sp,16
  8011d8:	00005306 	br	801328 <___vfprintf_internal_r+0x1058>
  8011dc:	d8800817 	ldw	r2,32(sp)
  8011e0:	10000526 	beq	r2,zero,8011f8 <___vfprintf_internal_r+0xf28>
  8011e4:	d9000404 	addi	r4,sp,16
  8011e8:	21400204 	addi	r5,r4,8
  8011ec:	d9019e17 	ldw	r4,1656(sp)
  8011f0:	08002780 	call	800278 <__sprint>
  8011f4:	1000011e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  8011f8:	d8000715 	stw	zero,28(sp)
  8011fc:	d941aa17 	ldw	r5,1704(sp)
  801200:	28000226 	beq	r5,zero,80120c <___vfprintf_internal_r+0xf3c>
  801204:	2809883a 	mov	r4,r5
  801208:	08049dc0 	call	8049dc <free>
  80120c:	d9c19e17 	ldw	r7,1656(sp)
  801210:	d8c1a117 	ldw	r3,1668(sp)
  801214:	3880030b 	ldhu	r2,12(r7)
  801218:	1004d1ba 	srli	r2,r2,6
  80121c:	1080004c 	andi	r2,r2,1
  801220:	103cbe26 	beq	r2,zero,80051c <___vfprintf_internal_r+0x24c>
  801224:	00ffffc4 	movi	r3,-1
  801228:	003cbc06 	br	80051c <___vfprintf_internal_r+0x24c>
  80122c:	d9019e17 	ldw	r4,1656(sp)
  801230:	d9c00404 	addi	r7,sp,16
  801234:	39400204 	addi	r5,r7,8
  801238:	08002780 	call	800278 <__sprint>
  80123c:	103dc026 	beq	r2,zero,800940 <___vfprintf_internal_r+0x670>
  801240:	003fee06 	br	8011fc <___vfprintf_internal_r+0xf2c>
  801244:	dc019617 	ldw	r16,1624(sp)
  801248:	8c000316 	blt	r17,r16,801258 <___vfprintf_internal_r+0xf88>
  80124c:	d941a017 	ldw	r5,1664(sp)
  801250:	2880004c 	andi	r2,r5,1
  801254:	10010326 	beq	r2,zero,801664 <___vfprintf_internal_r+0x1394>
  801258:	98800003 	ldbu	r2,0(r19)
  80125c:	d9000817 	ldw	r4,32(sp)
  801260:	d9400717 	ldw	r5,28(sp)
  801264:	00c00b84 	movi	r3,46
  801268:	d9c00404 	addi	r7,sp,16
  80126c:	d8807005 	stb	r2,448(sp)
  801270:	d8c07045 	stb	r3,449(sp)
  801274:	21000084 	addi	r4,r4,2
  801278:	29400044 	addi	r5,r5,1
  80127c:	38c06c04 	addi	r3,r7,432
  801280:	00800084 	movi	r2,2
  801284:	050001c4 	movi	r20,7
  801288:	90c00015 	stw	r3,0(r18)
  80128c:	90800115 	stw	r2,4(r18)
  801290:	d9000815 	stw	r4,32(sp)
  801294:	9cc00044 	addi	r19,r19,1
  801298:	94800204 	addi	r18,r18,8
  80129c:	d9400715 	stw	r5,28(sp)
  8012a0:	04400404 	movi	r17,16
  8012a4:	a1410216 	blt	r20,r5,8016b0 <___vfprintf_internal_r+0x13e0>
  8012a8:	d901a417 	ldw	r4,1680(sp)
  8012ac:	d941a517 	ldw	r5,1684(sp)
  8012b0:	000d883a 	mov	r6,zero
  8012b4:	000f883a 	mov	r7,zero
  8012b8:	08083680 	call	808368 <__nedf2>
  8012bc:	10009626 	beq	r2,zero,801518 <___vfprintf_internal_r+0x1248>
  8012c0:	d8c00817 	ldw	r3,32(sp)
  8012c4:	d9000717 	ldw	r4,28(sp)
  8012c8:	80bfffc4 	addi	r2,r16,-1
  8012cc:	1c07883a 	add	r3,r3,r16
  8012d0:	18ffffc4 	addi	r3,r3,-1
  8012d4:	21000044 	addi	r4,r4,1
  8012d8:	94c00015 	stw	r19,0(r18)
  8012dc:	90800115 	stw	r2,4(r18)
  8012e0:	d8c00815 	stw	r3,32(sp)
  8012e4:	94800204 	addi	r18,r18,8
  8012e8:	d9000715 	stw	r4,28(sp)
  8012ec:	a100e816 	blt	r20,r4,801690 <___vfprintf_internal_r+0x13c0>
  8012f0:	d8800817 	ldw	r2,32(sp)
  8012f4:	d941a617 	ldw	r5,1688(sp)
  8012f8:	d8c00717 	ldw	r3,28(sp)
  8012fc:	d9c00404 	addi	r7,sp,16
  801300:	1145883a 	add	r2,r2,r5
  801304:	18c00044 	addi	r3,r3,1
  801308:	d8800815 	stw	r2,32(sp)
  80130c:	008001c4 	movi	r2,7
  801310:	91c00015 	stw	r7,0(r18)
  801314:	91400115 	stw	r5,4(r18)
  801318:	d8c00715 	stw	r3,28(sp)
  80131c:	94800204 	addi	r18,r18,8
  801320:	10fd490e 	bge	r2,r3,800848 <___vfprintf_internal_r+0x578>
  801324:	d9019e17 	ldw	r4,1656(sp)
  801328:	39400204 	addi	r5,r7,8
  80132c:	08002780 	call	800278 <__sprint>
  801330:	103fb21e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801334:	d8800404 	addi	r2,sp,16
  801338:	14800504 	addi	r18,r2,20
  80133c:	003d4206 	br	800848 <___vfprintf_internal_r+0x578>
  801340:	00800084 	movi	r2,2
  801344:	18bca91e 	bne	r3,r2,8005ec <___vfprintf_internal_r+0x31c>
  801348:	d9c1a917 	ldw	r7,1700(sp)
  80134c:	800ad13a 	srli	r5,r16,4
  801350:	880c973a 	slli	r6,r17,28
  801354:	810003cc 	andi	r4,r16,15
  801358:	21c9883a 	add	r4,r4,r7
  80135c:	8806d13a 	srli	r3,r17,4
  801360:	3144b03a 	or	r2,r6,r5
  801364:	21400003 	ldbu	r5,0(r4)
  801368:	9cffffc4 	addi	r19,r19,-1
  80136c:	10c8b03a 	or	r4,r2,r3
  801370:	1021883a 	mov	r16,r2
  801374:	1823883a 	mov	r17,r3
  801378:	99400005 	stb	r5,0(r19)
  80137c:	203ff21e 	bne	r4,zero,801348 <___vfprintf_internal_r+0x1078>
  801380:	003d8f06 	br	8009c0 <___vfprintf_internal_r+0x6f0>
  801384:	18803fcc 	andi	r2,r3,255
  801388:	103d8d1e 	bne	r2,zero,8009c0 <___vfprintf_internal_r+0x6f0>
  80138c:	d8c1a017 	ldw	r3,1664(sp)
  801390:	1880004c 	andi	r2,r3,1
  801394:	103d8a26 	beq	r2,zero,8009c0 <___vfprintf_internal_r+0x6f0>
  801398:	d9000404 	addi	r4,sp,16
  80139c:	24c06bc4 	addi	r19,r4,431
  8013a0:	00800c04 	movi	r2,48
  8013a4:	003d8506 	br	8009bc <___vfprintf_internal_r+0x6ec>
  8013a8:	d9019e17 	ldw	r4,1656(sp)
  8013ac:	d8c00404 	addi	r3,sp,16
  8013b0:	19400204 	addi	r5,r3,8
  8013b4:	08002780 	call	800278 <__sprint>
  8013b8:	103f901e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  8013bc:	d9000404 	addi	r4,sp,16
  8013c0:	24800504 	addi	r18,r4,20
  8013c4:	003cda06 	br	800730 <___vfprintf_internal_r+0x460>
  8013c8:	d9819517 	ldw	r6,1620(sp)
  8013cc:	0181450e 	bge	zero,r6,8018e4 <___vfprintf_internal_r+0x1614>
  8013d0:	dc019617 	ldw	r16,1624(sp)
  8013d4:	3400be16 	blt	r6,r16,8016d0 <___vfprintf_internal_r+0x1400>
  8013d8:	d8800817 	ldw	r2,32(sp)
  8013dc:	d8c00717 	ldw	r3,28(sp)
  8013e0:	050001c4 	movi	r20,7
  8013e4:	1405883a 	add	r2,r2,r16
  8013e8:	18c00044 	addi	r3,r3,1
  8013ec:	94c00015 	stw	r19,0(r18)
  8013f0:	94000115 	stw	r16,4(r18)
  8013f4:	d8800815 	stw	r2,32(sp)
  8013f8:	d8c00715 	stw	r3,28(sp)
  8013fc:	94800204 	addi	r18,r18,8
  801400:	a0c1a616 	blt	r20,r3,801a9c <___vfprintf_internal_r+0x17cc>
  801404:	3421c83a 	sub	r16,r6,r16
  801408:	0400280e 	bge	zero,r16,8014ac <___vfprintf_internal_r+0x11dc>
  80140c:	04400404 	movi	r17,16
  801410:	8c00190e 	bge	r17,r16,801478 <___vfprintf_internal_r+0x11a8>
  801414:	8827883a 	mov	r19,r17
  801418:	00000206 	br	801424 <___vfprintf_internal_r+0x1154>
  80141c:	843ffc04 	addi	r16,r16,-16
  801420:	9c00150e 	bge	r19,r16,801478 <___vfprintf_internal_r+0x11a8>
  801424:	00c02074 	movhi	r3,129
  801428:	18f07304 	addi	r3,r3,-15924
  80142c:	90c00015 	stw	r3,0(r18)
  801430:	d8800817 	ldw	r2,32(sp)
  801434:	d8c00717 	ldw	r3,28(sp)
  801438:	94400115 	stw	r17,4(r18)
  80143c:	10800404 	addi	r2,r2,16
  801440:	18c00044 	addi	r3,r3,1
  801444:	d8800815 	stw	r2,32(sp)
  801448:	d8c00715 	stw	r3,28(sp)
  80144c:	94800204 	addi	r18,r18,8
  801450:	a0fff20e 	bge	r20,r3,80141c <___vfprintf_internal_r+0x114c>
  801454:	d9019e17 	ldw	r4,1656(sp)
  801458:	d9c00404 	addi	r7,sp,16
  80145c:	39400204 	addi	r5,r7,8
  801460:	08002780 	call	800278 <__sprint>
  801464:	103f651e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801468:	d8800404 	addi	r2,sp,16
  80146c:	843ffc04 	addi	r16,r16,-16
  801470:	14800504 	addi	r18,r2,20
  801474:	9c3feb16 	blt	r19,r16,801424 <___vfprintf_internal_r+0x1154>
  801478:	d8800817 	ldw	r2,32(sp)
  80147c:	d8c00717 	ldw	r3,28(sp)
  801480:	01002074 	movhi	r4,129
  801484:	21307304 	addi	r4,r4,-15924
  801488:	1405883a 	add	r2,r2,r16
  80148c:	18c00044 	addi	r3,r3,1
  801490:	d8800815 	stw	r2,32(sp)
  801494:	008001c4 	movi	r2,7
  801498:	91000015 	stw	r4,0(r18)
  80149c:	94000115 	stw	r16,4(r18)
  8014a0:	d8c00715 	stw	r3,28(sp)
  8014a4:	94800204 	addi	r18,r18,8
  8014a8:	10c1fa16 	blt	r2,r3,801c94 <___vfprintf_internal_r+0x19c4>
  8014ac:	d8c1a017 	ldw	r3,1664(sp)
  8014b0:	1880004c 	andi	r2,r3,1
  8014b4:	103ce426 	beq	r2,zero,800848 <___vfprintf_internal_r+0x578>
  8014b8:	d9000817 	ldw	r4,32(sp)
  8014bc:	d9400717 	ldw	r5,28(sp)
  8014c0:	00800044 	movi	r2,1
  8014c4:	90800115 	stw	r2,4(r18)
  8014c8:	21000044 	addi	r4,r4,1
  8014cc:	29400044 	addi	r5,r5,1
  8014d0:	00c02074 	movhi	r3,129
  8014d4:	18f0e304 	addi	r3,r3,-15476
  8014d8:	008001c4 	movi	r2,7
  8014dc:	90c00015 	stw	r3,0(r18)
  8014e0:	d9000815 	stw	r4,32(sp)
  8014e4:	94800204 	addi	r18,r18,8
  8014e8:	d9400715 	stw	r5,28(sp)
  8014ec:	117cd60e 	bge	r2,r5,800848 <___vfprintf_internal_r+0x578>
  8014f0:	003f3706 	br	8011d0 <___vfprintf_internal_r+0xf00>
  8014f4:	d9019e17 	ldw	r4,1656(sp)
  8014f8:	d9c00404 	addi	r7,sp,16
  8014fc:	39400204 	addi	r5,r7,8
  801500:	08002780 	call	800278 <__sprint>
  801504:	103f3d1e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801508:	d8c19c03 	ldbu	r3,1648(sp)
  80150c:	d8800404 	addi	r2,sp,16
  801510:	14800504 	addi	r18,r2,20
  801514:	003c7506 	br	8006ec <___vfprintf_internal_r+0x41c>
  801518:	843fffc4 	addi	r16,r16,-1
  80151c:	043f740e 	bge	zero,r16,8012f0 <___vfprintf_internal_r+0x1020>
  801520:	8c00190e 	bge	r17,r16,801588 <___vfprintf_internal_r+0x12b8>
  801524:	a027883a 	mov	r19,r20
  801528:	00000206 	br	801534 <___vfprintf_internal_r+0x1264>
  80152c:	843ffc04 	addi	r16,r16,-16
  801530:	8c00150e 	bge	r17,r16,801588 <___vfprintf_internal_r+0x12b8>
  801534:	d8800817 	ldw	r2,32(sp)
  801538:	d8c00717 	ldw	r3,28(sp)
  80153c:	01402074 	movhi	r5,129
  801540:	29707304 	addi	r5,r5,-15924
  801544:	10800404 	addi	r2,r2,16
  801548:	18c00044 	addi	r3,r3,1
  80154c:	91400015 	stw	r5,0(r18)
  801550:	94400115 	stw	r17,4(r18)
  801554:	d8800815 	stw	r2,32(sp)
  801558:	d8c00715 	stw	r3,28(sp)
  80155c:	94800204 	addi	r18,r18,8
  801560:	98fff20e 	bge	r19,r3,80152c <___vfprintf_internal_r+0x125c>
  801564:	d9019e17 	ldw	r4,1656(sp)
  801568:	d9c00404 	addi	r7,sp,16
  80156c:	39400204 	addi	r5,r7,8
  801570:	08002780 	call	800278 <__sprint>
  801574:	103f211e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801578:	d8800404 	addi	r2,sp,16
  80157c:	843ffc04 	addi	r16,r16,-16
  801580:	14800504 	addi	r18,r2,20
  801584:	8c3feb16 	blt	r17,r16,801534 <___vfprintf_internal_r+0x1264>
  801588:	d8800817 	ldw	r2,32(sp)
  80158c:	d8c00717 	ldw	r3,28(sp)
  801590:	01002074 	movhi	r4,129
  801594:	21307304 	addi	r4,r4,-15924
  801598:	1405883a 	add	r2,r2,r16
  80159c:	18c00044 	addi	r3,r3,1
  8015a0:	d8800815 	stw	r2,32(sp)
  8015a4:	008001c4 	movi	r2,7
  8015a8:	91000015 	stw	r4,0(r18)
  8015ac:	94000115 	stw	r16,4(r18)
  8015b0:	d8c00715 	stw	r3,28(sp)
  8015b4:	94800204 	addi	r18,r18,8
  8015b8:	10ff4d0e 	bge	r2,r3,8012f0 <___vfprintf_internal_r+0x1020>
  8015bc:	d9019e17 	ldw	r4,1656(sp)
  8015c0:	d9c00404 	addi	r7,sp,16
  8015c4:	39400204 	addi	r5,r7,8
  8015c8:	08002780 	call	800278 <__sprint>
  8015cc:	103f0b1e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  8015d0:	d8800404 	addi	r2,sp,16
  8015d4:	14800504 	addi	r18,r2,20
  8015d8:	003f4506 	br	8012f0 <___vfprintf_internal_r+0x1020>
  8015dc:	d941a017 	ldw	r5,1664(sp)
  8015e0:	2804d13a 	srli	r2,r5,4
  8015e4:	1080004c 	andi	r2,r2,1
  8015e8:	10006526 	beq	r2,zero,801780 <___vfprintf_internal_r+0x14b0>
  8015ec:	d8819f17 	ldw	r2,1660(sp)
  8015f0:	10c00017 	ldw	r3,0(r2)
  8015f4:	11c00104 	addi	r7,r2,4
  8015f8:	d9c19f15 	stw	r7,1660(sp)
  8015fc:	1823d7fa 	srai	r17,r3,31
  801600:	1821883a 	mov	r16,r3
  801604:	883d200e 	bge	r17,zero,800a88 <___vfprintf_internal_r+0x7b8>
  801608:	003e3706 	br	800ee8 <___vfprintf_internal_r+0xc18>
  80160c:	d8c1a017 	ldw	r3,1664(sp)
  801610:	1804d13a 	srli	r2,r3,4
  801614:	1080004c 	andi	r2,r2,1
  801618:	10008126 	beq	r2,zero,801820 <___vfprintf_internal_r+0x1550>
  80161c:	d8819f17 	ldw	r2,1660(sp)
  801620:	0023883a 	mov	r17,zero
  801624:	14000017 	ldw	r16,0(r2)
  801628:	11000104 	addi	r4,r2,4
  80162c:	d9019f15 	stw	r4,1660(sp)
  801630:	00c00044 	movi	r3,1
  801634:	003bdb06 	br	8005a4 <___vfprintf_internal_r+0x2d4>
  801638:	d941a017 	ldw	r5,1664(sp)
  80163c:	2804d13a 	srli	r2,r5,4
  801640:	1080004c 	andi	r2,r2,1
  801644:	10005726 	beq	r2,zero,8017a4 <___vfprintf_internal_r+0x14d4>
  801648:	d8819f17 	ldw	r2,1660(sp)
  80164c:	0023883a 	mov	r17,zero
  801650:	14000017 	ldw	r16,0(r2)
  801654:	11c00104 	addi	r7,r2,4
  801658:	d9c19f15 	stw	r7,1660(sp)
  80165c:	0007883a 	mov	r3,zero
  801660:	003bd006 	br	8005a4 <___vfprintf_internal_r+0x2d4>
  801664:	d8800817 	ldw	r2,32(sp)
  801668:	d8c00717 	ldw	r3,28(sp)
  80166c:	94c00015 	stw	r19,0(r18)
  801670:	10800044 	addi	r2,r2,1
  801674:	18c00044 	addi	r3,r3,1
  801678:	d8800815 	stw	r2,32(sp)
  80167c:	008001c4 	movi	r2,7
  801680:	94400115 	stw	r17,4(r18)
  801684:	d8c00715 	stw	r3,28(sp)
  801688:	94800204 	addi	r18,r18,8
  80168c:	10ff180e 	bge	r2,r3,8012f0 <___vfprintf_internal_r+0x1020>
  801690:	d9019e17 	ldw	r4,1656(sp)
  801694:	d8c00404 	addi	r3,sp,16
  801698:	19400204 	addi	r5,r3,8
  80169c:	08002780 	call	800278 <__sprint>
  8016a0:	103ed61e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  8016a4:	d9000404 	addi	r4,sp,16
  8016a8:	24800504 	addi	r18,r4,20
  8016ac:	003f1006 	br	8012f0 <___vfprintf_internal_r+0x1020>
  8016b0:	d9019e17 	ldw	r4,1656(sp)
  8016b4:	39400204 	addi	r5,r7,8
  8016b8:	08002780 	call	800278 <__sprint>
  8016bc:	103ecf1e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  8016c0:	dc019617 	ldw	r16,1624(sp)
  8016c4:	dc45883a 	add	r2,sp,r17
  8016c8:	14800504 	addi	r18,r2,20
  8016cc:	003ef606 	br	8012a8 <___vfprintf_internal_r+0xfd8>
  8016d0:	d8800817 	ldw	r2,32(sp)
  8016d4:	d8c00717 	ldw	r3,28(sp)
  8016d8:	040001c4 	movi	r16,7
  8016dc:	1185883a 	add	r2,r2,r6
  8016e0:	18c00044 	addi	r3,r3,1
  8016e4:	94c00015 	stw	r19,0(r18)
  8016e8:	91800115 	stw	r6,4(r18)
  8016ec:	d8800815 	stw	r2,32(sp)
  8016f0:	d8c00715 	stw	r3,28(sp)
  8016f4:	94800204 	addi	r18,r18,8
  8016f8:	80c0fb16 	blt	r16,r3,801ae8 <___vfprintf_internal_r+0x1818>
  8016fc:	d8800817 	ldw	r2,32(sp)
  801700:	d9000717 	ldw	r4,28(sp)
  801704:	00c02074 	movhi	r3,129
  801708:	18f0e304 	addi	r3,r3,-15476
  80170c:	10800044 	addi	r2,r2,1
  801710:	21000044 	addi	r4,r4,1
  801714:	90c00015 	stw	r3,0(r18)
  801718:	94400115 	stw	r17,4(r18)
  80171c:	d8800815 	stw	r2,32(sp)
  801720:	99a7883a 	add	r19,r19,r6
  801724:	94800204 	addi	r18,r18,8
  801728:	d9000715 	stw	r4,28(sp)
  80172c:	8100e516 	blt	r16,r4,801ac4 <___vfprintf_internal_r+0x17f4>
  801730:	d8819617 	ldw	r2,1624(sp)
  801734:	d8c00817 	ldw	r3,32(sp)
  801738:	d9000717 	ldw	r4,28(sp)
  80173c:	1185c83a 	sub	r2,r2,r6
  801740:	1887883a 	add	r3,r3,r2
  801744:	21000044 	addi	r4,r4,1
  801748:	94c00015 	stw	r19,0(r18)
  80174c:	90800115 	stw	r2,4(r18)
  801750:	d8c00815 	stw	r3,32(sp)
  801754:	d9000715 	stw	r4,28(sp)
  801758:	94800204 	addi	r18,r18,8
  80175c:	813c3a0e 	bge	r16,r4,800848 <___vfprintf_internal_r+0x578>
  801760:	d9019e17 	ldw	r4,1656(sp)
  801764:	d8c00404 	addi	r3,sp,16
  801768:	19400204 	addi	r5,r3,8
  80176c:	08002780 	call	800278 <__sprint>
  801770:	103ea21e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801774:	d9000404 	addi	r4,sp,16
  801778:	24800504 	addi	r18,r4,20
  80177c:	003c3206 	br	800848 <___vfprintf_internal_r+0x578>
  801780:	d8c1a017 	ldw	r3,1664(sp)
  801784:	1804d1ba 	srli	r2,r3,6
  801788:	1080004c 	andi	r2,r2,1
  80178c:	1000a326 	beq	r2,zero,801a1c <___vfprintf_internal_r+0x174c>
  801790:	d8819f17 	ldw	r2,1660(sp)
  801794:	10c0000f 	ldh	r3,0(r2)
  801798:	11000104 	addi	r4,r2,4
  80179c:	d9019f15 	stw	r4,1660(sp)
  8017a0:	003f9606 	br	8015fc <___vfprintf_internal_r+0x132c>
  8017a4:	d8c1a017 	ldw	r3,1664(sp)
  8017a8:	1804d1ba 	srli	r2,r3,6
  8017ac:	1080004c 	andi	r2,r2,1
  8017b0:	1000b026 	beq	r2,zero,801a74 <___vfprintf_internal_r+0x17a4>
  8017b4:	d8819f17 	ldw	r2,1660(sp)
  8017b8:	0023883a 	mov	r17,zero
  8017bc:	1400000b 	ldhu	r16,0(r2)
  8017c0:	11000104 	addi	r4,r2,4
  8017c4:	d9019f15 	stw	r4,1660(sp)
  8017c8:	003fa406 	br	80165c <___vfprintf_internal_r+0x138c>
  8017cc:	d941a017 	ldw	r5,1664(sp)
  8017d0:	2804d1ba 	srli	r2,r5,6
  8017d4:	1080004c 	andi	r2,r2,1
  8017d8:	10008a26 	beq	r2,zero,801a04 <___vfprintf_internal_r+0x1734>
  8017dc:	d8819f17 	ldw	r2,1660(sp)
  8017e0:	0023883a 	mov	r17,zero
  8017e4:	1400000b 	ldhu	r16,0(r2)
  8017e8:	11c00104 	addi	r7,r2,4
  8017ec:	d9c19f15 	stw	r7,1660(sp)
  8017f0:	003d4606 	br	800d0c <___vfprintf_internal_r+0xa3c>
  8017f4:	d8c1a017 	ldw	r3,1664(sp)
  8017f8:	1804d13a 	srli	r2,r3,4
  8017fc:	1080004c 	andi	r2,r2,1
  801800:	10008b26 	beq	r2,zero,801a30 <___vfprintf_internal_r+0x1760>
  801804:	d8819f17 	ldw	r2,1660(sp)
  801808:	d941a117 	ldw	r5,1668(sp)
  80180c:	10c00017 	ldw	r3,0(r2)
  801810:	11000104 	addi	r4,r2,4
  801814:	d9019f15 	stw	r4,1660(sp)
  801818:	19400015 	stw	r5,0(r3)
  80181c:	003ad606 	br	800378 <___vfprintf_internal_r+0xa8>
  801820:	d941a017 	ldw	r5,1664(sp)
  801824:	2804d1ba 	srli	r2,r5,6
  801828:	1080004c 	andi	r2,r2,1
  80182c:	10008b26 	beq	r2,zero,801a5c <___vfprintf_internal_r+0x178c>
  801830:	d8819f17 	ldw	r2,1660(sp)
  801834:	0023883a 	mov	r17,zero
  801838:	1400000b 	ldhu	r16,0(r2)
  80183c:	11c00104 	addi	r7,r2,4
  801840:	d9c19f15 	stw	r7,1660(sp)
  801844:	003f7a06 	br	801630 <___vfprintf_internal_r+0x1360>
  801848:	d9019e17 	ldw	r4,1656(sp)
  80184c:	d8c00404 	addi	r3,sp,16
  801850:	19400204 	addi	r5,r3,8
  801854:	08002780 	call	800278 <__sprint>
  801858:	103e681e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  80185c:	d9000404 	addi	r4,sp,16
  801860:	24800504 	addi	r18,r4,20
  801864:	003e1e06 	br	8010e0 <___vfprintf_internal_r+0xe10>
  801868:	d8819f17 	ldw	r2,1660(sp)
  80186c:	05c00044 	movi	r23,1
  801870:	10c00017 	ldw	r3,0(r2)
  801874:	11400104 	addi	r5,r2,4
  801878:	d9419f15 	stw	r5,1660(sp)
  80187c:	98c00005 	stb	r3,0(r19)
  801880:	d8019c05 	stb	zero,1648(sp)
  801884:	003b5e06 	br	800600 <___vfprintf_internal_r+0x330>
  801888:	a03d651e 	bne	r20,zero,800e20 <___vfprintf_internal_r+0xb50>
  80188c:	05000044 	movi	r20,1
  801890:	003d6306 	br	800e20 <___vfprintf_internal_r+0xb50>
  801894:	a03b5716 	blt	r20,zero,8005f4 <___vfprintf_internal_r+0x324>
  801898:	9809883a 	mov	r4,r19
  80189c:	000b883a 	mov	r5,zero
  8018a0:	a00d883a 	mov	r6,r20
  8018a4:	08050a80 	call	8050a8 <memchr>
  8018a8:	a02f883a 	mov	r23,r20
  8018ac:	103b5426 	beq	r2,zero,800600 <___vfprintf_internal_r+0x330>
  8018b0:	14efc83a 	sub	r23,r2,r19
  8018b4:	a5fb520e 	bge	r20,r23,800600 <___vfprintf_internal_r+0x330>
  8018b8:	a02f883a 	mov	r23,r20
  8018bc:	003b5006 	br	800600 <___vfprintf_internal_r+0x330>
  8018c0:	d9019e17 	ldw	r4,1656(sp)
  8018c4:	d8800404 	addi	r2,sp,16
  8018c8:	11400204 	addi	r5,r2,8
  8018cc:	08002780 	call	800278 <__sprint>
  8018d0:	103e4a1e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  8018d4:	dc019617 	ldw	r16,1624(sp)
  8018d8:	d8c00404 	addi	r3,sp,16
  8018dc:	1c800504 	addi	r18,r3,20
  8018e0:	003e1006 	br	801124 <___vfprintf_internal_r+0xe54>
  8018e4:	d8800817 	ldw	r2,32(sp)
  8018e8:	d9000717 	ldw	r4,28(sp)
  8018ec:	00c02074 	movhi	r3,129
  8018f0:	18f0e204 	addi	r3,r3,-15480
  8018f4:	10800044 	addi	r2,r2,1
  8018f8:	21000044 	addi	r4,r4,1
  8018fc:	050001c4 	movi	r20,7
  801900:	90c00015 	stw	r3,0(r18)
  801904:	94400115 	stw	r17,4(r18)
  801908:	d8800815 	stw	r2,32(sp)
  80190c:	d9000715 	stw	r4,28(sp)
  801910:	94800204 	addi	r18,r18,8
  801914:	a100ee16 	blt	r20,r4,801cd0 <___vfprintf_internal_r+0x1a00>
  801918:	3000021e 	bne	r6,zero,801924 <___vfprintf_internal_r+0x1654>
  80191c:	d8819617 	ldw	r2,1624(sp)
  801920:	103bc926 	beq	r2,zero,800848 <___vfprintf_internal_r+0x578>
  801924:	d8800817 	ldw	r2,32(sp)
  801928:	d8c00717 	ldw	r3,28(sp)
  80192c:	d941a317 	ldw	r5,1676(sp)
  801930:	10800044 	addi	r2,r2,1
  801934:	18c00044 	addi	r3,r3,1
  801938:	94400115 	stw	r17,4(r18)
  80193c:	91400015 	stw	r5,0(r18)
  801940:	d8800815 	stw	r2,32(sp)
  801944:	d8c00715 	stw	r3,28(sp)
  801948:	94800204 	addi	r18,r18,8
  80194c:	a0c13416 	blt	r20,r3,801e20 <___vfprintf_internal_r+0x1b50>
  801950:	01a1c83a 	sub	r16,zero,r6
  801954:	0400f40e 	bge	zero,r16,801d28 <___vfprintf_internal_r+0x1a58>
  801958:	04400404 	movi	r17,16
  80195c:	8c00e50e 	bge	r17,r16,801cf4 <___vfprintf_internal_r+0x1a24>
  801960:	a02b883a 	mov	r21,r20
  801964:	8829883a 	mov	r20,r17
  801968:	00000206 	br	801974 <___vfprintf_internal_r+0x16a4>
  80196c:	843ffc04 	addi	r16,r16,-16
  801970:	a400e00e 	bge	r20,r16,801cf4 <___vfprintf_internal_r+0x1a24>
  801974:	00c02074 	movhi	r3,129
  801978:	18f07304 	addi	r3,r3,-15924
  80197c:	90c00015 	stw	r3,0(r18)
  801980:	d8800817 	ldw	r2,32(sp)
  801984:	d8c00717 	ldw	r3,28(sp)
  801988:	94400115 	stw	r17,4(r18)
  80198c:	10800404 	addi	r2,r2,16
  801990:	18c00044 	addi	r3,r3,1
  801994:	d8800815 	stw	r2,32(sp)
  801998:	d8c00715 	stw	r3,28(sp)
  80199c:	94800204 	addi	r18,r18,8
  8019a0:	a8fff20e 	bge	r21,r3,80196c <___vfprintf_internal_r+0x169c>
  8019a4:	d9019e17 	ldw	r4,1656(sp)
  8019a8:	d9c00404 	addi	r7,sp,16
  8019ac:	39400204 	addi	r5,r7,8
  8019b0:	08002780 	call	800278 <__sprint>
  8019b4:	103e111e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  8019b8:	d8800404 	addi	r2,sp,16
  8019bc:	14800504 	addi	r18,r2,20
  8019c0:	003fea06 	br	80196c <___vfprintf_internal_r+0x169c>
  8019c4:	d901a417 	ldw	r4,1680(sp)
  8019c8:	d941a517 	ldw	r5,1684(sp)
  8019cc:	08068300 	call	806830 <isnan>
  8019d0:	10004e26 	beq	r2,zero,801b0c <___vfprintf_internal_r+0x183c>
  8019d4:	04c02074 	movhi	r19,129
  8019d8:	9cf0e404 	addi	r19,r19,-15472
  8019dc:	05c000c4 	movi	r23,3
  8019e0:	003b0706 	br	800600 <___vfprintf_internal_r+0x330>
  8019e4:	d8c1a017 	ldw	r3,1664(sp)
  8019e8:	b5800044 	addi	r22,r22,1
  8019ec:	b1000003 	ldbu	r4,0(r22)
  8019f0:	18c00814 	ori	r3,r3,32
  8019f4:	d8c1a015 	stw	r3,1664(sp)
  8019f8:	003a8906 	br	800420 <___vfprintf_internal_r+0x150>
  8019fc:	05000184 	movi	r20,6
  801a00:	003d0706 	br	800e20 <___vfprintf_internal_r+0xb50>
  801a04:	d8819f17 	ldw	r2,1660(sp)
  801a08:	0023883a 	mov	r17,zero
  801a0c:	14000017 	ldw	r16,0(r2)
  801a10:	10800104 	addi	r2,r2,4
  801a14:	d8819f15 	stw	r2,1660(sp)
  801a18:	003cbc06 	br	800d0c <___vfprintf_internal_r+0xa3c>
  801a1c:	d8819f17 	ldw	r2,1660(sp)
  801a20:	10c00017 	ldw	r3,0(r2)
  801a24:	11400104 	addi	r5,r2,4
  801a28:	d9419f15 	stw	r5,1660(sp)
  801a2c:	003ef306 	br	8015fc <___vfprintf_internal_r+0x132c>
  801a30:	d9c1a017 	ldw	r7,1664(sp)
  801a34:	3804d1ba 	srli	r2,r7,6
  801a38:	1080004c 	andi	r2,r2,1
  801a3c:	10009d26 	beq	r2,zero,801cb4 <___vfprintf_internal_r+0x19e4>
  801a40:	d8819f17 	ldw	r2,1660(sp)
  801a44:	d901a117 	ldw	r4,1668(sp)
  801a48:	10c00017 	ldw	r3,0(r2)
  801a4c:	10800104 	addi	r2,r2,4
  801a50:	d8819f15 	stw	r2,1660(sp)
  801a54:	1900000d 	sth	r4,0(r3)
  801a58:	003a4706 	br	800378 <___vfprintf_internal_r+0xa8>
  801a5c:	d8819f17 	ldw	r2,1660(sp)
  801a60:	0023883a 	mov	r17,zero
  801a64:	14000017 	ldw	r16,0(r2)
  801a68:	10800104 	addi	r2,r2,4
  801a6c:	d8819f15 	stw	r2,1660(sp)
  801a70:	003eef06 	br	801630 <___vfprintf_internal_r+0x1360>
  801a74:	d8819f17 	ldw	r2,1660(sp)
  801a78:	0023883a 	mov	r17,zero
  801a7c:	14000017 	ldw	r16,0(r2)
  801a80:	11400104 	addi	r5,r2,4
  801a84:	d9419f15 	stw	r5,1660(sp)
  801a88:	003ef406 	br	80165c <___vfprintf_internal_r+0x138c>
  801a8c:	04c02074 	movhi	r19,129
  801a90:	9cf0e504 	addi	r19,r19,-15468
  801a94:	05c00184 	movi	r23,6
  801a98:	003ad906 	br	800600 <___vfprintf_internal_r+0x330>
  801a9c:	d9019e17 	ldw	r4,1656(sp)
  801aa0:	d9c00404 	addi	r7,sp,16
  801aa4:	39400204 	addi	r5,r7,8
  801aa8:	08002780 	call	800278 <__sprint>
  801aac:	103dd31e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801ab0:	d9819517 	ldw	r6,1620(sp)
  801ab4:	dc019617 	ldw	r16,1624(sp)
  801ab8:	d8800404 	addi	r2,sp,16
  801abc:	14800504 	addi	r18,r2,20
  801ac0:	003e5006 	br	801404 <___vfprintf_internal_r+0x1134>
  801ac4:	d9019e17 	ldw	r4,1656(sp)
  801ac8:	d9c00404 	addi	r7,sp,16
  801acc:	39400204 	addi	r5,r7,8
  801ad0:	08002780 	call	800278 <__sprint>
  801ad4:	103dc91e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801ad8:	d9819517 	ldw	r6,1620(sp)
  801adc:	d8800404 	addi	r2,sp,16
  801ae0:	14800504 	addi	r18,r2,20
  801ae4:	003f1206 	br	801730 <___vfprintf_internal_r+0x1460>
  801ae8:	d9019e17 	ldw	r4,1656(sp)
  801aec:	d8c00404 	addi	r3,sp,16
  801af0:	19400204 	addi	r5,r3,8
  801af4:	08002780 	call	800278 <__sprint>
  801af8:	103dc01e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801afc:	d9819517 	ldw	r6,1620(sp)
  801b00:	d9000404 	addi	r4,sp,16
  801b04:	24800504 	addi	r18,r4,20
  801b08:	003efc06 	br	8016fc <___vfprintf_internal_r+0x142c>
  801b0c:	d881a417 	ldw	r2,1680(sp)
  801b10:	d8c1a017 	ldw	r3,1664(sp)
  801b14:	d901a517 	ldw	r4,1684(sp)
  801b18:	1021883a 	mov	r16,r2
  801b1c:	18c04014 	ori	r3,r3,256
  801b20:	00801984 	movi	r2,102
  801b24:	d8c1a015 	stw	r3,1664(sp)
  801b28:	2023883a 	mov	r17,r4
  801b2c:	a02f883a 	mov	r23,r20
  801b30:	d9819404 	addi	r6,sp,1616
  801b34:	01c000c4 	movi	r7,3
  801b38:	e0800526 	beq	fp,r2,801b50 <___vfprintf_internal_r+0x1880>
  801b3c:	00801944 	movi	r2,101
  801b40:	e0808626 	beq	fp,r2,801d5c <___vfprintf_internal_r+0x1a8c>
  801b44:	00801144 	movi	r2,69
  801b48:	e0808426 	beq	fp,r2,801d5c <___vfprintf_internal_r+0x1a8c>
  801b4c:	01c00084 	movi	r7,2
  801b50:	8800e316 	blt	r17,zero,801ee0 <___vfprintf_internal_r+0x1c10>
  801b54:	30000005 	stb	zero,0(r6)
  801b58:	d9019d17 	ldw	r4,1652(sp)
  801b5c:	d8819704 	addi	r2,sp,1628
  801b60:	d8800215 	stw	r2,8(sp)
  801b64:	d8c19804 	addi	r3,sp,1632
  801b68:	d8819504 	addi	r2,sp,1620
  801b6c:	800b883a 	mov	r5,r16
  801b70:	880d883a 	mov	r6,r17
  801b74:	d8c00315 	stw	r3,12(sp)
  801b78:	ddc00015 	stw	r23,0(sp)
  801b7c:	d8800115 	stw	r2,4(sp)
  801b80:	08029700 	call	802970 <_dtoa_r>
  801b84:	102b883a 	mov	r21,r2
  801b88:	008019c4 	movi	r2,103
  801b8c:	e0808d26 	beq	fp,r2,801dc4 <___vfprintf_internal_r+0x1af4>
  801b90:	008011c4 	movi	r2,71
  801b94:	e0808b26 	beq	fp,r2,801dc4 <___vfprintf_internal_r+0x1af4>
  801b98:	00801984 	movi	r2,102
  801b9c:	ade7883a 	add	r19,r21,r23
  801ba0:	e080be26 	beq	fp,r2,801e9c <___vfprintf_internal_r+0x1bcc>
  801ba4:	000d883a 	mov	r6,zero
  801ba8:	000f883a 	mov	r7,zero
  801bac:	880b883a 	mov	r5,r17
  801bb0:	8009883a 	mov	r4,r16
  801bb4:	08082dc0 	call	8082dc <__eqdf2>
  801bb8:	1000a21e 	bne	r2,zero,801e44 <___vfprintf_internal_r+0x1b74>
  801bbc:	9805883a 	mov	r2,r19
  801bc0:	dcc19815 	stw	r19,1632(sp)
  801bc4:	14c0052e 	bgeu	r2,r19,801bdc <___vfprintf_internal_r+0x190c>
  801bc8:	00c00c04 	movi	r3,48
  801bcc:	10c00005 	stb	r3,0(r2)
  801bd0:	10800044 	addi	r2,r2,1
  801bd4:	d8819815 	stw	r2,1632(sp)
  801bd8:	14fffc36 	bltu	r2,r19,801bcc <___vfprintf_internal_r+0x18fc>
  801bdc:	1545c83a 	sub	r2,r2,r21
  801be0:	00c019c4 	movi	r3,103
  801be4:	d8819615 	stw	r2,1624(sp)
  801be8:	a827883a 	mov	r19,r21
  801bec:	e0c06c26 	beq	fp,r3,801da0 <___vfprintf_internal_r+0x1ad0>
  801bf0:	008011c4 	movi	r2,71
  801bf4:	e0806a26 	beq	fp,r2,801da0 <___vfprintf_internal_r+0x1ad0>
  801bf8:	d9819517 	ldw	r6,1620(sp)
  801bfc:	00801944 	movi	r2,101
  801c00:	17005916 	blt	r2,fp,801d68 <___vfprintf_internal_r+0x1a98>
  801c04:	31bfffc4 	addi	r6,r6,-1
  801c08:	d9819515 	stw	r6,1620(sp)
  801c0c:	df000405 	stb	fp,16(sp)
  801c10:	3023883a 	mov	r17,r6
  801c14:	dd000444 	addi	r20,sp,17
  801c18:	3000cb16 	blt	r6,zero,801f48 <___vfprintf_internal_r+0x1c78>
  801c1c:	00800ac4 	movi	r2,43
  801c20:	a0800005 	stb	r2,0(r20)
  801c24:	d9000404 	addi	r4,sp,16
  801c28:	00800244 	movi	r2,9
  801c2c:	dd000484 	addi	r20,sp,18
  801c30:	24018e04 	addi	r16,r4,1592
  801c34:	1440680e 	bge	r2,r17,801dd8 <___vfprintf_internal_r+0x1b08>
  801c38:	102b883a 	mov	r21,r2
  801c3c:	8809883a 	mov	r4,r17
  801c40:	01400284 	movi	r5,10
  801c44:	08087c80 	call	8087c8 <__modsi3>
  801c48:	10800c04 	addi	r2,r2,48
  801c4c:	843fffc4 	addi	r16,r16,-1
  801c50:	8809883a 	mov	r4,r17
  801c54:	01400284 	movi	r5,10
  801c58:	80800005 	stb	r2,0(r16)
  801c5c:	08087780 	call	808778 <__divsi3>
  801c60:	1023883a 	mov	r17,r2
  801c64:	a8bff516 	blt	r21,r2,801c3c <___vfprintf_internal_r+0x196c>
  801c68:	843fffc4 	addi	r16,r16,-1
  801c6c:	10800c04 	addi	r2,r2,48
  801c70:	d9c00404 	addi	r7,sp,16
  801c74:	39418e04 	addi	r5,r7,1592
  801c78:	80800005 	stb	r2,0(r16)
  801c7c:	81405c2e 	bgeu	r16,r5,801df0 <___vfprintf_internal_r+0x1b20>
  801c80:	80800003 	ldbu	r2,0(r16)
  801c84:	84000044 	addi	r16,r16,1
  801c88:	a0800005 	stb	r2,0(r20)
  801c8c:	a5000044 	addi	r20,r20,1
  801c90:	003ffa06 	br	801c7c <___vfprintf_internal_r+0x19ac>
  801c94:	d9019e17 	ldw	r4,1656(sp)
  801c98:	d9c00404 	addi	r7,sp,16
  801c9c:	39400204 	addi	r5,r7,8
  801ca0:	08002780 	call	800278 <__sprint>
  801ca4:	103d551e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801ca8:	d8800404 	addi	r2,sp,16
  801cac:	14800504 	addi	r18,r2,20
  801cb0:	003dfe06 	br	8014ac <___vfprintf_internal_r+0x11dc>
  801cb4:	d8819f17 	ldw	r2,1660(sp)
  801cb8:	d9c1a117 	ldw	r7,1668(sp)
  801cbc:	10c00017 	ldw	r3,0(r2)
  801cc0:	11400104 	addi	r5,r2,4
  801cc4:	d9419f15 	stw	r5,1660(sp)
  801cc8:	19c00015 	stw	r7,0(r3)
  801ccc:	0039aa06 	br	800378 <___vfprintf_internal_r+0xa8>
  801cd0:	d9019e17 	ldw	r4,1656(sp)
  801cd4:	d8c00404 	addi	r3,sp,16
  801cd8:	19400204 	addi	r5,r3,8
  801cdc:	08002780 	call	800278 <__sprint>
  801ce0:	103d461e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801ce4:	d9819517 	ldw	r6,1620(sp)
  801ce8:	d9000404 	addi	r4,sp,16
  801cec:	24800504 	addi	r18,r4,20
  801cf0:	003f0906 	br	801918 <___vfprintf_internal_r+0x1648>
  801cf4:	d8800817 	ldw	r2,32(sp)
  801cf8:	d8c00717 	ldw	r3,28(sp)
  801cfc:	01002074 	movhi	r4,129
  801d00:	21307304 	addi	r4,r4,-15924
  801d04:	1405883a 	add	r2,r2,r16
  801d08:	18c00044 	addi	r3,r3,1
  801d0c:	d8800815 	stw	r2,32(sp)
  801d10:	008001c4 	movi	r2,7
  801d14:	91000015 	stw	r4,0(r18)
  801d18:	94000115 	stw	r16,4(r18)
  801d1c:	d8c00715 	stw	r3,28(sp)
  801d20:	94800204 	addi	r18,r18,8
  801d24:	10c04916 	blt	r2,r3,801e4c <___vfprintf_internal_r+0x1b7c>
  801d28:	d9019617 	ldw	r4,1624(sp)
  801d2c:	d8800817 	ldw	r2,32(sp)
  801d30:	d8c00717 	ldw	r3,28(sp)
  801d34:	94c00015 	stw	r19,0(r18)
  801d38:	1105883a 	add	r2,r2,r4
  801d3c:	18c00044 	addi	r3,r3,1
  801d40:	d8800815 	stw	r2,32(sp)
  801d44:	008001c4 	movi	r2,7
  801d48:	91000115 	stw	r4,4(r18)
  801d4c:	d8c00715 	stw	r3,28(sp)
  801d50:	94800204 	addi	r18,r18,8
  801d54:	10fabc0e 	bge	r2,r3,800848 <___vfprintf_internal_r+0x578>
  801d58:	003e8106 	br	801760 <___vfprintf_internal_r+0x1490>
  801d5c:	a5c00044 	addi	r23,r20,1
  801d60:	01c00084 	movi	r7,2
  801d64:	003f7a06 	br	801b50 <___vfprintf_internal_r+0x1880>
  801d68:	00801984 	movi	r2,102
  801d6c:	e0806d26 	beq	fp,r2,801f24 <___vfprintf_internal_r+0x1c54>
  801d70:	d8819617 	ldw	r2,1624(sp)
  801d74:	30806416 	blt	r6,r2,801f08 <___vfprintf_internal_r+0x1c38>
  801d78:	d9c1a017 	ldw	r7,1664(sp)
  801d7c:	302f883a 	mov	r23,r6
  801d80:	3880004c 	andi	r2,r7,1
  801d84:	10000126 	beq	r2,zero,801d8c <___vfprintf_internal_r+0x1abc>
  801d88:	35c00044 	addi	r23,r6,1
  801d8c:	d8819407 	ldb	r2,1616(sp)
  801d90:	103a1b26 	beq	r2,zero,800600 <___vfprintf_internal_r+0x330>
  801d94:	00800b44 	movi	r2,45
  801d98:	d8819c05 	stb	r2,1648(sp)
  801d9c:	003a1806 	br	800600 <___vfprintf_internal_r+0x330>
  801da0:	d9819517 	ldw	r6,1620(sp)
  801da4:	00bfff04 	movi	r2,-4
  801da8:	1180010e 	bge	r2,r6,801db0 <___vfprintf_internal_r+0x1ae0>
  801dac:	a1805b0e 	bge	r20,r6,801f1c <___vfprintf_internal_r+0x1c4c>
  801db0:	00801944 	movi	r2,101
  801db4:	e0c00126 	beq	fp,r3,801dbc <___vfprintf_internal_r+0x1aec>
  801db8:	00801144 	movi	r2,69
  801dbc:	1039883a 	mov	fp,r2
  801dc0:	003f8e06 	br	801bfc <___vfprintf_internal_r+0x192c>
  801dc4:	d8c1a017 	ldw	r3,1664(sp)
  801dc8:	1880004c 	andi	r2,r3,1
  801dcc:	103f721e 	bne	r2,zero,801b98 <___vfprintf_internal_r+0x18c8>
  801dd0:	d8819817 	ldw	r2,1632(sp)
  801dd4:	003f8106 	br	801bdc <___vfprintf_internal_r+0x190c>
  801dd8:	00800c04 	movi	r2,48
  801ddc:	a0800005 	stb	r2,0(r20)
  801de0:	88c00c04 	addi	r3,r17,48
  801de4:	a5000044 	addi	r20,r20,1
  801de8:	a0c00005 	stb	r3,0(r20)
  801dec:	a5000044 	addi	r20,r20,1
  801df0:	d8c19617 	ldw	r3,1624(sp)
  801df4:	d8800404 	addi	r2,sp,16
  801df8:	a085c83a 	sub	r2,r20,r2
  801dfc:	d881a615 	stw	r2,1688(sp)
  801e00:	10ef883a 	add	r23,r2,r3
  801e04:	00800044 	movi	r2,1
  801e08:	10c00316 	blt	r2,r3,801e18 <___vfprintf_internal_r+0x1b48>
  801e0c:	d8c1a017 	ldw	r3,1664(sp)
  801e10:	1884703a 	and	r2,r3,r2
  801e14:	103fdd26 	beq	r2,zero,801d8c <___vfprintf_internal_r+0x1abc>
  801e18:	bdc00044 	addi	r23,r23,1
  801e1c:	003fdb06 	br	801d8c <___vfprintf_internal_r+0x1abc>
  801e20:	d9019e17 	ldw	r4,1656(sp)
  801e24:	d9c00404 	addi	r7,sp,16
  801e28:	39400204 	addi	r5,r7,8
  801e2c:	08002780 	call	800278 <__sprint>
  801e30:	103cf21e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801e34:	d9819517 	ldw	r6,1620(sp)
  801e38:	d8800404 	addi	r2,sp,16
  801e3c:	14800504 	addi	r18,r2,20
  801e40:	003ec306 	br	801950 <___vfprintf_internal_r+0x1680>
  801e44:	d8819817 	ldw	r2,1632(sp)
  801e48:	003f5e06 	br	801bc4 <___vfprintf_internal_r+0x18f4>
  801e4c:	d9019e17 	ldw	r4,1656(sp)
  801e50:	d9c00404 	addi	r7,sp,16
  801e54:	39400204 	addi	r5,r7,8
  801e58:	08002780 	call	800278 <__sprint>
  801e5c:	103ce71e 	bne	r2,zero,8011fc <___vfprintf_internal_r+0xf2c>
  801e60:	d8800404 	addi	r2,sp,16
  801e64:	14800504 	addi	r18,r2,20
  801e68:	003faf06 	br	801d28 <___vfprintf_internal_r+0x1a58>
  801e6c:	d9019d17 	ldw	r4,1652(sp)
  801e70:	d8819904 	addi	r2,sp,1636
  801e74:	000b883a 	mov	r5,zero
  801e78:	d9819b04 	addi	r6,sp,1644
  801e7c:	000f883a 	mov	r7,zero
  801e80:	d8800015 	stw	r2,0(sp)
  801e84:	08020880 	call	802088 <_wcsrtombs_r>
  801e88:	102f883a 	mov	r23,r2
  801e8c:	00bfffc4 	movi	r2,-1
  801e90:	b8bcda26 	beq	r23,r2,8011fc <___vfprintf_internal_r+0xf2c>
  801e94:	dcc19b15 	stw	r19,1644(sp)
  801e98:	003b3706 	br	800b78 <___vfprintf_internal_r+0x8a8>
  801e9c:	a8c00007 	ldb	r3,0(r21)
  801ea0:	00800c04 	movi	r2,48
  801ea4:	18800326 	beq	r3,r2,801eb4 <___vfprintf_internal_r+0x1be4>
  801ea8:	d8819517 	ldw	r2,1620(sp)
  801eac:	98a7883a 	add	r19,r19,r2
  801eb0:	003f3c06 	br	801ba4 <___vfprintf_internal_r+0x18d4>
  801eb4:	000d883a 	mov	r6,zero
  801eb8:	000f883a 	mov	r7,zero
  801ebc:	8009883a 	mov	r4,r16
  801ec0:	880b883a 	mov	r5,r17
  801ec4:	08083680 	call	808368 <__nedf2>
  801ec8:	103ff726 	beq	r2,zero,801ea8 <___vfprintf_internal_r+0x1bd8>
  801ecc:	00800044 	movi	r2,1
  801ed0:	15c5c83a 	sub	r2,r2,r23
  801ed4:	98a7883a 	add	r19,r19,r2
  801ed8:	d8819515 	stw	r2,1620(sp)
  801edc:	003f3106 	br	801ba4 <___vfprintf_internal_r+0x18d4>
  801ee0:	0005883a 	mov	r2,zero
  801ee4:	00e00034 	movhi	r3,32768
  801ee8:	18c00004 	addi	r3,r3,0
  801eec:	1408f03a 	xor	r4,r2,r16
  801ef0:	88caf03a 	xor	r5,r17,r3
  801ef4:	00800b44 	movi	r2,45
  801ef8:	2021883a 	mov	r16,r4
  801efc:	2823883a 	mov	r17,r5
  801f00:	30800005 	stb	r2,0(r6)
  801f04:	003f1406 	br	801b58 <___vfprintf_internal_r+0x1888>
  801f08:	15c00044 	addi	r23,r2,1
  801f0c:	01bf9f16 	blt	zero,r6,801d8c <___vfprintf_internal_r+0x1abc>
  801f10:	1185c83a 	sub	r2,r2,r6
  801f14:	15c00084 	addi	r23,r2,2
  801f18:	003f9c06 	br	801d8c <___vfprintf_internal_r+0x1abc>
  801f1c:	1839883a 	mov	fp,r3
  801f20:	003f3606 	br	801bfc <___vfprintf_internal_r+0x192c>
  801f24:	01800c0e 	bge	zero,r6,801f58 <___vfprintf_internal_r+0x1c88>
  801f28:	302f883a 	mov	r23,r6
  801f2c:	a000031e 	bne	r20,zero,801f3c <___vfprintf_internal_r+0x1c6c>
  801f30:	d901a017 	ldw	r4,1664(sp)
  801f34:	2080004c 	andi	r2,r4,1
  801f38:	103f9426 	beq	r2,zero,801d8c <___vfprintf_internal_r+0x1abc>
  801f3c:	a185883a 	add	r2,r20,r6
  801f40:	15c00044 	addi	r23,r2,1
  801f44:	003f9106 	br	801d8c <___vfprintf_internal_r+0x1abc>
  801f48:	00800b44 	movi	r2,45
  801f4c:	01a3c83a 	sub	r17,zero,r6
  801f50:	a0800005 	stb	r2,0(r20)
  801f54:	003f3306 	br	801c24 <___vfprintf_internal_r+0x1954>
  801f58:	a000041e 	bne	r20,zero,801f6c <___vfprintf_internal_r+0x1c9c>
  801f5c:	d941a017 	ldw	r5,1664(sp)
  801f60:	05c00044 	movi	r23,1
  801f64:	2880004c 	andi	r2,r5,1
  801f68:	103f8826 	beq	r2,zero,801d8c <___vfprintf_internal_r+0x1abc>
  801f6c:	a5c00084 	addi	r23,r20,2
  801f70:	003f8606 	br	801d8c <___vfprintf_internal_r+0x1abc>
  801f74:	d8819f17 	ldw	r2,1660(sp)
  801f78:	15000017 	ldw	r20,0(r2)
  801f7c:	10c00104 	addi	r3,r2,4
  801f80:	d8c19f15 	stw	r3,1660(sp)
  801f84:	a03bd60e 	bge	r20,zero,800ee0 <___vfprintf_internal_r+0xc10>
  801f88:	b1000003 	ldbu	r4,0(r22)
  801f8c:	053fffc4 	movi	r20,-1
  801f90:	00392306 	br	800420 <___vfprintf_internal_r+0x150>

00801f94 <__vfprintf_internal>:
  801f94:	d0e00017 	ldw	r3,-32768(gp)
  801f98:	defffc04 	addi	sp,sp,-16
  801f9c:	dc000215 	stw	r16,8(sp)
  801fa0:	dc400115 	stw	r17,4(sp)
  801fa4:	dc800015 	stw	r18,0(sp)
  801fa8:	dfc00315 	stw	ra,12(sp)
  801fac:	18800e17 	ldw	r2,56(r3)
  801fb0:	2023883a 	mov	r17,r4
  801fb4:	2825883a 	mov	r18,r5
  801fb8:	1809883a 	mov	r4,r3
  801fbc:	3021883a 	mov	r16,r6
  801fc0:	10000c26 	beq	r2,zero,801ff4 <__vfprintf_internal+0x60>
  801fc4:	1809883a 	mov	r4,r3
  801fc8:	880b883a 	mov	r5,r17
  801fcc:	900d883a 	mov	r6,r18
  801fd0:	800f883a 	mov	r7,r16
  801fd4:	02002034 	movhi	r8,128
  801fd8:	4200b404 	addi	r8,r8,720
  801fdc:	dfc00317 	ldw	ra,12(sp)
  801fe0:	dc000217 	ldw	r16,8(sp)
  801fe4:	dc400117 	ldw	r17,4(sp)
  801fe8:	dc800017 	ldw	r18,0(sp)
  801fec:	dec00404 	addi	sp,sp,16
  801ff0:	4000683a 	jmp	r8
  801ff4:	0803ecc0 	call	803ecc <__sinit>
  801ff8:	d0e00017 	ldw	r3,-32768(gp)
  801ffc:	003ff106 	br	801fc4 <__vfprintf_internal+0x30>

00802000 <_wcrtomb_r>:
  802000:	defffa04 	addi	sp,sp,-24
  802004:	dc000415 	stw	r16,16(sp)
  802008:	dc400315 	stw	r17,12(sp)
  80200c:	dfc00515 	stw	ra,20(sp)
  802010:	2023883a 	mov	r17,r4
  802014:	3821883a 	mov	r16,r7
  802018:	28000b26 	beq	r5,zero,802048 <_wcrtomb_r+0x48>
  80201c:	08022040 	call	802204 <_wctomb_r>
  802020:	1007883a 	mov	r3,r2
  802024:	1009883a 	mov	r4,r2
  802028:	00bfffc4 	movi	r2,-1
  80202c:	18800926 	beq	r3,r2,802054 <_wcrtomb_r+0x54>
  802030:	2005883a 	mov	r2,r4
  802034:	dfc00517 	ldw	ra,20(sp)
  802038:	dc000417 	ldw	r16,16(sp)
  80203c:	dc400317 	ldw	r17,12(sp)
  802040:	dec00604 	addi	sp,sp,24
  802044:	f800283a 	ret
  802048:	d80b883a 	mov	r5,sp
  80204c:	000d883a 	mov	r6,zero
  802050:	003ff206 	br	80201c <_wcrtomb_r+0x1c>
  802054:	80000015 	stw	zero,0(r16)
  802058:	00802284 	movi	r2,138
  80205c:	88800015 	stw	r2,0(r17)
  802060:	003ff306 	br	802030 <_wcrtomb_r+0x30>

00802064 <wcrtomb>:
  802064:	2013883a 	mov	r9,r4
  802068:	d1200017 	ldw	r4,-32768(gp)
  80206c:	2807883a 	mov	r3,r5
  802070:	300f883a 	mov	r7,r6
  802074:	480b883a 	mov	r5,r9
  802078:	180d883a 	mov	r6,r3
  80207c:	02002034 	movhi	r8,128
  802080:	42080004 	addi	r8,r8,8192
  802084:	4000683a 	jmp	r8

00802088 <_wcsrtombs_r>:
  802088:	defff204 	addi	sp,sp,-56
  80208c:	dc000b15 	stw	r16,44(sp)
  802090:	dc800915 	stw	r18,36(sp)
  802094:	dd000715 	stw	r20,28(sp)
  802098:	ddc00415 	stw	r23,16(sp)
  80209c:	dfc00d15 	stw	ra,52(sp)
  8020a0:	df000c15 	stw	fp,48(sp)
  8020a4:	dc400a15 	stw	r17,40(sp)
  8020a8:	dcc00815 	stw	r19,32(sp)
  8020ac:	dd400615 	stw	r21,24(sp)
  8020b0:	dd800515 	stw	r22,20(sp)
  8020b4:	2821883a 	mov	r16,r5
  8020b8:	d9000315 	stw	r4,12(sp)
  8020bc:	302f883a 	mov	r23,r6
  8020c0:	3825883a 	mov	r18,r7
  8020c4:	dd000e17 	ldw	r20,56(sp)
  8020c8:	28002f26 	beq	r5,zero,802188 <_wcsrtombs_r+0x100>
  8020cc:	002b883a 	mov	r21,zero
  8020d0:	bc400017 	ldw	r17,0(r23)
  8020d4:	04801f2e 	bgeu	zero,r18,802154 <_wcsrtombs_r+0xcc>
  8020d8:	8039003a 	cmpeq	fp,r16,zero
  8020dc:	89800017 	ldw	r6,0(r17)
  8020e0:	d9000317 	ldw	r4,12(sp)
  8020e4:	d80b883a 	mov	r5,sp
  8020e8:	a00f883a 	mov	r7,r20
  8020ec:	a5800017 	ldw	r22,0(r20)
  8020f0:	a4c00117 	ldw	r19,4(r20)
  8020f4:	08020000 	call	802000 <_wcrtomb_r>
  8020f8:	100b883a 	mov	r5,r2
  8020fc:	00bfffc4 	movi	r2,-1
  802100:	28802626 	beq	r5,r2,80219c <_wcsrtombs_r+0x114>
  802104:	9145c83a 	sub	r2,r18,r5
  802108:	15402136 	bltu	r2,r21,802190 <_wcsrtombs_r+0x108>
  80210c:	2c80202e 	bgeu	r5,r18,802190 <_wcsrtombs_r+0x108>
  802110:	a96b883a 	add	r21,r21,r5
  802114:	e0000b1e 	bne	fp,zero,802144 <_wcsrtombs_r+0xbc>
  802118:	0009883a 	mov	r4,zero
  80211c:	0140060e 	bge	zero,r5,802138 <_wcsrtombs_r+0xb0>
  802120:	d905883a 	add	r2,sp,r4
  802124:	10c00003 	ldbu	r3,0(r2)
  802128:	21000044 	addi	r4,r4,1
  80212c:	80c00005 	stb	r3,0(r16)
  802130:	84000044 	addi	r16,r16,1
  802134:	217ffa16 	blt	r4,r5,802120 <_wcsrtombs_r+0x98>
  802138:	b8800017 	ldw	r2,0(r23)
  80213c:	10800104 	addi	r2,r2,4
  802140:	b8800015 	stw	r2,0(r23)
  802144:	88800017 	ldw	r2,0(r17)
  802148:	8c400104 	addi	r17,r17,4
  80214c:	10001926 	beq	r2,zero,8021b4 <_wcsrtombs_r+0x12c>
  802150:	acbfe236 	bltu	r21,r18,8020dc <_wcsrtombs_r+0x54>
  802154:	a805883a 	mov	r2,r21
  802158:	dfc00d17 	ldw	ra,52(sp)
  80215c:	df000c17 	ldw	fp,48(sp)
  802160:	dc000b17 	ldw	r16,44(sp)
  802164:	dc400a17 	ldw	r17,40(sp)
  802168:	dc800917 	ldw	r18,36(sp)
  80216c:	dcc00817 	ldw	r19,32(sp)
  802170:	dd000717 	ldw	r20,28(sp)
  802174:	dd400617 	ldw	r21,24(sp)
  802178:	dd800517 	ldw	r22,20(sp)
  80217c:	ddc00417 	ldw	r23,16(sp)
  802180:	dec00e04 	addi	sp,sp,56
  802184:	f800283a 	ret
  802188:	04bfffc4 	movi	r18,-1
  80218c:	003fcf06 	br	8020cc <_wcsrtombs_r+0x44>
  802190:	a4c00115 	stw	r19,4(r20)
  802194:	a5800015 	stw	r22,0(r20)
  802198:	003fee06 	br	802154 <_wcsrtombs_r+0xcc>
  80219c:	d8c00317 	ldw	r3,12(sp)
  8021a0:	00802284 	movi	r2,138
  8021a4:	18800015 	stw	r2,0(r3)
  8021a8:	2805883a 	mov	r2,r5
  8021ac:	a0000015 	stw	zero,0(r20)
  8021b0:	003fe906 	br	802158 <_wcsrtombs_r+0xd0>
  8021b4:	e000011e 	bne	fp,zero,8021bc <_wcsrtombs_r+0x134>
  8021b8:	b8000015 	stw	zero,0(r23)
  8021bc:	a8bfffc4 	addi	r2,r21,-1
  8021c0:	a0000015 	stw	zero,0(r20)
  8021c4:	003fe406 	br	802158 <_wcsrtombs_r+0xd0>

008021c8 <wcsrtombs>:
  8021c8:	d0e00017 	ldw	r3,-32768(gp)
  8021cc:	defffe04 	addi	sp,sp,-8
  8021d0:	2013883a 	mov	r9,r4
  8021d4:	2817883a 	mov	r11,r5
  8021d8:	301b883a 	mov	r13,r6
  8021dc:	d9c00015 	stw	r7,0(sp)
  8021e0:	1809883a 	mov	r4,r3
  8021e4:	480b883a 	mov	r5,r9
  8021e8:	580d883a 	mov	r6,r11
  8021ec:	680f883a 	mov	r7,r13
  8021f0:	dfc00115 	stw	ra,4(sp)
  8021f4:	08020880 	call	802088 <_wcsrtombs_r>
  8021f8:	dfc00117 	ldw	ra,4(sp)
  8021fc:	dec00204 	addi	sp,sp,8
  802200:	f800283a 	ret

00802204 <_wctomb_r>:
  802204:	defffb04 	addi	sp,sp,-20
  802208:	01002074 	movhi	r4,129
  80220c:	2132e304 	addi	r4,r4,-13428
  802210:	dc000315 	stw	r16,12(sp)
  802214:	dc400215 	stw	r17,8(sp)
  802218:	dc800115 	stw	r18,4(sp)
  80221c:	dcc00015 	stw	r19,0(sp)
  802220:	2821883a 	mov	r16,r5
  802224:	dfc00415 	stw	ra,16(sp)
  802228:	3023883a 	mov	r17,r6
  80222c:	3827883a 	mov	r19,r7
  802230:	04800044 	movi	r18,1
  802234:	0806ae80 	call	806ae8 <strlen>
  802238:	8006c03a 	cmpne	r3,r16,zero
  80223c:	90800c36 	bltu	r18,r2,802270 <_wctomb_r+0x6c>
  802240:	0011883a 	mov	r8,zero
  802244:	18000226 	beq	r3,zero,802250 <_wctomb_r+0x4c>
  802248:	84400005 	stb	r17,0(r16)
  80224c:	02000044 	movi	r8,1
  802250:	4005883a 	mov	r2,r8
  802254:	dfc00417 	ldw	ra,16(sp)
  802258:	dc000317 	ldw	r16,12(sp)
  80225c:	dc400217 	ldw	r17,8(sp)
  802260:	dc800117 	ldw	r18,4(sp)
  802264:	dcc00017 	ldw	r19,0(sp)
  802268:	dec00504 	addi	sp,sp,20
  80226c:	f800283a 	ret
  802270:	01002074 	movhi	r4,129
  802274:	2132e304 	addi	r4,r4,-13428
  802278:	01402074 	movhi	r5,129
  80227c:	2970e704 	addi	r5,r5,-15460
  802280:	0806a300 	call	806a30 <strcmp>
  802284:	10003a1e 	bne	r2,zero,802370 <_wctomb_r+0x16c>
  802288:	0011883a 	mov	r8,zero
  80228c:	803ff026 	beq	r16,zero,802250 <_wctomb_r+0x4c>
  802290:	00801fc4 	movi	r2,127
  802294:	9011883a 	mov	r8,r18
  802298:	1440630e 	bge	r2,r17,802428 <_wctomb_r+0x224>
  80229c:	88ffe004 	addi	r3,r17,-128
  8022a0:	0081dfc4 	movi	r2,1919
  8022a4:	027fe004 	movi	r9,-128
  8022a8:	10c0b42e 	bgeu	r2,r3,80257c <_wctomb_r+0x378>
  8022ac:	88fe0004 	addi	r3,r17,-2048
  8022b0:	00bdffd4 	movui	r2,63487
  8022b4:	10c05e2e 	bgeu	r2,r3,802430 <_wctomb_r+0x22c>
  8022b8:	00bffff4 	movhi	r2,65535
  8022bc:	10800004 	addi	r2,r2,0
  8022c0:	8885883a 	add	r2,r17,r2
  8022c4:	00c007f4 	movhi	r3,31
  8022c8:	18ffffc4 	addi	r3,r3,-1
  8022cc:	1880b52e 	bgeu	r3,r2,8025a4 <_wctomb_r+0x3a0>
  8022d0:	00bff834 	movhi	r2,65504
  8022d4:	10800004 	addi	r2,r2,0
  8022d8:	8885883a 	add	r2,r17,r2
  8022dc:	00c0f834 	movhi	r3,992
  8022e0:	18ffffc4 	addi	r3,r3,-1
  8022e4:	1880c32e 	bgeu	r3,r2,8025f4 <_wctomb_r+0x3f0>
  8022e8:	00810034 	movhi	r2,1024
  8022ec:	10bfffc4 	addi	r2,r2,-1
  8022f0:	023fffc4 	movi	r8,-1
  8022f4:	147fd60e 	bge	r2,r17,802250 <_wctomb_r+0x4c>
  8022f8:	88d0002c 	andhi	r3,r17,16384
  8022fc:	1807d7ba 	srai	r3,r3,30
  802300:	890fc02c 	andhi	r4,r17,16128
  802304:	2009d63a 	srai	r4,r4,24
  802308:	89403f2c 	andhi	r5,r17,252
  80230c:	00bfff04 	movi	r2,-4
  802310:	280bd4ba 	srai	r5,r5,18
  802314:	880cd33a 	srli	r6,r17,12
  802318:	1886b03a 	or	r3,r3,r2
  80231c:	89c3f00c 	andi	r7,r17,4032
  802320:	80c00005 	stb	r3,0(r16)
  802324:	2248b03a 	or	r4,r4,r9
  802328:	84000044 	addi	r16,r16,1
  80232c:	380fd1ba 	srai	r7,r7,6
  802330:	81000005 	stb	r4,0(r16)
  802334:	2a4ab03a 	or	r5,r5,r9
  802338:	84000044 	addi	r16,r16,1
  80233c:	31800fcc 	andi	r6,r6,63
  802340:	81400005 	stb	r5,0(r16)
  802344:	324cb03a 	or	r6,r6,r9
  802348:	84000044 	addi	r16,r16,1
  80234c:	88800fcc 	andi	r2,r17,63
  802350:	81800005 	stb	r6,0(r16)
  802354:	1244b03a 	or	r2,r2,r9
  802358:	84000044 	addi	r16,r16,1
  80235c:	3a4eb03a 	or	r7,r7,r9
  802360:	02000184 	movi	r8,6
  802364:	80800045 	stb	r2,1(r16)
  802368:	81c00005 	stb	r7,0(r16)
  80236c:	003fb806 	br	802250 <_wctomb_r+0x4c>
  802370:	01002074 	movhi	r4,129
  802374:	2132e304 	addi	r4,r4,-13428
  802378:	01402074 	movhi	r5,129
  80237c:	2970e904 	addi	r5,r5,-15452
  802380:	0806a300 	call	806a30 <strcmp>
  802384:	10003f1e 	bne	r2,zero,802484 <_wctomb_r+0x280>
  802388:	8006c03a 	cmpne	r3,r16,zero
  80238c:	8809d23a 	srai	r4,r17,8
  802390:	0011883a 	mov	r8,zero
  802394:	183fae26 	beq	r3,zero,802250 <_wctomb_r+0x4c>
  802398:	20803fcc 	andi	r2,r4,255
  80239c:	103fa826 	beq	r2,zero,802240 <_wctomb_r+0x3c>
  8023a0:	20801fc4 	addi	r2,r4,127
  8023a4:	10803fcc 	andi	r2,r2,255
  8023a8:	00c00784 	movi	r3,30
  8023ac:	1880042e 	bgeu	r3,r2,8023c0 <_wctomb_r+0x1bc>
  8023b0:	20800804 	addi	r2,r4,32
  8023b4:	10803fcc 	andi	r2,r2,255
  8023b8:	00c003c4 	movi	r3,15
  8023bc:	18804436 	bltu	r3,r2,8024d0 <_wctomb_r+0x2cc>
  8023c0:	88bff004 	addi	r2,r17,-64
  8023c4:	10803fcc 	andi	r2,r2,255
  8023c8:	00c00f84 	movi	r3,62
  8023cc:	1880042e 	bgeu	r3,r2,8023e0 <_wctomb_r+0x1dc>
  8023d0:	88bfe004 	addi	r2,r17,-128
  8023d4:	10803fcc 	andi	r2,r2,255
  8023d8:	00c01f04 	movi	r3,124
  8023dc:	18803c36 	bltu	r3,r2,8024d0 <_wctomb_r+0x2cc>
  8023e0:	02000084 	movi	r8,2
  8023e4:	84400045 	stb	r17,1(r16)
  8023e8:	81000005 	stb	r4,0(r16)
  8023ec:	003f9806 	br	802250 <_wctomb_r+0x4c>
  8023f0:	98800017 	ldw	r2,0(r19)
  8023f4:	10000b26 	beq	r2,zero,802424 <_wctomb_r+0x220>
  8023f8:	98000015 	stw	zero,0(r19)
  8023fc:	008006c4 	movi	r2,27
  802400:	80800005 	stb	r2,0(r16)
  802404:	84000044 	addi	r16,r16,1
  802408:	00800a04 	movi	r2,40
  80240c:	80800005 	stb	r2,0(r16)
  802410:	84000044 	addi	r16,r16,1
  802414:	00801084 	movi	r2,66
  802418:	80800005 	stb	r2,0(r16)
  80241c:	010000c4 	movi	r4,3
  802420:	84000044 	addi	r16,r16,1
  802424:	22000044 	addi	r8,r4,1
  802428:	84400005 	stb	r17,0(r16)
  80242c:	003f8806 	br	802250 <_wctomb_r+0x4c>
  802430:	00bffff4 	movhi	r2,65535
  802434:	108a0004 	addi	r2,r2,10240
  802438:	8885883a 	add	r2,r17,r2
  80243c:	00c1ffc4 	movi	r3,2047
  802440:	023fffc4 	movi	r8,-1
  802444:	18bf822e 	bgeu	r3,r2,802250 <_wctomb_r+0x4c>
  802448:	88fc000c 	andi	r3,r17,61440
  80244c:	1807d33a 	srai	r3,r3,12
  802450:	8943f00c 	andi	r5,r17,4032
  802454:	280bd1ba 	srai	r5,r5,6
  802458:	00bff804 	movi	r2,-32
  80245c:	1886b03a 	or	r3,r3,r2
  802460:	89000fcc 	andi	r4,r17,63
  802464:	80c00005 	stb	r3,0(r16)
  802468:	2248b03a 	or	r4,r4,r9
  80246c:	84000044 	addi	r16,r16,1
  802470:	2a4ab03a 	or	r5,r5,r9
  802474:	020000c4 	movi	r8,3
  802478:	81000045 	stb	r4,1(r16)
  80247c:	81400005 	stb	r5,0(r16)
  802480:	003f7306 	br	802250 <_wctomb_r+0x4c>
  802484:	01002074 	movhi	r4,129
  802488:	2132e304 	addi	r4,r4,-13428
  80248c:	01402074 	movhi	r5,129
  802490:	2970eb04 	addi	r5,r5,-15444
  802494:	0806a300 	call	806a30 <strcmp>
  802498:	1000131e 	bne	r2,zero,8024e8 <_wctomb_r+0x2e4>
  80249c:	8006c03a 	cmpne	r3,r16,zero
  8024a0:	880bd23a 	srai	r5,r17,8
  8024a4:	0011883a 	mov	r8,zero
  8024a8:	183f6926 	beq	r3,zero,802250 <_wctomb_r+0x4c>
  8024ac:	28803fcc 	andi	r2,r5,255
  8024b0:	103f6326 	beq	r2,zero,802240 <_wctomb_r+0x3c>
  8024b4:	01802804 	movi	r6,160
  8024b8:	3080052e 	bgeu	r6,r2,8024d0 <_wctomb_r+0x2cc>
  8024bc:	00c03fc4 	movi	r3,255
  8024c0:	10c00326 	beq	r2,r3,8024d0 <_wctomb_r+0x2cc>
  8024c4:	88803fcc 	andi	r2,r17,255
  8024c8:	3080012e 	bgeu	r6,r2,8024d0 <_wctomb_r+0x2cc>
  8024cc:	10c0021e 	bne	r2,r3,8024d8 <_wctomb_r+0x2d4>
  8024d0:	023fffc4 	movi	r8,-1
  8024d4:	003f5e06 	br	802250 <_wctomb_r+0x4c>
  8024d8:	02000084 	movi	r8,2
  8024dc:	84400045 	stb	r17,1(r16)
  8024e0:	81400005 	stb	r5,0(r16)
  8024e4:	003f5a06 	br	802250 <_wctomb_r+0x4c>
  8024e8:	01002074 	movhi	r4,129
  8024ec:	2132e304 	addi	r4,r4,-13428
  8024f0:	01402074 	movhi	r5,129
  8024f4:	2970ed04 	addi	r5,r5,-15436
  8024f8:	0806a300 	call	806a30 <strcmp>
  8024fc:	8006c03a 	cmpne	r3,r16,zero
  802500:	103f4f1e 	bne	r2,zero,802240 <_wctomb_r+0x3c>
  802504:	8807d23a 	srai	r3,r17,8
  802508:	0009883a 	mov	r4,zero
  80250c:	9011883a 	mov	r8,r18
  802510:	803f4f26 	beq	r16,zero,802250 <_wctomb_r+0x4c>
  802514:	18803fcc 	andi	r2,r3,255
  802518:	103fb526 	beq	r2,zero,8023f0 <_wctomb_r+0x1ec>
  80251c:	18bff7c4 	addi	r2,r3,-33
  802520:	10803fcc 	andi	r2,r2,255
  802524:	01401744 	movi	r5,93
  802528:	28bfe936 	bltu	r5,r2,8024d0 <_wctomb_r+0x2cc>
  80252c:	88bff7c4 	addi	r2,r17,-33
  802530:	10803fcc 	andi	r2,r2,255
  802534:	28bfe636 	bltu	r5,r2,8024d0 <_wctomb_r+0x2cc>
  802538:	98800017 	ldw	r2,0(r19)
  80253c:	10000b1e 	bne	r2,zero,80256c <_wctomb_r+0x368>
  802540:	9c800015 	stw	r18,0(r19)
  802544:	008006c4 	movi	r2,27
  802548:	80800005 	stb	r2,0(r16)
  80254c:	84000044 	addi	r16,r16,1
  802550:	00800904 	movi	r2,36
  802554:	80800005 	stb	r2,0(r16)
  802558:	84000044 	addi	r16,r16,1
  80255c:	00801084 	movi	r2,66
  802560:	80800005 	stb	r2,0(r16)
  802564:	010000c4 	movi	r4,3
  802568:	84000044 	addi	r16,r16,1
  80256c:	22000084 	addi	r8,r4,2
  802570:	84400045 	stb	r17,1(r16)
  802574:	80c00005 	stb	r3,0(r16)
  802578:	003f3506 	br	802250 <_wctomb_r+0x4c>
  80257c:	8901f00c 	andi	r4,r17,1984
  802580:	2009d1ba 	srai	r4,r4,6
  802584:	88c00fcc 	andi	r3,r17,63
  802588:	00bff004 	movi	r2,-64
  80258c:	2088b03a 	or	r4,r4,r2
  802590:	1a46b03a 	or	r3,r3,r9
  802594:	02000084 	movi	r8,2
  802598:	80c00045 	stb	r3,1(r16)
  80259c:	81000005 	stb	r4,0(r16)
  8025a0:	003f2b06 	br	802250 <_wctomb_r+0x4c>
  8025a4:	88c0072c 	andhi	r3,r17,28
  8025a8:	1807d4ba 	srai	r3,r3,18
  8025ac:	8808d33a 	srli	r4,r17,12
  8025b0:	8943f00c 	andi	r5,r17,4032
  8025b4:	00bffc04 	movi	r2,-16
  8025b8:	280bd1ba 	srai	r5,r5,6
  8025bc:	1886b03a 	or	r3,r3,r2
  8025c0:	21000fcc 	andi	r4,r4,63
  8025c4:	80c00005 	stb	r3,0(r16)
  8025c8:	2248b03a 	or	r4,r4,r9
  8025cc:	84000044 	addi	r16,r16,1
  8025d0:	88800fcc 	andi	r2,r17,63
  8025d4:	81000005 	stb	r4,0(r16)
  8025d8:	1244b03a 	or	r2,r2,r9
  8025dc:	84000044 	addi	r16,r16,1
  8025e0:	2a4ab03a 	or	r5,r5,r9
  8025e4:	02000104 	movi	r8,4
  8025e8:	80800045 	stb	r2,1(r16)
  8025ec:	81400005 	stb	r5,0(r16)
  8025f0:	003f1706 	br	802250 <_wctomb_r+0x4c>
  8025f4:	88c0c02c 	andhi	r3,r17,768
  8025f8:	1807d63a 	srai	r3,r3,24
  8025fc:	89003f2c 	andhi	r4,r17,252
  802600:	2009d4ba 	srai	r4,r4,18
  802604:	880ad33a 	srli	r5,r17,12
  802608:	00bffe04 	movi	r2,-8
  80260c:	8983f00c 	andi	r6,r17,4032
  802610:	1886b03a 	or	r3,r3,r2
  802614:	300dd1ba 	srai	r6,r6,6
  802618:	80c00005 	stb	r3,0(r16)
  80261c:	2248b03a 	or	r4,r4,r9
  802620:	84000044 	addi	r16,r16,1
  802624:	29400fcc 	andi	r5,r5,63
  802628:	81000005 	stb	r4,0(r16)
  80262c:	2a4ab03a 	or	r5,r5,r9
  802630:	84000044 	addi	r16,r16,1
  802634:	88800fcc 	andi	r2,r17,63
  802638:	81400005 	stb	r5,0(r16)
  80263c:	1244b03a 	or	r2,r2,r9
  802640:	84000044 	addi	r16,r16,1
  802644:	324cb03a 	or	r6,r6,r9
  802648:	02000144 	movi	r8,5
  80264c:	80800045 	stb	r2,1(r16)
  802650:	81800005 	stb	r6,0(r16)
  802654:	003efe06 	br	802250 <_wctomb_r+0x4c>

00802658 <__swsetup>:
  802658:	d0e00017 	ldw	r3,-32768(gp)
  80265c:	defffe04 	addi	sp,sp,-8
  802660:	dc000015 	stw	r16,0(sp)
  802664:	dfc00115 	stw	ra,4(sp)
  802668:	18800e17 	ldw	r2,56(r3)
  80266c:	2021883a 	mov	r16,r4
  802670:	10003926 	beq	r2,zero,802758 <__swsetup+0x100>
  802674:	8180030b 	ldhu	r6,12(r16)
  802678:	30ffffcc 	andi	r3,r6,65535
  80267c:	1804d0fa 	srli	r2,r3,3
  802680:	1080004c 	andi	r2,r2,1
  802684:	1000281e 	bne	r2,zero,802728 <__swsetup+0xd0>
  802688:	1804d13a 	srli	r2,r3,4
  80268c:	013fffc4 	movi	r4,-1
  802690:	1080004c 	andi	r2,r2,1
  802694:	10001f26 	beq	r2,zero,802714 <__swsetup+0xbc>
  802698:	1804d0ba 	srli	r2,r3,2
  80269c:	1080004c 	andi	r2,r2,1
  8026a0:	10003026 	beq	r2,zero,802764 <__swsetup+0x10c>
  8026a4:	81400c17 	ldw	r5,48(r16)
  8026a8:	28000626 	beq	r5,zero,8026c4 <__swsetup+0x6c>
  8026ac:	80801004 	addi	r2,r16,64
  8026b0:	28800326 	beq	r5,r2,8026c0 <__swsetup+0x68>
  8026b4:	d1200017 	ldw	r4,-32768(gp)
  8026b8:	080408c0 	call	80408c <_free_r>
  8026bc:	8180030b 	ldhu	r6,12(r16)
  8026c0:	80000c15 	stw	zero,48(r16)
  8026c4:	00bff6c4 	movi	r2,-37
  8026c8:	3084703a 	and	r2,r6,r2
  8026cc:	80c00417 	ldw	r3,16(r16)
  8026d0:	100d883a 	mov	r6,r2
  8026d4:	8080030d 	sth	r2,12(r16)
  8026d8:	30800214 	ori	r2,r6,8
  8026dc:	80000115 	stw	zero,4(r16)
  8026e0:	80c00015 	stw	r3,0(r16)
  8026e4:	8080030d 	sth	r2,12(r16)
  8026e8:	18001126 	beq	r3,zero,802730 <__swsetup+0xd8>
  8026ec:	80c0030b 	ldhu	r3,12(r16)
  8026f0:	1880004c 	andi	r2,r3,1
  8026f4:	1000131e 	bne	r2,zero,802744 <__swsetup+0xec>
  8026f8:	1804d07a 	srli	r2,r3,1
  8026fc:	0007883a 	mov	r3,zero
  802700:	1080004c 	andi	r2,r2,1
  802704:	1000011e 	bne	r2,zero,80270c <__swsetup+0xb4>
  802708:	80c00517 	ldw	r3,20(r16)
  80270c:	80c00215 	stw	r3,8(r16)
  802710:	0009883a 	mov	r4,zero
  802714:	2005883a 	mov	r2,r4
  802718:	dfc00117 	ldw	ra,4(sp)
  80271c:	dc000017 	ldw	r16,0(sp)
  802720:	dec00204 	addi	sp,sp,8
  802724:	f800283a 	ret
  802728:	80c00417 	ldw	r3,16(r16)
  80272c:	183fef1e 	bne	r3,zero,8026ec <__swsetup+0x94>
  802730:	8009883a 	mov	r4,r16
  802734:	080487c0 	call	80487c <__smakebuf>
  802738:	80c0030b 	ldhu	r3,12(r16)
  80273c:	1880004c 	andi	r2,r3,1
  802740:	103fed26 	beq	r2,zero,8026f8 <__swsetup+0xa0>
  802744:	80800517 	ldw	r2,20(r16)
  802748:	80000215 	stw	zero,8(r16)
  80274c:	0085c83a 	sub	r2,zero,r2
  802750:	80800615 	stw	r2,24(r16)
  802754:	003fee06 	br	802710 <__swsetup+0xb8>
  802758:	1809883a 	mov	r4,r3
  80275c:	0803ecc0 	call	803ecc <__sinit>
  802760:	003fc406 	br	802674 <__swsetup+0x1c>
  802764:	80c00417 	ldw	r3,16(r16)
  802768:	30800214 	ori	r2,r6,8
  80276c:	8080030d 	sth	r2,12(r16)
  802770:	003fdd06 	br	8026e8 <__swsetup+0x90>

00802774 <quorem>:
  802774:	defff504 	addi	sp,sp,-44
  802778:	dd800215 	stw	r22,8(sp)
  80277c:	ddc00115 	stw	r23,4(sp)
  802780:	dfc00a15 	stw	ra,40(sp)
  802784:	df000915 	stw	fp,36(sp)
  802788:	dc000815 	stw	r16,32(sp)
  80278c:	dc400715 	stw	r17,28(sp)
  802790:	dc800615 	stw	r18,24(sp)
  802794:	dcc00515 	stw	r19,20(sp)
  802798:	dd000415 	stw	r20,16(sp)
  80279c:	dd400315 	stw	r21,12(sp)
  8027a0:	2cc00417 	ldw	r19,16(r5)
  8027a4:	20800417 	ldw	r2,16(r4)
  8027a8:	202f883a 	mov	r23,r4
  8027ac:	282d883a 	mov	r22,r5
  8027b0:	0007883a 	mov	r3,zero
  8027b4:	14c03c16 	blt	r2,r19,8028a8 <quorem+0x134>
  8027b8:	9cffffc4 	addi	r19,r19,-1
  8027bc:	980490ba 	slli	r2,r19,2
  8027c0:	2c000504 	addi	r16,r5,20
  8027c4:	25400504 	addi	r21,r4,20
  8027c8:	1563883a 	add	r17,r2,r21
  8027cc:	1425883a 	add	r18,r2,r16
  8027d0:	91400017 	ldw	r5,0(r18)
  8027d4:	8f000017 	ldw	fp,0(r17)
  8027d8:	dc000015 	stw	r16,0(sp)
  8027dc:	29400044 	addi	r5,r5,1
  8027e0:	e009883a 	mov	r4,fp
  8027e4:	08088140 	call	808814 <__udivsi3>
  8027e8:	1029883a 	mov	r20,r2
  8027ec:	a811883a 	mov	r8,r21
  8027f0:	10003a1e 	bne	r2,zero,8028dc <quorem+0x168>
  8027f4:	b00b883a 	mov	r5,r22
  8027f8:	b809883a 	mov	r4,r23
  8027fc:	0805c300 	call	805c30 <__mcmp>
  802800:	10002816 	blt	r2,zero,8028a4 <quorem+0x130>
  802804:	dc000017 	ldw	r16,0(sp)
  802808:	a5000044 	addi	r20,r20,1
  80280c:	0013883a 	mov	r9,zero
  802810:	000d883a 	mov	r6,zero
  802814:	a811883a 	mov	r8,r21
  802818:	81000017 	ldw	r4,0(r16)
  80281c:	40c00017 	ldw	r3,0(r8)
  802820:	84000104 	addi	r16,r16,4
  802824:	20bfffcc 	andi	r2,r4,65535
  802828:	118d883a 	add	r6,r2,r6
  80282c:	317fffcc 	andi	r5,r6,65535
  802830:	18bfffcc 	andi	r2,r3,65535
  802834:	300cd43a 	srli	r6,r6,16
  802838:	2008d43a 	srli	r4,r4,16
  80283c:	1145c83a 	sub	r2,r2,r5
  802840:	124f883a 	add	r7,r2,r9
  802844:	1806d43a 	srli	r3,r3,16
  802848:	2189883a 	add	r4,r4,r6
  80284c:	3813d43a 	srai	r9,r7,16
  802850:	20bfffcc 	andi	r2,r4,65535
  802854:	1887c83a 	sub	r3,r3,r2
  802858:	1a47883a 	add	r3,r3,r9
  80285c:	40c0008d 	sth	r3,2(r8)
  802860:	41c0000d 	sth	r7,0(r8)
  802864:	200cd43a 	srli	r6,r4,16
  802868:	42000104 	addi	r8,r8,4
  80286c:	1813d43a 	srai	r9,r3,16
  802870:	943fe92e 	bgeu	r18,r16,802818 <quorem+0xa4>
  802874:	980490ba 	slli	r2,r19,2
  802878:	1563883a 	add	r17,r2,r21
  80287c:	88c00017 	ldw	r3,0(r17)
  802880:	8c7fff04 	addi	r17,r17,-4
  802884:	1800071e 	bne	r3,zero,8028a4 <quorem+0x130>
  802888:	ac40052e 	bgeu	r21,r17,8028a0 <quorem+0x12c>
  80288c:	88800017 	ldw	r2,0(r17)
  802890:	1000031e 	bne	r2,zero,8028a0 <quorem+0x12c>
  802894:	8c7fff04 	addi	r17,r17,-4
  802898:	9cffffc4 	addi	r19,r19,-1
  80289c:	003ffa06 	br	802888 <quorem+0x114>
  8028a0:	bcc00415 	stw	r19,16(r23)
  8028a4:	a007883a 	mov	r3,r20
  8028a8:	1805883a 	mov	r2,r3
  8028ac:	dfc00a17 	ldw	ra,40(sp)
  8028b0:	df000917 	ldw	fp,36(sp)
  8028b4:	dc000817 	ldw	r16,32(sp)
  8028b8:	dc400717 	ldw	r17,28(sp)
  8028bc:	dc800617 	ldw	r18,24(sp)
  8028c0:	dcc00517 	ldw	r19,20(sp)
  8028c4:	dd000417 	ldw	r20,16(sp)
  8028c8:	dd400317 	ldw	r21,12(sp)
  8028cc:	dd800217 	ldw	r22,8(sp)
  8028d0:	ddc00117 	ldw	r23,4(sp)
  8028d4:	dec00b04 	addi	sp,sp,44
  8028d8:	f800283a 	ret
  8028dc:	0013883a 	mov	r9,zero
  8028e0:	000d883a 	mov	r6,zero
  8028e4:	81000017 	ldw	r4,0(r16)
  8028e8:	41400017 	ldw	r5,0(r8)
  8028ec:	84000104 	addi	r16,r16,4
  8028f0:	20bfffcc 	andi	r2,r4,65535
  8028f4:	1505383a 	mul	r2,r2,r20
  8028f8:	2008d43a 	srli	r4,r4,16
  8028fc:	28ffffcc 	andi	r3,r5,65535
  802900:	118d883a 	add	r6,r2,r6
  802904:	30bfffcc 	andi	r2,r6,65535
  802908:	2509383a 	mul	r4,r4,r20
  80290c:	300cd43a 	srli	r6,r6,16
  802910:	1887c83a 	sub	r3,r3,r2
  802914:	1a4f883a 	add	r7,r3,r9
  802918:	280ad43a 	srli	r5,r5,16
  80291c:	2189883a 	add	r4,r4,r6
  802920:	3813d43a 	srai	r9,r7,16
  802924:	20bfffcc 	andi	r2,r4,65535
  802928:	288bc83a 	sub	r5,r5,r2
  80292c:	2a47883a 	add	r3,r5,r9
  802930:	40c0008d 	sth	r3,2(r8)
  802934:	41c0000d 	sth	r7,0(r8)
  802938:	200cd43a 	srli	r6,r4,16
  80293c:	42000104 	addi	r8,r8,4
  802940:	1813d43a 	srai	r9,r3,16
  802944:	943fe72e 	bgeu	r18,r16,8028e4 <quorem+0x170>
  802948:	8c7fff04 	addi	r17,r17,-4
  80294c:	e03fa91e 	bne	fp,zero,8027f4 <quorem+0x80>
  802950:	ac40052e 	bgeu	r21,r17,802968 <quorem+0x1f4>
  802954:	88800017 	ldw	r2,0(r17)
  802958:	1000031e 	bne	r2,zero,802968 <quorem+0x1f4>
  80295c:	8c7fff04 	addi	r17,r17,-4
  802960:	9cffffc4 	addi	r19,r19,-1
  802964:	003ffa06 	br	802950 <quorem+0x1dc>
  802968:	bcc00415 	stw	r19,16(r23)
  80296c:	003fa106 	br	8027f4 <quorem+0x80>

00802970 <_dtoa_r>:
  802970:	deffdd04 	addi	sp,sp,-140
  802974:	df002115 	stw	fp,132(sp)
  802978:	dc002015 	stw	r16,128(sp)
  80297c:	dc801e15 	stw	r18,120(sp)
  802980:	dcc01d15 	stw	r19,116(sp)
  802984:	dfc02215 	stw	ra,136(sp)
  802988:	dc401f15 	stw	r17,124(sp)
  80298c:	dd001c15 	stw	r20,112(sp)
  802990:	dd401b15 	stw	r21,108(sp)
  802994:	dd801a15 	stw	r22,104(sp)
  802998:	ddc01915 	stw	r23,100(sp)
  80299c:	22001017 	ldw	r8,64(r4)
  8029a0:	2039883a 	mov	fp,r4
  8029a4:	2825883a 	mov	r18,r5
  8029a8:	d9c00315 	stw	r7,12(sp)
  8029ac:	3027883a 	mov	r19,r6
  8029b0:	dc002517 	ldw	r16,148(sp)
  8029b4:	d8001515 	stw	zero,84(sp)
  8029b8:	4000241e 	bne	r8,zero,802a4c <_dtoa_r+0xdc>
  8029bc:	98002d16 	blt	r19,zero,802a74 <_dtoa_r+0x104>
  8029c0:	98dffc2c 	andhi	r3,r19,32752
  8029c4:	009ffc34 	movhi	r2,32752
  8029c8:	10800004 	addi	r2,r2,0
  8029cc:	80000015 	stw	zero,0(r16)
  8029d0:	18803126 	beq	r3,r2,802a98 <_dtoa_r+0x128>
  8029d4:	000d883a 	mov	r6,zero
  8029d8:	000f883a 	mov	r7,zero
  8029dc:	9009883a 	mov	r4,r18
  8029e0:	980b883a 	mov	r5,r19
  8029e4:	08082dc0 	call	8082dc <__eqdf2>
  8029e8:	10003c1e 	bne	r2,zero,802adc <_dtoa_r+0x16c>
  8029ec:	d8c02417 	ldw	r3,144(sp)
  8029f0:	00800044 	movi	r2,1
  8029f4:	01002074 	movhi	r4,129
  8029f8:	2130e204 	addi	r4,r4,-15480
  8029fc:	18800015 	stw	r2,0(r3)
  802a00:	d8802617 	ldw	r2,152(sp)
  802a04:	d9001715 	stw	r4,92(sp)
  802a08:	10000326 	beq	r2,zero,802a18 <_dtoa_r+0xa8>
  802a0c:	d8c02617 	ldw	r3,152(sp)
  802a10:	20800044 	addi	r2,r4,1
  802a14:	18800015 	stw	r2,0(r3)
  802a18:	d8801717 	ldw	r2,92(sp)
  802a1c:	dfc02217 	ldw	ra,136(sp)
  802a20:	df002117 	ldw	fp,132(sp)
  802a24:	dc002017 	ldw	r16,128(sp)
  802a28:	dc401f17 	ldw	r17,124(sp)
  802a2c:	dc801e17 	ldw	r18,120(sp)
  802a30:	dcc01d17 	ldw	r19,116(sp)
  802a34:	dd001c17 	ldw	r20,112(sp)
  802a38:	dd401b17 	ldw	r21,108(sp)
  802a3c:	dd801a17 	ldw	r22,104(sp)
  802a40:	ddc01917 	ldw	r23,100(sp)
  802a44:	dec02304 	addi	sp,sp,140
  802a48:	f800283a 	ret
  802a4c:	20801117 	ldw	r2,68(r4)
  802a50:	400b883a 	mov	r5,r8
  802a54:	40800115 	stw	r2,4(r8)
  802a58:	20c01117 	ldw	r3,68(r4)
  802a5c:	00800044 	movi	r2,1
  802a60:	10c4983a 	sll	r2,r2,r3
  802a64:	40800215 	stw	r2,8(r8)
  802a68:	08054840 	call	805484 <_Bfree>
  802a6c:	e0001015 	stw	zero,64(fp)
  802a70:	983fd30e 	bge	r19,zero,8029c0 <_dtoa_r+0x50>
  802a74:	00a00034 	movhi	r2,32768
  802a78:	10bfffc4 	addi	r2,r2,-1
  802a7c:	14e6703a 	and	r19,r2,r19
  802a80:	00c00044 	movi	r3,1
  802a84:	80c00015 	stw	r3,0(r16)
  802a88:	009ffc34 	movhi	r2,32752
  802a8c:	10800004 	addi	r2,r2,0
  802a90:	98dffc2c 	andhi	r3,r19,32752
  802a94:	18bfcf1e 	bne	r3,r2,8029d4 <_dtoa_r+0x64>
  802a98:	d8c02417 	ldw	r3,144(sp)
  802a9c:	0089c3c4 	movi	r2,9999
  802aa0:	18800015 	stw	r2,0(r3)
  802aa4:	9000a226 	beq	r18,zero,802d30 <_dtoa_r+0x3c0>
  802aa8:	00802074 	movhi	r2,129
  802aac:	10b0e404 	addi	r2,r2,-15472
  802ab0:	d8801715 	stw	r2,92(sp)
  802ab4:	d8c02617 	ldw	r3,152(sp)
  802ab8:	183fd726 	beq	r3,zero,802a18 <_dtoa_r+0xa8>
  802abc:	d9001717 	ldw	r4,92(sp)
  802ac0:	208000c7 	ldb	r2,3(r4)
  802ac4:	20c00204 	addi	r3,r4,8
  802ac8:	1000011e 	bne	r2,zero,802ad0 <_dtoa_r+0x160>
  802acc:	20c000c4 	addi	r3,r4,3
  802ad0:	d8802617 	ldw	r2,152(sp)
  802ad4:	10c00015 	stw	r3,0(r2)
  802ad8:	003fcf06 	br	802a18 <_dtoa_r+0xa8>
  802adc:	d8800104 	addi	r2,sp,4
  802ae0:	e009883a 	mov	r4,fp
  802ae4:	900b883a 	mov	r5,r18
  802ae8:	980d883a 	mov	r6,r19
  802aec:	d9c00204 	addi	r7,sp,8
  802af0:	d8800015 	stw	r2,0(sp)
  802af4:	0805fc40 	call	805fc4 <_d2b>
  802af8:	d8801415 	stw	r2,80(sp)
  802afc:	9804d53a 	srli	r2,r19,20
  802b00:	1581ffcc 	andi	r22,r2,2047
  802b04:	b000921e 	bne	r22,zero,802d50 <_dtoa_r+0x3e0>
  802b08:	ddc00117 	ldw	r23,4(sp)
  802b0c:	d8800217 	ldw	r2,8(sp)
  802b10:	00c00804 	movi	r3,32
  802b14:	b885883a 	add	r2,r23,r2
  802b18:	15810c84 	addi	r22,r2,1074
  802b1c:	1d81bb0e 	bge	r3,r22,80320c <_dtoa_r+0x89c>
  802b20:	00c01004 	movi	r3,64
  802b24:	1d87c83a 	sub	r3,r3,r22
  802b28:	10810484 	addi	r2,r2,1042
  802b2c:	98c6983a 	sll	r3,r19,r3
  802b30:	9084d83a 	srl	r2,r18,r2
  802b34:	18a0b03a 	or	r16,r3,r2
  802b38:	8009883a 	mov	r4,r16
  802b3c:	08085980 	call	808598 <__floatsidf>
  802b40:	1011883a 	mov	r8,r2
  802b44:	1813883a 	mov	r9,r3
  802b48:	8003bd16 	blt	r16,zero,803a40 <_dtoa_r+0x10d0>
  802b4c:	00bf8434 	movhi	r2,65040
  802b50:	10800004 	addi	r2,r2,0
  802b54:	1247883a 	add	r3,r2,r9
  802b58:	01000044 	movi	r4,1
  802b5c:	da000f15 	stw	r8,60(sp)
  802b60:	d8c01015 	stw	r3,64(sp)
  802b64:	b5bef344 	addi	r22,r22,-1075
  802b68:	d9001315 	stw	r4,76(sp)
  802b6c:	d9401017 	ldw	r5,64(sp)
  802b70:	d9000f17 	ldw	r4,60(sp)
  802b74:	0005883a 	mov	r2,zero
  802b78:	00cffe34 	movhi	r3,16376
  802b7c:	18c00004 	addi	r3,r3,0
  802b80:	180f883a 	mov	r7,r3
  802b84:	100d883a 	mov	r6,r2
  802b88:	0807c140 	call	807c14 <__subdf3>
  802b8c:	0218dbf4 	movhi	r8,25455
  802b90:	4210d844 	addi	r8,r8,17249
  802b94:	024ff4f4 	movhi	r9,16339
  802b98:	4a61e9c4 	addi	r9,r9,-30809
  802b9c:	480f883a 	mov	r7,r9
  802ba0:	400d883a 	mov	r6,r8
  802ba4:	180b883a 	mov	r5,r3
  802ba8:	1009883a 	mov	r4,r2
  802bac:	0807c8c0 	call	807c8c <__muldf3>
  802bb0:	0222d874 	movhi	r8,35681
  802bb4:	42322cc4 	addi	r8,r8,-14157
  802bb8:	024ff1f4 	movhi	r9,16327
  802bbc:	4a628a04 	addi	r9,r9,-30168
  802bc0:	480f883a 	mov	r7,r9
  802bc4:	400d883a 	mov	r6,r8
  802bc8:	180b883a 	mov	r5,r3
  802bcc:	1009883a 	mov	r4,r2
  802bd0:	0807ba80 	call	807ba8 <__adddf3>
  802bd4:	b009883a 	mov	r4,r22
  802bd8:	1021883a 	mov	r16,r2
  802bdc:	1823883a 	mov	r17,r3
  802be0:	08085980 	call	808598 <__floatsidf>
  802be4:	021427f4 	movhi	r8,20639
  802be8:	421e7ec4 	addi	r8,r8,31227
  802bec:	024ff4f4 	movhi	r9,16339
  802bf0:	4a5104c4 	addi	r9,r9,17427
  802bf4:	480f883a 	mov	r7,r9
  802bf8:	400d883a 	mov	r6,r8
  802bfc:	180b883a 	mov	r5,r3
  802c00:	1009883a 	mov	r4,r2
  802c04:	0807c8c0 	call	807c8c <__muldf3>
  802c08:	180f883a 	mov	r7,r3
  802c0c:	880b883a 	mov	r5,r17
  802c10:	100d883a 	mov	r6,r2
  802c14:	8009883a 	mov	r4,r16
  802c18:	0807ba80 	call	807ba8 <__adddf3>
  802c1c:	1009883a 	mov	r4,r2
  802c20:	180b883a 	mov	r5,r3
  802c24:	1021883a 	mov	r16,r2
  802c28:	1823883a 	mov	r17,r3
  802c2c:	08086680 	call	808668 <__fixdfsi>
  802c30:	000d883a 	mov	r6,zero
  802c34:	000f883a 	mov	r7,zero
  802c38:	8009883a 	mov	r4,r16
  802c3c:	880b883a 	mov	r5,r17
  802c40:	d8800915 	stw	r2,36(sp)
  802c44:	080850c0 	call	80850c <__ltdf2>
  802c48:	1002eb16 	blt	r2,zero,8037f8 <_dtoa_r+0xe88>
  802c4c:	d9000917 	ldw	r4,36(sp)
  802c50:	00c00044 	movi	r3,1
  802c54:	00800584 	movi	r2,22
  802c58:	d8c00b15 	stw	r3,44(sp)
  802c5c:	11001036 	bltu	r2,r4,802ca0 <_dtoa_r+0x330>
  802c60:	200490fa 	slli	r2,r4,3
  802c64:	00c02074 	movhi	r3,129
  802c68:	18f11c04 	addi	r3,r3,-15248
  802c6c:	900d883a 	mov	r6,r18
  802c70:	10c5883a 	add	r2,r2,r3
  802c74:	12000017 	ldw	r8,0(r2)
  802c78:	12400117 	ldw	r9,4(r2)
  802c7c:	980f883a 	mov	r7,r19
  802c80:	4009883a 	mov	r4,r8
  802c84:	480b883a 	mov	r5,r9
  802c88:	08083f40 	call	8083f4 <__gtdf2>
  802c8c:	0080030e 	bge	zero,r2,802c9c <_dtoa_r+0x32c>
  802c90:	d8800917 	ldw	r2,36(sp)
  802c94:	10bfffc4 	addi	r2,r2,-1
  802c98:	d8800915 	stw	r2,36(sp)
  802c9c:	d8000b15 	stw	zero,44(sp)
  802ca0:	bd85c83a 	sub	r2,r23,r22
  802ca4:	147fffc4 	addi	r17,r2,-1
  802ca8:	8802cf16 	blt	r17,zero,8037e8 <_dtoa_r+0xe78>
  802cac:	dc400d15 	stw	r17,52(sp)
  802cb0:	d8000415 	stw	zero,16(sp)
  802cb4:	d8c00917 	ldw	r3,36(sp)
  802cb8:	1802c316 	blt	r3,zero,8037c8 <_dtoa_r+0xe58>
  802cbc:	d9000d17 	ldw	r4,52(sp)
  802cc0:	d8000515 	stw	zero,20(sp)
  802cc4:	d8c00e15 	stw	r3,56(sp)
  802cc8:	20c9883a 	add	r4,r4,r3
  802ccc:	d9000d15 	stw	r4,52(sp)
  802cd0:	d8c00317 	ldw	r3,12(sp)
  802cd4:	00800244 	movi	r2,9
  802cd8:	10c0012e 	bgeu	r2,r3,802ce0 <_dtoa_r+0x370>
  802cdc:	d8000315 	stw	zero,12(sp)
  802ce0:	d9000317 	ldw	r4,12(sp)
  802ce4:	00800144 	movi	r2,5
  802ce8:	04000044 	movi	r16,1
  802cec:	1100030e 	bge	r2,r4,802cfc <_dtoa_r+0x38c>
  802cf0:	213fff04 	addi	r4,r4,-4
  802cf4:	d9000315 	stw	r4,12(sp)
  802cf8:	0021883a 	mov	r16,zero
  802cfc:	00ffffc4 	movi	r3,-1
  802d00:	d8c00615 	stw	r3,24(sp)
  802d04:	d8c00815 	stw	r3,32(sp)
  802d08:	d8c00317 	ldw	r3,12(sp)
  802d0c:	01000044 	movi	r4,1
  802d10:	d9000c15 	stw	r4,48(sp)
  802d14:	10c02136 	bltu	r2,r3,802d9c <_dtoa_r+0x42c>
  802d18:	180490ba 	slli	r2,r3,2
  802d1c:	00c02074 	movhi	r3,129
  802d20:	18f0f204 	addi	r3,r3,-15416
  802d24:	10c5883a 	add	r2,r2,r3
  802d28:	11000017 	ldw	r4,0(r2)
  802d2c:	2000683a 	jmp	r4
  802d30:	00800434 	movhi	r2,16
  802d34:	10bfffc4 	addi	r2,r2,-1
  802d38:	01002074 	movhi	r4,129
  802d3c:	2130ef04 	addi	r4,r4,-15428
  802d40:	9884703a 	and	r2,r19,r2
  802d44:	d9001715 	stw	r4,92(sp)
  802d48:	103f5a26 	beq	r2,zero,802ab4 <_dtoa_r+0x144>
  802d4c:	003f5606 	br	802aa8 <_dtoa_r+0x138>
  802d50:	00800434 	movhi	r2,16
  802d54:	10bfffc4 	addi	r2,r2,-1
  802d58:	ddc00117 	ldw	r23,4(sp)
  802d5c:	14c6703a 	and	r3,r2,r19
  802d60:	190ffc34 	orhi	r4,r3,16368
  802d64:	b5bf0044 	addi	r22,r22,-1023
  802d68:	dc800f15 	stw	r18,60(sp)
  802d6c:	d9001015 	stw	r4,64(sp)
  802d70:	d8001315 	stw	zero,76(sp)
  802d74:	003f7d06 	br	802b6c <_dtoa_r+0x1fc>
  802d78:	d8000c15 	stw	zero,48(sp)
  802d7c:	d8c02317 	ldw	r3,140(sp)
  802d80:	d9000917 	ldw	r4,36(sp)
  802d84:	1905883a 	add	r2,r3,r4
  802d88:	15800044 	addi	r22,r2,1
  802d8c:	d8800815 	stw	r2,32(sp)
  802d90:	dd800615 	stw	r22,24(sp)
  802d94:	05800116 	blt	zero,r22,802d9c <_dtoa_r+0x42c>
  802d98:	05800044 	movi	r22,1
  802d9c:	00800604 	movi	r2,24
  802da0:	e0001115 	stw	zero,68(fp)
  802da4:	04400104 	movi	r17,4
  802da8:	b0800636 	bltu	r22,r2,802dc4 <_dtoa_r+0x454>
  802dac:	0007883a 	mov	r3,zero
  802db0:	8c63883a 	add	r17,r17,r17
  802db4:	18c00044 	addi	r3,r3,1
  802db8:	88800504 	addi	r2,r17,20
  802dbc:	b0bffc2e 	bgeu	r22,r2,802db0 <_dtoa_r+0x440>
  802dc0:	e0c01115 	stw	r3,68(fp)
  802dc4:	e1401117 	ldw	r5,68(fp)
  802dc8:	e009883a 	mov	r4,fp
  802dcc:	08053d40 	call	8053d4 <_Balloc>
  802dd0:	d8c00617 	ldw	r3,24(sp)
  802dd4:	d8801815 	stw	r2,96(sp)
  802dd8:	e0801015 	stw	r2,64(fp)
  802ddc:	d8801715 	stw	r2,92(sp)
  802de0:	00800384 	movi	r2,14
  802de4:	10c0a936 	bltu	r2,r3,80308c <_dtoa_r+0x71c>
  802de8:	8000a826 	beq	r16,zero,80308c <_dtoa_r+0x71c>
  802dec:	d8c00917 	ldw	r3,36(sp)
  802df0:	d9000617 	ldw	r4,24(sp)
  802df4:	dc800f15 	stw	r18,60(sp)
  802df8:	dcc01015 	stw	r19,64(sp)
  802dfc:	d8c00a15 	stw	r3,40(sp)
  802e00:	d9000715 	stw	r4,28(sp)
  802e04:	05800084 	movi	r22,2
  802e08:	00c1240e 	bge	zero,r3,80329c <_dtoa_r+0x92c>
  802e0c:	1823d13a 	srai	r17,r3,4
  802e10:	188003cc 	andi	r2,r3,15
  802e14:	100490fa 	slli	r2,r2,3
  802e18:	8808d13a 	srli	r4,r17,4
  802e1c:	00c02074 	movhi	r3,129
  802e20:	18f11c04 	addi	r3,r3,-15248
  802e24:	10c5883a 	add	r2,r2,r3
  802e28:	2100004c 	andi	r4,r4,1
  802e2c:	15000017 	ldw	r20,0(r2)
  802e30:	15400117 	ldw	r21,4(r2)
  802e34:	20000d26 	beq	r4,zero,802e6c <_dtoa_r+0x4fc>
  802e38:	01802074 	movhi	r6,129
  802e3c:	31b11204 	addi	r6,r6,-15288
  802e40:	30c00917 	ldw	r3,36(r6)
  802e44:	30800817 	ldw	r2,32(r6)
  802e48:	980b883a 	mov	r5,r19
  802e4c:	9009883a 	mov	r4,r18
  802e50:	180f883a 	mov	r7,r3
  802e54:	100d883a 	mov	r6,r2
  802e58:	080808c0 	call	80808c <__divdf3>
  802e5c:	8c4003cc 	andi	r17,r17,15
  802e60:	058000c4 	movi	r22,3
  802e64:	1025883a 	mov	r18,r2
  802e68:	1827883a 	mov	r19,r3
  802e6c:	88001126 	beq	r17,zero,802eb4 <_dtoa_r+0x544>
  802e70:	04002074 	movhi	r16,129
  802e74:	84311204 	addi	r16,r16,-15288
  802e78:	8880004c 	andi	r2,r17,1
  802e7c:	10000a26 	beq	r2,zero,802ea8 <_dtoa_r+0x538>
  802e80:	80800017 	ldw	r2,0(r16)
  802e84:	80c00117 	ldw	r3,4(r16)
  802e88:	a80b883a 	mov	r5,r21
  802e8c:	a009883a 	mov	r4,r20
  802e90:	180f883a 	mov	r7,r3
  802e94:	100d883a 	mov	r6,r2
  802e98:	0807c8c0 	call	807c8c <__muldf3>
  802e9c:	b5800044 	addi	r22,r22,1
  802ea0:	1029883a 	mov	r20,r2
  802ea4:	182b883a 	mov	r21,r3
  802ea8:	8823d07a 	srai	r17,r17,1
  802eac:	84000204 	addi	r16,r16,8
  802eb0:	883ff11e 	bne	r17,zero,802e78 <_dtoa_r+0x508>
  802eb4:	980b883a 	mov	r5,r19
  802eb8:	9009883a 	mov	r4,r18
  802ebc:	a80f883a 	mov	r7,r21
  802ec0:	a00d883a 	mov	r6,r20
  802ec4:	080808c0 	call	80808c <__divdf3>
  802ec8:	1025883a 	mov	r18,r2
  802ecc:	1827883a 	mov	r19,r3
  802ed0:	d8c00b17 	ldw	r3,44(sp)
  802ed4:	18000926 	beq	r3,zero,802efc <_dtoa_r+0x58c>
  802ed8:	0005883a 	mov	r2,zero
  802edc:	00cffc34 	movhi	r3,16368
  802ee0:	18c00004 	addi	r3,r3,0
  802ee4:	180f883a 	mov	r7,r3
  802ee8:	9009883a 	mov	r4,r18
  802eec:	980b883a 	mov	r5,r19
  802ef0:	100d883a 	mov	r6,r2
  802ef4:	080850c0 	call	80850c <__ltdf2>
  802ef8:	10037816 	blt	r2,zero,803cdc <_dtoa_r+0x136c>
  802efc:	b009883a 	mov	r4,r22
  802f00:	08085980 	call	808598 <__floatsidf>
  802f04:	180b883a 	mov	r5,r3
  802f08:	1009883a 	mov	r4,r2
  802f0c:	900d883a 	mov	r6,r18
  802f10:	980f883a 	mov	r7,r19
  802f14:	0807c8c0 	call	807c8c <__muldf3>
  802f18:	0011883a 	mov	r8,zero
  802f1c:	02500734 	movhi	r9,16412
  802f20:	4a400004 	addi	r9,r9,0
  802f24:	180b883a 	mov	r5,r3
  802f28:	480f883a 	mov	r7,r9
  802f2c:	1009883a 	mov	r4,r2
  802f30:	400d883a 	mov	r6,r8
  802f34:	0807ba80 	call	807ba8 <__adddf3>
  802f38:	d8801115 	stw	r2,68(sp)
  802f3c:	00bf3034 	movhi	r2,64704
  802f40:	10800004 	addi	r2,r2,0
  802f44:	18a9883a 	add	r20,r3,r2
  802f48:	d8800617 	ldw	r2,24(sp)
  802f4c:	dd001215 	stw	r20,72(sp)
  802f50:	10024e1e 	bne	r2,zero,80388c <_dtoa_r+0xf1c>
  802f54:	00d00534 	movhi	r3,16404
  802f58:	18c00004 	addi	r3,r3,0
  802f5c:	980b883a 	mov	r5,r19
  802f60:	180f883a 	mov	r7,r3
  802f64:	9009883a 	mov	r4,r18
  802f68:	100d883a 	mov	r6,r2
  802f6c:	0807c140 	call	807c14 <__subdf3>
  802f70:	d9801117 	ldw	r6,68(sp)
  802f74:	a00f883a 	mov	r7,r20
  802f78:	1009883a 	mov	r4,r2
  802f7c:	180b883a 	mov	r5,r3
  802f80:	1021883a 	mov	r16,r2
  802f84:	1823883a 	mov	r17,r3
  802f88:	d8001615 	stw	zero,88(sp)
  802f8c:	002f883a 	mov	r23,zero
  802f90:	08083f40 	call	8083f4 <__gtdf2>
  802f94:	0080260e 	bge	zero,r2,803030 <_dtoa_r+0x6c0>
  802f98:	d8800917 	ldw	r2,36(sp)
  802f9c:	d8c01817 	ldw	r3,96(sp)
  802fa0:	d9001817 	ldw	r4,96(sp)
  802fa4:	10800044 	addi	r2,r2,1
  802fa8:	18c00044 	addi	r3,r3,1
  802fac:	d8800915 	stw	r2,36(sp)
  802fb0:	d8c01715 	stw	r3,92(sp)
  802fb4:	00800c44 	movi	r2,49
  802fb8:	20800005 	stb	r2,0(r4)
  802fbc:	e009883a 	mov	r4,fp
  802fc0:	b80b883a 	mov	r5,r23
  802fc4:	08054840 	call	805484 <_Bfree>
  802fc8:	d9001617 	ldw	r4,88(sp)
  802fcc:	20000926 	beq	r4,zero,802ff4 <_dtoa_r+0x684>
  802fd0:	d8801517 	ldw	r2,84(sp)
  802fd4:	10000426 	beq	r2,zero,802fe8 <_dtoa_r+0x678>
  802fd8:	11000326 	beq	r2,r4,802fe8 <_dtoa_r+0x678>
  802fdc:	100b883a 	mov	r5,r2
  802fe0:	e009883a 	mov	r4,fp
  802fe4:	08054840 	call	805484 <_Bfree>
  802fe8:	d9401617 	ldw	r5,88(sp)
  802fec:	e009883a 	mov	r4,fp
  802ff0:	08054840 	call	805484 <_Bfree>
  802ff4:	d9401417 	ldw	r5,80(sp)
  802ff8:	e009883a 	mov	r4,fp
  802ffc:	08054840 	call	805484 <_Bfree>
  803000:	d8c01717 	ldw	r3,92(sp)
  803004:	18000005 	stb	zero,0(r3)
  803008:	d9000917 	ldw	r4,36(sp)
  80300c:	d8c02417 	ldw	r3,144(sp)
  803010:	20800044 	addi	r2,r4,1
  803014:	d9002617 	ldw	r4,152(sp)
  803018:	18800015 	stw	r2,0(r3)
  80301c:	20000226 	beq	r4,zero,803028 <_dtoa_r+0x6b8>
  803020:	d8801717 	ldw	r2,92(sp)
  803024:	20800015 	stw	r2,0(r4)
  803028:	d8801817 	ldw	r2,96(sp)
  80302c:	003e7b06 	br	802a1c <_dtoa_r+0xac>
  803030:	d9001117 	ldw	r4,68(sp)
  803034:	000d883a 	mov	r6,zero
  803038:	01e00034 	movhi	r7,32768
  80303c:	39c00004 	addi	r7,r7,0
  803040:	2184f03a 	xor	r2,r4,r6
  803044:	d9001217 	ldw	r4,72(sp)
  803048:	800d883a 	mov	r6,r16
  80304c:	21c6f03a 	xor	r3,r4,r7
  803050:	180b883a 	mov	r5,r3
  803054:	1009883a 	mov	r4,r2
  803058:	880f883a 	mov	r7,r17
  80305c:	08083f40 	call	8083f4 <__gtdf2>
  803060:	00808a16 	blt	zero,r2,80328c <_dtoa_r+0x91c>
  803064:	d9000f17 	ldw	r4,60(sp)
  803068:	d8801017 	ldw	r2,64(sp)
  80306c:	d8c00a17 	ldw	r3,40(sp)
  803070:	2025883a 	mov	r18,r4
  803074:	1027883a 	mov	r19,r2
  803078:	d9000717 	ldw	r4,28(sp)
  80307c:	d8801817 	ldw	r2,96(sp)
  803080:	d8c00915 	stw	r3,36(sp)
  803084:	d9000615 	stw	r4,24(sp)
  803088:	d8801715 	stw	r2,92(sp)
  80308c:	d8c00217 	ldw	r3,8(sp)
  803090:	1800a716 	blt	r3,zero,803330 <_dtoa_r+0x9c0>
  803094:	d9000917 	ldw	r4,36(sp)
  803098:	00800384 	movi	r2,14
  80309c:	1100a416 	blt	r2,r4,803330 <_dtoa_r+0x9c0>
  8030a0:	200490fa 	slli	r2,r4,3
  8030a4:	00c02074 	movhi	r3,129
  8030a8:	18f11c04 	addi	r3,r3,-15248
  8030ac:	10c5883a 	add	r2,r2,r3
  8030b0:	15000017 	ldw	r20,0(r2)
  8030b4:	15400117 	ldw	r21,4(r2)
  8030b8:	d8802317 	ldw	r2,140(sp)
  8030bc:	10006016 	blt	r2,zero,803240 <_dtoa_r+0x8d0>
  8030c0:	05800044 	movi	r22,1
  8030c4:	00001106 	br	80310c <_dtoa_r+0x79c>
  8030c8:	0005883a 	mov	r2,zero
  8030cc:	00d00934 	movhi	r3,16420
  8030d0:	18c00004 	addi	r3,r3,0
  8030d4:	400d883a 	mov	r6,r8
  8030d8:	180b883a 	mov	r5,r3
  8030dc:	480f883a 	mov	r7,r9
  8030e0:	1009883a 	mov	r4,r2
  8030e4:	0807c8c0 	call	807c8c <__muldf3>
  8030e8:	180b883a 	mov	r5,r3
  8030ec:	000d883a 	mov	r6,zero
  8030f0:	000f883a 	mov	r7,zero
  8030f4:	1009883a 	mov	r4,r2
  8030f8:	1025883a 	mov	r18,r2
  8030fc:	1827883a 	mov	r19,r3
  803100:	08082dc0 	call	8082dc <__eqdf2>
  803104:	103fbb26 	beq	r2,zero,802ff4 <_dtoa_r+0x684>
  803108:	b5800044 	addi	r22,r22,1
  80310c:	a00d883a 	mov	r6,r20
  803110:	a80f883a 	mov	r7,r21
  803114:	9009883a 	mov	r4,r18
  803118:	980b883a 	mov	r5,r19
  80311c:	080808c0 	call	80808c <__divdf3>
  803120:	180b883a 	mov	r5,r3
  803124:	1009883a 	mov	r4,r2
  803128:	08086680 	call	808668 <__fixdfsi>
  80312c:	1009883a 	mov	r4,r2
  803130:	102f883a 	mov	r23,r2
  803134:	08085980 	call	808598 <__floatsidf>
  803138:	180b883a 	mov	r5,r3
  80313c:	1009883a 	mov	r4,r2
  803140:	a00d883a 	mov	r6,r20
  803144:	a80f883a 	mov	r7,r21
  803148:	0807c8c0 	call	807c8c <__muldf3>
  80314c:	180f883a 	mov	r7,r3
  803150:	9009883a 	mov	r4,r18
  803154:	980b883a 	mov	r5,r19
  803158:	100d883a 	mov	r6,r2
  80315c:	0807c140 	call	807c14 <__subdf3>
  803160:	d9001717 	ldw	r4,92(sp)
  803164:	1011883a 	mov	r8,r2
  803168:	b8800c04 	addi	r2,r23,48
  80316c:	20800005 	stb	r2,0(r4)
  803170:	d8800617 	ldw	r2,24(sp)
  803174:	21000044 	addi	r4,r4,1
  803178:	1813883a 	mov	r9,r3
  80317c:	d9001715 	stw	r4,92(sp)
  803180:	b0bfd11e 	bne	r22,r2,8030c8 <_dtoa_r+0x758>
  803184:	4009883a 	mov	r4,r8
  803188:	180b883a 	mov	r5,r3
  80318c:	400d883a 	mov	r6,r8
  803190:	180f883a 	mov	r7,r3
  803194:	0807ba80 	call	807ba8 <__adddf3>
  803198:	100d883a 	mov	r6,r2
  80319c:	a009883a 	mov	r4,r20
  8031a0:	a80b883a 	mov	r5,r21
  8031a4:	180f883a 	mov	r7,r3
  8031a8:	1021883a 	mov	r16,r2
  8031ac:	1823883a 	mov	r17,r3
  8031b0:	080850c0 	call	80850c <__ltdf2>
  8031b4:	10000816 	blt	r2,zero,8031d8 <_dtoa_r+0x868>
  8031b8:	a80b883a 	mov	r5,r21
  8031bc:	800d883a 	mov	r6,r16
  8031c0:	880f883a 	mov	r7,r17
  8031c4:	a009883a 	mov	r4,r20
  8031c8:	08082dc0 	call	8082dc <__eqdf2>
  8031cc:	103f891e 	bne	r2,zero,802ff4 <_dtoa_r+0x684>
  8031d0:	b880004c 	andi	r2,r23,1
  8031d4:	103f8726 	beq	r2,zero,802ff4 <_dtoa_r+0x684>
  8031d8:	d8c01717 	ldw	r3,92(sp)
  8031dc:	00800e44 	movi	r2,57
  8031e0:	18ffffc4 	addi	r3,r3,-1
  8031e4:	d8c01715 	stw	r3,92(sp)
  8031e8:	18c00007 	ldb	r3,0(r3)
  8031ec:	1882341e 	bne	r3,r2,803ac0 <_dtoa_r+0x1150>
  8031f0:	d9001717 	ldw	r4,92(sp)
  8031f4:	d8801817 	ldw	r2,96(sp)
  8031f8:	20822b26 	beq	r4,r2,803aa8 <_dtoa_r+0x1138>
  8031fc:	213fffc4 	addi	r4,r4,-1
  803200:	d9001715 	stw	r4,92(sp)
  803204:	20800007 	ldb	r2,0(r4)
  803208:	003ff806 	br	8031ec <_dtoa_r+0x87c>
  80320c:	1d85c83a 	sub	r2,r3,r22
  803210:	90a0983a 	sll	r16,r18,r2
  803214:	003e4806 	br	802b38 <_dtoa_r+0x1c8>
  803218:	d8000c15 	stw	zero,48(sp)
  80321c:	d9002317 	ldw	r4,140(sp)
  803220:	0102a70e 	bge	zero,r4,803cc0 <_dtoa_r+0x1350>
  803224:	dd802317 	ldw	r22,140(sp)
  803228:	dd800815 	stw	r22,32(sp)
  80322c:	dd800615 	stw	r22,24(sp)
  803230:	003eda06 	br	802d9c <_dtoa_r+0x42c>
  803234:	05800484 	movi	r22,18
  803238:	d8002315 	stw	zero,140(sp)
  80323c:	003ed706 	br	802d9c <_dtoa_r+0x42c>
  803240:	d8c00617 	ldw	r3,24(sp)
  803244:	00ff9e16 	blt	zero,r3,8030c0 <_dtoa_r+0x750>
  803248:	d8001615 	stw	zero,88(sp)
  80324c:	002f883a 	mov	r23,zero
  803250:	18000e16 	blt	r3,zero,80328c <_dtoa_r+0x91c>
  803254:	0005883a 	mov	r2,zero
  803258:	00d00534 	movhi	r3,16404
  80325c:	18c00004 	addi	r3,r3,0
  803260:	a80b883a 	mov	r5,r21
  803264:	180f883a 	mov	r7,r3
  803268:	a009883a 	mov	r4,r20
  80326c:	100d883a 	mov	r6,r2
  803270:	0807c8c0 	call	807c8c <__muldf3>
  803274:	180b883a 	mov	r5,r3
  803278:	980f883a 	mov	r7,r19
  80327c:	1009883a 	mov	r4,r2
  803280:	900d883a 	mov	r6,r18
  803284:	08084800 	call	808480 <__gedf2>
  803288:	103f4316 	blt	r2,zero,802f98 <_dtoa_r+0x628>
  80328c:	d9002317 	ldw	r4,140(sp)
  803290:	0108303a 	nor	r4,zero,r4
  803294:	d9000915 	stw	r4,36(sp)
  803298:	003f4806 	br	802fbc <_dtoa_r+0x64c>
  80329c:	d8800917 	ldw	r2,36(sp)
  8032a0:	00a9c83a 	sub	r20,zero,r2
  8032a4:	a03f0a26 	beq	r20,zero,802ed0 <_dtoa_r+0x560>
  8032a8:	a14003cc 	andi	r5,r20,15
  8032ac:	280a90fa 	slli	r5,r5,3
  8032b0:	01002074 	movhi	r4,129
  8032b4:	21311c04 	addi	r4,r4,-15248
  8032b8:	a023d13a 	srai	r17,r20,4
  8032bc:	290b883a 	add	r5,r5,r4
  8032c0:	28800017 	ldw	r2,0(r5)
  8032c4:	28c00117 	ldw	r3,4(r5)
  8032c8:	980f883a 	mov	r7,r19
  8032cc:	900d883a 	mov	r6,r18
  8032d0:	180b883a 	mov	r5,r3
  8032d4:	1009883a 	mov	r4,r2
  8032d8:	0807c8c0 	call	807c8c <__muldf3>
  8032dc:	1025883a 	mov	r18,r2
  8032e0:	1827883a 	mov	r19,r3
  8032e4:	883efa26 	beq	r17,zero,802ed0 <_dtoa_r+0x560>
  8032e8:	04002074 	movhi	r16,129
  8032ec:	84311204 	addi	r16,r16,-15288
  8032f0:	8880004c 	andi	r2,r17,1
  8032f4:	10000a26 	beq	r2,zero,803320 <_dtoa_r+0x9b0>
  8032f8:	80800017 	ldw	r2,0(r16)
  8032fc:	80c00117 	ldw	r3,4(r16)
  803300:	980f883a 	mov	r7,r19
  803304:	900d883a 	mov	r6,r18
  803308:	180b883a 	mov	r5,r3
  80330c:	1009883a 	mov	r4,r2
  803310:	0807c8c0 	call	807c8c <__muldf3>
  803314:	b5800044 	addi	r22,r22,1
  803318:	1025883a 	mov	r18,r2
  80331c:	1827883a 	mov	r19,r3
  803320:	8823d07a 	srai	r17,r17,1
  803324:	84000204 	addi	r16,r16,8
  803328:	883ff11e 	bne	r17,zero,8032f0 <_dtoa_r+0x980>
  80332c:	003ee806 	br	802ed0 <_dtoa_r+0x560>
  803330:	d9000c17 	ldw	r4,48(sp)
  803334:	dd000417 	ldw	r20,16(sp)
  803338:	dc000517 	ldw	r16,20(sp)
  80333c:	202b003a 	cmpeq	r21,r4,zero
  803340:	d8001515 	stw	zero,84(sp)
  803344:	d8001615 	stw	zero,88(sp)
  803348:	a800131e 	bne	r21,zero,803398 <_dtoa_r+0xa28>
  80334c:	d9000317 	ldw	r4,12(sp)
  803350:	00800044 	movi	r2,1
  803354:	1101a216 	blt	r2,r4,8039e0 <_dtoa_r+0x1070>
  803358:	d8801317 	ldw	r2,76(sp)
  80335c:	1d810cc4 	addi	r22,r3,1075
  803360:	1000031e 	bne	r2,zero,803370 <_dtoa_r+0xa00>
  803364:	d8800117 	ldw	r2,4(sp)
  803368:	00c00d84 	movi	r3,54
  80336c:	18adc83a 	sub	r22,r3,r2
  803370:	e009883a 	mov	r4,fp
  803374:	01400044 	movi	r5,1
  803378:	08057bc0 	call	8057bc <_i2b>
  80337c:	d8801615 	stw	r2,88(sp)
  803380:	d9000d17 	ldw	r4,52(sp)
  803384:	d8800417 	ldw	r2,16(sp)
  803388:	2589883a 	add	r4,r4,r22
  80338c:	1585883a 	add	r2,r2,r22
  803390:	d9000d15 	stw	r4,52(sp)
  803394:	d8800415 	stw	r2,16(sp)
  803398:	05000c0e 	bge	zero,r20,8033cc <_dtoa_r+0xa5c>
  80339c:	d8c00d17 	ldw	r3,52(sp)
  8033a0:	00c00a0e 	bge	zero,r3,8033cc <_dtoa_r+0xa5c>
  8033a4:	182d883a 	mov	r22,r3
  8033a8:	a0c0010e 	bge	r20,r3,8033b0 <_dtoa_r+0xa40>
  8033ac:	a02d883a 	mov	r22,r20
  8033b0:	d9000d17 	ldw	r4,52(sp)
  8033b4:	d8800417 	ldw	r2,16(sp)
  8033b8:	a5a9c83a 	sub	r20,r20,r22
  8033bc:	2589c83a 	sub	r4,r4,r22
  8033c0:	1585c83a 	sub	r2,r2,r22
  8033c4:	d9000d15 	stw	r4,52(sp)
  8033c8:	d8800415 	stw	r2,16(sp)
  8033cc:	d8c00517 	ldw	r3,20(sp)
  8033d0:	00c0130e 	bge	zero,r3,803420 <_dtoa_r+0xab0>
  8033d4:	a801941e 	bne	r21,zero,803a28 <_dtoa_r+0x10b8>
  8033d8:	04000e0e 	bge	zero,r16,803414 <_dtoa_r+0xaa4>
  8033dc:	d9401617 	ldw	r5,88(sp)
  8033e0:	e009883a 	mov	r4,fp
  8033e4:	800d883a 	mov	r6,r16
  8033e8:	08059cc0 	call	8059cc <_pow5mult>
  8033ec:	d9801417 	ldw	r6,80(sp)
  8033f0:	e009883a 	mov	r4,fp
  8033f4:	100b883a 	mov	r5,r2
  8033f8:	d8801615 	stw	r2,88(sp)
  8033fc:	08057f80 	call	8057f8 <_multiply>
  803400:	d9401417 	ldw	r5,80(sp)
  803404:	1023883a 	mov	r17,r2
  803408:	e009883a 	mov	r4,fp
  80340c:	08054840 	call	805484 <_Bfree>
  803410:	dc401415 	stw	r17,80(sp)
  803414:	d9000517 	ldw	r4,20(sp)
  803418:	2423c83a 	sub	r17,r4,r16
  80341c:	8801af1e 	bne	r17,zero,803adc <_dtoa_r+0x116c>
  803420:	04000044 	movi	r16,1
  803424:	e009883a 	mov	r4,fp
  803428:	800b883a 	mov	r5,r16
  80342c:	08057bc0 	call	8057bc <_i2b>
  803430:	102f883a 	mov	r23,r2
  803434:	d8800e17 	ldw	r2,56(sp)
  803438:	0080050e 	bge	zero,r2,803450 <_dtoa_r+0xae0>
  80343c:	b80b883a 	mov	r5,r23
  803440:	e009883a 	mov	r4,fp
  803444:	100d883a 	mov	r6,r2
  803448:	08059cc0 	call	8059cc <_pow5mult>
  80344c:	102f883a 	mov	r23,r2
  803450:	d8c00317 	ldw	r3,12(sp)
  803454:	0023883a 	mov	r17,zero
  803458:	80c00e16 	blt	r16,r3,803494 <_dtoa_r+0xb24>
  80345c:	90000d1e 	bne	r18,zero,803494 <_dtoa_r+0xb24>
  803460:	00800434 	movhi	r2,16
  803464:	10bfffc4 	addi	r2,r2,-1
  803468:	9884703a 	and	r2,r19,r2
  80346c:	1000091e 	bne	r2,zero,803494 <_dtoa_r+0xb24>
  803470:	989ffc2c 	andhi	r2,r19,32752
  803474:	10000726 	beq	r2,zero,803494 <_dtoa_r+0xb24>
  803478:	d9000417 	ldw	r4,16(sp)
  80347c:	d8800d17 	ldw	r2,52(sp)
  803480:	8023883a 	mov	r17,r16
  803484:	21000044 	addi	r4,r4,1
  803488:	10800044 	addi	r2,r2,1
  80348c:	d9000415 	stw	r4,16(sp)
  803490:	d8800d15 	stw	r2,52(sp)
  803494:	d8c00e17 	ldw	r3,56(sp)
  803498:	1800f41e 	bne	r3,zero,80386c <_dtoa_r+0xefc>
  80349c:	d8c00d17 	ldw	r3,52(sp)
  8034a0:	18800044 	addi	r2,r3,1
  8034a4:	158007cc 	andi	r22,r2,31
  8034a8:	b0000226 	beq	r22,zero,8034b4 <_dtoa_r+0xb44>
  8034ac:	00800804 	movi	r2,32
  8034b0:	15adc83a 	sub	r22,r2,r22
  8034b4:	00800104 	movi	r2,4
  8034b8:	1580b20e 	bge	r2,r22,803784 <_dtoa_r+0xe14>
  8034bc:	d9000d17 	ldw	r4,52(sp)
  8034c0:	d8800417 	ldw	r2,16(sp)
  8034c4:	b5bfff04 	addi	r22,r22,-4
  8034c8:	2589883a 	add	r4,r4,r22
  8034cc:	1585883a 	add	r2,r2,r22
  8034d0:	d9000d15 	stw	r4,52(sp)
  8034d4:	d8800415 	stw	r2,16(sp)
  8034d8:	a5a9883a 	add	r20,r20,r22
  8034dc:	d8800417 	ldw	r2,16(sp)
  8034e0:	0080050e 	bge	zero,r2,8034f8 <_dtoa_r+0xb88>
  8034e4:	d9401417 	ldw	r5,80(sp)
  8034e8:	100d883a 	mov	r6,r2
  8034ec:	e009883a 	mov	r4,fp
  8034f0:	0805af80 	call	805af8 <_lshift>
  8034f4:	d8801415 	stw	r2,80(sp)
  8034f8:	d8c00d17 	ldw	r3,52(sp)
  8034fc:	00c0050e 	bge	zero,r3,803514 <_dtoa_r+0xba4>
  803500:	b80b883a 	mov	r5,r23
  803504:	180d883a 	mov	r6,r3
  803508:	e009883a 	mov	r4,fp
  80350c:	0805af80 	call	805af8 <_lshift>
  803510:	102f883a 	mov	r23,r2
  803514:	d9000b17 	ldw	r4,44(sp)
  803518:	2000c31e 	bne	r4,zero,803828 <_dtoa_r+0xeb8>
  80351c:	d9000617 	ldw	r4,24(sp)
  803520:	0101520e 	bge	zero,r4,803a6c <_dtoa_r+0x10fc>
  803524:	05800044 	movi	r22,1
  803528:	a8004d1e 	bne	r21,zero,803660 <_dtoa_r+0xcf0>
  80352c:	0500050e 	bge	zero,r20,803544 <_dtoa_r+0xbd4>
  803530:	d9401617 	ldw	r5,88(sp)
  803534:	a00d883a 	mov	r6,r20
  803538:	e009883a 	mov	r4,fp
  80353c:	0805af80 	call	805af8 <_lshift>
  803540:	d8801615 	stw	r2,88(sp)
  803544:	d8801617 	ldw	r2,88(sp)
  803548:	d8801515 	stw	r2,84(sp)
  80354c:	8801661e 	bne	r17,zero,803ae8 <_dtoa_r+0x1178>
  803550:	94c0004c 	andi	r19,r18,1
  803554:	05800044 	movi	r22,1
  803558:	05400e44 	movi	r21,57
  80355c:	d9001417 	ldw	r4,80(sp)
  803560:	b80b883a 	mov	r5,r23
  803564:	05000044 	movi	r20,1
  803568:	08027740 	call	802774 <quorem>
  80356c:	d9001417 	ldw	r4,80(sp)
  803570:	d9401517 	ldw	r5,84(sp)
  803574:	14800c04 	addi	r18,r2,48
  803578:	0805c300 	call	805c30 <__mcmp>
  80357c:	d9801617 	ldw	r6,88(sp)
  803580:	e009883a 	mov	r4,fp
  803584:	b80b883a 	mov	r5,r23
  803588:	1023883a 	mov	r17,r2
  80358c:	0805c940 	call	805c94 <__mdiff>
  803590:	1021883a 	mov	r16,r2
  803594:	10800317 	ldw	r2,12(r2)
  803598:	10006c26 	beq	r2,zero,80374c <_dtoa_r+0xddc>
  80359c:	800b883a 	mov	r5,r16
  8035a0:	e009883a 	mov	r4,fp
  8035a4:	08054840 	call	805484 <_Bfree>
  8035a8:	a000031e 	bne	r20,zero,8035b8 <_dtoa_r+0xc48>
  8035ac:	d9000317 	ldw	r4,12(sp)
  8035b0:	2000011e 	bne	r4,zero,8035b8 <_dtoa_r+0xc48>
  8035b4:	98005d26 	beq	r19,zero,80372c <_dtoa_r+0xdbc>
  8035b8:	88004a16 	blt	r17,zero,8036e4 <_dtoa_r+0xd74>
  8035bc:	8800031e 	bne	r17,zero,8035cc <_dtoa_r+0xc5c>
  8035c0:	d8c00317 	ldw	r3,12(sp)
  8035c4:	1800011e 	bne	r3,zero,8035cc <_dtoa_r+0xc5c>
  8035c8:	98004626 	beq	r19,zero,8036e4 <_dtoa_r+0xd74>
  8035cc:	0501a916 	blt	zero,r20,803c74 <_dtoa_r+0x1304>
  8035d0:	d9001717 	ldw	r4,92(sp)
  8035d4:	24800005 	stb	r18,0(r4)
  8035d8:	d8800617 	ldw	r2,24(sp)
  8035dc:	21000044 	addi	r4,r4,1
  8035e0:	d9001715 	stw	r4,92(sp)
  8035e4:	b0802926 	beq	r22,r2,80368c <_dtoa_r+0xd1c>
  8035e8:	d9401417 	ldw	r5,80(sp)
  8035ec:	e009883a 	mov	r4,fp
  8035f0:	01800284 	movi	r6,10
  8035f4:	000f883a 	mov	r7,zero
  8035f8:	08054a80 	call	8054a8 <_multadd>
  8035fc:	d8c01517 	ldw	r3,84(sp)
  803600:	d9001617 	ldw	r4,88(sp)
  803604:	d8801415 	stw	r2,80(sp)
  803608:	19005526 	beq	r3,r4,803760 <_dtoa_r+0xdf0>
  80360c:	d9401517 	ldw	r5,84(sp)
  803610:	e009883a 	mov	r4,fp
  803614:	01800284 	movi	r6,10
  803618:	000f883a 	mov	r7,zero
  80361c:	08054a80 	call	8054a8 <_multadd>
  803620:	d9401617 	ldw	r5,88(sp)
  803624:	e009883a 	mov	r4,fp
  803628:	01800284 	movi	r6,10
  80362c:	000f883a 	mov	r7,zero
  803630:	d8801515 	stw	r2,84(sp)
  803634:	b5800044 	addi	r22,r22,1
  803638:	08054a80 	call	8054a8 <_multadd>
  80363c:	d8801615 	stw	r2,88(sp)
  803640:	003fc606 	br	80355c <_dtoa_r+0xbec>
  803644:	d9401417 	ldw	r5,80(sp)
  803648:	e009883a 	mov	r4,fp
  80364c:	01800284 	movi	r6,10
  803650:	000f883a 	mov	r7,zero
  803654:	08054a80 	call	8054a8 <_multadd>
  803658:	d8801415 	stw	r2,80(sp)
  80365c:	b5800044 	addi	r22,r22,1
  803660:	d9001417 	ldw	r4,80(sp)
  803664:	b80b883a 	mov	r5,r23
  803668:	08027740 	call	802774 <quorem>
  80366c:	14800c04 	addi	r18,r2,48
  803670:	d8801717 	ldw	r2,92(sp)
  803674:	14800005 	stb	r18,0(r2)
  803678:	d8801717 	ldw	r2,92(sp)
  80367c:	d8c00617 	ldw	r3,24(sp)
  803680:	10800044 	addi	r2,r2,1
  803684:	d8801715 	stw	r2,92(sp)
  803688:	b0ffee16 	blt	r22,r3,803644 <_dtoa_r+0xcd4>
  80368c:	d9401417 	ldw	r5,80(sp)
  803690:	e009883a 	mov	r4,fp
  803694:	01800044 	movi	r6,1
  803698:	0805af80 	call	805af8 <_lshift>
  80369c:	1009883a 	mov	r4,r2
  8036a0:	b80b883a 	mov	r5,r23
  8036a4:	d8801415 	stw	r2,80(sp)
  8036a8:	0805c300 	call	805c30 <__mcmp>
  8036ac:	0081770e 	bge	zero,r2,803c8c <_dtoa_r+0x131c>
  8036b0:	d9001717 	ldw	r4,92(sp)
  8036b4:	00800e44 	movi	r2,57
  8036b8:	213fffc4 	addi	r4,r4,-1
  8036bc:	d9001715 	stw	r4,92(sp)
  8036c0:	20c00007 	ldb	r3,0(r4)
  8036c4:	1880391e 	bne	r3,r2,8037ac <_dtoa_r+0xe3c>
  8036c8:	d8801717 	ldw	r2,92(sp)
  8036cc:	d9001817 	ldw	r4,96(sp)
  8036d0:	113e3126 	beq	r2,r4,802f98 <_dtoa_r+0x628>
  8036d4:	10bfffc4 	addi	r2,r2,-1
  8036d8:	d8801715 	stw	r2,92(sp)
  8036dc:	10800007 	ldb	r2,0(r2)
  8036e0:	003ff806 	br	8036c4 <_dtoa_r+0xd54>
  8036e4:	05000c0e 	bge	zero,r20,803718 <_dtoa_r+0xda8>
  8036e8:	d9401417 	ldw	r5,80(sp)
  8036ec:	e009883a 	mov	r4,fp
  8036f0:	01800044 	movi	r6,1
  8036f4:	0805af80 	call	805af8 <_lshift>
  8036f8:	1009883a 	mov	r4,r2
  8036fc:	b80b883a 	mov	r5,r23
  803700:	d8801415 	stw	r2,80(sp)
  803704:	0805c300 	call	805c30 <__mcmp>
  803708:	00818a0e 	bge	zero,r2,803d34 <_dtoa_r+0x13c4>
  80370c:	94800044 	addi	r18,r18,1
  803710:	00800e84 	movi	r2,58
  803714:	90815826 	beq	r18,r2,803c78 <_dtoa_r+0x1308>
  803718:	d9001717 	ldw	r4,92(sp)
  80371c:	24800005 	stb	r18,0(r4)
  803720:	21000044 	addi	r4,r4,1
  803724:	d9001715 	stw	r4,92(sp)
  803728:	003e2406 	br	802fbc <_dtoa_r+0x64c>
  80372c:	95415226 	beq	r18,r21,803c78 <_dtoa_r+0x1308>
  803730:	0440010e 	bge	zero,r17,803738 <_dtoa_r+0xdc8>
  803734:	94800044 	addi	r18,r18,1
  803738:	d8801717 	ldw	r2,92(sp)
  80373c:	14800005 	stb	r18,0(r2)
  803740:	10800044 	addi	r2,r2,1
  803744:	d8801715 	stw	r2,92(sp)
  803748:	003e1c06 	br	802fbc <_dtoa_r+0x64c>
  80374c:	d9001417 	ldw	r4,80(sp)
  803750:	800b883a 	mov	r5,r16
  803754:	0805c300 	call	805c30 <__mcmp>
  803758:	1029883a 	mov	r20,r2
  80375c:	003f8f06 	br	80359c <_dtoa_r+0xc2c>
  803760:	200b883a 	mov	r5,r4
  803764:	01800284 	movi	r6,10
  803768:	e009883a 	mov	r4,fp
  80376c:	000f883a 	mov	r7,zero
  803770:	08054a80 	call	8054a8 <_multadd>
  803774:	b5800044 	addi	r22,r22,1
  803778:	d8801615 	stw	r2,88(sp)
  80377c:	d8801515 	stw	r2,84(sp)
  803780:	003f7606 	br	80355c <_dtoa_r+0xbec>
  803784:	008000c4 	movi	r2,3
  803788:	15bf5416 	blt	r2,r22,8034dc <_dtoa_r+0xb6c>
  80378c:	d8c00d17 	ldw	r3,52(sp)
  803790:	d9000417 	ldw	r4,16(sp)
  803794:	b5800704 	addi	r22,r22,28
  803798:	1d87883a 	add	r3,r3,r22
  80379c:	2589883a 	add	r4,r4,r22
  8037a0:	d8c00d15 	stw	r3,52(sp)
  8037a4:	d9000415 	stw	r4,16(sp)
  8037a8:	003f4b06 	br	8034d8 <_dtoa_r+0xb68>
  8037ac:	d8c01717 	ldw	r3,92(sp)
  8037b0:	18800003 	ldbu	r2,0(r3)
  8037b4:	19000044 	addi	r4,r3,1
  8037b8:	d9001715 	stw	r4,92(sp)
  8037bc:	10800044 	addi	r2,r2,1
  8037c0:	18800005 	stb	r2,0(r3)
  8037c4:	003dfd06 	br	802fbc <_dtoa_r+0x64c>
  8037c8:	d8800417 	ldw	r2,16(sp)
  8037cc:	d8c00917 	ldw	r3,36(sp)
  8037d0:	d8000e15 	stw	zero,56(sp)
  8037d4:	10c5c83a 	sub	r2,r2,r3
  8037d8:	00c9c83a 	sub	r4,zero,r3
  8037dc:	d8800415 	stw	r2,16(sp)
  8037e0:	d9000515 	stw	r4,20(sp)
  8037e4:	003d3a06 	br	802cd0 <_dtoa_r+0x360>
  8037e8:	0463c83a 	sub	r17,zero,r17
  8037ec:	dc400415 	stw	r17,16(sp)
  8037f0:	d8000d15 	stw	zero,52(sp)
  8037f4:	003d2f06 	br	802cb4 <_dtoa_r+0x344>
  8037f8:	d9000917 	ldw	r4,36(sp)
  8037fc:	08085980 	call	808598 <__floatsidf>
  803800:	180b883a 	mov	r5,r3
  803804:	800d883a 	mov	r6,r16
  803808:	880f883a 	mov	r7,r17
  80380c:	1009883a 	mov	r4,r2
  803810:	08083680 	call	808368 <__nedf2>
  803814:	103d0d26 	beq	r2,zero,802c4c <_dtoa_r+0x2dc>
  803818:	d8800917 	ldw	r2,36(sp)
  80381c:	10bfffc4 	addi	r2,r2,-1
  803820:	d8800915 	stw	r2,36(sp)
  803824:	003d0906 	br	802c4c <_dtoa_r+0x2dc>
  803828:	d9001417 	ldw	r4,80(sp)
  80382c:	b80b883a 	mov	r5,r23
  803830:	0805c300 	call	805c30 <__mcmp>
  803834:	103f390e 	bge	r2,zero,80351c <_dtoa_r+0xbac>
  803838:	d9401417 	ldw	r5,80(sp)
  80383c:	e009883a 	mov	r4,fp
  803840:	01800284 	movi	r6,10
  803844:	000f883a 	mov	r7,zero
  803848:	08054a80 	call	8054a8 <_multadd>
  80384c:	d8801415 	stw	r2,80(sp)
  803850:	d8800917 	ldw	r2,36(sp)
  803854:	10bfffc4 	addi	r2,r2,-1
  803858:	d8800915 	stw	r2,36(sp)
  80385c:	a8013926 	beq	r21,zero,803d44 <_dtoa_r+0x13d4>
  803860:	d8c00817 	ldw	r3,32(sp)
  803864:	d8c00615 	stw	r3,24(sp)
  803868:	003f2c06 	br	80351c <_dtoa_r+0xbac>
  80386c:	b8800417 	ldw	r2,16(r23)
  803870:	100490ba 	slli	r2,r2,2
  803874:	15c5883a 	add	r2,r2,r23
  803878:	11000417 	ldw	r4,16(r2)
  80387c:	08056a00 	call	8056a0 <_hi0bits>
  803880:	d9000d17 	ldw	r4,52(sp)
  803884:	2085c83a 	sub	r2,r4,r2
  803888:	003f0606 	br	8034a4 <_dtoa_r+0xb34>
  80388c:	d8800c17 	ldw	r2,48(sp)
  803890:	1000a626 	beq	r2,zero,803b2c <_dtoa_r+0x11bc>
  803894:	d8c00617 	ldw	r3,24(sp)
  803898:	01002074 	movhi	r4,129
  80389c:	21311a04 	addi	r4,r4,-15256
  8038a0:	0005883a 	mov	r2,zero
  8038a4:	180c90fa 	slli	r6,r3,3
  8038a8:	00cff834 	movhi	r3,16352
  8038ac:	18c00004 	addi	r3,r3,0
  8038b0:	180b883a 	mov	r5,r3
  8038b4:	310d883a 	add	r6,r6,r4
  8038b8:	32400117 	ldw	r9,4(r6)
  8038bc:	32000017 	ldw	r8,0(r6)
  8038c0:	1009883a 	mov	r4,r2
  8038c4:	480f883a 	mov	r7,r9
  8038c8:	400d883a 	mov	r6,r8
  8038cc:	080808c0 	call	80808c <__divdf3>
  8038d0:	d9801117 	ldw	r6,68(sp)
  8038d4:	180b883a 	mov	r5,r3
  8038d8:	a00f883a 	mov	r7,r20
  8038dc:	1009883a 	mov	r4,r2
  8038e0:	0807c140 	call	807c14 <__subdf3>
  8038e4:	002d883a 	mov	r22,zero
  8038e8:	d8801115 	stw	r2,68(sp)
  8038ec:	d8c01215 	stw	r3,72(sp)
  8038f0:	00001106 	br	803938 <_dtoa_r+0xfc8>
  8038f4:	d9c01217 	ldw	r7,72(sp)
  8038f8:	d9801117 	ldw	r6,68(sp)
  8038fc:	04500934 	movhi	r17,16420
  803900:	8c400004 	addi	r17,r17,0
  803904:	0021883a 	mov	r16,zero
  803908:	8009883a 	mov	r4,r16
  80390c:	880b883a 	mov	r5,r17
  803910:	0807c8c0 	call	807c8c <__muldf3>
  803914:	0009883a 	mov	r4,zero
  803918:	880b883a 	mov	r5,r17
  80391c:	a00d883a 	mov	r6,r20
  803920:	a80f883a 	mov	r7,r21
  803924:	d8801115 	stw	r2,68(sp)
  803928:	d8c01215 	stw	r3,72(sp)
  80392c:	0807c8c0 	call	807c8c <__muldf3>
  803930:	1025883a 	mov	r18,r2
  803934:	1827883a 	mov	r19,r3
  803938:	980b883a 	mov	r5,r19
  80393c:	9009883a 	mov	r4,r18
  803940:	08086680 	call	808668 <__fixdfsi>
  803944:	1009883a 	mov	r4,r2
  803948:	102f883a 	mov	r23,r2
  80394c:	08085980 	call	808598 <__floatsidf>
  803950:	980b883a 	mov	r5,r19
  803954:	180f883a 	mov	r7,r3
  803958:	9009883a 	mov	r4,r18
  80395c:	100d883a 	mov	r6,r2
  803960:	0807c140 	call	807c14 <__subdf3>
  803964:	182b883a 	mov	r21,r3
  803968:	d8c01717 	ldw	r3,92(sp)
  80396c:	1029883a 	mov	r20,r2
  803970:	b8800c04 	addi	r2,r23,48
  803974:	18800005 	stb	r2,0(r3)
  803978:	d9801117 	ldw	r6,68(sp)
  80397c:	d9c01217 	ldw	r7,72(sp)
  803980:	18c00044 	addi	r3,r3,1
  803984:	a009883a 	mov	r4,r20
  803988:	a80b883a 	mov	r5,r21
  80398c:	d8c01715 	stw	r3,92(sp)
  803990:	080850c0 	call	80850c <__ltdf2>
  803994:	103d9716 	blt	r2,zero,802ff4 <_dtoa_r+0x684>
  803998:	0005883a 	mov	r2,zero
  80399c:	00cffc34 	movhi	r3,16368
  8039a0:	18c00004 	addi	r3,r3,0
  8039a4:	180b883a 	mov	r5,r3
  8039a8:	1009883a 	mov	r4,r2
  8039ac:	a00d883a 	mov	r6,r20
  8039b0:	a80f883a 	mov	r7,r21
  8039b4:	0807c140 	call	807c14 <__subdf3>
  8039b8:	d9801117 	ldw	r6,68(sp)
  8039bc:	d9c01217 	ldw	r7,72(sp)
  8039c0:	180b883a 	mov	r5,r3
  8039c4:	1009883a 	mov	r4,r2
  8039c8:	080850c0 	call	80850c <__ltdf2>
  8039cc:	103e0216 	blt	r2,zero,8031d8 <_dtoa_r+0x868>
  8039d0:	d9000617 	ldw	r4,24(sp)
  8039d4:	b5800044 	addi	r22,r22,1
  8039d8:	b13fc616 	blt	r22,r4,8038f4 <_dtoa_r+0xf84>
  8039dc:	003da106 	br	803064 <_dtoa_r+0x6f4>
  8039e0:	d8c00617 	ldw	r3,24(sp)
  8039e4:	d9000517 	ldw	r4,20(sp)
  8039e8:	1c7fffc4 	addi	r17,r3,-1
  8039ec:	2461c83a 	sub	r16,r4,r17
  8039f0:	2440070e 	bge	r4,r17,803a10 <_dtoa_r+0x10a0>
  8039f4:	d8800e17 	ldw	r2,56(sp)
  8039f8:	8923c83a 	sub	r17,r17,r4
  8039fc:	2449883a 	add	r4,r4,r17
  803a00:	1445883a 	add	r2,r2,r17
  803a04:	d9000515 	stw	r4,20(sp)
  803a08:	d8800e15 	stw	r2,56(sp)
  803a0c:	0021883a 	mov	r16,zero
  803a10:	dd800617 	ldw	r22,24(sp)
  803a14:	b03e560e 	bge	r22,zero,803370 <_dtoa_r+0xa00>
  803a18:	d8c00417 	ldw	r3,16(sp)
  803a1c:	1da9c83a 	sub	r20,r3,r22
  803a20:	002d883a 	mov	r22,zero
  803a24:	003e5206 	br	803370 <_dtoa_r+0xa00>
  803a28:	d9401417 	ldw	r5,80(sp)
  803a2c:	d9800517 	ldw	r6,20(sp)
  803a30:	e009883a 	mov	r4,fp
  803a34:	08059cc0 	call	8059cc <_pow5mult>
  803a38:	d8801415 	stw	r2,80(sp)
  803a3c:	003e7806 	br	803420 <_dtoa_r+0xab0>
  803a40:	0005883a 	mov	r2,zero
  803a44:	00d07c34 	movhi	r3,16880
  803a48:	18c00004 	addi	r3,r3,0
  803a4c:	480b883a 	mov	r5,r9
  803a50:	4009883a 	mov	r4,r8
  803a54:	180f883a 	mov	r7,r3
  803a58:	100d883a 	mov	r6,r2
  803a5c:	0807ba80 	call	807ba8 <__adddf3>
  803a60:	1011883a 	mov	r8,r2
  803a64:	1813883a 	mov	r9,r3
  803a68:	003c3806 	br	802b4c <_dtoa_r+0x1dc>
  803a6c:	d8c00317 	ldw	r3,12(sp)
  803a70:	00800084 	movi	r2,2
  803a74:	10feab0e 	bge	r2,r3,803524 <_dtoa_r+0xbb4>
  803a78:	203e0416 	blt	r4,zero,80328c <_dtoa_r+0x91c>
  803a7c:	b80b883a 	mov	r5,r23
  803a80:	e009883a 	mov	r4,fp
  803a84:	01800144 	movi	r6,5
  803a88:	000f883a 	mov	r7,zero
  803a8c:	08054a80 	call	8054a8 <_multadd>
  803a90:	d9001417 	ldw	r4,80(sp)
  803a94:	100b883a 	mov	r5,r2
  803a98:	102f883a 	mov	r23,r2
  803a9c:	0805c300 	call	805c30 <__mcmp>
  803aa0:	00bd3d16 	blt	zero,r2,802f98 <_dtoa_r+0x628>
  803aa4:	003df906 	br	80328c <_dtoa_r+0x91c>
  803aa8:	d8800917 	ldw	r2,36(sp)
  803aac:	d8c01817 	ldw	r3,96(sp)
  803ab0:	10800044 	addi	r2,r2,1
  803ab4:	d8800915 	stw	r2,36(sp)
  803ab8:	00800c04 	movi	r2,48
  803abc:	18800005 	stb	r2,0(r3)
  803ac0:	d8c01717 	ldw	r3,92(sp)
  803ac4:	18800003 	ldbu	r2,0(r3)
  803ac8:	19000044 	addi	r4,r3,1
  803acc:	d9001715 	stw	r4,92(sp)
  803ad0:	10800044 	addi	r2,r2,1
  803ad4:	18800005 	stb	r2,0(r3)
  803ad8:	003d4606 	br	802ff4 <_dtoa_r+0x684>
  803adc:	d9401417 	ldw	r5,80(sp)
  803ae0:	880d883a 	mov	r6,r17
  803ae4:	003fd206 	br	803a30 <_dtoa_r+0x10c0>
  803ae8:	11400117 	ldw	r5,4(r2)
  803aec:	e009883a 	mov	r4,fp
  803af0:	08053d40 	call	8053d4 <_Balloc>
  803af4:	d8c01517 	ldw	r3,84(sp)
  803af8:	11000304 	addi	r4,r2,12
  803afc:	d8801615 	stw	r2,88(sp)
  803b00:	19800417 	ldw	r6,16(r3)
  803b04:	19400304 	addi	r5,r3,12
  803b08:	300c90ba 	slli	r6,r6,2
  803b0c:	31800204 	addi	r6,r6,8
  803b10:	08051740 	call	805174 <memcpy>
  803b14:	d9401617 	ldw	r5,88(sp)
  803b18:	e009883a 	mov	r4,fp
  803b1c:	01800044 	movi	r6,1
  803b20:	0805af80 	call	805af8 <_lshift>
  803b24:	d8801615 	stw	r2,88(sp)
  803b28:	003e8906 	br	803550 <_dtoa_r+0xbe0>
  803b2c:	d8c00617 	ldw	r3,24(sp)
  803b30:	01002074 	movhi	r4,129
  803b34:	21311a04 	addi	r4,r4,-15256
  803b38:	d9801117 	ldw	r6,68(sp)
  803b3c:	180a90fa 	slli	r5,r3,3
  803b40:	a00f883a 	mov	r7,r20
  803b44:	05800044 	movi	r22,1
  803b48:	290b883a 	add	r5,r5,r4
  803b4c:	28800017 	ldw	r2,0(r5)
  803b50:	28c00117 	ldw	r3,4(r5)
  803b54:	1009883a 	mov	r4,r2
  803b58:	180b883a 	mov	r5,r3
  803b5c:	0807c8c0 	call	807c8c <__muldf3>
  803b60:	d8801115 	stw	r2,68(sp)
  803b64:	d8c01215 	stw	r3,72(sp)
  803b68:	00000b06 	br	803b98 <_dtoa_r+0x1228>
  803b6c:	0005883a 	mov	r2,zero
  803b70:	00d00934 	movhi	r3,16420
  803b74:	18c00004 	addi	r3,r3,0
  803b78:	800d883a 	mov	r6,r16
  803b7c:	180b883a 	mov	r5,r3
  803b80:	880f883a 	mov	r7,r17
  803b84:	1009883a 	mov	r4,r2
  803b88:	0807c8c0 	call	807c8c <__muldf3>
  803b8c:	1025883a 	mov	r18,r2
  803b90:	b5800044 	addi	r22,r22,1
  803b94:	1827883a 	mov	r19,r3
  803b98:	980b883a 	mov	r5,r19
  803b9c:	9009883a 	mov	r4,r18
  803ba0:	08086680 	call	808668 <__fixdfsi>
  803ba4:	1009883a 	mov	r4,r2
  803ba8:	102f883a 	mov	r23,r2
  803bac:	08085980 	call	808598 <__floatsidf>
  803bb0:	980b883a 	mov	r5,r19
  803bb4:	9009883a 	mov	r4,r18
  803bb8:	180f883a 	mov	r7,r3
  803bbc:	100d883a 	mov	r6,r2
  803bc0:	0807c140 	call	807c14 <__subdf3>
  803bc4:	1823883a 	mov	r17,r3
  803bc8:	d8c01717 	ldw	r3,92(sp)
  803bcc:	1021883a 	mov	r16,r2
  803bd0:	b8800c04 	addi	r2,r23,48
  803bd4:	18800005 	stb	r2,0(r3)
  803bd8:	d9000617 	ldw	r4,24(sp)
  803bdc:	18c00044 	addi	r3,r3,1
  803be0:	d8c01715 	stw	r3,92(sp)
  803be4:	b13fe11e 	bne	r22,r4,803b6c <_dtoa_r+0x11fc>
  803be8:	d9801117 	ldw	r6,68(sp)
  803bec:	d9c01217 	ldw	r7,72(sp)
  803bf0:	0029883a 	mov	r20,zero
  803bf4:	054ff834 	movhi	r21,16352
  803bf8:	ad400004 	addi	r21,r21,0
  803bfc:	a009883a 	mov	r4,r20
  803c00:	a80b883a 	mov	r5,r21
  803c04:	0807ba80 	call	807ba8 <__adddf3>
  803c08:	180b883a 	mov	r5,r3
  803c0c:	1009883a 	mov	r4,r2
  803c10:	800d883a 	mov	r6,r16
  803c14:	880f883a 	mov	r7,r17
  803c18:	080850c0 	call	80850c <__ltdf2>
  803c1c:	103d6e16 	blt	r2,zero,8031d8 <_dtoa_r+0x868>
  803c20:	d9c01217 	ldw	r7,72(sp)
  803c24:	d9801117 	ldw	r6,68(sp)
  803c28:	0009883a 	mov	r4,zero
  803c2c:	a80b883a 	mov	r5,r21
  803c30:	0807c140 	call	807c14 <__subdf3>
  803c34:	180b883a 	mov	r5,r3
  803c38:	800d883a 	mov	r6,r16
  803c3c:	880f883a 	mov	r7,r17
  803c40:	1009883a 	mov	r4,r2
  803c44:	08083f40 	call	8083f4 <__gtdf2>
  803c48:	00bd060e 	bge	zero,r2,803064 <_dtoa_r+0x6f4>
  803c4c:	00c00c04 	movi	r3,48
  803c50:	d8801717 	ldw	r2,92(sp)
  803c54:	10bfffc4 	addi	r2,r2,-1
  803c58:	d8801715 	stw	r2,92(sp)
  803c5c:	10800007 	ldb	r2,0(r2)
  803c60:	10fffb26 	beq	r2,r3,803c50 <_dtoa_r+0x12e0>
  803c64:	d8c01717 	ldw	r3,92(sp)
  803c68:	18c00044 	addi	r3,r3,1
  803c6c:	d8c01715 	stw	r3,92(sp)
  803c70:	003ce006 	br	802ff4 <_dtoa_r+0x684>
  803c74:	9540151e 	bne	r18,r21,803ccc <_dtoa_r+0x135c>
  803c78:	d8801717 	ldw	r2,92(sp)
  803c7c:	15400005 	stb	r21,0(r2)
  803c80:	10800044 	addi	r2,r2,1
  803c84:	d8801715 	stw	r2,92(sp)
  803c88:	003e8906 	br	8036b0 <_dtoa_r+0xd40>
  803c8c:	1000021e 	bne	r2,zero,803c98 <_dtoa_r+0x1328>
  803c90:	9080004c 	andi	r2,r18,1
  803c94:	103e861e 	bne	r2,zero,8036b0 <_dtoa_r+0xd40>
  803c98:	00c00c04 	movi	r3,48
  803c9c:	d8801717 	ldw	r2,92(sp)
  803ca0:	10bfffc4 	addi	r2,r2,-1
  803ca4:	d8801715 	stw	r2,92(sp)
  803ca8:	10800007 	ldb	r2,0(r2)
  803cac:	10fffb26 	beq	r2,r3,803c9c <_dtoa_r+0x132c>
  803cb0:	d8c01717 	ldw	r3,92(sp)
  803cb4:	18c00044 	addi	r3,r3,1
  803cb8:	d8c01715 	stw	r3,92(sp)
  803cbc:	003cbf06 	br	802fbc <_dtoa_r+0x64c>
  803cc0:	00800044 	movi	r2,1
  803cc4:	d8802315 	stw	r2,140(sp)
  803cc8:	003d5606 	br	803224 <_dtoa_r+0x8b4>
  803ccc:	d8c01717 	ldw	r3,92(sp)
  803cd0:	90800044 	addi	r2,r18,1
  803cd4:	18800005 	stb	r2,0(r3)
  803cd8:	003ff606 	br	803cb4 <_dtoa_r+0x1344>
  803cdc:	d9000617 	ldw	r4,24(sp)
  803ce0:	013c860e 	bge	zero,r4,802efc <_dtoa_r+0x58c>
  803ce4:	d8800817 	ldw	r2,32(sp)
  803ce8:	00bcde0e 	bge	zero,r2,803064 <_dtoa_r+0x6f4>
  803cec:	0005883a 	mov	r2,zero
  803cf0:	00d00934 	movhi	r3,16420
  803cf4:	18c00004 	addi	r3,r3,0
  803cf8:	980f883a 	mov	r7,r19
  803cfc:	180b883a 	mov	r5,r3
  803d00:	900d883a 	mov	r6,r18
  803d04:	1009883a 	mov	r4,r2
  803d08:	0807c8c0 	call	807c8c <__muldf3>
  803d0c:	180b883a 	mov	r5,r3
  803d10:	d8c00917 	ldw	r3,36(sp)
  803d14:	d9000817 	ldw	r4,32(sp)
  803d18:	1025883a 	mov	r18,r2
  803d1c:	18ffffc4 	addi	r3,r3,-1
  803d20:	2827883a 	mov	r19,r5
  803d24:	b5800044 	addi	r22,r22,1
  803d28:	d8c00915 	stw	r3,36(sp)
  803d2c:	d9000615 	stw	r4,24(sp)
  803d30:	003c7206 	br	802efc <_dtoa_r+0x58c>
  803d34:	103e781e 	bne	r2,zero,803718 <_dtoa_r+0xda8>
  803d38:	9080004c 	andi	r2,r18,1
  803d3c:	103e7626 	beq	r2,zero,803718 <_dtoa_r+0xda8>
  803d40:	003e7206 	br	80370c <_dtoa_r+0xd9c>
  803d44:	d9401617 	ldw	r5,88(sp)
  803d48:	e009883a 	mov	r4,fp
  803d4c:	01800284 	movi	r6,10
  803d50:	000f883a 	mov	r7,zero
  803d54:	08054a80 	call	8054a8 <_multadd>
  803d58:	d8801615 	stw	r2,88(sp)
  803d5c:	003ec006 	br	803860 <_dtoa_r+0xef0>

00803d60 <fflush>:
  803d60:	defffc04 	addi	sp,sp,-16
  803d64:	dc400115 	stw	r17,4(sp)
  803d68:	dfc00315 	stw	ra,12(sp)
  803d6c:	dc000215 	stw	r16,8(sp)
  803d70:	dc800015 	stw	r18,0(sp)
  803d74:	2023883a 	mov	r17,r4
  803d78:	20002a26 	beq	r4,zero,803e24 <fflush+0xc4>
  803d7c:	d1200017 	ldw	r4,-32768(gp)
  803d80:	20800e17 	ldw	r2,56(r4)
  803d84:	10002526 	beq	r2,zero,803e1c <fflush+0xbc>
  803d88:	88c0030f 	ldh	r3,12(r17)
  803d8c:	1804d0fa 	srli	r2,r3,3
  803d90:	1080005c 	xori	r2,r2,1
  803d94:	1080004c 	andi	r2,r2,1
  803d98:	1000181e 	bne	r2,zero,803dfc <fflush+0x9c>
  803d9c:	8c800417 	ldw	r18,16(r17)
  803da0:	90001626 	beq	r18,zero,803dfc <fflush+0x9c>
  803da4:	88800017 	ldw	r2,0(r17)
  803da8:	18c000cc 	andi	r3,r3,3
  803dac:	8c800015 	stw	r18,0(r17)
  803db0:	14a1c83a 	sub	r16,r2,r18
  803db4:	0005883a 	mov	r2,zero
  803db8:	1800011e 	bne	r3,zero,803dc0 <fflush+0x60>
  803dbc:	88800517 	ldw	r2,20(r17)
  803dc0:	88800215 	stw	r2,8(r17)
  803dc4:	04000d0e 	bge	zero,r16,803dfc <fflush+0x9c>
  803dc8:	88c00917 	ldw	r3,36(r17)
  803dcc:	89000717 	ldw	r4,28(r17)
  803dd0:	900b883a 	mov	r5,r18
  803dd4:	800d883a 	mov	r6,r16
  803dd8:	183ee83a 	callr	r3
  803ddc:	80a1c83a 	sub	r16,r16,r2
  803de0:	90a5883a 	add	r18,r18,r2
  803de4:	00bff716 	blt	zero,r2,803dc4 <fflush+0x64>
  803de8:	8880030b 	ldhu	r2,12(r17)
  803dec:	00ffffc4 	movi	r3,-1
  803df0:	10801014 	ori	r2,r2,64
  803df4:	8880030d 	sth	r2,12(r17)
  803df8:	00000106 	br	803e00 <fflush+0xa0>
  803dfc:	0007883a 	mov	r3,zero
  803e00:	1805883a 	mov	r2,r3
  803e04:	dfc00317 	ldw	ra,12(sp)
  803e08:	dc000217 	ldw	r16,8(sp)
  803e0c:	dc400117 	ldw	r17,4(sp)
  803e10:	dc800017 	ldw	r18,0(sp)
  803e14:	dec00404 	addi	sp,sp,16
  803e18:	f800283a 	ret
  803e1c:	0803ecc0 	call	803ecc <__sinit>
  803e20:	003fd906 	br	803d88 <fflush+0x28>
  803e24:	d1200017 	ldw	r4,-32768(gp)
  803e28:	01402034 	movhi	r5,128
  803e2c:	294f5804 	addi	r5,r5,15712
  803e30:	02002034 	movhi	r8,128
  803e34:	4211b804 	addi	r8,r8,18144
  803e38:	dfc00317 	ldw	ra,12(sp)
  803e3c:	dc000217 	ldw	r16,8(sp)
  803e40:	dc400117 	ldw	r17,4(sp)
  803e44:	dc800017 	ldw	r18,0(sp)
  803e48:	dec00404 	addi	sp,sp,16
  803e4c:	4000683a 	jmp	r8

00803e50 <std>:
  803e50:	00802034 	movhi	r2,128
  803e54:	109a8704 	addi	r2,r2,27164
  803e58:	20800b15 	stw	r2,44(r4)
  803e5c:	00802034 	movhi	r2,128
  803e60:	109a4804 	addi	r2,r2,26912
  803e64:	20800915 	stw	r2,36(r4)
  803e68:	00c02034 	movhi	r3,128
  803e6c:	18da2c04 	addi	r3,r3,26800
  803e70:	00802034 	movhi	r2,128
  803e74:	109a6904 	addi	r2,r2,27044
  803e78:	2140030d 	sth	r5,12(r4)
  803e7c:	2180038d 	sth	r6,14(r4)
  803e80:	20c00815 	stw	r3,32(r4)
  803e84:	20800a15 	stw	r2,40(r4)
  803e88:	20000015 	stw	zero,0(r4)
  803e8c:	20000115 	stw	zero,4(r4)
  803e90:	20000215 	stw	zero,8(r4)
  803e94:	20000415 	stw	zero,16(r4)
  803e98:	20000515 	stw	zero,20(r4)
  803e9c:	20000615 	stw	zero,24(r4)
  803ea0:	21000715 	stw	r4,28(r4)
  803ea4:	f800283a 	ret

00803ea8 <_cleanup_r>:
  803ea8:	01402034 	movhi	r5,128
  803eac:	294f5804 	addi	r5,r5,15712
  803eb0:	02002034 	movhi	r8,128
  803eb4:	4211b804 	addi	r8,r8,18144
  803eb8:	4000683a 	jmp	r8

00803ebc <_cleanup>:
  803ebc:	d1200017 	ldw	r4,-32768(gp)
  803ec0:	02002034 	movhi	r8,128
  803ec4:	420faa04 	addi	r8,r8,16040
  803ec8:	4000683a 	jmp	r8

00803ecc <__sinit>:
  803ecc:	defffc04 	addi	sp,sp,-16
  803ed0:	dfc00315 	stw	ra,12(sp)
  803ed4:	dc400215 	stw	r17,8(sp)
  803ed8:	dcc00115 	stw	r19,4(sp)
  803edc:	dd400015 	stw	r21,0(sp)
  803ee0:	2023883a 	mov	r17,r4
  803ee4:	21000117 	ldw	r4,4(r4)
  803ee8:	00802034 	movhi	r2,128
  803eec:	108faa04 	addi	r2,r2,16040
  803ef0:	00c000c4 	movi	r3,3
  803ef4:	05400044 	movi	r21,1
  803ef8:	89409a04 	addi	r5,r17,616
  803efc:	88800f15 	stw	r2,60(r17)
  803f00:	88c09815 	stw	r3,608(r17)
  803f04:	89409915 	stw	r5,612(r17)
  803f08:	880f883a 	mov	r7,r17
  803f0c:	8d400e15 	stw	r21,56(r17)
  803f10:	88009715 	stw	zero,604(r17)
  803f14:	01400104 	movi	r5,4
  803f18:	000d883a 	mov	r6,zero
  803f1c:	0803e500 	call	803e50 <std>
  803f20:	89000217 	ldw	r4,8(r17)
  803f24:	04c00284 	movi	r19,10
  803f28:	a80d883a 	mov	r6,r21
  803f2c:	980b883a 	mov	r5,r19
  803f30:	880f883a 	mov	r7,r17
  803f34:	0803e500 	call	803e50 <std>
  803f38:	89000317 	ldw	r4,12(r17)
  803f3c:	980b883a 	mov	r5,r19
  803f40:	880f883a 	mov	r7,r17
  803f44:	01800084 	movi	r6,2
  803f48:	02002034 	movhi	r8,128
  803f4c:	420f9404 	addi	r8,r8,15952
  803f50:	dfc00317 	ldw	ra,12(sp)
  803f54:	dc400217 	ldw	r17,8(sp)
  803f58:	dcc00117 	ldw	r19,4(sp)
  803f5c:	dd400017 	ldw	r21,0(sp)
  803f60:	dec00404 	addi	sp,sp,16
  803f64:	4000683a 	jmp	r8

00803f68 <_malloc_trim_r>:
  803f68:	defffb04 	addi	sp,sp,-20
  803f6c:	dcc00015 	stw	r19,0(sp)
  803f70:	04c02074 	movhi	r19,129
  803f74:	9cf2f004 	addi	r19,r19,-13376
  803f78:	dc000315 	stw	r16,12(sp)
  803f7c:	dc400215 	stw	r17,8(sp)
  803f80:	dc800115 	stw	r18,4(sp)
  803f84:	2823883a 	mov	r17,r5
  803f88:	2021883a 	mov	r16,r4
  803f8c:	dfc00415 	stw	ra,16(sp)
  803f90:	08094500 	call	809450 <__malloc_lock>
  803f94:	98800217 	ldw	r2,8(r19)
  803f98:	8009883a 	mov	r4,r16
  803f9c:	000b883a 	mov	r5,zero
  803fa0:	10c00117 	ldw	r3,4(r2)
  803fa4:	00bfff04 	movi	r2,-4
  803fa8:	18a4703a 	and	r18,r3,r2
  803fac:	9463c83a 	sub	r17,r18,r17
  803fb0:	8c43fbc4 	addi	r17,r17,4079
  803fb4:	8822d33a 	srli	r17,r17,12
  803fb8:	00840004 	movi	r2,4096
  803fbc:	8c7fffc4 	addi	r17,r17,-1
  803fc0:	8822933a 	slli	r17,r17,12
  803fc4:	88800616 	blt	r17,r2,803fe0 <_malloc_trim_r+0x78>
  803fc8:	08068640 	call	806864 <_sbrk_r>
  803fcc:	98c00217 	ldw	r3,8(r19)
  803fd0:	8009883a 	mov	r4,r16
  803fd4:	044bc83a 	sub	r5,zero,r17
  803fd8:	1c87883a 	add	r3,r3,r18
  803fdc:	18800926 	beq	r3,r2,804004 <_malloc_trim_r+0x9c>
  803fe0:	080946c0 	call	80946c <__malloc_unlock>
  803fe4:	0005883a 	mov	r2,zero
  803fe8:	dfc00417 	ldw	ra,16(sp)
  803fec:	dc000317 	ldw	r16,12(sp)
  803ff0:	dc400217 	ldw	r17,8(sp)
  803ff4:	dc800117 	ldw	r18,4(sp)
  803ff8:	dcc00017 	ldw	r19,0(sp)
  803ffc:	dec00504 	addi	sp,sp,20
  804000:	f800283a 	ret
  804004:	8009883a 	mov	r4,r16
  804008:	08068640 	call	806864 <_sbrk_r>
  80400c:	944dc83a 	sub	r6,r18,r17
  804010:	00ffffc4 	movi	r3,-1
  804014:	8009883a 	mov	r4,r16
  804018:	000b883a 	mov	r5,zero
  80401c:	01c02074 	movhi	r7,129
  804020:	39f2e604 	addi	r7,r7,-13416
  804024:	31800054 	ori	r6,r6,1
  804028:	10c00926 	beq	r2,r3,804050 <_malloc_trim_r+0xe8>
  80402c:	38800017 	ldw	r2,0(r7)
  804030:	98c00217 	ldw	r3,8(r19)
  804034:	8009883a 	mov	r4,r16
  804038:	1445c83a 	sub	r2,r2,r17
  80403c:	38800015 	stw	r2,0(r7)
  804040:	19800115 	stw	r6,4(r3)
  804044:	080946c0 	call	80946c <__malloc_unlock>
  804048:	00800044 	movi	r2,1
  80404c:	003fe606 	br	803fe8 <_malloc_trim_r+0x80>
  804050:	08068640 	call	806864 <_sbrk_r>
  804054:	99400217 	ldw	r5,8(r19)
  804058:	100d883a 	mov	r6,r2
  80405c:	8009883a 	mov	r4,r16
  804060:	1165c83a 	sub	r18,r2,r5
  804064:	008003c4 	movi	r2,15
  804068:	90c00054 	ori	r3,r18,1
  80406c:	14bfdc0e 	bge	r2,r18,803fe0 <_malloc_trim_r+0x78>
  804070:	28c00115 	stw	r3,4(r5)
  804074:	d0e00817 	ldw	r3,-32736(gp)
  804078:	00802074 	movhi	r2,129
  80407c:	10b2e604 	addi	r2,r2,-13416
  804080:	30c7c83a 	sub	r3,r6,r3
  804084:	10c00015 	stw	r3,0(r2)
  804088:	003fd506 	br	803fe0 <_malloc_trim_r+0x78>

0080408c <_free_r>:
  80408c:	defffd04 	addi	sp,sp,-12
  804090:	dc000115 	stw	r16,4(sp)
  804094:	dc400015 	stw	r17,0(sp)
  804098:	dfc00215 	stw	ra,8(sp)
  80409c:	2821883a 	mov	r16,r5
  8040a0:	2023883a 	mov	r17,r4
  8040a4:	28003226 	beq	r5,zero,804170 <_free_r+0xe4>
  8040a8:	08094500 	call	809450 <__malloc_lock>
  8040ac:	82bffe04 	addi	r10,r16,-8
  8040b0:	51400117 	ldw	r5,4(r10)
  8040b4:	00bfff84 	movi	r2,-2
  8040b8:	03002074 	movhi	r12,129
  8040bc:	6332f004 	addi	r12,r12,-13376
  8040c0:	2892703a 	and	r9,r5,r2
  8040c4:	524d883a 	add	r6,r10,r9
  8040c8:	30c00117 	ldw	r3,4(r6)
  8040cc:	61000217 	ldw	r4,8(r12)
  8040d0:	00bfff04 	movi	r2,-4
  8040d4:	1896703a 	and	r11,r3,r2
  8040d8:	21804e26 	beq	r4,r6,804214 <_free_r+0x188>
  8040dc:	2880004c 	andi	r2,r5,1
  8040e0:	32c00115 	stw	r11,4(r6)
  8040e4:	000b883a 	mov	r5,zero
  8040e8:	1000091e 	bne	r2,zero,804110 <_free_r+0x84>
  8040ec:	50c00017 	ldw	r3,0(r10)
  8040f0:	60800204 	addi	r2,r12,8
  8040f4:	50d5c83a 	sub	r10,r10,r3
  8040f8:	51000217 	ldw	r4,8(r10)
  8040fc:	48d3883a 	add	r9,r9,r3
  804100:	20807426 	beq	r4,r2,8042d4 <_free_r+0x248>
  804104:	52000317 	ldw	r8,12(r10)
  804108:	41000215 	stw	r4,8(r8)
  80410c:	22000315 	stw	r8,12(r4)
  804110:	32c7883a 	add	r3,r6,r11
  804114:	18800117 	ldw	r2,4(r3)
  804118:	2808c03a 	cmpne	r4,r5,zero
  80411c:	1080004c 	andi	r2,r2,1
  804120:	1000061e 	bne	r2,zero,80413c <_free_r+0xb0>
  804124:	4ad3883a 	add	r9,r9,r11
  804128:	20001626 	beq	r4,zero,804184 <_free_r+0xf8>
  80412c:	30c00217 	ldw	r3,8(r6)
  804130:	32000317 	ldw	r8,12(r6)
  804134:	40c00215 	stw	r3,8(r8)
  804138:	1a000315 	stw	r8,12(r3)
  80413c:	48800054 	ori	r2,r9,1
  804140:	5247883a 	add	r3,r10,r9
  804144:	50800115 	stw	r2,4(r10)
  804148:	1a400015 	stw	r9,0(r3)
  80414c:	20001726 	beq	r4,zero,8041ac <_free_r+0x120>
  804150:	8809883a 	mov	r4,r17
  804154:	02002074 	movhi	r8,129
  804158:	42251b04 	addi	r8,r8,-27540
  80415c:	dfc00217 	ldw	ra,8(sp)
  804160:	dc000117 	ldw	r16,4(sp)
  804164:	dc400017 	ldw	r17,0(sp)
  804168:	dec00304 	addi	sp,sp,12
  80416c:	4000683a 	jmp	r8
  804170:	dfc00217 	ldw	ra,8(sp)
  804174:	dc000117 	ldw	r16,4(sp)
  804178:	dc400017 	ldw	r17,0(sp)
  80417c:	dec00304 	addi	sp,sp,12
  804180:	f800283a 	ret
  804184:	30c00217 	ldw	r3,8(r6)
  804188:	00802074 	movhi	r2,129
  80418c:	10b2f204 	addi	r2,r2,-13368
  804190:	18bfe71e 	bne	r3,r2,804130 <_free_r+0xa4>
  804194:	1a800315 	stw	r10,12(r3)
  804198:	1a800215 	stw	r10,8(r3)
  80419c:	01000044 	movi	r4,1
  8041a0:	50c00215 	stw	r3,8(r10)
  8041a4:	50c00315 	stw	r3,12(r10)
  8041a8:	003fe406 	br	80413c <_free_r+0xb0>
  8041ac:	00807fc4 	movi	r2,511
  8041b0:	12402b36 	bltu	r2,r9,804260 <_free_r+0x1d4>
  8041b4:	4806d0fa 	srli	r3,r9,3
  8041b8:	01802074 	movhi	r6,129
  8041bc:	31b2f004 	addi	r6,r6,-13376
  8041c0:	00800044 	movi	r2,1
  8041c4:	180890fa 	slli	r4,r3,3
  8041c8:	1807d0ba 	srai	r3,r3,2
  8041cc:	31400117 	ldw	r5,4(r6)
  8041d0:	2191883a 	add	r8,r4,r6
  8041d4:	41c00217 	ldw	r7,8(r8)
  8041d8:	10c4983a 	sll	r2,r2,r3
  8041dc:	52000315 	stw	r8,12(r10)
  8041e0:	51c00215 	stw	r7,8(r10)
  8041e4:	288ab03a 	or	r5,r5,r2
  8041e8:	3a800315 	stw	r10,12(r7)
  8041ec:	31400115 	stw	r5,4(r6)
  8041f0:	42800215 	stw	r10,8(r8)
  8041f4:	8809883a 	mov	r4,r17
  8041f8:	02002074 	movhi	r8,129
  8041fc:	42251b04 	addi	r8,r8,-27540
  804200:	dfc00217 	ldw	ra,8(sp)
  804204:	dc000117 	ldw	r16,4(sp)
  804208:	dc400017 	ldw	r17,0(sp)
  80420c:	dec00304 	addi	sp,sp,12
  804210:	4000683a 	jmp	r8
  804214:	2880004c 	andi	r2,r5,1
  804218:	4ad3883a 	add	r9,r9,r11
  80421c:	1000071e 	bne	r2,zero,80423c <_free_r+0x1b0>
  804220:	50c00017 	ldw	r3,0(r10)
  804224:	50d5c83a 	sub	r10,r10,r3
  804228:	52000317 	ldw	r8,12(r10)
  80422c:	51c00217 	ldw	r7,8(r10)
  804230:	48d3883a 	add	r9,r9,r3
  804234:	41c00215 	stw	r7,8(r8)
  804238:	3a000315 	stw	r8,12(r7)
  80423c:	d0a00a17 	ldw	r2,-32728(gp)
  804240:	48c00054 	ori	r3,r9,1
  804244:	62800215 	stw	r10,8(r12)
  804248:	50c00115 	stw	r3,4(r10)
  80424c:	48bfc036 	bltu	r9,r2,804150 <_free_r+0xc4>
  804250:	d1600917 	ldw	r5,-32732(gp)
  804254:	8809883a 	mov	r4,r17
  804258:	0803f680 	call	803f68 <_malloc_trim_r>
  80425c:	003fbc06 	br	804150 <_free_r+0xc4>
  804260:	4808d27a 	srli	r4,r9,9
  804264:	4806d0fa 	srli	r3,r9,3
  804268:	2000151e 	bne	r4,zero,8042c0 <_free_r+0x234>
  80426c:	180490fa 	slli	r2,r3,3
  804270:	01402074 	movhi	r5,129
  804274:	2972f004 	addi	r5,r5,-13376
  804278:	1311883a 	add	r8,r2,r12
  80427c:	41c00217 	ldw	r7,8(r8)
  804280:	3a001e26 	beq	r7,r8,8042fc <_free_r+0x270>
  804284:	38800117 	ldw	r2,4(r7)
  804288:	00ffff04 	movi	r3,-4
  80428c:	10c4703a 	and	r2,r2,r3
  804290:	4880052e 	bgeu	r9,r2,8042a8 <_free_r+0x21c>
  804294:	39c00217 	ldw	r7,8(r7)
  804298:	3a000326 	beq	r7,r8,8042a8 <_free_r+0x21c>
  80429c:	38800117 	ldw	r2,4(r7)
  8042a0:	10c4703a 	and	r2,r2,r3
  8042a4:	48bffb36 	bltu	r9,r2,804294 <_free_r+0x208>
  8042a8:	3a000317 	ldw	r8,12(r7)
  8042ac:	52000315 	stw	r8,12(r10)
  8042b0:	51c00215 	stw	r7,8(r10)
  8042b4:	3a800315 	stw	r10,12(r7)
  8042b8:	42800215 	stw	r10,8(r8)
  8042bc:	003fcd06 	br	8041f4 <_free_r+0x168>
  8042c0:	00800104 	movi	r2,4
  8042c4:	11000536 	bltu	r2,r4,8042dc <_free_r+0x250>
  8042c8:	4804d1ba 	srli	r2,r9,6
  8042cc:	10c00e04 	addi	r3,r2,56
  8042d0:	003fe606 	br	80426c <_free_r+0x1e0>
  8042d4:	01400044 	movi	r5,1
  8042d8:	003f8d06 	br	804110 <_free_r+0x84>
  8042dc:	00800504 	movi	r2,20
  8042e0:	20c016c4 	addi	r3,r4,91
  8042e4:	113fe12e 	bgeu	r2,r4,80426c <_free_r+0x1e0>
  8042e8:	00801504 	movi	r2,84
  8042ec:	11000a36 	bltu	r2,r4,804318 <_free_r+0x28c>
  8042f0:	4804d33a 	srli	r2,r9,12
  8042f4:	10c01b84 	addi	r3,r2,110
  8042f8:	003fdc06 	br	80426c <_free_r+0x1e0>
  8042fc:	1805d0ba 	srai	r2,r3,2
  804300:	00c00044 	movi	r3,1
  804304:	29000117 	ldw	r4,4(r5)
  804308:	1886983a 	sll	r3,r3,r2
  80430c:	20c8b03a 	or	r4,r4,r3
  804310:	29000115 	stw	r4,4(r5)
  804314:	003fe506 	br	8042ac <_free_r+0x220>
  804318:	00805504 	movi	r2,340
  80431c:	11000336 	bltu	r2,r4,80432c <_free_r+0x2a0>
  804320:	4804d3fa 	srli	r2,r9,15
  804324:	10c01dc4 	addi	r3,r2,119
  804328:	003fd006 	br	80426c <_free_r+0x1e0>
  80432c:	00815504 	movi	r2,1364
  804330:	00c01f84 	movi	r3,126
  804334:	113fcd36 	bltu	r2,r4,80426c <_free_r+0x1e0>
  804338:	4804d4ba 	srli	r2,r9,18
  80433c:	10c01f04 	addi	r3,r2,124
  804340:	003fca06 	br	80426c <_free_r+0x1e0>

00804344 <__sfvwrite>:
  804344:	defff704 	addi	sp,sp,-36
  804348:	dd000315 	stw	r20,12(sp)
  80434c:	dd400215 	stw	r21,8(sp)
  804350:	dfc00815 	stw	ra,32(sp)
  804354:	dc000715 	stw	r16,28(sp)
  804358:	dc400615 	stw	r17,24(sp)
  80435c:	dc800515 	stw	r18,20(sp)
  804360:	dcc00415 	stw	r19,16(sp)
  804364:	dd800115 	stw	r22,4(sp)
  804368:	ddc00015 	stw	r23,0(sp)
  80436c:	2c000217 	ldw	r16,8(r5)
  804370:	282b883a 	mov	r21,r5
  804374:	2029883a 	mov	r20,r4
  804378:	0007883a 	mov	r3,zero
  80437c:	80002826 	beq	r16,zero,804420 <__sfvwrite+0xdc>
  804380:	20c0030b 	ldhu	r3,12(r4)
  804384:	18bfffcc 	andi	r2,r3,65535
  804388:	1004d0fa 	srli	r2,r2,3
  80438c:	1080005c 	xori	r2,r2,1
  804390:	1080004c 	andi	r2,r2,1
  804394:	1000021e 	bne	r2,zero,8043a0 <__sfvwrite+0x5c>
  804398:	20800417 	ldw	r2,16(r4)
  80439c:	1000041e 	bne	r2,zero,8043b0 <__sfvwrite+0x6c>
  8043a0:	08026580 	call	802658 <__swsetup>
  8043a4:	00ffffc4 	movi	r3,-1
  8043a8:	10001d1e 	bne	r2,zero,804420 <__sfvwrite+0xdc>
  8043ac:	a0c0030b 	ldhu	r3,12(r20)
  8043b0:	193fffcc 	andi	r4,r3,65535
  8043b4:	2004d07a 	srli	r2,r4,1
  8043b8:	ac800017 	ldw	r18,0(r21)
  8043bc:	0021883a 	mov	r16,zero
  8043c0:	1080004c 	andi	r2,r2,1
  8043c4:	10002226 	beq	r2,zero,804450 <__sfvwrite+0x10c>
  8043c8:	8000041e 	bne	r16,zero,8043dc <__sfvwrite+0x98>
  8043cc:	94000117 	ldw	r16,4(r18)
  8043d0:	94c00017 	ldw	r19,0(r18)
  8043d4:	94800204 	addi	r18,r18,8
  8043d8:	803ffc26 	beq	r16,zero,8043cc <__sfvwrite+0x88>
  8043dc:	00810004 	movi	r2,1024
  8043e0:	a1000717 	ldw	r4,28(r20)
  8043e4:	800d883a 	mov	r6,r16
  8043e8:	1400012e 	bgeu	r2,r16,8043f0 <__sfvwrite+0xac>
  8043ec:	100d883a 	mov	r6,r2
  8043f0:	a0c00917 	ldw	r3,36(r20)
  8043f4:	980b883a 	mov	r5,r19
  8043f8:	183ee83a 	callr	r3
  8043fc:	1023883a 	mov	r17,r2
  804400:	00806d0e 	bge	zero,r2,8045b8 <__sfvwrite+0x274>
  804404:	a8800217 	ldw	r2,8(r21)
  804408:	9c67883a 	add	r19,r19,r17
  80440c:	8461c83a 	sub	r16,r16,r17
  804410:	1445c83a 	sub	r2,r2,r17
  804414:	a8800215 	stw	r2,8(r21)
  804418:	103feb1e 	bne	r2,zero,8043c8 <__sfvwrite+0x84>
  80441c:	0007883a 	mov	r3,zero
  804420:	1805883a 	mov	r2,r3
  804424:	dfc00817 	ldw	ra,32(sp)
  804428:	dc000717 	ldw	r16,28(sp)
  80442c:	dc400617 	ldw	r17,24(sp)
  804430:	dc800517 	ldw	r18,20(sp)
  804434:	dcc00417 	ldw	r19,16(sp)
  804438:	dd000317 	ldw	r20,12(sp)
  80443c:	dd400217 	ldw	r21,8(sp)
  804440:	dd800117 	ldw	r22,4(sp)
  804444:	ddc00017 	ldw	r23,0(sp)
  804448:	dec00904 	addi	sp,sp,36
  80444c:	f800283a 	ret
  804450:	2080004c 	andi	r2,r4,1
  804454:	002f883a 	mov	r23,zero
  804458:	1000481e 	bne	r2,zero,80457c <__sfvwrite+0x238>
  80445c:	8000041e 	bne	r16,zero,804470 <__sfvwrite+0x12c>
  804460:	94000117 	ldw	r16,4(r18)
  804464:	94c00017 	ldw	r19,0(r18)
  804468:	94800204 	addi	r18,r18,8
  80446c:	803ffc26 	beq	r16,zero,804460 <__sfvwrite+0x11c>
  804470:	18ffffcc 	andi	r3,r3,65535
  804474:	1804d27a 	srli	r2,r3,9
  804478:	a4400217 	ldw	r17,8(r20)
  80447c:	1080004c 	andi	r2,r2,1
  804480:	10006326 	beq	r2,zero,804610 <__sfvwrite+0x2cc>
  804484:	8c00032e 	bgeu	r17,r16,804494 <__sfvwrite+0x150>
  804488:	1804d1fa 	srli	r2,r3,7
  80448c:	1080004c 	andi	r2,r2,1
  804490:	10004e1e 	bne	r2,zero,8045cc <__sfvwrite+0x288>
  804494:	8440012e 	bgeu	r16,r17,80449c <__sfvwrite+0x158>
  804498:	8023883a 	mov	r17,r16
  80449c:	a1000017 	ldw	r4,0(r20)
  8044a0:	880d883a 	mov	r6,r17
  8044a4:	980b883a 	mov	r5,r19
  8044a8:	08052300 	call	805230 <memmove>
  8044ac:	a0c00217 	ldw	r3,8(r20)
  8044b0:	a0800017 	ldw	r2,0(r20)
  8044b4:	1c47c83a 	sub	r3,r3,r17
  8044b8:	1445883a 	add	r2,r2,r17
  8044bc:	8023883a 	mov	r17,r16
  8044c0:	a0c00215 	stw	r3,8(r20)
  8044c4:	a0800015 	stw	r2,0(r20)
  8044c8:	a8800217 	ldw	r2,8(r21)
  8044cc:	9c67883a 	add	r19,r19,r17
  8044d0:	8461c83a 	sub	r16,r16,r17
  8044d4:	1445c83a 	sub	r2,r2,r17
  8044d8:	a8800215 	stw	r2,8(r21)
  8044dc:	103fcf26 	beq	r2,zero,80441c <__sfvwrite+0xd8>
  8044e0:	a0c0030b 	ldhu	r3,12(r20)
  8044e4:	003fdd06 	br	80445c <__sfvwrite+0x118>
  8044e8:	b804c03a 	cmpne	r2,r23,zero
  8044ec:	1000091e 	bne	r2,zero,804514 <__sfvwrite+0x1d0>
  8044f0:	9809883a 	mov	r4,r19
  8044f4:	01400284 	movi	r5,10
  8044f8:	800d883a 	mov	r6,r16
  8044fc:	08050a80 	call	8050a8 <memchr>
  804500:	85800044 	addi	r22,r16,1
  804504:	10000226 	beq	r2,zero,804510 <__sfvwrite+0x1cc>
  804508:	14c5c83a 	sub	r2,r2,r19
  80450c:	15800044 	addi	r22,r2,1
  804510:	05c00044 	movi	r23,1
  804514:	b00b883a 	mov	r5,r22
  804518:	8580012e 	bgeu	r16,r22,804520 <__sfvwrite+0x1dc>
  80451c:	800b883a 	mov	r5,r16
  804520:	a0c00217 	ldw	r3,8(r20)
  804524:	a1c00517 	ldw	r7,20(r20)
  804528:	a1000017 	ldw	r4,0(r20)
  80452c:	a0800417 	ldw	r2,16(r20)
  804530:	19e3883a 	add	r17,r3,r7
  804534:	1100012e 	bgeu	r2,r4,80453c <__sfvwrite+0x1f8>
  804538:	89401616 	blt	r17,r5,804594 <__sfvwrite+0x250>
  80453c:	29c04c16 	blt	r5,r7,804670 <__sfvwrite+0x32c>
  804540:	a0c00917 	ldw	r3,36(r20)
  804544:	a1000717 	ldw	r4,28(r20)
  804548:	380d883a 	mov	r6,r7
  80454c:	980b883a 	mov	r5,r19
  804550:	183ee83a 	callr	r3
  804554:	1023883a 	mov	r17,r2
  804558:	0080170e 	bge	zero,r2,8045b8 <__sfvwrite+0x274>
  80455c:	b46dc83a 	sub	r22,r22,r17
  804560:	b0005026 	beq	r22,zero,8046a4 <__sfvwrite+0x360>
  804564:	a8800217 	ldw	r2,8(r21)
  804568:	9c67883a 	add	r19,r19,r17
  80456c:	8461c83a 	sub	r16,r16,r17
  804570:	1445c83a 	sub	r2,r2,r17
  804574:	a8800215 	stw	r2,8(r21)
  804578:	103fa826 	beq	r2,zero,80441c <__sfvwrite+0xd8>
  80457c:	803fda1e 	bne	r16,zero,8044e8 <__sfvwrite+0x1a4>
  804580:	94000117 	ldw	r16,4(r18)
  804584:	94c00017 	ldw	r19,0(r18)
  804588:	94800204 	addi	r18,r18,8
  80458c:	803ffc26 	beq	r16,zero,804580 <__sfvwrite+0x23c>
  804590:	003fd706 	br	8044f0 <__sfvwrite+0x1ac>
  804594:	980b883a 	mov	r5,r19
  804598:	880d883a 	mov	r6,r17
  80459c:	08052300 	call	805230 <memmove>
  8045a0:	a0c00017 	ldw	r3,0(r20)
  8045a4:	a009883a 	mov	r4,r20
  8045a8:	1c47883a 	add	r3,r3,r17
  8045ac:	a0c00015 	stw	r3,0(r20)
  8045b0:	0803d600 	call	803d60 <fflush>
  8045b4:	103fe926 	beq	r2,zero,80455c <__sfvwrite+0x218>
  8045b8:	a080030b 	ldhu	r2,12(r20)
  8045bc:	00ffffc4 	movi	r3,-1
  8045c0:	10801014 	ori	r2,r2,64
  8045c4:	a080030d 	sth	r2,12(r20)
  8045c8:	003f9506 	br	804420 <__sfvwrite+0xdc>
  8045cc:	a0800417 	ldw	r2,16(r20)
  8045d0:	a0c00017 	ldw	r3,0(r20)
  8045d4:	d1200017 	ldw	r4,-32768(gp)
  8045d8:	100b883a 	mov	r5,r2
  8045dc:	18a3c83a 	sub	r17,r3,r2
  8045e0:	8c2d883a 	add	r22,r17,r16
  8045e4:	b00d883a 	mov	r6,r22
  8045e8:	080629c0 	call	80629c <_realloc_r>
  8045ec:	1009883a 	mov	r4,r2
  8045f0:	103ff126 	beq	r2,zero,8045b8 <__sfvwrite+0x274>
  8045f4:	1445883a 	add	r2,r2,r17
  8045f8:	8023883a 	mov	r17,r16
  8045fc:	a0800015 	stw	r2,0(r20)
  804600:	a5800515 	stw	r22,20(r20)
  804604:	a1000415 	stw	r4,16(r20)
  804608:	a4000215 	stw	r16,8(r20)
  80460c:	003fa106 	br	804494 <__sfvwrite+0x150>
  804610:	a1000017 	ldw	r4,0(r20)
  804614:	a0800417 	ldw	r2,16(r20)
  804618:	1100012e 	bgeu	r2,r4,804620 <__sfvwrite+0x2dc>
  80461c:	8c002636 	bltu	r17,r16,8046b8 <__sfvwrite+0x374>
  804620:	a4400517 	ldw	r17,20(r20)
  804624:	84400836 	bltu	r16,r17,804648 <__sfvwrite+0x304>
  804628:	a0c00917 	ldw	r3,36(r20)
  80462c:	a1000717 	ldw	r4,28(r20)
  804630:	880d883a 	mov	r6,r17
  804634:	980b883a 	mov	r5,r19
  804638:	183ee83a 	callr	r3
  80463c:	1023883a 	mov	r17,r2
  804640:	00bfa116 	blt	zero,r2,8044c8 <__sfvwrite+0x184>
  804644:	003fdc06 	br	8045b8 <__sfvwrite+0x274>
  804648:	a1000017 	ldw	r4,0(r20)
  80464c:	980b883a 	mov	r5,r19
  804650:	800d883a 	mov	r6,r16
  804654:	08052300 	call	805230 <memmove>
  804658:	a0c00217 	ldw	r3,8(r20)
  80465c:	a0800017 	ldw	r2,0(r20)
  804660:	8023883a 	mov	r17,r16
  804664:	1c07c83a 	sub	r3,r3,r16
  804668:	1405883a 	add	r2,r2,r16
  80466c:	003f9406 	br	8044c0 <__sfvwrite+0x17c>
  804670:	a1000017 	ldw	r4,0(r20)
  804674:	2823883a 	mov	r17,r5
  804678:	880d883a 	mov	r6,r17
  80467c:	980b883a 	mov	r5,r19
  804680:	08052300 	call	805230 <memmove>
  804684:	a0c00217 	ldw	r3,8(r20)
  804688:	a0800017 	ldw	r2,0(r20)
  80468c:	b46dc83a 	sub	r22,r22,r17
  804690:	1c47c83a 	sub	r3,r3,r17
  804694:	1445883a 	add	r2,r2,r17
  804698:	a0c00215 	stw	r3,8(r20)
  80469c:	a0800015 	stw	r2,0(r20)
  8046a0:	b03fb01e 	bne	r22,zero,804564 <__sfvwrite+0x220>
  8046a4:	a009883a 	mov	r4,r20
  8046a8:	0803d600 	call	803d60 <fflush>
  8046ac:	103fc21e 	bne	r2,zero,8045b8 <__sfvwrite+0x274>
  8046b0:	002f883a 	mov	r23,zero
  8046b4:	003fab06 	br	804564 <__sfvwrite+0x220>
  8046b8:	980b883a 	mov	r5,r19
  8046bc:	880d883a 	mov	r6,r17
  8046c0:	08052300 	call	805230 <memmove>
  8046c4:	a0c00017 	ldw	r3,0(r20)
  8046c8:	a009883a 	mov	r4,r20
  8046cc:	1c47883a 	add	r3,r3,r17
  8046d0:	a0c00015 	stw	r3,0(r20)
  8046d4:	0803d600 	call	803d60 <fflush>
  8046d8:	103f7b26 	beq	r2,zero,8044c8 <__sfvwrite+0x184>
  8046dc:	003fb606 	br	8045b8 <__sfvwrite+0x274>

008046e0 <_fwalk>:
  8046e0:	d0a00017 	ldw	r2,-32768(gp)
  8046e4:	defffa04 	addi	sp,sp,-24
  8046e8:	dcc00115 	stw	r19,4(sp)
  8046ec:	dd000015 	stw	r20,0(sp)
  8046f0:	dfc00515 	stw	ra,20(sp)
  8046f4:	dc000415 	stw	r16,16(sp)
  8046f8:	dc400315 	stw	r17,12(sp)
  8046fc:	dc800215 	stw	r18,8(sp)
  804700:	2829883a 	mov	r20,r5
  804704:	0027883a 	mov	r19,zero
  804708:	20801126 	beq	r4,r2,804750 <_fwalk+0x70>
  80470c:	24809704 	addi	r18,r4,604
  804710:	90000f26 	beq	r18,zero,804750 <_fwalk+0x70>
  804714:	94400117 	ldw	r17,4(r18)
  804718:	94000217 	ldw	r16,8(r18)
  80471c:	8c7fffc4 	addi	r17,r17,-1
  804720:	88000816 	blt	r17,zero,804744 <_fwalk+0x64>
  804724:	8080030f 	ldh	r2,12(r16)
  804728:	8009883a 	mov	r4,r16
  80472c:	8c7fffc4 	addi	r17,r17,-1
  804730:	84001704 	addi	r16,r16,92
  804734:	103ffa26 	beq	r2,zero,804720 <_fwalk+0x40>
  804738:	a03ee83a 	callr	r20
  80473c:	98a6b03a 	or	r19,r19,r2
  804740:	883ff80e 	bge	r17,zero,804724 <_fwalk+0x44>
  804744:	94800017 	ldw	r18,0(r18)
  804748:	903ff21e 	bne	r18,zero,804714 <_fwalk+0x34>
  80474c:	d0a00017 	ldw	r2,-32768(gp)
  804750:	14809704 	addi	r18,r2,604
  804754:	90000e26 	beq	r18,zero,804790 <_fwalk+0xb0>
  804758:	94400117 	ldw	r17,4(r18)
  80475c:	94000217 	ldw	r16,8(r18)
  804760:	8c7fffc4 	addi	r17,r17,-1
  804764:	88000816 	blt	r17,zero,804788 <_fwalk+0xa8>
  804768:	8080030f 	ldh	r2,12(r16)
  80476c:	8009883a 	mov	r4,r16
  804770:	8c7fffc4 	addi	r17,r17,-1
  804774:	84001704 	addi	r16,r16,92
  804778:	103ffa26 	beq	r2,zero,804764 <_fwalk+0x84>
  80477c:	a03ee83a 	callr	r20
  804780:	98a6b03a 	or	r19,r19,r2
  804784:	883ff80e 	bge	r17,zero,804768 <_fwalk+0x88>
  804788:	94800017 	ldw	r18,0(r18)
  80478c:	903ff21e 	bne	r18,zero,804758 <_fwalk+0x78>
  804790:	9805883a 	mov	r2,r19
  804794:	dfc00517 	ldw	ra,20(sp)
  804798:	dc000417 	ldw	r16,16(sp)
  80479c:	dc400317 	ldw	r17,12(sp)
  8047a0:	dc800217 	ldw	r18,8(sp)
  8047a4:	dcc00117 	ldw	r19,4(sp)
  8047a8:	dd000017 	ldw	r20,0(sp)
  8047ac:	dec00604 	addi	sp,sp,24
  8047b0:	f800283a 	ret

008047b4 <_setlocale_r>:
  8047b4:	defffc04 	addi	sp,sp,-16
  8047b8:	dc000215 	stw	r16,8(sp)
  8047bc:	dc400115 	stw	r17,4(sp)
  8047c0:	dc800015 	stw	r18,0(sp)
  8047c4:	2023883a 	mov	r17,r4
  8047c8:	2825883a 	mov	r18,r5
  8047cc:	dfc00315 	stw	ra,12(sp)
  8047d0:	3021883a 	mov	r16,r6
  8047d4:	3009883a 	mov	r4,r6
  8047d8:	01402074 	movhi	r5,129
  8047dc:	2970f804 	addi	r5,r5,-15392
  8047e0:	30000726 	beq	r6,zero,804800 <_setlocale_r+0x4c>
  8047e4:	0806a300 	call	806a30 <strcmp>
  8047e8:	8009883a 	mov	r4,r16
  8047ec:	01402074 	movhi	r5,129
  8047f0:	2970e004 	addi	r5,r5,-15488
  8047f4:	10000b1e 	bne	r2,zero,804824 <_setlocale_r+0x70>
  8047f8:	8c000d15 	stw	r16,52(r17)
  8047fc:	8c800c15 	stw	r18,48(r17)
  804800:	00c02074 	movhi	r3,129
  804804:	18f0f804 	addi	r3,r3,-15392
  804808:	1805883a 	mov	r2,r3
  80480c:	dfc00317 	ldw	ra,12(sp)
  804810:	dc000217 	ldw	r16,8(sp)
  804814:	dc400117 	ldw	r17,4(sp)
  804818:	dc800017 	ldw	r18,0(sp)
  80481c:	dec00404 	addi	sp,sp,16
  804820:	f800283a 	ret
  804824:	0806a300 	call	806a30 <strcmp>
  804828:	0007883a 	mov	r3,zero
  80482c:	103ff61e 	bne	r2,zero,804808 <_setlocale_r+0x54>
  804830:	8c000d15 	stw	r16,52(r17)
  804834:	8c800c15 	stw	r18,48(r17)
  804838:	003ff106 	br	804800 <_setlocale_r+0x4c>

0080483c <__locale_charset>:
  80483c:	d0a00517 	ldw	r2,-32748(gp)
  804840:	f800283a 	ret

00804844 <_localeconv_r>:
  804844:	00802074 	movhi	r2,129
  804848:	10b0fc04 	addi	r2,r2,-15376
  80484c:	f800283a 	ret

00804850 <setlocale>:
  804850:	2007883a 	mov	r3,r4
  804854:	d1200017 	ldw	r4,-32768(gp)
  804858:	280d883a 	mov	r6,r5
  80485c:	02002034 	movhi	r8,128
  804860:	4211ed04 	addi	r8,r8,18356
  804864:	180b883a 	mov	r5,r3
  804868:	4000683a 	jmp	r8

0080486c <localeconv>:
  80486c:	d1200017 	ldw	r4,-32768(gp)
  804870:	02002034 	movhi	r8,128
  804874:	42121104 	addi	r8,r8,18500
  804878:	4000683a 	jmp	r8

0080487c <__smakebuf>:
  80487c:	deffee04 	addi	sp,sp,-72
  804880:	dc001015 	stw	r16,64(sp)
  804884:	dfc01115 	stw	ra,68(sp)
  804888:	dc400f15 	stw	r17,60(sp)
  80488c:	20c0030b 	ldhu	r3,12(r4)
  804890:	2021883a 	mov	r16,r4
  804894:	1804d07a 	srli	r2,r3,1
  804898:	1080004c 	andi	r2,r2,1
  80489c:	10000a26 	beq	r2,zero,8048c8 <__smakebuf+0x4c>
  8048a0:	20c010c4 	addi	r3,r4,67
  8048a4:	00800044 	movi	r2,1
  8048a8:	20800515 	stw	r2,20(r4)
  8048ac:	20c00415 	stw	r3,16(r4)
  8048b0:	20c00015 	stw	r3,0(r4)
  8048b4:	dfc01117 	ldw	ra,68(sp)
  8048b8:	dc001017 	ldw	r16,64(sp)
  8048bc:	dc400f17 	ldw	r17,60(sp)
  8048c0:	dec01204 	addi	sp,sp,72
  8048c4:	f800283a 	ret
  8048c8:	2140038f 	ldh	r5,14(r4)
  8048cc:	28001f16 	blt	r5,zero,80494c <__smakebuf+0xd0>
  8048d0:	d1200017 	ldw	r4,-32768(gp)
  8048d4:	d80d883a 	mov	r6,sp
  8048d8:	0806cb40 	call	806cb4 <_fstat_r>
  8048dc:	10001a16 	blt	r2,zero,804948 <__smakebuf+0xcc>
  8048e0:	d8800117 	ldw	r2,4(sp)
  8048e4:	00e00014 	movui	r3,32768
  8048e8:	04410004 	movi	r17,1024
  8048ec:	10bc000c 	andi	r2,r2,61440
  8048f0:	11080020 	cmpeqi	r4,r2,8192
  8048f4:	10c02c26 	beq	r2,r3,8049a8 <__smakebuf+0x12c>
  8048f8:	8080030b 	ldhu	r2,12(r16)
  8048fc:	10820014 	ori	r2,r2,2048
  804900:	8080030d 	sth	r2,12(r16)
  804904:	20001426 	beq	r4,zero,804958 <__smakebuf+0xdc>
  804908:	8100038f 	ldh	r4,14(r16)
  80490c:	08090c00 	call	8090c0 <isatty>
  804910:	10001126 	beq	r2,zero,804958 <__smakebuf+0xdc>
  804914:	8080030b 	ldhu	r2,12(r16)
  804918:	810010c4 	addi	r4,r16,67
  80491c:	00c00044 	movi	r3,1
  804920:	10800094 	ori	r2,r2,2
  804924:	80c00515 	stw	r3,20(r16)
  804928:	8080030d 	sth	r2,12(r16)
  80492c:	81000415 	stw	r4,16(r16)
  804930:	81000015 	stw	r4,0(r16)
  804934:	dfc01117 	ldw	ra,68(sp)
  804938:	dc001017 	ldw	r16,64(sp)
  80493c:	dc400f17 	ldw	r17,60(sp)
  804940:	dec01204 	addi	sp,sp,72
  804944:	f800283a 	ret
  804948:	80c0030b 	ldhu	r3,12(r16)
  80494c:	18820014 	ori	r2,r3,2048
  804950:	04410004 	movi	r17,1024
  804954:	8080030d 	sth	r2,12(r16)
  804958:	d1200017 	ldw	r4,-32768(gp)
  80495c:	01410004 	movi	r5,1024
  804960:	08049f00 	call	8049f0 <_malloc_r>
  804964:	100b883a 	mov	r5,r2
  804968:	103fea26 	beq	r2,zero,804914 <__smakebuf+0x98>
  80496c:	8080030b 	ldhu	r2,12(r16)
  804970:	d0e00017 	ldw	r3,-32768(gp)
  804974:	01002034 	movhi	r4,128
  804978:	210faa04 	addi	r4,r4,16040
  80497c:	10802014 	ori	r2,r2,128
  804980:	19000f15 	stw	r4,60(r3)
  804984:	84400515 	stw	r17,20(r16)
  804988:	8080030d 	sth	r2,12(r16)
  80498c:	81400415 	stw	r5,16(r16)
  804990:	81400015 	stw	r5,0(r16)
  804994:	dfc01117 	ldw	ra,68(sp)
  804998:	dc001017 	ldw	r16,64(sp)
  80499c:	dc400f17 	ldw	r17,60(sp)
  8049a0:	dec01204 	addi	sp,sp,72
  8049a4:	f800283a 	ret
  8049a8:	80c00a17 	ldw	r3,40(r16)
  8049ac:	00802034 	movhi	r2,128
  8049b0:	109a6904 	addi	r2,r2,27044
  8049b4:	18bfd01e 	bne	r3,r2,8048f8 <__smakebuf+0x7c>
  8049b8:	8080030b 	ldhu	r2,12(r16)
  8049bc:	84401315 	stw	r17,76(r16)
  8049c0:	1444b03a 	or	r2,r2,r17
  8049c4:	003fce06 	br	804900 <__smakebuf+0x84>

008049c8 <malloc>:
  8049c8:	200b883a 	mov	r5,r4
  8049cc:	d1200017 	ldw	r4,-32768(gp)
  8049d0:	02002034 	movhi	r8,128
  8049d4:	42127c04 	addi	r8,r8,18928
  8049d8:	4000683a 	jmp	r8

008049dc <free>:
  8049dc:	200b883a 	mov	r5,r4
  8049e0:	d1200017 	ldw	r4,-32768(gp)
  8049e4:	02002034 	movhi	r8,128
  8049e8:	42102304 	addi	r8,r8,16524
  8049ec:	4000683a 	jmp	r8

008049f0 <_malloc_r>:
  8049f0:	defff504 	addi	sp,sp,-44
  8049f4:	28c002c4 	addi	r3,r5,11
  8049f8:	00800584 	movi	r2,22
  8049fc:	dc400715 	stw	r17,28(sp)
  804a00:	dc800615 	stw	r18,24(sp)
  804a04:	dfc00a15 	stw	ra,40(sp)
  804a08:	df000915 	stw	fp,36(sp)
  804a0c:	dc000815 	stw	r16,32(sp)
  804a10:	dcc00515 	stw	r19,20(sp)
  804a14:	dd000415 	stw	r20,16(sp)
  804a18:	dd400315 	stw	r21,12(sp)
  804a1c:	dd800215 	stw	r22,8(sp)
  804a20:	ddc00115 	stw	r23,4(sp)
  804a24:	2025883a 	mov	r18,r4
  804a28:	04400404 	movi	r17,16
  804a2c:	10c0032e 	bgeu	r2,r3,804a3c <_malloc_r+0x4c>
  804a30:	00bffe04 	movi	r2,-8
  804a34:	18a2703a 	and	r17,r3,r2
  804a38:	88000116 	blt	r17,zero,804a40 <_malloc_r+0x50>
  804a3c:	89400d2e 	bgeu	r17,r5,804a74 <_malloc_r+0x84>
  804a40:	0005883a 	mov	r2,zero
  804a44:	dfc00a17 	ldw	ra,40(sp)
  804a48:	df000917 	ldw	fp,36(sp)
  804a4c:	dc000817 	ldw	r16,32(sp)
  804a50:	dc400717 	ldw	r17,28(sp)
  804a54:	dc800617 	ldw	r18,24(sp)
  804a58:	dcc00517 	ldw	r19,20(sp)
  804a5c:	dd000417 	ldw	r20,16(sp)
  804a60:	dd400317 	ldw	r21,12(sp)
  804a64:	dd800217 	ldw	r22,8(sp)
  804a68:	ddc00117 	ldw	r23,4(sp)
  804a6c:	dec00b04 	addi	sp,sp,44
  804a70:	f800283a 	ret
  804a74:	9009883a 	mov	r4,r18
  804a78:	08094500 	call	809450 <__malloc_lock>
  804a7c:	00807dc4 	movi	r2,503
  804a80:	14401536 	bltu	r2,r17,804ad8 <_malloc_r+0xe8>
  804a84:	03402074 	movhi	r13,129
  804a88:	6b72f004 	addi	r13,r13,-13376
  804a8c:	8b4d883a 	add	r6,r17,r13
  804a90:	34000317 	ldw	r16,12(r6)
  804a94:	8812d0fa 	srli	r9,r17,3
  804a98:	81803e26 	beq	r16,r6,804b94 <_malloc_r+0x1a4>
  804a9c:	80c00117 	ldw	r3,4(r16)
  804aa0:	00bfff04 	movi	r2,-4
  804aa4:	82000317 	ldw	r8,12(r16)
  804aa8:	1886703a 	and	r3,r3,r2
  804aac:	80cb883a 	add	r5,r16,r3
  804ab0:	28800117 	ldw	r2,4(r5)
  804ab4:	81c00217 	ldw	r7,8(r16)
  804ab8:	9009883a 	mov	r4,r18
  804abc:	10800054 	ori	r2,r2,1
  804ac0:	41c00215 	stw	r7,8(r8)
  804ac4:	28800115 	stw	r2,4(r5)
  804ac8:	3a000315 	stw	r8,12(r7)
  804acc:	080946c0 	call	80946c <__malloc_unlock>
  804ad0:	80800204 	addi	r2,r16,8
  804ad4:	003fdb06 	br	804a44 <_malloc_r+0x54>
  804ad8:	8806d27a 	srli	r3,r17,9
  804adc:	8812d0fa 	srli	r9,r17,3
  804ae0:	18000926 	beq	r3,zero,804b08 <_malloc_r+0x118>
  804ae4:	00800104 	movi	r2,4
  804ae8:	10c02f2e 	bgeu	r2,r3,804ba8 <_malloc_r+0x1b8>
  804aec:	00800504 	movi	r2,20
  804af0:	1a4016c4 	addi	r9,r3,91
  804af4:	10c0042e 	bgeu	r2,r3,804b08 <_malloc_r+0x118>
  804af8:	00801504 	movi	r2,84
  804afc:	10c11536 	bltu	r2,r3,804f54 <_malloc_r+0x564>
  804b00:	8804d33a 	srli	r2,r17,12
  804b04:	12401b84 	addi	r9,r2,110
  804b08:	480490fa 	slli	r2,r9,3
  804b0c:	03402074 	movhi	r13,129
  804b10:	6b72f004 	addi	r13,r13,-13376
  804b14:	134b883a 	add	r5,r2,r13
  804b18:	2c000317 	ldw	r16,12(r5)
  804b1c:	81400926 	beq	r16,r5,804b44 <_malloc_r+0x154>
  804b20:	01ffff04 	movi	r7,-4
  804b24:	018003c4 	movi	r6,15
  804b28:	80800117 	ldw	r2,4(r16)
  804b2c:	11c6703a 	and	r3,r2,r7
  804b30:	1c49c83a 	sub	r4,r3,r17
  804b34:	3100aa16 	blt	r6,r4,804de0 <_malloc_r+0x3f0>
  804b38:	2000690e 	bge	r4,zero,804ce0 <_malloc_r+0x2f0>
  804b3c:	84000317 	ldw	r16,12(r16)
  804b40:	817ff91e 	bne	r16,r5,804b28 <_malloc_r+0x138>
  804b44:	4a400044 	addi	r9,r9,1
  804b48:	03002074 	movhi	r12,129
  804b4c:	6332f204 	addi	r12,r12,-13368
  804b50:	64000217 	ldw	r16,8(r12)
  804b54:	83002826 	beq	r16,r12,804bf8 <_malloc_r+0x208>
  804b58:	80800117 	ldw	r2,4(r16)
  804b5c:	00ffff04 	movi	r3,-4
  804b60:	10c6703a 	and	r3,r2,r3
  804b64:	1c49c83a 	sub	r4,r3,r17
  804b68:	008003c4 	movi	r2,15
  804b6c:	11006616 	blt	r2,r4,804d08 <_malloc_r+0x318>
  804b70:	63000315 	stw	r12,12(r12)
  804b74:	63000215 	stw	r12,8(r12)
  804b78:	20000e16 	blt	r4,zero,804bb4 <_malloc_r+0x1c4>
  804b7c:	80c7883a 	add	r3,r16,r3
  804b80:	18800117 	ldw	r2,4(r3)
  804b84:	9009883a 	mov	r4,r18
  804b88:	10800054 	ori	r2,r2,1
  804b8c:	18800115 	stw	r2,4(r3)
  804b90:	003fce06 	br	804acc <_malloc_r+0xdc>
  804b94:	81800204 	addi	r6,r16,8
  804b98:	34000317 	ldw	r16,12(r6)
  804b9c:	81bfbf1e 	bne	r16,r6,804a9c <_malloc_r+0xac>
  804ba0:	4a400084 	addi	r9,r9,2
  804ba4:	003fe806 	br	804b48 <_malloc_r+0x158>
  804ba8:	8804d1ba 	srli	r2,r17,6
  804bac:	12400e04 	addi	r9,r2,56
  804bb0:	003fd506 	br	804b08 <_malloc_r+0x118>
  804bb4:	00807fc4 	movi	r2,511
  804bb8:	10c09436 	bltu	r2,r3,804e0c <_malloc_r+0x41c>
  804bbc:	1808d0fa 	srli	r4,r3,3
  804bc0:	61bffe04 	addi	r6,r12,-8
  804bc4:	00800044 	movi	r2,1
  804bc8:	200a90fa 	slli	r5,r4,3
  804bcc:	2007d0ba 	srai	r3,r4,2
  804bd0:	31000117 	ldw	r4,4(r6)
  804bd4:	2991883a 	add	r8,r5,r6
  804bd8:	41c00217 	ldw	r7,8(r8)
  804bdc:	10c4983a 	sll	r2,r2,r3
  804be0:	82000315 	stw	r8,12(r16)
  804be4:	81c00215 	stw	r7,8(r16)
  804be8:	2088b03a 	or	r4,r4,r2
  804bec:	3c000315 	stw	r16,12(r7)
  804bf0:	31000115 	stw	r4,4(r6)
  804bf4:	44000215 	stw	r16,8(r8)
  804bf8:	4807883a 	mov	r3,r9
  804bfc:	4800a616 	blt	r9,zero,804e98 <_malloc_r+0x4a8>
  804c00:	1807d0ba 	srai	r3,r3,2
  804c04:	03402074 	movhi	r13,129
  804c08:	6b72f004 	addi	r13,r13,-13376
  804c0c:	00800044 	movi	r2,1
  804c10:	10ce983a 	sll	r7,r2,r3
  804c14:	69000117 	ldw	r4,4(r13)
  804c18:	21c04836 	bltu	r4,r7,804d3c <_malloc_r+0x34c>
  804c1c:	21c4703a 	and	r2,r4,r7
  804c20:	10000a1e 	bne	r2,zero,804c4c <_malloc_r+0x25c>
  804c24:	39cf883a 	add	r7,r7,r7
  804c28:	00bfff04 	movi	r2,-4
  804c2c:	4884703a 	and	r2,r9,r2
  804c30:	21c6703a 	and	r3,r4,r7
  804c34:	12400104 	addi	r9,r2,4
  804c38:	1800041e 	bne	r3,zero,804c4c <_malloc_r+0x25c>
  804c3c:	39cf883a 	add	r7,r7,r7
  804c40:	4a400104 	addi	r9,r9,4
  804c44:	21c4703a 	and	r2,r4,r7
  804c48:	103ffc26 	beq	r2,zero,804c3c <_malloc_r+0x24c>
  804c4c:	480490fa 	slli	r2,r9,3
  804c50:	4817883a 	mov	r11,r9
  804c54:	134d883a 	add	r6,r2,r13
  804c58:	300b883a 	mov	r5,r6
  804c5c:	2c000317 	ldw	r16,12(r5)
  804c60:	81400926 	beq	r16,r5,804c88 <_malloc_r+0x298>
  804c64:	02bfff04 	movi	r10,-4
  804c68:	020003c4 	movi	r8,15
  804c6c:	80800117 	ldw	r2,4(r16)
  804c70:	1286703a 	and	r3,r2,r10
  804c74:	1c49c83a 	sub	r4,r3,r17
  804c78:	41008016 	blt	r8,r4,804e7c <_malloc_r+0x48c>
  804c7c:	2000180e 	bge	r4,zero,804ce0 <_malloc_r+0x2f0>
  804c80:	84000317 	ldw	r16,12(r16)
  804c84:	817ff91e 	bne	r16,r5,804c6c <_malloc_r+0x27c>
  804c88:	4a400044 	addi	r9,r9,1
  804c8c:	488000cc 	andi	r2,r9,3
  804c90:	29400204 	addi	r5,r5,8
  804c94:	103ff11e 	bne	r2,zero,804c5c <_malloc_r+0x26c>
  804c98:	588000cc 	andi	r2,r11,3
  804c9c:	31bffe04 	addi	r6,r6,-8
  804ca0:	5affffc4 	addi	r11,r11,-1
  804ca4:	1000e526 	beq	r2,zero,80503c <_malloc_r+0x64c>
  804ca8:	30800217 	ldw	r2,8(r6)
  804cac:	11bffa26 	beq	r2,r6,804c98 <_malloc_r+0x2a8>
  804cb0:	03402074 	movhi	r13,129
  804cb4:	6b72f004 	addi	r13,r13,-13376
  804cb8:	39cf883a 	add	r7,r7,r7
  804cbc:	68c00117 	ldw	r3,4(r13)
  804cc0:	19c01e36 	bltu	r3,r7,804d3c <_malloc_r+0x34c>
  804cc4:	3800031e 	bne	r7,zero,804cd4 <_malloc_r+0x2e4>
  804cc8:	00001c06 	br	804d3c <_malloc_r+0x34c>
  804ccc:	39cf883a 	add	r7,r7,r7
  804cd0:	4a400104 	addi	r9,r9,4
  804cd4:	19c4703a 	and	r2,r3,r7
  804cd8:	103ffc26 	beq	r2,zero,804ccc <_malloc_r+0x2dc>
  804cdc:	003fdb06 	br	804c4c <_malloc_r+0x25c>
  804ce0:	80c7883a 	add	r3,r16,r3
  804ce4:	18800117 	ldw	r2,4(r3)
  804ce8:	82000317 	ldw	r8,12(r16)
  804cec:	81c00217 	ldw	r7,8(r16)
  804cf0:	10800054 	ori	r2,r2,1
  804cf4:	9009883a 	mov	r4,r18
  804cf8:	18800115 	stw	r2,4(r3)
  804cfc:	41c00215 	stw	r7,8(r8)
  804d00:	3a000315 	stw	r8,12(r7)
  804d04:	003f7106 	br	804acc <_malloc_r+0xdc>
  804d08:	88800054 	ori	r2,r17,1
  804d0c:	844b883a 	add	r5,r16,r17
  804d10:	80800115 	stw	r2,4(r16)
  804d14:	2905883a 	add	r2,r5,r4
  804d18:	20c00054 	ori	r3,r4,1
  804d1c:	61400315 	stw	r5,12(r12)
  804d20:	61400215 	stw	r5,8(r12)
  804d24:	11000015 	stw	r4,0(r2)
  804d28:	9009883a 	mov	r4,r18
  804d2c:	2b000215 	stw	r12,8(r5)
  804d30:	28c00115 	stw	r3,4(r5)
  804d34:	2b000315 	stw	r12,12(r5)
  804d38:	003f6406 	br	804acc <_malloc_r+0xdc>
  804d3c:	6d400217 	ldw	r21,8(r13)
  804d40:	00bfff04 	movi	r2,-4
  804d44:	a8c00117 	ldw	r3,4(r21)
  804d48:	18ac703a 	and	r22,r3,r2
  804d4c:	b449c83a 	sub	r4,r22,r17
  804d50:	b4400236 	bltu	r22,r17,804d5c <_malloc_r+0x36c>
  804d54:	008003c4 	movi	r2,15
  804d58:	11002316 	blt	r2,r4,804de8 <_malloc_r+0x3f8>
  804d5c:	d0a00917 	ldw	r2,-32732(gp)
  804d60:	073fffc4 	movi	fp,-1
  804d64:	b02f883a 	mov	r23,r22
  804d68:	8887883a 	add	r3,r17,r2
  804d6c:	d0a00817 	ldw	r2,-32736(gp)
  804d70:	ada7883a 	add	r19,r21,r22
  804d74:	1d000404 	addi	r20,r3,16
  804d78:	17000326 	beq	r2,fp,804d88 <_malloc_r+0x398>
  804d7c:	18c403c4 	addi	r3,r3,4111
  804d80:	00bc0004 	movi	r2,-4096
  804d84:	18a8703a 	and	r20,r3,r2
  804d88:	9009883a 	mov	r4,r18
  804d8c:	a00b883a 	mov	r5,r20
  804d90:	db400015 	stw	r13,0(sp)
  804d94:	08068640 	call	806864 <_sbrk_r>
  804d98:	1021883a 	mov	r16,r2
  804d9c:	db400017 	ldw	r13,0(sp)
  804da0:	17000426 	beq	r2,fp,804db4 <_malloc_r+0x3c4>
  804da4:	14c03e2e 	bgeu	r2,r19,804ea0 <_malloc_r+0x4b0>
  804da8:	00802074 	movhi	r2,129
  804dac:	10b2f004 	addi	r2,r2,-13376
  804db0:	a8803b26 	beq	r21,r2,804ea0 <_malloc_r+0x4b0>
  804db4:	68800217 	ldw	r2,8(r13)
  804db8:	013fff04 	movi	r4,-4
  804dbc:	10c00117 	ldw	r3,4(r2)
  804dc0:	1906703a 	and	r3,r3,r4
  804dc4:	1c49c83a 	sub	r4,r3,r17
  804dc8:	1c400236 	bltu	r3,r17,804dd4 <_malloc_r+0x3e4>
  804dcc:	008003c4 	movi	r2,15
  804dd0:	11000516 	blt	r2,r4,804de8 <_malloc_r+0x3f8>
  804dd4:	9009883a 	mov	r4,r18
  804dd8:	080946c0 	call	80946c <__malloc_unlock>
  804ddc:	003f1806 	br	804a40 <_malloc_r+0x50>
  804de0:	4a7fffc4 	addi	r9,r9,-1
  804de4:	003f5706 	br	804b44 <_malloc_r+0x154>
  804de8:	6c000217 	ldw	r16,8(r13)
  804dec:	88800054 	ori	r2,r17,1
  804df0:	21000054 	ori	r4,r4,1
  804df4:	8447883a 	add	r3,r16,r17
  804df8:	80800115 	stw	r2,4(r16)
  804dfc:	19000115 	stw	r4,4(r3)
  804e00:	9009883a 	mov	r4,r18
  804e04:	68c00215 	stw	r3,8(r13)
  804e08:	003f3006 	br	804acc <_malloc_r+0xdc>
  804e0c:	180ad27a 	srli	r5,r3,9
  804e10:	1808d0fa 	srli	r4,r3,3
  804e14:	28000426 	beq	r5,zero,804e28 <_malloc_r+0x438>
  804e18:	00800104 	movi	r2,4
  804e1c:	11405836 	bltu	r2,r5,804f80 <_malloc_r+0x590>
  804e20:	1804d1ba 	srli	r2,r3,6
  804e24:	11000e04 	addi	r4,r2,56
  804e28:	200490fa 	slli	r2,r4,3
  804e2c:	01402074 	movhi	r5,129
  804e30:	2972f004 	addi	r5,r5,-13376
  804e34:	1351883a 	add	r8,r2,r13
  804e38:	41c00217 	ldw	r7,8(r8)
  804e3c:	3a006d26 	beq	r7,r8,804ff4 <_malloc_r+0x604>
  804e40:	38800117 	ldw	r2,4(r7)
  804e44:	013fff04 	movi	r4,-4
  804e48:	1104703a 	and	r2,r2,r4
  804e4c:	1880052e 	bgeu	r3,r2,804e64 <_malloc_r+0x474>
  804e50:	39c00217 	ldw	r7,8(r7)
  804e54:	3a000326 	beq	r7,r8,804e64 <_malloc_r+0x474>
  804e58:	38800117 	ldw	r2,4(r7)
  804e5c:	1104703a 	and	r2,r2,r4
  804e60:	18bffb36 	bltu	r3,r2,804e50 <_malloc_r+0x460>
  804e64:	3a000317 	ldw	r8,12(r7)
  804e68:	82000315 	stw	r8,12(r16)
  804e6c:	81c00215 	stw	r7,8(r16)
  804e70:	3c000315 	stw	r16,12(r7)
  804e74:	44000215 	stw	r16,8(r8)
  804e78:	003f5f06 	br	804bf8 <_malloc_r+0x208>
  804e7c:	82000317 	ldw	r8,12(r16)
  804e80:	81c00217 	ldw	r7,8(r16)
  804e84:	88800054 	ori	r2,r17,1
  804e88:	844b883a 	add	r5,r16,r17
  804e8c:	41c00215 	stw	r7,8(r8)
  804e90:	3a000315 	stw	r8,12(r7)
  804e94:	003f9e06 	br	804d10 <_malloc_r+0x320>
  804e98:	48c000c4 	addi	r3,r9,3
  804e9c:	003f5806 	br	804c00 <_malloc_r+0x210>
  804ea0:	07002074 	movhi	fp,129
  804ea4:	e732e604 	addi	fp,fp,-13416
  804ea8:	e0800017 	ldw	r2,0(fp)
  804eac:	1505883a 	add	r2,r2,r20
  804eb0:	e0800015 	stw	r2,0(fp)
  804eb4:	84c05826 	beq	r16,r19,805018 <_malloc_r+0x628>
  804eb8:	d0e00817 	ldw	r3,-32736(gp)
  804ebc:	00bfffc4 	movi	r2,-1
  804ec0:	18805326 	beq	r3,r2,805010 <_malloc_r+0x620>
  804ec4:	e0800017 	ldw	r2,0(fp)
  804ec8:	84c7c83a 	sub	r3,r16,r19
  804ecc:	10c5883a 	add	r2,r2,r3
  804ed0:	e0800015 	stw	r2,0(fp)
  804ed4:	80c001cc 	andi	r3,r16,7
  804ed8:	0027883a 	mov	r19,zero
  804edc:	18000326 	beq	r3,zero,804eec <_malloc_r+0x4fc>
  804ee0:	00800204 	movi	r2,8
  804ee4:	10e7c83a 	sub	r19,r2,r3
  804ee8:	84e1883a 	add	r16,r16,r19
  804eec:	8505883a 	add	r2,r16,r20
  804ef0:	1083ffcc 	andi	r2,r2,4095
  804ef4:	00c40004 	movi	r3,4096
  804ef8:	1887c83a 	sub	r3,r3,r2
  804efc:	98e7883a 	add	r19,r19,r3
  804f00:	9009883a 	mov	r4,r18
  804f04:	980b883a 	mov	r5,r19
  804f08:	db400015 	stw	r13,0(sp)
  804f0c:	08068640 	call	806864 <_sbrk_r>
  804f10:	1007883a 	mov	r3,r2
  804f14:	00bfffc4 	movi	r2,-1
  804f18:	db400017 	ldw	r13,0(sp)
  804f1c:	18804e26 	beq	r3,r2,805058 <_malloc_r+0x668>
  804f20:	e0800017 	ldw	r2,0(fp)
  804f24:	1c07c83a 	sub	r3,r3,r16
  804f28:	1cc9883a 	add	r4,r3,r19
  804f2c:	14c5883a 	add	r2,r2,r19
  804f30:	e0800015 	stw	r2,0(fp)
  804f34:	6c000215 	stw	r16,8(r13)
  804f38:	20800054 	ori	r2,r4,1
  804f3c:	ab404426 	beq	r21,r13,805050 <_malloc_r+0x660>
  804f40:	014003c4 	movi	r5,15
  804f44:	2d801636 	bltu	r5,r22,804fa0 <_malloc_r+0x5b0>
  804f48:	00800044 	movi	r2,1
  804f4c:	80800115 	stw	r2,4(r16)
  804f50:	003f9806 	br	804db4 <_malloc_r+0x3c4>
  804f54:	00805504 	movi	r2,340
  804f58:	10c00336 	bltu	r2,r3,804f68 <_malloc_r+0x578>
  804f5c:	8804d3fa 	srli	r2,r17,15
  804f60:	12401dc4 	addi	r9,r2,119
  804f64:	003ee806 	br	804b08 <_malloc_r+0x118>
  804f68:	00815504 	movi	r2,1364
  804f6c:	02401f84 	movi	r9,126
  804f70:	10fee536 	bltu	r2,r3,804b08 <_malloc_r+0x118>
  804f74:	8804d4ba 	srli	r2,r17,18
  804f78:	12401f04 	addi	r9,r2,124
  804f7c:	003ee206 	br	804b08 <_malloc_r+0x118>
  804f80:	00800504 	movi	r2,20
  804f84:	290016c4 	addi	r4,r5,91
  804f88:	117fa72e 	bgeu	r2,r5,804e28 <_malloc_r+0x438>
  804f8c:	00801504 	movi	r2,84
  804f90:	11403a36 	bltu	r2,r5,80507c <_malloc_r+0x68c>
  804f94:	1804d33a 	srli	r2,r3,12
  804f98:	11001b84 	addi	r4,r2,110
  804f9c:	003fa206 	br	804e28 <_malloc_r+0x438>
  804fa0:	80800115 	stw	r2,4(r16)
  804fa4:	a8800117 	ldw	r2,4(r21)
  804fa8:	00fffe04 	movi	r3,-8
  804fac:	b13ffd04 	addi	r4,r22,-12
  804fb0:	20ee703a 	and	r23,r4,r3
  804fb4:	1080004c 	andi	r2,r2,1
  804fb8:	15c4b03a 	or	r2,r2,r23
  804fbc:	a8800115 	stw	r2,4(r21)
  804fc0:	adc7883a 	add	r3,r21,r23
  804fc4:	00800144 	movi	r2,5
  804fc8:	18800215 	stw	r2,8(r3)
  804fcc:	18800115 	stw	r2,4(r3)
  804fd0:	2dc02436 	bltu	r5,r23,805064 <_malloc_r+0x674>
  804fd4:	e0c00017 	ldw	r3,0(fp)
  804fd8:	d0a00717 	ldw	r2,-32740(gp)
  804fdc:	10c0012e 	bgeu	r2,r3,804fe4 <_malloc_r+0x5f4>
  804fe0:	d0e00715 	stw	r3,-32740(gp)
  804fe4:	d0a00617 	ldw	r2,-32744(gp)
  804fe8:	10ff722e 	bgeu	r2,r3,804db4 <_malloc_r+0x3c4>
  804fec:	d0e00615 	stw	r3,-32744(gp)
  804ff0:	003f7006 	br	804db4 <_malloc_r+0x3c4>
  804ff4:	2005d0ba 	srai	r2,r4,2
  804ff8:	00c00044 	movi	r3,1
  804ffc:	29000117 	ldw	r4,4(r5)
  805000:	1886983a 	sll	r3,r3,r2
  805004:	20c8b03a 	or	r4,r4,r3
  805008:	29000115 	stw	r4,4(r5)
  80500c:	003f9606 	br	804e68 <_malloc_r+0x478>
  805010:	d4200815 	stw	r16,-32736(gp)
  805014:	003faf06 	br	804ed4 <_malloc_r+0x4e4>
  805018:	8083ffcc 	andi	r2,r16,4095
  80501c:	103fa61e 	bne	r2,zero,804eb8 <_malloc_r+0x4c8>
  805020:	00802074 	movhi	r2,129
  805024:	10b2f004 	addi	r2,r2,-13376
  805028:	10c00217 	ldw	r3,8(r2)
  80502c:	a5c9883a 	add	r4,r20,r23
  805030:	20800054 	ori	r2,r4,1
  805034:	18800115 	stw	r2,4(r3)
  805038:	003fe606 	br	804fd4 <_malloc_r+0x5e4>
  80503c:	68800117 	ldw	r2,4(r13)
  805040:	01c6303a 	nor	r3,zero,r7
  805044:	10c4703a 	and	r2,r2,r3
  805048:	68800115 	stw	r2,4(r13)
  80504c:	003f1806 	br	804cb0 <_malloc_r+0x2c0>
  805050:	80800115 	stw	r2,4(r16)
  805054:	003fdf06 	br	804fd4 <_malloc_r+0x5e4>
  805058:	0027883a 	mov	r19,zero
  80505c:	8007883a 	mov	r3,r16
  805060:	003faf06 	br	804f20 <_malloc_r+0x530>
  805064:	a9400204 	addi	r5,r21,8
  805068:	9009883a 	mov	r4,r18
  80506c:	db400015 	stw	r13,0(sp)
  805070:	080408c0 	call	80408c <_free_r>
  805074:	db400017 	ldw	r13,0(sp)
  805078:	003fd606 	br	804fd4 <_malloc_r+0x5e4>
  80507c:	00805504 	movi	r2,340
  805080:	11400336 	bltu	r2,r5,805090 <_malloc_r+0x6a0>
  805084:	1804d3fa 	srli	r2,r3,15
  805088:	11001dc4 	addi	r4,r2,119
  80508c:	003f6606 	br	804e28 <_malloc_r+0x438>
  805090:	00815504 	movi	r2,1364
  805094:	01001f84 	movi	r4,126
  805098:	117f6336 	bltu	r2,r5,804e28 <_malloc_r+0x438>
  80509c:	1804d4ba 	srli	r2,r3,18
  8050a0:	11001f04 	addi	r4,r2,124
  8050a4:	003f6006 	br	804e28 <_malloc_r+0x438>

008050a8 <memchr>:
  8050a8:	020000c4 	movi	r8,3
  8050ac:	29403fcc 	andi	r5,r5,255
  8050b0:	4180022e 	bgeu	r8,r6,8050bc <memchr+0x14>
  8050b4:	2204703a 	and	r2,r4,r8
  8050b8:	10000b26 	beq	r2,zero,8050e8 <memchr+0x40>
  8050bc:	31bfffc4 	addi	r6,r6,-1
  8050c0:	00bfffc4 	movi	r2,-1
  8050c4:	30800626 	beq	r6,r2,8050e0 <memchr+0x38>
  8050c8:	1007883a 	mov	r3,r2
  8050cc:	20800003 	ldbu	r2,0(r4)
  8050d0:	31bfffc4 	addi	r6,r6,-1
  8050d4:	11402526 	beq	r2,r5,80516c <memchr+0xc4>
  8050d8:	21000044 	addi	r4,r4,1
  8050dc:	30fffb1e 	bne	r6,r3,8050cc <memchr+0x24>
  8050e0:	0005883a 	mov	r2,zero
  8050e4:	f800283a 	ret
  8050e8:	200f883a 	mov	r7,r4
  8050ec:	0013883a 	mov	r9,zero
  8050f0:	0007883a 	mov	r3,zero
  8050f4:	4804923a 	slli	r2,r9,8
  8050f8:	18c00044 	addi	r3,r3,1
  8050fc:	1153883a 	add	r9,r2,r5
  805100:	40fffc2e 	bgeu	r8,r3,8050f4 <memchr+0x4c>
  805104:	028000c4 	movi	r10,3
  805108:	5180162e 	bgeu	r10,r6,805164 <memchr+0xbc>
  80510c:	033fbff4 	movhi	r12,65279
  805110:	633fbfc4 	addi	r12,r12,-257
  805114:	02e02074 	movhi	r11,32897
  805118:	5ae02004 	addi	r11,r11,-32640
  80511c:	38800017 	ldw	r2,0(r7)
  805120:	1244f03a 	xor	r2,r2,r9
  805124:	0086303a 	nor	r3,zero,r2
  805128:	1305883a 	add	r2,r2,r12
  80512c:	10c4703a 	and	r2,r2,r3
  805130:	12c4703a 	and	r2,r2,r11
  805134:	10000826 	beq	r2,zero,805158 <memchr+0xb0>
  805138:	3809883a 	mov	r4,r7
  80513c:	0007883a 	mov	r3,zero
  805140:	020000c4 	movi	r8,3
  805144:	20800003 	ldbu	r2,0(r4)
  805148:	18c00044 	addi	r3,r3,1
  80514c:	11400726 	beq	r2,r5,80516c <memchr+0xc4>
  805150:	21000044 	addi	r4,r4,1
  805154:	40fffb2e 	bgeu	r8,r3,805144 <memchr+0x9c>
  805158:	31bfff04 	addi	r6,r6,-4
  80515c:	39c00104 	addi	r7,r7,4
  805160:	51bfee36 	bltu	r10,r6,80511c <memchr+0x74>
  805164:	3809883a 	mov	r4,r7
  805168:	003fd406 	br	8050bc <memchr+0x14>
  80516c:	2005883a 	mov	r2,r4
  805170:	f800283a 	ret

00805174 <memcpy>:
  805174:	020003c4 	movi	r8,15
  805178:	2007883a 	mov	r3,r4
  80517c:	4180032e 	bgeu	r8,r6,80518c <memcpy+0x18>
  805180:	2904b03a 	or	r2,r5,r4
  805184:	108000cc 	andi	r2,r2,3
  805188:	10000c26 	beq	r2,zero,8051bc <memcpy+0x48>
  80518c:	31bfffc4 	addi	r6,r6,-1
  805190:	00bfffc4 	movi	r2,-1
  805194:	30800726 	beq	r6,r2,8051b4 <memcpy+0x40>
  805198:	100f883a 	mov	r7,r2
  80519c:	28800003 	ldbu	r2,0(r5)
  8051a0:	31bfffc4 	addi	r6,r6,-1
  8051a4:	29400044 	addi	r5,r5,1
  8051a8:	18800005 	stb	r2,0(r3)
  8051ac:	18c00044 	addi	r3,r3,1
  8051b0:	31fffa1e 	bne	r6,r7,80519c <memcpy+0x28>
  8051b4:	2005883a 	mov	r2,r4
  8051b8:	f800283a 	ret
  8051bc:	200f883a 	mov	r7,r4
  8051c0:	28800017 	ldw	r2,0(r5)
  8051c4:	29400104 	addi	r5,r5,4
  8051c8:	31bffc04 	addi	r6,r6,-16
  8051cc:	38800015 	stw	r2,0(r7)
  8051d0:	28c00017 	ldw	r3,0(r5)
  8051d4:	39c00104 	addi	r7,r7,4
  8051d8:	29400104 	addi	r5,r5,4
  8051dc:	38c00015 	stw	r3,0(r7)
  8051e0:	28800017 	ldw	r2,0(r5)
  8051e4:	39c00104 	addi	r7,r7,4
  8051e8:	29400104 	addi	r5,r5,4
  8051ec:	38800015 	stw	r2,0(r7)
  8051f0:	28c00017 	ldw	r3,0(r5)
  8051f4:	39c00104 	addi	r7,r7,4
  8051f8:	29400104 	addi	r5,r5,4
  8051fc:	38c00015 	stw	r3,0(r7)
  805200:	39c00104 	addi	r7,r7,4
  805204:	41bfee36 	bltu	r8,r6,8051c0 <memcpy+0x4c>
  805208:	00c000c4 	movi	r3,3
  80520c:	1980062e 	bgeu	r3,r6,805228 <memcpy+0xb4>
  805210:	28800017 	ldw	r2,0(r5)
  805214:	31bfff04 	addi	r6,r6,-4
  805218:	29400104 	addi	r5,r5,4
  80521c:	38800015 	stw	r2,0(r7)
  805220:	39c00104 	addi	r7,r7,4
  805224:	19bffa36 	bltu	r3,r6,805210 <memcpy+0x9c>
  805228:	3807883a 	mov	r3,r7
  80522c:	003fd706 	br	80518c <memcpy+0x18>

00805230 <memmove>:
  805230:	2811883a 	mov	r8,r5
  805234:	2007883a 	mov	r3,r4
  805238:	300f883a 	mov	r7,r6
  80523c:	29000f2e 	bgeu	r5,r4,80527c <memmove+0x4c>
  805240:	2985883a 	add	r2,r5,r6
  805244:	20800d2e 	bgeu	r4,r2,80527c <memmove+0x4c>
  805248:	2187883a 	add	r3,r4,r6
  80524c:	31ffffc4 	addi	r7,r6,-1
  805250:	01bfffc4 	movi	r6,-1
  805254:	100b883a 	mov	r5,r2
  805258:	39800626 	beq	r7,r6,805274 <memmove+0x44>
  80525c:	297fffc4 	addi	r5,r5,-1
  805260:	28800003 	ldbu	r2,0(r5)
  805264:	18ffffc4 	addi	r3,r3,-1
  805268:	39ffffc4 	addi	r7,r7,-1
  80526c:	18800005 	stb	r2,0(r3)
  805270:	39bffa1e 	bne	r7,r6,80525c <memmove+0x2c>
  805274:	2005883a 	mov	r2,r4
  805278:	f800283a 	ret
  80527c:	024003c4 	movi	r9,15
  805280:	49800c36 	bltu	r9,r6,8052b4 <memmove+0x84>
  805284:	39ffffc4 	addi	r7,r7,-1
  805288:	00bfffc4 	movi	r2,-1
  80528c:	38bff926 	beq	r7,r2,805274 <memmove+0x44>
  805290:	100d883a 	mov	r6,r2
  805294:	28800003 	ldbu	r2,0(r5)
  805298:	39ffffc4 	addi	r7,r7,-1
  80529c:	29400044 	addi	r5,r5,1
  8052a0:	18800005 	stb	r2,0(r3)
  8052a4:	18c00044 	addi	r3,r3,1
  8052a8:	39bffa1e 	bne	r7,r6,805294 <memmove+0x64>
  8052ac:	2005883a 	mov	r2,r4
  8052b0:	f800283a 	ret
  8052b4:	4104b03a 	or	r2,r8,r4
  8052b8:	108000cc 	andi	r2,r2,3
  8052bc:	103ff11e 	bne	r2,zero,805284 <memmove+0x54>
  8052c0:	400b883a 	mov	r5,r8
  8052c4:	200d883a 	mov	r6,r4
  8052c8:	28800017 	ldw	r2,0(r5)
  8052cc:	29400104 	addi	r5,r5,4
  8052d0:	39fffc04 	addi	r7,r7,-16
  8052d4:	30800015 	stw	r2,0(r6)
  8052d8:	28c00017 	ldw	r3,0(r5)
  8052dc:	31800104 	addi	r6,r6,4
  8052e0:	29400104 	addi	r5,r5,4
  8052e4:	30c00015 	stw	r3,0(r6)
  8052e8:	28800017 	ldw	r2,0(r5)
  8052ec:	31800104 	addi	r6,r6,4
  8052f0:	29400104 	addi	r5,r5,4
  8052f4:	30800015 	stw	r2,0(r6)
  8052f8:	28c00017 	ldw	r3,0(r5)
  8052fc:	31800104 	addi	r6,r6,4
  805300:	29400104 	addi	r5,r5,4
  805304:	30c00015 	stw	r3,0(r6)
  805308:	31800104 	addi	r6,r6,4
  80530c:	49ffee36 	bltu	r9,r7,8052c8 <memmove+0x98>
  805310:	00c000c4 	movi	r3,3
  805314:	19c0062e 	bgeu	r3,r7,805330 <memmove+0x100>
  805318:	28800017 	ldw	r2,0(r5)
  80531c:	39ffff04 	addi	r7,r7,-4
  805320:	29400104 	addi	r5,r5,4
  805324:	30800015 	stw	r2,0(r6)
  805328:	31800104 	addi	r6,r6,4
  80532c:	19fffa36 	bltu	r3,r7,805318 <memmove+0xe8>
  805330:	3007883a 	mov	r3,r6
  805334:	003fd306 	br	805284 <memmove+0x54>

00805338 <memset>:
  805338:	008000c4 	movi	r2,3
  80533c:	29403fcc 	andi	r5,r5,255
  805340:	2007883a 	mov	r3,r4
  805344:	11801a2e 	bgeu	r2,r6,8053b0 <memset+0x78>
  805348:	2084703a 	and	r2,r4,r2
  80534c:	1000181e 	bne	r2,zero,8053b0 <memset+0x78>
  805350:	2806923a 	slli	r3,r5,8
  805354:	200f883a 	mov	r7,r4
  805358:	1946b03a 	or	r3,r3,r5
  80535c:	1804943a 	slli	r2,r3,16
  805360:	1886b03a 	or	r3,r3,r2
  805364:	008003c4 	movi	r2,15
  805368:	11800a2e 	bgeu	r2,r6,805394 <memset+0x5c>
  80536c:	38c00015 	stw	r3,0(r7)
  805370:	39c00104 	addi	r7,r7,4
  805374:	38c00015 	stw	r3,0(r7)
  805378:	39c00104 	addi	r7,r7,4
  80537c:	38c00015 	stw	r3,0(r7)
  805380:	39c00104 	addi	r7,r7,4
  805384:	38c00015 	stw	r3,0(r7)
  805388:	31bffc04 	addi	r6,r6,-16
  80538c:	39c00104 	addi	r7,r7,4
  805390:	11bff636 	bltu	r2,r6,80536c <memset+0x34>
  805394:	008000c4 	movi	r2,3
  805398:	1180042e 	bgeu	r2,r6,8053ac <memset+0x74>
  80539c:	38c00015 	stw	r3,0(r7)
  8053a0:	31bfff04 	addi	r6,r6,-4
  8053a4:	39c00104 	addi	r7,r7,4
  8053a8:	11bffc36 	bltu	r2,r6,80539c <memset+0x64>
  8053ac:	3807883a 	mov	r3,r7
  8053b0:	31bfffc4 	addi	r6,r6,-1
  8053b4:	00bfffc4 	movi	r2,-1
  8053b8:	30800426 	beq	r6,r2,8053cc <memset+0x94>
  8053bc:	19400005 	stb	r5,0(r3)
  8053c0:	31bfffc4 	addi	r6,r6,-1
  8053c4:	18c00044 	addi	r3,r3,1
  8053c8:	30bffc1e 	bne	r6,r2,8053bc <memset+0x84>
  8053cc:	2005883a 	mov	r2,r4
  8053d0:	f800283a 	ret

008053d4 <_Balloc>:
  8053d4:	defffc04 	addi	sp,sp,-16
  8053d8:	dc000215 	stw	r16,8(sp)
  8053dc:	dc400115 	stw	r17,4(sp)
  8053e0:	dfc00315 	stw	ra,12(sp)
  8053e4:	dc800015 	stw	r18,0(sp)
  8053e8:	20c01317 	ldw	r3,76(r4)
  8053ec:	2823883a 	mov	r17,r5
  8053f0:	2021883a 	mov	r16,r4
  8053f4:	01800404 	movi	r6,16
  8053f8:	01400104 	movi	r5,4
  8053fc:	18001426 	beq	r3,zero,805450 <_Balloc+0x7c>
  805400:	01400044 	movi	r5,1
  805404:	880490ba 	slli	r2,r17,2
  805408:	2c64983a 	sll	r18,r5,r17
  80540c:	8009883a 	mov	r4,r16
  805410:	10cf883a 	add	r7,r2,r3
  805414:	900c90ba 	slli	r6,r18,2
  805418:	38c00017 	ldw	r3,0(r7)
  80541c:	31800504 	addi	r6,r6,20
  805420:	18001126 	beq	r3,zero,805468 <_Balloc+0x94>
  805424:	18800017 	ldw	r2,0(r3)
  805428:	38800015 	stw	r2,0(r7)
  80542c:	18000415 	stw	zero,16(r3)
  805430:	18000315 	stw	zero,12(r3)
  805434:	1805883a 	mov	r2,r3
  805438:	dfc00317 	ldw	ra,12(sp)
  80543c:	dc000217 	ldw	r16,8(sp)
  805440:	dc400117 	ldw	r17,4(sp)
  805444:	dc800017 	ldw	r18,0(sp)
  805448:	dec00404 	addi	sp,sp,16
  80544c:	f800283a 	ret
  805450:	0806ba80 	call	806ba8 <_calloc_r>
  805454:	1007883a 	mov	r3,r2
  805458:	80801315 	stw	r2,76(r16)
  80545c:	0005883a 	mov	r2,zero
  805460:	183fe71e 	bne	r3,zero,805400 <_Balloc+0x2c>
  805464:	003ff406 	br	805438 <_Balloc+0x64>
  805468:	0806ba80 	call	806ba8 <_calloc_r>
  80546c:	1007883a 	mov	r3,r2
  805470:	0005883a 	mov	r2,zero
  805474:	183ff026 	beq	r3,zero,805438 <_Balloc+0x64>
  805478:	1c400115 	stw	r17,4(r3)
  80547c:	1c800215 	stw	r18,8(r3)
  805480:	003fea06 	br	80542c <_Balloc+0x58>

00805484 <_Bfree>:
  805484:	28000726 	beq	r5,zero,8054a4 <_Bfree+0x20>
  805488:	28800117 	ldw	r2,4(r5)
  80548c:	21001317 	ldw	r4,76(r4)
  805490:	100490ba 	slli	r2,r2,2
  805494:	1105883a 	add	r2,r2,r4
  805498:	10c00017 	ldw	r3,0(r2)
  80549c:	28c00015 	stw	r3,0(r5)
  8054a0:	11400015 	stw	r5,0(r2)
  8054a4:	f800283a 	ret

008054a8 <_multadd>:
  8054a8:	defffa04 	addi	sp,sp,-24
  8054ac:	dc000415 	stw	r16,16(sp)
  8054b0:	dcc00115 	stw	r19,4(sp)
  8054b4:	dd000015 	stw	r20,0(sp)
  8054b8:	dfc00515 	stw	ra,20(sp)
  8054bc:	dc400315 	stw	r17,12(sp)
  8054c0:	dc800215 	stw	r18,8(sp)
  8054c4:	2c800417 	ldw	r18,16(r5)
  8054c8:	3821883a 	mov	r16,r7
  8054cc:	2827883a 	mov	r19,r5
  8054d0:	2029883a 	mov	r20,r4
  8054d4:	2a000504 	addi	r8,r5,20
  8054d8:	000f883a 	mov	r7,zero
  8054dc:	40800017 	ldw	r2,0(r8)
  8054e0:	39c00044 	addi	r7,r7,1
  8054e4:	10ffffcc 	andi	r3,r2,65535
  8054e8:	1987383a 	mul	r3,r3,r6
  8054ec:	1004d43a 	srli	r2,r2,16
  8054f0:	1c07883a 	add	r3,r3,r16
  8054f4:	180ad43a 	srli	r5,r3,16
  8054f8:	1185383a 	mul	r2,r2,r6
  8054fc:	18ffffcc 	andi	r3,r3,65535
  805500:	1145883a 	add	r2,r2,r5
  805504:	1008943a 	slli	r4,r2,16
  805508:	1020d43a 	srli	r16,r2,16
  80550c:	20c9883a 	add	r4,r4,r3
  805510:	41000015 	stw	r4,0(r8)
  805514:	42000104 	addi	r8,r8,4
  805518:	3cbff016 	blt	r7,r18,8054dc <_multadd+0x34>
  80551c:	80000726 	beq	r16,zero,80553c <_multadd+0x94>
  805520:	98800217 	ldw	r2,8(r19)
  805524:	90800e0e 	bge	r18,r2,805560 <_multadd+0xb8>
  805528:	900490ba 	slli	r2,r18,2
  80552c:	94800044 	addi	r18,r18,1
  805530:	9c800415 	stw	r18,16(r19)
  805534:	14c5883a 	add	r2,r2,r19
  805538:	14000515 	stw	r16,20(r2)
  80553c:	9805883a 	mov	r2,r19
  805540:	dfc00517 	ldw	ra,20(sp)
  805544:	dc000417 	ldw	r16,16(sp)
  805548:	dc400317 	ldw	r17,12(sp)
  80554c:	dc800217 	ldw	r18,8(sp)
  805550:	dcc00117 	ldw	r19,4(sp)
  805554:	dd000017 	ldw	r20,0(sp)
  805558:	dec00604 	addi	sp,sp,24
  80555c:	f800283a 	ret
  805560:	99400117 	ldw	r5,4(r19)
  805564:	a009883a 	mov	r4,r20
  805568:	29400044 	addi	r5,r5,1
  80556c:	08053d40 	call	8053d4 <_Balloc>
  805570:	99800417 	ldw	r6,16(r19)
  805574:	99400304 	addi	r5,r19,12
  805578:	11000304 	addi	r4,r2,12
  80557c:	300c90ba 	slli	r6,r6,2
  805580:	1023883a 	mov	r17,r2
  805584:	31800204 	addi	r6,r6,8
  805588:	08051740 	call	805174 <memcpy>
  80558c:	980b883a 	mov	r5,r19
  805590:	a009883a 	mov	r4,r20
  805594:	08054840 	call	805484 <_Bfree>
  805598:	8827883a 	mov	r19,r17
  80559c:	003fe206 	br	805528 <_multadd+0x80>

008055a0 <_s2b>:
  8055a0:	defffa04 	addi	sp,sp,-24
  8055a4:	dc000415 	stw	r16,16(sp)
  8055a8:	dc800215 	stw	r18,8(sp)
  8055ac:	2821883a 	mov	r16,r5
  8055b0:	2025883a 	mov	r18,r4
  8055b4:	01400244 	movi	r5,9
  8055b8:	39000204 	addi	r4,r7,8
  8055bc:	dcc00115 	stw	r19,4(sp)
  8055c0:	dd000015 	stw	r20,0(sp)
  8055c4:	dfc00515 	stw	ra,20(sp)
  8055c8:	dc400315 	stw	r17,12(sp)
  8055cc:	3829883a 	mov	r20,r7
  8055d0:	3027883a 	mov	r19,r6
  8055d4:	08087780 	call	808778 <__divsi3>
  8055d8:	00c00044 	movi	r3,1
  8055dc:	000b883a 	mov	r5,zero
  8055e0:	1880030e 	bge	r3,r2,8055f0 <_s2b+0x50>
  8055e4:	18c7883a 	add	r3,r3,r3
  8055e8:	29400044 	addi	r5,r5,1
  8055ec:	18bffd16 	blt	r3,r2,8055e4 <_s2b+0x44>
  8055f0:	9009883a 	mov	r4,r18
  8055f4:	08053d40 	call	8053d4 <_Balloc>
  8055f8:	1009883a 	mov	r4,r2
  8055fc:	d8800617 	ldw	r2,24(sp)
  805600:	00c00044 	movi	r3,1
  805604:	04400244 	movi	r17,9
  805608:	20800515 	stw	r2,20(r4)
  80560c:	20c00415 	stw	r3,16(r4)
  805610:	8cc0210e 	bge	r17,r19,805698 <_s2b+0xf8>
  805614:	8461883a 	add	r16,r16,r17
  805618:	81c00007 	ldb	r7,0(r16)
  80561c:	200b883a 	mov	r5,r4
  805620:	01800284 	movi	r6,10
  805624:	9009883a 	mov	r4,r18
  805628:	39fff404 	addi	r7,r7,-48
  80562c:	08054a80 	call	8054a8 <_multadd>
  805630:	8c400044 	addi	r17,r17,1
  805634:	1009883a 	mov	r4,r2
  805638:	84000044 	addi	r16,r16,1
  80563c:	8cfff616 	blt	r17,r19,805618 <_s2b+0x78>
  805640:	84000044 	addi	r16,r16,1
  805644:	8d000b0e 	bge	r17,r20,805674 <_s2b+0xd4>
  805648:	a463c83a 	sub	r17,r20,r17
  80564c:	81c00007 	ldb	r7,0(r16)
  805650:	200b883a 	mov	r5,r4
  805654:	01800284 	movi	r6,10
  805658:	9009883a 	mov	r4,r18
  80565c:	39fff404 	addi	r7,r7,-48
  805660:	08054a80 	call	8054a8 <_multadd>
  805664:	8c7fffc4 	addi	r17,r17,-1
  805668:	1009883a 	mov	r4,r2
  80566c:	84000044 	addi	r16,r16,1
  805670:	883ff61e 	bne	r17,zero,80564c <_s2b+0xac>
  805674:	2005883a 	mov	r2,r4
  805678:	dfc00517 	ldw	ra,20(sp)
  80567c:	dc000417 	ldw	r16,16(sp)
  805680:	dc400317 	ldw	r17,12(sp)
  805684:	dc800217 	ldw	r18,8(sp)
  805688:	dcc00117 	ldw	r19,4(sp)
  80568c:	dd000017 	ldw	r20,0(sp)
  805690:	dec00604 	addi	sp,sp,24
  805694:	f800283a 	ret
  805698:	84000284 	addi	r16,r16,10
  80569c:	003fe906 	br	805644 <_s2b+0xa4>

008056a0 <_hi0bits>:
  8056a0:	20bfffec 	andhi	r2,r4,65535
  8056a4:	0007883a 	mov	r3,zero
  8056a8:	1000021e 	bne	r2,zero,8056b4 <_hi0bits+0x14>
  8056ac:	2008943a 	slli	r4,r4,16
  8056b0:	00c00404 	movi	r3,16
  8056b4:	20bfc02c 	andhi	r2,r4,65280
  8056b8:	1000021e 	bne	r2,zero,8056c4 <_hi0bits+0x24>
  8056bc:	2008923a 	slli	r4,r4,8
  8056c0:	18c00204 	addi	r3,r3,8
  8056c4:	20bc002c 	andhi	r2,r4,61440
  8056c8:	1000021e 	bne	r2,zero,8056d4 <_hi0bits+0x34>
  8056cc:	2008913a 	slli	r4,r4,4
  8056d0:	18c00104 	addi	r3,r3,4
  8056d4:	20b0002c 	andhi	r2,r4,49152
  8056d8:	1000021e 	bne	r2,zero,8056e4 <_hi0bits+0x44>
  8056dc:	200890ba 	slli	r4,r4,2
  8056e0:	18c00084 	addi	r3,r3,2
  8056e4:	20000516 	blt	r4,zero,8056fc <_hi0bits+0x5c>
  8056e8:	2004d7ba 	srli	r2,r4,30
  8056ec:	18c00044 	addi	r3,r3,1
  8056f0:	01000804 	movi	r4,32
  8056f4:	1080004c 	andi	r2,r2,1
  8056f8:	10000126 	beq	r2,zero,805700 <_hi0bits+0x60>
  8056fc:	1809883a 	mov	r4,r3
  805700:	2005883a 	mov	r2,r4
  805704:	f800283a 	ret

00805708 <_lo0bits>:
  805708:	20c00017 	ldw	r3,0(r4)
  80570c:	188001cc 	andi	r2,r3,7
  805710:	10000a26 	beq	r2,zero,80573c <_lo0bits+0x34>
  805714:	1880004c 	andi	r2,r3,1
  805718:	000b883a 	mov	r5,zero
  80571c:	1000051e 	bne	r2,zero,805734 <_lo0bits+0x2c>
  805720:	180cd07a 	srli	r6,r3,1
  805724:	3080004c 	andi	r2,r6,1
  805728:	10002026 	beq	r2,zero,8057ac <_lo0bits+0xa4>
  80572c:	01400044 	movi	r5,1
  805730:	21800015 	stw	r6,0(r4)
  805734:	2805883a 	mov	r2,r5
  805738:	f800283a 	ret
  80573c:	18bfffcc 	andi	r2,r3,65535
  805740:	000d883a 	mov	r6,zero
  805744:	10001626 	beq	r2,zero,8057a0 <_lo0bits+0x98>
  805748:	18803fcc 	andi	r2,r3,255
  80574c:	1000021e 	bne	r2,zero,805758 <_lo0bits+0x50>
  805750:	1806d23a 	srli	r3,r3,8
  805754:	31800204 	addi	r6,r6,8
  805758:	188003cc 	andi	r2,r3,15
  80575c:	1000021e 	bne	r2,zero,805768 <_lo0bits+0x60>
  805760:	1806d13a 	srli	r3,r3,4
  805764:	31800104 	addi	r6,r6,4
  805768:	188000cc 	andi	r2,r3,3
  80576c:	1000021e 	bne	r2,zero,805778 <_lo0bits+0x70>
  805770:	1806d0ba 	srli	r3,r3,2
  805774:	31800084 	addi	r6,r6,2
  805778:	1880004c 	andi	r2,r3,1
  80577c:	1000041e 	bne	r2,zero,805790 <_lo0bits+0x88>
  805780:	1806d07a 	srli	r3,r3,1
  805784:	31800044 	addi	r6,r6,1
  805788:	01400804 	movi	r5,32
  80578c:	183fe926 	beq	r3,zero,805734 <_lo0bits+0x2c>
  805790:	300b883a 	mov	r5,r6
  805794:	2805883a 	mov	r2,r5
  805798:	20c00015 	stw	r3,0(r4)
  80579c:	f800283a 	ret
  8057a0:	1806d43a 	srli	r3,r3,16
  8057a4:	01800404 	movi	r6,16
  8057a8:	003fe706 	br	805748 <_lo0bits+0x40>
  8057ac:	1804d0ba 	srli	r2,r3,2
  8057b0:	01400084 	movi	r5,2
  8057b4:	20800015 	stw	r2,0(r4)
  8057b8:	003fde06 	br	805734 <_lo0bits+0x2c>

008057bc <_i2b>:
  8057bc:	defffd04 	addi	sp,sp,-12
  8057c0:	dc000115 	stw	r16,4(sp)
  8057c4:	04000044 	movi	r16,1
  8057c8:	dc800015 	stw	r18,0(sp)
  8057cc:	2825883a 	mov	r18,r5
  8057d0:	800b883a 	mov	r5,r16
  8057d4:	dfc00215 	stw	ra,8(sp)
  8057d8:	08053d40 	call	8053d4 <_Balloc>
  8057dc:	14000415 	stw	r16,16(r2)
  8057e0:	14800515 	stw	r18,20(r2)
  8057e4:	dfc00217 	ldw	ra,8(sp)
  8057e8:	dc000117 	ldw	r16,4(sp)
  8057ec:	dc800017 	ldw	r18,0(sp)
  8057f0:	dec00304 	addi	sp,sp,12
  8057f4:	f800283a 	ret

008057f8 <_multiply>:
  8057f8:	defff804 	addi	sp,sp,-32
  8057fc:	dc000615 	stw	r16,24(sp)
  805800:	dfc00715 	stw	ra,28(sp)
  805804:	dc400515 	stw	r17,20(sp)
  805808:	dc800415 	stw	r18,16(sp)
  80580c:	dcc00315 	stw	r19,12(sp)
  805810:	dd000215 	stw	r20,8(sp)
  805814:	dd400115 	stw	r21,4(sp)
  805818:	2cc00417 	ldw	r19,16(r5)
  80581c:	34800417 	ldw	r18,16(r6)
  805820:	2821883a 	mov	r16,r5
  805824:	9c80040e 	bge	r19,r18,805838 <_multiply+0x40>
  805828:	9027883a 	mov	r19,r18
  80582c:	2c800417 	ldw	r18,16(r5)
  805830:	3021883a 	mov	r16,r6
  805834:	280d883a 	mov	r6,r5
  805838:	80800217 	ldw	r2,8(r16)
  80583c:	9ca3883a 	add	r17,r19,r18
  805840:	81400117 	ldw	r5,4(r16)
  805844:	1440010e 	bge	r2,r17,80584c <_multiply+0x54>
  805848:	29400044 	addi	r5,r5,1
  80584c:	882a90ba 	slli	r21,r17,2
  805850:	d9800015 	stw	r6,0(sp)
  805854:	08053d40 	call	8053d4 <_Balloc>
  805858:	13800504 	addi	r14,r2,20
  80585c:	ab9b883a 	add	r13,r21,r14
  805860:	1029883a 	mov	r20,r2
  805864:	7011883a 	mov	r8,r14
  805868:	d9800017 	ldw	r6,0(sp)
  80586c:	7340032e 	bgeu	r14,r13,80587c <_multiply+0x84>
  805870:	40000015 	stw	zero,0(r8)
  805874:	42000104 	addi	r8,r8,4
  805878:	437ffd36 	bltu	r8,r13,805870 <_multiply+0x78>
  80587c:	900490ba 	slli	r2,r18,2
  805880:	980690ba 	slli	r3,r19,2
  805884:	31800504 	addi	r6,r6,20
  805888:	83400504 	addi	r13,r16,20
  80588c:	119f883a 	add	r15,r2,r6
  805890:	1b57883a 	add	r11,r3,r13
  805894:	7019883a 	mov	r12,r14
  805898:	33c0392e 	bgeu	r6,r15,805980 <_multiply+0x188>
  80589c:	30800017 	ldw	r2,0(r6)
  8058a0:	12bfffcc 	andi	r10,r2,65535
  8058a4:	50001826 	beq	r10,zero,805908 <_multiply+0x110>
  8058a8:	6811883a 	mov	r8,r13
  8058ac:	600f883a 	mov	r7,r12
  8058b0:	0013883a 	mov	r9,zero
  8058b4:	41000017 	ldw	r4,0(r8)
  8058b8:	39400017 	ldw	r5,0(r7)
  8058bc:	42000104 	addi	r8,r8,4
  8058c0:	20bfffcc 	andi	r2,r4,65535
  8058c4:	1285383a 	mul	r2,r2,r10
  8058c8:	2008d43a 	srli	r4,r4,16
  8058cc:	28ffffcc 	andi	r3,r5,65535
  8058d0:	10c5883a 	add	r2,r2,r3
  8058d4:	1245883a 	add	r2,r2,r9
  8058d8:	2289383a 	mul	r4,r4,r10
  8058dc:	280ad43a 	srli	r5,r5,16
  8058e0:	1012d43a 	srli	r9,r2,16
  8058e4:	3880000d 	sth	r2,0(r7)
  8058e8:	2149883a 	add	r4,r4,r5
  8058ec:	2245883a 	add	r2,r4,r9
  8058f0:	3880008d 	sth	r2,2(r7)
  8058f4:	1012d43a 	srli	r9,r2,16
  8058f8:	39c00104 	addi	r7,r7,4
  8058fc:	42ffed36 	bltu	r8,r11,8058b4 <_multiply+0xbc>
  805900:	3a400015 	stw	r9,0(r7)
  805904:	30800017 	ldw	r2,0(r6)
  805908:	1014d43a 	srli	r10,r2,16
  80590c:	50001926 	beq	r10,zero,805974 <_multiply+0x17c>
  805910:	60800017 	ldw	r2,0(r12)
  805914:	600f883a 	mov	r7,r12
  805918:	6811883a 	mov	r8,r13
  80591c:	0013883a 	mov	r9,zero
  805920:	1009883a 	mov	r4,r2
  805924:	40c00017 	ldw	r3,0(r8)
  805928:	3880000d 	sth	r2,0(r7)
  80592c:	2008d43a 	srli	r4,r4,16
  805930:	18bfffcc 	andi	r2,r3,65535
  805934:	1285383a 	mul	r2,r2,r10
  805938:	1806d43a 	srli	r3,r3,16
  80593c:	42000104 	addi	r8,r8,4
  805940:	1105883a 	add	r2,r2,r4
  805944:	1245883a 	add	r2,r2,r9
  805948:	3880008d 	sth	r2,2(r7)
  80594c:	39c00104 	addi	r7,r7,4
  805950:	39000017 	ldw	r4,0(r7)
  805954:	1a87383a 	mul	r3,r3,r10
  805958:	1012d43a 	srli	r9,r2,16
  80595c:	20bfffcc 	andi	r2,r4,65535
  805960:	1887883a 	add	r3,r3,r2
  805964:	1a45883a 	add	r2,r3,r9
  805968:	1012d43a 	srli	r9,r2,16
  80596c:	42ffed36 	bltu	r8,r11,805924 <_multiply+0x12c>
  805970:	38800015 	stw	r2,0(r7)
  805974:	31800104 	addi	r6,r6,4
  805978:	63000104 	addi	r12,r12,4
  80597c:	33ffc736 	bltu	r6,r15,80589c <_multiply+0xa4>
  805980:	ab8f883a 	add	r7,r21,r14
  805984:	0440060e 	bge	zero,r17,8059a0 <_multiply+0x1a8>
  805988:	39ffff04 	addi	r7,r7,-4
  80598c:	38800017 	ldw	r2,0(r7)
  805990:	1000031e 	bne	r2,zero,8059a0 <_multiply+0x1a8>
  805994:	8c7fffc4 	addi	r17,r17,-1
  805998:	39ffff04 	addi	r7,r7,-4
  80599c:	047ffb16 	blt	zero,r17,80598c <_multiply+0x194>
  8059a0:	a005883a 	mov	r2,r20
  8059a4:	a4400415 	stw	r17,16(r20)
  8059a8:	dfc00717 	ldw	ra,28(sp)
  8059ac:	dc000617 	ldw	r16,24(sp)
  8059b0:	dc400517 	ldw	r17,20(sp)
  8059b4:	dc800417 	ldw	r18,16(sp)
  8059b8:	dcc00317 	ldw	r19,12(sp)
  8059bc:	dd000217 	ldw	r20,8(sp)
  8059c0:	dd400117 	ldw	r21,4(sp)
  8059c4:	dec00804 	addi	sp,sp,32
  8059c8:	f800283a 	ret

008059cc <_pow5mult>:
  8059cc:	defffa04 	addi	sp,sp,-24
  8059d0:	308000cc 	andi	r2,r6,3
  8059d4:	dc800215 	stw	r18,8(sp)
  8059d8:	dcc00115 	stw	r19,4(sp)
  8059dc:	dd000015 	stw	r20,0(sp)
  8059e0:	dfc00515 	stw	ra,20(sp)
  8059e4:	dc000415 	stw	r16,16(sp)
  8059e8:	dc400315 	stw	r17,12(sp)
  8059ec:	3025883a 	mov	r18,r6
  8059f0:	2027883a 	mov	r19,r4
  8059f4:	2829883a 	mov	r20,r5
  8059f8:	10002a1e 	bne	r2,zero,805aa4 <_pow5mult+0xd8>
  8059fc:	9025d0ba 	srai	r18,r18,2
  805a00:	90001f26 	beq	r18,zero,805a80 <_pow5mult+0xb4>
  805a04:	9c001217 	ldw	r16,72(r19)
  805a08:	80003426 	beq	r16,zero,805adc <_pow5mult+0x110>
  805a0c:	9080004c 	andi	r2,r18,1
  805a10:	800d883a 	mov	r6,r16
  805a14:	9809883a 	mov	r4,r19
  805a18:	a00b883a 	mov	r5,r20
  805a1c:	9025d07a 	srai	r18,r18,1
  805a20:	10000d1e 	bne	r2,zero,805a58 <_pow5mult+0x8c>
  805a24:	800b883a 	mov	r5,r16
  805a28:	800d883a 	mov	r6,r16
  805a2c:	9809883a 	mov	r4,r19
  805a30:	90001326 	beq	r18,zero,805a80 <_pow5mult+0xb4>
  805a34:	80800017 	ldw	r2,0(r16)
  805a38:	10002326 	beq	r2,zero,805ac8 <_pow5mult+0xfc>
  805a3c:	1021883a 	mov	r16,r2
  805a40:	9080004c 	andi	r2,r18,1
  805a44:	800d883a 	mov	r6,r16
  805a48:	9809883a 	mov	r4,r19
  805a4c:	a00b883a 	mov	r5,r20
  805a50:	9025d07a 	srai	r18,r18,1
  805a54:	103ff326 	beq	r2,zero,805a24 <_pow5mult+0x58>
  805a58:	08057f80 	call	8057f8 <_multiply>
  805a5c:	a00b883a 	mov	r5,r20
  805a60:	9809883a 	mov	r4,r19
  805a64:	1023883a 	mov	r17,r2
  805a68:	08054840 	call	805484 <_Bfree>
  805a6c:	8829883a 	mov	r20,r17
  805a70:	800b883a 	mov	r5,r16
  805a74:	800d883a 	mov	r6,r16
  805a78:	9809883a 	mov	r4,r19
  805a7c:	903fed1e 	bne	r18,zero,805a34 <_pow5mult+0x68>
  805a80:	a005883a 	mov	r2,r20
  805a84:	dfc00517 	ldw	ra,20(sp)
  805a88:	dc000417 	ldw	r16,16(sp)
  805a8c:	dc400317 	ldw	r17,12(sp)
  805a90:	dc800217 	ldw	r18,8(sp)
  805a94:	dcc00117 	ldw	r19,4(sp)
  805a98:	dd000017 	ldw	r20,0(sp)
  805a9c:	dec00604 	addi	sp,sp,24
  805aa0:	f800283a 	ret
  805aa4:	100490ba 	slli	r2,r2,2
  805aa8:	00c02074 	movhi	r3,129
  805aac:	18f14d04 	addi	r3,r3,-15052
  805ab0:	000f883a 	mov	r7,zero
  805ab4:	10c5883a 	add	r2,r2,r3
  805ab8:	11800017 	ldw	r6,0(r2)
  805abc:	08054a80 	call	8054a8 <_multadd>
  805ac0:	1029883a 	mov	r20,r2
  805ac4:	003fcd06 	br	8059fc <_pow5mult+0x30>
  805ac8:	08057f80 	call	8057f8 <_multiply>
  805acc:	80800015 	stw	r2,0(r16)
  805ad0:	1021883a 	mov	r16,r2
  805ad4:	10000015 	stw	zero,0(r2)
  805ad8:	003fd906 	br	805a40 <_pow5mult+0x74>
  805adc:	9809883a 	mov	r4,r19
  805ae0:	01409c44 	movi	r5,625
  805ae4:	08057bc0 	call	8057bc <_i2b>
  805ae8:	98801215 	stw	r2,72(r19)
  805aec:	1021883a 	mov	r16,r2
  805af0:	10000015 	stw	zero,0(r2)
  805af4:	003fc506 	br	805a0c <_pow5mult+0x40>

00805af8 <_lshift>:
  805af8:	defff904 	addi	sp,sp,-28
  805afc:	dc000515 	stw	r16,20(sp)
  805b00:	dc400415 	stw	r17,16(sp)
  805b04:	dc800315 	stw	r18,12(sp)
  805b08:	dcc00215 	stw	r19,8(sp)
  805b0c:	dd400015 	stw	r21,0(sp)
  805b10:	dfc00615 	stw	ra,24(sp)
  805b14:	dd000115 	stw	r20,4(sp)
  805b18:	28800417 	ldw	r2,16(r5)
  805b1c:	3023d17a 	srai	r17,r6,5
  805b20:	28c00217 	ldw	r3,8(r5)
  805b24:	2827883a 	mov	r19,r5
  805b28:	1445883a 	add	r2,r2,r17
  805b2c:	14800044 	addi	r18,r2,1
  805b30:	3021883a 	mov	r16,r6
  805b34:	202b883a 	mov	r21,r4
  805b38:	29400117 	ldw	r5,4(r5)
  805b3c:	1c80030e 	bge	r3,r18,805b4c <_lshift+0x54>
  805b40:	18c7883a 	add	r3,r3,r3
  805b44:	29400044 	addi	r5,r5,1
  805b48:	1cbffd16 	blt	r3,r18,805b40 <_lshift+0x48>
  805b4c:	a809883a 	mov	r4,r21
  805b50:	08053d40 	call	8053d4 <_Balloc>
  805b54:	1029883a 	mov	r20,r2
  805b58:	11800504 	addi	r6,r2,20
  805b5c:	0440050e 	bge	zero,r17,805b74 <_lshift+0x7c>
  805b60:	8807883a 	mov	r3,r17
  805b64:	18ffffc4 	addi	r3,r3,-1
  805b68:	30000015 	stw	zero,0(r6)
  805b6c:	31800104 	addi	r6,r6,4
  805b70:	183ffc1e 	bne	r3,zero,805b64 <_lshift+0x6c>
  805b74:	98800417 	ldw	r2,16(r19)
  805b78:	99000504 	addi	r4,r19,20
  805b7c:	840007cc 	andi	r16,r16,31
  805b80:	100490ba 	slli	r2,r2,2
  805b84:	110f883a 	add	r7,r2,r4
  805b88:	80001e26 	beq	r16,zero,805c04 <_lshift+0x10c>
  805b8c:	00800804 	movi	r2,32
  805b90:	140bc83a 	sub	r5,r2,r16
  805b94:	0007883a 	mov	r3,zero
  805b98:	20800017 	ldw	r2,0(r4)
  805b9c:	1404983a 	sll	r2,r2,r16
  805ba0:	10c4b03a 	or	r2,r2,r3
  805ba4:	30800015 	stw	r2,0(r6)
  805ba8:	20c00017 	ldw	r3,0(r4)
  805bac:	21000104 	addi	r4,r4,4
  805bb0:	31800104 	addi	r6,r6,4
  805bb4:	1946d83a 	srl	r3,r3,r5
  805bb8:	21fff736 	bltu	r4,r7,805b98 <_lshift+0xa0>
  805bbc:	30c00015 	stw	r3,0(r6)
  805bc0:	18000126 	beq	r3,zero,805bc8 <_lshift+0xd0>
  805bc4:	94800044 	addi	r18,r18,1
  805bc8:	90bfffc4 	addi	r2,r18,-1
  805bcc:	a0800415 	stw	r2,16(r20)
  805bd0:	a809883a 	mov	r4,r21
  805bd4:	980b883a 	mov	r5,r19
  805bd8:	08054840 	call	805484 <_Bfree>
  805bdc:	a005883a 	mov	r2,r20
  805be0:	dfc00617 	ldw	ra,24(sp)
  805be4:	dc000517 	ldw	r16,20(sp)
  805be8:	dc400417 	ldw	r17,16(sp)
  805bec:	dc800317 	ldw	r18,12(sp)
  805bf0:	dcc00217 	ldw	r19,8(sp)
  805bf4:	dd000117 	ldw	r20,4(sp)
  805bf8:	dd400017 	ldw	r21,0(sp)
  805bfc:	dec00704 	addi	sp,sp,28
  805c00:	f800283a 	ret
  805c04:	20800017 	ldw	r2,0(r4)
  805c08:	21000104 	addi	r4,r4,4
  805c0c:	30800015 	stw	r2,0(r6)
  805c10:	31800104 	addi	r6,r6,4
  805c14:	21ffec2e 	bgeu	r4,r7,805bc8 <_lshift+0xd0>
  805c18:	20800017 	ldw	r2,0(r4)
  805c1c:	21000104 	addi	r4,r4,4
  805c20:	30800015 	stw	r2,0(r6)
  805c24:	31800104 	addi	r6,r6,4
  805c28:	21fff636 	bltu	r4,r7,805c04 <_lshift+0x10c>
  805c2c:	003fe606 	br	805bc8 <_lshift+0xd0>

00805c30 <__mcmp>:
  805c30:	20800417 	ldw	r2,16(r4)
  805c34:	28c00417 	ldw	r3,16(r5)
  805c38:	10c5c83a 	sub	r2,r2,r3
  805c3c:	100d883a 	mov	r6,r2
  805c40:	10000c1e 	bne	r2,zero,805c74 <__mcmp+0x44>
  805c44:	180690ba 	slli	r3,r3,2
  805c48:	21000504 	addi	r4,r4,20
  805c4c:	28800504 	addi	r2,r5,20
  805c50:	1885883a 	add	r2,r3,r2
  805c54:	1907883a 	add	r3,r3,r4
  805c58:	18ffff04 	addi	r3,r3,-4
  805c5c:	10bfff04 	addi	r2,r2,-4
  805c60:	19800017 	ldw	r6,0(r3)
  805c64:	11400017 	ldw	r5,0(r2)
  805c68:	3140041e 	bne	r6,r5,805c7c <__mcmp+0x4c>
  805c6c:	20fffa36 	bltu	r4,r3,805c58 <__mcmp+0x28>
  805c70:	000d883a 	mov	r6,zero
  805c74:	3005883a 	mov	r2,r6
  805c78:	f800283a 	ret
  805c7c:	00bfffc4 	movi	r2,-1
  805c80:	31400136 	bltu	r6,r5,805c88 <__mcmp+0x58>
  805c84:	00800044 	movi	r2,1
  805c88:	100d883a 	mov	r6,r2
  805c8c:	3005883a 	mov	r2,r6
  805c90:	f800283a 	ret

00805c94 <__mdiff>:
  805c94:	defffb04 	addi	sp,sp,-20
  805c98:	dc400215 	stw	r17,8(sp)
  805c9c:	2823883a 	mov	r17,r5
  805ca0:	dcc00015 	stw	r19,0(sp)
  805ca4:	300b883a 	mov	r5,r6
  805ca8:	2027883a 	mov	r19,r4
  805cac:	8809883a 	mov	r4,r17
  805cb0:	dc800115 	stw	r18,4(sp)
  805cb4:	dfc00415 	stw	ra,16(sp)
  805cb8:	dc000315 	stw	r16,12(sp)
  805cbc:	3025883a 	mov	r18,r6
  805cc0:	0805c300 	call	805c30 <__mcmp>
  805cc4:	10004026 	beq	r2,zero,805dc8 <__mdiff+0x134>
  805cc8:	10004e16 	blt	r2,zero,805e04 <__mdiff+0x170>
  805ccc:	0021883a 	mov	r16,zero
  805cd0:	89400117 	ldw	r5,4(r17)
  805cd4:	9809883a 	mov	r4,r19
  805cd8:	08053d40 	call	8053d4 <_Balloc>
  805cdc:	1019883a 	mov	r12,r2
  805ce0:	8a800417 	ldw	r10,16(r17)
  805ce4:	90800417 	ldw	r2,16(r18)
  805ce8:	8a000504 	addi	r8,r17,20
  805cec:	500690ba 	slli	r3,r10,2
  805cf0:	100490ba 	slli	r2,r2,2
  805cf4:	91800504 	addi	r6,r18,20
  805cf8:	64000315 	stw	r16,12(r12)
  805cfc:	1a1b883a 	add	r13,r3,r8
  805d00:	1197883a 	add	r11,r2,r6
  805d04:	61c00504 	addi	r7,r12,20
  805d08:	0013883a 	mov	r9,zero
  805d0c:	41000017 	ldw	r4,0(r8)
  805d10:	31400017 	ldw	r5,0(r6)
  805d14:	31800104 	addi	r6,r6,4
  805d18:	20bfffcc 	andi	r2,r4,65535
  805d1c:	28ffffcc 	andi	r3,r5,65535
  805d20:	10c5c83a 	sub	r2,r2,r3
  805d24:	1245883a 	add	r2,r2,r9
  805d28:	2008d43a 	srli	r4,r4,16
  805d2c:	280ad43a 	srli	r5,r5,16
  805d30:	1013d43a 	srai	r9,r2,16
  805d34:	3880000d 	sth	r2,0(r7)
  805d38:	2149c83a 	sub	r4,r4,r5
  805d3c:	2247883a 	add	r3,r4,r9
  805d40:	38c0008d 	sth	r3,2(r7)
  805d44:	42000104 	addi	r8,r8,4
  805d48:	39c00104 	addi	r7,r7,4
  805d4c:	1813d43a 	srai	r9,r3,16
  805d50:	32ffee36 	bltu	r6,r11,805d0c <__mdiff+0x78>
  805d54:	43400c2e 	bgeu	r8,r13,805d88 <__mdiff+0xf4>
  805d58:	40c00017 	ldw	r3,0(r8)
  805d5c:	42000104 	addi	r8,r8,4
  805d60:	18bfffcc 	andi	r2,r3,65535
  805d64:	1245883a 	add	r2,r2,r9
  805d68:	1013d43a 	srai	r9,r2,16
  805d6c:	1806d43a 	srli	r3,r3,16
  805d70:	3880000d 	sth	r2,0(r7)
  805d74:	1a47883a 	add	r3,r3,r9
  805d78:	38c0008d 	sth	r3,2(r7)
  805d7c:	1813d43a 	srai	r9,r3,16
  805d80:	39c00104 	addi	r7,r7,4
  805d84:	437ff436 	bltu	r8,r13,805d58 <__mdiff+0xc4>
  805d88:	39ffff04 	addi	r7,r7,-4
  805d8c:	38800017 	ldw	r2,0(r7)
  805d90:	1000041e 	bne	r2,zero,805da4 <__mdiff+0x110>
  805d94:	39ffff04 	addi	r7,r7,-4
  805d98:	38800017 	ldw	r2,0(r7)
  805d9c:	52bfffc4 	addi	r10,r10,-1
  805da0:	103ffc26 	beq	r2,zero,805d94 <__mdiff+0x100>
  805da4:	6005883a 	mov	r2,r12
  805da8:	62800415 	stw	r10,16(r12)
  805dac:	dfc00417 	ldw	ra,16(sp)
  805db0:	dc000317 	ldw	r16,12(sp)
  805db4:	dc400217 	ldw	r17,8(sp)
  805db8:	dc800117 	ldw	r18,4(sp)
  805dbc:	dcc00017 	ldw	r19,0(sp)
  805dc0:	dec00504 	addi	sp,sp,20
  805dc4:	f800283a 	ret
  805dc8:	9809883a 	mov	r4,r19
  805dcc:	000b883a 	mov	r5,zero
  805dd0:	08053d40 	call	8053d4 <_Balloc>
  805dd4:	1019883a 	mov	r12,r2
  805dd8:	00800044 	movi	r2,1
  805ddc:	60800415 	stw	r2,16(r12)
  805de0:	6005883a 	mov	r2,r12
  805de4:	60000515 	stw	zero,20(r12)
  805de8:	dfc00417 	ldw	ra,16(sp)
  805dec:	dc000317 	ldw	r16,12(sp)
  805df0:	dc400217 	ldw	r17,8(sp)
  805df4:	dc800117 	ldw	r18,4(sp)
  805df8:	dcc00017 	ldw	r19,0(sp)
  805dfc:	dec00504 	addi	sp,sp,20
  805e00:	f800283a 	ret
  805e04:	8819883a 	mov	r12,r17
  805e08:	04000044 	movi	r16,1
  805e0c:	9023883a 	mov	r17,r18
  805e10:	6025883a 	mov	r18,r12
  805e14:	003fae06 	br	805cd0 <__mdiff+0x3c>

00805e18 <_ulp>:
  805e18:	295ffc2c 	andhi	r5,r5,32752
  805e1c:	013f3034 	movhi	r4,64704
  805e20:	21000004 	addi	r4,r4,0
  805e24:	290b883a 	add	r5,r5,r4
  805e28:	0145c83a 	sub	r2,zero,r5
  805e2c:	000d883a 	mov	r6,zero
  805e30:	280f883a 	mov	r7,r5
  805e34:	0140030e 	bge	zero,r5,805e44 <_ulp+0x2c>
  805e38:	3005883a 	mov	r2,r6
  805e3c:	3807883a 	mov	r3,r7
  805e40:	f800283a 	ret
  805e44:	100bd53a 	srai	r5,r2,20
  805e48:	008004c4 	movi	r2,19
  805e4c:	01000044 	movi	r4,1
  805e50:	11400c0e 	bge	r2,r5,805e84 <_ulp+0x6c>
  805e54:	008007c4 	movi	r2,31
  805e58:	297ffb04 	addi	r5,r5,-20
  805e5c:	1147c83a 	sub	r3,r2,r5
  805e60:	00800784 	movi	r2,30
  805e64:	000f883a 	mov	r7,zero
  805e68:	11400216 	blt	r2,r5,805e74 <_ulp+0x5c>
  805e6c:	00800044 	movi	r2,1
  805e70:	10c8983a 	sll	r4,r2,r3
  805e74:	200d883a 	mov	r6,r4
  805e78:	3005883a 	mov	r2,r6
  805e7c:	3807883a 	mov	r3,r7
  805e80:	f800283a 	ret
  805e84:	00800234 	movhi	r2,8
  805e88:	10800004 	addi	r2,r2,0
  805e8c:	114fd83a 	sra	r7,r2,r5
  805e90:	000d883a 	mov	r6,zero
  805e94:	3005883a 	mov	r2,r6
  805e98:	3807883a 	mov	r3,r7
  805e9c:	f800283a 	ret

00805ea0 <_b2d>:
  805ea0:	defff904 	addi	sp,sp,-28
  805ea4:	dc000515 	stw	r16,20(sp)
  805ea8:	dc400415 	stw	r17,16(sp)
  805eac:	dd400015 	stw	r21,0(sp)
  805eb0:	dfc00615 	stw	ra,24(sp)
  805eb4:	dc800315 	stw	r18,12(sp)
  805eb8:	dcc00215 	stw	r19,8(sp)
  805ebc:	dd000115 	stw	r20,4(sp)
  805ec0:	20800417 	ldw	r2,16(r4)
  805ec4:	25400504 	addi	r21,r4,20
  805ec8:	2823883a 	mov	r17,r5
  805ecc:	100490ba 	slli	r2,r2,2
  805ed0:	1561883a 	add	r16,r2,r21
  805ed4:	843fff04 	addi	r16,r16,-4
  805ed8:	85000017 	ldw	r20,0(r16)
  805edc:	a009883a 	mov	r4,r20
  805ee0:	08056a00 	call	8056a0 <_hi0bits>
  805ee4:	100b883a 	mov	r5,r2
  805ee8:	00800804 	movi	r2,32
  805eec:	1145c83a 	sub	r2,r2,r5
  805ef0:	00c00284 	movi	r3,10
  805ef4:	88800015 	stw	r2,0(r17)
  805ef8:	1940240e 	bge	r3,r5,805f8c <_b2d+0xec>
  805efc:	0009883a 	mov	r4,zero
  805f00:	ac001136 	bltu	r21,r16,805f48 <_b2d+0xa8>
  805f04:	297ffd44 	addi	r5,r5,-11
  805f08:	28001326 	beq	r5,zero,805f58 <_b2d+0xb8>
  805f0c:	00800804 	movi	r2,32
  805f10:	1145c83a 	sub	r2,r2,r5
  805f14:	a146983a 	sll	r3,r20,r5
  805f18:	2084d83a 	srl	r2,r4,r2
  805f1c:	0029883a 	mov	r20,zero
  805f20:	1886b03a 	or	r3,r3,r2
  805f24:	1ccffc34 	orhi	r19,r3,16368
  805f28:	ac00012e 	bgeu	r21,r16,805f30 <_b2d+0x90>
  805f2c:	853fff17 	ldw	r20,-4(r16)
  805f30:	00800804 	movi	r2,32
  805f34:	1145c83a 	sub	r2,r2,r5
  805f38:	a084d83a 	srl	r2,r20,r2
  805f3c:	2146983a 	sll	r3,r4,r5
  805f40:	18a4b03a 	or	r18,r3,r2
  805f44:	00000606 	br	805f60 <_b2d+0xc0>
  805f48:	843fff04 	addi	r16,r16,-4
  805f4c:	297ffd44 	addi	r5,r5,-11
  805f50:	81000017 	ldw	r4,0(r16)
  805f54:	283fed1e 	bne	r5,zero,805f0c <_b2d+0x6c>
  805f58:	a4cffc34 	orhi	r19,r20,16368
  805f5c:	2025883a 	mov	r18,r4
  805f60:	9005883a 	mov	r2,r18
  805f64:	9807883a 	mov	r3,r19
  805f68:	dfc00617 	ldw	ra,24(sp)
  805f6c:	dc000517 	ldw	r16,20(sp)
  805f70:	dc400417 	ldw	r17,16(sp)
  805f74:	dc800317 	ldw	r18,12(sp)
  805f78:	dcc00217 	ldw	r19,8(sp)
  805f7c:	dd000117 	ldw	r20,4(sp)
  805f80:	dd400017 	ldw	r21,0(sp)
  805f84:	dec00704 	addi	sp,sp,28
  805f88:	f800283a 	ret
  805f8c:	008002c4 	movi	r2,11
  805f90:	1145c83a 	sub	r2,r2,r5
  805f94:	a084d83a 	srl	r2,r20,r2
  805f98:	0009883a 	mov	r4,zero
  805f9c:	14cffc34 	orhi	r19,r2,16368
  805fa0:	ac00012e 	bgeu	r21,r16,805fa8 <_b2d+0x108>
  805fa4:	813fff17 	ldw	r4,-4(r16)
  805fa8:	00c002c4 	movi	r3,11
  805fac:	1947c83a 	sub	r3,r3,r5
  805fb0:	28800544 	addi	r2,r5,21
  805fb4:	a084983a 	sll	r2,r20,r2
  805fb8:	20c6d83a 	srl	r3,r4,r3
  805fbc:	18a4b03a 	or	r18,r3,r2
  805fc0:	003fe706 	br	805f60 <_b2d+0xc0>

00805fc4 <_d2b>:
  805fc4:	defff404 	addi	sp,sp,-48
  805fc8:	dd000515 	stw	r20,20(sp)
  805fcc:	05000044 	movi	r20,1
  805fd0:	dc000915 	stw	r16,36(sp)
  805fd4:	2821883a 	mov	r16,r5
  805fd8:	a00b883a 	mov	r5,r20
  805fdc:	df000a15 	stw	fp,40(sp)
  805fe0:	dc400815 	stw	r17,32(sp)
  805fe4:	dc800715 	stw	r18,28(sp)
  805fe8:	3023883a 	mov	r17,r6
  805fec:	dcc00615 	stw	r19,24(sp)
  805ff0:	dd400415 	stw	r21,16(sp)
  805ff4:	dd800315 	stw	r22,12(sp)
  805ff8:	ddc00215 	stw	r23,8(sp)
  805ffc:	dfc00b15 	stw	ra,44(sp)
  806000:	382f883a 	mov	r23,r7
  806004:	df000c17 	ldw	fp,48(sp)
  806008:	08053d40 	call	8053d4 <_Balloc>
  80600c:	1027883a 	mov	r19,r2
  806010:	00e00034 	movhi	r3,32768
  806014:	18ffffc4 	addi	r3,r3,-1
  806018:	00800434 	movhi	r2,16
  80601c:	10bfffc4 	addi	r2,r2,-1
  806020:	8888703a 	and	r4,r17,r2
  806024:	1c62703a 	and	r17,r3,r17
  806028:	882cd53a 	srli	r22,r17,20
  80602c:	9c800504 	addi	r18,r19,20
  806030:	b02b003a 	cmpeq	r21,r22,zero
  806034:	a800011e 	bne	r21,zero,80603c <_d2b+0x78>
  806038:	21000434 	orhi	r4,r4,16
  80603c:	d9000115 	stw	r4,4(sp)
  806040:	80002226 	beq	r16,zero,8060cc <_d2b+0x108>
  806044:	d809883a 	mov	r4,sp
  806048:	dc000015 	stw	r16,0(sp)
  80604c:	08057080 	call	805708 <_lo0bits>
  806050:	100d883a 	mov	r6,r2
  806054:	10002f1e 	bne	r2,zero,806114 <_d2b+0x150>
  806058:	d8800017 	ldw	r2,0(sp)
  80605c:	90800015 	stw	r2,0(r18)
  806060:	d9000117 	ldw	r4,4(sp)
  806064:	2005003a 	cmpeq	r2,r4,zero
  806068:	00c00084 	movi	r3,2
  80606c:	1885c83a 	sub	r2,r3,r2
  806070:	100b883a 	mov	r5,r2
  806074:	91000115 	stw	r4,4(r18)
  806078:	98800415 	stw	r2,16(r19)
  80607c:	a8001b1e 	bne	r21,zero,8060ec <_d2b+0x128>
  806080:	b185883a 	add	r2,r22,r6
  806084:	10bef344 	addi	r2,r2,-1075
  806088:	00c00d44 	movi	r3,53
  80608c:	b8800015 	stw	r2,0(r23)
  806090:	1987c83a 	sub	r3,r3,r6
  806094:	e0c00015 	stw	r3,0(fp)
  806098:	9805883a 	mov	r2,r19
  80609c:	dfc00b17 	ldw	ra,44(sp)
  8060a0:	df000a17 	ldw	fp,40(sp)
  8060a4:	dc000917 	ldw	r16,36(sp)
  8060a8:	dc400817 	ldw	r17,32(sp)
  8060ac:	dc800717 	ldw	r18,28(sp)
  8060b0:	dcc00617 	ldw	r19,24(sp)
  8060b4:	dd000517 	ldw	r20,20(sp)
  8060b8:	dd400417 	ldw	r21,16(sp)
  8060bc:	dd800317 	ldw	r22,12(sp)
  8060c0:	ddc00217 	ldw	r23,8(sp)
  8060c4:	dec00c04 	addi	sp,sp,48
  8060c8:	f800283a 	ret
  8060cc:	d9000104 	addi	r4,sp,4
  8060d0:	08057080 	call	805708 <_lo0bits>
  8060d4:	d8c00117 	ldw	r3,4(sp)
  8060d8:	9d000415 	stw	r20,16(r19)
  8060dc:	a00b883a 	mov	r5,r20
  8060e0:	90c00015 	stw	r3,0(r18)
  8060e4:	11800804 	addi	r6,r2,32
  8060e8:	a83fe526 	beq	r21,zero,806080 <_d2b+0xbc>
  8060ec:	280490ba 	slli	r2,r5,2
  8060f0:	30fef384 	addi	r3,r6,-1074
  8060f4:	2820917a 	slli	r16,r5,5
  8060f8:	1485883a 	add	r2,r2,r18
  8060fc:	113fff17 	ldw	r4,-4(r2)
  806100:	b8c00015 	stw	r3,0(r23)
  806104:	08056a00 	call	8056a0 <_hi0bits>
  806108:	80a1c83a 	sub	r16,r16,r2
  80610c:	e4000015 	stw	r16,0(fp)
  806110:	003fe106 	br	806098 <_d2b+0xd4>
  806114:	00c00804 	movi	r3,32
  806118:	1887c83a 	sub	r3,r3,r2
  80611c:	d8800117 	ldw	r2,4(sp)
  806120:	d9000017 	ldw	r4,0(sp)
  806124:	10c4983a 	sll	r2,r2,r3
  806128:	1104b03a 	or	r2,r2,r4
  80612c:	90800015 	stw	r2,0(r18)
  806130:	d8c00117 	ldw	r3,4(sp)
  806134:	1988d83a 	srl	r4,r3,r6
  806138:	d9000115 	stw	r4,4(sp)
  80613c:	003fc906 	br	806064 <_d2b+0xa0>

00806140 <_ratio>:
  806140:	defff904 	addi	sp,sp,-28
  806144:	dc400515 	stw	r17,20(sp)
  806148:	2823883a 	mov	r17,r5
  80614c:	d80b883a 	mov	r5,sp
  806150:	dfc00615 	stw	ra,24(sp)
  806154:	dc800415 	stw	r18,16(sp)
  806158:	dcc00315 	stw	r19,12(sp)
  80615c:	2025883a 	mov	r18,r4
  806160:	dd000215 	stw	r20,8(sp)
  806164:	0805ea00 	call	805ea0 <_b2d>
  806168:	8809883a 	mov	r4,r17
  80616c:	d9400104 	addi	r5,sp,4
  806170:	1027883a 	mov	r19,r2
  806174:	1829883a 	mov	r20,r3
  806178:	0805ea00 	call	805ea0 <_b2d>
  80617c:	89000417 	ldw	r4,16(r17)
  806180:	91c00417 	ldw	r7,16(r18)
  806184:	d9800117 	ldw	r6,4(sp)
  806188:	1813883a 	mov	r9,r3
  80618c:	390fc83a 	sub	r7,r7,r4
  806190:	1009883a 	mov	r4,r2
  806194:	d8800017 	ldw	r2,0(sp)
  806198:	380e917a 	slli	r7,r7,5
  80619c:	2011883a 	mov	r8,r4
  8061a0:	1185c83a 	sub	r2,r2,r6
  8061a4:	11c5883a 	add	r2,r2,r7
  8061a8:	100c953a 	slli	r6,r2,20
  8061ac:	00800d0e 	bge	zero,r2,8061e4 <_ratio+0xa4>
  8061b0:	3529883a 	add	r20,r6,r20
  8061b4:	a00b883a 	mov	r5,r20
  8061b8:	480f883a 	mov	r7,r9
  8061bc:	9809883a 	mov	r4,r19
  8061c0:	400d883a 	mov	r6,r8
  8061c4:	080808c0 	call	80808c <__divdf3>
  8061c8:	dfc00617 	ldw	ra,24(sp)
  8061cc:	dc400517 	ldw	r17,20(sp)
  8061d0:	dc800417 	ldw	r18,16(sp)
  8061d4:	dcc00317 	ldw	r19,12(sp)
  8061d8:	dd000217 	ldw	r20,8(sp)
  8061dc:	dec00704 	addi	sp,sp,28
  8061e0:	f800283a 	ret
  8061e4:	1993c83a 	sub	r9,r3,r6
  8061e8:	003ff206 	br	8061b4 <_ratio+0x74>

008061ec <_mprec_log10>:
  8061ec:	defffe04 	addi	sp,sp,-8
  8061f0:	008005c4 	movi	r2,23
  8061f4:	dc000015 	stw	r16,0(sp)
  8061f8:	dfc00115 	stw	ra,4(sp)
  8061fc:	2021883a 	mov	r16,r4
  806200:	0011883a 	mov	r8,zero
  806204:	024ffc34 	movhi	r9,16368
  806208:	4a400004 	addi	r9,r9,0
  80620c:	11000e16 	blt	r2,r4,806248 <_mprec_log10+0x5c>
  806210:	200490fa 	slli	r2,r4,3
  806214:	01402074 	movhi	r5,129
  806218:	29711c04 	addi	r5,r5,-15248
  80621c:	1145883a 	add	r2,r2,r5
  806220:	10c00017 	ldw	r3,0(r2)
  806224:	11000117 	ldw	r4,4(r2)
  806228:	180d883a 	mov	r6,r3
  80622c:	200f883a 	mov	r7,r4
  806230:	3807883a 	mov	r3,r7
  806234:	3005883a 	mov	r2,r6
  806238:	dfc00117 	ldw	ra,4(sp)
  80623c:	dc000017 	ldw	r16,0(sp)
  806240:	dec00204 	addi	sp,sp,8
  806244:	f800283a 	ret
  806248:	04000c0e 	bge	zero,r16,80627c <_mprec_log10+0x90>
  80624c:	0005883a 	mov	r2,zero
  806250:	00d00934 	movhi	r3,16420
  806254:	18c00004 	addi	r3,r3,0
  806258:	480b883a 	mov	r5,r9
  80625c:	4009883a 	mov	r4,r8
  806260:	180f883a 	mov	r7,r3
  806264:	100d883a 	mov	r6,r2
  806268:	0807c8c0 	call	807c8c <__muldf3>
  80626c:	843fffc4 	addi	r16,r16,-1
  806270:	1011883a 	mov	r8,r2
  806274:	1813883a 	mov	r9,r3
  806278:	043ff416 	blt	zero,r16,80624c <_mprec_log10+0x60>
  80627c:	400d883a 	mov	r6,r8
  806280:	480f883a 	mov	r7,r9
  806284:	3807883a 	mov	r3,r7
  806288:	3005883a 	mov	r2,r6
  80628c:	dfc00117 	ldw	ra,4(sp)
  806290:	dc000017 	ldw	r16,0(sp)
  806294:	dec00204 	addi	sp,sp,8
  806298:	f800283a 	ret

0080629c <_realloc_r>:
  80629c:	defff404 	addi	sp,sp,-48
  8062a0:	dc400815 	stw	r17,32(sp)
  8062a4:	dd800315 	stw	r22,12(sp)
  8062a8:	dfc00b15 	stw	ra,44(sp)
  8062ac:	df000a15 	stw	fp,40(sp)
  8062b0:	dc000915 	stw	r16,36(sp)
  8062b4:	dc800715 	stw	r18,28(sp)
  8062b8:	dcc00615 	stw	r19,24(sp)
  8062bc:	dd000515 	stw	r20,20(sp)
  8062c0:	dd400415 	stw	r21,16(sp)
  8062c4:	ddc00215 	stw	r23,8(sp)
  8062c8:	2823883a 	mov	r17,r5
  8062cc:	202d883a 	mov	r22,r4
  8062d0:	28007826 	beq	r5,zero,8064b4 <_realloc_r+0x218>
  8062d4:	2c3ffe04 	addi	r16,r5,-8
  8062d8:	d9800115 	stw	r6,4(sp)
  8062dc:	08094500 	call	809450 <__malloc_lock>
  8062e0:	81400117 	ldw	r5,4(r16)
  8062e4:	d9800117 	ldw	r6,4(sp)
  8062e8:	00bfff04 	movi	r2,-4
  8062ec:	28a4703a 	and	r18,r5,r2
  8062f0:	30c002c4 	addi	r3,r6,11
  8062f4:	00800584 	movi	r2,22
  8062f8:	8027883a 	mov	r19,r16
  8062fc:	9013883a 	mov	r9,r18
  806300:	05000404 	movi	r20,16
  806304:	10c05b36 	bltu	r2,r3,806474 <_realloc_r+0x1d8>
  806308:	a1805d36 	bltu	r20,r6,806480 <_realloc_r+0x1e4>
  80630c:	9500a80e 	bge	r18,r20,8065b0 <_realloc_r+0x314>
  806310:	07002074 	movhi	fp,129
  806314:	e732f004 	addi	fp,fp,-13376
  806318:	e2000217 	ldw	r8,8(fp)
  80631c:	8489883a 	add	r4,r16,r18
  806320:	e015883a 	mov	r10,fp
  806324:	4100c326 	beq	r8,r4,806634 <_realloc_r+0x398>
  806328:	21c00117 	ldw	r7,4(r4)
  80632c:	00bfff84 	movi	r2,-2
  806330:	3884703a 	and	r2,r7,r2
  806334:	1105883a 	add	r2,r2,r4
  806338:	10c00117 	ldw	r3,4(r2)
  80633c:	18c0004c 	andi	r3,r3,1
  806340:	1800b91e 	bne	r3,zero,806628 <_realloc_r+0x38c>
  806344:	00bfff04 	movi	r2,-4
  806348:	388e703a 	and	r7,r7,r2
  80634c:	4100c526 	beq	r8,r4,806664 <_realloc_r+0x3c8>
  806350:	3c85883a 	add	r2,r7,r18
  806354:	1500bd0e 	bge	r2,r20,80664c <_realloc_r+0x3b0>
  806358:	2880004c 	andi	r2,r5,1
  80635c:	10000e1e 	bne	r2,zero,806398 <_realloc_r+0xfc>
  806360:	80800017 	ldw	r2,0(r16)
  806364:	80afc83a 	sub	r23,r16,r2
  806368:	b8c00117 	ldw	r3,4(r23)
  80636c:	00bfff04 	movi	r2,-4
  806370:	188a703a 	and	r5,r3,r2
  806374:	20000526 	beq	r4,zero,80638c <_realloc_r+0xf0>
  806378:	e0800217 	ldw	r2,8(fp)
  80637c:	1100cf26 	beq	r2,r4,8066bc <_realloc_r+0x420>
  806380:	3945883a 	add	r2,r7,r5
  806384:	1485883a 	add	r2,r2,r18
  806388:	1500590e 	bge	r2,r20,8064f0 <_realloc_r+0x254>
  80638c:	b8000226 	beq	r23,zero,806398 <_realloc_r+0xfc>
  806390:	2c87883a 	add	r3,r5,r18
  806394:	1d00c10e 	bge	r3,r20,80669c <_realloc_r+0x400>
  806398:	300b883a 	mov	r5,r6
  80639c:	b009883a 	mov	r4,r22
  8063a0:	08049f00 	call	8049f0 <_malloc_r>
  8063a4:	102b883a 	mov	r21,r2
  8063a8:	10010d26 	beq	r2,zero,8067e0 <_realloc_r+0x544>
  8063ac:	98800117 	ldw	r2,4(r19)
  8063b0:	00ffff84 	movi	r3,-2
  8063b4:	ac3ffe04 	addi	r16,r21,-8
  8063b8:	10c4703a 	and	r2,r2,r3
  8063bc:	14c5883a 	add	r2,r2,r19
  8063c0:	8080fd26 	beq	r16,r2,8067b8 <_realloc_r+0x51c>
  8063c4:	91bfff04 	addi	r6,r18,-4
  8063c8:	00800904 	movi	r2,36
  8063cc:	11809b36 	bltu	r2,r6,80663c <_realloc_r+0x3a0>
  8063d0:	008004c4 	movi	r2,19
  8063d4:	880b883a 	mov	r5,r17
  8063d8:	a809883a 	mov	r4,r21
  8063dc:	1180162e 	bgeu	r2,r6,806438 <_realloc_r+0x19c>
  8063e0:	88800017 	ldw	r2,0(r17)
  8063e4:	89400204 	addi	r5,r17,8
  8063e8:	a9000204 	addi	r4,r21,8
  8063ec:	a8800015 	stw	r2,0(r21)
  8063f0:	88c00117 	ldw	r3,4(r17)
  8063f4:	008006c4 	movi	r2,27
  8063f8:	a8c00115 	stw	r3,4(r21)
  8063fc:	11800e2e 	bgeu	r2,r6,806438 <_realloc_r+0x19c>
  806400:	28800017 	ldw	r2,0(r5)
  806404:	89400404 	addi	r5,r17,16
  806408:	20800015 	stw	r2,0(r4)
  80640c:	88c00317 	ldw	r3,12(r17)
  806410:	008008c4 	movi	r2,35
  806414:	a9000404 	addi	r4,r21,16
  806418:	a8c00315 	stw	r3,12(r21)
  80641c:	1180062e 	bgeu	r2,r6,806438 <_realloc_r+0x19c>
  806420:	28800017 	ldw	r2,0(r5)
  806424:	89400604 	addi	r5,r17,24
  806428:	20800015 	stw	r2,0(r4)
  80642c:	88c00517 	ldw	r3,20(r17)
  806430:	a9000604 	addi	r4,r21,24
  806434:	a8c00515 	stw	r3,20(r21)
  806438:	28800017 	ldw	r2,0(r5)
  80643c:	29400104 	addi	r5,r5,4
  806440:	20800015 	stw	r2,0(r4)
  806444:	28c00017 	ldw	r3,0(r5)
  806448:	21000104 	addi	r4,r4,4
  80644c:	20c00015 	stw	r3,0(r4)
  806450:	28800117 	ldw	r2,4(r5)
  806454:	20800115 	stw	r2,4(r4)
  806458:	b009883a 	mov	r4,r22
  80645c:	880b883a 	mov	r5,r17
  806460:	080408c0 	call	80408c <_free_r>
  806464:	b009883a 	mov	r4,r22
  806468:	080946c0 	call	80946c <__malloc_unlock>
  80646c:	a805883a 	mov	r2,r21
  806470:	00000406 	br	806484 <_realloc_r+0x1e8>
  806474:	00bffe04 	movi	r2,-8
  806478:	18a8703a 	and	r20,r3,r2
  80647c:	a03fa20e 	bge	r20,zero,806308 <_realloc_r+0x6c>
  806480:	0005883a 	mov	r2,zero
  806484:	dfc00b17 	ldw	ra,44(sp)
  806488:	df000a17 	ldw	fp,40(sp)
  80648c:	dc000917 	ldw	r16,36(sp)
  806490:	dc400817 	ldw	r17,32(sp)
  806494:	dc800717 	ldw	r18,28(sp)
  806498:	dcc00617 	ldw	r19,24(sp)
  80649c:	dd000517 	ldw	r20,20(sp)
  8064a0:	dd400417 	ldw	r21,16(sp)
  8064a4:	dd800317 	ldw	r22,12(sp)
  8064a8:	ddc00217 	ldw	r23,8(sp)
  8064ac:	dec00c04 	addi	sp,sp,48
  8064b0:	f800283a 	ret
  8064b4:	300b883a 	mov	r5,r6
  8064b8:	02002034 	movhi	r8,128
  8064bc:	42127c04 	addi	r8,r8,18928
  8064c0:	dfc00b17 	ldw	ra,44(sp)
  8064c4:	df000a17 	ldw	fp,40(sp)
  8064c8:	dc000917 	ldw	r16,36(sp)
  8064cc:	dc400817 	ldw	r17,32(sp)
  8064d0:	dc800717 	ldw	r18,28(sp)
  8064d4:	dcc00617 	ldw	r19,24(sp)
  8064d8:	dd000517 	ldw	r20,20(sp)
  8064dc:	dd400417 	ldw	r21,16(sp)
  8064e0:	dd800317 	ldw	r22,12(sp)
  8064e4:	ddc00217 	ldw	r23,8(sp)
  8064e8:	dec00c04 	addi	sp,sp,48
  8064ec:	4000683a 	jmp	r8
  8064f0:	21400217 	ldw	r5,8(r4)
  8064f4:	21000317 	ldw	r4,12(r4)
  8064f8:	b821883a 	mov	r16,r23
  8064fc:	49bfff04 	addi	r6,r9,-4
  806500:	21400215 	stw	r5,8(r4)
  806504:	29000315 	stw	r4,12(r5)
  806508:	b9000317 	ldw	r4,12(r23)
  80650c:	b9400217 	ldw	r5,8(r23)
  806510:	1025883a 	mov	r18,r2
  806514:	21400215 	stw	r5,8(r4)
  806518:	29000315 	stw	r4,12(r5)
  80651c:	00800904 	movi	r2,36
  806520:	85400204 	addi	r21,r16,8
  806524:	1180a036 	bltu	r2,r6,8067a8 <_realloc_r+0x50c>
  806528:	008004c4 	movi	r2,19
  80652c:	880f883a 	mov	r7,r17
  806530:	a809883a 	mov	r4,r21
  806534:	1180162e 	bgeu	r2,r6,806590 <_realloc_r+0x2f4>
  806538:	88800017 	ldw	r2,0(r17)
  80653c:	89c00204 	addi	r7,r17,8
  806540:	81000404 	addi	r4,r16,16
  806544:	a8800015 	stw	r2,0(r21)
  806548:	88c00117 	ldw	r3,4(r17)
  80654c:	008006c4 	movi	r2,27
  806550:	80c00315 	stw	r3,12(r16)
  806554:	11800e2e 	bgeu	r2,r6,806590 <_realloc_r+0x2f4>
  806558:	38800017 	ldw	r2,0(r7)
  80655c:	89c00404 	addi	r7,r17,16
  806560:	20800015 	stw	r2,0(r4)
  806564:	88c00317 	ldw	r3,12(r17)
  806568:	008008c4 	movi	r2,35
  80656c:	81000604 	addi	r4,r16,24
  806570:	80c00515 	stw	r3,20(r16)
  806574:	1180062e 	bgeu	r2,r6,806590 <_realloc_r+0x2f4>
  806578:	38800017 	ldw	r2,0(r7)
  80657c:	89c00604 	addi	r7,r17,24
  806580:	20800015 	stw	r2,0(r4)
  806584:	88c00517 	ldw	r3,20(r17)
  806588:	81000804 	addi	r4,r16,32
  80658c:	80c00715 	stw	r3,28(r16)
  806590:	38800017 	ldw	r2,0(r7)
  806594:	39c00104 	addi	r7,r7,4
  806598:	20800015 	stw	r2,0(r4)
  80659c:	38c00017 	ldw	r3,0(r7)
  8065a0:	21000104 	addi	r4,r4,4
  8065a4:	20c00015 	stw	r3,0(r4)
  8065a8:	38800117 	ldw	r2,4(r7)
  8065ac:	20800115 	stw	r2,4(r4)
  8065b0:	950dc83a 	sub	r6,r18,r20
  8065b4:	008003c4 	movi	r2,15
  8065b8:	11800c36 	bltu	r2,r6,8065ec <_realloc_r+0x350>
  8065bc:	80800117 	ldw	r2,4(r16)
  8065c0:	8489883a 	add	r4,r16,r18
  8065c4:	1080004c 	andi	r2,r2,1
  8065c8:	1484b03a 	or	r2,r2,r18
  8065cc:	80800115 	stw	r2,4(r16)
  8065d0:	20c00117 	ldw	r3,4(r4)
  8065d4:	18c00054 	ori	r3,r3,1
  8065d8:	20c00115 	stw	r3,4(r4)
  8065dc:	b009883a 	mov	r4,r22
  8065e0:	080946c0 	call	80946c <__malloc_unlock>
  8065e4:	80800204 	addi	r2,r16,8
  8065e8:	003fa606 	br	806484 <_realloc_r+0x1e8>
  8065ec:	80800117 	ldw	r2,4(r16)
  8065f0:	850b883a 	add	r5,r16,r20
  8065f4:	31000054 	ori	r4,r6,1
  8065f8:	1080004c 	andi	r2,r2,1
  8065fc:	1504b03a 	or	r2,r2,r20
  806600:	80800115 	stw	r2,4(r16)
  806604:	29000115 	stw	r4,4(r5)
  806608:	2987883a 	add	r3,r5,r6
  80660c:	18800117 	ldw	r2,4(r3)
  806610:	29400204 	addi	r5,r5,8
  806614:	b009883a 	mov	r4,r22
  806618:	10800054 	ori	r2,r2,1
  80661c:	18800115 	stw	r2,4(r3)
  806620:	080408c0 	call	80408c <_free_r>
  806624:	003fed06 	br	8065dc <_realloc_r+0x340>
  806628:	0009883a 	mov	r4,zero
  80662c:	000f883a 	mov	r7,zero
  806630:	003f4906 	br	806358 <_realloc_r+0xbc>
  806634:	21c00117 	ldw	r7,4(r4)
  806638:	003f4206 	br	806344 <_realloc_r+0xa8>
  80663c:	a809883a 	mov	r4,r21
  806640:	880b883a 	mov	r5,r17
  806644:	08051740 	call	805174 <memcpy>
  806648:	003f8306 	br	806458 <_realloc_r+0x1bc>
  80664c:	21400217 	ldw	r5,8(r4)
  806650:	21000317 	ldw	r4,12(r4)
  806654:	1025883a 	mov	r18,r2
  806658:	21400215 	stw	r5,8(r4)
  80665c:	29000315 	stw	r4,12(r5)
  806660:	003fd306 	br	8065b0 <_realloc_r+0x314>
  806664:	3c87883a 	add	r3,r7,r18
  806668:	a0800404 	addi	r2,r20,16
  80666c:	18bf3a16 	blt	r3,r2,806358 <_realloc_r+0xbc>
  806670:	1d05c83a 	sub	r2,r3,r20
  806674:	850b883a 	add	r5,r16,r20
  806678:	10800054 	ori	r2,r2,1
  80667c:	28800115 	stw	r2,4(r5)
  806680:	80c00117 	ldw	r3,4(r16)
  806684:	51400215 	stw	r5,8(r10)
  806688:	b009883a 	mov	r4,r22
  80668c:	18c0004c 	andi	r3,r3,1
  806690:	1d0ab03a 	or	r5,r3,r20
  806694:	81400115 	stw	r5,4(r16)
  806698:	003fd106 	br	8065e0 <_realloc_r+0x344>
  80669c:	b9000317 	ldw	r4,12(r23)
  8066a0:	b9400217 	ldw	r5,8(r23)
  8066a4:	b821883a 	mov	r16,r23
  8066a8:	49bfff04 	addi	r6,r9,-4
  8066ac:	1825883a 	mov	r18,r3
  8066b0:	21400215 	stw	r5,8(r4)
  8066b4:	29000315 	stw	r4,12(r5)
  8066b8:	003f9806 	br	80651c <_realloc_r+0x280>
  8066bc:	3945883a 	add	r2,r7,r5
  8066c0:	1485883a 	add	r2,r2,r18
  8066c4:	a0c00404 	addi	r3,r20,16
  8066c8:	d8800015 	stw	r2,0(sp)
  8066cc:	10ff2f16 	blt	r2,r3,80638c <_realloc_r+0xf0>
  8066d0:	b9000317 	ldw	r4,12(r23)
  8066d4:	b9400217 	ldw	r5,8(r23)
  8066d8:	49bfff04 	addi	r6,r9,-4
  8066dc:	00800904 	movi	r2,36
  8066e0:	21400215 	stw	r5,8(r4)
  8066e4:	29000315 	stw	r4,12(r5)
  8066e8:	bd400204 	addi	r21,r23,8
  8066ec:	11803836 	bltu	r2,r6,8067d0 <_realloc_r+0x534>
  8066f0:	008004c4 	movi	r2,19
  8066f4:	880f883a 	mov	r7,r17
  8066f8:	a809883a 	mov	r4,r21
  8066fc:	1180162e 	bgeu	r2,r6,806758 <_realloc_r+0x4bc>
  806700:	88800017 	ldw	r2,0(r17)
  806704:	89c00204 	addi	r7,r17,8
  806708:	b9000404 	addi	r4,r23,16
  80670c:	a8800015 	stw	r2,0(r21)
  806710:	88c00117 	ldw	r3,4(r17)
  806714:	008006c4 	movi	r2,27
  806718:	b8c00315 	stw	r3,12(r23)
  80671c:	11800e2e 	bgeu	r2,r6,806758 <_realloc_r+0x4bc>
  806720:	38800017 	ldw	r2,0(r7)
  806724:	89c00404 	addi	r7,r17,16
  806728:	20800015 	stw	r2,0(r4)
  80672c:	88c00317 	ldw	r3,12(r17)
  806730:	008008c4 	movi	r2,35
  806734:	b9000604 	addi	r4,r23,24
  806738:	b8c00515 	stw	r3,20(r23)
  80673c:	1180062e 	bgeu	r2,r6,806758 <_realloc_r+0x4bc>
  806740:	38800017 	ldw	r2,0(r7)
  806744:	89c00604 	addi	r7,r17,24
  806748:	20800015 	stw	r2,0(r4)
  80674c:	88c00517 	ldw	r3,20(r17)
  806750:	b9000804 	addi	r4,r23,32
  806754:	b8c00715 	stw	r3,28(r23)
  806758:	38800017 	ldw	r2,0(r7)
  80675c:	39c00104 	addi	r7,r7,4
  806760:	20800015 	stw	r2,0(r4)
  806764:	38c00017 	ldw	r3,0(r7)
  806768:	21000104 	addi	r4,r4,4
  80676c:	20c00015 	stw	r3,0(r4)
  806770:	38800117 	ldw	r2,4(r7)
  806774:	20800115 	stw	r2,4(r4)
  806778:	d8c00017 	ldw	r3,0(sp)
  80677c:	bd0b883a 	add	r5,r23,r20
  806780:	b009883a 	mov	r4,r22
  806784:	1d05c83a 	sub	r2,r3,r20
  806788:	10800054 	ori	r2,r2,1
  80678c:	28800115 	stw	r2,4(r5)
  806790:	b8c00117 	ldw	r3,4(r23)
  806794:	e1400215 	stw	r5,8(fp)
  806798:	18c0004c 	andi	r3,r3,1
  80679c:	1d06b03a 	or	r3,r3,r20
  8067a0:	b8c00115 	stw	r3,4(r23)
  8067a4:	003f3006 	br	806468 <_realloc_r+0x1cc>
  8067a8:	a809883a 	mov	r4,r21
  8067ac:	880b883a 	mov	r5,r17
  8067b0:	08051740 	call	805174 <memcpy>
  8067b4:	003f7e06 	br	8065b0 <_realloc_r+0x314>
  8067b8:	80800117 	ldw	r2,4(r16)
  8067bc:	00ffff04 	movi	r3,-4
  8067c0:	9821883a 	mov	r16,r19
  8067c4:	10c4703a 	and	r2,r2,r3
  8067c8:	90a5883a 	add	r18,r18,r2
  8067cc:	003f7806 	br	8065b0 <_realloc_r+0x314>
  8067d0:	880b883a 	mov	r5,r17
  8067d4:	a809883a 	mov	r4,r21
  8067d8:	08051740 	call	805174 <memcpy>
  8067dc:	003fe606 	br	806778 <_realloc_r+0x4dc>
  8067e0:	b009883a 	mov	r4,r22
  8067e4:	080946c0 	call	80946c <__malloc_unlock>
  8067e8:	003f2506 	br	806480 <_realloc_r+0x1e4>

008067ec <isinf>:
  8067ec:	200d883a 	mov	r6,r4
  8067f0:	0109c83a 	sub	r4,zero,r4
  8067f4:	2188b03a 	or	r4,r4,r6
  8067f8:	2008d7fa 	srli	r4,r4,31
  8067fc:	00a00034 	movhi	r2,32768
  806800:	10bfffc4 	addi	r2,r2,-1
  806804:	288a703a 	and	r5,r5,r2
  806808:	290ab03a 	or	r5,r5,r4
  80680c:	009ffc34 	movhi	r2,32752
  806810:	10800004 	addi	r2,r2,0
  806814:	114bc83a 	sub	r5,r2,r5
  806818:	0145c83a 	sub	r2,zero,r5
  80681c:	1144b03a 	or	r2,r2,r5
  806820:	1004d7fa 	srli	r2,r2,31
  806824:	00c00044 	movi	r3,1
  806828:	1885c83a 	sub	r2,r3,r2
  80682c:	f800283a 	ret

00806830 <isnan>:
  806830:	200d883a 	mov	r6,r4
  806834:	0109c83a 	sub	r4,zero,r4
  806838:	2188b03a 	or	r4,r4,r6
  80683c:	2008d7fa 	srli	r4,r4,31
  806840:	00e00034 	movhi	r3,32768
  806844:	18ffffc4 	addi	r3,r3,-1
  806848:	28c4703a 	and	r2,r5,r3
  80684c:	1104b03a 	or	r2,r2,r4
  806850:	00dffc34 	movhi	r3,32752
  806854:	18c00004 	addi	r3,r3,0
  806858:	1885c83a 	sub	r2,r3,r2
  80685c:	1004d7fa 	srli	r2,r2,31
  806860:	f800283a 	ret

00806864 <_sbrk_r>:
  806864:	defffe04 	addi	sp,sp,-8
  806868:	dc000015 	stw	r16,0(sp)
  80686c:	2021883a 	mov	r16,r4
  806870:	2809883a 	mov	r4,r5
  806874:	dfc00115 	stw	ra,4(sp)
  806878:	d0201d15 	stw	zero,-32652(gp)
  80687c:	080964c0 	call	80964c <sbrk>
  806880:	1007883a 	mov	r3,r2
  806884:	00bfffc4 	movi	r2,-1
  806888:	18800526 	beq	r3,r2,8068a0 <_sbrk_r+0x3c>
  80688c:	1805883a 	mov	r2,r3
  806890:	dfc00117 	ldw	ra,4(sp)
  806894:	dc000017 	ldw	r16,0(sp)
  806898:	dec00204 	addi	sp,sp,8
  80689c:	f800283a 	ret
  8068a0:	d0a01d17 	ldw	r2,-32652(gp)
  8068a4:	103ff926 	beq	r2,zero,80688c <_sbrk_r+0x28>
  8068a8:	80800015 	stw	r2,0(r16)
  8068ac:	003ff706 	br	80688c <_sbrk_r+0x28>

008068b0 <__sread>:
  8068b0:	defffe04 	addi	sp,sp,-8
  8068b4:	dc000015 	stw	r16,0(sp)
  8068b8:	dfc00115 	stw	ra,4(sp)
  8068bc:	2021883a 	mov	r16,r4
  8068c0:	2807883a 	mov	r3,r5
  8068c4:	d1200017 	ldw	r4,-32768(gp)
  8068c8:	8140038f 	ldh	r5,14(r16)
  8068cc:	300f883a 	mov	r7,r6
  8068d0:	180d883a 	mov	r6,r3
  8068d4:	0806d780 	call	806d78 <_read_r>
  8068d8:	1007883a 	mov	r3,r2
  8068dc:	10000816 	blt	r2,zero,806900 <__sread+0x50>
  8068e0:	80801417 	ldw	r2,80(r16)
  8068e4:	10c5883a 	add	r2,r2,r3
  8068e8:	80801415 	stw	r2,80(r16)
  8068ec:	1805883a 	mov	r2,r3
  8068f0:	dfc00117 	ldw	ra,4(sp)
  8068f4:	dc000017 	ldw	r16,0(sp)
  8068f8:	dec00204 	addi	sp,sp,8
  8068fc:	f800283a 	ret
  806900:	8080030b 	ldhu	r2,12(r16)
  806904:	10bbffcc 	andi	r2,r2,61439
  806908:	8080030d 	sth	r2,12(r16)
  80690c:	1805883a 	mov	r2,r3
  806910:	dfc00117 	ldw	ra,4(sp)
  806914:	dc000017 	ldw	r16,0(sp)
  806918:	dec00204 	addi	sp,sp,8
  80691c:	f800283a 	ret

00806920 <__swrite>:
  806920:	defffc04 	addi	sp,sp,-16
  806924:	dc000215 	stw	r16,8(sp)
  806928:	dc400115 	stw	r17,4(sp)
  80692c:	dc800015 	stw	r18,0(sp)
  806930:	dfc00315 	stw	ra,12(sp)
  806934:	20c0030b 	ldhu	r3,12(r4)
  806938:	3025883a 	mov	r18,r6
  80693c:	2021883a 	mov	r16,r4
  806940:	1804d23a 	srli	r2,r3,8
  806944:	01c00084 	movi	r7,2
  806948:	2823883a 	mov	r17,r5
  80694c:	1080004c 	andi	r2,r2,1
  806950:	000d883a 	mov	r6,zero
  806954:	10000e1e 	bne	r2,zero,806990 <__swrite+0x70>
  806958:	8140038f 	ldh	r5,14(r16)
  80695c:	d1200017 	ldw	r4,-32768(gp)
  806960:	18bbffcc 	andi	r2,r3,61439
  806964:	880d883a 	mov	r6,r17
  806968:	900f883a 	mov	r7,r18
  80696c:	02002034 	movhi	r8,128
  806970:	421ad104 	addi	r8,r8,27460
  806974:	8080030d 	sth	r2,12(r16)
  806978:	dfc00317 	ldw	ra,12(sp)
  80697c:	dc000217 	ldw	r16,8(sp)
  806980:	dc400117 	ldw	r17,4(sp)
  806984:	dc800017 	ldw	r18,0(sp)
  806988:	dec00404 	addi	sp,sp,16
  80698c:	4000683a 	jmp	r8
  806990:	d1200017 	ldw	r4,-32768(gp)
  806994:	8140038f 	ldh	r5,14(r16)
  806998:	0806d140 	call	806d14 <_lseek_r>
  80699c:	80c0030b 	ldhu	r3,12(r16)
  8069a0:	003fed06 	br	806958 <__swrite+0x38>

008069a4 <__sseek>:
  8069a4:	defffe04 	addi	sp,sp,-8
  8069a8:	dc000015 	stw	r16,0(sp)
  8069ac:	dfc00115 	stw	ra,4(sp)
  8069b0:	2021883a 	mov	r16,r4
  8069b4:	2807883a 	mov	r3,r5
  8069b8:	d1200017 	ldw	r4,-32768(gp)
  8069bc:	8140038f 	ldh	r5,14(r16)
  8069c0:	300f883a 	mov	r7,r6
  8069c4:	180d883a 	mov	r6,r3
  8069c8:	0806d140 	call	806d14 <_lseek_r>
  8069cc:	1007883a 	mov	r3,r2
  8069d0:	00bfffc4 	movi	r2,-1
  8069d4:	18800926 	beq	r3,r2,8069fc <__sseek+0x58>
  8069d8:	8080030b 	ldhu	r2,12(r16)
  8069dc:	80c01415 	stw	r3,80(r16)
  8069e0:	10840014 	ori	r2,r2,4096
  8069e4:	8080030d 	sth	r2,12(r16)
  8069e8:	1805883a 	mov	r2,r3
  8069ec:	dfc00117 	ldw	ra,4(sp)
  8069f0:	dc000017 	ldw	r16,0(sp)
  8069f4:	dec00204 	addi	sp,sp,8
  8069f8:	f800283a 	ret
  8069fc:	8080030b 	ldhu	r2,12(r16)
  806a00:	10bbffcc 	andi	r2,r2,61439
  806a04:	8080030d 	sth	r2,12(r16)
  806a08:	1805883a 	mov	r2,r3
  806a0c:	dfc00117 	ldw	ra,4(sp)
  806a10:	dc000017 	ldw	r16,0(sp)
  806a14:	dec00204 	addi	sp,sp,8
  806a18:	f800283a 	ret

00806a1c <__sclose>:
  806a1c:	2140038f 	ldh	r5,14(r4)
  806a20:	d1200017 	ldw	r4,-32768(gp)
  806a24:	02002034 	movhi	r8,128
  806a28:	421b1604 	addi	r8,r8,27736
  806a2c:	4000683a 	jmp	r8

00806a30 <strcmp>:
  806a30:	2144b03a 	or	r2,r4,r5
  806a34:	108000cc 	andi	r2,r2,3
  806a38:	1000031e 	bne	r2,zero,806a48 <strcmp+0x18>
  806a3c:	20c00017 	ldw	r3,0(r4)
  806a40:	28800017 	ldw	r2,0(r5)
  806a44:	18801626 	beq	r3,r2,806aa0 <strcmp+0x70>
  806a48:	20c00003 	ldbu	r3,0(r4)
  806a4c:	19803fcc 	andi	r6,r3,255
  806a50:	3180201c 	xori	r6,r6,128
  806a54:	31bfe004 	addi	r6,r6,-128
  806a58:	30000c26 	beq	r6,zero,806a8c <strcmp+0x5c>
  806a5c:	29c00003 	ldbu	r7,0(r5)
  806a60:	38803fcc 	andi	r2,r7,255
  806a64:	1080201c 	xori	r2,r2,128
  806a68:	10bfe004 	addi	r2,r2,-128
  806a6c:	3080081e 	bne	r6,r2,806a90 <strcmp+0x60>
  806a70:	21000044 	addi	r4,r4,1
  806a74:	20c00003 	ldbu	r3,0(r4)
  806a78:	29400044 	addi	r5,r5,1
  806a7c:	19803fcc 	andi	r6,r3,255
  806a80:	3180201c 	xori	r6,r6,128
  806a84:	31bfe004 	addi	r6,r6,-128
  806a88:	303ff41e 	bne	r6,zero,806a5c <strcmp+0x2c>
  806a8c:	29c00003 	ldbu	r7,0(r5)
  806a90:	18c03fcc 	andi	r3,r3,255
  806a94:	38803fcc 	andi	r2,r7,255
  806a98:	1885c83a 	sub	r2,r3,r2
  806a9c:	f800283a 	ret
  806aa0:	180d883a 	mov	r6,r3
  806aa4:	023fbff4 	movhi	r8,65279
  806aa8:	423fbfc4 	addi	r8,r8,-257
  806aac:	01e02074 	movhi	r7,32897
  806ab0:	39e02004 	addi	r7,r7,-32640
  806ab4:	0186303a 	nor	r3,zero,r6
  806ab8:	3205883a 	add	r2,r6,r8
  806abc:	10c4703a 	and	r2,r2,r3
  806ac0:	11c4703a 	and	r2,r2,r7
  806ac4:	21000104 	addi	r4,r4,4
  806ac8:	29400104 	addi	r5,r5,4
  806acc:	1000041e 	bne	r2,zero,806ae0 <strcmp+0xb0>
  806ad0:	21800017 	ldw	r6,0(r4)
  806ad4:	28800017 	ldw	r2,0(r5)
  806ad8:	30bff626 	beq	r6,r2,806ab4 <strcmp+0x84>
  806adc:	003fda06 	br	806a48 <strcmp+0x18>
  806ae0:	0005883a 	mov	r2,zero
  806ae4:	f800283a 	ret

00806ae8 <strlen>:
  806ae8:	208000cc 	andi	r2,r4,3
  806aec:	200f883a 	mov	r7,r4
  806af0:	1000101e 	bne	r2,zero,806b34 <strlen+0x4c>
  806af4:	20800017 	ldw	r2,0(r4)
  806af8:	01bfbff4 	movhi	r6,65279
  806afc:	31bfbfc4 	addi	r6,r6,-257
  806b00:	01602074 	movhi	r5,32897
  806b04:	29602004 	addi	r5,r5,-32640
  806b08:	00000206 	br	806b14 <strlen+0x2c>
  806b0c:	21000104 	addi	r4,r4,4
  806b10:	20800017 	ldw	r2,0(r4)
  806b14:	0086303a 	nor	r3,zero,r2
  806b18:	1185883a 	add	r2,r2,r6
  806b1c:	10c4703a 	and	r2,r2,r3
  806b20:	1144703a 	and	r2,r2,r5
  806b24:	103ff926 	beq	r2,zero,806b0c <strlen+0x24>
  806b28:	20800007 	ldb	r2,0(r4)
  806b2c:	10000326 	beq	r2,zero,806b3c <strlen+0x54>
  806b30:	21000044 	addi	r4,r4,1
  806b34:	20800007 	ldb	r2,0(r4)
  806b38:	103ffd1e 	bne	r2,zero,806b30 <strlen+0x48>
  806b3c:	21c5c83a 	sub	r2,r4,r7
  806b40:	f800283a 	ret

00806b44 <_write_r>:
  806b44:	defffe04 	addi	sp,sp,-8
  806b48:	dc000015 	stw	r16,0(sp)
  806b4c:	2021883a 	mov	r16,r4
  806b50:	2809883a 	mov	r4,r5
  806b54:	300b883a 	mov	r5,r6
  806b58:	380d883a 	mov	r6,r7
  806b5c:	dfc00115 	stw	ra,4(sp)
  806b60:	d0201d15 	stw	zero,-32652(gp)
  806b64:	08097980 	call	809798 <write>
  806b68:	1007883a 	mov	r3,r2
  806b6c:	00bfffc4 	movi	r2,-1
  806b70:	18800526 	beq	r3,r2,806b88 <_write_r+0x44>
  806b74:	1805883a 	mov	r2,r3
  806b78:	dfc00117 	ldw	ra,4(sp)
  806b7c:	dc000017 	ldw	r16,0(sp)
  806b80:	dec00204 	addi	sp,sp,8
  806b84:	f800283a 	ret
  806b88:	d0a01d17 	ldw	r2,-32652(gp)
  806b8c:	103ff926 	beq	r2,zero,806b74 <_write_r+0x30>
  806b90:	80800015 	stw	r2,0(r16)
  806b94:	1805883a 	mov	r2,r3
  806b98:	dfc00117 	ldw	ra,4(sp)
  806b9c:	dc000017 	ldw	r16,0(sp)
  806ba0:	dec00204 	addi	sp,sp,8
  806ba4:	f800283a 	ret

00806ba8 <_calloc_r>:
  806ba8:	298b383a 	mul	r5,r5,r6
  806bac:	defffe04 	addi	sp,sp,-8
  806bb0:	dc000015 	stw	r16,0(sp)
  806bb4:	dfc00115 	stw	ra,4(sp)
  806bb8:	08049f00 	call	8049f0 <_malloc_r>
  806bbc:	1021883a 	mov	r16,r2
  806bc0:	0005883a 	mov	r2,zero
  806bc4:	80001e26 	beq	r16,zero,806c40 <_calloc_r+0x98>
  806bc8:	80bfff17 	ldw	r2,-4(r16)
  806bcc:	00ffff04 	movi	r3,-4
  806bd0:	8009883a 	mov	r4,r16
  806bd4:	10c4703a 	and	r2,r2,r3
  806bd8:	10cf883a 	add	r7,r2,r3
  806bdc:	00800904 	movi	r2,36
  806be0:	380d883a 	mov	r6,r7
  806be4:	000b883a 	mov	r5,zero
  806be8:	11c01936 	bltu	r2,r7,806c50 <_calloc_r+0xa8>
  806bec:	008004c4 	movi	r2,19
  806bf0:	8007883a 	mov	r3,r16
  806bf4:	11c00d2e 	bgeu	r2,r7,806c2c <_calloc_r+0x84>
  806bf8:	008006c4 	movi	r2,27
  806bfc:	80000015 	stw	zero,0(r16)
  806c00:	80000115 	stw	zero,4(r16)
  806c04:	80c00204 	addi	r3,r16,8
  806c08:	11c0082e 	bgeu	r2,r7,806c2c <_calloc_r+0x84>
  806c0c:	18000015 	stw	zero,0(r3)
  806c10:	008008c4 	movi	r2,35
  806c14:	80c00404 	addi	r3,r16,16
  806c18:	80000315 	stw	zero,12(r16)
  806c1c:	11c0032e 	bgeu	r2,r7,806c2c <_calloc_r+0x84>
  806c20:	18000015 	stw	zero,0(r3)
  806c24:	80000515 	stw	zero,20(r16)
  806c28:	80c00604 	addi	r3,r16,24
  806c2c:	18000015 	stw	zero,0(r3)
  806c30:	18c00104 	addi	r3,r3,4
  806c34:	18000115 	stw	zero,4(r3)
  806c38:	18000015 	stw	zero,0(r3)
  806c3c:	8005883a 	mov	r2,r16
  806c40:	dfc00117 	ldw	ra,4(sp)
  806c44:	dc000017 	ldw	r16,0(sp)
  806c48:	dec00204 	addi	sp,sp,8
  806c4c:	f800283a 	ret
  806c50:	08053380 	call	805338 <memset>
  806c54:	003ff906 	br	806c3c <_calloc_r+0x94>

00806c58 <_close_r>:
  806c58:	defffe04 	addi	sp,sp,-8
  806c5c:	dc000015 	stw	r16,0(sp)
  806c60:	2021883a 	mov	r16,r4
  806c64:	2809883a 	mov	r4,r5
  806c68:	dfc00115 	stw	ra,4(sp)
  806c6c:	d0201d15 	stw	zero,-32652(gp)
  806c70:	0808e380 	call	808e38 <close>
  806c74:	1007883a 	mov	r3,r2
  806c78:	00bfffc4 	movi	r2,-1
  806c7c:	18800526 	beq	r3,r2,806c94 <_close_r+0x3c>
  806c80:	1805883a 	mov	r2,r3
  806c84:	dfc00117 	ldw	ra,4(sp)
  806c88:	dc000017 	ldw	r16,0(sp)
  806c8c:	dec00204 	addi	sp,sp,8
  806c90:	f800283a 	ret
  806c94:	d0a01d17 	ldw	r2,-32652(gp)
  806c98:	103ff926 	beq	r2,zero,806c80 <_close_r+0x28>
  806c9c:	80800015 	stw	r2,0(r16)
  806ca0:	1805883a 	mov	r2,r3
  806ca4:	dfc00117 	ldw	ra,4(sp)
  806ca8:	dc000017 	ldw	r16,0(sp)
  806cac:	dec00204 	addi	sp,sp,8
  806cb0:	f800283a 	ret

00806cb4 <_fstat_r>:
  806cb4:	defffe04 	addi	sp,sp,-8
  806cb8:	dc000015 	stw	r16,0(sp)
  806cbc:	2021883a 	mov	r16,r4
  806cc0:	2809883a 	mov	r4,r5
  806cc4:	300b883a 	mov	r5,r6
  806cc8:	dfc00115 	stw	ra,4(sp)
  806ccc:	d0201d15 	stw	zero,-32652(gp)
  806cd0:	0808fa40 	call	808fa4 <fstat>
  806cd4:	1007883a 	mov	r3,r2
  806cd8:	00bfffc4 	movi	r2,-1
  806cdc:	18800526 	beq	r3,r2,806cf4 <_fstat_r+0x40>
  806ce0:	1805883a 	mov	r2,r3
  806ce4:	dfc00117 	ldw	ra,4(sp)
  806ce8:	dc000017 	ldw	r16,0(sp)
  806cec:	dec00204 	addi	sp,sp,8
  806cf0:	f800283a 	ret
  806cf4:	d0a01d17 	ldw	r2,-32652(gp)
  806cf8:	103ff926 	beq	r2,zero,806ce0 <_fstat_r+0x2c>
  806cfc:	80800015 	stw	r2,0(r16)
  806d00:	1805883a 	mov	r2,r3
  806d04:	dfc00117 	ldw	ra,4(sp)
  806d08:	dc000017 	ldw	r16,0(sp)
  806d0c:	dec00204 	addi	sp,sp,8
  806d10:	f800283a 	ret

00806d14 <_lseek_r>:
  806d14:	defffe04 	addi	sp,sp,-8
  806d18:	dc000015 	stw	r16,0(sp)
  806d1c:	2021883a 	mov	r16,r4
  806d20:	2809883a 	mov	r4,r5
  806d24:	300b883a 	mov	r5,r6
  806d28:	380d883a 	mov	r6,r7
  806d2c:	dfc00115 	stw	ra,4(sp)
  806d30:	d0201d15 	stw	zero,-32652(gp)
  806d34:	08092ac0 	call	8092ac <lseek>
  806d38:	1007883a 	mov	r3,r2
  806d3c:	00bfffc4 	movi	r2,-1
  806d40:	18800526 	beq	r3,r2,806d58 <_lseek_r+0x44>
  806d44:	1805883a 	mov	r2,r3
  806d48:	dfc00117 	ldw	ra,4(sp)
  806d4c:	dc000017 	ldw	r16,0(sp)
  806d50:	dec00204 	addi	sp,sp,8
  806d54:	f800283a 	ret
  806d58:	d0a01d17 	ldw	r2,-32652(gp)
  806d5c:	103ff926 	beq	r2,zero,806d44 <_lseek_r+0x30>
  806d60:	80800015 	stw	r2,0(r16)
  806d64:	1805883a 	mov	r2,r3
  806d68:	dfc00117 	ldw	ra,4(sp)
  806d6c:	dc000017 	ldw	r16,0(sp)
  806d70:	dec00204 	addi	sp,sp,8
  806d74:	f800283a 	ret

00806d78 <_read_r>:
  806d78:	defffe04 	addi	sp,sp,-8
  806d7c:	dc000015 	stw	r16,0(sp)
  806d80:	2021883a 	mov	r16,r4
  806d84:	2809883a 	mov	r4,r5
  806d88:	300b883a 	mov	r5,r6
  806d8c:	380d883a 	mov	r6,r7
  806d90:	dfc00115 	stw	ra,4(sp)
  806d94:	d0201d15 	stw	zero,-32652(gp)
  806d98:	08094880 	call	809488 <read>
  806d9c:	1007883a 	mov	r3,r2
  806da0:	00bfffc4 	movi	r2,-1
  806da4:	18800526 	beq	r3,r2,806dbc <_read_r+0x44>
  806da8:	1805883a 	mov	r2,r3
  806dac:	dfc00117 	ldw	ra,4(sp)
  806db0:	dc000017 	ldw	r16,0(sp)
  806db4:	dec00204 	addi	sp,sp,8
  806db8:	f800283a 	ret
  806dbc:	d0a01d17 	ldw	r2,-32652(gp)
  806dc0:	103ff926 	beq	r2,zero,806da8 <_read_r+0x30>
  806dc4:	80800015 	stw	r2,0(r16)
  806dc8:	1805883a 	mov	r2,r3
  806dcc:	dfc00117 	ldw	ra,4(sp)
  806dd0:	dc000017 	ldw	r16,0(sp)
  806dd4:	dec00204 	addi	sp,sp,8
  806dd8:	f800283a 	ret

00806ddc <__negdi2>:
  806ddc:	280f883a 	mov	r7,r5
  806de0:	010bc83a 	sub	r5,zero,r4
  806de4:	2808c03a 	cmpne	r4,r5,zero
  806de8:	01d3c83a 	sub	r9,zero,r7
  806dec:	4913c83a 	sub	r9,r9,r4
  806df0:	2805883a 	mov	r2,r5
  806df4:	4807883a 	mov	r3,r9
  806df8:	f800283a 	ret

00806dfc <__udivdi3>:
  806dfc:	defff604 	addi	sp,sp,-40
  806e00:	dc000715 	stw	r16,28(sp)
  806e04:	dc800515 	stw	r18,20(sp)
  806e08:	dcc00415 	stw	r19,16(sp)
  806e0c:	dd800115 	stw	r22,4(sp)
  806e10:	dfc00915 	stw	ra,36(sp)
  806e14:	df000815 	stw	fp,32(sp)
  806e18:	dc400615 	stw	r17,24(sp)
  806e1c:	dd000315 	stw	r20,12(sp)
  806e20:	dd400215 	stw	r21,8(sp)
  806e24:	ddc00015 	stw	r23,0(sp)
  806e28:	3019883a 	mov	r12,r6
  806e2c:	3821883a 	mov	r16,r7
  806e30:	202d883a 	mov	r22,r4
  806e34:	2827883a 	mov	r19,r5
  806e38:	3025883a 	mov	r18,r6
  806e3c:	3800411e 	bne	r7,zero,806f44 <__udivdi3+0x148>
  806e40:	2980662e 	bgeu	r5,r6,806fdc <__udivdi3+0x1e0>
  806e44:	00bfffd4 	movui	r2,65535
  806e48:	1181022e 	bgeu	r2,r6,807254 <__udivdi3+0x458>
  806e4c:	00804034 	movhi	r2,256
  806e50:	10bfffc4 	addi	r2,r2,-1
  806e54:	01c00404 	movi	r7,16
  806e58:	1180012e 	bgeu	r2,r6,806e60 <__udivdi3+0x64>
  806e5c:	01c00604 	movi	r7,24
  806e60:	61c4d83a 	srl	r2,r12,r7
  806e64:	01002074 	movhi	r4,129
  806e68:	21315604 	addi	r4,r4,-15016
  806e6c:	01400804 	movi	r5,32
  806e70:	1105883a 	add	r2,r2,r4
  806e74:	10c00003 	ldbu	r3,0(r2)
  806e78:	19c7883a 	add	r3,r3,r7
  806e7c:	28cfc83a 	sub	r7,r5,r3
  806e80:	38000626 	beq	r7,zero,806e9c <__udivdi3+0xa0>
  806e84:	29c5c83a 	sub	r2,r5,r7
  806e88:	b084d83a 	srl	r2,r22,r2
  806e8c:	99c6983a 	sll	r3,r19,r7
  806e90:	b1ec983a 	sll	r22,r22,r7
  806e94:	91e4983a 	sll	r18,r18,r7
  806e98:	18a6b03a 	or	r19,r3,r2
  806e9c:	9028d43a 	srli	r20,r18,16
  806ea0:	9809883a 	mov	r4,r19
  806ea4:	957fffcc 	andi	r21,r18,65535
  806ea8:	a00b883a 	mov	r5,r20
  806eac:	08088240 	call	808824 <__umodsi3>
  806eb0:	9809883a 	mov	r4,r19
  806eb4:	a00b883a 	mov	r5,r20
  806eb8:	1023883a 	mov	r17,r2
  806ebc:	08088140 	call	808814 <__udivsi3>
  806ec0:	1027883a 	mov	r19,r2
  806ec4:	8806943a 	slli	r3,r17,16
  806ec8:	b004d43a 	srli	r2,r22,16
  806ecc:	9d4b383a 	mul	r5,r19,r21
  806ed0:	18a2b03a 	or	r17,r3,r2
  806ed4:	8940042e 	bgeu	r17,r5,806ee8 <__udivdi3+0xec>
  806ed8:	8ca3883a 	add	r17,r17,r18
  806edc:	9cffffc4 	addi	r19,r19,-1
  806ee0:	8c800136 	bltu	r17,r18,806ee8 <__udivdi3+0xec>
  806ee4:	89411736 	bltu	r17,r5,807344 <__udivdi3+0x548>
  806ee8:	8963c83a 	sub	r17,r17,r5
  806eec:	8809883a 	mov	r4,r17
  806ef0:	a00b883a 	mov	r5,r20
  806ef4:	08088240 	call	808824 <__umodsi3>
  806ef8:	8809883a 	mov	r4,r17
  806efc:	a00b883a 	mov	r5,r20
  806f00:	1021883a 	mov	r16,r2
  806f04:	08088140 	call	808814 <__udivsi3>
  806f08:	8006943a 	slli	r3,r16,16
  806f0c:	154b383a 	mul	r5,r2,r21
  806f10:	1009883a 	mov	r4,r2
  806f14:	b0bfffcc 	andi	r2,r22,65535
  806f18:	18a0b03a 	or	r16,r3,r2
  806f1c:	8140052e 	bgeu	r16,r5,806f34 <__udivdi3+0x138>
  806f20:	84a1883a 	add	r16,r16,r18
  806f24:	213fffc4 	addi	r4,r4,-1
  806f28:	84800236 	bltu	r16,r18,806f34 <__udivdi3+0x138>
  806f2c:	8140012e 	bgeu	r16,r5,806f34 <__udivdi3+0x138>
  806f30:	213fffc4 	addi	r4,r4,-1
  806f34:	9804943a 	slli	r2,r19,16
  806f38:	0029883a 	mov	r20,zero
  806f3c:	1110b03a 	or	r8,r2,r4
  806f40:	00000306 	br	806f50 <__udivdi3+0x154>
  806f44:	0011883a 	mov	r8,zero
  806f48:	29c00f2e 	bgeu	r5,r7,806f88 <__udivdi3+0x18c>
  806f4c:	0029883a 	mov	r20,zero
  806f50:	4005883a 	mov	r2,r8
  806f54:	a007883a 	mov	r3,r20
  806f58:	dfc00917 	ldw	ra,36(sp)
  806f5c:	df000817 	ldw	fp,32(sp)
  806f60:	dc000717 	ldw	r16,28(sp)
  806f64:	dc400617 	ldw	r17,24(sp)
  806f68:	dc800517 	ldw	r18,20(sp)
  806f6c:	dcc00417 	ldw	r19,16(sp)
  806f70:	dd000317 	ldw	r20,12(sp)
  806f74:	dd400217 	ldw	r21,8(sp)
  806f78:	dd800117 	ldw	r22,4(sp)
  806f7c:	ddc00017 	ldw	r23,0(sp)
  806f80:	dec00a04 	addi	sp,sp,40
  806f84:	f800283a 	ret
  806f88:	00bfffd4 	movui	r2,65535
  806f8c:	11c0592e 	bgeu	r2,r7,8070f4 <__udivdi3+0x2f8>
  806f90:	00804034 	movhi	r2,256
  806f94:	10bfffc4 	addi	r2,r2,-1
  806f98:	01400404 	movi	r5,16
  806f9c:	11c0012e 	bgeu	r2,r7,806fa4 <__udivdi3+0x1a8>
  806fa0:	01400604 	movi	r5,24
  806fa4:	8144d83a 	srl	r2,r16,r5
  806fa8:	01002074 	movhi	r4,129
  806fac:	21315604 	addi	r4,r4,-15016
  806fb0:	01800804 	movi	r6,32
  806fb4:	1105883a 	add	r2,r2,r4
  806fb8:	10c00003 	ldbu	r3,0(r2)
  806fbc:	1947883a 	add	r3,r3,r5
  806fc0:	30cfc83a 	sub	r7,r6,r3
  806fc4:	3800571e 	bne	r7,zero,807124 <__udivdi3+0x328>
  806fc8:	84c00236 	bltu	r16,r19,806fd4 <__udivdi3+0x1d8>
  806fcc:	0011883a 	mov	r8,zero
  806fd0:	b4bfde36 	bltu	r22,r18,806f4c <__udivdi3+0x150>
  806fd4:	02000044 	movi	r8,1
  806fd8:	003fdc06 	br	806f4c <__udivdi3+0x150>
  806fdc:	30003926 	beq	r6,zero,8070c4 <__udivdi3+0x2c8>
  806fe0:	00bfffd4 	movui	r2,65535
  806fe4:	14803d36 	bltu	r2,r18,8070dc <__udivdi3+0x2e0>
  806fe8:	00803fc4 	movi	r2,255
  806fec:	148b803a 	cmpltu	r5,r2,r18
  806ff0:	280a90fa 	slli	r5,r5,3
  806ff4:	9144d83a 	srl	r2,r18,r5
  806ff8:	01002074 	movhi	r4,129
  806ffc:	21315604 	addi	r4,r4,-15016
  807000:	01800804 	movi	r6,32
  807004:	1105883a 	add	r2,r2,r4
  807008:	10c00003 	ldbu	r3,0(r2)
  80700c:	1947883a 	add	r3,r3,r5
  807010:	30cfc83a 	sub	r7,r6,r3
  807014:	3800931e 	bne	r7,zero,807264 <__udivdi3+0x468>
  807018:	902ad43a 	srli	r21,r18,16
  80701c:	9ca7c83a 	sub	r19,r19,r18
  807020:	05000044 	movi	r20,1
  807024:	95ffffcc 	andi	r23,r18,65535
  807028:	9809883a 	mov	r4,r19
  80702c:	a80b883a 	mov	r5,r21
  807030:	08088240 	call	808824 <__umodsi3>
  807034:	9809883a 	mov	r4,r19
  807038:	a80b883a 	mov	r5,r21
  80703c:	1023883a 	mov	r17,r2
  807040:	08088140 	call	808814 <__udivsi3>
  807044:	1027883a 	mov	r19,r2
  807048:	8806943a 	slli	r3,r17,16
  80704c:	b004d43a 	srli	r2,r22,16
  807050:	9dcb383a 	mul	r5,r19,r23
  807054:	18a2b03a 	or	r17,r3,r2
  807058:	8940042e 	bgeu	r17,r5,80706c <__udivdi3+0x270>
  80705c:	8ca3883a 	add	r17,r17,r18
  807060:	9cffffc4 	addi	r19,r19,-1
  807064:	8c800136 	bltu	r17,r18,80706c <__udivdi3+0x270>
  807068:	8940b936 	bltu	r17,r5,807350 <__udivdi3+0x554>
  80706c:	8963c83a 	sub	r17,r17,r5
  807070:	8809883a 	mov	r4,r17
  807074:	a80b883a 	mov	r5,r21
  807078:	08088240 	call	808824 <__umodsi3>
  80707c:	8809883a 	mov	r4,r17
  807080:	a80b883a 	mov	r5,r21
  807084:	1021883a 	mov	r16,r2
  807088:	08088140 	call	808814 <__udivsi3>
  80708c:	8006943a 	slli	r3,r16,16
  807090:	15cb383a 	mul	r5,r2,r23
  807094:	1009883a 	mov	r4,r2
  807098:	b0bfffcc 	andi	r2,r22,65535
  80709c:	18a0b03a 	or	r16,r3,r2
  8070a0:	8140052e 	bgeu	r16,r5,8070b8 <__udivdi3+0x2bc>
  8070a4:	84a1883a 	add	r16,r16,r18
  8070a8:	213fffc4 	addi	r4,r4,-1
  8070ac:	84800236 	bltu	r16,r18,8070b8 <__udivdi3+0x2bc>
  8070b0:	8140012e 	bgeu	r16,r5,8070b8 <__udivdi3+0x2bc>
  8070b4:	213fffc4 	addi	r4,r4,-1
  8070b8:	9804943a 	slli	r2,r19,16
  8070bc:	1110b03a 	or	r8,r2,r4
  8070c0:	003fa306 	br	806f50 <__udivdi3+0x154>
  8070c4:	01000044 	movi	r4,1
  8070c8:	000b883a 	mov	r5,zero
  8070cc:	08088140 	call	808814 <__udivsi3>
  8070d0:	1025883a 	mov	r18,r2
  8070d4:	00bfffd4 	movui	r2,65535
  8070d8:	14bfc32e 	bgeu	r2,r18,806fe8 <__udivdi3+0x1ec>
  8070dc:	00804034 	movhi	r2,256
  8070e0:	10bfffc4 	addi	r2,r2,-1
  8070e4:	01400404 	movi	r5,16
  8070e8:	14bfc22e 	bgeu	r2,r18,806ff4 <__udivdi3+0x1f8>
  8070ec:	01400604 	movi	r5,24
  8070f0:	003fc006 	br	806ff4 <__udivdi3+0x1f8>
  8070f4:	00803fc4 	movi	r2,255
  8070f8:	11cb803a 	cmpltu	r5,r2,r7
  8070fc:	280a90fa 	slli	r5,r5,3
  807100:	01002074 	movhi	r4,129
  807104:	21315604 	addi	r4,r4,-15016
  807108:	01800804 	movi	r6,32
  80710c:	8144d83a 	srl	r2,r16,r5
  807110:	1105883a 	add	r2,r2,r4
  807114:	10c00003 	ldbu	r3,0(r2)
  807118:	1947883a 	add	r3,r3,r5
  80711c:	30cfc83a 	sub	r7,r6,r3
  807120:	383fa926 	beq	r7,zero,806fc8 <__udivdi3+0x1cc>
  807124:	31c9c83a 	sub	r4,r6,r7
  807128:	81c6983a 	sll	r3,r16,r7
  80712c:	9104d83a 	srl	r2,r18,r4
  807130:	9928d83a 	srl	r20,r19,r4
  807134:	b10cd83a 	srl	r6,r22,r4
  807138:	18a0b03a 	or	r16,r3,r2
  80713c:	802ad43a 	srli	r21,r16,16
  807140:	99c4983a 	sll	r2,r19,r7
  807144:	a009883a 	mov	r4,r20
  807148:	a80b883a 	mov	r5,r21
  80714c:	11a6b03a 	or	r19,r2,r6
  807150:	b1ec983a 	sll	r22,r22,r7
  807154:	91e4983a 	sll	r18,r18,r7
  807158:	08088240 	call	808824 <__umodsi3>
  80715c:	a009883a 	mov	r4,r20
  807160:	a80b883a 	mov	r5,r21
  807164:	1023883a 	mov	r17,r2
  807168:	08088140 	call	808814 <__udivsi3>
  80716c:	102f883a 	mov	r23,r2
  807170:	8806943a 	slli	r3,r17,16
  807174:	873fffcc 	andi	fp,r16,65535
  807178:	9804d43a 	srli	r2,r19,16
  80717c:	bf13383a 	mul	r9,r23,fp
  807180:	18a2b03a 	or	r17,r3,r2
  807184:	8a40062e 	bgeu	r17,r9,8071a0 <__udivdi3+0x3a4>
  807188:	8c23883a 	add	r17,r17,r16
  80718c:	bdffffc4 	addi	r23,r23,-1
  807190:	8c000336 	bltu	r17,r16,8071a0 <__udivdi3+0x3a4>
  807194:	8a40022e 	bgeu	r17,r9,8071a0 <__udivdi3+0x3a4>
  807198:	bdffffc4 	addi	r23,r23,-1
  80719c:	8c23883a 	add	r17,r17,r16
  8071a0:	8a63c83a 	sub	r17,r17,r9
  8071a4:	8809883a 	mov	r4,r17
  8071a8:	a80b883a 	mov	r5,r21
  8071ac:	08088240 	call	808824 <__umodsi3>
  8071b0:	a80b883a 	mov	r5,r21
  8071b4:	8809883a 	mov	r4,r17
  8071b8:	1029883a 	mov	r20,r2
  8071bc:	08088140 	call	808814 <__udivsi3>
  8071c0:	a006943a 	slli	r3,r20,16
  8071c4:	1713383a 	mul	r9,r2,fp
  8071c8:	100b883a 	mov	r5,r2
  8071cc:	98bfffcc 	andi	r2,r19,65535
  8071d0:	18a8b03a 	or	r20,r3,r2
  8071d4:	a240032e 	bgeu	r20,r9,8071e4 <__udivdi3+0x3e8>
  8071d8:	a429883a 	add	r20,r20,r16
  8071dc:	297fffc4 	addi	r5,r5,-1
  8071e0:	a400542e 	bgeu	r20,r16,807334 <__udivdi3+0x538>
  8071e4:	b808943a 	slli	r4,r23,16
  8071e8:	90ffffcc 	andi	r3,r18,65535
  8071ec:	900cd43a 	srli	r6,r18,16
  8071f0:	2150b03a 	or	r8,r4,r5
  8071f4:	40bfffcc 	andi	r2,r8,65535
  8071f8:	10d5383a 	mul	r10,r2,r3
  8071fc:	400ad43a 	srli	r5,r8,16
  807200:	118f383a 	mul	r7,r2,r6
  807204:	5008d43a 	srli	r4,r10,16
  807208:	28c7383a 	mul	r3,r5,r3
  80720c:	a269c83a 	sub	r20,r20,r9
  807210:	390f883a 	add	r7,r7,r4
  807214:	38cf883a 	add	r7,r7,r3
  807218:	298b383a 	mul	r5,r5,r6
  80721c:	38c0032e 	bgeu	r7,r3,80722c <__udivdi3+0x430>
  807220:	00800074 	movhi	r2,1
  807224:	10800004 	addi	r2,r2,0
  807228:	288b883a 	add	r5,r5,r2
  80722c:	3804d43a 	srli	r2,r7,16
  807230:	3808943a 	slli	r4,r7,16
  807234:	50ffffcc 	andi	r3,r10,65535
  807238:	1145883a 	add	r2,r2,r5
  80723c:	20c7883a 	add	r3,r4,r3
  807240:	a0800236 	bltu	r20,r2,80724c <__udivdi3+0x450>
  807244:	153f411e 	bne	r2,r20,806f4c <__udivdi3+0x150>
  807248:	b0ff402e 	bgeu	r22,r3,806f4c <__udivdi3+0x150>
  80724c:	423fffc4 	addi	r8,r8,-1
  807250:	003f3e06 	br	806f4c <__udivdi3+0x150>
  807254:	00803fc4 	movi	r2,255
  807258:	118f803a 	cmpltu	r7,r2,r6
  80725c:	380e90fa 	slli	r7,r7,3
  807260:	003eff06 	br	806e60 <__udivdi3+0x64>
  807264:	91e4983a 	sll	r18,r18,r7
  807268:	31c9c83a 	sub	r4,r6,r7
  80726c:	9928d83a 	srl	r20,r19,r4
  807270:	902ad43a 	srli	r21,r18,16
  807274:	b106d83a 	srl	r3,r22,r4
  807278:	99c4983a 	sll	r2,r19,r7
  80727c:	a009883a 	mov	r4,r20
  807280:	a80b883a 	mov	r5,r21
  807284:	10e6b03a 	or	r19,r2,r3
  807288:	b1ec983a 	sll	r22,r22,r7
  80728c:	08088240 	call	808824 <__umodsi3>
  807290:	a009883a 	mov	r4,r20
  807294:	a80b883a 	mov	r5,r21
  807298:	1021883a 	mov	r16,r2
  80729c:	08088140 	call	808814 <__udivsi3>
  8072a0:	1029883a 	mov	r20,r2
  8072a4:	8006943a 	slli	r3,r16,16
  8072a8:	95ffffcc 	andi	r23,r18,65535
  8072ac:	9804d43a 	srli	r2,r19,16
  8072b0:	a5d1383a 	mul	r8,r20,r23
  8072b4:	18a0b03a 	or	r16,r3,r2
  8072b8:	8200062e 	bgeu	r16,r8,8072d4 <__udivdi3+0x4d8>
  8072bc:	84a1883a 	add	r16,r16,r18
  8072c0:	a53fffc4 	addi	r20,r20,-1
  8072c4:	84800336 	bltu	r16,r18,8072d4 <__udivdi3+0x4d8>
  8072c8:	8200022e 	bgeu	r16,r8,8072d4 <__udivdi3+0x4d8>
  8072cc:	a53fffc4 	addi	r20,r20,-1
  8072d0:	84a1883a 	add	r16,r16,r18
  8072d4:	8221c83a 	sub	r16,r16,r8
  8072d8:	8009883a 	mov	r4,r16
  8072dc:	a80b883a 	mov	r5,r21
  8072e0:	08088240 	call	808824 <__umodsi3>
  8072e4:	8009883a 	mov	r4,r16
  8072e8:	a80b883a 	mov	r5,r21
  8072ec:	1023883a 	mov	r17,r2
  8072f0:	08088140 	call	808814 <__udivsi3>
  8072f4:	8806943a 	slli	r3,r17,16
  8072f8:	15d1383a 	mul	r8,r2,r23
  8072fc:	1009883a 	mov	r4,r2
  807300:	98bfffcc 	andi	r2,r19,65535
  807304:	18a2b03a 	or	r17,r3,r2
  807308:	8a00062e 	bgeu	r17,r8,807324 <__udivdi3+0x528>
  80730c:	8ca3883a 	add	r17,r17,r18
  807310:	213fffc4 	addi	r4,r4,-1
  807314:	8c800336 	bltu	r17,r18,807324 <__udivdi3+0x528>
  807318:	8a00022e 	bgeu	r17,r8,807324 <__udivdi3+0x528>
  80731c:	213fffc4 	addi	r4,r4,-1
  807320:	8ca3883a 	add	r17,r17,r18
  807324:	a004943a 	slli	r2,r20,16
  807328:	8a27c83a 	sub	r19,r17,r8
  80732c:	1128b03a 	or	r20,r2,r4
  807330:	003f3d06 	br	807028 <__udivdi3+0x22c>
  807334:	a27fab2e 	bgeu	r20,r9,8071e4 <__udivdi3+0x3e8>
  807338:	a429883a 	add	r20,r20,r16
  80733c:	297fffc4 	addi	r5,r5,-1
  807340:	003fa806 	br	8071e4 <__udivdi3+0x3e8>
  807344:	9cffffc4 	addi	r19,r19,-1
  807348:	8ca3883a 	add	r17,r17,r18
  80734c:	003ee606 	br	806ee8 <__udivdi3+0xec>
  807350:	9cffffc4 	addi	r19,r19,-1
  807354:	8ca3883a 	add	r17,r17,r18
  807358:	003f4406 	br	80706c <__udivdi3+0x270>

0080735c <__umoddi3>:
  80735c:	defff004 	addi	sp,sp,-64
  807360:	df000e15 	stw	fp,56(sp)
  807364:	dc000d15 	stw	r16,52(sp)
  807368:	dd000915 	stw	r20,36(sp)
  80736c:	dd400815 	stw	r21,32(sp)
  807370:	dfc00f15 	stw	ra,60(sp)
  807374:	dc400c15 	stw	r17,48(sp)
  807378:	dc800b15 	stw	r18,44(sp)
  80737c:	dcc00a15 	stw	r19,40(sp)
  807380:	dd800715 	stw	r22,28(sp)
  807384:	ddc00615 	stw	r23,24(sp)
  807388:	3019883a 	mov	r12,r6
  80738c:	3821883a 	mov	r16,r7
  807390:	2829883a 	mov	r20,r5
  807394:	302b883a 	mov	r21,r6
  807398:	2039883a 	mov	fp,r4
  80739c:	38001d1e 	bne	r7,zero,807414 <__umoddi3+0xb8>
  8073a0:	2980472e 	bgeu	r5,r6,8074c0 <__umoddi3+0x164>
  8073a4:	00bfffd4 	movui	r2,65535
  8073a8:	1180902e 	bgeu	r2,r6,8075ec <__umoddi3+0x290>
  8073ac:	00804034 	movhi	r2,256
  8073b0:	10bfffc4 	addi	r2,r2,-1
  8073b4:	01c00404 	movi	r7,16
  8073b8:	1180012e 	bgeu	r2,r6,8073c0 <__umoddi3+0x64>
  8073bc:	01c00604 	movi	r7,24
  8073c0:	61c4d83a 	srl	r2,r12,r7
  8073c4:	01002074 	movhi	r4,129
  8073c8:	21315604 	addi	r4,r4,-15016
  8073cc:	01400804 	movi	r5,32
  8073d0:	1105883a 	add	r2,r2,r4
  8073d4:	10c00003 	ldbu	r3,0(r2)
  8073d8:	19c7883a 	add	r3,r3,r7
  8073dc:	28c7c83a 	sub	r3,r5,r3
  8073e0:	d8c00315 	stw	r3,12(sp)
  8073e4:	18000726 	beq	r3,zero,807404 <__umoddi3+0xa8>
  8073e8:	d9000317 	ldw	r4,12(sp)
  8073ec:	28c5c83a 	sub	r2,r5,r3
  8073f0:	e084d83a 	srl	r2,fp,r2
  8073f4:	a0c6983a 	sll	r3,r20,r3
  8073f8:	a92a983a 	sll	r21,r21,r4
  8073fc:	e138983a 	sll	fp,fp,r4
  807400:	18a8b03a 	or	r20,r3,r2
  807404:	a82cd43a 	srli	r22,r21,16
  807408:	a009883a 	mov	r4,r20
  80740c:	adffffcc 	andi	r23,r21,65535
  807410:	00003f06 	br	807510 <__umoddi3+0x1b4>
  807414:	29c0122e 	bgeu	r5,r7,807460 <__umoddi3+0x104>
  807418:	d9000015 	stw	r4,0(sp)
  80741c:	d9400115 	stw	r5,4(sp)
  807420:	d9000017 	ldw	r4,0(sp)
  807424:	d9400117 	ldw	r5,4(sp)
  807428:	2005883a 	mov	r2,r4
  80742c:	2807883a 	mov	r3,r5
  807430:	dfc00f17 	ldw	ra,60(sp)
  807434:	df000e17 	ldw	fp,56(sp)
  807438:	dc000d17 	ldw	r16,52(sp)
  80743c:	dc400c17 	ldw	r17,48(sp)
  807440:	dc800b17 	ldw	r18,44(sp)
  807444:	dcc00a17 	ldw	r19,40(sp)
  807448:	dd000917 	ldw	r20,36(sp)
  80744c:	dd400817 	ldw	r21,32(sp)
  807450:	dd800717 	ldw	r22,28(sp)
  807454:	ddc00617 	ldw	r23,24(sp)
  807458:	dec01004 	addi	sp,sp,64
  80745c:	f800283a 	ret
  807460:	00bfffd4 	movui	r2,65535
  807464:	11c05d2e 	bgeu	r2,r7,8075dc <__umoddi3+0x280>
  807468:	00804034 	movhi	r2,256
  80746c:	10bfffc4 	addi	r2,r2,-1
  807470:	01400404 	movi	r5,16
  807474:	11c0012e 	bgeu	r2,r7,80747c <__umoddi3+0x120>
  807478:	01400604 	movi	r5,24
  80747c:	8144d83a 	srl	r2,r16,r5
  807480:	01002074 	movhi	r4,129
  807484:	21315604 	addi	r4,r4,-15016
  807488:	01800804 	movi	r6,32
  80748c:	1105883a 	add	r2,r2,r4
  807490:	10c00003 	ldbu	r3,0(r2)
  807494:	1947883a 	add	r3,r3,r5
  807498:	30c7c83a 	sub	r3,r6,r3
  80749c:	d8c00315 	stw	r3,12(sp)
  8074a0:	18005c1e 	bne	r3,zero,807614 <__umoddi3+0x2b8>
  8074a4:	85005536 	bltu	r16,r20,8075fc <__umoddi3+0x2a0>
  8074a8:	e540542e 	bgeu	fp,r21,8075fc <__umoddi3+0x2a0>
  8074ac:	d83fdc26 	beq	sp,zero,807420 <__umoddi3+0xc4>
  8074b0:	e025883a 	mov	r18,fp
  8074b4:	dd000115 	stw	r20,4(sp)
  8074b8:	dc800015 	stw	r18,0(sp)
  8074bc:	003fd806 	br	807420 <__umoddi3+0xc4>
  8074c0:	30003a26 	beq	r6,zero,8075ac <__umoddi3+0x250>
  8074c4:	00bfffd4 	movui	r2,65535
  8074c8:	15403e36 	bltu	r2,r21,8075c4 <__umoddi3+0x268>
  8074cc:	00803fc4 	movi	r2,255
  8074d0:	154b803a 	cmpltu	r5,r2,r21
  8074d4:	280a90fa 	slli	r5,r5,3
  8074d8:	a944d83a 	srl	r2,r21,r5
  8074dc:	01002074 	movhi	r4,129
  8074e0:	21315604 	addi	r4,r4,-15016
  8074e4:	01800804 	movi	r6,32
  8074e8:	1105883a 	add	r2,r2,r4
  8074ec:	10c00003 	ldbu	r3,0(r2)
  8074f0:	1947883a 	add	r3,r3,r5
  8074f4:	30c7c83a 	sub	r3,r6,r3
  8074f8:	d8c00315 	stw	r3,12(sp)
  8074fc:	1800a41e 	bne	r3,zero,807790 <__umoddi3+0x434>
  807500:	a82cd43a 	srli	r22,r21,16
  807504:	a569c83a 	sub	r20,r20,r21
  807508:	adffffcc 	andi	r23,r21,65535
  80750c:	a009883a 	mov	r4,r20
  807510:	b00b883a 	mov	r5,r22
  807514:	08088240 	call	808824 <__umodsi3>
  807518:	a009883a 	mov	r4,r20
  80751c:	b00b883a 	mov	r5,r22
  807520:	1021883a 	mov	r16,r2
  807524:	08088140 	call	808814 <__udivsi3>
  807528:	e006d43a 	srli	r3,fp,16
  80752c:	8008943a 	slli	r4,r16,16
  807530:	15cb383a 	mul	r5,r2,r23
  807534:	20e0b03a 	or	r16,r4,r3
  807538:	8140042e 	bgeu	r16,r5,80754c <__umoddi3+0x1f0>
  80753c:	8561883a 	add	r16,r16,r21
  807540:	85400236 	bltu	r16,r21,80754c <__umoddi3+0x1f0>
  807544:	8140012e 	bgeu	r16,r5,80754c <__umoddi3+0x1f0>
  807548:	8561883a 	add	r16,r16,r21
  80754c:	8161c83a 	sub	r16,r16,r5
  807550:	8009883a 	mov	r4,r16
  807554:	b00b883a 	mov	r5,r22
  807558:	08088240 	call	808824 <__umodsi3>
  80755c:	b00b883a 	mov	r5,r22
  807560:	8009883a 	mov	r4,r16
  807564:	1023883a 	mov	r17,r2
  807568:	08088140 	call	808814 <__udivsi3>
  80756c:	8806943a 	slli	r3,r17,16
  807570:	15cb383a 	mul	r5,r2,r23
  807574:	e0bfffcc 	andi	r2,fp,65535
  807578:	18a2b03a 	or	r17,r3,r2
  80757c:	8940042e 	bgeu	r17,r5,807590 <__umoddi3+0x234>
  807580:	8d63883a 	add	r17,r17,r21
  807584:	8d400236 	bltu	r17,r21,807590 <__umoddi3+0x234>
  807588:	8940012e 	bgeu	r17,r5,807590 <__umoddi3+0x234>
  80758c:	8d63883a 	add	r17,r17,r21
  807590:	8979c83a 	sub	fp,r17,r5
  807594:	d83fa226 	beq	sp,zero,807420 <__umoddi3+0xc4>
  807598:	d8c00317 	ldw	r3,12(sp)
  80759c:	d8000115 	stw	zero,4(sp)
  8075a0:	e0e4d83a 	srl	r18,fp,r3
  8075a4:	dc800015 	stw	r18,0(sp)
  8075a8:	003f9d06 	br	807420 <__umoddi3+0xc4>
  8075ac:	01000044 	movi	r4,1
  8075b0:	000b883a 	mov	r5,zero
  8075b4:	08088140 	call	808814 <__udivsi3>
  8075b8:	102b883a 	mov	r21,r2
  8075bc:	00bfffd4 	movui	r2,65535
  8075c0:	157fc22e 	bgeu	r2,r21,8074cc <__umoddi3+0x170>
  8075c4:	00804034 	movhi	r2,256
  8075c8:	10bfffc4 	addi	r2,r2,-1
  8075cc:	01400404 	movi	r5,16
  8075d0:	157fc12e 	bgeu	r2,r21,8074d8 <__umoddi3+0x17c>
  8075d4:	01400604 	movi	r5,24
  8075d8:	003fbf06 	br	8074d8 <__umoddi3+0x17c>
  8075dc:	00803fc4 	movi	r2,255
  8075e0:	11cb803a 	cmpltu	r5,r2,r7
  8075e4:	280a90fa 	slli	r5,r5,3
  8075e8:	003fa406 	br	80747c <__umoddi3+0x120>
  8075ec:	00803fc4 	movi	r2,255
  8075f0:	118f803a 	cmpltu	r7,r2,r6
  8075f4:	380e90fa 	slli	r7,r7,3
  8075f8:	003f7106 	br	8073c0 <__umoddi3+0x64>
  8075fc:	e549c83a 	sub	r4,fp,r21
  807600:	e105803a 	cmpltu	r2,fp,r4
  807604:	a407c83a 	sub	r3,r20,r16
  807608:	18a9c83a 	sub	r20,r3,r2
  80760c:	2039883a 	mov	fp,r4
  807610:	003fa606 	br	8074ac <__umoddi3+0x150>
  807614:	d9000317 	ldw	r4,12(sp)
  807618:	310dc83a 	sub	r6,r6,r4
  80761c:	a984d83a 	srl	r2,r21,r6
  807620:	8106983a 	sll	r3,r16,r4
  807624:	d9800215 	stw	r6,8(sp)
  807628:	a1aed83a 	srl	r23,r20,r6
  80762c:	18a0b03a 	or	r16,r3,r2
  807630:	8004d43a 	srli	r2,r16,16
  807634:	d8c00217 	ldw	r3,8(sp)
  807638:	a10c983a 	sll	r6,r20,r4
  80763c:	d8800415 	stw	r2,16(sp)
  807640:	d9400417 	ldw	r5,16(sp)
  807644:	e0c4d83a 	srl	r2,fp,r3
  807648:	b809883a 	mov	r4,r23
  80764c:	30a8b03a 	or	r20,r6,r2
  807650:	08088240 	call	808824 <__umodsi3>
  807654:	d9400417 	ldw	r5,16(sp)
  807658:	b809883a 	mov	r4,r23
  80765c:	1023883a 	mov	r17,r2
  807660:	08088140 	call	808814 <__udivsi3>
  807664:	102f883a 	mov	r23,r2
  807668:	813fffcc 	andi	r4,r16,65535
  80766c:	8806943a 	slli	r3,r17,16
  807670:	a004d43a 	srli	r2,r20,16
  807674:	d9000515 	stw	r4,20(sp)
  807678:	b90f383a 	mul	r7,r23,r4
  80767c:	d9000317 	ldw	r4,12(sp)
  807680:	18a2b03a 	or	r17,r3,r2
  807684:	a92a983a 	sll	r21,r21,r4
  807688:	e138983a 	sll	fp,fp,r4
  80768c:	89c0062e 	bgeu	r17,r7,8076a8 <__umoddi3+0x34c>
  807690:	8c23883a 	add	r17,r17,r16
  807694:	bdffffc4 	addi	r23,r23,-1
  807698:	8c000336 	bltu	r17,r16,8076a8 <__umoddi3+0x34c>
  80769c:	89c0022e 	bgeu	r17,r7,8076a8 <__umoddi3+0x34c>
  8076a0:	bdffffc4 	addi	r23,r23,-1
  8076a4:	8c23883a 	add	r17,r17,r16
  8076a8:	d9400417 	ldw	r5,16(sp)
  8076ac:	89e3c83a 	sub	r17,r17,r7
  8076b0:	8809883a 	mov	r4,r17
  8076b4:	08088240 	call	808824 <__umodsi3>
  8076b8:	d9400417 	ldw	r5,16(sp)
  8076bc:	8809883a 	mov	r4,r17
  8076c0:	102d883a 	mov	r22,r2
  8076c4:	08088140 	call	808814 <__udivsi3>
  8076c8:	100b883a 	mov	r5,r2
  8076cc:	d8800517 	ldw	r2,20(sp)
  8076d0:	b006943a 	slli	r3,r22,16
  8076d4:	288f383a 	mul	r7,r5,r2
  8076d8:	a0bfffcc 	andi	r2,r20,65535
  8076dc:	18acb03a 	or	r22,r3,r2
  8076e0:	b1c0032e 	bgeu	r22,r7,8076f0 <__umoddi3+0x394>
  8076e4:	b42d883a 	add	r22,r22,r16
  8076e8:	297fffc4 	addi	r5,r5,-1
  8076ec:	b4005e2e 	bgeu	r22,r16,807868 <__umoddi3+0x50c>
  8076f0:	b804943a 	slli	r2,r23,16
  8076f4:	a93fffcc 	andi	r4,r21,65535
  8076f8:	a80cd43a 	srli	r6,r21,16
  8076fc:	1144b03a 	or	r2,r2,r5
  807700:	10ffffcc 	andi	r3,r2,65535
  807704:	1911383a 	mul	r8,r3,r4
  807708:	1004d43a 	srli	r2,r2,16
  80770c:	1987383a 	mul	r3,r3,r6
  807710:	400ad43a 	srli	r5,r8,16
  807714:	1109383a 	mul	r4,r2,r4
  807718:	b1edc83a 	sub	r22,r22,r7
  80771c:	1947883a 	add	r3,r3,r5
  807720:	1907883a 	add	r3,r3,r4
  807724:	118b383a 	mul	r5,r2,r6
  807728:	b029883a 	mov	r20,r22
  80772c:	1900032e 	bgeu	r3,r4,80773c <__umoddi3+0x3e0>
  807730:	00800074 	movhi	r2,1
  807734:	10800004 	addi	r2,r2,0
  807738:	288b883a 	add	r5,r5,r2
  80773c:	1804d43a 	srli	r2,r3,16
  807740:	1808943a 	slli	r4,r3,16
  807744:	40ffffcc 	andi	r3,r8,65535
  807748:	1145883a 	add	r2,r2,r5
  80774c:	20cb883a 	add	r5,r4,r3
  807750:	a0803f36 	bltu	r20,r2,807850 <__umoddi3+0x4f4>
  807754:	15003d26 	beq	r2,r20,80784c <__umoddi3+0x4f0>
  807758:	d83f3126 	beq	sp,zero,807420 <__umoddi3+0xc4>
  80775c:	e147c83a 	sub	r3,fp,r5
  807760:	b089c83a 	sub	r4,r22,r2
  807764:	e0c5803a 	cmpltu	r2,fp,r3
  807768:	20a9c83a 	sub	r20,r4,r2
  80776c:	d8800317 	ldw	r2,12(sp)
  807770:	d9000217 	ldw	r4,8(sp)
  807774:	1886d83a 	srl	r3,r3,r2
  807778:	a10a983a 	sll	r5,r20,r4
  80777c:	a084d83a 	srl	r2,r20,r2
  807780:	28e4b03a 	or	r18,r5,r3
  807784:	d8800115 	stw	r2,4(sp)
  807788:	dc800015 	stw	r18,0(sp)
  80778c:	003f2406 	br	807420 <__umoddi3+0xc4>
  807790:	d8800317 	ldw	r2,12(sp)
  807794:	a8aa983a 	sll	r21,r21,r2
  807798:	308dc83a 	sub	r6,r6,r2
  80779c:	a1aed83a 	srl	r23,r20,r6
  8077a0:	a82cd43a 	srli	r22,r21,16
  8077a4:	e186d83a 	srl	r3,fp,r6
  8077a8:	a084983a 	sll	r2,r20,r2
  8077ac:	b809883a 	mov	r4,r23
  8077b0:	b00b883a 	mov	r5,r22
  8077b4:	10e8b03a 	or	r20,r2,r3
  8077b8:	d9800215 	stw	r6,8(sp)
  8077bc:	08088240 	call	808824 <__umodsi3>
  8077c0:	b809883a 	mov	r4,r23
  8077c4:	b00b883a 	mov	r5,r22
  8077c8:	1021883a 	mov	r16,r2
  8077cc:	08088140 	call	808814 <__udivsi3>
  8077d0:	adffffcc 	andi	r23,r21,65535
  8077d4:	8008943a 	slli	r4,r16,16
  8077d8:	a006d43a 	srli	r3,r20,16
  8077dc:	15cf383a 	mul	r7,r2,r23
  8077e0:	d8800317 	ldw	r2,12(sp)
  8077e4:	20e0b03a 	or	r16,r4,r3
  8077e8:	e0b8983a 	sll	fp,fp,r2
  8077ec:	81c0042e 	bgeu	r16,r7,807800 <__umoddi3+0x4a4>
  8077f0:	8561883a 	add	r16,r16,r21
  8077f4:	85400236 	bltu	r16,r21,807800 <__umoddi3+0x4a4>
  8077f8:	81c0012e 	bgeu	r16,r7,807800 <__umoddi3+0x4a4>
  8077fc:	8561883a 	add	r16,r16,r21
  807800:	81e1c83a 	sub	r16,r16,r7
  807804:	8009883a 	mov	r4,r16
  807808:	b00b883a 	mov	r5,r22
  80780c:	08088240 	call	808824 <__umodsi3>
  807810:	8009883a 	mov	r4,r16
  807814:	b00b883a 	mov	r5,r22
  807818:	1023883a 	mov	r17,r2
  80781c:	08088140 	call	808814 <__udivsi3>
  807820:	8806943a 	slli	r3,r17,16
  807824:	15cf383a 	mul	r7,r2,r23
  807828:	a0bfffcc 	andi	r2,r20,65535
  80782c:	18a2b03a 	or	r17,r3,r2
  807830:	89c0042e 	bgeu	r17,r7,807844 <__umoddi3+0x4e8>
  807834:	8d63883a 	add	r17,r17,r21
  807838:	8d400236 	bltu	r17,r21,807844 <__umoddi3+0x4e8>
  80783c:	89c0012e 	bgeu	r17,r7,807844 <__umoddi3+0x4e8>
  807840:	8d63883a 	add	r17,r17,r21
  807844:	89e9c83a 	sub	r20,r17,r7
  807848:	003f3006 	br	80750c <__umoddi3+0x1b0>
  80784c:	e17fc22e 	bgeu	fp,r5,807758 <__umoddi3+0x3fc>
  807850:	2d49c83a 	sub	r4,r5,r21
  807854:	1407c83a 	sub	r3,r2,r16
  807858:	2905803a 	cmpltu	r2,r5,r4
  80785c:	1885c83a 	sub	r2,r3,r2
  807860:	200b883a 	mov	r5,r4
  807864:	003fbc06 	br	807758 <__umoddi3+0x3fc>
  807868:	b1ffa12e 	bgeu	r22,r7,8076f0 <__umoddi3+0x394>
  80786c:	297fffc4 	addi	r5,r5,-1
  807870:	b42d883a 	add	r22,r22,r16
  807874:	003f9e06 	br	8076f0 <__umoddi3+0x394>

00807878 <_fpadd_parts>:
  807878:	defffc04 	addi	sp,sp,-16
  80787c:	dc000215 	stw	r16,8(sp)
  807880:	dfc00315 	stw	ra,12(sp)
  807884:	dc400115 	stw	r17,4(sp)
  807888:	dc800015 	stw	r18,0(sp)
  80788c:	20c00017 	ldw	r3,0(r4)
  807890:	00800044 	movi	r2,1
  807894:	3021883a 	mov	r16,r6
  807898:	2019883a 	mov	r12,r4
  80789c:	281b883a 	mov	r13,r5
  8078a0:	200d883a 	mov	r6,r4
  8078a4:	10c05d2e 	bgeu	r2,r3,807a1c <_fpadd_parts+0x1a4>
  8078a8:	29000017 	ldw	r4,0(r5)
  8078ac:	280d883a 	mov	r6,r5
  8078b0:	11005a2e 	bgeu	r2,r4,807a1c <_fpadd_parts+0x1a4>
  8078b4:	18800118 	cmpnei	r2,r3,4
  8078b8:	10005f26 	beq	r2,zero,807a38 <_fpadd_parts+0x1c0>
  8078bc:	20800118 	cmpnei	r2,r4,4
  8078c0:	280d883a 	mov	r6,r5
  8078c4:	10005526 	beq	r2,zero,807a1c <_fpadd_parts+0x1a4>
  8078c8:	20800098 	cmpnei	r2,r4,2
  8078cc:	10008026 	beq	r2,zero,807ad0 <_fpadd_parts+0x258>
  8078d0:	18800098 	cmpnei	r2,r3,2
  8078d4:	280d883a 	mov	r6,r5
  8078d8:	10005026 	beq	r2,zero,807a1c <_fpadd_parts+0x1a4>
  8078dc:	63c00217 	ldw	r15,8(r12)
  8078e0:	2b800217 	ldw	r14,8(r5)
  8078e4:	62800317 	ldw	r10,12(r12)
  8078e8:	2a000317 	ldw	r8,12(r5)
  8078ec:	7b87c83a 	sub	r3,r15,r14
  8078f0:	62c00417 	ldw	r11,16(r12)
  8078f4:	2a400417 	ldw	r9,16(r5)
  8078f8:	18009c16 	blt	r3,zero,807b6c <_fpadd_parts+0x2f4>
  8078fc:	00800fc4 	movi	r2,63
  807900:	10c0500e 	bge	r2,r3,807a44 <_fpadd_parts+0x1cc>
  807904:	73c0950e 	bge	r14,r15,807b5c <_fpadd_parts+0x2e4>
  807908:	0011883a 	mov	r8,zero
  80790c:	0013883a 	mov	r9,zero
  807910:	61400117 	ldw	r5,4(r12)
  807914:	68800117 	ldw	r2,4(r13)
  807918:	28808626 	beq	r5,r2,807b34 <_fpadd_parts+0x2bc>
  80791c:	28008126 	beq	r5,zero,807b24 <_fpadd_parts+0x2ac>
  807920:	4285c83a 	sub	r2,r8,r10
  807924:	4089803a 	cmpltu	r4,r8,r2
  807928:	4ac7c83a 	sub	r3,r9,r11
  80792c:	1909c83a 	sub	r4,r3,r4
  807930:	100d883a 	mov	r6,r2
  807934:	20008f16 	blt	r4,zero,807b74 <_fpadd_parts+0x2fc>
  807938:	7823883a 	mov	r17,r15
  80793c:	781d883a 	mov	r14,r15
  807940:	81000415 	stw	r4,16(r16)
  807944:	80000115 	stw	zero,4(r16)
  807948:	80800315 	stw	r2,12(r16)
  80794c:	80800317 	ldw	r2,12(r16)
  807950:	80c00417 	ldw	r3,16(r16)
  807954:	013fffc4 	movi	r4,-1
  807958:	110f883a 	add	r7,r2,r4
  80795c:	388d803a 	cmpltu	r6,r7,r2
  807960:	1911883a 	add	r8,r3,r4
  807964:	02440034 	movhi	r9,4096
  807968:	4a7fffc4 	addi	r9,r9,-1
  80796c:	3211883a 	add	r8,r6,r8
  807970:	4a001536 	bltu	r9,r8,8079c8 <_fpadd_parts+0x150>
  807974:	42408926 	beq	r8,r9,807b9c <_fpadd_parts+0x324>
  807978:	481f883a 	mov	r15,r9
  80797c:	04bfff84 	movi	r18,-2
  807980:	80800317 	ldw	r2,12(r16)
  807984:	80c00417 	ldw	r3,16(r16)
  807988:	013fffc4 	movi	r4,-1
  80798c:	1091883a 	add	r8,r2,r2
  807990:	1016d7fa 	srli	r11,r2,31
  807994:	18d5883a 	add	r10,r3,r3
  807998:	4119883a 	add	r12,r8,r4
  80799c:	6205803a 	cmpltu	r2,r12,r8
  8079a0:	5a92b03a 	or	r9,r11,r10
  8079a4:	491b883a 	add	r13,r9,r4
  8079a8:	7123883a 	add	r17,r14,r4
  8079ac:	135b883a 	add	r13,r2,r13
  8079b0:	881d883a 	mov	r14,r17
  8079b4:	82000315 	stw	r8,12(r16)
  8079b8:	82400415 	stw	r9,16(r16)
  8079bc:	7b400236 	bltu	r15,r13,8079c8 <_fpadd_parts+0x150>
  8079c0:	7b7fef1e 	bne	r15,r13,807980 <_fpadd_parts+0x108>
  8079c4:	933fee2e 	bgeu	r18,r12,807980 <_fpadd_parts+0x108>
  8079c8:	83400417 	ldw	r13,16(r16)
  8079cc:	008000c4 	movi	r2,3
  8079d0:	00c80034 	movhi	r3,8192
  8079d4:	18ffffc4 	addi	r3,r3,-1
  8079d8:	83000317 	ldw	r12,12(r16)
  8079dc:	80800015 	stw	r2,0(r16)
  8079e0:	1b404d2e 	bgeu	r3,r13,807b18 <_fpadd_parts+0x2a0>
  8079e4:	01800044 	movi	r6,1
  8079e8:	6184d83a 	srl	r2,r12,r6
  8079ec:	680697fa 	slli	r3,r13,31
  8079f0:	6992d83a 	srl	r9,r13,r6
  8079f4:	1890b03a 	or	r8,r3,r2
  8079f8:	6184703a 	and	r2,r12,r6
  8079fc:	0007883a 	mov	r3,zero
  807a00:	718d883a 	add	r6,r14,r6
  807a04:	1208b03a 	or	r4,r2,r8
  807a08:	1a4ab03a 	or	r5,r3,r9
  807a0c:	81800215 	stw	r6,8(r16)
  807a10:	81400415 	stw	r5,16(r16)
  807a14:	81000315 	stw	r4,12(r16)
  807a18:	800d883a 	mov	r6,r16
  807a1c:	3005883a 	mov	r2,r6
  807a20:	dfc00317 	ldw	ra,12(sp)
  807a24:	dc000217 	ldw	r16,8(sp)
  807a28:	dc400117 	ldw	r17,4(sp)
  807a2c:	dc800017 	ldw	r18,0(sp)
  807a30:	dec00404 	addi	sp,sp,16
  807a34:	f800283a 	ret
  807a38:	20c01f26 	beq	r4,r3,807ab8 <_fpadd_parts+0x240>
  807a3c:	600d883a 	mov	r6,r12
  807a40:	003ff606 	br	807a1c <_fpadd_parts+0x1a4>
  807a44:	73c00d0e 	bge	r14,r15,807a7c <_fpadd_parts+0x204>
  807a48:	7b9dc83a 	sub	r14,r15,r14
  807a4c:	480697fa 	slli	r3,r9,31
  807a50:	4004d07a 	srli	r2,r8,1
  807a54:	01000044 	movi	r4,1
  807a58:	490ed83a 	srl	r7,r9,r4
  807a5c:	188cb03a 	or	r6,r3,r2
  807a60:	73bfffc4 	addi	r14,r14,-1
  807a64:	4104703a 	and	r2,r8,r4
  807a68:	0007883a 	mov	r3,zero
  807a6c:	1190b03a 	or	r8,r2,r6
  807a70:	19d2b03a 	or	r9,r3,r7
  807a74:	703ff51e 	bne	r14,zero,807a4c <_fpadd_parts+0x1d4>
  807a78:	781d883a 	mov	r14,r15
  807a7c:	7bbfa40e 	bge	r15,r14,807910 <_fpadd_parts+0x98>
  807a80:	73dfc83a 	sub	r15,r14,r15
  807a84:	580697fa 	slli	r3,r11,31
  807a88:	5004d07a 	srli	r2,r10,1
  807a8c:	01000044 	movi	r4,1
  807a90:	590ed83a 	srl	r7,r11,r4
  807a94:	188cb03a 	or	r6,r3,r2
  807a98:	7bffffc4 	addi	r15,r15,-1
  807a9c:	5104703a 	and	r2,r10,r4
  807aa0:	0007883a 	mov	r3,zero
  807aa4:	1194b03a 	or	r10,r2,r6
  807aa8:	19d6b03a 	or	r11,r3,r7
  807aac:	783ff51e 	bne	r15,zero,807a84 <_fpadd_parts+0x20c>
  807ab0:	701f883a 	mov	r15,r14
  807ab4:	003f9606 	br	807910 <_fpadd_parts+0x98>
  807ab8:	28c00117 	ldw	r3,4(r5)
  807abc:	60800117 	ldw	r2,4(r12)
  807ac0:	01802074 	movhi	r6,129
  807ac4:	31b15104 	addi	r6,r6,-15036
  807ac8:	10ffd41e 	bne	r2,r3,807a1c <_fpadd_parts+0x1a4>
  807acc:	003fdb06 	br	807a3c <_fpadd_parts+0x1c4>
  807ad0:	600d883a 	mov	r6,r12
  807ad4:	193fd11e 	bne	r3,r4,807a1c <_fpadd_parts+0x1a4>
  807ad8:	60800017 	ldw	r2,0(r12)
  807adc:	60c00117 	ldw	r3,4(r12)
  807ae0:	61000217 	ldw	r4,8(r12)
  807ae4:	80800015 	stw	r2,0(r16)
  807ae8:	60800317 	ldw	r2,12(r12)
  807aec:	80c00115 	stw	r3,4(r16)
  807af0:	60c00417 	ldw	r3,16(r12)
  807af4:	81000215 	stw	r4,8(r16)
  807af8:	80800315 	stw	r2,12(r16)
  807afc:	80c00415 	stw	r3,16(r16)
  807b00:	60800117 	ldw	r2,4(r12)
  807b04:	28c00117 	ldw	r3,4(r5)
  807b08:	800d883a 	mov	r6,r16
  807b0c:	10c4703a 	and	r2,r2,r3
  807b10:	80800115 	stw	r2,4(r16)
  807b14:	003fc106 	br	807a1c <_fpadd_parts+0x1a4>
  807b18:	800d883a 	mov	r6,r16
  807b1c:	84400215 	stw	r17,8(r16)
  807b20:	003fbe06 	br	807a1c <_fpadd_parts+0x1a4>
  807b24:	5205c83a 	sub	r2,r10,r8
  807b28:	5089803a 	cmpltu	r4,r10,r2
  807b2c:	5a47c83a 	sub	r3,r11,r9
  807b30:	003f7e06 	br	80792c <_fpadd_parts+0xb4>
  807b34:	5205883a 	add	r2,r10,r8
  807b38:	1289803a 	cmpltu	r4,r2,r10
  807b3c:	5a47883a 	add	r3,r11,r9
  807b40:	20c9883a 	add	r4,r4,r3
  807b44:	7823883a 	mov	r17,r15
  807b48:	781d883a 	mov	r14,r15
  807b4c:	81400115 	stw	r5,4(r16)
  807b50:	80800315 	stw	r2,12(r16)
  807b54:	81000415 	stw	r4,16(r16)
  807b58:	003f9b06 	br	8079c8 <_fpadd_parts+0x150>
  807b5c:	0015883a 	mov	r10,zero
  807b60:	701f883a 	mov	r15,r14
  807b64:	0017883a 	mov	r11,zero
  807b68:	003f6906 	br	807910 <_fpadd_parts+0x98>
  807b6c:	00c7c83a 	sub	r3,zero,r3
  807b70:	003f6206 	br	8078fc <_fpadd_parts+0x84>
  807b74:	00800044 	movi	r2,1
  807b78:	200b883a 	mov	r5,r4
  807b7c:	80800115 	stw	r2,4(r16)
  807b80:	3009883a 	mov	r4,r6
  807b84:	7823883a 	mov	r17,r15
  807b88:	0806ddc0 	call	806ddc <__negdi2>
  807b8c:	881d883a 	mov	r14,r17
  807b90:	80c00415 	stw	r3,16(r16)
  807b94:	80800315 	stw	r2,12(r16)
  807b98:	003f6c06 	br	80794c <_fpadd_parts+0xd4>
  807b9c:	00bfff84 	movi	r2,-2
  807ba0:	11ff752e 	bgeu	r2,r7,807978 <_fpadd_parts+0x100>
  807ba4:	003f8806 	br	8079c8 <_fpadd_parts+0x150>

00807ba8 <__adddf3>:
  807ba8:	deffeb04 	addi	sp,sp,-84
  807bac:	2011883a 	mov	r8,r4
  807bb0:	dc401315 	stw	r17,76(sp)
  807bb4:	d9401015 	stw	r5,64(sp)
  807bb8:	d9000f04 	addi	r4,sp,60
  807bbc:	d80b883a 	mov	r5,sp
  807bc0:	dc400504 	addi	r17,sp,20
  807bc4:	dfc01415 	stw	ra,80(sp)
  807bc8:	d9c01215 	stw	r7,72(sp)
  807bcc:	da000f15 	stw	r8,60(sp)
  807bd0:	d9801115 	stw	r6,68(sp)
  807bd4:	0808bac0 	call	808bac <__unpack_d>
  807bd8:	d9001104 	addi	r4,sp,68
  807bdc:	880b883a 	mov	r5,r17
  807be0:	0808bac0 	call	808bac <__unpack_d>
  807be4:	d9800a04 	addi	r6,sp,40
  807be8:	d809883a 	mov	r4,sp
  807bec:	880b883a 	mov	r5,r17
  807bf0:	08078780 	call	807878 <_fpadd_parts>
  807bf4:	1009883a 	mov	r4,r2
  807bf8:	08089140 	call	808914 <__pack_d>
  807bfc:	1009883a 	mov	r4,r2
  807c00:	2005883a 	mov	r2,r4
  807c04:	dfc01417 	ldw	ra,80(sp)
  807c08:	dc401317 	ldw	r17,76(sp)
  807c0c:	dec01504 	addi	sp,sp,84
  807c10:	f800283a 	ret

00807c14 <__subdf3>:
  807c14:	deffeb04 	addi	sp,sp,-84
  807c18:	2011883a 	mov	r8,r4
  807c1c:	dc401315 	stw	r17,76(sp)
  807c20:	d9401015 	stw	r5,64(sp)
  807c24:	d9000f04 	addi	r4,sp,60
  807c28:	d80b883a 	mov	r5,sp
  807c2c:	dc400504 	addi	r17,sp,20
  807c30:	dfc01415 	stw	ra,80(sp)
  807c34:	d9c01215 	stw	r7,72(sp)
  807c38:	da000f15 	stw	r8,60(sp)
  807c3c:	d9801115 	stw	r6,68(sp)
  807c40:	0808bac0 	call	808bac <__unpack_d>
  807c44:	d9001104 	addi	r4,sp,68
  807c48:	880b883a 	mov	r5,r17
  807c4c:	0808bac0 	call	808bac <__unpack_d>
  807c50:	d8800617 	ldw	r2,24(sp)
  807c54:	880b883a 	mov	r5,r17
  807c58:	d809883a 	mov	r4,sp
  807c5c:	d9800a04 	addi	r6,sp,40
  807c60:	1080005c 	xori	r2,r2,1
  807c64:	d8800615 	stw	r2,24(sp)
  807c68:	08078780 	call	807878 <_fpadd_parts>
  807c6c:	1009883a 	mov	r4,r2
  807c70:	08089140 	call	808914 <__pack_d>
  807c74:	1009883a 	mov	r4,r2
  807c78:	2005883a 	mov	r2,r4
  807c7c:	dfc01417 	ldw	ra,80(sp)
  807c80:	dc401317 	ldw	r17,76(sp)
  807c84:	dec01504 	addi	sp,sp,84
  807c88:	f800283a 	ret

00807c8c <__muldf3>:
  807c8c:	deffe004 	addi	sp,sp,-128
  807c90:	2011883a 	mov	r8,r4
  807c94:	df001e15 	stw	fp,120(sp)
  807c98:	d9401015 	stw	r5,64(sp)
  807c9c:	d9000f04 	addi	r4,sp,60
  807ca0:	d80b883a 	mov	r5,sp
  807ca4:	df000504 	addi	fp,sp,20
  807ca8:	dfc01f15 	stw	ra,124(sp)
  807cac:	ddc01715 	stw	r23,92(sp)
  807cb0:	d9c01215 	stw	r7,72(sp)
  807cb4:	da000f15 	stw	r8,60(sp)
  807cb8:	d9801115 	stw	r6,68(sp)
  807cbc:	dc001d15 	stw	r16,116(sp)
  807cc0:	dc401c15 	stw	r17,112(sp)
  807cc4:	dc801b15 	stw	r18,108(sp)
  807cc8:	dcc01a15 	stw	r19,104(sp)
  807ccc:	dd001915 	stw	r20,100(sp)
  807cd0:	dd401815 	stw	r21,96(sp)
  807cd4:	0808bac0 	call	808bac <__unpack_d>
  807cd8:	d9001104 	addi	r4,sp,68
  807cdc:	e00b883a 	mov	r5,fp
  807ce0:	0808bac0 	call	808bac <__unpack_d>
  807ce4:	d8c00017 	ldw	r3,0(sp)
  807ce8:	05c00044 	movi	r23,1
  807cec:	b8c00e2e 	bgeu	r23,r3,807d28 <__muldf3+0x9c>
  807cf0:	e1000017 	ldw	r4,0(fp)
  807cf4:	b9000636 	bltu	r23,r4,807d10 <__muldf3+0x84>
  807cf8:	d8c00617 	ldw	r3,24(sp)
  807cfc:	d8800117 	ldw	r2,4(sp)
  807d00:	e009883a 	mov	r4,fp
  807d04:	10c4c03a 	cmpne	r2,r2,r3
  807d08:	d8800615 	stw	r2,24(sp)
  807d0c:	00000b06 	br	807d3c <__muldf3+0xb0>
  807d10:	18800118 	cmpnei	r2,r3,4
  807d14:	1000171e 	bne	r2,zero,807d74 <__muldf3+0xe8>
  807d18:	20800098 	cmpnei	r2,r4,2
  807d1c:	01002074 	movhi	r4,129
  807d20:	21315104 	addi	r4,r4,-15036
  807d24:	10000526 	beq	r2,zero,807d3c <__muldf3+0xb0>
  807d28:	d8800117 	ldw	r2,4(sp)
  807d2c:	d8c00617 	ldw	r3,24(sp)
  807d30:	d809883a 	mov	r4,sp
  807d34:	10c4c03a 	cmpne	r2,r2,r3
  807d38:	d8800115 	stw	r2,4(sp)
  807d3c:	08089140 	call	808914 <__pack_d>
  807d40:	1009883a 	mov	r4,r2
  807d44:	2005883a 	mov	r2,r4
  807d48:	dfc01f17 	ldw	ra,124(sp)
  807d4c:	df001e17 	ldw	fp,120(sp)
  807d50:	dc001d17 	ldw	r16,116(sp)
  807d54:	dc401c17 	ldw	r17,112(sp)
  807d58:	dc801b17 	ldw	r18,108(sp)
  807d5c:	dcc01a17 	ldw	r19,104(sp)
  807d60:	dd001917 	ldw	r20,100(sp)
  807d64:	dd401817 	ldw	r21,96(sp)
  807d68:	ddc01717 	ldw	r23,92(sp)
  807d6c:	dec02004 	addi	sp,sp,128
  807d70:	f800283a 	ret
  807d74:	20800118 	cmpnei	r2,r4,4
  807d78:	10009a26 	beq	r2,zero,807fe4 <__muldf3+0x358>
  807d7c:	18800098 	cmpnei	r2,r3,2
  807d80:	103fe926 	beq	r2,zero,807d28 <__muldf3+0x9c>
  807d84:	20800098 	cmpnei	r2,r4,2
  807d88:	103fdb26 	beq	r2,zero,807cf8 <__muldf3+0x6c>
  807d8c:	dc000317 	ldw	r16,12(sp)
  807d90:	dc800817 	ldw	r18,32(sp)
  807d94:	0013883a 	mov	r9,zero
  807d98:	0007883a 	mov	r3,zero
  807d9c:	dcc00917 	ldw	r19,36(sp)
  807da0:	480f883a 	mov	r7,r9
  807da4:	9009883a 	mov	r4,r18
  807da8:	800d883a 	mov	r6,r16
  807dac:	180b883a 	mov	r5,r3
  807db0:	08088340 	call	808834 <__muldi3>
  807db4:	dc400417 	ldw	r17,16(sp)
  807db8:	0013883a 	mov	r9,zero
  807dbc:	0017883a 	mov	r11,zero
  807dc0:	480b883a 	mov	r5,r9
  807dc4:	580f883a 	mov	r7,r11
  807dc8:	9809883a 	mov	r4,r19
  807dcc:	800d883a 	mov	r6,r16
  807dd0:	dc401315 	stw	r17,76(sp)
  807dd4:	d8801515 	stw	r2,84(sp)
  807dd8:	d8c01615 	stw	r3,88(sp)
  807ddc:	08088340 	call	808834 <__muldi3>
  807de0:	d9401317 	ldw	r5,76(sp)
  807de4:	0017883a 	mov	r11,zero
  807de8:	0013883a 	mov	r9,zero
  807dec:	2811883a 	mov	r8,r5
  807df0:	0009883a 	mov	r4,zero
  807df4:	580b883a 	mov	r5,r11
  807df8:	400d883a 	mov	r6,r8
  807dfc:	480f883a 	mov	r7,r9
  807e00:	d9001415 	stw	r4,80(sp)
  807e04:	9009883a 	mov	r4,r18
  807e08:	9829883a 	mov	r20,r19
  807e0c:	1025883a 	mov	r18,r2
  807e10:	1827883a 	mov	r19,r3
  807e14:	08088340 	call	808834 <__muldi3>
  807e18:	d9801317 	ldw	r6,76(sp)
  807e1c:	1009883a 	mov	r4,r2
  807e20:	180b883a 	mov	r5,r3
  807e24:	0013883a 	mov	r9,zero
  807e28:	0007883a 	mov	r3,zero
  807e2c:	2021883a 	mov	r16,r4
  807e30:	2823883a 	mov	r17,r5
  807e34:	a009883a 	mov	r4,r20
  807e38:	480b883a 	mov	r5,r9
  807e3c:	180f883a 	mov	r7,r3
  807e40:	08088340 	call	808834 <__muldi3>
  807e44:	9409883a 	add	r4,r18,r16
  807e48:	2491803a 	cmpltu	r8,r4,r18
  807e4c:	9c4b883a 	add	r5,r19,r17
  807e50:	4151883a 	add	r8,r8,r5
  807e54:	2013883a 	mov	r9,r4
  807e58:	4015883a 	mov	r10,r8
  807e5c:	101f883a 	mov	r15,r2
  807e60:	0017883a 	mov	r11,zero
  807e64:	1821883a 	mov	r16,r3
  807e68:	0019883a 	mov	r12,zero
  807e6c:	44c0622e 	bgeu	r8,r19,807ff8 <__muldf3+0x36c>
  807e70:	0005883a 	mov	r2,zero
  807e74:	5889883a 	add	r4,r11,r2
  807e78:	22cd803a 	cmpltu	r6,r4,r11
  807e7c:	35cd883a 	add	r6,r6,r23
  807e80:	2017883a 	mov	r11,r4
  807e84:	3019883a 	mov	r12,r6
  807e88:	d9001517 	ldw	r4,84(sp)
  807e8c:	d9801617 	ldw	r6,88(sp)
  807e90:	0025883a 	mov	r18,zero
  807e94:	2485883a 	add	r2,r4,r18
  807e98:	200b883a 	mov	r5,r4
  807e9c:	3247883a 	add	r3,r6,r9
  807ea0:	1109803a 	cmpltu	r4,r2,r4
  807ea4:	20c9883a 	add	r4,r4,r3
  807ea8:	101b883a 	mov	r13,r2
  807eac:	201d883a 	mov	r14,r4
  807eb0:	21806136 	bltu	r4,r6,808038 <__muldf3+0x3ac>
  807eb4:	33805f26 	beq	r6,r14,808034 <__muldf3+0x3a8>
  807eb8:	53c5883a 	add	r2,r10,r15
  807ebc:	000b883a 	mov	r5,zero
  807ec0:	128d803a 	cmpltu	r6,r2,r10
  807ec4:	2c07883a 	add	r3,r5,r16
  807ec8:	5889883a 	add	r4,r11,r2
  807ecc:	30c7883a 	add	r3,r6,r3
  807ed0:	d8800217 	ldw	r2,8(sp)
  807ed4:	e1c00217 	ldw	r7,8(fp)
  807ed8:	60cb883a 	add	r5,r12,r3
  807edc:	e2000117 	ldw	r8,4(fp)
  807ee0:	d8c00117 	ldw	r3,4(sp)
  807ee4:	22cd803a 	cmpltu	r6,r4,r11
  807ee8:	11c5883a 	add	r2,r2,r7
  807eec:	15000104 	addi	r20,r2,4
  807ef0:	314d883a 	add	r6,r6,r5
  807ef4:	1a06c03a 	cmpne	r3,r3,r8
  807ef8:	00880034 	movhi	r2,8192
  807efc:	10bfffc4 	addi	r2,r2,-1
  807f00:	2013883a 	mov	r9,r4
  807f04:	3015883a 	mov	r10,r6
  807f08:	6817883a 	mov	r11,r13
  807f0c:	d8c00b15 	stw	r3,44(sp)
  807f10:	7019883a 	mov	r12,r14
  807f14:	a027883a 	mov	r19,r20
  807f18:	1180182e 	bgeu	r2,r6,807f7c <__muldf3+0x2f0>
  807f1c:	1011883a 	mov	r8,r2
  807f20:	5804d07a 	srli	r2,r11,1
  807f24:	600697fa 	slli	r3,r12,31
  807f28:	4808d07a 	srli	r4,r9,1
  807f2c:	500a97fa 	slli	r5,r10,31
  807f30:	500ed07a 	srli	r7,r10,1
  807f34:	189eb03a 	or	r15,r3,r2
  807f38:	00800044 	movi	r2,1
  807f3c:	290cb03a 	or	r6,r5,r4
  807f40:	a0a9883a 	add	r20,r20,r2
  807f44:	4888703a 	and	r4,r9,r2
  807f48:	6020d07a 	srli	r16,r12,1
  807f4c:	001b883a 	mov	r13,zero
  807f50:	03a00034 	movhi	r14,32768
  807f54:	73800004 	addi	r14,r14,0
  807f58:	3013883a 	mov	r9,r6
  807f5c:	3815883a 	mov	r10,r7
  807f60:	a027883a 	mov	r19,r20
  807f64:	20000426 	beq	r4,zero,807f78 <__muldf3+0x2ec>
  807f68:	7b62b03a 	or	r17,r15,r13
  807f6c:	83a4b03a 	or	r18,r16,r14
  807f70:	8817883a 	mov	r11,r17
  807f74:	9019883a 	mov	r12,r18
  807f78:	42bfe936 	bltu	r8,r10,807f20 <__muldf3+0x294>
  807f7c:	00840034 	movhi	r2,4096
  807f80:	10bfffc4 	addi	r2,r2,-1
  807f84:	12801f36 	bltu	r2,r10,808004 <__muldf3+0x378>
  807f88:	101f883a 	mov	r15,r2
  807f8c:	00000306 	br	807f9c <__muldf3+0x310>
  807f90:	6817883a 	mov	r11,r13
  807f94:	7019883a 	mov	r12,r14
  807f98:	7a801a36 	bltu	r15,r10,808004 <__muldf3+0x378>
  807f9c:	5806d7fa 	srli	r3,r11,31
  807fa0:	6305883a 	add	r2,r12,r12
  807fa4:	480ed7fa 	srli	r7,r9,31
  807fa8:	528d883a 	add	r6,r10,r10
  807fac:	01000044 	movi	r4,1
  807fb0:	189cb03a 	or	r14,r3,r2
  807fb4:	4904983a 	sll	r2,r9,r4
  807fb8:	3986b03a 	or	r3,r7,r6
  807fbc:	99bfffc4 	addi	r6,r19,-1
  807fc0:	5adb883a 	add	r13,r11,r11
  807fc4:	3027883a 	mov	r19,r6
  807fc8:	1013883a 	mov	r9,r2
  807fcc:	1815883a 	mov	r10,r3
  807fd0:	110eb03a 	or	r7,r2,r4
  807fd4:	3029883a 	mov	r20,r6
  807fd8:	603fed0e 	bge	r12,zero,807f90 <__muldf3+0x304>
  807fdc:	3813883a 	mov	r9,r7
  807fe0:	003feb06 	br	807f90 <__muldf3+0x304>
  807fe4:	18800098 	cmpnei	r2,r3,2
  807fe8:	01002074 	movhi	r4,129
  807fec:	21315104 	addi	r4,r4,-15036
  807ff0:	103f411e 	bne	r2,zero,807cf8 <__muldf3+0x6c>
  807ff4:	003f5106 	br	807d3c <__muldf3+0xb0>
  807ff8:	9a3fa31e 	bne	r19,r8,807e88 <__muldf3+0x1fc>
  807ffc:	24bfa22e 	bgeu	r4,r18,807e88 <__muldf3+0x1fc>
  808000:	003f9b06 	br	807e70 <__muldf3+0x1e4>
  808004:	00803fc4 	movi	r2,255
  808008:	488c703a 	and	r6,r9,r2
  80800c:	00802004 	movi	r2,128
  808010:	000f883a 	mov	r7,zero
  808014:	dd000c15 	stw	r20,48(sp)
  808018:	30800e26 	beq	r6,r2,808054 <__muldf3+0x3c8>
  80801c:	008000c4 	movi	r2,3
  808020:	d9000a04 	addi	r4,sp,40
  808024:	da800e15 	stw	r10,56(sp)
  808028:	d8800a15 	stw	r2,40(sp)
  80802c:	da400d15 	stw	r9,52(sp)
  808030:	003f4206 	br	807d3c <__muldf3+0xb0>
  808034:	697fa02e 	bgeu	r13,r5,807eb8 <__muldf3+0x22c>
  808038:	00800044 	movi	r2,1
  80803c:	5889883a 	add	r4,r11,r2
  808040:	22cd803a 	cmpltu	r6,r4,r11
  808044:	330d883a 	add	r6,r6,r12
  808048:	2017883a 	mov	r11,r4
  80804c:	3019883a 	mov	r12,r6
  808050:	003f9906 	br	807eb8 <__muldf3+0x22c>
  808054:	383ff11e 	bne	r7,zero,80801c <__muldf3+0x390>
  808058:	500a963a 	slli	r5,r10,24
  80805c:	4808d23a 	srli	r4,r9,8
  808060:	2904b03a 	or	r2,r5,r4
  808064:	1080004c 	andi	r2,r2,1
  808068:	1000021e 	bne	r2,zero,808074 <__muldf3+0x3e8>
  80806c:	5b04b03a 	or	r2,r11,r12
  808070:	103fea26 	beq	r2,zero,80801c <__muldf3+0x390>
  808074:	4989883a 	add	r4,r9,r6
  808078:	224d803a 	cmpltu	r6,r4,r9
  80807c:	328d883a 	add	r6,r6,r10
  808080:	2013883a 	mov	r9,r4
  808084:	3015883a 	mov	r10,r6
  808088:	003fe406 	br	80801c <__muldf3+0x390>

0080808c <__divdf3>:
  80808c:	deffea04 	addi	sp,sp,-88
  808090:	2011883a 	mov	r8,r4
  808094:	dc001415 	stw	r16,80(sp)
  808098:	d9400b15 	stw	r5,44(sp)
  80809c:	d9000a04 	addi	r4,sp,40
  8080a0:	d80b883a 	mov	r5,sp
  8080a4:	dc000504 	addi	r16,sp,20
  8080a8:	dfc01515 	stw	ra,84(sp)
  8080ac:	d9c00d15 	stw	r7,52(sp)
  8080b0:	da000a15 	stw	r8,40(sp)
  8080b4:	d9800c15 	stw	r6,48(sp)
  8080b8:	dc401315 	stw	r17,76(sp)
  8080bc:	dc801215 	stw	r18,72(sp)
  8080c0:	dcc01115 	stw	r19,68(sp)
  8080c4:	dd001015 	stw	r20,64(sp)
  8080c8:	dd400f15 	stw	r21,60(sp)
  8080cc:	dd800e15 	stw	r22,56(sp)
  8080d0:	0808bac0 	call	808bac <__unpack_d>
  8080d4:	d9000c04 	addi	r4,sp,48
  8080d8:	800b883a 	mov	r5,r16
  8080dc:	0808bac0 	call	808bac <__unpack_d>
  8080e0:	d9400017 	ldw	r5,0(sp)
  8080e4:	00800044 	movi	r2,1
  8080e8:	d83f883a 	mov	ra,sp
  8080ec:	d809883a 	mov	r4,sp
  8080f0:	11404b2e 	bgeu	r2,r5,808220 <__divdf3+0x194>
  8080f4:	81800017 	ldw	r6,0(r16)
  8080f8:	8009883a 	mov	r4,r16
  8080fc:	1180482e 	bgeu	r2,r6,808220 <__divdf3+0x194>
  808100:	d8c00117 	ldw	r3,4(sp)
  808104:	d9000617 	ldw	r4,24(sp)
  808108:	28800120 	cmpeqi	r2,r5,4
  80810c:	1906f03a 	xor	r3,r3,r4
  808110:	d8c00115 	stw	r3,4(sp)
  808114:	10004f1e 	bne	r2,zero,808254 <__divdf3+0x1c8>
  808118:	288000a0 	cmpeqi	r2,r5,2
  80811c:	10004d1e 	bne	r2,zero,808254 <__divdf3+0x1c8>
  808120:	30800118 	cmpnei	r2,r6,4
  808124:	10005626 	beq	r2,zero,808280 <__divdf3+0x1f4>
  808128:	30800098 	cmpnei	r2,r6,2
  80812c:	10005926 	beq	r2,zero,808294 <__divdf3+0x208>
  808130:	d8c00217 	ldw	r3,8(sp)
  808134:	d8800717 	ldw	r2,28(sp)
  808138:	da000417 	ldw	r8,16(sp)
  80813c:	dd800917 	ldw	r22,36(sp)
  808140:	d9c00317 	ldw	r7,12(sp)
  808144:	dd400817 	ldw	r21,32(sp)
  808148:	1893c83a 	sub	r9,r3,r2
  80814c:	4580462e 	bgeu	r8,r22,808268 <__divdf3+0x1dc>
  808150:	39c5883a 	add	r2,r7,r7
  808154:	11cd803a 	cmpltu	r6,r2,r7
  808158:	4207883a 	add	r3,r8,r8
  80815c:	30cd883a 	add	r6,r6,r3
  808160:	493fffc4 	addi	r4,r9,-1
  808164:	100f883a 	mov	r7,r2
  808168:	3011883a 	mov	r8,r6
  80816c:	d9000215 	stw	r4,8(sp)
  808170:	0009883a 	mov	r4,zero
  808174:	01440034 	movhi	r5,4096
  808178:	29400004 	addi	r5,r5,0
  80817c:	2144b03a 	or	r2,r4,r5
  808180:	0027883a 	mov	r19,zero
  808184:	0029883a 	mov	r20,zero
  808188:	1000111e 	bne	r2,zero,8081d0 <__divdf3+0x144>
  80818c:	00001c06 	br	808200 <__divdf3+0x174>
  808190:	6827883a 	mov	r19,r13
  808194:	7029883a 	mov	r20,r14
  808198:	580f883a 	mov	r7,r11
  80819c:	1011883a 	mov	r8,r2
  8081a0:	2820d07a 	srli	r16,r5,1
  8081a4:	39d3883a 	add	r9,r7,r7
  8081a8:	30deb03a 	or	r15,r6,r3
  8081ac:	49c5803a 	cmpltu	r2,r9,r7
  8081b0:	4215883a 	add	r10,r8,r8
  8081b4:	1285883a 	add	r2,r2,r10
  8081b8:	7c06b03a 	or	r3,r15,r16
  8081bc:	7809883a 	mov	r4,r15
  8081c0:	800b883a 	mov	r5,r16
  8081c4:	480f883a 	mov	r7,r9
  8081c8:	1011883a 	mov	r8,r2
  8081cc:	18000c26 	beq	r3,zero,808200 <__divdf3+0x174>
  8081d0:	280c97fa 	slli	r6,r5,31
  8081d4:	2006d07a 	srli	r3,r4,1
  8081d8:	45bff136 	bltu	r8,r22,8081a0 <__divdf3+0x114>
  8081dc:	3d57c83a 	sub	r11,r7,r21
  8081e0:	3ac5803a 	cmpltu	r2,r7,r11
  8081e4:	4599c83a 	sub	r12,r8,r22
  8081e8:	991ab03a 	or	r13,r19,r4
  8081ec:	a15cb03a 	or	r14,r20,r5
  8081f0:	6085c83a 	sub	r2,r12,r2
  8081f4:	b23fe61e 	bne	r22,r8,808190 <__divdf3+0x104>
  8081f8:	3d7fe936 	bltu	r7,r21,8081a0 <__divdf3+0x114>
  8081fc:	003fe406 	br	808190 <__divdf3+0x104>
  808200:	00803fc4 	movi	r2,255
  808204:	9892703a 	and	r9,r19,r2
  808208:	00802004 	movi	r2,128
  80820c:	0015883a 	mov	r10,zero
  808210:	48802426 	beq	r9,r2,8082a4 <__divdf3+0x218>
  808214:	fd000415 	stw	r20,16(ra)
  808218:	fcc00315 	stw	r19,12(ra)
  80821c:	f809883a 	mov	r4,ra
  808220:	08089140 	call	808914 <__pack_d>
  808224:	1009883a 	mov	r4,r2
  808228:	2005883a 	mov	r2,r4
  80822c:	dfc01517 	ldw	ra,84(sp)
  808230:	dc001417 	ldw	r16,80(sp)
  808234:	dc401317 	ldw	r17,76(sp)
  808238:	dc801217 	ldw	r18,72(sp)
  80823c:	dcc01117 	ldw	r19,68(sp)
  808240:	dd001017 	ldw	r20,64(sp)
  808244:	dd400f17 	ldw	r21,60(sp)
  808248:	dd800e17 	ldw	r22,56(sp)
  80824c:	dec01604 	addi	sp,sp,88
  808250:	f800283a 	ret
  808254:	01002074 	movhi	r4,129
  808258:	21315104 	addi	r4,r4,-15036
  80825c:	29bff026 	beq	r5,r6,808220 <__divdf3+0x194>
  808260:	d809883a 	mov	r4,sp
  808264:	003fee06 	br	808220 <__divdf3+0x194>
  808268:	b2000226 	beq	r22,r8,808274 <__divdf3+0x1e8>
  80826c:	da400215 	stw	r9,8(sp)
  808270:	003fbf06 	br	808170 <__divdf3+0xe4>
  808274:	3d7fb636 	bltu	r7,r21,808150 <__divdf3+0xc4>
  808278:	da400215 	stw	r9,8(sp)
  80827c:	003fbc06 	br	808170 <__divdf3+0xe4>
  808280:	d809883a 	mov	r4,sp
  808284:	d8000315 	stw	zero,12(sp)
  808288:	d8000415 	stw	zero,16(sp)
  80828c:	d8000215 	stw	zero,8(sp)
  808290:	003fe306 	br	808220 <__divdf3+0x194>
  808294:	00800104 	movi	r2,4
  808298:	d809883a 	mov	r4,sp
  80829c:	d8800015 	stw	r2,0(sp)
  8082a0:	003fdf06 	br	808220 <__divdf3+0x194>
  8082a4:	503fdb1e 	bne	r10,zero,808214 <__divdf3+0x188>
  8082a8:	a00a963a 	slli	r5,r20,24
  8082ac:	9808d23a 	srli	r4,r19,8
  8082b0:	2904b03a 	or	r2,r5,r4
  8082b4:	1080004c 	andi	r2,r2,1
  8082b8:	1000021e 	bne	r2,zero,8082c4 <__divdf3+0x238>
  8082bc:	3a04b03a 	or	r2,r7,r8
  8082c0:	103fd426 	beq	r2,zero,808214 <__divdf3+0x188>
  8082c4:	9a49883a 	add	r4,r19,r9
  8082c8:	24cd803a 	cmpltu	r6,r4,r19
  8082cc:	350d883a 	add	r6,r6,r20
  8082d0:	2027883a 	mov	r19,r4
  8082d4:	3029883a 	mov	r20,r6
  8082d8:	003fce06 	br	808214 <__divdf3+0x188>

008082dc <__eqdf2>:
  8082dc:	defff004 	addi	sp,sp,-64
  8082e0:	2005883a 	mov	r2,r4
  8082e4:	dc000e15 	stw	r16,56(sp)
  8082e8:	d9400b15 	stw	r5,44(sp)
  8082ec:	d9000a04 	addi	r4,sp,40
  8082f0:	d80b883a 	mov	r5,sp
  8082f4:	dc000504 	addi	r16,sp,20
  8082f8:	d8800a15 	stw	r2,40(sp)
  8082fc:	d9800c15 	stw	r6,48(sp)
  808300:	dfc00f15 	stw	ra,60(sp)
  808304:	d9c00d15 	stw	r7,52(sp)
  808308:	0808bac0 	call	808bac <__unpack_d>
  80830c:	d9000c04 	addi	r4,sp,48
  808310:	800b883a 	mov	r5,r16
  808314:	0808bac0 	call	808bac <__unpack_d>
  808318:	d8800017 	ldw	r2,0(sp)
  80831c:	00c00044 	movi	r3,1
  808320:	180d883a 	mov	r6,r3
  808324:	1880042e 	bgeu	r3,r2,808338 <__eqdf2+0x5c>
  808328:	80800017 	ldw	r2,0(r16)
  80832c:	800b883a 	mov	r5,r16
  808330:	d809883a 	mov	r4,sp
  808334:	18800536 	bltu	r3,r2,80834c <__eqdf2+0x70>
  808338:	3005883a 	mov	r2,r6
  80833c:	dfc00f17 	ldw	ra,60(sp)
  808340:	dc000e17 	ldw	r16,56(sp)
  808344:	dec01004 	addi	sp,sp,64
  808348:	f800283a 	ret
  80834c:	0808cd40 	call	808cd4 <__fpcmp_parts_d>
  808350:	100d883a 	mov	r6,r2
  808354:	3005883a 	mov	r2,r6
  808358:	dfc00f17 	ldw	ra,60(sp)
  80835c:	dc000e17 	ldw	r16,56(sp)
  808360:	dec01004 	addi	sp,sp,64
  808364:	f800283a 	ret

00808368 <__nedf2>:
  808368:	defff004 	addi	sp,sp,-64
  80836c:	2005883a 	mov	r2,r4
  808370:	dc000e15 	stw	r16,56(sp)
  808374:	d9400b15 	stw	r5,44(sp)
  808378:	d9000a04 	addi	r4,sp,40
  80837c:	d80b883a 	mov	r5,sp
  808380:	dc000504 	addi	r16,sp,20
  808384:	d8800a15 	stw	r2,40(sp)
  808388:	d9800c15 	stw	r6,48(sp)
  80838c:	dfc00f15 	stw	ra,60(sp)
  808390:	d9c00d15 	stw	r7,52(sp)
  808394:	0808bac0 	call	808bac <__unpack_d>
  808398:	d9000c04 	addi	r4,sp,48
  80839c:	800b883a 	mov	r5,r16
  8083a0:	0808bac0 	call	808bac <__unpack_d>
  8083a4:	d8800017 	ldw	r2,0(sp)
  8083a8:	00c00044 	movi	r3,1
  8083ac:	180d883a 	mov	r6,r3
  8083b0:	1880042e 	bgeu	r3,r2,8083c4 <__nedf2+0x5c>
  8083b4:	80800017 	ldw	r2,0(r16)
  8083b8:	800b883a 	mov	r5,r16
  8083bc:	d809883a 	mov	r4,sp
  8083c0:	18800536 	bltu	r3,r2,8083d8 <__nedf2+0x70>
  8083c4:	3005883a 	mov	r2,r6
  8083c8:	dfc00f17 	ldw	ra,60(sp)
  8083cc:	dc000e17 	ldw	r16,56(sp)
  8083d0:	dec01004 	addi	sp,sp,64
  8083d4:	f800283a 	ret
  8083d8:	0808cd40 	call	808cd4 <__fpcmp_parts_d>
  8083dc:	100d883a 	mov	r6,r2
  8083e0:	3005883a 	mov	r2,r6
  8083e4:	dfc00f17 	ldw	ra,60(sp)
  8083e8:	dc000e17 	ldw	r16,56(sp)
  8083ec:	dec01004 	addi	sp,sp,64
  8083f0:	f800283a 	ret

008083f4 <__gtdf2>:
  8083f4:	defff004 	addi	sp,sp,-64
  8083f8:	2005883a 	mov	r2,r4
  8083fc:	dc000e15 	stw	r16,56(sp)
  808400:	d9400b15 	stw	r5,44(sp)
  808404:	d9000a04 	addi	r4,sp,40
  808408:	d80b883a 	mov	r5,sp
  80840c:	dc000504 	addi	r16,sp,20
  808410:	d8800a15 	stw	r2,40(sp)
  808414:	d9800c15 	stw	r6,48(sp)
  808418:	dfc00f15 	stw	ra,60(sp)
  80841c:	d9c00d15 	stw	r7,52(sp)
  808420:	0808bac0 	call	808bac <__unpack_d>
  808424:	d9000c04 	addi	r4,sp,48
  808428:	800b883a 	mov	r5,r16
  80842c:	0808bac0 	call	808bac <__unpack_d>
  808430:	d8800017 	ldw	r2,0(sp)
  808434:	00c00044 	movi	r3,1
  808438:	01bfffc4 	movi	r6,-1
  80843c:	1880042e 	bgeu	r3,r2,808450 <__gtdf2+0x5c>
  808440:	80800017 	ldw	r2,0(r16)
  808444:	800b883a 	mov	r5,r16
  808448:	d809883a 	mov	r4,sp
  80844c:	18800536 	bltu	r3,r2,808464 <__gtdf2+0x70>
  808450:	3005883a 	mov	r2,r6
  808454:	dfc00f17 	ldw	ra,60(sp)
  808458:	dc000e17 	ldw	r16,56(sp)
  80845c:	dec01004 	addi	sp,sp,64
  808460:	f800283a 	ret
  808464:	0808cd40 	call	808cd4 <__fpcmp_parts_d>
  808468:	100d883a 	mov	r6,r2
  80846c:	3005883a 	mov	r2,r6
  808470:	dfc00f17 	ldw	ra,60(sp)
  808474:	dc000e17 	ldw	r16,56(sp)
  808478:	dec01004 	addi	sp,sp,64
  80847c:	f800283a 	ret

00808480 <__gedf2>:
  808480:	defff004 	addi	sp,sp,-64
  808484:	2005883a 	mov	r2,r4
  808488:	dc000e15 	stw	r16,56(sp)
  80848c:	d9400b15 	stw	r5,44(sp)
  808490:	d9000a04 	addi	r4,sp,40
  808494:	d80b883a 	mov	r5,sp
  808498:	dc000504 	addi	r16,sp,20
  80849c:	d8800a15 	stw	r2,40(sp)
  8084a0:	d9800c15 	stw	r6,48(sp)
  8084a4:	dfc00f15 	stw	ra,60(sp)
  8084a8:	d9c00d15 	stw	r7,52(sp)
  8084ac:	0808bac0 	call	808bac <__unpack_d>
  8084b0:	d9000c04 	addi	r4,sp,48
  8084b4:	800b883a 	mov	r5,r16
  8084b8:	0808bac0 	call	808bac <__unpack_d>
  8084bc:	d8800017 	ldw	r2,0(sp)
  8084c0:	00c00044 	movi	r3,1
  8084c4:	01bfffc4 	movi	r6,-1
  8084c8:	1880042e 	bgeu	r3,r2,8084dc <__gedf2+0x5c>
  8084cc:	80800017 	ldw	r2,0(r16)
  8084d0:	800b883a 	mov	r5,r16
  8084d4:	d809883a 	mov	r4,sp
  8084d8:	18800536 	bltu	r3,r2,8084f0 <__gedf2+0x70>
  8084dc:	3005883a 	mov	r2,r6
  8084e0:	dfc00f17 	ldw	ra,60(sp)
  8084e4:	dc000e17 	ldw	r16,56(sp)
  8084e8:	dec01004 	addi	sp,sp,64
  8084ec:	f800283a 	ret
  8084f0:	0808cd40 	call	808cd4 <__fpcmp_parts_d>
  8084f4:	100d883a 	mov	r6,r2
  8084f8:	3005883a 	mov	r2,r6
  8084fc:	dfc00f17 	ldw	ra,60(sp)
  808500:	dc000e17 	ldw	r16,56(sp)
  808504:	dec01004 	addi	sp,sp,64
  808508:	f800283a 	ret

0080850c <__ltdf2>:
  80850c:	defff004 	addi	sp,sp,-64
  808510:	2005883a 	mov	r2,r4
  808514:	dc000e15 	stw	r16,56(sp)
  808518:	d9400b15 	stw	r5,44(sp)
  80851c:	d9000a04 	addi	r4,sp,40
  808520:	d80b883a 	mov	r5,sp
  808524:	dc000504 	addi	r16,sp,20
  808528:	d8800a15 	stw	r2,40(sp)
  80852c:	d9800c15 	stw	r6,48(sp)
  808530:	dfc00f15 	stw	ra,60(sp)
  808534:	d9c00d15 	stw	r7,52(sp)
  808538:	0808bac0 	call	808bac <__unpack_d>
  80853c:	d9000c04 	addi	r4,sp,48
  808540:	800b883a 	mov	r5,r16
  808544:	0808bac0 	call	808bac <__unpack_d>
  808548:	d8800017 	ldw	r2,0(sp)
  80854c:	00c00044 	movi	r3,1
  808550:	180d883a 	mov	r6,r3
  808554:	1880042e 	bgeu	r3,r2,808568 <__ltdf2+0x5c>
  808558:	80800017 	ldw	r2,0(r16)
  80855c:	800b883a 	mov	r5,r16
  808560:	d809883a 	mov	r4,sp
  808564:	18800536 	bltu	r3,r2,80857c <__ltdf2+0x70>
  808568:	3005883a 	mov	r2,r6
  80856c:	dfc00f17 	ldw	ra,60(sp)
  808570:	dc000e17 	ldw	r16,56(sp)
  808574:	dec01004 	addi	sp,sp,64
  808578:	f800283a 	ret
  80857c:	0808cd40 	call	808cd4 <__fpcmp_parts_d>
  808580:	100d883a 	mov	r6,r2
  808584:	3005883a 	mov	r2,r6
  808588:	dfc00f17 	ldw	ra,60(sp)
  80858c:	dc000e17 	ldw	r16,56(sp)
  808590:	dec01004 	addi	sp,sp,64
  808594:	f800283a 	ret

00808598 <__floatsidf>:
  808598:	2006d7fa 	srli	r3,r4,31
  80859c:	defffa04 	addi	sp,sp,-24
  8085a0:	dfc00515 	stw	ra,20(sp)
  8085a4:	d8c00115 	stw	r3,4(sp)
  8085a8:	20000b1e 	bne	r4,zero,8085d8 <__floatsidf+0x40>
  8085ac:	00800084 	movi	r2,2
  8085b0:	d8800015 	stw	r2,0(sp)
  8085b4:	d809883a 	mov	r4,sp
  8085b8:	08089140 	call	808914 <__pack_d>
  8085bc:	100d883a 	mov	r6,r2
  8085c0:	180f883a 	mov	r7,r3
  8085c4:	3807883a 	mov	r3,r7
  8085c8:	3005883a 	mov	r2,r6
  8085cc:	dfc00517 	ldw	ra,20(sp)
  8085d0:	dec00604 	addi	sp,sp,24
  8085d4:	f800283a 	ret
  8085d8:	02c00f04 	movi	r11,60
  8085dc:	008000c4 	movi	r2,3
  8085e0:	d8800015 	stw	r2,0(sp)
  8085e4:	5815883a 	mov	r10,r11
  8085e8:	18000426 	beq	r3,zero,8085fc <__floatsidf+0x64>
  8085ec:	00a00034 	movhi	r2,32768
  8085f0:	10800004 	addi	r2,r2,0
  8085f4:	20801726 	beq	r4,r2,808654 <__floatsidf+0xbc>
  8085f8:	0109c83a 	sub	r4,zero,r4
  8085fc:	2007d7fa 	srai	r3,r4,31
  808600:	03040034 	movhi	r12,4096
  808604:	633fffc4 	addi	r12,r12,-1
  808608:	d9000315 	stw	r4,12(sp)
  80860c:	d8c00415 	stw	r3,16(sp)
  808610:	da400417 	ldw	r9,16(sp)
  808614:	62400d36 	bltu	r12,r9,80864c <__floatsidf+0xb4>
  808618:	d8800317 	ldw	r2,12(sp)
  80861c:	d8c00417 	ldw	r3,16(sp)
  808620:	51bfffc4 	addi	r6,r10,-1
  808624:	3015883a 	mov	r10,r6
  808628:	3017883a 	mov	r11,r6
  80862c:	100ed7fa 	srli	r7,r2,31
  808630:	18cd883a 	add	r6,r3,r3
  808634:	1089883a 	add	r4,r2,r2
  808638:	398ab03a 	or	r5,r7,r6
  80863c:	2813883a 	mov	r9,r5
  808640:	d9000315 	stw	r4,12(sp)
  808644:	d9400415 	stw	r5,16(sp)
  808648:	627ff32e 	bgeu	r12,r9,808618 <__floatsidf+0x80>
  80864c:	dac00215 	stw	r11,8(sp)
  808650:	003fd806 	br	8085b4 <__floatsidf+0x1c>
  808654:	000d883a 	mov	r6,zero
  808658:	01f07834 	movhi	r7,49632
  80865c:	39c00004 	addi	r7,r7,0
  808660:	dac00215 	stw	r11,8(sp)
  808664:	003fd706 	br	8085c4 <__floatsidf+0x2c>

00808668 <__fixdfsi>:
  808668:	defff804 	addi	sp,sp,-32
  80866c:	2005883a 	mov	r2,r4
  808670:	d9400615 	stw	r5,24(sp)
  808674:	d9000504 	addi	r4,sp,20
  808678:	d80b883a 	mov	r5,sp
  80867c:	d8800515 	stw	r2,20(sp)
  808680:	dfc00715 	stw	ra,28(sp)
  808684:	0808bac0 	call	808bac <__unpack_d>
  808688:	d8c00017 	ldw	r3,0(sp)
  80868c:	000b883a 	mov	r5,zero
  808690:	18800098 	cmpnei	r2,r3,2
  808694:	10000f26 	beq	r2,zero,8086d4 <__fixdfsi+0x6c>
  808698:	00800044 	movi	r2,1
  80869c:	10c00d2e 	bgeu	r2,r3,8086d4 <__fixdfsi+0x6c>
  8086a0:	18800118 	cmpnei	r2,r3,4
  8086a4:	10000526 	beq	r2,zero,8086bc <__fixdfsi+0x54>
  8086a8:	d9000217 	ldw	r4,8(sp)
  8086ac:	000b883a 	mov	r5,zero
  8086b0:	20000816 	blt	r4,zero,8086d4 <__fixdfsi+0x6c>
  8086b4:	00800784 	movi	r2,30
  8086b8:	11000a0e 	bge	r2,r4,8086e4 <__fixdfsi+0x7c>
  8086bc:	d8800117 	ldw	r2,4(sp)
  8086c0:	00e00034 	movhi	r3,32768
  8086c4:	18c00004 	addi	r3,r3,0
  8086c8:	1000011e 	bne	r2,zero,8086d0 <__fixdfsi+0x68>
  8086cc:	18ffffc4 	addi	r3,r3,-1
  8086d0:	180b883a 	mov	r5,r3
  8086d4:	2805883a 	mov	r2,r5
  8086d8:	dfc00717 	ldw	ra,28(sp)
  8086dc:	dec00804 	addi	sp,sp,32
  8086e0:	f800283a 	ret
  8086e4:	d8800317 	ldw	r2,12(sp)
  8086e8:	d8c00417 	ldw	r3,16(sp)
  8086ec:	01800f04 	movi	r6,60
  8086f0:	310dc83a 	sub	r6,r6,r4
  8086f4:	180b883a 	mov	r5,r3
  8086f8:	1009883a 	mov	r4,r2
  8086fc:	08088c40 	call	8088c4 <__lshrdi3>
  808700:	1007883a 	mov	r3,r2
  808704:	d8800117 	ldw	r2,4(sp)
  808708:	103ff126 	beq	r2,zero,8086d0 <__fixdfsi+0x68>
  80870c:	00c7c83a 	sub	r3,zero,r3
  808710:	180b883a 	mov	r5,r3
  808714:	003fef06 	br	8086d4 <__fixdfsi+0x6c>

00808718 <udivmodsi4>:
  808718:	00800044 	movi	r2,1
  80871c:	000f883a 	mov	r7,zero
  808720:	2900082e 	bgeu	r5,r4,808744 <udivmodsi4+0x2c>
  808724:	28000716 	blt	r5,zero,808744 <udivmodsi4+0x2c>
  808728:	294b883a 	add	r5,r5,r5
  80872c:	1085883a 	add	r2,r2,r2
  808730:	29000e2e 	bgeu	r5,r4,80876c <udivmodsi4+0x54>
  808734:	1007003a 	cmpeq	r3,r2,zero
  808738:	1800081e 	bne	r3,zero,80875c <udivmodsi4+0x44>
  80873c:	283ffa0e 	bge	r5,zero,808728 <udivmodsi4+0x10>
  808740:	1800061e 	bne	r3,zero,80875c <udivmodsi4+0x44>
  808744:	21400236 	bltu	r4,r5,808750 <udivmodsi4+0x38>
  808748:	2149c83a 	sub	r4,r4,r5
  80874c:	388eb03a 	or	r7,r7,r2
  808750:	1004d07a 	srli	r2,r2,1
  808754:	280ad07a 	srli	r5,r5,1
  808758:	103ffa1e 	bne	r2,zero,808744 <udivmodsi4+0x2c>
  80875c:	3000011e 	bne	r6,zero,808764 <udivmodsi4+0x4c>
  808760:	3809883a 	mov	r4,r7
  808764:	2005883a 	mov	r2,r4
  808768:	f800283a 	ret
  80876c:	1007003a 	cmpeq	r3,r2,zero
  808770:	183ff426 	beq	r3,zero,808744 <udivmodsi4+0x2c>
  808774:	003ff906 	br	80875c <udivmodsi4+0x44>

00808778 <__divsi3>:
  808778:	defffe04 	addi	sp,sp,-8
  80877c:	dc000015 	stw	r16,0(sp)
  808780:	dfc00115 	stw	ra,4(sp)
  808784:	000d883a 	mov	r6,zero
  808788:	0021883a 	mov	r16,zero
  80878c:	20000816 	blt	r4,zero,8087b0 <__divsi3+0x38>
  808790:	28000a16 	blt	r5,zero,8087bc <__divsi3+0x44>
  808794:	08087180 	call	808718 <udivmodsi4>
  808798:	80000126 	beq	r16,zero,8087a0 <__divsi3+0x28>
  80879c:	0085c83a 	sub	r2,zero,r2
  8087a0:	dfc00117 	ldw	ra,4(sp)
  8087a4:	dc000017 	ldw	r16,0(sp)
  8087a8:	dec00204 	addi	sp,sp,8
  8087ac:	f800283a 	ret
  8087b0:	0109c83a 	sub	r4,zero,r4
  8087b4:	0021003a 	cmpeq	r16,zero,zero
  8087b8:	283ff60e 	bge	r5,zero,808794 <__divsi3+0x1c>
  8087bc:	014bc83a 	sub	r5,zero,r5
  8087c0:	8021003a 	cmpeq	r16,r16,zero
  8087c4:	003ff306 	br	808794 <__divsi3+0x1c>

008087c8 <__modsi3>:
  8087c8:	defffe04 	addi	sp,sp,-8
  8087cc:	dc000015 	stw	r16,0(sp)
  8087d0:	dfc00115 	stw	ra,4(sp)
  8087d4:	01800044 	movi	r6,1
  8087d8:	0021883a 	mov	r16,zero
  8087dc:	20000816 	blt	r4,zero,808800 <__modsi3+0x38>
  8087e0:	28000a16 	blt	r5,zero,80880c <__modsi3+0x44>
  8087e4:	08087180 	call	808718 <udivmodsi4>
  8087e8:	80000126 	beq	r16,zero,8087f0 <__modsi3+0x28>
  8087ec:	0085c83a 	sub	r2,zero,r2
  8087f0:	dfc00117 	ldw	ra,4(sp)
  8087f4:	dc000017 	ldw	r16,0(sp)
  8087f8:	dec00204 	addi	sp,sp,8
  8087fc:	f800283a 	ret
  808800:	0109c83a 	sub	r4,zero,r4
  808804:	3021883a 	mov	r16,r6
  808808:	283ff60e 	bge	r5,zero,8087e4 <__modsi3+0x1c>
  80880c:	014bc83a 	sub	r5,zero,r5
  808810:	003ff406 	br	8087e4 <__modsi3+0x1c>

00808814 <__udivsi3>:
  808814:	000d883a 	mov	r6,zero
  808818:	02002074 	movhi	r8,129
  80881c:	4221c604 	addi	r8,r8,-30952
  808820:	4000683a 	jmp	r8

00808824 <__umodsi3>:
  808824:	01800044 	movi	r6,1
  808828:	02002074 	movhi	r8,129
  80882c:	4221c604 	addi	r8,r8,-30952
  808830:	4000683a 	jmp	r8

00808834 <__muldi3>:
  808834:	3019883a 	mov	r12,r6
  808838:	2015883a 	mov	r10,r4
  80883c:	2011883a 	mov	r8,r4
  808840:	31bfffcc 	andi	r6,r6,65535
  808844:	213fffcc 	andi	r4,r4,65535
  808848:	2813883a 	mov	r9,r5
  80884c:	6016d43a 	srli	r11,r12,16
  808850:	218b383a 	mul	r5,r4,r6
  808854:	5014d43a 	srli	r10,r10,16
  808858:	3807883a 	mov	r3,r7
  80885c:	22c9383a 	mul	r4,r4,r11
  808860:	4b0f383a 	mul	r7,r9,r12
  808864:	2b3fffcc 	andi	r12,r5,65535
  808868:	280ad43a 	srli	r5,r5,16
  80886c:	518d383a 	mul	r6,r10,r6
  808870:	40d1383a 	mul	r8,r8,r3
  808874:	2149883a 	add	r4,r4,r5
  808878:	2189883a 	add	r4,r4,r6
  80887c:	2004943a 	slli	r2,r4,16
  808880:	deffff04 	addi	sp,sp,-4
  808884:	dc000015 	stw	r16,0(sp)
  808888:	130b883a 	add	r5,r2,r12
  80888c:	41d3883a 	add	r9,r8,r7
  808890:	2006d43a 	srli	r3,r4,16
  808894:	52d5383a 	mul	r10,r10,r11
  808898:	281f883a 	mov	r15,r5
  80889c:	2180032e 	bgeu	r4,r6,8088ac <__muldi3+0x78>
  8088a0:	00800074 	movhi	r2,1
  8088a4:	10800004 	addi	r2,r2,0
  8088a8:	5095883a 	add	r10,r10,r2
  8088ac:	1a9d883a 	add	r14,r3,r10
  8088b0:	4b87883a 	add	r3,r9,r14
  8088b4:	7805883a 	mov	r2,r15
  8088b8:	dc000017 	ldw	r16,0(sp)
  8088bc:	dec00104 	addi	sp,sp,4
  8088c0:	f800283a 	ret

008088c4 <__lshrdi3>:
  8088c4:	00800804 	movi	r2,32
  8088c8:	119bc83a 	sub	r13,r2,r6
  8088cc:	2013883a 	mov	r9,r4
  8088d0:	2005883a 	mov	r2,r4
  8088d4:	2815883a 	mov	r10,r5
  8088d8:	30000826 	beq	r6,zero,8088fc <__lshrdi3+0x38>
  8088dc:	1186d83a 	srl	r3,r2,r6
  8088e0:	0349c83a 	sub	r4,zero,r13
  8088e4:	2b44983a 	sll	r2,r5,r13
  8088e8:	0340070e 	bge	zero,r13,808908 <__lshrdi3+0x44>
  8088ec:	2998d83a 	srl	r12,r5,r6
  8088f0:	1896b03a 	or	r11,r3,r2
  8088f4:	5813883a 	mov	r9,r11
  8088f8:	6015883a 	mov	r10,r12
  8088fc:	5007883a 	mov	r3,r10
  808900:	4805883a 	mov	r2,r9
  808904:	f800283a 	ret
  808908:	2916d83a 	srl	r11,r5,r4
  80890c:	0019883a 	mov	r12,zero
  808910:	003ff806 	br	8088f4 <__lshrdi3+0x30>

00808914 <__pack_d>:
  808914:	defff604 	addi	sp,sp,-40
  808918:	dcc00415 	stw	r19,16(sp)
  80891c:	dd000315 	stw	r20,12(sp)
  808920:	dd400215 	stw	r21,8(sp)
  808924:	dfc00915 	stw	ra,36(sp)
  808928:	df000815 	stw	fp,32(sp)
  80892c:	dc000715 	stw	r16,28(sp)
  808930:	dc400615 	stw	r17,24(sp)
  808934:	dc800515 	stw	r18,20(sp)
  808938:	dd800115 	stw	r22,4(sp)
  80893c:	ddc00015 	stw	r23,0(sp)
  808940:	20c00017 	ldw	r3,0(r4)
  808944:	05000044 	movi	r20,1
  808948:	24000317 	ldw	r16,12(r4)
  80894c:	0027883a 	mov	r19,zero
  808950:	24400417 	ldw	r17,16(r4)
  808954:	25c00117 	ldw	r23,4(r4)
  808958:	002b883a 	mov	r21,zero
  80895c:	a0c02636 	bltu	r20,r3,8089f8 <__pack_d+0xe4>
  808960:	0005883a 	mov	r2,zero
  808964:	00c00234 	movhi	r3,8
  808968:	18c00004 	addi	r3,r3,0
  80896c:	8088b03a 	or	r4,r16,r2
  808970:	88cab03a 	or	r5,r17,r3
  808974:	2021883a 	mov	r16,r4
  808978:	2823883a 	mov	r17,r5
  80897c:	0541ffc4 	movi	r21,2047
  808980:	a941ffcc 	andi	r5,r21,2047
  808984:	00c00434 	movhi	r3,16
  808988:	18ffffc4 	addi	r3,r3,-1
  80898c:	88c6703a 	and	r3,r17,r3
  808990:	280a953a 	slli	r5,r5,20
  808994:	993ffc2c 	andhi	r4,r19,65520
  808998:	20e6b03a 	or	r19,r4,r3
  80899c:	00a00434 	movhi	r2,32784
  8089a0:	10bfffc4 	addi	r2,r2,-1
  8089a4:	b80697fa 	slli	r3,r23,31
  8089a8:	9884703a 	and	r2,r19,r2
  8089ac:	1166b03a 	or	r19,r2,r5
  8089b0:	01e00034 	movhi	r7,32768
  8089b4:	39ffffc4 	addi	r7,r7,-1
  8089b8:	99ce703a 	and	r7,r19,r7
  8089bc:	38ceb03a 	or	r7,r7,r3
  8089c0:	8005883a 	mov	r2,r16
  8089c4:	3807883a 	mov	r3,r7
  8089c8:	dfc00917 	ldw	ra,36(sp)
  8089cc:	df000817 	ldw	fp,32(sp)
  8089d0:	dc000717 	ldw	r16,28(sp)
  8089d4:	dc400617 	ldw	r17,24(sp)
  8089d8:	dc800517 	ldw	r18,20(sp)
  8089dc:	dcc00417 	ldw	r19,16(sp)
  8089e0:	dd000317 	ldw	r20,12(sp)
  8089e4:	dd400217 	ldw	r21,8(sp)
  8089e8:	dd800117 	ldw	r22,4(sp)
  8089ec:	ddc00017 	ldw	r23,0(sp)
  8089f0:	dec00a04 	addi	sp,sp,40
  8089f4:	f800283a 	ret
  8089f8:	18800118 	cmpnei	r2,r3,4
  8089fc:	10003726 	beq	r2,zero,808adc <__pack_d+0x1c8>
  808a00:	18800098 	cmpnei	r2,r3,2
  808a04:	10003926 	beq	r2,zero,808aec <__pack_d+0x1d8>
  808a08:	8444b03a 	or	r2,r16,r17
  808a0c:	103fdc26 	beq	r2,zero,808980 <__pack_d+0x6c>
  808a10:	21000217 	ldw	r4,8(r4)
  808a14:	01bf0084 	movi	r6,-1022
  808a18:	21802e0e 	bge	r4,r6,808ad4 <__pack_d+0x1c0>
  808a1c:	312dc83a 	sub	r22,r6,r4
  808a20:	00800e04 	movi	r2,56
  808a24:	15804e16 	blt	r2,r22,808b60 <__pack_d+0x24c>
  808a28:	a009883a 	mov	r4,r20
  808a2c:	000b883a 	mov	r5,zero
  808a30:	b00d883a 	mov	r6,r22
  808a34:	0808de80 	call	808de8 <__ashldi3>
  808a38:	01bfffc4 	movi	r6,-1
  808a3c:	1189883a 	add	r4,r2,r6
  808a40:	2095803a 	cmpltu	r10,r4,r2
  808a44:	198b883a 	add	r5,r3,r6
  808a48:	514b883a 	add	r5,r10,r5
  808a4c:	2404703a 	and	r2,r4,r16
  808a50:	2c46703a 	and	r3,r5,r17
  808a54:	10c4b03a 	or	r2,r2,r3
  808a58:	0039883a 	mov	fp,zero
  808a5c:	10000126 	beq	r2,zero,808a64 <__pack_d+0x150>
  808a60:	a039883a 	mov	fp,r20
  808a64:	880b883a 	mov	r5,r17
  808a68:	8009883a 	mov	r4,r16
  808a6c:	b00d883a 	mov	r6,r22
  808a70:	08088c40 	call	8088c4 <__lshrdi3>
  808a74:	000b883a 	mov	r5,zero
  808a78:	1720b03a 	or	r16,r2,fp
  808a7c:	1962b03a 	or	r17,r3,r5
  808a80:	00803fc4 	movi	r2,255
  808a84:	8088703a 	and	r4,r16,r2
  808a88:	00802004 	movi	r2,128
  808a8c:	000b883a 	mov	r5,zero
  808a90:	20803626 	beq	r4,r2,808b6c <__pack_d+0x258>
  808a94:	00801fc4 	movi	r2,127
  808a98:	8089883a 	add	r4,r16,r2
  808a9c:	240d803a 	cmpltu	r6,r4,r16
  808aa0:	344d883a 	add	r6,r6,r17
  808aa4:	3023883a 	mov	r17,r6
  808aa8:	300e963a 	slli	r7,r6,24
  808aac:	200cd23a 	srli	r6,r4,8
  808ab0:	00840034 	movhi	r2,4096
  808ab4:	10bfffc4 	addi	r2,r2,-1
  808ab8:	1440012e 	bgeu	r2,r17,808ac0 <__pack_d+0x1ac>
  808abc:	05400044 	movi	r21,1
  808ac0:	3984b03a 	or	r2,r7,r6
  808ac4:	8806d23a 	srli	r3,r17,8
  808ac8:	1021883a 	mov	r16,r2
  808acc:	1823883a 	mov	r17,r3
  808ad0:	003fab06 	br	808980 <__pack_d+0x6c>
  808ad4:	0080ffc4 	movi	r2,1023
  808ad8:	1100070e 	bge	r2,r4,808af8 <__pack_d+0x1e4>
  808adc:	0021883a 	mov	r16,zero
  808ae0:	0541ffc4 	movi	r21,2047
  808ae4:	0023883a 	mov	r17,zero
  808ae8:	003fa506 	br	808980 <__pack_d+0x6c>
  808aec:	0021883a 	mov	r16,zero
  808af0:	0023883a 	mov	r17,zero
  808af4:	003fa206 	br	808980 <__pack_d+0x6c>
  808af8:	00803fc4 	movi	r2,255
  808afc:	808e703a 	and	r7,r16,r2
  808b00:	00802004 	movi	r2,128
  808b04:	0011883a 	mov	r8,zero
  808b08:	2540ffc4 	addi	r21,r4,1023
  808b0c:	38801f26 	beq	r7,r2,808b8c <__pack_d+0x278>
  808b10:	00801fc4 	movi	r2,127
  808b14:	8089883a 	add	r4,r16,r2
  808b18:	240d803a 	cmpltu	r6,r4,r16
  808b1c:	344d883a 	add	r6,r6,r17
  808b20:	2021883a 	mov	r16,r4
  808b24:	3023883a 	mov	r17,r6
  808b28:	00880034 	movhi	r2,8192
  808b2c:	10bfffc4 	addi	r2,r2,-1
  808b30:	1440072e 	bgeu	r2,r17,808b50 <__pack_d+0x23c>
  808b34:	880a97fa 	slli	r5,r17,31
  808b38:	8008d07a 	srli	r4,r16,1
  808b3c:	8806d07a 	srli	r3,r17,1
  808b40:	ad400044 	addi	r21,r21,1
  808b44:	2904b03a 	or	r2,r5,r4
  808b48:	1021883a 	mov	r16,r2
  808b4c:	1823883a 	mov	r17,r3
  808b50:	880a963a 	slli	r5,r17,24
  808b54:	8008d23a 	srli	r4,r16,8
  808b58:	2904b03a 	or	r2,r5,r4
  808b5c:	003fd906 	br	808ac4 <__pack_d+0x1b0>
  808b60:	0021883a 	mov	r16,zero
  808b64:	0023883a 	mov	r17,zero
  808b68:	003fc506 	br	808a80 <__pack_d+0x16c>
  808b6c:	283fc91e 	bne	r5,zero,808a94 <__pack_d+0x180>
  808b70:	880e963a 	slli	r7,r17,24
  808b74:	800cd23a 	srli	r6,r16,8
  808b78:	3984b03a 	or	r2,r7,r6
  808b7c:	1080004c 	andi	r2,r2,1
  808b80:	103fcb26 	beq	r2,zero,808ab0 <__pack_d+0x19c>
  808b84:	2005883a 	mov	r2,r4
  808b88:	003fc306 	br	808a98 <__pack_d+0x184>
  808b8c:	403fe01e 	bne	r8,zero,808b10 <__pack_d+0x1fc>
  808b90:	880a963a 	slli	r5,r17,24
  808b94:	8008d23a 	srli	r4,r16,8
  808b98:	2904b03a 	or	r2,r5,r4
  808b9c:	1080004c 	andi	r2,r2,1
  808ba0:	103fe126 	beq	r2,zero,808b28 <__pack_d+0x214>
  808ba4:	3805883a 	mov	r2,r7
  808ba8:	003fda06 	br	808b14 <__pack_d+0x200>

00808bac <__unpack_d>:
  808bac:	21800117 	ldw	r6,4(r4)
  808bb0:	00800434 	movhi	r2,16
  808bb4:	10bfffc4 	addi	r2,r2,-1
  808bb8:	22400017 	ldw	r9,0(r4)
  808bbc:	3010d53a 	srli	r8,r6,20
  808bc0:	3006d7fa 	srli	r3,r6,31
  808bc4:	2817883a 	mov	r11,r5
  808bc8:	4201ffcc 	andi	r8,r8,2047
  808bcc:	28c00115 	stw	r3,4(r5)
  808bd0:	3094703a 	and	r10,r6,r2
  808bd4:	4000051e 	bne	r8,zero,808bec <__unpack_d+0x40>
  808bd8:	4a84b03a 	or	r2,r9,r10
  808bdc:	1000151e 	bne	r2,zero,808c34 <__unpack_d+0x88>
  808be0:	00800084 	movi	r2,2
  808be4:	58800015 	stw	r2,0(r11)
  808be8:	f800283a 	ret
  808bec:	0081ffc4 	movi	r2,2047
  808bf0:	40802a26 	beq	r8,r2,808c9c <__unpack_d+0xf0>
  808bf4:	480ad63a 	srli	r5,r9,24
  808bf8:	5008923a 	slli	r4,r10,8
  808bfc:	480c923a 	slli	r6,r9,8
  808c00:	0005883a 	mov	r2,zero
  808c04:	290eb03a 	or	r7,r5,r4
  808c08:	00c40034 	movhi	r3,4096
  808c0c:	18c00004 	addi	r3,r3,0
  808c10:	3088b03a 	or	r4,r6,r2
  808c14:	423f0044 	addi	r8,r8,-1023
  808c18:	38cab03a 	or	r5,r7,r3
  808c1c:	008000c4 	movi	r2,3
  808c20:	59400415 	stw	r5,16(r11)
  808c24:	5a000215 	stw	r8,8(r11)
  808c28:	58800015 	stw	r2,0(r11)
  808c2c:	59000315 	stw	r4,12(r11)
  808c30:	f800283a 	ret
  808c34:	5008923a 	slli	r4,r10,8
  808c38:	480ad63a 	srli	r5,r9,24
  808c3c:	4804923a 	slli	r2,r9,8
  808c40:	01bf0084 	movi	r6,-1022
  808c44:	2906b03a 	or	r3,r5,r4
  808c48:	02040034 	movhi	r8,4096
  808c4c:	423fffc4 	addi	r8,r8,-1
  808c50:	010000c4 	movi	r4,3
  808c54:	1815883a 	mov	r10,r3
  808c58:	59000015 	stw	r4,0(r11)
  808c5c:	1013883a 	mov	r9,r2
  808c60:	300f883a 	mov	r7,r6
  808c64:	42800936 	bltu	r8,r10,808c8c <__unpack_d+0xe0>
  808c68:	480ad7fa 	srli	r5,r9,31
  808c6c:	5289883a 	add	r4,r10,r10
  808c70:	4a45883a 	add	r2,r9,r9
  808c74:	31bfffc4 	addi	r6,r6,-1
  808c78:	2906b03a 	or	r3,r5,r4
  808c7c:	300f883a 	mov	r7,r6
  808c80:	1013883a 	mov	r9,r2
  808c84:	1815883a 	mov	r10,r3
  808c88:	42bff72e 	bgeu	r8,r10,808c68 <__unpack_d+0xbc>
  808c8c:	5a800415 	stw	r10,16(r11)
  808c90:	59c00215 	stw	r7,8(r11)
  808c94:	5a400315 	stw	r9,12(r11)
  808c98:	f800283a 	ret
  808c9c:	4a84b03a 	or	r2,r9,r10
  808ca0:	1000021e 	bne	r2,zero,808cac <__unpack_d+0x100>
  808ca4:	00800104 	movi	r2,4
  808ca8:	003fce06 	br	808be4 <__unpack_d+0x38>
  808cac:	5004d4fa 	srli	r2,r10,19
  808cb0:	1080004c 	andi	r2,r2,1
  808cb4:	10000426 	beq	r2,zero,808cc8 <__unpack_d+0x11c>
  808cb8:	00800044 	movi	r2,1
  808cbc:	28800015 	stw	r2,0(r5)
  808cc0:	5a800415 	stw	r10,16(r11)
  808cc4:	003ff306 	br	808c94 <__unpack_d+0xe8>
  808cc8:	28000015 	stw	zero,0(r5)
  808ccc:	5a800415 	stw	r10,16(r11)
  808cd0:	003ff006 	br	808c94 <__unpack_d+0xe8>

00808cd4 <__fpcmp_parts_d>:
  808cd4:	20c00017 	ldw	r3,0(r4)
  808cd8:	00800044 	movi	r2,1
  808cdc:	10c0022e 	bgeu	r2,r3,808ce8 <__fpcmp_parts_d+0x14>
  808ce0:	29800017 	ldw	r6,0(r5)
  808ce4:	11800136 	bltu	r2,r6,808cec <__fpcmp_parts_d+0x18>
  808ce8:	f800283a 	ret
  808cec:	18800118 	cmpnei	r2,r3,4
  808cf0:	10001126 	beq	r2,zero,808d38 <__fpcmp_parts_d+0x64>
  808cf4:	18800118 	cmpnei	r2,r3,4
  808cf8:	10001426 	beq	r2,zero,808d4c <__fpcmp_parts_d+0x78>
  808cfc:	30800118 	cmpnei	r2,r6,4
  808d00:	10002f26 	beq	r2,zero,808dc0 <__fpcmp_parts_d+0xec>
  808d04:	18800098 	cmpnei	r2,r3,2
  808d08:	10003226 	beq	r2,zero,808dd4 <__fpcmp_parts_d+0x100>
  808d0c:	18800098 	cmpnei	r2,r3,2
  808d10:	10002b26 	beq	r2,zero,808dc0 <__fpcmp_parts_d+0xec>
  808d14:	30800098 	cmpnei	r2,r6,2
  808d18:	10000c26 	beq	r2,zero,808d4c <__fpcmp_parts_d+0x78>
  808d1c:	22000117 	ldw	r8,4(r4)
  808d20:	28800117 	ldw	r2,4(r5)
  808d24:	40800f26 	beq	r8,r2,808d64 <__fpcmp_parts_d+0x90>
  808d28:	00bfffc4 	movi	r2,-1
  808d2c:	403fee1e 	bne	r8,zero,808ce8 <__fpcmp_parts_d+0x14>
  808d30:	00800044 	movi	r2,1
  808d34:	f800283a 	ret
  808d38:	30ffee1e 	bne	r6,r3,808cf4 <__fpcmp_parts_d+0x20>
  808d3c:	28c00117 	ldw	r3,4(r5)
  808d40:	20800117 	ldw	r2,4(r4)
  808d44:	1885c83a 	sub	r2,r3,r2
  808d48:	f800283a 	ret
  808d4c:	20800117 	ldw	r2,4(r4)
  808d50:	00ffffc4 	movi	r3,-1
  808d54:	1000011e 	bne	r2,zero,808d5c <__fpcmp_parts_d+0x88>
  808d58:	00c00044 	movi	r3,1
  808d5c:	1805883a 	mov	r2,r3
  808d60:	f800283a 	ret
  808d64:	20c00217 	ldw	r3,8(r4)
  808d68:	28800217 	ldw	r2,8(r5)
  808d6c:	10ffee16 	blt	r2,r3,808d28 <__fpcmp_parts_d+0x54>
  808d70:	18800f16 	blt	r3,r2,808db0 <__fpcmp_parts_d+0xdc>
  808d74:	21c00417 	ldw	r7,16(r4)
  808d78:	28c00417 	ldw	r3,16(r5)
  808d7c:	21800317 	ldw	r6,12(r4)
  808d80:	28800317 	ldw	r2,12(r5)
  808d84:	19ffe836 	bltu	r3,r7,808d28 <__fpcmp_parts_d+0x54>
  808d88:	38c01526 	beq	r7,r3,808de0 <__fpcmp_parts_d+0x10c>
  808d8c:	29c00417 	ldw	r7,16(r5)
  808d90:	20c00417 	ldw	r3,16(r4)
  808d94:	29800317 	ldw	r6,12(r5)
  808d98:	20800317 	ldw	r2,12(r4)
  808d9c:	19c00436 	bltu	r3,r7,808db0 <__fpcmp_parts_d+0xdc>
  808da0:	38c00226 	beq	r7,r3,808dac <__fpcmp_parts_d+0xd8>
  808da4:	0005883a 	mov	r2,zero
  808da8:	f800283a 	ret
  808dac:	11bffd2e 	bgeu	r2,r6,808da4 <__fpcmp_parts_d+0xd0>
  808db0:	00800044 	movi	r2,1
  808db4:	403fcc1e 	bne	r8,zero,808ce8 <__fpcmp_parts_d+0x14>
  808db8:	00bfffc4 	movi	r2,-1
  808dbc:	f800283a 	ret
  808dc0:	28800117 	ldw	r2,4(r5)
  808dc4:	00c00044 	movi	r3,1
  808dc8:	103fe41e 	bne	r2,zero,808d5c <__fpcmp_parts_d+0x88>
  808dcc:	00ffffc4 	movi	r3,-1
  808dd0:	003fe206 	br	808d5c <__fpcmp_parts_d+0x88>
  808dd4:	0005883a 	mov	r2,zero
  808dd8:	30ffcc1e 	bne	r6,r3,808d0c <__fpcmp_parts_d+0x38>
  808ddc:	f800283a 	ret
  808de0:	11bfea2e 	bgeu	r2,r6,808d8c <__fpcmp_parts_d+0xb8>
  808de4:	003fd006 	br	808d28 <__fpcmp_parts_d+0x54>

00808de8 <__ashldi3>:
  808de8:	00800804 	movi	r2,32
  808dec:	119bc83a 	sub	r13,r2,r6
  808df0:	2013883a 	mov	r9,r4
  808df4:	2005883a 	mov	r2,r4
  808df8:	2815883a 	mov	r10,r5
  808dfc:	30000826 	beq	r6,zero,808e20 <__ashldi3+0x38>
  808e00:	0349c83a 	sub	r4,zero,r13
  808e04:	2986983a 	sll	r3,r5,r6
  808e08:	1344d83a 	srl	r2,r2,r13
  808e0c:	0340070e 	bge	zero,r13,808e2c <__ashldi3+0x44>
  808e10:	4996983a 	sll	r11,r9,r6
  808e14:	1898b03a 	or	r12,r3,r2
  808e18:	5813883a 	mov	r9,r11
  808e1c:	6015883a 	mov	r10,r12
  808e20:	5007883a 	mov	r3,r10
  808e24:	4805883a 	mov	r2,r9
  808e28:	f800283a 	ret
  808e2c:	4918983a 	sll	r12,r9,r4
  808e30:	0017883a 	mov	r11,zero
  808e34:	003ff806 	br	808e18 <__ashldi3+0x30>

00808e38 <close>:
 * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h
 */
 
int ALT_CLOSE (int fildes)
{
  808e38:	defff804 	addi	sp,sp,-32
  808e3c:	dfc00715 	stw	ra,28(sp)
  808e40:	df000615 	stw	fp,24(sp)
  808e44:	d839883a 	mov	fp,sp
  808e48:	e1000015 	stw	r4,0(fp)
  alt_fd* fd;
  int     rval;

  /*
   * 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];
  808e4c:	e0800017 	ldw	r2,0(fp)
  808e50:	1004803a 	cmplt	r2,r2,zero
  808e54:	1000091e 	bne	r2,zero,808e7c <close+0x44>
  808e58:	e0800017 	ldw	r2,0(fp)
  808e5c:	10800324 	muli	r2,r2,12
  808e60:	e0800415 	stw	r2,16(fp)
  808e64:	00802074 	movhi	r2,129
  808e68:	10b3fc04 	addi	r2,r2,-12304
  808e6c:	e0c00417 	ldw	r3,16(fp)
  808e70:	1887883a 	add	r3,r3,r2
  808e74:	e0c00415 	stw	r3,16(fp)
  808e78:	00000106 	br	808e80 <close+0x48>
  808e7c:	e0000415 	stw	zero,16(fp)
  808e80:	e0800417 	ldw	r2,16(fp)
  808e84:	e0800115 	stw	r2,4(fp)

  if (fd)
  808e88:	e0800117 	ldw	r2,4(fp)
  808e8c:	1005003a 	cmpeq	r2,r2,zero
  808e90:	10001d1e 	bne	r2,zero,808f08 <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;
  808e94:	e0800117 	ldw	r2,4(fp)
  808e98:	10800017 	ldw	r2,0(r2)
  808e9c:	10800417 	ldw	r2,16(r2)
  808ea0:	1005003a 	cmpeq	r2,r2,zero
  808ea4:	1000071e 	bne	r2,zero,808ec4 <close+0x8c>
  808ea8:	e0800117 	ldw	r2,4(fp)
  808eac:	10800017 	ldw	r2,0(r2)
  808eb0:	10800417 	ldw	r2,16(r2)
  808eb4:	e1000117 	ldw	r4,4(fp)
  808eb8:	103ee83a 	callr	r2
  808ebc:	e0800515 	stw	r2,20(fp)
  808ec0:	00000106 	br	808ec8 <close+0x90>
  808ec4:	e0000515 	stw	zero,20(fp)
  808ec8:	e0c00517 	ldw	r3,20(fp)
  808ecc:	e0c00215 	stw	r3,8(fp)

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

    alt_release_fd (fildes);
  808ed0:	e1000017 	ldw	r4,0(fp)
  808ed4:	08095f00 	call	8095f0 <alt_release_fd>
    if (rval < 0)
  808ed8:	e0800217 	ldw	r2,8(fp)
  808edc:	1004403a 	cmpge	r2,r2,zero
  808ee0:	1000071e 	bne	r2,zero,808f00 <close+0xc8>
    {
      ALT_ERRNO = -rval;
  808ee4:	0808f340 	call	808f34 <alt_get_errno>
  808ee8:	e0c00217 	ldw	r3,8(fp)
  808eec:	00c7c83a 	sub	r3,zero,r3
  808ef0:	10c00015 	stw	r3,0(r2)
      return -1;
  808ef4:	00bfffc4 	movi	r2,-1
  808ef8:	e0800315 	stw	r2,12(fp)
  808efc:	00000806 	br	808f20 <close+0xe8>
    }
    return 0;
  808f00:	e0000315 	stw	zero,12(fp)
  808f04:	00000606 	br	808f20 <close+0xe8>
  }
  else
  {
    ALT_ERRNO = EBADFD;
  808f08:	0808f340 	call	808f34 <alt_get_errno>
  808f0c:	1007883a 	mov	r3,r2
  808f10:	00801444 	movi	r2,81
  808f14:	18800015 	stw	r2,0(r3)
    return -1;
  808f18:	00ffffc4 	movi	r3,-1
  808f1c:	e0c00315 	stw	r3,12(fp)
  }
}
  808f20:	e0800317 	ldw	r2,12(fp)
  808f24:	dfc00717 	ldw	ra,28(sp)
  808f28:	df000617 	ldw	fp,24(sp)
  808f2c:	dec00804 	addi	sp,sp,32
  808f30:	f800283a 	ret

00808f34 <alt_get_errno>:

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
  808f34:	defffd04 	addi	sp,sp,-12
  808f38:	dfc00215 	stw	ra,8(sp)
  808f3c:	df000115 	stw	fp,4(sp)
  808f40:	d839883a 	mov	fp,sp
  return ((alt_errno) ? alt_errno() : &errno);
  808f44:	d0a01017 	ldw	r2,-32704(gp)
  808f48:	1005003a 	cmpeq	r2,r2,zero
  808f4c:	1000041e 	bne	r2,zero,808f60 <alt_get_errno+0x2c>
  808f50:	d0a01017 	ldw	r2,-32704(gp)
  808f54:	103ee83a 	callr	r2
  808f58:	e0800015 	stw	r2,0(fp)
  808f5c:	00000206 	br	808f68 <alt_get_errno+0x34>
  808f60:	d0a01d04 	addi	r2,gp,-32652
  808f64:	e0800015 	stw	r2,0(fp)
  808f68:	e0800017 	ldw	r2,0(fp)
}
  808f6c:	dfc00217 	ldw	ra,8(sp)
  808f70:	df000117 	ldw	fp,4(sp)
  808f74:	dec00304 	addi	sp,sp,12
  808f78:	f800283a 	ret

00808f7c <alt_dev_null_write>:
 * indicates that the data has been successfully transmitted.
 */

static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len)
{
  808f7c:	defffc04 	addi	sp,sp,-16
  808f80:	df000315 	stw	fp,12(sp)
  808f84:	d839883a 	mov	fp,sp
  808f88:	e1000015 	stw	r4,0(fp)
  808f8c:	e1400115 	stw	r5,4(fp)
  808f90:	e1800215 	stw	r6,8(fp)
  return len;
  808f94:	e0800217 	ldw	r2,8(fp)
}
  808f98:	df000317 	ldw	fp,12(sp)
  808f9c:	dec00404 	addi	sp,sp,16
  808fa0:	f800283a 	ret

00808fa4 <fstat>:

#else /* !ALT_USE_DIRECT_DRIVERS */

int ALT_FSTAT (int file, struct stat *st)
{
  808fa4:	defff904 	addi	sp,sp,-28
  808fa8:	dfc00615 	stw	ra,24(sp)
  808fac:	df000515 	stw	fp,20(sp)
  808fb0:	d839883a 	mov	fp,sp
  808fb4:	e1000015 	stw	r4,0(fp)
  808fb8:	e1400115 	stw	r5,4(fp)
  alt_fd*  fd;

  /*
   * 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];
  808fbc:	e0800017 	ldw	r2,0(fp)
  808fc0:	1004803a 	cmplt	r2,r2,zero
  808fc4:	1000091e 	bne	r2,zero,808fec <fstat+0x48>
  808fc8:	e0800017 	ldw	r2,0(fp)
  808fcc:	10800324 	muli	r2,r2,12
  808fd0:	e0800415 	stw	r2,16(fp)
  808fd4:	00802074 	movhi	r2,129
  808fd8:	10b3fc04 	addi	r2,r2,-12304
  808fdc:	e0c00417 	ldw	r3,16(fp)
  808fe0:	1887883a 	add	r3,r3,r2
  808fe4:	e0c00415 	stw	r3,16(fp)
  808fe8:	00000106 	br	808ff0 <fstat+0x4c>
  808fec:	e0000415 	stw	zero,16(fp)
  808ff0:	e0800417 	ldw	r2,16(fp)
  808ff4:	e0800215 	stw	r2,8(fp)
  
  if (fd)
  808ff8:	e0800217 	ldw	r2,8(fp)
  808ffc:	1005003a 	cmpeq	r2,r2,zero
  809000:	1000121e 	bne	r2,zero,80904c <fstat+0xa8>
  {
    /* Call the drivers fstat() function to fill out the "st" structure. */

    if (fd->dev->fstat)
  809004:	e0800217 	ldw	r2,8(fp)
  809008:	10800017 	ldw	r2,0(r2)
  80900c:	10800817 	ldw	r2,32(r2)
  809010:	1005003a 	cmpeq	r2,r2,zero
  809014:	1000081e 	bne	r2,zero,809038 <fstat+0x94>
    {
      return fd->dev->fstat(fd, st);
  809018:	e0800217 	ldw	r2,8(fp)
  80901c:	10800017 	ldw	r2,0(r2)
  809020:	10800817 	ldw	r2,32(r2)
  809024:	e1000217 	ldw	r4,8(fp)
  809028:	e1400117 	ldw	r5,4(fp)
  80902c:	103ee83a 	callr	r2
  809030:	e0800315 	stw	r2,12(fp)
  809034:	00000b06 	br	809064 <fstat+0xc0>
    }

    /* 
     * If no function is provided, mark the fd as belonging to a character 
     * device.
     */
 
    else
    {
      st->st_mode = _IFCHR;
  809038:	e0c00117 	ldw	r3,4(fp)
  80903c:	00880004 	movi	r2,8192
  809040:	18800115 	stw	r2,4(r3)
      return 0;
  809044:	e0000315 	stw	zero,12(fp)
  809048:	00000606 	br	809064 <fstat+0xc0>
    }
  }
  else
  {
    ALT_ERRNO = EBADFD;
  80904c:	08090780 	call	809078 <alt_get_errno>
  809050:	1007883a 	mov	r3,r2
  809054:	00801444 	movi	r2,81
  809058:	18800015 	stw	r2,0(r3)
    return -1;
  80905c:	00ffffc4 	movi	r3,-1
  809060:	e0c00315 	stw	r3,12(fp)
  }
}
  809064:	e0800317 	ldw	r2,12(fp)
  809068:	dfc00617 	ldw	ra,24(sp)
  80906c:	df000517 	ldw	fp,20(sp)
  809070:	dec00704 	addi	sp,sp,28
  809074:	f800283a 	ret

00809078 <alt_get_errno>:

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
  809078:	defffd04 	addi	sp,sp,-12
  80907c:	dfc00215 	stw	ra,8(sp)
  809080:	df000115 	stw	fp,4(sp)
  809084:	d839883a 	mov	fp,sp
  return ((alt_errno) ? alt_errno() : &errno);
  809088:	d0a01017 	ldw	r2,-32704(gp)
  80908c:	1005003a 	cmpeq	r2,r2,zero
  809090:	1000041e 	bne	r2,zero,8090a4 <alt_get_errno+0x2c>
  809094:	d0a01017 	ldw	r2,-32704(gp)
  809098:	103ee83a 	callr	r2
  80909c:	e0800015 	stw	r2,0(fp)
  8090a0:	00000206 	br	8090ac <alt_get_errno+0x34>
  8090a4:	d0a01d04 	addi	r2,gp,-32652
  8090a8:	e0800015 	stw	r2,0(fp)
  8090ac:	e0800017 	ldw	r2,0(fp)
}
  8090b0:	dfc00217 	ldw	ra,8(sp)
  8090b4:	df000117 	ldw	fp,4(sp)
  8090b8:	dec00304 	addi	sp,sp,12
  8090bc:	f800283a 	ret

008090c0 <isatty>:
 * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h
 */
 
int ALT_ISATTY (int file)
{
  8090c0:	deffeb04 	addi	sp,sp,-84
  8090c4:	dfc01415 	stw	ra,80(sp)
  8090c8:	df001315 	stw	fp,76(sp)
  8090cc:	d839883a 	mov	fp,sp
  8090d0:	e1000015 	stw	r4,0(fp)
  alt_fd*     fd;
  struct stat stat;

  /*
   * 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];
  8090d4:	e0800017 	ldw	r2,0(fp)
  8090d8:	1004803a 	cmplt	r2,r2,zero
  8090dc:	1000091e 	bne	r2,zero,809104 <isatty+0x44>
  8090e0:	e0800017 	ldw	r2,0(fp)
  8090e4:	10800324 	muli	r2,r2,12
  8090e8:	e0801215 	stw	r2,72(fp)
  8090ec:	00802074 	movhi	r2,129
  8090f0:	10b3fc04 	addi	r2,r2,-12304
  8090f4:	e0c01217 	ldw	r3,72(fp)
  8090f8:	1887883a 	add	r3,r3,r2
  8090fc:	e0c01215 	stw	r3,72(fp)
  809100:	00000106 	br	809108 <isatty+0x48>
  809104:	e0001215 	stw	zero,72(fp)
  809108:	e0801217 	ldw	r2,72(fp)
  80910c:	e0800115 	stw	r2,4(fp)
  
  if (fd)
  809110:	e0800117 	ldw	r2,4(fp)
  809114:	1005003a 	cmpeq	r2,r2,zero
  809118:	10000f1e 	bne	r2,zero,809158 <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)
  80911c:	e0800117 	ldw	r2,4(fp)
  809120:	10800017 	ldw	r2,0(r2)
  809124:	10800817 	ldw	r2,32(r2)
  809128:	1004c03a 	cmpne	r2,r2,zero
  80912c:	1000031e 	bne	r2,zero,80913c <isatty+0x7c>
    {
      return 1;
  809130:	00c00044 	movi	r3,1
  809134:	e0c01115 	stw	r3,68(fp)
  809138:	00000c06 	br	80916c <isatty+0xac>
    }

    /*
     * If a driver does provide an implementation of the fstat() function, then
     * this is called so that the device can identify itself.
     */ 

    else
    {
      fstat (file, &stat);
  80913c:	e1400204 	addi	r5,fp,8
  809140:	e1000017 	ldw	r4,0(fp)
  809144:	0808fa40 	call	808fa4 <fstat>
      return (stat.st_mode == _IFCHR) ? 1 : 0;
  809148:	e0800317 	ldw	r2,12(fp)
  80914c:	10880020 	cmpeqi	r2,r2,8192
  809150:	e0801115 	stw	r2,68(fp)
  809154:	00000506 	br	80916c <isatty+0xac>
    }
  }
  else
  {
    ALT_ERRNO = EBADFD;
  809158:	08091800 	call	809180 <alt_get_errno>
  80915c:	1007883a 	mov	r3,r2
  809160:	00801444 	movi	r2,81
  809164:	18800015 	stw	r2,0(r3)
    return 0;
  809168:	e0001115 	stw	zero,68(fp)
  }
}
  80916c:	e0801117 	ldw	r2,68(fp)
  809170:	dfc01417 	ldw	ra,80(sp)
  809174:	df001317 	ldw	fp,76(sp)
  809178:	dec01504 	addi	sp,sp,84
  80917c:	f800283a 	ret

00809180 <alt_get_errno>:

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
  809180:	defffd04 	addi	sp,sp,-12
  809184:	dfc00215 	stw	ra,8(sp)
  809188:	df000115 	stw	fp,4(sp)
  80918c:	d839883a 	mov	fp,sp
  return ((alt_errno) ? alt_errno() : &errno);
  809190:	d0a01017 	ldw	r2,-32704(gp)
  809194:	1005003a 	cmpeq	r2,r2,zero
  809198:	1000041e 	bne	r2,zero,8091ac <alt_get_errno+0x2c>
  80919c:	d0a01017 	ldw	r2,-32704(gp)
  8091a0:	103ee83a 	callr	r2
  8091a4:	e0800015 	stw	r2,0(fp)
  8091a8:	00000206 	br	8091b4 <alt_get_errno+0x34>
  8091ac:	d0a01d04 	addi	r2,gp,-32652
  8091b0:	e0800015 	stw	r2,0(fp)
  8091b4:	e0800017 	ldw	r2,0(fp)
}
  8091b8:	dfc00217 	ldw	ra,8(sp)
  8091bc:	df000117 	ldw	fp,4(sp)
  8091c0:	dec00304 	addi	sp,sp,12
  8091c4:	f800283a 	ret

008091c8 <alt_load>:
 * RAM any sections that are required.
 */  

void alt_load (void)
{
  8091c8:	defffe04 	addi	sp,sp,-8
  8091cc:	dfc00115 	stw	ra,4(sp)
  8091d0:	df000015 	stw	fp,0(sp)
  8091d4:	d839883a 	mov	fp,sp
  /* 
   * Copy the .rwdata section. 
   */

  alt_load_section (&__flash_rwdata_start, 
  8091d8:	01002074 	movhi	r4,129
  8091dc:	21320404 	addi	r4,r4,-14320
  8091e0:	01402074 	movhi	r5,129
  8091e4:	29720404 	addi	r5,r5,-14320
  8091e8:	01802074 	movhi	r6,129
  8091ec:	31b8d904 	addi	r6,r6,-7324
  8091f0:	08092440 	call	809244 <alt_load_section>
		                &__ram_rwdata_start,
		                &__ram_rwdata_end);

  /*
   * Copy the exception handler.
   */

  alt_load_section (&__flash_exceptions_start, 
  8091f4:	01002034 	movhi	r4,128
  8091f8:	21000804 	addi	r4,r4,32
  8091fc:	01402034 	movhi	r5,128
  809200:	29400804 	addi	r5,r5,32
  809204:	01802034 	movhi	r6,128
  809208:	31807204 	addi	r6,r6,456
  80920c:	08092440 	call	809244 <alt_load_section>
		                &__ram_exceptions_start,
		                &__ram_exceptions_end);

  /*
   * Copy the .rodata section.
   */

  alt_load_section (&__flash_rodata_start, 
  809210:	01002074 	movhi	r4,129
  809214:	21306904 	addi	r4,r4,-15964
  809218:	01402074 	movhi	r5,129
  80921c:	29706904 	addi	r5,r5,-15964
  809220:	01802074 	movhi	r6,129
  809224:	31b20404 	addi	r6,r6,-14320
  809228:	08092440 	call	809244 <alt_load_section>
		                &__ram_rodata_start,
		                &__ram_rodata_end);
  
  /*
   * Now ensure that the caches are in synch.
   */
  
  alt_dcache_flush_all();
  80922c:	080b25c0 	call	80b25c <alt_dcache_flush_all>
  alt_icache_flush_all();
  809230:	080b4440 	call	80b444 <alt_icache_flush_all>
}
  809234:	dfc00117 	ldw	ra,4(sp)
  809238:	df000017 	ldw	fp,0(sp)
  80923c:	dec00204 	addi	sp,sp,8
  809240:	f800283a 	ret

00809244 <alt_load_section>:

static void ALT_INLINE alt_load_section (alt_u32* from, 
                                         alt_u32* to, 
                                         alt_u32* end)
{
  809244:	defffc04 	addi	sp,sp,-16
  809248:	df000315 	stw	fp,12(sp)
  80924c:	d839883a 	mov	fp,sp
  809250:	e1000015 	stw	r4,0(fp)
  809254:	e1400115 	stw	r5,4(fp)
  809258:	e1800215 	stw	r6,8(fp)
  if (to != from)
  80925c:	e0c00117 	ldw	r3,4(fp)
  809260:	e0800017 	ldw	r2,0(fp)
  809264:	18800e26 	beq	r3,r2,8092a0 <alt_load_section+0x5c>
  {
    while( to != end )
  809268:	e0c00117 	ldw	r3,4(fp)
  80926c:	e0800217 	ldw	r2,8(fp)
  809270:	18800b26 	beq	r3,r2,8092a0 <alt_load_section+0x5c>
    {
      *to++ = *from++;
  809274:	e1400104 	addi	r5,fp,4
  809278:	28c00017 	ldw	r3,0(r5)
  80927c:	e0800017 	ldw	r2,0(fp)
  809280:	11000017 	ldw	r4,0(r2)
  809284:	10800104 	addi	r2,r2,4
  809288:	e0800015 	stw	r2,0(fp)
  80928c:	1805883a 	mov	r2,r3
  809290:	11000015 	stw	r4,0(r2)
  809294:	18c00104 	addi	r3,r3,4
  809298:	28c00015 	stw	r3,0(r5)
  80929c:	003ff206 	br	809268 <alt_load_section+0x24>
    }
  }
}
  8092a0:	df000317 	ldw	fp,12(sp)
  8092a4:	dec00404 	addi	sp,sp,16
  8092a8:	f800283a 	ret

008092ac <lseek>:
 *
 */

off_t ALT_LSEEK (int file, off_t ptr, int dir)
{
  8092ac:	defff804 	addi	sp,sp,-32
  8092b0:	dfc00715 	stw	ra,28(sp)
  8092b4:	df000615 	stw	fp,24(sp)
  8092b8:	d839883a 	mov	fp,sp
  8092bc:	e1000015 	stw	r4,0(fp)
  8092c0:	e1400115 	stw	r5,4(fp)
  8092c4:	e1800215 	stw	r6,8(fp)
  alt_fd* fd;
  off_t   rc = 0; 
  8092c8:	e0000415 	stw	zero,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 = (file < 0) ? NULL : &alt_fd_list[file];
  8092cc:	e0800017 	ldw	r2,0(fp)
  8092d0:	1004803a 	cmplt	r2,r2,zero
  8092d4:	1000091e 	bne	r2,zero,8092fc <lseek+0x50>
  8092d8:	e0800017 	ldw	r2,0(fp)
  8092dc:	10800324 	muli	r2,r2,12
  8092e0:	e0800515 	stw	r2,20(fp)
  8092e4:	00802074 	movhi	r2,129
  8092e8:	10b3fc04 	addi	r2,r2,-12304
  8092ec:	e0c00517 	ldw	r3,20(fp)
  8092f0:	1887883a 	add	r3,r3,r2
  8092f4:	e0c00515 	stw	r3,20(fp)
  8092f8:	00000106 	br	809300 <lseek+0x54>
  8092fc:	e0000515 	stw	zero,20(fp)
  809300:	e0800517 	ldw	r2,20(fp)
  809304:	e0800315 	stw	r2,12(fp)
  
  if (fd) 
  809308:	e0800317 	ldw	r2,12(fp)
  80930c:	1005003a 	cmpeq	r2,r2,zero
  809310:	1000111e 	bne	r2,zero,809358 <lseek+0xac>
  {
    /*
     * If the device driver provides an implementation of the lseek() function,
     * then call that to process the request.
     */
 
    if (fd->dev->lseek)
  809314:	e0800317 	ldw	r2,12(fp)
  809318:	10800017 	ldw	r2,0(r2)
  80931c:	10800717 	ldw	r2,28(r2)
  809320:	1005003a 	cmpeq	r2,r2,zero
  809324:	1000091e 	bne	r2,zero,80934c <lseek+0xa0>
    {
      rc = fd->dev->lseek(fd, ptr, dir);
  809328:	e0800317 	ldw	r2,12(fp)
  80932c:	10800017 	ldw	r2,0(r2)
  809330:	10800717 	ldw	r2,28(r2)
  809334:	e1000317 	ldw	r4,12(fp)
  809338:	e1400117 	ldw	r5,4(fp)
  80933c:	e1800217 	ldw	r6,8(fp)
  809340:	103ee83a 	callr	r2
  809344:	e0800415 	stw	r2,16(fp)
  809348:	00000506 	br	809360 <lseek+0xb4>
    }
    /*
     * Otherwise return an error.
     */

    else
    {
      rc = -ENOTSUP;
  80934c:	00bfde84 	movi	r2,-134
  809350:	e0800415 	stw	r2,16(fp)
  809354:	00000206 	br	809360 <lseek+0xb4>
    }
  }
  else  
  {
    rc = -EBADFD;
  809358:	00bfebc4 	movi	r2,-81
  80935c:	e0800415 	stw	r2,16(fp)
  }

  if (rc < 0)
  809360:	e0800417 	ldw	r2,16(fp)
  809364:	1004403a 	cmpge	r2,r2,zero
  809368:	1000071e 	bne	r2,zero,809388 <lseek+0xdc>
  {
    ALT_ERRNO = -rc;
  80936c:	080939c0 	call	80939c <alt_get_errno>
  809370:	1007883a 	mov	r3,r2
  809374:	e0800417 	ldw	r2,16(fp)
  809378:	0085c83a 	sub	r2,zero,r2
  80937c:	18800015 	stw	r2,0(r3)
    rc = -1;
  809380:	00bfffc4 	movi	r2,-1
  809384:	e0800415 	stw	r2,16(fp)
  }

  return rc;
  809388:	e0800417 	ldw	r2,16(fp)
}
  80938c:	dfc00717 	ldw	ra,28(sp)
  809390:	df000617 	ldw	fp,24(sp)
  809394:	dec00804 	addi	sp,sp,32
  809398:	f800283a 	ret

0080939c <alt_get_errno>:

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
  80939c:	defffd04 	addi	sp,sp,-12
  8093a0:	dfc00215 	stw	ra,8(sp)
  8093a4:	df000115 	stw	fp,4(sp)
  8093a8:	d839883a 	mov	fp,sp
  return ((alt_errno) ? alt_errno() : &errno);
  8093ac:	d0a01017 	ldw	r2,-32704(gp)
  8093b0:	1005003a 	cmpeq	r2,r2,zero
  8093b4:	1000041e 	bne	r2,zero,8093c8 <alt_get_errno+0x2c>
  8093b8:	d0a01017 	ldw	r2,-32704(gp)
  8093bc:	103ee83a 	callr	r2
  8093c0:	e0800015 	stw	r2,0(fp)
  8093c4:	00000206 	br	8093d0 <alt_get_errno+0x34>
  8093c8:	d0a01d04 	addi	r2,gp,-32652
  8093cc:	e0800015 	stw	r2,0(fp)
  8093d0:	e0800017 	ldw	r2,0(fp)
}
  8093d4:	dfc00217 	ldw	ra,8(sp)
  8093d8:	df000117 	ldw	fp,4(sp)
  8093dc:	dec00304 	addi	sp,sp,12
  8093e0:	f800283a 	ret

008093e4 <alt_main>:
 * the users application, i.e. main().
 */

void alt_main (void)
{
  8093e4:	defffd04 	addi	sp,sp,-12
  8093e8:	dfc00215 	stw	ra,8(sp)
  8093ec:	df000115 	stw	fp,4(sp)
  8093f0:	d839883a 	mov	fp,sp
 */

static ALT_INLINE void ALT_ALWAYS_INLINE 
       alt_irq_init (const void* base)
{
  8093f4:	e0000015 	stw	zero,0(fp)
  NIOS2_WRITE_IENABLE (0);
  8093f8:	000170fa 	wrctl	ienable,zero
  NIOS2_WRITE_STATUS (NIOS2_STATUS_PIE_MSK);
  8093fc:	00800044 	movi	r2,1
  809400:	1001703a 	wrctl	status,r2
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  809404:	e0000015 	stw	zero,0(fp)

  /* 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 (ALT_IRQ_BASE);

  /* Initialize the operating system */
  ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n");
  ALT_OS_INIT();

  /*
   * Initialize the semaphore used to control access to the file descriptor
   * list.
   */

  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();
  809408:	08097000 	call	809700 <alt_sys_init>
  ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n");

#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT))

  /*
   * Redirect stdio to the apropriate devices now that the devices have
   * been initialized. This is only done if the user has requested these
   * 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);
  80940c:	01002074 	movhi	r4,129
  809410:	21319904 	addi	r4,r4,-14748
  809414:	01402074 	movhi	r5,129
  809418:	29719904 	addi	r5,r5,-14748
  80941c:	01802074 	movhi	r6,129
  809420:	31b19904 	addi	r6,r6,-14748
  809424:	080b5300 	call	80b530 <alt_io_redirect>
#endif

#ifndef ALT_NO_C_PLUS_PLUS
  /* 
   * Call the C++ constructors 
   */

  ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n");
  _do_ctors ();
  809428:	080b3940 	call	80b394 <_do_ctors>
#endif /* ALT_NO_C_PLUS_PLUS */

#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT)
  /*
   * Set the C++ destructors to be called at system shutdown. This is only done
   * if a clean exit has been requested (i.e. the exit() function has not been
   * 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);
  80942c:	01002074 	movhi	r4,129
  809430:	212cfb04 	addi	r4,r4,-19476
  809434:	080bf640 	call	80bf64 <atexit>
#endif

  /*
   * Finally, call main(). The return code is then passed to a subsequent
   * call to exit() unless the application is never supposed to exit.
   */

  ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n");

#ifdef ALT_NO_EXIT
  main (alt_argc, alt_argv, alt_envp);
#else
  exit (main (alt_argc, alt_argv, alt_envp));
  809438:	d1201117 	ldw	r4,-32700(gp)
  80943c:	d1601217 	ldw	r5,-32696(gp)
  809440:	d1a01317 	ldw	r6,-32692(gp)
  809444:	08002140 	call	800214 <main>
  809448:	1009883a 	mov	r4,r2
  80944c:	080c0000 	call	80c000 <exit>

00809450 <__malloc_lock>:
 * this requires that malloc is never called by an interrupt service routine.
 */

void __malloc_lock ( struct _reent *_r )
{
  809450:	defffe04 	addi	sp,sp,-8
  809454:	df000115 	stw	fp,4(sp)
  809458:	d839883a 	mov	fp,sp
  80945c:	e1000015 	stw	r4,0(fp)
  809460:	df000117 	ldw	fp,4(sp)
  809464:	dec00204 	addi	sp,sp,8
  809468:	f800283a 	ret

0080946c <__malloc_unlock>:
}

/*
 *
 */

void __malloc_unlock ( struct _reent *_r )
{
  80946c:	defffe04 	addi	sp,sp,-8
  809470:	df000115 	stw	fp,4(sp)
  809474:	d839883a 	mov	fp,sp
  809478:	e1000015 	stw	r4,0(fp)
  80947c:	df000117 	ldw	fp,4(sp)
  809480:	dec00204 	addi	sp,sp,8
  809484:	f800283a 	ret

00809488 <read>:

#else /* !ALT_USE_DIRECT_DRIVERS */

int ALT_READ (int file, void *ptr, size_t len)
{
  809488:	defff704 	addi	sp,sp,-36
  80948c:	dfc00815 	stw	ra,32(sp)
  809490:	df000715 	stw	fp,28(sp)
  809494:	d839883a 	mov	fp,sp
  809498:	e1000015 	stw	r4,0(fp)
  80949c:	e1400115 	stw	r5,4(fp)
  8094a0:	e1800215 	stw	r6,8(fp)
  alt_fd*  fd;
  int      rval;

  /*
   * 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];
  8094a4:	e0800017 	ldw	r2,0(fp)
  8094a8:	1004803a 	cmplt	r2,r2,zero
  8094ac:	1000091e 	bne	r2,zero,8094d4 <read+0x4c>
  8094b0:	e0800017 	ldw	r2,0(fp)
  8094b4:	10800324 	muli	r2,r2,12
  8094b8:	e0800615 	stw	r2,24(fp)
  8094bc:	00802074 	movhi	r2,129
  8094c0:	10b3fc04 	addi	r2,r2,-12304
  8094c4:	e0c00617 	ldw	r3,24(fp)
  8094c8:	1887883a 	add	r3,r3,r2
  8094cc:	e0c00615 	stw	r3,24(fp)
  8094d0:	00000106 	br	8094d8 <read+0x50>
  8094d4:	e0000615 	stw	zero,24(fp)
  8094d8:	e0800617 	ldw	r2,24(fp)
  8094dc:	e0800315 	stw	r2,12(fp)
  
  if (fd)
  8094e0:	e0800317 	ldw	r2,12(fp)
  8094e4:	1005003a 	cmpeq	r2,r2,zero
  8094e8:	1000241e 	bne	r2,zero,80957c <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) && 
  8094ec:	e0800317 	ldw	r2,12(fp)
  8094f0:	10800217 	ldw	r2,8(r2)
  8094f4:	108000cc 	andi	r2,r2,3
  8094f8:	10800060 	cmpeqi	r2,r2,1
  8094fc:	10001a1e 	bne	r2,zero,809568 <read+0xe0>
  809500:	e0800317 	ldw	r2,12(fp)
  809504:	10800017 	ldw	r2,0(r2)
  809508:	10800517 	ldw	r2,20(r2)
  80950c:	1005003a 	cmpeq	r2,r2,zero
  809510:	1000151e 	bne	r2,zero,809568 <read+0xe0>
        (fd->dev->read))
      {
        if ((rval = fd->dev->read(fd, ptr, len)) < 0)
  809514:	e0800317 	ldw	r2,12(fp)
  809518:	10800017 	ldw	r2,0(r2)
  80951c:	10800517 	ldw	r2,20(r2)
  809520:	e1000317 	ldw	r4,12(fp)
  809524:	e1400117 	ldw	r5,4(fp)
  809528:	e1800217 	ldw	r6,8(fp)
  80952c:	103ee83a 	callr	r2
  809530:	e0800415 	stw	r2,16(fp)
  809534:	e0800417 	ldw	r2,16(fp)
  809538:	1004403a 	cmpge	r2,r2,zero
  80953c:	1000071e 	bne	r2,zero,80955c <read+0xd4>
        {
          ALT_ERRNO = -rval;
  809540:	08095a80 	call	8095a8 <alt_get_errno>
  809544:	e0c00417 	ldw	r3,16(fp)
  809548:	00c7c83a 	sub	r3,zero,r3
  80954c:	10c00015 	stw	r3,0(r2)
          return -1;
  809550:	00ffffc4 	movi	r3,-1
  809554:	e0c00515 	stw	r3,20(fp)
  809558:	00000e06 	br	809594 <read+0x10c>
        }
        return rval;
  80955c:	e0800417 	ldw	r2,16(fp)
  809560:	e0800515 	stw	r2,20(fp)
  809564:	00000b06 	br	809594 <read+0x10c>
      }
      else
      {
        ALT_ERRNO = EACCES;
  809568:	08095a80 	call	8095a8 <alt_get_errno>
  80956c:	1007883a 	mov	r3,r2
  809570:	00800344 	movi	r2,13
  809574:	18800015 	stw	r2,0(r3)
  809578:	00000406 	br	80958c <read+0x104>
      }
    }
  else
  {
    ALT_ERRNO = EBADFD;
  80957c:	08095a80 	call	8095a8 <alt_get_errno>
  809580:	1007883a 	mov	r3,r2
  809584:	00801444 	movi	r2,81
  809588:	18800015 	stw	r2,0(r3)
  }
  return -1;
  80958c:	00bfffc4 	movi	r2,-1
  809590:	e0800515 	stw	r2,20(fp)
}
  809594:	e0800517 	ldw	r2,20(fp)
  809598:	dfc00817 	ldw	ra,32(sp)
  80959c:	df000717 	ldw	fp,28(sp)
  8095a0:	dec00904 	addi	sp,sp,36
  8095a4:	f800283a 	ret

008095a8 <alt_get_errno>:

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
  8095a8:	defffd04 	addi	sp,sp,-12
  8095ac:	dfc00215 	stw	ra,8(sp)
  8095b0:	df000115 	stw	fp,4(sp)
  8095b4:	d839883a 	mov	fp,sp
  return ((alt_errno) ? alt_errno() : &errno);
  8095b8:	d0a01017 	ldw	r2,-32704(gp)
  8095bc:	1005003a 	cmpeq	r2,r2,zero
  8095c0:	1000041e 	bne	r2,zero,8095d4 <alt_get_errno+0x2c>
  8095c4:	d0a01017 	ldw	r2,-32704(gp)
  8095c8:	103ee83a 	callr	r2
  8095cc:	e0800015 	stw	r2,0(fp)
  8095d0:	00000206 	br	8095dc <alt_get_errno+0x34>
  8095d4:	d0a01d04 	addi	r2,gp,-32652
  8095d8:	e0800015 	stw	r2,0(fp)
  8095dc:	e0800017 	ldw	r2,0(fp)
}
  8095e0:	dfc00217 	ldw	ra,8(sp)
  8095e4:	df000117 	ldw	fp,4(sp)
  8095e8:	dec00304 	addi	sp,sp,12
  8095ec:	f800283a 	ret

008095f0 <alt_release_fd>:
 * error cannont be released backed to the pool. They are always reserved.
 */

void alt_release_fd (int fd)
{
  8095f0:	defffe04 	addi	sp,sp,-8
  8095f4:	df000115 	stw	fp,4(sp)
  8095f8:	d839883a 	mov	fp,sp
  8095fc:	e1000015 	stw	r4,0(fp)
  if (fd > 2)
  809600:	e0800017 	ldw	r2,0(fp)
  809604:	108000d0 	cmplti	r2,r2,3
  809608:	10000d1e 	bne	r2,zero,809640 <alt_release_fd+0x50>
  {
    alt_fd_list[fd].fd_flags = 0;
  80960c:	00c02074 	movhi	r3,129
  809610:	18f3fc04 	addi	r3,r3,-12304
  809614:	e0800017 	ldw	r2,0(fp)
  809618:	10800324 	muli	r2,r2,12
  80961c:	10c5883a 	add	r2,r2,r3
  809620:	10800204 	addi	r2,r2,8
  809624:	10000015 	stw	zero,0(r2)
    alt_fd_list[fd].dev      = 0;
  809628:	00c02074 	movhi	r3,129
  80962c:	18f3fc04 	addi	r3,r3,-12304
  809630:	e0800017 	ldw	r2,0(fp)
  809634:	10800324 	muli	r2,r2,12
  809638:	10c5883a 	add	r2,r2,r3
  80963c:	10000015 	stw	zero,0(r2)
  }
}
  809640:	df000117 	ldw	fp,4(sp)
  809644:	dec00204 	addi	sp,sp,8
  809648:	f800283a 	ret

0080964c <sbrk>:
 
caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function ));

caddr_t ALT_SBRK (int incr)
{ 
  80964c:	defff904 	addi	sp,sp,-28
  809650:	df000615 	stw	fp,24(sp)
  809654:	d839883a 	mov	fp,sp
  809658:	e1000015 	stw	r4,0(fp)
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
  80965c:	0005303a 	rdctl	r2,status
  809660:	e0800415 	stw	r2,16(fp)
  NIOS2_WRITE_STATUS (0);
  809664:	0001703a 	wrctl	status,zero
  809668:	e0800417 	ldw	r2,16(fp)
  80966c:	e0800315 	stw	r2,12(fp)
  809670:	e0800317 	ldw	r2,12(fp)
  809674:	e0800115 	stw	r2,4(fp)
  alt_irq_context context;
  char *prev_heap_end; 

  context = alt_irq_disable_all();

  /* Always return data aligned on a word boundary */
  heap_end = (char *)(((unsigned int)heap_end + 3) & ~3);
  809678:	d0a01417 	ldw	r2,-32688(gp)
  80967c:	10c000c4 	addi	r3,r2,3
  809680:	00bfff04 	movi	r2,-4
  809684:	1884703a 	and	r2,r3,r2
  809688:	d0a01415 	stw	r2,-32688(gp)

#ifdef ALT_MAX_HEAP_BYTES
  /*  
   * User specified a maximum heap size.  Return -1 if it would
   * be exceeded by this sbrk call.
   */
  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) {
  80968c:	d0e01417 	ldw	r3,-32688(gp)
  809690:	e0800017 	ldw	r2,0(fp)
  809694:	1887883a 	add	r3,r3,r2
  809698:	00804034 	movhi	r2,256
  80969c:	10800004 	addi	r2,r2,0
  8096a0:	10c0072e 	bgeu	r2,r3,8096c0 <sbrk+0x74>
 */

static ALT_INLINE void ALT_ALWAYS_INLINE 
       alt_irq_enable_all (alt_irq_context context)
{
  8096a4:	e0800117 	ldw	r2,4(fp)
  8096a8:	e0800415 	stw	r2,16(fp)
  NIOS2_WRITE_STATUS (context);
  8096ac:	e0800417 	ldw	r2,16(fp)
  8096b0:	1001703a 	wrctl	status,r2
    alt_irq_enable_all(context);
    return (caddr_t)-1;
  8096b4:	00bfffc4 	movi	r2,-1
  8096b8:	e0800515 	stw	r2,20(fp)
  8096bc:	00000c06 	br	8096f0 <sbrk+0xa4>
  }
#endif

  prev_heap_end = heap_end; 
  8096c0:	d0a01417 	ldw	r2,-32688(gp)
  8096c4:	e0800215 	stw	r2,8(fp)
  heap_end += incr; 
  8096c8:	d0e01417 	ldw	r3,-32688(gp)
  8096cc:	e0800017 	ldw	r2,0(fp)
  8096d0:	1885883a 	add	r2,r3,r2
  8096d4:	d0a01415 	stw	r2,-32688(gp)
 */

static ALT_INLINE void ALT_ALWAYS_INLINE 
       alt_irq_enable_all (alt_irq_context context)
{
  8096d8:	e0800117 	ldw	r2,4(fp)
  8096dc:	e0800415 	stw	r2,16(fp)
  NIOS2_WRITE_STATUS (context);
  8096e0:	e0800417 	ldw	r2,16(fp)
  8096e4:	1001703a 	wrctl	status,r2

#ifdef ALT_STACK_CHECK
  /*
   * If the stack and heap are contiguous then extending the heap reduces the
   * space available for the stack.  If we are still using the default stack
   * then adjust the stack limit to note this, while checking for stack
   * pointer overflow. 
   * If the stack limit isn't pointing at the top of the heap then the code
   * is using a different stack so none of this needs to be done.
   */

  if (alt_stack_limit() == prev_heap_end)
  {
    if (alt_stack_pointer() <= heap_end)
      alt_report_stack_overflow();

    alt_set_stack_limit(heap_end);
  }

#ifdef ALT_EXCEPTION_STACK
  /*
   * If we are executing from the exception stack then compare against the
   * stack we switched away from as well.  The exception stack is a fixed
   * size so doesn't need to be checked.
   */

  if (alt_exception_old_stack_limit == prev_heap_end)
  {
    if (alt_exception_old_stack_limit <= heap_end)
      alt_report_stack_overflow();

    alt_exception_old_stack_limit = heap_end;
  }
#endif

#endif

  alt_irq_enable_all(context);

  return (caddr_t) prev_heap_end; 
  8096e8:	e0800217 	ldw	r2,8(fp)
  8096ec:	e0800515 	stw	r2,20(fp)
} 
  8096f0:	e0800517 	ldw	r2,20(fp)
  8096f4:	df000617 	ldw	fp,24(sp)
  8096f8:	dec00704 	addi	sp,sp,28
  8096fc:	f800283a 	ret

00809700 <alt_sys_init>:
  809700:	defffe04 	addi	sp,sp,-8
  809704:	dfc00115 	stw	ra,4(sp)
  809708:	df000015 	stw	fp,0(sp)
  80970c:	d839883a 	mov	fp,sp
  809710:	01004034 	movhi	r4,256
  809714:	21040004 	addi	r4,r4,4096
  809718:	000b883a 	mov	r5,zero
  80971c:	0180fa04 	movi	r6,1000
  809720:	080b0940 	call	80b094 <alt_avalon_timer_sc_init>
  809724:	01002074 	movhi	r4,129
  809728:	21346604 	addi	r4,r4,-11880
  80972c:	01400044 	movi	r5,1
  809730:	08099f40 	call	8099f4 <altera_avalon_jtag_uart_init>
  809734:	01002074 	movhi	r4,129
  809738:	21345c04 	addi	r4,r4,-11920
  80973c:	08097680 	call	809768 <alt_dev_reg>
  809740:	01002074 	movhi	r4,129
  809744:	21387e04 	addi	r4,r4,-7688
  809748:	080aee00 	call	80aee0 <altera_avalon_lcd_16207_init>
  80974c:	01002074 	movhi	r4,129
  809750:	21387404 	addi	r4,r4,-7728
  809754:	08097680 	call	809768 <alt_dev_reg>
  809758:	dfc00117 	ldw	ra,4(sp)
  80975c:	df000017 	ldw	fp,0(sp)
  809760:	dec00204 	addi	sp,sp,8
  809764:	f800283a 	ret

00809768 <alt_dev_reg>:

extern int alt_fs_reg  (alt_dev* dev); 

static ALT_INLINE int alt_dev_reg (alt_dev* dev)
{
  809768:	defffd04 	addi	sp,sp,-12
  80976c:	dfc00215 	stw	ra,8(sp)
  809770:	df000115 	stw	fp,4(sp)
  809774:	d839883a 	mov	fp,sp
  809778:	e1000015 	stw	r4,0(fp)
  extern alt_llist alt_dev_list;

  return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list);
  80977c:	e1000017 	ldw	r4,0(fp)
  809780:	d1600d04 	addi	r5,gp,-32716
  809784:	080b29c0 	call	80b29c <alt_dev_llist_insert>
}
  809788:	dfc00217 	ldw	ra,8(sp)
  80978c:	df000117 	ldw	fp,4(sp)
  809790:	dec00304 	addi	sp,sp,12
  809794:	f800283a 	ret

00809798 <write>:

#else /* !ALT_USE_DIRECT_DRIVERS */

int ALT_WRITE (int file, const void *ptr, size_t len)
{
  809798:	defff704 	addi	sp,sp,-36
  80979c:	dfc00815 	stw	ra,32(sp)
  8097a0:	df000715 	stw	fp,28(sp)
  8097a4:	d839883a 	mov	fp,sp
  8097a8:	e1000015 	stw	r4,0(fp)
  8097ac:	e1400115 	stw	r5,4(fp)
  8097b0:	e1800215 	stw	r6,8(fp)
  alt_fd*  fd;
  int      rval;

  /*
   * 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];
  8097b4:	e0800017 	ldw	r2,0(fp)
  8097b8:	1004803a 	cmplt	r2,r2,zero
  8097bc:	1000091e 	bne	r2,zero,8097e4 <write+0x4c>
  8097c0:	e0800017 	ldw	r2,0(fp)
  8097c4:	10800324 	muli	r2,r2,12
  8097c8:	e0800615 	stw	r2,24(fp)
  8097cc:	00802074 	movhi	r2,129
  8097d0:	10b3fc04 	addi	r2,r2,-12304
  8097d4:	e0c00617 	ldw	r3,24(fp)
  8097d8:	1887883a 	add	r3,r3,r2
  8097dc:	e0c00615 	stw	r3,24(fp)
  8097e0:	00000106 	br	8097e8 <write+0x50>
  8097e4:	e0000615 	stw	zero,24(fp)
  8097e8:	e0800617 	ldw	r2,24(fp)
  8097ec:	e0800315 	stw	r2,12(fp)
  
  if (fd)
  8097f0:	e0800317 	ldw	r2,12(fp)
  8097f4:	1005003a 	cmpeq	r2,r2,zero
  8097f8:	1000241e 	bne	r2,zero,80988c <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)
  8097fc:	e0800317 	ldw	r2,12(fp)
  809800:	10800217 	ldw	r2,8(r2)
  809804:	108000cc 	andi	r2,r2,3
  809808:	1005003a 	cmpeq	r2,r2,zero
  80980c:	10001a1e 	bne	r2,zero,809878 <write+0xe0>
  809810:	e0800317 	ldw	r2,12(fp)
  809814:	10800017 	ldw	r2,0(r2)
  809818:	10800617 	ldw	r2,24(r2)
  80981c:	1005003a 	cmpeq	r2,r2,zero
  809820:	1000151e 	bne	r2,zero,809878 <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)
  809824:	e0800317 	ldw	r2,12(fp)
  809828:	10800017 	ldw	r2,0(r2)
  80982c:	10800617 	ldw	r2,24(r2)
  809830:	e1000317 	ldw	r4,12(fp)
  809834:	e1400117 	ldw	r5,4(fp)
  809838:	e1800217 	ldw	r6,8(fp)
  80983c:	103ee83a 	callr	r2
  809840:	e0800415 	stw	r2,16(fp)
  809844:	e0800417 	ldw	r2,16(fp)
  809848:	1004403a 	cmpge	r2,r2,zero
  80984c:	1000071e 	bne	r2,zero,80986c <write+0xd4>
      {
        ALT_ERRNO = -rval;
  809850:	08098b80 	call	8098b8 <alt_get_errno>
  809854:	e0c00417 	ldw	r3,16(fp)
  809858:	00c7c83a 	sub	r3,zero,r3
  80985c:	10c00015 	stw	r3,0(r2)
        return -1;
  809860:	00ffffc4 	movi	r3,-1
  809864:	e0c00515 	stw	r3,20(fp)
  809868:	00000e06 	br	8098a4 <write+0x10c>
      }
      return rval;
  80986c:	e0800417 	ldw	r2,16(fp)
  809870:	e0800515 	stw	r2,20(fp)
  809874:	00000b06 	br	8098a4 <write+0x10c>
    }
    else
    {
      ALT_ERRNO = EACCES;
  809878:	08098b80 	call	8098b8 <alt_get_errno>
  80987c:	1007883a 	mov	r3,r2
  809880:	00800344 	movi	r2,13
  809884:	18800015 	stw	r2,0(r3)
  809888:	00000406 	br	80989c <write+0x104>
    }
  }
  else  
  {
    ALT_ERRNO = EBADFD;
  80988c:	08098b80 	call	8098b8 <alt_get_errno>
  809890:	1007883a 	mov	r3,r2
  809894:	00801444 	movi	r2,81
  809898:	18800015 	stw	r2,0(r3)
  }
  return -1;
  80989c:	00bfffc4 	movi	r2,-1
  8098a0:	e0800515 	stw	r2,20(fp)
}
  8098a4:	e0800517 	ldw	r2,20(fp)
  8098a8:	dfc00817 	ldw	ra,32(sp)
  8098ac:	df000717 	ldw	fp,28(sp)
  8098b0:	dec00904 	addi	sp,sp,36
  8098b4:	f800283a 	ret

008098b8 <alt_get_errno>:

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
  8098b8:	defffd04 	addi	sp,sp,-12
  8098bc:	dfc00215 	stw	ra,8(sp)
  8098c0:	df000115 	stw	fp,4(sp)
  8098c4:	d839883a 	mov	fp,sp
  return ((alt_errno) ? alt_errno() : &errno);
  8098c8:	d0a01017 	ldw	r2,-32704(gp)
  8098cc:	1005003a 	cmpeq	r2,r2,zero
  8098d0:	1000041e 	bne	r2,zero,8098e4 <alt_get_errno+0x2c>
  8098d4:	d0a01017 	ldw	r2,-32704(gp)
  8098d8:	103ee83a 	callr	r2
  8098dc:	e0800015 	stw	r2,0(fp)
  8098e0:	00000206 	br	8098ec <alt_get_errno+0x34>
  8098e4:	d0a01d04 	addi	r2,gp,-32652
  8098e8:	e0800015 	stw	r2,0(fp)
  8098ec:	e0800017 	ldw	r2,0(fp)
}
  8098f0:	dfc00217 	ldw	ra,8(sp)
  8098f4:	df000117 	ldw	fp,4(sp)
  8098f8:	dec00304 	addi	sp,sp,12
  8098fc:	f800283a 	ret

00809900 <altera_avalon_jtag_uart_read_fd>:
 */

int 
altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space)
{
  809900:	defffa04 	addi	sp,sp,-24
  809904:	dfc00515 	stw	ra,20(sp)
  809908:	df000415 	stw	fp,16(sp)
  80990c:	d839883a 	mov	fp,sp
  809910:	e1000015 	stw	r4,0(fp)
  809914:	e1400115 	stw	r5,4(fp)
  809918:	e1800215 	stw	r6,8(fp)
    altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; 
  80991c:	e0800017 	ldw	r2,0(fp)
  809920:	10800017 	ldw	r2,0(r2)
  809924:	e0800315 	stw	r2,12(fp)

    return altera_avalon_jtag_uart_read(&dev->state, buffer, space,
  809928:	e0800317 	ldw	r2,12(fp)
  80992c:	11000a04 	addi	r4,r2,40
  809930:	e0800017 	ldw	r2,0(fp)
  809934:	e1400117 	ldw	r5,4(fp)
  809938:	e1800217 	ldw	r6,8(fp)
  80993c:	11c00217 	ldw	r7,8(r2)
  809940:	0809e7c0 	call	809e7c <altera_avalon_jtag_uart_read>
      fd->fd_flags);
}
  809944:	dfc00517 	ldw	ra,20(sp)
  809948:	df000417 	ldw	fp,16(sp)
  80994c:	dec00604 	addi	sp,sp,24
  809950:	f800283a 	ret

00809954 <altera_avalon_jtag_uart_write_fd>:

int 
altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space)
{
  809954:	defffa04 	addi	sp,sp,-24
  809958:	dfc00515 	stw	ra,20(sp)
  80995c:	df000415 	stw	fp,16(sp)
  809960:	d839883a 	mov	fp,sp
  809964:	e1000015 	stw	r4,0(fp)
  809968:	e1400115 	stw	r5,4(fp)
  80996c:	e1800215 	stw	r6,8(fp)
    altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; 
  809970:	e0800017 	ldw	r2,0(fp)
  809974:	10800017 	ldw	r2,0(r2)
  809978:	e0800315 	stw	r2,12(fp)

    return altera_avalon_jtag_uart_write(&dev->state, buffer, space,
  80997c:	e0800317 	ldw	r2,12(fp)
  809980:	11000a04 	addi	r4,r2,40
  809984:	e0800017 	ldw	r2,0(fp)
  809988:	e1400117 	ldw	r5,4(fp)
  80998c:	e1800217 	ldw	r6,8(fp)
  809990:	11c00217 	ldw	r7,8(r2)
  809994:	080a0ac0 	call	80a0ac <altera_avalon_jtag_uart_write>
      fd->fd_flags);
}
  809998:	dfc00517 	ldw	ra,20(sp)
  80999c:	df000417 	ldw	fp,16(sp)
  8099a0:	dec00604 	addi	sp,sp,24
  8099a4:	f800283a 	ret

008099a8 <altera_avalon_jtag_uart_ioctl_fd>:

#ifndef ALTERA_AVALON_JTAG_UART_SMALL

int 
altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg)
{
  8099a8:	defffa04 	addi	sp,sp,-24
  8099ac:	dfc00515 	stw	ra,20(sp)
  8099b0:	df000415 	stw	fp,16(sp)
  8099b4:	d839883a 	mov	fp,sp
  8099b8:	e1000015 	stw	r4,0(fp)
  8099bc:	e1400115 	stw	r5,4(fp)
  8099c0:	e1800215 	stw	r6,8(fp)
    altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev;
  8099c4:	e0800017 	ldw	r2,0(fp)
  8099c8:	10800017 	ldw	r2,0(r2)
  8099cc:	e0800315 	stw	r2,12(fp)

    return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg);
  8099d0:	e0800317 	ldw	r2,12(fp)
  8099d4:	11000a04 	addi	r4,r2,40
  8099d8:	e1400117 	ldw	r5,4(fp)
  8099dc:	e1800217 	ldw	r6,8(fp)
  8099e0:	0809d840 	call	809d84 <altera_avalon_jtag_uart_ioctl>
}
  8099e4:	dfc00517 	ldw	ra,20(sp)
  8099e8:	df000417 	ldw	fp,16(sp)
  8099ec:	dec00604 	addi	sp,sp,24
  8099f0:	f800283a 	ret

008099f4 <altera_avalon_jtag_uart_init>:
 */

void 
altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, int irq)
{
  8099f4:	defff804 	addi	sp,sp,-32
  8099f8:	dfc00715 	stw	ra,28(sp)
  8099fc:	df000615 	stw	fp,24(sp)
  809a00:	d839883a 	mov	fp,sp
  809a04:	e1000015 	stw	r4,0(fp)
  809a08:	e1400115 	stw	r5,4(fp)
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  809a0c:	e0000215 	stw	zero,8(fp)
  809a10:	e0000315 	stw	zero,12(fp)
  809a14:	e0000415 	stw	zero,16(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;
  809a18:	e0c00017 	ldw	r3,0(fp)
  809a1c:	00800044 	movi	r2,1
  809a20:	18800815 	stw	r2,32(r3)

  IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); 
  809a24:	e0800017 	ldw	r2,0(fp)
  809a28:	10800017 	ldw	r2,0(r2)
  809a2c:	10800104 	addi	r2,r2,4
  809a30:	1007883a 	mov	r3,r2
  809a34:	e0800017 	ldw	r2,0(fp)
  809a38:	10800817 	ldw	r2,32(r2)
  809a3c:	18800035 	stwio	r2,0(r3)
  
  /* register the interrupt handler */
  alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq);
  809a40:	e1000117 	ldw	r4,4(fp)
  809a44:	e1400017 	ldw	r5,0(fp)
  809a48:	01802074 	movhi	r6,129
  809a4c:	31a6aa04 	addi	r6,r6,-25944
  809a50:	080b5a40 	call	80b5a4 <alt_irq_register>

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

static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void)
{
  return _alt_tick_rate;
  809a5c:	d0a01817 	ldw	r2,-32672(gp)
  809a60:	e0800515 	stw	r2,20(fp)
  809a64:	e1400517 	ldw	r5,20(fp)
  809a68:	e0800017 	ldw	r2,0(fp)
  809a6c:	11000204 	addi	r4,r2,8
  809a70:	01802074 	movhi	r6,129
  809a74:	31a73004 	addi	r6,r6,-25408
  809a78:	e1c00017 	ldw	r7,0(fp)
  809a7c:	080b1140 	call	80b114 <alt_alarm_start>
  809a80:	1004403a 	cmpge	r2,r2,zero
  809a84:	1000041e 	bne	r2,zero,809a98 <altera_avalon_jtag_uart_init+0xa4>

  if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), 
    &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;
  809a88:	e0c00017 	ldw	r3,0(fp)
  809a8c:	00a00034 	movhi	r2,32768
  809a90:	10bfffc4 	addi	r2,r2,-1
  809a94:	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);
}
  809a98:	dfc00717 	ldw	ra,28(sp)
  809a9c:	df000617 	ldw	fp,24(sp)
  809aa0:	dec00804 	addi	sp,sp,32
  809aa4:	f800283a 	ret

00809aa8 <altera_avalon_jtag_uart_irq>:

/*
 * Interrupt routine
 */ 

static void 
altera_avalon_jtag_uart_irq(void* context, alt_u32 id)
{
  809aa8:	defff704 	addi	sp,sp,-36
  809aac:	df000815 	stw	fp,32(sp)
  809ab0:	d839883a 	mov	fp,sp
  809ab4:	e1000015 	stw	r4,0(fp)
  809ab8:	e1400115 	stw	r5,4(fp)
  altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context;
  809abc:	e0800017 	ldw	r2,0(fp)
  809ac0:	e0800215 	stw	r2,8(fp)
  unsigned int base = sp->base;
  809ac4:	e0800217 	ldw	r2,8(fp)
  809ac8:	10800017 	ldw	r2,0(r2)
  809acc:	e0800315 	stw	r2,12(fp)

  /* 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);
  809ad0:	e0800317 	ldw	r2,12(fp)
  809ad4:	10800104 	addi	r2,r2,4
  809ad8:	10800037 	ldwio	r2,0(r2)
  809adc:	e0800415 	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)
  809ae0:	e0800417 	ldw	r2,16(fp)
  809ae4:	1080c00c 	andi	r2,r2,768
  809ae8:	1004c03a 	cmpne	r2,r2,zero
  809aec:	1000011e 	bne	r2,zero,809af4 <altera_avalon_jtag_uart_irq+0x4c>
      break;
  809af0:	00007006 	br	809cb4 <altera_avalon_jtag_uart_irq+0x20c>

    if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK)
  809af4:	e0800417 	ldw	r2,16(fp)
  809af8:	1004d23a 	srli	r2,r2,8
  809afc:	1080004c 	andi	r2,r2,1
  809b00:	1005003a 	cmpeq	r2,r2,zero
  809b04:	1000361e 	bne	r2,zero,809be0 <altera_avalon_jtag_uart_irq+0x138>
    {
      /* 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;
  809b08:	00800074 	movhi	r2,1
  809b0c:	10800004 	addi	r2,r2,0
  809b10:	e0800515 	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;
  809b14:	e0800217 	ldw	r2,8(fp)
  809b18:	10800a17 	ldw	r2,40(r2)
  809b1c:	10800044 	addi	r2,r2,1
  809b20:	1081ffcc 	andi	r2,r2,2047
  809b24:	e0800615 	stw	r2,24(fp)
        if (next == sp->rx_out)
  809b28:	e0800217 	ldw	r2,8(fp)
  809b2c:	10c00b17 	ldw	r3,44(r2)
  809b30:	e0800617 	ldw	r2,24(fp)
  809b34:	1880011e 	bne	r3,r2,809b3c <altera_avalon_jtag_uart_irq+0x94>
          break;
  809b38:	00001906 	br	809ba0 <altera_avalon_jtag_uart_irq+0xf8>

        /* 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);
  809b3c:	e0800317 	ldw	r2,12(fp)
  809b40:	10800037 	ldwio	r2,0(r2)
  809b44:	e0800515 	stw	r2,20(fp)
        
        if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0)
  809b48:	e0800517 	ldw	r2,20(fp)
  809b4c:	1004d3fa 	srli	r2,r2,15
  809b50:	1080005c 	xori	r2,r2,1
  809b54:	1080004c 	andi	r2,r2,1
  809b58:	1005003a 	cmpeq	r2,r2,zero
  809b5c:	1000011e 	bne	r2,zero,809b64 <altera_avalon_jtag_uart_irq+0xbc>
          break;
  809b60:	00000f06 	br	809ba0 <altera_avalon_jtag_uart_irq+0xf8>

        sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST;
  809b64:	e0c00217 	ldw	r3,8(fp)
  809b68:	e0800217 	ldw	r2,8(fp)
  809b6c:	10800a17 	ldw	r2,40(r2)
  809b70:	1885883a 	add	r2,r3,r2
  809b74:	10c00e04 	addi	r3,r2,56
  809b78:	e0800517 	ldw	r2,20(fp)
  809b7c:	18800005 	stb	r2,0(r3)
        sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN;
  809b80:	e0c00217 	ldw	r3,8(fp)
  809b84:	e0800217 	ldw	r2,8(fp)
  809b88:	10800a17 	ldw	r2,40(r2)
  809b8c:	10800044 	addi	r2,r2,1
  809b90:	1081ffcc 	andi	r2,r2,2047
  809b94:	18800a15 	stw	r2,40(r3)
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  809b98:	e0000715 	stw	zero,28(fp)
  809b9c:	003fdd06 	br	809b14 <altera_avalon_jtag_uart_irq+0x6c>

        /* 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);
      }

      if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK)
  809ba0:	e0800517 	ldw	r2,20(fp)
  809ba4:	10bfffec 	andhi	r2,r2,65535
  809ba8:	1005003a 	cmpeq	r2,r2,zero
  809bac:	10000c1e 	bne	r2,zero,809be0 <altera_avalon_jtag_uart_irq+0x138>
      {
        /* 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;
  809bb0:	e1000217 	ldw	r4,8(fp)
  809bb4:	e0800217 	ldw	r2,8(fp)
  809bb8:	10c00817 	ldw	r3,32(r2)
  809bbc:	00bfff84 	movi	r2,-2
  809bc0:	1884703a 	and	r2,r3,r2
  809bc4:	20800815 	stw	r2,32(r4)
        IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable);
  809bc8:	e0800317 	ldw	r2,12(fp)
  809bcc:	10800104 	addi	r2,r2,4
  809bd0:	1007883a 	mov	r3,r2
  809bd4:	e0800217 	ldw	r2,8(fp)
  809bd8:	10800817 	ldw	r2,32(r2)
  809bdc:	18800035 	stwio	r2,0(r3)
      }
    }

    if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)
  809be0:	e0800417 	ldw	r2,16(fp)
  809be4:	1004d27a 	srli	r2,r2,9
  809be8:	1080004c 	andi	r2,r2,1
  809bec:	1005003a 	cmpeq	r2,r2,zero
  809bf0:	103fb71e 	bne	r2,zero,809ad0 <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;
  809bf4:	e0800417 	ldw	r2,16(fp)
  809bf8:	10bfffec 	andhi	r2,r2,65535
  809bfc:	1004d43a 	srli	r2,r2,16
  809c00:	e0800715 	stw	r2,28(fp)

      while (space > 0 && sp->tx_out != sp->tx_in)
  809c04:	e0800717 	ldw	r2,28(fp)
  809c08:	1005003a 	cmpeq	r2,r2,zero
  809c0c:	1000181e 	bne	r2,zero,809c70 <altera_avalon_jtag_uart_irq+0x1c8>
  809c10:	e0800217 	ldw	r2,8(fp)
  809c14:	e0c00217 	ldw	r3,8(fp)
  809c18:	11000d17 	ldw	r4,52(r2)
  809c1c:	18800c17 	ldw	r2,48(r3)
  809c20:	20801326 	beq	r4,r2,809c70 <altera_avalon_jtag_uart_irq+0x1c8>
      {
        IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]);
  809c24:	e1000317 	ldw	r4,12(fp)
  809c28:	e0c00217 	ldw	r3,8(fp)
  809c2c:	e0800217 	ldw	r2,8(fp)
  809c30:	10800d17 	ldw	r2,52(r2)
  809c34:	1885883a 	add	r2,r3,r2
  809c38:	10820e04 	addi	r2,r2,2104
  809c3c:	10800007 	ldb	r2,0(r2)
  809c40:	20800035 	stwio	r2,0(r4)

        sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN;
  809c44:	e0c00217 	ldw	r3,8(fp)
  809c48:	e0800217 	ldw	r2,8(fp)
  809c4c:	10800d17 	ldw	r2,52(r2)
  809c50:	10800044 	addi	r2,r2,1
  809c54:	1081ffcc 	andi	r2,r2,2047
  809c58:	18800d15 	stw	r2,52(r3)
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  809c5c:	e0000615 	stw	zero,24(fp)

        /* 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--;
  809c60:	e0800717 	ldw	r2,28(fp)
  809c64:	10bfffc4 	addi	r2,r2,-1
  809c68:	e0800715 	stw	r2,28(fp)
  809c6c:	003fe506 	br	809c04 <altera_avalon_jtag_uart_irq+0x15c>
      }

      if (space > 0)
  809c70:	e0800717 	ldw	r2,28(fp)
  809c74:	1005003a 	cmpeq	r2,r2,zero
  809c78:	103f951e 	bne	r2,zero,809ad0 <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;
  809c7c:	e1000217 	ldw	r4,8(fp)
  809c80:	e0800217 	ldw	r2,8(fp)
  809c84:	10c00817 	ldw	r3,32(r2)
  809c88:	00bfff44 	movi	r2,-3
  809c8c:	1884703a 	and	r2,r3,r2
  809c90:	20800815 	stw	r2,32(r4)
        IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable);
  809c94:	e0800217 	ldw	r2,8(fp)
  809c98:	10800017 	ldw	r2,0(r2)
  809c9c:	10800104 	addi	r2,r2,4
  809ca0:	1007883a 	mov	r3,r2
  809ca4:	e0800217 	ldw	r2,8(fp)
  809ca8:	10800817 	ldw	r2,32(r2)
  809cac:	18800035 	stwio	r2,0(r3)
  809cb0:	003f8706 	br	809ad0 <altera_avalon_jtag_uart_irq+0x28>
      }
    }
  }
}
  809cb4:	df000817 	ldw	fp,32(sp)
  809cb8:	dec00904 	addi	sp,sp,36
  809cbc:	f800283a 	ret

00809cc0 <altera_avalon_jtag_uart_timeout>:

/*
 * Timeout routine is called every second
 */

static alt_u32 
altera_avalon_jtag_uart_timeout(void* context) 
{
  809cc0:	defffb04 	addi	sp,sp,-20
  809cc4:	df000415 	stw	fp,16(sp)
  809cc8:	d839883a 	mov	fp,sp
  809ccc:	e1000015 	stw	r4,0(fp)
  altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context;
  809cd0:	e0800017 	ldw	r2,0(fp)
  809cd4:	e0800115 	stw	r2,4(fp)

  unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base);
  809cd8:	e0800117 	ldw	r2,4(fp)
  809cdc:	10800017 	ldw	r2,0(r2)
  809ce0:	10800104 	addi	r2,r2,4
  809ce4:	10800037 	ldwio	r2,0(r2)
  809ce8:	e0800215 	stw	r2,8(fp)

  if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK)
  809cec:	e0800217 	ldw	r2,8(fp)
  809cf0:	1004d2ba 	srli	r2,r2,10
  809cf4:	1080004c 	andi	r2,r2,1
  809cf8:	1005003a 	cmpeq	r2,r2,zero
  809cfc:	10000b1e 	bne	r2,zero,809d2c <altera_avalon_jtag_uart_timeout+0x6c>
  {
    IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK);
  809d00:	e0800117 	ldw	r2,4(fp)
  809d04:	10800017 	ldw	r2,0(r2)
  809d08:	10800104 	addi	r2,r2,4
  809d0c:	1007883a 	mov	r3,r2
  809d10:	e0800117 	ldw	r2,4(fp)
  809d14:	10800817 	ldw	r2,32(r2)
  809d18:	10810014 	ori	r2,r2,1024
  809d1c:	18800035 	stwio	r2,0(r3)
    sp->host_inactive = 0;
  809d20:	e0800117 	ldw	r2,4(fp)
  809d24:	10000915 	stw	zero,36(r2)
  809d28:	00001006 	br	809d6c <altera_avalon_jtag_uart_timeout+0xac>
  }
  else if (sp->host_inactive < INT_MAX - 2) {
  809d2c:	e0800117 	ldw	r2,4(fp)
  809d30:	10c00917 	ldw	r3,36(r2)
  809d34:	00a00034 	movhi	r2,32768
  809d38:	10bfff04 	addi	r2,r2,-4
  809d3c:	10c00b36 	bltu	r2,r3,809d6c <altera_avalon_jtag_uart_timeout+0xac>
    sp->host_inactive++;
  809d40:	e0c00117 	ldw	r3,4(fp)
  809d44:	e0800117 	ldw	r2,4(fp)
  809d48:	10800917 	ldw	r2,36(r2)
  809d4c:	10800044 	addi	r2,r2,1
  809d50:	18800915 	stw	r2,36(r3)
    
    if (sp->host_inactive >= sp->timeout) {
  809d54:	e0800117 	ldw	r2,4(fp)
  809d58:	e0c00117 	ldw	r3,4(fp)
  809d5c:	11000917 	ldw	r4,36(r2)
  809d60:	18800117 	ldw	r2,4(r3)
  809d64:	20800136 	bltu	r4,r2,809d6c <altera_avalon_jtag_uart_timeout+0xac>
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  809d68:	e0000315 	stw	zero,12(fp)
 */

static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void)
{
  return _alt_tick_rate;
  809d6c:	d0a01817 	ldw	r2,-32672(gp)
  809d70:	e0800315 	stw	r2,12(fp)
  809d74:	e0800317 	ldw	r2,12(fp)
      /* Post an event to indicate host is inactive (for jtag_uart_read */
      ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET);
    }
  }

  return alt_ticks_per_second();
}
  809d78:	df000417 	ldw	fp,16(sp)
  809d7c:	dec00504 	addi	sp,sp,20
  809d80:	f800283a 	ret

00809d84 <altera_avalon_jtag_uart_ioctl>:

int 
altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req,
  void* arg)
{
  809d84:	defff704 	addi	sp,sp,-36
  809d88:	df000815 	stw	fp,32(sp)
  809d8c:	d839883a 	mov	fp,sp
  809d90:	e1000015 	stw	r4,0(fp)
  809d94:	e1400115 	stw	r5,4(fp)
  809d98:	e1800215 	stw	r6,8(fp)
  int rc = -ENOTTY;
  809d9c:	00bff9c4 	movi	r2,-25
  809da0:	e0800315 	stw	r2,12(fp)

  switch (req)
  809da4:	e0800117 	ldw	r2,4(fp)
  809da8:	e0800715 	stw	r2,28(fp)
  809dac:	e0c00717 	ldw	r3,28(fp)
  809db0:	189a8060 	cmpeqi	r2,r3,27137
  809db4:	1000041e 	bne	r2,zero,809dc8 <altera_avalon_jtag_uart_ioctl+0x44>
  809db8:	e0c00717 	ldw	r3,28(fp)
  809dbc:	189a80a0 	cmpeqi	r2,r3,27138
  809dc0:	10001d1e 	bne	r2,zero,809e38 <altera_avalon_jtag_uart_ioctl+0xb4>
  809dc4:	00002906 	br	809e6c <altera_avalon_jtag_uart_ioctl+0xe8>
  {
  case TIOCSTIMEOUT:
    /* Set the time to wait until assuming host is not connected */
    if (sp->timeout != INT_MAX)
  809dc8:	e0800017 	ldw	r2,0(fp)
  809dcc:	10c00117 	ldw	r3,4(r2)
  809dd0:	00a00034 	movhi	r2,32768
  809dd4:	10bfffc4 	addi	r2,r2,-1
  809dd8:	18802426 	beq	r3,r2,809e6c <altera_avalon_jtag_uart_ioctl+0xe8>
    {
      int timeout = *((int *)arg);
  809ddc:	e0800217 	ldw	r2,8(fp)
  809de0:	10800017 	ldw	r2,0(r2)
  809de4:	e0800415 	stw	r2,16(fp)
      sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1;
  809de8:	e0800017 	ldw	r2,0(fp)
  809dec:	e0800515 	stw	r2,20(fp)
  809df0:	e0800417 	ldw	r2,16(fp)
  809df4:	10800090 	cmplti	r2,r2,2
  809df8:	1000071e 	bne	r2,zero,809e18 <altera_avalon_jtag_uart_ioctl+0x94>
  809dfc:	e0c00417 	ldw	r3,16(fp)
  809e00:	00a00034 	movhi	r2,32768
  809e04:	10bfffc4 	addi	r2,r2,-1
  809e08:	18800326 	beq	r3,r2,809e18 <altera_avalon_jtag_uart_ioctl+0x94>
  809e0c:	e0c00417 	ldw	r3,16(fp)
  809e10:	e0c00615 	stw	r3,24(fp)
  809e14:	00000306 	br	809e24 <altera_avalon_jtag_uart_ioctl+0xa0>
  809e18:	00a00034 	movhi	r2,32768
  809e1c:	10bfff84 	addi	r2,r2,-2
  809e20:	e0800615 	stw	r2,24(fp)
  809e24:	e0c00617 	ldw	r3,24(fp)
  809e28:	e0800517 	ldw	r2,20(fp)
  809e2c:	10c00115 	stw	r3,4(r2)
      rc = 0;
  809e30:	e0000315 	stw	zero,12(fp)
    }
    break;
  809e34:	00000d06 	br	809e6c <altera_avalon_jtag_uart_ioctl+0xe8>

  case TIOCGCONNECTED:
    /* Find out whether host is connected */
    if (sp->timeout != INT_MAX)
  809e38:	e0800017 	ldw	r2,0(fp)
  809e3c:	10c00117 	ldw	r3,4(r2)
  809e40:	00a00034 	movhi	r2,32768
  809e44:	10bfffc4 	addi	r2,r2,-1
  809e48:	18800826 	beq	r3,r2,809e6c <altera_avalon_jtag_uart_ioctl+0xe8>
    {
      *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0;
  809e4c:	e1400217 	ldw	r5,8(fp)
  809e50:	e0800017 	ldw	r2,0(fp)
  809e54:	e0c00017 	ldw	r3,0(fp)
  809e58:	11000917 	ldw	r4,36(r2)
  809e5c:	18800117 	ldw	r2,4(r3)
  809e60:	2085803a 	cmpltu	r2,r4,r2
  809e64:	28800015 	stw	r2,0(r5)
      rc = 0;
  809e68:	e0000315 	stw	zero,12(fp)
    }
    break;

  default:
    break;
  }

  return rc;
  809e6c:	e0800317 	ldw	r2,12(fp)
}
  809e70:	df000817 	ldw	fp,32(sp)
  809e74:	dec00904 	addi	sp,sp,36
  809e78:	f800283a 	ret

00809e7c <altera_avalon_jtag_uart_read>:

int 
altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, 
  char * buffer, int space, int flags)
{
  809e7c:	defff204 	addi	sp,sp,-56
  809e80:	dfc00d15 	stw	ra,52(sp)
  809e84:	df000c15 	stw	fp,48(sp)
  809e88:	d839883a 	mov	fp,sp
  809e8c:	e1000015 	stw	r4,0(fp)
  809e90:	e1400115 	stw	r5,4(fp)
  809e94:	e1800215 	stw	r6,8(fp)
  809e98:	e1c00315 	stw	r7,12(fp)
  char * ptr = buffer;
  809e9c:	e0800117 	ldw	r2,4(fp)
  809ea0:	e0800415 	stw	r2,16(fp)
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  809ea4:	e0000715 	stw	zero,28(fp)

  alt_irq_context context;
  unsigned int n;

  /*
   * 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)
  809ea8:	e0800217 	ldw	r2,8(fp)
  809eac:	10800050 	cmplti	r2,r2,1
  809eb0:	10004c1e 	bne	r2,zero,809fe4 <altera_avalon_jtag_uart_read+0x168>
  {
    unsigned int in, out;

    /* Read as much data as possible */
    do
    {
      in  = sp->rx_in;
  809eb4:	e0800017 	ldw	r2,0(fp)
  809eb8:	10800a17 	ldw	r2,40(r2)
  809ebc:	e0800815 	stw	r2,32(fp)
      out = sp->rx_out;
  809ec0:	e0800017 	ldw	r2,0(fp)
  809ec4:	10800b17 	ldw	r2,44(r2)
  809ec8:	e0800915 	stw	r2,36(fp)

      if (in >= out)
  809ecc:	e0c00817 	ldw	r3,32(fp)
  809ed0:	e0800917 	ldw	r2,36(fp)
  809ed4:	18800536 	bltu	r3,r2,809eec <altera_avalon_jtag_uart_read+0x70>
        n = in - out;
  809ed8:	e0800817 	ldw	r2,32(fp)
  809edc:	e0c00917 	ldw	r3,36(fp)
  809ee0:	10c5c83a 	sub	r2,r2,r3
  809ee4:	e0800615 	stw	r2,24(fp)
  809ee8:	00000406 	br	809efc <altera_avalon_jtag_uart_read+0x80>
      else
        n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out;
  809eec:	00820004 	movi	r2,2048
  809ef0:	e0c00917 	ldw	r3,36(fp)
  809ef4:	10c5c83a 	sub	r2,r2,r3
  809ef8:	e0800615 	stw	r2,24(fp)

      if (n == 0)
  809efc:	e0800617 	ldw	r2,24(fp)
  809f00:	1004c03a 	cmpne	r2,r2,zero
  809f04:	1000011e 	bne	r2,zero,809f0c <altera_avalon_jtag_uart_read+0x90>
        break; /* No more data available */
  809f08:	00001e06 	br	809f84 <altera_avalon_jtag_uart_read+0x108>

      if (n > space)
  809f0c:	e0c00217 	ldw	r3,8(fp)
  809f10:	e0800617 	ldw	r2,24(fp)
  809f14:	1880022e 	bgeu	r3,r2,809f20 <altera_avalon_jtag_uart_read+0xa4>
        n = space;
  809f18:	e0800217 	ldw	r2,8(fp)
  809f1c:	e0800615 	stw	r2,24(fp)

      memcpy(ptr, sp->rx_buf + out, n);
  809f20:	e0c00017 	ldw	r3,0(fp)
  809f24:	e0800917 	ldw	r2,36(fp)
  809f28:	1885883a 	add	r2,r3,r2
  809f2c:	11400e04 	addi	r5,r2,56
  809f30:	e1000417 	ldw	r4,16(fp)
  809f34:	e1800617 	ldw	r6,24(fp)
  809f38:	08051740 	call	805174 <memcpy>
      ptr   += n;
  809f3c:	e0c00417 	ldw	r3,16(fp)
  809f40:	e0800617 	ldw	r2,24(fp)
  809f44:	1885883a 	add	r2,r3,r2
  809f48:	e0800415 	stw	r2,16(fp)
      space -= n;
  809f4c:	e0c00217 	ldw	r3,8(fp)
  809f50:	e0800617 	ldw	r2,24(fp)
  809f54:	1885c83a 	sub	r2,r3,r2
  809f58:	e0800215 	stw	r2,8(fp)

      sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN;
  809f5c:	e1000017 	ldw	r4,0(fp)
  809f60:	e0c00917 	ldw	r3,36(fp)
  809f64:	e0800617 	ldw	r2,24(fp)
  809f68:	1885883a 	add	r2,r3,r2
  809f6c:	1081ffcc 	andi	r2,r2,2047
  809f70:	20800b15 	stw	r2,44(r4)
    }
  809f74:	e0800217 	ldw	r2,8(fp)
  809f78:	10800050 	cmplti	r2,r2,1
  809f7c:	1000011e 	bne	r2,zero,809f84 <altera_avalon_jtag_uart_read+0x108>
  809f80:	003fcc06 	br	809eb4 <altera_avalon_jtag_uart_read+0x38>
    while (space > 0);

    /* If we read any data then return it */
    if (ptr != buffer)
  809f84:	e0c00417 	ldw	r3,16(fp)
  809f88:	e0800117 	ldw	r2,4(fp)
  809f8c:	18800126 	beq	r3,r2,809f94 <altera_avalon_jtag_uart_read+0x118>
      break;
  809f90:	00001406 	br	809fe4 <altera_avalon_jtag_uart_read+0x168>

    /* If in non-blocking mode then return error */
    if (flags & O_NONBLOCK)
  809f94:	e0800317 	ldw	r2,12(fp)
  809f98:	1004d3ba 	srli	r2,r2,14
  809f9c:	1080004c 	andi	r2,r2,1
  809fa0:	1005003a 	cmpeq	r2,r2,zero
  809fa4:	1000011e 	bne	r2,zero,809fac <altera_avalon_jtag_uart_read+0x130>
      break;
  809fa8:	00000e06 	br	809fe4 <altera_avalon_jtag_uart_read+0x168>

#ifdef __ucosii__
    /* OS Present: Pend on a flag if the OS is running, otherwise spin */
    if(OSRunning == OS_TRUE) {
      /*
       * When running in a multi-threaded mode, we pend on the read event
       * flag set and timeout event flag set in the isr. This avoids wasting CPU
       * cycles waiting in this thread, when we could be doing something more
       * profitable elsewhere.
       */
      ALT_FLAG_PEND (sp->events,
                     ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT,
                     OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME,
                     0);
    }
    else {
      /* Spin until more data arrives or until host disconnects */
      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)
  809fac:	e0800017 	ldw	r2,0(fp)
  809fb0:	10c00a17 	ldw	r3,40(r2)
  809fb4:	e0800817 	ldw	r2,32(fp)
  809fb8:	1880061e 	bne	r3,r2,809fd4 <altera_avalon_jtag_uart_read+0x158>
  809fbc:	e0800017 	ldw	r2,0(fp)
  809fc0:	e0c00017 	ldw	r3,0(fp)
  809fc4:	11000917 	ldw	r4,36(r2)
  809fc8:	18800117 	ldw	r2,4(r3)
  809fcc:	2080012e 	bgeu	r4,r2,809fd4 <altera_avalon_jtag_uart_read+0x158>
  809fd0:	003ff606 	br	809fac <altera_avalon_jtag_uart_read+0x130>
      ;
#endif /* __ucosii__ */

    if (in == sp->rx_in)
  809fd4:	e0800017 	ldw	r2,0(fp)
  809fd8:	10c00a17 	ldw	r3,40(r2)
  809fdc:	e0800817 	ldw	r2,32(fp)
  809fe0:	18bfb11e 	bne	r3,r2,809ea8 <altera_avalon_jtag_uart_read+0x2c>
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  809fe4:	e0000915 	stw	zero,36(fp)
      break;
  }

  /*
   * Now that access to the circular buffer is complete, release the read
   * semaphore so that other threads can access the buffer.
   */

  ALT_SEM_POST (sp->read_lock);

  if (ptr != buffer)
  809fe8:	e0c00417 	ldw	r3,16(fp)
  809fec:	e0800117 	ldw	r2,4(fp)
  809ff0:	18801726 	beq	r3,r2,80a050 <altera_avalon_jtag_uart_read+0x1d4>
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
  809ff4:	0005303a 	rdctl	r2,status
  809ff8:	e0800a15 	stw	r2,40(fp)
  NIOS2_WRITE_STATUS (0);
  809ffc:	0001703a 	wrctl	status,zero
  80a000:	e0800a17 	ldw	r2,40(fp)
  80a004:	e0800815 	stw	r2,32(fp)
  80a008:	e0800817 	ldw	r2,32(fp)
  80a00c:	e0800515 	stw	r2,20(fp)
  {
    /* If we read any data then there is space in the buffer so enable interrupts */
    context = alt_irq_disable_all();
    sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK;
  80a010:	e0c00017 	ldw	r3,0(fp)
  80a014:	e0800017 	ldw	r2,0(fp)
  80a018:	10800817 	ldw	r2,32(r2)
  80a01c:	10800054 	ori	r2,r2,1
  80a020:	18800815 	stw	r2,32(r3)
    IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable);
  80a024:	e0800017 	ldw	r2,0(fp)
  80a028:	10800017 	ldw	r2,0(r2)
  80a02c:	10800104 	addi	r2,r2,4
  80a030:	1007883a 	mov	r3,r2
  80a034:	e0800017 	ldw	r2,0(fp)
  80a038:	10800817 	ldw	r2,32(r2)
  80a03c:	18800035 	stwio	r2,0(r3)
 */

static ALT_INLINE void ALT_ALWAYS_INLINE 
       alt_irq_enable_all (alt_irq_context context)
{
  80a040:	e0800517 	ldw	r2,20(fp)
  80a044:	e0800a15 	stw	r2,40(fp)
  NIOS2_WRITE_STATUS (context);
  80a048:	e0800a17 	ldw	r2,40(fp)
  80a04c:	1001703a 	wrctl	status,r2
    alt_irq_enable_all(context);
  }

  if (ptr != buffer)
  80a050:	e0c00417 	ldw	r3,16(fp)
  80a054:	e0800117 	ldw	r2,4(fp)
  80a058:	18800526 	beq	r3,r2,80a070 <altera_avalon_jtag_uart_read+0x1f4>
    return ptr - buffer;
  80a05c:	e0800417 	ldw	r2,16(fp)
  80a060:	e0c00117 	ldw	r3,4(fp)
  80a064:	10c5c83a 	sub	r2,r2,r3
  80a068:	e0800b15 	stw	r2,44(fp)
  80a06c:	00000a06 	br	80a098 <altera_avalon_jtag_uart_read+0x21c>
  else if (flags & O_NONBLOCK)
  80a070:	e0800317 	ldw	r2,12(fp)
  80a074:	1004d3ba 	srli	r2,r2,14
  80a078:	1080004c 	andi	r2,r2,1
  80a07c:	1005003a 	cmpeq	r2,r2,zero
  80a080:	1000031e 	bne	r2,zero,80a090 <altera_avalon_jtag_uart_read+0x214>
    return -EWOULDBLOCK;
  80a084:	00bffd44 	movi	r2,-11
  80a088:	e0800b15 	stw	r2,44(fp)
  80a08c:	00000206 	br	80a098 <altera_avalon_jtag_uart_read+0x21c>
  else
    return -EIO;
  80a090:	00bffec4 	movi	r2,-5
  80a094:	e0800b15 	stw	r2,44(fp)
}
  80a098:	e0800b17 	ldw	r2,44(fp)
  80a09c:	dfc00d17 	ldw	ra,52(sp)
  80a0a0:	df000c17 	ldw	fp,48(sp)
  80a0a4:	dec00e04 	addi	sp,sp,56
  80a0a8:	f800283a 	ret

0080a0ac <altera_avalon_jtag_uart_write>:

int 
altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, 
  const char * ptr, int count, int flags)
{
  80a0ac:	defff104 	addi	sp,sp,-60
  80a0b0:	dfc00e15 	stw	ra,56(sp)
  80a0b4:	df000d15 	stw	fp,52(sp)
  80a0b8:	d839883a 	mov	fp,sp
  80a0bc:	e1000015 	stw	r4,0(fp)
  80a0c0:	e1400115 	stw	r5,4(fp)
  80a0c4:	e1800215 	stw	r6,8(fp)
  80a0c8:	e1c00315 	stw	r7,12(fp)
  /* Remove warning at optimisation level 03 by seting out to 0 */
  unsigned int in, out=0;
  80a0cc:	e0000515 	stw	zero,20(fp)
  unsigned int n;
  alt_irq_context context;

  const char * start = ptr;
  80a0d0:	e0800117 	ldw	r2,4(fp)
  80a0d4:	e0800815 	stw	r2,32(fp)
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  80a0d8:	e0000915 	stw	zero,36(fp)

  /*
   * When running in a multi threaded environment, obtain the "write_lock"
   * semaphore. This ensures that writing to the device is thread-safe.
   */
  ALT_SEM_PEND (sp->write_lock, 0);

  do
  {
    /* Copy as much as we can into the transmit buffer */
    while (count > 0)
  80a0dc:	e0800217 	ldw	r2,8(fp)
  80a0e0:	10800050 	cmplti	r2,r2,1
  80a0e4:	10003a1e 	bne	r2,zero,80a1d0 <altera_avalon_jtag_uart_write+0x124>
    {
      /* We need a stable value of the out pointer to calculate the space available */
      in  = sp->tx_in;
  80a0e8:	e0800017 	ldw	r2,0(fp)
  80a0ec:	10800c17 	ldw	r2,48(r2)
  80a0f0:	e0800415 	stw	r2,16(fp)
      out = sp->tx_out;
  80a0f4:	e0800017 	ldw	r2,0(fp)
  80a0f8:	10800d17 	ldw	r2,52(r2)
  80a0fc:	e0800515 	stw	r2,20(fp)

      if (in < out)
  80a100:	e0c00417 	ldw	r3,16(fp)
  80a104:	e0800517 	ldw	r2,20(fp)
  80a108:	1880062e 	bgeu	r3,r2,80a124 <altera_avalon_jtag_uart_write+0x78>
        n = out - 1 - in;
  80a10c:	e0c00517 	ldw	r3,20(fp)
  80a110:	e0800417 	ldw	r2,16(fp)
  80a114:	1885c83a 	sub	r2,r3,r2
  80a118:	10bfffc4 	addi	r2,r2,-1
  80a11c:	e0800615 	stw	r2,24(fp)
  80a120:	00000c06 	br	80a154 <altera_avalon_jtag_uart_write+0xa8>
      else if (out > 0)
  80a124:	e0800517 	ldw	r2,20(fp)
  80a128:	1005003a 	cmpeq	r2,r2,zero
  80a12c:	1000051e 	bne	r2,zero,80a144 <altera_avalon_jtag_uart_write+0x98>
        n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in;
  80a130:	00820004 	movi	r2,2048
  80a134:	e0c00417 	ldw	r3,16(fp)
  80a138:	10c5c83a 	sub	r2,r2,r3
  80a13c:	e0800615 	stw	r2,24(fp)
  80a140:	00000406 	br	80a154 <altera_avalon_jtag_uart_write+0xa8>
      else
        n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in;
  80a144:	0081ffc4 	movi	r2,2047
  80a148:	e0c00417 	ldw	r3,16(fp)
  80a14c:	10c5c83a 	sub	r2,r2,r3
  80a150:	e0800615 	stw	r2,24(fp)

      if (n == 0)
  80a154:	e0800617 	ldw	r2,24(fp)
  80a158:	1004c03a 	cmpne	r2,r2,zero
  80a15c:	1000011e 	bne	r2,zero,80a164 <altera_avalon_jtag_uart_write+0xb8>
        break;
  80a160:	00001b06 	br	80a1d0 <altera_avalon_jtag_uart_write+0x124>

      if (n > count)
  80a164:	e0c00217 	ldw	r3,8(fp)
  80a168:	e0800617 	ldw	r2,24(fp)
  80a16c:	1880022e 	bgeu	r3,r2,80a178 <altera_avalon_jtag_uart_write+0xcc>
        n = count;
  80a170:	e0800217 	ldw	r2,8(fp)
  80a174:	e0800615 	stw	r2,24(fp)

      memcpy(sp->tx_buf + in, ptr, n);
  80a178:	e0c00017 	ldw	r3,0(fp)
  80a17c:	e0800417 	ldw	r2,16(fp)
  80a180:	1885883a 	add	r2,r3,r2
  80a184:	11020e04 	addi	r4,r2,2104
  80a188:	e1400117 	ldw	r5,4(fp)
  80a18c:	e1800617 	ldw	r6,24(fp)
  80a190:	08051740 	call	805174 <memcpy>
      ptr   += n;
  80a194:	e0c00117 	ldw	r3,4(fp)
  80a198:	e0800617 	ldw	r2,24(fp)
  80a19c:	1885883a 	add	r2,r3,r2
  80a1a0:	e0800115 	stw	r2,4(fp)
      count -= n;
  80a1a4:	e0c00217 	ldw	r3,8(fp)
  80a1a8:	e0800617 	ldw	r2,24(fp)
  80a1ac:	1885c83a 	sub	r2,r3,r2
  80a1b0:	e0800215 	stw	r2,8(fp)

      sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN;
  80a1b4:	e1000017 	ldw	r4,0(fp)
  80a1b8:	e0c00417 	ldw	r3,16(fp)
  80a1bc:	e0800617 	ldw	r2,24(fp)
  80a1c0:	1885883a 	add	r2,r3,r2
  80a1c4:	1081ffcc 	andi	r2,r2,2047
  80a1c8:	20800c15 	stw	r2,48(r4)
  80a1cc:	003fc306 	br	80a0dc <altera_avalon_jtag_uart_write+0x30>
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
  80a1d0:	0005303a 	rdctl	r2,status
  80a1d4:	e0800b15 	stw	r2,44(fp)
  NIOS2_WRITE_STATUS (0);
  80a1d8:	0001703a 	wrctl	status,zero
  80a1dc:	e0800b17 	ldw	r2,44(fp)
  80a1e0:	e0800a15 	stw	r2,40(fp)
  80a1e4:	e0800a17 	ldw	r2,40(fp)
  80a1e8:	e0800715 	stw	r2,28(fp)
    }

    /*
     * TODO: if interrupts are disabled then we could transmit here, we only need 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();
    sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK;
  80a1ec:	e0c00017 	ldw	r3,0(fp)
  80a1f0:	e0800017 	ldw	r2,0(fp)
  80a1f4:	10800817 	ldw	r2,32(r2)
  80a1f8:	10800094 	ori	r2,r2,2
  80a1fc:	18800815 	stw	r2,32(r3)
    IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable);
  80a200:	e0800017 	ldw	r2,0(fp)
  80a204:	10800017 	ldw	r2,0(r2)
  80a208:	10800104 	addi	r2,r2,4
  80a20c:	1007883a 	mov	r3,r2
  80a210:	e0800017 	ldw	r2,0(fp)
  80a214:	10800817 	ldw	r2,32(r2)
  80a218:	18800035 	stwio	r2,0(r3)
 */

static ALT_INLINE void ALT_ALWAYS_INLINE 
       alt_irq_enable_all (alt_irq_context context)
{
  80a21c:	e0800717 	ldw	r2,28(fp)
  80a220:	e0800b15 	stw	r2,44(fp)
  NIOS2_WRITE_STATUS (context);
  80a224:	e0800b17 	ldw	r2,44(fp)
  80a228:	1001703a 	wrctl	status,r2
    alt_irq_enable_all(context);

    /* If there is any data left then either return now or block until some has been sent */
    /* TODO: test whether there is anything there while doing this and delay for at most 2s. */
    if (count > 0)
  80a22c:	e0800217 	ldw	r2,8(fp)
  80a230:	10800050 	cmplti	r2,r2,1
  80a234:	1000151e 	bne	r2,zero,80a28c <altera_avalon_jtag_uart_write+0x1e0>
    {
      if (flags & O_NONBLOCK)
  80a238:	e0800317 	ldw	r2,12(fp)
  80a23c:	1004d3ba 	srli	r2,r2,14
  80a240:	1080004c 	andi	r2,r2,1
  80a244:	1005003a 	cmpeq	r2,r2,zero
  80a248:	1000011e 	bne	r2,zero,80a250 <altera_avalon_jtag_uart_write+0x1a4>
        break;
  80a24c:	00001306 	br	80a29c <altera_avalon_jtag_uart_write+0x1f0>

#ifdef __ucosii__
      /* OS Present: Pend on a flag if the OS is running, otherwise spin */
      if(OSRunning == OS_TRUE) {
        /*
         * When running in a multi-threaded mode, we pend on the write event
         * flag set or the timeout flag in the isr. This avoids wasting CPU
         * cycles waiting in this thread, when we could be doing something
         * more profitable elsewhere.
         */
        ALT_FLAG_PEND (sp->events,
                       ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT,
                       OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME,
                       0);
      }
      else {
        /*
         * OS not running: 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)
          ;
      }
#else
      /*
       * 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)
  80a250:	e0800017 	ldw	r2,0(fp)
  80a254:	10c00d17 	ldw	r3,52(r2)
  80a258:	e0800517 	ldw	r2,20(fp)
  80a25c:	1880061e 	bne	r3,r2,80a278 <altera_avalon_jtag_uart_write+0x1cc>
  80a260:	e0800017 	ldw	r2,0(fp)
  80a264:	e0c00017 	ldw	r3,0(fp)
  80a268:	11000917 	ldw	r4,36(r2)
  80a26c:	18800117 	ldw	r2,4(r3)
  80a270:	2080012e 	bgeu	r4,r2,80a278 <altera_avalon_jtag_uart_write+0x1cc>
  80a274:	003ff606 	br	80a250 <altera_avalon_jtag_uart_write+0x1a4>
        ;
#endif /* __ucosii__ */

      if (out == sp->tx_out)
  80a278:	e0800017 	ldw	r2,0(fp)
  80a27c:	10c00d17 	ldw	r3,52(r2)
  80a280:	e0800517 	ldw	r2,20(fp)
  80a284:	1880011e 	bne	r3,r2,80a28c <altera_avalon_jtag_uart_write+0x1e0>
        break;
  80a288:	00000406 	br	80a29c <altera_avalon_jtag_uart_write+0x1f0>
    }
  }
  80a28c:	e0800217 	ldw	r2,8(fp)
  80a290:	10800050 	cmplti	r2,r2,1
  80a294:	1000011e 	bne	r2,zero,80a29c <altera_avalon_jtag_uart_write+0x1f0>
  80a298:	003f9006 	br	80a0dc <altera_avalon_jtag_uart_write+0x30>
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  80a29c:	e0000b15 	stw	zero,44(fp)
  while (count > 0);

  /*
   * 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)
  80a2a0:	e0c00117 	ldw	r3,4(fp)
  80a2a4:	e0800817 	ldw	r2,32(fp)
  80a2a8:	18800526 	beq	r3,r2,80a2c0 <altera_avalon_jtag_uart_write+0x214>
    return ptr - start;
  80a2ac:	e0800117 	ldw	r2,4(fp)
  80a2b0:	e0c00817 	ldw	r3,32(fp)
  80a2b4:	10c5c83a 	sub	r2,r2,r3
  80a2b8:	e0800c15 	stw	r2,48(fp)
  80a2bc:	00000a06 	br	80a2e8 <altera_avalon_jtag_uart_write+0x23c>
  else if (flags & O_NONBLOCK)
  80a2c0:	e0800317 	ldw	r2,12(fp)
  80a2c4:	1004d3ba 	srli	r2,r2,14
  80a2c8:	1080004c 	andi	r2,r2,1
  80a2cc:	1005003a 	cmpeq	r2,r2,zero
  80a2d0:	1000031e 	bne	r2,zero,80a2e0 <altera_avalon_jtag_uart_write+0x234>
    return -EWOULDBLOCK;
  80a2d4:	00bffd44 	movi	r2,-11
  80a2d8:	e0800c15 	stw	r2,48(fp)
  80a2dc:	00000206 	br	80a2e8 <altera_avalon_jtag_uart_write+0x23c>
  else
    return -EIO; /* Host not connected */
  80a2e0:	00bffec4 	movi	r2,-5
  80a2e4:	e0800c15 	stw	r2,48(fp)
}
  80a2e8:	e0800c17 	ldw	r2,48(fp)
  80a2ec:	dfc00e17 	ldw	ra,56(sp)
  80a2f0:	df000d17 	ldw	fp,52(sp)
  80a2f4:	dec00f04 	addi	sp,sp,60
  80a2f8:	f800283a 	ret

0080a2fc <lcd_write_command>:
/* --------------------------------------------------------------------- */

static void lcd_write_command(altera_avalon_lcd_16207_state* sp, 
  unsigned char command)
{
  80a2fc:	defffa04 	addi	sp,sp,-24
  80a300:	dfc00515 	stw	ra,20(sp)
  80a304:	df000415 	stw	fp,16(sp)
  80a308:	d839883a 	mov	fp,sp
  80a30c:	e1000015 	stw	r4,0(fp)
  80a310:	e1400105 	stb	r5,4(fp)
  unsigned int base = sp->base;
  80a314:	e0800017 	ldw	r2,0(fp)
  80a318:	10800017 	ldw	r2,0(r2)
  80a31c:	e0800215 	stw	r2,8(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;
  80a320:	008003f4 	movhi	r2,15
  80a324:	10909004 	addi	r2,r2,16960
  80a328:	e0800315 	stw	r2,12(fp)

  /* Don't bother if the LCD panel didn't work before */
  if (sp->broken)
  80a32c:	e0800017 	ldw	r2,0(fp)
  80a330:	10800807 	ldb	r2,32(r2)
  80a334:	1005003a 	cmpeq	r2,r2,zero
  80a338:	1000011e 	bne	r2,zero,80a340 <lcd_write_command+0x44>
    return;
  80a33c:	00001506 	br	80a394 <lcd_write_command+0x98>

  /* Wait until LCD isn't busy. */
  while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK)
  80a340:	e0800217 	ldw	r2,8(fp)
  80a344:	10800104 	addi	r2,r2,4
  80a348:	10800037 	ldwio	r2,0(r2)
  80a34c:	1004d1fa 	srli	r2,r2,7
  80a350:	1080004c 	andi	r2,r2,1
  80a354:	1005003a 	cmpeq	r2,r2,zero
  80a358:	1000091e 	bne	r2,zero,80a380 <lcd_write_command+0x84>
    if (--i == 0)
  80a35c:	e0800317 	ldw	r2,12(fp)
  80a360:	10bfffc4 	addi	r2,r2,-1
  80a364:	e0800315 	stw	r2,12(fp)
  80a368:	1004c03a 	cmpne	r2,r2,zero
  80a36c:	103ff41e 	bne	r2,zero,80a340 <lcd_write_command+0x44>
    {
      sp->broken = 1;
  80a370:	e0c00017 	ldw	r3,0(fp)
  80a374:	00800044 	movi	r2,1
  80a378:	18800805 	stb	r2,32(r3)
      return;
  80a37c:	00000506 	br	80a394 <lcd_write_command+0x98>
    }

  /* 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);
  80a380:	01001904 	movi	r4,100
  80a384:	080bb440 	call	80bb44 <usleep>

  IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, command);
  80a388:	e0c00217 	ldw	r3,8(fp)
  80a38c:	e0800103 	ldbu	r2,4(fp)
  80a390:	18800035 	stwio	r2,0(r3)
}
  80a394:	dfc00517 	ldw	ra,20(sp)
  80a398:	df000417 	ldw	fp,16(sp)
  80a39c:	dec00604 	addi	sp,sp,24
  80a3a0:	f800283a 	ret

0080a3a4 <lcd_write_data>:

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

static void lcd_write_data(altera_avalon_lcd_16207_state* sp, 
  unsigned char data)
{
  80a3a4:	defffa04 	addi	sp,sp,-24
  80a3a8:	dfc00515 	stw	ra,20(sp)
  80a3ac:	df000415 	stw	fp,16(sp)
  80a3b0:	d839883a 	mov	fp,sp
  80a3b4:	e1000015 	stw	r4,0(fp)
  80a3b8:	e1400105 	stb	r5,4(fp)
  unsigned int base = sp->base;
  80a3bc:	e0800017 	ldw	r2,0(fp)
  80a3c0:	10800017 	ldw	r2,0(r2)
  80a3c4:	e0800215 	stw	r2,8(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;
  80a3c8:	008003f4 	movhi	r2,15
  80a3cc:	10909004 	addi	r2,r2,16960
  80a3d0:	e0800315 	stw	r2,12(fp)

  /* Don't bother if the LCD panel didn't work before */
  if (sp->broken)
  80a3d4:	e0800017 	ldw	r2,0(fp)
  80a3d8:	10800807 	ldb	r2,32(r2)
  80a3dc:	1005003a 	cmpeq	r2,r2,zero
  80a3e0:	1000011e 	bne	r2,zero,80a3e8 <lcd_write_data+0x44>
    return;
  80a3e4:	00001c06 	br	80a458 <lcd_write_data+0xb4>

  /* Wait until LCD isn't busy. */
  while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK)
  80a3e8:	e0800217 	ldw	r2,8(fp)
  80a3ec:	10800104 	addi	r2,r2,4
  80a3f0:	10800037 	ldwio	r2,0(r2)
  80a3f4:	1004d1fa 	srli	r2,r2,7
  80a3f8:	1080004c 	andi	r2,r2,1
  80a3fc:	1005003a 	cmpeq	r2,r2,zero
  80a400:	1000091e 	bne	r2,zero,80a428 <lcd_write_data+0x84>
    if (--i == 0)
  80a404:	e0800317 	ldw	r2,12(fp)
  80a408:	10bfffc4 	addi	r2,r2,-1
  80a40c:	e0800315 	stw	r2,12(fp)
  80a410:	1004c03a 	cmpne	r2,r2,zero
  80a414:	103ff41e 	bne	r2,zero,80a3e8 <lcd_write_data+0x44>
    {
      sp->broken = 1;
  80a418:	e0c00017 	ldw	r3,0(fp)
  80a41c:	00800044 	movi	r2,1
  80a420:	18800805 	stb	r2,32(r3)
      return;
  80a424:	00000c06 	br	80a458 <lcd_write_data+0xb4>
    }

  /* 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);
  80a428:	01001904 	movi	r4,100
  80a42c:	080bb440 	call	80bb44 <usleep>

  IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data);
  80a430:	e0800217 	ldw	r2,8(fp)
  80a434:	10800204 	addi	r2,r2,8
  80a438:	1007883a 	mov	r3,r2
  80a43c:	e0800103 	ldbu	r2,4(fp)
  80a440:	18800035 	stwio	r2,0(r3)

  sp->address++;
  80a444:	e0c00017 	ldw	r3,0(fp)
  80a448:	e0800017 	ldw	r2,0(fp)
  80a44c:	108008c3 	ldbu	r2,35(r2)
  80a450:	10800044 	addi	r2,r2,1
  80a454:	188008c5 	stb	r2,35(r3)
}
  80a458:	dfc00517 	ldw	ra,20(sp)
  80a45c:	df000417 	ldw	fp,16(sp)
  80a460:	dec00604 	addi	sp,sp,24
  80a464:	f800283a 	ret

0080a468 <lcd_clear_screen>:

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

static void lcd_clear_screen(altera_avalon_lcd_16207_state* sp)
{
  80a468:	defffc04 	addi	sp,sp,-16
  80a46c:	dfc00315 	stw	ra,12(sp)
  80a470:	df000215 	stw	fp,8(sp)
  80a474:	d839883a 	mov	fp,sp
  80a478:	e1000015 	stw	r4,0(fp)
  int y;

  lcd_write_command(sp, LCD_CMD_CLEAR);
  80a47c:	e1000017 	ldw	r4,0(fp)
  80a480:	01400044 	movi	r5,1
  80a484:	080a2fc0 	call	80a2fc <lcd_write_command>

  sp->x = 0;
  80a488:	e0800017 	ldw	r2,0(fp)
  80a48c:	10000845 	stb	zero,33(r2)
  sp->y = 0;
  80a490:	e0800017 	ldw	r2,0(fp)
  80a494:	10000885 	stb	zero,34(r2)
  sp->address = 0;
  80a498:	e0800017 	ldw	r2,0(fp)
  80a49c:	100008c5 	stb	zero,35(r2)

  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
  80a4a0:	e0000115 	stw	zero,4(fp)
  80a4a4:	e0800117 	ldw	r2,4(fp)
  80a4a8:	10800088 	cmpgei	r2,r2,2
  80a4ac:	10001a1e 	bne	r2,zero,80a518 <lcd_clear_screen+0xb0>
  {
    memset(sp->line[y].data, ' ', sizeof(sp->line[0].data));
  80a4b0:	e0800117 	ldw	r2,4(fp)
  80a4b4:	10c018e4 	muli	r3,r2,99
  80a4b8:	e0800017 	ldw	r2,0(fp)
  80a4bc:	1885883a 	add	r2,r3,r2
  80a4c0:	11001004 	addi	r4,r2,64
  80a4c4:	01400804 	movi	r5,32
  80a4c8:	01801444 	movi	r6,81
  80a4cc:	08053380 	call	805338 <memset>
    memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible));
  80a4d0:	e0800117 	ldw	r2,4(fp)
  80a4d4:	10c018e4 	muli	r3,r2,99
  80a4d8:	e0800017 	ldw	r2,0(fp)
  80a4dc:	1885883a 	add	r2,r3,r2
  80a4e0:	11000c04 	addi	r4,r2,48
  80a4e4:	01400804 	movi	r5,32
  80a4e8:	01800404 	movi	r6,16
  80a4ec:	08053380 	call	805338 <memset>
    sp->line[y].width = 0;
  80a4f0:	e0c00017 	ldw	r3,0(fp)
  80a4f4:	e0800117 	ldw	r2,4(fp)
  80a4f8:	108018e4 	muli	r2,r2,99
  80a4fc:	10c5883a 	add	r2,r2,r3
  80a500:	10802404 	addi	r2,r2,144
  80a504:	10000045 	stb	zero,1(r2)
  80a508:	e0800117 	ldw	r2,4(fp)
  80a50c:	10800044 	addi	r2,r2,1
  80a510:	e0800115 	stw	r2,4(fp)
  80a514:	003fe306 	br	80a4a4 <lcd_clear_screen+0x3c>
  }
}
  80a518:	dfc00317 	ldw	ra,12(sp)
  80a51c:	df000217 	ldw	fp,8(sp)
  80a520:	dec00404 	addi	sp,sp,16
  80a524:	f800283a 	ret

0080a528 <lcd_repaint_screen>:

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

static void lcd_repaint_screen(altera_avalon_lcd_16207_state* sp)
{
  80a528:	defff604 	addi	sp,sp,-40
  80a52c:	dfc00915 	stw	ra,36(sp)
  80a530:	df000815 	stw	fp,32(sp)
  80a534:	dc000715 	stw	r16,28(sp)
  80a538:	d839883a 	mov	fp,sp
  80a53c:	e1000015 	stw	r4,0(fp)
  int y, x;

  /* 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;
  80a540:	e0800017 	ldw	r2,0(fp)
  80a544:	10800947 	ldb	r2,37(r2)
  80a548:	e0800315 	stw	r2,12(fp)

  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
  80a54c:	e0000115 	stw	zero,4(fp)
  80a550:	e0800117 	ldw	r2,4(fp)
  80a554:	10800088 	cmpgei	r2,r2,2
  80a558:	10005a1e 	bne	r2,zero,80a6c4 <lcd_repaint_screen+0x19c>
  {
    int width  = sp->line[y].width;
  80a55c:	e0c00017 	ldw	r3,0(fp)
  80a560:	e0800117 	ldw	r2,4(fp)
  80a564:	108018e4 	muli	r2,r2,99
  80a568:	10c5883a 	add	r2,r2,r3
  80a56c:	10802404 	addi	r2,r2,144
  80a570:	10800047 	ldb	r2,1(r2)
  80a574:	e0800415 	stw	r2,16(fp)
    int offset = (scrollpos * sp->line[y].speed) >> 8;
  80a578:	e0c00017 	ldw	r3,0(fp)
  80a57c:	e0800117 	ldw	r2,4(fp)
  80a580:	108018e4 	muli	r2,r2,99
  80a584:	10c5883a 	add	r2,r2,r3
  80a588:	10802404 	addi	r2,r2,144
  80a58c:	10c00083 	ldbu	r3,2(r2)
  80a590:	e0800317 	ldw	r2,12(fp)
  80a594:	1885383a 	mul	r2,r3,r2
  80a598:	1005d23a 	srai	r2,r2,8
  80a59c:	e0800515 	stw	r2,20(fp)
    if (offset >= width)
  80a5a0:	e0c00517 	ldw	r3,20(fp)
  80a5a4:	e0800417 	ldw	r2,16(fp)
  80a5a8:	18800116 	blt	r3,r2,80a5b0 <lcd_repaint_screen+0x88>
      offset = 0;
  80a5ac:	e0000515 	stw	zero,20(fp)

    for (x = 0 ; x < ALT_LCD_WIDTH ; x++)
  80a5b0:	e0000215 	stw	zero,8(fp)
  80a5b4:	e0800217 	ldw	r2,8(fp)
  80a5b8:	10800408 	cmpgei	r2,r2,16
  80a5bc:	10003d1e 	bne	r2,zero,80a6b4 <lcd_repaint_screen+0x18c>
    {
      char c = sp->line[y].data[(x + offset) % width];
  80a5c0:	e4000017 	ldw	r16,0(fp)
  80a5c4:	e0c00217 	ldw	r3,8(fp)
  80a5c8:	e0800517 	ldw	r2,20(fp)
  80a5cc:	1889883a 	add	r4,r3,r2
  80a5d0:	e1400417 	ldw	r5,16(fp)
  80a5d4:	08087c80 	call	8087c8 <__modsi3>
  80a5d8:	1007883a 	mov	r3,r2
  80a5dc:	e0800117 	ldw	r2,4(fp)
  80a5e0:	108018e4 	muli	r2,r2,99
  80a5e4:	1405883a 	add	r2,r2,r16
  80a5e8:	10c5883a 	add	r2,r2,r3
  80a5ec:	10801004 	addi	r2,r2,64
  80a5f0:	10800003 	ldbu	r2,0(r2)
  80a5f4:	e0800605 	stb	r2,24(fp)

      /* Writing data takes 40us, so don't do it unless required */
      if (sp->line[y].visible[x] != c)
  80a5f8:	e0c00017 	ldw	r3,0(fp)
  80a5fc:	e0800117 	ldw	r2,4(fp)
  80a600:	108018e4 	muli	r2,r2,99
  80a604:	10c7883a 	add	r3,r2,r3
  80a608:	e0800217 	ldw	r2,8(fp)
  80a60c:	1885883a 	add	r2,r3,r2
  80a610:	10800c04 	addi	r2,r2,48
  80a614:	10c00007 	ldb	r3,0(r2)
  80a618:	e0800607 	ldb	r2,24(fp)
  80a61c:	18802126 	beq	r3,r2,80a6a4 <lcd_repaint_screen+0x17c>
      {
        unsigned char address = x + colstart[y];
  80a620:	e0c00117 	ldw	r3,4(fp)
  80a624:	d0a01504 	addi	r2,gp,-32684
  80a628:	1885883a 	add	r2,r3,r2
  80a62c:	e0c00217 	ldw	r3,8(fp)
  80a630:	11000003 	ldbu	r4,0(r2)
  80a634:	1805883a 	mov	r2,r3
  80a638:	2085883a 	add	r2,r4,r2
  80a63c:	e0800645 	stb	r2,25(fp)

        if (address != sp->address)
  80a640:	e0c00643 	ldbu	r3,25(fp)
  80a644:	e0800017 	ldw	r2,0(fp)
  80a648:	108008c7 	ldb	r2,35(r2)
  80a64c:	18800926 	beq	r3,r2,80a674 <lcd_repaint_screen+0x14c>
        {
          lcd_write_command(sp, LCD_CMD_WRITE_DATA | address);
  80a650:	e0c00643 	ldbu	r3,25(fp)
  80a654:	00bfe004 	movi	r2,-128
  80a658:	1884b03a 	or	r2,r3,r2
  80a65c:	11403fcc 	andi	r5,r2,255
  80a660:	e1000017 	ldw	r4,0(fp)
  80a664:	080a2fc0 	call	80a2fc <lcd_write_command>
          sp->address = address;
  80a668:	e0c00017 	ldw	r3,0(fp)
  80a66c:	e0800643 	ldbu	r2,25(fp)
  80a670:	188008c5 	stb	r2,35(r3)
        }

        lcd_write_data(sp, c);
  80a674:	e1400603 	ldbu	r5,24(fp)
  80a678:	e1000017 	ldw	r4,0(fp)
  80a67c:	080a3a40 	call	80a3a4 <lcd_write_data>
        sp->line[y].visible[x] = c;
  80a680:	e0c00017 	ldw	r3,0(fp)
  80a684:	e0800117 	ldw	r2,4(fp)
  80a688:	108018e4 	muli	r2,r2,99
  80a68c:	10c7883a 	add	r3,r2,r3
  80a690:	e0800217 	ldw	r2,8(fp)
  80a694:	1885883a 	add	r2,r3,r2
  80a698:	10c00c04 	addi	r3,r2,48
  80a69c:	e0800603 	ldbu	r2,24(fp)
  80a6a0:	18800005 	stb	r2,0(r3)
  80a6a4:	e0800217 	ldw	r2,8(fp)
  80a6a8:	10800044 	addi	r2,r2,1
  80a6ac:	e0800215 	stw	r2,8(fp)
  80a6b0:	003fc006 	br	80a5b4 <lcd_repaint_screen+0x8c>
  80a6b4:	e0800117 	ldw	r2,4(fp)
  80a6b8:	10800044 	addi	r2,r2,1
  80a6bc:	e0800115 	stw	r2,4(fp)
  80a6c0:	003fa306 	br	80a550 <lcd_repaint_screen+0x28>
      }
    }
  }
}
  80a6c4:	dfc00917 	ldw	ra,36(sp)
  80a6c8:	df000817 	ldw	fp,32(sp)
  80a6cc:	dc000717 	ldw	r16,28(sp)
  80a6d0:	dec00a04 	addi	sp,sp,40
  80a6d4:	f800283a 	ret

0080a6d8 <lcd_scroll_up>:

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

static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp)
{
  80a6d8:	defffc04 	addi	sp,sp,-16
  80a6dc:	dfc00315 	stw	ra,12(sp)
  80a6e0:	df000215 	stw	fp,8(sp)
  80a6e4:	d839883a 	mov	fp,sp
  80a6e8:	e1000015 	stw	r4,0(fp)
  int y;

  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
  80a6ec:	e0000115 	stw	zero,4(fp)
  80a6f0:	e0800117 	ldw	r2,4(fp)
  80a6f4:	10800088 	cmpgei	r2,r2,2
  80a6f8:	10001c1e 	bne	r2,zero,80a76c <lcd_scroll_up+0x94>
  {
    if (y < ALT_LCD_HEIGHT-1)
  80a6fc:	e0800117 	ldw	r2,4(fp)
  80a700:	10800048 	cmpgei	r2,r2,1
  80a704:	10000d1e 	bne	r2,zero,80a73c <lcd_scroll_up+0x64>
      memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH);
  80a708:	e0800117 	ldw	r2,4(fp)
  80a70c:	10c018e4 	muli	r3,r2,99
  80a710:	e0800017 	ldw	r2,0(fp)
  80a714:	1885883a 	add	r2,r3,r2
  80a718:	11001004 	addi	r4,r2,64
  80a71c:	e0800117 	ldw	r2,4(fp)
  80a720:	10c018e4 	muli	r3,r2,99
  80a724:	e0800017 	ldw	r2,0(fp)
  80a728:	1885883a 	add	r2,r3,r2
  80a72c:	114028c4 	addi	r5,r2,163
  80a730:	01801404 	movi	r6,80
  80a734:	08051740 	call	805174 <memcpy>
  80a738:	00000806 	br	80a75c <lcd_scroll_up+0x84>
    else
      memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH);
  80a73c:	e0800117 	ldw	r2,4(fp)
  80a740:	10c018e4 	muli	r3,r2,99
  80a744:	e0800017 	ldw	r2,0(fp)
  80a748:	1885883a 	add	r2,r3,r2
  80a74c:	11001004 	addi	r4,r2,64
  80a750:	01400804 	movi	r5,32
  80a754:	01801404 	movi	r6,80
  80a758:	08053380 	call	805338 <memset>
  80a75c:	e0800117 	ldw	r2,4(fp)
  80a760:	10800044 	addi	r2,r2,1
  80a764:	e0800115 	stw	r2,4(fp)
  80a768:	003fe106 	br	80a6f0 <lcd_scroll_up+0x18>
  }

  sp->y--;
  80a76c:	e0c00017 	ldw	r3,0(fp)
  80a770:	e0800017 	ldw	r2,0(fp)
  80a774:	10800883 	ldbu	r2,34(r2)
  80a778:	10bfffc4 	addi	r2,r2,-1
  80a77c:	18800885 	stb	r2,34(r3)
}
  80a780:	dfc00317 	ldw	ra,12(sp)
  80a784:	df000217 	ldw	fp,8(sp)
  80a788:	dec00404 	addi	sp,sp,16
  80a78c:	f800283a 	ret

0080a790 <lcd_handle_escape>:

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

static void lcd_handle_escape(altera_avalon_lcd_16207_state* sp, char c)
{
  80a790:	defff804 	addi	sp,sp,-32
  80a794:	dfc00715 	stw	ra,28(sp)
  80a798:	df000615 	stw	fp,24(sp)
  80a79c:	d839883a 	mov	fp,sp
  80a7a0:	e1000015 	stw	r4,0(fp)
  80a7a4:	e1400105 	stb	r5,4(fp)
  int parm1 = 0, parm2 = 0;
  80a7a8:	e0000215 	stw	zero,8(fp)
  80a7ac:	e0000315 	stw	zero,12(fp)

  if (sp->escape[0] == '[')
  80a7b0:	e0800017 	ldw	r2,0(fp)
  80a7b4:	10800a07 	ldb	r2,40(r2)
  80a7b8:	108016d8 	cmpnei	r2,r2,91
  80a7bc:	1000361e 	bne	r2,zero,80a898 <lcd_handle_escape+0x108>
  {
    char * ptr = sp->escape+1;
  80a7c0:	e0800017 	ldw	r2,0(fp)
  80a7c4:	10800a44 	addi	r2,r2,41
  80a7c8:	e0800415 	stw	r2,16(fp)
    while (isdigit(*ptr))
  80a7cc:	e0800417 	ldw	r2,16(fp)
  80a7d0:	10c00007 	ldb	r3,0(r2)
  80a7d4:	00802074 	movhi	r2,129
  80a7d8:	10b1c404 	addi	r2,r2,-14576
  80a7dc:	1885883a 	add	r2,r3,r2
  80a7e0:	10800003 	ldbu	r2,0(r2)
  80a7e4:	1004d0ba 	srli	r2,r2,2
  80a7e8:	1080004c 	andi	r2,r2,1
  80a7ec:	1005003a 	cmpeq	r2,r2,zero
  80a7f0:	10000c1e 	bne	r2,zero,80a824 <lcd_handle_escape+0x94>
      parm1 = (parm1 * 10) + (*ptr++ - '0');
  80a7f4:	e0800217 	ldw	r2,8(fp)
  80a7f8:	110002a4 	muli	r4,r2,10
  80a7fc:	e1400404 	addi	r5,fp,16
  80a800:	28c00017 	ldw	r3,0(r5)
  80a804:	1805883a 	mov	r2,r3
  80a808:	10800007 	ldb	r2,0(r2)
  80a80c:	2085883a 	add	r2,r4,r2
  80a810:	10bff404 	addi	r2,r2,-48
  80a814:	18c00044 	addi	r3,r3,1
  80a818:	28c00015 	stw	r3,0(r5)
  80a81c:	e0800215 	stw	r2,8(fp)
  80a820:	003fea06 	br	80a7cc <lcd_handle_escape+0x3c>

    if (*ptr == ';')
  80a824:	e0800417 	ldw	r2,16(fp)
  80a828:	10800007 	ldb	r2,0(r2)
  80a82c:	10800ed8 	cmpnei	r2,r2,59
  80a830:	10001b1e 	bne	r2,zero,80a8a0 <lcd_handle_escape+0x110>
    {
      ptr++;
  80a834:	e0800417 	ldw	r2,16(fp)
  80a838:	10800044 	addi	r2,r2,1
  80a83c:	e0800415 	stw	r2,16(fp)
      while (isdigit(*ptr))
  80a840:	e0800417 	ldw	r2,16(fp)
  80a844:	10c00007 	ldb	r3,0(r2)
  80a848:	00802074 	movhi	r2,129
  80a84c:	10b1c404 	addi	r2,r2,-14576
  80a850:	1885883a 	add	r2,r3,r2
  80a854:	10800003 	ldbu	r2,0(r2)
  80a858:	1004d0ba 	srli	r2,r2,2
  80a85c:	1080004c 	andi	r2,r2,1
  80a860:	1005003a 	cmpeq	r2,r2,zero
  80a864:	10000e1e 	bne	r2,zero,80a8a0 <lcd_handle_escape+0x110>
        parm2 = (parm2 * 10) + (*ptr++ - '0');
  80a868:	e0800317 	ldw	r2,12(fp)
  80a86c:	110002a4 	muli	r4,r2,10
  80a870:	e1400404 	addi	r5,fp,16
  80a874:	28c00017 	ldw	r3,0(r5)
  80a878:	1805883a 	mov	r2,r3
  80a87c:	10800007 	ldb	r2,0(r2)
  80a880:	2085883a 	add	r2,r4,r2
  80a884:	10bff404 	addi	r2,r2,-48
  80a888:	18c00044 	addi	r3,r3,1
  80a88c:	28c00015 	stw	r3,0(r5)
  80a890:	e0800315 	stw	r2,12(fp)
  80a894:	003fea06 	br	80a840 <lcd_handle_escape+0xb0>
    }
  }
  else
    parm1 = -1;
  80a898:	00bfffc4 	movi	r2,-1
  80a89c:	e0800215 	stw	r2,8(fp)

  switch (c)
  80a8a0:	e0800107 	ldb	r2,4(fp)
  80a8a4:	e0800515 	stw	r2,20(fp)
  80a8a8:	e0c00517 	ldw	r3,20(fp)
  80a8ac:	188012a0 	cmpeqi	r2,r3,74
  80a8b0:	10002a1e 	bne	r2,zero,80a95c <lcd_handle_escape+0x1cc>
  80a8b4:	e0c00517 	ldw	r3,20(fp)
  80a8b8:	188012c8 	cmpgei	r2,r3,75
  80a8bc:	1000041e 	bne	r2,zero,80a8d0 <lcd_handle_escape+0x140>
  80a8c0:	e0c00517 	ldw	r3,20(fp)
  80a8c4:	18801220 	cmpeqi	r2,r3,72
  80a8c8:	1000081e 	bne	r2,zero,80a8ec <lcd_handle_escape+0x15c>
  80a8cc:	00003f06 	br	80a9cc <lcd_handle_escape+0x23c>
  80a8d0:	e0c00517 	ldw	r3,20(fp)
  80a8d4:	188012e0 	cmpeqi	r2,r3,75
  80a8d8:	1000261e 	bne	r2,zero,80a974 <lcd_handle_escape+0x1e4>
  80a8dc:	e0c00517 	ldw	r3,20(fp)
  80a8e0:	188019a0 	cmpeqi	r2,r3,102
  80a8e4:	1000011e 	bne	r2,zero,80a8ec <lcd_handle_escape+0x15c>
  80a8e8:	00003806 	br	80a9cc <lcd_handle_escape+0x23c>
  {
  case 'H': /* ESC '[' <y> ';' <x> 'H'  : Move cursor to location */
  case 'f': /* Same as above */
    if (parm2 > 0)
  80a8ec:	e0800317 	ldw	r2,12(fp)
  80a8f0:	10800050 	cmplti	r2,r2,1
  80a8f4:	1000041e 	bne	r2,zero,80a908 <lcd_handle_escape+0x178>
      sp->x = parm2 - 1;
  80a8f8:	e0c00017 	ldw	r3,0(fp)
  80a8fc:	e0800317 	ldw	r2,12(fp)
  80a900:	10bfffc4 	addi	r2,r2,-1
  80a904:	18800845 	stb	r2,33(r3)
    if (parm1 > 0)
  80a908:	e0800217 	ldw	r2,8(fp)
  80a90c:	10800050 	cmplti	r2,r2,1
  80a910:	10002e1e 	bne	r2,zero,80a9cc <lcd_handle_escape+0x23c>
    {
      sp->y = parm1 - 1;
  80a914:	e0c00017 	ldw	r3,0(fp)
  80a918:	e0800217 	ldw	r2,8(fp)
  80a91c:	10bfffc4 	addi	r2,r2,-1
  80a920:	18800885 	stb	r2,34(r3)
      if (sp->y > ALT_LCD_HEIGHT * 2)
  80a924:	e0800017 	ldw	r2,0(fp)
  80a928:	10800883 	ldbu	r2,34(r2)
  80a92c:	10800170 	cmpltui	r2,r2,5
  80a930:	1000031e 	bne	r2,zero,80a940 <lcd_handle_escape+0x1b0>
        sp->y = ALT_LCD_HEIGHT * 2;
  80a934:	e0c00017 	ldw	r3,0(fp)
  80a938:	00800104 	movi	r2,4
  80a93c:	18800885 	stb	r2,34(r3)
      while (sp->y > ALT_LCD_HEIGHT)
  80a940:	e0800017 	ldw	r2,0(fp)
  80a944:	10800883 	ldbu	r2,34(r2)
  80a948:	108000f0 	cmpltui	r2,r2,3
  80a94c:	10001f1e 	bne	r2,zero,80a9cc <lcd_handle_escape+0x23c>
        lcd_scroll_up(sp);
  80a950:	e1000017 	ldw	r4,0(fp)
  80a954:	080a6d80 	call	80a6d8 <lcd_scroll_up>
  80a958:	003ff906 	br	80a940 <lcd_handle_escape+0x1b0>
    }
    break;

  case 'J':
    /*   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)
  80a95c:	e0800217 	ldw	r2,8(fp)
  80a960:	10800098 	cmpnei	r2,r2,2
  80a964:	1000191e 	bne	r2,zero,80a9cc <lcd_handle_escape+0x23c>
      lcd_clear_screen(sp);
  80a968:	e1000017 	ldw	r4,0(fp)
  80a96c:	080a4680 	call	80a468 <lcd_clear_screen>
    break;
  80a970:	00001606 	br	80a9cc <lcd_handle_escape+0x23c>

  case 'K':
    /*   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)
  80a974:	e0800217 	ldw	r2,8(fp)
  80a978:	10800048 	cmpgei	r2,r2,1
  80a97c:	1000131e 	bne	r2,zero,80a9cc <lcd_handle_escape+0x23c>
    {
      if (sp->x < ALT_LCD_VIRTUAL_WIDTH)
  80a980:	e0800017 	ldw	r2,0(fp)
  80a984:	10800843 	ldbu	r2,33(r2)
  80a988:	10801428 	cmpgeui	r2,r2,80
  80a98c:	10000f1e 	bne	r2,zero,80a9cc <lcd_handle_escape+0x23c>
        memset(sp->line[sp->y].data + sp->x, ' ', ALT_LCD_VIRTUAL_WIDTH - sp->x);
  80a990:	e0800017 	ldw	r2,0(fp)
  80a994:	10800883 	ldbu	r2,34(r2)
  80a998:	10c018e4 	muli	r3,r2,99
  80a99c:	e0800017 	ldw	r2,0(fp)
  80a9a0:	1887883a 	add	r3,r3,r2
  80a9a4:	e0800017 	ldw	r2,0(fp)
  80a9a8:	10800843 	ldbu	r2,33(r2)
  80a9ac:	1885883a 	add	r2,r3,r2
  80a9b0:	11001004 	addi	r4,r2,64
  80a9b4:	e0800017 	ldw	r2,0(fp)
  80a9b8:	10c00843 	ldbu	r3,33(r2)
  80a9bc:	00801404 	movi	r2,80
  80a9c0:	10cdc83a 	sub	r6,r2,r3
  80a9c4:	01400804 	movi	r5,32
  80a9c8:	08053380 	call	805338 <memset>
    }
    break;
  }
}
  80a9cc:	dfc00717 	ldw	ra,28(sp)
  80a9d0:	df000617 	ldw	fp,24(sp)
  80a9d4:	dec00804 	addi	sp,sp,32
  80a9d8:	f800283a 	ret

0080a9dc <altera_avalon_lcd_16207_write>:

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

int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, 
  const char* ptr, int len, int flags)
{
  80a9dc:	defff304 	addi	sp,sp,-52
  80a9e0:	dfc00c15 	stw	ra,48(sp)
  80a9e4:	df000b15 	stw	fp,44(sp)
  80a9e8:	dc000a15 	stw	r16,40(sp)
  80a9ec:	d839883a 	mov	fp,sp
  80a9f0:	e1000015 	stw	r4,0(fp)
  80a9f4:	e1400115 	stw	r5,4(fp)
  80a9f8:	e1800215 	stw	r6,8(fp)
  80a9fc:	e1c00315 	stw	r7,12(fp)
  const char* end = ptr + len;
  80aa00:	e0c00117 	ldw	r3,4(fp)
  80aa04:	e0800217 	ldw	r2,8(fp)
  80aa08:	1885883a 	add	r2,r3,r2
  80aa0c:	e0800415 	stw	r2,16(fp)
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  80aa10:	e0000715 	stw	zero,28(fp)

  int y;
  int widthmax;

  /* When running in a multi threaded environment, obtain the "write_lock"
   * semaphore. This ensures that writing to the device is thread-safe.
   */

  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;
  80aa14:	e0c00017 	ldw	r3,0(fp)
  80aa18:	00800044 	movi	r2,1
  80aa1c:	188009c5 	stb	r2,39(r3)

  for ( ; ptr < end ; ptr++)
  80aa20:	e0c00117 	ldw	r3,4(fp)
  80aa24:	e0800417 	ldw	r2,16(fp)
  80aa28:	18808c2e 	bgeu	r3,r2,80ac5c <altera_avalon_lcd_16207_write+0x280>
  {
    char c = *ptr;
  80aa2c:	e0800117 	ldw	r2,4(fp)
  80aa30:	10800003 	ldbu	r2,0(r2)
  80aa34:	e0800805 	stb	r2,32(fp)

    if (sp->esccount >= 0)
  80aa38:	e0800017 	ldw	r2,0(fp)
  80aa3c:	10800907 	ldb	r2,36(r2)
  80aa40:	1004803a 	cmplt	r2,r2,zero
  80aa44:	1000351e 	bne	r2,zero,80ab1c <altera_avalon_lcd_16207_write+0x140>
    {
      unsigned int esccount = sp->esccount;
  80aa48:	e0800017 	ldw	r2,0(fp)
  80aa4c:	10800907 	ldb	r2,36(r2)
  80aa50:	e0800915 	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 != '[') ||
  80aa54:	e0800917 	ldw	r2,36(fp)
  80aa58:	1004c03a 	cmpne	r2,r2,zero
  80aa5c:	1000031e 	bne	r2,zero,80aa6c <altera_avalon_lcd_16207_write+0x90>
  80aa60:	e0800807 	ldb	r2,32(fp)
  80aa64:	108016d8 	cmpnei	r2,r2,91
  80aa68:	1000101e 	bne	r2,zero,80aaac <altera_avalon_lcd_16207_write+0xd0>
  80aa6c:	e0800917 	ldw	r2,36(fp)
  80aa70:	1005003a 	cmpeq	r2,r2,zero
  80aa74:	1000191e 	bne	r2,zero,80aadc <altera_avalon_lcd_16207_write+0x100>
  80aa78:	e0c00807 	ldb	r3,32(fp)
  80aa7c:	00802074 	movhi	r2,129
  80aa80:	10b1c404 	addi	r2,r2,-14576
  80aa84:	1885883a 	add	r2,r3,r2
  80aa88:	10800003 	ldbu	r2,0(r2)
  80aa8c:	1004d0ba 	srli	r2,r2,2
  80aa90:	1080004c 	andi	r2,r2,1
  80aa94:	1004c03a 	cmpne	r2,r2,zero
  80aa98:	1000101e 	bne	r2,zero,80aadc <altera_avalon_lcd_16207_write+0x100>
  80aa9c:	e0800807 	ldb	r2,32(fp)
  80aaa0:	10800ed8 	cmpnei	r2,r2,59
  80aaa4:	1000011e 	bne	r2,zero,80aaac <altera_avalon_lcd_16207_write+0xd0>
  80aaa8:	00000c06 	br	80aadc <altera_avalon_lcd_16207_write+0x100>
          (esccount > 0 && !isdigit(c) && c != ';'))
      {
        sp->escape[esccount] = 0;
  80aaac:	e0c00017 	ldw	r3,0(fp)
  80aab0:	e0800917 	ldw	r2,36(fp)
  80aab4:	1885883a 	add	r2,r3,r2
  80aab8:	10800a04 	addi	r2,r2,40
  80aabc:	10000005 	stb	zero,0(r2)

        lcd_handle_escape(sp, c);
  80aac0:	e1400807 	ldb	r5,32(fp)
  80aac4:	e1000017 	ldw	r4,0(fp)
  80aac8:	080a7900 	call	80a790 <lcd_handle_escape>

        sp->esccount = -1;
  80aacc:	e0c00017 	ldw	r3,0(fp)
  80aad0:	00bfffc4 	movi	r2,-1
  80aad4:	18800905 	stb	r2,36(r3)
  80aad8:	00005c06 	br	80ac4c <altera_avalon_lcd_16207_write+0x270>
      }
      else if (sp->esccount < sizeof(sp->escape)-1)
  80aadc:	e0800017 	ldw	r2,0(fp)
  80aae0:	10800903 	ldbu	r2,36(r2)
  80aae4:	108001e8 	cmpgeui	r2,r2,7
  80aae8:	1000581e 	bne	r2,zero,80ac4c <altera_avalon_lcd_16207_write+0x270>
      {
        sp->escape[esccount] = c;
  80aaec:	e0c00017 	ldw	r3,0(fp)
  80aaf0:	e0800917 	ldw	r2,36(fp)
  80aaf4:	1885883a 	add	r2,r3,r2
  80aaf8:	10c00a04 	addi	r3,r2,40
  80aafc:	e0800803 	ldbu	r2,32(fp)
  80ab00:	18800005 	stb	r2,0(r3)
        sp->esccount++;
  80ab04:	e0c00017 	ldw	r3,0(fp)
  80ab08:	e0800017 	ldw	r2,0(fp)
  80ab0c:	10800903 	ldbu	r2,36(r2)
  80ab10:	10800044 	addi	r2,r2,1
  80ab14:	18800905 	stb	r2,36(r3)
  80ab18:	00004c06 	br	80ac4c <altera_avalon_lcd_16207_write+0x270>
      }
    }
    else if (c == 27) /* ESC */
  80ab1c:	e0800807 	ldb	r2,32(fp)
  80ab20:	108006d8 	cmpnei	r2,r2,27
  80ab24:	1000031e 	bne	r2,zero,80ab34 <altera_avalon_lcd_16207_write+0x158>
    {
      sp->esccount = 0;
  80ab28:	e0800017 	ldw	r2,0(fp)
  80ab2c:	10000905 	stb	zero,36(r2)
  80ab30:	00004606 	br	80ac4c <altera_avalon_lcd_16207_write+0x270>
    }
    else if (c == '\r')
  80ab34:	e0800807 	ldb	r2,32(fp)
  80ab38:	10800358 	cmpnei	r2,r2,13
  80ab3c:	1000031e 	bne	r2,zero,80ab4c <altera_avalon_lcd_16207_write+0x170>
    {
      sp->x = 0;
  80ab40:	e0800017 	ldw	r2,0(fp)
  80ab44:	10000845 	stb	zero,33(r2)
  80ab48:	00004006 	br	80ac4c <altera_avalon_lcd_16207_write+0x270>
    }
    else if (c == '\n')
  80ab4c:	e0800807 	ldb	r2,32(fp)
  80ab50:	10800298 	cmpnei	r2,r2,10
  80ab54:	10000e1e 	bne	r2,zero,80ab90 <altera_avalon_lcd_16207_write+0x1b4>
    {
      sp->x = 0;
  80ab58:	e0800017 	ldw	r2,0(fp)
  80ab5c:	10000845 	stb	zero,33(r2)
      sp->y++;
  80ab60:	e0c00017 	ldw	r3,0(fp)
  80ab64:	e0800017 	ldw	r2,0(fp)
  80ab68:	10800883 	ldbu	r2,34(r2)
  80ab6c:	10800044 	addi	r2,r2,1
  80ab70:	18800885 	stb	r2,34(r3)

      /* 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)
  80ab74:	e0800017 	ldw	r2,0(fp)
  80ab78:	10800883 	ldbu	r2,34(r2)
  80ab7c:	108000f0 	cmpltui	r2,r2,3
  80ab80:	1000321e 	bne	r2,zero,80ac4c <altera_avalon_lcd_16207_write+0x270>
        lcd_scroll_up(sp);
  80ab84:	e1000017 	ldw	r4,0(fp)
  80ab88:	080a6d80 	call	80a6d8 <lcd_scroll_up>
  80ab8c:	00002f06 	br	80ac4c <altera_avalon_lcd_16207_write+0x270>
    }
    else if (c == '\b')
  80ab90:	e0800807 	ldb	r2,32(fp)
  80ab94:	10800218 	cmpnei	r2,r2,8
  80ab98:	10000a1e 	bne	r2,zero,80abc4 <altera_avalon_lcd_16207_write+0x1e8>
    {
      if (sp->x > 0)
  80ab9c:	e0800017 	ldw	r2,0(fp)
  80aba0:	10800843 	ldbu	r2,33(r2)
  80aba4:	1005003a 	cmpeq	r2,r2,zero
  80aba8:	1000281e 	bne	r2,zero,80ac4c <altera_avalon_lcd_16207_write+0x270>
        sp->x--;
  80abac:	e0c00017 	ldw	r3,0(fp)
  80abb0:	e0800017 	ldw	r2,0(fp)
  80abb4:	10800843 	ldbu	r2,33(r2)
  80abb8:	10bfffc4 	addi	r2,r2,-1
  80abbc:	18800845 	stb	r2,33(r3)
  80abc0:	00002206 	br	80ac4c <altera_avalon_lcd_16207_write+0x270>
    }
    else if (isprint(c))
  80abc4:	e0c00807 	ldb	r3,32(fp)
  80abc8:	00802074 	movhi	r2,129
  80abcc:	10b1c404 	addi	r2,r2,-14576
  80abd0:	1885883a 	add	r2,r3,r2
  80abd4:	10800007 	ldb	r2,0(r2)
  80abd8:	108025cc 	andi	r2,r2,151
  80abdc:	1005003a 	cmpeq	r2,r2,zero
  80abe0:	10001a1e 	bne	r2,zero,80ac4c <altera_avalon_lcd_16207_write+0x270>
    {
      /* If we didn't scroll on the last linefeed then we might need to do
       * it now. */
      if (sp->y >= ALT_LCD_HEIGHT)
  80abe4:	e0800017 	ldw	r2,0(fp)
  80abe8:	10800883 	ldbu	r2,34(r2)
  80abec:	108000b0 	cmpltui	r2,r2,2
  80abf0:	1000021e 	bne	r2,zero,80abfc <altera_avalon_lcd_16207_write+0x220>
        lcd_scroll_up(sp);
  80abf4:	e1000017 	ldw	r4,0(fp)
  80abf8:	080a6d80 	call	80a6d8 <lcd_scroll_up>

      if (sp->x < ALT_LCD_VIRTUAL_WIDTH)
  80abfc:	e0800017 	ldw	r2,0(fp)
  80ac00:	10800843 	ldbu	r2,33(r2)
  80ac04:	10801428 	cmpgeui	r2,r2,80
  80ac08:	10000b1e 	bne	r2,zero,80ac38 <altera_avalon_lcd_16207_write+0x25c>
        sp->line[sp->y].data[sp->x] = c;
  80ac0c:	e1000017 	ldw	r4,0(fp)
  80ac10:	e0800017 	ldw	r2,0(fp)
  80ac14:	10c00843 	ldbu	r3,33(r2)
  80ac18:	e0800017 	ldw	r2,0(fp)
  80ac1c:	10800883 	ldbu	r2,34(r2)
  80ac20:	108018e4 	muli	r2,r2,99
  80ac24:	1105883a 	add	r2,r2,r4
  80ac28:	10c5883a 	add	r2,r2,r3
  80ac2c:	10c01004 	addi	r3,r2,64
  80ac30:	e0800803 	ldbu	r2,32(fp)
  80ac34:	18800005 	stb	r2,0(r3)

      sp->x++;
  80ac38:	e0c00017 	ldw	r3,0(fp)
  80ac3c:	e0800017 	ldw	r2,0(fp)
  80ac40:	10800843 	ldbu	r2,33(r2)
  80ac44:	10800044 	addi	r2,r2,1
  80ac48:	18800845 	stb	r2,33(r3)
  80ac4c:	e0800117 	ldw	r2,4(fp)
  80ac50:	10800044 	addi	r2,r2,1
  80ac54:	e0800115 	stw	r2,4(fp)
  80ac58:	003f7106 	br	80aa20 <altera_avalon_lcd_16207_write+0x44>
    }
  }

  /* Recalculate the scrolling parameters */
  widthmax = ALT_LCD_WIDTH;
  80ac5c:	00800404 	movi	r2,16
  80ac60:	e0800615 	stw	r2,24(fp)
  for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
  80ac64:	e0000515 	stw	zero,20(fp)
  80ac68:	e0800517 	ldw	r2,20(fp)
  80ac6c:	10800088 	cmpgei	r2,r2,2
  80ac70:	1000331e 	bne	r2,zero,80ad40 <altera_avalon_lcd_16207_write+0x364>
  {
    int width;
    for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--)
  80ac74:	00801404 	movi	r2,80
  80ac78:	e0800915 	stw	r2,36(fp)
  80ac7c:	e0800917 	ldw	r2,36(fp)
  80ac80:	10800050 	cmplti	r2,r2,1
  80ac84:	10000f1e 	bne	r2,zero,80acc4 <altera_avalon_lcd_16207_write+0x2e8>
      if (sp->line[y].data[width-1] != ' ')
  80ac88:	e0c00017 	ldw	r3,0(fp)
  80ac8c:	e0800517 	ldw	r2,20(fp)
  80ac90:	108018e4 	muli	r2,r2,99
  80ac94:	10c7883a 	add	r3,r2,r3
  80ac98:	e0800917 	ldw	r2,36(fp)
  80ac9c:	1885883a 	add	r2,r3,r2
  80aca0:	10800fc4 	addi	r2,r2,63
  80aca4:	10800007 	ldb	r2,0(r2)
  80aca8:	10800820 	cmpeqi	r2,r2,32
  80acac:	1000011e 	bne	r2,zero,80acb4 <altera_avalon_lcd_16207_write+0x2d8>
        break;
  80acb0:	00000406 	br	80acc4 <altera_avalon_lcd_16207_write+0x2e8>
  80acb4:	e0800917 	ldw	r2,36(fp)
  80acb8:	10bfffc4 	addi	r2,r2,-1
  80acbc:	e0800915 	stw	r2,36(fp)
  80acc0:	003fee06 	br	80ac7c <altera_avalon_lcd_16207_write+0x2a0>

    /* 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)
  80acc4:	e0800917 	ldw	r2,36(fp)
  80acc8:	10800448 	cmpgei	r2,r2,17
  80accc:	1000031e 	bne	r2,zero,80acdc <altera_avalon_lcd_16207_write+0x300>
      width = ALT_LCD_WIDTH;
  80acd0:	00800404 	movi	r2,16
  80acd4:	e0800915 	stw	r2,36(fp)
  80acd8:	00000306 	br	80ace8 <altera_avalon_lcd_16207_write+0x30c>
    else
      width++;
  80acdc:	e0800917 	ldw	r2,36(fp)
  80ace0:	10800044 	addi	r2,r2,1
  80ace4:	e0800915 	stw	r2,36(fp)

    sp->line[y].width = width;
  80ace8:	e0c00017 	ldw	r3,0(fp)
  80acec:	e0800517 	ldw	r2,20(fp)
  80acf0:	108018e4 	muli	r2,r2,99
  80acf4:	10c5883a 	add	r2,r2,r3
  80acf8:	10c02404 	addi	r3,r2,144
  80acfc:	e0800917 	ldw	r2,36(fp)
  80ad00:	18800045 	stb	r2,1(r3)
    if (widthmax < width)
  80ad04:	e0c00617 	ldw	r3,24(fp)
  80ad08:	e0800917 	ldw	r2,36(fp)
  80ad0c:	1880020e 	bge	r3,r2,80ad18 <altera_avalon_lcd_16207_write+0x33c>
      widthmax = width;
  80ad10:	e0800917 	ldw	r2,36(fp)
  80ad14:	e0800615 	stw	r2,24(fp)
    sp->line[y].speed = 0; /* By default lines don't scroll */
  80ad18:	e0c00017 	ldw	r3,0(fp)
  80ad1c:	e0800517 	ldw	r2,20(fp)
  80ad20:	108018e4 	muli	r2,r2,99
  80ad24:	10c5883a 	add	r2,r2,r3
  80ad28:	10802404 	addi	r2,r2,144
  80ad2c:	10000085 	stb	zero,2(r2)
  80ad30:	e0800517 	ldw	r2,20(fp)
  80ad34:	10800044 	addi	r2,r2,1
  80ad38:	e0800515 	stw	r2,20(fp)
  80ad3c:	003fca06 	br	80ac68 <altera_avalon_lcd_16207_write+0x28c>
  }

  if (widthmax <= ALT_LCD_WIDTH)
  80ad40:	e0800617 	ldw	r2,24(fp)
  80ad44:	10800448 	cmpgei	r2,r2,17
  80ad48:	1000031e 	bne	r2,zero,80ad58 <altera_avalon_lcd_16207_write+0x37c>
    sp->scrollmax = 0;
  80ad4c:	e0800017 	ldw	r2,0(fp)
  80ad50:	10000985 	stb	zero,38(r2)
  80ad54:	00002606 	br	80adf0 <altera_avalon_lcd_16207_write+0x414>
  else
  {
    widthmax *= 2;
  80ad58:	e0c00617 	ldw	r3,24(fp)
  80ad5c:	1805883a 	mov	r2,r3
  80ad60:	10c5883a 	add	r2,r2,r3
  80ad64:	e0800615 	stw	r2,24(fp)
    sp->scrollmax = widthmax;
  80ad68:	e0c00017 	ldw	r3,0(fp)
  80ad6c:	e0800617 	ldw	r2,24(fp)
  80ad70:	18800985 	stb	r2,38(r3)

    /* Now calculate how fast each of the other lines should go */
    for (y = 0 ; y < ALT_LCD_HEIGHT ; y++)
  80ad74:	e0000515 	stw	zero,20(fp)
  80ad78:	e0800517 	ldw	r2,20(fp)
  80ad7c:	10800088 	cmpgei	r2,r2,2
  80ad80:	10001b1e 	bne	r2,zero,80adf0 <altera_avalon_lcd_16207_write+0x414>
      if (sp->line[y].width > ALT_LCD_WIDTH)
  80ad84:	e0c00017 	ldw	r3,0(fp)
  80ad88:	e0800517 	ldw	r2,20(fp)
  80ad8c:	108018e4 	muli	r2,r2,99
  80ad90:	10c5883a 	add	r2,r2,r3
  80ad94:	10802404 	addi	r2,r2,144
  80ad98:	10800047 	ldb	r2,1(r2)
  80ad9c:	10800450 	cmplti	r2,r2,17
  80ada0:	10000f1e 	bne	r2,zero,80ade0 <altera_avalon_lcd_16207_write+0x404>
      {
        /* You have three options for how to make the display scroll, chosen
         * using the preprocessor directives below
         */
#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;
  80ada4:	e0c00017 	ldw	r3,0(fp)
  80ada8:	e0800517 	ldw	r2,20(fp)
  80adac:	108018e4 	muli	r2,r2,99
  80adb0:	10c5883a 	add	r2,r2,r3
  80adb4:	14002404 	addi	r16,r2,144
  80adb8:	e0c00017 	ldw	r3,0(fp)
  80adbc:	e0800517 	ldw	r2,20(fp)
  80adc0:	108018e4 	muli	r2,r2,99
  80adc4:	10c5883a 	add	r2,r2,r3
  80adc8:	10802404 	addi	r2,r2,144
  80adcc:	10800047 	ldb	r2,1(r2)
  80add0:	11004024 	muli	r4,r2,256
  80add4:	e1400617 	ldw	r5,24(fp)
  80add8:	08087780 	call	808778 <__divsi3>
  80addc:	80800085 	stb	r2,2(r16)
  80ade0:	e0800517 	ldw	r2,20(fp)
  80ade4:	10800044 	addi	r2,r2,1
  80ade8:	e0800515 	stw	r2,20(fp)
  80adec:	003fe206 	br	80ad78 <altera_avalon_lcd_16207_write+0x39c>
#elif 1
        /* This option pads the shorter lines with spaces so that they all
         * scroll together.
         */
        sp->line[y].width = widthmax / 2;
        sp->line[y].speed = 256/2;
#else
        /* This option makes the shorter lines stop after they have rotated
         * and waits for the longer lines to catch up
         */
        sp->line[y].speed = 256/2;
#endif
      }
  }

  /* Repaint once, then check whether there has been a missed repaint
   * (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;
  80adf0:	e0800017 	ldw	r2,0(fp)
  80adf4:	10800947 	ldb	r2,37(r2)
  80adf8:	e0800915 	stw	r2,36(fp)

    lcd_repaint_screen(sp);
  80adfc:	e1000017 	ldw	r4,0(fp)
  80ae00:	080a5280 	call	80a528 <lcd_repaint_screen>

    /* Let the timer routines repaint the display again */
    sp->active = 0;
  80ae04:	e0800017 	ldw	r2,0(fp)
  80ae08:	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)
  80ae0c:	e0800017 	ldw	r2,0(fp)
  80ae10:	10c00947 	ldb	r3,37(r2)
  80ae14:	e0800917 	ldw	r2,36(fp)
  80ae18:	1880011e 	bne	r3,r2,80ae20 <altera_avalon_lcd_16207_write+0x444>
      break;
  80ae1c:	00000406 	br	80ae30 <altera_avalon_lcd_16207_write+0x454>

    /* We need to repaint again since the display scrolled while we were
     * painting last time */
    sp->active = 1;
  80ae20:	e0c00017 	ldw	r3,0(fp)
  80ae24:	00800044 	movi	r2,1
  80ae28:	188009c5 	stb	r2,39(r3)
  80ae2c:	003ff006 	br	80adf0 <altera_avalon_lcd_16207_write+0x414>
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  80ae30:	e0000915 	stw	zero,36(fp)
  }

  /* Now that access to the display is complete, release the write
   * semaphore so that other threads can access the buffer.
   */

  ALT_SEM_POST (sp->write_lock);

  return len;
  80ae34:	e0800217 	ldw	r2,8(fp)
}
  80ae38:	dfc00c17 	ldw	ra,48(sp)
  80ae3c:	df000b17 	ldw	fp,44(sp)
  80ae40:	dc000a17 	ldw	r16,40(sp)
  80ae44:	dec00d04 	addi	sp,sp,52
  80ae48:	f800283a 	ret

0080ae4c <alt_lcd_16207_timeout>:

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

/* This should be in a top level header file really */
#define container_of(ptr, type, member) ((type *)((char *)ptr - offsetof(type, member)))

/*
 * Timeout routine is called every second
 */

static alt_u32 alt_lcd_16207_timeout(void* context) 
{
  80ae4c:	defffc04 	addi	sp,sp,-16
  80ae50:	dfc00315 	stw	ra,12(sp)
  80ae54:	df000215 	stw	fp,8(sp)
  80ae58:	d839883a 	mov	fp,sp
  80ae5c:	e1000015 	stw	r4,0(fp)
  altera_avalon_lcd_16207_state* sp = (altera_avalon_lcd_16207_state*)context;
  80ae60:	e0800017 	ldw	r2,0(fp)
  80ae64:	e0800115 	stw	r2,4(fp)

  /* Update the scrolling position */
  if (sp->scrollpos + 1 >= sp->scrollmax)
  80ae68:	e0800117 	ldw	r2,4(fp)
  80ae6c:	10800947 	ldb	r2,37(r2)
  80ae70:	10c00044 	addi	r3,r2,1
  80ae74:	e0800117 	ldw	r2,4(fp)
  80ae78:	10800987 	ldb	r2,38(r2)
  80ae7c:	18800316 	blt	r3,r2,80ae8c <alt_lcd_16207_timeout+0x40>
    sp->scrollpos = 0;
  80ae80:	e0800117 	ldw	r2,4(fp)
  80ae84:	10000945 	stb	zero,37(r2)
  80ae88:	00000506 	br	80aea0 <alt_lcd_16207_timeout+0x54>
  else
    sp->scrollpos = sp->scrollpos + 1;
  80ae8c:	e0c00117 	ldw	r3,4(fp)
  80ae90:	e0800117 	ldw	r2,4(fp)
  80ae94:	10800943 	ldbu	r2,37(r2)
  80ae98:	10800044 	addi	r2,r2,1
  80ae9c:	18800945 	stb	r2,37(r3)

  /* Repaint the panel unless the foreground will do it again soon */
  if (sp->scrollmax > 0 && !sp->active)
  80aea0:	e0800117 	ldw	r2,4(fp)
  80aea4:	10800987 	ldb	r2,38(r2)
  80aea8:	10800050 	cmplti	r2,r2,1
  80aeac:	1000061e 	bne	r2,zero,80aec8 <alt_lcd_16207_timeout+0x7c>
  80aeb0:	e0800117 	ldw	r2,4(fp)
  80aeb4:	108009c7 	ldb	r2,39(r2)
  80aeb8:	1004c03a 	cmpne	r2,r2,zero
  80aebc:	1000021e 	bne	r2,zero,80aec8 <alt_lcd_16207_timeout+0x7c>
    lcd_repaint_screen(sp);
  80aec0:	e1000117 	ldw	r4,4(fp)
  80aec4:	080a5280 	call	80a528 <lcd_repaint_screen>

  return sp->period;
  80aec8:	e0800117 	ldw	r2,4(fp)
  80aecc:	10800717 	ldw	r2,28(r2)
}
  80aed0:	dfc00317 	ldw	ra,12(sp)
  80aed4:	df000217 	ldw	fp,8(sp)
  80aed8:	dec00404 	addi	sp,sp,16
  80aedc:	f800283a 	ret

0080aee0 <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)
{
  80aee0:	defff904 	addi	sp,sp,-28
  80aee4:	dfc00615 	stw	ra,24(sp)
  80aee8:	df000515 	stw	fp,20(sp)
  80aeec:	dc000415 	stw	r16,16(sp)
  80aef0:	d839883a 	mov	fp,sp
  80aef4:	e1000015 	stw	r4,0(fp)
  unsigned int base = sp->base;
  80aef8:	e0800017 	ldw	r2,0(fp)
  80aefc:	10800017 	ldw	r2,0(r2)
  80af00:	e0800115 	stw	r2,4(fp)

  /* Mark the device as functional */
  sp->broken = 0;
  80af04:	e0800017 	ldw	r2,0(fp)
  80af08:	10000805 	stb	zero,32(r2)
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  80af0c:	e0000215 	stw	zero,8(fp)

  ALT_SEM_CREATE (&sp->write_lock, 1);

  /* TODO: check that usleep can be called in an initialization routine */

  /* The initialisation sequence below is copied from the datasheet for
   * the 16207 LCD display.  The first commands need to be timed because
   * 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);
  80af10:	010ea604 	movi	r4,15000
  80af14:	080bb440 	call	80bb44 <usleep>
  IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT);
  80af18:	e0c00117 	ldw	r3,4(fp)
  80af1c:	00800c04 	movi	r2,48
  80af20:	18800035 	stwio	r2,0(r3)

  /* Wait for another 4.1ms and reset again */
  usleep(4100);  
  80af24:	01040104 	movi	r4,4100
  80af28:	080bb440 	call	80bb44 <usleep>
  IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT);
  80af2c:	e0c00117 	ldw	r3,4(fp)
  80af30:	00800c04 	movi	r2,48
  80af34:	18800035 	stwio	r2,0(r3)

  /* Wait a further 1 ms and reset a third time */
  usleep(1000);
  80af38:	0100fa04 	movi	r4,1000
  80af3c:	080bb440 	call	80bb44 <usleep>
  IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT);
  80af40:	e0c00117 	ldw	r3,4(fp)
  80af44:	00800c04 	movi	r2,48
  80af48:	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);
  80af4c:	e1000017 	ldw	r4,0(fp)
  80af50:	01400e04 	movi	r5,56
  80af54:	080a2fc0 	call	80a2fc <lcd_write_command>
  
  /* Turn display off */
  lcd_write_command(sp, LCD_CMD_ONOFF);
  80af58:	e1000017 	ldw	r4,0(fp)
  80af5c:	01400204 	movi	r5,8
  80af60:	080a2fc0 	call	80a2fc <lcd_write_command>

  /* Clear display */
  lcd_clear_screen(sp);
  80af64:	e1000017 	ldw	r4,0(fp)
  80af68:	080a4680 	call	80a468 <lcd_clear_screen>
  
  /* Set mode: increment after writing, don't shift display */
  lcd_write_command(sp, LCD_CMD_MODES | LCD_CMD_MODE_INC);
  80af6c:	e1000017 	ldw	r4,0(fp)
  80af70:	01400184 	movi	r5,6
  80af74:	080a2fc0 	call	80a2fc <lcd_write_command>

  /* Turn display on */
  lcd_write_command(sp, LCD_CMD_ONOFF | LCD_CMD_ENABLE_DISP);
  80af78:	e1000017 	ldw	r4,0(fp)
  80af7c:	01400304 	movi	r5,12
  80af80:	080a2fc0 	call	80a2fc <lcd_write_command>

  sp->esccount = -1;
  80af84:	e0c00017 	ldw	r3,0(fp)
  80af88:	00bfffc4 	movi	r2,-1
  80af8c:	18800905 	stb	r2,36(r3)
  memset(sp->escape, 0, sizeof(sp->escape));
  80af90:	e0800017 	ldw	r2,0(fp)
  80af94:	11000a04 	addi	r4,r2,40
  80af98:	000b883a 	mov	r5,zero
  80af9c:	01800204 	movi	r6,8
  80afa0:	08053380 	call	805338 <memset>

  sp->scrollpos = 0;
  80afa4:	e0800017 	ldw	r2,0(fp)
  80afa8:	10000945 	stb	zero,37(r2)
  sp->scrollmax = 0;
  80afac:	e0800017 	ldw	r2,0(fp)
  80afb0:	10000985 	stb	zero,38(r2)
  sp->active = 0;
  80afb4:	e0800017 	ldw	r2,0(fp)
  80afb8:	100009c5 	stb	zero,39(r2)

  sp->period = alt_ticks_per_second() / 10; /* Call every 100ms */
  80afbc:	e4000017 	ldw	r16,0(fp)
 */

static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void)
{
  return _alt_tick_rate;
  80afc0:	d0a01817 	ldw	r2,-32672(gp)
  80afc4:	e0800315 	stw	r2,12(fp)
  80afc8:	e1000317 	ldw	r4,12(fp)
  80afcc:	01400284 	movi	r5,10
  80afd0:	08088140 	call	808814 <__udivsi3>
  80afd4:	80800715 	stw	r2,28(r16)

  alt_alarm_start(&sp->alarm, sp->period, &alt_lcd_16207_timeout, sp);
  80afd8:	e0800017 	ldw	r2,0(fp)
  80afdc:	11000104 	addi	r4,r2,4
  80afe0:	e0800017 	ldw	r2,0(fp)
  80afe4:	11400717 	ldw	r5,28(r2)
  80afe8:	01802074 	movhi	r6,129
  80afec:	31ab9304 	addi	r6,r6,-20916
  80aff0:	e1c00017 	ldw	r7,0(fp)
  80aff4:	080b1140 	call	80b114 <alt_alarm_start>
}
  80aff8:	dfc00617 	ldw	ra,24(sp)
  80affc:	df000517 	ldw	fp,20(sp)
  80b000:	dc000417 	ldw	r16,16(sp)
  80b004:	dec00704 	addi	sp,sp,28
  80b008:	f800283a 	ret

0080b00c <altera_avalon_lcd_16207_write_fd>:
  const char* ptr, int count, int flags);

int 
altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* buffer, int space)
{
  80b00c:	defffa04 	addi	sp,sp,-24
  80b010:	dfc00515 	stw	ra,20(sp)
  80b014:	df000415 	stw	fp,16(sp)
  80b018:	d839883a 	mov	fp,sp
  80b01c:	e1000015 	stw	r4,0(fp)
  80b020:	e1400115 	stw	r5,4(fp)
  80b024:	e1800215 	stw	r6,8(fp)
    altera_avalon_lcd_16207_dev* dev = (altera_avalon_lcd_16207_dev*) fd->dev; 
  80b028:	e0800017 	ldw	r2,0(fp)
  80b02c:	10800017 	ldw	r2,0(r2)
  80b030:	e0800315 	stw	r2,12(fp)

    return altera_avalon_lcd_16207_write(&dev->state, buffer, space,
  80b034:	e0800317 	ldw	r2,12(fp)
  80b038:	11000a04 	addi	r4,r2,40
  80b03c:	e0800017 	ldw	r2,0(fp)
  80b040:	e1400117 	ldw	r5,4(fp)
  80b044:	e1800217 	ldw	r6,8(fp)
  80b048:	11c00217 	ldw	r7,8(r2)
  80b04c:	080a9dc0 	call	80a9dc <altera_avalon_lcd_16207_write>
      fd->fd_flags);
}
  80b050:	dfc00517 	ldw	ra,20(sp)
  80b054:	df000417 	ldw	fp,16(sp)
  80b058:	dec00604 	addi	sp,sp,24
  80b05c:	f800283a 	ret

0080b060 <alt_avalon_timer_sc_irq>:
 * alarms, see alt_tick.c for further details.
 */

static void alt_avalon_timer_sc_irq (void* base, alt_u32 id)
{
  80b060:	defffc04 	addi	sp,sp,-16
  80b064:	dfc00315 	stw	ra,12(sp)
  80b068:	df000215 	stw	fp,8(sp)
  80b06c:	d839883a 	mov	fp,sp
  80b070:	e1000015 	stw	r4,0(fp)
  80b074:	e1400115 	stw	r5,4(fp)
  /* clear the interrupt */

  IOWR_ALTERA_AVALON_TIMER_STATUS (base, 0);
  80b078:	e0800017 	ldw	r2,0(fp)
  80b07c:	10000035 	stwio	zero,0(r2)

  /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */
  ALT_LOG_SYS_CLK_HEARTBEAT();

  /* notify the system of a clock tick */
  alt_tick ();
  80b080:	080ba440 	call	80ba44 <alt_tick>
}
  80b084:	dfc00317 	ldw	ra,12(sp)
  80b088:	df000217 	ldw	fp,8(sp)
  80b08c:	dec00404 	addi	sp,sp,16
  80b090:	f800283a 	ret

0080b094 <alt_avalon_timer_sc_init>:

/*
 * alt_avalon_timer_sc_init() is called to initialise the timer that will be 
 * used to provide the periodic system clock. This is called from the 
 * auto-generated alt_sys_init() function.
 */

void alt_avalon_timer_sc_init (void* base, alt_u32 irq, alt_u32 freq)
{
  80b094:	defff904 	addi	sp,sp,-28
  80b098:	dfc00615 	stw	ra,24(sp)
  80b09c:	df000515 	stw	fp,20(sp)
  80b0a0:	d839883a 	mov	fp,sp
  80b0a4:	e1000015 	stw	r4,0(fp)
  80b0a8:	e1400115 	stw	r5,4(fp)
  80b0ac:	e1800215 	stw	r6,8(fp)
 * in order to initialise the value of the clock frequency.
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks)
{
  80b0b0:	e0800217 	ldw	r2,8(fp)
  80b0b4:	e0800315 	stw	r2,12(fp)
  if (! _alt_tick_rate)
  80b0b8:	d0a01817 	ldw	r2,-32672(gp)
  80b0bc:	1004c03a 	cmpne	r2,r2,zero
  80b0c0:	1000041e 	bne	r2,zero,80b0d4 <alt_avalon_timer_sc_init+0x40>
  {
    _alt_tick_rate = nticks;
  80b0c4:	e0800317 	ldw	r2,12(fp)
  80b0c8:	d0a01815 	stw	r2,-32672(gp)
  80b0cc:	e0000415 	stw	zero,16(fp)
  80b0d0:	00000206 	br	80b0dc <alt_avalon_timer_sc_init+0x48>
    return 0;
  }
  else
  {
    return -1;
  80b0d4:	00bfffc4 	movi	r2,-1
  80b0d8:	e0800415 	stw	r2,16(fp)
  /* set the system clock frequency */
  
  alt_sysclk_init (freq);
  
  /* set to free running mode */
  
  IOWR_ALTERA_AVALON_TIMER_CONTROL (base, 
  80b0dc:	e0800017 	ldw	r2,0(fp)
  80b0e0:	10800104 	addi	r2,r2,4
  80b0e4:	1007883a 	mov	r3,r2
  80b0e8:	008001c4 	movi	r2,7
  80b0ec:	18800035 	stwio	r2,0(r3)
            ALTERA_AVALON_TIMER_CONTROL_ITO_MSK  |
            ALTERA_AVALON_TIMER_CONTROL_CONT_MSK |
            ALTERA_AVALON_TIMER_CONTROL_START_MSK);

  /* register the interrupt handler, and enable the interrupt */
    
  alt_irq_register (irq, base, alt_avalon_timer_sc_irq);    
  80b0f0:	e1000117 	ldw	r4,4(fp)
  80b0f4:	e1400017 	ldw	r5,0(fp)
  80b0f8:	01802074 	movhi	r6,129
  80b0fc:	31ac1804 	addi	r6,r6,-20384
  80b100:	080b5a40 	call	80b5a4 <alt_irq_register>
}
  80b104:	dfc00617 	ldw	ra,24(sp)
  80b108:	df000517 	ldw	fp,20(sp)
  80b10c:	dec00704 	addi	sp,sp,28
  80b110:	f800283a 	ret

0080b114 <alt_alarm_start>:

int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks,
                     alt_u32 (*callback) (void* context),
                     void* context)
{
  80b114:	defff504 	addi	sp,sp,-44
  80b118:	df000a15 	stw	fp,40(sp)
  80b11c:	d839883a 	mov	fp,sp
  80b120:	e1000015 	stw	r4,0(fp)
  80b124:	e1400115 	stw	r5,4(fp)
  80b128:	e1800215 	stw	r6,8(fp)
  80b12c:	e1c00315 	stw	r7,12(fp)
  alt_irq_context irq_context;
  alt_u32 current_nticks = 0;
  80b130:	e0000515 	stw	zero,20(fp)
 */

static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void)
{
  return _alt_tick_rate;
  80b134:	d0a01817 	ldw	r2,-32672(gp)
  80b138:	e0800615 	stw	r2,24(fp)
  80b13c:	e0800617 	ldw	r2,24(fp)
  80b140:	1005003a 	cmpeq	r2,r2,zero
  80b144:	10003f1e 	bne	r2,zero,80b244 <alt_alarm_start+0x130>
  
  if (alt_ticks_per_second ())
  {
    if (alarm)
  80b148:	e0800017 	ldw	r2,0(fp)
  80b14c:	1005003a 	cmpeq	r2,r2,zero
  80b150:	1000391e 	bne	r2,zero,80b238 <alt_alarm_start+0x124>
    {
      alarm->callback = callback;
  80b154:	e0c00017 	ldw	r3,0(fp)
  80b158:	e0800217 	ldw	r2,8(fp)
  80b15c:	18800315 	stw	r2,12(r3)
      alarm->context  = context;
  80b160:	e0c00017 	ldw	r3,0(fp)
  80b164:	e0800317 	ldw	r2,12(fp)
  80b168:	18800515 	stw	r2,20(r3)
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
  80b16c:	0005303a 	rdctl	r2,status
  80b170:	e0800815 	stw	r2,32(fp)
  NIOS2_WRITE_STATUS (0);
  80b174:	0001703a 	wrctl	status,zero
  80b178:	e0800817 	ldw	r2,32(fp)
  80b17c:	e0800715 	stw	r2,28(fp)
  80b180:	e0800717 	ldw	r2,28(fp)
  80b184:	e0800415 	stw	r2,16(fp)
 */

static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void)
{
  return _alt_nticks;
  80b188:	d0a01917 	ldw	r2,-32668(gp)
  80b18c:	e0800815 	stw	r2,32(fp)
  80b190:	e0800817 	ldw	r2,32(fp)
  80b194:	e0800515 	stw	r2,20(fp)
 
      irq_context = alt_irq_disable_all ();
      
      current_nticks = alt_nticks();
      
      alarm->time = nticks + current_nticks + 1; 
  80b198:	e1000017 	ldw	r4,0(fp)
  80b19c:	e0c00117 	ldw	r3,4(fp)
  80b1a0:	e0800517 	ldw	r2,20(fp)
  80b1a4:	1885883a 	add	r2,r3,r2
  80b1a8:	10800044 	addi	r2,r2,1
  80b1ac:	20800215 	stw	r2,8(r4)
      
      /* 
       * 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)
  80b1b0:	e0800017 	ldw	r2,0(fp)
  80b1b4:	10c00217 	ldw	r3,8(r2)
  80b1b8:	e0800517 	ldw	r2,20(fp)
  80b1bc:	1880042e 	bgeu	r3,r2,80b1d0 <alt_alarm_start+0xbc>
      {
        alarm->rollover = 1;
  80b1c0:	e0c00017 	ldw	r3,0(fp)
  80b1c4:	00800044 	movi	r2,1
  80b1c8:	18800405 	stb	r2,16(r3)
  80b1cc:	00000206 	br	80b1d8 <alt_alarm_start+0xc4>
      }
      else
      {
        alarm->rollover = 0;
  80b1d0:	e0800017 	ldw	r2,0(fp)
  80b1d4:	10000405 	stb	zero,16(r2)
 */

static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, 
                alt_llist* entry)
{
  80b1d8:	d0a01a04 	addi	r2,gp,-32664
  80b1dc:	e0800815 	stw	r2,32(fp)
  80b1e0:	e0800017 	ldw	r2,0(fp)
  80b1e4:	e0800715 	stw	r2,28(fp)
  entry->previous = list;
  80b1e8:	e0c00717 	ldw	r3,28(fp)
  80b1ec:	e0800817 	ldw	r2,32(fp)
  80b1f0:	18800115 	stw	r2,4(r3)
  entry->next     = list->next;
  80b1f4:	e0c00717 	ldw	r3,28(fp)
  80b1f8:	e0800817 	ldw	r2,32(fp)
  80b1fc:	10800017 	ldw	r2,0(r2)
  80b200:	18800015 	stw	r2,0(r3)

  list->next->previous = entry;
  80b204:	e0800817 	ldw	r2,32(fp)
  80b208:	10c00017 	ldw	r3,0(r2)
  80b20c:	e0800717 	ldw	r2,28(fp)
  80b210:	18800115 	stw	r2,4(r3)
  list->next           = entry;
  80b214:	e0c00817 	ldw	r3,32(fp)
  80b218:	e0800717 	ldw	r2,28(fp)
  80b21c:	18800015 	stw	r2,0(r3)
 */

static ALT_INLINE void ALT_ALWAYS_INLINE 
       alt_irq_enable_all (alt_irq_context context)
{
  80b220:	e0800417 	ldw	r2,16(fp)
  80b224:	e0800815 	stw	r2,32(fp)
  NIOS2_WRITE_STATUS (context);
  80b228:	e0800817 	ldw	r2,32(fp)
  80b22c:	1001703a 	wrctl	status,r2
      }
    
      alt_llist_insert (&alt_alarm_list, &alarm->llist);
      alt_irq_enable_all (irq_context);

      return 0;
  80b230:	e0000915 	stw	zero,36(fp)
  80b234:	00000506 	br	80b24c <alt_alarm_start+0x138>
    }
    else
    {
      return -EINVAL;
  80b238:	00bffa84 	movi	r2,-22
  80b23c:	e0800915 	stw	r2,36(fp)
  80b240:	00000206 	br	80b24c <alt_alarm_start+0x138>
    }
  }
  else
  {
    return -ENOTSUP;
  80b244:	00bfde84 	movi	r2,-134
  80b248:	e0800915 	stw	r2,36(fp)
  }
}
  80b24c:	e0800917 	ldw	r2,36(fp)
  80b250:	df000a17 	ldw	fp,40(sp)
  80b254:	dec00b04 	addi	sp,sp,44
  80b258:	f800283a 	ret

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

void alt_dcache_flush_all (void)
{
  80b25c:	defffe04 	addi	sp,sp,-8
  80b260:	df000115 	stw	fp,4(sp)
  80b264:	d839883a 	mov	fp,sp
#if NIOS2_DCACHE_SIZE > 0
  char* i;
  
  for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE)
  80b268:	e0000015 	stw	zero,0(fp)
  80b26c:	e0800017 	ldw	r2,0(fp)
  80b270:	10820028 	cmpgeui	r2,r2,2048
  80b274:	1000061e 	bne	r2,zero,80b290 <alt_dcache_flush_all+0x34>
  { 
    __asm__ volatile ("flushd (%0)" :: "r" (i));
  80b278:	e0800017 	ldw	r2,0(fp)
  80b27c:	1000003b 	flushd	0(r2)
  80b280:	e0800017 	ldw	r2,0(fp)
  80b284:	10800804 	addi	r2,r2,32
  80b288:	e0800015 	stw	r2,0(fp)
  80b28c:	003ff706 	br	80b26c <alt_dcache_flush_all+0x10>
  }
#endif /* NIOS2_DCACHE_SIZE > 0 */
}
  80b290:	df000117 	ldw	fp,4(sp)
  80b294:	dec00204 	addi	sp,sp,8
  80b298:	f800283a 	ret

0080b29c <alt_dev_llist_insert>:
 *
 */

int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list)
{
  80b29c:	defff904 	addi	sp,sp,-28
  80b2a0:	dfc00615 	stw	ra,24(sp)
  80b2a4:	df000515 	stw	fp,20(sp)
  80b2a8:	d839883a 	mov	fp,sp
  80b2ac:	e1000015 	stw	r4,0(fp)
  80b2b0:	e1400115 	stw	r5,4(fp)
  /*
   * check that the device exists, and that it has a valid name.
   */

  if (!dev || !dev->name)
  80b2b4:	e0800017 	ldw	r2,0(fp)
  80b2b8:	1005003a 	cmpeq	r2,r2,zero
  80b2bc:	1000041e 	bne	r2,zero,80b2d0 <alt_dev_llist_insert+0x34>
  80b2c0:	e0800017 	ldw	r2,0(fp)
  80b2c4:	10800217 	ldw	r2,8(r2)
  80b2c8:	1004c03a 	cmpne	r2,r2,zero
  80b2cc:	1000071e 	bne	r2,zero,80b2ec <alt_dev_llist_insert+0x50>
  {
    ALT_ERRNO = EINVAL;
  80b2d0:	080b34c0 	call	80b34c <alt_get_errno>
  80b2d4:	1007883a 	mov	r3,r2
  80b2d8:	00800584 	movi	r2,22
  80b2dc:	18800015 	stw	r2,0(r3)
    return -EINVAL;
  80b2e0:	00bffa84 	movi	r2,-22
  80b2e4:	e0800415 	stw	r2,16(fp)
  80b2e8:	00001306 	br	80b338 <alt_dev_llist_insert+0x9c>
 */

static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, 
                alt_llist* entry)
{
  80b2ec:	e0800117 	ldw	r2,4(fp)
  80b2f0:	e0800215 	stw	r2,8(fp)
  80b2f4:	e0800017 	ldw	r2,0(fp)
  80b2f8:	e0800315 	stw	r2,12(fp)
  entry->previous = list;
  80b2fc:	e0c00317 	ldw	r3,12(fp)
  80b300:	e0800217 	ldw	r2,8(fp)
  80b304:	18800115 	stw	r2,4(r3)
  entry->next     = list->next;
  80b308:	e0c00317 	ldw	r3,12(fp)
  80b30c:	e0800217 	ldw	r2,8(fp)
  80b310:	10800017 	ldw	r2,0(r2)
  80b314:	18800015 	stw	r2,0(r3)

  list->next->previous = entry;
  80b318:	e0800217 	ldw	r2,8(fp)
  80b31c:	10c00017 	ldw	r3,0(r2)
  80b320:	e0800317 	ldw	r2,12(fp)
  80b324:	18800115 	stw	r2,4(r3)
  list->next           = entry;
  80b328:	e0c00217 	ldw	r3,8(fp)
  80b32c:	e0800317 	ldw	r2,12(fp)
  80b330:	18800015 	stw	r2,0(r3)
  }
  
  /*
   * register the device.
   */
  
  alt_llist_insert(list, &dev->llist);

  return 0;  
  80b334:	e0000415 	stw	zero,16(fp)
}
  80b338:	e0800417 	ldw	r2,16(fp)
  80b33c:	dfc00617 	ldw	ra,24(sp)
  80b340:	df000517 	ldw	fp,20(sp)
  80b344:	dec00704 	addi	sp,sp,28
  80b348:	f800283a 	ret

0080b34c <alt_get_errno>:

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
  80b34c:	defffd04 	addi	sp,sp,-12
  80b350:	dfc00215 	stw	ra,8(sp)
  80b354:	df000115 	stw	fp,4(sp)
  80b358:	d839883a 	mov	fp,sp
  return ((alt_errno) ? alt_errno() : &errno);
  80b35c:	d0a01017 	ldw	r2,-32704(gp)
  80b360:	1005003a 	cmpeq	r2,r2,zero
  80b364:	1000041e 	bne	r2,zero,80b378 <alt_get_errno+0x2c>
  80b368:	d0a01017 	ldw	r2,-32704(gp)
  80b36c:	103ee83a 	callr	r2
  80b370:	e0800015 	stw	r2,0(fp)
  80b374:	00000206 	br	80b380 <alt_get_errno+0x34>
  80b378:	d0a01d04 	addi	r2,gp,-32652
  80b37c:	e0800015 	stw	r2,0(fp)
  80b380:	e0800017 	ldw	r2,0(fp)
}
  80b384:	dfc00217 	ldw	ra,8(sp)
  80b388:	df000117 	ldw	fp,4(sp)
  80b38c:	dec00304 	addi	sp,sp,12
  80b390:	f800283a 	ret

0080b394 <_do_ctors>:
 * Run the C++ static constructors.
 */

void _do_ctors(void)
{
  80b394:	defffd04 	addi	sp,sp,-12
  80b398:	dfc00215 	stw	ra,8(sp)
  80b39c:	df000115 	stw	fp,4(sp)
  80b3a0:	d839883a 	mov	fp,sp
  constructor* ctor;

  for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--)
  80b3a4:	00802074 	movhi	r2,129
  80b3a8:	10b06804 	addi	r2,r2,-15968
  80b3ac:	e0800015 	stw	r2,0(fp)
  80b3b0:	e0c00017 	ldw	r3,0(fp)
  80b3b4:	00802074 	movhi	r2,129
  80b3b8:	10b06904 	addi	r2,r2,-15964
  80b3bc:	18800736 	bltu	r3,r2,80b3dc <_do_ctors+0x48>
        (*ctor) (); 
  80b3c0:	e0800017 	ldw	r2,0(fp)
  80b3c4:	10800017 	ldw	r2,0(r2)
  80b3c8:	103ee83a 	callr	r2
  80b3cc:	e0800017 	ldw	r2,0(fp)
  80b3d0:	10bfff04 	addi	r2,r2,-4
  80b3d4:	e0800015 	stw	r2,0(fp)
  80b3d8:	003ff506 	br	80b3b0 <_do_ctors+0x1c>
}
  80b3dc:	dfc00217 	ldw	ra,8(sp)
  80b3e0:	df000117 	ldw	fp,4(sp)
  80b3e4:	dec00304 	addi	sp,sp,12
  80b3e8:	f800283a 	ret

0080b3ec <_do_dtors>:
 * Run the C++ static destructors.
 */

void _do_dtors(void)
{
  80b3ec:	defffd04 	addi	sp,sp,-12
  80b3f0:	dfc00215 	stw	ra,8(sp)
  80b3f4:	df000115 	stw	fp,4(sp)
  80b3f8:	d839883a 	mov	fp,sp
  destructor* dtor;

  for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--)
  80b3fc:	00802074 	movhi	r2,129
  80b400:	10b06804 	addi	r2,r2,-15968
  80b404:	e0800015 	stw	r2,0(fp)
  80b408:	e0c00017 	ldw	r3,0(fp)
  80b40c:	00802074 	movhi	r2,129
  80b410:	10b06904 	addi	r2,r2,-15964
  80b414:	18800736 	bltu	r3,r2,80b434 <_do_dtors+0x48>
        (*dtor) (); 
  80b418:	e0800017 	ldw	r2,0(fp)
  80b41c:	10800017 	ldw	r2,0(r2)
  80b420:	103ee83a 	callr	r2
  80b424:	e0800017 	ldw	r2,0(fp)
  80b428:	10bfff04 	addi	r2,r2,-4
  80b42c:	e0800015 	stw	r2,0(fp)
  80b430:	003ff506 	br	80b408 <_do_dtors+0x1c>
}
  80b434:	dfc00217 	ldw	ra,8(sp)
  80b438:	df000117 	ldw	fp,4(sp)
  80b43c:	dec00304 	addi	sp,sp,12
  80b440:	f800283a 	ret

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

void alt_icache_flush_all (void)
{
  80b444:	defffe04 	addi	sp,sp,-8
  80b448:	dfc00115 	stw	ra,4(sp)
  80b44c:	df000015 	stw	fp,0(sp)
  80b450:	d839883a 	mov	fp,sp
#if NIOS2_ICACHE_SIZE > 0
  alt_icache_flush (0, NIOS2_ICACHE_SIZE);
  80b454:	0009883a 	mov	r4,zero
  80b458:	01440004 	movi	r5,4096
  80b45c:	080bed80 	call	80bed8 <alt_icache_flush>
#endif
}
  80b460:	dfc00117 	ldw	ra,4(sp)
  80b464:	df000017 	ldw	fp,0(sp)
  80b468:	dec00204 	addi	sp,sp,8
  80b46c:	f800283a 	ret

0080b470 <alt_open_fd>:
 * remains unchanged.
 */

static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode)
{
  80b470:	defff904 	addi	sp,sp,-28
  80b474:	dfc00615 	stw	ra,24(sp)
  80b478:	df000515 	stw	fp,20(sp)
  80b47c:	d839883a 	mov	fp,sp
  80b480:	e1000015 	stw	r4,0(fp)
  80b484:	e1400115 	stw	r5,4(fp)
  80b488:	e1800215 	stw	r6,8(fp)
  80b48c:	e1c00315 	stw	r7,12(fp)
  int old;

  old = open (name, flags, mode);
  80b490:	e1000117 	ldw	r4,4(fp)
  80b494:	e1400217 	ldw	r5,8(fp)
  80b498:	e1800317 	ldw	r6,12(fp)
  80b49c:	080b7ec0 	call	80b7ec <open>
  80b4a0:	e0800415 	stw	r2,16(fp)

  if (old >= 0)
  80b4a4:	e0800417 	ldw	r2,16(fp)
  80b4a8:	1004803a 	cmplt	r2,r2,zero
  80b4ac:	10001c1e 	bne	r2,zero,80b520 <alt_open_fd+0xb0>
  {
    fd->dev      = alt_fd_list[old].dev;
  80b4b0:	e1000017 	ldw	r4,0(fp)
  80b4b4:	00c02074 	movhi	r3,129
  80b4b8:	18f3fc04 	addi	r3,r3,-12304
  80b4bc:	e0800417 	ldw	r2,16(fp)
  80b4c0:	10800324 	muli	r2,r2,12
  80b4c4:	10c5883a 	add	r2,r2,r3
  80b4c8:	10800017 	ldw	r2,0(r2)
  80b4cc:	20800015 	stw	r2,0(r4)
    fd->priv     = alt_fd_list[old].priv;
  80b4d0:	e1000017 	ldw	r4,0(fp)
  80b4d4:	00c02074 	movhi	r3,129
  80b4d8:	18f3fc04 	addi	r3,r3,-12304
  80b4dc:	e0800417 	ldw	r2,16(fp)
  80b4e0:	10800324 	muli	r2,r2,12
  80b4e4:	10c5883a 	add	r2,r2,r3
  80b4e8:	10800104 	addi	r2,r2,4
  80b4ec:	10800017 	ldw	r2,0(r2)
  80b4f0:	20800115 	stw	r2,4(r4)
    fd->fd_flags = alt_fd_list[old].fd_flags;
  80b4f4:	e1000017 	ldw	r4,0(fp)
  80b4f8:	00c02074 	movhi	r3,129
  80b4fc:	18f3fc04 	addi	r3,r3,-12304
  80b500:	e0800417 	ldw	r2,16(fp)
  80b504:	10800324 	muli	r2,r2,12
  80b508:	10c5883a 	add	r2,r2,r3
  80b50c:	10800204 	addi	r2,r2,8
  80b510:	10800017 	ldw	r2,0(r2)
  80b514:	20800215 	stw	r2,8(r4)

    alt_release_fd (old);
  80b518:	e1000417 	ldw	r4,16(fp)
  80b51c:	08095f00 	call	8095f0 <alt_release_fd>
  }
} 
  80b520:	dfc00617 	ldw	ra,24(sp)
  80b524:	df000517 	ldw	fp,20(sp)
  80b528:	dec00704 	addi	sp,sp,28
  80b52c:	f800283a 	ret

0080b530 <alt_io_redirect>:

/*
 * alt_io_redirect() is called once the device/filesystem lists have been 
 * initialised, but before main(). Its function is to redirect standard in,
 * standard out and standard error so that they point to the devices selected by
 * the user (as defined in system.h).
 *
 * Prior to the call to this function, io is directed towards /dev/null. If
 * i/o can not be redirected to the requested device, for example if the device 
 * does not exist, then it remains directed at /dev/null. 
 */
 
void alt_io_redirect(const char* stdout_dev, 
                     const char* stdin_dev, 
                     const char* stderr_dev)
{
  80b530:	defffb04 	addi	sp,sp,-20
  80b534:	dfc00415 	stw	ra,16(sp)
  80b538:	df000315 	stw	fp,12(sp)
  80b53c:	d839883a 	mov	fp,sp
  80b540:	e1000015 	stw	r4,0(fp)
  80b544:	e1400115 	stw	r5,4(fp)
  80b548:	e1800215 	stw	r6,8(fp)
  /* Redirect the channels */

  alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777);
  80b54c:	01002074 	movhi	r4,129
  80b550:	2133ff04 	addi	r4,r4,-12292
  80b554:	e1400017 	ldw	r5,0(fp)
  80b558:	01800044 	movi	r6,1
  80b55c:	01c07fc4 	movi	r7,511
  80b560:	080b4700 	call	80b470 <alt_open_fd>
  alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777);
  80b564:	01002074 	movhi	r4,129
  80b568:	2133fc04 	addi	r4,r4,-12304
  80b56c:	e1400117 	ldw	r5,4(fp)
  80b570:	000d883a 	mov	r6,zero
  80b574:	01c07fc4 	movi	r7,511
  80b578:	080b4700 	call	80b470 <alt_open_fd>
  alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777);
  80b57c:	01002074 	movhi	r4,129
  80b580:	21340204 	addi	r4,r4,-12280
  80b584:	e1400217 	ldw	r5,8(fp)
  80b588:	01800044 	movi	r6,1
  80b58c:	01c07fc4 	movi	r7,511
  80b590:	080b4700 	call	80b470 <alt_open_fd>
}  
  80b594:	dfc00417 	ldw	ra,16(sp)
  80b598:	df000317 	ldw	fp,12(sp)
  80b59c:	dec00504 	addi	sp,sp,20
  80b5a0:	f800283a 	ret

0080b5a4 <alt_irq_register>:
 
int alt_irq_register (alt_u32 id, 
                      void* context, 
                      void (*handler)(void*, alt_u32))
{
  80b5a4:	defff304 	addi	sp,sp,-52
  80b5a8:	df000c15 	stw	fp,48(sp)
  80b5ac:	d839883a 	mov	fp,sp
  80b5b0:	e1000015 	stw	r4,0(fp)
  80b5b4:	e1400115 	stw	r5,4(fp)
  80b5b8:	e1800215 	stw	r6,8(fp)
  int rc = -EINVAL;  
  80b5bc:	00bffa84 	movi	r2,-22
  80b5c0:	e0800315 	stw	r2,12(fp)
  alt_irq_context status;

  if (id < ALT_NIRQ)
  80b5c4:	e0800017 	ldw	r2,0(fp)
  80b5c8:	10800828 	cmpgeui	r2,r2,32
  80b5cc:	1000511e 	bne	r2,zero,80b714 <alt_irq_register+0x170>
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
  80b5d0:	0005303a 	rdctl	r2,status
  80b5d4:	e0800615 	stw	r2,24(fp)
  NIOS2_WRITE_STATUS (0);
  80b5d8:	0001703a 	wrctl	status,zero
  80b5dc:	e0800617 	ldw	r2,24(fp)
  80b5e0:	e0800515 	stw	r2,20(fp)
  80b5e4:	e0800517 	ldw	r2,20(fp)
  80b5e8:	e0800415 	stw	r2,16(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 ();

    alt_irq[id].handler = handler;
  80b5ec:	00c02074 	movhi	r3,129
  80b5f0:	18f8db04 	addi	r3,r3,-7316
  80b5f4:	e0800017 	ldw	r2,0(fp)
  80b5f8:	10800224 	muli	r2,r2,8
  80b5fc:	10c7883a 	add	r3,r2,r3
  80b600:	e0800217 	ldw	r2,8(fp)
  80b604:	18800015 	stw	r2,0(r3)
    alt_irq[id].context = context;
  80b608:	00c02074 	movhi	r3,129
  80b60c:	18f8db04 	addi	r3,r3,-7316
  80b610:	e0800017 	ldw	r2,0(fp)
  80b614:	10800224 	muli	r2,r2,8
  80b618:	10c5883a 	add	r2,r2,r3
  80b61c:	10c00104 	addi	r3,r2,4
  80b620:	e0800117 	ldw	r2,4(fp)
  80b624:	18800015 	stw	r2,0(r3)

    rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id);
  80b628:	e0800217 	ldw	r2,8(fp)
  80b62c:	1005003a 	cmpeq	r2,r2,zero
  80b630:	1000191e 	bne	r2,zero,80b698 <alt_irq_register+0xf4>
 *  
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id)
{
  80b634:	e0800017 	ldw	r2,0(fp)
  80b638:	e0800615 	stw	r2,24(fp)
  80b63c:	0005303a 	rdctl	r2,status
  80b640:	e0800915 	stw	r2,36(fp)
  80b644:	0001703a 	wrctl	status,zero
  80b648:	e0800917 	ldw	r2,36(fp)
  80b64c:	e0800815 	stw	r2,32(fp)
  80b650:	e0800817 	ldw	r2,32(fp)
  80b654:	e0800715 	stw	r2,28(fp)
  alt_irq_context  status;
  extern volatile alt_u32 alt_irq_active;

  status = alt_irq_disable_all ();

  alt_irq_active |= (1 << id);
  80b658:	00c00044 	movi	r3,1
  80b65c:	e0800617 	ldw	r2,24(fp)
  80b660:	1886983a 	sll	r3,r3,r2
  80b664:	d0a01617 	ldw	r2,-32680(gp)
  80b668:	10c4b03a 	or	r2,r2,r3
  80b66c:	d0a01615 	stw	r2,-32680(gp)
  NIOS2_WRITE_IENABLE (alt_irq_active);
  80b670:	d0a01617 	ldw	r2,-32680(gp)
  80b674:	100170fa 	wrctl	ienable,r2
  80b678:	e0800717 	ldw	r2,28(fp)
  80b67c:	e0800915 	stw	r2,36(fp)
  80b680:	e0800917 	ldw	r2,36(fp)
  80b684:	1001703a 	wrctl	status,r2

  alt_irq_enable_all(status);
  80b688:	e0000515 	stw	zero,20(fp)
  80b68c:	e0800517 	ldw	r2,20(fp)
  80b690:	e0800b15 	stw	r2,44(fp)
  80b694:	00001906 	br	80b6fc <alt_irq_register+0x158>
  80b698:	e0800017 	ldw	r2,0(fp)
  80b69c:	e0800915 	stw	r2,36(fp)
  80b6a0:	0005303a 	rdctl	r2,status
  80b6a4:	e0800a15 	stw	r2,40(fp)
  80b6a8:	0001703a 	wrctl	status,zero
  80b6ac:	e0800a17 	ldw	r2,40(fp)
  80b6b0:	e0800615 	stw	r2,24(fp)
  80b6b4:	e0800617 	ldw	r2,24(fp)
  80b6b8:	e0800715 	stw	r2,28(fp)
  80b6bc:	00c00044 	movi	r3,1
  80b6c0:	e0800917 	ldw	r2,36(fp)
  80b6c4:	1884983a 	sll	r2,r3,r2
  80b6c8:	0086303a 	nor	r3,zero,r2
  80b6cc:	d0a01617 	ldw	r2,-32680(gp)
  80b6d0:	10c4703a 	and	r2,r2,r3
  80b6d4:	d0a01615 	stw	r2,-32680(gp)
  80b6d8:	d0a01617 	ldw	r2,-32680(gp)
  80b6dc:	100170fa 	wrctl	ienable,r2
  80b6e0:	e0800717 	ldw	r2,28(fp)
  80b6e4:	e0800a15 	stw	r2,40(fp)
  80b6e8:	e0800a17 	ldw	r2,40(fp)
  80b6ec:	1001703a 	wrctl	status,r2
  80b6f0:	e0000815 	stw	zero,32(fp)
  80b6f4:	e0800817 	ldw	r2,32(fp)
  80b6f8:	e0800b15 	stw	r2,44(fp)
  80b6fc:	e0800b17 	ldw	r2,44(fp)
  80b700:	e0800315 	stw	r2,12(fp)
  80b704:	e0800417 	ldw	r2,16(fp)
  80b708:	e0800a15 	stw	r2,40(fp)
  80b70c:	e0800a17 	ldw	r2,40(fp)
  80b710:	1001703a 	wrctl	status,r2

    alt_irq_enable_all(status);
  }
  return rc; 
  80b714:	e0800317 	ldw	r2,12(fp)
}
  80b718:	df000c17 	ldw	fp,48(sp)
  80b71c:	dec00d04 	addi	sp,sp,52
  80b720:	f800283a 	ret

0080b724 <alt_file_locked>:
 * themselves, and report the error from the filesystems open() function. 
 */ 

static int alt_file_locked (alt_fd* fd)
{
  80b724:	defffc04 	addi	sp,sp,-16
  80b728:	df000315 	stw	fp,12(sp)
  80b72c:	d839883a 	mov	fp,sp
  80b730:	e1000015 	stw	r4,0(fp)
  alt_u32 i;

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

  fd->fd_flags |= ALT_FD_DEV;
  80b734:	e0c00017 	ldw	r3,0(fp)
  80b738:	e0800017 	ldw	r2,0(fp)
  80b73c:	10800217 	ldw	r2,8(r2)
  80b740:	10900034 	orhi	r2,r2,16384
  80b744:	18800215 	stw	r2,8(r3)

  /*
   * 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++)
  80b748:	e0000115 	stw	zero,4(fp)
  80b74c:	d0e00f17 	ldw	r3,-32708(gp)
  80b750:	e0800117 	ldw	r2,4(fp)
  80b754:	18802036 	bltu	r3,r2,80b7d8 <alt_file_locked+0xb4>
  {
    if ((alt_fd_list[i].dev == fd->dev) &&
  80b758:	00c02074 	movhi	r3,129
  80b75c:	18f3fc04 	addi	r3,r3,-12304
  80b760:	e0800117 	ldw	r2,4(fp)
  80b764:	10800324 	muli	r2,r2,12
  80b768:	10c5883a 	add	r2,r2,r3
  80b76c:	e0c00017 	ldw	r3,0(fp)
  80b770:	11000017 	ldw	r4,0(r2)
  80b774:	18800017 	ldw	r2,0(r3)
  80b778:	2080131e 	bne	r4,r2,80b7c8 <alt_file_locked+0xa4>
  80b77c:	00c02074 	movhi	r3,129
  80b780:	18f3fc04 	addi	r3,r3,-12304
  80b784:	e0800117 	ldw	r2,4(fp)
  80b788:	10800324 	muli	r2,r2,12
  80b78c:	10c5883a 	add	r2,r2,r3
  80b790:	10800204 	addi	r2,r2,8
  80b794:	10800017 	ldw	r2,0(r2)
  80b798:	1004403a 	cmpge	r2,r2,zero
  80b79c:	10000a1e 	bne	r2,zero,80b7c8 <alt_file_locked+0xa4>
  80b7a0:	e0800117 	ldw	r2,4(fp)
  80b7a4:	10c00324 	muli	r3,r2,12
  80b7a8:	00802074 	movhi	r2,129
  80b7ac:	10b3fc04 	addi	r2,r2,-12304
  80b7b0:	1887883a 	add	r3,r3,r2
  80b7b4:	e0800017 	ldw	r2,0(fp)
  80b7b8:	18800326 	beq	r3,r2,80b7c8 <alt_file_locked+0xa4>
        (alt_fd_list[i].fd_flags & ALT_FD_EXCL) &&
        (&alt_fd_list[i] != fd))
    {
      return -EACCES;
  80b7bc:	00bffcc4 	movi	r2,-13
  80b7c0:	e0800215 	stw	r2,8(fp)
  80b7c4:	00000506 	br	80b7dc <alt_file_locked+0xb8>
  80b7c8:	e0800117 	ldw	r2,4(fp)
  80b7cc:	10800044 	addi	r2,r2,1
  80b7d0:	e0800115 	stw	r2,4(fp)
  80b7d4:	003fdd06 	br	80b74c <alt_file_locked+0x28>
    }
  }
  
  /* The device is not locked */
 
  return 0;
  80b7d8:	e0000215 	stw	zero,8(fp)
}
  80b7dc:	e0800217 	ldw	r2,8(fp)
  80b7e0:	df000317 	ldw	fp,12(sp)
  80b7e4:	dec00404 	addi	sp,sp,16
  80b7e8:	f800283a 	ret

0080b7ec <open>:

/*
 * open() is called in order to get a file descriptor that reference the file
 * or device named "name". This descriptor can then be used to manipulate the
 * file/device using the standard system calls, e.g. write(), read(), ioctl()
 * etc.
 *
 * This is equivalent to the standard open() system call.
 *
 * ALT_OPEN is mapped onto the open() system call in alt_syscall.h
 */
 
int ALT_OPEN (const char* file, int flags, int mode)
{ 
  80b7ec:	defff404 	addi	sp,sp,-48
  80b7f0:	dfc00b15 	stw	ra,44(sp)
  80b7f4:	df000a15 	stw	fp,40(sp)
  80b7f8:	d839883a 	mov	fp,sp
  80b7fc:	e1000015 	stw	r4,0(fp)
  80b800:	e1400115 	stw	r5,4(fp)
  80b804:	e1800215 	stw	r6,8(fp)
  alt_dev* dev;
  alt_fd*  fd;
  int index  = -1;
  80b808:	00bfffc4 	movi	r2,-1
  80b80c:	e0800515 	stw	r2,20(fp)
  int status = -ENODEV;
  80b810:	00bffb44 	movi	r2,-19
  80b814:	e0800615 	stw	r2,24(fp)
  int isafs = 0;
  80b818:	e0000715 	stw	zero,28(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)))
  80b81c:	e1000017 	ldw	r4,0(fp)
  80b820:	d1600d04 	addi	r5,gp,-32716
  80b824:	080bcb80 	call	80bcb8 <alt_find_dev>
  80b828:	e0800315 	stw	r2,12(fp)
  80b82c:	e0800317 	ldw	r2,12(fp)
  80b830:	1004c03a 	cmpne	r2,r2,zero
  80b834:	1000051e 	bne	r2,zero,80b84c <open+0x60>
  {
    /* No matching device, so try the filesystem list */

    dev   = alt_find_file (file);
  80b838:	e1000017 	ldw	r4,0(fp)
  80b83c:	080bd480 	call	80bd48 <alt_find_file>
  80b840:	e0800315 	stw	r2,12(fp)
    isafs = 1;
  80b844:	00800044 	movi	r2,1
  80b848:	e0800715 	stw	r2,28(fp)
  }

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

  if (dev)
  80b84c:	e0800317 	ldw	r2,12(fp)
  80b850:	1005003a 	cmpeq	r2,r2,zero
  80b854:	1000301e 	bne	r2,zero,80b918 <open+0x12c>
  {
    if ((index = alt_get_fd (dev)) < 0)
  80b858:	e1000317 	ldw	r4,12(fp)
  80b85c:	080be2c0 	call	80be2c <alt_get_fd>
  80b860:	e0800515 	stw	r2,20(fp)
  80b864:	e0800517 	ldw	r2,20(fp)
  80b868:	1004403a 	cmpge	r2,r2,zero
  80b86c:	1000031e 	bne	r2,zero,80b87c <open+0x90>
    {
      status = index;
  80b870:	e0800517 	ldw	r2,20(fp)
  80b874:	e0800615 	stw	r2,24(fp)
  80b878:	00002906 	br	80b920 <open+0x134>
    }
    else
    {
      fd = &alt_fd_list[index];
  80b87c:	e0800517 	ldw	r2,20(fp)
  80b880:	10c00324 	muli	r3,r2,12
  80b884:	00802074 	movhi	r2,129
  80b888:	10b3fc04 	addi	r2,r2,-12304
  80b88c:	1885883a 	add	r2,r3,r2
  80b890:	e0800415 	stw	r2,16(fp)
      fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK);
  80b894:	e1000417 	ldw	r4,16(fp)
  80b898:	e0c00117 	ldw	r3,4(fp)
  80b89c:	00900034 	movhi	r2,16384
  80b8a0:	10bfffc4 	addi	r2,r2,-1
  80b8a4:	1884703a 	and	r2,r3,r2
  80b8a8:	20800215 	stw	r2,8(r4)
      
      /* If this is a device, ensure it isn't already locked */

      if (isafs || ((status = alt_file_locked (fd)) >= 0))
  80b8ac:	e0800717 	ldw	r2,28(fp)
  80b8b0:	1004c03a 	cmpne	r2,r2,zero
  80b8b4:	1000071e 	bne	r2,zero,80b8d4 <open+0xe8>
  80b8b8:	e1000417 	ldw	r4,16(fp)
  80b8bc:	080b7240 	call	80b724 <alt_file_locked>
  80b8c0:	e0800615 	stw	r2,24(fp)
  80b8c4:	e0800617 	ldw	r2,24(fp)
  80b8c8:	1004403a 	cmpge	r2,r2,zero
  80b8cc:	1000011e 	bne	r2,zero,80b8d4 <open+0xe8>
  80b8d0:	00001306 	br	80b920 <open+0x134>
      {
        /* 
         * 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;
  80b8d4:	e0800317 	ldw	r2,12(fp)
  80b8d8:	10800317 	ldw	r2,12(r2)
  80b8dc:	1005003a 	cmpeq	r2,r2,zero
  80b8e0:	1000091e 	bne	r2,zero,80b908 <open+0x11c>
  80b8e4:	e0800317 	ldw	r2,12(fp)
  80b8e8:	10800317 	ldw	r2,12(r2)
  80b8ec:	e1000417 	ldw	r4,16(fp)
  80b8f0:	e1400017 	ldw	r5,0(fp)
  80b8f4:	e1800117 	ldw	r6,4(fp)
  80b8f8:	e1c00217 	ldw	r7,8(fp)
  80b8fc:	103ee83a 	callr	r2
  80b900:	e0800915 	stw	r2,36(fp)
  80b904:	00000106 	br	80b90c <open+0x120>
  80b908:	e0000915 	stw	zero,36(fp)
  80b90c:	e0800917 	ldw	r2,36(fp)
  80b910:	e0800615 	stw	r2,24(fp)
  80b914:	00000206 	br	80b920 <open+0x134>
      }
    }
  }
  else
  {
    status = -ENODEV;
  80b918:	00bffb44 	movi	r2,-19
  80b91c:	e0800615 	stw	r2,24(fp)
  }

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

  if (status < 0)
  80b920:	e0800617 	ldw	r2,24(fp)
  80b924:	1004403a 	cmpge	r2,r2,zero
  80b928:	1000091e 	bne	r2,zero,80b950 <open+0x164>
  {
    alt_release_fd (index);  
  80b92c:	e1000517 	ldw	r4,20(fp)
  80b930:	08095f00 	call	8095f0 <alt_release_fd>
    ALT_ERRNO = -status;
  80b934:	080b96c0 	call	80b96c <alt_get_errno>
  80b938:	e0c00617 	ldw	r3,24(fp)
  80b93c:	00c7c83a 	sub	r3,zero,r3
  80b940:	10c00015 	stw	r3,0(r2)
    return -1;
  80b944:	00bfffc4 	movi	r2,-1
  80b948:	e0800815 	stw	r2,32(fp)
  80b94c:	00000206 	br	80b958 <open+0x16c>
  }
  
  /* return the reference upon success */

  return index;
  80b950:	e0800517 	ldw	r2,20(fp)
  80b954:	e0800815 	stw	r2,32(fp)
}
  80b958:	e0800817 	ldw	r2,32(fp)
  80b95c:	dfc00b17 	ldw	ra,44(sp)
  80b960:	df000a17 	ldw	fp,40(sp)
  80b964:	dec00c04 	addi	sp,sp,48
  80b968:	f800283a 	ret

0080b96c <alt_get_errno>:

extern int errno;

static ALT_INLINE int* alt_get_errno(void)
{
  80b96c:	defffd04 	addi	sp,sp,-12
  80b970:	dfc00215 	stw	ra,8(sp)
  80b974:	df000115 	stw	fp,4(sp)
  80b978:	d839883a 	mov	fp,sp
  return ((alt_errno) ? alt_errno() : &errno);
  80b97c:	d0a01017 	ldw	r2,-32704(gp)
  80b980:	1005003a 	cmpeq	r2,r2,zero
  80b984:	1000041e 	bne	r2,zero,80b998 <alt_get_errno+0x2c>
  80b988:	d0a01017 	ldw	r2,-32704(gp)
  80b98c:	103ee83a 	callr	r2
  80b990:	e0800015 	stw	r2,0(fp)
  80b994:	00000206 	br	80b9a0 <alt_get_errno+0x34>
  80b998:	d0a01d04 	addi	r2,gp,-32652
  80b99c:	e0800015 	stw	r2,0(fp)
  80b9a0:	e0800017 	ldw	r2,0(fp)
}
  80b9a4:	dfc00217 	ldw	ra,8(sp)
  80b9a8:	df000117 	ldw	fp,4(sp)
  80b9ac:	dec00304 	addi	sp,sp,12
  80b9b0:	f800283a 	ret

0080b9b4 <alt_alarm_stop>:
 * the alarm executes.
 */

void alt_alarm_stop (alt_alarm* alarm)
{
  80b9b4:	defffb04 	addi	sp,sp,-20
  80b9b8:	df000415 	stw	fp,16(sp)
  80b9bc:	d839883a 	mov	fp,sp
  80b9c0:	e1000015 	stw	r4,0(fp)
       alt_irq_disable_all (void)
{
  alt_irq_context context;

  NIOS2_READ_STATUS (context);
  80b9c4:	0005303a 	rdctl	r2,status
  80b9c8:	e0800315 	stw	r2,12(fp)
  NIOS2_WRITE_STATUS (0);
  80b9cc:	0001703a 	wrctl	status,zero
  80b9d0:	e0800317 	ldw	r2,12(fp)
  80b9d4:	e0800215 	stw	r2,8(fp)
  80b9d8:	e0800217 	ldw	r2,8(fp)
  80b9dc:	e0800115 	stw	r2,4(fp)
 * input argument is the element to remove.
 */
     
static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry)
{
  80b9e0:	e0800017 	ldw	r2,0(fp)
  80b9e4:	e0800315 	stw	r2,12(fp)
  entry->next->previous = entry->previous;
  80b9e8:	e0800317 	ldw	r2,12(fp)
  80b9ec:	10c00017 	ldw	r3,0(r2)
  80b9f0:	e0800317 	ldw	r2,12(fp)
  80b9f4:	10800117 	ldw	r2,4(r2)
  80b9f8:	18800115 	stw	r2,4(r3)
  entry->previous->next = entry->next;
  80b9fc:	e0800317 	ldw	r2,12(fp)
  80ba00:	10c00117 	ldw	r3,4(r2)
  80ba04:	e0800317 	ldw	r2,12(fp)
  80ba08:	10800017 	ldw	r2,0(r2)
  80ba0c:	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;
  80ba10:	e0c00317 	ldw	r3,12(fp)
  80ba14:	e0800317 	ldw	r2,12(fp)
  80ba18:	18800115 	stw	r2,4(r3)
  entry->next     = entry;
  80ba1c:	e0c00317 	ldw	r3,12(fp)
  80ba20:	e0800317 	ldw	r2,12(fp)
  80ba24:	18800015 	stw	r2,0(r3)
 */

static ALT_INLINE void ALT_ALWAYS_INLINE 
       alt_irq_enable_all (alt_irq_context context)
{
  80ba28:	e0800117 	ldw	r2,4(fp)
  80ba2c:	e0800315 	stw	r2,12(fp)
  NIOS2_WRITE_STATUS (context);
  80ba30:	e0800317 	ldw	r2,12(fp)
  80ba34:	1001703a 	wrctl	status,r2
  alt_irq_context irq_context;

  irq_context = alt_irq_disable_all();
  alt_llist_remove (&alarm->llist);
  alt_irq_enable_all (irq_context);
}
  80ba38:	df000417 	ldw	fp,16(sp)
  80ba3c:	dec00504 	addi	sp,sp,20
  80ba40:	f800283a 	ret

0080ba44 <alt_tick>:

/*
 * alt_tick() is periodically called by the system clock driver in order to
 * process the registered list of alarms. Each alarm is registed with a
 * callback interval, and a callback function, "callback". 
 *
 * The return value of the callback function indicates how many ticks are to
 * elapse until the next callback. A return value of zero indicates that the
 * alarm should be deactivated. 
 * 
 * alt_tick() is expected to run at interrupt level.
 */

void alt_tick (void)
{
  80ba44:	defffb04 	addi	sp,sp,-20
  80ba48:	dfc00415 	stw	ra,16(sp)
  80ba4c:	df000315 	stw	fp,12(sp)
  80ba50:	d839883a 	mov	fp,sp
  alt_alarm* next;
  alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next;
  80ba54:	d0a01a17 	ldw	r2,-32664(gp)
  80ba58:	e0800115 	stw	r2,4(fp)

  alt_u32    next_callback;

  /* update the tick counter */

  _alt_nticks++;
  80ba5c:	d0a01917 	ldw	r2,-32668(gp)
  80ba60:	10800044 	addi	r2,r2,1
  80ba64:	d0a01915 	stw	r2,-32668(gp)

  /* process the registered callbacks */

  while (alarm != (alt_alarm*) &alt_alarm_list)
  80ba68:	e0c00117 	ldw	r3,4(fp)
  80ba6c:	d0a01a04 	addi	r2,gp,-32664
  80ba70:	18803026 	beq	r3,r2,80bb34 <alt_tick+0xf0>
  {
    next = (alt_alarm*) alarm->llist.next;
  80ba74:	e0800117 	ldw	r2,4(fp)
  80ba78:	10800017 	ldw	r2,0(r2)
  80ba7c:	e0800015 	stw	r2,0(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))
  80ba80:	e0800117 	ldw	r2,4(fp)
  80ba84:	10800403 	ldbu	r2,16(r2)
  80ba88:	1005003a 	cmpeq	r2,r2,zero
  80ba8c:	1000051e 	bne	r2,zero,80baa4 <alt_tick+0x60>
  80ba90:	d0a01917 	ldw	r2,-32668(gp)
  80ba94:	1004c03a 	cmpne	r2,r2,zero
  80ba98:	1000021e 	bne	r2,zero,80baa4 <alt_tick+0x60>
    {
      alarm->rollover = 0;
  80ba9c:	e0800117 	ldw	r2,4(fp)
  80baa0:	10000405 	stb	zero,16(r2)
    }
    
    /* if the alarm period has expired, make the callback */    
    if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0))
  80baa4:	e0800117 	ldw	r2,4(fp)
  80baa8:	10c00217 	ldw	r3,8(r2)
  80baac:	d0a01917 	ldw	r2,-32668(gp)
  80bab0:	10c01d36 	bltu	r2,r3,80bb28 <alt_tick+0xe4>
  80bab4:	e0800117 	ldw	r2,4(fp)
  80bab8:	10800403 	ldbu	r2,16(r2)
  80babc:	1004c03a 	cmpne	r2,r2,zero
  80bac0:	1000191e 	bne	r2,zero,80bb28 <alt_tick+0xe4>
    {
      next_callback = alarm->callback (alarm->context);
  80bac4:	e0800117 	ldw	r2,4(fp)
  80bac8:	e0c00117 	ldw	r3,4(fp)
  80bacc:	10800317 	ldw	r2,12(r2)
  80bad0:	19000517 	ldw	r4,20(r3)
  80bad4:	103ee83a 	callr	r2
  80bad8:	e0800215 	stw	r2,8(fp)

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

      if (next_callback == 0)
  80badc:	e0800217 	ldw	r2,8(fp)
  80bae0:	1004c03a 	cmpne	r2,r2,zero
  80bae4:	1000031e 	bne	r2,zero,80baf4 <alt_tick+0xb0>
      {
        alt_alarm_stop (alarm);
  80bae8:	e1000117 	ldw	r4,4(fp)
  80baec:	080b9b40 	call	80b9b4 <alt_alarm_stop>
  80baf0:	00000d06 	br	80bb28 <alt_tick+0xe4>
      }
      else
      {
        alarm->time += next_callback;
  80baf4:	e1000117 	ldw	r4,4(fp)
  80baf8:	e0800117 	ldw	r2,4(fp)
  80bafc:	10c00217 	ldw	r3,8(r2)
  80bb00:	e0800217 	ldw	r2,8(fp)
  80bb04:	1885883a 	add	r2,r3,r2
  80bb08:	20800215 	stw	r2,8(r4)
        
        /* 
         * 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)
  80bb0c:	e0800117 	ldw	r2,4(fp)
  80bb10:	10c00217 	ldw	r3,8(r2)
  80bb14:	d0a01917 	ldw	r2,-32668(gp)
  80bb18:	1880032e 	bgeu	r3,r2,80bb28 <alt_tick+0xe4>
        {
          alarm->rollover = 1;
  80bb1c:	e0c00117 	ldw	r3,4(fp)
  80bb20:	00800044 	movi	r2,1
  80bb24:	18800405 	stb	r2,16(r3)
        }
      }
    }
    alarm = next;
  80bb28:	e0800017 	ldw	r2,0(fp)
  80bb2c:	e0800115 	stw	r2,4(fp)
  80bb30:	003fcd06 	br	80ba68 <alt_tick+0x24>
  }

  /* 
   * Update the operating system specific timer facilities.
   */

  ALT_OS_TIME_TICK();
}
  80bb34:	dfc00417 	ldw	ra,16(sp)
  80bb38:	df000317 	ldw	fp,12(sp)
  80bb3c:	dec00504 	addi	sp,sp,20
  80bb40:	f800283a 	ret

0080bb44 <usleep>:
 * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h 
 */

unsigned int ALT_USLEEP (unsigned int us)
{
  80bb44:	defffd04 	addi	sp,sp,-12
  80bb48:	dfc00215 	stw	ra,8(sp)
  80bb4c:	df000115 	stw	fp,4(sp)
  80bb50:	d839883a 	mov	fp,sp
  80bb54:	e1000015 	stw	r4,0(fp)
  return alt_busy_sleep(us);
  80bb58:	e1000017 	ldw	r4,0(fp)
  80bb5c:	080bb700 	call	80bb70 <alt_busy_sleep>
}
  80bb60:	dfc00217 	ldw	ra,8(sp)
  80bb64:	df000117 	ldw	fp,4(sp)
  80bb68:	dec00304 	addi	sp,sp,12
  80bb6c:	f800283a 	ret

0080bb70 <alt_busy_sleep>:

#include "priv/alt_busy_sleep.h"

unsigned int alt_busy_sleep (unsigned int us)
{
  80bb70:	defffa04 	addi	sp,sp,-24
  80bb74:	dfc00515 	stw	ra,20(sp)
  80bb78:	df000415 	stw	fp,16(sp)
  80bb7c:	d839883a 	mov	fp,sp
  80bb80:	e1000015 	stw	r4,0(fp)
/*
 * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software
 * is built targetting ModelSim RTL simulation, the delay will be
 * skipped to speed up simulation.
 */
#ifndef ALT_SIM_OPTIMIZE
  int i;
  int big_loops;
  alt_u32 cycles_per_loop;
  
  if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny"))
  {
    cycles_per_loop = 9;
  }
  else  
  {
    cycles_per_loop = 3;
  80bb84:	008000c4 	movi	r2,3
  80bb88:	e0800315 	stw	r2,12(fp)
  }
  

  big_loops = us / (INT_MAX/
  80bb8c:	e0c00317 	ldw	r3,12(fp)
  80bb90:	008003f4 	movhi	r2,15
  80bb94:	10909004 	addi	r2,r2,16960
  80bb98:	188b383a 	mul	r5,r3,r2
  80bb9c:	0100bef4 	movhi	r4,763
  80bba0:	213c2004 	addi	r4,r4,-3968
  80bba4:	08088140 	call	808814 <__udivsi3>
  80bba8:	100b883a 	mov	r5,r2
  80bbac:	01200034 	movhi	r4,32768
  80bbb0:	213fffc4 	addi	r4,r4,-1
  80bbb4:	08088140 	call	808814 <__udivsi3>
  80bbb8:	100b883a 	mov	r5,r2
  80bbbc:	e1000017 	ldw	r4,0(fp)
  80bbc0:	08088140 	call	808814 <__udivsi3>
  80bbc4:	e0800215 	stw	r2,8(fp)
  (ALT_CPU_FREQ/(cycles_per_loop * 1000000)));

  if (big_loops)
  80bbc8:	e0800217 	ldw	r2,8(fp)
  80bbcc:	1005003a 	cmpeq	r2,r2,zero
  80bbd0:	1000281e 	bne	r2,zero,80bc74 <alt_busy_sleep+0x104>
  {
    for(i=0;i<big_loops;i++)
  80bbd4:	e0000115 	stw	zero,4(fp)
  80bbd8:	e0c00117 	ldw	r3,4(fp)
  80bbdc:	e0800217 	ldw	r2,8(fp)
  80bbe0:	1880170e 	bge	r3,r2,80bc40 <alt_busy_sleep+0xd0>
    {
      /*
      * 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 (
  80bbe4:	00a00034 	movhi	r2,32768
  80bbe8:	10bfffc4 	addi	r2,r2,-1
  80bbec:	10bfffc4 	addi	r2,r2,-1
  80bbf0:	103ffe1e 	bne	r2,zero,80bbec <alt_busy_sleep+0x7c>
        "\n0:"
        "\n\taddi %0,%0, -1"
        "\n\tbne %0,zero,0b"
        "\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/
  80bbf4:	e0c00317 	ldw	r3,12(fp)
  80bbf8:	008003f4 	movhi	r2,15
  80bbfc:	10909004 	addi	r2,r2,16960
  80bc00:	188b383a 	mul	r5,r3,r2
  80bc04:	0100bef4 	movhi	r4,763
  80bc08:	213c2004 	addi	r4,r4,-3968
  80bc0c:	08088140 	call	808814 <__udivsi3>
  80bc10:	100b883a 	mov	r5,r2
  80bc14:	01200034 	movhi	r4,32768
  80bc18:	213fffc4 	addi	r4,r4,-1
  80bc1c:	08088140 	call	808814 <__udivsi3>
  80bc20:	1007883a 	mov	r3,r2
  80bc24:	e0800017 	ldw	r2,0(fp)
  80bc28:	10c5c83a 	sub	r2,r2,r3
  80bc2c:	e0800015 	stw	r2,0(fp)
  80bc30:	e0800117 	ldw	r2,4(fp)
  80bc34:	10800044 	addi	r2,r2,1
  80bc38:	e0800115 	stw	r2,4(fp)
  80bc3c:	003fe606 	br	80bbd8 <alt_busy_sleep+0x68>
      (cycles_per_loop * 1000000)));
    }

    /*
    * 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 (
  80bc40:	e0c00317 	ldw	r3,12(fp)
  80bc44:	008003f4 	movhi	r2,15
  80bc48:	10909004 	addi	r2,r2,16960
  80bc4c:	188b383a 	mul	r5,r3,r2
  80bc50:	0100bef4 	movhi	r4,763
  80bc54:	213c2004 	addi	r4,r4,-3968
  80bc58:	08088140 	call	808814 <__udivsi3>
  80bc5c:	1007883a 	mov	r3,r2
  80bc60:	e0800017 	ldw	r2,0(fp)
  80bc64:	1885383a 	mul	r2,r3,r2
  80bc68:	10bfffc4 	addi	r2,r2,-1
  80bc6c:	103ffe1e 	bne	r2,zero,80bc68 <alt_busy_sleep+0xf8>
  80bc70:	00000c06 	br	80bca4 <alt_busy_sleep+0x134>
      "\n0:"
      "\n\taddi %0,%0, -1"
      "\n\tbne %0,zero,0b"
      "\n1:"
      "\n\t.pushsection .debug_alt_sim_info"
      "\n\t.int 4, 0, 0b, 1b"
      "\n\t.popsection"
      :: "r" (us*(ALT_CPU_FREQ/(cycles_per_loop * 1000000))));
  }
  else
  {
    /*
    * 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 (
  80bc74:	e0c00317 	ldw	r3,12(fp)
  80bc78:	008003f4 	movhi	r2,15
  80bc7c:	10909004 	addi	r2,r2,16960
  80bc80:	188b383a 	mul	r5,r3,r2
  80bc84:	0100bef4 	movhi	r4,763
  80bc88:	213c2004 	addi	r4,r4,-3968
  80bc8c:	08088140 	call	808814 <__udivsi3>
  80bc90:	1007883a 	mov	r3,r2
  80bc94:	e0800017 	ldw	r2,0(fp)
  80bc98:	1885383a 	mul	r2,r3,r2
  80bc9c:	10bfffc4 	addi	r2,r2,-1
  80bca0:	00bffe16 	blt	zero,r2,80bc9c <alt_busy_sleep+0x12c>
      "\n0:"
      "\n\taddi %0,%0, -1"
      "\n\tbgt %0,zero,0b"
      "\n1:"
      "\n\t.pushsection .debug_alt_sim_info"
      "\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;
  80bca4:	0005883a 	mov	r2,zero
}
  80bca8:	dfc00517 	ldw	ra,20(sp)
  80bcac:	df000417 	ldw	fp,16(sp)
  80bcb0:	dec00604 	addi	sp,sp,24
  80bcb4:	f800283a 	ret

0080bcb8 <alt_find_dev>:
 * be found.
 */
 
alt_dev* alt_find_dev(const char* name, alt_llist* llist)
{
  80bcb8:	defff904 	addi	sp,sp,-28
  80bcbc:	dfc00615 	stw	ra,24(sp)
  80bcc0:	df000515 	stw	fp,20(sp)
  80bcc4:	d839883a 	mov	fp,sp
  80bcc8:	e1000015 	stw	r4,0(fp)
  80bccc:	e1400115 	stw	r5,4(fp)
  alt_dev* next = (alt_dev*) llist->next;
  80bcd0:	e0800117 	ldw	r2,4(fp)
  80bcd4:	10800017 	ldw	r2,0(r2)
  80bcd8:	e0800215 	stw	r2,8(fp)
  alt_32 len;

  len  = strlen(name) + 1;
  80bcdc:	e1000017 	ldw	r4,0(fp)
  80bce0:	0806ae80 	call	806ae8 <strlen>
  80bce4:	10800044 	addi	r2,r2,1
  80bce8:	e0800315 	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*) llist)
  80bcec:	e0c00217 	ldw	r3,8(fp)
  80bcf0:	e0800117 	ldw	r2,4(fp)
  80bcf4:	18800e26 	beq	r3,r2,80bd30 <alt_find_dev+0x78>
  {

    /* 
     * memcmp() is used here rather than strcmp() in order to reduce the size
     * of the executable.
     */

    if (!memcmp (next->name, name, len))
  80bcf8:	e0800217 	ldw	r2,8(fp)
  80bcfc:	11000217 	ldw	r4,8(r2)
  80bd00:	e1400017 	ldw	r5,0(fp)
  80bd04:	e1800317 	ldw	r6,12(fp)
  80bd08:	080c0e40 	call	80c0e4 <memcmp>
  80bd0c:	1004c03a 	cmpne	r2,r2,zero
  80bd10:	1000031e 	bne	r2,zero,80bd20 <alt_find_dev+0x68>
    {
      /* match found */

      return next;
  80bd14:	e0800217 	ldw	r2,8(fp)
  80bd18:	e0800415 	stw	r2,16(fp)
  80bd1c:	00000506 	br	80bd34 <alt_find_dev+0x7c>
    }
    next = (alt_dev*) next->llist.next;
  80bd20:	e0800217 	ldw	r2,8(fp)
  80bd24:	10800017 	ldw	r2,0(r2)
  80bd28:	e0800215 	stw	r2,8(fp)
  80bd2c:	003fef06 	br	80bcec <alt_find_dev+0x34>
  }
  
  /* No match found */
  
  return NULL;
  80bd30:	e0000415 	stw	zero,16(fp)
}
  80bd34:	e0800417 	ldw	r2,16(fp)
  80bd38:	dfc00617 	ldw	ra,24(sp)
  80bd3c:	df000517 	ldw	fp,20(sp)
  80bd40:	dec00704 	addi	sp,sp,28
  80bd44:	f800283a 	ret

0080bd48 <alt_find_file>:
 * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". 
 */
 
alt_dev* alt_find_file (const char* name)
{
  80bd48:	defffa04 	addi	sp,sp,-24
  80bd4c:	dfc00515 	stw	ra,20(sp)
  80bd50:	df000415 	stw	fp,16(sp)
  80bd54:	d839883a 	mov	fp,sp
  80bd58:	e1000015 	stw	r4,0(fp)
  alt_dev* next = (alt_dev*) alt_fs_list.next;   
  80bd5c:	d0a00b17 	ldw	r2,-32724(gp)
  80bd60:	e0800115 	stw	r2,4(fp)

  alt_32 len;
 
  /*
   * 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)
  80bd64:	e0c00117 	ldw	r3,4(fp)
  80bd68:	d0a00b04 	addi	r2,gp,-32724
  80bd6c:	18802926 	beq	r3,r2,80be14 <alt_find_file+0xcc>
  {
    len = strlen(next->name);
  80bd70:	e0800117 	ldw	r2,4(fp)
  80bd74:	11000217 	ldw	r4,8(r2)
  80bd78:	0806ae80 	call	806ae8 <strlen>
  80bd7c:	e0800215 	stw	r2,8(fp)
    
    if (next->name[len-1] == '/')
  80bd80:	e0800117 	ldw	r2,4(fp)
  80bd84:	10c00217 	ldw	r3,8(r2)
  80bd88:	e0800217 	ldw	r2,8(fp)
  80bd8c:	1885883a 	add	r2,r3,r2
  80bd90:	10bfffc4 	addi	r2,r2,-1
  80bd94:	10800007 	ldb	r2,0(r2)
  80bd98:	10800bd8 	cmpnei	r2,r2,47
  80bd9c:	1000031e 	bne	r2,zero,80bdac <alt_find_file+0x64>
    {
      len -= 1;
  80bda0:	e0800217 	ldw	r2,8(fp)
  80bda4:	10bfffc4 	addi	r2,r2,-1
  80bda8:	e0800215 	stw	r2,8(fp)
    }

    if (((name[len] == '/') || (name[len] == '\0')) && 
  80bdac:	e0c00017 	ldw	r3,0(fp)
  80bdb0:	e0800217 	ldw	r2,8(fp)
  80bdb4:	1885883a 	add	r2,r3,r2
  80bdb8:	10800007 	ldb	r2,0(r2)
  80bdbc:	10800be0 	cmpeqi	r2,r2,47
  80bdc0:	1000061e 	bne	r2,zero,80bddc <alt_find_file+0x94>
  80bdc4:	e0c00017 	ldw	r3,0(fp)
  80bdc8:	e0800217 	ldw	r2,8(fp)
  80bdcc:	1885883a 	add	r2,r3,r2
  80bdd0:	10800007 	ldb	r2,0(r2)
  80bdd4:	1004c03a 	cmpne	r2,r2,zero
  80bdd8:	10000a1e 	bne	r2,zero,80be04 <alt_find_file+0xbc>
  80bddc:	e0800117 	ldw	r2,4(fp)
  80bde0:	11000217 	ldw	r4,8(r2)
  80bde4:	e1400017 	ldw	r5,0(fp)
  80bde8:	e1800217 	ldw	r6,8(fp)
  80bdec:	080c0e40 	call	80c0e4 <memcmp>
  80bdf0:	1004c03a 	cmpne	r2,r2,zero
  80bdf4:	1000031e 	bne	r2,zero,80be04 <alt_find_file+0xbc>
        !memcmp (next->name, name, len))
    {
      /* match found */

      return next;
  80bdf8:	e0800117 	ldw	r2,4(fp)
  80bdfc:	e0800315 	stw	r2,12(fp)
  80be00:	00000506 	br	80be18 <alt_find_file+0xd0>
    }
    next = (alt_dev*) next->llist.next;
  80be04:	e0800117 	ldw	r2,4(fp)
  80be08:	10800017 	ldw	r2,0(r2)
  80be0c:	e0800115 	stw	r2,4(fp)
  80be10:	003fd406 	br	80bd64 <alt_find_file+0x1c>
  }
  
  /* No match found */
  
  return NULL;     
  80be14:	e0000315 	stw	zero,12(fp)
}
  80be18:	e0800317 	ldw	r2,12(fp)
  80be1c:	dfc00517 	ldw	ra,20(sp)
  80be20:	df000417 	ldw	fp,16(sp)
  80be24:	dec00604 	addi	sp,sp,24
  80be28:	f800283a 	ret

0080be2c <alt_get_fd>:
 * negative value indicates failure.
 */

int alt_get_fd (alt_dev* dev)
{
  80be2c:	defffa04 	addi	sp,sp,-24
  80be30:	df000515 	stw	fp,20(sp)
  80be34:	d839883a 	mov	fp,sp
  80be38:	e1000015 	stw	r4,0(fp)
  alt_32 i;
  int rc = -EMFILE;
  80be3c:	00bffa04 	movi	r2,-24
  80be40:	e0800215 	stw	r2,8(fp)
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  80be44:	e0000315 	stw	zero,12(fp)
  
  /* 
   * Take the alt_fd_list_lock semaphore in order to avoid races when 
   * accessing the file descriptor pool.
   */
  
  ALT_SEM_PEND(alt_fd_list_lock, 0);
  
  /* 
   * Search through the list of file descriptors, and allocate the first
   * free descriptor that's found. 
   *
   * If a free descriptor is found, then the value of "alt_max_fd" is 
   * updated accordingly. "alt_max_fd" is a 'highwater mark' which 
   * 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++)
  80be48:	e0000115 	stw	zero,4(fp)
  80be4c:	e0800117 	ldw	r2,4(fp)
  80be50:	10800808 	cmpgei	r2,r2,32
  80be54:	10001b1e 	bne	r2,zero,80bec4 <alt_get_fd+0x98>
  {
    if (!alt_fd_list[i].dev)
  80be58:	00c02074 	movhi	r3,129
  80be5c:	18f3fc04 	addi	r3,r3,-12304
  80be60:	e0800117 	ldw	r2,4(fp)
  80be64:	10800324 	muli	r2,r2,12
  80be68:	10c5883a 	add	r2,r2,r3
  80be6c:	10800017 	ldw	r2,0(r2)
  80be70:	1004c03a 	cmpne	r2,r2,zero
  80be74:	10000f1e 	bne	r2,zero,80beb4 <alt_get_fd+0x88>
    {
      alt_fd_list[i].dev = dev;
  80be78:	00c02074 	movhi	r3,129
  80be7c:	18f3fc04 	addi	r3,r3,-12304
  80be80:	e0800117 	ldw	r2,4(fp)
  80be84:	10800324 	muli	r2,r2,12
  80be88:	10c7883a 	add	r3,r2,r3
  80be8c:	e0800017 	ldw	r2,0(fp)
  80be90:	18800015 	stw	r2,0(r3)
      if (i > alt_max_fd)
  80be94:	e0c00117 	ldw	r3,4(fp)
  80be98:	d0a00f17 	ldw	r2,-32708(gp)
  80be9c:	10c0020e 	bge	r2,r3,80bea8 <alt_get_fd+0x7c>
      {
        alt_max_fd = i;
  80bea0:	e0800117 	ldw	r2,4(fp)
  80bea4:	d0a00f15 	stw	r2,-32708(gp)
      }
      rc = i;
  80bea8:	e0800117 	ldw	r2,4(fp)
  80beac:	e0800215 	stw	r2,8(fp)
      goto alt_get_fd_exit;
  80beb0:	00000406 	br	80bec4 <alt_get_fd+0x98>
  80beb4:	e0800117 	ldw	r2,4(fp)
  80beb8:	10800044 	addi	r2,r2,1
  80bebc:	e0800115 	stw	r2,4(fp)
  80bec0:	003fe206 	br	80be4c <alt_get_fd+0x20>
 */

static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void)
{
  return 0;
  80bec4:	e0000415 	stw	zero,16(fp)
    }
  }

 alt_get_fd_exit:

  /*
   * Release the alt_fd_list_lock semaphore now that we are done with the
   * file descriptor pool.
   */

  ALT_SEM_POST(alt_fd_list_lock);

  return rc;
  80bec8:	e0800217 	ldw	r2,8(fp)
}
  80becc:	df000517 	ldw	fp,20(sp)
  80bed0:	dec00604 	addi	sp,sp,24
  80bed4:	f800283a 	ret

0080bed8 <alt_icache_flush>:
 * region of length "len" bytes, starting at address "start".
 */

void alt_icache_flush (void* start, alt_u32 len)
{
  80bed8:	defffb04 	addi	sp,sp,-20
  80bedc:	df000415 	stw	fp,16(sp)
  80bee0:	d839883a 	mov	fp,sp
  80bee4:	e1000015 	stw	r4,0(fp)
  80bee8:	e1400115 	stw	r5,4(fp)
#if NIOS2_ICACHE_SIZE > 0

  char* i;
  char* end;

  /*
   * This is the most we would ever need to flush.
   */
 
  if (len > NIOS2_ICACHE_SIZE)
  80beec:	e0800117 	ldw	r2,4(fp)
  80bef0:	10840070 	cmpltui	r2,r2,4097
  80bef4:	1000021e 	bne	r2,zero,80bf00 <alt_icache_flush+0x28>
  {
    len = NIOS2_ICACHE_SIZE;
  80bef8:	00840004 	movi	r2,4096
  80befc:	e0800115 	stw	r2,4(fp)
  }

  end = ((char*) start) + len;
  80bf00:	e0c00017 	ldw	r3,0(fp)
  80bf04:	e0800117 	ldw	r2,4(fp)
  80bf08:	1885883a 	add	r2,r3,r2
  80bf0c:	e0800315 	stw	r2,12(fp)

  for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE)
  80bf10:	e0800017 	ldw	r2,0(fp)
  80bf14:	e0800215 	stw	r2,8(fp)
  80bf18:	e0c00217 	ldw	r3,8(fp)
  80bf1c:	e0800317 	ldw	r2,12(fp)
  80bf20:	1880062e 	bgeu	r3,r2,80bf3c <alt_icache_flush+0x64>
  { 
    __asm__ volatile ("flushi %0" :: "r" (i)); 
  80bf24:	e0800217 	ldw	r2,8(fp)
  80bf28:	1000603a 	flushi	r2
  80bf2c:	e0800217 	ldw	r2,8(fp)
  80bf30:	10800804 	addi	r2,r2,32
  80bf34:	e0800215 	stw	r2,8(fp)
  80bf38:	003ff706 	br	80bf18 <alt_icache_flush+0x40>
  }

  /* 
   * For an unaligned flush request, we've got one more line left.
   * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a 
   * multiple of 2 (which it always is).
   */

  if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1))
  80bf3c:	e0800017 	ldw	r2,0(fp)
  80bf40:	108007cc 	andi	r2,r2,31
  80bf44:	1005003a 	cmpeq	r2,r2,zero
  80bf48:	1000021e 	bne	r2,zero,80bf54 <alt_icache_flush+0x7c>
  {
    __asm__ volatile ("flushi %0" :: "r" (i));
  80bf4c:	e0800217 	ldw	r2,8(fp)
  80bf50:	1000603a 	flushi	r2
  }

  /* 
   * Having flushed the cache, flush any stale instructions in the 
   * pipeline 
   */

  __asm__ volatile ("flushp");
  80bf54:	0000203a 	flushp

#endif /* NIOS2_ICACHE_SIZE > 0 */
}
  80bf58:	df000417 	ldw	fp,16(sp)
  80bf5c:	dec00504 	addi	sp,sp,20
  80bf60:	f800283a 	ret

0080bf64 <atexit>:
  80bf64:	d0a00017 	ldw	r2,-32768(gp)
  80bf68:	defffe04 	addi	sp,sp,-8
  80bf6c:	dc000015 	stw	r16,0(sp)
  80bf70:	dfc00115 	stw	ra,4(sp)
  80bf74:	11405217 	ldw	r5,328(r2)
  80bf78:	2021883a 	mov	r16,r4
  80bf7c:	01004304 	movi	r4,268
  80bf80:	28001b26 	beq	r5,zero,80bff0 <atexit+0x8c>
  80bf84:	28c00117 	ldw	r3,4(r5)
  80bf88:	008007c4 	movi	r2,31
  80bf8c:	10c00d16 	blt	r2,r3,80bfc4 <atexit+0x60>
  80bf90:	28800104 	addi	r2,r5,4
  80bf94:	10c00017 	ldw	r3,0(r2)
  80bf98:	000d883a 	mov	r6,zero
  80bf9c:	180890ba 	slli	r4,r3,2
  80bfa0:	18c00044 	addi	r3,r3,1
  80bfa4:	10c00015 	stw	r3,0(r2)
  80bfa8:	2149883a 	add	r4,r4,r5
  80bfac:	24000215 	stw	r16,8(r4)
  80bfb0:	3005883a 	mov	r2,r6
  80bfb4:	dfc00117 	ldw	ra,4(sp)
  80bfb8:	dc000017 	ldw	r16,0(sp)
  80bfbc:	dec00204 	addi	sp,sp,8
  80bfc0:	f800283a 	ret
  80bfc4:	08049c80 	call	8049c8 <malloc>
  80bfc8:	100b883a 	mov	r5,r2
  80bfcc:	01bfffc4 	movi	r6,-1
  80bfd0:	103ff726 	beq	r2,zero,80bfb0 <atexit+0x4c>
  80bfd4:	d0e00017 	ldw	r3,-32768(gp)
  80bfd8:	10004215 	stw	zero,264(r2)
  80bfdc:	10000115 	stw	zero,4(r2)
  80bfe0:	18805217 	ldw	r2,328(r3)
  80bfe4:	28800015 	stw	r2,0(r5)
  80bfe8:	19405215 	stw	r5,328(r3)
  80bfec:	003fe806 	br	80bf90 <atexit+0x2c>
  80bff0:	01402074 	movhi	r5,129
  80bff4:	29791b04 	addi	r5,r5,-7060
  80bff8:	11405215 	stw	r5,328(r2)
  80bffc:	003fe106 	br	80bf84 <atexit+0x20>

0080c000 <exit>:
  80c000:	d0a00017 	ldw	r2,-32768(gp)
  80c004:	defff804 	addi	sp,sp,-32
  80c008:	dd800015 	stw	r22,0(sp)
  80c00c:	dfc00715 	stw	ra,28(sp)
  80c010:	dc000615 	stw	r16,24(sp)
  80c014:	dc400515 	stw	r17,20(sp)
  80c018:	dc800415 	stw	r18,16(sp)
  80c01c:	dcc00315 	stw	r19,12(sp)
  80c020:	dd000215 	stw	r20,8(sp)
  80c024:	dd400115 	stw	r21,4(sp)
  80c028:	15005217 	ldw	r20,328(r2)
  80c02c:	202d883a 	mov	r22,r4
  80c030:	a0002526 	beq	r20,zero,80c0c8 <exit+0xc8>
  80c034:	a0800117 	ldw	r2,4(r20)
  80c038:	a5402204 	addi	r21,r20,136
  80c03c:	0027883a 	mov	r19,zero
  80c040:	143fffc4 	addi	r16,r2,-1
  80c044:	8006803a 	cmplt	r3,r16,zero
  80c048:	1800021e 	bne	r3,zero,80c054 <exit+0x54>
  80c04c:	00800044 	movi	r2,1
  80c050:	1426983a 	sll	r19,r2,r16
  80c054:	1800191e 	bne	r3,zero,80c0bc <exit+0xbc>
  80c058:	800490ba 	slli	r2,r16,2
  80c05c:	1025883a 	mov	r18,r2
  80c060:	1505883a 	add	r2,r2,r20
  80c064:	14400204 	addi	r17,r2,8
  80c068:	00000806 	br	80c08c <exit+0x8c>
  80c06c:	88800017 	ldw	r2,0(r17)
  80c070:	29400017 	ldw	r5,0(r5)
  80c074:	843fffc4 	addi	r16,r16,-1
  80c078:	94bfff04 	addi	r18,r18,-4
  80c07c:	103ee83a 	callr	r2
  80c080:	8c7fff04 	addi	r17,r17,-4
  80c084:	9827d07a 	srai	r19,r19,1
  80c088:	80000c16 	blt	r16,zero,80c0bc <exit+0xbc>
  80c08c:	a8802017 	ldw	r2,128(r21)
  80c090:	954b883a 	add	r5,r18,r21
  80c094:	b009883a 	mov	r4,r22
  80c098:	14c4703a 	and	r2,r2,r19
  80c09c:	103ff31e 	bne	r2,zero,80c06c <exit+0x6c>
  80c0a0:	88800017 	ldw	r2,0(r17)
  80c0a4:	843fffc4 	addi	r16,r16,-1
  80c0a8:	94bfff04 	addi	r18,r18,-4
  80c0ac:	103ee83a 	callr	r2
  80c0b0:	8c7fff04 	addi	r17,r17,-4
  80c0b4:	9827d07a 	srai	r19,r19,1
  80c0b8:	803ff40e 	bge	r16,zero,80c08c <exit+0x8c>
  80c0bc:	a5000017 	ldw	r20,0(r20)
  80c0c0:	a03fdc1e 	bne	r20,zero,80c034 <exit+0x34>
  80c0c4:	d0a00017 	ldw	r2,-32768(gp)
  80c0c8:	10c00f17 	ldw	r3,60(r2)
  80c0cc:	1800021e 	bne	r3,zero,80c0d8 <exit+0xd8>
  80c0d0:	b009883a 	mov	r4,r22
  80c0d4:	080c1840 	call	80c184 <_exit>
  80c0d8:	1009883a 	mov	r4,r2
  80c0dc:	183ee83a 	callr	r3
  80c0e0:	003ffb06 	br	80c0d0 <exit+0xd0>

0080c0e4 <memcmp>:
  80c0e4:	01c000c4 	movi	r7,3
  80c0e8:	3980032e 	bgeu	r7,r6,80c0f8 <memcmp+0x14>
  80c0ec:	2144b03a 	or	r2,r4,r5
  80c0f0:	11c4703a 	and	r2,r2,r7
  80c0f4:	10000d26 	beq	r2,zero,80c12c <memcmp+0x48>
  80c0f8:	31bfffc4 	addi	r6,r6,-1
  80c0fc:	00bfffc4 	movi	r2,-1
  80c100:	30800826 	beq	r6,r2,80c124 <memcmp+0x40>
  80c104:	100f883a 	mov	r7,r2
  80c108:	20c00003 	ldbu	r3,0(r4)
  80c10c:	28800003 	ldbu	r2,0(r5)
  80c110:	31bfffc4 	addi	r6,r6,-1
  80c114:	21000044 	addi	r4,r4,1
  80c118:	29400044 	addi	r5,r5,1
  80c11c:	18800b1e 	bne	r3,r2,80c14c <memcmp+0x68>
  80c120:	31fff91e 	bne	r6,r7,80c108 <memcmp+0x24>
  80c124:	0005883a 	mov	r2,zero
  80c128:	f800283a 	ret
  80c12c:	20c00017 	ldw	r3,0(r4)
  80c130:	28800017 	ldw	r2,0(r5)
  80c134:	18bff01e 	bne	r3,r2,80c0f8 <memcmp+0x14>
  80c138:	31bfff04 	addi	r6,r6,-4
  80c13c:	21000104 	addi	r4,r4,4
  80c140:	29400104 	addi	r5,r5,4
  80c144:	39bff936 	bltu	r7,r6,80c12c <memcmp+0x48>
  80c148:	003feb06 	br	80c0f8 <memcmp+0x14>
  80c14c:	1885c83a 	sub	r2,r3,r2
  80c150:	f800283a 	ret

0080c154 <alt_sim_halt>:
#endif


static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code)
{
  80c154:	defffd04 	addi	sp,sp,-12
  80c158:	df000215 	stw	fp,8(sp)
  80c15c:	d839883a 	mov	fp,sp
  80c160:	e1000015 	stw	r4,0(fp)
  int r2 = exit_code;
  80c164:	e0800017 	ldw	r2,0(fp)
  80c168:	e0800115 	stw	r2,4(fp)

#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON))

  int r3 = (1 << 2);

#ifdef ALT_PROVIDE_GMON
  extern unsigned int alt_gmon_data[];
  int r4 = (int)alt_gmon_data;
  r3 |= (1 << 4);

  usleep(100000);

#define ALT_GMON_DATA ,"D04"(r4)
#else
#define ALT_GMON_DATA
#endif

  __asm__ volatile ("wrctl ctl6, %0" : : "r"(1), "D02"(r2) );

  __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

  __asm__ volatile ("wrctl ctl6, %0" : : "r"(1), "D02"(r2) );
  80c16c:	00c00044 	movi	r3,1
  80c170:	e0800117 	ldw	r2,4(fp)
  80c174:	180171ba 	wrctl	ctl6,r3

#endif
}
  80c178:	df000217 	ldw	fp,8(sp)
  80c17c:	dec00304 	addi	sp,sp,12
  80c180:	f800283a 	ret

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

void ALT_EXIT (int exit_code)
{
  80c184:	defffd04 	addi	sp,sp,-12
  80c188:	dfc00215 	stw	ra,8(sp)
  80c18c:	df000115 	stw	fp,4(sp)
  80c190:	d839883a 	mov	fp,sp
  80c194:	e1000015 	stw	r4,0(fp)
  /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */
  ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n");
  ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code);
  /* Stop all other threads */

  ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n");
  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);
  80c198:	e1000017 	ldw	r4,0(fp)
  80c19c:	080c1540 	call	80c154 <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);
  80c1a0:	003fff06 	br	80c1a0 <_exit+0x1c>
