Operating Systems

profilebshap0624
project3.tgz

home/bshapir/cs314/project3/project3.tgz

home/bshapir/cs314/project3/project3.tar

src/synch.working.s

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L38 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L38: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .align 2 .proc _SemInit .global _SemInit _SemInit: ; Function 'SemInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. sw 12(r2),r3 addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemInit .data .align 2 LC0: .ascii "Proc 0x%x waiting on sem 0x%x, count=%d.\n\000" .align 2 LC1: .ascii "Suspending current proc (0x%x).\n\000" .text .align 2 .proc _SemWait .global _SemWait _SemWait: ; Function 'SemWait'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) jal _DisableIntrs nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r6,r0,#115 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L49 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r6,r0,#43 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L48 nop ; not filled. L49: addi r29,r29,#-16 lhi r6,((LC0)>>16)&0xffff addui r6,r6,(LC0)&0xffff sw (r29),r6 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 sw 8(r29),r3 lw r6,12(r3) sw 12(r29),r6 jal _printf nop ; not filled. addi r29,r29,#16 L48: lw r1,12(r3) addi r1,r1,#-1 sw 12(r3),r1 slti r1,r1,#0 beqz r1,L50 nop ; not filled. jal _QueueAllocLink nop ; not filled. add r2,r0,r1 lhi r5,((_currentPCB)>>16)&0xffff addui r5,r5,(_currentPCB)&0xffff lw r1,(r5) addi r6,r0,#0 sw (r2),r6 sw 12(r2),r1 addi r29,r29,#-8 lhi r4,((_debugstr)>>16)&0xffff addui r4,r4,(_debugstr)&0xffff sw (r29),r4 addi r6,r0,#115 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L53 nop ; not filled. addi r29,r29,#-8 sw (r29),r4 addi r6,r0,#43 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L52 nop ; not filled. L53: addi r29,r29,#-8 lhi r6,((LC1)>>16)&0xffff addui r6,r6,(LC1)&0xffff sw (r29),r6 lw r1,(r5) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L52: lw r1,4(r3) sw 8(r2),r3 sw 4(r2),r1 lw r6,(r1) sw (r2),r6 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 jal _ProcessSleep nop ; not filled. L50: jal _EnableIntrs nop ; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemWait .data .align 2 LC2: .ascii "Signalling on sem 0x%x, count=%d.\n\000" .align 2 LC3: .ascii "Waking up PCB 0x%x.\n\000" .text .align 2 .proc _SemSignal .global _SemSignal _SemSignal: ; Function 'SemSignal'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) jal _DisableIntrs nop ; not filled. addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r4,r0,#115 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L59 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L58 nop ; not filled. L59: addi r29,r29,#-16 lhi r4,((LC2)>>16)&0xffff addui r4,r4,(LC2)&0xffff sw (r29),r4 sw 4(r29),r2 lw r4,12(r2) sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L58: lw r1,12(r2) addi r1,r1,#1 sw 12(r2),r1 slei r1,r1,#0 beqz r1,L60 nop ; not filled. lw r3,(r2) lw r1,8(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L63 nop ; not filled. lw r1,4(r3) lw r4,(r3) sw (r1),r4 lw r1,(r3) lw r4,4(r3) sw 4(r1),r4 lw r2,8(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L63: addi r4,r0,#0 sw (r3),r4 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#115 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64 nop ; not filled. L65: addi r29,r29,#-8 lhi r4,((LC3)>>16)&0xffff addui r4,r4,(LC3)&0xffff sw (r29),r4 lw r1,12(r3) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L64: addi r29,r29,#-8 lw r4,12(r3) sw (r29),r4 jal _ProcessWakeup nop ; not filled. sw (r29),r3 jal _QueueFreeLink nop ; not filled. addi r29,r29,#8 L60: jal _EnableIntrs nop ; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemSignal .align 2 .proc _LockInit .global _LockInit _LockInit: ; Function 'LockInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. addi r3,r0,#1 sw 12(r2),r3 addi r29,r29,#8 addi r1,r2,#16 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop ; not filled. addi r3,r0,#0 sw 28(r2),r3 addi r29,r29,#8 sw 32(r2),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockInit .align 2 .proc _LockAcquire .global _LockAcquire _LockAcquire: ; Function 'LockAcquire'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r29,r29,#-8 lw r1,(r30) sw (r29),r1 jal _SemWait nop ; not filled. addi r29,r29,#8 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockAcquire .align 2 .proc _LockRelease .global _LockRelease _LockRelease: ; Function 'LockRelease'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r31,(r30) lw r1,32(r31) sgti r1,r1,#0 beqz r1,L78 nop ; not filled. addi r29,r29,#-8 addi r1,r31,#16 sw (r29),r1 j L80 nop ; not filled. L78: addi r29,r29,#-8 sw (r29),r31 L80: jal _SemSignal nop ; not filled. addi r29,r29,#8 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockRelease .align 2 .proc _CondInit .global _CondInit _CondInit: ; Function 'CondInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) sw (r2),r3 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop ; not filled. addi r3,r0,#0 sw 16(r2),r3 addi r29,r29,#8 sw 20(r2),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondInit .align 2 .proc _CondWait .global _CondWait _CondWait: ; Function 'CondWait'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r2,(r30) lw r1,20(r2) addi r1,r1,#1 sw 20(r2),r1 lw r31,(r2) lw r1,32(r31) sgti r1,r1,#0 beqz r1,L89 nop ; not filled. addi r29,r29,#-8 addi r1,r31,#16 sw (r29),r1 j L91 nop ; not filled. L89: addi r29,r29,#-8 sw (r29),r31 L91: jal _SemSignal nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 addi r1,r2,#4 sw (r29),r1 jal _SemWait nop ; not filled. lw r1,(r2) addi r1,r1,#16 sw (r29),r1 jal _SemWait nop ; not filled. lw r2,(r2) lw r1,32(r2) addi r1,r1,#-1 sw 32(r2),r1 addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondWait .align 2 .proc _CondSignal .global _CondSignal _CondSignal: ; Function 'CondSignal'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r31,(r30) lw r2,20(r31) sgti r1,r2,#0 beqz r1,L95 nop ; not filled. addi r1,r2,#-1 sw 20(r31),r1 lw r2,(r31) lw r1,32(r2) addi r1,r1,#1 sw 32(r2),r1 addi r29,r29,#-8 addi r1,r31,#4 sw (r29),r1 jal _SemSignal nop ; not filled. addi r29,r29,#8 L95: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondSignal .align 2 .proc _CondBroadcast .global _CondBroadcast _CondBroadcast: ; Function 'CondBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) lw r5,20(r4) addi r3,r0,#0 slt r1,r3,r5 beqz r1,L106 nop ; not filled. addi r6,r4,#4 L108: lw r2,20(r4) sgti r1,r2,#0 beqz r1,L107 nop ; not filled. addi r1,r2,#-1 sw 20(r4),r1 lw r2,(r4) lw r1,32(r2) addi r1,r1,#1 sw 32(r2),r1 addi r29,r29,#-8 sw (r29),r6 jal _SemSignal nop ; not filled. addi r29,r29,#8 L107: addi r3,r3,#1 slt r1,r3,r5 bnez r1,L108 nop ; not filled. L106: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondBroadcast

src/memory.o

; Compiled by GCC .data .align 2 _rcsid: .ascii "$Id: memory.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 _negativeone: .word -1 .text .align 2 .proc _MemoryGetSize .global _MemoryGetSize _MemoryGetSize: ; Function 'MemoryGetSize'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lhi r1,#-1 addui r1,r1,#0 lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryGetSize .data .align 2 LC0: .ascii "Set freemap entry %d to 0x%x.\n\000" .text .align 2 .proc _MemorySetFreemap .global _MemorySetFreemap _MemorySetFreemap: ; Function 'MemorySetFreemap'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) lw r31,4(r30) add r2,r0,r3 sgei r1,r3,#0 bnez r1,L61 nop ; not filled. addi r2,r3,#31 L61: srai r5,r2,#0x5 slli r1,r5,#0x5 sub r3,r3,r1 addi r1,r0,#1 sll r2,r1,r3 lhi r1,((_negativeone)>>16)&0xffff addui r1,r1,(_negativeone)&0xffff lw r1,(r1) xor r2,r2,r1 slli r1,r5,#0x2 lhi r6,((_freepages)>>16)&0xffff addui r6,r6,(_freepages)&0xffff add r4,r1,r6 lw r1,(r4) and r2,r1,r2 sll r1,r31,r3 or r1,r2,r1 sw (r4),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r6,r0,#109 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r6,r0,#43 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64 nop ; not filled. L65: addi r29,r29,#-16 lhi r6,((LC0)>>16)&0xffff addui r6,r6,(LC0)&0xffff sw (r29),r6 sw 4(r29),r5 lw r4,(r4) sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L64: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemorySetFreemap .data .align 2 LC1: .ascii "Map has %d entries, memory size is 0x%x.\n\000" .align 2 LC2: .ascii "Free pages start with page # 0x%x.\n\000" .align 2 LC3: .ascii "Initialized %d free pages.\n\000" .text .align 2 .proc _MemoryModuleInit .global _MemoryModuleInit _MemoryModuleInit: ; Function 'MemoryModuleInit'; 0 bytes of locals, 10 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 lhi r1,#-1 addui r1,r1,#0 lw r2,(r1) sgei r1,r2,#0 bnez r1,L68 nop ; not filled. addui r2,r2,#65535 L68: srai r8,r2,#0x10 lhi r3,((_pagestart)>>16)&0xffff addui r3,r3,(_pagestart)&0xffff lhi r1,((_lastosaddress)>>16)&0xffff addui r1,r1,(_lastosaddress)&0xffff lw r1,(r1) addui r2,r1,#65532 sgei r1,r2,#0 bnez r1,L69 nop ; not filled. addui r2,r2,#65535 L69: srai r1,r2,#0x10 sw (r3),r1 lhi r3,((_freemapmax)>>16)&0xffff addui r3,r3,(_freemapmax)&0xffff addi r2,r8,#31 sgei r1,r2,#0 bnez r1,L70 nop ; not filled. addi r2,r8,#62 L70: srai r1,r2,#0x5 sw (r3),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L72 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L71 nop ; not filled. L72: addi r29,r29,#-16 lhi r11,((LC1)>>16)&0xffff addui r11,r11,(LC1)&0xffff sw (r29),r11 lw r1,(r3) sw 4(r29),r1 sw 8(r29),r8 jal _printf nop ; not filled. addi r29,r29,#16 L71: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L74 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L73 nop ; not filled. L74: addi r29,r29,#-8 lhi r11,((LC2)>>16)&0xffff addui r11,r11,(LC2)&0xffff sw (r29),r11 lhi r1,((_pagestart)>>16)&0xffff addui r1,r1,(_pagestart)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L73: addi r2,r0,#0 lhi r4,((_freemapmax)>>16)&0xffff addui r4,r4,(_freemapmax)&0xffff lw r1,(r4) slt r1,r2,r1 beqz r1,L76 nop ; not filled. lhi r3,((_freepages)>>16)&0xffff addui r3,r3,(_freepages)&0xffff L78: addi r11,r0,#0 sw (r3),r11 addi r3,r3,#4 addi r2,r2,#1 lw r1,(r4) slt r1,r2,r1 bnez r1,L78 nop ; not filled. L76: lhi r2,((_nfreepages)>>16)&0xffff addui r2,r2,(_nfreepages)&0xffff addi r11,r0,#0 sw (r2),r11 lhi r1,((_pagestart)>>16)&0xffff addui r1,r1,(_pagestart)&0xffff lw r4,(r1) slt r1,r4,r8 beqz r1,L81 nop ; not filled. add r7,r0,r2 addi r10,r0,#1 lhi r9,((_negativeone)>>16)&0xffff addui r9,r9,(_negativeone)&0xffff L83: lw r1,(r7) addi r1,r1,#1 sw (r7),r1 add r2,r0,r4 sgei r1,r4,#0 bnez r1,L85 nop ; not filled. addi r2,r4,#31 L85: srai r6,r2,#0x5 slli r1,r6,#0x5 sub r1,r4,r1 sll r3,r10,r1 lw r1,(r9) xor r2,r3,r1 slli r1,r6,#0x2 lhi r11,((_freepages)>>16)&0xffff addui r11,r11,(_freepages)&0xffff add r5,r1,r11 lw r1,(r5) and r1,r1,r2 or r1,r1,r3 sw (r5),r1 addi r29,r29,#-8 lhi r11,((_debugstr)>>16)&0xffff addui r11,r11,(_debugstr)&0xffff sw (r29),r11 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L89 nop ; not filled. addi r29,r29,#-8 lhi r11,((_debugstr)>>16)&0xffff addui r11,r11,(_debugstr)&0xffff sw (r29),r11 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L82 nop ; not filled. L89: addi r29,r29,#-16 lhi r11,((LC0)>>16)&0xffff addui r11,r11,(LC0)&0xffff sw (r29),r11 sw 4(r29),r6 lw r5,(r5) sw 8(r29),r5 jal _printf nop ; not filled. addi r29,r29,#16 L82: addi r4,r4,#1 slt r1,r4,r8 bnez r1,L83 nop ; not filled. L81: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L92 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L91 nop ; not filled. L92: addi r29,r29,#-8 lhi r11,((LC3)>>16)&0xffff addui r11,r11,(LC3)&0xffff sw (r29),r11 lhi r1,((_nfreepages)>>16)&0xffff addui r1,r1,(_nfreepages)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L91: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryModuleInit .data .align 2 _mapnum42: .word 0 .align 2 LC4: .ascii "ERROR AT THIS POINT\n\000" .align 2 LC5: .ascii "Allocating memory, starting with page %d\n\000" .align 2 LC6: .ascii "Allocated memory, from map %d, page %d, map=0x%x.\n\000" .text .align 2 .proc _MemoryAllocPage .global _MemoryAllocPage _MemoryAllocPage: ; Function 'MemoryAllocPage'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lhi r1,((_nfreepages)>>16)&0xffff addui r1,r1,(_nfreepages)&0xffff lw r1,(r1) snei r1,r1,#0 bnez r1,L111 nop ; not filled. addi r29,r29,#-8 lhi r7,((LC4)>>16)&0xffff addui r7,r7,(LC4)&0xffff sw (r29),r7 jal _printf nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L110 nop ; not filled. L111: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L113 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L112 nop ; not filled. L113: addi r29,r29,#-8 lhi r7,((LC5)>>16)&0xffff addui r7,r7,(LC5)&0xffff sw (r29),r7 lhi r1,((_mapnum42)>>16)&0xffff addui r1,r1,(_mapnum42)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L112: lhi r2,((_mapnum42)>>16)&0xffff addui r2,r2,(_mapnum42)&0xffff lw r1,(r2) lhi r4,((_freepages)>>16)&0xffff addui r4,r4,(_freepages)&0xffff slli r1,r1,#0x2 add r1,r1,r4 lw r1,(r1) snei r1,r1,#0 bnez r1,L115 nop ; not filled. lhi r1,((_freemapmax)>>16)&0xffff addui r1,r1,(_freemapmax)&0xffff lw r3,(r1) L116: lw r1,(r2) addi r1,r1,#1 sw (r2),r1 sge r1,r1,r3 beqz r1,L114 nop ; not filled. addi r7,r0,#0 sw (r2),r7 L114: lw r1,(r2) slli r1,r1,#0x2 add r1,r1,r4 lw r1,(r1) snei r1,r1,#0 beqz r1,L116 nop ; not filled. L115: lhi r1,((_mapnum42)>>16)&0xffff addui r1,r1,(_mapnum42)&0xffff lw r1,(r1) slli r1,r1,#0x2 lhi r7,((_freepages)>>16)&0xffff addui r7,r7,(_freepages)&0xffff add r1,r1,r7 lw r3,(r1) addi r31,r0,#0 andi r1,r3,#1 bnez r1,L120 nop ; not filled. addi r2,r0,#1 L121: addi r31,r31,#1 sll r1,r2,r31 and r1,r3,r1 snei r1,r1,#0 beqz r1,L121 nop ; not filled. L120: addi r1,r0,#1 sll r2,r1,r31 lhi r1,((_negativeone)>>16)&0xffff addui r1,r1,(_negativeone)&0xffff lw r1,(r1) xor r4,r2,r1 lhi r5,((_mapnum42)>>16)&0xffff addui r5,r5,(_mapnum42)&0xffff lw r3,(r5) lhi r6,((_freepages)>>16)&0xffff addui r6,r6,(_freepages)&0xffff slli r1,r3,#0x2 add r2,r1,r6 lw r1,(r2) and r1,r1,r4 sw (r2),r1 slli r1,r3,#0x5 add r3,r1,r31 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L126 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L125 nop ; not filled. L126: addi r29,r29,#-16 lhi r7,((LC6)>>16)&0xffff addui r7,r7,(LC6)&0xffff sw (r29),r7 lw r1,(r5) sw 4(r29),r1 sw 8(r29),r3 slli r1,r1,#0x2 add r1,r1,r6 lw r1,(r1) sw 12(r29),r1 jal _printf nop ; not filled. addi r29,r29,#16 L125: lhi r1,((_nfreepages)>>16)&0xffff addui r1,r1,(_nfreepages)&0xffff lw r2,(r1) addi r2,r2,#-1 sw (r1),r2 add r1,r0,r3 L110: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryAllocPage .data .align 2 LC7: .ascii "Freed page 0x%x, %d remaining.\n\000" .text .align 2 .proc _MemoryFreePage .global _MemoryFreePage _MemoryFreePage: ; Function 'MemoryFreePage'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r6,(r30) addi r3,r0,#1 add r2,r0,r6 sgei r1,r6,#0 bnez r1,L129 nop ; not filled. addi r2,r6,#31 L129: srai r5,r2,#0x5 slli r1,r5,#0x5 sub r1,r6,r1 sll r3,r3,r1 lhi r1,((_negativeone)>>16)&0xffff addui r1,r1,(_negativeone)&0xffff lw r1,(r1) xor r2,r3,r1 slli r1,r5,#0x2 lhi r7,((_freepages)>>16)&0xffff addui r7,r7,(_freepages)&0xffff add r4,r1,r7 lw r1,(r4) and r1,r1,r2 or r1,r1,r3 sw (r4),r1 addi r29,r29,#-8 lhi r7,((_debugstr)>>16)&0xffff addui r7,r7,(_debugstr)&0xffff sw (r29),r7 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L133 nop ; not filled. addi r29,r29,#-8 lhi r7,((_debugstr)>>16)&0xffff addui r7,r7,(_debugstr)&0xffff sw (r29),r7 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L128 nop ; not filled. L133: addi r29,r29,#-16 lhi r7,((LC0)>>16)&0xffff addui r7,r7,(LC0)&0xffff sw (r29),r7 sw 4(r29),r5 lw r4,(r4) sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L128: lhi r2,((_nfreepages)>>16)&0xffff addui r2,r2,(_nfreepages)&0xffff lw r1,(r2) addi r1,r1,#1 sw (r2),r1 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L135 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L134 nop ; not filled. L135: addi r29,r29,#-16 lhi r7,((LC7)>>16)&0xffff addui r7,r7,(LC7)&0xffff sw (r29),r7 sw 4(r29),r6 lw r2,(r2) sw 8(r29),r2 jal _printf nop ; not filled. addi r29,r29,#16 L134: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreePage .align 2 .proc _MemoryTranslateUserToSystem .global _MemoryTranslateUserToSystem _MemoryTranslateUserToSystem: ; Function 'MemoryTranslateUserToSystem'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) lw r1,4(r30) srli r31,r1,#0x10 andi r2,r1,#0xffff lw r1,160(r3) sgt r1,r31,r1 bnez r1,L139 nop ; not filled. slli r1,r31,#0x2 add r1,r1,r3 lw r1,96(r1) addi r4,r0,#-8 and r1,r1,r4 add r1,r1,r2 j L140 nop ; not filled. L139: addi r1,r0,#0 L140: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryTranslateUserToSystem .align 2 .proc _MemoryCopySystemToUser .global _MemoryCopySystemToUser _MemoryCopySystemToUser: ; Function 'MemoryCopySystemToUser'; 0 bytes of locals, 8 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 lw r7,(r30) lw r5,4(r30) lw r4,8(r30) lw r3,12(r30) addi r6,r0,#0 sgti r1,r3,#0 beqz r1,L167 nop ; not filled. lhi r8,#1 addui r8,r8,#0 L168: srli r2,r4,#0x10 andi r31,r4,#0xffff lw r1,160(r7) sgt r1,r2,r1 beqz r1,L170 nop ; not filled. addi r31,r0,#0 j L169 nop ; not filled. L170: slli r1,r2,#0x2 add r1,r1,r7 lw r1,96(r1) addi r9,r0,#-8 and r1,r1,r9 add r31,r1,r31 L169: snei r1,r31,#0 beqz r1,L167 nop ; not filled. andi r1,r31,#65535 sub r2,r8,r1 sgt r1,r2,r3 beqz r1,L172 nop ; not filled. add r2,r0,r3 L172: addi r29,r29,#-16 sw (r29),r5 sw 4(r29),r31 sw 8(r29),r2 jal _bcopy nop ; not filled. addi r29,r29,#16 sub r3,r3,r2 add r6,r6,r2 add r5,r5,r2 add r4,r4,r2 sgti r1,r3,#0 bnez r1,L168 nop ; not filled. L167: add r1,r0,r6 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCopySystemToUser .align 2 .proc _MemoryCopyUserToSystem .global _MemoryCopyUserToSystem _MemoryCopyUserToSystem: ; Function 'MemoryCopyUserToSystem'; 0 bytes of locals, 8 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 lw r7,(r30) lw r5,8(r30) lw r4,4(r30) lw r3,12(r30) addi r6,r0,#0 sgti r1,r3,#0 beqz r1,L191 nop ; not filled. lhi r8,#1 addui r8,r8,#0 L192: srli r2,r4,#0x10 andi r31,r4,#0xffff lw r1,160(r7) sgt r1,r2,r1 beqz r1,L194 nop ; not filled. addi r31,r0,#0 j L193 nop ; not filled. L194: slli r1,r2,#0x2 add r1,r1,r7 lw r1,96(r1) addi r9,r0,#-8 and r1,r1,r9 add r31,r1,r31 L193: snei r1,r31,#0 beqz r1,L191 nop ; not filled. andi r1,r31,#65535 sub r2,r8,r1 sgt r1,r2,r3 beqz r1,L197 nop ; not filled. add r2,r0,r3 L197: addi r29,r29,#-16 sw (r29),r31 sw 4(r29),r5 sw 8(r29),r2 jal _bcopy nop ; not filled. addi r29,r29,#16 sub r3,r3,r2 add r6,r6,r2 add r5,r5,r2 add r4,r4,r2 sgti r1,r3,#0 bnez r1,L192 nop ; not filled. L191: add r1,r0,r6 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCopyUserToSystem .align 2 .proc _MemorySetupPte .global _MemorySetupPte _MemorySetupPte: ; Function 'MemorySetupPte'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) slli r1,r1,#0x10 ori r1,r1,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemorySetupPte .align 2 .proc _MemoryFreePte .global _MemoryFreePte _MemoryFreePte: ; Function 'MemoryFreePte'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r29,r29,#-8 lhu r1,(r30) sw (r29),r1 jal _MemoryFreePage nop ; not filled. addi r29,r29,#8 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreePte .align 2 .proc _MemoryPteToPage .global _MemoryPteToPage _MemoryPteToPage: ; Function 'MemoryPteToPage'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) addi r31,r0,#-8 and r1,r1,r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryPteToPage .data .align 2 _invalidOps61: .word 13316 .align 2 LC8: .ascii "Operand for instruction %08x is 0x%x (reg=<%d,0x%x>)\n\000" .text .align 2 .proc _MemoryGetOperandAddress .global _MemoryGetOperandAddress _MemoryGetOperandAddress: ; Function 'MemoryGetOperandAddress'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r2,(r30) lw r5,4(r30) srli r1,r5,#0x1a addi r31,r1,#-32 sgtui r1,r31,#15 bnez r1,L214 nop ; not filled. lhi r1,((_invalidOps61)>>16)&0xffff addui r1,r1,(_invalidOps61)&0xffff lw r1,(r1) srl r1,r1,r31 andi r1,r1,#1 beqz r1,L213 nop ; not filled. L214: addi r1,r0,#-1 j L218 nop ; not filled. L213: srli r1,r5,#0x15 andi r6,r1,#31 andi r31,r5,#0xffff srli r1,r31,#0xf beqz r1,L215 nop ; not filled. lhi r7,#-1 addui r7,r7,#0 or r31,r31,r7 L215: lw r2,(r2) slli r1,r6,#0x2 add r1,r1,r2 lw r3,40(r1) add r4,r3,r31 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L217 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L216 nop ; not filled. L217: addi r29,r29,#-24 lhi r7,((LC8)>>16)&0xffff addui r7,r7,(LC8)&0xffff sw (r29),r7 sw 4(r29),r5 sw 8(r29),r4 sw 12(r29),r6 sw 16(r29),r3 jal _printf nop ; not filled. addi r29,r29,#24 L216: add r1,r0,r4 L218: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryGetOperandAddress .data .align 2 _pagestart: .space 4 .align 2 _freemapmax: .space 4 .align 2 _nfreepages: .space 4 .align 2 _freepages: .space 8192

src/userprog.c

#include "lab2-api.h" //---------------------------------------------------------------------------- // You are free to modify this file (and other userprogs) to test your solution // Understand the scheduling algorithm well before you hack or you'll get nowhere. //---------------------------------------------------------------------------- main (int argc, char *argv[]) { int number, i,j,offset; uint32 handle; sem_t semaphore; char num_str[10], semaphore_str[10]; switch(argc) { case 2: number = dstrtol(argv[1], NULL, 10); //Printf("Setting number = %d\n", number); semaphore = sem_create(1); ditoa(semaphore, semaphore_str); //Convert the semaphore to a string for(i=0; i<number; i++) { ditoa(i, num_str); process_create(i,0,"userprog.dlx.obj", num_str,semaphore_str,NULL); } break; case 3: offset = dstrtol(argv[1], NULL, 10); //Get semaphore semaphore = dstrtol(argv[2], NULL, 10); //Get semaphore for(i=0;i<100;i++) { sem_wait(semaphore); for(j=0;j<50000;j++); Printf("%c%d\n",'A'+offset,i); sem_signal(semaphore); } break; default: Printf("Usage: "); Printf(argv[0]); Printf(" number\n"); Printf("argc = %d\n", argc); exit(); } }

src/share_memory.api

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Entering ProcessModuleInit\n\000" .align 2 LC1: .ascii "Leaving ProcessModuleInit\n\000" .text .align 2 .proc _ShareModuleInit .global _ShareModuleInit _ShareModuleInit: ; Function 'ShareModuleInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#112 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L64 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L63 nop ; not filled. L64: addi r29,r29,#-8 lhi r5,((LC0)>>16)&0xffff addui r5,r5,(LC0)&0xffff sw (r29),r5 jal _printf nop ; not filled. addi r29,r29,#8 L63: lhi r2,((_spages)>>16)&0xffff addui r2,r2,(_spages)&0xffff addi r4,r2,#248 L68: addi r5,r0,#0 sw (r2),r5 add r31,r0,r2 add r3,r0,r2 L72: addi r1,r31,#4 addi r5,r0,#0 sw (r1),r5 add r31,r0,r1 sle r1,r31,r3 bnez r1,L72 nop ; not filled. addi r2,r2,#8 sle r1,r2,r4 bnez r1,L68 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#112 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L76 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L75 nop ; not filled. L76: addi r29,r29,#-8 lhi r5,((LC1)>>16)&0xffff addui r5,r5,(LC1)&0xffff sw (r29),r5 jal _printf nop ; not filled. addi r29,r29,#8 L75: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ShareModuleInit .data .align 2 LC2: .ascii "FATAL: couldn\'t allocate memory - no free pages!\n\000" .text .align 2 .proc _MemoryCreateSharedPage .global _MemoryCreateSharedPage _MemoryCreateSharedPage: ; Function 'MemoryCreateSharedPage'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r6,(r30) addi r29,r29,#-8 sw (r29),r6 jal _findpid nop ; not filled. add r5,r0,r1 srli r8,r5,#0x5 slli r1,r8,#0x5 sub r5,r5,r1 addi r29,r29,#8 addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop ; not filled. add r7,r0,r1 addi r29,r29,#8 lw r1,160(r6) seqi r1,r1,#16 bnez r1,L92 nop ; not filled. addi r3,r0,#0 lhi r9,((_spages)>>16)&0xffff addui r9,r9,(_spages)&0xffff add r2,r0,r9 L84: lw r1,(r2) snei r1,r1,#0 beqz r1,L82 nop ; not filled. addi r2,r2,#8 addi r3,r3,#1 slei r1,r3,#31 bnez r1,L84 nop ; not filled. L82: seqi r1,r3,#32 beqz r1,L87 nop ; not filled. L92: addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L91 nop ; not filled. L87: jal _MemoryAllocPage nop ; not filled. add r4,r0,r1 snei r1,r4,#0 bnez r1,L89 nop ; not filled. addi r29,r29,#-8 lhi r10,((LC2)>>16)&0xffff addui r10,r10,(LC2)&0xffff sw (r29),r10 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L89: slli r1,r3,#0x3 add r2,r1,r9 sw (r2),r4 slli r1,r8,#0x2 add r2,r1,r2 addi r1,r0,#1 sll r1,r1,r5 sw 4(r2),r1 addi r29,r29,#-8 sw (r29),r4 jal _MemorySetupPte nop ; not filled. lw r2,160(r6) slli r2,r2,#0x2 add r2,r2,r6 sw 96(r2),r1 lw r1,160(r6) addi r2,r1,#1 sw 160(r6),r2 lw r1,8(r6) addui r1,r1,#65164 sw 316(r1),r2 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r4 L91: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCreateSharedPage .align 2 .proc _mmap .global _mmap _mmap: ; Function 'mmap'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r6,(r30) lw r7,4(r30) snei r1,r7,#0 bnez r1,L94 nop ; not filled. addi r1,r0,#0 j L115 nop ; not filled. L94: lw r1,8(r6) addui r9,r1,#65164 addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop ; not filled. add r8,r0,r1 addi r29,r29,#8 addi r3,r0,#0 lhi r2,((_spages)>>16)&0xffff addui r2,r2,(_spages)&0xffff L99: lw r1,(r2) seq r1,r1,r7 bnez r1,L97 nop ; not filled. addi r2,r2,#8 addi r3,r3,#1 sleui r1,r3,#31 bnez r1,L99 nop ; not filled. L97: seqi r1,r3,#32 bnez r1,L116 nop ; not filled. slli r31,r7,#0x10 addi r5,r0,#0 lw r4,160(r6) slt r1,r5,r4 beqz r1,L105 nop ; not filled. add r2,r0,r6 L107: lw r1,96(r2) addi r10,r0,#-8 and r1,r1,r10 seq r1,r1,r31 bnez r1,L105 nop ; not filled. addi r2,r2,#4 addi r5,r5,#1 slt r1,r5,r4 bnez r1,L107 nop ; not filled. L105: lw r2,160(r6) seq r1,r5,r2 beqz r1,L110 nop ; not filled. slei r1,r2,#15 bnez r1,L111 nop ; not filled. L116: addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L115 nop ; not filled. L111: addi r29,r29,#-8 sw (r29),r7 jal _MemorySetupPte nop ; not filled. lw r2,160(r6) slli r2,r2,#0x2 add r2,r2,r6 sw 96(r2),r1 lw r1,160(r6) addi r1,r1,#1 sw 160(r6),r1 sw 316(r9),r1 addi r29,r29,#8 L110: addi r29,r29,#-8 sw (r29),r6 jal _findpid nop ; not filled. add r2,r0,r1 srli r4,r2,#0x5 slli r1,r4,#0x5 sub r2,r2,r1 slli r3,r3,#0x3 slli r1,r4,#0x2 add r1,r3,r1 lhi r10,((_spages+4)>>16)&0xffff addui r10,r10,(_spages+4)&0xffff add r3,r1,r10 addi r1,r0,#1 sll r2,r1,r2 lw r1,(r3) or r1,r1,r2 sw (r3),r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop ; not filled. addi r29,r29,#8 slli r1,r5,#0x10 L115: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _mmap .data .align 2 LC3: .ascii "FATAL: Attempted to free memory page 0\n\000" .text .align 2 .proc _MemoryFreeSharedPte .global _MemoryFreeSharedPte _MemoryFreeSharedPte: ; Function 'MemoryFreeSharedPte'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r8,(r30) lw r2,4(r30) addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop ; not filled. add r9,r0,r1 addi r29,r29,#8 slli r1,r2,#0x2 add r1,r1,r8 lhu r7,96(r1) snei r1,r7,#0 bnez r1,L119 nop ; not filled. addi r29,r29,#-8 lhi r10,((LC3)>>16)&0xffff addui r10,r10,(LC3)&0xffff sw (r29),r10 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L119: addi r4,r0,#0 lhi r5,((_spages)>>16)&0xffff addui r5,r5,(_spages)&0xffff add r2,r0,r5 L123: lw r1,(r2) seq r1,r1,r7 bnez r1,L121 nop ; not filled. addi r2,r2,#8 addi r4,r4,#1 slei r1,r4,#31 bnez r1,L123 nop ; not filled. L121: seqi r1,r4,#32 beqz r1,L126 nop ; not filled. addi r29,r29,#-8 sw (r29),r9 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#-1 j L141 nop ; not filled. L126: addi r29,r29,#-8 sw (r29),r8 jal _findpid nop ; not filled. add r2,r0,r1 srli r3,r1,#0x5 slli r1,r3,#0x5 sub r2,r2,r1 slli r1,r4,#0x3 add r4,r1,r5 slli r1,r3,#0x2 add r1,r1,r4 addi r3,r1,#4 addi r1,r0,#1 sll r1,r1,r2 addi r10,r0,#-1 xor r2,r1,r10 lw r1,(r3) and r1,r1,r2 sw (r3),r1 addi r29,r29,#8 addi r6,r0,#0 addi r5,r0,#0 L132: addi r3,r0,#1 addi r2,r0,#0 lw r31,4(r4) L136: and r1,r31,r3 snei r1,r1,#0 add r6,r6,r1 slli r3,r3,#0x1 addi r2,r2,#1 slei r1,r2,#31 bnez r1,L136 nop ; not filled. addi r4,r4,#4 addi r5,r5,#1 slei r1,r5,#0 bnez r1,L132 nop ; not filled. lw r1,160(r8) addi r2,r1,#-1 sw 160(r8),r2 lw r1,8(r8) addui r1,r1,#65164 sw 316(r1),r2 snei r1,r6,#0 bnez r1,L139 nop ; not filled. addi r29,r29,#-8 sw (r29),r7 jal _MemoryFreePage nop ; not filled. addi r29,r29,#8 L139: addi r29,r29,#-8 sw (r29),r9 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r6 L141: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreeSharedPte .data .align 2 _spages: .space 256

src/userprog.dlx

; Linked by DLX-LD. ; MemSize 20480 ; Data size: 59 ; Text size: 3420 ; Stack size: 8192 .text 0x1000 .data 0x2000 ; Compiled by GCC .align 2 LC0_LF0: .ascii "userprog.dlx.obj\000" .align 2 LC1_LF0: .ascii "%c%d\n\000" .align 2 LC2_LF0: .ascii "Usage: \000" .align 2 LC3_LF0: .ascii " number\n\000" .align 2 LC4_LF0: .ascii "argc = %d\n\000" .text .align 2 .proc _main .global _main _main: ; Function 'main'; 32 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage lw r2,(r30) lw r3,4(r30) jal ___main nop; not filled. seqi r1,r2,#2 bnez r1,L3_LF0 nop; not filled. seqi r1,r2,#3 beqz r1,L20_LF0 nop; not filled. j L9_LF0 nop; not filled. L3_LF0: addi r29,r29,#-16 lw r3,4(r3) sw (r29),r3 addi r6,r0,#0 sw 4(r29),r6 addi r6,r0,#10 sw 8(r29),r6 jal _dstrtol nop; not filled. add r5,r0,r1 addi r6,r0,#1 sw (r29),r6 jal _sem_create nop; not filled. sw (r29),r1 addi r4,r30,#-40 sw 4(r29),r4 jal _ditoa nop; not filled. addi r3,r0,#0 addi r29,r29,#16 slt r1,r3,r5 beqz r1,L2_LF0 nop; not filled. addi r2,r30,#-24 L7_LF0: addi r29,r29,#-8 sw (r29),r3 sw 4(r29),r2 jal _ditoa nop; not filled. addi r29,r29,#-16 sw (r29),r3 addi r6,r0,#0 sw 4(r29),r6 lhi r6,((LC0_LF0)>>16)&0xffff addui r6,r6,(LC0_LF0)&0xffff sw 8(r29),r6 sw 12(r29),r2 sw 16(r29),r4 addi r6,r0,#0 sw 20(r29),r6 jal _process_create nop; not filled. addi r29,r29,#24 addi r3,r3,#1 slt r1,r3,r5 beqz r1,L2_LF0 nop; not filled. j L7_LF0 nop; not filled. L9_LF0: addi r29,r29,#-16 lw r6,4(r3) sw (r29),r6 addi r6,r0,#0 sw 4(r29),r6 addi r6,r0,#10 sw 8(r29),r6 jal _dstrtol nop; not filled. add r2,r0,r1 lw r3,8(r3) sw (r29),r3 addi r6,r0,#0 sw 4(r29),r6 addi r6,r0,#10 sw 8(r29),r6 jal _dstrtol nop; not filled. add r4,r0,r1 addi r3,r0,#0 addi r29,r29,#16 addui r5,r0,#49999 addi r2,r2,#65 L13_LF0: addi r29,r29,#-8 sw (r29),r4 jal _sem_wait nop; not filled. addi r31,r0,#0 addi r29,r29,#8 L16_LF0: addi r31,r31,#1 sle r1,r31,r5 bnez r1,L16_LF0 nop; not filled. addi r29,r29,#-16 lhi r6,((LC1_LF0)>>16)&0xffff addui r6,r6,(LC1_LF0)&0xffff sw (r29),r6 sw 4(r29),r2 sw 8(r29),r3 jal _Printf nop; not filled. sw (r29),r4 jal _sem_signal nop; not filled. addi r29,r29,#16 addi r3,r3,#1 slei r1,r3,#99 beqz r1,L2_LF0 nop; not filled. j L13_LF0 nop; not filled. L20_LF0: addi r29,r29,#-8 lhi r6,((LC2_LF0)>>16)&0xffff addui r6,r6,(LC2_LF0)&0xffff sw (r29),r6 jal _Printf nop; not filled. lw r3,(r3) sw (r29),r3 jal _Printf nop; not filled. lhi r6,((LC3_LF0)>>16)&0xffff addui r6,r6,(LC3_LF0)&0xffff sw (r29),r6 jal _Printf nop; not filled. lhi r6,((LC4_LF0)>>16)&0xffff addui r6,r6,(LC4_LF0)&0xffff sw (r29),r6 sw 4(r29),r2 jal _Printf nop; not filled. jal _exit nop; not filled. L2_LF0: jal _exit nop .endproc _main ;;; ;;; Stub functions for DLX traps. ;;; ;;; Ethan L. Miller, 1999. Released to the public domain. ;;; ;;; The traps such as Open and Close ;;; (note the capital letters) are for use by user programs. The traps ;;; with names such as open and close (lower case) are for use by the OS. ;;; .align 2 ;;; The following are the traps to be used by user-level programs ;;; .align 2 .proc _Open .global _Open _Open: ;;; Note that trap #0x213 actually causes a trap vector in the OS of ;;; 0x1213. The same is true for other user traps. Thus, a user trap ;;; with trap #0x240 will result in a trap vector of 0x1240 in the OS. trap #0x213 jr r31 nop .endproc _Open .proc _Close .global _Close _Close: trap #0x214 jr r31 nop .endproc _Close .proc _Read .global _Read _Read: trap #0x210 jr r31 nop .endproc _Read .proc _Write .global _Write _Write: trap #0x211 jr r31 nop .endproc _Write .proc _Lseek .global _Lseek _Lseek: trap #0x212 jr r31 nop .endproc _Lseek .proc _Putchar .global _Putchar _Putchar: trap #0x280 jr r31 nop .endproc _Putchar .proc _Printf .global _Printf _Printf: trap #0x201 jr r31 nop .endproc _Printf .proc _getpid .global _getpid _getpid: trap #0x431 jr r31 nop .endproc _getpid .proc _process_create .global _process_create _process_create: trap #0x432 jr r31 nop .endproc _process_create .proc _shmget .global _shmget _shmget: trap #0x440 jr r31 nop .endproc _shmget .proc _shmat .global _shmat _shmat: trap #0x441 jr r31 nop .endproc _shmat .proc _sem_create .global _sem_create _sem_create: trap #0x450 jr r31 nop .endproc _sem_create .proc _sem_wait .global _sem_wait _sem_wait: trap #0x451 jr r31 nop .endproc _sem_wait .proc _sem_signal .global _sem_signal _sem_signal: trap #0x452 jr r31 nop .endproc _sem_signal .proc _lock_create .global _lock_create _lock_create: trap #0x453 jr r31 nop .endproc _lock_create .proc _lock_acquire .global _lock_acquire _lock_acquire: trap #0x454 jr r31 nop .endproc _lock_acquire .proc _lock_release .global _lock_release _lock_release: trap #0x455 jr r31 nop .endproc _lock_release .proc _cond_create .global _cond_create _cond_create: trap #0x456 jr r31 nop .endproc _cond_create .proc _cond_wait .global _cond_wait _cond_wait: trap #0x457 jr r31 nop .endproc _cond_wait .proc _cond_signal .global _cond_signal _cond_signal: trap #0x458 jr r31 nop .endproc _cond_signal .proc _cond_broadcast .global _cond_broadcast _cond_broadcast: trap #0x455 jr r31 nop .endproc _cond_broadcast .proc _TimerGet .global _TimerGet _TimerGet: trap #0x50 jr r31 nop .endproc _TimerGet .proc _yield .global _yield _yield: trap #0x433 jr r31 nop .endproc _yield ; Compiled by GCC .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF2 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF2 nop; not filled. L6_LF2: addi r31,r0,#1 L5_LF2: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF2 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF2 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF2 nop; not filled. L12_LF2: addi r2,r0,#1 L11_LF2: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _dstrcpy .global _dstrcpy _dstrcpy: ; Function 'dstrcpy'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r2,4(r30) add r3,r0,r31 L19_LF2: lb r1,(r2) sb (r31),r1 addi r2,r2,#1 addi r31,r31,#1 andi r1,r1,#0x00ff snei r1,r1,#0 bnez r1,L19_LF2 nop; not filled. add r1,r0,r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrcpy .align 2 .proc _dstrncpy .global _dstrncpy _dstrncpy: ; Function 'dstrncpy'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) lw r3,4(r30) lw r31,8(r30) add r4,r0,r2 j L37_LF2 nop; not filled. L34_LF2: lb r1,(r3) sb (r2),r1 addi r3,r3,#1 addi r2,r2,#1 andi r1,r1,#0x00ff snei r1,r1,#0 beqz r1,L32_LF2 nop; not filled. L37_LF2: add r1,r0,r31 addi r31,r31,#-1 slei r1,r1,#0 beqz r1,L34_LF2 nop; not filled. L32_LF2: add r1,r0,r4 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrncpy .align 2 .proc _dstrcat .global _dstrcat _dstrcat: ; Function 'dstrcat'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) add r3,r0,r31 lbu r1,(r3) snei r1,r1,#0 beqz r1,L50_LF2 nop; not filled. L51_LF2: addi r31,r31,#1 lbu r1,(r31) snei r1,r1,#0 bnez r1,L51_LF2 nop; not filled. L50_LF2: add r2,r0,r31 lw r31,4(r30) L54_LF2: lb r1,(r31) sb (r2),r1 addi r31,r31,#1 addi r2,r2,#1 andi r1,r1,#0x00ff snei r1,r1,#0 bnez r1,L54_LF2 nop; not filled. add r1,r0,r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrcat .align 2 .proc _dstrncmp .global _dstrncmp _dstrncmp: ; Function 'dstrncmp'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r3,(r30) lw r4,4(r30) lw r5,8(r30) addi r2,r0,#0 slt r1,r2,r5 beqz r1,L73_LF2 nop; not filled. L75_LF2: lbu r31,(r4) snei r1,r31,#0 beqz r1,L86_LF2 nop; not filled. lbu r1,(r3) sne r1,r1,r31 bnez r1,L73_LF2 nop; not filled. addi r3,r3,#1 addi r4,r4,#1 addi r2,r2,#1 slt r1,r2,r5 bnez r1,L75_LF2 nop; not filled. L73_LF2: seq r1,r2,r5 beqz r1,L80_LF2 nop; not filled. L86_LF2: addi r1,r0,#0 j L84_LF2 nop; not filled. L80_LF2: lbu r31,(r3) lbu r3,(r4) sub r1,r31,r3 sgei r1,r1,#0 addi r2,r0,#-1 beqz r1,L82_LF2 nop; not filled. sne r2,r31,r3 L82_LF2: add r1,r0,r2 L84_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrncmp .align 2 .proc _dstrlen .global _dstrlen _dstrlen: ; Function 'dstrlen'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r31,(r30) addi r2,r0,#0 j L97_LF2 nop; not filled. L95_LF2: addi r2,r2,#1 L97_LF2: lbu r1,(r31) addi r31,r31,#1 snei r1,r1,#0 bnez r1,L95_LF2 nop; not filled. add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrlen .align 2 .proc _dstrstr .global _dstrstr _dstrstr: ; Function 'dstrstr'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r5,(r30) lw r7,4(r30) addi r3,r0,#0 lbu r1,(r7) addi r2,r7,#1 snei r1,r1,#0 beqz r1,L125_LF2 nop; not filled. L126_LF2: addi r3,r3,#1 lbu r1,(r2) addi r2,r2,#1 snei r1,r1,#0 bnez r1,L126_LF2 nop; not filled. L125_LF2: add r6,r0,r3 j L149_LF2 nop; not filled. L130_LF2: add r3,r0,r5 add r4,r0,r7 addi r2,r0,#0 slt r1,r2,r6 beqz r1,L134_LF2 nop; not filled. L136_LF2: lbu r31,(r4) snei r1,r31,#0 beqz r1,L150_LF2 nop; not filled. lbu r1,(r3) sne r1,r1,r31 bnez r1,L134_LF2 nop; not filled. addi r3,r3,#1 addi r4,r4,#1 addi r2,r2,#1 slt r1,r2,r6 bnez r1,L136_LF2 nop; not filled. L134_LF2: seq r1,r2,r6 beqz r1,L141_LF2 nop; not filled. L150_LF2: addi r1,r0,#0 j L132_LF2 nop; not filled. L141_LF2: lbu r3,(r3) lbu r2,(r4) sub r1,r3,r2 sgei r1,r1,#0 addi r31,r0,#-1 beqz r1,L143_LF2 nop; not filled. sne r31,r3,r2 L143_LF2: add r1,r0,r31 L132_LF2: snei r1,r1,#0 bnez r1,L131_LF2 nop; not filled. add r1,r0,r5 j L146_LF2 nop; not filled. L131_LF2: addi r5,r5,#1 L149_LF2: lbu r1,(r5) snei r1,r1,#0 bnez r1,L130_LF2 nop; not filled. addi r1,r0,#0 L146_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrstr .align 2 .proc _dmindex .global _dmindex _dmindex: ; Function 'dmindex'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) lw r6,4(r30) lbu r1,(r4) snei r1,r1,#0 beqz r1,L164_LF2 nop; not filled. add r5,r0,r1 L165_LF2: add r2,r0,r6 lb r31,(r6) andi r1,r31,#0x00ff snei r1,r1,#0 beqz r1,L163_LF2 nop; not filled. lbu r3,(r4) L169_LF2: andi r1,r31,#0x00ff seq r1,r3,r1 beqz r1,L168_LF2 nop; not filled. add r1,r0,r4 j L173_LF2 nop; not filled. L168_LF2: addi r2,r2,#1 lb r31,(r2) andi r1,r31,#0x00ff snei r1,r1,#0 bnez r1,L169_LF2 nop; not filled. L163_LF2: bnez r5,L165_LF2 nop; not filled. L164_LF2: addi r1,r0,#0 L173_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dmindex .align 2 .proc _dindex .global _dindex _dindex: ; Function 'dindex'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) j L187_LF2 nop; not filled. L183_LF2: andi r1,r31,#0x00ff seq r1,r1,r3 beqz r1,L184_LF2 nop; not filled. add r1,r0,r2 j L186_LF2 nop; not filled. L184_LF2: addi r2,r2,#1 L187_LF2: lb r31,(r2) andi r1,r31,#0x00ff snei r1,r1,#0 bnez r1,L183_LF2 nop; not filled. addi r1,r0,#0 L186_LF2: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dindex .align 2 .proc _ditoa .global _ditoa _ditoa: ; Function 'ditoa'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) lw r4,4(r30) slti r1,r3,#0 beqz r1,L203_LF2 nop; not filled. addi r6,r0,(#0x2d)&0xff j L216_LF2 nop; not filled. L203_LF2: snei r1,r3,#0 bnez r1,L205_LF2 nop; not filled. addi r6,r0,(#0x30)&0xff L216_LF2: sb (r4),r6 addi r4,r4,#1 j L204_LF2 nop; not filled. L205_LF2: addi r31,r0,#1 sle r1,r31,r3 beqz r1,L208_LF2 nop; not filled. L209_LF2: slli r1,r31,#0x2 add r1,r1,r31 slli r31,r1,#0x1 sle r1,r31,r3 bnez r1,L209_LF2 nop; not filled. L208_LF2: addi r5,r0,#10 L212_LF2: movi2fp f0,r31 movi2fp f1,r5 div f0,f0,f1 movfp2i r31,f0 movi2fp f0,r3 movi2fp f1,r31 div f0,f0,f1 movfp2i r2,f0 addi r1,r2,#48 sb (r4),r1 addi r4,r4,#1 movi2fp f0,r2 movi2fp f1,r31 mult f0,f0,f1 movfp2i r1,f0 sub r3,r3,r1 sgti r1,r31,#1 bnez r1,L212_LF2 nop; not filled. L204_LF2: addi r6,r0,(#0x0)&0xff sb (r4),r6 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ditoa .align 2 .proc _dstrtol .global _dstrtol _dstrtol: ; Function 'dstrtol'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) lw r5,4(r30) lw r4,8(r30) addi r3,r0,#0 j L247_LF2 nop; not filled. L220_LF2: addi r2,r2,#1 L247_LF2: lb r31,(r2) andi r1,r31,#0x00ff seqi r1,r1,#32 bnez r1,L220_LF2 nop; not filled. addi r1,r31,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 bnez r1,L220_LF2 nop; not filled. snei r1,r5,#0 beqz r1,L222_LF2 nop; not filled. sw (r5),r2 L222_LF2: lbu r31,(r2) snei r1,r31,#0 beqz r1,L248_LF2 nop; not filled. seqi r1,r31,#45 beqz r1,L224_LF2 nop; not filled. addi r6,r0,#-1 addi r2,r2,#1 j L225_LF2 nop; not filled. L224_LF2: addi r6,r0,#1 L225_LF2: snei r1,r4,#0 bnez r1,L226_LF2 nop; not filled. lbu r1,(r2) seqi r1,r1,#48 beqz r1,L227_LF2 nop; not filled. addi r2,r2,#1 lbu r31,(r2) seqi r1,r31,#120 bnez r1,L229_LF2 nop; not filled. seqi r1,r31,#88 beqz r1,L228_LF2 nop; not filled. L229_LF2: addi r4,r0,#16 addi r2,r2,#1 j L226_LF2 nop; not filled. L228_LF2: addi r4,r0,#8 j L226_LF2 nop; not filled. L227_LF2: addi r4,r0,#10 L226_LF2: addi r1,r4,#-1 sgtui r1,r1,#15 beqz r1,L233_LF2 nop; not filled. L248_LF2: add r1,r0,r3 j L245_LF2 nop; not filled. L233_LF2: lb r31,(r2) addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 beqz r1,L236_LF2 nop; not filled. andi r1,r31,#0x00ff addi r1,r1,#-48 j L237_LF2 nop; not filled. L236_LF2: addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#25 beqz r1,L238_LF2 nop; not filled. andi r1,r31,#0x00ff addi r1,r1,#-87 j L237_LF2 nop; not filled. L238_LF2: addi r1,r31,#-65 andi r1,r1,#0x00ff sleui r1,r1,#25 beqz r1,L240_LF2 nop; not filled. andi r1,r31,#0x00ff addi r1,r1,#-55 j L237_LF2 nop; not filled. L240_LF2: addi r1,r0,#1000 L237_LF2: slt r31,r1,r4 beqz r31,L246_LF2 nop; not filled. movi2fp f0,r3 movi2fp f1,r4 mult f0,f0,f1 movfp2i r3,f0 add r3,r3,r1 addi r2,r2,#1 bnez r31,L233_LF2 nop; not filled. L246_LF2: snei r1,r5,#0 beqz r1,L244_LF2 nop; not filled. sw (r5),r2 L244_LF2: movi2fp f0,r3 movi2fp f1,r6 mult f0,f0,f1 movfp2i r1,f0 L245_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrtol .align 2 .proc _bcopy .global _bcopy _bcopy: ; Function 'bcopy'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) lw r2,4(r30) lw r31,8(r30) j L259_LF2 nop; not filled. L257_LF2: lb r4,(r3) sb (r2),r4 addi r3,r3,#1 addi r2,r2,#1 L259_LF2: add r1,r0,r31 addi r31,r31,#-1 sgti r1,r1,#0 bnez r1,L257_LF2 nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _bcopy .align 2 .proc _bzero .global _bzero _bzero: ; Function 'bzero'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r31,4(r30) j L270_LF2 nop; not filled. L268_LF2: addi r3,r0,(#0x0)&0xff sb (r2),r3 addi r2,r2,#1 L270_LF2: add r1,r0,r31 addi r31,r31,#-1 sgti r1,r1,#0 bnez r1,L268_LF2 nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _bzero ;;; Ethan L. Miller, 1999. Released to the public domain ;;; ;;; Most of the traps are called in files from libtraps. .align 2 .proc _exit .global _exit _exit: trap #0x300 jr r31 nop .endproc _exit ; for the benefit of gcc. .proc ___main .global ___main ___main: jr r31 nop .endproc ___main .text .global _etext _etext: .align 3 .data .global _edata _edata:

src/synch.o

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Entering SynchModuleInit\n\000" .align 2 LC1: .ascii "Leaving SynchModuleInit\n\000" .text .align 2 .proc _SynchModuleInit .global _SynchModuleInit _SynchModuleInit: ; Function 'SynchModuleInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r3,r0,#112 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L53 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r3,r0,#43 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L52 nop ; not filled. L53: addi r29,r29,#-8 lhi r3,((LC0)>>16)&0xffff addui r3,r3,(LC0)&0xffff sw (r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L52: lhi r31,((_sems)>>16)&0xffff addui r31,r31,(_sems)&0xffff addi r2,r31,#1260 L57: addi r3,r0,#0 sw 16(r31),r3 addi r31,r31,#20 sle r1,r31,r2 bnez r1,L57 nop ; not filled. lhi r31,((_locks)>>16)&0xffff addui r31,r31,(_locks)&0xffff addi r2,r31,#1764 L62: addi r3,r0,#0 sw 24(r31),r3 addi r3,r0,#-1 sw 20(r31),r3 addi r31,r31,#28 sle r1,r31,r2 bnez r1,L62 nop ; not filled. addi r2,r0,#0 lhi r31,((_conds)>>16)&0xffff addui r31,r31,(_conds)&0xffff L67: addi r3,r0,#0 sw 28(r31),r3 sw 24(r31),r3 addi r31,r31,#32 addi r2,r2,#1 slei r1,r2,#31 bnez r1,L67 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r3,r0,#112 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L70 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r3,r0,#43 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L69 nop ; not filled. L70: addi r29,r29,#-8 lhi r3,((LC1)>>16)&0xffff addui r3,r3,(LC1)&0xffff sw (r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L69: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SynchModuleInit .align 2 .proc _SemInit .global _SemInit _SemInit: ; Function 'SemInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. sw 12(r2),r3 addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemInit .align 2 .proc _SemCreate .global _SemCreate _SemCreate: ; Function 'SemCreate'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r3,r0,#0 lhi r31,((_sems)>>16)&0xffff addui r31,r31,(_sems)&0xffff L89: add r2,r0,r31 lw r1,16(r31) snei r1,r1,#0 beqz r1,L96 nop ; not filled. addi r31,r2,#20 addi r3,r3,#1 slei r1,r3,#63 bnez r1,L89 nop ; not filled. L87: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 seqi r1,r3,#64 bnez r1,L93 nop ; not filled. slli r1,r3,#0x2 add r1,r1,r3 slli r1,r1,#0x2 lhi r5,((_sems)>>16)&0xffff addui r5,r5,(_sems)&0xffff add r2,r1,r5 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. lw r5,(r30) sw 12(r2),r5 addi r29,r29,#8 add r1,r0,r3 j L95 nop ; not filled. L96: addi r5,r0,#1 sw 16(r31),r5 j L87 nop ; not filled. L93: addi r1,r0,#-1 L95: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemCreate .data .align 2 LC2: .ascii "Old interrupt value was 0x%x.\n\000" .align 2 LC3: .ascii "Proc 0x%x waiting on sem 0x%x, count=%d.\n\000" .align 2 LC4: .ascii "Suspending current proc (0x%x).\n\000" .text .align 2 .proc _SemWait .global _SemWait _SemWait: ; Function 'SemWait'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r4,(r30) addi r29,r29,#-8 addi r7,r0,#15 sw (r29),r7 jal _SetIntrs nop ; not filled. add r6,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#73 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L100 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L99 nop ; not filled. L100: addi r29,r29,#-8 lhi r7,((LC2)>>16)&0xffff addui r7,r7,(LC2)&0xffff sw (r29),r7 sw 4(r29),r6 jal _printf nop ; not filled. addi r29,r29,#8 L99: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#115 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L102 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L101 nop ; not filled. L102: addi r29,r29,#-16 lhi r7,((LC3)>>16)&0xffff addui r7,r7,(LC3)&0xffff sw (r29),r7 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 sw 8(r29),r4 lw r7,12(r4) sw 12(r29),r7 jal _printf nop ; not filled. addi r29,r29,#16 L101: lw r1,12(r4) addi r1,r1,#-1 sw 12(r4),r1 slti r1,r1,#0 beqz r1,L103 nop ; not filled. jal _QueueAllocLink nop ; not filled. add r2,r0,r1 lhi r5,((_currentPCB)>>16)&0xffff addui r5,r5,(_currentPCB)&0xffff lw r1,(r5) addi r7,r0,#0 sw (r2),r7 sw 12(r2),r1 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r7,r0,#115 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L106 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L105 nop ; not filled. L106: addi r29,r29,#-8 lhi r7,((LC4)>>16)&0xffff addui r7,r7,(LC4)&0xffff sw (r29),r7 lw r1,(r5) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L105: lw r1,4(r4) sw 8(r2),r4 sw 4(r2),r1 lw r7,(r1) sw (r2),r7 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r4) addi r1,r1,#1 sw 8(r4),r1 jal _ProcessSleep nop ; not filled. L103: addi r29,r29,#-8 sw (r29),r6 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemWait .align 2 .proc _SemHandleWait .global _SemHandleWait _SemHandleWait: ; Function 'SemHandleWait'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r31,(r30) sleui r1,r31,#63 beqz r1,L116 nop ; not filled. slli r1,r31,#0x2 add r1,r1,r31 slli r1,r1,#0x2 lhi r2,((_sems)>>16)&0xffff addui r2,r2,(_sems)&0xffff add r31,r1,r2 lw r1,16(r31) snei r1,r1,#0 beqz r1,L117 nop ; not filled. addi r29,r29,#-8 sw (r29),r31 jal _SemWait nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L115 nop ; not filled. L117: addi r1,r0,#1 j L115 nop ; not filled. L116: addi r1,r0,#1 L115: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemHandleWait .data .align 2 LC5: .ascii "Signalling on sem 0x%x, count=%d.\n\000" .align 2 LC6: .ascii "Waking up PCB 0x%x.\n\000" .text .align 2 .proc _SemSignal .global _SemSignal _SemSignal: ; Function 'SemSignal'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r5,r0,#115 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L123 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L122 nop ; not filled. L123: addi r29,r29,#-16 lhi r5,((LC5)>>16)&0xffff addui r5,r5,(LC5)&0xffff sw (r29),r5 sw 4(r29),r2 lw r5,12(r2) sw 8(r29),r5 jal _printf nop ; not filled. addi r29,r29,#16 L122: lw r1,12(r2) addi r1,r1,#1 sw 12(r2),r1 slei r1,r1,#0 beqz r1,L124 nop ; not filled. lw r3,(r2) lw r1,8(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L127 nop ; not filled. lw r1,4(r3) lw r5,(r3) sw (r1),r5 lw r1,(r3) lw r5,4(r3) sw 4(r1),r5 lw r2,8(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L127: addi r5,r0,#0 sw (r3),r5 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#115 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L129 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L128 nop ; not filled. L129: addi r29,r29,#-8 lhi r5,((LC6)>>16)&0xffff addui r5,r5,(LC6)&0xffff sw (r29),r5 lw r1,12(r3) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L128: addi r29,r29,#-8 lw r5,12(r3) sw (r29),r5 jal _ProcessWakeup nop ; not filled. sw (r29),r3 jal _QueueFreeLink nop ; not filled. addi r29,r29,#8 L124: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemSignal .align 2 .proc _SemHandleSignal .global _SemHandleSignal _SemHandleSignal: ; Function 'SemHandleSignal'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r31,(r30) sleui r1,r31,#63 beqz r1,L136 nop ; not filled. slli r1,r31,#0x2 add r1,r1,r31 slli r1,r1,#0x2 lhi r2,((_sems)>>16)&0xffff addui r2,r2,(_sems)&0xffff add r31,r1,r2 lw r1,16(r31) snei r1,r1,#0 beqz r1,L137 nop ; not filled. addi r29,r29,#-8 sw (r29),r31 jal _SemSignal nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L135 nop ; not filled. L137: addi r1,r0,#1 j L135 nop ; not filled. L136: addi r1,r0,#1 L135: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemHandleSignal .align 2 .proc _LockInit .global _LockInit _LockInit: ; Function 'LockInit'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) addi r29,r29,#-8 addi r4,r0,#15 sw (r29),r4 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. addi r4,r0,#1 sw 12(r2),r4 addi r29,r29,#8 addi r4,r0,#-1 sw 20(r2),r4 addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockInit .align 2 .proc _LockCreate .global _LockCreate _LockCreate: ; Function 'LockCreate'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r31,r0,r1 addi r29,r29,#8 addi r4,r0,#0 lhi r3,((_locks)>>16)&0xffff addui r3,r3,(_locks)&0xffff L153: add r2,r0,r3 lw r1,24(r3) snei r1,r1,#0 beqz r1,L163 nop ; not filled. addi r3,r2,#28 addi r4,r4,#1 slei r1,r4,#63 bnez r1,L153 nop ; not filled. L151: addi r29,r29,#-8 sw (r29),r31 jal _SetIntrs nop ; not filled. addi r29,r29,#8 seqi r1,r4,#64 bnez r1,L157 nop ; not filled. slli r1,r4,#0x3 sub r1,r1,r4 slli r1,r1,#0x2 lhi r5,((_locks)>>16)&0xffff addui r5,r5,(_locks)&0xffff add r2,r1,r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. addi r5,r0,#1 sw 12(r2),r5 addi r29,r29,#8 addi r5,r0,#-1 sw 20(r2),r5 addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r4 j L162 nop ; not filled. L163: addi r5,r0,#1 sw 24(r3),r5 j L151 nop ; not filled. L157: addi r1,r0,#-1 L162: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockCreate .align 2 .proc _LockAcquire .global _LockAcquire _LockAcquire: ; Function 'LockAcquire'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r4,((_currentPCB)>>16)&0xffff addui r4,r4,(_currentPCB)&0xffff lw r6,(r4) sw (r29),r6 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L170 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop ; not filled. lw r4,(r4) sw (r29),r4 jal _findpid nop ; not filled. sw 20(r3),r1 addi r29,r29,#8 L170: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockAcquire .align 2 .proc _LockHandleAcquire .global _LockHandleAcquire _LockHandleAcquire: ; Function 'LockHandleAcquire'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) sleui r1,r2,#63 beqz r1,L181 nop ; not filled. slli r1,r2,#0x3 sub r1,r1,r2 slli r1,r1,#0x2 lhi r6,((_locks)>>16)&0xffff addui r6,r6,(_locks)&0xffff add r3,r1,r6 lw r1,24(r3) snei r1,r1,#0 beqz r1,L181 nop ; not filled. addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r4,((_currentPCB)>>16)&0xffff addui r4,r4,(_currentPCB)&0xffff lw r6,(r4) sw (r29),r6 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L185 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop ; not filled. lw r4,(r4) sw (r29),r4 jal _findpid nop ; not filled. sw 20(r3),r1 addi r29,r29,#8 L185: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L188 nop ; not filled. L181: addi r1,r0,#1 L188: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockHandleAcquire .align 2 .proc _LockRelease .global _LockRelease _LockRelease: ; Function 'LockRelease'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r3,(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L195 nop ; not filled. addi r5,r0,#-1 sw 20(r3),r5 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 L195: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockRelease .align 2 .proc _LockHandleRelease .global _LockHandleRelease _LockHandleRelease: ; Function 'LockHandleRelease'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) sleui r1,r2,#63 beqz r1,L206 nop ; not filled. slli r1,r2,#0x3 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_locks)>>16)&0xffff addui r5,r5,(_locks)&0xffff add r3,r1,r5 lw r1,24(r3) snei r1,r1,#0 beqz r1,L206 nop ; not filled. addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L210 nop ; not filled. addi r5,r0,#-1 sw 20(r3),r5 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 L210: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L213 nop ; not filled. L206: addi r1,r0,#1 L213: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockHandleRelease .align 2 .proc _CondInit .global _CondInit _CondInit: ; Function 'CondInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop ; not filled. addi r5,r0,#0 sw 16(r2),r5 addi r29,r29,#8 sw (r2),r3 sw 24(r2),r5 addi r5,r0,#1 sw 28(r2),r5 addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondInit .align 2 .proc _CondCreate .global _CondCreate _CondCreate: ; Function 'CondCreate'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) sgtui r1,r3,#64 bnez r1,L233 nop ; not filled. slli r1,r3,#0x3 sub r1,r1,r3 slli r1,r1,#0x2 lhi r6,((_locks)>>16)&0xffff addui r6,r6,(_locks)&0xffff add r1,r1,r6 lw r1,24(r1) snei r1,r1,#1 beqz r1,L224 nop ; not filled. j L233 nop ; not filled. L239: addi r6,r0,#1 sw 28(r2),r6 j L227 nop ; not filled. L224: addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r5,r0,#0 lhi r2,((_conds)>>16)&0xffff addui r2,r2,(_conds)&0xffff L229: lw r1,28(r2) snei r1,r1,#0 beqz r1,L239 nop ; not filled. addi r2,r2,#32 addi r5,r5,#1 slei r1,r5,#31 bnez r1,L229 nop ; not filled. L227: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 seqi r1,r5,#32 bnez r1,L233 nop ; not filled. slli r2,r5,#0x5 lhi r6,((_conds)>>16)&0xffff addui r6,r6,(_conds)&0xffff add r2,r2,r6 slli r1,r3,#0x3 sub r1,r1,r3 slli r1,r1,#0x2 lhi r6,((_locks)>>16)&0xffff addui r6,r6,(_locks)&0xffff add r3,r1,r6 addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop ; not filled. addi r6,r0,#0 sw 16(r2),r6 addi r29,r29,#8 sw (r2),r3 sw 24(r2),r6 addi r6,r0,#1 sw 28(r2),r6 addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r5 j L238 nop ; not filled. L233: addi r1,r0,#-1 L238: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondCreate .align 2 .proc _CondWait .global _CondWait _CondWait: ; Function 'CondWait'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r4,(r30) addi r29,r29,#-8 addi r8,r0,#15 sw (r29),r8 jal _SetIntrs nop ; not filled. add r7,r0,r1 addi r29,r29,#8 lw r1,24(r4) addi r1,r1,#1 sw 24(r4),r1 lw r3,(r4) addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r6,((_currentPCB)>>16)&0xffff addui r6,r6,(_currentPCB)&0xffff lw r8,(r6) sw (r29),r8 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L244 nop ; not filled. addi r8,r0,#-1 sw 20(r3),r8 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 L244: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 addi r1,r4,#4 sw (r29),r1 jal _SemWait nop ; not filled. lw r3,(r4) addi r29,r29,#8 addi r29,r29,#-8 addi r8,r0,#15 sw (r29),r8 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lw r8,(r6) sw (r29),r8 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L248 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop ; not filled. lw r6,(r6) sw (r29),r6 jal _findpid nop ; not filled. sw 20(r3),r1 addi r29,r29,#8 L248: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondWait .align 2 .proc _CondHandleWait .global _CondHandleWait _CondHandleWait: ; Function 'CondHandleWait'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) sleui r1,r2,#31 beqz r1,L256 nop ; not filled. slli r1,r2,#0x5 lhi r4,((_conds)>>16)&0xffff addui r4,r4,(_conds)&0xffff add r3,r1,r4 lw r1,28(r3) snei r1,r1,#0 beqz r1,L257 nop ; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r2) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L257 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _CondWait nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L255 nop ; not filled. L257: addi r1,r0,#1 j L255 nop ; not filled. L256: addi r1,r0,#1 L255: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleWait .align 2 .proc _CondSignal .global _CondSignal _CondSignal: ; Function 'CondSignal'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) addi r29,r29,#-8 addi r4,r0,#15 sw (r29),r4 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 lw r31,24(r2) snei r1,r31,#0 beqz r1,L266 nop ; not filled. addi r1,r31,#-1 sw 24(r2),r1 addi r29,r29,#-8 addi r1,r2,#4 sw (r29),r1 jal _SemSignal nop ; not filled. addi r29,r29,#8 L266: addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondSignal .align 2 .proc _CondHandleSignal .global _CondHandleSignal _CondHandleSignal: ; Function 'CondHandleSignal'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) sleui r1,r2,#31 beqz r1,L277 nop ; not filled. slli r1,r2,#0x5 lhi r5,((_conds)>>16)&0xffff addui r5,r5,(_conds)&0xffff add r3,r1,r5 lw r1,28(r3) snei r1,r1,#0 beqz r1,L277 nop ; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r2) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L277 nop ; not filled. addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 lw r2,24(r3) snei r1,r2,#0 beqz r1,L282 nop ; not filled. addi r1,r2,#-1 sw 24(r3),r1 addi r29,r29,#-8 addi r1,r3,#4 sw (r29),r1 jal _SemSignal nop ; not filled. addi r29,r29,#8 L282: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L284 nop ; not filled. L277: addi r1,r0,#1 L284: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleSignal .align 2 .proc _CondBroadcast .global _CondBroadcast _CondBroadcast: ; Function 'CondBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r2,r0,#0 lw r1,24(r4) sltu r1,r2,r1 beqz r1,L296 nop ; not filled. addi r3,r4,#4 L298: addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 lw r1,24(r4) sltu r1,r2,r1 bnez r1,L298 nop ; not filled. L296: addi r6,r0,#0 sw 24(r4),r6 addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondBroadcast .align 2 .proc _CondHandleBroadcast .global _CondHandleBroadcast _CondHandleBroadcast: ; Function 'CondHandleBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) sleui r1,r2,#31 beqz r1,L302 nop ; not filled. slli r1,r2,#0x5 lhi r6,((_conds)>>16)&0xffff addui r6,r6,(_conds)&0xffff add r3,r1,r6 lw r1,28(r3) snei r1,r1,#0 beqz r1,L302 nop ; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r2) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L302 nop ; not filled. addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r2,r0,#0 lw r1,24(r3) sltu r1,r2,r1 beqz r1,L308 nop ; not filled. addi r4,r3,#4 L310: addi r29,r29,#-8 sw (r29),r4 jal _SemSignal nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 lw r1,24(r3) sltu r1,r2,r1 bnez r1,L310 nop ; not filled. L308: addi r6,r0,#0 sw 24(r3),r6 addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L313 nop ; not filled. L302: addi r1,r0,#1 L313: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleBroadcast .data .align 2 _sems: .space 1280 .align 2 _locks: .space 1792 .align 2 _conds: .space 1024

src/os.lst

line address contents 1 ; Linked by DLX-LD. 2 ; MemSize 106496 3 ; Data size: 38336 4 ; Text size: 49712 5 ; Stack size: 8192 6 00000000 .text 0x1000 7 00001000 .data 0xe000 8 ;;; 9 ;;; Initialization code for programs running in the DLX simulator. 10 ;;; Copyright (c) 1999 by Ethan Miller 11 ;;; 12 ;;; 14 0000e000 .text 15 00001000 .align 2 17 ;;;---------------------------------------------------------------------- 18 ;;; osinit 19 ;;; 20 ;;; This is the first function called by the simulator, even before main. 21 ;;; Since it's called BEFORE any "real" routines, we can use any registers 22 ;;; we want as long as we don't mess up the stack or frame pointers. 23 ;;; 24 ;;; This routine loads the interrupt vector to point to the interrupt 25 ;;; handler later in this file. It should never return, because _main 26 ;;; should call exitsim() or exit() rather than returning here. 27 ;;; 28 ;;; After initialization is done, this routine jumps to _main to start the 29 ;;; C code portion of the operating system. 30 ;;;---------------------------------------------------------------------- 31 00001000 .proc _osinit 32 00001000 .global _osinit 33 00001000 _osinit: 34 ;; Set up the interrupt handler 35 00001000 3c010000 lhi r1,(_intrhandler>>16)&0xffff 36 00001004 24211010 addui r1,r1,_intrhandler&0xffff 37 00001008 00204030 movi2s intrvec,r1 38 ;; Never returns because exitsim is called first 39 0000100c 0800863c j _main 40 00001010 .endproc _osinit 42 ;;;---------------------------------------------------------------------- 43 ;;; intrhandler 44 ;;; 45 ;;; Called when an interrupt or trap is received by the CPU. It stores the 46 ;;; current register set on the system stack. It then pushes the parameters 47 ;;; to the C interrupt handler onto the stack: the ISR, IAR, and CAUSE 48 ;;; registers along with the original stack pointer. The C interrupt 49 ;;; handler can then copy arguments from the original stack, performing 50 ;;; user -> system translations if necessary. 51 ;;; 52 ;;;---------------------------------------------------------------------- 53 00001010 .proc _intrhandler 54 00001010 .global _intrhandler 55 00001010 _intrhandler: 56 ;; We can use r31 as scratch space because its value was saved in 57 ;; ir31. However, we must save the "real" value of r31 on the 58 ;; stack. 60 ;; Always store the registers on the system stack. This way, we don't 61 ;; have to worry about translating things from user -> system. We 62 ;; use r31 as the base register because its value was saved in ir31. 64 ;; If this was a user process, load r29 with the current system 65 ;; stack pointer. If it was a system process, just use the 66 ;; current stack pointer. 67 00001010 0060f831 movs2i r31,isr 68 00001014 33ff0040 andi r31,r31,0x40 69 00001018 17e0001c bnez r31,intrSystem_LF0 70 0000101c 3c1f0001 lhi r31,(_currentPCB>>16)&0xffff 71 00001020 27ff4100 addui r31,r31,_currentPCB&0xffff 72 00001024 8fff0000 lw r31,(r31) 73 00001028 8fff0004 lw r31,4(r31) 74 ;; Save the original (user) stack pointer 75 0000102c affdff48 sw -184(r31),r29; we haven't yet bumped SP, and 156-340 = -184 76 ;; Copy the system stack pointer into r29 (current stack pointer) 77 00001030 37fd0000 ori r29,r31,0 78 00001034 10000004 beqz r0,intrSaveReg_LF0; skip over the system part.... 79 00001038 intrSystem_LF0: 80 ;; Use the stack pointer we're already using 81 ;; Save r29 because we won't save it later 82 00001038 afbdff48 sw -184(r29),r29; we haven't yet bumped SP, and 156-340 = -184 83 0000103c intrSaveReg_LF0: 84 ;; Adjust stack pointer for all the stuff we're going to push. This 85 ;; is a bit more space than we need currently, but it leaves room 86 ;; for more stuff if needed. 87 0000103c 2fbd0154 subui r29,r29,#340 88 ;; Push all the stuff onto the stack 89 00001040 afa1002c sw 44(r29),r1 90 00001044 afa20030 sw 48(r29),r2 91 00001048 afa30034 sw 52(r29),r3 92 0000104c afa40038 sw 56(r29),r4 93 00001050 afa5003c sw 60(r29),r5 94 00001054 afa60040 sw 64(r29),r6 95 00001058 afa70044 sw 68(r29),r7 96 0000105c afa80048 sw 72(r29),r8 97 00001060 afa9004c sw 76(r29),r9 98 00001064 afaa0050 sw 80(r29),r10 99 00001068 afab0054 sw 84(r29),r11 100 0000106c afac0058 sw 88(r29),r12 101 00001070 afad005c sw 92(r29),r13 102 00001074 afae0060 sw 96(r29),r14 103 00001078 afaf0064 sw 100(r29),r15 104 0000107c afb00068 sw 104(r29),r16 105 00001080 afb1006c sw 108(r29),r17 106 00001084 afb20070 sw 112(r29),r18 107 00001088 afb30074 sw 116(r29),r19 108 0000108c afb40078 sw 120(r29),r20 109 00001090 afb5007c sw 124(r29),r21 110 00001094 afb60080 sw 128(r29),r22 111 00001098 afb70084 sw 132(r29),r23 112 0000109c afb80088 sw 136(r29),r24 113 000010a0 afb9008c sw 140(r29),r25 114 000010a4 afba0090 sw 144(r29),r26 115 000010a8 afbb0094 sw 148(r29),r27 116 000010ac afbc0098 sw 152(r29),r28 117 ;; Skip r29 - stored earlier! 118 000010b0 afbe00a0 sw 160(r29),r30 119 ;; Load the value of r31 from the special register and then save it 120 000010b4 00401831 movs2i r3,ir31 121 000010b8 afa300a4 sw 164(r29),r3 122 ;; Store the floating-point registers 123 000010bc bfa000a8 sd 168(r29),f0 124 000010c0 bfa200b0 sd 176(r29),f2 125 000010c4 bfa400b8 sd 184(r29),f4 126 000010c8 bfa600c0 sd 192(r29),f6 127 000010cc bfa800c8 sd 200(r29),f8 128 000010d0 bfaa00d0 sd 208(r29),f10 129 000010d4 bfac00d8 sd 216(r29),f12 130 000010d8 bfae00e0 sd 224(r29),f14 131 000010dc bfb000e8 sd 232(r29),f16 132 000010e0 bfb200f0 sd 240(r29),f18 133 000010e4 bfb400f8 sd 248(r29),f20 134 000010e8 bfb60100 sd 256(r29),f22 135 000010ec bfb80108 sd 264(r29),f24 136 000010f0 bfba0110 sd 272(r29),f26 137 000010f4 bfbc0118 sd 280(r29),f28 138 000010f8 bfbe0120 sd 288(r29),f30 139 ;; NOTE: we don't save the interrupt vector register because it 140 ;; doesn't change from process to process. 141 ;; NOTE: we don't save the status register because most of the flags 142 ;; are the same from process to process if they're in the interrupt 143 ;; handler. Of course, we DO save the ISR. 144 000010fc 00802031 movs2i r4,iar 145 00001100 afa40128 sw 296(r29),r4 146 00001104 00602831 movs2i r5,isr 147 00001108 afa5012c sw 300(r29),r5 148 0000110c 00c03031 movs2i r6,cause 149 00001110 afa60130 sw 304(r29),r6 150 00001114 01201831 movs2i r3,fault 151 00001118 afa30134 sw 308(r29),r3 152 0000111c 01801831 movs2i r3,ptbase 153 00001120 afa30138 sw 312(r29),r3 154 00001124 01a01831 movs2i r3,ptsize 155 00001128 afa3013c sw 316(r29),r3 156 0000112c 01c01831 movs2i r3,ptbits 157 00001130 afa30140 sw 320(r29),r3 159 ;; Push the interrupt information onto the stack 160 00001134 afa60000 sw 0(r29),r6; push CAUSE 161 00001138 afa40004 sw 4(r29),r4; push IAR 162 0000113c afa50008 sw 8(r29),r5; push ISR 163 ;; Get the original stack pointer 164 00001140 8fa1009c lw r1,156(r29) 165 00001144 afa1000c sw 12(r29),r1 166 ;; Save the previous interrupt stack frame address in the current frame 167 00001148 3c010001 lhi r1,(_currentPCB>>16)&0xffff 168 0000114c 24214100 addui r1,r1,_currentPCB&0xffff 169 00001150 8c210000 lw r1,(r1) 170 00001154 8c220000 lw r2,0(r1) 171 00001158 afa20028 sw 40(r29),r2 172 ;; Save this frame address in the PCB. This is used so the OS can 173 ;; easily access the current interrupt save frame 174 0000115c ac3d0000 sw 0(r1),r29 175 ;; Call the "real" interrupt handler. This will possibly switch 176 ;; contexts. This call never returns; instead, a separate routine 177 ;; (_intrreturn) is called to return from interrupts after restoring 178 ;; the current context. 179 00001160 0800a560 j _dointerrupt 180 00001164 54000000 nop 181 00001168 .endproc _intrhandler 183 ;;;---------------------------------------------------------------------- 184 ;;; intrreturn 185 ;;; 186 ;;; Return from an interrupt or trap. This restores all of the previously 187 ;;; saved registers and then returns to where the program left off. The 188 ;;; current contents of the registers are destroyed. This routine uses 189 ;;; the saved interrupt frame pointer, so the stack pointer need not 190 ;;; be correct. Note, though, that the register contents from the previous 191 ;;; process must have previously been saved - in other words, call this 192 ;;; routine from a trap or interrupt handler. 193 ;;;---------------------------------------------------------------------- 194 00001168 .proc _intrreturn 195 00001168 .global _intrreturn 196 00001168 _intrreturn: 197 ;; Disable interrupts - this routine must be atomic, and interrupts 198 ;; may not be currently disabled. Don't worry about saving registers 199 ;; because we're about to reload them anyway. 200 00001168 0c00b898 jal _DisableIntrs 201 ;; Get our interrupt stack frame location and load it into the stack 202 ;; pointer. 203 0000116c 3c010001 lhi r1,(_currentPCB>>16)&0xffff 204 00001170 24214100 addui r1,r1,_currentPCB&0xffff 205 00001174 8c210000 lw r1,0(r1) 206 00001178 8c3d0000 lw r29,0(r1) 207 ;; Get the previous interrupt stack frame location and make it the 208 ;; current interrupt save frame. 209 0000117c 8fa20028 lw r2,40(r29) 210 00001180 ac220000 sw 0(r1),r2 212 ;; Reload the registers for the new process. We don't have to 213 ;; load in the exact opposite order as long as we're careful to 214 ;; get the right values back in. 215 00001184 8fa30128 lw r3,296(r29) 216 00001188 00602030 movi2s iar,r3 217 0000118c 8fa3012c lw r3,300(r29) 218 00001190 00601830 movi2s isr,r3 219 00001194 8fa30130 lw r3,304(r29) 220 00001198 00603030 movi2s cause,r3 221 0000119c 8fa30134 lw r3,308(r29) 222 000011a0 00604830 movi2s fault,r3 223 000011a4 8fa30138 lw r3,312(r29) 224 000011a8 00606030 movi2s ptbase,r3 225 000011ac 8fa3013c lw r3,316(r29) 226 000011b0 00606830 movi2s ptsize,r3 227 000011b4 8fa30140 lw r3,320(r29) 228 000011b8 00607030 movi2s ptbits,r3 230 ;; Reload the floating point registers 231 000011bc 9fa000a8 ld f0,168(r29) 232 000011c0 9fa200b0 ld f2,176(r29) 233 000011c4 9fa400b8 ld f4,184(r29) 234 000011c8 9fa600c0 ld f6,192(r29) 235 000011cc 9fa800c8 ld f8,200(r29) 236 000011d0 9faa00d0 ld f10,208(r29) 237 000011d4 9fac00d8 ld f12,216(r29) 238 000011d8 9fae00e0 ld f14,224(r29) 239 000011dc 9fb000e8 ld f16,232(r29) 240 000011e0 9fb200f0 ld f18,240(r29) 241 000011e4 9fb400f8 ld f20,248(r29) 242 000011e8 9fb60100 ld f22,256(r29) 243 000011ec 9fb80108 ld f24,264(r29) 244 000011f0 9fba0110 ld f26,272(r29) 245 000011f4 9fbc0118 ld f28,280(r29) 246 000011f8 9fbe0120 ld f30,288(r29) 248 ;; Reload the integer registers. We don't reload r0 because it's 249 ;; always 0. We won't reload r29 here because we're using it as 250 ;; the stack pointer. The same goes for r1, which we'll use as 251 ;; scratch so we can store r29. 252 ;; Skip r1 - restored later 253 000011fc 8fa20030 lw r2,48(r29) 254 00001200 8fa30034 lw r3,52(r29) 255 00001204 8fa40038 lw r4,56(r29) 256 00001208 8fa5003c lw r5,60(r29) 257 0000120c 8fa60040 lw r6,64(r29) 258 00001210 8fa70044 lw r7,68(r29) 259 00001214 8fa80048 lw r8,72(r29) 260 00001218 8fa9004c lw r9,76(r29) 261 0000121c 8faa0050 lw r10,80(r29) 262 00001220 8fab0054 lw r11,84(r29) 263 00001224 8fac0058 lw r12,88(r29) 264 00001228 8fad005c lw r13,92(r29) 265 0000122c 8fae0060 lw r14,96(r29) 266 00001230 8faf0064 lw r15,100(r29) 267 00001234 8fb00068 lw r16,104(r29) 268 00001238 8fb1006c lw r17,108(r29) 269 0000123c 8fb20070 lw r18,112(r29) 270 00001240 8fb30074 lw r19,116(r29) 271 00001244 8fb40078 lw r20,120(r29) 272 00001248 8fb5007c lw r21,124(r29) 273 0000124c 8fb60080 lw r22,128(r29) 274 00001250 8fb70084 lw r23,132(r29) 275 00001254 8fb80088 lw r24,136(r29) 276 00001258 8fb9008c lw r25,140(r29) 277 0000125c 8fba0090 lw r26,144(r29) 278 00001260 8fbb0094 lw r27,148(r29) 279 00001264 8fbc0098 lw r28,152(r29) 280 ;; Skip r29 - restored later 281 00001268 8fbe00a0 lw r30,160(r29) 282 0000126c 8fbf00a4 lw r31,164(r29) 284 00001270 27bd0154 addui r29,r29,#340 285 ;; Save the current value of the stack pointer after adjusting it 286 ;; Note that this will "destroy" the stack values below this interrupt 287 ;; stack frame. This is exactly what we want! 288 00001274 ac3d0004 sw 4(r1),r29 289 00001278 37a10000 ori r1,r29,#0 290 0000127c 8c3dff48 lw r29,-184(r1); 156-340 = -184 291 00001280 8c21fed8 lw r1,-296(r1); 44-340 = -296 292 00001284 40000000 rfe 293 00001288 .endproc _intrreturn 295 ;;;---------------------------------------------------------------------- 296 ;;; SetIntrs 297 ;;; 298 ;;; This routine sets the interrupt level to the value passed (0 -> all 299 ;;; interrupts enabled; 0xf -> all interrupts disabled). It returns the 300 ;;; former value for the interrupt flags. 301 ;;;---------------------------------------------------------------------- 302 00001288 .proc _SetIntrs 303 00001288 .global _SetIntrs 304 00001288 _SetIntrs: 305 00001288 2fbd0010 subui r29,r29,#16 306 0000128c afa2000c sw 12(r29),r2; save r2 307 00001290 8fa20010 lw r2,16(r29); Get the new interrupt level 308 00001294 3042000f andi r2,r2,#0x0f; Mask off interrupt levels 309 00001298 00a00831 movs2i r1,status 310 0000129c afa10008 sw 8(r29),r1; Store the old interrupt values 311 000012a0 3021fff0 andi r1,r1,#0xfff0; Mask off old interrupt level 312 000012a4 00410825 or r1,r2,r1; OR in new interrupt level 313 000012a8 00202830 movi2s status,r1 314 000012ac 8fa10008 lw r1,8(r29); Get back the original interrupt level 315 000012b0 3021000f andi r1,r1,#0x0f; Mask off all but interrupt levels 316 000012b4 8fa2000c lw r2,12(r29); restore r2 317 000012b8 27bd0010 addui r29,r29,#16; restore stack pointer 318 000012bc 4be00000 jr r31 319 000012c0 54000000 nop 320 000012c4 .endproc _SetIntrs 322 000012c4 .proc _CurrentIntrs 323 000012c4 .global _CurrentIntrs 324 000012c4 _CurrentIntrs: 325 000012c4 00a00831 movs2i r1,status 326 000012c8 3021000f andi r1,r1,#0xf 327 000012cc 4be00000 jr r31 328 000012d0 54000000 nop 329 000012d4 .endproc _CurrentIntrs 330 ;;;---------------------------------------------------------------------- 331 ;;; _ProcessSleep 332 ;;; 333 ;;; If a context switch from elsewhere in the kernel is desired, take a 334 ;;; trap and call this routine from the trap handler. 335 ;;;---------------------------------------------------------------------- 336 000012d4 .proc _ProcessSleep 337 000012d4 .global _ProcessSleep 338 000012d4 _ProcessSleep: 339 000012d4 44000410 trap #0x410; This is a process sleep trap 340 000012d8 54000000 nop 341 000012dc 4be00000 jr r31 342 000012e0 54000000 nop 343 000012e4 .endproc _ProcessSleep 344 ; 345 ; Stub functions for DLX traps. 346 ; 347 ; Aaron Sawdey 1996; released to the Public Domain. 348 ; 350 000012e4 .align 2 351 000012e4 .proc _random 352 000012e4 .global _random 353 000012e4 _random: 354 000012e4 44002020 trap #0x2020 355 000012e8 4be00000 jr r31 356 000012ec 54000000 nop 357 000012f0 .endproc _random 359 000012f0 .proc _srandom 360 000012f0 .global _srandom 361 000012f0 _srandom: 362 000012f0 44002021 trap #0x2021 363 000012f4 4be00000 jr r31 364 000012f8 54000000 nop 365 000012fc .endproc _srandom 367 ; I know this is not the right place to put it, but what the heck 369 000012fc .proc _timerget 370 000012fc .global _timerget 371 000012fc _timerget: 372 000012fc 44002002 trap #0x2002 373 00001300 4be00000 jr r31 374 00001304 54000000 nop 375 00001308 .endproc _timerget 377 ; Compiled by GCC 379 00001308 .align 2 380 00001308 .proc _isspace 381 00001308 .global _isspace 382 00001308 _isspace: 383 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 384 00001308 afbefffc sw -4(r29),r30; push fp 385 0000130c 001df020 add r30,r0,r29; fp = sp 386 00001310 afbffff8 sw -8(r29),r31; push ret addr 387 00001314 2fbd0010 subui r29,r29,#16; alloc local storage 388 00001318 afa20000 sw 0(r29),r2 389 0000131c 83c20003 lb r2,3(r30) 390 00001320 201f0000 addi r31,r0,#0 391 00001324 304100ff andi r1,r2,#0x00ff 392 00001328 60210020 seqi r1,r1,#32 393 0000132c 14200018 bnez r1,L6_LF2 394 00001330 54000000 nop; not filled. 395 00001334 2041fff7 addi r1,r2,#-9 396 00001338 302100ff andi r1,r1,#0x00ff 397 0000133c 70210001 sleui r1,r1,#1 398 00001340 10200008 beqz r1,L5_LF2 399 00001344 54000000 nop; not filled. 400 00001348 L6_LF2: 401 00001348 201f0001 addi r31,r0,#1 402 0000134c L5_LF2: 403 0000134c 001f0820 add r1,r0,r31 404 00001350 8fa20000 lw r2,0(r29) 405 00001354 8fdffff8 lw r31,-8(r30) 406 00001358 001ee820 add r29,r0,r30 407 0000135c 8fdefffc lw r30,-4(r30) 408 00001360 4be00000 jr r31 409 00001364 54000000 nop 410 00001368 .endproc _isspace 411 00001368 .align 2 412 00001368 .proc _isxdigit 413 00001368 .global _isxdigit 414 00001368 _isxdigit: 415 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 416 00001368 afbefffc sw -4(r29),r30; push fp 417 0000136c 001df020 add r30,r0,r29; fp = sp 418 00001370 afbffff8 sw -8(r29),r31; push ret addr 419 00001374 2fbd0010 subui r29,r29,#16; alloc local storage 420 00001378 afa20000 sw 0(r29),r2 421 0000137c 83df0003 lb r31,3(r30) 422 00001380 20020000 addi r2,r0,#0 423 00001384 23e1ffd0 addi r1,r31,#-48 424 00001388 302100ff andi r1,r1,#0x00ff 425 0000138c 70210009 sleui r1,r1,#9 426 00001390 14200028 bnez r1,L12_LF2 427 00001394 54000000 nop; not filled. 428 00001398 23e1ff9f addi r1,r31,#-97 429 0000139c 302100ff andi r1,r1,#0x00ff 430 000013a0 70210005 sleui r1,r1,#5 431 000013a4 14200014 bnez r1,L12_LF2 432 000013a8 54000000 nop; not filled. 433 000013ac 33e100ff andi r1,r31,#0x00ff 434 000013b0 64210041 snei r1,r1,#65 435 000013b4 14200008 bnez r1,L11_LF2 436 000013b8 54000000 nop; not filled. 437 000013bc L12_LF2: 438 000013bc 20020001 addi r2,r0,#1 439 000013c0 L11_LF2: 440 000013c0 00020820 add r1,r0,r2 441 000013c4 8fa20000 lw r2,0(r29) 442 000013c8 8fdffff8 lw r31,-8(r30) 443 000013cc 001ee820 add r29,r0,r30 444 000013d0 8fdefffc lw r30,-4(r30) 445 000013d4 4be00000 jr r31 446 000013d8 54000000 nop 447 000013dc .endproc _isxdigit 448 000013dc .align 2 449 000013dc .proc _DisableIntrs 450 000013dc .global _DisableIntrs 451 000013dc _DisableIntrs: 452 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 453 000013dc afbefffc sw -4(r29),r30; push fp 454 000013e0 001df020 add r30,r0,r29; fp = sp 455 000013e4 afbffff8 sw -8(r29),r31; push ret addr 456 000013e8 2fbd0010 subui r29,r29,#16; alloc local storage 457 000013ec afa20000 sw 0(r29),r2 458 000013f0 23bdfff8 addi r29,r29,#-8 459 000013f4 2002000f addi r2,r0,#15 460 000013f8 afa20000 sw (r29),r2 461 000013fc 0ffffe88 jal _SetIntrs 462 00001400 54000000 nop; not filled. 463 00001404 23bd0008 addi r29,r29,#8 464 00001408 8fa20000 lw r2,0(r29) 465 0000140c 8fdffff8 lw r31,-8(r30) 466 00001410 001ee820 add r29,r0,r30 467 00001414 8fdefffc lw r30,-4(r30) 468 00001418 4be00000 jr r31 469 0000141c 54000000 nop 470 00001420 .endproc _DisableIntrs 471 00001420 .align 2 472 00001420 .proc _EnableIntrs 473 00001420 .global _EnableIntrs 474 00001420 _EnableIntrs: 475 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 476 00001420 afbefffc sw -4(r29),r30; push fp 477 00001424 001df020 add r30,r0,r29; fp = sp 478 00001428 afbffff8 sw -8(r29),r31; push ret addr 479 0000142c 2fbd0010 subui r29,r29,#16; alloc local storage 480 00001430 afa20000 sw 0(r29),r2 481 00001434 23bdfff8 addi r29,r29,#-8 482 00001438 20020000 addi r2,r0,#0 483 0000143c afa20000 sw (r29),r2 484 00001440 0ffffe44 jal _SetIntrs 485 00001444 54000000 nop; not filled. 486 00001448 23bd0008 addi r29,r29,#8 487 0000144c 8fa20000 lw r2,0(r29) 488 00001450 8fdffff8 lw r31,-8(r30) 489 00001454 001ee820 add r29,r0,r30 490 00001458 8fdefffc lw r30,-4(r30) 491 0000145c 4be00000 jr r31 492 00001460 54000000 nop 493 00001464 .endproc _EnableIntrs 494 00001464 .align 2 495 00001464 .proc _RestoreIntrs 496 00001464 .global _RestoreIntrs 497 00001464 _RestoreIntrs: 498 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 499 00001464 afbefffc sw -4(r29),r30; push fp 500 00001468 001df020 add r30,r0,r29; fp = sp 501 0000146c afbffff8 sw -8(r29),r31; push ret addr 502 00001470 2fbd0010 subui r29,r29,#16; alloc local storage 503 00001474 afa20000 sw 0(r29),r2 504 00001478 23bdfff8 addi r29,r29,#-8 505 0000147c 8fc20000 lw r2,(r30) 506 00001480 afa20000 sw (r29),r2 507 00001484 0ffffe00 jal _SetIntrs 508 00001488 54000000 nop; not filled. 509 0000148c 23bd0008 addi r29,r29,#8 510 00001490 8fa20000 lw r2,0(r29) 511 00001494 8fdffff8 lw r31,-8(r30) 512 00001498 001ee820 add r29,r0,r30 513 0000149c 8fdefffc lw r30,-4(r30) 514 000014a0 4be00000 jr r31 515 000014a4 54000000 nop 516 000014a8 .endproc _RestoreIntrs 517 000014a8 .align 2 518 000014a8 .proc _QueueLinkInit 519 000014a8 .global _QueueLinkInit 520 000014a8 _QueueLinkInit: 521 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 522 000014a8 afbefffc sw -4(r29),r30; push fp 523 000014ac 001df020 add r30,r0,r29; fp = sp 524 000014b0 afbffff8 sw -8(r29),r31; push ret addr 525 000014b4 2fbd0010 subui r29,r29,#16; alloc local storage 526 000014b8 afa20000 sw 0(r29),r2 527 000014bc 8fc10000 lw r1,(r30) 528 000014c0 8fc20004 lw r2,4(r30) 529 000014c4 201f0000 addi r31,r0,#0 530 000014c8 ac3f0000 sw (r1),r31 531 000014cc ac22000c sw 12(r1),r2 532 000014d0 8fa20000 lw r2,0(r29) 533 000014d4 8fdffff8 lw r31,-8(r30) 534 000014d8 001ee820 add r29,r0,r30 535 000014dc 8fdefffc lw r30,-4(r30) 536 000014e0 4be00000 jr r31 537 000014e4 54000000 nop 538 000014e8 .endproc _QueueLinkInit 539 000014e8 .align 2 540 000014e8 .proc _QueueNext 541 000014e8 .global _QueueNext 542 000014e8 _QueueNext: 543 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 544 000014e8 afbefffc sw -4(r29),r30; push fp 545 000014ec 001df020 add r30,r0,r29; fp = sp 546 000014f0 afbffff8 sw -8(r29),r31; push ret addr 547 000014f4 2fbd0008 subui r29,r29,#8; alloc local storage 548 000014f8 8fc10000 lw r1,(r30) 549 000014fc 8c210000 lw r1,(r1) 550 00001500 8fdffff8 lw r31,-8(r30) 551 00001504 001ee820 add r29,r0,r30 552 00001508 8fdefffc lw r30,-4(r30) 553 0000150c 4be00000 jr r31 554 00001510 54000000 nop 555 00001514 .endproc _QueueNext 556 00001514 .align 2 557 00001514 .proc _QueuePrev 558 00001514 .global _QueuePrev 559 00001514 _QueuePrev: 560 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 561 00001514 afbefffc sw -4(r29),r30; push fp 562 00001518 001df020 add r30,r0,r29; fp = sp 563 0000151c afbffff8 sw -8(r29),r31; push ret addr 564 00001520 2fbd0008 subui r29,r29,#8; alloc local storage 565 00001524 8fc10000 lw r1,(r30) 566 00001528 8c210004 lw r1,4(r1) 567 0000152c 8fdffff8 lw r31,-8(r30) 568 00001530 001ee820 add r29,r0,r30 569 00001534 8fdefffc lw r30,-4(r30) 570 00001538 4be00000 jr r31 571 0000153c 54000000 nop 572 00001540 .endproc _QueuePrev 573 00001540 .align 2 574 00001540 .proc _QueueFirst 575 00001540 .global _QueueFirst 576 00001540 _QueueFirst: 577 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 578 00001540 afbefffc sw -4(r29),r30; push fp 579 00001544 001df020 add r30,r0,r29; fp = sp 580 00001548 afbffff8 sw -8(r29),r31; push ret addr 581 0000154c 2fbd0008 subui r29,r29,#8; alloc local storage 582 00001550 8fc10000 lw r1,(r30) 583 00001554 8c210000 lw r1,(r1) 584 00001558 8fdffff8 lw r31,-8(r30) 585 0000155c 001ee820 add r29,r0,r30 586 00001560 8fdefffc lw r30,-4(r30) 587 00001564 4be00000 jr r31 588 00001568 54000000 nop 589 0000156c .endproc _QueueFirst 590 0000156c .align 2 591 0000156c .proc _QueueLast 592 0000156c .global _QueueLast 593 0000156c _QueueLast: 594 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 595 0000156c afbefffc sw -4(r29),r30; push fp 596 00001570 001df020 add r30,r0,r29; fp = sp 597 00001574 afbffff8 sw -8(r29),r31; push ret addr 598 00001578 2fbd0008 subui r29,r29,#8; alloc local storage 599 0000157c 8fc10000 lw r1,(r30) 600 00001580 8c210004 lw r1,4(r1) 601 00001584 8fdffff8 lw r31,-8(r30) 602 00001588 001ee820 add r29,r0,r30 603 0000158c 8fdefffc lw r30,-4(r30) 604 00001590 4be00000 jr r31 605 00001594 54000000 nop 606 00001598 .endproc _QueueLast 607 00001598 .align 2 608 00001598 .proc _QueueInsertAfter 609 00001598 .global _QueueInsertAfter 610 00001598 _QueueInsertAfter: 611 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 612 00001598 afbefffc sw -4(r29),r30; push fp 613 0000159c 001df020 add r30,r0,r29; fp = sp 614 000015a0 afbffff8 sw -8(r29),r31; push ret addr 615 000015a4 2fbd0010 subui r29,r29,#16; alloc local storage 616 000015a8 afa20000 sw 0(r29),r2 617 000015ac afa30004 sw 4(r29),r3 618 000015b0 8fc30000 lw r3,(r30) 619 000015b4 8fc20004 lw r2,4(r30) 620 000015b8 8fc10008 lw r1,8(r30) 621 000015bc ac230008 sw 8(r1),r3 622 000015c0 ac220004 sw 4(r1),r2 623 000015c4 8c5f0000 lw r31,(r2) 624 000015c8 ac3f0000 sw (r1),r31 625 000015cc ac410000 sw (r2),r1 626 000015d0 8c220000 lw r2,(r1) 627 000015d4 ac410004 sw 4(r2),r1 628 000015d8 8c610008 lw r1,8(r3) 629 000015dc 20210001 addi r1,r1,#1 630 000015e0 ac610008 sw 8(r3),r1 631 000015e4 8fa20000 lw r2,0(r29) 632 000015e8 8fa30004 lw r3,4(r29) 633 000015ec 8fdffff8 lw r31,-8(r30) 634 000015f0 001ee820 add r29,r0,r30 635 000015f4 8fdefffc lw r30,-4(r30) 636 000015f8 4be00000 jr r31 637 000015fc 54000000 nop 638 00001600 .endproc _QueueInsertAfter 639 00001600 .align 2 640 00001600 .proc _QueueInsertFirst 641 00001600 .global _QueueInsertFirst 642 00001600 _QueueInsertFirst: 643 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 644 00001600 afbefffc sw -4(r29),r30; push fp 645 00001604 001df020 add r30,r0,r29; fp = sp 646 00001608 afbffff8 sw -8(r29),r31; push ret addr 647 0000160c 2fbd0010 subui r29,r29,#16; alloc local storage 648 00001610 afa20000 sw 0(r29),r2 649 00001614 afa30004 sw 4(r29),r3 650 00001618 8fc30000 lw r3,(r30) 651 0000161c 8fc10004 lw r1,4(r30) 652 00001620 ac230008 sw 8(r1),r3 653 00001624 ac230004 sw 4(r1),r3 654 00001628 8c7f0000 lw r31,(r3) 655 0000162c ac3f0000 sw (r1),r31 656 00001630 ac610000 sw (r3),r1 657 00001634 8c220000 lw r2,(r1) 658 00001638 ac410004 sw 4(r2),r1 659 0000163c 8c610008 lw r1,8(r3) 660 00001640 20210001 addi r1,r1,#1 661 00001644 ac610008 sw 8(r3),r1 662 00001648 8fa20000 lw r2,0(r29) 663 0000164c 8fa30004 lw r3,4(r29) 664 00001650 8fdffff8 lw r31,-8(r30) 665 00001654 001ee820 add r29,r0,r30 666 00001658 8fdefffc lw r30,-4(r30) 667 0000165c 4be00000 jr r31 668 00001660 54000000 nop 669 00001664 .endproc _QueueInsertFirst 670 00001664 .align 2 671 00001664 .proc _QueueInsertLast 672 00001664 .global _QueueInsertLast 673 00001664 _QueueInsertLast: 674 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 675 00001664 afbefffc sw -4(r29),r30; push fp 676 00001668 001df020 add r30,r0,r29; fp = sp 677 0000166c afbffff8 sw -8(r29),r31; push ret addr 678 00001670 2fbd0010 subui r29,r29,#16; alloc local storage 679 00001674 afa20000 sw 0(r29),r2 680 00001678 afa30004 sw 4(r29),r3 681 0000167c 8fc30000 lw r3,(r30) 682 00001680 8fc10004 lw r1,4(r30) 683 00001684 8c620004 lw r2,4(r3) 684 00001688 ac230008 sw 8(r1),r3 685 0000168c ac220004 sw 4(r1),r2 686 00001690 8c5f0000 lw r31,(r2) 687 00001694 ac3f0000 sw (r1),r31 688 00001698 ac410000 sw (r2),r1 689 0000169c 8c220000 lw r2,(r1) 690 000016a0 ac410004 sw 4(r2),r1 691 000016a4 8c610008 lw r1,8(r3) 692 000016a8 20210001 addi r1,r1,#1 693 000016ac ac610008 sw 8(r3),r1 694 000016b0 8fa20000 lw r2,0(r29) 695 000016b4 8fa30004 lw r3,4(r29) 696 000016b8 8fdffff8 lw r31,-8(r30) 697 000016bc 001ee820 add r29,r0,r30 698 000016c0 8fdefffc lw r30,-4(r30) 699 000016c4 4be00000 jr r31 700 000016c8 54000000 nop 701 000016cc .endproc _QueueInsertLast 702 000016cc .align 2 703 000016cc .proc _QueueRemove 704 000016cc .global _QueueRemove 705 000016cc _QueueRemove: 706 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 707 000016cc afbefffc sw -4(r29),r30; push fp 708 000016d0 001df020 add r30,r0,r29; fp = sp 709 000016d4 afbffff8 sw -8(r29),r31; push ret addr 710 000016d8 2fbd0010 subui r29,r29,#16; alloc local storage 711 000016dc afa20000 sw 0(r29),r2 712 000016e0 afa30004 sw 4(r29),r3 713 000016e4 8fdf0000 lw r31,(r30) 714 000016e8 8fe10008 lw r1,8(r31) 715 000016ec 8c210008 lw r1,8(r1) 716 000016f0 6c210000 sgti r1,r1,#0 717 000016f4 1020002c beqz r1,L44_LF2 718 000016f8 54000000 nop; not filled. 719 000016fc 8fe10004 lw r1,4(r31) 720 00001700 8fe30000 lw r3,(r31) 721 00001704 ac230000 sw (r1),r3 722 00001708 8fe10000 lw r1,(r31) 723 0000170c 8fe30004 lw r3,4(r31) 724 00001710 ac230004 sw 4(r1),r3 725 00001714 8fe20008 lw r2,8(r31) 726 00001718 8c410008 lw r1,8(r2) 727 0000171c 2021ffff addi r1,r1,#-1 728 00001720 ac410008 sw 8(r2),r1 729 00001724 L44_LF2: 730 00001724 20030000 addi r3,r0,#0 731 00001728 afe30000 sw (r31),r3 732 0000172c 8fa20000 lw r2,0(r29) 733 00001730 8fa30004 lw r3,4(r29) 734 00001734 8fdffff8 lw r31,-8(r30) 735 00001738 001ee820 add r29,r0,r30 736 0000173c 8fdefffc lw r30,-4(r30) 737 00001740 4be00000 jr r31 738 00001744 54000000 nop 739 00001748 .endproc _QueueRemove 740 00001748 .align 2 741 00001748 .proc _QueueLength 742 00001748 .global _QueueLength 743 00001748 _QueueLength: 744 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 745 00001748 afbefffc sw -4(r29),r30; push fp 746 0000174c 001df020 add r30,r0,r29; fp = sp 747 00001750 afbffff8 sw -8(r29),r31; push ret addr 748 00001754 2fbd0008 subui r29,r29,#8; alloc local storage 749 00001758 8fc10000 lw r1,(r30) 750 0000175c 8c210008 lw r1,8(r1) 751 00001760 8fdffff8 lw r31,-8(r30) 752 00001764 001ee820 add r29,r0,r30 753 00001768 8fdefffc lw r30,-4(r30) 754 0000176c 4be00000 jr r31 755 00001770 54000000 nop 756 00001774 .endproc _QueueLength 757 00001774 .align 2 758 00001774 .proc _QueueEmpty 759 00001774 .global _QueueEmpty 760 00001774 _QueueEmpty: 761 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 762 00001774 afbefffc sw -4(r29),r30; push fp 763 00001778 001df020 add r30,r0,r29; fp = sp 764 0000177c afbffff8 sw -8(r29),r31; push ret addr 765 00001780 2fbd0008 subui r29,r29,#8; alloc local storage 766 00001784 8fc10000 lw r1,(r30) 767 00001788 8c210008 lw r1,8(r1) 768 0000178c 60210000 seqi r1,r1,#0 769 00001790 8fdffff8 lw r31,-8(r30) 770 00001794 001ee820 add r29,r0,r30 771 00001798 8fdefffc lw r30,-4(r30) 772 0000179c 4be00000 jr r31 773 000017a0 54000000 nop 774 000017a4 .endproc _QueueEmpty 775 000017a4 .data 776 0000e000 .align 2 777 0000e000 LC0_LF2: 778 0000e000 456e7465 .ascii "Entering ProcessModuleInit\n\000" 778 0000e004 72696e67 778 0000e008 2050726f 778 0000e00c 63657373 778 0000e010 4d6f6475 778 0000e014 6c65496e 778 0000e018 69740a00 779 0000e01c .align 2 780 0000e01c LC1_LF2: 781 0000e01c 4c656176 .ascii "Leaving ProcessModuleInit\n\000" 781 0000e020 696e6720 781 0000e024 50726f63 781 0000e028 6573734d 781 0000e02c 6f64756c 781 0000e030 65496e69 781 0000e034 740a00 782 0000e037 .text 783 000017a4 .align 2 784 000017a4 .proc _ShareModuleInit 785 000017a4 .global _ShareModuleInit 786 000017a4 _ShareModuleInit: 787 ; Function 'ShareModuleInit'; 0 bytes of locals, 4 regs to save. 788 000017a4 afbefffc sw -4(r29),r30; push fp 789 000017a8 001df020 add r30,r0,r29; fp = sp 790 000017ac afbffff8 sw -8(r29),r31; push ret addr 791 000017b0 2fbd0018 subui r29,r29,#24; alloc local storage 792 000017b4 afa20000 sw 0(r29),r2 793 000017b8 afa30004 sw 4(r29),r3 794 000017bc afa40008 sw 8(r29),r4 795 000017c0 afa5000c sw 12(r29),r5 796 000017c4 23bdfff8 addi r29,r29,#-8 797 000017c8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 798 000017cc 24424038 addui r2,r2,(_debugstr)&0xffff 799 000017d0 afa20000 sw (r29),r2 800 000017d4 20050070 addi r5,r0,#112 801 000017d8 afa50004 sw 4(r29),r5 802 000017dc 0c004dac jal _dindex 803 000017e0 54000000 nop; not filled. 804 000017e4 23bd0008 addi r29,r29,#8 805 000017e8 64210000 snei r1,r1,#0 806 000017ec 1420002c bnez r1,L64_LF2 807 000017f0 54000000 nop; not filled. 808 000017f4 23bdfff8 addi r29,r29,#-8 809 000017f8 afa20000 sw (r29),r2 810 000017fc 2005002b addi r5,r0,#43 811 00001800 afa50004 sw 4(r29),r5 812 00001804 0c004d84 jal _dindex 813 00001808 54000000 nop; not filled. 814 0000180c 23bd0008 addi r29,r29,#8 815 00001810 64210000 snei r1,r1,#0 816 00001814 10200020 beqz r1,L63_LF2 817 00001818 54000000 nop; not filled. 818 0000181c L64_LF2: 819 0000181c 23bdfff8 addi r29,r29,#-8 820 00001820 3c050000 lhi r5,((LC0_LF2)>>16)&0xffff 821 00001824 24a5e000 addui r5,r5,(LC0_LF2)&0xffff 822 00001828 afa50000 sw (r29),r5 823 0000182c 0c00b9f4 jal _printf 824 00001830 54000000 nop; not filled. 825 00001834 23bd0008 addi r29,r29,#8 826 00001838 L63_LF2: 827 00001838 3c020000 lhi r2,((_spages_LF2)>>16)&0xffff 828 0000183c 2442e094 addui r2,r2,(_spages_LF2)&0xffff 829 00001840 204400f8 addi r4,r2,#248 830 00001844 L68_LF2: 831 00001844 20050000 addi r5,r0,#0 832 00001848 ac450000 sw (r2),r5 833 0000184c 0002f820 add r31,r0,r2 834 00001850 00021820 add r3,r0,r2 835 00001854 L72_LF2: 836 00001854 23e10004 addi r1,r31,#4 837 00001858 20050000 addi r5,r0,#0 838 0000185c ac250000 sw (r1),r5 839 00001860 0001f820 add r31,r0,r1 840 00001864 03e3082c sle r1,r31,r3 841 00001868 1420ffe8 bnez r1,L72_LF2 842 0000186c 54000000 nop; not filled. 843 00001870 20420008 addi r2,r2,#8 844 00001874 0044082c sle r1,r2,r4 845 00001878 1420ffc8 bnez r1,L68_LF2 846 0000187c 54000000 nop; not filled. 847 00001880 23bdfff8 addi r29,r29,#-8 848 00001884 3c020001 lhi r2,((_debugstr)>>16)&0xffff 849 00001888 24424038 addui r2,r2,(_debugstr)&0xffff 850 0000188c afa20000 sw (r29),r2 851 00001890 20050070 addi r5,r0,#112 852 00001894 afa50004 sw 4(r29),r5 853 00001898 0c004cf0 jal _dindex 854 0000189c 54000000 nop; not filled. 855 000018a0 23bd0008 addi r29,r29,#8 856 000018a4 64210000 snei r1,r1,#0 857 000018a8 1420002c bnez r1,L76_LF2 858 000018ac 54000000 nop; not filled. 859 000018b0 23bdfff8 addi r29,r29,#-8 860 000018b4 afa20000 sw (r29),r2 861 000018b8 2005002b addi r5,r0,#43 862 000018bc afa50004 sw 4(r29),r5 863 000018c0 0c004cc8 jal _dindex 864 000018c4 54000000 nop; not filled. 865 000018c8 23bd0008 addi r29,r29,#8 866 000018cc 64210000 snei r1,r1,#0 867 000018d0 10200020 beqz r1,L75_LF2 868 000018d4 54000000 nop; not filled. 869 000018d8 L76_LF2: 870 000018d8 23bdfff8 addi r29,r29,#-8 871 000018dc 3c050000 lhi r5,((LC1_LF2)>>16)&0xffff 872 000018e0 24a5e01c addui r5,r5,(LC1_LF2)&0xffff 873 000018e4 afa50000 sw (r29),r5 874 000018e8 0c00b938 jal _printf 875 000018ec 54000000 nop; not filled. 876 000018f0 23bd0008 addi r29,r29,#8 877 000018f4 L75_LF2: 878 000018f4 8fa20000 lw r2,0(r29) 879 000018f8 8fa30004 lw r3,4(r29) 880 000018fc 8fa40008 lw r4,8(r29) 881 00001900 8fa5000c lw r5,12(r29) 882 00001904 8fdffff8 lw r31,-8(r30) 883 00001908 001ee820 add r29,r0,r30 884 0000190c 8fdefffc lw r30,-4(r30) 885 00001910 4be00000 jr r31 886 00001914 54000000 nop 887 00001918 .endproc _ShareModuleInit 888 00001918 .data 889 0000e037 .align 2 890 0000e038 LC2_LF2: 891 0000e038 46415441 .ascii "FATAL: couldn\'t allocate memory - no free pages!\n\000" 891 0000e03c 4c3a2063 891 0000e040 6f756c64 891 0000e044 6e277420 891 0000e048 616c6c6f 891 0000e04c 63617465 891 0000e050 206d656d 891 0000e054 6f727920 891 0000e058 2d206e6f 891 0000e05c 20667265 891 0000e060 65207061 891 0000e064 67657321 891 0000e068 0a00 892 0000e06a .text 893 00001918 .align 2 894 00001918 .proc _MemoryCreateSharedPage 895 00001918 .global _MemoryCreateSharedPage 896 00001918 _MemoryCreateSharedPage: 897 ; Function 'MemoryCreateSharedPage'; 0 bytes of locals, 9 regs to save. 898 00001918 afbefffc sw -4(r29),r30; push fp 899 0000191c 001df020 add r30,r0,r29; fp = sp 900 00001920 afbffff8 sw -8(r29),r31; push ret addr 901 00001924 2fbd0030 subui r29,r29,#48; alloc local storage 902 00001928 afa20000 sw 0(r29),r2 903 0000192c afa30004 sw 4(r29),r3 904 00001930 afa40008 sw 8(r29),r4 905 00001934 afa5000c sw 12(r29),r5 906 00001938 afa60010 sw 16(r29),r6 907 0000193c afa70014 sw 20(r29),r7 908 00001940 afa80018 sw 24(r29),r8 909 00001944 afa9001c sw 28(r29),r9 910 00001948 afaa0020 sw 32(r29),r10 911 0000194c 8fc60000 lw r6,(r30) 912 00001950 23bdfff8 addi r29,r29,#-8 913 00001954 afa60000 sw (r29),r6 914 00001958 0c008858 jal _findpid 915 0000195c 54000000 nop; not filled. 916 00001960 00012820 add r5,r0,r1 917 00001964 58a80005 srli r8,r5,#0x5 918 00001968 51010005 slli r1,r8,#0x5 919 0000196c 00a12822 sub r5,r5,r1 920 00001970 23bd0008 addi r29,r29,#8 921 00001974 23bdfff8 addi r29,r29,#-8 922 00001978 200a000f addi r10,r0,#15 923 0000197c afaa0000 sw (r29),r10 924 00001980 0ffff904 jal _SetIntrs 925 00001984 54000000 nop; not filled. 926 00001988 00013820 add r7,r0,r1 927 0000198c 23bd0008 addi r29,r29,#8 928 00001990 8cc100a0 lw r1,160(r6) 929 00001994 60210010 seqi r1,r1,#16 930 00001998 14200044 bnez r1,L92_LF2 931 0000199c 54000000 nop; not filled. 932 000019a0 20030000 addi r3,r0,#0 933 000019a4 3c090000 lhi r9,((_spages_LF2)>>16)&0xffff 934 000019a8 2529e094 addui r9,r9,(_spages_LF2)&0xffff 935 000019ac 00091020 add r2,r0,r9 936 000019b0 L84_LF2: 937 000019b0 8c410000 lw r1,(r2) 938 000019b4 64210000 snei r1,r1,#0 939 000019b8 10200018 beqz r1,L82_LF2 940 000019bc 54000000 nop; not filled. 941 000019c0 20420008 addi r2,r2,#8 942 000019c4 20630001 addi r3,r3,#1 943 000019c8 7061001f slei r1,r3,#31 944 000019cc 1420ffe0 bnez r1,L84_LF2 945 000019d0 54000000 nop; not filled. 946 000019d4 L82_LF2: 947 000019d4 60610020 seqi r1,r3,#32 948 000019d8 10200024 beqz r1,L87_LF2 949 000019dc 54000000 nop; not filled. 950 000019e0 L92_LF2: 951 000019e0 23bdfff8 addi r29,r29,#-8 952 000019e4 afa70000 sw (r29),r7 953 000019e8 0ffff89c jal _SetIntrs 954 000019ec 54000000 nop; not filled. 955 000019f0 23bd0008 addi r29,r29,#8 956 000019f4 20010000 addi r1,r0,#0 957 000019f8 080000b4 j L91_LF2 958 000019fc 54000000 nop; not filled. 959 00001a00 L87_LF2: 960 00001a00 0c003c9c jal _MemoryAllocPage 961 00001a04 54000000 nop; not filled. 962 00001a08 00012020 add r4,r0,r1 963 00001a0c 64810000 snei r1,r4,#0 964 00001a10 14200028 bnez r1,L89_LF2 965 00001a14 54000000 nop; not filled. 966 00001a18 23bdfff8 addi r29,r29,#-8 967 00001a1c 3c0a0000 lhi r10,((LC2_LF2)>>16)&0xffff 968 00001a20 254ae038 addui r10,r10,(LC2_LF2)&0xffff 969 00001a24 afaa0000 sw (r29),r10 970 00001a28 0c00b7f8 jal _printf 971 00001a2c 54000000 nop; not filled. 972 00001a30 0c00b7d8 jal _exitsim 973 00001a34 54000000 nop; not filled. 974 00001a38 23bd0008 addi r29,r29,#8 975 00001a3c L89_LF2: 976 00001a3c 50610003 slli r1,r3,#0x3 977 00001a40 00291020 add r2,r1,r9 978 00001a44 ac440000 sw (r2),r4 979 00001a48 51010002 slli r1,r8,#0x2 980 00001a4c 00221020 add r2,r1,r2 981 00001a50 20010001 addi r1,r0,#1 982 00001a54 00250804 sll r1,r1,r5 983 00001a58 ac410004 sw 4(r2),r1 984 00001a5c 23bdfff8 addi r29,r29,#-8 985 00001a60 afa40000 sw (r29),r4 986 00001a64 0c00439c jal _MemorySetupPte 987 00001a68 54000000 nop; not filled. 988 00001a6c 8cc200a0 lw r2,160(r6) 989 00001a70 50420002 slli r2,r2,#0x2 990 00001a74 00461020 add r2,r2,r6 991 00001a78 ac410060 sw 96(r2),r1 992 00001a7c 8cc100a0 lw r1,160(r6) 993 00001a80 20220001 addi r2,r1,#1 994 00001a84 acc200a0 sw 160(r6),r2 995 00001a88 8cc10008 lw r1,8(r6) 996 00001a8c 2421fe8c addui r1,r1,#65164 997 00001a90 ac22013c sw 316(r1),r2 998 00001a94 23bd0008 addi r29,r29,#8 999 00001a98 23bdfff8 addi r29,r29,#-8 1000 00001a9c afa70000 sw (r29),r7 1001 00001aa0 0ffff7e4 jal _SetIntrs 1002 00001aa4 54000000 nop; not filled. 1003 00001aa8 23bd0008 addi r29,r29,#8 1004 00001aac 00040820 add r1,r0,r4 1005 00001ab0 L91_LF2: 1006 00001ab0 8fa20000 lw r2,0(r29) 1007 00001ab4 8fa30004 lw r3,4(r29) 1008 00001ab8 8fa40008 lw r4,8(r29) 1009 00001abc 8fa5000c lw r5,12(r29) 1010 00001ac0 8fa60010 lw r6,16(r29) 1011 00001ac4 8fa70014 lw r7,20(r29) 1012 00001ac8 8fa80018 lw r8,24(r29) 1013 00001acc 8fa9001c lw r9,28(r29) 1014 00001ad0 8faa0020 lw r10,32(r29) 1015 00001ad4 8fdffff8 lw r31,-8(r30) 1016 00001ad8 001ee820 add r29,r0,r30 1017 00001adc 8fdefffc lw r30,-4(r30) 1018 00001ae0 4be00000 jr r31 1019 00001ae4 54000000 nop 1020 00001ae8 .endproc _MemoryCreateSharedPage 1021 00001ae8 .align 2 1022 00001ae8 .proc _mmap 1023 00001ae8 .global _mmap 1024 00001ae8 _mmap: 1025 ; Function 'mmap'; 0 bytes of locals, 9 regs to save. 1026 00001ae8 afbefffc sw -4(r29),r30; push fp 1027 00001aec 001df020 add r30,r0,r29; fp = sp 1028 00001af0 afbffff8 sw -8(r29),r31; push ret addr 1029 00001af4 2fbd0030 subui r29,r29,#48; alloc local storage 1030 00001af8 afa20000 sw 0(r29),r2 1031 00001afc afa30004 sw 4(r29),r3 1032 00001b00 afa40008 sw 8(r29),r4 1033 00001b04 afa5000c sw 12(r29),r5 1034 00001b08 afa60010 sw 16(r29),r6 1035 00001b0c afa70014 sw 20(r29),r7 1036 00001b10 afa80018 sw 24(r29),r8 1037 00001b14 afa9001c sw 28(r29),r9 1038 00001b18 afaa0020 sw 32(r29),r10 1039 00001b1c 8fc60000 lw r6,(r30) 1040 00001b20 8fc70004 lw r7,4(r30) 1041 00001b24 64e10000 snei r1,r7,#0 1042 00001b28 14200010 bnez r1,L94_LF2 1043 00001b2c 54000000 nop; not filled. 1044 00001b30 20010000 addi r1,r0,#0 1045 00001b34 08000184 j L115_LF2 1046 00001b38 54000000 nop; not filled. 1047 00001b3c L94_LF2: 1048 00001b3c 8cc10008 lw r1,8(r6) 1049 00001b40 2429fe8c addui r9,r1,#65164 1050 00001b44 23bdfff8 addi r29,r29,#-8 1051 00001b48 200a000f addi r10,r0,#15 1052 00001b4c afaa0000 sw (r29),r10 1053 00001b50 0ffff734 jal _SetIntrs 1054 00001b54 54000000 nop; not filled. 1055 00001b58 00014020 add r8,r0,r1 1056 00001b5c 23bd0008 addi r29,r29,#8 1057 00001b60 20030000 addi r3,r0,#0 1058 00001b64 3c020000 lhi r2,((_spages_LF2)>>16)&0xffff 1059 00001b68 2442e094 addui r2,r2,(_spages_LF2)&0xffff 1060 00001b6c L99_LF2: 1061 00001b6c 8c410000 lw r1,(r2) 1062 00001b70 00270828 seq r1,r1,r7 1063 00001b74 14200018 bnez r1,L97_LF2 1064 00001b78 54000000 nop; not filled. 1065 00001b7c 20420008 addi r2,r2,#8 1066 00001b80 20630001 addi r3,r3,#1 1067 00001b84 7061001f sleui r1,r3,#31 1068 00001b88 1420ffe0 bnez r1,L99_LF2 1069 00001b8c 54000000 nop; not filled. 1070 00001b90 L97_LF2: 1071 00001b90 60610020 seqi r1,r3,#32 1072 00001b94 14200068 bnez r1,L116_LF2 1073 00001b98 54000000 nop; not filled. 1074 00001b9c 50ff0010 slli r31,r7,#0x10 1075 00001ba0 20050000 addi r5,r0,#0 1076 00001ba4 8cc400a0 lw r4,160(r6) 1077 00001ba8 00a4082a slt r1,r5,r4 1078 00001bac 10200034 beqz r1,L105_LF2 1079 00001bb0 54000000 nop; not filled. 1080 00001bb4 00061020 add r2,r0,r6 1081 00001bb8 L107_LF2: 1082 00001bb8 8c410060 lw r1,96(r2) 1083 00001bbc 200afff8 addi r10,r0,#-8 1084 00001bc0 002a0824 and r1,r1,r10 1085 00001bc4 003f0828 seq r1,r1,r31 1086 00001bc8 14200018 bnez r1,L105_LF2 1087 00001bcc 54000000 nop; not filled. 1088 00001bd0 20420004 addi r2,r2,#4 1089 00001bd4 20a50001 addi r5,r5,#1 1090 00001bd8 00a4082a slt r1,r5,r4 1091 00001bdc 1420ffd8 bnez r1,L107_LF2 1092 00001be0 54000000 nop; not filled. 1093 00001be4 L105_LF2: 1094 00001be4 8cc200a0 lw r2,160(r6) 1095 00001be8 00a20828 seq r1,r5,r2 1096 00001bec 10200064 beqz r1,L110_LF2 1097 00001bf0 54000000 nop; not filled. 1098 00001bf4 7041000f slei r1,r2,#15 1099 00001bf8 14200024 bnez r1,L111_LF2 1100 00001bfc 54000000 nop; not filled. 1101 00001c00 L116_LF2: 1102 00001c00 23bdfff8 addi r29,r29,#-8 1103 00001c04 afa80000 sw (r29),r8 1104 00001c08 0ffff67c jal _SetIntrs 1105 00001c0c 54000000 nop; not filled. 1106 00001c10 23bd0008 addi r29,r29,#8 1107 00001c14 20010000 addi r1,r0,#0 1108 00001c18 080000a0 j L115_LF2 1109 00001c1c 54000000 nop; not filled. 1110 00001c20 L111_LF2: 1111 00001c20 23bdfff8 addi r29,r29,#-8 1112 00001c24 afa70000 sw (r29),r7 1113 00001c28 0c0041d8 jal _MemorySetupPte 1114 00001c2c 54000000 nop; not filled. 1115 00001c30 8cc200a0 lw r2,160(r6) 1116 00001c34 50420002 slli r2,r2,#0x2 1117 00001c38 00461020 add r2,r2,r6 1118 00001c3c ac410060 sw 96(r2),r1 1119 00001c40 8cc100a0 lw r1,160(r6) 1120 00001c44 20210001 addi r1,r1,#1 1121 00001c48 acc100a0 sw 160(r6),r1 1122 00001c4c ad21013c sw 316(r9),r1 1123 00001c50 23bd0008 addi r29,r29,#8 1124 00001c54 L110_LF2: 1125 00001c54 23bdfff8 addi r29,r29,#-8 1126 00001c58 afa60000 sw (r29),r6 1127 00001c5c 0c008554 jal _findpid 1128 00001c60 54000000 nop; not filled. 1129 00001c64 00011020 add r2,r0,r1 1130 00001c68 58440005 srli r4,r2,#0x5 1131 00001c6c 50810005 slli r1,r4,#0x5 1132 00001c70 00411022 sub r2,r2,r1 1133 00001c74 50630003 slli r3,r3,#0x3 1134 00001c78 50810002 slli r1,r4,#0x2 1135 00001c7c 00610820 add r1,r3,r1 1136 00001c80 3c0a0000 lhi r10,((_spages_LF2+4)>>16)&0xffff 1137 00001c84 254ae098 addui r10,r10,(_spages_LF2+4)&0xffff 1138 00001c88 002a1820 add r3,r1,r10 1139 00001c8c 20010001 addi r1,r0,#1 1140 00001c90 00221004 sll r2,r1,r2 1141 00001c94 8c610000 lw r1,(r3) 1142 00001c98 00220825 or r1,r1,r2 1143 00001c9c ac610000 sw (r3),r1 1144 00001ca0 23bd0008 addi r29,r29,#8 1145 00001ca4 23bdfff8 addi r29,r29,#-8 1146 00001ca8 afa80000 sw (r29),r8 1147 00001cac 0ffff5d8 jal _SetIntrs 1148 00001cb0 54000000 nop; not filled. 1149 00001cb4 23bd0008 addi r29,r29,#8 1150 00001cb8 50a10010 slli r1,r5,#0x10 1151 00001cbc L115_LF2: 1152 00001cbc 8fa20000 lw r2,0(r29) 1153 00001cc0 8fa30004 lw r3,4(r29) 1154 00001cc4 8fa40008 lw r4,8(r29) 1155 00001cc8 8fa5000c lw r5,12(r29) 1156 00001ccc 8fa60010 lw r6,16(r29) 1157 00001cd0 8fa70014 lw r7,20(r29) 1158 00001cd4 8fa80018 lw r8,24(r29) 1159 00001cd8 8fa9001c lw r9,28(r29) 1160 00001cdc 8faa0020 lw r10,32(r29) 1161 00001ce0 8fdffff8 lw r31,-8(r30) 1162 00001ce4 001ee820 add r29,r0,r30 1163 00001ce8 8fdefffc lw r30,-4(r30) 1164 00001cec 4be00000 jr r31 1165 00001cf0 54000000 nop 1166 00001cf4 .endproc _mmap 1167 00001cf4 .data 1168 0000e06a .align 2 1169 0000e06c LC3_LF2: 1170 0000e06c 46415441 .ascii "FATAL: Attempted to free memory page 0\n\000" 1170 0000e070 4c3a2041 1170 0000e074 7474656d 1170 0000e078 70746564 1170 0000e07c 20746f20 1170 0000e080 66726565 1170 0000e084 206d656d 1170 0000e088 6f727920 1170 0000e08c 70616765 1170 0000e090 20300a00 1171 0000e094 .text 1172 00001cf4 .align 2 1173 00001cf4 .proc _MemoryFreeSharedPte 1174 00001cf4 .global _MemoryFreeSharedPte 1175 00001cf4 _MemoryFreeSharedPte: 1176 ; Function 'MemoryFreeSharedPte'; 0 bytes of locals, 9 regs to save. 1177 00001cf4 afbefffc sw -4(r29),r30; push fp 1178 00001cf8 001df020 add r30,r0,r29; fp = sp 1179 00001cfc afbffff8 sw -8(r29),r31; push ret addr 1180 00001d00 2fbd0030 subui r29,r29,#48; alloc local storage 1181 00001d04 afa20000 sw 0(r29),r2 1182 00001d08 afa30004 sw 4(r29),r3 1183 00001d0c afa40008 sw 8(r29),r4 1184 00001d10 afa5000c sw 12(r29),r5 1185 00001d14 afa60010 sw 16(r29),r6 1186 00001d18 afa70014 sw 20(r29),r7 1187 00001d1c afa80018 sw 24(r29),r8 1188 00001d20 afa9001c sw 28(r29),r9 1189 00001d24 afaa0020 sw 32(r29),r10 1190 00001d28 8fc80000 lw r8,(r30) 1191 00001d2c 8fc20004 lw r2,4(r30) 1192 00001d30 23bdfff8 addi r29,r29,#-8 1193 00001d34 200a000f addi r10,r0,#15 1194 00001d38 afaa0000 sw (r29),r10 1195 00001d3c 0ffff548 jal _SetIntrs 1196 00001d40 54000000 nop; not filled. 1197 00001d44 00014820 add r9,r0,r1 1198 00001d48 23bd0008 addi r29,r29,#8 1199 00001d4c 50410002 slli r1,r2,#0x2 1200 00001d50 00280820 add r1,r1,r8 1201 00001d54 94270060 lhu r7,96(r1) 1202 00001d58 64e10000 snei r1,r7,#0 1203 00001d5c 14200028 bnez r1,L119_LF2 1204 00001d60 54000000 nop; not filled. 1205 00001d64 23bdfff8 addi r29,r29,#-8 1206 00001d68 3c0a0000 lhi r10,((LC3_LF2)>>16)&0xffff 1207 00001d6c 254ae06c addui r10,r10,(LC3_LF2)&0xffff 1208 00001d70 afaa0000 sw (r29),r10 1209 00001d74 0c00b4ac jal _printf 1210 00001d78 54000000 nop; not filled. 1211 00001d7c 0c00b48c jal _exitsim 1212 00001d80 54000000 nop; not filled. 1213 00001d84 23bd0008 addi r29,r29,#8 1214 00001d88 L119_LF2: 1215 00001d88 20040000 addi r4,r0,#0 1216 00001d8c 3c050000 lhi r5,((_spages_LF2)>>16)&0xffff 1217 00001d90 24a5e094 addui r5,r5,(_spages_LF2)&0xffff 1218 00001d94 00051020 add r2,r0,r5 1219 00001d98 L123_LF2: 1220 00001d98 8c410000 lw r1,(r2) 1221 00001d9c 00270828 seq r1,r1,r7 1222 00001da0 14200018 bnez r1,L121_LF2 1223 00001da4 54000000 nop; not filled. 1224 00001da8 20420008 addi r2,r2,#8 1225 00001dac 20840001 addi r4,r4,#1 1226 00001db0 7081001f slei r1,r4,#31 1227 00001db4 1420ffe0 bnez r1,L123_LF2 1228 00001db8 54000000 nop; not filled. 1229 00001dbc L121_LF2: 1230 00001dbc 60810020 seqi r1,r4,#32 1231 00001dc0 10200024 beqz r1,L126_LF2 1232 00001dc4 54000000 nop; not filled. 1233 00001dc8 23bdfff8 addi r29,r29,#-8 1234 00001dcc afa90000 sw (r29),r9 1235 00001dd0 0ffff4b4 jal _SetIntrs 1236 00001dd4 54000000 nop; not filled. 1237 00001dd8 23bd0008 addi r29,r29,#8 1238 00001ddc 2001ffff addi r1,r0,#-1 1239 00001de0 080000f0 j L141_LF2 1240 00001de4 54000000 nop; not filled. 1241 00001de8 L126_LF2: 1242 00001de8 23bdfff8 addi r29,r29,#-8 1243 00001dec afa80000 sw (r29),r8 1244 00001df0 0c0083c0 jal _findpid 1245 00001df4 54000000 nop; not filled. 1246 00001df8 00011020 add r2,r0,r1 1247 00001dfc 58230005 srli r3,r1,#0x5 1248 00001e00 50610005 slli r1,r3,#0x5 1249 00001e04 00411022 sub r2,r2,r1 1250 00001e08 50810003 slli r1,r4,#0x3 1251 00001e0c 00252020 add r4,r1,r5 1252 00001e10 50610002 slli r1,r3,#0x2 1253 00001e14 00240820 add r1,r1,r4 1254 00001e18 20230004 addi r3,r1,#4 1255 00001e1c 20010001 addi r1,r0,#1 1256 00001e20 00220804 sll r1,r1,r2 1257 00001e24 200affff addi r10,r0,#-1 1258 00001e28 002a1026 xor r2,r1,r10 1259 00001e2c 8c610000 lw r1,(r3) 1260 00001e30 00220824 and r1,r1,r2 1261 00001e34 ac610000 sw (r3),r1 1262 00001e38 23bd0008 addi r29,r29,#8 1263 00001e3c 20060000 addi r6,r0,#0 1264 00001e40 20050000 addi r5,r0,#0 1265 00001e44 L132_LF2: 1266 00001e44 20030001 addi r3,r0,#1 1267 00001e48 20020000 addi r2,r0,#0 1268 00001e4c 8c9f0004 lw r31,4(r4) 1269 00001e50 L136_LF2: 1270 00001e50 03e30824 and r1,r31,r3 1271 00001e54 64210000 snei r1,r1,#0 1272 00001e58 00c13020 add r6,r6,r1 1273 00001e5c 50630001 slli r3,r3,#0x1 1274 00001e60 20420001 addi r2,r2,#1 1275 00001e64 7041001f slei r1,r2,#31 1276 00001e68 1420ffe4 bnez r1,L136_LF2 1277 00001e6c 54000000 nop; not filled. 1278 00001e70 20840004 addi r4,r4,#4 1279 00001e74 20a50001 addi r5,r5,#1 1280 00001e78 70a10000 slei r1,r5,#0 1281 00001e7c 1420ffc4 bnez r1,L132_LF2 1282 00001e80 54000000 nop; not filled. 1283 00001e84 8d0100a0 lw r1,160(r8) 1284 00001e88 2022ffff addi r2,r1,#-1 1285 00001e8c ad0200a0 sw 160(r8),r2 1286 00001e90 8d010008 lw r1,8(r8) 1287 00001e94 2421fe8c addui r1,r1,#65164 1288 00001e98 ac22013c sw 316(r1),r2 1289 00001e9c 64c10000 snei r1,r6,#0 1290 00001ea0 14200018 bnez r1,L139_LF2 1291 00001ea4 54000000 nop; not filled. 1292 00001ea8 23bdfff8 addi r29,r29,#-8 1293 00001eac afa70000 sw (r29),r7 1294 00001eb0 0c003ab4 jal _MemoryFreePage 1295 00001eb4 54000000 nop; not filled. 1296 00001eb8 23bd0008 addi r29,r29,#8 1297 00001ebc L139_LF2: 1298 00001ebc 23bdfff8 addi r29,r29,#-8 1299 00001ec0 afa90000 sw (r29),r9 1300 00001ec4 0ffff3c0 jal _SetIntrs 1301 00001ec8 54000000 nop; not filled. 1302 00001ecc 23bd0008 addi r29,r29,#8 1303 00001ed0 00060820 add r1,r0,r6 1304 00001ed4 L141_LF2: 1305 00001ed4 8fa20000 lw r2,0(r29) 1306 00001ed8 8fa30004 lw r3,4(r29) 1307 00001edc 8fa40008 lw r4,8(r29) 1308 00001ee0 8fa5000c lw r5,12(r29) 1309 00001ee4 8fa60010 lw r6,16(r29) 1310 00001ee8 8fa70014 lw r7,20(r29) 1311 00001eec 8fa80018 lw r8,24(r29) 1312 00001ef0 8fa9001c lw r9,28(r29) 1313 00001ef4 8faa0020 lw r10,32(r29) 1314 00001ef8 8fdffff8 lw r31,-8(r30) 1315 00001efc 001ee820 add r29,r0,r30 1316 00001f00 8fdefffc lw r30,-4(r30) 1317 00001f04 4be00000 jr r31 1318 00001f08 54000000 nop 1319 00001f0c .endproc _MemoryFreeSharedPte 1320 00001f0c .data 1321 0000e094 .align 2 1322 0000e094 _spages_LF2: 1323 0000e094 .space 256 1324 ; Compiled by GCC 1325 0000e194 .text 1326 00001f0c .align 2 1327 00001f0c .proc _isspace 1328 00001f0c .global _isspace 1329 00001f0c _isspace: 1330 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 1331 00001f0c afbefffc sw -4(r29),r30; push fp 1332 00001f10 001df020 add r30,r0,r29; fp = sp 1333 00001f14 afbffff8 sw -8(r29),r31; push ret addr 1334 00001f18 2fbd0010 subui r29,r29,#16; alloc local storage 1335 00001f1c afa20000 sw 0(r29),r2 1336 00001f20 83c20003 lb r2,3(r30) 1337 00001f24 201f0000 addi r31,r0,#0 1338 00001f28 304100ff andi r1,r2,#0x00ff 1339 00001f2c 60210020 seqi r1,r1,#32 1340 00001f30 14200018 bnez r1,L6_LF3 1341 00001f34 54000000 nop; not filled. 1342 00001f38 2041fff7 addi r1,r2,#-9 1343 00001f3c 302100ff andi r1,r1,#0x00ff 1344 00001f40 70210001 sleui r1,r1,#1 1345 00001f44 10200008 beqz r1,L5_LF3 1346 00001f48 54000000 nop; not filled. 1347 00001f4c L6_LF3: 1348 00001f4c 201f0001 addi r31,r0,#1 1349 00001f50 L5_LF3: 1350 00001f50 001f0820 add r1,r0,r31 1351 00001f54 8fa20000 lw r2,0(r29) 1352 00001f58 8fdffff8 lw r31,-8(r30) 1353 00001f5c 001ee820 add r29,r0,r30 1354 00001f60 8fdefffc lw r30,-4(r30) 1355 00001f64 4be00000 jr r31 1356 00001f68 54000000 nop 1357 00001f6c .endproc _isspace 1358 00001f6c .align 2 1359 00001f6c .proc _isxdigit 1360 00001f6c .global _isxdigit 1361 00001f6c _isxdigit: 1362 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 1363 00001f6c afbefffc sw -4(r29),r30; push fp 1364 00001f70 001df020 add r30,r0,r29; fp = sp 1365 00001f74 afbffff8 sw -8(r29),r31; push ret addr 1366 00001f78 2fbd0010 subui r29,r29,#16; alloc local storage 1367 00001f7c afa20000 sw 0(r29),r2 1368 00001f80 83df0003 lb r31,3(r30) 1369 00001f84 20020000 addi r2,r0,#0 1370 00001f88 23e1ffd0 addi r1,r31,#-48 1371 00001f8c 302100ff andi r1,r1,#0x00ff 1372 00001f90 70210009 sleui r1,r1,#9 1373 00001f94 14200028 bnez r1,L12_LF3 1374 00001f98 54000000 nop; not filled. 1375 00001f9c 23e1ff9f addi r1,r31,#-97 1376 00001fa0 302100ff andi r1,r1,#0x00ff 1377 00001fa4 70210005 sleui r1,r1,#5 1378 00001fa8 14200014 bnez r1,L12_LF3 1379 00001fac 54000000 nop; not filled. 1380 00001fb0 33e100ff andi r1,r31,#0x00ff 1381 00001fb4 64210041 snei r1,r1,#65 1382 00001fb8 14200008 bnez r1,L11_LF3 1383 00001fbc 54000000 nop; not filled. 1384 00001fc0 L12_LF3: 1385 00001fc0 20020001 addi r2,r0,#1 1386 00001fc4 L11_LF3: 1387 00001fc4 00020820 add r1,r0,r2 1388 00001fc8 8fa20000 lw r2,0(r29) 1389 00001fcc 8fdffff8 lw r31,-8(r30) 1390 00001fd0 001ee820 add r29,r0,r30 1391 00001fd4 8fdefffc lw r30,-4(r30) 1392 00001fd8 4be00000 jr r31 1393 00001fdc 54000000 nop 1394 00001fe0 .endproc _isxdigit 1395 00001fe0 .align 2 1396 00001fe0 .proc _DisableIntrs 1397 00001fe0 .global _DisableIntrs 1398 00001fe0 _DisableIntrs: 1399 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 1400 00001fe0 afbefffc sw -4(r29),r30; push fp 1401 00001fe4 001df020 add r30,r0,r29; fp = sp 1402 00001fe8 afbffff8 sw -8(r29),r31; push ret addr 1403 00001fec 2fbd0010 subui r29,r29,#16; alloc local storage 1404 00001ff0 afa20000 sw 0(r29),r2 1405 00001ff4 23bdfff8 addi r29,r29,#-8 1406 00001ff8 2002000f addi r2,r0,#15 1407 00001ffc afa20000 sw (r29),r2 1408 00002000 0ffff284 jal _SetIntrs 1409 00002004 54000000 nop; not filled. 1410 00002008 23bd0008 addi r29,r29,#8 1411 0000200c 8fa20000 lw r2,0(r29) 1412 00002010 8fdffff8 lw r31,-8(r30) 1413 00002014 001ee820 add r29,r0,r30 1414 00002018 8fdefffc lw r30,-4(r30) 1415 0000201c 4be00000 jr r31 1416 00002020 54000000 nop 1417 00002024 .endproc _DisableIntrs 1418 00002024 .align 2 1419 00002024 .proc _EnableIntrs 1420 00002024 .global _EnableIntrs 1421 00002024 _EnableIntrs: 1422 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 1423 00002024 afbefffc sw -4(r29),r30; push fp 1424 00002028 001df020 add r30,r0,r29; fp = sp 1425 0000202c afbffff8 sw -8(r29),r31; push ret addr 1426 00002030 2fbd0010 subui r29,r29,#16; alloc local storage 1427 00002034 afa20000 sw 0(r29),r2 1428 00002038 23bdfff8 addi r29,r29,#-8 1429 0000203c 20020000 addi r2,r0,#0 1430 00002040 afa20000 sw (r29),r2 1431 00002044 0ffff240 jal _SetIntrs 1432 00002048 54000000 nop; not filled. 1433 0000204c 23bd0008 addi r29,r29,#8 1434 00002050 8fa20000 lw r2,0(r29) 1435 00002054 8fdffff8 lw r31,-8(r30) 1436 00002058 001ee820 add r29,r0,r30 1437 0000205c 8fdefffc lw r30,-4(r30) 1438 00002060 4be00000 jr r31 1439 00002064 54000000 nop 1440 00002068 .endproc _EnableIntrs 1441 00002068 .align 2 1442 00002068 .proc _RestoreIntrs 1443 00002068 .global _RestoreIntrs 1444 00002068 _RestoreIntrs: 1445 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 1446 00002068 afbefffc sw -4(r29),r30; push fp 1447 0000206c 001df020 add r30,r0,r29; fp = sp 1448 00002070 afbffff8 sw -8(r29),r31; push ret addr 1449 00002074 2fbd0010 subui r29,r29,#16; alloc local storage 1450 00002078 afa20000 sw 0(r29),r2 1451 0000207c 23bdfff8 addi r29,r29,#-8 1452 00002080 8fc20000 lw r2,(r30) 1453 00002084 afa20000 sw (r29),r2 1454 00002088 0ffff1fc jal _SetIntrs 1455 0000208c 54000000 nop; not filled. 1456 00002090 23bd0008 addi r29,r29,#8 1457 00002094 8fa20000 lw r2,0(r29) 1458 00002098 8fdffff8 lw r31,-8(r30) 1459 0000209c 001ee820 add r29,r0,r30 1460 000020a0 8fdefffc lw r30,-4(r30) 1461 000020a4 4be00000 jr r31 1462 000020a8 54000000 nop 1463 000020ac .endproc _RestoreIntrs 1464 000020ac .align 2 1465 000020ac .proc _QueueLinkInit 1466 000020ac .global _QueueLinkInit 1467 000020ac _QueueLinkInit: 1468 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 1469 000020ac afbefffc sw -4(r29),r30; push fp 1470 000020b0 001df020 add r30,r0,r29; fp = sp 1471 000020b4 afbffff8 sw -8(r29),r31; push ret addr 1472 000020b8 2fbd0010 subui r29,r29,#16; alloc local storage 1473 000020bc afa20000 sw 0(r29),r2 1474 000020c0 8fc10000 lw r1,(r30) 1475 000020c4 8fc20004 lw r2,4(r30) 1476 000020c8 201f0000 addi r31,r0,#0 1477 000020cc ac3f0000 sw (r1),r31 1478 000020d0 ac22000c sw 12(r1),r2 1479 000020d4 8fa20000 lw r2,0(r29) 1480 000020d8 8fdffff8 lw r31,-8(r30) 1481 000020dc 001ee820 add r29,r0,r30 1482 000020e0 8fdefffc lw r30,-4(r30) 1483 000020e4 4be00000 jr r31 1484 000020e8 54000000 nop 1485 000020ec .endproc _QueueLinkInit 1486 000020ec .align 2 1487 000020ec .proc _QueueNext 1488 000020ec .global _QueueNext 1489 000020ec _QueueNext: 1490 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 1491 000020ec afbefffc sw -4(r29),r30; push fp 1492 000020f0 001df020 add r30,r0,r29; fp = sp 1493 000020f4 afbffff8 sw -8(r29),r31; push ret addr 1494 000020f8 2fbd0008 subui r29,r29,#8; alloc local storage 1495 000020fc 8fc10000 lw r1,(r30) 1496 00002100 8c210000 lw r1,(r1) 1497 00002104 8fdffff8 lw r31,-8(r30) 1498 00002108 001ee820 add r29,r0,r30 1499 0000210c 8fdefffc lw r30,-4(r30) 1500 00002110 4be00000 jr r31 1501 00002114 54000000 nop 1502 00002118 .endproc _QueueNext 1503 00002118 .align 2 1504 00002118 .proc _QueuePrev 1505 00002118 .global _QueuePrev 1506 00002118 _QueuePrev: 1507 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 1508 00002118 afbefffc sw -4(r29),r30; push fp 1509 0000211c 001df020 add r30,r0,r29; fp = sp 1510 00002120 afbffff8 sw -8(r29),r31; push ret addr 1511 00002124 2fbd0008 subui r29,r29,#8; alloc local storage 1512 00002128 8fc10000 lw r1,(r30) 1513 0000212c 8c210004 lw r1,4(r1) 1514 00002130 8fdffff8 lw r31,-8(r30) 1515 00002134 001ee820 add r29,r0,r30 1516 00002138 8fdefffc lw r30,-4(r30) 1517 0000213c 4be00000 jr r31 1518 00002140 54000000 nop 1519 00002144 .endproc _QueuePrev 1520 00002144 .align 2 1521 00002144 .proc _QueueFirst 1522 00002144 .global _QueueFirst 1523 00002144 _QueueFirst: 1524 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 1525 00002144 afbefffc sw -4(r29),r30; push fp 1526 00002148 001df020 add r30,r0,r29; fp = sp 1527 0000214c afbffff8 sw -8(r29),r31; push ret addr 1528 00002150 2fbd0008 subui r29,r29,#8; alloc local storage 1529 00002154 8fc10000 lw r1,(r30) 1530 00002158 8c210000 lw r1,(r1) 1531 0000215c 8fdffff8 lw r31,-8(r30) 1532 00002160 001ee820 add r29,r0,r30 1533 00002164 8fdefffc lw r30,-4(r30) 1534 00002168 4be00000 jr r31 1535 0000216c 54000000 nop 1536 00002170 .endproc _QueueFirst 1537 00002170 .align 2 1538 00002170 .proc _QueueLast 1539 00002170 .global _QueueLast 1540 00002170 _QueueLast: 1541 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 1542 00002170 afbefffc sw -4(r29),r30; push fp 1543 00002174 001df020 add r30,r0,r29; fp = sp 1544 00002178 afbffff8 sw -8(r29),r31; push ret addr 1545 0000217c 2fbd0008 subui r29,r29,#8; alloc local storage 1546 00002180 8fc10000 lw r1,(r30) 1547 00002184 8c210004 lw r1,4(r1) 1548 00002188 8fdffff8 lw r31,-8(r30) 1549 0000218c 001ee820 add r29,r0,r30 1550 00002190 8fdefffc lw r30,-4(r30) 1551 00002194 4be00000 jr r31 1552 00002198 54000000 nop 1553 0000219c .endproc _QueueLast 1554 0000219c .align 2 1555 0000219c .proc _QueueInsertAfter 1556 0000219c .global _QueueInsertAfter 1557 0000219c _QueueInsertAfter: 1558 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 1559 0000219c afbefffc sw -4(r29),r30; push fp 1560 000021a0 001df020 add r30,r0,r29; fp = sp 1561 000021a4 afbffff8 sw -8(r29),r31; push ret addr 1562 000021a8 2fbd0010 subui r29,r29,#16; alloc local storage 1563 000021ac afa20000 sw 0(r29),r2 1564 000021b0 afa30004 sw 4(r29),r3 1565 000021b4 8fc30000 lw r3,(r30) 1566 000021b8 8fc20004 lw r2,4(r30) 1567 000021bc 8fc10008 lw r1,8(r30) 1568 000021c0 ac230008 sw 8(r1),r3 1569 000021c4 ac220004 sw 4(r1),r2 1570 000021c8 8c5f0000 lw r31,(r2) 1571 000021cc ac3f0000 sw (r1),r31 1572 000021d0 ac410000 sw (r2),r1 1573 000021d4 8c220000 lw r2,(r1) 1574 000021d8 ac410004 sw 4(r2),r1 1575 000021dc 8c610008 lw r1,8(r3) 1576 000021e0 20210001 addi r1,r1,#1 1577 000021e4 ac610008 sw 8(r3),r1 1578 000021e8 8fa20000 lw r2,0(r29) 1579 000021ec 8fa30004 lw r3,4(r29) 1580 000021f0 8fdffff8 lw r31,-8(r30) 1581 000021f4 001ee820 add r29,r0,r30 1582 000021f8 8fdefffc lw r30,-4(r30) 1583 000021fc 4be00000 jr r31 1584 00002200 54000000 nop 1585 00002204 .endproc _QueueInsertAfter 1586 00002204 .align 2 1587 00002204 .proc _QueueInsertFirst 1588 00002204 .global _QueueInsertFirst 1589 00002204 _QueueInsertFirst: 1590 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 1591 00002204 afbefffc sw -4(r29),r30; push fp 1592 00002208 001df020 add r30,r0,r29; fp = sp 1593 0000220c afbffff8 sw -8(r29),r31; push ret addr 1594 00002210 2fbd0010 subui r29,r29,#16; alloc local storage 1595 00002214 afa20000 sw 0(r29),r2 1596 00002218 afa30004 sw 4(r29),r3 1597 0000221c 8fc30000 lw r3,(r30) 1598 00002220 8fc10004 lw r1,4(r30) 1599 00002224 ac230008 sw 8(r1),r3 1600 00002228 ac230004 sw 4(r1),r3 1601 0000222c 8c7f0000 lw r31,(r3) 1602 00002230 ac3f0000 sw (r1),r31 1603 00002234 ac610000 sw (r3),r1 1604 00002238 8c220000 lw r2,(r1) 1605 0000223c ac410004 sw 4(r2),r1 1606 00002240 8c610008 lw r1,8(r3) 1607 00002244 20210001 addi r1,r1,#1 1608 00002248 ac610008 sw 8(r3),r1 1609 0000224c 8fa20000 lw r2,0(r29) 1610 00002250 8fa30004 lw r3,4(r29) 1611 00002254 8fdffff8 lw r31,-8(r30) 1612 00002258 001ee820 add r29,r0,r30 1613 0000225c 8fdefffc lw r30,-4(r30) 1614 00002260 4be00000 jr r31 1615 00002264 54000000 nop 1616 00002268 .endproc _QueueInsertFirst 1617 00002268 .align 2 1618 00002268 .proc _QueueInsertLast 1619 00002268 .global _QueueInsertLast 1620 00002268 _QueueInsertLast: 1621 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 1622 00002268 afbefffc sw -4(r29),r30; push fp 1623 0000226c 001df020 add r30,r0,r29; fp = sp 1624 00002270 afbffff8 sw -8(r29),r31; push ret addr 1625 00002274 2fbd0010 subui r29,r29,#16; alloc local storage 1626 00002278 afa20000 sw 0(r29),r2 1627 0000227c afa30004 sw 4(r29),r3 1628 00002280 8fc30000 lw r3,(r30) 1629 00002284 8fc10004 lw r1,4(r30) 1630 00002288 8c620004 lw r2,4(r3) 1631 0000228c ac230008 sw 8(r1),r3 1632 00002290 ac220004 sw 4(r1),r2 1633 00002294 8c5f0000 lw r31,(r2) 1634 00002298 ac3f0000 sw (r1),r31 1635 0000229c ac410000 sw (r2),r1 1636 000022a0 8c220000 lw r2,(r1) 1637 000022a4 ac410004 sw 4(r2),r1 1638 000022a8 8c610008 lw r1,8(r3) 1639 000022ac 20210001 addi r1,r1,#1 1640 000022b0 ac610008 sw 8(r3),r1 1641 000022b4 8fa20000 lw r2,0(r29) 1642 000022b8 8fa30004 lw r3,4(r29) 1643 000022bc 8fdffff8 lw r31,-8(r30) 1644 000022c0 001ee820 add r29,r0,r30 1645 000022c4 8fdefffc lw r30,-4(r30) 1646 000022c8 4be00000 jr r31 1647 000022cc 54000000 nop 1648 000022d0 .endproc _QueueInsertLast 1649 000022d0 .align 2 1650 000022d0 .proc _QueueRemove 1651 000022d0 .global _QueueRemove 1652 000022d0 _QueueRemove: 1653 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 1654 000022d0 afbefffc sw -4(r29),r30; push fp 1655 000022d4 001df020 add r30,r0,r29; fp = sp 1656 000022d8 afbffff8 sw -8(r29),r31; push ret addr 1657 000022dc 2fbd0010 subui r29,r29,#16; alloc local storage 1658 000022e0 afa20000 sw 0(r29),r2 1659 000022e4 afa30004 sw 4(r29),r3 1660 000022e8 8fdf0000 lw r31,(r30) 1661 000022ec 8fe10008 lw r1,8(r31) 1662 000022f0 8c210008 lw r1,8(r1) 1663 000022f4 6c210000 sgti r1,r1,#0 1664 000022f8 1020002c beqz r1,L44_LF3 1665 000022fc 54000000 nop; not filled. 1666 00002300 8fe10004 lw r1,4(r31) 1667 00002304 8fe30000 lw r3,(r31) 1668 00002308 ac230000 sw (r1),r3 1669 0000230c 8fe10000 lw r1,(r31) 1670 00002310 8fe30004 lw r3,4(r31) 1671 00002314 ac230004 sw 4(r1),r3 1672 00002318 8fe20008 lw r2,8(r31) 1673 0000231c 8c410008 lw r1,8(r2) 1674 00002320 2021ffff addi r1,r1,#-1 1675 00002324 ac410008 sw 8(r2),r1 1676 00002328 L44_LF3: 1677 00002328 20030000 addi r3,r0,#0 1678 0000232c afe30000 sw (r31),r3 1679 00002330 8fa20000 lw r2,0(r29) 1680 00002334 8fa30004 lw r3,4(r29) 1681 00002338 8fdffff8 lw r31,-8(r30) 1682 0000233c 001ee820 add r29,r0,r30 1683 00002340 8fdefffc lw r30,-4(r30) 1684 00002344 4be00000 jr r31 1685 00002348 54000000 nop 1686 0000234c .endproc _QueueRemove 1687 0000234c .align 2 1688 0000234c .proc _QueueLength 1689 0000234c .global _QueueLength 1690 0000234c _QueueLength: 1691 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 1692 0000234c afbefffc sw -4(r29),r30; push fp 1693 00002350 001df020 add r30,r0,r29; fp = sp 1694 00002354 afbffff8 sw -8(r29),r31; push ret addr 1695 00002358 2fbd0008 subui r29,r29,#8; alloc local storage 1696 0000235c 8fc10000 lw r1,(r30) 1697 00002360 8c210008 lw r1,8(r1) 1698 00002364 8fdffff8 lw r31,-8(r30) 1699 00002368 001ee820 add r29,r0,r30 1700 0000236c 8fdefffc lw r30,-4(r30) 1701 00002370 4be00000 jr r31 1702 00002374 54000000 nop 1703 00002378 .endproc _QueueLength 1704 00002378 .align 2 1705 00002378 .proc _QueueEmpty 1706 00002378 .global _QueueEmpty 1707 00002378 _QueueEmpty: 1708 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 1709 00002378 afbefffc sw -4(r29),r30; push fp 1710 0000237c 001df020 add r30,r0,r29; fp = sp 1711 00002380 afbffff8 sw -8(r29),r31; push ret addr 1712 00002384 2fbd0008 subui r29,r29,#8; alloc local storage 1713 00002388 8fc10000 lw r1,(r30) 1714 0000238c 8c210008 lw r1,8(r1) 1715 00002390 60210000 seqi r1,r1,#0 1716 00002394 8fdffff8 lw r31,-8(r30) 1717 00002398 001ee820 add r29,r0,r30 1718 0000239c 8fdefffc lw r30,-4(r30) 1719 000023a0 4be00000 jr r31 1720 000023a4 54000000 nop 1721 000023a8 .endproc _QueueEmpty 1722 000023a8 .data 1723 0000e194 .align 2 1724 0000e194 LC0_LF3: 1725 0000e194 456e7465 .ascii "Entering SynchModuleInit\n\000" 1725 0000e198 72696e67 1725 0000e19c 2053796e 1725 0000e1a0 63684d6f 1725 0000e1a4 64756c65 1725 0000e1a8 496e6974 1725 0000e1ac 0a00 1726 0000e1ae .align 2 1727 0000e1b0 LC1_LF3: 1728 0000e1b0 4c656176 .ascii "Leaving SynchModuleInit\n\000" 1728 0000e1b4 696e6720 1728 0000e1b8 53796e63 1728 0000e1bc 684d6f64 1728 0000e1c0 756c6549 1728 0000e1c4 6e69740a 1728 0000e1c8 00 1729 0000e1c9 .text 1730 000023a8 .align 2 1731 000023a8 .proc _SynchModuleInit 1732 000023a8 .global _SynchModuleInit 1733 000023a8 _SynchModuleInit: 1734 ; Function 'SynchModuleInit'; 0 bytes of locals, 2 regs to save. 1735 000023a8 afbefffc sw -4(r29),r30; push fp 1736 000023ac 001df020 add r30,r0,r29; fp = sp 1737 000023b0 afbffff8 sw -8(r29),r31; push ret addr 1738 000023b4 2fbd0010 subui r29,r29,#16; alloc local storage 1739 000023b8 afa20000 sw 0(r29),r2 1740 000023bc afa30004 sw 4(r29),r3 1741 000023c0 23bdfff8 addi r29,r29,#-8 1742 000023c4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 1743 000023c8 24424038 addui r2,r2,(_debugstr)&0xffff 1744 000023cc afa20000 sw (r29),r2 1745 000023d0 20030070 addi r3,r0,#112 1746 000023d4 afa30004 sw 4(r29),r3 1747 000023d8 0c0041b0 jal _dindex 1748 000023dc 54000000 nop; not filled. 1749 000023e0 23bd0008 addi r29,r29,#8 1750 000023e4 64210000 snei r1,r1,#0 1751 000023e8 1420002c bnez r1,L53_LF3 1752 000023ec 54000000 nop; not filled. 1753 000023f0 23bdfff8 addi r29,r29,#-8 1754 000023f4 afa20000 sw (r29),r2 1755 000023f8 2003002b addi r3,r0,#43 1756 000023fc afa30004 sw 4(r29),r3 1757 00002400 0c004188 jal _dindex 1758 00002404 54000000 nop; not filled. 1759 00002408 23bd0008 addi r29,r29,#8 1760 0000240c 64210000 snei r1,r1,#0 1761 00002410 10200020 beqz r1,L52_LF3 1762 00002414 54000000 nop; not filled. 1763 00002418 L53_LF3: 1764 00002418 23bdfff8 addi r29,r29,#-8 1765 0000241c 3c030000 lhi r3,((LC0_LF3)>>16)&0xffff 1766 00002420 2463e194 addui r3,r3,(LC0_LF3)&0xffff 1767 00002424 afa30000 sw (r29),r3 1768 00002428 0c00adf8 jal _printf 1769 0000242c 54000000 nop; not filled. 1770 00002430 23bd0008 addi r29,r29,#8 1771 00002434 L52_LF3: 1772 00002434 3c1f0000 lhi r31,((_sems_LF3)>>16)&0xffff 1773 00002438 27ffe278 addui r31,r31,(_sems_LF3)&0xffff 1774 0000243c 23e204ec addi r2,r31,#1260 1775 00002440 L57_LF3: 1776 00002440 20030000 addi r3,r0,#0 1777 00002444 afe30010 sw 16(r31),r3 1778 00002448 23ff0014 addi r31,r31,#20 1779 0000244c 03e2082c sle r1,r31,r2 1780 00002450 1420ffec bnez r1,L57_LF3 1781 00002454 54000000 nop; not filled. 1782 00002458 3c1f0000 lhi r31,((_locks_LF3)>>16)&0xffff 1783 0000245c 27ffe778 addui r31,r31,(_locks_LF3)&0xffff 1784 00002460 23e206e4 addi r2,r31,#1764 1785 00002464 L62_LF3: 1786 00002464 20030000 addi r3,r0,#0 1787 00002468 afe30018 sw 24(r31),r3 1788 0000246c 2003ffff addi r3,r0,#-1 1789 00002470 afe30014 sw 20(r31),r3 1790 00002474 23ff001c addi r31,r31,#28 1791 00002478 03e2082c sle r1,r31,r2 1792 0000247c 1420ffe4 bnez r1,L62_LF3 1793 00002480 54000000 nop; not filled. 1794 00002484 20020000 addi r2,r0,#0 1795 00002488 3c1f0000 lhi r31,((_conds_LF3)>>16)&0xffff 1796 0000248c 27ffee78 addui r31,r31,(_conds_LF3)&0xffff 1797 00002490 L67_LF3: 1798 00002490 20030000 addi r3,r0,#0 1799 00002494 afe3001c sw 28(r31),r3 1800 00002498 afe30018 sw 24(r31),r3 1801 0000249c 23ff0020 addi r31,r31,#32 1802 000024a0 20420001 addi r2,r2,#1 1803 000024a4 7041001f slei r1,r2,#31 1804 000024a8 1420ffe4 bnez r1,L67_LF3 1805 000024ac 54000000 nop; not filled. 1806 000024b0 23bdfff8 addi r29,r29,#-8 1807 000024b4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 1808 000024b8 24424038 addui r2,r2,(_debugstr)&0xffff 1809 000024bc afa20000 sw (r29),r2 1810 000024c0 20030070 addi r3,r0,#112 1811 000024c4 afa30004 sw 4(r29),r3 1812 000024c8 0c0040c0 jal _dindex 1813 000024cc 54000000 nop; not filled. 1814 000024d0 23bd0008 addi r29,r29,#8 1815 000024d4 64210000 snei r1,r1,#0 1816 000024d8 1420002c bnez r1,L70_LF3 1817 000024dc 54000000 nop; not filled. 1818 000024e0 23bdfff8 addi r29,r29,#-8 1819 000024e4 afa20000 sw (r29),r2 1820 000024e8 2003002b addi r3,r0,#43 1821 000024ec afa30004 sw 4(r29),r3 1822 000024f0 0c004098 jal _dindex 1823 000024f4 54000000 nop; not filled. 1824 000024f8 23bd0008 addi r29,r29,#8 1825 000024fc 64210000 snei r1,r1,#0 1826 00002500 10200020 beqz r1,L69_LF3 1827 00002504 54000000 nop; not filled. 1828 00002508 L70_LF3: 1829 00002508 23bdfff8 addi r29,r29,#-8 1830 0000250c 3c030000 lhi r3,((LC1_LF3)>>16)&0xffff 1831 00002510 2463e1b0 addui r3,r3,(LC1_LF3)&0xffff 1832 00002514 afa30000 sw (r29),r3 1833 00002518 0c00ad08 jal _printf 1834 0000251c 54000000 nop; not filled. 1835 00002520 23bd0008 addi r29,r29,#8 1836 00002524 L69_LF3: 1837 00002524 8fa20000 lw r2,0(r29) 1838 00002528 8fa30004 lw r3,4(r29) 1839 0000252c 8fdffff8 lw r31,-8(r30) 1840 00002530 001ee820 add r29,r0,r30 1841 00002534 8fdefffc lw r30,-4(r30) 1842 00002538 4be00000 jr r31 1843 0000253c 54000000 nop 1844 00002540 .endproc _SynchModuleInit 1845 00002540 .align 2 1846 00002540 .proc _SemInit 1847 00002540 .global _SemInit 1848 00002540 _SemInit: 1849 ; Function 'SemInit'; 0 bytes of locals, 2 regs to save. 1850 00002540 afbefffc sw -4(r29),r30; push fp 1851 00002544 001df020 add r30,r0,r29; fp = sp 1852 00002548 afbffff8 sw -8(r29),r31; push ret addr 1853 0000254c 2fbd0010 subui r29,r29,#16; alloc local storage 1854 00002550 afa20000 sw 0(r29),r2 1855 00002554 afa30004 sw 4(r29),r3 1856 00002558 8fc20000 lw r2,(r30) 1857 0000255c 8fc30004 lw r3,4(r30) 1858 00002560 23bdfff8 addi r29,r29,#-8 1859 00002564 afa20000 sw (r29),r2 1860 00002568 0c008390 jal _QueueInit 1861 0000256c 54000000 nop; not filled. 1862 00002570 ac43000c sw 12(r2),r3 1863 00002574 23bd0008 addi r29,r29,#8 1864 00002578 8fa20000 lw r2,0(r29) 1865 0000257c 8fa30004 lw r3,4(r29) 1866 00002580 8fdffff8 lw r31,-8(r30) 1867 00002584 001ee820 add r29,r0,r30 1868 00002588 8fdefffc lw r30,-4(r30) 1869 0000258c 4be00000 jr r31 1870 00002590 54000000 nop 1871 00002594 .endproc _SemInit 1872 00002594 .align 2 1873 00002594 .proc _SemCreate 1874 00002594 .global _SemCreate 1875 00002594 _SemCreate: 1876 ; Function 'SemCreate'; 0 bytes of locals, 4 regs to save. 1877 00002594 afbefffc sw -4(r29),r30; push fp 1878 00002598 001df020 add r30,r0,r29; fp = sp 1879 0000259c afbffff8 sw -8(r29),r31; push ret addr 1880 000025a0 2fbd0018 subui r29,r29,#24; alloc local storage 1881 000025a4 afa20000 sw 0(r29),r2 1882 000025a8 afa30004 sw 4(r29),r3 1883 000025ac afa40008 sw 8(r29),r4 1884 000025b0 afa5000c sw 12(r29),r5 1885 000025b4 23bdfff8 addi r29,r29,#-8 1886 000025b8 2005000f addi r5,r0,#15 1887 000025bc afa50000 sw (r29),r5 1888 000025c0 0fffecc4 jal _SetIntrs 1889 000025c4 54000000 nop; not filled. 1890 000025c8 00012020 add r4,r0,r1 1891 000025cc 23bd0008 addi r29,r29,#8 1892 000025d0 20030000 addi r3,r0,#0 1893 000025d4 3c1f0000 lhi r31,((_sems_LF3)>>16)&0xffff 1894 000025d8 27ffe278 addui r31,r31,(_sems_LF3)&0xffff 1895 000025dc L89_LF3: 1896 000025dc 001f1020 add r2,r0,r31 1897 000025e0 8fe10010 lw r1,16(r31) 1898 000025e4 64210000 snei r1,r1,#0 1899 000025e8 10200078 beqz r1,L96_LF3 1900 000025ec 54000000 nop; not filled. 1901 000025f0 205f0014 addi r31,r2,#20 1902 000025f4 20630001 addi r3,r3,#1 1903 000025f8 7061003f slei r1,r3,#63 1904 000025fc 1420ffdc bnez r1,L89_LF3 1905 00002600 54000000 nop; not filled. 1906 00002604 L87_LF3: 1907 00002604 23bdfff8 addi r29,r29,#-8 1908 00002608 afa40000 sw (r29),r4 1909 0000260c 0fffec78 jal _SetIntrs 1910 00002610 54000000 nop; not filled. 1911 00002614 23bd0008 addi r29,r29,#8 1912 00002618 60610040 seqi r1,r3,#64 1913 0000261c 14200054 bnez r1,L93_LF3 1914 00002620 54000000 nop; not filled. 1915 00002624 50610002 slli r1,r3,#0x2 1916 00002628 00230820 add r1,r1,r3 1917 0000262c 50210002 slli r1,r1,#0x2 1918 00002630 3c050000 lhi r5,((_sems_LF3)>>16)&0xffff 1919 00002634 24a5e278 addui r5,r5,(_sems_LF3)&0xffff 1920 00002638 00251020 add r2,r1,r5 1921 0000263c 23bdfff8 addi r29,r29,#-8 1922 00002640 afa20000 sw (r29),r2 1923 00002644 0c0082b4 jal _QueueInit 1924 00002648 54000000 nop; not filled. 1925 0000264c 8fc50000 lw r5,(r30) 1926 00002650 ac45000c sw 12(r2),r5 1927 00002654 23bd0008 addi r29,r29,#8 1928 00002658 00030820 add r1,r0,r3 1929 0000265c 08000018 j L95_LF3 1930 00002660 54000000 nop; not filled. 1931 00002664 L96_LF3: 1932 00002664 20050001 addi r5,r0,#1 1933 00002668 afe50010 sw 16(r31),r5 1934 0000266c 0bffff94 j L87_LF3 1935 00002670 54000000 nop; not filled. 1936 00002674 L93_LF3: 1937 00002674 2001ffff addi r1,r0,#-1 1938 00002678 L95_LF3: 1939 00002678 8fa20000 lw r2,0(r29) 1940 0000267c 8fa30004 lw r3,4(r29) 1941 00002680 8fa40008 lw r4,8(r29) 1942 00002684 8fa5000c lw r5,12(r29) 1943 00002688 8fdffff8 lw r31,-8(r30) 1944 0000268c 001ee820 add r29,r0,r30 1945 00002690 8fdefffc lw r30,-4(r30) 1946 00002694 4be00000 jr r31 1947 00002698 54000000 nop 1948 0000269c .endproc _SemCreate 1949 0000269c .data 1950 0000e1c9 .align 2 1951 0000e1cc LC2_LF3: 1952 0000e1cc 4f6c6420 .ascii "Old interrupt value was 0x%x.\n\000" 1952 0000e1d0 696e7465 1952 0000e1d4 72727570 1952 0000e1d8 74207661 1952 0000e1dc 6c756520 1952 0000e1e0 77617320 1952 0000e1e4 30782578 1952 0000e1e8 2e0a00 1953 0000e1eb .align 2 1954 0000e1ec LC3_LF3: 1955 0000e1ec 50726f63 .ascii "Proc 0x%x waiting on sem 0x%x, count=%d.\n\000" 1955 0000e1f0 20307825 1955 0000e1f4 78207761 1955 0000e1f8 6974696e 1955 0000e1fc 67206f6e 1955 0000e200 2073656d 1955 0000e204 20307825 1955 0000e208 782c2063 1955 0000e20c 6f756e74 1955 0000e210 3d25642e 1955 0000e214 0a00 1956 0000e216 .align 2 1957 0000e218 LC4_LF3: 1958 0000e218 53757370 .ascii "Suspending current proc (0x%x).\n\000" 1958 0000e21c 656e6469 1958 0000e220 6e672063 1958 0000e224 75727265 1958 0000e228 6e742070 1958 0000e22c 726f6320 1958 0000e230 28307825 1958 0000e234 78292e0a 1958 0000e238 00 1959 0000e239 .text 1960 0000269c .align 2 1961 0000269c .proc _SemWait 1962 0000269c .global _SemWait 1963 0000269c _SemWait: 1964 ; Function 'SemWait'; 0 bytes of locals, 6 regs to save. 1965 0000269c afbefffc sw -4(r29),r30; push fp 1966 000026a0 001df020 add r30,r0,r29; fp = sp 1967 000026a4 afbffff8 sw -8(r29),r31; push ret addr 1968 000026a8 2fbd0020 subui r29,r29,#32; alloc local storage 1969 000026ac afa20000 sw 0(r29),r2 1970 000026b0 afa30004 sw 4(r29),r3 1971 000026b4 afa40008 sw 8(r29),r4 1972 000026b8 afa5000c sw 12(r29),r5 1973 000026bc afa60010 sw 16(r29),r6 1974 000026c0 afa70014 sw 20(r29),r7 1975 000026c4 8fc40000 lw r4,(r30) 1976 000026c8 23bdfff8 addi r29,r29,#-8 1977 000026cc 2007000f addi r7,r0,#15 1978 000026d0 afa70000 sw (r29),r7 1979 000026d4 0fffebb0 jal _SetIntrs 1980 000026d8 54000000 nop; not filled. 1981 000026dc 00013020 add r6,r0,r1 1982 000026e0 23bd0008 addi r29,r29,#8 1983 000026e4 23bdfff8 addi r29,r29,#-8 1984 000026e8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 1985 000026ec 24424038 addui r2,r2,(_debugstr)&0xffff 1986 000026f0 afa20000 sw (r29),r2 1987 000026f4 20070049 addi r7,r0,#73 1988 000026f8 afa70004 sw 4(r29),r7 1989 000026fc 0c003e8c jal _dindex 1990 00002700 54000000 nop; not filled. 1991 00002704 23bd0008 addi r29,r29,#8 1992 00002708 64210000 snei r1,r1,#0 1993 0000270c 1420002c bnez r1,L100_LF3 1994 00002710 54000000 nop; not filled. 1995 00002714 23bdfff8 addi r29,r29,#-8 1996 00002718 afa20000 sw (r29),r2 1997 0000271c 2007002b addi r7,r0,#43 1998 00002720 afa70004 sw 4(r29),r7 1999 00002724 0c003e64 jal _dindex 2000 00002728 54000000 nop; not filled. 2001 0000272c 23bd0008 addi r29,r29,#8 2002 00002730 64210000 snei r1,r1,#0 2003 00002734 10200024 beqz r1,L99_LF3 2004 00002738 54000000 nop; not filled. 2005 0000273c L100_LF3: 2006 0000273c 23bdfff8 addi r29,r29,#-8 2007 00002740 3c070000 lhi r7,((LC2_LF3)>>16)&0xffff 2008 00002744 24e7e1cc addui r7,r7,(LC2_LF3)&0xffff 2009 00002748 afa70000 sw (r29),r7 2010 0000274c afa60004 sw 4(r29),r6 2011 00002750 0c00aad0 jal _printf 2012 00002754 54000000 nop; not filled. 2013 00002758 23bd0008 addi r29,r29,#8 2014 0000275c L99_LF3: 2015 0000275c 23bdfff8 addi r29,r29,#-8 2016 00002760 3c020001 lhi r2,((_debugstr)>>16)&0xffff 2017 00002764 24424038 addui r2,r2,(_debugstr)&0xffff 2018 00002768 afa20000 sw (r29),r2 2019 0000276c 20070073 addi r7,r0,#115 2020 00002770 afa70004 sw 4(r29),r7 2021 00002774 0c003e14 jal _dindex 2022 00002778 54000000 nop; not filled. 2023 0000277c 23bd0008 addi r29,r29,#8 2024 00002780 64210000 snei r1,r1,#0 2025 00002784 1420002c bnez r1,L102_LF3 2026 00002788 54000000 nop; not filled. 2027 0000278c 23bdfff8 addi r29,r29,#-8 2028 00002790 afa20000 sw (r29),r2 2029 00002794 2007002b addi r7,r0,#43 2030 00002798 afa70004 sw 4(r29),r7 2031 0000279c 0c003dec jal _dindex 2032 000027a0 54000000 nop; not filled. 2033 000027a4 23bd0008 addi r29,r29,#8 2034 000027a8 64210000 snei r1,r1,#0 2035 000027ac 1020003c beqz r1,L101_LF3 2036 000027b0 54000000 nop; not filled. 2037 000027b4 L102_LF3: 2038 000027b4 23bdfff0 addi r29,r29,#-16 2039 000027b8 3c070000 lhi r7,((LC3_LF3)>>16)&0xffff 2040 000027bc 24e7e1ec addui r7,r7,(LC3_LF3)&0xffff 2041 000027c0 afa70000 sw (r29),r7 2042 000027c4 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 2043 000027c8 24214100 addui r1,r1,(_currentPCB)&0xffff 2044 000027cc 8c210000 lw r1,(r1) 2045 000027d0 afa10004 sw 4(r29),r1 2046 000027d4 afa40008 sw 8(r29),r4 2047 000027d8 8c87000c lw r7,12(r4) 2048 000027dc afa7000c sw 12(r29),r7 2049 000027e0 0c00aa40 jal _printf 2050 000027e4 54000000 nop; not filled. 2051 000027e8 23bd0010 addi r29,r29,#16 2052 000027ec L101_LF3: 2053 000027ec 8c81000c lw r1,12(r4) 2054 000027f0 2021ffff addi r1,r1,#-1 2055 000027f4 ac81000c sw 12(r4),r1 2056 000027f8 68210000 slti r1,r1,#0 2057 000027fc 102000d8 beqz r1,L103_LF3 2058 00002800 54000000 nop; not filled. 2059 00002804 0c0081e4 jal _QueueAllocLink 2060 00002808 54000000 nop; not filled. 2061 0000280c 00011020 add r2,r0,r1 2062 00002810 3c050001 lhi r5,((_currentPCB)>>16)&0xffff 2063 00002814 24a54100 addui r5,r5,(_currentPCB)&0xffff 2064 00002818 8ca10000 lw r1,(r5) 2065 0000281c 20070000 addi r7,r0,#0 2066 00002820 ac470000 sw (r2),r7 2067 00002824 ac41000c sw 12(r2),r1 2068 00002828 23bdfff8 addi r29,r29,#-8 2069 0000282c 3c030001 lhi r3,((_debugstr)>>16)&0xffff 2070 00002830 24634038 addui r3,r3,(_debugstr)&0xffff 2071 00002834 afa30000 sw (r29),r3 2072 00002838 20070073 addi r7,r0,#115 2073 0000283c afa70004 sw 4(r29),r7 2074 00002840 0c003d48 jal _dindex 2075 00002844 54000000 nop; not filled. 2076 00002848 23bd0008 addi r29,r29,#8 2077 0000284c 64210000 snei r1,r1,#0 2078 00002850 1420002c bnez r1,L106_LF3 2079 00002854 54000000 nop; not filled. 2080 00002858 23bdfff8 addi r29,r29,#-8 2081 0000285c afa30000 sw (r29),r3 2082 00002860 2007002b addi r7,r0,#43 2083 00002864 afa70004 sw 4(r29),r7 2084 00002868 0c003d20 jal _dindex 2085 0000286c 54000000 nop; not filled. 2086 00002870 23bd0008 addi r29,r29,#8 2087 00002874 64210000 snei r1,r1,#0 2088 00002878 10200028 beqz r1,L105_LF3 2089 0000287c 54000000 nop; not filled. 2090 00002880 L106_LF3: 2091 00002880 23bdfff8 addi r29,r29,#-8 2092 00002884 3c070000 lhi r7,((LC4_LF3)>>16)&0xffff 2093 00002888 24e7e218 addui r7,r7,(LC4_LF3)&0xffff 2094 0000288c afa70000 sw (r29),r7 2095 00002890 8ca10000 lw r1,(r5) 2096 00002894 afa10004 sw 4(r29),r1 2097 00002898 0c00a988 jal _printf 2098 0000289c 54000000 nop; not filled. 2099 000028a0 23bd0008 addi r29,r29,#8 2100 000028a4 L105_LF3: 2101 000028a4 8c810004 lw r1,4(r4) 2102 000028a8 ac440008 sw 8(r2),r4 2103 000028ac ac410004 sw 4(r2),r1 2104 000028b0 8c270000 lw r7,(r1) 2105 000028b4 ac470000 sw (r2),r7 2106 000028b8 ac220000 sw (r1),r2 2107 000028bc 8c410000 lw r1,(r2) 2108 000028c0 ac220004 sw 4(r1),r2 2109 000028c4 8c810008 lw r1,8(r4) 2110 000028c8 20210001 addi r1,r1,#1 2111 000028cc ac810008 sw 8(r4),r1 2112 000028d0 0fffea00 jal _ProcessSleep 2113 000028d4 54000000 nop; not filled. 2114 000028d8 L103_LF3: 2115 000028d8 23bdfff8 addi r29,r29,#-8 2116 000028dc afa60000 sw (r29),r6 2117 000028e0 0fffe9a4 jal _SetIntrs 2118 000028e4 54000000 nop; not filled. 2119 000028e8 23bd0008 addi r29,r29,#8 2120 000028ec 8fa20000 lw r2,0(r29) 2121 000028f0 8fa30004 lw r3,4(r29) 2122 000028f4 8fa40008 lw r4,8(r29) 2123 000028f8 8fa5000c lw r5,12(r29) 2124 000028fc 8fa60010 lw r6,16(r29) 2125 00002900 8fa70014 lw r7,20(r29) 2126 00002904 8fdffff8 lw r31,-8(r30) 2127 00002908 001ee820 add r29,r0,r30 2128 0000290c 8fdefffc lw r30,-4(r30) 2129 00002910 4be00000 jr r31 2130 00002914 54000000 nop 2131 00002918 .endproc _SemWait 2132 00002918 .align 2 2133 00002918 .proc _SemHandleWait 2134 00002918 .global _SemHandleWait 2135 00002918 _SemHandleWait: 2136 ; Function 'SemHandleWait'; 0 bytes of locals, 1 regs to save. 2137 00002918 afbefffc sw -4(r29),r30; push fp 2138 0000291c 001df020 add r30,r0,r29; fp = sp 2139 00002920 afbffff8 sw -8(r29),r31; push ret addr 2140 00002924 2fbd0010 subui r29,r29,#16; alloc local storage 2141 00002928 afa20000 sw 0(r29),r2 2142 0000292c 8fdf0000 lw r31,(r30) 2143 00002930 73e1003f sleui r1,r31,#63 2144 00002934 10200058 beqz r1,L116_LF3 2145 00002938 54000000 nop; not filled. 2146 0000293c 53e10002 slli r1,r31,#0x2 2147 00002940 003f0820 add r1,r1,r31 2148 00002944 50210002 slli r1,r1,#0x2 2149 00002948 3c020000 lhi r2,((_sems_LF3)>>16)&0xffff 2150 0000294c 2442e278 addui r2,r2,(_sems_LF3)&0xffff 2151 00002950 0022f820 add r31,r1,r2 2152 00002954 8fe10010 lw r1,16(r31) 2153 00002958 64210000 snei r1,r1,#0 2154 0000295c 10200024 beqz r1,L117_LF3 2155 00002960 54000000 nop; not filled. 2156 00002964 23bdfff8 addi r29,r29,#-8 2157 00002968 afbf0000 sw (r29),r31 2158 0000296c 0ffffd2c jal _SemWait 2159 00002970 54000000 nop; not filled. 2160 00002974 20010000 addi r1,r0,#0 2161 00002978 23bd0008 addi r29,r29,#8 2162 0000297c 08000014 j L115_LF3 2163 00002980 54000000 nop; not filled. 2164 00002984 L117_LF3: 2165 00002984 20010001 addi r1,r0,#1 2166 00002988 08000008 j L115_LF3 2167 0000298c 54000000 nop; not filled. 2168 00002990 L116_LF3: 2169 00002990 20010001 addi r1,r0,#1 2170 00002994 L115_LF3: 2171 00002994 8fa20000 lw r2,0(r29) 2172 00002998 8fdffff8 lw r31,-8(r30) 2173 0000299c 001ee820 add r29,r0,r30 2174 000029a0 8fdefffc lw r30,-4(r30) 2175 000029a4 4be00000 jr r31 2176 000029a8 54000000 nop 2177 000029ac .endproc _SemHandleWait 2178 000029ac .data 2179 0000e239 .align 2 2180 0000e23c LC5_LF3: 2181 0000e23c 5369676e .ascii "Signalling on sem 0x%x, count=%d.\n\000" 2181 0000e240 616c6c69 2181 0000e244 6e67206f 2181 0000e248 6e207365 2181 0000e24c 6d203078 2181 0000e250 25782c20 2181 0000e254 636f756e 2181 0000e258 743d2564 2181 0000e25c 2e0a00 2182 0000e25f .align 2 2183 0000e260 LC6_LF3: 2184 0000e260 57616b69 .ascii "Waking up PCB 0x%x.\n\000" 2184 0000e264 6e672075 2184 0000e268 70205043 2184 0000e26c 42203078 2184 0000e270 25782e0a 2184 0000e274 00 2185 0000e275 .text 2186 000029ac .align 2 2187 000029ac .proc _SemSignal 2188 000029ac .global _SemSignal 2189 000029ac _SemSignal: 2190 ; Function 'SemSignal'; 0 bytes of locals, 4 regs to save. 2191 000029ac afbefffc sw -4(r29),r30; push fp 2192 000029b0 001df020 add r30,r0,r29; fp = sp 2193 000029b4 afbffff8 sw -8(r29),r31; push ret addr 2194 000029b8 2fbd0018 subui r29,r29,#24; alloc local storage 2195 000029bc afa20000 sw 0(r29),r2 2196 000029c0 afa30004 sw 4(r29),r3 2197 000029c4 afa40008 sw 8(r29),r4 2198 000029c8 afa5000c sw 12(r29),r5 2199 000029cc 8fc20000 lw r2,(r30) 2200 000029d0 23bdfff8 addi r29,r29,#-8 2201 000029d4 2005000f addi r5,r0,#15 2202 000029d8 afa50000 sw (r29),r5 2203 000029dc 0fffe8a8 jal _SetIntrs 2204 000029e0 54000000 nop; not filled. 2205 000029e4 00012020 add r4,r0,r1 2206 000029e8 23bd0008 addi r29,r29,#8 2207 000029ec 23bdfff8 addi r29,r29,#-8 2208 000029f0 3c030001 lhi r3,((_debugstr)>>16)&0xffff 2209 000029f4 24634038 addui r3,r3,(_debugstr)&0xffff 2210 000029f8 afa30000 sw (r29),r3 2211 000029fc 20050073 addi r5,r0,#115 2212 00002a00 afa50004 sw 4(r29),r5 2213 00002a04 0c003b84 jal _dindex 2214 00002a08 54000000 nop; not filled. 2215 00002a0c 23bd0008 addi r29,r29,#8 2216 00002a10 64210000 snei r1,r1,#0 2217 00002a14 1420002c bnez r1,L123_LF3 2218 00002a18 54000000 nop; not filled. 2219 00002a1c 23bdfff8 addi r29,r29,#-8 2220 00002a20 afa30000 sw (r29),r3 2221 00002a24 2005002b addi r5,r0,#43 2222 00002a28 afa50004 sw 4(r29),r5 2223 00002a2c 0c003b5c jal _dindex 2224 00002a30 54000000 nop; not filled. 2225 00002a34 23bd0008 addi r29,r29,#8 2226 00002a38 64210000 snei r1,r1,#0 2227 00002a3c 1020002c beqz r1,L122_LF3 2228 00002a40 54000000 nop; not filled. 2229 00002a44 L123_LF3: 2230 00002a44 23bdfff0 addi r29,r29,#-16 2231 00002a48 3c050000 lhi r5,((LC5_LF3)>>16)&0xffff 2232 00002a4c 24a5e23c addui r5,r5,(LC5_LF3)&0xffff 2233 00002a50 afa50000 sw (r29),r5 2234 00002a54 afa20004 sw 4(r29),r2 2235 00002a58 8c45000c lw r5,12(r2) 2236 00002a5c afa50008 sw 8(r29),r5 2237 00002a60 0c00a7c0 jal _printf 2238 00002a64 54000000 nop; not filled. 2239 00002a68 23bd0010 addi r29,r29,#16 2240 00002a6c L122_LF3: 2241 00002a6c 8c41000c lw r1,12(r2) 2242 00002a70 20210001 addi r1,r1,#1 2243 00002a74 ac41000c sw 12(r2),r1 2244 00002a78 70210000 slei r1,r1,#0 2245 00002a7c 102000ec beqz r1,L124_LF3 2246 00002a80 54000000 nop; not filled. 2247 00002a84 8c430000 lw r3,(r2) 2248 00002a88 8c610008 lw r1,8(r3) 2249 00002a8c 8c210008 lw r1,8(r1) 2250 00002a90 6c210000 sgti r1,r1,#0 2251 00002a94 1020002c beqz r1,L127_LF3 2252 00002a98 54000000 nop; not filled. 2253 00002a9c 8c610004 lw r1,4(r3) 2254 00002aa0 8c650000 lw r5,(r3) 2255 00002aa4 ac250000 sw (r1),r5 2256 00002aa8 8c610000 lw r1,(r3) 2257 00002aac 8c650004 lw r5,4(r3) 2258 00002ab0 ac250004 sw 4(r1),r5 2259 00002ab4 8c620008 lw r2,8(r3) 2260 00002ab8 8c410008 lw r1,8(r2) 2261 00002abc 2021ffff addi r1,r1,#-1 2262 00002ac0 ac410008 sw 8(r2),r1 2263 00002ac4 L127_LF3: 2264 00002ac4 20050000 addi r5,r0,#0 2265 00002ac8 ac650000 sw (r3),r5 2266 00002acc 23bdfff8 addi r29,r29,#-8 2267 00002ad0 3c020001 lhi r2,((_debugstr)>>16)&0xffff 2268 00002ad4 24424038 addui r2,r2,(_debugstr)&0xffff 2269 00002ad8 afa20000 sw (r29),r2 2270 00002adc 20050073 addi r5,r0,#115 2271 00002ae0 afa50004 sw 4(r29),r5 2272 00002ae4 0c003aa4 jal _dindex 2273 00002ae8 54000000 nop; not filled. 2274 00002aec 23bd0008 addi r29,r29,#8 2275 00002af0 64210000 snei r1,r1,#0 2276 00002af4 1420002c bnez r1,L129_LF3 2277 00002af8 54000000 nop; not filled. 2278 00002afc 23bdfff8 addi r29,r29,#-8 2279 00002b00 afa20000 sw (r29),r2 2280 00002b04 2005002b addi r5,r0,#43 2281 00002b08 afa50004 sw 4(r29),r5 2282 00002b0c 0c003a7c jal _dindex 2283 00002b10 54000000 nop; not filled. 2284 00002b14 23bd0008 addi r29,r29,#8 2285 00002b18 64210000 snei r1,r1,#0 2286 00002b1c 10200028 beqz r1,L128_LF3 2287 00002b20 54000000 nop; not filled. 2288 00002b24 L129_LF3: 2289 00002b24 23bdfff8 addi r29,r29,#-8 2290 00002b28 3c050000 lhi r5,((LC6_LF3)>>16)&0xffff 2291 00002b2c 24a5e260 addui r5,r5,(LC6_LF3)&0xffff 2292 00002b30 afa50000 sw (r29),r5 2293 00002b34 8c61000c lw r1,12(r3) 2294 00002b38 afa10004 sw 4(r29),r1 2295 00002b3c 0c00a6e4 jal _printf 2296 00002b40 54000000 nop; not filled. 2297 00002b44 23bd0008 addi r29,r29,#8 2298 00002b48 L128_LF3: 2299 00002b48 23bdfff8 addi r29,r29,#-8 2300 00002b4c 8c65000c lw r5,12(r3) 2301 00002b50 afa50000 sw (r29),r5 2302 00002b54 0c004df0 jal _ProcessWakeup 2303 00002b58 54000000 nop; not filled. 2304 00002b5c afa30000 sw (r29),r3 2305 00002b60 0c007dd0 jal _QueueFreeLink 2306 00002b64 54000000 nop; not filled. 2307 00002b68 23bd0008 addi r29,r29,#8 2308 00002b6c L124_LF3: 2309 00002b6c 23bdfff8 addi r29,r29,#-8 2310 00002b70 afa40000 sw (r29),r4 2311 00002b74 0fffe710 jal _SetIntrs 2312 00002b78 54000000 nop; not filled. 2313 00002b7c 23bd0008 addi r29,r29,#8 2314 00002b80 8fa20000 lw r2,0(r29) 2315 00002b84 8fa30004 lw r3,4(r29) 2316 00002b88 8fa40008 lw r4,8(r29) 2317 00002b8c 8fa5000c lw r5,12(r29) 2318 00002b90 8fdffff8 lw r31,-8(r30) 2319 00002b94 001ee820 add r29,r0,r30 2320 00002b98 8fdefffc lw r30,-4(r30) 2321 00002b9c 4be00000 jr r31 2322 00002ba0 54000000 nop 2323 00002ba4 .endproc _SemSignal 2324 00002ba4 .align 2 2325 00002ba4 .proc _SemHandleSignal 2326 00002ba4 .global _SemHandleSignal 2327 00002ba4 _SemHandleSignal: 2328 ; Function 'SemHandleSignal'; 0 bytes of locals, 1 regs to save. 2329 00002ba4 afbefffc sw -4(r29),r30; push fp 2330 00002ba8 001df020 add r30,r0,r29; fp = sp 2331 00002bac afbffff8 sw -8(r29),r31; push ret addr 2332 00002bb0 2fbd0010 subui r29,r29,#16; alloc local storage 2333 00002bb4 afa20000 sw 0(r29),r2 2334 00002bb8 8fdf0000 lw r31,(r30) 2335 00002bbc 73e1003f sleui r1,r31,#63 2336 00002bc0 10200058 beqz r1,L136_LF3 2337 00002bc4 54000000 nop; not filled. 2338 00002bc8 53e10002 slli r1,r31,#0x2 2339 00002bcc 003f0820 add r1,r1,r31 2340 00002bd0 50210002 slli r1,r1,#0x2 2341 00002bd4 3c020000 lhi r2,((_sems_LF3)>>16)&0xffff 2342 00002bd8 2442e278 addui r2,r2,(_sems_LF3)&0xffff 2343 00002bdc 0022f820 add r31,r1,r2 2344 00002be0 8fe10010 lw r1,16(r31) 2345 00002be4 64210000 snei r1,r1,#0 2346 00002be8 10200024 beqz r1,L137_LF3 2347 00002bec 54000000 nop; not filled. 2348 00002bf0 23bdfff8 addi r29,r29,#-8 2349 00002bf4 afbf0000 sw (r29),r31 2350 00002bf8 0ffffdb0 jal _SemSignal 2351 00002bfc 54000000 nop; not filled. 2352 00002c00 20010000 addi r1,r0,#0 2353 00002c04 23bd0008 addi r29,r29,#8 2354 00002c08 08000014 j L135_LF3 2355 00002c0c 54000000 nop; not filled. 2356 00002c10 L137_LF3: 2357 00002c10 20010001 addi r1,r0,#1 2358 00002c14 08000008 j L135_LF3 2359 00002c18 54000000 nop; not filled. 2360 00002c1c L136_LF3: 2361 00002c1c 20010001 addi r1,r0,#1 2362 00002c20 L135_LF3: 2363 00002c20 8fa20000 lw r2,0(r29) 2364 00002c24 8fdffff8 lw r31,-8(r30) 2365 00002c28 001ee820 add r29,r0,r30 2366 00002c2c 8fdefffc lw r30,-4(r30) 2367 00002c30 4be00000 jr r31 2368 00002c34 54000000 nop 2369 00002c38 .endproc _SemHandleSignal 2370 00002c38 .align 2 2371 00002c38 .proc _LockInit 2372 00002c38 .global _LockInit 2373 00002c38 _LockInit: 2374 ; Function 'LockInit'; 0 bytes of locals, 3 regs to save. 2375 00002c38 afbefffc sw -4(r29),r30; push fp 2376 00002c3c 001df020 add r30,r0,r29; fp = sp 2377 00002c40 afbffff8 sw -8(r29),r31; push ret addr 2378 00002c44 2fbd0018 subui r29,r29,#24; alloc local storage 2379 00002c48 afa20000 sw 0(r29),r2 2380 00002c4c afa30004 sw 4(r29),r3 2381 00002c50 afa40008 sw 8(r29),r4 2382 00002c54 8fc20000 lw r2,(r30) 2383 00002c58 23bdfff8 addi r29,r29,#-8 2384 00002c5c 2004000f addi r4,r0,#15 2385 00002c60 afa40000 sw (r29),r4 2386 00002c64 0fffe620 jal _SetIntrs 2387 00002c68 54000000 nop; not filled. 2388 00002c6c 00011820 add r3,r0,r1 2389 00002c70 23bd0008 addi r29,r29,#8 2390 00002c74 23bdfff8 addi r29,r29,#-8 2391 00002c78 afa20000 sw (r29),r2 2392 00002c7c 0c007c7c jal _QueueInit 2393 00002c80 54000000 nop; not filled. 2394 00002c84 20040001 addi r4,r0,#1 2395 00002c88 ac44000c sw 12(r2),r4 2396 00002c8c 23bd0008 addi r29,r29,#8 2397 00002c90 2004ffff addi r4,r0,#-1 2398 00002c94 ac440014 sw 20(r2),r4 2399 00002c98 23bdfff8 addi r29,r29,#-8 2400 00002c9c afa30000 sw (r29),r3 2401 00002ca0 0fffe5e4 jal _SetIntrs 2402 00002ca4 54000000 nop; not filled. 2403 00002ca8 23bd0008 addi r29,r29,#8 2404 00002cac 8fa20000 lw r2,0(r29) 2405 00002cb0 8fa30004 lw r3,4(r29) 2406 00002cb4 8fa40008 lw r4,8(r29) 2407 00002cb8 8fdffff8 lw r31,-8(r30) 2408 00002cbc 001ee820 add r29,r0,r30 2409 00002cc0 8fdefffc lw r30,-4(r30) 2410 00002cc4 4be00000 jr r31 2411 00002cc8 54000000 nop 2412 00002ccc .endproc _LockInit 2413 00002ccc .align 2 2414 00002ccc .proc _LockCreate 2415 00002ccc .global _LockCreate 2416 00002ccc _LockCreate: 2417 ; Function 'LockCreate'; 0 bytes of locals, 4 regs to save. 2418 00002ccc afbefffc sw -4(r29),r30; push fp 2419 00002cd0 001df020 add r30,r0,r29; fp = sp 2420 00002cd4 afbffff8 sw -8(r29),r31; push ret addr 2421 00002cd8 2fbd0018 subui r29,r29,#24; alloc local storage 2422 00002cdc afa20000 sw 0(r29),r2 2423 00002ce0 afa30004 sw 4(r29),r3 2424 00002ce4 afa40008 sw 8(r29),r4 2425 00002ce8 afa5000c sw 12(r29),r5 2426 00002cec 23bdfff8 addi r29,r29,#-8 2427 00002cf0 2005000f addi r5,r0,#15 2428 00002cf4 afa50000 sw (r29),r5 2429 00002cf8 0fffe58c jal _SetIntrs 2430 00002cfc 54000000 nop; not filled. 2431 00002d00 0001f820 add r31,r0,r1 2432 00002d04 23bd0008 addi r29,r29,#8 2433 00002d08 20040000 addi r4,r0,#0 2434 00002d0c 3c030000 lhi r3,((_locks_LF3)>>16)&0xffff 2435 00002d10 2463e778 addui r3,r3,(_locks_LF3)&0xffff 2436 00002d14 L153_LF3: 2437 00002d14 00031020 add r2,r0,r3 2438 00002d18 8c610018 lw r1,24(r3) 2439 00002d1c 64210000 snei r1,r1,#0 2440 00002d20 102000b0 beqz r1,L163_LF3 2441 00002d24 54000000 nop; not filled. 2442 00002d28 2043001c addi r3,r2,#28 2443 00002d2c 20840001 addi r4,r4,#1 2444 00002d30 7081003f slei r1,r4,#63 2445 00002d34 1420ffdc bnez r1,L153_LF3 2446 00002d38 54000000 nop; not filled. 2447 00002d3c L151_LF3: 2448 00002d3c 23bdfff8 addi r29,r29,#-8 2449 00002d40 afbf0000 sw (r29),r31 2450 00002d44 0fffe540 jal _SetIntrs 2451 00002d48 54000000 nop; not filled. 2452 00002d4c 23bd0008 addi r29,r29,#8 2453 00002d50 60810040 seqi r1,r4,#64 2454 00002d54 1420008c bnez r1,L157_LF3 2455 00002d58 54000000 nop; not filled. 2456 00002d5c 50810003 slli r1,r4,#0x3 2457 00002d60 00240822 sub r1,r1,r4 2458 00002d64 50210002 slli r1,r1,#0x2 2459 00002d68 3c050000 lhi r5,((_locks_LF3)>>16)&0xffff 2460 00002d6c 24a5e778 addui r5,r5,(_locks_LF3)&0xffff 2461 00002d70 00251020 add r2,r1,r5 2462 00002d74 23bdfff8 addi r29,r29,#-8 2463 00002d78 2005000f addi r5,r0,#15 2464 00002d7c afa50000 sw (r29),r5 2465 00002d80 0fffe504 jal _SetIntrs 2466 00002d84 54000000 nop; not filled. 2467 00002d88 00011820 add r3,r0,r1 2468 00002d8c 23bd0008 addi r29,r29,#8 2469 00002d90 23bdfff8 addi r29,r29,#-8 2470 00002d94 afa20000 sw (r29),r2 2471 00002d98 0c007b60 jal _QueueInit 2472 00002d9c 54000000 nop; not filled. 2473 00002da0 20050001 addi r5,r0,#1 2474 00002da4 ac45000c sw 12(r2),r5 2475 00002da8 23bd0008 addi r29,r29,#8 2476 00002dac 2005ffff addi r5,r0,#-1 2477 00002db0 ac450014 sw 20(r2),r5 2478 00002db4 23bdfff8 addi r29,r29,#-8 2479 00002db8 afa30000 sw (r29),r3 2480 00002dbc 0fffe4c8 jal _SetIntrs 2481 00002dc0 54000000 nop; not filled. 2482 00002dc4 23bd0008 addi r29,r29,#8 2483 00002dc8 00040820 add r1,r0,r4 2484 00002dcc 08000018 j L162_LF3 2485 00002dd0 54000000 nop; not filled. 2486 00002dd4 L163_LF3: 2487 00002dd4 20050001 addi r5,r0,#1 2488 00002dd8 ac650018 sw 24(r3),r5 2489 00002ddc 0bffff5c j L151_LF3 2490 00002de0 54000000 nop; not filled. 2491 00002de4 L157_LF3: 2492 00002de4 2001ffff addi r1,r0,#-1 2493 00002de8 L162_LF3: 2494 00002de8 8fa20000 lw r2,0(r29) 2495 00002dec 8fa30004 lw r3,4(r29) 2496 00002df0 8fa40008 lw r4,8(r29) 2497 00002df4 8fa5000c lw r5,12(r29) 2498 00002df8 8fdffff8 lw r31,-8(r30) 2499 00002dfc 001ee820 add r29,r0,r30 2500 00002e00 8fdefffc lw r30,-4(r30) 2501 00002e04 4be00000 jr r31 2502 00002e08 54000000 nop 2503 00002e0c .endproc _LockCreate 2504 00002e0c .align 2 2505 00002e0c .proc _LockAcquire 2506 00002e0c .global _LockAcquire 2507 00002e0c _LockAcquire: 2508 ; Function 'LockAcquire'; 0 bytes of locals, 5 regs to save. 2509 00002e0c afbefffc sw -4(r29),r30; push fp 2510 00002e10 001df020 add r30,r0,r29; fp = sp 2511 00002e14 afbffff8 sw -8(r29),r31; push ret addr 2512 00002e18 2fbd0020 subui r29,r29,#32; alloc local storage 2513 00002e1c afa20000 sw 0(r29),r2 2514 00002e20 afa30004 sw 4(r29),r3 2515 00002e24 afa40008 sw 8(r29),r4 2516 00002e28 afa5000c sw 12(r29),r5 2517 00002e2c afa60010 sw 16(r29),r6 2518 00002e30 8fc30000 lw r3,(r30) 2519 00002e34 23bdfff8 addi r29,r29,#-8 2520 00002e38 2006000f addi r6,r0,#15 2521 00002e3c afa60000 sw (r29),r6 2522 00002e40 0fffe444 jal _SetIntrs 2523 00002e44 54000000 nop; not filled. 2524 00002e48 00012820 add r5,r0,r1 2525 00002e4c 23bd0008 addi r29,r29,#8 2526 00002e50 23bdfff8 addi r29,r29,#-8 2527 00002e54 3c040001 lhi r4,((_currentPCB)>>16)&0xffff 2528 00002e58 24844100 addui r4,r4,(_currentPCB)&0xffff 2529 00002e5c 8c860000 lw r6,(r4) 2530 00002e60 afa60000 sw (r29),r6 2531 00002e64 0c00734c jal _findpid 2532 00002e68 54000000 nop; not filled. 2533 00002e6c 8c620014 lw r2,20(r3) 2534 00002e70 23bd0008 addi r29,r29,#8 2535 00002e74 00410829 sne r1,r2,r1 2536 00002e78 1020002c beqz r1,L170_LF3 2537 00002e7c 54000000 nop; not filled. 2538 00002e80 23bdfff8 addi r29,r29,#-8 2539 00002e84 afa30000 sw (r29),r3 2540 00002e88 0ffff810 jal _SemWait 2541 00002e8c 54000000 nop; not filled. 2542 00002e90 8c840000 lw r4,(r4) 2543 00002e94 afa40000 sw (r29),r4 2544 00002e98 0c007318 jal _findpid 2545 00002e9c 54000000 nop; not filled. 2546 00002ea0 ac610014 sw 20(r3),r1 2547 00002ea4 23bd0008 addi r29,r29,#8 2548 00002ea8 L170_LF3: 2549 00002ea8 23bdfff8 addi r29,r29,#-8 2550 00002eac afa50000 sw (r29),r5 2551 00002eb0 0fffe3d4 jal _SetIntrs 2552 00002eb4 54000000 nop; not filled. 2553 00002eb8 23bd0008 addi r29,r29,#8 2554 00002ebc 8fa20000 lw r2,0(r29) 2555 00002ec0 8fa30004 lw r3,4(r29) 2556 00002ec4 8fa40008 lw r4,8(r29) 2557 00002ec8 8fa5000c lw r5,12(r29) 2558 00002ecc 8fa60010 lw r6,16(r29) 2559 00002ed0 8fdffff8 lw r31,-8(r30) 2560 00002ed4 001ee820 add r29,r0,r30 2561 00002ed8 8fdefffc lw r30,-4(r30) 2562 00002edc 4be00000 jr r31 2563 00002ee0 54000000 nop 2564 00002ee4 .endproc _LockAcquire 2565 00002ee4 .align 2 2566 00002ee4 .proc _LockHandleAcquire 2567 00002ee4 .global _LockHandleAcquire 2568 00002ee4 _LockHandleAcquire: 2569 ; Function 'LockHandleAcquire'; 0 bytes of locals, 5 regs to save. 2570 00002ee4 afbefffc sw -4(r29),r30; push fp 2571 00002ee8 001df020 add r30,r0,r29; fp = sp 2572 00002eec afbffff8 sw -8(r29),r31; push ret addr 2573 00002ef0 2fbd0020 subui r29,r29,#32; alloc local storage 2574 00002ef4 afa20000 sw 0(r29),r2 2575 00002ef8 afa30004 sw 4(r29),r3 2576 00002efc afa40008 sw 8(r29),r4 2577 00002f00 afa5000c sw 12(r29),r5 2578 00002f04 afa60010 sw 16(r29),r6 2579 00002f08 8fc20000 lw r2,(r30) 2580 00002f0c 7041003f sleui r1,r2,#63 2581 00002f10 102000c0 beqz r1,L181_LF3 2582 00002f14 54000000 nop; not filled. 2583 00002f18 50410003 slli r1,r2,#0x3 2584 00002f1c 00220822 sub r1,r1,r2 2585 00002f20 50210002 slli r1,r1,#0x2 2586 00002f24 3c060000 lhi r6,((_locks_LF3)>>16)&0xffff 2587 00002f28 24c6e778 addui r6,r6,(_locks_LF3)&0xffff 2588 00002f2c 00261820 add r3,r1,r6 2589 00002f30 8c610018 lw r1,24(r3) 2590 00002f34 64210000 snei r1,r1,#0 2591 00002f38 10200098 beqz r1,L181_LF3 2592 00002f3c 54000000 nop; not filled. 2593 00002f40 23bdfff8 addi r29,r29,#-8 2594 00002f44 2006000f addi r6,r0,#15 2595 00002f48 afa60000 sw (r29),r6 2596 00002f4c 0fffe338 jal _SetIntrs 2597 00002f50 54000000 nop; not filled. 2598 00002f54 00012820 add r5,r0,r1 2599 00002f58 23bd0008 addi r29,r29,#8 2600 00002f5c 23bdfff8 addi r29,r29,#-8 2601 00002f60 3c040001 lhi r4,((_currentPCB)>>16)&0xffff 2602 00002f64 24844100 addui r4,r4,(_currentPCB)&0xffff 2603 00002f68 8c860000 lw r6,(r4) 2604 00002f6c afa60000 sw (r29),r6 2605 00002f70 0c007240 jal _findpid 2606 00002f74 54000000 nop; not filled. 2607 00002f78 8c620014 lw r2,20(r3) 2608 00002f7c 23bd0008 addi r29,r29,#8 2609 00002f80 00410829 sne r1,r2,r1 2610 00002f84 1020002c beqz r1,L185_LF3 2611 00002f88 54000000 nop; not filled. 2612 00002f8c 23bdfff8 addi r29,r29,#-8 2613 00002f90 afa30000 sw (r29),r3 2614 00002f94 0ffff704 jal _SemWait 2615 00002f98 54000000 nop; not filled. 2616 00002f9c 8c840000 lw r4,(r4) 2617 00002fa0 afa40000 sw (r29),r4 2618 00002fa4 0c00720c jal _findpid 2619 00002fa8 54000000 nop; not filled. 2620 00002fac ac610014 sw 20(r3),r1 2621 00002fb0 23bd0008 addi r29,r29,#8 2622 00002fb4 L185_LF3: 2623 00002fb4 23bdfff8 addi r29,r29,#-8 2624 00002fb8 afa50000 sw (r29),r5 2625 00002fbc 0fffe2c8 jal _SetIntrs 2626 00002fc0 54000000 nop; not filled. 2627 00002fc4 23bd0008 addi r29,r29,#8 2628 00002fc8 20010000 addi r1,r0,#0 2629 00002fcc 08000008 j L188_LF3 2630 00002fd0 54000000 nop; not filled. 2631 00002fd4 L181_LF3: 2632 00002fd4 20010001 addi r1,r0,#1 2633 00002fd8 L188_LF3: 2634 00002fd8 8fa20000 lw r2,0(r29) 2635 00002fdc 8fa30004 lw r3,4(r29) 2636 00002fe0 8fa40008 lw r4,8(r29) 2637 00002fe4 8fa5000c lw r5,12(r29) 2638 00002fe8 8fa60010 lw r6,16(r29) 2639 00002fec 8fdffff8 lw r31,-8(r30) 2640 00002ff0 001ee820 add r29,r0,r30 2641 00002ff4 8fdefffc lw r30,-4(r30) 2642 00002ff8 4be00000 jr r31 2643 00002ffc 54000000 nop 2644 00003000 .endproc _LockHandleAcquire 2645 00003000 .align 2 2646 00003000 .proc _LockRelease 2647 00003000 .global _LockRelease 2648 00003000 _LockRelease: 2649 ; Function 'LockRelease'; 0 bytes of locals, 4 regs to save. 2650 00003000 afbefffc sw -4(r29),r30; push fp 2651 00003004 001df020 add r30,r0,r29; fp = sp 2652 00003008 afbffff8 sw -8(r29),r31; push ret addr 2653 0000300c 2fbd0018 subui r29,r29,#24; alloc local storage 2654 00003010 afa20000 sw 0(r29),r2 2655 00003014 afa30004 sw 4(r29),r3 2656 00003018 afa40008 sw 8(r29),r4 2657 0000301c afa5000c sw 12(r29),r5 2658 00003020 8fc30000 lw r3,(r30) 2659 00003024 23bdfff8 addi r29,r29,#-8 2660 00003028 2005000f addi r5,r0,#15 2661 0000302c afa50000 sw (r29),r5 2662 00003030 0fffe254 jal _SetIntrs 2663 00003034 54000000 nop; not filled. 2664 00003038 00012020 add r4,r0,r1 2665 0000303c 23bd0008 addi r29,r29,#8 2666 00003040 23bdfff8 addi r29,r29,#-8 2667 00003044 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 2668 00003048 24214100 addui r1,r1,(_currentPCB)&0xffff 2669 0000304c 8c210000 lw r1,(r1) 2670 00003050 afa10000 sw (r29),r1 2671 00003054 0c00715c jal _findpid 2672 00003058 54000000 nop; not filled. 2673 0000305c 8c620014 lw r2,20(r3) 2674 00003060 23bd0008 addi r29,r29,#8 2675 00003064 00410828 seq r1,r2,r1 2676 00003068 10200020 beqz r1,L195_LF3 2677 0000306c 54000000 nop; not filled. 2678 00003070 2005ffff addi r5,r0,#-1 2679 00003074 ac650014 sw 20(r3),r5 2680 00003078 23bdfff8 addi r29,r29,#-8 2681 0000307c afa30000 sw (r29),r3 2682 00003080 0ffff928 jal _SemSignal 2683 00003084 54000000 nop; not filled. 2684 00003088 23bd0008 addi r29,r29,#8 2685 0000308c L195_LF3: 2686 0000308c 23bdfff8 addi r29,r29,#-8 2687 00003090 afa40000 sw (r29),r4 2688 00003094 0fffe1f0 jal _SetIntrs 2689 00003098 54000000 nop; not filled. 2690 0000309c 23bd0008 addi r29,r29,#8 2691 000030a0 8fa20000 lw r2,0(r29) 2692 000030a4 8fa30004 lw r3,4(r29) 2693 000030a8 8fa40008 lw r4,8(r29) 2694 000030ac 8fa5000c lw r5,12(r29) 2695 000030b0 8fdffff8 lw r31,-8(r30) 2696 000030b4 001ee820 add r29,r0,r30 2697 000030b8 8fdefffc lw r30,-4(r30) 2698 000030bc 4be00000 jr r31 2699 000030c0 54000000 nop 2700 000030c4 .endproc _LockRelease 2701 000030c4 .align 2 2702 000030c4 .proc _LockHandleRelease 2703 000030c4 .global _LockHandleRelease 2704 000030c4 _LockHandleRelease: 2705 ; Function 'LockHandleRelease'; 0 bytes of locals, 4 regs to save. 2706 000030c4 afbefffc sw -4(r29),r30; push fp 2707 000030c8 001df020 add r30,r0,r29; fp = sp 2708 000030cc afbffff8 sw -8(r29),r31; push ret addr 2709 000030d0 2fbd0018 subui r29,r29,#24; alloc local storage 2710 000030d4 afa20000 sw 0(r29),r2 2711 000030d8 afa30004 sw 4(r29),r3 2712 000030dc afa40008 sw 8(r29),r4 2713 000030e0 afa5000c sw 12(r29),r5 2714 000030e4 8fc20000 lw r2,(r30) 2715 000030e8 7041003f sleui r1,r2,#63 2716 000030ec 102000b4 beqz r1,L206_LF3 2717 000030f0 54000000 nop; not filled. 2718 000030f4 50410003 slli r1,r2,#0x3 2719 000030f8 00220822 sub r1,r1,r2 2720 000030fc 50210002 slli r1,r1,#0x2 2721 00003100 3c050000 lhi r5,((_locks_LF3)>>16)&0xffff 2722 00003104 24a5e778 addui r5,r5,(_locks_LF3)&0xffff 2723 00003108 00251820 add r3,r1,r5 2724 0000310c 8c610018 lw r1,24(r3) 2725 00003110 64210000 snei r1,r1,#0 2726 00003114 1020008c beqz r1,L206_LF3 2727 00003118 54000000 nop; not filled. 2728 0000311c 23bdfff8 addi r29,r29,#-8 2729 00003120 2005000f addi r5,r0,#15 2730 00003124 afa50000 sw (r29),r5 2731 00003128 0fffe15c jal _SetIntrs 2732 0000312c 54000000 nop; not filled. 2733 00003130 00012020 add r4,r0,r1 2734 00003134 23bd0008 addi r29,r29,#8 2735 00003138 23bdfff8 addi r29,r29,#-8 2736 0000313c 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 2737 00003140 24214100 addui r1,r1,(_currentPCB)&0xffff 2738 00003144 8c210000 lw r1,(r1) 2739 00003148 afa10000 sw (r29),r1 2740 0000314c 0c007064 jal _findpid 2741 00003150 54000000 nop; not filled. 2742 00003154 8c620014 lw r2,20(r3) 2743 00003158 23bd0008 addi r29,r29,#8 2744 0000315c 00410828 seq r1,r2,r1 2745 00003160 10200020 beqz r1,L210_LF3 2746 00003164 54000000 nop; not filled. 2747 00003168 2005ffff addi r5,r0,#-1 2748 0000316c ac650014 sw 20(r3),r5 2749 00003170 23bdfff8 addi r29,r29,#-8 2750 00003174 afa30000 sw (r29),r3 2751 00003178 0ffff830 jal _SemSignal 2752 0000317c 54000000 nop; not filled. 2753 00003180 23bd0008 addi r29,r29,#8 2754 00003184 L210_LF3: 2755 00003184 23bdfff8 addi r29,r29,#-8 2756 00003188 afa40000 sw (r29),r4 2757 0000318c 0fffe0f8 jal _SetIntrs 2758 00003190 54000000 nop; not filled. 2759 00003194 23bd0008 addi r29,r29,#8 2760 00003198 20010000 addi r1,r0,#0 2761 0000319c 08000008 j L213_LF3 2762 000031a0 54000000 nop; not filled. 2763 000031a4 L206_LF3: 2764 000031a4 20010001 addi r1,r0,#1 2765 000031a8 L213_LF3: 2766 000031a8 8fa20000 lw r2,0(r29) 2767 000031ac 8fa30004 lw r3,4(r29) 2768 000031b0 8fa40008 lw r4,8(r29) 2769 000031b4 8fa5000c lw r5,12(r29) 2770 000031b8 8fdffff8 lw r31,-8(r30) 2771 000031bc 001ee820 add r29,r0,r30 2772 000031c0 8fdefffc lw r30,-4(r30) 2773 000031c4 4be00000 jr r31 2774 000031c8 54000000 nop 2775 000031cc .endproc _LockHandleRelease 2776 000031cc .align 2 2777 000031cc .proc _CondInit 2778 000031cc .global _CondInit 2779 000031cc _CondInit: 2780 ; Function 'CondInit'; 0 bytes of locals, 4 regs to save. 2781 000031cc afbefffc sw -4(r29),r30; push fp 2782 000031d0 001df020 add r30,r0,r29; fp = sp 2783 000031d4 afbffff8 sw -8(r29),r31; push ret addr 2784 000031d8 2fbd0018 subui r29,r29,#24; alloc local storage 2785 000031dc afa20000 sw 0(r29),r2 2786 000031e0 afa30004 sw 4(r29),r3 2787 000031e4 afa40008 sw 8(r29),r4 2788 000031e8 afa5000c sw 12(r29),r5 2789 000031ec 8fc20000 lw r2,(r30) 2790 000031f0 8fc30004 lw r3,4(r30) 2791 000031f4 23bdfff8 addi r29,r29,#-8 2792 000031f8 2005000f addi r5,r0,#15 2793 000031fc afa50000 sw (r29),r5 2794 00003200 0fffe084 jal _SetIntrs 2795 00003204 54000000 nop; not filled. 2796 00003208 00012020 add r4,r0,r1 2797 0000320c 23bd0008 addi r29,r29,#8 2798 00003210 20410004 addi r1,r2,#4 2799 00003214 23bdfff8 addi r29,r29,#-8 2800 00003218 afa10000 sw (r29),r1 2801 0000321c 0c0076dc jal _QueueInit 2802 00003220 54000000 nop; not filled. 2803 00003224 20050000 addi r5,r0,#0 2804 00003228 ac450010 sw 16(r2),r5 2805 0000322c 23bd0008 addi r29,r29,#8 2806 00003230 ac430000 sw (r2),r3 2807 00003234 ac450018 sw 24(r2),r5 2808 00003238 20050001 addi r5,r0,#1 2809 0000323c ac45001c sw 28(r2),r5 2810 00003240 23bdfff8 addi r29,r29,#-8 2811 00003244 afa40000 sw (r29),r4 2812 00003248 0fffe03c jal _SetIntrs 2813 0000324c 54000000 nop; not filled. 2814 00003250 23bd0008 addi r29,r29,#8 2815 00003254 8fa20000 lw r2,0(r29) 2816 00003258 8fa30004 lw r3,4(r29) 2817 0000325c 8fa40008 lw r4,8(r29) 2818 00003260 8fa5000c lw r5,12(r29) 2819 00003264 8fdffff8 lw r31,-8(r30) 2820 00003268 001ee820 add r29,r0,r30 2821 0000326c 8fdefffc lw r30,-4(r30) 2822 00003270 4be00000 jr r31 2823 00003274 54000000 nop 2824 00003278 .endproc _CondInit 2825 00003278 .align 2 2826 00003278 .proc _CondCreate 2827 00003278 .global _CondCreate 2828 00003278 _CondCreate: 2829 ; Function 'CondCreate'; 0 bytes of locals, 5 regs to save. 2830 00003278 afbefffc sw -4(r29),r30; push fp 2831 0000327c 001df020 add r30,r0,r29; fp = sp 2832 00003280 afbffff8 sw -8(r29),r31; push ret addr 2833 00003284 2fbd0020 subui r29,r29,#32; alloc local storage 2834 00003288 afa20000 sw 0(r29),r2 2835 0000328c afa30004 sw 4(r29),r3 2836 00003290 afa40008 sw 8(r29),r4 2837 00003294 afa5000c sw 12(r29),r5 2838 00003298 afa60010 sw 16(r29),r6 2839 0000329c 8fc30000 lw r3,(r30) 2840 000032a0 6c610040 sgtui r1,r3,#64 2841 000032a4 14200144 bnez r1,L233_LF3 2842 000032a8 54000000 nop; not filled. 2843 000032ac 50610003 slli r1,r3,#0x3 2844 000032b0 00230822 sub r1,r1,r3 2845 000032b4 50210002 slli r1,r1,#0x2 2846 000032b8 3c060000 lhi r6,((_locks_LF3)>>16)&0xffff 2847 000032bc 24c6e778 addui r6,r6,(_locks_LF3)&0xffff 2848 000032c0 00260820 add r1,r1,r6 2849 000032c4 8c210018 lw r1,24(r1) 2850 000032c8 64210001 snei r1,r1,#1 2851 000032cc 1020001c beqz r1,L224_LF3 2852 000032d0 54000000 nop; not filled. 2853 000032d4 08000114 j L233_LF3 2854 000032d8 54000000 nop; not filled. 2855 000032dc L239_LF3: 2856 000032dc 20060001 addi r6,r0,#1 2857 000032e0 ac46001c sw 28(r2),r6 2858 000032e4 08000050 j L227_LF3 2859 000032e8 54000000 nop; not filled. 2860 000032ec L224_LF3: 2861 000032ec 23bdfff8 addi r29,r29,#-8 2862 000032f0 2006000f addi r6,r0,#15 2863 000032f4 afa60000 sw (r29),r6 2864 000032f8 0fffdf8c jal _SetIntrs 2865 000032fc 54000000 nop; not filled. 2866 00003300 00012020 add r4,r0,r1 2867 00003304 23bd0008 addi r29,r29,#8 2868 00003308 20050000 addi r5,r0,#0 2869 0000330c 3c020000 lhi r2,((_conds_LF3)>>16)&0xffff 2870 00003310 2442ee78 addui r2,r2,(_conds_LF3)&0xffff 2871 00003314 L229_LF3: 2872 00003314 8c41001c lw r1,28(r2) 2873 00003318 64210000 snei r1,r1,#0 2874 0000331c 1020ffbc beqz r1,L239_LF3 2875 00003320 54000000 nop; not filled. 2876 00003324 20420020 addi r2,r2,#32 2877 00003328 20a50001 addi r5,r5,#1 2878 0000332c 70a1001f slei r1,r5,#31 2879 00003330 1420ffe0 bnez r1,L229_LF3 2880 00003334 54000000 nop; not filled. 2881 00003338 L227_LF3: 2882 00003338 23bdfff8 addi r29,r29,#-8 2883 0000333c afa40000 sw (r29),r4 2884 00003340 0fffdf44 jal _SetIntrs 2885 00003344 54000000 nop; not filled. 2886 00003348 23bd0008 addi r29,r29,#8 2887 0000334c 60a10020 seqi r1,r5,#32 2888 00003350 14200098 bnez r1,L233_LF3 2889 00003354 54000000 nop; not filled. 2890 00003358 50a20005 slli r2,r5,#0x5 2891 0000335c 3c060000 lhi r6,((_conds_LF3)>>16)&0xffff 2892 00003360 24c6ee78 addui r6,r6,(_conds_LF3)&0xffff 2893 00003364 00461020 add r2,r2,r6 2894 00003368 50610003 slli r1,r3,#0x3 2895 0000336c 00230822 sub r1,r1,r3 2896 00003370 50210002 slli r1,r1,#0x2 2897 00003374 3c060000 lhi r6,((_locks_LF3)>>16)&0xffff 2898 00003378 24c6e778 addui r6,r6,(_locks_LF3)&0xffff 2899 0000337c 00261820 add r3,r1,r6 2900 00003380 23bdfff8 addi r29,r29,#-8 2901 00003384 2006000f addi r6,r0,#15 2902 00003388 afa60000 sw (r29),r6 2903 0000338c 0fffdef8 jal _SetIntrs 2904 00003390 54000000 nop; not filled. 2905 00003394 00012020 add r4,r0,r1 2906 00003398 23bd0008 addi r29,r29,#8 2907 0000339c 20410004 addi r1,r2,#4 2908 000033a0 23bdfff8 addi r29,r29,#-8 2909 000033a4 afa10000 sw (r29),r1 2910 000033a8 0c007550 jal _QueueInit 2911 000033ac 54000000 nop; not filled. 2912 000033b0 20060000 addi r6,r0,#0 2913 000033b4 ac460010 sw 16(r2),r6 2914 000033b8 23bd0008 addi r29,r29,#8 2915 000033bc ac430000 sw (r2),r3 2916 000033c0 ac460018 sw 24(r2),r6 2917 000033c4 20060001 addi r6,r0,#1 2918 000033c8 ac46001c sw 28(r2),r6 2919 000033cc 23bdfff8 addi r29,r29,#-8 2920 000033d0 afa40000 sw (r29),r4 2921 000033d4 0fffdeb0 jal _SetIntrs 2922 000033d8 54000000 nop; not filled. 2923 000033dc 23bd0008 addi r29,r29,#8 2924 000033e0 00050820 add r1,r0,r5 2925 000033e4 08000008 j L238_LF3 2926 000033e8 54000000 nop; not filled. 2927 000033ec L233_LF3: 2928 000033ec 2001ffff addi r1,r0,#-1 2929 000033f0 L238_LF3: 2930 000033f0 8fa20000 lw r2,0(r29) 2931 000033f4 8fa30004 lw r3,4(r29) 2932 000033f8 8fa40008 lw r4,8(r29) 2933 000033fc 8fa5000c lw r5,12(r29) 2934 00003400 8fa60010 lw r6,16(r29) 2935 00003404 8fdffff8 lw r31,-8(r30) 2936 00003408 001ee820 add r29,r0,r30 2937 0000340c 8fdefffc lw r30,-4(r30) 2938 00003410 4be00000 jr r31 2939 00003414 54000000 nop 2940 00003418 .endproc _CondCreate 2941 00003418 .align 2 2942 00003418 .proc _CondWait 2943 00003418 .global _CondWait 2944 00003418 _CondWait: 2945 ; Function 'CondWait'; 0 bytes of locals, 7 regs to save. 2946 00003418 afbefffc sw -4(r29),r30; push fp 2947 0000341c 001df020 add r30,r0,r29; fp = sp 2948 00003420 afbffff8 sw -8(r29),r31; push ret addr 2949 00003424 2fbd0028 subui r29,r29,#40; alloc local storage 2950 00003428 afa20000 sw 0(r29),r2 2951 0000342c afa30004 sw 4(r29),r3 2952 00003430 afa40008 sw 8(r29),r4 2953 00003434 afa5000c sw 12(r29),r5 2954 00003438 afa60010 sw 16(r29),r6 2955 0000343c afa70014 sw 20(r29),r7 2956 00003440 afa80018 sw 24(r29),r8 2957 00003444 8fc40000 lw r4,(r30) 2958 00003448 23bdfff8 addi r29,r29,#-8 2959 0000344c 2008000f addi r8,r0,#15 2960 00003450 afa80000 sw (r29),r8 2961 00003454 0fffde30 jal _SetIntrs 2962 00003458 54000000 nop; not filled. 2963 0000345c 00013820 add r7,r0,r1 2964 00003460 23bd0008 addi r29,r29,#8 2965 00003464 8c810018 lw r1,24(r4) 2966 00003468 20210001 addi r1,r1,#1 2967 0000346c ac810018 sw 24(r4),r1 2968 00003470 8c830000 lw r3,(r4) 2969 00003474 23bdfff8 addi r29,r29,#-8 2970 00003478 afa80000 sw (r29),r8 2971 0000347c 0fffde08 jal _SetIntrs 2972 00003480 54000000 nop; not filled. 2973 00003484 00012820 add r5,r0,r1 2974 00003488 23bd0008 addi r29,r29,#8 2975 0000348c 23bdfff8 addi r29,r29,#-8 2976 00003490 3c060001 lhi r6,((_currentPCB)>>16)&0xffff 2977 00003494 24c64100 addui r6,r6,(_currentPCB)&0xffff 2978 00003498 8cc80000 lw r8,(r6) 2979 0000349c afa80000 sw (r29),r8 2980 000034a0 0c006d10 jal _findpid 2981 000034a4 54000000 nop; not filled. 2982 000034a8 8c620014 lw r2,20(r3) 2983 000034ac 23bd0008 addi r29,r29,#8 2984 000034b0 00410828 seq r1,r2,r1 2985 000034b4 10200020 beqz r1,L244_LF3 2986 000034b8 54000000 nop; not filled. 2987 000034bc 2008ffff addi r8,r0,#-1 2988 000034c0 ac680014 sw 20(r3),r8 2989 000034c4 23bdfff8 addi r29,r29,#-8 2990 000034c8 afa30000 sw (r29),r3 2991 000034cc 0ffff4dc jal _SemSignal 2992 000034d0 54000000 nop; not filled. 2993 000034d4 23bd0008 addi r29,r29,#8 2994 000034d8 L244_LF3: 2995 000034d8 23bdfff8 addi r29,r29,#-8 2996 000034dc afa50000 sw (r29),r5 2997 000034e0 0fffdda4 jal _SetIntrs 2998 000034e4 54000000 nop; not filled. 2999 000034e8 23bd0008 addi r29,r29,#8 3000 000034ec 23bdfff8 addi r29,r29,#-8 3001 000034f0 20810004 addi r1,r4,#4 3002 000034f4 afa10000 sw (r29),r1 3003 000034f8 0ffff1a0 jal _SemWait 3004 000034fc 54000000 nop; not filled. 3005 00003500 8c830000 lw r3,(r4) 3006 00003504 23bd0008 addi r29,r29,#8 3007 00003508 23bdfff8 addi r29,r29,#-8 3008 0000350c 2008000f addi r8,r0,#15 3009 00003510 afa80000 sw (r29),r8 3010 00003514 0fffdd70 jal _SetIntrs 3011 00003518 54000000 nop; not filled. 3012 0000351c 00012020 add r4,r0,r1 3013 00003520 23bd0008 addi r29,r29,#8 3014 00003524 23bdfff8 addi r29,r29,#-8 3015 00003528 8cc80000 lw r8,(r6) 3016 0000352c afa80000 sw (r29),r8 3017 00003530 0c006c80 jal _findpid 3018 00003534 54000000 nop; not filled. 3019 00003538 8c620014 lw r2,20(r3) 3020 0000353c 23bd0008 addi r29,r29,#8 3021 00003540 00410829 sne r1,r2,r1 3022 00003544 1020002c beqz r1,L248_LF3 3023 00003548 54000000 nop; not filled. 3024 0000354c 23bdfff8 addi r29,r29,#-8 3025 00003550 afa30000 sw (r29),r3 3026 00003554 0ffff144 jal _SemWait 3027 00003558 54000000 nop; not filled. 3028 0000355c 8cc60000 lw r6,(r6) 3029 00003560 afa60000 sw (r29),r6 3030 00003564 0c006c4c jal _findpid 3031 00003568 54000000 nop; not filled. 3032 0000356c ac610014 sw 20(r3),r1 3033 00003570 23bd0008 addi r29,r29,#8 3034 00003574 L248_LF3: 3035 00003574 23bdfff8 addi r29,r29,#-8 3036 00003578 afa40000 sw (r29),r4 3037 0000357c 0fffdd08 jal _SetIntrs 3038 00003580 54000000 nop; not filled. 3039 00003584 23bd0008 addi r29,r29,#8 3040 00003588 23bdfff8 addi r29,r29,#-8 3041 0000358c afa70000 sw (r29),r7 3042 00003590 0fffdcf4 jal _SetIntrs 3043 00003594 54000000 nop; not filled. 3044 00003598 23bd0008 addi r29,r29,#8 3045 0000359c 8fa20000 lw r2,0(r29) 3046 000035a0 8fa30004 lw r3,4(r29) 3047 000035a4 8fa40008 lw r4,8(r29) 3048 000035a8 8fa5000c lw r5,12(r29) 3049 000035ac 8fa60010 lw r6,16(r29) 3050 000035b0 8fa70014 lw r7,20(r29) 3051 000035b4 8fa80018 lw r8,24(r29) 3052 000035b8 8fdffff8 lw r31,-8(r30) 3053 000035bc 001ee820 add r29,r0,r30 3054 000035c0 8fdefffc lw r30,-4(r30) 3055 000035c4 4be00000 jr r31 3056 000035c8 54000000 nop 3057 000035cc .endproc _CondWait 3058 000035cc .align 2 3059 000035cc .proc _CondHandleWait 3060 000035cc .global _CondHandleWait 3061 000035cc _CondHandleWait: 3062 ; Function 'CondHandleWait'; 0 bytes of locals, 3 regs to save. 3063 000035cc afbefffc sw -4(r29),r30; push fp 3064 000035d0 001df020 add r30,r0,r29; fp = sp 3065 000035d4 afbffff8 sw -8(r29),r31; push ret addr 3066 000035d8 2fbd0018 subui r29,r29,#24; alloc local storage 3067 000035dc afa20000 sw 0(r29),r2 3068 000035e0 afa30004 sw 4(r29),r3 3069 000035e4 afa40008 sw 8(r29),r4 3070 000035e8 8fc20000 lw r2,(r30) 3071 000035ec 7041001f sleui r1,r2,#31 3072 000035f0 10200084 beqz r1,L256_LF3 3073 000035f4 54000000 nop; not filled. 3074 000035f8 50410005 slli r1,r2,#0x5 3075 000035fc 3c040000 lhi r4,((_conds_LF3)>>16)&0xffff 3076 00003600 2484ee78 addui r4,r4,(_conds_LF3)&0xffff 3077 00003604 00241820 add r3,r1,r4 3078 00003608 8c61001c lw r1,28(r3) 3079 0000360c 64210000 snei r1,r1,#0 3080 00003610 10200058 beqz r1,L257_LF3 3081 00003614 54000000 nop; not filled. 3082 00003618 8c620000 lw r2,(r3) 3083 0000361c 23bdfff8 addi r29,r29,#-8 3084 00003620 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 3085 00003624 24214100 addui r1,r1,(_currentPCB)&0xffff 3086 00003628 8c210000 lw r1,(r1) 3087 0000362c afa10000 sw (r29),r1 3088 00003630 0c006b80 jal _findpid 3089 00003634 54000000 nop; not filled. 3090 00003638 8c420014 lw r2,20(r2) 3091 0000363c 23bd0008 addi r29,r29,#8 3092 00003640 00410828 seq r1,r2,r1 3093 00003644 10200024 beqz r1,L257_LF3 3094 00003648 54000000 nop; not filled. 3095 0000364c 23bdfff8 addi r29,r29,#-8 3096 00003650 afa30000 sw (r29),r3 3097 00003654 0ffffdc0 jal _CondWait 3098 00003658 54000000 nop; not filled. 3099 0000365c 20010000 addi r1,r0,#0 3100 00003660 23bd0008 addi r29,r29,#8 3101 00003664 08000014 j L255_LF3 3102 00003668 54000000 nop; not filled. 3103 0000366c L257_LF3: 3104 0000366c 20010001 addi r1,r0,#1 3105 00003670 08000008 j L255_LF3 3106 00003674 54000000 nop; not filled. 3107 00003678 L256_LF3: 3108 00003678 20010001 addi r1,r0,#1 3109 0000367c L255_LF3: 3110 0000367c 8fa20000 lw r2,0(r29) 3111 00003680 8fa30004 lw r3,4(r29) 3112 00003684 8fa40008 lw r4,8(r29) 3113 00003688 8fdffff8 lw r31,-8(r30) 3114 0000368c 001ee820 add r29,r0,r30 3115 00003690 8fdefffc lw r30,-4(r30) 3116 00003694 4be00000 jr r31 3117 00003698 54000000 nop 3118 0000369c .endproc _CondHandleWait 3119 0000369c .align 2 3120 0000369c .proc _CondSignal 3121 0000369c .global _CondSignal 3122 0000369c _CondSignal: 3123 ; Function 'CondSignal'; 0 bytes of locals, 3 regs to save. 3124 0000369c afbefffc sw -4(r29),r30; push fp 3125 000036a0 001df020 add r30,r0,r29; fp = sp 3126 000036a4 afbffff8 sw -8(r29),r31; push ret addr 3127 000036a8 2fbd0018 subui r29,r29,#24; alloc local storage 3128 000036ac afa20000 sw 0(r29),r2 3129 000036b0 afa30004 sw 4(r29),r3 3130 000036b4 afa40008 sw 8(r29),r4 3131 000036b8 8fc20000 lw r2,(r30) 3132 000036bc 23bdfff8 addi r29,r29,#-8 3133 000036c0 2004000f addi r4,r0,#15 3134 000036c4 afa40000 sw (r29),r4 3135 000036c8 0fffdbbc jal _SetIntrs 3136 000036cc 54000000 nop; not filled. 3137 000036d0 00011820 add r3,r0,r1 3138 000036d4 23bd0008 addi r29,r29,#8 3139 000036d8 8c5f0018 lw r31,24(r2) 3140 000036dc 67e10000 snei r1,r31,#0 3141 000036e0 10200024 beqz r1,L266_LF3 3142 000036e4 54000000 nop; not filled. 3143 000036e8 23e1ffff addi r1,r31,#-1 3144 000036ec ac410018 sw 24(r2),r1 3145 000036f0 23bdfff8 addi r29,r29,#-8 3146 000036f4 20410004 addi r1,r2,#4 3147 000036f8 afa10000 sw (r29),r1 3148 000036fc 0ffff2ac jal _SemSignal 3149 00003700 54000000 nop; not filled. 3150 00003704 23bd0008 addi r29,r29,#8 3151 00003708 L266_LF3: 3152 00003708 23bdfff8 addi r29,r29,#-8 3153 0000370c afa30000 sw (r29),r3 3154 00003710 0fffdb74 jal _SetIntrs 3155 00003714 54000000 nop; not filled. 3156 00003718 23bd0008 addi r29,r29,#8 3157 0000371c 8fa20000 lw r2,0(r29) 3158 00003720 8fa30004 lw r3,4(r29) 3159 00003724 8fa40008 lw r4,8(r29) 3160 00003728 8fdffff8 lw r31,-8(r30) 3161 0000372c 001ee820 add r29,r0,r30 3162 00003730 8fdefffc lw r30,-4(r30) 3163 00003734 4be00000 jr r31 3164 00003738 54000000 nop 3165 0000373c .endproc _CondSignal 3166 0000373c .align 2 3167 0000373c .proc _CondHandleSignal 3168 0000373c .global _CondHandleSignal 3169 0000373c _CondHandleSignal: 3170 ; Function 'CondHandleSignal'; 0 bytes of locals, 4 regs to save. 3171 0000373c afbefffc sw -4(r29),r30; push fp 3172 00003740 001df020 add r30,r0,r29; fp = sp 3173 00003744 afbffff8 sw -8(r29),r31; push ret addr 3174 00003748 2fbd0018 subui r29,r29,#24; alloc local storage 3175 0000374c afa20000 sw 0(r29),r2 3176 00003750 afa30004 sw 4(r29),r3 3177 00003754 afa40008 sw 8(r29),r4 3178 00003758 afa5000c sw 12(r29),r5 3179 0000375c 8fc20000 lw r2,(r30) 3180 00003760 7041001f sleui r1,r2,#31 3181 00003764 102000c4 beqz r1,L277_LF3 3182 00003768 54000000 nop; not filled. 3183 0000376c 50410005 slli r1,r2,#0x5 3184 00003770 3c050000 lhi r5,((_conds_LF3)>>16)&0xffff 3185 00003774 24a5ee78 addui r5,r5,(_conds_LF3)&0xffff 3186 00003778 00251820 add r3,r1,r5 3187 0000377c 8c61001c lw r1,28(r3) 3188 00003780 64210000 snei r1,r1,#0 3189 00003784 102000a4 beqz r1,L277_LF3 3190 00003788 54000000 nop; not filled. 3191 0000378c 8c620000 lw r2,(r3) 3192 00003790 23bdfff8 addi r29,r29,#-8 3193 00003794 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 3194 00003798 24214100 addui r1,r1,(_currentPCB)&0xffff 3195 0000379c 8c210000 lw r1,(r1) 3196 000037a0 afa10000 sw (r29),r1 3197 000037a4 0c006a0c jal _findpid 3198 000037a8 54000000 nop; not filled. 3199 000037ac 8c420014 lw r2,20(r2) 3200 000037b0 23bd0008 addi r29,r29,#8 3201 000037b4 00410828 seq r1,r2,r1 3202 000037b8 10200070 beqz r1,L277_LF3 3203 000037bc 54000000 nop; not filled. 3204 000037c0 23bdfff8 addi r29,r29,#-8 3205 000037c4 2005000f addi r5,r0,#15 3206 000037c8 afa50000 sw (r29),r5 3207 000037cc 0fffdab8 jal _SetIntrs 3208 000037d0 54000000 nop; not filled. 3209 000037d4 00012020 add r4,r0,r1 3210 000037d8 23bd0008 addi r29,r29,#8 3211 000037dc 8c620018 lw r2,24(r3) 3212 000037e0 64410000 snei r1,r2,#0 3213 000037e4 10200024 beqz r1,L282_LF3 3214 000037e8 54000000 nop; not filled. 3215 000037ec 2041ffff addi r1,r2,#-1 3216 000037f0 ac610018 sw 24(r3),r1 3217 000037f4 23bdfff8 addi r29,r29,#-8 3218 000037f8 20610004 addi r1,r3,#4 3219 000037fc afa10000 sw (r29),r1 3220 00003800 0ffff1a8 jal _SemSignal 3221 00003804 54000000 nop; not filled. 3222 00003808 23bd0008 addi r29,r29,#8 3223 0000380c L282_LF3: 3224 0000380c 23bdfff8 addi r29,r29,#-8 3225 00003810 afa40000 sw (r29),r4 3226 00003814 0fffda70 jal _SetIntrs 3227 00003818 54000000 nop; not filled. 3228 0000381c 23bd0008 addi r29,r29,#8 3229 00003820 20010000 addi r1,r0,#0 3230 00003824 08000008 j L284_LF3 3231 00003828 54000000 nop; not filled. 3232 0000382c L277_LF3: 3233 0000382c 20010001 addi r1,r0,#1 3234 00003830 L284_LF3: 3235 00003830 8fa20000 lw r2,0(r29) 3236 00003834 8fa30004 lw r3,4(r29) 3237 00003838 8fa40008 lw r4,8(r29) 3238 0000383c 8fa5000c lw r5,12(r29) 3239 00003840 8fdffff8 lw r31,-8(r30) 3240 00003844 001ee820 add r29,r0,r30 3241 00003848 8fdefffc lw r30,-4(r30) 3242 0000384c 4be00000 jr r31 3243 00003850 54000000 nop 3244 00003854 .endproc _CondHandleSignal 3245 00003854 .align 2 3246 00003854 .proc _CondBroadcast 3247 00003854 .global _CondBroadcast 3248 00003854 _CondBroadcast: 3249 ; Function 'CondBroadcast'; 0 bytes of locals, 5 regs to save. 3250 00003854 afbefffc sw -4(r29),r30; push fp 3251 00003858 001df020 add r30,r0,r29; fp = sp 3252 0000385c afbffff8 sw -8(r29),r31; push ret addr 3253 00003860 2fbd0020 subui r29,r29,#32; alloc local storage 3254 00003864 afa20000 sw 0(r29),r2 3255 00003868 afa30004 sw 4(r29),r3 3256 0000386c afa40008 sw 8(r29),r4 3257 00003870 afa5000c sw 12(r29),r5 3258 00003874 afa60010 sw 16(r29),r6 3259 00003878 8fc40000 lw r4,(r30) 3260 0000387c 23bdfff8 addi r29,r29,#-8 3261 00003880 2006000f addi r6,r0,#15 3262 00003884 afa60000 sw (r29),r6 3263 00003888 0fffd9fc jal _SetIntrs 3264 0000388c 54000000 nop; not filled. 3265 00003890 00012820 add r5,r0,r1 3266 00003894 23bd0008 addi r29,r29,#8 3267 00003898 20020000 addi r2,r0,#0 3268 0000389c 8c810018 lw r1,24(r4) 3269 000038a0 0041082a sltu r1,r2,r1 3270 000038a4 10200030 beqz r1,L296_LF3 3271 000038a8 54000000 nop; not filled. 3272 000038ac 20830004 addi r3,r4,#4 3273 000038b0 L298_LF3: 3274 000038b0 23bdfff8 addi r29,r29,#-8 3275 000038b4 afa30000 sw (r29),r3 3276 000038b8 0ffff0f0 jal _SemSignal 3277 000038bc 54000000 nop; not filled. 3278 000038c0 23bd0008 addi r29,r29,#8 3279 000038c4 20420001 addi r2,r2,#1 3280 000038c8 8c810018 lw r1,24(r4) 3281 000038cc 0041082a sltu r1,r2,r1 3282 000038d0 1420ffdc bnez r1,L298_LF3 3283 000038d4 54000000 nop; not filled. 3284 000038d8 L296_LF3: 3285 000038d8 20060000 addi r6,r0,#0 3286 000038dc ac860018 sw 24(r4),r6 3287 000038e0 23bdfff8 addi r29,r29,#-8 3288 000038e4 afa50000 sw (r29),r5 3289 000038e8 0fffd99c jal _SetIntrs 3290 000038ec 54000000 nop; not filled. 3291 000038f0 23bd0008 addi r29,r29,#8 3292 000038f4 8fa20000 lw r2,0(r29) 3293 000038f8 8fa30004 lw r3,4(r29) 3294 000038fc 8fa40008 lw r4,8(r29) 3295 00003900 8fa5000c lw r5,12(r29) 3296 00003904 8fa60010 lw r6,16(r29) 3297 00003908 8fdffff8 lw r31,-8(r30) 3298 0000390c 001ee820 add r29,r0,r30 3299 00003910 8fdefffc lw r30,-4(r30) 3300 00003914 4be00000 jr r31 3301 00003918 54000000 nop 3302 0000391c .endproc _CondBroadcast 3303 0000391c .align 2 3304 0000391c .proc _CondHandleBroadcast 3305 0000391c .global _CondHandleBroadcast 3306 0000391c _CondHandleBroadcast: 3307 ; Function 'CondHandleBroadcast'; 0 bytes of locals, 5 regs to save. 3308 0000391c afbefffc sw -4(r29),r30; push fp 3309 00003920 001df020 add r30,r0,r29; fp = sp 3310 00003924 afbffff8 sw -8(r29),r31; push ret addr 3311 00003928 2fbd0020 subui r29,r29,#32; alloc local storage 3312 0000392c afa20000 sw 0(r29),r2 3313 00003930 afa30004 sw 4(r29),r3 3314 00003934 afa40008 sw 8(r29),r4 3315 00003938 afa5000c sw 12(r29),r5 3316 0000393c afa60010 sw 16(r29),r6 3317 00003940 8fc20000 lw r2,(r30) 3318 00003944 7041001f sleui r1,r2,#31 3319 00003948 102000dc beqz r1,L302_LF3 3320 0000394c 54000000 nop; not filled. 3321 00003950 50410005 slli r1,r2,#0x5 3322 00003954 3c060000 lhi r6,((_conds_LF3)>>16)&0xffff 3323 00003958 24c6ee78 addui r6,r6,(_conds_LF3)&0xffff 3324 0000395c 00261820 add r3,r1,r6 3325 00003960 8c61001c lw r1,28(r3) 3326 00003964 64210000 snei r1,r1,#0 3327 00003968 102000bc beqz r1,L302_LF3 3328 0000396c 54000000 nop; not filled. 3329 00003970 8c620000 lw r2,(r3) 3330 00003974 23bdfff8 addi r29,r29,#-8 3331 00003978 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 3332 0000397c 24214100 addui r1,r1,(_currentPCB)&0xffff 3333 00003980 8c210000 lw r1,(r1) 3334 00003984 afa10000 sw (r29),r1 3335 00003988 0c006828 jal _findpid 3336 0000398c 54000000 nop; not filled. 3337 00003990 8c420014 lw r2,20(r2) 3338 00003994 23bd0008 addi r29,r29,#8 3339 00003998 00410829 sne r1,r2,r1 3340 0000399c 10200088 beqz r1,L302_LF3 3341 000039a0 54000000 nop; not filled. 3342 000039a4 23bdfff8 addi r29,r29,#-8 3343 000039a8 2006000f addi r6,r0,#15 3344 000039ac afa60000 sw (r29),r6 3345 000039b0 0fffd8d4 jal _SetIntrs 3346 000039b4 54000000 nop; not filled. 3347 000039b8 00012820 add r5,r0,r1 3348 000039bc 23bd0008 addi r29,r29,#8 3349 000039c0 20020000 addi r2,r0,#0 3350 000039c4 8c610018 lw r1,24(r3) 3351 000039c8 0041082a sltu r1,r2,r1 3352 000039cc 10200030 beqz r1,L308_LF3 3353 000039d0 54000000 nop; not filled. 3354 000039d4 20640004 addi r4,r3,#4 3355 000039d8 L310_LF3: 3356 000039d8 23bdfff8 addi r29,r29,#-8 3357 000039dc afa40000 sw (r29),r4 3358 000039e0 0fffefc8 jal _SemSignal 3359 000039e4 54000000 nop; not filled. 3360 000039e8 23bd0008 addi r29,r29,#8 3361 000039ec 20420001 addi r2,r2,#1 3362 000039f0 8c610018 lw r1,24(r3) 3363 000039f4 0041082a sltu r1,r2,r1 3364 000039f8 1420ffdc bnez r1,L310_LF3 3365 000039fc 54000000 nop; not filled. 3366 00003a00 L308_LF3: 3367 00003a00 20060000 addi r6,r0,#0 3368 00003a04 ac660018 sw 24(r3),r6 3369 00003a08 23bdfff8 addi r29,r29,#-8 3370 00003a0c afa50000 sw (r29),r5 3371 00003a10 0fffd874 jal _SetIntrs 3372 00003a14 54000000 nop; not filled. 3373 00003a18 23bd0008 addi r29,r29,#8 3374 00003a1c 20010000 addi r1,r0,#0 3375 00003a20 08000008 j L313_LF3 3376 00003a24 54000000 nop; not filled. 3377 00003a28 L302_LF3: 3378 00003a28 20010001 addi r1,r0,#1 3379 00003a2c L313_LF3: 3380 00003a2c 8fa20000 lw r2,0(r29) 3381 00003a30 8fa30004 lw r3,4(r29) 3382 00003a34 8fa40008 lw r4,8(r29) 3383 00003a38 8fa5000c lw r5,12(r29) 3384 00003a3c 8fa60010 lw r6,16(r29) 3385 00003a40 8fdffff8 lw r31,-8(r30) 3386 00003a44 001ee820 add r29,r0,r30 3387 00003a48 8fdefffc lw r30,-4(r30) 3388 00003a4c 4be00000 jr r31 3389 00003a50 54000000 nop 3390 00003a54 .endproc _CondHandleBroadcast 3391 00003a54 .data 3392 0000e275 .align 2 3393 0000e278 _sems_LF3: 3394 0000e278 .space 1280 3395 0000e778 .align 2 3396 0000e778 _locks_LF3: 3397 0000e778 .space 1792 3398 0000ee78 .align 2 3399 0000ee78 _conds_LF3: 3400 0000ee78 .space 1024 3401 ; Compiled by GCC 3403 0000f278 .align 2 3404 0000f278 _rcsid_LF4: 3405 0000f278 3a206669 .ascii "$Id: filesys.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" 3405 0000f27c 6c657379 3405 0000f280 732e632c 3405 0000f284 7620312e 3405 0000f288 31203230 3405 0000f28c 30302f30 3405 0000f290 392f3230 3405 0000f294 2030313a 3405 0000f298 35303a31 3405 0000f29c 3920656c 3405 0000f2a0 6d204578 3405 0000f2a4 7020656c 3405 0000f2a8 6d203030 3405 0000f2ac 30 3406 0000f2ad .text 3407 00003a54 .align 2 3408 00003a54 .proc _isspace 3409 00003a54 .global _isspace 3410 00003a54 _isspace: 3411 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 3412 00003a54 afbefffc sw -4(r29),r30; push fp 3413 00003a58 001df020 add r30,r0,r29; fp = sp 3414 00003a5c afbffff8 sw -8(r29),r31; push ret addr 3415 00003a60 2fbd0010 subui r29,r29,#16; alloc local storage 3416 00003a64 afa20000 sw 0(r29),r2 3417 00003a68 83c20003 lb r2,3(r30) 3418 00003a6c 201f0000 addi r31,r0,#0 3419 00003a70 304100ff andi r1,r2,#0x00ff 3420 00003a74 60210020 seqi r1,r1,#32 3421 00003a78 14200018 bnez r1,L6_LF4 3422 00003a7c 54000000 nop; not filled. 3423 00003a80 2041fff7 addi r1,r2,#-9 3424 00003a84 302100ff andi r1,r1,#0x00ff 3425 00003a88 70210001 sleui r1,r1,#1 3426 00003a8c 10200008 beqz r1,L5_LF4 3427 00003a90 54000000 nop; not filled. 3428 00003a94 L6_LF4: 3429 00003a94 201f0001 addi r31,r0,#1 3430 00003a98 L5_LF4: 3431 00003a98 001f0820 add r1,r0,r31 3432 00003a9c 8fa20000 lw r2,0(r29) 3433 00003aa0 8fdffff8 lw r31,-8(r30) 3434 00003aa4 001ee820 add r29,r0,r30 3435 00003aa8 8fdefffc lw r30,-4(r30) 3436 00003aac 4be00000 jr r31 3437 00003ab0 54000000 nop 3438 00003ab4 .endproc _isspace 3439 00003ab4 .align 2 3440 00003ab4 .proc _isxdigit 3441 00003ab4 .global _isxdigit 3442 00003ab4 _isxdigit: 3443 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 3444 00003ab4 afbefffc sw -4(r29),r30; push fp 3445 00003ab8 001df020 add r30,r0,r29; fp = sp 3446 00003abc afbffff8 sw -8(r29),r31; push ret addr 3447 00003ac0 2fbd0010 subui r29,r29,#16; alloc local storage 3448 00003ac4 afa20000 sw 0(r29),r2 3449 00003ac8 83df0003 lb r31,3(r30) 3450 00003acc 20020000 addi r2,r0,#0 3451 00003ad0 23e1ffd0 addi r1,r31,#-48 3452 00003ad4 302100ff andi r1,r1,#0x00ff 3453 00003ad8 70210009 sleui r1,r1,#9 3454 00003adc 14200028 bnez r1,L12_LF4 3455 00003ae0 54000000 nop; not filled. 3456 00003ae4 23e1ff9f addi r1,r31,#-97 3457 00003ae8 302100ff andi r1,r1,#0x00ff 3458 00003aec 70210005 sleui r1,r1,#5 3459 00003af0 14200014 bnez r1,L12_LF4 3460 00003af4 54000000 nop; not filled. 3461 00003af8 33e100ff andi r1,r31,#0x00ff 3462 00003afc 64210041 snei r1,r1,#65 3463 00003b00 14200008 bnez r1,L11_LF4 3464 00003b04 54000000 nop; not filled. 3465 00003b08 L12_LF4: 3466 00003b08 20020001 addi r2,r0,#1 3467 00003b0c L11_LF4: 3468 00003b0c 00020820 add r1,r0,r2 3469 00003b10 8fa20000 lw r2,0(r29) 3470 00003b14 8fdffff8 lw r31,-8(r30) 3471 00003b18 001ee820 add r29,r0,r30 3472 00003b1c 8fdefffc lw r30,-4(r30) 3473 00003b20 4be00000 jr r31 3474 00003b24 54000000 nop 3475 00003b28 .endproc _isxdigit 3476 00003b28 .align 2 3477 00003b28 .proc _DisableIntrs 3478 00003b28 .global _DisableIntrs 3479 00003b28 _DisableIntrs: 3480 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 3481 00003b28 afbefffc sw -4(r29),r30; push fp 3482 00003b2c 001df020 add r30,r0,r29; fp = sp 3483 00003b30 afbffff8 sw -8(r29),r31; push ret addr 3484 00003b34 2fbd0010 subui r29,r29,#16; alloc local storage 3485 00003b38 afa20000 sw 0(r29),r2 3486 00003b3c 23bdfff8 addi r29,r29,#-8 3487 00003b40 2002000f addi r2,r0,#15 3488 00003b44 afa20000 sw (r29),r2 3489 00003b48 0fffd73c jal _SetIntrs 3490 00003b4c 54000000 nop; not filled. 3491 00003b50 23bd0008 addi r29,r29,#8 3492 00003b54 8fa20000 lw r2,0(r29) 3493 00003b58 8fdffff8 lw r31,-8(r30) 3494 00003b5c 001ee820 add r29,r0,r30 3495 00003b60 8fdefffc lw r30,-4(r30) 3496 00003b64 4be00000 jr r31 3497 00003b68 54000000 nop 3498 00003b6c .endproc _DisableIntrs 3499 00003b6c .align 2 3500 00003b6c .proc _EnableIntrs 3501 00003b6c .global _EnableIntrs 3502 00003b6c _EnableIntrs: 3503 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 3504 00003b6c afbefffc sw -4(r29),r30; push fp 3505 00003b70 001df020 add r30,r0,r29; fp = sp 3506 00003b74 afbffff8 sw -8(r29),r31; push ret addr 3507 00003b78 2fbd0010 subui r29,r29,#16; alloc local storage 3508 00003b7c afa20000 sw 0(r29),r2 3509 00003b80 23bdfff8 addi r29,r29,#-8 3510 00003b84 20020000 addi r2,r0,#0 3511 00003b88 afa20000 sw (r29),r2 3512 00003b8c 0fffd6f8 jal _SetIntrs 3513 00003b90 54000000 nop; not filled. 3514 00003b94 23bd0008 addi r29,r29,#8 3515 00003b98 8fa20000 lw r2,0(r29) 3516 00003b9c 8fdffff8 lw r31,-8(r30) 3517 00003ba0 001ee820 add r29,r0,r30 3518 00003ba4 8fdefffc lw r30,-4(r30) 3519 00003ba8 4be00000 jr r31 3520 00003bac 54000000 nop 3521 00003bb0 .endproc _EnableIntrs 3522 00003bb0 .align 2 3523 00003bb0 .proc _RestoreIntrs 3524 00003bb0 .global _RestoreIntrs 3525 00003bb0 _RestoreIntrs: 3526 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 3527 00003bb0 afbefffc sw -4(r29),r30; push fp 3528 00003bb4 001df020 add r30,r0,r29; fp = sp 3529 00003bb8 afbffff8 sw -8(r29),r31; push ret addr 3530 00003bbc 2fbd0010 subui r29,r29,#16; alloc local storage 3531 00003bc0 afa20000 sw 0(r29),r2 3532 00003bc4 23bdfff8 addi r29,r29,#-8 3533 00003bc8 8fc20000 lw r2,(r30) 3534 00003bcc afa20000 sw (r29),r2 3535 00003bd0 0fffd6b4 jal _SetIntrs 3536 00003bd4 54000000 nop; not filled. 3537 00003bd8 23bd0008 addi r29,r29,#8 3538 00003bdc 8fa20000 lw r2,0(r29) 3539 00003be0 8fdffff8 lw r31,-8(r30) 3540 00003be4 001ee820 add r29,r0,r30 3541 00003be8 8fdefffc lw r30,-4(r30) 3542 00003bec 4be00000 jr r31 3543 00003bf0 54000000 nop 3544 00003bf4 .endproc _RestoreIntrs 3545 00003bf4 .align 2 3546 00003bf4 .proc _QueueLinkInit 3547 00003bf4 .global _QueueLinkInit 3548 00003bf4 _QueueLinkInit: 3549 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 3550 00003bf4 afbefffc sw -4(r29),r30; push fp 3551 00003bf8 001df020 add r30,r0,r29; fp = sp 3552 00003bfc afbffff8 sw -8(r29),r31; push ret addr 3553 00003c00 2fbd0010 subui r29,r29,#16; alloc local storage 3554 00003c04 afa20000 sw 0(r29),r2 3555 00003c08 8fc10000 lw r1,(r30) 3556 00003c0c 8fc20004 lw r2,4(r30) 3557 00003c10 201f0000 addi r31,r0,#0 3558 00003c14 ac3f0000 sw (r1),r31 3559 00003c18 ac22000c sw 12(r1),r2 3560 00003c1c 8fa20000 lw r2,0(r29) 3561 00003c20 8fdffff8 lw r31,-8(r30) 3562 00003c24 001ee820 add r29,r0,r30 3563 00003c28 8fdefffc lw r30,-4(r30) 3564 00003c2c 4be00000 jr r31 3565 00003c30 54000000 nop 3566 00003c34 .endproc _QueueLinkInit 3567 00003c34 .align 2 3568 00003c34 .proc _QueueNext 3569 00003c34 .global _QueueNext 3570 00003c34 _QueueNext: 3571 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 3572 00003c34 afbefffc sw -4(r29),r30; push fp 3573 00003c38 001df020 add r30,r0,r29; fp = sp 3574 00003c3c afbffff8 sw -8(r29),r31; push ret addr 3575 00003c40 2fbd0008 subui r29,r29,#8; alloc local storage 3576 00003c44 8fc10000 lw r1,(r30) 3577 00003c48 8c210000 lw r1,(r1) 3578 00003c4c 8fdffff8 lw r31,-8(r30) 3579 00003c50 001ee820 add r29,r0,r30 3580 00003c54 8fdefffc lw r30,-4(r30) 3581 00003c58 4be00000 jr r31 3582 00003c5c 54000000 nop 3583 00003c60 .endproc _QueueNext 3584 00003c60 .align 2 3585 00003c60 .proc _QueuePrev 3586 00003c60 .global _QueuePrev 3587 00003c60 _QueuePrev: 3588 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 3589 00003c60 afbefffc sw -4(r29),r30; push fp 3590 00003c64 001df020 add r30,r0,r29; fp = sp 3591 00003c68 afbffff8 sw -8(r29),r31; push ret addr 3592 00003c6c 2fbd0008 subui r29,r29,#8; alloc local storage 3593 00003c70 8fc10000 lw r1,(r30) 3594 00003c74 8c210004 lw r1,4(r1) 3595 00003c78 8fdffff8 lw r31,-8(r30) 3596 00003c7c 001ee820 add r29,r0,r30 3597 00003c80 8fdefffc lw r30,-4(r30) 3598 00003c84 4be00000 jr r31 3599 00003c88 54000000 nop 3600 00003c8c .endproc _QueuePrev 3601 00003c8c .align 2 3602 00003c8c .proc _QueueFirst 3603 00003c8c .global _QueueFirst 3604 00003c8c _QueueFirst: 3605 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 3606 00003c8c afbefffc sw -4(r29),r30; push fp 3607 00003c90 001df020 add r30,r0,r29; fp = sp 3608 00003c94 afbffff8 sw -8(r29),r31; push ret addr 3609 00003c98 2fbd0008 subui r29,r29,#8; alloc local storage 3610 00003c9c 8fc10000 lw r1,(r30) 3611 00003ca0 8c210000 lw r1,(r1) 3612 00003ca4 8fdffff8 lw r31,-8(r30) 3613 00003ca8 001ee820 add r29,r0,r30 3614 00003cac 8fdefffc lw r30,-4(r30) 3615 00003cb0 4be00000 jr r31 3616 00003cb4 54000000 nop 3617 00003cb8 .endproc _QueueFirst 3618 00003cb8 .align 2 3619 00003cb8 .proc _QueueLast 3620 00003cb8 .global _QueueLast 3621 00003cb8 _QueueLast: 3622 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 3623 00003cb8 afbefffc sw -4(r29),r30; push fp 3624 00003cbc 001df020 add r30,r0,r29; fp = sp 3625 00003cc0 afbffff8 sw -8(r29),r31; push ret addr 3626 00003cc4 2fbd0008 subui r29,r29,#8; alloc local storage 3627 00003cc8 8fc10000 lw r1,(r30) 3628 00003ccc 8c210004 lw r1,4(r1) 3629 00003cd0 8fdffff8 lw r31,-8(r30) 3630 00003cd4 001ee820 add r29,r0,r30 3631 00003cd8 8fdefffc lw r30,-4(r30) 3632 00003cdc 4be00000 jr r31 3633 00003ce0 54000000 nop 3634 00003ce4 .endproc _QueueLast 3635 00003ce4 .align 2 3636 00003ce4 .proc _QueueInsertAfter 3637 00003ce4 .global _QueueInsertAfter 3638 00003ce4 _QueueInsertAfter: 3639 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 3640 00003ce4 afbefffc sw -4(r29),r30; push fp 3641 00003ce8 001df020 add r30,r0,r29; fp = sp 3642 00003cec afbffff8 sw -8(r29),r31; push ret addr 3643 00003cf0 2fbd0010 subui r29,r29,#16; alloc local storage 3644 00003cf4 afa20000 sw 0(r29),r2 3645 00003cf8 afa30004 sw 4(r29),r3 3646 00003cfc 8fc30000 lw r3,(r30) 3647 00003d00 8fc20004 lw r2,4(r30) 3648 00003d04 8fc10008 lw r1,8(r30) 3649 00003d08 ac230008 sw 8(r1),r3 3650 00003d0c ac220004 sw 4(r1),r2 3651 00003d10 8c5f0000 lw r31,(r2) 3652 00003d14 ac3f0000 sw (r1),r31 3653 00003d18 ac410000 sw (r2),r1 3654 00003d1c 8c220000 lw r2,(r1) 3655 00003d20 ac410004 sw 4(r2),r1 3656 00003d24 8c610008 lw r1,8(r3) 3657 00003d28 20210001 addi r1,r1,#1 3658 00003d2c ac610008 sw 8(r3),r1 3659 00003d30 8fa20000 lw r2,0(r29) 3660 00003d34 8fa30004 lw r3,4(r29) 3661 00003d38 8fdffff8 lw r31,-8(r30) 3662 00003d3c 001ee820 add r29,r0,r30 3663 00003d40 8fdefffc lw r30,-4(r30) 3664 00003d44 4be00000 jr r31 3665 00003d48 54000000 nop 3666 00003d4c .endproc _QueueInsertAfter 3667 00003d4c .align 2 3668 00003d4c .proc _QueueInsertFirst 3669 00003d4c .global _QueueInsertFirst 3670 00003d4c _QueueInsertFirst: 3671 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 3672 00003d4c afbefffc sw -4(r29),r30; push fp 3673 00003d50 001df020 add r30,r0,r29; fp = sp 3674 00003d54 afbffff8 sw -8(r29),r31; push ret addr 3675 00003d58 2fbd0010 subui r29,r29,#16; alloc local storage 3676 00003d5c afa20000 sw 0(r29),r2 3677 00003d60 afa30004 sw 4(r29),r3 3678 00003d64 8fc30000 lw r3,(r30) 3679 00003d68 8fc10004 lw r1,4(r30) 3680 00003d6c ac230008 sw 8(r1),r3 3681 00003d70 ac230004 sw 4(r1),r3 3682 00003d74 8c7f0000 lw r31,(r3) 3683 00003d78 ac3f0000 sw (r1),r31 3684 00003d7c ac610000 sw (r3),r1 3685 00003d80 8c220000 lw r2,(r1) 3686 00003d84 ac410004 sw 4(r2),r1 3687 00003d88 8c610008 lw r1,8(r3) 3688 00003d8c 20210001 addi r1,r1,#1 3689 00003d90 ac610008 sw 8(r3),r1 3690 00003d94 8fa20000 lw r2,0(r29) 3691 00003d98 8fa30004 lw r3,4(r29) 3692 00003d9c 8fdffff8 lw r31,-8(r30) 3693 00003da0 001ee820 add r29,r0,r30 3694 00003da4 8fdefffc lw r30,-4(r30) 3695 00003da8 4be00000 jr r31 3696 00003dac 54000000 nop 3697 00003db0 .endproc _QueueInsertFirst 3698 00003db0 .align 2 3699 00003db0 .proc _QueueInsertLast 3700 00003db0 .global _QueueInsertLast 3701 00003db0 _QueueInsertLast: 3702 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 3703 00003db0 afbefffc sw -4(r29),r30; push fp 3704 00003db4 001df020 add r30,r0,r29; fp = sp 3705 00003db8 afbffff8 sw -8(r29),r31; push ret addr 3706 00003dbc 2fbd0010 subui r29,r29,#16; alloc local storage 3707 00003dc0 afa20000 sw 0(r29),r2 3708 00003dc4 afa30004 sw 4(r29),r3 3709 00003dc8 8fc30000 lw r3,(r30) 3710 00003dcc 8fc10004 lw r1,4(r30) 3711 00003dd0 8c620004 lw r2,4(r3) 3712 00003dd4 ac230008 sw 8(r1),r3 3713 00003dd8 ac220004 sw 4(r1),r2 3714 00003ddc 8c5f0000 lw r31,(r2) 3715 00003de0 ac3f0000 sw (r1),r31 3716 00003de4 ac410000 sw (r2),r1 3717 00003de8 8c220000 lw r2,(r1) 3718 00003dec ac410004 sw 4(r2),r1 3719 00003df0 8c610008 lw r1,8(r3) 3720 00003df4 20210001 addi r1,r1,#1 3721 00003df8 ac610008 sw 8(r3),r1 3722 00003dfc 8fa20000 lw r2,0(r29) 3723 00003e00 8fa30004 lw r3,4(r29) 3724 00003e04 8fdffff8 lw r31,-8(r30) 3725 00003e08 001ee820 add r29,r0,r30 3726 00003e0c 8fdefffc lw r30,-4(r30) 3727 00003e10 4be00000 jr r31 3728 00003e14 54000000 nop 3729 00003e18 .endproc _QueueInsertLast 3730 00003e18 .align 2 3731 00003e18 .proc _QueueRemove 3732 00003e18 .global _QueueRemove 3733 00003e18 _QueueRemove: 3734 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 3735 00003e18 afbefffc sw -4(r29),r30; push fp 3736 00003e1c 001df020 add r30,r0,r29; fp = sp 3737 00003e20 afbffff8 sw -8(r29),r31; push ret addr 3738 00003e24 2fbd0010 subui r29,r29,#16; alloc local storage 3739 00003e28 afa20000 sw 0(r29),r2 3740 00003e2c afa30004 sw 4(r29),r3 3741 00003e30 8fdf0000 lw r31,(r30) 3742 00003e34 8fe10008 lw r1,8(r31) 3743 00003e38 8c210008 lw r1,8(r1) 3744 00003e3c 6c210000 sgti r1,r1,#0 3745 00003e40 1020002c beqz r1,L44_LF4 3746 00003e44 54000000 nop; not filled. 3747 00003e48 8fe10004 lw r1,4(r31) 3748 00003e4c 8fe30000 lw r3,(r31) 3749 00003e50 ac230000 sw (r1),r3 3750 00003e54 8fe10000 lw r1,(r31) 3751 00003e58 8fe30004 lw r3,4(r31) 3752 00003e5c ac230004 sw 4(r1),r3 3753 00003e60 8fe20008 lw r2,8(r31) 3754 00003e64 8c410008 lw r1,8(r2) 3755 00003e68 2021ffff addi r1,r1,#-1 3756 00003e6c ac410008 sw 8(r2),r1 3757 00003e70 L44_LF4: 3758 00003e70 20030000 addi r3,r0,#0 3759 00003e74 afe30000 sw (r31),r3 3760 00003e78 8fa20000 lw r2,0(r29) 3761 00003e7c 8fa30004 lw r3,4(r29) 3762 00003e80 8fdffff8 lw r31,-8(r30) 3763 00003e84 001ee820 add r29,r0,r30 3764 00003e88 8fdefffc lw r30,-4(r30) 3765 00003e8c 4be00000 jr r31 3766 00003e90 54000000 nop 3767 00003e94 .endproc _QueueRemove 3768 00003e94 .align 2 3769 00003e94 .proc _QueueLength 3770 00003e94 .global _QueueLength 3771 00003e94 _QueueLength: 3772 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 3773 00003e94 afbefffc sw -4(r29),r30; push fp 3774 00003e98 001df020 add r30,r0,r29; fp = sp 3775 00003e9c afbffff8 sw -8(r29),r31; push ret addr 3776 00003ea0 2fbd0008 subui r29,r29,#8; alloc local storage 3777 00003ea4 8fc10000 lw r1,(r30) 3778 00003ea8 8c210008 lw r1,8(r1) 3779 00003eac 8fdffff8 lw r31,-8(r30) 3780 00003eb0 001ee820 add r29,r0,r30 3781 00003eb4 8fdefffc lw r30,-4(r30) 3782 00003eb8 4be00000 jr r31 3783 00003ebc 54000000 nop 3784 00003ec0 .endproc _QueueLength 3785 00003ec0 .align 2 3786 00003ec0 .proc _QueueEmpty 3787 00003ec0 .global _QueueEmpty 3788 00003ec0 _QueueEmpty: 3789 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 3790 00003ec0 afbefffc sw -4(r29),r30; push fp 3791 00003ec4 001df020 add r30,r0,r29; fp = sp 3792 00003ec8 afbffff8 sw -8(r29),r31; push ret addr 3793 00003ecc 2fbd0008 subui r29,r29,#8; alloc local storage 3794 00003ed0 8fc10000 lw r1,(r30) 3795 00003ed4 8c210008 lw r1,8(r1) 3796 00003ed8 60210000 seqi r1,r1,#0 3797 00003edc 8fdffff8 lw r31,-8(r30) 3798 00003ee0 001ee820 add r29,r0,r30 3799 00003ee4 8fdefffc lw r30,-4(r30) 3800 00003ee8 4be00000 jr r31 3801 00003eec 54000000 nop 3802 00003ef0 .endproc _QueueEmpty 3803 00003ef0 .data 3804 0000f2ad .align 2 3805 0000f2b0 LC0_LF4: 3806 0000f2b0 41747465 .ascii "Attepmting to open %s mode=%d.\n\000" 3806 0000f2b4 706d7469 3806 0000f2b8 6e672074 3806 0000f2bc 6f206f70 3806 0000f2c0 656e2025 3806 0000f2c4 73206d6f 3806 0000f2c8 64653d25 3806 0000f2cc 642e0a00 3807 0000f2d0 .align 2 3808 0000f2d0 LC1_LF4: 3809 0000f2d0 646c783a .ascii "dlx:\000" 3809 0000f2d4 00 3810 0000f2d5 .align 2 3811 0000f2d8 LC2_LF4: 3812 0000f2d8 46696c65 .ascii "File %s opening in file system %d.\n\000" 3812 0000f2dc 20257320 3812 0000f2e0 6f70656e 3812 0000f2e4 696e6720 3812 0000f2e8 696e2066 3812 0000f2ec 696c6520 3812 0000f2f0 73797374 3812 0000f2f4 656d2025 3812 0000f2f8 642e0a00 3813 0000f2fc .align 2 3814 0000f2fc LC3_LF4: 3815 0000f2fc 4f70656e .ascii "Opened %s in FS %d, mode=%d slot=%d.\n\000" 3815 0000f300 65642025 3815 0000f304 7320696e 3815 0000f308 20465320 3815 0000f30c 25642c20 3815 0000f310 6d6f6465 3815 0000f314 3d256420 3815 0000f318 736c6f74 3815 0000f31c 3d25642e 3815 0000f320 0a00 3816 0000f322 .text 3817 00003ef0 .align 2 3818 00003ef0 .proc _FsOpen 3819 00003ef0 .global _FsOpen 3820 00003ef0 _FsOpen: 3821 ; Function 'FsOpen'; 0 bytes of locals, 7 regs to save. 3822 00003ef0 afbefffc sw -4(r29),r30; push fp 3823 00003ef4 001df020 add r30,r0,r29; fp = sp 3824 00003ef8 afbffff8 sw -8(r29),r31; push ret addr 3825 00003efc 2fbd0028 subui r29,r29,#40; alloc local storage 3826 00003f00 afa20000 sw 0(r29),r2 3827 00003f04 afa30004 sw 4(r29),r3 3828 00003f08 afa40008 sw 8(r29),r4 3829 00003f0c afa5000c sw 12(r29),r5 3830 00003f10 afa60010 sw 16(r29),r6 3831 00003f14 afa70014 sw 20(r29),r7 3832 00003f18 afa80018 sw 24(r29),r8 3833 00003f1c 8fc40000 lw r4,(r30) 3834 00003f20 8fc50004 lw r5,4(r30) 3835 00003f24 23bdfff8 addi r29,r29,#-8 3836 00003f28 3c020001 lhi r2,((_debugstr)>>16)&0xffff 3837 00003f2c 24424038 addui r2,r2,(_debugstr)&0xffff 3838 00003f30 afa20000 sw (r29),r2 3839 00003f34 20080066 addi r8,r0,#102 3840 00003f38 afa80004 sw 4(r29),r8 3841 00003f3c 0c00264c jal _dindex 3842 00003f40 54000000 nop; not filled. 3843 00003f44 23bd0008 addi r29,r29,#8 3844 00003f48 64210000 snei r1,r1,#0 3845 00003f4c 1420002c bnez r1,L56_LF4 3846 00003f50 54000000 nop; not filled. 3847 00003f54 23bdfff8 addi r29,r29,#-8 3848 00003f58 afa20000 sw (r29),r2 3849 00003f5c 2008002b addi r8,r0,#43 3850 00003f60 afa80004 sw 4(r29),r8 3851 00003f64 0c002624 jal _dindex 3852 00003f68 54000000 nop; not filled. 3853 00003f6c 23bd0008 addi r29,r29,#8 3854 00003f70 64210000 snei r1,r1,#0 3855 00003f74 10200028 beqz r1,L55_LF4 3856 00003f78 54000000 nop; not filled. 3857 00003f7c L56_LF4: 3858 00003f7c 23bdfff0 addi r29,r29,#-16 3859 00003f80 3c080000 lhi r8,((LC0_LF4)>>16)&0xffff 3860 00003f84 2508f2b0 addui r8,r8,(LC0_LF4)&0xffff 3861 00003f88 afa80000 sw (r29),r8 3862 00003f8c afa40004 sw 4(r29),r4 3863 00003f90 afa50008 sw 8(r29),r5 3864 00003f94 0c00928c jal _printf 3865 00003f98 54000000 nop; not filled. 3866 00003f9c 23bd0010 addi r29,r29,#16 3867 00003fa0 L55_LF4: 3868 00003fa0 30a50003 andi r5,r5,#3 3869 00003fa4 64a10000 snei r1,r5,#0 3870 00003fa8 10200044 beqz r1,L74_LF4 3871 00003fac 54000000 nop; not filled. 3872 00003fb0 20030000 addi r3,r0,#0 3873 00003fb4 3c060000 lhi r6,((_openfiles_LF4)>>16)&0xffff 3874 00003fb8 24c6f388 addui r6,r6,(_openfiles_LF4)&0xffff 3875 00003fbc 00061020 add r2,r0,r6 3876 00003fc0 L61_LF4: 3877 00003fc0 8c410004 lw r1,4(r2) 3878 00003fc4 64210000 snei r1,r1,#0 3879 00003fc8 10200018 beqz r1,L59_LF4 3880 00003fcc 54000000 nop; not filled. 3881 00003fd0 2042010c addi r2,r2,#268 3882 00003fd4 20630001 addi r3,r3,#1 3883 00003fd8 7061001f slei r1,r3,#31 3884 00003fdc 1420ffe0 bnez r1,L61_LF4 3885 00003fe0 54000000 nop; not filled. 3886 00003fe4 L59_LF4: 3887 00003fe4 6c61001f sgti r1,r3,#31 3888 00003fe8 10200010 beqz r1,L64_LF4 3889 00003fec 54000000 nop; not filled. 3890 00003ff0 L74_LF4: 3891 00003ff0 2001ffff addi r1,r0,#-1 3892 00003ff4 08000224 j L73_LF4 3893 00003ff8 54000000 nop; not filled. 3894 00003ffc L64_LF4: 3895 00003ffc 50610004 slli r1,r3,#0x4 3896 00004000 00230820 add r1,r1,r3 3897 00004004 50210002 slli r1,r1,#0x2 3898 00004008 00230822 sub r1,r1,r3 3899 0000400c 50210002 slli r1,r1,#0x2 3900 00004010 00261020 add r2,r1,r6 3901 00004014 ac450004 sw 4(r2),r5 3902 00004018 23bdfff0 addi r29,r29,#-16 3903 0000401c afa40000 sw (r29),r4 3904 00004020 3c010000 lhi r1,((LC1_LF4)>>16)&0xffff 3905 00004024 2421f2d0 addui r1,r1,(LC1_LF4)&0xffff 3906 00004028 afa10004 sw 4(r29),r1 3907 0000402c 20080004 addi r8,r0,#4 3908 00004030 afa80008 sw 8(r29),r8 3909 00004034 0c002210 jal _dstrncmp 3910 00004038 54000000 nop; not filled. 3911 0000403c 23bd0010 addi r29,r29,#16 3912 00004040 64210000 snei r1,r1,#0 3913 00004044 14200014 bnez r1,L65_LF4 3914 00004048 54000000 nop; not filled. 3915 0000404c 20840004 addi r4,r4,#4 3916 00004050 20080001 addi r8,r0,#1 3917 00004054 08000008 j L75_LF4 3918 00004058 54000000 nop; not filled. 3919 0000405c L65_LF4: 3920 0000405c 20080000 addi r8,r0,#0 3921 00004060 L75_LF4: 3922 00004060 ac480000 sw (r2),r8 3923 00004064 23bdfff8 addi r29,r29,#-8 3924 00004068 3c020001 lhi r2,((_debugstr)>>16)&0xffff 3925 0000406c 24424038 addui r2,r2,(_debugstr)&0xffff 3926 00004070 afa20000 sw (r29),r2 3927 00004074 20080066 addi r8,r0,#102 3928 00004078 afa80004 sw 4(r29),r8 3929 0000407c 0c00250c jal _dindex 3930 00004080 54000000 nop; not filled. 3931 00004084 23bd0008 addi r29,r29,#8 3932 00004088 64210000 snei r1,r1,#0 3933 0000408c 1420002c bnez r1,L68_LF4 3934 00004090 54000000 nop; not filled. 3935 00004094 23bdfff8 addi r29,r29,#-8 3936 00004098 afa20000 sw (r29),r2 3937 0000409c 2008002b addi r8,r0,#43 3938 000040a0 afa80004 sw 4(r29),r8 3939 000040a4 0c0024e4 jal _dindex 3940 000040a8 54000000 nop; not filled. 3941 000040ac 23bd0008 addi r29,r29,#8 3942 000040b0 64210000 snei r1,r1,#0 3943 000040b4 1020004c beqz r1,L67_LF4 3944 000040b8 54000000 nop; not filled. 3945 000040bc L68_LF4: 3946 000040bc 23bdfff0 addi r29,r29,#-16 3947 000040c0 3c080000 lhi r8,((LC2_LF4)>>16)&0xffff 3948 000040c4 2508f2d8 addui r8,r8,(LC2_LF4)&0xffff 3949 000040c8 afa80000 sw (r29),r8 3950 000040cc afa40004 sw 4(r29),r4 3951 000040d0 50610004 slli r1,r3,#0x4 3952 000040d4 00230820 add r1,r1,r3 3953 000040d8 50210002 slli r1,r1,#0x2 3954 000040dc 00230822 sub r1,r1,r3 3955 000040e0 50210002 slli r1,r1,#0x2 3956 000040e4 3c080000 lhi r8,((_openfiles_LF4)>>16)&0xffff 3957 000040e8 2508f388 addui r8,r8,(_openfiles_LF4)&0xffff 3958 000040ec 00280820 add r1,r1,r8 3959 000040f0 8c210000 lw r1,(r1) 3960 000040f4 afa10008 sw 8(r29),r1 3961 000040f8 0c009128 jal _printf 3962 000040fc 54000000 nop; not filled. 3963 00004100 23bd0010 addi r29,r29,#16 3964 00004104 L67_LF4: 3965 00004104 23bdfff0 addi r29,r29,#-16 3966 00004108 50610004 slli r1,r3,#0x4 3967 0000410c 00230820 add r1,r1,r3 3968 00004110 50210002 slli r1,r1,#0x2 3969 00004114 00230822 sub r1,r1,r3 3970 00004118 50260002 slli r6,r1,#0x2 3971 0000411c 3c080000 lhi r8,((_openfiles_LF4)>>16)&0xffff 3972 00004120 2508f388 addui r8,r8,(_openfiles_LF4)&0xffff 3973 00004124 00c83820 add r7,r6,r8 3974 00004128 8ce20000 lw r2,(r7) 3975 0000412c 50410001 slli r1,r2,#0x1 3976 00004130 00220820 add r1,r1,r2 3977 00004134 50210003 slli r1,r1,#0x3 3978 00004138 3c080000 lhi r8,((_fs_LF4)>>16)&0xffff 3979 0000413c 2508f358 addui r8,r8,(_fs_LF4)&0xffff 3980 00004140 00280820 add r1,r1,r8 3981 00004144 afa30000 sw (r29),r3 3982 00004148 afa40004 sw 4(r29),r4 3983 0000414c afa50008 sw 8(r29),r5 3984 00004150 8c210000 lw r1,(r1) 3985 00004154 4c200000 jalr r1 3986 00004158 54000000 nop; not filled. 3987 0000415c 00011020 add r2,r0,r1 3988 00004160 23bd0010 addi r29,r29,#16 3989 00004164 68410000 slti r1,r2,#0 3990 00004168 10200024 beqz r1,L69_LF4 3991 0000416c 54000000 nop; not filled. 3992 00004170 3c080000 lhi r8,((_openfiles_LF4)>>16)&0xffff 3993 00004174 2508f388 addui r8,r8,(_openfiles_LF4)&0xffff 3994 00004178 00c80820 add r1,r6,r8 3995 0000417c 20080000 addi r8,r0,#0 3996 00004180 ac280004 sw 4(r1),r8 3997 00004184 00020820 add r1,r0,r2 3998 00004188 08000090 j L73_LF4 3999 0000418c 54000000 nop; not filled. 4000 00004190 L69_LF4: 4001 00004190 23bdfff8 addi r29,r29,#-8 4002 00004194 3c020001 lhi r2,((_debugstr)>>16)&0xffff 4003 00004198 24424038 addui r2,r2,(_debugstr)&0xffff 4004 0000419c afa20000 sw (r29),r2 4005 000041a0 20080066 addi r8,r0,#102 4006 000041a4 afa80004 sw 4(r29),r8 4007 000041a8 0c0023e0 jal _dindex 4008 000041ac 54000000 nop; not filled. 4009 000041b0 23bd0008 addi r29,r29,#8 4010 000041b4 64210000 snei r1,r1,#0 4011 000041b8 1420002c bnez r1,L72_LF4 4012 000041bc 54000000 nop; not filled. 4013 000041c0 23bdfff8 addi r29,r29,#-8 4014 000041c4 afa20000 sw (r29),r2 4015 000041c8 2008002b addi r8,r0,#43 4016 000041cc afa80004 sw 4(r29),r8 4017 000041d0 0c0023b8 jal _dindex 4018 000041d4 54000000 nop; not filled. 4019 000041d8 23bd0008 addi r29,r29,#8 4020 000041dc 64210000 snei r1,r1,#0 4021 000041e0 10200034 beqz r1,L71_LF4 4022 000041e4 54000000 nop; not filled. 4023 000041e8 L72_LF4: 4024 000041e8 23bdffe8 addi r29,r29,#-24 4025 000041ec 3c080000 lhi r8,((LC3_LF4)>>16)&0xffff 4026 000041f0 2508f2fc addui r8,r8,(LC3_LF4)&0xffff 4027 000041f4 afa80000 sw (r29),r8 4028 000041f8 afa40004 sw 4(r29),r4 4029 000041fc 8ce70000 lw r7,(r7) 4030 00004200 afa70008 sw 8(r29),r7 4031 00004204 afa5000c sw 12(r29),r5 4032 00004208 afa30010 sw 16(r29),r3 4033 0000420c 0c009014 jal _printf 4034 00004210 54000000 nop; not filled. 4035 00004214 23bd0018 addi r29,r29,#24 4036 00004218 L71_LF4: 4037 00004218 00030820 add r1,r0,r3 4038 0000421c L73_LF4: 4039 0000421c 8fa20000 lw r2,0(r29) 4040 00004220 8fa30004 lw r3,4(r29) 4041 00004224 8fa40008 lw r4,8(r29) 4042 00004228 8fa5000c lw r5,12(r29) 4043 0000422c 8fa60010 lw r6,16(r29) 4044 00004230 8fa70014 lw r7,20(r29) 4045 00004234 8fa80018 lw r8,24(r29) 4046 00004238 8fdffff8 lw r31,-8(r30) 4047 0000423c 001ee820 add r29,r0,r30 4048 00004240 8fdefffc lw r30,-4(r30) 4049 00004244 4be00000 jr r31 4050 00004248 54000000 nop 4051 0000424c .endproc _FsOpen 4052 0000424c .align 2 4053 0000424c .proc _FsClose 4054 0000424c .global _FsClose 4055 0000424c _FsClose: 4056 ; Function 'FsClose'; 0 bytes of locals, 3 regs to save. 4057 0000424c afbefffc sw -4(r29),r30; push fp 4058 00004250 001df020 add r30,r0,r29; fp = sp 4059 00004254 afbffff8 sw -8(r29),r31; push ret addr 4060 00004258 2fbd0018 subui r29,r29,#24; alloc local storage 4061 0000425c afa20000 sw 0(r29),r2 4062 00004260 afa30004 sw 4(r29),r3 4063 00004264 afa40008 sw 8(r29),r4 4064 00004268 8fdf0000 lw r31,(r30) 4065 0000426c 20020000 addi r2,r0,#0 4066 00004270 23e1ffff addi r1,r31,#-1 4067 00004274 7021001e sleui r1,r1,#30 4068 00004278 10200038 beqz r1,L84_LF4 4069 0000427c 54000000 nop; not filled. 4070 00004280 53e10004 slli r1,r31,#0x4 4071 00004284 003f0820 add r1,r1,r31 4072 00004288 50210002 slli r1,r1,#0x2 4073 0000428c 003f0822 sub r1,r1,r31 4074 00004290 50210002 slli r1,r1,#0x2 4075 00004294 3c040000 lhi r4,((_openfiles_LF4)>>16)&0xffff 4076 00004298 2484f388 addui r4,r4,(_openfiles_LF4)&0xffff 4077 0000429c 00240820 add r1,r1,r4 4078 000042a0 8c210004 lw r1,4(r1) 4079 000042a4 64210000 snei r1,r1,#0 4080 000042a8 10200008 beqz r1,L84_LF4 4081 000042ac 54000000 nop; not filled. 4082 000042b0 20020001 addi r2,r0,#1 4083 000042b4 L84_LF4: 4084 000042b4 64410000 snei r1,r2,#0 4085 000042b8 10200074 beqz r1,L82_LF4 4086 000042bc 54000000 nop; not filled. 4087 000042c0 23bdfff8 addi r29,r29,#-8 4088 000042c4 53e10004 slli r1,r31,#0x4 4089 000042c8 003f0820 add r1,r1,r31 4090 000042cc 50210002 slli r1,r1,#0x2 4091 000042d0 003f0822 sub r1,r1,r31 4092 000042d4 50230002 slli r3,r1,#0x2 4093 000042d8 3c040000 lhi r4,((_openfiles_LF4)>>16)&0xffff 4094 000042dc 2484f388 addui r4,r4,(_openfiles_LF4)&0xffff 4095 000042e0 00640820 add r1,r3,r4 4096 000042e4 8c220000 lw r2,(r1) 4097 000042e8 50410001 slli r1,r2,#0x1 4098 000042ec 00220820 add r1,r1,r2 4099 000042f0 50210003 slli r1,r1,#0x3 4100 000042f4 3c040000 lhi r4,((_fs_LF4)>>16)&0xffff 4101 000042f8 2484f358 addui r4,r4,(_fs_LF4)&0xffff 4102 000042fc 00240820 add r1,r1,r4 4103 00004300 afbf0000 sw (r29),r31 4104 00004304 8c210010 lw r1,16(r1) 4105 00004308 4c200000 jalr r1 4106 0000430c 54000000 nop; not filled. 4107 00004310 23bd0008 addi r29,r29,#8 4108 00004314 3c040000 lhi r4,((_openfiles_LF4)>>16)&0xffff 4109 00004318 2484f388 addui r4,r4,(_openfiles_LF4)&0xffff 4110 0000431c 00641020 add r2,r3,r4 4111 00004320 20040000 addi r4,r0,#0 4112 00004324 ac440004 sw 4(r2),r4 4113 00004328 08000008 j L86_LF4 4114 0000432c 54000000 nop; not filled. 4115 00004330 L82_LF4: 4116 00004330 2001ffff addi r1,r0,#-1 4117 00004334 L86_LF4: 4118 00004334 8fa20000 lw r2,0(r29) 4119 00004338 8fa30004 lw r3,4(r29) 4120 0000433c 8fa40008 lw r4,8(r29) 4121 00004340 8fdffff8 lw r31,-8(r30) 4122 00004344 001ee820 add r29,r0,r30 4123 00004348 8fdefffc lw r30,-4(r30) 4124 0000434c 4be00000 jr r31 4125 00004350 54000000 nop 4126 00004354 .endproc _FsClose 4127 00004354 .align 2 4128 00004354 .proc _FsRead 4129 00004354 .global _FsRead 4130 00004354 _FsRead: 4131 ; Function 'FsRead'; 0 bytes of locals, 2 regs to save. 4132 00004354 afbefffc sw -4(r29),r30; push fp 4133 00004358 001df020 add r30,r0,r29; fp = sp 4134 0000435c afbffff8 sw -8(r29),r31; push ret addr 4135 00004360 2fbd0010 subui r29,r29,#16; alloc local storage 4136 00004364 afa20000 sw 0(r29),r2 4137 00004368 afa30004 sw 4(r29),r3 4138 0000436c 8fdf0000 lw r31,(r30) 4139 00004370 20020000 addi r2,r0,#0 4140 00004374 23e1ffff addi r1,r31,#-1 4141 00004378 7021001e sleui r1,r1,#30 4142 0000437c 10200038 beqz r1,L94_LF4 4143 00004380 54000000 nop; not filled. 4144 00004384 53e10004 slli r1,r31,#0x4 4145 00004388 003f0820 add r1,r1,r31 4146 0000438c 50210002 slli r1,r1,#0x2 4147 00004390 003f0822 sub r1,r1,r31 4148 00004394 50210002 slli r1,r1,#0x2 4149 00004398 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4150 0000439c 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4151 000043a0 00230820 add r1,r1,r3 4152 000043a4 8c210004 lw r1,4(r1) 4153 000043a8 64210000 snei r1,r1,#0 4154 000043ac 10200008 beqz r1,L94_LF4 4155 000043b0 54000000 nop; not filled. 4156 000043b4 20020001 addi r2,r0,#1 4157 000043b8 L94_LF4: 4158 000043b8 64410000 snei r1,r2,#0 4159 000043bc 10200070 beqz r1,L92_LF4 4160 000043c0 54000000 nop; not filled. 4161 000043c4 23bdfff0 addi r29,r29,#-16 4162 000043c8 53e10004 slli r1,r31,#0x4 4163 000043cc 003f0820 add r1,r1,r31 4164 000043d0 50210002 slli r1,r1,#0x2 4165 000043d4 003f0822 sub r1,r1,r31 4166 000043d8 50210002 slli r1,r1,#0x2 4167 000043dc 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4168 000043e0 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4169 000043e4 00230820 add r1,r1,r3 4170 000043e8 8c220000 lw r2,(r1) 4171 000043ec 50410001 slli r1,r2,#0x1 4172 000043f0 00220820 add r1,r1,r2 4173 000043f4 50210003 slli r1,r1,#0x3 4174 000043f8 3c030000 lhi r3,((_fs_LF4)>>16)&0xffff 4175 000043fc 2463f358 addui r3,r3,(_fs_LF4)&0xffff 4176 00004400 00230820 add r1,r1,r3 4177 00004404 afbf0000 sw (r29),r31 4178 00004408 8fc30004 lw r3,4(r30) 4179 0000440c afa30004 sw 4(r29),r3 4180 00004410 8fc30008 lw r3,8(r30) 4181 00004414 afa30008 sw 8(r29),r3 4182 00004418 8c210004 lw r1,4(r1) 4183 0000441c 4c200000 jalr r1 4184 00004420 54000000 nop; not filled. 4185 00004424 23bd0010 addi r29,r29,#16 4186 00004428 08000008 j L91_LF4 4187 0000442c 54000000 nop; not filled. 4188 00004430 L92_LF4: 4189 00004430 2001ffff addi r1,r0,#-1 4190 00004434 L91_LF4: 4191 00004434 8fa20000 lw r2,0(r29) 4192 00004438 8fa30004 lw r3,4(r29) 4193 0000443c 8fdffff8 lw r31,-8(r30) 4194 00004440 001ee820 add r29,r0,r30 4195 00004444 8fdefffc lw r30,-4(r30) 4196 00004448 4be00000 jr r31 4197 0000444c 54000000 nop 4198 00004450 .endproc _FsRead 4199 00004450 .align 2 4200 00004450 .proc _FsWrite 4201 00004450 .global _FsWrite 4202 00004450 _FsWrite: 4203 ; Function 'FsWrite'; 0 bytes of locals, 2 regs to save. 4204 00004450 afbefffc sw -4(r29),r30; push fp 4205 00004454 001df020 add r30,r0,r29; fp = sp 4206 00004458 afbffff8 sw -8(r29),r31; push ret addr 4207 0000445c 2fbd0010 subui r29,r29,#16; alloc local storage 4208 00004460 afa20000 sw 0(r29),r2 4209 00004464 afa30004 sw 4(r29),r3 4210 00004468 8fdf0000 lw r31,(r30) 4211 0000446c 20020000 addi r2,r0,#0 4212 00004470 23e1ffff addi r1,r31,#-1 4213 00004474 7021001e sleui r1,r1,#30 4214 00004478 10200038 beqz r1,L103_LF4 4215 0000447c 54000000 nop; not filled. 4216 00004480 53e10004 slli r1,r31,#0x4 4217 00004484 003f0820 add r1,r1,r31 4218 00004488 50210002 slli r1,r1,#0x2 4219 0000448c 003f0822 sub r1,r1,r31 4220 00004490 50210002 slli r1,r1,#0x2 4221 00004494 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4222 00004498 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4223 0000449c 00230820 add r1,r1,r3 4224 000044a0 8c210004 lw r1,4(r1) 4225 000044a4 64210000 snei r1,r1,#0 4226 000044a8 10200008 beqz r1,L103_LF4 4227 000044ac 54000000 nop; not filled. 4228 000044b0 20020001 addi r2,r0,#1 4229 000044b4 L103_LF4: 4230 000044b4 64410000 snei r1,r2,#0 4231 000044b8 10200070 beqz r1,L101_LF4 4232 000044bc 54000000 nop; not filled. 4233 000044c0 23bdfff0 addi r29,r29,#-16 4234 000044c4 53e10004 slli r1,r31,#0x4 4235 000044c8 003f0820 add r1,r1,r31 4236 000044cc 50210002 slli r1,r1,#0x2 4237 000044d0 003f0822 sub r1,r1,r31 4238 000044d4 50210002 slli r1,r1,#0x2 4239 000044d8 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4240 000044dc 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4241 000044e0 00230820 add r1,r1,r3 4242 000044e4 8c220000 lw r2,(r1) 4243 000044e8 50410001 slli r1,r2,#0x1 4244 000044ec 00220820 add r1,r1,r2 4245 000044f0 50210003 slli r1,r1,#0x3 4246 000044f4 3c030000 lhi r3,((_fs_LF4)>>16)&0xffff 4247 000044f8 2463f358 addui r3,r3,(_fs_LF4)&0xffff 4248 000044fc 00230820 add r1,r1,r3 4249 00004500 afbf0000 sw (r29),r31 4250 00004504 8fc30004 lw r3,4(r30) 4251 00004508 afa30004 sw 4(r29),r3 4252 0000450c 8fc30008 lw r3,8(r30) 4253 00004510 afa30008 sw 8(r29),r3 4254 00004514 8c210008 lw r1,8(r1) 4255 00004518 4c200000 jalr r1 4256 0000451c 54000000 nop; not filled. 4257 00004520 23bd0010 addi r29,r29,#16 4258 00004524 08000008 j L100_LF4 4259 00004528 54000000 nop; not filled. 4260 0000452c L101_LF4: 4261 0000452c 2001ffff addi r1,r0,#-1 4262 00004530 L100_LF4: 4263 00004530 8fa20000 lw r2,0(r29) 4264 00004534 8fa30004 lw r3,4(r29) 4265 00004538 8fdffff8 lw r31,-8(r30) 4266 0000453c 001ee820 add r29,r0,r30 4267 00004540 8fdefffc lw r30,-4(r30) 4268 00004544 4be00000 jr r31 4269 00004548 54000000 nop 4270 0000454c .endproc _FsWrite 4271 0000454c .align 2 4272 0000454c .proc _FsSeek 4273 0000454c .global _FsSeek 4274 0000454c _FsSeek: 4275 ; Function 'FsSeek'; 0 bytes of locals, 2 regs to save. 4276 0000454c afbefffc sw -4(r29),r30; push fp 4277 00004550 001df020 add r30,r0,r29; fp = sp 4278 00004554 afbffff8 sw -8(r29),r31; push ret addr 4279 00004558 2fbd0010 subui r29,r29,#16; alloc local storage 4280 0000455c afa20000 sw 0(r29),r2 4281 00004560 afa30004 sw 4(r29),r3 4282 00004564 8fdf0000 lw r31,(r30) 4283 00004568 20020000 addi r2,r0,#0 4284 0000456c 23e1ffff addi r1,r31,#-1 4285 00004570 7021001e sleui r1,r1,#30 4286 00004574 10200038 beqz r1,L112_LF4 4287 00004578 54000000 nop; not filled. 4288 0000457c 53e10004 slli r1,r31,#0x4 4289 00004580 003f0820 add r1,r1,r31 4290 00004584 50210002 slli r1,r1,#0x2 4291 00004588 003f0822 sub r1,r1,r31 4292 0000458c 50210002 slli r1,r1,#0x2 4293 00004590 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4294 00004594 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4295 00004598 00230820 add r1,r1,r3 4296 0000459c 8c210004 lw r1,4(r1) 4297 000045a0 64210000 snei r1,r1,#0 4298 000045a4 10200008 beqz r1,L112_LF4 4299 000045a8 54000000 nop; not filled. 4300 000045ac 20020001 addi r2,r0,#1 4301 000045b0 L112_LF4: 4302 000045b0 64410000 snei r1,r2,#0 4303 000045b4 10200070 beqz r1,L110_LF4 4304 000045b8 54000000 nop; not filled. 4305 000045bc 23bdfff0 addi r29,r29,#-16 4306 000045c0 53e10004 slli r1,r31,#0x4 4307 000045c4 003f0820 add r1,r1,r31 4308 000045c8 50210002 slli r1,r1,#0x2 4309 000045cc 003f0822 sub r1,r1,r31 4310 000045d0 50210002 slli r1,r1,#0x2 4311 000045d4 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4312 000045d8 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4313 000045dc 00230820 add r1,r1,r3 4314 000045e0 8c220000 lw r2,(r1) 4315 000045e4 50410001 slli r1,r2,#0x1 4316 000045e8 00220820 add r1,r1,r2 4317 000045ec 50210003 slli r1,r1,#0x3 4318 000045f0 3c030000 lhi r3,((_fs_LF4)>>16)&0xffff 4319 000045f4 2463f358 addui r3,r3,(_fs_LF4)&0xffff 4320 000045f8 00230820 add r1,r1,r3 4321 000045fc afbf0000 sw (r29),r31 4322 00004600 8fc30004 lw r3,4(r30) 4323 00004604 afa30004 sw 4(r29),r3 4324 00004608 8fc30008 lw r3,8(r30) 4325 0000460c afa30008 sw 8(r29),r3 4326 00004610 8c21000c lw r1,12(r1) 4327 00004614 4c200000 jalr r1 4328 00004618 54000000 nop; not filled. 4329 0000461c 23bd0010 addi r29,r29,#16 4330 00004620 08000008 j L109_LF4 4331 00004624 54000000 nop; not filled. 4332 00004628 L110_LF4: 4333 00004628 2001ffff addi r1,r0,#-1 4334 0000462c L109_LF4: 4335 0000462c 8fa20000 lw r2,0(r29) 4336 00004630 8fa30004 lw r3,4(r29) 4337 00004634 8fdffff8 lw r31,-8(r30) 4338 00004638 001ee820 add r29,r0,r30 4339 0000463c 8fdefffc lw r30,-4(r30) 4340 00004640 4be00000 jr r31 4341 00004644 54000000 nop 4342 00004648 .endproc _FsSeek 4343 00004648 .align 2 4344 00004648 .proc _FsDelete 4345 00004648 .global _FsDelete 4346 00004648 _FsDelete: 4347 ; Function 'FsDelete'; 0 bytes of locals, 2 regs to save. 4348 00004648 afbefffc sw -4(r29),r30; push fp 4349 0000464c 001df020 add r30,r0,r29; fp = sp 4350 00004650 afbffff8 sw -8(r29),r31; push ret addr 4351 00004654 2fbd0010 subui r29,r29,#16; alloc local storage 4352 00004658 afa20000 sw 0(r29),r2 4353 0000465c afa30004 sw 4(r29),r3 4354 00004660 8fc20000 lw r2,(r30) 4355 00004664 23bdfff0 addi r29,r29,#-16 4356 00004668 afa20000 sw (r29),r2 4357 0000466c 3c010000 lhi r1,((LC1_LF4)>>16)&0xffff 4358 00004670 2421f2d0 addui r1,r1,(LC1_LF4)&0xffff 4359 00004674 afa10004 sw 4(r29),r1 4360 00004678 20030004 addi r3,r0,#4 4361 0000467c afa30008 sw 8(r29),r3 4362 00004680 0c001bc4 jal _dstrncmp 4363 00004684 54000000 nop; not filled. 4364 00004688 23bd0010 addi r29,r29,#16 4365 0000468c 64210000 snei r1,r1,#0 4366 00004690 1420001c bnez r1,L118_LF4 4367 00004694 54000000 nop; not filled. 4368 00004698 20420004 addi r2,r2,#4 4369 0000469c 23bdfff8 addi r29,r29,#-8 4370 000046a0 3c010000 lhi r1,((_fs_LF4+44)>>16)&0xffff 4371 000046a4 2421f384 addui r1,r1,(_fs_LF4+44)&0xffff 4372 000046a8 08000010 j L120_LF4 4373 000046ac 54000000 nop; not filled. 4374 000046b0 L118_LF4: 4375 000046b0 23bdfff8 addi r29,r29,#-8 4376 000046b4 3c010000 lhi r1,((_fs_LF4+20)>>16)&0xffff 4377 000046b8 2421f36c addui r1,r1,(_fs_LF4+20)&0xffff 4378 000046bc L120_LF4: 4379 000046bc afa20000 sw (r29),r2 4380 000046c0 8c210000 lw r1,(r1) 4381 000046c4 4c200000 jalr r1 4382 000046c8 54000000 nop; not filled. 4383 000046cc 23bd0008 addi r29,r29,#8 4384 000046d0 8fa20000 lw r2,0(r29) 4385 000046d4 8fa30004 lw r3,4(r29) 4386 000046d8 8fdffff8 lw r31,-8(r30) 4387 000046dc 001ee820 add r29,r0,r30 4388 000046e0 8fdefffc lw r30,-4(r30) 4389 000046e4 4be00000 jr r31 4390 000046e8 54000000 nop 4391 000046ec .endproc _FsDelete 4392 000046ec .data 4393 0000f322 .align 2 4394 0000f324 LC4_LF4: 4395 0000f324 41747465 .ascii "Attempting to open file %s into desc %d, mode %d.\n\000" 4395 0000f328 6d707469 4395 0000f32c 6e672074 4395 0000f330 6f206f70 4395 0000f334 656e2066 4395 0000f338 696c6520 4395 0000f33c 25732069 4395 0000f340 6e746f20 4395 0000f344 64657363 4395 0000f348 2025642c 4395 0000f34c 206d6f64 4395 0000f350 65202564 4395 0000f354 2e0a00 4396 0000f357 .text 4397 000046ec .align 2 4398 000046ec .proc _FsUnixOpen 4399 000046ec .global _FsUnixOpen 4400 000046ec _FsUnixOpen: 4401 ; Function 'FsUnixOpen'; 0 bytes of locals, 5 regs to save. 4402 000046ec afbefffc sw -4(r29),r30; push fp 4403 000046f0 001df020 add r30,r0,r29; fp = sp 4404 000046f4 afbffff8 sw -8(r29),r31; push ret addr 4405 000046f8 2fbd0020 subui r29,r29,#32; alloc local storage 4406 000046fc afa20000 sw 0(r29),r2 4407 00004700 afa30004 sw 4(r29),r3 4408 00004704 afa40008 sw 8(r29),r4 4409 00004708 afa5000c sw 12(r29),r5 4410 0000470c afa60010 sw 16(r29),r6 4411 00004710 8fc40000 lw r4,(r30) 4412 00004714 8fc30004 lw r3,4(r30) 4413 00004718 8fc50008 lw r5,8(r30) 4414 0000471c 23bdfff8 addi r29,r29,#-8 4415 00004720 3c020001 lhi r2,((_debugstr)>>16)&0xffff 4416 00004724 24424038 addui r2,r2,(_debugstr)&0xffff 4417 00004728 afa20000 sw (r29),r2 4418 0000472c 20060066 addi r6,r0,#102 4419 00004730 afa60004 sw 4(r29),r6 4420 00004734 0c001e54 jal _dindex 4421 00004738 54000000 nop; not filled. 4422 0000473c 23bd0008 addi r29,r29,#8 4423 00004740 64210000 snei r1,r1,#0 4424 00004744 1420002c bnez r1,L127_LF4 4425 00004748 54000000 nop; not filled. 4426 0000474c 23bdfff8 addi r29,r29,#-8 4427 00004750 afa20000 sw (r29),r2 4428 00004754 2006002b addi r6,r0,#43 4429 00004758 afa60004 sw 4(r29),r6 4430 0000475c 0c001e2c jal _dindex 4431 00004760 54000000 nop; not filled. 4432 00004764 23bd0008 addi r29,r29,#8 4433 00004768 64210000 snei r1,r1,#0 4434 0000476c 1020002c beqz r1,L126_LF4 4435 00004770 54000000 nop; not filled. 4436 00004774 L127_LF4: 4437 00004774 23bdfff0 addi r29,r29,#-16 4438 00004778 3c060000 lhi r6,((LC4_LF4)>>16)&0xffff 4439 0000477c 24c6f324 addui r6,r6,(LC4_LF4)&0xffff 4440 00004780 afa60000 sw (r29),r6 4441 00004784 afa30004 sw 4(r29),r3 4442 00004788 afa40008 sw 8(r29),r4 4443 0000478c afa5000c sw 12(r29),r5 4444 00004790 0c008a90 jal _printf 4445 00004794 54000000 nop; not filled. 4446 00004798 23bd0010 addi r29,r29,#16 4447 0000479c L126_LF4: 4448 0000479c 23bdfff8 addi r29,r29,#-8 4449 000047a0 afa30000 sw (r29),r3 4450 000047a4 afa50004 sw 4(r29),r5 4451 000047a8 0c0089e8 jal _open 4452 000047ac 54000000 nop; not filled. 4453 000047b0 00011820 add r3,r0,r1 4454 000047b4 50810004 slli r1,r4,#0x4 4455 000047b8 00240820 add r1,r1,r4 4456 000047bc 50210002 slli r1,r1,#0x2 4457 000047c0 00240822 sub r1,r1,r4 4458 000047c4 50210002 slli r1,r1,#0x2 4459 000047c8 3c060000 lhi r6,((_openfiles_LF4)>>16)&0xffff 4460 000047cc 24c6f388 addui r6,r6,(_openfiles_LF4)&0xffff 4461 000047d0 00260820 add r1,r1,r6 4462 000047d4 ac230108 sw 264(r1),r3 4463 000047d8 23bd0008 addi r29,r29,#8 4464 000047dc 68620000 slti r2,r3,#0 4465 000047e0 00030820 add r1,r0,r3 4466 000047e4 14400008 bnez r2,L128_LF4 4467 000047e8 54000000 nop; not filled. 4468 000047ec 20010001 addi r1,r0,#1 4469 000047f0 L128_LF4: 4470 000047f0 8fa20000 lw r2,0(r29) 4471 000047f4 8fa30004 lw r3,4(r29) 4472 000047f8 8fa40008 lw r4,8(r29) 4473 000047fc 8fa5000c lw r5,12(r29) 4474 00004800 8fa60010 lw r6,16(r29) 4475 00004804 8fdffff8 lw r31,-8(r30) 4476 00004808 001ee820 add r29,r0,r30 4477 0000480c 8fdefffc lw r30,-4(r30) 4478 00004810 4be00000 jr r31 4479 00004814 54000000 nop 4480 00004818 .endproc _FsUnixOpen 4481 00004818 .align 2 4482 00004818 .proc _FsUnixRead 4483 00004818 .global _FsUnixRead 4484 00004818 _FsUnixRead: 4485 ; Function 'FsUnixRead'; 0 bytes of locals, 4 regs to save. 4486 00004818 afbefffc sw -4(r29),r30; push fp 4487 0000481c 001df020 add r30,r0,r29; fp = sp 4488 00004820 afbffff8 sw -8(r29),r31; push ret addr 4489 00004824 2fbd0018 subui r29,r29,#24; alloc local storage 4490 00004828 afa20000 sw 0(r29),r2 4491 0000482c afa30004 sw 4(r29),r3 4492 00004830 afa40008 sw 8(r29),r4 4493 00004834 afa5000c sw 12(r29),r5 4494 00004838 8fc20000 lw r2,(r30) 4495 0000483c 8fc30004 lw r3,4(r30) 4496 00004840 8fc40008 lw r4,8(r30) 4497 00004844 23bdfff0 addi r29,r29,#-16 4498 00004848 50410004 slli r1,r2,#0x4 4499 0000484c 00220820 add r1,r1,r2 4500 00004850 50210002 slli r1,r1,#0x2 4501 00004854 00220822 sub r1,r1,r2 4502 00004858 50210002 slli r1,r1,#0x2 4503 0000485c 3c050000 lhi r5,((_openfiles_LF4)>>16)&0xffff 4504 00004860 24a5f388 addui r5,r5,(_openfiles_LF4)&0xffff 4505 00004864 00250820 add r1,r1,r5 4506 00004868 8c210108 lw r1,264(r1) 4507 0000486c afa10000 sw (r29),r1 4508 00004870 afa30004 sw 4(r29),r3 4509 00004874 afa40008 sw 8(r29),r4 4510 00004878 0c008930 jal _read 4511 0000487c 54000000 nop; not filled. 4512 00004880 23bd0010 addi r29,r29,#16 4513 00004884 8fa20000 lw r2,0(r29) 4514 00004888 8fa30004 lw r3,4(r29) 4515 0000488c 8fa40008 lw r4,8(r29) 4516 00004890 8fa5000c lw r5,12(r29) 4517 00004894 8fdffff8 lw r31,-8(r30) 4518 00004898 001ee820 add r29,r0,r30 4519 0000489c 8fdefffc lw r30,-4(r30) 4520 000048a0 4be00000 jr r31 4521 000048a4 54000000 nop 4522 000048a8 .endproc _FsUnixRead 4523 000048a8 .align 2 4524 000048a8 .proc _FsUnixWrite 4525 000048a8 .global _FsUnixWrite 4526 000048a8 _FsUnixWrite: 4527 ; Function 'FsUnixWrite'; 0 bytes of locals, 4 regs to save. 4528 000048a8 afbefffc sw -4(r29),r30; push fp 4529 000048ac 001df020 add r30,r0,r29; fp = sp 4530 000048b0 afbffff8 sw -8(r29),r31; push ret addr 4531 000048b4 2fbd0018 subui r29,r29,#24; alloc local storage 4532 000048b8 afa20000 sw 0(r29),r2 4533 000048bc afa30004 sw 4(r29),r3 4534 000048c0 afa40008 sw 8(r29),r4 4535 000048c4 afa5000c sw 12(r29),r5 4536 000048c8 8fc20000 lw r2,(r30) 4537 000048cc 8fc30004 lw r3,4(r30) 4538 000048d0 8fc40008 lw r4,8(r30) 4539 000048d4 23bdfff0 addi r29,r29,#-16 4540 000048d8 50410004 slli r1,r2,#0x4 4541 000048dc 00220820 add r1,r1,r2 4542 000048e0 50210002 slli r1,r1,#0x2 4543 000048e4 00220822 sub r1,r1,r2 4544 000048e8 50210002 slli r1,r1,#0x2 4545 000048ec 3c050000 lhi r5,((_openfiles_LF4)>>16)&0xffff 4546 000048f0 24a5f388 addui r5,r5,(_openfiles_LF4)&0xffff 4547 000048f4 00250820 add r1,r1,r5 4548 000048f8 8c210108 lw r1,264(r1) 4549 000048fc afa10000 sw (r29),r1 4550 00004900 afa30004 sw 4(r29),r3 4551 00004904 afa40008 sw 8(r29),r4 4552 00004908 0c0088ac jal _write 4553 0000490c 54000000 nop; not filled. 4554 00004910 23bd0010 addi r29,r29,#16 4555 00004914 8fa20000 lw r2,0(r29) 4556 00004918 8fa30004 lw r3,4(r29) 4557 0000491c 8fa40008 lw r4,8(r29) 4558 00004920 8fa5000c lw r5,12(r29) 4559 00004924 8fdffff8 lw r31,-8(r30) 4560 00004928 001ee820 add r29,r0,r30 4561 0000492c 8fdefffc lw r30,-4(r30) 4562 00004930 4be00000 jr r31 4563 00004934 54000000 nop 4564 00004938 .endproc _FsUnixWrite 4565 00004938 .align 2 4566 00004938 .proc _FsUnixSeek 4567 00004938 .global _FsUnixSeek 4568 00004938 _FsUnixSeek: 4569 ; Function 'FsUnixSeek'; 0 bytes of locals, 4 regs to save. 4570 00004938 afbefffc sw -4(r29),r30; push fp 4571 0000493c 001df020 add r30,r0,r29; fp = sp 4572 00004940 afbffff8 sw -8(r29),r31; push ret addr 4573 00004944 2fbd0018 subui r29,r29,#24; alloc local storage 4574 00004948 afa20000 sw 0(r29),r2 4575 0000494c afa30004 sw 4(r29),r3 4576 00004950 afa40008 sw 8(r29),r4 4577 00004954 afa5000c sw 12(r29),r5 4578 00004958 8fc20000 lw r2,(r30) 4579 0000495c 8fc30004 lw r3,4(r30) 4580 00004960 8fc40008 lw r4,8(r30) 4581 00004964 23bdfff0 addi r29,r29,#-16 4582 00004968 50410004 slli r1,r2,#0x4 4583 0000496c 00220820 add r1,r1,r2 4584 00004970 50210002 slli r1,r1,#0x2 4585 00004974 00220822 sub r1,r1,r2 4586 00004978 50210002 slli r1,r1,#0x2 4587 0000497c 3c050000 lhi r5,((_openfiles_LF4)>>16)&0xffff 4588 00004980 24a5f388 addui r5,r5,(_openfiles_LF4)&0xffff 4589 00004984 00250820 add r1,r1,r5 4590 00004988 8c210108 lw r1,264(r1) 4591 0000498c afa10000 sw (r29),r1 4592 00004990 afa30004 sw 4(r29),r3 4593 00004994 afa40008 sw 8(r29),r4 4594 00004998 0c008828 jal _lseek 4595 0000499c 54000000 nop; not filled. 4596 000049a0 23bd0010 addi r29,r29,#16 4597 000049a4 8fa20000 lw r2,0(r29) 4598 000049a8 8fa30004 lw r3,4(r29) 4599 000049ac 8fa40008 lw r4,8(r29) 4600 000049b0 8fa5000c lw r5,12(r29) 4601 000049b4 8fdffff8 lw r31,-8(r30) 4602 000049b8 001ee820 add r29,r0,r30 4603 000049bc 8fdefffc lw r30,-4(r30) 4604 000049c0 4be00000 jr r31 4605 000049c4 54000000 nop 4606 000049c8 .endproc _FsUnixSeek 4607 000049c8 .align 2 4608 000049c8 .proc _FsUnixClose 4609 000049c8 .global _FsUnixClose 4610 000049c8 _FsUnixClose: 4611 ; Function 'FsUnixClose'; 0 bytes of locals, 2 regs to save. 4612 000049c8 afbefffc sw -4(r29),r30; push fp 4613 000049cc 001df020 add r30,r0,r29; fp = sp 4614 000049d0 afbffff8 sw -8(r29),r31; push ret addr 4615 000049d4 2fbd0010 subui r29,r29,#16; alloc local storage 4616 000049d8 afa20000 sw 0(r29),r2 4617 000049dc afa30004 sw 4(r29),r3 4618 000049e0 8fc20000 lw r2,(r30) 4619 000049e4 23bdfff8 addi r29,r29,#-8 4620 000049e8 50410004 slli r1,r2,#0x4 4621 000049ec 00220820 add r1,r1,r2 4622 000049f0 50210002 slli r1,r1,#0x2 4623 000049f4 00220822 sub r1,r1,r2 4624 000049f8 50210002 slli r1,r1,#0x2 4625 000049fc 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4626 00004a00 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4627 00004a04 00230820 add r1,r1,r3 4628 00004a08 8c210108 lw r1,264(r1) 4629 00004a0c afa10000 sw (r29),r1 4630 00004a10 0c00878c jal _close 4631 00004a14 54000000 nop; not filled. 4632 00004a18 23bd0008 addi r29,r29,#8 4633 00004a1c 8fa20000 lw r2,0(r29) 4634 00004a20 8fa30004 lw r3,4(r29) 4635 00004a24 8fdffff8 lw r31,-8(r30) 4636 00004a28 001ee820 add r29,r0,r30 4637 00004a2c 8fdefffc lw r30,-4(r30) 4638 00004a30 4be00000 jr r31 4639 00004a34 54000000 nop 4640 00004a38 .endproc _FsUnixClose 4641 00004a38 .align 2 4642 00004a38 .proc _FsUnixDelete 4643 00004a38 .global _FsUnixDelete 4644 00004a38 _FsUnixDelete: 4645 ; Function 'FsUnixDelete'; 0 bytes of locals, 0 regs to save. 4646 00004a38 afbefffc sw -4(r29),r30; push fp 4647 00004a3c 001df020 add r30,r0,r29; fp = sp 4648 00004a40 afbffff8 sw -8(r29),r31; push ret addr 4649 00004a44 2fbd0008 subui r29,r29,#8; alloc local storage 4650 00004a48 2001ffff addi r1,r0,#-1 4651 00004a4c 8fdffff8 lw r31,-8(r30) 4652 00004a50 001ee820 add r29,r0,r30 4653 00004a54 8fdefffc lw r30,-4(r30) 4654 00004a58 4be00000 jr r31 4655 00004a5c 54000000 nop 4656 00004a60 .endproc _FsUnixDelete 4657 00004a60 .align 2 4658 00004a60 .proc _FsDlxIo 4659 00004a60 .global _FsDlxIo 4660 00004a60 _FsDlxIo: 4661 ; Function 'FsDlxIo'; 0 bytes of locals, 0 regs to save. 4662 00004a60 afbefffc sw -4(r29),r30; push fp 4663 00004a64 001df020 add r30,r0,r29; fp = sp 4664 00004a68 afbffff8 sw -8(r29),r31; push ret addr 4665 00004a6c 2fbd0008 subui r29,r29,#8; alloc local storage 4666 00004a70 20010001 addi r1,r0,#1 4667 00004a74 8fdffff8 lw r31,-8(r30) 4668 00004a78 001ee820 add r29,r0,r30 4669 00004a7c 8fdefffc lw r30,-4(r30) 4670 00004a80 4be00000 jr r31 4671 00004a84 54000000 nop 4672 00004a88 .endproc _FsDlxIo 4673 00004a88 .align 2 4674 00004a88 .proc _FsDlxRead 4675 00004a88 .global _FsDlxRead 4676 00004a88 _FsDlxRead: 4677 ; Function 'FsDlxRead'; 0 bytes of locals, 0 regs to save. 4678 00004a88 afbefffc sw -4(r29),r30; push fp 4679 00004a8c 001df020 add r30,r0,r29; fp = sp 4680 00004a90 afbffff8 sw -8(r29),r31; push ret addr 4681 00004a94 2fbd0008 subui r29,r29,#8; alloc local storage 4682 00004a98 20010001 addi r1,r0,#1 4683 00004a9c 8fdffff8 lw r31,-8(r30) 4684 00004aa0 001ee820 add r29,r0,r30 4685 00004aa4 8fdefffc lw r30,-4(r30) 4686 00004aa8 4be00000 jr r31 4687 00004aac 54000000 nop 4688 00004ab0 .endproc _FsDlxRead 4689 00004ab0 .align 2 4690 00004ab0 .proc _FsDlxWrite 4691 00004ab0 .global _FsDlxWrite 4692 00004ab0 _FsDlxWrite: 4693 ; Function 'FsDlxWrite'; 0 bytes of locals, 0 regs to save. 4694 00004ab0 afbefffc sw -4(r29),r30; push fp 4695 00004ab4 001df020 add r30,r0,r29; fp = sp 4696 00004ab8 afbffff8 sw -8(r29),r31; push ret addr 4697 00004abc 2fbd0008 subui r29,r29,#8; alloc local storage 4698 00004ac0 20010001 addi r1,r0,#1 4699 00004ac4 8fdffff8 lw r31,-8(r30) 4700 00004ac8 001ee820 add r29,r0,r30 4701 00004acc 8fdefffc lw r30,-4(r30) 4702 00004ad0 4be00000 jr r31 4703 00004ad4 54000000 nop 4704 00004ad8 .endproc _FsDlxWrite 4705 00004ad8 .align 2 4706 00004ad8 .proc _FsDlxOpen 4707 00004ad8 .global _FsDlxOpen 4708 00004ad8 _FsDlxOpen: 4709 ; Function 'FsDlxOpen'; 0 bytes of locals, 1 regs to save. 4710 00004ad8 afbefffc sw -4(r29),r30; push fp 4711 00004adc 001df020 add r30,r0,r29; fp = sp 4712 00004ae0 afbffff8 sw -8(r29),r31; push ret addr 4713 00004ae4 2fbd0010 subui r29,r29,#16; alloc local storage 4714 00004ae8 afa20000 sw 0(r29),r2 4715 00004aec 8fc10000 lw r1,(r30) 4716 00004af0 50220004 slli r2,r1,#0x4 4717 00004af4 00411020 add r2,r2,r1 4718 00004af8 50420002 slli r2,r2,#0x2 4719 00004afc 00410822 sub r1,r2,r1 4720 00004b00 50210002 slli r1,r1,#0x2 4721 00004b04 3c1f0000 lhi r31,((_openfiles_LF4)>>16)&0xffff 4722 00004b08 27fff388 addui r31,r31,(_openfiles_LF4)&0xffff 4723 00004b0c 003f0820 add r1,r1,r31 4724 00004b10 201f0000 addi r31,r0,#0 4725 00004b14 ac3f0108 sw 264(r1),r31 4726 00004b18 20010001 addi r1,r0,#1 4727 00004b1c 8fa20000 lw r2,0(r29) 4728 00004b20 8fdffff8 lw r31,-8(r30) 4729 00004b24 001ee820 add r29,r0,r30 4730 00004b28 8fdefffc lw r30,-4(r30) 4731 00004b2c 4be00000 jr r31 4732 00004b30 54000000 nop 4733 00004b34 .endproc _FsDlxOpen 4734 00004b34 .align 2 4735 00004b34 .proc _FsDlxSeek 4736 00004b34 .global _FsDlxSeek 4737 00004b34 _FsDlxSeek: 4738 ; Function 'FsDlxSeek'; 0 bytes of locals, 1 regs to save. 4739 00004b34 afbefffc sw -4(r29),r30; push fp 4740 00004b38 001df020 add r30,r0,r29; fp = sp 4741 00004b3c afbffff8 sw -8(r29),r31; push ret addr 4742 00004b40 2fbd0010 subui r29,r29,#16; alloc local storage 4743 00004b44 afa20000 sw 0(r29),r2 4744 00004b48 8fc10000 lw r1,(r30) 4745 00004b4c 50220004 slli r2,r1,#0x4 4746 00004b50 00411020 add r2,r2,r1 4747 00004b54 50420002 slli r2,r2,#0x2 4748 00004b58 00410822 sub r1,r2,r1 4749 00004b5c 50210002 slli r1,r1,#0x2 4750 00004b60 3c1f0000 lhi r31,((_openfiles_LF4)>>16)&0xffff 4751 00004b64 27fff388 addui r31,r31,(_openfiles_LF4)&0xffff 4752 00004b68 003f0820 add r1,r1,r31 4753 00004b6c 8c210108 lw r1,264(r1) 4754 00004b70 8fa20000 lw r2,0(r29) 4755 00004b74 8fdffff8 lw r31,-8(r30) 4756 00004b78 001ee820 add r29,r0,r30 4757 00004b7c 8fdefffc lw r30,-4(r30) 4758 00004b80 4be00000 jr r31 4759 00004b84 54000000 nop 4760 00004b88 .endproc _FsDlxSeek 4761 00004b88 .align 2 4762 00004b88 .proc _FsDlxClose 4763 00004b88 .global _FsDlxClose 4764 00004b88 _FsDlxClose: 4765 ; Function 'FsDlxClose'; 0 bytes of locals, 0 regs to save. 4766 00004b88 afbefffc sw -4(r29),r30; push fp 4767 00004b8c 001df020 add r30,r0,r29; fp = sp 4768 00004b90 afbffff8 sw -8(r29),r31; push ret addr 4769 00004b94 2fbd0008 subui r29,r29,#8; alloc local storage 4770 00004b98 20010001 addi r1,r0,#1 4771 00004b9c 8fdffff8 lw r31,-8(r30) 4772 00004ba0 001ee820 add r29,r0,r30 4773 00004ba4 8fdefffc lw r30,-4(r30) 4774 00004ba8 4be00000 jr r31 4775 00004bac 54000000 nop 4776 00004bb0 .endproc _FsDlxClose 4777 00004bb0 .align 2 4778 00004bb0 .proc _FsDlxDelete 4779 00004bb0 .global _FsDlxDelete 4780 00004bb0 _FsDlxDelete: 4781 ; Function 'FsDlxDelete'; 0 bytes of locals, 0 regs to save. 4782 00004bb0 afbefffc sw -4(r29),r30; push fp 4783 00004bb4 001df020 add r30,r0,r29; fp = sp 4784 00004bb8 afbffff8 sw -8(r29),r31; push ret addr 4785 00004bbc 2fbd0008 subui r29,r29,#8; alloc local storage 4786 00004bc0 20010001 addi r1,r0,#1 4787 00004bc4 8fdffff8 lw r31,-8(r30) 4788 00004bc8 001ee820 add r29,r0,r30 4789 00004bcc 8fdefffc lw r30,-4(r30) 4790 00004bd0 4be00000 jr r31 4791 00004bd4 54000000 nop 4792 00004bd8 .endproc _FsDlxDelete 4793 00004bd8 .align 2 4794 00004bd8 .proc _FsModuleInit 4795 00004bd8 .global _FsModuleInit 4796 00004bd8 _FsModuleInit: 4797 ; Function 'FsModuleInit'; 0 bytes of locals, 2 regs to save. 4798 00004bd8 afbefffc sw -4(r29),r30; push fp 4799 00004bdc 001df020 add r30,r0,r29; fp = sp 4800 00004be0 afbffff8 sw -8(r29),r31; push ret addr 4801 00004be4 2fbd0010 subui r29,r29,#16; alloc local storage 4802 00004be8 afa20000 sw 0(r29),r2 4803 00004bec afa30004 sw 4(r29),r3 4804 00004bf0 3c1f0000 lhi r31,((_openfiles_LF4)>>16)&0xffff 4805 00004bf4 27fff388 addui r31,r31,(_openfiles_LF4)&0xffff 4806 00004bf8 23e22074 addi r2,r31,#8308 4807 00004bfc L182_LF4: 4808 00004bfc 20030000 addi r3,r0,#0 4809 00004c00 afe30004 sw 4(r31),r3 4810 00004c04 23ff010c addi r31,r31,#268 4811 00004c08 03e2082c sle r1,r31,r2 4812 00004c0c 1420ffec bnez r1,L182_LF4 4813 00004c10 54000000 nop; not filled. 4814 00004c14 3c010000 lhi r1,((_fs_LF4)>>16)&0xffff 4815 00004c18 2421f358 addui r1,r1,(_fs_LF4)&0xffff 4816 00004c1c 3c030000 lhi r3,((_FsUnixOpen)>>16)&0xffff 4817 00004c20 246346ec addui r3,r3,(_FsUnixOpen)&0xffff 4818 00004c24 ac230000 sw (r1),r3 4819 00004c28 3c030000 lhi r3,((_FsUnixClose)>>16)&0xffff 4820 00004c2c 246349c8 addui r3,r3,(_FsUnixClose)&0xffff 4821 00004c30 ac230010 sw 16(r1),r3 4822 00004c34 3c030000 lhi r3,((_FsUnixRead)>>16)&0xffff 4823 00004c38 24634818 addui r3,r3,(_FsUnixRead)&0xffff 4824 00004c3c ac230004 sw 4(r1),r3 4825 00004c40 3c030000 lhi r3,((_FsUnixWrite)>>16)&0xffff 4826 00004c44 246348a8 addui r3,r3,(_FsUnixWrite)&0xffff 4827 00004c48 ac230008 sw 8(r1),r3 4828 00004c4c 3c030000 lhi r3,((_FsUnixSeek)>>16)&0xffff 4829 00004c50 24634938 addui r3,r3,(_FsUnixSeek)&0xffff 4830 00004c54 ac23000c sw 12(r1),r3 4831 00004c58 3c030000 lhi r3,((_FsUnixDelete)>>16)&0xffff 4832 00004c5c 24634a38 addui r3,r3,(_FsUnixDelete)&0xffff 4833 00004c60 ac230014 sw 20(r1),r3 4834 00004c64 3c030000 lhi r3,((_FsDlxOpen)>>16)&0xffff 4835 00004c68 24634ad8 addui r3,r3,(_FsDlxOpen)&0xffff 4836 00004c6c ac230018 sw 24(r1),r3 4837 00004c70 3c030000 lhi r3,((_FsDlxClose)>>16)&0xffff 4838 00004c74 24634b88 addui r3,r3,(_FsDlxClose)&0xffff 4839 00004c78 ac230028 sw 40(r1),r3 4840 00004c7c 3c030000 lhi r3,((_FsDlxRead)>>16)&0xffff 4841 00004c80 24634a88 addui r3,r3,(_FsDlxRead)&0xffff 4842 00004c84 ac23001c sw 28(r1),r3 4843 00004c88 3c030000 lhi r3,((_FsDlxWrite)>>16)&0xffff 4844 00004c8c 24634ab0 addui r3,r3,(_FsDlxWrite)&0xffff 4845 00004c90 ac230020 sw 32(r1),r3 4846 00004c94 3c030000 lhi r3,((_FsDlxSeek)>>16)&0xffff 4847 00004c98 24634b34 addui r3,r3,(_FsDlxSeek)&0xffff 4848 00004c9c ac230024 sw 36(r1),r3 4849 00004ca0 3c030000 lhi r3,((_FsDlxDelete)>>16)&0xffff 4850 00004ca4 24634bb0 addui r3,r3,(_FsDlxDelete)&0xffff 4851 00004ca8 ac23002c sw 44(r1),r3 4852 00004cac 8fa20000 lw r2,0(r29) 4853 00004cb0 8fa30004 lw r3,4(r29) 4854 00004cb4 8fdffff8 lw r31,-8(r30) 4855 00004cb8 001ee820 add r29,r0,r30 4856 00004cbc 8fdefffc lw r30,-4(r30) 4857 00004cc0 4be00000 jr r31 4858 00004cc4 54000000 nop 4859 00004cc8 .endproc _FsModuleInit 4860 00004cc8 .data 4861 0000f357 .align 2 4862 0000f358 _fs_LF4: 4863 0000f358 .space 48 4864 0000f388 .align 2 4865 0000f388 _openfiles_LF4: 4866 0000f388 .space 8576 4867 ; Compiled by GCC 4869 00011508 .align 2 4870 00011508 _rcsid_LF5: 4871 00011508 3a206d65 .ascii "$Id: memory.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" 4871 0001150c 6d6f7279 4871 00011510 2e632c76 4871 00011514 20312e31 4871 00011518 20323030 4871 0001151c 302f3039 4871 00011520 2f323020 4871 00011524 30313a35 4871 00011528 303a3139 4871 0001152c 20656c6d 4871 00011530 20457870 4871 00011534 20656c6d 4871 00011538 20303030 4872 0001153c .text 4873 00004cc8 .align 2 4874 00004cc8 .proc _isspace 4875 00004cc8 .global _isspace 4876 00004cc8 _isspace: 4877 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 4878 00004cc8 afbefffc sw -4(r29),r30; push fp 4879 00004ccc 001df020 add r30,r0,r29; fp = sp 4880 00004cd0 afbffff8 sw -8(r29),r31; push ret addr 4881 00004cd4 2fbd0010 subui r29,r29,#16; alloc local storage 4882 00004cd8 afa20000 sw 0(r29),r2 4883 00004cdc 83c20003 lb r2,3(r30) 4884 00004ce0 201f0000 addi r31,r0,#0 4885 00004ce4 304100ff andi r1,r2,#0x00ff 4886 00004ce8 60210020 seqi r1,r1,#32 4887 00004cec 14200018 bnez r1,L6_LF5 4888 00004cf0 54000000 nop; not filled. 4889 00004cf4 2041fff7 addi r1,r2,#-9 4890 00004cf8 302100ff andi r1,r1,#0x00ff 4891 00004cfc 70210001 sleui r1,r1,#1 4892 00004d00 10200008 beqz r1,L5_LF5 4893 00004d04 54000000 nop; not filled. 4894 00004d08 L6_LF5: 4895 00004d08 201f0001 addi r31,r0,#1 4896 00004d0c L5_LF5: 4897 00004d0c 001f0820 add r1,r0,r31 4898 00004d10 8fa20000 lw r2,0(r29) 4899 00004d14 8fdffff8 lw r31,-8(r30) 4900 00004d18 001ee820 add r29,r0,r30 4901 00004d1c 8fdefffc lw r30,-4(r30) 4902 00004d20 4be00000 jr r31 4903 00004d24 54000000 nop 4904 00004d28 .endproc _isspace 4905 00004d28 .align 2 4906 00004d28 .proc _isxdigit 4907 00004d28 .global _isxdigit 4908 00004d28 _isxdigit: 4909 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 4910 00004d28 afbefffc sw -4(r29),r30; push fp 4911 00004d2c 001df020 add r30,r0,r29; fp = sp 4912 00004d30 afbffff8 sw -8(r29),r31; push ret addr 4913 00004d34 2fbd0010 subui r29,r29,#16; alloc local storage 4914 00004d38 afa20000 sw 0(r29),r2 4915 00004d3c 83df0003 lb r31,3(r30) 4916 00004d40 20020000 addi r2,r0,#0 4917 00004d44 23e1ffd0 addi r1,r31,#-48 4918 00004d48 302100ff andi r1,r1,#0x00ff 4919 00004d4c 70210009 sleui r1,r1,#9 4920 00004d50 14200028 bnez r1,L12_LF5 4921 00004d54 54000000 nop; not filled. 4922 00004d58 23e1ff9f addi r1,r31,#-97 4923 00004d5c 302100ff andi r1,r1,#0x00ff 4924 00004d60 70210005 sleui r1,r1,#5 4925 00004d64 14200014 bnez r1,L12_LF5 4926 00004d68 54000000 nop; not filled. 4927 00004d6c 33e100ff andi r1,r31,#0x00ff 4928 00004d70 64210041 snei r1,r1,#65 4929 00004d74 14200008 bnez r1,L11_LF5 4930 00004d78 54000000 nop; not filled. 4931 00004d7c L12_LF5: 4932 00004d7c 20020001 addi r2,r0,#1 4933 00004d80 L11_LF5: 4934 00004d80 00020820 add r1,r0,r2 4935 00004d84 8fa20000 lw r2,0(r29) 4936 00004d88 8fdffff8 lw r31,-8(r30) 4937 00004d8c 001ee820 add r29,r0,r30 4938 00004d90 8fdefffc lw r30,-4(r30) 4939 00004d94 4be00000 jr r31 4940 00004d98 54000000 nop 4941 00004d9c .endproc _isxdigit 4942 00004d9c .align 2 4943 00004d9c .proc _DisableIntrs 4944 00004d9c .global _DisableIntrs 4945 00004d9c _DisableIntrs: 4946 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 4947 00004d9c afbefffc sw -4(r29),r30; push fp 4948 00004da0 001df020 add r30,r0,r29; fp = sp 4949 00004da4 afbffff8 sw -8(r29),r31; push ret addr 4950 00004da8 2fbd0010 subui r29,r29,#16; alloc local storage 4951 00004dac afa20000 sw 0(r29),r2 4952 00004db0 23bdfff8 addi r29,r29,#-8 4953 00004db4 2002000f addi r2,r0,#15 4954 00004db8 afa20000 sw (r29),r2 4955 00004dbc 0fffc4c8 jal _SetIntrs 4956 00004dc0 54000000 nop; not filled. 4957 00004dc4 23bd0008 addi r29,r29,#8 4958 00004dc8 8fa20000 lw r2,0(r29) 4959 00004dcc 8fdffff8 lw r31,-8(r30) 4960 00004dd0 001ee820 add r29,r0,r30 4961 00004dd4 8fdefffc lw r30,-4(r30) 4962 00004dd8 4be00000 jr r31 4963 00004ddc 54000000 nop 4964 00004de0 .endproc _DisableIntrs 4965 00004de0 .align 2 4966 00004de0 .proc _EnableIntrs 4967 00004de0 .global _EnableIntrs 4968 00004de0 _EnableIntrs: 4969 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 4970 00004de0 afbefffc sw -4(r29),r30; push fp 4971 00004de4 001df020 add r30,r0,r29; fp = sp 4972 00004de8 afbffff8 sw -8(r29),r31; push ret addr 4973 00004dec 2fbd0010 subui r29,r29,#16; alloc local storage 4974 00004df0 afa20000 sw 0(r29),r2 4975 00004df4 23bdfff8 addi r29,r29,#-8 4976 00004df8 20020000 addi r2,r0,#0 4977 00004dfc afa20000 sw (r29),r2 4978 00004e00 0fffc484 jal _SetIntrs 4979 00004e04 54000000 nop; not filled. 4980 00004e08 23bd0008 addi r29,r29,#8 4981 00004e0c 8fa20000 lw r2,0(r29) 4982 00004e10 8fdffff8 lw r31,-8(r30) 4983 00004e14 001ee820 add r29,r0,r30 4984 00004e18 8fdefffc lw r30,-4(r30) 4985 00004e1c 4be00000 jr r31 4986 00004e20 54000000 nop 4987 00004e24 .endproc _EnableIntrs 4988 00004e24 .align 2 4989 00004e24 .proc _RestoreIntrs 4990 00004e24 .global _RestoreIntrs 4991 00004e24 _RestoreIntrs: 4992 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 4993 00004e24 afbefffc sw -4(r29),r30; push fp 4994 00004e28 001df020 add r30,r0,r29; fp = sp 4995 00004e2c afbffff8 sw -8(r29),r31; push ret addr 4996 00004e30 2fbd0010 subui r29,r29,#16; alloc local storage 4997 00004e34 afa20000 sw 0(r29),r2 4998 00004e38 23bdfff8 addi r29,r29,#-8 4999 00004e3c 8fc20000 lw r2,(r30) 5000 00004e40 afa20000 sw (r29),r2 5001 00004e44 0fffc440 jal _SetIntrs 5002 00004e48 54000000 nop; not filled. 5003 00004e4c 23bd0008 addi r29,r29,#8 5004 00004e50 8fa20000 lw r2,0(r29) 5005 00004e54 8fdffff8 lw r31,-8(r30) 5006 00004e58 001ee820 add r29,r0,r30 5007 00004e5c 8fdefffc lw r30,-4(r30) 5008 00004e60 4be00000 jr r31 5009 00004e64 54000000 nop 5010 00004e68 .endproc _RestoreIntrs 5011 00004e68 .align 2 5012 00004e68 .proc _QueueLinkInit 5013 00004e68 .global _QueueLinkInit 5014 00004e68 _QueueLinkInit: 5015 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 5016 00004e68 afbefffc sw -4(r29),r30; push fp 5017 00004e6c 001df020 add r30,r0,r29; fp = sp 5018 00004e70 afbffff8 sw -8(r29),r31; push ret addr 5019 00004e74 2fbd0010 subui r29,r29,#16; alloc local storage 5020 00004e78 afa20000 sw 0(r29),r2 5021 00004e7c 8fc10000 lw r1,(r30) 5022 00004e80 8fc20004 lw r2,4(r30) 5023 00004e84 201f0000 addi r31,r0,#0 5024 00004e88 ac3f0000 sw (r1),r31 5025 00004e8c ac22000c sw 12(r1),r2 5026 00004e90 8fa20000 lw r2,0(r29) 5027 00004e94 8fdffff8 lw r31,-8(r30) 5028 00004e98 001ee820 add r29,r0,r30 5029 00004e9c 8fdefffc lw r30,-4(r30) 5030 00004ea0 4be00000 jr r31 5031 00004ea4 54000000 nop 5032 00004ea8 .endproc _QueueLinkInit 5033 00004ea8 .align 2 5034 00004ea8 .proc _QueueNext 5035 00004ea8 .global _QueueNext 5036 00004ea8 _QueueNext: 5037 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 5038 00004ea8 afbefffc sw -4(r29),r30; push fp 5039 00004eac 001df020 add r30,r0,r29; fp = sp 5040 00004eb0 afbffff8 sw -8(r29),r31; push ret addr 5041 00004eb4 2fbd0008 subui r29,r29,#8; alloc local storage 5042 00004eb8 8fc10000 lw r1,(r30) 5043 00004ebc 8c210000 lw r1,(r1) 5044 00004ec0 8fdffff8 lw r31,-8(r30) 5045 00004ec4 001ee820 add r29,r0,r30 5046 00004ec8 8fdefffc lw r30,-4(r30) 5047 00004ecc 4be00000 jr r31 5048 00004ed0 54000000 nop 5049 00004ed4 .endproc _QueueNext 5050 00004ed4 .align 2 5051 00004ed4 .proc _QueuePrev 5052 00004ed4 .global _QueuePrev 5053 00004ed4 _QueuePrev: 5054 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 5055 00004ed4 afbefffc sw -4(r29),r30; push fp 5056 00004ed8 001df020 add r30,r0,r29; fp = sp 5057 00004edc afbffff8 sw -8(r29),r31; push ret addr 5058 00004ee0 2fbd0008 subui r29,r29,#8; alloc local storage 5059 00004ee4 8fc10000 lw r1,(r30) 5060 00004ee8 8c210004 lw r1,4(r1) 5061 00004eec 8fdffff8 lw r31,-8(r30) 5062 00004ef0 001ee820 add r29,r0,r30 5063 00004ef4 8fdefffc lw r30,-4(r30) 5064 00004ef8 4be00000 jr r31 5065 00004efc 54000000 nop 5066 00004f00 .endproc _QueuePrev 5067 00004f00 .align 2 5068 00004f00 .proc _QueueFirst 5069 00004f00 .global _QueueFirst 5070 00004f00 _QueueFirst: 5071 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 5072 00004f00 afbefffc sw -4(r29),r30; push fp 5073 00004f04 001df020 add r30,r0,r29; fp = sp 5074 00004f08 afbffff8 sw -8(r29),r31; push ret addr 5075 00004f0c 2fbd0008 subui r29,r29,#8; alloc local storage 5076 00004f10 8fc10000 lw r1,(r30) 5077 00004f14 8c210000 lw r1,(r1) 5078 00004f18 8fdffff8 lw r31,-8(r30) 5079 00004f1c 001ee820 add r29,r0,r30 5080 00004f20 8fdefffc lw r30,-4(r30) 5081 00004f24 4be00000 jr r31 5082 00004f28 54000000 nop 5083 00004f2c .endproc _QueueFirst 5084 00004f2c .align 2 5085 00004f2c .proc _QueueLast 5086 00004f2c .global _QueueLast 5087 00004f2c _QueueLast: 5088 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 5089 00004f2c afbefffc sw -4(r29),r30; push fp 5090 00004f30 001df020 add r30,r0,r29; fp = sp 5091 00004f34 afbffff8 sw -8(r29),r31; push ret addr 5092 00004f38 2fbd0008 subui r29,r29,#8; alloc local storage 5093 00004f3c 8fc10000 lw r1,(r30) 5094 00004f40 8c210004 lw r1,4(r1) 5095 00004f44 8fdffff8 lw r31,-8(r30) 5096 00004f48 001ee820 add r29,r0,r30 5097 00004f4c 8fdefffc lw r30,-4(r30) 5098 00004f50 4be00000 jr r31 5099 00004f54 54000000 nop 5100 00004f58 .endproc _QueueLast 5101 00004f58 .align 2 5102 00004f58 .proc _QueueInsertAfter 5103 00004f58 .global _QueueInsertAfter 5104 00004f58 _QueueInsertAfter: 5105 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 5106 00004f58 afbefffc sw -4(r29),r30; push fp 5107 00004f5c 001df020 add r30,r0,r29; fp = sp 5108 00004f60 afbffff8 sw -8(r29),r31; push ret addr 5109 00004f64 2fbd0010 subui r29,r29,#16; alloc local storage 5110 00004f68 afa20000 sw 0(r29),r2 5111 00004f6c afa30004 sw 4(r29),r3 5112 00004f70 8fc30000 lw r3,(r30) 5113 00004f74 8fc20004 lw r2,4(r30) 5114 00004f78 8fc10008 lw r1,8(r30) 5115 00004f7c ac230008 sw 8(r1),r3 5116 00004f80 ac220004 sw 4(r1),r2 5117 00004f84 8c5f0000 lw r31,(r2) 5118 00004f88 ac3f0000 sw (r1),r31 5119 00004f8c ac410000 sw (r2),r1 5120 00004f90 8c220000 lw r2,(r1) 5121 00004f94 ac410004 sw 4(r2),r1 5122 00004f98 8c610008 lw r1,8(r3) 5123 00004f9c 20210001 addi r1,r1,#1 5124 00004fa0 ac610008 sw 8(r3),r1 5125 00004fa4 8fa20000 lw r2,0(r29) 5126 00004fa8 8fa30004 lw r3,4(r29) 5127 00004fac 8fdffff8 lw r31,-8(r30) 5128 00004fb0 001ee820 add r29,r0,r30 5129 00004fb4 8fdefffc lw r30,-4(r30) 5130 00004fb8 4be00000 jr r31 5131 00004fbc 54000000 nop 5132 00004fc0 .endproc _QueueInsertAfter 5133 00004fc0 .align 2 5134 00004fc0 .proc _QueueInsertFirst 5135 00004fc0 .global _QueueInsertFirst 5136 00004fc0 _QueueInsertFirst: 5137 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 5138 00004fc0 afbefffc sw -4(r29),r30; push fp 5139 00004fc4 001df020 add r30,r0,r29; fp = sp 5140 00004fc8 afbffff8 sw -8(r29),r31; push ret addr 5141 00004fcc 2fbd0010 subui r29,r29,#16; alloc local storage 5142 00004fd0 afa20000 sw 0(r29),r2 5143 00004fd4 afa30004 sw 4(r29),r3 5144 00004fd8 8fc30000 lw r3,(r30) 5145 00004fdc 8fc10004 lw r1,4(r30) 5146 00004fe0 ac230008 sw 8(r1),r3 5147 00004fe4 ac230004 sw 4(r1),r3 5148 00004fe8 8c7f0000 lw r31,(r3) 5149 00004fec ac3f0000 sw (r1),r31 5150 00004ff0 ac610000 sw (r3),r1 5151 00004ff4 8c220000 lw r2,(r1) 5152 00004ff8 ac410004 sw 4(r2),r1 5153 00004ffc 8c610008 lw r1,8(r3) 5154 00005000 20210001 addi r1,r1,#1 5155 00005004 ac610008 sw 8(r3),r1 5156 00005008 8fa20000 lw r2,0(r29) 5157 0000500c 8fa30004 lw r3,4(r29) 5158 00005010 8fdffff8 lw r31,-8(r30) 5159 00005014 001ee820 add r29,r0,r30 5160 00005018 8fdefffc lw r30,-4(r30) 5161 0000501c 4be00000 jr r31 5162 00005020 54000000 nop 5163 00005024 .endproc _QueueInsertFirst 5164 00005024 .align 2 5165 00005024 .proc _QueueInsertLast 5166 00005024 .global _QueueInsertLast 5167 00005024 _QueueInsertLast: 5168 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 5169 00005024 afbefffc sw -4(r29),r30; push fp 5170 00005028 001df020 add r30,r0,r29; fp = sp 5171 0000502c afbffff8 sw -8(r29),r31; push ret addr 5172 00005030 2fbd0010 subui r29,r29,#16; alloc local storage 5173 00005034 afa20000 sw 0(r29),r2 5174 00005038 afa30004 sw 4(r29),r3 5175 0000503c 8fc30000 lw r3,(r30) 5176 00005040 8fc10004 lw r1,4(r30) 5177 00005044 8c620004 lw r2,4(r3) 5178 00005048 ac230008 sw 8(r1),r3 5179 0000504c ac220004 sw 4(r1),r2 5180 00005050 8c5f0000 lw r31,(r2) 5181 00005054 ac3f0000 sw (r1),r31 5182 00005058 ac410000 sw (r2),r1 5183 0000505c 8c220000 lw r2,(r1) 5184 00005060 ac410004 sw 4(r2),r1 5185 00005064 8c610008 lw r1,8(r3) 5186 00005068 20210001 addi r1,r1,#1 5187 0000506c ac610008 sw 8(r3),r1 5188 00005070 8fa20000 lw r2,0(r29) 5189 00005074 8fa30004 lw r3,4(r29) 5190 00005078 8fdffff8 lw r31,-8(r30) 5191 0000507c 001ee820 add r29,r0,r30 5192 00005080 8fdefffc lw r30,-4(r30) 5193 00005084 4be00000 jr r31 5194 00005088 54000000 nop 5195 0000508c .endproc _QueueInsertLast 5196 0000508c .align 2 5197 0000508c .proc _QueueRemove 5198 0000508c .global _QueueRemove 5199 0000508c _QueueRemove: 5200 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 5201 0000508c afbefffc sw -4(r29),r30; push fp 5202 00005090 001df020 add r30,r0,r29; fp = sp 5203 00005094 afbffff8 sw -8(r29),r31; push ret addr 5204 00005098 2fbd0010 subui r29,r29,#16; alloc local storage 5205 0000509c afa20000 sw 0(r29),r2 5206 000050a0 afa30004 sw 4(r29),r3 5207 000050a4 8fdf0000 lw r31,(r30) 5208 000050a8 8fe10008 lw r1,8(r31) 5209 000050ac 8c210008 lw r1,8(r1) 5210 000050b0 6c210000 sgti r1,r1,#0 5211 000050b4 1020002c beqz r1,L44_LF5 5212 000050b8 54000000 nop; not filled. 5213 000050bc 8fe10004 lw r1,4(r31) 5214 000050c0 8fe30000 lw r3,(r31) 5215 000050c4 ac230000 sw (r1),r3 5216 000050c8 8fe10000 lw r1,(r31) 5217 000050cc 8fe30004 lw r3,4(r31) 5218 000050d0 ac230004 sw 4(r1),r3 5219 000050d4 8fe20008 lw r2,8(r31) 5220 000050d8 8c410008 lw r1,8(r2) 5221 000050dc 2021ffff addi r1,r1,#-1 5222 000050e0 ac410008 sw 8(r2),r1 5223 000050e4 L44_LF5: 5224 000050e4 20030000 addi r3,r0,#0 5225 000050e8 afe30000 sw (r31),r3 5226 000050ec 8fa20000 lw r2,0(r29) 5227 000050f0 8fa30004 lw r3,4(r29) 5228 000050f4 8fdffff8 lw r31,-8(r30) 5229 000050f8 001ee820 add r29,r0,r30 5230 000050fc 8fdefffc lw r30,-4(r30) 5231 00005100 4be00000 jr r31 5232 00005104 54000000 nop 5233 00005108 .endproc _QueueRemove 5234 00005108 .align 2 5235 00005108 .proc _QueueLength 5236 00005108 .global _QueueLength 5237 00005108 _QueueLength: 5238 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 5239 00005108 afbefffc sw -4(r29),r30; push fp 5240 0000510c 001df020 add r30,r0,r29; fp = sp 5241 00005110 afbffff8 sw -8(r29),r31; push ret addr 5242 00005114 2fbd0008 subui r29,r29,#8; alloc local storage 5243 00005118 8fc10000 lw r1,(r30) 5244 0000511c 8c210008 lw r1,8(r1) 5245 00005120 8fdffff8 lw r31,-8(r30) 5246 00005124 001ee820 add r29,r0,r30 5247 00005128 8fdefffc lw r30,-4(r30) 5248 0000512c 4be00000 jr r31 5249 00005130 54000000 nop 5250 00005134 .endproc _QueueLength 5251 00005134 .align 2 5252 00005134 .proc _QueueEmpty 5253 00005134 .global _QueueEmpty 5254 00005134 _QueueEmpty: 5255 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 5256 00005134 afbefffc sw -4(r29),r30; push fp 5257 00005138 001df020 add r30,r0,r29; fp = sp 5258 0000513c afbffff8 sw -8(r29),r31; push ret addr 5259 00005140 2fbd0008 subui r29,r29,#8; alloc local storage 5260 00005144 8fc10000 lw r1,(r30) 5261 00005148 8c210008 lw r1,8(r1) 5262 0000514c 60210000 seqi r1,r1,#0 5263 00005150 8fdffff8 lw r31,-8(r30) 5264 00005154 001ee820 add r29,r0,r30 5265 00005158 8fdefffc lw r30,-4(r30) 5266 0000515c 4be00000 jr r31 5267 00005160 54000000 nop 5268 00005164 .endproc _QueueEmpty 5269 00005164 .data 5270 0001153c .align 2 5271 0001153c _negativeone_LF5: 5272 0001153c ffffffff .word -1 5273 00011540 .text 5274 00005164 .align 2 5275 00005164 .proc _MemoryGetSize 5276 00005164 .global _MemoryGetSize 5277 00005164 _MemoryGetSize: 5278 ; Function 'MemoryGetSize'; 0 bytes of locals, 0 regs to save. 5279 00005164 afbefffc sw -4(r29),r30; push fp 5280 00005168 001df020 add r30,r0,r29; fp = sp 5281 0000516c afbffff8 sw -8(r29),r31; push ret addr 5282 00005170 2fbd0008 subui r29,r29,#8; alloc local storage 5283 00005174 3c01ffff lhi r1,#-1 5284 00005178 24210000 addui r1,r1,#0 5285 0000517c 8c210000 lw r1,(r1) 5286 00005180 8fdffff8 lw r31,-8(r30) 5287 00005184 001ee820 add r29,r0,r30 5288 00005188 8fdefffc lw r30,-4(r30) 5289 0000518c 4be00000 jr r31 5290 00005190 54000000 nop 5291 00005194 .endproc _MemoryGetSize 5292 00005194 .data 5293 00011540 .align 2 5294 00011540 LC0_LF5: 5295 00011540 53657420 .ascii "Set freemap entry %d to 0x%x.\n\000" 5295 00011544 66726565 5295 00011548 6d617020 5295 0001154c 656e7472 5295 00011550 79202564 5295 00011554 20746f20 5295 00011558 30782578 5295 0001155c 2e0a00 5296 0001155f .text 5297 00005194 .align 2 5298 00005194 .proc _MemorySetFreemap 5299 00005194 .global _MemorySetFreemap 5300 00005194 _MemorySetFreemap: 5301 ; Function 'MemorySetFreemap'; 0 bytes of locals, 5 regs to save. 5302 00005194 afbefffc sw -4(r29),r30; push fp 5303 00005198 001df020 add r30,r0,r29; fp = sp 5304 0000519c afbffff8 sw -8(r29),r31; push ret addr 5305 000051a0 2fbd0020 subui r29,r29,#32; alloc local storage 5306 000051a4 afa20000 sw 0(r29),r2 5307 000051a8 afa30004 sw 4(r29),r3 5308 000051ac afa40008 sw 8(r29),r4 5309 000051b0 afa5000c sw 12(r29),r5 5310 000051b4 afa60010 sw 16(r29),r6 5311 000051b8 8fc30000 lw r3,(r30) 5312 000051bc 8fdf0004 lw r31,4(r30) 5313 000051c0 00031020 add r2,r0,r3 5314 000051c4 74610000 sgei r1,r3,#0 5315 000051c8 14200008 bnez r1,L61_LF5 5316 000051cc 54000000 nop; not filled. 5317 000051d0 2062001f addi r2,r3,#31 5318 000051d4 L61_LF5: 5319 000051d4 5c450005 srai r5,r2,#0x5 5320 000051d8 50a10005 slli r1,r5,#0x5 5321 000051dc 00611822 sub r3,r3,r1 5322 000051e0 20010001 addi r1,r0,#1 5323 000051e4 00231004 sll r2,r1,r3 5324 000051e8 3c010001 lhi r1,((_negativeone_LF5)>>16)&0xffff 5325 000051ec 2421153c addui r1,r1,(_negativeone_LF5)&0xffff 5326 000051f0 8c210000 lw r1,(r1) 5327 000051f4 00411026 xor r2,r2,r1 5328 000051f8 50a10002 slli r1,r5,#0x2 5329 000051fc 3c060001 lhi r6,((_freepages_LF5)>>16)&0xffff 5330 00005200 24c616b0 addui r6,r6,(_freepages_LF5)&0xffff 5331 00005204 00262020 add r4,r1,r6 5332 00005208 8c810000 lw r1,(r4) 5333 0000520c 00221024 and r2,r1,r2 5334 00005210 03e30804 sll r1,r31,r3 5335 00005214 00410825 or r1,r2,r1 5336 00005218 ac810000 sw (r4),r1 5337 0000521c 23bdfff8 addi r29,r29,#-8 5338 00005220 3c020001 lhi r2,((_debugstr)>>16)&0xffff 5339 00005224 24424038 addui r2,r2,(_debugstr)&0xffff 5340 00005228 afa20000 sw (r29),r2 5341 0000522c 2006006d addi r6,r0,#109 5342 00005230 afa60004 sw 4(r29),r6 5343 00005234 0c001354 jal _dindex 5344 00005238 54000000 nop; not filled. 5345 0000523c 23bd0008 addi r29,r29,#8 5346 00005240 64210000 snei r1,r1,#0 5347 00005244 1420002c bnez r1,L65_LF5 5348 00005248 54000000 nop; not filled. 5349 0000524c 23bdfff8 addi r29,r29,#-8 5350 00005250 afa20000 sw (r29),r2 5351 00005254 2006002b addi r6,r0,#43 5352 00005258 afa60004 sw 4(r29),r6 5353 0000525c 0c00132c jal _dindex 5354 00005260 54000000 nop; not filled. 5355 00005264 23bd0008 addi r29,r29,#8 5356 00005268 64210000 snei r1,r1,#0 5357 0000526c 1020002c beqz r1,L64_LF5 5358 00005270 54000000 nop; not filled. 5359 00005274 L65_LF5: 5360 00005274 23bdfff0 addi r29,r29,#-16 5361 00005278 3c060001 lhi r6,((LC0_LF5)>>16)&0xffff 5362 0000527c 24c61540 addui r6,r6,(LC0_LF5)&0xffff 5363 00005280 afa60000 sw (r29),r6 5364 00005284 afa50004 sw 4(r29),r5 5365 00005288 8c840000 lw r4,(r4) 5366 0000528c afa40008 sw 8(r29),r4 5367 00005290 0c007f90 jal _printf 5368 00005294 54000000 nop; not filled. 5369 00005298 23bd0010 addi r29,r29,#16 5370 0000529c L64_LF5: 5371 0000529c 8fa20000 lw r2,0(r29) 5372 000052a0 8fa30004 lw r3,4(r29) 5373 000052a4 8fa40008 lw r4,8(r29) 5374 000052a8 8fa5000c lw r5,12(r29) 5375 000052ac 8fa60010 lw r6,16(r29) 5376 000052b0 8fdffff8 lw r31,-8(r30) 5377 000052b4 001ee820 add r29,r0,r30 5378 000052b8 8fdefffc lw r30,-4(r30) 5379 000052bc 4be00000 jr r31 5380 000052c0 54000000 nop 5381 000052c4 .endproc _MemorySetFreemap 5382 000052c4 .data 5383 0001155f .align 2 5384 00011560 LC1_LF5: 5385 00011560 4d617020 .ascii "Map has %d entries, memory size is 0x%x.\n\000" 5385 00011564 68617320 5385 00011568 25642065 5385 0001156c 6e747269 5385 00011570 65732c20 5385 00011574 6d656d6f 5385 00011578 72792073 5385 0001157c 697a6520 5385 00011580 69732030 5385 00011584 7825782e 5385 00011588 0a00 5386 0001158a .align 2 5387 0001158c LC2_LF5: 5388 0001158c 46726565 .ascii "Free pages start with page # 0x%x.\n\000" 5388 00011590 20706167 5388 00011594 65732073 5388 00011598 74617274 5388 0001159c 20776974 5388 000115a0 68207061 5388 000115a4 67652023 5388 000115a8 20307825 5388 000115ac 782e0a00 5389 000115b0 .align 2 5390 000115b0 LC3_LF5: 5391 000115b0 496e6974 .ascii "Initialized %d free pages.\n\000" 5391 000115b4 69616c69 5391 000115b8 7a656420 5391 000115bc 25642066 5391 000115c0 72656520 5391 000115c4 70616765 5391 000115c8 732e0a00 5392 000115cc .text 5393 000052c4 .align 2 5394 000052c4 .proc _MemoryModuleInit 5395 000052c4 .global _MemoryModuleInit 5396 000052c4 _MemoryModuleInit: 5397 ; Function 'MemoryModuleInit'; 0 bytes of locals, 10 regs to save. 5398 000052c4 afbefffc sw -4(r29),r30; push fp 5399 000052c8 001df020 add r30,r0,r29; fp = sp 5400 000052cc afbffff8 sw -8(r29),r31; push ret addr 5401 000052d0 2fbd0030 subui r29,r29,#48; alloc local storage 5402 000052d4 afa20000 sw 0(r29),r2 5403 000052d8 afa30004 sw 4(r29),r3 5404 000052dc afa40008 sw 8(r29),r4 5405 000052e0 afa5000c sw 12(r29),r5 5406 000052e4 afa60010 sw 16(r29),r6 5407 000052e8 afa70014 sw 20(r29),r7 5408 000052ec afa80018 sw 24(r29),r8 5409 000052f0 afa9001c sw 28(r29),r9 5410 000052f4 afaa0020 sw 32(r29),r10 5411 000052f8 afab0024 sw 36(r29),r11 5412 000052fc 3c01ffff lhi r1,#-1 5413 00005300 24210000 addui r1,r1,#0 5414 00005304 8c220000 lw r2,(r1) 5415 00005308 74410000 sgei r1,r2,#0 5416 0000530c 14200008 bnez r1,L68_LF5 5417 00005310 54000000 nop; not filled. 5418 00005314 2442ffff addui r2,r2,#65535 5419 00005318 L68_LF5: 5420 00005318 5c480010 srai r8,r2,#0x10 5421 0000531c 3c030001 lhi r3,((_pagestart_LF5)>>16)&0xffff 5422 00005320 246316a4 addui r3,r3,(_pagestart_LF5)&0xffff 5423 00005324 3c010001 lhi r1,((_lastosaddress)>>16)&0xffff 5424 00005328 242175b4 addui r1,r1,(_lastosaddress)&0xffff 5425 0000532c 8c210000 lw r1,(r1) 5426 00005330 2422fffc addui r2,r1,#65532 5427 00005334 74410000 sgei r1,r2,#0 5428 00005338 14200008 bnez r1,L69_LF5 5429 0000533c 54000000 nop; not filled. 5430 00005340 2442ffff addui r2,r2,#65535 5431 00005344 L69_LF5: 5432 00005344 5c410010 srai r1,r2,#0x10 5433 00005348 ac610000 sw (r3),r1 5434 0000534c 3c030001 lhi r3,((_freemapmax_LF5)>>16)&0xffff 5435 00005350 246316a8 addui r3,r3,(_freemapmax_LF5)&0xffff 5436 00005354 2102001f addi r2,r8,#31 5437 00005358 74410000 sgei r1,r2,#0 5438 0000535c 14200008 bnez r1,L70_LF5 5439 00005360 54000000 nop; not filled. 5440 00005364 2102003e addi r2,r8,#62 5441 00005368 L70_LF5: 5442 00005368 5c410005 srai r1,r2,#0x5 5443 0000536c ac610000 sw (r3),r1 5444 00005370 23bdfff8 addi r29,r29,#-8 5445 00005374 3c020001 lhi r2,((_debugstr)>>16)&0xffff 5446 00005378 24424038 addui r2,r2,(_debugstr)&0xffff 5447 0000537c afa20000 sw (r29),r2 5448 00005380 200b006d addi r11,r0,#109 5449 00005384 afab0004 sw 4(r29),r11 5450 00005388 0c001200 jal _dindex 5451 0000538c 54000000 nop; not filled. 5452 00005390 23bd0008 addi r29,r29,#8 5453 00005394 64210000 snei r1,r1,#0 5454 00005398 1420002c bnez r1,L72_LF5 5455 0000539c 54000000 nop; not filled. 5456 000053a0 23bdfff8 addi r29,r29,#-8 5457 000053a4 afa20000 sw (r29),r2 5458 000053a8 200b002b addi r11,r0,#43 5459 000053ac afab0004 sw 4(r29),r11 5460 000053b0 0c0011d8 jal _dindex 5461 000053b4 54000000 nop; not filled. 5462 000053b8 23bd0008 addi r29,r29,#8 5463 000053bc 64210000 snei r1,r1,#0 5464 000053c0 1020002c beqz r1,L71_LF5 5465 000053c4 54000000 nop; not filled. 5466 000053c8 L72_LF5: 5467 000053c8 23bdfff0 addi r29,r29,#-16 5468 000053cc 3c0b0001 lhi r11,((LC1_LF5)>>16)&0xffff 5469 000053d0 256b1560 addui r11,r11,(LC1_LF5)&0xffff 5470 000053d4 afab0000 sw (r29),r11 5471 000053d8 8c610000 lw r1,(r3) 5472 000053dc afa10004 sw 4(r29),r1 5473 000053e0 afa80008 sw 8(r29),r8 5474 000053e4 0c007e3c jal _printf 5475 000053e8 54000000 nop; not filled. 5476 000053ec 23bd0010 addi r29,r29,#16 5477 000053f0 L71_LF5: 5478 000053f0 23bdfff8 addi r29,r29,#-8 5479 000053f4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 5480 000053f8 24424038 addui r2,r2,(_debugstr)&0xffff 5481 000053fc afa20000 sw (r29),r2 5482 00005400 200b006d addi r11,r0,#109 5483 00005404 afab0004 sw 4(r29),r11 5484 00005408 0c001180 jal _dindex 5485 0000540c 54000000 nop; not filled. 5486 00005410 23bd0008 addi r29,r29,#8 5487 00005414 64210000 snei r1,r1,#0 5488 00005418 1420002c bnez r1,L74_LF5 5489 0000541c 54000000 nop; not filled. 5490 00005420 23bdfff8 addi r29,r29,#-8 5491 00005424 afa20000 sw (r29),r2 5492 00005428 200b002b addi r11,r0,#43 5493 0000542c afab0004 sw 4(r29),r11 5494 00005430 0c001158 jal _dindex 5495 00005434 54000000 nop; not filled. 5496 00005438 23bd0008 addi r29,r29,#8 5497 0000543c 64210000 snei r1,r1,#0 5498 00005440 10200030 beqz r1,L73_LF5 5499 00005444 54000000 nop; not filled. 5500 00005448 L74_LF5: 5501 00005448 23bdfff8 addi r29,r29,#-8 5502 0000544c 3c0b0001 lhi r11,((LC2_LF5)>>16)&0xffff 5503 00005450 256b158c addui r11,r11,(LC2_LF5)&0xffff 5504 00005454 afab0000 sw (r29),r11 5505 00005458 3c010001 lhi r1,((_pagestart_LF5)>>16)&0xffff 5506 0000545c 242116a4 addui r1,r1,(_pagestart_LF5)&0xffff 5507 00005460 8c210000 lw r1,(r1) 5508 00005464 afa10004 sw 4(r29),r1 5509 00005468 0c007db8 jal _printf 5510 0000546c 54000000 nop; not filled. 5511 00005470 23bd0008 addi r29,r29,#8 5512 00005474 L73_LF5: 5513 00005474 20020000 addi r2,r0,#0 5514 00005478 3c040001 lhi r4,((_freemapmax_LF5)>>16)&0xffff 5515 0000547c 248416a8 addui r4,r4,(_freemapmax_LF5)&0xffff 5516 00005480 8c810000 lw r1,(r4) 5517 00005484 0041082a slt r1,r2,r1 5518 00005488 1020002c beqz r1,L76_LF5 5519 0000548c 54000000 nop; not filled. 5520 00005490 3c030001 lhi r3,((_freepages_LF5)>>16)&0xffff 5521 00005494 246316b0 addui r3,r3,(_freepages_LF5)&0xffff 5522 00005498 L78_LF5: 5523 00005498 200b0000 addi r11,r0,#0 5524 0000549c ac6b0000 sw (r3),r11 5525 000054a0 20630004 addi r3,r3,#4 5526 000054a4 20420001 addi r2,r2,#1 5527 000054a8 8c810000 lw r1,(r4) 5528 000054ac 0041082a slt r1,r2,r1 5529 000054b0 1420ffe4 bnez r1,L78_LF5 5530 000054b4 54000000 nop; not filled. 5531 000054b8 L76_LF5: 5532 000054b8 3c020001 lhi r2,((_nfreepages_LF5)>>16)&0xffff 5533 000054bc 244216ac addui r2,r2,(_nfreepages_LF5)&0xffff 5534 000054c0 200b0000 addi r11,r0,#0 5535 000054c4 ac4b0000 sw (r2),r11 5536 000054c8 3c010001 lhi r1,((_pagestart_LF5)>>16)&0xffff 5537 000054cc 242116a4 addui r1,r1,(_pagestart_LF5)&0xffff 5538 000054d0 8c240000 lw r4,(r1) 5539 000054d4 0088082a slt r1,r4,r8 5540 000054d8 10200104 beqz r1,L81_LF5 5541 000054dc 54000000 nop; not filled. 5542 000054e0 00023820 add r7,r0,r2 5543 000054e4 200a0001 addi r10,r0,#1 5544 000054e8 3c090001 lhi r9,((_negativeone_LF5)>>16)&0xffff 5545 000054ec 2529153c addui r9,r9,(_negativeone_LF5)&0xffff 5546 000054f0 L83_LF5: 5547 000054f0 8ce10000 lw r1,(r7) 5548 000054f4 20210001 addi r1,r1,#1 5549 000054f8 ace10000 sw (r7),r1 5550 000054fc 00041020 add r2,r0,r4 5551 00005500 74810000 sgei r1,r4,#0 5552 00005504 14200008 bnez r1,L85_LF5 5553 00005508 54000000 nop; not filled. 5554 0000550c 2082001f addi r2,r4,#31 5555 00005510 L85_LF5: 5556 00005510 5c460005 srai r6,r2,#0x5 5557 00005514 50c10005 slli r1,r6,#0x5 5558 00005518 00810822 sub r1,r4,r1 5559 0000551c 01411804 sll r3,r10,r1 5560 00005520 8d210000 lw r1,(r9) 5561 00005524 00611026 xor r2,r3,r1 5562 00005528 50c10002 slli r1,r6,#0x2 5563 0000552c 3c0b0001 lhi r11,((_freepages_LF5)>>16)&0xffff 5564 00005530 256b16b0 addui r11,r11,(_freepages_LF5)&0xffff 5565 00005534 002b2820 add r5,r1,r11 5566 00005538 8ca10000 lw r1,(r5) 5567 0000553c 00220824 and r1,r1,r2 5568 00005540 00230825 or r1,r1,r3 5569 00005544 aca10000 sw (r5),r1 5570 00005548 23bdfff8 addi r29,r29,#-8 5571 0000554c 3c0b0001 lhi r11,((_debugstr)>>16)&0xffff 5572 00005550 256b4038 addui r11,r11,(_debugstr)&0xffff 5573 00005554 afab0000 sw (r29),r11 5574 00005558 200b006d addi r11,r0,#109 5575 0000555c afab0004 sw 4(r29),r11 5576 00005560 0c001028 jal _dindex 5577 00005564 54000000 nop; not filled. 5578 00005568 23bd0008 addi r29,r29,#8 5579 0000556c 64210000 snei r1,r1,#0 5580 00005570 14200034 bnez r1,L89_LF5 5581 00005574 54000000 nop; not filled. 5582 00005578 23bdfff8 addi r29,r29,#-8 5583 0000557c 3c0b0001 lhi r11,((_debugstr)>>16)&0xffff 5584 00005580 256b4038 addui r11,r11,(_debugstr)&0xffff 5585 00005584 afab0000 sw (r29),r11 5586 00005588 200b002b addi r11,r0,#43 5587 0000558c afab0004 sw 4(r29),r11 5588 00005590 0c000ff8 jal _dindex 5589 00005594 54000000 nop; not filled. 5590 00005598 23bd0008 addi r29,r29,#8 5591 0000559c 64210000 snei r1,r1,#0 5592 000055a0 1020002c beqz r1,L82_LF5 5593 000055a4 54000000 nop; not filled. 5594 000055a8 L89_LF5: 5595 000055a8 23bdfff0 addi r29,r29,#-16 5596 000055ac 3c0b0001 lhi r11,((LC0_LF5)>>16)&0xffff 5597 000055b0 256b1540 addui r11,r11,(LC0_LF5)&0xffff 5598 000055b4 afab0000 sw (r29),r11 5599 000055b8 afa60004 sw 4(r29),r6 5600 000055bc 8ca50000 lw r5,(r5) 5601 000055c0 afa50008 sw 8(r29),r5 5602 000055c4 0c007c5c jal _printf 5603 000055c8 54000000 nop; not filled. 5604 000055cc 23bd0010 addi r29,r29,#16 5605 000055d0 L82_LF5: 5606 000055d0 20840001 addi r4,r4,#1 5607 000055d4 0088082a slt r1,r4,r8 5608 000055d8 1420ff14 bnez r1,L83_LF5 5609 000055dc 54000000 nop; not filled. 5610 000055e0 L81_LF5: 5611 000055e0 23bdfff8 addi r29,r29,#-8 5612 000055e4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 5613 000055e8 24424038 addui r2,r2,(_debugstr)&0xffff 5614 000055ec afa20000 sw (r29),r2 5615 000055f0 200b006d addi r11,r0,#109 5616 000055f4 afab0004 sw 4(r29),r11 5617 000055f8 0c000f90 jal _dindex 5618 000055fc 54000000 nop; not filled. 5619 00005600 23bd0008 addi r29,r29,#8 5620 00005604 64210000 snei r1,r1,#0 5621 00005608 1420002c bnez r1,L92_LF5 5622 0000560c 54000000 nop; not filled. 5623 00005610 23bdfff8 addi r29,r29,#-8 5624 00005614 afa20000 sw (r29),r2 5625 00005618 200b002b addi r11,r0,#43 5626 0000561c afab0004 sw 4(r29),r11 5627 00005620 0c000f68 jal _dindex 5628 00005624 54000000 nop; not filled. 5629 00005628 23bd0008 addi r29,r29,#8 5630 0000562c 64210000 snei r1,r1,#0 5631 00005630 10200030 beqz r1,L91_LF5 5632 00005634 54000000 nop; not filled. 5633 00005638 L92_LF5: 5634 00005638 23bdfff8 addi r29,r29,#-8 5635 0000563c 3c0b0001 lhi r11,((LC3_LF5)>>16)&0xffff 5636 00005640 256b15b0 addui r11,r11,(LC3_LF5)&0xffff 5637 00005644 afab0000 sw (r29),r11 5638 00005648 3c010001 lhi r1,((_nfreepages_LF5)>>16)&0xffff 5639 0000564c 242116ac addui r1,r1,(_nfreepages_LF5)&0xffff 5640 00005650 8c210000 lw r1,(r1) 5641 00005654 afa10004 sw 4(r29),r1 5642 00005658 0c007bc8 jal _printf 5643 0000565c 54000000 nop; not filled. 5644 00005660 23bd0008 addi r29,r29,#8 5645 00005664 L91_LF5: 5646 00005664 8fa20000 lw r2,0(r29) 5647 00005668 8fa30004 lw r3,4(r29) 5648 0000566c 8fa40008 lw r4,8(r29) 5649 00005670 8fa5000c lw r5,12(r29) 5650 00005674 8fa60010 lw r6,16(r29) 5651 00005678 8fa70014 lw r7,20(r29) 5652 0000567c 8fa80018 lw r8,24(r29) 5653 00005680 8fa9001c lw r9,28(r29) 5654 00005684 8faa0020 lw r10,32(r29) 5655 00005688 8fab0024 lw r11,36(r29) 5656 0000568c 8fdffff8 lw r31,-8(r30) 5657 00005690 001ee820 add r29,r0,r30 5658 00005694 8fdefffc lw r30,-4(r30) 5659 00005698 4be00000 jr r31 5660 0000569c 54000000 nop 5661 000056a0 .endproc _MemoryModuleInit 5662 000056a0 .data 5663 000115cc .align 2 5664 000115cc _mapnum42_LF5: 5665 000115cc 00000000 .word 0 5666 000115d0 .align 2 5667 000115d0 LC4_LF5: 5668 000115d0 4552524f .ascii "ERROR AT THIS POINT\n\000" 5668 000115d4 52204154 5668 000115d8 20544849 5668 000115dc 5320504f 5668 000115e0 494e540a 5668 000115e4 00 5669 000115e5 .align 2 5670 000115e8 LC5_LF5: 5671 000115e8 416c6c6f .ascii "Allocating memory, starting with page %d\n\000" 5671 000115ec 63617469 5671 000115f0 6e67206d 5671 000115f4 656d6f72 5671 000115f8 792c2073 5671 000115fc 74617274 5671 00011600 696e6720 5671 00011604 77697468 5671 00011608 20706167 5671 0001160c 65202564 5671 00011610 0a00 5672 00011612 .align 2 5673 00011614 LC6_LF5: 5674 00011614 416c6c6f .ascii "Allocated memory, from map %d, page %d, map=0x%x.\n\000" 5674 00011618 63617465 5674 0001161c 64206d65 5674 00011620 6d6f7279 5674 00011624 2c206672 5674 00011628 6f6d206d 5674 0001162c 61702025 5674 00011630 642c2070 5674 00011634 61676520 5674 00011638 25642c20 5674 0001163c 6d61703d 5674 00011640 30782578 5674 00011644 2e0a00 5675 00011647 .text 5676 000056a0 .align 2 5677 000056a0 .proc _MemoryAllocPage 5678 000056a0 .global _MemoryAllocPage 5679 000056a0 _MemoryAllocPage: 5680 ; Function 'MemoryAllocPage'; 0 bytes of locals, 6 regs to save. 5681 000056a0 afbefffc sw -4(r29),r30; push fp 5682 000056a4 001df020 add r30,r0,r29; fp = sp 5683 000056a8 afbffff8 sw -8(r29),r31; push ret addr 5684 000056ac 2fbd0020 subui r29,r29,#32; alloc local storage 5685 000056b0 afa20000 sw 0(r29),r2 5686 000056b4 afa30004 sw 4(r29),r3 5687 000056b8 afa40008 sw 8(r29),r4 5688 000056bc afa5000c sw 12(r29),r5 5689 000056c0 afa60010 sw 16(r29),r6 5690 000056c4 afa70014 sw 20(r29),r7 5691 000056c8 3c010001 lhi r1,((_nfreepages_LF5)>>16)&0xffff 5692 000056cc 242116ac addui r1,r1,(_nfreepages_LF5)&0xffff 5693 000056d0 8c210000 lw r1,(r1) 5694 000056d4 64210000 snei r1,r1,#0 5695 000056d8 1420002c bnez r1,L111_LF5 5696 000056dc 54000000 nop; not filled. 5697 000056e0 23bdfff8 addi r29,r29,#-8 5698 000056e4 3c070001 lhi r7,((LC4_LF5)>>16)&0xffff 5699 000056e8 24e715d0 addui r7,r7,(LC4_LF5)&0xffff 5700 000056ec afa70000 sw (r29),r7 5701 000056f0 0c007b30 jal _printf 5702 000056f4 54000000 nop; not filled. 5703 000056f8 20010000 addi r1,r0,#0 5704 000056fc 23bd0008 addi r29,r29,#8 5705 00005700 08000238 j L110_LF5 5706 00005704 54000000 nop; not filled. 5707 00005708 L111_LF5: 5708 00005708 23bdfff8 addi r29,r29,#-8 5709 0000570c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 5710 00005710 24424038 addui r2,r2,(_debugstr)&0xffff 5711 00005714 afa20000 sw (r29),r2 5712 00005718 2007006d addi r7,r0,#109 5713 0000571c afa70004 sw 4(r29),r7 5714 00005720 0c000e68 jal _dindex 5715 00005724 54000000 nop; not filled. 5716 00005728 23bd0008 addi r29,r29,#8 5717 0000572c 64210000 snei r1,r1,#0 5718 00005730 1420002c bnez r1,L113_LF5 5719 00005734 54000000 nop; not filled. 5720 00005738 23bdfff8 addi r29,r29,#-8 5721 0000573c afa20000 sw (r29),r2 5722 00005740 2007002b addi r7,r0,#43 5723 00005744 afa70004 sw 4(r29),r7 5724 00005748 0c000e40 jal _dindex 5725 0000574c 54000000 nop; not filled. 5726 00005750 23bd0008 addi r29,r29,#8 5727 00005754 64210000 snei r1,r1,#0 5728 00005758 10200030 beqz r1,L112_LF5 5729 0000575c 54000000 nop; not filled. 5730 00005760 L113_LF5: 5731 00005760 23bdfff8 addi r29,r29,#-8 5732 00005764 3c070001 lhi r7,((LC5_LF5)>>16)&0xffff 5733 00005768 24e715e8 addui r7,r7,(LC5_LF5)&0xffff 5734 0000576c afa70000 sw (r29),r7 5735 00005770 3c010001 lhi r1,((_mapnum42_LF5)>>16)&0xffff 5736 00005774 242115cc addui r1,r1,(_mapnum42_LF5)&0xffff 5737 00005778 8c210000 lw r1,(r1) 5738 0000577c afa10004 sw 4(r29),r1 5739 00005780 0c007aa0 jal _printf 5740 00005784 54000000 nop; not filled. 5741 00005788 23bd0008 addi r29,r29,#8 5742 0000578c L112_LF5: 5743 0000578c 3c020001 lhi r2,((_mapnum42_LF5)>>16)&0xffff 5744 00005790 244215cc addui r2,r2,(_mapnum42_LF5)&0xffff 5745 00005794 8c410000 lw r1,(r2) 5746 00005798 3c040001 lhi r4,((_freepages_LF5)>>16)&0xffff 5747 0000579c 248416b0 addui r4,r4,(_freepages_LF5)&0xffff 5748 000057a0 50210002 slli r1,r1,#0x2 5749 000057a4 00240820 add r1,r1,r4 5750 000057a8 8c210000 lw r1,(r1) 5751 000057ac 64210000 snei r1,r1,#0 5752 000057b0 1420004c bnez r1,L115_LF5 5753 000057b4 54000000 nop; not filled. 5754 000057b8 3c010001 lhi r1,((_freemapmax_LF5)>>16)&0xffff 5755 000057bc 242116a8 addui r1,r1,(_freemapmax_LF5)&0xffff 5756 000057c0 8c230000 lw r3,(r1) 5757 000057c4 L116_LF5: 5758 000057c4 8c410000 lw r1,(r2) 5759 000057c8 20210001 addi r1,r1,#1 5760 000057cc ac410000 sw (r2),r1 5761 000057d0 0023082d sge r1,r1,r3 5762 000057d4 1020000c beqz r1,L114_LF5 5763 000057d8 54000000 nop; not filled. 5764 000057dc 20070000 addi r7,r0,#0 5765 000057e0 ac470000 sw (r2),r7 5766 000057e4 L114_LF5: 5767 000057e4 8c410000 lw r1,(r2) 5768 000057e8 50210002 slli r1,r1,#0x2 5769 000057ec 00240820 add r1,r1,r4 5770 000057f0 8c210000 lw r1,(r1) 5771 000057f4 64210000 snei r1,r1,#0 5772 000057f8 1020ffc8 beqz r1,L116_LF5 5773 000057fc 54000000 nop; not filled. 5774 00005800 L115_LF5: 5775 00005800 3c010001 lhi r1,((_mapnum42_LF5)>>16)&0xffff 5776 00005804 242115cc addui r1,r1,(_mapnum42_LF5)&0xffff 5777 00005808 8c210000 lw r1,(r1) 5778 0000580c 50210002 slli r1,r1,#0x2 5779 00005810 3c070001 lhi r7,((_freepages_LF5)>>16)&0xffff 5780 00005814 24e716b0 addui r7,r7,(_freepages_LF5)&0xffff 5781 00005818 00270820 add r1,r1,r7 5782 0000581c 8c230000 lw r3,(r1) 5783 00005820 201f0000 addi r31,r0,#0 5784 00005824 30610001 andi r1,r3,#1 5785 00005828 14200020 bnez r1,L120_LF5 5786 0000582c 54000000 nop; not filled. 5787 00005830 20020001 addi r2,r0,#1 5788 00005834 L121_LF5: 5789 00005834 23ff0001 addi r31,r31,#1 5790 00005838 005f0804 sll r1,r2,r31 5791 0000583c 00610824 and r1,r3,r1 5792 00005840 64210000 snei r1,r1,#0 5793 00005844 1020ffec beqz r1,L121_LF5 5794 00005848 54000000 nop; not filled. 5795 0000584c L120_LF5: 5796 0000584c 20010001 addi r1,r0,#1 5797 00005850 003f1004 sll r2,r1,r31 5798 00005854 3c010001 lhi r1,((_negativeone_LF5)>>16)&0xffff 5799 00005858 2421153c addui r1,r1,(_negativeone_LF5)&0xffff 5800 0000585c 8c210000 lw r1,(r1) 5801 00005860 00412026 xor r4,r2,r1 5802 00005864 3c050001 lhi r5,((_mapnum42_LF5)>>16)&0xffff 5803 00005868 24a515cc addui r5,r5,(_mapnum42_LF5)&0xffff 5804 0000586c 8ca30000 lw r3,(r5) 5805 00005870 3c060001 lhi r6,((_freepages_LF5)>>16)&0xffff 5806 00005874 24c616b0 addui r6,r6,(_freepages_LF5)&0xffff 5807 00005878 50610002 slli r1,r3,#0x2 5808 0000587c 00261020 add r2,r1,r6 5809 00005880 8c410000 lw r1,(r2) 5810 00005884 00240824 and r1,r1,r4 5811 00005888 ac410000 sw (r2),r1 5812 0000588c 50610005 slli r1,r3,#0x5 5813 00005890 003f1820 add r3,r1,r31 5814 00005894 23bdfff8 addi r29,r29,#-8 5815 00005898 3c020001 lhi r2,((_debugstr)>>16)&0xffff 5816 0000589c 24424038 addui r2,r2,(_debugstr)&0xffff 5817 000058a0 afa20000 sw (r29),r2 5818 000058a4 2007006d addi r7,r0,#109 5819 000058a8 afa70004 sw 4(r29),r7 5820 000058ac 0c000cdc jal _dindex 5821 000058b0 54000000 nop; not filled. 5822 000058b4 23bd0008 addi r29,r29,#8 5823 000058b8 64210000 snei r1,r1,#0 5824 000058bc 1420002c bnez r1,L126_LF5 5825 000058c0 54000000 nop; not filled. 5826 000058c4 23bdfff8 addi r29,r29,#-8 5827 000058c8 afa20000 sw (r29),r2 5828 000058cc 2007002b addi r7,r0,#43 5829 000058d0 afa70004 sw 4(r29),r7 5830 000058d4 0c000cb4 jal _dindex 5831 000058d8 54000000 nop; not filled. 5832 000058dc 23bd0008 addi r29,r29,#8 5833 000058e0 64210000 snei r1,r1,#0 5834 000058e4 1020003c beqz r1,L125_LF5 5835 000058e8 54000000 nop; not filled. 5836 000058ec L126_LF5: 5837 000058ec 23bdfff0 addi r29,r29,#-16 5838 000058f0 3c070001 lhi r7,((LC6_LF5)>>16)&0xffff 5839 000058f4 24e71614 addui r7,r7,(LC6_LF5)&0xffff 5840 000058f8 afa70000 sw (r29),r7 5841 000058fc 8ca10000 lw r1,(r5) 5842 00005900 afa10004 sw 4(r29),r1 5843 00005904 afa30008 sw 8(r29),r3 5844 00005908 50210002 slli r1,r1,#0x2 5845 0000590c 00260820 add r1,r1,r6 5846 00005910 8c210000 lw r1,(r1) 5847 00005914 afa1000c sw 12(r29),r1 5848 00005918 0c007908 jal _printf 5849 0000591c 54000000 nop; not filled. 5850 00005920 23bd0010 addi r29,r29,#16 5851 00005924 L125_LF5: 5852 00005924 3c010001 lhi r1,((_nfreepages_LF5)>>16)&0xffff 5853 00005928 242116ac addui r1,r1,(_nfreepages_LF5)&0xffff 5854 0000592c 8c220000 lw r2,(r1) 5855 00005930 2042ffff addi r2,r2,#-1 5856 00005934 ac220000 sw (r1),r2 5857 00005938 00030820 add r1,r0,r3 5858 0000593c L110_LF5: 5859 0000593c 8fa20000 lw r2,0(r29) 5860 00005940 8fa30004 lw r3,4(r29) 5861 00005944 8fa40008 lw r4,8(r29) 5862 00005948 8fa5000c lw r5,12(r29) 5863 0000594c 8fa60010 lw r6,16(r29) 5864 00005950 8fa70014 lw r7,20(r29) 5865 00005954 8fdffff8 lw r31,-8(r30) 5866 00005958 001ee820 add r29,r0,r30 5867 0000595c 8fdefffc lw r30,-4(r30) 5868 00005960 4be00000 jr r31 5869 00005964 54000000 nop 5870 00005968 .endproc _MemoryAllocPage 5871 00005968 .data 5872 00011647 .align 2 5873 00011648 LC7_LF5: 5874 00011648 46726565 .ascii "Freed page 0x%x, %d remaining.\n\000" 5874 0001164c 64207061 5874 00011650 67652030 5874 00011654 7825782c 5874 00011658 20256420 5874 0001165c 72656d61 5874 00011660 696e696e 5874 00011664 672e0a00 5875 00011668 .text 5876 00005968 .align 2 5877 00005968 .proc _MemoryFreePage 5878 00005968 .global _MemoryFreePage 5879 00005968 _MemoryFreePage: 5880 ; Function 'MemoryFreePage'; 0 bytes of locals, 6 regs to save. 5881 00005968 afbefffc sw -4(r29),r30; push fp 5882 0000596c 001df020 add r30,r0,r29; fp = sp 5883 00005970 afbffff8 sw -8(r29),r31; push ret addr 5884 00005974 2fbd0020 subui r29,r29,#32; alloc local storage 5885 00005978 afa20000 sw 0(r29),r2 5886 0000597c afa30004 sw 4(r29),r3 5887 00005980 afa40008 sw 8(r29),r4 5888 00005984 afa5000c sw 12(r29),r5 5889 00005988 afa60010 sw 16(r29),r6 5890 0000598c afa70014 sw 20(r29),r7 5891 00005990 8fc60000 lw r6,(r30) 5892 00005994 20030001 addi r3,r0,#1 5893 00005998 00061020 add r2,r0,r6 5894 0000599c 74c10000 sgei r1,r6,#0 5895 000059a0 14200008 bnez r1,L129_LF5 5896 000059a4 54000000 nop; not filled. 5897 000059a8 20c2001f addi r2,r6,#31 5898 000059ac L129_LF5: 5899 000059ac 5c450005 srai r5,r2,#0x5 5900 000059b0 50a10005 slli r1,r5,#0x5 5901 000059b4 00c10822 sub r1,r6,r1 5902 000059b8 00611804 sll r3,r3,r1 5903 000059bc 3c010001 lhi r1,((_negativeone_LF5)>>16)&0xffff 5904 000059c0 2421153c addui r1,r1,(_negativeone_LF5)&0xffff 5905 000059c4 8c210000 lw r1,(r1) 5906 000059c8 00611026 xor r2,r3,r1 5907 000059cc 50a10002 slli r1,r5,#0x2 5908 000059d0 3c070001 lhi r7,((_freepages_LF5)>>16)&0xffff 5909 000059d4 24e716b0 addui r7,r7,(_freepages_LF5)&0xffff 5910 000059d8 00272020 add r4,r1,r7 5911 000059dc 8c810000 lw r1,(r4) 5912 000059e0 00220824 and r1,r1,r2 5913 000059e4 00230825 or r1,r1,r3 5914 000059e8 ac810000 sw (r4),r1 5915 000059ec 23bdfff8 addi r29,r29,#-8 5916 000059f0 3c070001 lhi r7,((_debugstr)>>16)&0xffff 5917 000059f4 24e74038 addui r7,r7,(_debugstr)&0xffff 5918 000059f8 afa70000 sw (r29),r7 5919 000059fc 2007006d addi r7,r0,#109 5920 00005a00 afa70004 sw 4(r29),r7 5921 00005a04 0c000b84 jal _dindex 5922 00005a08 54000000 nop; not filled. 5923 00005a0c 23bd0008 addi r29,r29,#8 5924 00005a10 64210000 snei r1,r1,#0 5925 00005a14 14200034 bnez r1,L133_LF5 5926 00005a18 54000000 nop; not filled. 5927 00005a1c 23bdfff8 addi r29,r29,#-8 5928 00005a20 3c070001 lhi r7,((_debugstr)>>16)&0xffff 5929 00005a24 24e74038 addui r7,r7,(_debugstr)&0xffff 5930 00005a28 afa70000 sw (r29),r7 5931 00005a2c 2007002b addi r7,r0,#43 5932 00005a30 afa70004 sw 4(r29),r7 5933 00005a34 0c000b54 jal _dindex 5934 00005a38 54000000 nop; not filled. 5935 00005a3c 23bd0008 addi r29,r29,#8 5936 00005a40 64210000 snei r1,r1,#0 5937 00005a44 1020002c beqz r1,L128_LF5 5938 00005a48 54000000 nop; not filled. 5939 00005a4c L133_LF5: 5940 00005a4c 23bdfff0 addi r29,r29,#-16 5941 00005a50 3c070001 lhi r7,((LC0_LF5)>>16)&0xffff 5942 00005a54 24e71540 addui r7,r7,(LC0_LF5)&0xffff 5943 00005a58 afa70000 sw (r29),r7 5944 00005a5c afa50004 sw 4(r29),r5 5945 00005a60 8c840000 lw r4,(r4) 5946 00005a64 afa40008 sw 8(r29),r4 5947 00005a68 0c0077b8 jal _printf 5948 00005a6c 54000000 nop; not filled. 5949 00005a70 23bd0010 addi r29,r29,#16 5950 00005a74 L128_LF5: 5951 00005a74 3c020001 lhi r2,((_nfreepages_LF5)>>16)&0xffff 5952 00005a78 244216ac addui r2,r2,(_nfreepages_LF5)&0xffff 5953 00005a7c 8c410000 lw r1,(r2) 5954 00005a80 20210001 addi r1,r1,#1 5955 00005a84 ac410000 sw (r2),r1 5956 00005a88 23bdfff8 addi r29,r29,#-8 5957 00005a8c 3c030001 lhi r3,((_debugstr)>>16)&0xffff 5958 00005a90 24634038 addui r3,r3,(_debugstr)&0xffff 5959 00005a94 afa30000 sw (r29),r3 5960 00005a98 2007006d addi r7,r0,#109 5961 00005a9c afa70004 sw 4(r29),r7 5962 00005aa0 0c000ae8 jal _dindex 5963 00005aa4 54000000 nop; not filled. 5964 00005aa8 23bd0008 addi r29,r29,#8 5965 00005aac 64210000 snei r1,r1,#0 5966 00005ab0 1420002c bnez r1,L135_LF5 5967 00005ab4 54000000 nop; not filled. 5968 00005ab8 23bdfff8 addi r29,r29,#-8 5969 00005abc afa30000 sw (r29),r3 5970 00005ac0 2007002b addi r7,r0,#43 5971 00005ac4 afa70004 sw 4(r29),r7 5972 00005ac8 0c000ac0 jal _dindex 5973 00005acc 54000000 nop; not filled. 5974 00005ad0 23bd0008 addi r29,r29,#8 5975 00005ad4 64210000 snei r1,r1,#0 5976 00005ad8 1020002c beqz r1,L134_LF5 5977 00005adc 54000000 nop; not filled. 5978 00005ae0 L135_LF5: 5979 00005ae0 23bdfff0 addi r29,r29,#-16 5980 00005ae4 3c070001 lhi r7,((LC7_LF5)>>16)&0xffff 5981 00005ae8 24e71648 addui r7,r7,(LC7_LF5)&0xffff 5982 00005aec afa70000 sw (r29),r7 5983 00005af0 afa60004 sw 4(r29),r6 5984 00005af4 8c420000 lw r2,(r2) 5985 00005af8 afa20008 sw 8(r29),r2 5986 00005afc 0c007724 jal _printf 5987 00005b00 54000000 nop; not filled. 5988 00005b04 23bd0010 addi r29,r29,#16 5989 00005b08 L134_LF5: 5990 00005b08 8fa20000 lw r2,0(r29) 5991 00005b0c 8fa30004 lw r3,4(r29) 5992 00005b10 8fa40008 lw r4,8(r29) 5993 00005b14 8fa5000c lw r5,12(r29) 5994 00005b18 8fa60010 lw r6,16(r29) 5995 00005b1c 8fa70014 lw r7,20(r29) 5996 00005b20 8fdffff8 lw r31,-8(r30) 5997 00005b24 001ee820 add r29,r0,r30 5998 00005b28 8fdefffc lw r30,-4(r30) 5999 00005b2c 4be00000 jr r31 6000 00005b30 54000000 nop 6001 00005b34 .endproc _MemoryFreePage 6002 00005b34 .align 2 6003 00005b34 .proc _MemoryTranslateUserToSystem 6004 00005b34 .global _MemoryTranslateUserToSystem 6005 00005b34 _MemoryTranslateUserToSystem: 6006 ; Function 'MemoryTranslateUserToSystem'; 0 bytes of locals, 3 regs to save. 6007 00005b34 afbefffc sw -4(r29),r30; push fp 6008 00005b38 001df020 add r30,r0,r29; fp = sp 6009 00005b3c afbffff8 sw -8(r29),r31; push ret addr 6010 00005b40 2fbd0018 subui r29,r29,#24; alloc local storage 6011 00005b44 afa20000 sw 0(r29),r2 6012 00005b48 afa30004 sw 4(r29),r3 6013 00005b4c afa40008 sw 8(r29),r4 6014 00005b50 8fc30000 lw r3,(r30) 6015 00005b54 8fc10004 lw r1,4(r30) 6016 00005b58 583f0010 srli r31,r1,#0x10 6017 00005b5c 3022ffff andi r2,r1,#0xffff 6018 00005b60 8c6100a0 lw r1,160(r3) 6019 00005b64 03e1082b sgt r1,r31,r1 6020 00005b68 14200024 bnez r1,L139_LF5 6021 00005b6c 54000000 nop; not filled. 6022 00005b70 53e10002 slli r1,r31,#0x2 6023 00005b74 00230820 add r1,r1,r3 6024 00005b78 8c210060 lw r1,96(r1) 6025 00005b7c 2004fff8 addi r4,r0,#-8 6026 00005b80 00240824 and r1,r1,r4 6027 00005b84 00220820 add r1,r1,r2 6028 00005b88 08000008 j L140_LF5 6029 00005b8c 54000000 nop; not filled. 6030 00005b90 L139_LF5: 6031 00005b90 20010000 addi r1,r0,#0 6032 00005b94 L140_LF5: 6033 00005b94 8fa20000 lw r2,0(r29) 6034 00005b98 8fa30004 lw r3,4(r29) 6035 00005b9c 8fa40008 lw r4,8(r29) 6036 00005ba0 8fdffff8 lw r31,-8(r30) 6037 00005ba4 001ee820 add r29,r0,r30 6038 00005ba8 8fdefffc lw r30,-4(r30) 6039 00005bac 4be00000 jr r31 6040 00005bb0 54000000 nop 6041 00005bb4 .endproc _MemoryTranslateUserToSystem 6042 00005bb4 .align 2 6043 00005bb4 .proc _MemoryCopySystemToUser 6044 00005bb4 .global _MemoryCopySystemToUser 6045 00005bb4 _MemoryCopySystemToUser: 6046 ; Function 'MemoryCopySystemToUser'; 0 bytes of locals, 8 regs to save. 6047 00005bb4 afbefffc sw -4(r29),r30; push fp 6048 00005bb8 001df020 add r30,r0,r29; fp = sp 6049 00005bbc afbffff8 sw -8(r29),r31; push ret addr 6050 00005bc0 2fbd0028 subui r29,r29,#40; alloc local storage 6051 00005bc4 afa20000 sw 0(r29),r2 6052 00005bc8 afa30004 sw 4(r29),r3 6053 00005bcc afa40008 sw 8(r29),r4 6054 00005bd0 afa5000c sw 12(r29),r5 6055 00005bd4 afa60010 sw 16(r29),r6 6056 00005bd8 afa70014 sw 20(r29),r7 6057 00005bdc afa80018 sw 24(r29),r8 6058 00005be0 afa9001c sw 28(r29),r9 6059 00005be4 8fc70000 lw r7,(r30) 6060 00005be8 8fc50004 lw r5,4(r30) 6061 00005bec 8fc40008 lw r4,8(r30) 6062 00005bf0 8fc3000c lw r3,12(r30) 6063 00005bf4 20060000 addi r6,r0,#0 6064 00005bf8 6c610000 sgti r1,r3,#0 6065 00005bfc 102000a4 beqz r1,L167_LF5 6066 00005c00 54000000 nop; not filled. 6067 00005c04 3c080001 lhi r8,#1 6068 00005c08 25080000 addui r8,r8,#0 6069 00005c0c L168_LF5: 6070 00005c0c 58820010 srli r2,r4,#0x10 6071 00005c10 309fffff andi r31,r4,#0xffff 6072 00005c14 8ce100a0 lw r1,160(r7) 6073 00005c18 0041082b sgt r1,r2,r1 6074 00005c1c 10200010 beqz r1,L170_LF5 6075 00005c20 54000000 nop; not filled. 6076 00005c24 201f0000 addi r31,r0,#0 6077 00005c28 0800001c j L169_LF5 6078 00005c2c 54000000 nop; not filled. 6079 00005c30 L170_LF5: 6080 00005c30 50410002 slli r1,r2,#0x2 6081 00005c34 00270820 add r1,r1,r7 6082 00005c38 8c210060 lw r1,96(r1) 6083 00005c3c 2009fff8 addi r9,r0,#-8 6084 00005c40 00290824 and r1,r1,r9 6085 00005c44 003ff820 add r31,r1,r31 6086 00005c48 L169_LF5: 6087 00005c48 67e10000 snei r1,r31,#0 6088 00005c4c 10200054 beqz r1,L167_LF5 6089 00005c50 54000000 nop; not filled. 6090 00005c54 33e1ffff andi r1,r31,#65535 6091 00005c58 01011022 sub r2,r8,r1 6092 00005c5c 0043082b sgt r1,r2,r3 6093 00005c60 10200008 beqz r1,L172_LF5 6094 00005c64 54000000 nop; not filled. 6095 00005c68 00031020 add r2,r0,r3 6096 00005c6c L172_LF5: 6097 00005c6c 23bdfff0 addi r29,r29,#-16 6098 00005c70 afa50000 sw (r29),r5 6099 00005c74 afbf0004 sw 4(r29),r31 6100 00005c78 afa20008 sw 8(r29),r2 6101 00005c7c 0c000c9c jal _bcopy 6102 00005c80 54000000 nop; not filled. 6103 00005c84 23bd0010 addi r29,r29,#16 6104 00005c88 00621822 sub r3,r3,r2 6105 00005c8c 00c23020 add r6,r6,r2 6106 00005c90 00a22820 add r5,r5,r2 6107 00005c94 00822020 add r4,r4,r2 6108 00005c98 6c610000 sgti r1,r3,#0 6109 00005c9c 1420ff6c bnez r1,L168_LF5 6110 00005ca0 54000000 nop; not filled. 6111 00005ca4 L167_LF5: 6112 00005ca4 00060820 add r1,r0,r6 6113 00005ca8 8fa20000 lw r2,0(r29) 6114 00005cac 8fa30004 lw r3,4(r29) 6115 00005cb0 8fa40008 lw r4,8(r29) 6116 00005cb4 8fa5000c lw r5,12(r29) 6117 00005cb8 8fa60010 lw r6,16(r29) 6118 00005cbc 8fa70014 lw r7,20(r29) 6119 00005cc0 8fa80018 lw r8,24(r29) 6120 00005cc4 8fa9001c lw r9,28(r29) 6121 00005cc8 8fdffff8 lw r31,-8(r30) 6122 00005ccc 001ee820 add r29,r0,r30 6123 00005cd0 8fdefffc lw r30,-4(r30) 6124 00005cd4 4be00000 jr r31 6125 00005cd8 54000000 nop 6126 00005cdc .endproc _MemoryCopySystemToUser 6127 00005cdc .align 2 6128 00005cdc .proc _MemoryCopyUserToSystem 6129 00005cdc .global _MemoryCopyUserToSystem 6130 00005cdc _MemoryCopyUserToSystem: 6131 ; Function 'MemoryCopyUserToSystem'; 0 bytes of locals, 8 regs to save. 6132 00005cdc afbefffc sw -4(r29),r30; push fp 6133 00005ce0 001df020 add r30,r0,r29; fp = sp 6134 00005ce4 afbffff8 sw -8(r29),r31; push ret addr 6135 00005ce8 2fbd0028 subui r29,r29,#40; alloc local storage 6136 00005cec afa20000 sw 0(r29),r2 6137 00005cf0 afa30004 sw 4(r29),r3 6138 00005cf4 afa40008 sw 8(r29),r4 6139 00005cf8 afa5000c sw 12(r29),r5 6140 00005cfc afa60010 sw 16(r29),r6 6141 00005d00 afa70014 sw 20(r29),r7 6142 00005d04 afa80018 sw 24(r29),r8 6143 00005d08 afa9001c sw 28(r29),r9 6144 00005d0c 8fc70000 lw r7,(r30) 6145 00005d10 8fc50008 lw r5,8(r30) 6146 00005d14 8fc40004 lw r4,4(r30) 6147 00005d18 8fc3000c lw r3,12(r30) 6148 00005d1c 20060000 addi r6,r0,#0 6149 00005d20 6c610000 sgti r1,r3,#0 6150 00005d24 102000a4 beqz r1,L191_LF5 6151 00005d28 54000000 nop; not filled. 6152 00005d2c 3c080001 lhi r8,#1 6153 00005d30 25080000 addui r8,r8,#0 6154 00005d34 L192_LF5: 6155 00005d34 58820010 srli r2,r4,#0x10 6156 00005d38 309fffff andi r31,r4,#0xffff 6157 00005d3c 8ce100a0 lw r1,160(r7) 6158 00005d40 0041082b sgt r1,r2,r1 6159 00005d44 10200010 beqz r1,L194_LF5 6160 00005d48 54000000 nop; not filled. 6161 00005d4c 201f0000 addi r31,r0,#0 6162 00005d50 0800001c j L193_LF5 6163 00005d54 54000000 nop; not filled. 6164 00005d58 L194_LF5: 6165 00005d58 50410002 slli r1,r2,#0x2 6166 00005d5c 00270820 add r1,r1,r7 6167 00005d60 8c210060 lw r1,96(r1) 6168 00005d64 2009fff8 addi r9,r0,#-8 6169 00005d68 00290824 and r1,r1,r9 6170 00005d6c 003ff820 add r31,r1,r31 6171 00005d70 L193_LF5: 6172 00005d70 67e10000 snei r1,r31,#0 6173 00005d74 10200054 beqz r1,L191_LF5 6174 00005d78 54000000 nop; not filled. 6175 00005d7c 33e1ffff andi r1,r31,#65535 6176 00005d80 01011022 sub r2,r8,r1 6177 00005d84 0043082b sgt r1,r2,r3 6178 00005d88 10200008 beqz r1,L197_LF5 6179 00005d8c 54000000 nop; not filled. 6180 00005d90 00031020 add r2,r0,r3 6181 00005d94 L197_LF5: 6182 00005d94 23bdfff0 addi r29,r29,#-16 6183 00005d98 afbf0000 sw (r29),r31 6184 00005d9c afa50004 sw 4(r29),r5 6185 00005da0 afa20008 sw 8(r29),r2 6186 00005da4 0c000b74 jal _bcopy 6187 00005da8 54000000 nop; not filled. 6188 00005dac 23bd0010 addi r29,r29,#16 6189 00005db0 00621822 sub r3,r3,r2 6190 00005db4 00c23020 add r6,r6,r2 6191 00005db8 00a22820 add r5,r5,r2 6192 00005dbc 00822020 add r4,r4,r2 6193 00005dc0 6c610000 sgti r1,r3,#0 6194 00005dc4 1420ff6c bnez r1,L192_LF5 6195 00005dc8 54000000 nop; not filled. 6196 00005dcc L191_LF5: 6197 00005dcc 00060820 add r1,r0,r6 6198 00005dd0 8fa20000 lw r2,0(r29) 6199 00005dd4 8fa30004 lw r3,4(r29) 6200 00005dd8 8fa40008 lw r4,8(r29) 6201 00005ddc 8fa5000c lw r5,12(r29) 6202 00005de0 8fa60010 lw r6,16(r29) 6203 00005de4 8fa70014 lw r7,20(r29) 6204 00005de8 8fa80018 lw r8,24(r29) 6205 00005dec 8fa9001c lw r9,28(r29) 6206 00005df0 8fdffff8 lw r31,-8(r30) 6207 00005df4 001ee820 add r29,r0,r30 6208 00005df8 8fdefffc lw r30,-4(r30) 6209 00005dfc 4be00000 jr r31 6210 00005e00 54000000 nop 6211 00005e04 .endproc _MemoryCopyUserToSystem 6212 00005e04 .align 2 6213 00005e04 .proc _MemorySetupPte 6214 00005e04 .global _MemorySetupPte 6215 00005e04 _MemorySetupPte: 6216 ; Function 'MemorySetupPte'; 0 bytes of locals, 0 regs to save. 6217 00005e04 afbefffc sw -4(r29),r30; push fp 6218 00005e08 001df020 add r30,r0,r29; fp = sp 6219 00005e0c afbffff8 sw -8(r29),r31; push ret addr 6220 00005e10 2fbd0008 subui r29,r29,#8; alloc local storage 6221 00005e14 8fc10000 lw r1,(r30) 6222 00005e18 50210010 slli r1,r1,#0x10 6223 00005e1c 34210001 ori r1,r1,#1 6224 00005e20 8fdffff8 lw r31,-8(r30) 6225 00005e24 001ee820 add r29,r0,r30 6226 00005e28 8fdefffc lw r30,-4(r30) 6227 00005e2c 4be00000 jr r31 6228 00005e30 54000000 nop 6229 00005e34 .endproc _MemorySetupPte 6230 00005e34 .align 2 6231 00005e34 .proc _MemoryFreePte 6232 00005e34 .global _MemoryFreePte 6233 00005e34 _MemoryFreePte: 6234 ; Function 'MemoryFreePte'; 0 bytes of locals, 0 regs to save. 6235 00005e34 afbefffc sw -4(r29),r30; push fp 6236 00005e38 001df020 add r30,r0,r29; fp = sp 6237 00005e3c afbffff8 sw -8(r29),r31; push ret addr 6238 00005e40 2fbd0008 subui r29,r29,#8; alloc local storage 6239 00005e44 23bdfff8 addi r29,r29,#-8 6240 00005e48 97c10000 lhu r1,(r30) 6241 00005e4c afa10000 sw (r29),r1 6242 00005e50 0ffffb14 jal _MemoryFreePage 6243 00005e54 54000000 nop; not filled. 6244 00005e58 23bd0008 addi r29,r29,#8 6245 00005e5c 8fdffff8 lw r31,-8(r30) 6246 00005e60 001ee820 add r29,r0,r30 6247 00005e64 8fdefffc lw r30,-4(r30) 6248 00005e68 4be00000 jr r31 6249 00005e6c 54000000 nop 6250 00005e70 .endproc _MemoryFreePte 6251 00005e70 .align 2 6252 00005e70 .proc _MemoryPteToPage 6253 00005e70 .global _MemoryPteToPage 6254 00005e70 _MemoryPteToPage: 6255 ; Function 'MemoryPteToPage'; 0 bytes of locals, 0 regs to save. 6256 00005e70 afbefffc sw -4(r29),r30; push fp 6257 00005e74 001df020 add r30,r0,r29; fp = sp 6258 00005e78 afbffff8 sw -8(r29),r31; push ret addr 6259 00005e7c 2fbd0008 subui r29,r29,#8; alloc local storage 6260 00005e80 8fc10000 lw r1,(r30) 6261 00005e84 201ffff8 addi r31,r0,#-8 6262 00005e88 003f0824 and r1,r1,r31 6263 00005e8c 8fdffff8 lw r31,-8(r30) 6264 00005e90 001ee820 add r29,r0,r30 6265 00005e94 8fdefffc lw r30,-4(r30) 6266 00005e98 4be00000 jr r31 6267 00005e9c 54000000 nop 6268 00005ea0 .endproc _MemoryPteToPage 6269 00005ea0 .data 6270 00011668 .align 2 6271 00011668 _invalidOps61_LF5: 6272 00011668 00003404 .word 13316 6273 0001166c .align 2 6274 0001166c LC8_LF5: 6275 0001166c 4f706572 .ascii "Operand for instruction %08x is 0x%x (reg=<%d,0x%x>)\n\000" 6275 00011670 616e6420 6275 00011674 666f7220 6275 00011678 696e7374 6275 0001167c 72756374 6275 00011680 696f6e20 6275 00011684 25303878 6275 00011688 20697320 6275 0001168c 30782578 6275 00011690 20287265 6275 00011694 673d3c25 6275 00011698 642c3078 6275 0001169c 25783e29 6275 000116a0 0a00 6276 000116a2 .text 6277 00005ea0 .align 2 6278 00005ea0 .proc _MemoryGetOperandAddress 6279 00005ea0 .global _MemoryGetOperandAddress 6280 00005ea0 _MemoryGetOperandAddress: 6281 ; Function 'MemoryGetOperandAddress'; 0 bytes of locals, 6 regs to save. 6282 00005ea0 afbefffc sw -4(r29),r30; push fp 6283 00005ea4 001df020 add r30,r0,r29; fp = sp 6284 00005ea8 afbffff8 sw -8(r29),r31; push ret addr 6285 00005eac 2fbd0020 subui r29,r29,#32; alloc local storage 6286 00005eb0 afa20000 sw 0(r29),r2 6287 00005eb4 afa30004 sw 4(r29),r3 6288 00005eb8 afa40008 sw 8(r29),r4 6289 00005ebc afa5000c sw 12(r29),r5 6290 00005ec0 afa60010 sw 16(r29),r6 6291 00005ec4 afa70014 sw 20(r29),r7 6292 00005ec8 8fc20000 lw r2,(r30) 6293 00005ecc 8fc50004 lw r5,4(r30) 6294 00005ed0 58a1001a srli r1,r5,#0x1a 6295 00005ed4 203fffe0 addi r31,r1,#-32 6296 00005ed8 6fe1000f sgtui r1,r31,#15 6297 00005edc 14200020 bnez r1,L214_LF5 6298 00005ee0 54000000 nop; not filled. 6299 00005ee4 3c010001 lhi r1,((_invalidOps61_LF5)>>16)&0xffff 6300 00005ee8 24211668 addui r1,r1,(_invalidOps61_LF5)&0xffff 6301 00005eec 8c210000 lw r1,(r1) 6302 00005ef0 003f0806 srl r1,r1,r31 6303 00005ef4 30210001 andi r1,r1,#1 6304 00005ef8 10200010 beqz r1,L213_LF5 6305 00005efc 54000000 nop; not filled. 6306 00005f00 L214_LF5: 6307 00005f00 2001ffff addi r1,r0,#-1 6308 00005f04 080000c4 j L218_LF5 6309 00005f08 54000000 nop; not filled. 6310 00005f0c L213_LF5: 6311 00005f0c 58a10015 srli r1,r5,#0x15 6312 00005f10 3026001f andi r6,r1,#31 6313 00005f14 30bfffff andi r31,r5,#0xffff 6314 00005f18 5be1000f srli r1,r31,#0xf 6315 00005f1c 10200010 beqz r1,L215_LF5 6316 00005f20 54000000 nop; not filled. 6317 00005f24 3c07ffff lhi r7,#-1 6318 00005f28 24e70000 addui r7,r7,#0 6319 00005f2c 03e7f825 or r31,r31,r7 6320 00005f30 L215_LF5: 6321 00005f30 8c420000 lw r2,(r2) 6322 00005f34 50c10002 slli r1,r6,#0x2 6323 00005f38 00220820 add r1,r1,r2 6324 00005f3c 8c230028 lw r3,40(r1) 6325 00005f40 007f2020 add r4,r3,r31 6326 00005f44 23bdfff8 addi r29,r29,#-8 6327 00005f48 3c020001 lhi r2,((_debugstr)>>16)&0xffff 6328 00005f4c 24424038 addui r2,r2,(_debugstr)&0xffff 6329 00005f50 afa20000 sw (r29),r2 6330 00005f54 2007006d addi r7,r0,#109 6331 00005f58 afa70004 sw 4(r29),r7 6332 00005f5c 0c00062c jal _dindex 6333 00005f60 54000000 nop; not filled. 6334 00005f64 23bd0008 addi r29,r29,#8 6335 00005f68 64210000 snei r1,r1,#0 6336 00005f6c 1420002c bnez r1,L217_LF5 6337 00005f70 54000000 nop; not filled. 6338 00005f74 23bdfff8 addi r29,r29,#-8 6339 00005f78 afa20000 sw (r29),r2 6340 00005f7c 2007002b addi r7,r0,#43 6341 00005f80 afa70004 sw 4(r29),r7 6342 00005f84 0c000604 jal _dindex 6343 00005f88 54000000 nop; not filled. 6344 00005f8c 23bd0008 addi r29,r29,#8 6345 00005f90 64210000 snei r1,r1,#0 6346 00005f94 10200030 beqz r1,L216_LF5 6347 00005f98 54000000 nop; not filled. 6348 00005f9c L217_LF5: 6349 00005f9c 23bdffe8 addi r29,r29,#-24 6350 00005fa0 3c070001 lhi r7,((LC8_LF5)>>16)&0xffff 6351 00005fa4 24e7166c addui r7,r7,(LC8_LF5)&0xffff 6352 00005fa8 afa70000 sw (r29),r7 6353 00005fac afa50004 sw 4(r29),r5 6354 00005fb0 afa40008 sw 8(r29),r4 6355 00005fb4 afa6000c sw 12(r29),r6 6356 00005fb8 afa30010 sw 16(r29),r3 6357 00005fbc 0c007264 jal _printf 6358 00005fc0 54000000 nop; not filled. 6359 00005fc4 23bd0018 addi r29,r29,#24 6360 00005fc8 L216_LF5: 6361 00005fc8 00040820 add r1,r0,r4 6362 00005fcc L218_LF5: 6363 00005fcc 8fa20000 lw r2,0(r29) 6364 00005fd0 8fa30004 lw r3,4(r29) 6365 00005fd4 8fa40008 lw r4,8(r29) 6366 00005fd8 8fa5000c lw r5,12(r29) 6367 00005fdc 8fa60010 lw r6,16(r29) 6368 00005fe0 8fa70014 lw r7,20(r29) 6369 00005fe4 8fdffff8 lw r31,-8(r30) 6370 00005fe8 001ee820 add r29,r0,r30 6371 00005fec 8fdefffc lw r30,-4(r30) 6372 00005ff0 4be00000 jr r31 6373 00005ff4 54000000 nop 6374 00005ff8 .endproc _MemoryGetOperandAddress 6375 00005ff8 .data 6376 000116a2 .align 2 6377 000116a4 _pagestart_LF5: 6378 000116a4 .space 4 6379 000116a8 .align 2 6380 000116a8 _freemapmax_LF5: 6381 000116a8 .space 4 6382 000116ac .align 2 6383 000116ac _nfreepages_LF5: 6384 000116ac .space 4 6385 000116b0 .align 2 6386 000116b0 _freepages_LF5: 6387 000116b0 .space 8192 6388 ; Compiled by GCC 6389 000136b0 .text 6390 00005ff8 .align 2 6391 00005ff8 .proc _isspace 6392 00005ff8 .global _isspace 6393 00005ff8 _isspace: 6394 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 6395 00005ff8 afbefffc sw -4(r29),r30; push fp 6396 00005ffc 001df020 add r30,r0,r29; fp = sp 6397 00006000 afbffff8 sw -8(r29),r31; push ret addr 6398 00006004 2fbd0010 subui r29,r29,#16; alloc local storage 6399 00006008 afa20000 sw 0(r29),r2 6400 0000600c 83c20003 lb r2,3(r30) 6401 00006010 201f0000 addi r31,r0,#0 6402 00006014 304100ff andi r1,r2,#0x00ff 6403 00006018 60210020 seqi r1,r1,#32 6404 0000601c 14200018 bnez r1,L6_LF6 6405 00006020 54000000 nop; not filled. 6406 00006024 2041fff7 addi r1,r2,#-9 6407 00006028 302100ff andi r1,r1,#0x00ff 6408 0000602c 70210001 sleui r1,r1,#1 6409 00006030 10200008 beqz r1,L5_LF6 6410 00006034 54000000 nop; not filled. 6411 00006038 L6_LF6: 6412 00006038 201f0001 addi r31,r0,#1 6413 0000603c L5_LF6: 6414 0000603c 001f0820 add r1,r0,r31 6415 00006040 8fa20000 lw r2,0(r29) 6416 00006044 8fdffff8 lw r31,-8(r30) 6417 00006048 001ee820 add r29,r0,r30 6418 0000604c 8fdefffc lw r30,-4(r30) 6419 00006050 4be00000 jr r31 6420 00006054 54000000 nop 6421 00006058 .endproc _isspace 6422 00006058 .align 2 6423 00006058 .proc _isxdigit 6424 00006058 .global _isxdigit 6425 00006058 _isxdigit: 6426 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 6427 00006058 afbefffc sw -4(r29),r30; push fp 6428 0000605c 001df020 add r30,r0,r29; fp = sp 6429 00006060 afbffff8 sw -8(r29),r31; push ret addr 6430 00006064 2fbd0010 subui r29,r29,#16; alloc local storage 6431 00006068 afa20000 sw 0(r29),r2 6432 0000606c 83df0003 lb r31,3(r30) 6433 00006070 20020000 addi r2,r0,#0 6434 00006074 23e1ffd0 addi r1,r31,#-48 6435 00006078 302100ff andi r1,r1,#0x00ff 6436 0000607c 70210009 sleui r1,r1,#9 6437 00006080 14200028 bnez r1,L12_LF6 6438 00006084 54000000 nop; not filled. 6439 00006088 23e1ff9f addi r1,r31,#-97 6440 0000608c 302100ff andi r1,r1,#0x00ff 6441 00006090 70210005 sleui r1,r1,#5 6442 00006094 14200014 bnez r1,L12_LF6 6443 00006098 54000000 nop; not filled. 6444 0000609c 33e100ff andi r1,r31,#0x00ff 6445 000060a0 64210041 snei r1,r1,#65 6446 000060a4 14200008 bnez r1,L11_LF6 6447 000060a8 54000000 nop; not filled. 6448 000060ac L12_LF6: 6449 000060ac 20020001 addi r2,r0,#1 6450 000060b0 L11_LF6: 6451 000060b0 00020820 add r1,r0,r2 6452 000060b4 8fa20000 lw r2,0(r29) 6453 000060b8 8fdffff8 lw r31,-8(r30) 6454 000060bc 001ee820 add r29,r0,r30 6455 000060c0 8fdefffc lw r30,-4(r30) 6456 000060c4 4be00000 jr r31 6457 000060c8 54000000 nop 6458 000060cc .endproc _isxdigit 6459 000060cc .align 2 6460 000060cc .proc _dstrcpy 6461 000060cc .global _dstrcpy 6462 000060cc _dstrcpy: 6463 ; Function 'dstrcpy'; 0 bytes of locals, 2 regs to save. 6464 000060cc afbefffc sw -4(r29),r30; push fp 6465 000060d0 001df020 add r30,r0,r29; fp = sp 6466 000060d4 afbffff8 sw -8(r29),r31; push ret addr 6467 000060d8 2fbd0010 subui r29,r29,#16; alloc local storage 6468 000060dc afa20000 sw 0(r29),r2 6469 000060e0 afa30004 sw 4(r29),r3 6470 000060e4 8fdf0000 lw r31,(r30) 6471 000060e8 8fc20004 lw r2,4(r30) 6472 000060ec 001f1820 add r3,r0,r31 6473 000060f0 L19_LF6: 6474 000060f0 80410000 lb r1,(r2) 6475 000060f4 a3e10000 sb (r31),r1 6476 000060f8 20420001 addi r2,r2,#1 6477 000060fc 23ff0001 addi r31,r31,#1 6478 00006100 302100ff andi r1,r1,#0x00ff 6479 00006104 64210000 snei r1,r1,#0 6480 00006108 1420ffe4 bnez r1,L19_LF6 6481 0000610c 54000000 nop; not filled. 6482 00006110 00030820 add r1,r0,r3 6483 00006114 8fa20000 lw r2,0(r29) 6484 00006118 8fa30004 lw r3,4(r29) 6485 0000611c 8fdffff8 lw r31,-8(r30) 6486 00006120 001ee820 add r29,r0,r30 6487 00006124 8fdefffc lw r30,-4(r30) 6488 00006128 4be00000 jr r31 6489 0000612c 54000000 nop 6490 00006130 .endproc _dstrcpy 6491 00006130 .align 2 6492 00006130 .proc _dstrncpy 6493 00006130 .global _dstrncpy 6494 00006130 _dstrncpy: 6495 ; Function 'dstrncpy'; 0 bytes of locals, 3 regs to save. 6496 00006130 afbefffc sw -4(r29),r30; push fp 6497 00006134 001df020 add r30,r0,r29; fp = sp 6498 00006138 afbffff8 sw -8(r29),r31; push ret addr 6499 0000613c 2fbd0018 subui r29,r29,#24; alloc local storage 6500 00006140 afa20000 sw 0(r29),r2 6501 00006144 afa30004 sw 4(r29),r3 6502 00006148 afa40008 sw 8(r29),r4 6503 0000614c 8fc20000 lw r2,(r30) 6504 00006150 8fc30004 lw r3,4(r30) 6505 00006154 8fdf0008 lw r31,8(r30) 6506 00006158 00022020 add r4,r0,r2 6507 0000615c 08000024 j L37_LF6 6508 00006160 54000000 nop; not filled. 6509 00006164 L34_LF6: 6510 00006164 80610000 lb r1,(r3) 6511 00006168 a0410000 sb (r2),r1 6512 0000616c 20630001 addi r3,r3,#1 6513 00006170 20420001 addi r2,r2,#1 6514 00006174 302100ff andi r1,r1,#0x00ff 6515 00006178 64210000 snei r1,r1,#0 6516 0000617c 10200018 beqz r1,L32_LF6 6517 00006180 54000000 nop; not filled. 6518 00006184 L37_LF6: 6519 00006184 001f0820 add r1,r0,r31 6520 00006188 23ffffff addi r31,r31,#-1 6521 0000618c 70210000 slei r1,r1,#0 6522 00006190 1020ffd0 beqz r1,L34_LF6 6523 00006194 54000000 nop; not filled. 6524 00006198 L32_LF6: 6525 00006198 00040820 add r1,r0,r4 6526 0000619c 8fa20000 lw r2,0(r29) 6527 000061a0 8fa30004 lw r3,4(r29) 6528 000061a4 8fa40008 lw r4,8(r29) 6529 000061a8 8fdffff8 lw r31,-8(r30) 6530 000061ac 001ee820 add r29,r0,r30 6531 000061b0 8fdefffc lw r30,-4(r30) 6532 000061b4 4be00000 jr r31 6533 000061b8 54000000 nop 6534 000061bc .endproc _dstrncpy 6535 000061bc .align 2 6536 000061bc .proc _dstrcat 6537 000061bc .global _dstrcat 6538 000061bc _dstrcat: 6539 ; Function 'dstrcat'; 0 bytes of locals, 2 regs to save. 6540 000061bc afbefffc sw -4(r29),r30; push fp 6541 000061c0 001df020 add r30,r0,r29; fp = sp 6542 000061c4 afbffff8 sw -8(r29),r31; push ret addr 6543 000061c8 2fbd0010 subui r29,r29,#16; alloc local storage 6544 000061cc afa20000 sw 0(r29),r2 6545 000061d0 afa30004 sw 4(r29),r3 6546 000061d4 8fdf0000 lw r31,(r30) 6547 000061d8 001f1820 add r3,r0,r31 6548 000061dc 90610000 lbu r1,(r3) 6549 000061e0 64210000 snei r1,r1,#0 6550 000061e4 10200018 beqz r1,L50_LF6 6551 000061e8 54000000 nop; not filled. 6552 000061ec L51_LF6: 6553 000061ec 23ff0001 addi r31,r31,#1 6554 000061f0 93e10000 lbu r1,(r31) 6555 000061f4 64210000 snei r1,r1,#0 6556 000061f8 1420fff0 bnez r1,L51_LF6 6557 000061fc 54000000 nop; not filled. 6558 00006200 L50_LF6: 6559 00006200 001f1020 add r2,r0,r31 6560 00006204 8fdf0004 lw r31,4(r30) 6561 00006208 L54_LF6: 6562 00006208 83e10000 lb r1,(r31) 6563 0000620c a0410000 sb (r2),r1 6564 00006210 23ff0001 addi r31,r31,#1 6565 00006214 20420001 addi r2,r2,#1 6566 00006218 302100ff andi r1,r1,#0x00ff 6567 0000621c 64210000 snei r1,r1,#0 6568 00006220 1420ffe4 bnez r1,L54_LF6 6569 00006224 54000000 nop; not filled. 6570 00006228 00030820 add r1,r0,r3 6571 0000622c 8fa20000 lw r2,0(r29) 6572 00006230 8fa30004 lw r3,4(r29) 6573 00006234 8fdffff8 lw r31,-8(r30) 6574 00006238 001ee820 add r29,r0,r30 6575 0000623c 8fdefffc lw r30,-4(r30) 6576 00006240 4be00000 jr r31 6577 00006244 54000000 nop 6578 00006248 .endproc _dstrcat 6579 00006248 .align 2 6580 00006248 .proc _dstrncmp 6581 00006248 .global _dstrncmp 6582 00006248 _dstrncmp: 6583 ; Function 'dstrncmp'; 0 bytes of locals, 4 regs to save. 6584 00006248 afbefffc sw -4(r29),r30; push fp 6585 0000624c 001df020 add r30,r0,r29; fp = sp 6586 00006250 afbffff8 sw -8(r29),r31; push ret addr 6587 00006254 2fbd0018 subui r29,r29,#24; alloc local storage 6588 00006258 afa20000 sw 0(r29),r2 6589 0000625c afa30004 sw 4(r29),r3 6590 00006260 afa40008 sw 8(r29),r4 6591 00006264 afa5000c sw 12(r29),r5 6592 00006268 8fc30000 lw r3,(r30) 6593 0000626c 8fc40004 lw r4,4(r30) 6594 00006270 8fc50008 lw r5,8(r30) 6595 00006274 20020000 addi r2,r0,#0 6596 00006278 0045082a slt r1,r2,r5 6597 0000627c 1020003c beqz r1,L73_LF6 6598 00006280 54000000 nop; not filled. 6599 00006284 L75_LF6: 6600 00006284 909f0000 lbu r31,(r4) 6601 00006288 67e10000 snei r1,r31,#0 6602 0000628c 10200038 beqz r1,L86_LF6 6603 00006290 54000000 nop; not filled. 6604 00006294 90610000 lbu r1,(r3) 6605 00006298 003f0829 sne r1,r1,r31 6606 0000629c 1420001c bnez r1,L73_LF6 6607 000062a0 54000000 nop; not filled. 6608 000062a4 20630001 addi r3,r3,#1 6609 000062a8 20840001 addi r4,r4,#1 6610 000062ac 20420001 addi r2,r2,#1 6611 000062b0 0045082a slt r1,r2,r5 6612 000062b4 1420ffcc bnez r1,L75_LF6 6613 000062b8 54000000 nop; not filled. 6614 000062bc L73_LF6: 6615 000062bc 00450828 seq r1,r2,r5 6616 000062c0 10200010 beqz r1,L80_LF6 6617 000062c4 54000000 nop; not filled. 6618 000062c8 L86_LF6: 6619 000062c8 20010000 addi r1,r0,#0 6620 000062cc 08000028 j L84_LF6 6621 000062d0 54000000 nop; not filled. 6622 000062d4 L80_LF6: 6623 000062d4 907f0000 lbu r31,(r3) 6624 000062d8 90830000 lbu r3,(r4) 6625 000062dc 03e30822 sub r1,r31,r3 6626 000062e0 74210000 sgei r1,r1,#0 6627 000062e4 2002ffff addi r2,r0,#-1 6628 000062e8 10200008 beqz r1,L82_LF6 6629 000062ec 54000000 nop; not filled. 6630 000062f0 03e31029 sne r2,r31,r3 6631 000062f4 L82_LF6: 6632 000062f4 00020820 add r1,r0,r2 6633 000062f8 L84_LF6: 6634 000062f8 8fa20000 lw r2,0(r29) 6635 000062fc 8fa30004 lw r3,4(r29) 6636 00006300 8fa40008 lw r4,8(r29) 6637 00006304 8fa5000c lw r5,12(r29) 6638 00006308 8fdffff8 lw r31,-8(r30) 6639 0000630c 001ee820 add r29,r0,r30 6640 00006310 8fdefffc lw r30,-4(r30) 6641 00006314 4be00000 jr r31 6642 00006318 54000000 nop 6643 0000631c .endproc _dstrncmp 6644 0000631c .align 2 6645 0000631c .proc _dstrlen 6646 0000631c .global _dstrlen 6647 0000631c _dstrlen: 6648 ; Function 'dstrlen'; 0 bytes of locals, 1 regs to save. 6649 0000631c afbefffc sw -4(r29),r30; push fp 6650 00006320 001df020 add r30,r0,r29; fp = sp 6651 00006324 afbffff8 sw -8(r29),r31; push ret addr 6652 00006328 2fbd0010 subui r29,r29,#16; alloc local storage 6653 0000632c afa20000 sw 0(r29),r2 6654 00006330 8fdf0000 lw r31,(r30) 6655 00006334 20020000 addi r2,r0,#0 6656 00006338 08000008 j L97_LF6 6657 0000633c 54000000 nop; not filled. 6658 00006340 L95_LF6: 6659 00006340 20420001 addi r2,r2,#1 6660 00006344 L97_LF6: 6661 00006344 93e10000 lbu r1,(r31) 6662 00006348 23ff0001 addi r31,r31,#1 6663 0000634c 64210000 snei r1,r1,#0 6664 00006350 1420ffec bnez r1,L95_LF6 6665 00006354 54000000 nop; not filled. 6666 00006358 00020820 add r1,r0,r2 6667 0000635c 8fa20000 lw r2,0(r29) 6668 00006360 8fdffff8 lw r31,-8(r30) 6669 00006364 001ee820 add r29,r0,r30 6670 00006368 8fdefffc lw r30,-4(r30) 6671 0000636c 4be00000 jr r31 6672 00006370 54000000 nop 6673 00006374 .endproc _dstrlen 6674 00006374 .align 2 6675 00006374 .proc _dstrstr 6676 00006374 .global _dstrstr 6677 00006374 _dstrstr: 6678 ; Function 'dstrstr'; 0 bytes of locals, 6 regs to save. 6679 00006374 afbefffc sw -4(r29),r30; push fp 6680 00006378 001df020 add r30,r0,r29; fp = sp 6681 0000637c afbffff8 sw -8(r29),r31; push ret addr 6682 00006380 2fbd0020 subui r29,r29,#32; alloc local storage 6683 00006384 afa20000 sw 0(r29),r2 6684 00006388 afa30004 sw 4(r29),r3 6685 0000638c afa40008 sw 8(r29),r4 6686 00006390 afa5000c sw 12(r29),r5 6687 00006394 afa60010 sw 16(r29),r6 6688 00006398 afa70014 sw 20(r29),r7 6689 0000639c 8fc50000 lw r5,(r30) 6690 000063a0 8fc70004 lw r7,4(r30) 6691 000063a4 20030000 addi r3,r0,#0 6692 000063a8 90e10000 lbu r1,(r7) 6693 000063ac 20e20001 addi r2,r7,#1 6694 000063b0 64210000 snei r1,r1,#0 6695 000063b4 1020001c beqz r1,L125_LF6 6696 000063b8 54000000 nop; not filled. 6697 000063bc L126_LF6: 6698 000063bc 20630001 addi r3,r3,#1 6699 000063c0 90410000 lbu r1,(r2) 6700 000063c4 20420001 addi r2,r2,#1 6701 000063c8 64210000 snei r1,r1,#0 6702 000063cc 1420ffec bnez r1,L126_LF6 6703 000063d0 54000000 nop; not filled. 6704 000063d4 L125_LF6: 6705 000063d4 00033020 add r6,r0,r3 6706 000063d8 080000ac j L149_LF6 6707 000063dc 54000000 nop; not filled. 6708 000063e0 L130_LF6: 6709 000063e0 00051820 add r3,r0,r5 6710 000063e4 00072020 add r4,r0,r7 6711 000063e8 20020000 addi r2,r0,#0 6712 000063ec 0046082a slt r1,r2,r6 6713 000063f0 1020003c beqz r1,L134_LF6 6714 000063f4 54000000 nop; not filled. 6715 000063f8 L136_LF6: 6716 000063f8 909f0000 lbu r31,(r4) 6717 000063fc 67e10000 snei r1,r31,#0 6718 00006400 10200038 beqz r1,L150_LF6 6719 00006404 54000000 nop; not filled. 6720 00006408 90610000 lbu r1,(r3) 6721 0000640c 003f0829 sne r1,r1,r31 6722 00006410 1420001c bnez r1,L134_LF6 6723 00006414 54000000 nop; not filled. 6724 00006418 20630001 addi r3,r3,#1 6725 0000641c 20840001 addi r4,r4,#1 6726 00006420 20420001 addi r2,r2,#1 6727 00006424 0046082a slt r1,r2,r6 6728 00006428 1420ffcc bnez r1,L136_LF6 6729 0000642c 54000000 nop; not filled. 6730 00006430 L134_LF6: 6731 00006430 00460828 seq r1,r2,r6 6732 00006434 10200010 beqz r1,L141_LF6 6733 00006438 54000000 nop; not filled. 6734 0000643c L150_LF6: 6735 0000643c 20010000 addi r1,r0,#0 6736 00006440 08000028 j L132_LF6 6737 00006444 54000000 nop; not filled. 6738 00006448 L141_LF6: 6739 00006448 90630000 lbu r3,(r3) 6740 0000644c 90820000 lbu r2,(r4) 6741 00006450 00620822 sub r1,r3,r2 6742 00006454 74210000 sgei r1,r1,#0 6743 00006458 201fffff addi r31,r0,#-1 6744 0000645c 10200008 beqz r1,L143_LF6 6745 00006460 54000000 nop; not filled. 6746 00006464 0062f829 sne r31,r3,r2 6747 00006468 L143_LF6: 6748 00006468 001f0820 add r1,r0,r31 6749 0000646c L132_LF6: 6750 0000646c 64210000 snei r1,r1,#0 6751 00006470 14200010 bnez r1,L131_LF6 6752 00006474 54000000 nop; not filled. 6753 00006478 00050820 add r1,r0,r5 6754 0000647c 0800001c j L146_LF6 6755 00006480 54000000 nop; not filled. 6756 00006484 L131_LF6: 6757 00006484 20a50001 addi r5,r5,#1 6758 00006488 L149_LF6: 6759 00006488 90a10000 lbu r1,(r5) 6760 0000648c 64210000 snei r1,r1,#0 6761 00006490 1420ff4c bnez r1,L130_LF6 6762 00006494 54000000 nop; not filled. 6763 00006498 20010000 addi r1,r0,#0 6764 0000649c L146_LF6: 6765 0000649c 8fa20000 lw r2,0(r29) 6766 000064a0 8fa30004 lw r3,4(r29) 6767 000064a4 8fa40008 lw r4,8(r29) 6768 000064a8 8fa5000c lw r5,12(r29) 6769 000064ac 8fa60010 lw r6,16(r29) 6770 000064b0 8fa70014 lw r7,20(r29) 6771 000064b4 8fdffff8 lw r31,-8(r30) 6772 000064b8 001ee820 add r29,r0,r30 6773 000064bc 8fdefffc lw r30,-4(r30) 6774 000064c0 4be00000 jr r31 6775 000064c4 54000000 nop 6776 000064c8 .endproc _dstrstr 6777 000064c8 .align 2 6778 000064c8 .proc _dmindex 6779 000064c8 .global _dmindex 6780 000064c8 _dmindex: 6781 ; Function 'dmindex'; 0 bytes of locals, 5 regs to save. 6782 000064c8 afbefffc sw -4(r29),r30; push fp 6783 000064cc 001df020 add r30,r0,r29; fp = sp 6784 000064d0 afbffff8 sw -8(r29),r31; push ret addr 6785 000064d4 2fbd0020 subui r29,r29,#32; alloc local storage 6786 000064d8 afa20000 sw 0(r29),r2 6787 000064dc afa30004 sw 4(r29),r3 6788 000064e0 afa40008 sw 8(r29),r4 6789 000064e4 afa5000c sw 12(r29),r5 6790 000064e8 afa60010 sw 16(r29),r6 6791 000064ec 8fc40000 lw r4,(r30) 6792 000064f0 8fc60004 lw r6,4(r30) 6793 000064f4 90810000 lbu r1,(r4) 6794 000064f8 64210000 snei r1,r1,#0 6795 000064fc 10200060 beqz r1,L164_LF6 6796 00006500 54000000 nop; not filled. 6797 00006504 00012820 add r5,r0,r1 6798 00006508 L165_LF6: 6799 00006508 00061020 add r2,r0,r6 6800 0000650c 80df0000 lb r31,(r6) 6801 00006510 33e100ff andi r1,r31,#0x00ff 6802 00006514 64210000 snei r1,r1,#0 6803 00006518 1020003c beqz r1,L163_LF6 6804 0000651c 54000000 nop; not filled. 6805 00006520 90830000 lbu r3,(r4) 6806 00006524 L169_LF6: 6807 00006524 33e100ff andi r1,r31,#0x00ff 6808 00006528 00610828 seq r1,r3,r1 6809 0000652c 10200010 beqz r1,L168_LF6 6810 00006530 54000000 nop; not filled. 6811 00006534 00040820 add r1,r0,r4 6812 00006538 08000028 j L173_LF6 6813 0000653c 54000000 nop; not filled. 6814 00006540 L168_LF6: 6815 00006540 20420001 addi r2,r2,#1 6816 00006544 805f0000 lb r31,(r2) 6817 00006548 33e100ff andi r1,r31,#0x00ff 6818 0000654c 64210000 snei r1,r1,#0 6819 00006550 1420ffd0 bnez r1,L169_LF6 6820 00006554 54000000 nop; not filled. 6821 00006558 L163_LF6: 6822 00006558 14a0ffac bnez r5,L165_LF6 6823 0000655c 54000000 nop; not filled. 6824 00006560 L164_LF6: 6825 00006560 20010000 addi r1,r0,#0 6826 00006564 L173_LF6: 6827 00006564 8fa20000 lw r2,0(r29) 6828 00006568 8fa30004 lw r3,4(r29) 6829 0000656c 8fa40008 lw r4,8(r29) 6830 00006570 8fa5000c lw r5,12(r29) 6831 00006574 8fa60010 lw r6,16(r29) 6832 00006578 8fdffff8 lw r31,-8(r30) 6833 0000657c 001ee820 add r29,r0,r30 6834 00006580 8fdefffc lw r30,-4(r30) 6835 00006584 4be00000 jr r31 6836 00006588 54000000 nop 6837 0000658c .endproc _dmindex 6838 0000658c .align 2 6839 0000658c .proc _dindex 6840 0000658c .global _dindex 6841 0000658c _dindex: 6842 ; Function 'dindex'; 0 bytes of locals, 2 regs to save. 6843 0000658c afbefffc sw -4(r29),r30; push fp 6844 00006590 001df020 add r30,r0,r29; fp = sp 6845 00006594 afbffff8 sw -8(r29),r31; push ret addr 6846 00006598 2fbd0010 subui r29,r29,#16; alloc local storage 6847 0000659c afa20000 sw 0(r29),r2 6848 000065a0 afa30004 sw 4(r29),r3 6849 000065a4 8fc20000 lw r2,(r30) 6850 000065a8 8fc30004 lw r3,4(r30) 6851 000065ac 08000024 j L187_LF6 6852 000065b0 54000000 nop; not filled. 6853 000065b4 L183_LF6: 6854 000065b4 33e100ff andi r1,r31,#0x00ff 6855 000065b8 00230828 seq r1,r1,r3 6856 000065bc 10200010 beqz r1,L184_LF6 6857 000065c0 54000000 nop; not filled. 6858 000065c4 00020820 add r1,r0,r2 6859 000065c8 08000020 j L186_LF6 6860 000065cc 54000000 nop; not filled. 6861 000065d0 L184_LF6: 6862 000065d0 20420001 addi r2,r2,#1 6863 000065d4 L187_LF6: 6864 000065d4 805f0000 lb r31,(r2) 6865 000065d8 33e100ff andi r1,r31,#0x00ff 6866 000065dc 64210000 snei r1,r1,#0 6867 000065e0 1420ffd0 bnez r1,L183_LF6 6868 000065e4 54000000 nop; not filled. 6869 000065e8 20010000 addi r1,r0,#0 6870 000065ec L186_LF6: 6871 000065ec 8fa20000 lw r2,0(r29) 6872 000065f0 8fa30004 lw r3,4(r29) 6873 000065f4 8fdffff8 lw r31,-8(r30) 6874 000065f8 001ee820 add r29,r0,r30 6875 000065fc 8fdefffc lw r30,-4(r30) 6876 00006600 4be00000 jr r31 6877 00006604 54000000 nop 6878 00006608 .endproc _dindex 6879 00006608 .align 2 6880 00006608 .proc _ditoa 6881 00006608 .global _ditoa 6882 00006608 _ditoa: 6883 ; Function 'ditoa'; 0 bytes of locals, 5 regs to save. 6884 00006608 afbefffc sw -4(r29),r30; push fp 6885 0000660c 001df020 add r30,r0,r29; fp = sp 6886 00006610 afbffff8 sw -8(r29),r31; push ret addr 6887 00006614 2fbd0020 subui r29,r29,#32; alloc local storage 6888 00006618 afa20000 sw 0(r29),r2 6889 0000661c afa30004 sw 4(r29),r3 6890 00006620 afa40008 sw 8(r29),r4 6891 00006624 afa5000c sw 12(r29),r5 6892 00006628 afa60010 sw 16(r29),r6 6893 0000662c 8fc30000 lw r3,(r30) 6894 00006630 8fc40004 lw r4,4(r30) 6895 00006634 68610000 slti r1,r3,#0 6896 00006638 10200010 beqz r1,L203_LF6 6897 0000663c 54000000 nop; not filled. 6898 00006640 2006002d addi r6,r0,(#0x2d)&0xff 6899 00006644 08000014 j L216_LF6 6900 00006648 54000000 nop; not filled. 6901 0000664c L203_LF6: 6902 0000664c 64610000 snei r1,r3,#0 6903 00006650 14200018 bnez r1,L205_LF6 6904 00006654 54000000 nop; not filled. 6905 00006658 20060030 addi r6,r0,(#0x30)&0xff 6906 0000665c L216_LF6: 6907 0000665c a0860000 sb (r4),r6 6908 00006660 20840001 addi r4,r4,#1 6909 00006664 0800007c j L204_LF6 6910 00006668 54000000 nop; not filled. 6911 0000666c L205_LF6: 6912 0000666c 201f0001 addi r31,r0,#1 6913 00006670 03e3082c sle r1,r31,r3 6914 00006674 1020001c beqz r1,L208_LF6 6915 00006678 54000000 nop; not filled. 6916 0000667c L209_LF6: 6917 0000667c 53e10002 slli r1,r31,#0x2 6918 00006680 003f0820 add r1,r1,r31 6919 00006684 503f0001 slli r31,r1,#0x1 6920 00006688 03e3082c sle r1,r31,r3 6921 0000668c 1420ffec bnez r1,L209_LF6 6922 00006690 54000000 nop; not filled. 6923 00006694 L208_LF6: 6924 00006694 2005000a addi r5,r0,#10 6925 00006698 L212_LF6: 6926 00006698 03e00035 movi2fp f0,r31 6927 0000669c 00a00835 movi2fp f1,r5 6928 000066a0 0401000f div f0,f0,f1 6929 000066a4 0000f834 movfp2i r31,f0 6930 000066a8 00600035 movi2fp f0,r3 6931 000066ac 03e00835 movi2fp f1,r31 6932 000066b0 0401000f div f0,f0,f1 6933 000066b4 00001034 movfp2i r2,f0 6934 000066b8 20410030 addi r1,r2,#48 6935 000066bc a0810000 sb (r4),r1 6936 000066c0 20840001 addi r4,r4,#1 6937 000066c4 00400035 movi2fp f0,r2 6938 000066c8 03e00835 movi2fp f1,r31 6939 000066cc 0401000e mult f0,f0,f1 6940 000066d0 00000834 movfp2i r1,f0 6941 000066d4 00611822 sub r3,r3,r1 6942 000066d8 6fe10001 sgti r1,r31,#1 6943 000066dc 1420ffb8 bnez r1,L212_LF6 6944 000066e0 54000000 nop; not filled. 6945 000066e4 L204_LF6: 6946 000066e4 20060000 addi r6,r0,(#0x0)&0xff 6947 000066e8 a0860000 sb (r4),r6 6948 000066ec 8fa20000 lw r2,0(r29) 6949 000066f0 8fa30004 lw r3,4(r29) 6950 000066f4 8fa40008 lw r4,8(r29) 6951 000066f8 8fa5000c lw r5,12(r29) 6952 000066fc 8fa60010 lw r6,16(r29) 6953 00006700 8fdffff8 lw r31,-8(r30) 6954 00006704 001ee820 add r29,r0,r30 6955 00006708 8fdefffc lw r30,-4(r30) 6956 0000670c 4be00000 jr r31 6957 00006710 54000000 nop 6958 00006714 .endproc _ditoa 6959 00006714 .align 2 6960 00006714 .proc _dstrtol 6961 00006714 .global _dstrtol 6962 00006714 _dstrtol: 6963 ; Function 'dstrtol'; 0 bytes of locals, 5 regs to save. 6964 00006714 afbefffc sw -4(r29),r30; push fp 6965 00006718 001df020 add r30,r0,r29; fp = sp 6966 0000671c afbffff8 sw -8(r29),r31; push ret addr 6967 00006720 2fbd0020 subui r29,r29,#32; alloc local storage 6968 00006724 afa20000 sw 0(r29),r2 6969 00006728 afa30004 sw 4(r29),r3 6970 0000672c afa40008 sw 8(r29),r4 6971 00006730 afa5000c sw 12(r29),r5 6972 00006734 afa60010 sw 16(r29),r6 6973 00006738 8fc20000 lw r2,(r30) 6974 0000673c 8fc50004 lw r5,4(r30) 6975 00006740 8fc40008 lw r4,8(r30) 6976 00006744 20030000 addi r3,r0,#0 6977 00006748 08000008 j L247_LF6 6978 0000674c 54000000 nop; not filled. 6979 00006750 L220_LF6: 6980 00006750 20420001 addi r2,r2,#1 6981 00006754 L247_LF6: 6982 00006754 805f0000 lb r31,(r2) 6983 00006758 33e100ff andi r1,r31,#0x00ff 6984 0000675c 60210020 seqi r1,r1,#32 6985 00006760 1420ffec bnez r1,L220_LF6 6986 00006764 54000000 nop; not filled. 6987 00006768 23e1fff7 addi r1,r31,#-9 6988 0000676c 302100ff andi r1,r1,#0x00ff 6989 00006770 70210001 sleui r1,r1,#1 6990 00006774 1420ffd8 bnez r1,L220_LF6 6991 00006778 54000000 nop; not filled. 6992 0000677c 64a10000 snei r1,r5,#0 6993 00006780 10200008 beqz r1,L222_LF6 6994 00006784 54000000 nop; not filled. 6995 00006788 aca20000 sw (r5),r2 6996 0000678c L222_LF6: 6997 0000678c 905f0000 lbu r31,(r2) 6998 00006790 67e10000 snei r1,r31,#0 6999 00006794 10200090 beqz r1,L248_LF6 7000 00006798 54000000 nop; not filled. 7001 0000679c 63e1002d seqi r1,r31,#45 7002 000067a0 10200014 beqz r1,L224_LF6 7003 000067a4 54000000 nop; not filled. 7004 000067a8 2006ffff addi r6,r0,#-1 7005 000067ac 20420001 addi r2,r2,#1 7006 000067b0 08000008 j L225_LF6 7007 000067b4 54000000 nop; not filled. 7008 000067b8 L224_LF6: 7009 000067b8 20060001 addi r6,r0,#1 7010 000067bc L225_LF6: 7011 000067bc 64810000 snei r1,r4,#0 7012 000067c0 14200054 bnez r1,L226_LF6 7013 000067c4 54000000 nop; not filled. 7014 000067c8 90410000 lbu r1,(r2) 7015 000067cc 60210030 seqi r1,r1,#48 7016 000067d0 10200040 beqz r1,L227_LF6 7017 000067d4 54000000 nop; not filled. 7018 000067d8 20420001 addi r2,r2,#1 7019 000067dc 905f0000 lbu r31,(r2) 7020 000067e0 63e10078 seqi r1,r31,#120 7021 000067e4 14200010 bnez r1,L229_LF6 7022 000067e8 54000000 nop; not filled. 7023 000067ec 63e10058 seqi r1,r31,#88 7024 000067f0 10200014 beqz r1,L228_LF6 7025 000067f4 54000000 nop; not filled. 7026 000067f8 L229_LF6: 7027 000067f8 20040010 addi r4,r0,#16 7028 000067fc 20420001 addi r2,r2,#1 7029 00006800 08000014 j L226_LF6 7030 00006804 54000000 nop; not filled. 7031 00006808 L228_LF6: 7032 00006808 20040008 addi r4,r0,#8 7033 0000680c 08000008 j L226_LF6 7034 00006810 54000000 nop; not filled. 7035 00006814 L227_LF6: 7036 00006814 2004000a addi r4,r0,#10 7037 00006818 L226_LF6: 7038 00006818 2081ffff addi r1,r4,#-1 7039 0000681c 6c21000f sgtui r1,r1,#15 7040 00006820 10200010 beqz r1,L233_LF6 7041 00006824 54000000 nop; not filled. 7042 00006828 L248_LF6: 7043 00006828 00030820 add r1,r0,r3 7044 0000682c 080000c4 j L245_LF6 7045 00006830 54000000 nop; not filled. 7046 00006834 L233_LF6: 7047 00006834 805f0000 lb r31,(r2) 7048 00006838 23e1ffd0 addi r1,r31,#-48 7049 0000683c 302100ff andi r1,r1,#0x00ff 7050 00006840 70210009 sleui r1,r1,#9 7051 00006844 10200014 beqz r1,L236_LF6 7052 00006848 54000000 nop; not filled. 7053 0000684c 33e100ff andi r1,r31,#0x00ff 7054 00006850 2021ffd0 addi r1,r1,#-48 7055 00006854 08000050 j L237_LF6 7056 00006858 54000000 nop; not filled. 7057 0000685c L236_LF6: 7058 0000685c 23e1ff9f addi r1,r31,#-97 7059 00006860 302100ff andi r1,r1,#0x00ff 7060 00006864 70210019 sleui r1,r1,#25 7061 00006868 10200014 beqz r1,L238_LF6 7062 0000686c 54000000 nop; not filled. 7063 00006870 33e100ff andi r1,r31,#0x00ff 7064 00006874 2021ffa9 addi r1,r1,#-87 7065 00006878 0800002c j L237_LF6 7066 0000687c 54000000 nop; not filled. 7067 00006880 L238_LF6: 7068 00006880 23e1ffbf addi r1,r31,#-65 7069 00006884 302100ff andi r1,r1,#0x00ff 7070 00006888 70210019 sleui r1,r1,#25 7071 0000688c 10200014 beqz r1,L240_LF6 7072 00006890 54000000 nop; not filled. 7073 00006894 33e100ff andi r1,r31,#0x00ff 7074 00006898 2021ffc9 addi r1,r1,#-55 7075 0000689c 08000008 j L237_LF6 7076 000068a0 54000000 nop; not filled. 7077 000068a4 L240_LF6: 7078 000068a4 200103e8 addi r1,r0,#1000 7079 000068a8 L237_LF6: 7080 000068a8 0024f82a slt r31,r1,r4 7081 000068ac 13e00024 beqz r31,L246_LF6 7082 000068b0 54000000 nop; not filled. 7083 000068b4 00600035 movi2fp f0,r3 7084 000068b8 00800835 movi2fp f1,r4 7085 000068bc 0401000e mult f0,f0,f1 7086 000068c0 00001834 movfp2i r3,f0 7087 000068c4 00611820 add r3,r3,r1 7088 000068c8 20420001 addi r2,r2,#1 7089 000068cc 17e0ff64 bnez r31,L233_LF6 7090 000068d0 54000000 nop; not filled. 7091 000068d4 L246_LF6: 7092 000068d4 64a10000 snei r1,r5,#0 7093 000068d8 10200008 beqz r1,L244_LF6 7094 000068dc 54000000 nop; not filled. 7095 000068e0 aca20000 sw (r5),r2 7096 000068e4 L244_LF6: 7097 000068e4 00600035 movi2fp f0,r3 7098 000068e8 00c00835 movi2fp f1,r6 7099 000068ec 0401000e mult f0,f0,f1 7100 000068f0 00000834 movfp2i r1,f0 7101 000068f4 L245_LF6: 7102 000068f4 8fa20000 lw r2,0(r29) 7103 000068f8 8fa30004 lw r3,4(r29) 7104 000068fc 8fa40008 lw r4,8(r29) 7105 00006900 8fa5000c lw r5,12(r29) 7106 00006904 8fa60010 lw r6,16(r29) 7107 00006908 8fdffff8 lw r31,-8(r30) 7108 0000690c 001ee820 add r29,r0,r30 7109 00006910 8fdefffc lw r30,-4(r30) 7110 00006914 4be00000 jr r31 7111 00006918 54000000 nop 7112 0000691c .endproc _dstrtol 7113 0000691c .align 2 7114 0000691c .proc _bcopy 7115 0000691c .global _bcopy 7116 0000691c _bcopy: 7117 ; Function 'bcopy'; 0 bytes of locals, 3 regs to save. 7118 0000691c afbefffc sw -4(r29),r30; push fp 7119 00006920 001df020 add r30,r0,r29; fp = sp 7120 00006924 afbffff8 sw -8(r29),r31; push ret addr 7121 00006928 2fbd0018 subui r29,r29,#24; alloc local storage 7122 0000692c afa20000 sw 0(r29),r2 7123 00006930 afa30004 sw 4(r29),r3 7124 00006934 afa40008 sw 8(r29),r4 7125 00006938 8fc30000 lw r3,(r30) 7126 0000693c 8fc20004 lw r2,4(r30) 7127 00006940 8fdf0008 lw r31,8(r30) 7128 00006944 08000014 j L259_LF6 7129 00006948 54000000 nop; not filled. 7130 0000694c L257_LF6: 7131 0000694c 80640000 lb r4,(r3) 7132 00006950 a0440000 sb (r2),r4 7133 00006954 20630001 addi r3,r3,#1 7134 00006958 20420001 addi r2,r2,#1 7135 0000695c L259_LF6: 7136 0000695c 001f0820 add r1,r0,r31 7137 00006960 23ffffff addi r31,r31,#-1 7138 00006964 6c210000 sgti r1,r1,#0 7139 00006968 1420ffe0 bnez r1,L257_LF6 7140 0000696c 54000000 nop; not filled. 7141 00006970 8fa20000 lw r2,0(r29) 7142 00006974 8fa30004 lw r3,4(r29) 7143 00006978 8fa40008 lw r4,8(r29) 7144 0000697c 8fdffff8 lw r31,-8(r30) 7145 00006980 001ee820 add r29,r0,r30 7146 00006984 8fdefffc lw r30,-4(r30) 7147 00006988 4be00000 jr r31 7148 0000698c 54000000 nop 7149 00006990 .endproc _bcopy 7150 00006990 .align 2 7151 00006990 .proc _bzero 7152 00006990 .global _bzero 7153 00006990 _bzero: 7154 ; Function 'bzero'; 0 bytes of locals, 2 regs to save. 7155 00006990 afbefffc sw -4(r29),r30; push fp 7156 00006994 001df020 add r30,r0,r29; fp = sp 7157 00006998 afbffff8 sw -8(r29),r31; push ret addr 7158 0000699c 2fbd0010 subui r29,r29,#16; alloc local storage 7159 000069a0 afa20000 sw 0(r29),r2 7160 000069a4 afa30004 sw 4(r29),r3 7161 000069a8 8fc20000 lw r2,(r30) 7162 000069ac 8fdf0004 lw r31,4(r30) 7163 000069b0 08000010 j L270_LF6 7164 000069b4 54000000 nop; not filled. 7165 000069b8 L268_LF6: 7166 000069b8 20030000 addi r3,r0,(#0x0)&0xff 7167 000069bc a0430000 sb (r2),r3 7168 000069c0 20420001 addi r2,r2,#1 7169 000069c4 L270_LF6: 7170 000069c4 001f0820 add r1,r0,r31 7171 000069c8 23ffffff addi r31,r31,#-1 7172 000069cc 6c210000 sgti r1,r1,#0 7173 000069d0 1420ffe4 bnez r1,L268_LF6 7174 000069d4 54000000 nop; not filled. 7175 000069d8 8fa20000 lw r2,0(r29) 7176 000069dc 8fa30004 lw r3,4(r29) 7177 000069e0 8fdffff8 lw r31,-8(r30) 7178 000069e4 001ee820 add r29,r0,r30 7179 000069e8 8fdefffc lw r30,-4(r30) 7180 000069ec 4be00000 jr r31 7181 000069f0 54000000 nop 7182 000069f4 .endproc _bzero 7183 ; Compiled by GCC 7185 000069f4 .align 2 7186 000069f4 .proc _isspace 7187 000069f4 .global _isspace 7188 000069f4 _isspace: 7189 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 7190 000069f4 afbefffc sw -4(r29),r30; push fp 7191 000069f8 001df020 add r30,r0,r29; fp = sp 7192 000069fc afbffff8 sw -8(r29),r31; push ret addr 7193 00006a00 2fbd0010 subui r29,r29,#16; alloc local storage 7194 00006a04 afa20000 sw 0(r29),r2 7195 00006a08 83c20003 lb r2,3(r30) 7196 00006a0c 201f0000 addi r31,r0,#0 7197 00006a10 304100ff andi r1,r2,#0x00ff 7198 00006a14 60210020 seqi r1,r1,#32 7199 00006a18 14200018 bnez r1,L6_LF7 7200 00006a1c 54000000 nop; not filled. 7201 00006a20 2041fff7 addi r1,r2,#-9 7202 00006a24 302100ff andi r1,r1,#0x00ff 7203 00006a28 70210001 sleui r1,r1,#1 7204 00006a2c 10200008 beqz r1,L5_LF7 7205 00006a30 54000000 nop; not filled. 7206 00006a34 L6_LF7: 7207 00006a34 201f0001 addi r31,r0,#1 7208 00006a38 L5_LF7: 7209 00006a38 001f0820 add r1,r0,r31 7210 00006a3c 8fa20000 lw r2,0(r29) 7211 00006a40 8fdffff8 lw r31,-8(r30) 7212 00006a44 001ee820 add r29,r0,r30 7213 00006a48 8fdefffc lw r30,-4(r30) 7214 00006a4c 4be00000 jr r31 7215 00006a50 54000000 nop 7216 00006a54 .endproc _isspace 7217 00006a54 .align 2 7218 00006a54 .proc _isxdigit 7219 00006a54 .global _isxdigit 7220 00006a54 _isxdigit: 7221 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 7222 00006a54 afbefffc sw -4(r29),r30; push fp 7223 00006a58 001df020 add r30,r0,r29; fp = sp 7224 00006a5c afbffff8 sw -8(r29),r31; push ret addr 7225 00006a60 2fbd0010 subui r29,r29,#16; alloc local storage 7226 00006a64 afa20000 sw 0(r29),r2 7227 00006a68 83df0003 lb r31,3(r30) 7228 00006a6c 20020000 addi r2,r0,#0 7229 00006a70 23e1ffd0 addi r1,r31,#-48 7230 00006a74 302100ff andi r1,r1,#0x00ff 7231 00006a78 70210009 sleui r1,r1,#9 7232 00006a7c 14200028 bnez r1,L12_LF7 7233 00006a80 54000000 nop; not filled. 7234 00006a84 23e1ff9f addi r1,r31,#-97 7235 00006a88 302100ff andi r1,r1,#0x00ff 7236 00006a8c 70210005 sleui r1,r1,#5 7237 00006a90 14200014 bnez r1,L12_LF7 7238 00006a94 54000000 nop; not filled. 7239 00006a98 33e100ff andi r1,r31,#0x00ff 7240 00006a9c 64210041 snei r1,r1,#65 7241 00006aa0 14200008 bnez r1,L11_LF7 7242 00006aa4 54000000 nop; not filled. 7243 00006aa8 L12_LF7: 7244 00006aa8 20020001 addi r2,r0,#1 7245 00006aac L11_LF7: 7246 00006aac 00020820 add r1,r0,r2 7247 00006ab0 8fa20000 lw r2,0(r29) 7248 00006ab4 8fdffff8 lw r31,-8(r30) 7249 00006ab8 001ee820 add r29,r0,r30 7250 00006abc 8fdefffc lw r30,-4(r30) 7251 00006ac0 4be00000 jr r31 7252 00006ac4 54000000 nop 7253 00006ac8 .endproc _isxdigit 7254 00006ac8 .align 2 7255 00006ac8 .proc _DisableIntrs 7256 00006ac8 .global _DisableIntrs 7257 00006ac8 _DisableIntrs: 7258 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 7259 00006ac8 afbefffc sw -4(r29),r30; push fp 7260 00006acc 001df020 add r30,r0,r29; fp = sp 7261 00006ad0 afbffff8 sw -8(r29),r31; push ret addr 7262 00006ad4 2fbd0010 subui r29,r29,#16; alloc local storage 7263 00006ad8 afa20000 sw 0(r29),r2 7264 00006adc 23bdfff8 addi r29,r29,#-8 7265 00006ae0 2002000f addi r2,r0,#15 7266 00006ae4 afa20000 sw (r29),r2 7267 00006ae8 0fffa79c jal _SetIntrs 7268 00006aec 54000000 nop; not filled. 7269 00006af0 23bd0008 addi r29,r29,#8 7270 00006af4 8fa20000 lw r2,0(r29) 7271 00006af8 8fdffff8 lw r31,-8(r30) 7272 00006afc 001ee820 add r29,r0,r30 7273 00006b00 8fdefffc lw r30,-4(r30) 7274 00006b04 4be00000 jr r31 7275 00006b08 54000000 nop 7276 00006b0c .endproc _DisableIntrs 7277 00006b0c .align 2 7278 00006b0c .proc _EnableIntrs 7279 00006b0c .global _EnableIntrs 7280 00006b0c _EnableIntrs: 7281 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 7282 00006b0c afbefffc sw -4(r29),r30; push fp 7283 00006b10 001df020 add r30,r0,r29; fp = sp 7284 00006b14 afbffff8 sw -8(r29),r31; push ret addr 7285 00006b18 2fbd0010 subui r29,r29,#16; alloc local storage 7286 00006b1c afa20000 sw 0(r29),r2 7287 00006b20 23bdfff8 addi r29,r29,#-8 7288 00006b24 20020000 addi r2,r0,#0 7289 00006b28 afa20000 sw (r29),r2 7290 00006b2c 0fffa758 jal _SetIntrs 7291 00006b30 54000000 nop; not filled. 7292 00006b34 23bd0008 addi r29,r29,#8 7293 00006b38 8fa20000 lw r2,0(r29) 7294 00006b3c 8fdffff8 lw r31,-8(r30) 7295 00006b40 001ee820 add r29,r0,r30 7296 00006b44 8fdefffc lw r30,-4(r30) 7297 00006b48 4be00000 jr r31 7298 00006b4c 54000000 nop 7299 00006b50 .endproc _EnableIntrs 7300 00006b50 .align 2 7301 00006b50 .proc _RestoreIntrs 7302 00006b50 .global _RestoreIntrs 7303 00006b50 _RestoreIntrs: 7304 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 7305 00006b50 afbefffc sw -4(r29),r30; push fp 7306 00006b54 001df020 add r30,r0,r29; fp = sp 7307 00006b58 afbffff8 sw -8(r29),r31; push ret addr 7308 00006b5c 2fbd0010 subui r29,r29,#16; alloc local storage 7309 00006b60 afa20000 sw 0(r29),r2 7310 00006b64 23bdfff8 addi r29,r29,#-8 7311 00006b68 8fc20000 lw r2,(r30) 7312 00006b6c afa20000 sw (r29),r2 7313 00006b70 0fffa714 jal _SetIntrs 7314 00006b74 54000000 nop; not filled. 7315 00006b78 23bd0008 addi r29,r29,#8 7316 00006b7c 8fa20000 lw r2,0(r29) 7317 00006b80 8fdffff8 lw r31,-8(r30) 7318 00006b84 001ee820 add r29,r0,r30 7319 00006b88 8fdefffc lw r30,-4(r30) 7320 00006b8c 4be00000 jr r31 7321 00006b90 54000000 nop 7322 00006b94 .endproc _RestoreIntrs 7323 00006b94 .align 2 7324 00006b94 .proc _QueueLinkInit 7325 00006b94 .global _QueueLinkInit 7326 00006b94 _QueueLinkInit: 7327 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 7328 00006b94 afbefffc sw -4(r29),r30; push fp 7329 00006b98 001df020 add r30,r0,r29; fp = sp 7330 00006b9c afbffff8 sw -8(r29),r31; push ret addr 7331 00006ba0 2fbd0010 subui r29,r29,#16; alloc local storage 7332 00006ba4 afa20000 sw 0(r29),r2 7333 00006ba8 8fc10000 lw r1,(r30) 7334 00006bac 8fc20004 lw r2,4(r30) 7335 00006bb0 201f0000 addi r31,r0,#0 7336 00006bb4 ac3f0000 sw (r1),r31 7337 00006bb8 ac22000c sw 12(r1),r2 7338 00006bbc 8fa20000 lw r2,0(r29) 7339 00006bc0 8fdffff8 lw r31,-8(r30) 7340 00006bc4 001ee820 add r29,r0,r30 7341 00006bc8 8fdefffc lw r30,-4(r30) 7342 00006bcc 4be00000 jr r31 7343 00006bd0 54000000 nop 7344 00006bd4 .endproc _QueueLinkInit 7345 00006bd4 .align 2 7346 00006bd4 .proc _QueueNext 7347 00006bd4 .global _QueueNext 7348 00006bd4 _QueueNext: 7349 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 7350 00006bd4 afbefffc sw -4(r29),r30; push fp 7351 00006bd8 001df020 add r30,r0,r29; fp = sp 7352 00006bdc afbffff8 sw -8(r29),r31; push ret addr 7353 00006be0 2fbd0008 subui r29,r29,#8; alloc local storage 7354 00006be4 8fc10000 lw r1,(r30) 7355 00006be8 8c210000 lw r1,(r1) 7356 00006bec 8fdffff8 lw r31,-8(r30) 7357 00006bf0 001ee820 add r29,r0,r30 7358 00006bf4 8fdefffc lw r30,-4(r30) 7359 00006bf8 4be00000 jr r31 7360 00006bfc 54000000 nop 7361 00006c00 .endproc _QueueNext 7362 00006c00 .align 2 7363 00006c00 .proc _QueuePrev 7364 00006c00 .global _QueuePrev 7365 00006c00 _QueuePrev: 7366 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 7367 00006c00 afbefffc sw -4(r29),r30; push fp 7368 00006c04 001df020 add r30,r0,r29; fp = sp 7369 00006c08 afbffff8 sw -8(r29),r31; push ret addr 7370 00006c0c 2fbd0008 subui r29,r29,#8; alloc local storage 7371 00006c10 8fc10000 lw r1,(r30) 7372 00006c14 8c210004 lw r1,4(r1) 7373 00006c18 8fdffff8 lw r31,-8(r30) 7374 00006c1c 001ee820 add r29,r0,r30 7375 00006c20 8fdefffc lw r30,-4(r30) 7376 00006c24 4be00000 jr r31 7377 00006c28 54000000 nop 7378 00006c2c .endproc _QueuePrev 7379 00006c2c .align 2 7380 00006c2c .proc _QueueFirst 7381 00006c2c .global _QueueFirst 7382 00006c2c _QueueFirst: 7383 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 7384 00006c2c afbefffc sw -4(r29),r30; push fp 7385 00006c30 001df020 add r30,r0,r29; fp = sp 7386 00006c34 afbffff8 sw -8(r29),r31; push ret addr 7387 00006c38 2fbd0008 subui r29,r29,#8; alloc local storage 7388 00006c3c 8fc10000 lw r1,(r30) 7389 00006c40 8c210000 lw r1,(r1) 7390 00006c44 8fdffff8 lw r31,-8(r30) 7391 00006c48 001ee820 add r29,r0,r30 7392 00006c4c 8fdefffc lw r30,-4(r30) 7393 00006c50 4be00000 jr r31 7394 00006c54 54000000 nop 7395 00006c58 .endproc _QueueFirst 7396 00006c58 .align 2 7397 00006c58 .proc _QueueLast 7398 00006c58 .global _QueueLast 7399 00006c58 _QueueLast: 7400 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 7401 00006c58 afbefffc sw -4(r29),r30; push fp 7402 00006c5c 001df020 add r30,r0,r29; fp = sp 7403 00006c60 afbffff8 sw -8(r29),r31; push ret addr 7404 00006c64 2fbd0008 subui r29,r29,#8; alloc local storage 7405 00006c68 8fc10000 lw r1,(r30) 7406 00006c6c 8c210004 lw r1,4(r1) 7407 00006c70 8fdffff8 lw r31,-8(r30) 7408 00006c74 001ee820 add r29,r0,r30 7409 00006c78 8fdefffc lw r30,-4(r30) 7410 00006c7c 4be00000 jr r31 7411 00006c80 54000000 nop 7412 00006c84 .endproc _QueueLast 7413 00006c84 .align 2 7414 00006c84 .proc _QueueInsertAfter 7415 00006c84 .global _QueueInsertAfter 7416 00006c84 _QueueInsertAfter: 7417 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 7418 00006c84 afbefffc sw -4(r29),r30; push fp 7419 00006c88 001df020 add r30,r0,r29; fp = sp 7420 00006c8c afbffff8 sw -8(r29),r31; push ret addr 7421 00006c90 2fbd0010 subui r29,r29,#16; alloc local storage 7422 00006c94 afa20000 sw 0(r29),r2 7423 00006c98 afa30004 sw 4(r29),r3 7424 00006c9c 8fc30000 lw r3,(r30) 7425 00006ca0 8fc20004 lw r2,4(r30) 7426 00006ca4 8fc10008 lw r1,8(r30) 7427 00006ca8 ac230008 sw 8(r1),r3 7428 00006cac ac220004 sw 4(r1),r2 7429 00006cb0 8c5f0000 lw r31,(r2) 7430 00006cb4 ac3f0000 sw (r1),r31 7431 00006cb8 ac410000 sw (r2),r1 7432 00006cbc 8c220000 lw r2,(r1) 7433 00006cc0 ac410004 sw 4(r2),r1 7434 00006cc4 8c610008 lw r1,8(r3) 7435 00006cc8 20210001 addi r1,r1,#1 7436 00006ccc ac610008 sw 8(r3),r1 7437 00006cd0 8fa20000 lw r2,0(r29) 7438 00006cd4 8fa30004 lw r3,4(r29) 7439 00006cd8 8fdffff8 lw r31,-8(r30) 7440 00006cdc 001ee820 add r29,r0,r30 7441 00006ce0 8fdefffc lw r30,-4(r30) 7442 00006ce4 4be00000 jr r31 7443 00006ce8 54000000 nop 7444 00006cec .endproc _QueueInsertAfter 7445 00006cec .align 2 7446 00006cec .proc _QueueInsertFirst 7447 00006cec .global _QueueInsertFirst 7448 00006cec _QueueInsertFirst: 7449 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 7450 00006cec afbefffc sw -4(r29),r30; push fp 7451 00006cf0 001df020 add r30,r0,r29; fp = sp 7452 00006cf4 afbffff8 sw -8(r29),r31; push ret addr 7453 00006cf8 2fbd0010 subui r29,r29,#16; alloc local storage 7454 00006cfc afa20000 sw 0(r29),r2 7455 00006d00 afa30004 sw 4(r29),r3 7456 00006d04 8fc30000 lw r3,(r30) 7457 00006d08 8fc10004 lw r1,4(r30) 7458 00006d0c ac230008 sw 8(r1),r3 7459 00006d10 ac230004 sw 4(r1),r3 7460 00006d14 8c7f0000 lw r31,(r3) 7461 00006d18 ac3f0000 sw (r1),r31 7462 00006d1c ac610000 sw (r3),r1 7463 00006d20 8c220000 lw r2,(r1) 7464 00006d24 ac410004 sw 4(r2),r1 7465 00006d28 8c610008 lw r1,8(r3) 7466 00006d2c 20210001 addi r1,r1,#1 7467 00006d30 ac610008 sw 8(r3),r1 7468 00006d34 8fa20000 lw r2,0(r29) 7469 00006d38 8fa30004 lw r3,4(r29) 7470 00006d3c 8fdffff8 lw r31,-8(r30) 7471 00006d40 001ee820 add r29,r0,r30 7472 00006d44 8fdefffc lw r30,-4(r30) 7473 00006d48 4be00000 jr r31 7474 00006d4c 54000000 nop 7475 00006d50 .endproc _QueueInsertFirst 7476 00006d50 .align 2 7477 00006d50 .proc _QueueInsertLast 7478 00006d50 .global _QueueInsertLast 7479 00006d50 _QueueInsertLast: 7480 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 7481 00006d50 afbefffc sw -4(r29),r30; push fp 7482 00006d54 001df020 add r30,r0,r29; fp = sp 7483 00006d58 afbffff8 sw -8(r29),r31; push ret addr 7484 00006d5c 2fbd0010 subui r29,r29,#16; alloc local storage 7485 00006d60 afa20000 sw 0(r29),r2 7486 00006d64 afa30004 sw 4(r29),r3 7487 00006d68 8fc30000 lw r3,(r30) 7488 00006d6c 8fc10004 lw r1,4(r30) 7489 00006d70 8c620004 lw r2,4(r3) 7490 00006d74 ac230008 sw 8(r1),r3 7491 00006d78 ac220004 sw 4(r1),r2 7492 00006d7c 8c5f0000 lw r31,(r2) 7493 00006d80 ac3f0000 sw (r1),r31 7494 00006d84 ac410000 sw (r2),r1 7495 00006d88 8c220000 lw r2,(r1) 7496 00006d8c ac410004 sw 4(r2),r1 7497 00006d90 8c610008 lw r1,8(r3) 7498 00006d94 20210001 addi r1,r1,#1 7499 00006d98 ac610008 sw 8(r3),r1 7500 00006d9c 8fa20000 lw r2,0(r29) 7501 00006da0 8fa30004 lw r3,4(r29) 7502 00006da4 8fdffff8 lw r31,-8(r30) 7503 00006da8 001ee820 add r29,r0,r30 7504 00006dac 8fdefffc lw r30,-4(r30) 7505 00006db0 4be00000 jr r31 7506 00006db4 54000000 nop 7507 00006db8 .endproc _QueueInsertLast 7508 00006db8 .align 2 7509 00006db8 .proc _QueueRemove 7510 00006db8 .global _QueueRemove 7511 00006db8 _QueueRemove: 7512 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 7513 00006db8 afbefffc sw -4(r29),r30; push fp 7514 00006dbc 001df020 add r30,r0,r29; fp = sp 7515 00006dc0 afbffff8 sw -8(r29),r31; push ret addr 7516 00006dc4 2fbd0010 subui r29,r29,#16; alloc local storage 7517 00006dc8 afa20000 sw 0(r29),r2 7518 00006dcc afa30004 sw 4(r29),r3 7519 00006dd0 8fdf0000 lw r31,(r30) 7520 00006dd4 8fe10008 lw r1,8(r31) 7521 00006dd8 8c210008 lw r1,8(r1) 7522 00006ddc 6c210000 sgti r1,r1,#0 7523 00006de0 1020002c beqz r1,L44_LF7 7524 00006de4 54000000 nop; not filled. 7525 00006de8 8fe10004 lw r1,4(r31) 7526 00006dec 8fe30000 lw r3,(r31) 7527 00006df0 ac230000 sw (r1),r3 7528 00006df4 8fe10000 lw r1,(r31) 7529 00006df8 8fe30004 lw r3,4(r31) 7530 00006dfc ac230004 sw 4(r1),r3 7531 00006e00 8fe20008 lw r2,8(r31) 7532 00006e04 8c410008 lw r1,8(r2) 7533 00006e08 2021ffff addi r1,r1,#-1 7534 00006e0c ac410008 sw 8(r2),r1 7535 00006e10 L44_LF7: 7536 00006e10 20030000 addi r3,r0,#0 7537 00006e14 afe30000 sw (r31),r3 7538 00006e18 8fa20000 lw r2,0(r29) 7539 00006e1c 8fa30004 lw r3,4(r29) 7540 00006e20 8fdffff8 lw r31,-8(r30) 7541 00006e24 001ee820 add r29,r0,r30 7542 00006e28 8fdefffc lw r30,-4(r30) 7543 00006e2c 4be00000 jr r31 7544 00006e30 54000000 nop 7545 00006e34 .endproc _QueueRemove 7546 00006e34 .align 2 7547 00006e34 .proc _QueueLength 7548 00006e34 .global _QueueLength 7549 00006e34 _QueueLength: 7550 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 7551 00006e34 afbefffc sw -4(r29),r30; push fp 7552 00006e38 001df020 add r30,r0,r29; fp = sp 7553 00006e3c afbffff8 sw -8(r29),r31; push ret addr 7554 00006e40 2fbd0008 subui r29,r29,#8; alloc local storage 7555 00006e44 8fc10000 lw r1,(r30) 7556 00006e48 8c210008 lw r1,8(r1) 7557 00006e4c 8fdffff8 lw r31,-8(r30) 7558 00006e50 001ee820 add r29,r0,r30 7559 00006e54 8fdefffc lw r30,-4(r30) 7560 00006e58 4be00000 jr r31 7561 00006e5c 54000000 nop 7562 00006e60 .endproc _QueueLength 7563 00006e60 .align 2 7564 00006e60 .proc _QueueEmpty 7565 00006e60 .global _QueueEmpty 7566 00006e60 _QueueEmpty: 7567 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 7568 00006e60 afbefffc sw -4(r29),r30; push fp 7569 00006e64 001df020 add r30,r0,r29; fp = sp 7570 00006e68 afbffff8 sw -8(r29),r31; push ret addr 7571 00006e6c 2fbd0008 subui r29,r29,#8; alloc local storage 7572 00006e70 8fc10000 lw r1,(r30) 7573 00006e74 8c210008 lw r1,8(r1) 7574 00006e78 60210000 seqi r1,r1,#0 7575 00006e7c 8fdffff8 lw r31,-8(r30) 7576 00006e80 001ee820 add r29,r0,r30 7577 00006e84 8fdefffc lw r30,-4(r30) 7578 00006e88 4be00000 jr r31 7579 00006e8c 54000000 nop 7580 00006e90 .endproc _QueueEmpty 7581 00006e90 .data 7582 000136b0 .align 2 7583 000136b0 _processQuantum_LF7: 7584 000136b0 000186a0 .word 100000 7585 000136b4 .align 2 7586 000136b4 LC0_LF7: 7587 000136b4 456e7465 .ascii "Entering ProcessModuleInit\n\000" 7587 000136b8 72696e67 7587 000136bc 2050726f 7587 000136c0 63657373 7587 000136c4 4d6f6475 7587 000136c8 6c65496e 7587 000136cc 69740a00 7588 000136d0 .align 2 7589 000136d0 LC1_LF7: 7590 000136d0 496e6974 .ascii "Initializing PCB %d @ 0x%x.\n\000" 7590 000136d4 69616c69 7590 000136d8 7a696e67 7590 000136dc 20504342 7590 000136e0 20256420 7590 000136e4 40203078 7590 000136e8 25782e0a 7590 000136ec 00 7591 000136ed .align 2 7592 000136f0 LC2_LF7: 7593 000136f0 4c656176 .ascii "Leaving ProcessModuleInit\n\000" 7593 000136f4 696e6720 7593 000136f8 50726f63 7593 000136fc 6573734d 7593 00013700 6f64756c 7593 00013704 65496e69 7593 00013708 740a00 7594 0001370b .text 7595 00006e90 .align 2 7596 00006e90 .proc _ProcessModuleInit 7597 00006e90 .global _ProcessModuleInit 7598 00006e90 _ProcessModuleInit: 7599 ; Function 'ProcessModuleInit'; 0 bytes of locals, 7 regs to save. 7600 00006e90 afbefffc sw -4(r29),r30; push fp 7601 00006e94 001df020 add r30,r0,r29; fp = sp 7602 00006e98 afbffff8 sw -8(r29),r31; push ret addr 7603 00006e9c 2fbd0028 subui r29,r29,#40; alloc local storage 7604 00006ea0 afa20000 sw 0(r29),r2 7605 00006ea4 afa30004 sw 4(r29),r3 7606 00006ea8 afa40008 sw 8(r29),r4 7607 00006eac afa5000c sw 12(r29),r5 7608 00006eb0 afa60010 sw 16(r29),r6 7609 00006eb4 afa70014 sw 20(r29),r7 7610 00006eb8 afa80018 sw 24(r29),r8 7611 00006ebc 23bdfff8 addi r29,r29,#-8 7612 00006ec0 3c020001 lhi r2,((_debugstr)>>16)&0xffff 7613 00006ec4 24424038 addui r2,r2,(_debugstr)&0xffff 7614 00006ec8 afa20000 sw (r29),r2 7615 00006ecc 20080070 addi r8,r0,#112 7616 00006ed0 afa80004 sw 4(r29),r8 7617 00006ed4 0ffff6b4 jal _dindex 7618 00006ed8 54000000 nop; not filled. 7619 00006edc 23bd0008 addi r29,r29,#8 7620 00006ee0 64210000 snei r1,r1,#0 7621 00006ee4 1420002c bnez r1,L53_LF7 7622 00006ee8 54000000 nop; not filled. 7623 00006eec 23bdfff8 addi r29,r29,#-8 7624 00006ef0 afa20000 sw (r29),r2 7625 00006ef4 2008002b addi r8,r0,#43 7626 00006ef8 afa80004 sw 4(r29),r8 7627 00006efc 0ffff68c jal _dindex 7628 00006f00 54000000 nop; not filled. 7629 00006f04 23bd0008 addi r29,r29,#8 7630 00006f08 64210000 snei r1,r1,#0 7631 00006f0c 10200020 beqz r1,L52_LF7 7632 00006f10 54000000 nop; not filled. 7633 00006f14 L53_LF7: 7634 00006f14 23bdfff8 addi r29,r29,#-8 7635 00006f18 3c080001 lhi r8,((LC0_LF7)>>16)&0xffff 7636 00006f1c 250836b4 addui r8,r8,(LC0_LF7)&0xffff 7637 00006f20 afa80000 sw (r29),r8 7638 00006f24 0c0062fc jal _printf 7639 00006f28 54000000 nop; not filled. 7640 00006f2c 23bd0008 addi r29,r29,#8 7641 00006f30 L52_LF7: 7642 00006f30 23bdfff8 addi r29,r29,#-8 7643 00006f34 3c020001 lhi r2,((_freepcbs_LF7)>>16)&0xffff 7644 00006f38 24424104 addui r2,r2,(_freepcbs_LF7)&0xffff 7645 00006f3c afa20000 sw (r29),r2 7646 00006f40 0c0039b8 jal _QueueInit 7647 00006f44 54000000 nop; not filled. 7648 00006f48 3c080001 lhi r8,((_runQueue_LF7)>>16)&0xffff 7649 00006f4c 25084110 addui r8,r8,(_runQueue_LF7)&0xffff 7650 00006f50 afa80000 sw (r29),r8 7651 00006f54 0c0039a4 jal _QueueInit 7652 00006f58 54000000 nop; not filled. 7653 00006f5c 3c080001 lhi r8,((_waitQueue_LF7)>>16)&0xffff 7654 00006f60 2508411c addui r8,r8,(_waitQueue_LF7)&0xffff 7655 00006f64 afa80000 sw (r29),r8 7656 00006f68 0c003990 jal _QueueInit 7657 00006f6c 54000000 nop; not filled. 7658 00006f70 3c080001 lhi r8,((_zombieQueue_LF7)>>16)&0xffff 7659 00006f74 25084128 addui r8,r8,(_zombieQueue_LF7)&0xffff 7660 00006f78 afa80000 sw (r29),r8 7661 00006f7c 0c00397c jal _QueueInit 7662 00006f80 54000000 nop; not filled. 7663 00006f84 20040000 addi r4,r0,#0 7664 00006f88 23bd0008 addi r29,r29,#8 7665 00006f8c 3c070001 lhi r7,((_debugstr)>>16)&0xffff 7666 00006f90 24e74038 addui r7,r7,(_debugstr)&0xffff 7667 00006f94 3c010001 lhi r1,((_pcbs_LF7)>>16)&0xffff 7668 00006f98 24214134 addui r1,r1,(_pcbs_LF7)&0xffff 7669 00006f9c 00022820 add r5,r0,r2 7670 00006fa0 202200a4 addi r2,r1,#164 7671 00006fa4 00011820 add r3,r0,r1 7672 00006fa8 00033020 add r6,r0,r3 7673 00006fac L57_LF7: 7674 00006fac 23bdfff8 addi r29,r29,#-8 7675 00006fb0 afa70000 sw (r29),r7 7676 00006fb4 20080070 addi r8,r0,#112 7677 00006fb8 afa80004 sw 4(r29),r8 7678 00006fbc 0ffff5cc jal _dindex 7679 00006fc0 54000000 nop; not filled. 7680 00006fc4 23bd0008 addi r29,r29,#8 7681 00006fc8 64210000 snei r1,r1,#0 7682 00006fcc 1420002c bnez r1,L59_LF7 7683 00006fd0 54000000 nop; not filled. 7684 00006fd4 23bdfff8 addi r29,r29,#-8 7685 00006fd8 afa70000 sw (r29),r7 7686 00006fdc 2008002b addi r8,r0,#43 7687 00006fe0 afa80004 sw 4(r29),r8 7688 00006fe4 0ffff5a4 jal _dindex 7689 00006fe8 54000000 nop; not filled. 7690 00006fec 23bd0008 addi r29,r29,#8 7691 00006ff0 64210000 snei r1,r1,#0 7692 00006ff4 10200028 beqz r1,L58_LF7 7693 00006ff8 54000000 nop; not filled. 7694 00006ffc L59_LF7: 7695 00006ffc 23bdfff0 addi r29,r29,#-16 7696 00007000 3c080001 lhi r8,((LC1_LF7)>>16)&0xffff 7697 00007004 250836d0 addui r8,r8,(LC1_LF7)&0xffff 7698 00007008 afa80000 sw (r29),r8 7699 0000700c afa40004 sw 4(r29),r4 7700 00007010 afa60008 sw 8(r29),r6 7701 00007014 0c00620c jal _printf 7702 00007018 54000000 nop; not filled. 7703 0000701c 23bd0010 addi r29,r29,#16 7704 00007020 L58_LF7: 7705 00007020 20080001 addi r8,r0,#1 7706 00007024 ac68000c sw 12(r3),r8 7707 00007028 20080000 addi r8,r0,#0 7708 0000702c ac480000 sw (r2),r8 7709 00007030 ac43000c sw 12(r2),r3 7710 00007034 ac450008 sw 8(r2),r5 7711 00007038 ac450004 sw 4(r2),r5 7712 0000703c 8ca80000 lw r8,(r5) 7713 00007040 ac480000 sw (r2),r8 7714 00007044 aca20000 sw (r5),r2 7715 00007048 8c410000 lw r1,(r2) 7716 0000704c ac220004 sw 4(r1),r2 7717 00007050 8ca10008 lw r1,8(r5) 7718 00007054 20210001 addi r1,r1,#1 7719 00007058 aca10008 sw 8(r5),r1 7720 0000705c 204200b4 addi r2,r2,#180 7721 00007060 206300b4 addi r3,r3,#180 7722 00007064 20c600b4 addi r6,r6,#180 7723 00007068 20840001 addi r4,r4,#1 7724 0000706c 7081001f slei r1,r4,#31 7725 00007070 1420ff38 bnez r1,L57_LF7 7726 00007074 54000000 nop; not filled. 7727 00007078 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 7728 0000707c 24214100 addui r1,r1,(_currentPCB)&0xffff 7729 00007080 20080000 addi r8,r0,#0 7730 00007084 ac280000 sw (r1),r8 7731 00007088 23bdfff8 addi r29,r29,#-8 7732 0000708c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 7733 00007090 24424038 addui r2,r2,(_debugstr)&0xffff 7734 00007094 afa20000 sw (r29),r2 7735 00007098 20080070 addi r8,r0,#112 7736 0000709c afa80004 sw 4(r29),r8 7737 000070a0 0ffff4e8 jal _dindex 7738 000070a4 54000000 nop; not filled. 7739 000070a8 23bd0008 addi r29,r29,#8 7740 000070ac 64210000 snei r1,r1,#0 7741 000070b0 1420002c bnez r1,L65_LF7 7742 000070b4 54000000 nop; not filled. 7743 000070b8 23bdfff8 addi r29,r29,#-8 7744 000070bc afa20000 sw (r29),r2 7745 000070c0 2008002b addi r8,r0,#43 7746 000070c4 afa80004 sw 4(r29),r8 7747 000070c8 0ffff4c0 jal _dindex 7748 000070cc 54000000 nop; not filled. 7749 000070d0 23bd0008 addi r29,r29,#8 7750 000070d4 64210000 snei r1,r1,#0 7751 000070d8 10200020 beqz r1,L64_LF7 7752 000070dc 54000000 nop; not filled. 7753 000070e0 L65_LF7: 7754 000070e0 23bdfff8 addi r29,r29,#-8 7755 000070e4 3c080001 lhi r8,((LC2_LF7)>>16)&0xffff 7756 000070e8 250836f0 addui r8,r8,(LC2_LF7)&0xffff 7757 000070ec afa80000 sw (r29),r8 7758 000070f0 0c006130 jal _printf 7759 000070f4 54000000 nop; not filled. 7760 000070f8 23bd0008 addi r29,r29,#8 7761 000070fc L64_LF7: 7762 000070fc 8fa20000 lw r2,0(r29) 7763 00007100 8fa30004 lw r3,4(r29) 7764 00007104 8fa40008 lw r4,8(r29) 7765 00007108 8fa5000c lw r5,12(r29) 7766 0000710c 8fa60010 lw r6,16(r29) 7767 00007110 8fa70014 lw r7,20(r29) 7768 00007114 8fa80018 lw r8,24(r29) 7769 00007118 8fdffff8 lw r31,-8(r30) 7770 0000711c 001ee820 add r29,r0,r30 7771 00007120 8fdefffc lw r30,-4(r30) 7772 00007124 4be00000 jr r31 7773 00007128 54000000 nop 7774 0000712c .endproc _ProcessModuleInit 7775 0000712c .align 2 7776 0000712c .proc _ProcessSetStatus 7777 0000712c .global _ProcessSetStatus 7778 0000712c _ProcessSetStatus: 7779 ; Function 'ProcessSetStatus'; 0 bytes of locals, 2 regs to save. 7780 0000712c afbefffc sw -4(r29),r30; push fp 7781 00007130 001df020 add r30,r0,r29; fp = sp 7782 00007134 afbffff8 sw -8(r29),r31; push ret addr 7783 00007138 2fbd0010 subui r29,r29,#16; alloc local storage 7784 0000713c afa20000 sw 0(r29),r2 7785 00007140 afa30004 sw 4(r29),r3 7786 00007144 8fc30000 lw r3,(r30) 7787 00007148 8fc20004 lw r2,4(r30) 7788 0000714c 8c61000c lw r1,12(r3) 7789 00007150 201fffc0 addi r31,r0,#-64 7790 00007154 003f0824 and r1,r1,r31 7791 00007158 00220825 or r1,r1,r2 7792 0000715c ac61000c sw 12(r3),r1 7793 00007160 8fa20000 lw r2,0(r29) 7794 00007164 8fa30004 lw r3,4(r29) 7795 00007168 8fdffff8 lw r31,-8(r30) 7796 0000716c 001ee820 add r29,r0,r30 7797 00007170 8fdefffc lw r30,-4(r30) 7798 00007174 4be00000 jr r31 7799 00007178 54000000 nop 7800 0000717c .endproc _ProcessSetStatus 7801 0000717c .align 2 7802 0000717c .proc _ProcessFreeResources 7803 0000717c .global _ProcessFreeResources 7804 0000717c _ProcessFreeResources: 7805 ; Function 'ProcessFreeResources'; 0 bytes of locals, 4 regs to save. 7806 0000717c afbefffc sw -4(r29),r30; push fp 7807 00007180 001df020 add r30,r0,r29; fp = sp 7808 00007184 afbffff8 sw -8(r29),r31; push ret addr 7809 00007188 2fbd0018 subui r29,r29,#24; alloc local storage 7810 0000718c afa20000 sw 0(r29),r2 7811 00007190 afa30004 sw 4(r29),r3 7812 00007194 afa40008 sw 8(r29),r4 7813 00007198 afa5000c sw 12(r29),r5 7814 0000719c 8fc40000 lw r4,(r30) 7815 000071a0 3c030001 lhi r3,((_freepcbs_LF7)>>16)&0xffff 7816 000071a4 24634104 addui r3,r3,(_freepcbs_LF7)&0xffff 7817 000071a8 208200a4 addi r2,r4,#164 7818 000071ac 8c610004 lw r1,4(r3) 7819 000071b0 ac8300ac sw 172(r4),r3 7820 000071b4 ac8100a8 sw 168(r4),r1 7821 000071b8 8c250000 lw r5,(r1) 7822 000071bc ac450000 sw (r2),r5 7823 000071c0 ac220000 sw (r1),r2 7824 000071c4 8c410000 lw r1,(r2) 7825 000071c8 ac220004 sw 4(r1),r2 7826 000071cc 8c610008 lw r1,8(r3) 7827 000071d0 20210001 addi r1,r1,#1 7828 000071d4 ac610008 sw 8(r3),r1 7829 000071d8 8c8300a0 lw r3,160(r4) 7830 000071dc 20020000 addi r2,r0,#0 7831 000071e0 0043082a slt r1,r2,r3 7832 000071e4 10200030 beqz r1,L98_LF7 7833 000071e8 54000000 nop; not filled. 7834 000071ec L90_LF7: 7835 000071ec 23bdfff8 addi r29,r29,#-8 7836 000071f0 afa40000 sw (r29),r4 7837 000071f4 afa20004 sw 4(r29),r2 7838 000071f8 0fffaaf8 jal _MemoryFreeSharedPte 7839 000071fc 54000000 nop; not filled. 7840 00007200 23bd0008 addi r29,r29,#8 7841 00007204 20420001 addi r2,r2,#1 7842 00007208 0043082a slt r1,r2,r3 7843 0000720c 1420ffdc bnez r1,L90_LF7 7844 00007210 54000000 nop; not filled. 7845 00007214 20020000 addi r2,r0,#0 7846 00007218 L98_LF7: 7847 00007218 8c8100a0 lw r1,160(r4) 7848 0000721c 0041082a slt r1,r2,r1 7849 00007220 10200038 beqz r1,L93_LF7 7850 00007224 54000000 nop; not filled. 7851 00007228 00041820 add r3,r0,r4 7852 0000722c L95_LF7: 7853 0000722c 23bdfff8 addi r29,r29,#-8 7854 00007230 8c650060 lw r5,96(r3) 7855 00007234 afa50000 sw (r29),r5 7856 00007238 0fffebf8 jal _MemoryFreePte 7857 0000723c 54000000 nop; not filled. 7858 00007240 23bd0008 addi r29,r29,#8 7859 00007244 20630004 addi r3,r3,#4 7860 00007248 20420001 addi r2,r2,#1 7861 0000724c 8c8100a0 lw r1,160(r4) 7862 00007250 0041082a slt r1,r2,r1 7863 00007254 1420ffd4 bnez r1,L95_LF7 7864 00007258 54000000 nop; not filled. 7865 0000725c L93_LF7: 7866 0000725c 23bdfff8 addi r29,r29,#-8 7867 00007260 94810008 lhu r1,8(r4) 7868 00007264 afa10000 sw (r29),r1 7869 00007268 0fffe6fc jal _MemoryFreePage 7870 0000726c 54000000 nop; not filled. 7871 00007270 23bd0008 addi r29,r29,#8 7872 00007274 8c81000c lw r1,12(r4) 7873 00007278 2005ffc0 addi r5,r0,#-64 7874 0000727c 00250824 and r1,r1,r5 7875 00007280 34210001 ori r1,r1,#1 7876 00007284 ac81000c sw 12(r4),r1 7877 00007288 8fa20000 lw r2,0(r29) 7878 0000728c 8fa30004 lw r3,4(r29) 7879 00007290 8fa40008 lw r4,8(r29) 7880 00007294 8fa5000c lw r5,12(r29) 7881 00007298 8fdffff8 lw r31,-8(r30) 7882 0000729c 001ee820 add r29,r0,r30 7883 000072a0 8fdefffc lw r30,-4(r30) 7884 000072a4 4be00000 jr r31 7885 000072a8 54000000 nop 7886 000072ac .endproc _ProcessFreeResources 7887 000072ac .align 2 7888 000072ac .proc _ProcessSetResult 7889 000072ac .global _ProcessSetResult 7890 000072ac _ProcessSetResult: 7891 ; Function 'ProcessSetResult'; 0 bytes of locals, 0 regs to save. 7892 000072ac afbefffc sw -4(r29),r30; push fp 7893 000072b0 001df020 add r30,r0,r29; fp = sp 7894 000072b4 afbffff8 sw -8(r29),r31; push ret addr 7895 000072b8 2fbd0008 subui r29,r29,#8; alloc local storage 7896 000072bc 8fc10000 lw r1,(r30) 7897 000072c0 8c210000 lw r1,(r1) 7898 000072c4 8fdf0004 lw r31,4(r30) 7899 000072c8 ac3f002c sw 44(r1),r31 7900 000072cc 8fdffff8 lw r31,-8(r30) 7901 000072d0 001ee820 add r29,r0,r30 7902 000072d4 8fdefffc lw r30,-4(r30) 7903 000072d8 4be00000 jr r31 7904 000072dc 54000000 nop 7905 000072e0 .endproc _ProcessSetResult 7906 000072e0 .data 7907 0001370b .align 2 7908 0001370c LC3_LF7: 7909 0001370c 4e6f7720 .ascii "Now entering ProcessSchedule (cur=0x%x, %d ready)\n\000" 7909 00013710 656e7465 7909 00013714 72696e67 7909 00013718 2050726f 7909 0001371c 63657373 7909 00013720 53636865 7909 00013724 64756c65 7909 00013728 20286375 7909 0001372c 723d3078 7909 00013730 25782c20 7909 00013734 25642072 7909 00013738 65616479 7909 0001373c 290a00 7910 0001373f .align 2 7911 00013740 LC4_LF7: 7912 00013740 4e6f2072 .ascii "No runnable processes - exiting!\n\000" 7912 00013744 756e6e61 7912 00013748 626c6520 7912 0001374c 70726f63 7912 00013750 65737365 7912 00013754 73202d20 7912 00013758 65786974 7912 0001375c 696e6721 7912 00013760 0a00 7913 00013762 .align 2 7914 00013764 LC5_LF7: 7915 00013764 41626f75 .ascii "About to switch to PCB 0x%x,flags=0x%x @ 0x%x\n\000" 7915 00013768 7420746f 7915 0001376c 20737769 7915 00013770 74636820 7915 00013774 746f2050 7915 00013778 43422030 7915 0001377c 7825782c 7915 00013780 666c6167 7915 00013784 733d3078 7915 00013788 25782040 7915 0001378c 20307825 7915 00013790 780a00 7916 00013793 .align 2 7917 00013794 LC6_LF7: 7918 00013794 46726565 .ascii "Freeing zombie PCB 0x%x.\n\000" 7918 00013798 696e6720 7918 0001379c 7a6f6d62 7918 000137a0 69652050 7918 000137a4 43422030 7918 000137a8 7825782e 7918 000137ac 0a00 7919 000137ae .align 2 7920 000137b0 LC7_LF7: 7921 000137b0 4c656176 .ascii "Leaving ProcessSchedule (cur=0x%x)\n\000" 7921 000137b4 696e6720 7921 000137b8 50726f63 7921 000137bc 65737353 7921 000137c0 63686564 7921 000137c4 756c6520 7921 000137c8 28637572 7921 000137cc 3d307825 7921 000137d0 78290a00 7922 000137d4 .text 7923 000072e0 .align 2 7924 000072e0 .proc _ProcessSchedule 7925 000072e0 .global _ProcessSchedule 7926 000072e0 _ProcessSchedule: 7927 ; Function 'ProcessSchedule'; 0 bytes of locals, 7 regs to save. 7928 000072e0 afbefffc sw -4(r29),r30; push fp 7929 000072e4 001df020 add r30,r0,r29; fp = sp 7930 000072e8 afbffff8 sw -8(r29),r31; push ret addr 7931 000072ec 2fbd0028 subui r29,r29,#40; alloc local storage 7932 000072f0 afa20000 sw 0(r29),r2 7933 000072f4 afa30004 sw 4(r29),r3 7934 000072f8 afa40008 sw 8(r29),r4 7935 000072fc afa5000c sw 12(r29),r5 7936 00007300 afa60010 sw 16(r29),r6 7937 00007304 afa70014 sw 20(r29),r7 7938 00007308 afa80018 sw 24(r29),r8 7939 0000730c 23bdfff8 addi r29,r29,#-8 7940 00007310 3c020001 lhi r2,((_debugstr)>>16)&0xffff 7941 00007314 24424038 addui r2,r2,(_debugstr)&0xffff 7942 00007318 afa20000 sw (r29),r2 7943 0000731c 20080070 addi r8,r0,#112 7944 00007320 afa80004 sw 4(r29),r8 7945 00007324 0ffff264 jal _dindex 7946 00007328 54000000 nop; not filled. 7947 0000732c 23bd0008 addi r29,r29,#8 7948 00007330 64210000 snei r1,r1,#0 7949 00007334 1420002c bnez r1,L103_LF7 7950 00007338 54000000 nop; not filled. 7951 0000733c 23bdfff8 addi r29,r29,#-8 7952 00007340 afa20000 sw (r29),r2 7953 00007344 2008002b addi r8,r0,#43 7954 00007348 afa80004 sw 4(r29),r8 7955 0000734c 0ffff23c jal _dindex 7956 00007350 54000000 nop; not filled. 7957 00007354 23bd0008 addi r29,r29,#8 7958 00007358 64210000 snei r1,r1,#0 7959 0000735c 10200040 beqz r1,L102_LF7 7960 00007360 54000000 nop; not filled. 7961 00007364 L103_LF7: 7962 00007364 3c010001 lhi r1,((_runQueue_LF7)>>16)&0xffff 7963 00007368 24214110 addui r1,r1,(_runQueue_LF7)&0xffff 7964 0000736c 8c220008 lw r2,8(r1) 7965 00007370 23bdfff0 addi r29,r29,#-16 7966 00007374 3c080001 lhi r8,((LC3_LF7)>>16)&0xffff 7967 00007378 2508370c addui r8,r8,(LC3_LF7)&0xffff 7968 0000737c afa80000 sw (r29),r8 7969 00007380 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 7970 00007384 24214100 addui r1,r1,(_currentPCB)&0xffff 7971 00007388 8c210000 lw r1,(r1) 7972 0000738c afa10004 sw 4(r29),r1 7973 00007390 afa20008 sw 8(r29),r2 7974 00007394 0c005e8c jal _printf 7975 00007398 54000000 nop; not filled. 7976 0000739c 23bd0010 addi r29,r29,#16 7977 000073a0 L102_LF7: 7978 000073a0 3c050001 lhi r5,((_runQueue_LF7)>>16)&0xffff 7979 000073a4 24a54110 addui r5,r5,(_runQueue_LF7)&0xffff 7980 000073a8 8ca10008 lw r1,8(r5) 7981 000073ac 60210000 seqi r1,r1,#0 7982 000073b0 10200028 beqz r1,L105_LF7 7983 000073b4 54000000 nop; not filled. 7984 000073b8 23bdfff8 addi r29,r29,#-8 7985 000073bc 3c080001 lhi r8,((LC4_LF7)>>16)&0xffff 7986 000073c0 25083740 addui r8,r8,(LC4_LF7)&0xffff 7987 000073c4 afa80000 sw (r29),r8 7988 000073c8 0c005e58 jal _printf 7989 000073cc 54000000 nop; not filled. 7990 000073d0 0c005e38 jal _exitsim 7991 000073d4 54000000 nop; not filled. 7992 000073d8 23bd0008 addi r29,r29,#8 7993 000073dc L105_LF7: 7994 000073dc 8ca10000 lw r1,(r5) 7995 000073e0 8c24000c lw r4,12(r1) 7996 000073e4 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 7997 000073e8 24214100 addui r1,r1,(_currentPCB)&0xffff 7998 000073ec 8c210000 lw r1,(r1) 7999 000073f0 00810828 seq r1,r4,r1 8000 000073f4 10200078 beqz r1,L109_LF7 8001 000073f8 54000000 nop; not filled. 8002 000073fc 208300a4 addi r3,r4,#164 8003 00007400 8c8100ac lw r1,172(r4) 8004 00007404 8c210008 lw r1,8(r1) 8005 00007408 6c210000 sgti r1,r1,#0 8006 0000740c 1020002c beqz r1,L111_LF7 8007 00007410 54000000 nop; not filled. 8008 00007414 8c8100a8 lw r1,168(r4) 8009 00007418 8c680000 lw r8,(r3) 8010 0000741c ac280000 sw (r1),r8 8011 00007420 8c610000 lw r1,(r3) 8012 00007424 8c8800a8 lw r8,168(r4) 8013 00007428 ac280004 sw 4(r1),r8 8014 0000742c 8c8200ac lw r2,172(r4) 8015 00007430 8c410008 lw r1,8(r2) 8016 00007434 2021ffff addi r1,r1,#-1 8017 00007438 ac410008 sw 8(r2),r1 8018 0000743c L111_LF7: 8019 0000743c 20080000 addi r8,r0,#0 8020 00007440 ac680000 sw (r3),r8 8021 00007444 8ca10004 lw r1,4(r5) 8022 00007448 ac8500ac sw 172(r4),r5 8023 0000744c ac8100a8 sw 168(r4),r1 8024 00007450 8c280000 lw r8,(r1) 8025 00007454 ac680000 sw (r3),r8 8026 00007458 ac230000 sw (r1),r3 8027 0000745c 8c610000 lw r1,(r3) 8028 00007460 ac230004 sw 4(r1),r3 8029 00007464 8ca10008 lw r1,8(r5) 8030 00007468 20210001 addi r1,r1,#1 8031 0000746c aca10008 sw 8(r5),r1 8032 00007470 L109_LF7: 8033 00007470 3c010001 lhi r1,((_runQueue_LF7)>>16)&0xffff 8034 00007474 24214110 addui r1,r1,(_runQueue_LF7)&0xffff 8035 00007478 8c210000 lw r1,(r1) 8036 0000747c 8c24000c lw r4,12(r1) 8037 00007480 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 8038 00007484 24214100 addui r1,r1,(_currentPCB)&0xffff 8039 00007488 ac240000 sw (r1),r4 8040 0000748c 23bdfff8 addi r29,r29,#-8 8041 00007490 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8042 00007494 24424038 addui r2,r2,(_debugstr)&0xffff 8043 00007498 afa20000 sw (r29),r2 8044 0000749c 20080070 addi r8,r0,#112 8045 000074a0 afa80004 sw 4(r29),r8 8046 000074a4 0ffff0e4 jal _dindex 8047 000074a8 54000000 nop; not filled. 8048 000074ac 23bd0008 addi r29,r29,#8 8049 000074b0 64210000 snei r1,r1,#0 8050 000074b4 1420002c bnez r1,L117_LF7 8051 000074b8 54000000 nop; not filled. 8052 000074bc 23bdfff8 addi r29,r29,#-8 8053 000074c0 afa20000 sw (r29),r2 8054 000074c4 2008002b addi r8,r0,#43 8055 000074c8 afa80004 sw 4(r29),r8 8056 000074cc 0ffff0bc jal _dindex 8057 000074d0 54000000 nop; not filled. 8058 000074d4 23bd0008 addi r29,r29,#8 8059 000074d8 64210000 snei r1,r1,#0 8060 000074dc 10200038 beqz r1,L116_LF7 8061 000074e0 54000000 nop; not filled. 8062 000074e4 L117_LF7: 8063 000074e4 23bdfff0 addi r29,r29,#-16 8064 000074e8 3c080001 lhi r8,((LC5_LF7)>>16)&0xffff 8065 000074ec 25083764 addui r8,r8,(LC5_LF7)&0xffff 8066 000074f0 afa80000 sw (r29),r8 8067 000074f4 afa40004 sw 4(r29),r4 8068 000074f8 8c88000c lw r8,12(r4) 8069 000074fc afa80008 sw 8(r29),r8 8070 00007500 8c810004 lw r1,4(r4) 8071 00007504 8c210128 lw r1,296(r1) 8072 00007508 afa1000c sw 12(r29),r1 8073 0000750c 0c005d14 jal _printf 8074 00007510 54000000 nop; not filled. 8075 00007514 23bd0010 addi r29,r29,#16 8076 00007518 L116_LF7: 8077 00007518 3c070001 lhi r7,((_zombieQueue_LF7)>>16)&0xffff 8078 0000751c 24e74128 addui r7,r7,(_zombieQueue_LF7)&0xffff 8079 00007520 3c060001 lhi r6,((_debugstr)>>16)&0xffff 8080 00007524 24c64038 addui r6,r6,(_debugstr)&0xffff 8081 00007528 3c050001 lhi r5,((_freepcbs_LF7)>>16)&0xffff 8082 0000752c 24a54104 addui r5,r5,(_freepcbs_LF7)&0xffff 8083 00007530 L118_LF7: 8084 00007530 8ce10008 lw r1,8(r7) 8085 00007534 60210000 seqi r1,r1,#0 8086 00007538 142001a8 bnez r1,L119_LF7 8087 0000753c 54000000 nop; not filled. 8088 00007540 8ce10000 lw r1,(r7) 8089 00007544 8c24000c lw r4,12(r1) 8090 00007548 23bdfff8 addi r29,r29,#-8 8091 0000754c afa60000 sw (r29),r6 8092 00007550 20080070 addi r8,r0,#112 8093 00007554 afa80004 sw 4(r29),r8 8094 00007558 0ffff030 jal _dindex 8095 0000755c 54000000 nop; not filled. 8096 00007560 23bd0008 addi r29,r29,#8 8097 00007564 64210000 snei r1,r1,#0 8098 00007568 1420002c bnez r1,L125_LF7 8099 0000756c 54000000 nop; not filled. 8100 00007570 23bdfff8 addi r29,r29,#-8 8101 00007574 afa60000 sw (r29),r6 8102 00007578 2008002b addi r8,r0,#43 8103 0000757c afa80004 sw 4(r29),r8 8104 00007580 0ffff008 jal _dindex 8105 00007584 54000000 nop; not filled. 8106 00007588 23bd0008 addi r29,r29,#8 8107 0000758c 64210000 snei r1,r1,#0 8108 00007590 10200024 beqz r1,L124_LF7 8109 00007594 54000000 nop; not filled. 8110 00007598 L125_LF7: 8111 00007598 23bdfff8 addi r29,r29,#-8 8112 0000759c 3c080001 lhi r8,((LC6_LF7)>>16)&0xffff 8113 000075a0 25083794 addui r8,r8,(LC6_LF7)&0xffff 8114 000075a4 afa80000 sw (r29),r8 8115 000075a8 afa40004 sw 4(r29),r4 8116 000075ac 0c005c74 jal _printf 8117 000075b0 54000000 nop; not filled. 8118 000075b4 23bd0008 addi r29,r29,#8 8119 000075b8 L124_LF7: 8120 000075b8 209f00a4 addi r31,r4,#164 8121 000075bc 8c8100ac lw r1,172(r4) 8122 000075c0 8c210008 lw r1,8(r1) 8123 000075c4 6c210000 sgti r1,r1,#0 8124 000075c8 1020002c beqz r1,L127_LF7 8125 000075cc 54000000 nop; not filled. 8126 000075d0 8c8100a8 lw r1,168(r4) 8127 000075d4 8fe80000 lw r8,(r31) 8128 000075d8 ac280000 sw (r1),r8 8129 000075dc 8fe10000 lw r1,(r31) 8130 000075e0 8c8800a8 lw r8,168(r4) 8131 000075e4 ac280004 sw 4(r1),r8 8132 000075e8 8c8200ac lw r2,172(r4) 8133 000075ec 8c410008 lw r1,8(r2) 8134 000075f0 2021ffff addi r1,r1,#-1 8135 000075f4 ac410008 sw 8(r2),r1 8136 000075f8 L127_LF7: 8137 000075f8 20080000 addi r8,r0,#0 8138 000075fc afe80000 sw (r31),r8 8139 00007600 8ca10004 lw r1,4(r5) 8140 00007604 ac8500ac sw 172(r4),r5 8141 00007608 ac8100a8 sw 168(r4),r1 8142 0000760c 8c280000 lw r8,(r1) 8143 00007610 afe80000 sw (r31),r8 8144 00007614 ac3f0000 sw (r1),r31 8145 00007618 8fe10000 lw r1,(r31) 8146 0000761c ac3f0004 sw 4(r1),r31 8147 00007620 8ca10008 lw r1,8(r5) 8148 00007624 20210001 addi r1,r1,#1 8149 00007628 aca10008 sw 8(r5),r1 8150 0000762c 8c8300a0 lw r3,160(r4) 8151 00007630 20020000 addi r2,r0,#0 8152 00007634 0043082a slt r1,r2,r3 8153 00007638 10200030 beqz r1,L145_LF7 8154 0000763c 54000000 nop; not filled. 8155 00007640 L135_LF7: 8156 00007640 23bdfff8 addi r29,r29,#-8 8157 00007644 afa40000 sw (r29),r4 8158 00007648 afa20004 sw 4(r29),r2 8159 0000764c 0fffa6a4 jal _MemoryFreeSharedPte 8160 00007650 54000000 nop; not filled. 8161 00007654 23bd0008 addi r29,r29,#8 8162 00007658 20420001 addi r2,r2,#1 8163 0000765c 0043082a slt r1,r2,r3 8164 00007660 1420ffdc bnez r1,L135_LF7 8165 00007664 54000000 nop; not filled. 8166 00007668 20020000 addi r2,r0,#0 8167 0000766c L145_LF7: 8168 0000766c 8c8100a0 lw r1,160(r4) 8169 00007670 0041082a slt r1,r2,r1 8170 00007674 10200038 beqz r1,L138_LF7 8171 00007678 54000000 nop; not filled. 8172 0000767c 00041820 add r3,r0,r4 8173 00007680 L140_LF7: 8174 00007680 23bdfff8 addi r29,r29,#-8 8175 00007684 8c680060 lw r8,96(r3) 8176 00007688 afa80000 sw (r29),r8 8177 0000768c 0fffe7a4 jal _MemoryFreePte 8178 00007690 54000000 nop; not filled. 8179 00007694 23bd0008 addi r29,r29,#8 8180 00007698 20630004 addi r3,r3,#4 8181 0000769c 20420001 addi r2,r2,#1 8182 000076a0 8c8100a0 lw r1,160(r4) 8183 000076a4 0041082a slt r1,r2,r1 8184 000076a8 1420ffd4 bnez r1,L140_LF7 8185 000076ac 54000000 nop; not filled. 8186 000076b0 L138_LF7: 8187 000076b0 23bdfff8 addi r29,r29,#-8 8188 000076b4 94810008 lhu r1,8(r4) 8189 000076b8 afa10000 sw (r29),r1 8190 000076bc 0fffe2a8 jal _MemoryFreePage 8191 000076c0 54000000 nop; not filled. 8192 000076c4 23bd0008 addi r29,r29,#8 8193 000076c8 8c81000c lw r1,12(r4) 8194 000076cc 2008ffc0 addi r8,r0,#-64 8195 000076d0 00280824 and r1,r1,r8 8196 000076d4 34210001 ori r1,r1,#1 8197 000076d8 ac81000c sw 12(r4),r1 8198 000076dc 0bfffe50 j L118_LF7 8199 000076e0 54000000 nop; not filled. 8200 000076e4 L119_LF7: 8201 000076e4 23bdfff8 addi r29,r29,#-8 8202 000076e8 3c010001 lhi r1,((_processQuantum_LF7)>>16)&0xffff 8203 000076ec 242136b0 addui r1,r1,(_processQuantum_LF7)&0xffff 8204 000076f0 8c210000 lw r1,(r1) 8205 000076f4 afa10000 sw (r29),r1 8206 000076f8 0c003878 jal _TimerSet 8207 000076fc 54000000 nop; not filled. 8208 00007700 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8209 00007704 24424038 addui r2,r2,(_debugstr)&0xffff 8210 00007708 afa20000 sw (r29),r2 8211 0000770c 20080070 addi r8,r0,#112 8212 00007710 afa80004 sw 4(r29),r8 8213 00007714 0fffee74 jal _dindex 8214 00007718 54000000 nop; not filled. 8215 0000771c 23bd0008 addi r29,r29,#8 8216 00007720 64210000 snei r1,r1,#0 8217 00007724 1420002c bnez r1,L144_LF7 8218 00007728 54000000 nop; not filled. 8219 0000772c 23bdfff8 addi r29,r29,#-8 8220 00007730 afa20000 sw (r29),r2 8221 00007734 2008002b addi r8,r0,#43 8222 00007738 afa80004 sw 4(r29),r8 8223 0000773c 0fffee4c jal _dindex 8224 00007740 54000000 nop; not filled. 8225 00007744 23bd0008 addi r29,r29,#8 8226 00007748 64210000 snei r1,r1,#0 8227 0000774c 10200030 beqz r1,L143_LF7 8228 00007750 54000000 nop; not filled. 8229 00007754 L144_LF7: 8230 00007754 23bdfff8 addi r29,r29,#-8 8231 00007758 3c080001 lhi r8,((LC7_LF7)>>16)&0xffff 8232 0000775c 250837b0 addui r8,r8,(LC7_LF7)&0xffff 8233 00007760 afa80000 sw (r29),r8 8234 00007764 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 8235 00007768 24214100 addui r1,r1,(_currentPCB)&0xffff 8236 0000776c 8c210000 lw r1,(r1) 8237 00007770 afa10004 sw 4(r29),r1 8238 00007774 0c005aac jal _printf 8239 00007778 54000000 nop; not filled. 8240 0000777c 23bd0008 addi r29,r29,#8 8241 00007780 L143_LF7: 8242 00007780 8fa20000 lw r2,0(r29) 8243 00007784 8fa30004 lw r3,4(r29) 8244 00007788 8fa40008 lw r4,8(r29) 8245 0000778c 8fa5000c lw r5,12(r29) 8246 00007790 8fa60010 lw r6,16(r29) 8247 00007794 8fa70014 lw r7,20(r29) 8248 00007798 8fa80018 lw r8,24(r29) 8249 0000779c 8fdffff8 lw r31,-8(r30) 8250 000077a0 001ee820 add r29,r0,r30 8251 000077a4 8fdefffc lw r30,-4(r30) 8252 000077a8 4be00000 jr r31 8253 000077ac 54000000 nop 8254 000077b0 .endproc _ProcessSchedule 8255 000077b0 .data 8256 000137d4 .align 2 8257 000137d4 LC8_LF7: 8258 000137d4 53757370 .ascii "Suspending PCB 0x%x (%s).\n\000" 8258 000137d8 656e6469 8258 000137dc 6e672050 8258 000137e0 43422030 8258 000137e4 78257820 8258 000137e8 28257329 8258 000137ec 2e0a00 8259 000137ef .align 2 8260 000137f0 LC9_LF7: 8261 000137f0 25733a20 .ascii "%s: %s\n\000" 8261 000137f4 25730a00 8262 000137f8 .align 2 8263 000137f8 LC10_LF7: 8264 000137f8 50726f63 .ascii "ProcessSuspend\000" 8264 000137fc 65737353 8264 00013800 75737065 8264 00013804 6e6400 8265 00013807 .align 2 8266 00013808 LC11_LF7: 8267 00013808 54727969 .ascii "Trying to suspend a non-running process!\n\000" 8267 0001380c 6e672074 8267 00013810 6f207375 8267 00013814 7370656e 8267 00013818 64206120 8267 0001381c 6e6f6e2d 8267 00013820 72756e6e 8267 00013824 696e6720 8267 00013828 70726f63 8267 0001382c 65737321 8267 00013830 0a00 8268 00013832 .text 8269 000077b0 .align 2 8270 000077b0 .proc _ProcessSuspend 8271 000077b0 .global _ProcessSuspend 8272 000077b0 _ProcessSuspend: 8273 ; Function 'ProcessSuspend'; 0 bytes of locals, 3 regs to save. 8274 000077b0 afbefffc sw -4(r29),r30; push fp 8275 000077b4 001df020 add r30,r0,r29; fp = sp 8276 000077b8 afbffff8 sw -8(r29),r31; push ret addr 8277 000077bc 2fbd0018 subui r29,r29,#24; alloc local storage 8278 000077c0 afa20000 sw 0(r29),r2 8279 000077c4 afa30004 sw 4(r29),r3 8280 000077c8 afa40008 sw 8(r29),r4 8281 000077cc 8fc30000 lw r3,(r30) 8282 000077d0 23bdfff8 addi r29,r29,#-8 8283 000077d4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8284 000077d8 24424038 addui r2,r2,(_debugstr)&0xffff 8285 000077dc afa20000 sw (r29),r2 8286 000077e0 20040070 addi r4,r0,#112 8287 000077e4 afa40004 sw 4(r29),r4 8288 000077e8 0fffeda0 jal _dindex 8289 000077ec 54000000 nop; not filled. 8290 000077f0 23bd0008 addi r29,r29,#8 8291 000077f4 64210000 snei r1,r1,#0 8292 000077f8 1420002c bnez r1,L148_LF7 8293 000077fc 54000000 nop; not filled. 8294 00007800 23bdfff8 addi r29,r29,#-8 8295 00007804 afa20000 sw (r29),r2 8296 00007808 2004002b addi r4,r0,#43 8297 0000780c afa40004 sw 4(r29),r4 8298 00007810 0fffed78 jal _dindex 8299 00007814 54000000 nop; not filled. 8300 00007818 23bd0008 addi r29,r29,#8 8301 0000781c 64210000 snei r1,r1,#0 8302 00007820 1020002c beqz r1,L147_LF7 8303 00007824 54000000 nop; not filled. 8304 00007828 L148_LF7: 8305 00007828 23bdfff0 addi r29,r29,#-16 8306 0000782c 3c040001 lhi r4,((LC8_LF7)>>16)&0xffff 8307 00007830 248437d4 addui r4,r4,(LC8_LF7)&0xffff 8308 00007834 afa40000 sw (r29),r4 8309 00007838 afa30004 sw 4(r29),r3 8310 0000783c 20610010 addi r1,r3,#16 8311 00007840 afa10008 sw 8(r29),r1 8312 00007844 0c0059dc jal _printf 8313 00007848 54000000 nop; not filled. 8314 0000784c 23bd0010 addi r29,r29,#16 8315 00007850 L147_LF7: 8316 00007850 8064000f lb r4,15(r3) 8317 00007854 58810001 srli r1,r4,#0x1 8318 00007858 30210001 andi r1,r1,#1 8319 0000785c 14200038 bnez r1,L150_LF7 8320 00007860 54000000 nop; not filled. 8321 00007864 23bdfff0 addi r29,r29,#-16 8322 00007868 3c040001 lhi r4,((LC9_LF7)>>16)&0xffff 8323 0000786c 248437f0 addui r4,r4,(LC9_LF7)&0xffff 8324 00007870 afa40000 sw (r29),r4 8325 00007874 3c010001 lhi r1,((LC10_LF7)>>16)&0xffff 8326 00007878 242137f8 addui r1,r1,(LC10_LF7)&0xffff 8327 0000787c afa10004 sw 4(r29),r1 8328 00007880 3c040001 lhi r4,((LC11_LF7)>>16)&0xffff 8329 00007884 24843808 addui r4,r4,(LC11_LF7)&0xffff 8330 00007888 afa40008 sw 8(r29),r4 8331 0000788c 0c005994 jal _printf 8332 00007890 54000000 nop; not filled. 8333 00007894 23bd0010 addi r29,r29,#16 8334 00007898 L150_LF7: 8335 00007898 8c61000c lw r1,12(r3) 8336 0000789c 2004ffc0 addi r4,r0,#-64 8337 000078a0 00240824 and r1,r1,r4 8338 000078a4 34210004 ori r1,r1,#4 8339 000078a8 ac61000c sw 12(r3),r1 8340 000078ac 207f00a4 addi r31,r3,#164 8341 000078b0 8c6100ac lw r1,172(r3) 8342 000078b4 8c210008 lw r1,8(r1) 8343 000078b8 6c210000 sgti r1,r1,#0 8344 000078bc 1020002c beqz r1,L153_LF7 8345 000078c0 54000000 nop; not filled. 8346 000078c4 8c6100a8 lw r1,168(r3) 8347 000078c8 8fe40000 lw r4,(r31) 8348 000078cc ac240000 sw (r1),r4 8349 000078d0 8fe10000 lw r1,(r31) 8350 000078d4 8c6400a8 lw r4,168(r3) 8351 000078d8 ac240004 sw 4(r1),r4 8352 000078dc 8c6200ac lw r2,172(r3) 8353 000078e0 8c410008 lw r1,8(r2) 8354 000078e4 2021ffff addi r1,r1,#-1 8355 000078e8 ac410008 sw 8(r2),r1 8356 000078ec L153_LF7: 8357 000078ec 20040000 addi r4,r0,#0 8358 000078f0 afe40000 sw (r31),r4 8359 000078f4 3c020001 lhi r2,((_waitQueue_LF7)>>16)&0xffff 8360 000078f8 2442411c addui r2,r2,(_waitQueue_LF7)&0xffff 8361 000078fc 8c410004 lw r1,4(r2) 8362 00007900 ac6200ac sw 172(r3),r2 8363 00007904 ac6100a8 sw 168(r3),r1 8364 00007908 8c240000 lw r4,(r1) 8365 0000790c afe40000 sw (r31),r4 8366 00007910 ac3f0000 sw (r1),r31 8367 00007914 8fe10000 lw r1,(r31) 8368 00007918 ac3f0004 sw 4(r1),r31 8369 0000791c 8c410008 lw r1,8(r2) 8370 00007920 20210001 addi r1,r1,#1 8371 00007924 ac410008 sw 8(r2),r1 8372 00007928 8fa20000 lw r2,0(r29) 8373 0000792c 8fa30004 lw r3,4(r29) 8374 00007930 8fa40008 lw r4,8(r29) 8375 00007934 8fdffff8 lw r31,-8(r30) 8376 00007938 001ee820 add r29,r0,r30 8377 0000793c 8fdefffc lw r30,-4(r30) 8378 00007940 4be00000 jr r31 8379 00007944 54000000 nop 8380 00007948 .endproc _ProcessSuspend 8381 00007948 .data 8382 00013832 .align 2 8383 00013834 LC12_LF7: 8384 00013834 57616b69 .ascii "Waking up PCB 0x%x.\n\000" 8384 00013838 6e672075 8384 0001383c 70205043 8384 00013840 42203078 8384 00013844 25782e0a 8384 00013848 00 8385 00013849 .align 2 8386 0001384c LC13_LF7: 8387 0001384c 50726f63 .ascii "ProcessWakeup\000" 8387 00013850 65737357 8387 00013854 616b6575 8387 00013858 7000 8388 0001385a .align 2 8389 0001385c LC14_LF7: 8390 0001385c 54727969 .ascii "Trying to wake up a non-sleeping process!\n\000" 8390 00013860 6e672074 8390 00013864 6f207761 8390 00013868 6b652075 8390 0001386c 70206120 8390 00013870 6e6f6e2d 8390 00013874 736c6565 8390 00013878 70696e67 8390 0001387c 2070726f 8390 00013880 63657373 8390 00013884 210a00 8391 00013887 .text 8392 00007948 .align 2 8393 00007948 .proc _ProcessWakeup 8394 00007948 .global _ProcessWakeup 8395 00007948 _ProcessWakeup: 8396 ; Function 'ProcessWakeup'; 0 bytes of locals, 3 regs to save. 8397 00007948 afbefffc sw -4(r29),r30; push fp 8398 0000794c 001df020 add r30,r0,r29; fp = sp 8399 00007950 afbffff8 sw -8(r29),r31; push ret addr 8400 00007954 2fbd0018 subui r29,r29,#24; alloc local storage 8401 00007958 afa20000 sw 0(r29),r2 8402 0000795c afa30004 sw 4(r29),r3 8403 00007960 afa40008 sw 8(r29),r4 8404 00007964 8fc30000 lw r3,(r30) 8405 00007968 23bdfff8 addi r29,r29,#-8 8406 0000796c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8407 00007970 24424038 addui r2,r2,(_debugstr)&0xffff 8408 00007974 afa20000 sw (r29),r2 8409 00007978 20040070 addi r4,r0,#112 8410 0000797c afa40004 sw 4(r29),r4 8411 00007980 0fffec08 jal _dindex 8412 00007984 54000000 nop; not filled. 8413 00007988 23bd0008 addi r29,r29,#8 8414 0000798c 64210000 snei r1,r1,#0 8415 00007990 1420002c bnez r1,L159_LF7 8416 00007994 54000000 nop; not filled. 8417 00007998 23bdfff8 addi r29,r29,#-8 8418 0000799c afa20000 sw (r29),r2 8419 000079a0 2004002b addi r4,r0,#43 8420 000079a4 afa40004 sw 4(r29),r4 8421 000079a8 0fffebe0 jal _dindex 8422 000079ac 54000000 nop; not filled. 8423 000079b0 23bd0008 addi r29,r29,#8 8424 000079b4 64210000 snei r1,r1,#0 8425 000079b8 10200024 beqz r1,L158_LF7 8426 000079bc 54000000 nop; not filled. 8427 000079c0 L159_LF7: 8428 000079c0 23bdfff8 addi r29,r29,#-8 8429 000079c4 3c040001 lhi r4,((LC12_LF7)>>16)&0xffff 8430 000079c8 24843834 addui r4,r4,(LC12_LF7)&0xffff 8431 000079cc afa40000 sw (r29),r4 8432 000079d0 afa30004 sw 4(r29),r3 8433 000079d4 0c00584c jal _printf 8434 000079d8 54000000 nop; not filled. 8435 000079dc 23bd0008 addi r29,r29,#8 8436 000079e0 L158_LF7: 8437 000079e0 8064000f lb r4,15(r3) 8438 000079e4 58810002 srli r1,r4,#0x2 8439 000079e8 30210001 andi r1,r1,#1 8440 000079ec 14200038 bnez r1,L161_LF7 8441 000079f0 54000000 nop; not filled. 8442 000079f4 23bdfff0 addi r29,r29,#-16 8443 000079f8 3c040001 lhi r4,((LC9_LF7)>>16)&0xffff 8444 000079fc 248437f0 addui r4,r4,(LC9_LF7)&0xffff 8445 00007a00 afa40000 sw (r29),r4 8446 00007a04 3c010001 lhi r1,((LC13_LF7)>>16)&0xffff 8447 00007a08 2421384c addui r1,r1,(LC13_LF7)&0xffff 8448 00007a0c afa10004 sw 4(r29),r1 8449 00007a10 3c040001 lhi r4,((LC14_LF7)>>16)&0xffff 8450 00007a14 2484385c addui r4,r4,(LC14_LF7)&0xffff 8451 00007a18 afa40008 sw 8(r29),r4 8452 00007a1c 0c005804 jal _printf 8453 00007a20 54000000 nop; not filled. 8454 00007a24 23bd0010 addi r29,r29,#16 8455 00007a28 L161_LF7: 8456 00007a28 8c61000c lw r1,12(r3) 8457 00007a2c 2004ffc0 addi r4,r0,#-64 8458 00007a30 00240824 and r1,r1,r4 8459 00007a34 34210002 ori r1,r1,#2 8460 00007a38 ac61000c sw 12(r3),r1 8461 00007a3c 207f00a4 addi r31,r3,#164 8462 00007a40 8c6100ac lw r1,172(r3) 8463 00007a44 8c210008 lw r1,8(r1) 8464 00007a48 6c210000 sgti r1,r1,#0 8465 00007a4c 1020002c beqz r1,L164_LF7 8466 00007a50 54000000 nop; not filled. 8467 00007a54 8c6100a8 lw r1,168(r3) 8468 00007a58 8fe40000 lw r4,(r31) 8469 00007a5c ac240000 sw (r1),r4 8470 00007a60 8fe10000 lw r1,(r31) 8471 00007a64 8c6400a8 lw r4,168(r3) 8472 00007a68 ac240004 sw 4(r1),r4 8473 00007a6c 8c6200ac lw r2,172(r3) 8474 00007a70 8c410008 lw r1,8(r2) 8475 00007a74 2021ffff addi r1,r1,#-1 8476 00007a78 ac410008 sw 8(r2),r1 8477 00007a7c L164_LF7: 8478 00007a7c 20040000 addi r4,r0,#0 8479 00007a80 afe40000 sw (r31),r4 8480 00007a84 3c020001 lhi r2,((_runQueue_LF7)>>16)&0xffff 8481 00007a88 24424110 addui r2,r2,(_runQueue_LF7)&0xffff 8482 00007a8c 8c410004 lw r1,4(r2) 8483 00007a90 ac6200ac sw 172(r3),r2 8484 00007a94 ac6100a8 sw 168(r3),r1 8485 00007a98 8c240000 lw r4,(r1) 8486 00007a9c afe40000 sw (r31),r4 8487 00007aa0 ac3f0000 sw (r1),r31 8488 00007aa4 8fe10000 lw r1,(r31) 8489 00007aa8 ac3f0004 sw 4(r1),r31 8490 00007aac 8c410008 lw r1,8(r2) 8491 00007ab0 20210001 addi r1,r1,#1 8492 00007ab4 ac410008 sw 8(r2),r1 8493 00007ab8 8fa20000 lw r2,0(r29) 8494 00007abc 8fa30004 lw r3,4(r29) 8495 00007ac0 8fa40008 lw r4,8(r29) 8496 00007ac4 8fdffff8 lw r31,-8(r30) 8497 00007ac8 001ee820 add r29,r0,r30 8498 00007acc 8fdefffc lw r30,-4(r30) 8499 00007ad0 4be00000 jr r31 8500 00007ad4 54000000 nop 8501 00007ad8 .endproc _ProcessWakeup 8502 00007ad8 .data 8503 00013887 .align 2 8504 00013888 LC15_LF7: 8505 00013888 456e7465 .ascii "Entering ProcessDestroy for 0x%x.\n\000" 8505 0001388c 72696e67 8505 00013890 2050726f 8505 00013894 63657373 8505 00013898 44657374 8505 0001389c 726f7920 8505 000138a0 666f7220 8505 000138a4 30782578 8505 000138a8 2e0a00 8506 000138ab .align 2 8507 000138ac LC16_LF7: 8508 000138ac 4c656176 .ascii "Leaving ProcessDestroy for 0x%x.\n\000" 8508 000138b0 696e6720 8508 000138b4 50726f63 8508 000138b8 65737344 8508 000138bc 65737472 8508 000138c0 6f792066 8508 000138c4 6f722030 8508 000138c8 7825782e 8508 000138cc 0a00 8509 000138ce .text 8510 00007ad8 .align 2 8511 00007ad8 .proc _ProcessDestroy 8512 00007ad8 .global _ProcessDestroy 8513 00007ad8 _ProcessDestroy: 8514 ; Function 'ProcessDestroy'; 0 bytes of locals, 3 regs to save. 8515 00007ad8 afbefffc sw -4(r29),r30; push fp 8516 00007adc 001df020 add r30,r0,r29; fp = sp 8517 00007ae0 afbffff8 sw -8(r29),r31; push ret addr 8518 00007ae4 2fbd0018 subui r29,r29,#24; alloc local storage 8519 00007ae8 afa20000 sw 0(r29),r2 8520 00007aec afa30004 sw 4(r29),r3 8521 00007af0 afa40008 sw 8(r29),r4 8522 00007af4 8fc30000 lw r3,(r30) 8523 00007af8 23bdfff8 addi r29,r29,#-8 8524 00007afc 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8525 00007b00 24424038 addui r2,r2,(_debugstr)&0xffff 8526 00007b04 afa20000 sw (r29),r2 8527 00007b08 20040070 addi r4,r0,#112 8528 00007b0c afa40004 sw 4(r29),r4 8529 00007b10 0fffea78 jal _dindex 8530 00007b14 54000000 nop; not filled. 8531 00007b18 23bd0008 addi r29,r29,#8 8532 00007b1c 64210000 snei r1,r1,#0 8533 00007b20 1420002c bnez r1,L170_LF7 8534 00007b24 54000000 nop; not filled. 8535 00007b28 23bdfff8 addi r29,r29,#-8 8536 00007b2c afa20000 sw (r29),r2 8537 00007b30 2004002b addi r4,r0,#43 8538 00007b34 afa40004 sw 4(r29),r4 8539 00007b38 0fffea50 jal _dindex 8540 00007b3c 54000000 nop; not filled. 8541 00007b40 23bd0008 addi r29,r29,#8 8542 00007b44 64210000 snei r1,r1,#0 8543 00007b48 10200024 beqz r1,L169_LF7 8544 00007b4c 54000000 nop; not filled. 8545 00007b50 L170_LF7: 8546 00007b50 23bdfff8 addi r29,r29,#-8 8547 00007b54 3c040001 lhi r4,((LC15_LF7)>>16)&0xffff 8548 00007b58 24843888 addui r4,r4,(LC15_LF7)&0xffff 8549 00007b5c afa40000 sw (r29),r4 8550 00007b60 afa30004 sw 4(r29),r3 8551 00007b64 0c0056bc jal _printf 8552 00007b68 54000000 nop; not filled. 8553 00007b6c 23bd0008 addi r29,r29,#8 8554 00007b70 L169_LF7: 8555 00007b70 8c61000c lw r1,12(r3) 8556 00007b74 2004ffc0 addi r4,r0,#-64 8557 00007b78 00240824 and r1,r1,r4 8558 00007b7c 34210010 ori r1,r1,#16 8559 00007b80 ac61000c sw 12(r3),r1 8560 00007b84 207f00a4 addi r31,r3,#164 8561 00007b88 8c6100ac lw r1,172(r3) 8562 00007b8c 8c210008 lw r1,8(r1) 8563 00007b90 6c210000 sgti r1,r1,#0 8564 00007b94 1020002c beqz r1,L173_LF7 8565 00007b98 54000000 nop; not filled. 8566 00007b9c 8c6100a8 lw r1,168(r3) 8567 00007ba0 8fe40000 lw r4,(r31) 8568 00007ba4 ac240000 sw (r1),r4 8569 00007ba8 8fe10000 lw r1,(r31) 8570 00007bac 8c6400a8 lw r4,168(r3) 8571 00007bb0 ac240004 sw 4(r1),r4 8572 00007bb4 8c6200ac lw r2,172(r3) 8573 00007bb8 8c410008 lw r1,8(r2) 8574 00007bbc 2021ffff addi r1,r1,#-1 8575 00007bc0 ac410008 sw 8(r2),r1 8576 00007bc4 L173_LF7: 8577 00007bc4 20040000 addi r4,r0,#0 8578 00007bc8 afe40000 sw (r31),r4 8579 00007bcc 3c020001 lhi r2,((_zombieQueue_LF7)>>16)&0xffff 8580 00007bd0 24424128 addui r2,r2,(_zombieQueue_LF7)&0xffff 8581 00007bd4 ac6200ac sw 172(r3),r2 8582 00007bd8 ac6200a8 sw 168(r3),r2 8583 00007bdc 8c440000 lw r4,(r2) 8584 00007be0 afe40000 sw (r31),r4 8585 00007be4 ac5f0000 sw (r2),r31 8586 00007be8 8fe10000 lw r1,(r31) 8587 00007bec ac3f0004 sw 4(r1),r31 8588 00007bf0 8c410008 lw r1,8(r2) 8589 00007bf4 20210001 addi r1,r1,#1 8590 00007bf8 ac410008 sw 8(r2),r1 8591 00007bfc 23bdfff8 addi r29,r29,#-8 8592 00007c00 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8593 00007c04 24424038 addui r2,r2,(_debugstr)&0xffff 8594 00007c08 afa20000 sw (r29),r2 8595 00007c0c 20040070 addi r4,r0,#112 8596 00007c10 afa40004 sw 4(r29),r4 8597 00007c14 0fffe974 jal _dindex 8598 00007c18 54000000 nop; not filled. 8599 00007c1c 23bd0008 addi r29,r29,#8 8600 00007c20 64210000 snei r1,r1,#0 8601 00007c24 1420002c bnez r1,L177_LF7 8602 00007c28 54000000 nop; not filled. 8603 00007c2c 23bdfff8 addi r29,r29,#-8 8604 00007c30 afa20000 sw (r29),r2 8605 00007c34 2004002b addi r4,r0,#43 8606 00007c38 afa40004 sw 4(r29),r4 8607 00007c3c 0fffe94c jal _dindex 8608 00007c40 54000000 nop; not filled. 8609 00007c44 23bd0008 addi r29,r29,#8 8610 00007c48 64210000 snei r1,r1,#0 8611 00007c4c 10200024 beqz r1,L176_LF7 8612 00007c50 54000000 nop; not filled. 8613 00007c54 L177_LF7: 8614 00007c54 23bdfff8 addi r29,r29,#-8 8615 00007c58 3c040001 lhi r4,((LC16_LF7)>>16)&0xffff 8616 00007c5c 248438ac addui r4,r4,(LC16_LF7)&0xffff 8617 00007c60 afa40000 sw (r29),r4 8618 00007c64 afa30004 sw 4(r29),r3 8619 00007c68 0c0055b8 jal _printf 8620 00007c6c 54000000 nop; not filled. 8621 00007c70 23bd0008 addi r29,r29,#8 8622 00007c74 L176_LF7: 8623 00007c74 8fa20000 lw r2,0(r29) 8624 00007c78 8fa30004 lw r3,4(r29) 8625 00007c7c 8fa40008 lw r4,8(r29) 8626 00007c80 8fdffff8 lw r31,-8(r30) 8627 00007c84 001ee820 add r29,r0,r30 8628 00007c88 8fdefffc lw r30,-4(r30) 8629 00007c8c 4be00000 jr r31 8630 00007c90 54000000 nop 8631 00007c94 .endproc _ProcessDestroy 8632 00007c94 .data 8633 000138ce .align 2 8634 000138d0 _str52_LF7: 8635 000138d0 .space 4 8636 000138d4 .align 2 8637 000138d4 _location53_LF7: 8638 000138d4 00000000 .word 0 8639 000138d8 .text 8640 00007c94 .align 2 8641 00007c94 .proc _get_argument 8642 00007c94 .global _get_argument 8643 00007c94 _get_argument: 8644 ; Function 'get_argument'; 0 bytes of locals, 4 regs to save. 8645 00007c94 afbefffc sw -4(r29),r30; push fp 8646 00007c98 001df020 add r30,r0,r29; fp = sp 8647 00007c9c afbffff8 sw -8(r29),r31; push ret addr 8648 00007ca0 2fbd0018 subui r29,r29,#24; alloc local storage 8649 00007ca4 afa20000 sw 0(r29),r2 8650 00007ca8 afa30004 sw 4(r29),r3 8651 00007cac afa40008 sw 8(r29),r4 8652 00007cb0 afa5000c sw 12(r29),r5 8653 00007cb4 8fc20000 lw r2,(r30) 8654 00007cb8 64410000 snei r1,r2,#0 8655 00007cbc 10200020 beqz r1,L190_LF7 8656 00007cc0 54000000 nop; not filled. 8657 00007cc4 3c010001 lhi r1,((_str52_LF7)>>16)&0xffff 8658 00007cc8 242138d0 addui r1,r1,(_str52_LF7)&0xffff 8659 00007ccc ac220000 sw (r1),r2 8660 00007cd0 3c010001 lhi r1,((_location53_LF7)>>16)&0xffff 8661 00007cd4 242138d4 addui r1,r1,(_location53_LF7)&0xffff 8662 00007cd8 20050000 addi r5,r0,#0 8663 00007cdc ac250000 sw (r1),r5 8664 00007ce0 L190_LF7: 8665 00007ce0 3c1f0001 lhi r31,((_location53_LF7)>>16)&0xffff 8666 00007ce4 27ff38d4 addui r31,r31,(_location53_LF7)&0xffff 8667 00007ce8 8fe30000 lw r3,(r31) 8668 00007cec 3c010001 lhi r1,((_str52_LF7)>>16)&0xffff 8669 00007cf0 242138d0 addui r1,r1,(_str52_LF7)&0xffff 8670 00007cf4 8c220000 lw r2,(r1) 8671 00007cf8 00430820 add r1,r2,r3 8672 00007cfc 90210000 lbu r1,(r1) 8673 00007d00 64210000 snei r1,r1,#0 8674 00007d04 10200010 beqz r1,L192_LF7 8675 00007d08 54000000 nop; not filled. 8676 00007d0c 6c610062 sgti r1,r3,#98 8677 00007d10 10200020 beqz r1,L191_LF7 8678 00007d14 54000000 nop; not filled. 8679 00007d18 L192_LF7: 8680 00007d18 20010000 addi r1,r0,#0 8681 00007d1c 08000058 j L199_LF7 8682 00007d20 54000000 nop; not filled. 8683 00007d24 L200_LF7: 8684 00007d24 23e10001 addi r1,r31,#1 8685 00007d28 ac410000 sw (r2),r1 8686 00007d2c 08000044 j L194_LF7 8687 00007d30 54000000 nop; not filled. 8688 00007d34 L191_LF7: 8689 00007d34 70610063 slei r1,r3,#99 8690 00007d38 10200038 beqz r1,L194_LF7 8691 00007d3c 54000000 nop; not filled. 8692 00007d40 00022020 add r4,r0,r2 8693 00007d44 001f1020 add r2,r0,r31 8694 00007d48 L196_LF7: 8695 00007d48 8c5f0000 lw r31,(r2) 8696 00007d4c 009f0820 add r1,r4,r31 8697 00007d50 90210000 lbu r1,(r1) 8698 00007d54 64210000 snei r1,r1,#0 8699 00007d58 1020ffc8 beqz r1,L200_LF7 8700 00007d5c 54000000 nop; not filled. 8701 00007d60 23e10001 addi r1,r31,#1 8702 00007d64 ac410000 sw (r2),r1 8703 00007d68 70210063 slei r1,r1,#99 8704 00007d6c 1420ffd8 bnez r1,L196_LF7 8705 00007d70 54000000 nop; not filled. 8706 00007d74 L194_LF7: 8707 00007d74 00030820 add r1,r0,r3 8708 00007d78 L199_LF7: 8709 00007d78 8fa20000 lw r2,0(r29) 8710 00007d7c 8fa30004 lw r3,4(r29) 8711 00007d80 8fa40008 lw r4,8(r29) 8712 00007d84 8fa5000c lw r5,12(r29) 8713 00007d88 8fdffff8 lw r31,-8(r30) 8714 00007d8c 001ee820 add r29,r0,r30 8715 00007d90 8fdefffc lw r30,-4(r30) 8716 00007d94 4be00000 jr r31 8717 00007d98 54000000 nop 8718 00007d9c .endproc _get_argument 8719 00007d9c .data 8720 000138d8 .align 2 8721 000138d8 LC17_LF7: 8722 000138d8 4f6c6420 .ascii "Old interrupt value was 0x%x.\n\000" 8722 000138dc 696e7465 8722 000138e0 72727570 8722 000138e4 74207661 8722 000138e8 6c756520 8722 000138ec 77617320 8722 000138f0 30782578 8722 000138f4 2e0a00 8723 000138f7 .align 2 8724 000138f8 LC18_LF7: 8725 000138f8 456e7465 .ascii "Entering ProcessFork args=0x%x 0x%x %s %d\n\000" 8725 000138fc 72696e67 8725 00013900 2050726f 8725 00013904 63657373 8725 00013908 466f726b 8725 0001390c 20617267 8725 00013910 733d3078 8725 00013914 25782030 8725 00013918 78257820 8725 0001391c 25732025 8725 00013920 640a00 8726 00013923 .align 2 8727 00013924 LC19_LF7: 8728 00013924 46415441 .ascii "FATAL error: no free processes!\n\000" 8728 00013928 4c206572 8728 0001392c 726f723a 8728 00013930 206e6f20 8728 00013934 66726565 8728 00013938 2070726f 8728 0001393c 63657373 8728 00013940 6573210a 8728 00013944 00 8729 00013945 .align 2 8730 00013948 LC20_LF7: 8731 00013948 476f7420 .ascii "Got a link @ 0x%x\n\000" 8731 0001394c 61206c69 8731 00013950 6e6b2040 8731 00013954 20307825 8731 00013958 780a00 8732 0001395b .align 2 8733 0001395c LC21_LF7: 8734 0001395c 4265666f .ascii "Before restore interrupt value is 0x%x.\n\000" 8734 00013960 72652072 8734 00013964 6573746f 8734 00013968 72652069 8734 0001396c 6e746572 8734 00013970 72757074 8734 00013974 2076616c 8734 00013978 75652069 8734 0001397c 73203078 8734 00013980 25782e0a 8734 00013984 00 8735 00013985 .align 2 8736 00013988 LC22_LF7: 8737 00013988 4e657720 .ascii "New interrupt value is 0x%x.\n\000" 8737 0001398c 696e7465 8737 00013990 72727570 8737 00013994 74207661 8737 00013998 6c756520 8737 0001399c 69732030 8737 000139a0 7825782e 8737 000139a4 0a00 8738 000139a6 .align 2 8739 000139a8 LC23_LF7: 8740 000139a8 61464154 .ascii "aFATAL: couldn\'t allocate memory - no free pages!\n\000" 8740 000139ac 414c3a20 8740 000139b0 636f756c 8740 000139b4 646e2774 8740 000139b8 20616c6c 8740 000139bc 6f636174 8740 000139c0 65206d65 8740 000139c4 6d6f7279 8740 000139c8 202d206e 8740 000139cc 6f206672 8740 000139d0 65652070 8740 000139d4 61676573 8740 000139d8 210a00 8741 000139db .align 2 8742 000139dc LC24_LF7: 8743 000139dc 62464154 .ascii "bFATAL: couldn\'t allocate system stack - no free pages!\n\000" 8743 000139e0 414c3a20 8743 000139e4 636f756c 8743 000139e8 646e2774 8743 000139ec 20616c6c 8743 000139f0 6f636174 8743 000139f4 65207379 8743 000139f8 7374656d 8743 000139fc 20737461 8743 00013a00 636b202d 8743 00013a04 206e6f20 8743 00013a08 66726565 8743 00013a0c 20706167 8743 00013a10 6573210a 8743 00013a14 00 8744 00013a15 .align 2 8745 00013a18 LC25_LF7: 8746 00013a18 53657474 .ascii "Setting up PCB @ 0x%x (sys stack=0x%x, mem=0x%x, size=0x%x)\n\000" 8746 00013a1c 696e6720 8746 00013a20 75702050 8746 00013a24 43422040 8746 00013a28 20307825 8746 00013a2c 78202873 8746 00013a30 79732073 8746 00013a34 7461636b 8746 00013a38 3d307825 8746 00013a3c 782c206d 8746 00013a40 656d3d30 8746 00013a44 7825782c 8746 00013a48 2073697a 8746 00013a4c 653d3078 8746 00013a50 2578290a 8746 00013a54 00 8747 00013a55 .align 2 8748 00013a58 LC26_LF7: 8749 00013a58 41626f75 .ascii "About to load %s\n\000" 8749 00013a5c 7420746f 8749 00013a60 206c6f61 8749 00013a64 64202573 8749 00013a68 0a00 8750 00013a6a .align 2 8751 00013a6c LC27_LF7: 8752 00013a6c 46696c65 .ascii "File %s -> start=0x%08x\n\000" 8752 00013a70 20257320 8752 00013a74 2d3e2073 8752 00013a78 74617274 8752 00013a7c 3d307825 8752 00013a80 3038780a 8752 00013a84 00 8753 00013a85 .align 2 8754 00013a88 LC28_LF7: 8755 00013a88 46696c65 .ascii "File %s -> code @ 0x%08x (size=0x%08x)\n\000" 8755 00013a8c 20257320 8755 00013a90 2d3e2063 8755 00013a94 6f646520 8755 00013a98 40203078 8755 00013a9c 25303878 8755 00013aa0 20287369 8755 00013aa4 7a653d30 8755 00013aa8 78253038 8755 00013aac 78290a00 8756 00013ab0 .align 2 8757 00013ab0 LC29_LF7: 8758 00013ab0 46696c65 .ascii "File %s -> data @ 0x%08x (size=0x%08x)\n\000" 8758 00013ab4 20257320 8758 00013ab8 2d3e2064 8758 00013abc 61746120 8758 00013ac0 40203078 8758 00013ac4 25303878 8758 00013ac8 20287369 8758 00013acc 7a653d30 8758 00013ad0 78253038 8758 00013ad4 78290a00 8759 00013ad8 .align 2 8760 00013ad8 LC30_LF7: 8761 00013ad8 506c6163 .ascii "Placing %d bytes at vaddr %08x.\n\000" 8761 00013adc 696e6720 8761 00013ae0 25642062 8761 00013ae4 79746573 8761 00013ae8 20617420 8761 00013aec 76616464 8761 00013af0 72202530 8761 00013af4 38782e0a 8761 00013af8 00 8762 00013af9 .align 2 8763 00013afc LC31_LF7: 8764 00013afc 53657474 .ascii "Setting currentPCB=0x%x, stackframe=0x%x\n\000" 8764 00013b00 696e6720 8764 00013b04 63757272 8764 00013b08 656e7450 8764 00013b0c 43423d30 8764 00013b10 7825782c 8764 00013b14 20737461 8764 00013b18 636b6672 8764 00013b1c 616d653d 8764 00013b20 30782578 8764 00013b24 0a00 8765 00013b26 .align 2 8766 00013b28 LC32_LF7: 8767 00013b28 4c656176 .ascii "Leaving ProcessFork (%s)\n\000" 8767 00013b2c 696e6720 8767 00013b30 50726f63 8767 00013b34 65737346 8767 00013b38 6f726b20 8767 00013b3c 28257329 8767 00013b40 0a00 8768 00013b42 .text 8769 00007d9c .align 2 8770 00007d9c .proc _ProcessFork 8771 00007d9c .global _ProcessFork 8772 00007d9c _ProcessFork: 8773 ; Function 'ProcessFork'; 672 bytes of locals, 12 regs to save. 8774 00007d9c afbefffc sw -4(r29),r30; push fp 8775 00007da0 001df020 add r30,r0,r29; fp = sp 8776 00007da4 afbffff8 sw -8(r29),r31; push ret addr 8777 00007da8 2fbd02d8 subui r29,r29,#728; alloc local storage 8778 00007dac afa20000 sw 0(r29),r2 8779 00007db0 afa30004 sw 4(r29),r3 8780 00007db4 afa40008 sw 8(r29),r4 8781 00007db8 afa5000c sw 12(r29),r5 8782 00007dbc afa60010 sw 16(r29),r6 8783 00007dc0 afa70014 sw 20(r29),r7 8784 00007dc4 afa80018 sw 24(r29),r8 8785 00007dc8 afa9001c sw 28(r29),r9 8786 00007dcc afaa0020 sw 32(r29),r10 8787 00007dd0 afab0024 sw 36(r29),r11 8788 00007dd4 afac0028 sw 40(r29),r12 8789 00007dd8 afad002c sw 44(r29),r13 8790 00007ddc 8fc50000 lw r5,(r30) 8791 00007de0 8fca0004 lw r10,4(r30) 8792 00007de4 8fcc0010 lw r12,16(r30) 8793 00007de8 8fc40014 lw r4,20(r30) 8794 00007dec 200d0000 addi r13,r0,#0 8795 00007df0 afcdfd58 sw -680(r30),r13 8796 00007df4 23bdfff8 addi r29,r29,#-8 8797 00007df8 200d000f addi r13,r0,#15 8798 00007dfc afad0000 sw (r29),r13 8799 00007e00 0fff9484 jal _SetIntrs 8800 00007e04 54000000 nop; not filled. 8801 00007e08 00011820 add r3,r0,r1 8802 00007e0c 23bd0008 addi r29,r29,#8 8803 00007e10 23bdfff8 addi r29,r29,#-8 8804 00007e14 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8805 00007e18 24424038 addui r2,r2,(_debugstr)&0xffff 8806 00007e1c afa20000 sw (r29),r2 8807 00007e20 200d0049 addi r13,r0,#73 8808 00007e24 afad0004 sw 4(r29),r13 8809 00007e28 0fffe760 jal _dindex 8810 00007e2c 54000000 nop; not filled. 8811 00007e30 23bd0008 addi r29,r29,#8 8812 00007e34 64210000 snei r1,r1,#0 8813 00007e38 1420002c bnez r1,L204_LF7 8814 00007e3c 54000000 nop; not filled. 8815 00007e40 23bdfff8 addi r29,r29,#-8 8816 00007e44 afa20000 sw (r29),r2 8817 00007e48 200d002b addi r13,r0,#43 8818 00007e4c afad0004 sw 4(r29),r13 8819 00007e50 0fffe738 jal _dindex 8820 00007e54 54000000 nop; not filled. 8821 00007e58 23bd0008 addi r29,r29,#8 8822 00007e5c 64210000 snei r1,r1,#0 8823 00007e60 10200024 beqz r1,L203_LF7 8824 00007e64 54000000 nop; not filled. 8825 00007e68 L204_LF7: 8826 00007e68 23bdfff8 addi r29,r29,#-8 8827 00007e6c 3c0d0001 lhi r13,((LC17_LF7)>>16)&0xffff 8828 00007e70 25ad38d8 addui r13,r13,(LC17_LF7)&0xffff 8829 00007e74 afad0000 sw (r29),r13 8830 00007e78 afa30004 sw 4(r29),r3 8831 00007e7c 0c0053a4 jal _printf 8832 00007e80 54000000 nop; not filled. 8833 00007e84 23bd0008 addi r29,r29,#8 8834 00007e88 L203_LF7: 8835 00007e88 23bdfff8 addi r29,r29,#-8 8836 00007e8c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8837 00007e90 24424038 addui r2,r2,(_debugstr)&0xffff 8838 00007e94 afa20000 sw (r29),r2 8839 00007e98 200d0070 addi r13,r0,#112 8840 00007e9c afad0004 sw 4(r29),r13 8841 00007ea0 0fffe6e8 jal _dindex 8842 00007ea4 54000000 nop; not filled. 8843 00007ea8 23bd0008 addi r29,r29,#8 8844 00007eac 64210000 snei r1,r1,#0 8845 00007eb0 1420002c bnez r1,L206_LF7 8846 00007eb4 54000000 nop; not filled. 8847 00007eb8 23bdfff8 addi r29,r29,#-8 8848 00007ebc afa20000 sw (r29),r2 8849 00007ec0 200d002b addi r13,r0,#43 8850 00007ec4 afad0004 sw 4(r29),r13 8851 00007ec8 0fffe6c0 jal _dindex 8852 00007ecc 54000000 nop; not filled. 8853 00007ed0 23bd0008 addi r29,r29,#8 8854 00007ed4 64210000 snei r1,r1,#0 8855 00007ed8 10200030 beqz r1,L205_LF7 8856 00007edc 54000000 nop; not filled. 8857 00007ee0 L206_LF7: 8858 00007ee0 23bdffe8 addi r29,r29,#-24 8859 00007ee4 3c0d0001 lhi r13,((LC18_LF7)>>16)&0xffff 8860 00007ee8 25ad38f8 addui r13,r13,(LC18_LF7)&0xffff 8861 00007eec afad0000 sw (r29),r13 8862 00007ef0 afa50004 sw 4(r29),r5 8863 00007ef4 afaa0008 sw 8(r29),r10 8864 00007ef8 afac000c sw 12(r29),r12 8865 00007efc afa40010 sw 16(r29),r4 8866 00007f00 0c005320 jal _printf 8867 00007f04 54000000 nop; not filled. 8868 00007f08 23bd0018 addi r29,r29,#24 8869 00007f0c L205_LF7: 8870 00007f0c 3c020001 lhi r2,((_freepcbs_LF7)>>16)&0xffff 8871 00007f10 24424104 addui r2,r2,(_freepcbs_LF7)&0xffff 8872 00007f14 8c410008 lw r1,8(r2) 8873 00007f18 60210000 seqi r1,r1,#0 8874 00007f1c 10200028 beqz r1,L207_LF7 8875 00007f20 54000000 nop; not filled. 8876 00007f24 23bdfff8 addi r29,r29,#-8 8877 00007f28 3c0d0001 lhi r13,((LC19_LF7)>>16)&0xffff 8878 00007f2c 25ad3924 addui r13,r13,(LC19_LF7)&0xffff 8879 00007f30 afad0000 sw (r29),r13 8880 00007f34 0c0052ec jal _printf 8881 00007f38 54000000 nop; not filled. 8882 00007f3c 0c0052cc jal _exitsim 8883 00007f40 54000000 nop; not filled. 8884 00007f44 23bd0008 addi r29,r29,#8 8885 00007f48 L207_LF7: 8886 00007f48 8c490000 lw r9,(r2) 8887 00007f4c 23bdfff8 addi r29,r29,#-8 8888 00007f50 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8889 00007f54 24424038 addui r2,r2,(_debugstr)&0xffff 8890 00007f58 afa20000 sw (r29),r2 8891 00007f5c 200d0070 addi r13,r0,#112 8892 00007f60 afad0004 sw 4(r29),r13 8893 00007f64 0fffe624 jal _dindex 8894 00007f68 54000000 nop; not filled. 8895 00007f6c 23bd0008 addi r29,r29,#8 8896 00007f70 64210000 snei r1,r1,#0 8897 00007f74 1420002c bnez r1,L212_LF7 8898 00007f78 54000000 nop; not filled. 8899 00007f7c 23bdfff8 addi r29,r29,#-8 8900 00007f80 afa20000 sw (r29),r2 8901 00007f84 200d002b addi r13,r0,#43 8902 00007f88 afad0004 sw 4(r29),r13 8903 00007f8c 0fffe5fc jal _dindex 8904 00007f90 54000000 nop; not filled. 8905 00007f94 23bd0008 addi r29,r29,#8 8906 00007f98 64210000 snei r1,r1,#0 8907 00007f9c 10200024 beqz r1,L211_LF7 8908 00007fa0 54000000 nop; not filled. 8909 00007fa4 L212_LF7: 8910 00007fa4 23bdfff8 addi r29,r29,#-8 8911 00007fa8 3c0d0001 lhi r13,((LC20_LF7)>>16)&0xffff 8912 00007fac 25ad3948 addui r13,r13,(LC20_LF7)&0xffff 8913 00007fb0 afad0000 sw (r29),r13 8914 00007fb4 afa90004 sw 4(r29),r9 8915 00007fb8 0c005268 jal _printf 8916 00007fbc 54000000 nop; not filled. 8917 00007fc0 23bd0008 addi r29,r29,#8 8918 00007fc4 L211_LF7: 8919 00007fc4 8d210008 lw r1,8(r9) 8920 00007fc8 8c210008 lw r1,8(r1) 8921 00007fcc 6c210000 sgti r1,r1,#0 8922 00007fd0 1020002c beqz r1,L214_LF7 8923 00007fd4 54000000 nop; not filled. 8924 00007fd8 8d210004 lw r1,4(r9) 8925 00007fdc 8d2d0000 lw r13,(r9) 8926 00007fe0 ac2d0000 sw (r1),r13 8927 00007fe4 8d210000 lw r1,(r9) 8928 00007fe8 8d2d0004 lw r13,4(r9) 8929 00007fec ac2d0004 sw 4(r1),r13 8930 00007ff0 8d220008 lw r2,8(r9) 8931 00007ff4 8c410008 lw r1,8(r2) 8932 00007ff8 2021ffff addi r1,r1,#-1 8933 00007ffc ac410008 sw 8(r2),r1 8934 00008000 L214_LF7: 8935 00008000 200d0000 addi r13,r0,#0 8936 00008004 ad2d0000 sw (r9),r13 8937 00008008 8d26000c lw r6,12(r9) 8938 0000800c 8cc1000c lw r1,12(r6) 8939 00008010 200dffc0 addi r13,r0,#-64 8940 00008014 002d0824 and r1,r1,r13 8941 00008018 34210002 ori r1,r1,#2 8942 0000801c acc1000c sw 12(r6),r1 8943 00008020 23bdfff8 addi r29,r29,#-8 8944 00008024 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8945 00008028 24424038 addui r2,r2,(_debugstr)&0xffff 8946 0000802c afa20000 sw (r29),r2 8947 00008030 200d0049 addi r13,r0,#73 8948 00008034 afad0004 sw 4(r29),r13 8949 00008038 0fffe550 jal _dindex 8950 0000803c 54000000 nop; not filled. 8951 00008040 23bd0008 addi r29,r29,#8 8952 00008044 64210000 snei r1,r1,#0 8953 00008048 1420002c bnez r1,L217_LF7 8954 0000804c 54000000 nop; not filled. 8955 00008050 23bdfff8 addi r29,r29,#-8 8956 00008054 afa20000 sw (r29),r2 8957 00008058 200d002b addi r13,r0,#43 8958 0000805c afad0004 sw 4(r29),r13 8959 00008060 0fffe528 jal _dindex 8960 00008064 54000000 nop; not filled. 8961 00008068 23bd0008 addi r29,r29,#8 8962 0000806c 64210000 snei r1,r1,#0 8963 00008070 1020002c beqz r1,L216_LF7 8964 00008074 54000000 nop; not filled. 8965 00008078 L217_LF7: 8966 00008078 0fff9248 jal _CurrentIntrs 8967 0000807c 54000000 nop; not filled. 8968 00008080 23bdfff8 addi r29,r29,#-8 8969 00008084 3c0d0001 lhi r13,((LC21_LF7)>>16)&0xffff 8970 00008088 25ad395c addui r13,r13,(LC21_LF7)&0xffff 8971 0000808c afad0000 sw (r29),r13 8972 00008090 afa10004 sw 4(r29),r1 8973 00008094 0c00518c jal _printf 8974 00008098 54000000 nop; not filled. 8975 0000809c 23bd0008 addi r29,r29,#8 8976 000080a0 L216_LF7: 8977 000080a0 23bdfff8 addi r29,r29,#-8 8978 000080a4 afa30000 sw (r29),r3 8979 000080a8 0fff91dc jal _SetIntrs 8980 000080ac 54000000 nop; not filled. 8981 000080b0 23bd0008 addi r29,r29,#8 8982 000080b4 23bdfff8 addi r29,r29,#-8 8983 000080b8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8984 000080bc 24424038 addui r2,r2,(_debugstr)&0xffff 8985 000080c0 afa20000 sw (r29),r2 8986 000080c4 200d0049 addi r13,r0,#73 8987 000080c8 afad0004 sw 4(r29),r13 8988 000080cc 0fffe4bc jal _dindex 8989 000080d0 54000000 nop; not filled. 8990 000080d4 23bd0008 addi r29,r29,#8 8991 000080d8 64210000 snei r1,r1,#0 8992 000080dc 1420002c bnez r1,L220_LF7 8993 000080e0 54000000 nop; not filled. 8994 000080e4 23bdfff8 addi r29,r29,#-8 8995 000080e8 afa20000 sw (r29),r2 8996 000080ec 200d002b addi r13,r0,#43 8997 000080f0 afad0004 sw 4(r29),r13 8998 000080f4 0fffe494 jal _dindex 8999 000080f8 54000000 nop; not filled. 9000 000080fc 23bd0008 addi r29,r29,#8 9001 00008100 64210000 snei r1,r1,#0 9002 00008104 1020002c beqz r1,L219_LF7 9003 00008108 54000000 nop; not filled. 9004 0000810c L220_LF7: 9005 0000810c 0fff91b4 jal _CurrentIntrs 9006 00008110 54000000 nop; not filled. 9007 00008114 23bdfff8 addi r29,r29,#-8 9008 00008118 3c0d0001 lhi r13,((LC22_LF7)>>16)&0xffff 9009 0000811c 25ad3988 addui r13,r13,(LC22_LF7)&0xffff 9010 00008120 afad0000 sw (r29),r13 9011 00008124 afa10004 sw 4(r29),r1 9012 00008128 0c0050f8 jal _printf 9013 0000812c 54000000 nop; not filled. 9014 00008130 23bd0008 addi r29,r29,#8 9015 00008134 L219_LF7: 9016 00008134 23bdfff8 addi r29,r29,#-8 9017 00008138 20c10010 addi r1,r6,#16 9018 0000813c afa10000 sw (r29),r1 9019 00008140 afac0004 sw 4(r29),r12 9020 00008144 0fffdf84 jal _dstrcpy 9021 00008148 54000000 nop; not filled. 9022 0000814c 200d0001 addi r13,r0,#1 9023 00008150 accd00a0 sw 160(r6),r13 9024 00008154 0fffd548 jal _MemoryAllocPage 9025 00008158 54000000 nop; not filled. 9026 0000815c 00011020 add r2,r0,r1 9027 00008160 23bd0008 addi r29,r29,#8 9028 00008164 64410000 snei r1,r2,#0 9029 00008168 14200028 bnez r1,L221_LF7 9030 0000816c 54000000 nop; not filled. 9031 00008170 23bdfff8 addi r29,r29,#-8 9032 00008174 3c0d0001 lhi r13,((LC23_LF7)>>16)&0xffff 9033 00008178 25ad39a8 addui r13,r13,(LC23_LF7)&0xffff 9034 0000817c afad0000 sw (r29),r13 9035 00008180 0c0050a0 jal _printf 9036 00008184 54000000 nop; not filled. 9037 00008188 0c005080 jal _exitsim 9038 0000818c 54000000 nop; not filled. 9039 00008190 23bd0008 addi r29,r29,#8 9040 00008194 L221_LF7: 9041 00008194 23bdfff8 addi r29,r29,#-8 9042 00008198 afa20000 sw (r29),r2 9043 0000819c 0fffdc64 jal _MemorySetupPte 9044 000081a0 54000000 nop; not filled. 9045 000081a4 acc10060 sw 96(r6),r1 9046 000081a8 0fffd4f4 jal _MemoryAllocPage 9047 000081ac 54000000 nop; not filled. 9048 000081b0 00011020 add r2,r0,r1 9049 000081b4 23bd0008 addi r29,r29,#8 9050 000081b8 64410000 snei r1,r2,#0 9051 000081bc 14200028 bnez r1,L222_LF7 9052 000081c0 54000000 nop; not filled. 9053 000081c4 23bdfff8 addi r29,r29,#-8 9054 000081c8 3c0d0001 lhi r13,((LC24_LF7)>>16)&0xffff 9055 000081cc 25ad39dc addui r13,r13,(LC24_LF7)&0xffff 9056 000081d0 afad0000 sw (r29),r13 9057 000081d4 0c00504c jal _printf 9058 000081d8 54000000 nop; not filled. 9059 000081dc 0c00502c jal _exitsim 9060 000081e0 54000000 nop; not filled. 9061 000081e4 23bd0008 addi r29,r29,#8 9062 000081e8 L222_LF7: 9063 000081e8 50410010 slli r1,r2,#0x10 9064 000081ec acc10008 sw 8(r6),r1 9065 000081f0 3428fe8c ori r8,r1,#65164 9066 000081f4 acc80004 sw 4(r6),r8 9067 000081f8 acc80000 sw (r6),r8 9068 000081fc 23bdfff8 addi r29,r29,#-8 9069 00008200 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9070 00008204 24424038 addui r2,r2,(_debugstr)&0xffff 9071 00008208 afa20000 sw (r29),r2 9072 0000820c 200d0070 addi r13,r0,#112 9073 00008210 afad0004 sw 4(r29),r13 9074 00008214 0fffe374 jal _dindex 9075 00008218 54000000 nop; not filled. 9076 0000821c 23bd0008 addi r29,r29,#8 9077 00008220 64210000 snei r1,r1,#0 9078 00008224 1420002c bnez r1,L224_LF7 9079 00008228 54000000 nop; not filled. 9080 0000822c 23bdfff8 addi r29,r29,#-8 9081 00008230 afa20000 sw (r29),r2 9082 00008234 200d002b addi r13,r0,#43 9083 00008238 afad0004 sw 4(r29),r13 9084 0000823c 0fffe34c jal _dindex 9085 00008240 54000000 nop; not filled. 9086 00008244 23bd0008 addi r29,r29,#8 9087 00008248 64210000 snei r1,r1,#0 9088 0000824c 10200040 beqz r1,L223_LF7 9089 00008250 54000000 nop; not filled. 9090 00008254 L224_LF7: 9091 00008254 23bdffe8 addi r29,r29,#-24 9092 00008258 3c0d0001 lhi r13,((LC25_LF7)>>16)&0xffff 9093 0000825c 25ad3a18 addui r13,r13,(LC25_LF7)&0xffff 9094 00008260 afad0000 sw (r29),r13 9095 00008264 afa60004 sw 4(r29),r6 9096 00008268 8ccd0008 lw r13,8(r6) 9097 0000826c afad0008 sw 8(r29),r13 9098 00008270 8ccd0060 lw r13,96(r6) 9099 00008274 afad000c sw 12(r29),r13 9100 00008278 8cc100a0 lw r1,160(r6) 9101 0000827c 50210010 slli r1,r1,#0x10 9102 00008280 afa10010 sw 16(r29),r1 9103 00008284 0c004f9c jal _printf 9104 00008288 54000000 nop; not filled. 9105 0000828c 23bd0018 addi r29,r29,#24 9106 00008290 L223_LF7: 9107 00008290 200d0000 addi r13,r0,#0 9108 00008294 ad0d0028 sw 40(r8),r13 9109 00008298 20c10060 addi r1,r6,#96 9110 0000829c ad010138 sw 312(r8),r1 9111 000082a0 8ccd00a0 lw r13,160(r6) 9112 000082a4 ad0d013c sw 316(r8),r13 9113 000082a8 3c010010 lhi r1,#16 9114 000082ac 24210010 addui r1,r1,#16 9115 000082b0 ad010140 sw 320(r8),r1 9116 000082b4 64810000 snei r1,r4,#0 9117 000082b8 1020067c beqz r1,L225_LF7 9118 000082bc 54000000 nop; not filled. 9119 000082c0 23bdfff8 addi r29,r29,#-8 9120 000082c4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9121 000082c8 24424038 addui r2,r2,(_debugstr)&0xffff 9122 000082cc afa20000 sw (r29),r2 9123 000082d0 200d0070 addi r13,r0,#112 9124 000082d4 afad0004 sw 4(r29),r13 9125 000082d8 0fffe2b0 jal _dindex 9126 000082dc 54000000 nop; not filled. 9127 000082e0 23bd0008 addi r29,r29,#8 9128 000082e4 64210000 snei r1,r1,#0 9129 000082e8 1420002c bnez r1,L227_LF7 9130 000082ec 54000000 nop; not filled. 9131 000082f0 23bdfff8 addi r29,r29,#-8 9132 000082f4 afa20000 sw (r29),r2 9133 000082f8 200d002b addi r13,r0,#43 9134 000082fc afad0004 sw 4(r29),r13 9135 00008300 0fffe288 jal _dindex 9136 00008304 54000000 nop; not filled. 9137 00008308 23bd0008 addi r29,r29,#8 9138 0000830c 64210000 snei r1,r1,#0 9139 00008310 10200024 beqz r1,L226_LF7 9140 00008314 54000000 nop; not filled. 9141 00008318 L227_LF7: 9142 00008318 23bdfff8 addi r29,r29,#-8 9143 0000831c 3c0d0001 lhi r13,((LC26_LF7)>>16)&0xffff 9144 00008320 25ad3a58 addui r13,r13,(LC26_LF7)&0xffff 9145 00008324 afad0000 sw (r29),r13 9146 00008328 afac0004 sw 4(r29),r12 9147 0000832c 0c004ef4 jal _printf 9148 00008330 54000000 nop; not filled. 9149 00008334 23bd0008 addi r29,r29,#8 9150 00008338 L226_LF7: 9151 00008338 23bdffe8 addi r29,r29,#-24 9152 0000833c afac0000 sw (r29),r12 9153 00008340 23c1fd6c addi r1,r30,#-660 9154 00008344 afa10004 sw 4(r29),r1 9155 00008348 23c1fd68 addi r1,r30,#-664 9156 0000834c afa10008 sw 8(r29),r1 9157 00008350 23c1fd64 addi r1,r30,#-668 9158 00008354 afa1000c sw 12(r29),r1 9159 00008358 23c1fd60 addi r1,r30,#-672 9160 0000835c afa10010 sw 16(r29),r1 9161 00008360 23c1fd5c addi r1,r30,#-676 9162 00008364 afa10014 sw 20(r29),r1 9163 00008368 0c0007e8 jal _ProcessGetCodeInfo 9164 0000836c 54000000 nop; not filled. 9165 00008370 00012820 add r5,r0,r1 9166 00008374 23bd0018 addi r29,r29,#24 9167 00008378 68a10000 slti r1,r5,#0 9168 0000837c 102000f8 beqz r1,L228_LF7 9169 00008380 54000000 nop; not filled. 9170 00008384 3c030001 lhi r3,((_freepcbs_LF7)>>16)&0xffff 9171 00008388 24634104 addui r3,r3,(_freepcbs_LF7)&0xffff 9172 0000838c 20c200a4 addi r2,r6,#164 9173 00008390 8c610004 lw r1,4(r3) 9174 00008394 acc300ac sw 172(r6),r3 9175 00008398 acc100a8 sw 168(r6),r1 9176 0000839c 8c2d0000 lw r13,(r1) 9177 000083a0 ac4d0000 sw (r2),r13 9178 000083a4 ac220000 sw (r1),r2 9179 000083a8 8c410000 lw r1,(r2) 9180 000083ac ac220004 sw 4(r1),r2 9181 000083b0 8c610008 lw r1,8(r3) 9182 000083b4 20210001 addi r1,r1,#1 9183 000083b8 ac610008 sw 8(r3),r1 9184 000083bc 8cc300a0 lw r3,160(r6) 9185 000083c0 20020000 addi r2,r0,#0 9186 000083c4 0043082a slt r1,r2,r3 9187 000083c8 10200030 beqz r1,L293_LF7 9188 000083cc 54000000 nop; not filled. 9189 000083d0 L236_LF7: 9190 000083d0 23bdfff8 addi r29,r29,#-8 9191 000083d4 afa60000 sw (r29),r6 9192 000083d8 afa20004 sw 4(r29),r2 9193 000083dc 0fff9914 jal _MemoryFreeSharedPte 9194 000083e0 54000000 nop; not filled. 9195 000083e4 23bd0008 addi r29,r29,#8 9196 000083e8 20420001 addi r2,r2,#1 9197 000083ec 0043082a slt r1,r2,r3 9198 000083f0 1420ffdc bnez r1,L236_LF7 9199 000083f4 54000000 nop; not filled. 9200 000083f8 20020000 addi r2,r0,#0 9201 000083fc L293_LF7: 9202 000083fc 8cc100a0 lw r1,160(r6) 9203 00008400 0041082a slt r1,r2,r1 9204 00008404 10200038 beqz r1,L239_LF7 9205 00008408 54000000 nop; not filled. 9206 0000840c 00061820 add r3,r0,r6 9207 00008410 L241_LF7: 9208 00008410 23bdfff8 addi r29,r29,#-8 9209 00008414 8c6d0060 lw r13,96(r3) 9210 00008418 afad0000 sw (r29),r13 9211 0000841c 0fffda14 jal _MemoryFreePte 9212 00008420 54000000 nop; not filled. 9213 00008424 23bd0008 addi r29,r29,#8 9214 00008428 20630004 addi r3,r3,#4 9215 0000842c 20420001 addi r2,r2,#1 9216 00008430 8cc100a0 lw r1,160(r6) 9217 00008434 0041082a slt r1,r2,r1 9218 00008438 1420ffd4 bnez r1,L241_LF7 9219 0000843c 54000000 nop; not filled. 9220 00008440 L239_LF7: 9221 00008440 23bdfff8 addi r29,r29,#-8 9222 00008444 94c10008 lhu r1,8(r6) 9223 00008448 afa10000 sw (r29),r1 9224 0000844c 0fffd518 jal _MemoryFreePage 9225 00008450 54000000 nop; not filled. 9226 00008454 23bd0008 addi r29,r29,#8 9227 00008458 8cc1000c lw r1,12(r6) 9228 0000845c 200dffc0 addi r13,r0,#-64 9229 00008460 002d0824 and r1,r1,r13 9230 00008464 34210001 ori r1,r1,#1 9231 00008468 acc1000c sw 12(r6),r1 9232 0000846c 2001ffff addi r1,r0,#-1 9233 00008470 0800069c j L290_LF7 9234 00008474 54000000 nop; not filled. 9235 00008478 L228_LF7: 9236 00008478 23bdfff8 addi r29,r29,#-8 9237 0000847c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9238 00008480 24424038 addui r2,r2,(_debugstr)&0xffff 9239 00008484 afa20000 sw (r29),r2 9240 00008488 200d0070 addi r13,r0,#112 9241 0000848c afad0004 sw 4(r29),r13 9242 00008490 0fffe0f8 jal _dindex 9243 00008494 54000000 nop; not filled. 9244 00008498 23bd0008 addi r29,r29,#8 9245 0000849c 64210000 snei r1,r1,#0 9246 000084a0 1420002c bnez r1,L245_LF7 9247 000084a4 54000000 nop; not filled. 9248 000084a8 23bdfff8 addi r29,r29,#-8 9249 000084ac afa20000 sw (r29),r2 9250 000084b0 200d002b addi r13,r0,#43 9251 000084b4 afad0004 sw 4(r29),r13 9252 000084b8 0fffe0d0 jal _dindex 9253 000084bc 54000000 nop; not filled. 9254 000084c0 23bd0008 addi r29,r29,#8 9255 000084c4 64210000 snei r1,r1,#0 9256 000084c8 1020002c beqz r1,L244_LF7 9257 000084cc 54000000 nop; not filled. 9258 000084d0 L245_LF7: 9259 000084d0 23bdfff0 addi r29,r29,#-16 9260 000084d4 3c0d0001 lhi r13,((LC27_LF7)>>16)&0xffff 9261 000084d8 25ad3a6c addui r13,r13,(LC27_LF7)&0xffff 9262 000084dc afad0000 sw (r29),r13 9263 000084e0 afac0004 sw 4(r29),r12 9264 000084e4 8fcdfd6c lw r13,-660(r30) 9265 000084e8 afad0008 sw 8(r29),r13 9266 000084ec 0c004d34 jal _printf 9267 000084f0 54000000 nop; not filled. 9268 000084f4 23bd0010 addi r29,r29,#16 9269 000084f8 L244_LF7: 9270 000084f8 23bdfff8 addi r29,r29,#-8 9271 000084fc 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9272 00008500 24424038 addui r2,r2,(_debugstr)&0xffff 9273 00008504 afa20000 sw (r29),r2 9274 00008508 200d0070 addi r13,r0,#112 9275 0000850c afad0004 sw 4(r29),r13 9276 00008510 0fffe078 jal _dindex 9277 00008514 54000000 nop; not filled. 9278 00008518 23bd0008 addi r29,r29,#8 9279 0000851c 64210000 snei r1,r1,#0 9280 00008520 1420002c bnez r1,L247_LF7 9281 00008524 54000000 nop; not filled. 9282 00008528 23bdfff8 addi r29,r29,#-8 9283 0000852c afa20000 sw (r29),r2 9284 00008530 200d002b addi r13,r0,#43 9285 00008534 afad0004 sw 4(r29),r13 9286 00008538 0fffe050 jal _dindex 9287 0000853c 54000000 nop; not filled. 9288 00008540 23bd0008 addi r29,r29,#8 9289 00008544 64210000 snei r1,r1,#0 9290 00008548 10200034 beqz r1,L246_LF7 9291 0000854c 54000000 nop; not filled. 9292 00008550 L247_LF7: 9293 00008550 23bdfff0 addi r29,r29,#-16 9294 00008554 3c0d0001 lhi r13,((LC28_LF7)>>16)&0xffff 9295 00008558 25ad3a88 addui r13,r13,(LC28_LF7)&0xffff 9296 0000855c afad0000 sw (r29),r13 9297 00008560 afac0004 sw 4(r29),r12 9298 00008564 8fcdfd68 lw r13,-664(r30) 9299 00008568 afad0008 sw 8(r29),r13 9300 0000856c 8fcdfd64 lw r13,-668(r30) 9301 00008570 afad000c sw 12(r29),r13 9302 00008574 0c004cac jal _printf 9303 00008578 54000000 nop; not filled. 9304 0000857c 23bd0010 addi r29,r29,#16 9305 00008580 L246_LF7: 9306 00008580 23bdfff8 addi r29,r29,#-8 9307 00008584 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9308 00008588 24424038 addui r2,r2,(_debugstr)&0xffff 9309 0000858c afa20000 sw (r29),r2 9310 00008590 200d0070 addi r13,r0,#112 9311 00008594 afad0004 sw 4(r29),r13 9312 00008598 0fffdff0 jal _dindex 9313 0000859c 54000000 nop; not filled. 9314 000085a0 23bd0008 addi r29,r29,#8 9315 000085a4 64210000 snei r1,r1,#0 9316 000085a8 1420002c bnez r1,L249_LF7 9317 000085ac 54000000 nop; not filled. 9318 000085b0 23bdfff8 addi r29,r29,#-8 9319 000085b4 afa20000 sw (r29),r2 9320 000085b8 200d002b addi r13,r0,#43 9321 000085bc afad0004 sw 4(r29),r13 9322 000085c0 0fffdfc8 jal _dindex 9323 000085c4 54000000 nop; not filled. 9324 000085c8 23bd0008 addi r29,r29,#8 9325 000085cc 64210000 snei r1,r1,#0 9326 000085d0 10200034 beqz r1,L248_LF7 9327 000085d4 54000000 nop; not filled. 9328 000085d8 L249_LF7: 9329 000085d8 23bdfff0 addi r29,r29,#-16 9330 000085dc 3c0d0001 lhi r13,((LC29_LF7)>>16)&0xffff 9331 000085e0 25ad3ab0 addui r13,r13,(LC29_LF7)&0xffff 9332 000085e4 afad0000 sw (r29),r13 9333 000085e8 afac0004 sw 4(r29),r12 9334 000085ec 8fcdfd60 lw r13,-672(r30) 9335 000085f0 afad0008 sw 8(r29),r13 9336 000085f4 8fcdfd5c lw r13,-676(r30) 9337 000085f8 afad000c sw 12(r29),r13 9338 000085fc 0c004c24 jal _printf 9339 00008600 54000000 nop; not filled. 9340 00008604 23bd0010 addi r29,r29,#16 9341 00008608 L248_LF7: 9342 00008608 23c3ff90 addi r3,r30,#-112 9343 0000860c 23c7fd58 addi r7,r30,#-680 9344 00008610 3c040001 lhi r4,((_debugstr)>>16)&0xffff 9345 00008614 24844038 addui r4,r4,(_debugstr)&0xffff 9346 00008618 L250_LF7: 9347 00008618 23bdfff0 addi r29,r29,#-16 9348 0000861c afa50000 sw (r29),r5 9349 00008620 afa30004 sw 4(r29),r3 9350 00008624 afa70008 sw 8(r29),r7 9351 00008628 200d0064 addi r13,r0,#100 9352 0000862c afad000c sw 12(r29),r13 9353 00008630 0c000980 jal _ProcessGetFromFile 9354 00008634 54000000 nop; not filled. 9355 00008638 00011020 add r2,r0,r1 9356 0000863c 23bd0010 addi r29,r29,#16 9357 00008640 6c410000 sgti r1,r2,#0 9358 00008644 102000b0 beqz r1,L251_LF7 9359 00008648 54000000 nop; not filled. 9360 0000864c 23bdfff8 addi r29,r29,#-8 9361 00008650 afa40000 sw (r29),r4 9362 00008654 200d0070 addi r13,r0,#112 9363 00008658 afad0004 sw 4(r29),r13 9364 0000865c 0fffdf2c jal _dindex 9365 00008660 54000000 nop; not filled. 9366 00008664 23bd0008 addi r29,r29,#8 9367 00008668 64210000 snei r1,r1,#0 9368 0000866c 1420002c bnez r1,L254_LF7 9369 00008670 54000000 nop; not filled. 9370 00008674 23bdfff8 addi r29,r29,#-8 9371 00008678 afa40000 sw (r29),r4 9372 0000867c 200d002b addi r13,r0,#43 9373 00008680 afad0004 sw 4(r29),r13 9374 00008684 0fffdf04 jal _dindex 9375 00008688 54000000 nop; not filled. 9376 0000868c 23bd0008 addi r29,r29,#8 9377 00008690 64210000 snei r1,r1,#0 9378 00008694 10200030 beqz r1,L253_LF7 9379 00008698 54000000 nop; not filled. 9380 0000869c L254_LF7: 9381 0000869c 23bdfff0 addi r29,r29,#-16 9382 000086a0 3c0d0001 lhi r13,((LC30_LF7)>>16)&0xffff 9383 000086a4 25ad3ad8 addui r13,r13,(LC30_LF7)&0xffff 9384 000086a8 afad0000 sw (r29),r13 9385 000086ac afa20004 sw 4(r29),r2 9386 000086b0 8fc1fd58 lw r1,-680(r30) 9387 000086b4 00220822 sub r1,r1,r2 9388 000086b8 afa10008 sw 8(r29),r1 9389 000086bc 0c004b64 jal _printf 9390 000086c0 54000000 nop; not filled. 9391 000086c4 23bd0010 addi r29,r29,#16 9392 000086c8 L253_LF7: 9393 000086c8 23bdfff0 addi r29,r29,#-16 9394 000086cc afa60000 sw (r29),r6 9395 000086d0 afa30004 sw 4(r29),r3 9396 000086d4 8fc1fd58 lw r1,-680(r30) 9397 000086d8 00220822 sub r1,r1,r2 9398 000086dc afa10008 sw 8(r29),r1 9399 000086e0 afa2000c sw 12(r29),r2 9400 000086e4 0fffd4cc jal _MemoryCopySystemToUser 9401 000086e8 54000000 nop; not filled. 9402 000086ec 23bd0010 addi r29,r29,#16 9403 000086f0 0bffff24 j L250_LF7 9404 000086f4 54000000 nop; not filled. 9405 000086f8 L251_LF7: 9406 000086f8 23bdfff8 addi r29,r29,#-8 9407 000086fc afa50000 sw (r29),r5 9408 00008700 0fffbb48 jal _FsClose 9409 00008704 54000000 nop; not filled. 9410 00008708 200d0100 addi r13,r0,#256 9411 0000870c ad0d012c sw 300(r8),r13 9412 00008710 240dfc00 addui r13,r0,#64512 9413 00008714 ad0d009c sw 156(r8),r13 9414 00008718 23bdfff8 addi r29,r29,#-8 9415 0000871c afa60000 sw (r29),r6 9416 00008720 afaa0004 sw 4(r29),r10 9417 00008724 8d0d009c lw r13,156(r8) 9418 00008728 afad0008 sw 8(r29),r13 9419 0000872c 200d03e0 addi r13,r0,#992 9420 00008730 afad000c sw 12(r29),r13 9421 00008734 0fffd47c jal _MemoryCopySystemToUser 9422 00008738 54000000 nop; not filled. 9423 0000873c 23bd0010 addi r29,r29,#16 9424 00008740 65410000 snei r1,r10,#0 9425 00008744 10200020 beqz r1,L256_LF7 9426 00008748 54000000 nop; not filled. 9427 0000874c 3c010001 lhi r1,((_str52_LF7)>>16)&0xffff 9428 00008750 242138d0 addui r1,r1,(_str52_LF7)&0xffff 9429 00008754 ac2a0000 sw (r1),r10 9430 00008758 3c010001 lhi r1,((_location53_LF7)>>16)&0xffff 9431 0000875c 242138d4 addui r1,r1,(_location53_LF7)&0xffff 9432 00008760 200d0000 addi r13,r0,#0 9433 00008764 ac2d0000 sw (r1),r13 9434 00008768 L256_LF7: 9435 00008768 3c030001 lhi r3,((_location53_LF7)>>16)&0xffff 9436 0000876c 246338d4 addui r3,r3,(_location53_LF7)&0xffff 9437 00008770 8c640000 lw r4,(r3) 9438 00008774 3c010001 lhi r1,((_str52_LF7)>>16)&0xffff 9439 00008778 242138d0 addui r1,r1,(_str52_LF7)&0xffff 9440 0000877c 8c220000 lw r2,(r1) 9441 00008780 00440820 add r1,r2,r4 9442 00008784 90210000 lbu r1,(r1) 9443 00008788 64210000 snei r1,r1,#0 9444 0000878c 10200010 beqz r1,L258_LF7 9445 00008790 54000000 nop; not filled. 9446 00008794 6c810062 sgti r1,r4,#98 9447 00008798 10200020 beqz r1,L257_LF7 9448 0000879c 54000000 nop; not filled. 9449 000087a0 L258_LF7: 9450 000087a0 20030000 addi r3,r0,#0 9451 000087a4 08000054 j L255_LF7 9452 000087a8 54000000 nop; not filled. 9453 000087ac L291_LF7: 9454 000087ac 20410001 addi r1,r2,#1 9455 000087b0 ac610000 sw (r3),r1 9456 000087b4 08000040 j L260_LF7 9457 000087b8 54000000 nop; not filled. 9458 000087bc L257_LF7: 9459 000087bc 70810063 slei r1,r4,#99 9460 000087c0 10200034 beqz r1,L260_LF7 9461 000087c4 54000000 nop; not filled. 9462 000087c8 00022820 add r5,r0,r2 9463 000087cc L262_LF7: 9464 000087cc 8c620000 lw r2,(r3) 9465 000087d0 00a20820 add r1,r5,r2 9466 000087d4 90210000 lbu r1,(r1) 9467 000087d8 64210000 snei r1,r1,#0 9468 000087dc 1020ffcc beqz r1,L291_LF7 9469 000087e0 54000000 nop; not filled. 9470 000087e4 20410001 addi r1,r2,#1 9471 000087e8 ac610000 sw (r3),r1 9472 000087ec 70210063 slei r1,r1,#99 9473 000087f0 1420ffd8 bnez r1,L262_LF7 9474 000087f4 54000000 nop; not filled. 9475 000087f8 L260_LF7: 9476 000087f8 00041820 add r3,r0,r4 9477 000087fc L255_LF7: 9478 000087fc 2402fc00 addui r2,r0,#64512 9479 00008800 00620820 add r1,r3,r2 9480 00008804 afc1fd78 sw -648(r30),r1 9481 00008808 20070003 addi r7,r0,#3 9482 0000880c 3c040001 lhi r4,((_location53_LF7)>>16)&0xffff 9483 00008810 248438d4 addui r4,r4,(_location53_LF7)&0xffff 9484 00008814 3c0b0001 lhi r11,((_str52_LF7)>>16)&0xffff 9485 00008818 256b38d0 addui r11,r11,(_str52_LF7)&0xffff 9486 0000881c 00025020 add r10,r0,r2 9487 00008820 23c50004 addi r5,r30,#4 9488 00008824 L265_LF7: 9489 00008824 8c9f0000 lw r31,(r4) 9490 00008828 8d630000 lw r3,(r11) 9491 0000882c 007f0820 add r1,r3,r31 9492 00008830 90210000 lbu r1,(r1) 9493 00008834 64210000 snei r1,r1,#0 9494 00008838 10200010 beqz r1,L271_LF7 9495 0000883c 54000000 nop; not filled. 9496 00008840 6fe10062 sgti r1,r31,#98 9497 00008844 10200020 beqz r1,L270_LF7 9498 00008848 54000000 nop; not filled. 9499 0000884c L271_LF7: 9500 0000884c 20030000 addi r3,r0,#0 9501 00008850 08000054 j L268_LF7 9502 00008854 54000000 nop; not filled. 9503 00008858 L292_LF7: 9504 00008858 20610001 addi r1,r3,#1 9505 0000885c ac810000 sw (r4),r1 9506 00008860 08000040 j L273_LF7 9507 00008864 54000000 nop; not filled. 9508 00008868 L270_LF7: 9509 00008868 73e10063 slei r1,r31,#99 9510 0000886c 10200034 beqz r1,L273_LF7 9511 00008870 54000000 nop; not filled. 9512 00008874 00031020 add r2,r0,r3 9513 00008878 L275_LF7: 9514 00008878 8c830000 lw r3,(r4) 9515 0000887c 00430820 add r1,r2,r3 9516 00008880 90210000 lbu r1,(r1) 9517 00008884 64210000 snei r1,r1,#0 9518 00008888 1020ffcc beqz r1,L292_LF7 9519 0000888c 54000000 nop; not filled. 9520 00008890 20610001 addi r1,r3,#1 9521 00008894 ac810000 sw (r4),r1 9522 00008898 70210063 slei r1,r1,#99 9523 0000889c 1420ffd8 bnez r1,L275_LF7 9524 000088a0 54000000 nop; not filled. 9525 000088a4 L273_LF7: 9526 000088a4 001f1820 add r3,r0,r31 9527 000088a8 L268_LF7: 9528 000088a8 006a0820 add r1,r3,r10 9529 000088ac aca1fd78 sw -648(r5),r1 9530 000088b0 64610000 snei r1,r3,#0 9531 000088b4 10200014 beqz r1,L266_LF7 9532 000088b8 54000000 nop; not filled. 9533 000088bc 20a50004 addi r5,r5,#4 9534 000088c0 20e70001 addi r7,r7,#1 9535 000088c4 0bffff5c j L265_LF7 9536 000088c8 54000000 nop; not filled. 9537 000088cc L266_LF7: 9538 000088cc 20e1fffe addi r1,r7,#-2 9539 000088d0 afc1fd70 sw -656(r30),r1 9540 000088d4 50210002 slli r1,r1,#0x2 9541 000088d8 01410822 sub r1,r10,r1 9542 000088dc afc1fd74 sw -652(r30),r1 9543 000088e0 23bdfff0 addi r29,r29,#-16 9544 000088e4 afa60000 sw (r29),r6 9545 000088e8 23c1fd70 addi r1,r30,#-656 9546 000088ec afa10004 sw 4(r29),r1 9547 000088f0 50e20002 slli r2,r7,#0x2 9548 000088f4 8d01009c lw r1,156(r8) 9549 000088f8 00220822 sub r1,r1,r2 9550 000088fc afa10008 sw 8(r29),r1 9551 00008900 afa2000c sw 12(r29),r2 9552 00008904 0fffd2ac jal _MemoryCopySystemToUser 9553 00008908 54000000 nop; not filled. 9554 0000890c 8d01009c lw r1,156(r8) 9555 00008910 00220822 sub r1,r1,r2 9556 00008914 ad01009c sw 156(r8),r1 9557 00008918 8fcdfd6c lw r13,-660(r30) 9558 0000891c ad0d0128 sw 296(r8),r13 9559 00008920 8cc1000c lw r1,12(r6) 9560 00008924 34210200 ori r1,r1,#512 9561 00008928 acc1000c sw 12(r6),r1 9562 0000892c 23bd0010 addi r29,r29,#16 9563 00008930 08000038 j L279_LF7 9564 00008934 54000000 nop; not filled. 9565 00008938 L225_LF7: 9566 00008938 3c0d0000 lhi r13,((_ProcessExit_LF7)>>16)&0xffff 9567 0000893c 25ada320 addui r13,r13,(_ProcessExit_LF7)&0xffff 9568 00008940 ad0d00a4 sw 164(r8),r13 9569 00008944 8cc10008 lw r1,8(r6) 9570 00008948 2421ffe0 addui r1,r1,#65504 9571 0000894c ad01009c sw 156(r8),r1 9572 00008950 ac2a0000 sw (r1),r10 9573 00008954 ad050128 sw 296(r8),r5 9574 00008958 200d0140 addi r13,r0,#320 9575 0000895c ad0d012c sw 300(r8),r13 9576 00008960 8cc1000c lw r1,12(r6) 9577 00008964 34210100 ori r1,r1,#256 9578 00008968 acc1000c sw 12(r6),r1 9579 0000896c L279_LF7: 9580 0000896c 23bdfff8 addi r29,r29,#-8 9581 00008970 200d000f addi r13,r0,#15 9582 00008974 afad0000 sw (r29),r13 9583 00008978 0fff890c jal _SetIntrs 9584 0000897c 54000000 nop; not filled. 9585 00008980 23bd0008 addi r29,r29,#8 9586 00008984 3c030001 lhi r3,((_runQueue_LF7)>>16)&0xffff 9587 00008988 24634110 addui r3,r3,(_runQueue_LF7)&0xffff 9588 0000898c 8c620004 lw r2,4(r3) 9589 00008990 ad230008 sw 8(r9),r3 9590 00008994 ad220004 sw 4(r9),r2 9591 00008998 8c4d0000 lw r13,(r2) 9592 0000899c ad2d0000 sw (r9),r13 9593 000089a0 ac490000 sw (r2),r9 9594 000089a4 8d220000 lw r2,(r9) 9595 000089a8 ac490004 sw 4(r2),r9 9596 000089ac 8c620008 lw r2,8(r3) 9597 000089b0 20420001 addi r2,r2,#1 9598 000089b4 ac620008 sw 8(r3),r2 9599 000089b8 23bdfff8 addi r29,r29,#-8 9600 000089bc afa10000 sw (r29),r1 9601 000089c0 0fff88c4 jal _SetIntrs 9602 000089c4 54000000 nop; not filled. 9603 000089c8 23bd0008 addi r29,r29,#8 9604 000089cc 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 9605 000089d0 24214100 addui r1,r1,(_currentPCB)&0xffff 9606 000089d4 8c210000 lw r1,(r1) 9607 000089d8 64210000 snei r1,r1,#0 9608 000089dc 14200090 bnez r1,L285_LF7 9609 000089e0 54000000 nop; not filled. 9610 000089e4 23bdfff8 addi r29,r29,#-8 9611 000089e8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9612 000089ec 24424038 addui r2,r2,(_debugstr)&0xffff 9613 000089f0 afa20000 sw (r29),r2 9614 000089f4 200d0070 addi r13,r0,#112 9615 000089f8 afad0004 sw 4(r29),r13 9616 000089fc 0fffdb8c jal _dindex 9617 00008a00 54000000 nop; not filled. 9618 00008a04 23bd0008 addi r29,r29,#8 9619 00008a08 64210000 snei r1,r1,#0 9620 00008a0c 1420002c bnez r1,L287_LF7 9621 00008a10 54000000 nop; not filled. 9622 00008a14 23bdfff8 addi r29,r29,#-8 9623 00008a18 afa20000 sw (r29),r2 9624 00008a1c 200d002b addi r13,r0,#43 9625 00008a20 afad0004 sw 4(r29),r13 9626 00008a24 0fffdb64 jal _dindex 9627 00008a28 54000000 nop; not filled. 9628 00008a2c 23bd0008 addi r29,r29,#8 9629 00008a30 64210000 snei r1,r1,#0 9630 00008a34 1020002c beqz r1,L286_LF7 9631 00008a38 54000000 nop; not filled. 9632 00008a3c L287_LF7: 9633 00008a3c 23bdfff0 addi r29,r29,#-16 9634 00008a40 3c0d0001 lhi r13,((LC31_LF7)>>16)&0xffff 9635 00008a44 25ad3afc addui r13,r13,(LC31_LF7)&0xffff 9636 00008a48 afad0000 sw (r29),r13 9637 00008a4c afa60004 sw 4(r29),r6 9638 00008a50 8ccd0000 lw r13,(r6) 9639 00008a54 afad0008 sw 8(r29),r13 9640 00008a58 0c0047c8 jal _printf 9641 00008a5c 54000000 nop; not filled. 9642 00008a60 23bd0010 addi r29,r29,#16 9643 00008a64 L286_LF7: 9644 00008a64 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 9645 00008a68 24214100 addui r1,r1,(_currentPCB)&0xffff 9646 00008a6c ac260000 sw (r1),r6 9647 00008a70 L285_LF7: 9648 00008a70 23bdfff8 addi r29,r29,#-8 9649 00008a74 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9650 00008a78 24424038 addui r2,r2,(_debugstr)&0xffff 9651 00008a7c afa20000 sw (r29),r2 9652 00008a80 200d0070 addi r13,r0,#112 9653 00008a84 afad0004 sw 4(r29),r13 9654 00008a88 0fffdb00 jal _dindex 9655 00008a8c 54000000 nop; not filled. 9656 00008a90 23bd0008 addi r29,r29,#8 9657 00008a94 64210000 snei r1,r1,#0 9658 00008a98 1420002c bnez r1,L289_LF7 9659 00008a9c 54000000 nop; not filled. 9660 00008aa0 23bdfff8 addi r29,r29,#-8 9661 00008aa4 afa20000 sw (r29),r2 9662 00008aa8 200d002b addi r13,r0,#43 9663 00008aac afad0004 sw 4(r29),r13 9664 00008ab0 0fffdad8 jal _dindex 9665 00008ab4 54000000 nop; not filled. 9666 00008ab8 23bd0008 addi r29,r29,#8 9667 00008abc 64210000 snei r1,r1,#0 9668 00008ac0 10200024 beqz r1,L288_LF7 9669 00008ac4 54000000 nop; not filled. 9670 00008ac8 L289_LF7: 9671 00008ac8 23bdfff8 addi r29,r29,#-8 9672 00008acc 3c0d0001 lhi r13,((LC32_LF7)>>16)&0xffff 9673 00008ad0 25ad3b28 addui r13,r13,(LC32_LF7)&0xffff 9674 00008ad4 afad0000 sw (r29),r13 9675 00008ad8 afac0004 sw 4(r29),r12 9676 00008adc 0c004744 jal _printf 9677 00008ae0 54000000 nop; not filled. 9678 00008ae4 23bd0008 addi r29,r29,#8 9679 00008ae8 L288_LF7: 9680 00008ae8 3c0d0001 lhi r13,((_pcbs_LF7)>>16)&0xffff 9681 00008aec 25ad4134 addui r13,r13,(_pcbs_LF7)&0xffff 9682 00008af0 00cd1022 sub r2,r6,r13 9683 00008af4 3c01a4fa lhi r1,#-23302 9684 00008af8 24214fa5 addui r1,r1,#20389 9685 00008afc 00400035 movi2fp f0,r2 9686 00008b00 00200835 movi2fp f1,r1 9687 00008b04 0401000e mult f0,f0,f1 9688 00008b08 00000834 movfp2i r1,f0 9689 00008b0c 5c210002 srai r1,r1,#0x2 9690 00008b10 L290_LF7: 9691 00008b10 8fa20000 lw r2,0(r29) 9692 00008b14 8fa30004 lw r3,4(r29) 9693 00008b18 8fa40008 lw r4,8(r29) 9694 00008b1c 8fa5000c lw r5,12(r29) 9695 00008b20 8fa60010 lw r6,16(r29) 9696 00008b24 8fa70014 lw r7,20(r29) 9697 00008b28 8fa80018 lw r8,24(r29) 9698 00008b2c 8fa9001c lw r9,28(r29) 9699 00008b30 8faa0020 lw r10,32(r29) 9700 00008b34 8fab0024 lw r11,36(r29) 9701 00008b38 8fac0028 lw r12,40(r29) 9702 00008b3c 8fad002c lw r13,44(r29) 9703 00008b40 8fdffff8 lw r31,-8(r30) 9704 00008b44 001ee820 add r29,r0,r30 9705 00008b48 8fdefffc lw r30,-4(r30) 9706 00008b4c 4be00000 jr r31 9707 00008b50 54000000 nop 9708 00008b54 .endproc _ProcessFork 9709 00008b54 .data 9710 00013b42 .align 2 9711 00013b44 LC33_LF7: 9712 00013b44 50726f63 .ascii "ProcessGetCodeInfo: open of %s failed (%d).\n\000" 9712 00013b48 65737347 9712 00013b4c 6574436f 9712 00013b50 6465496e 9712 00013b54 666f3a20 9712 00013b58 6f70656e 9712 00013b5c 206f6620 9712 00013b60 25732066 9712 00013b64 61696c65 9712 00013b68 64202825 9712 00013b6c 64292e0a 9712 00013b70 00 9713 00013b71 .align 2 9714 00013b74 LC34_LF7: 9715 00013b74 46696c65 .ascii "File descriptor is now %d.\n\000" 9715 00013b78 20646573 9715 00013b7c 63726970 9715 00013b80 746f7220 9715 00013b84 6973206e 9715 00013b88 6f772025 9715 00013b8c 642e0a00 9716 00013b90 .align 2 9717 00013b90 LC35_LF7: 9718 00013b90 50726f63 .ascii "ProcessGetCodeInfo: read got %d (not %d) bytes from %s\n\000" 9718 00013b94 65737347 9718 00013b98 6574436f 9718 00013b9c 6465496e 9718 00013ba0 666f3a20 9718 00013ba4 72656164 9718 00013ba8 20676f74 9718 00013bac 20256420 9718 00013bb0 286e6f74 9718 00013bb4 20256429 9718 00013bb8 20627974 9718 00013bbc 65732066 9718 00013bc0 726f6d20 9718 00013bc4 25730a00 9719 00013bc8 .align 2 9720 00013bc8 LC36_LF7: 9721 00013bc8 73746172 .ascii "start:\000" 9721 00013bcc 743a00 9722 00013bcf .align 2 9723 00013bd0 LC37_LF7: 9724 00013bd0 50726f63 .ascii "ProcessGetCodeInfo: %s missing start line (not a DLX executable?)\n\000" 9724 00013bd4 65737347 9724 00013bd8 6574436f 9724 00013bdc 6465496e 9724 00013be0 666f3a20 9724 00013be4 2573206d 9724 00013be8 69737369 9724 00013bec 6e672073 9724 00013bf0 74617274 9724 00013bf4 206c696e 9724 00013bf8 6520286e 9724 00013bfc 6f742061 9724 00013c00 20444c58 9724 00013c04 20657865 9724 00013c08 63757461 9724 00013c0c 626c653f 9724 00013c10 290a00 9725 00013c13 .text 9726 00008b54 .align 2 9727 00008b54 .proc _ProcessGetCodeInfo 9728 00008b54 .global _ProcessGetCodeInfo 9729 00008b54 _ProcessGetCodeInfo: 9730 ; Function 'ProcessGetCodeInfo'; 112 bytes of locals, 11 regs to save. 9731 00008b54 afbefffc sw -4(r29),r30; push fp 9732 00008b58 001df020 add r30,r0,r29; fp = sp 9733 00008b5c afbffff8 sw -8(r29),r31; push ret addr 9734 00008b60 2fbd00a8 subui r29,r29,#168; alloc local storage 9735 00008b64 afa20000 sw 0(r29),r2 9736 00008b68 afa30004 sw 4(r29),r3 9737 00008b6c afa40008 sw 8(r29),r4 9738 00008b70 afa5000c sw 12(r29),r5 9739 00008b74 afa60010 sw 16(r29),r6 9740 00008b78 afa70014 sw 20(r29),r7 9741 00008b7c afa80018 sw 24(r29),r8 9742 00008b80 afa9001c sw 28(r29),r9 9743 00008b84 afaa0020 sw 32(r29),r10 9744 00008b88 afab0024 sw 36(r29),r11 9745 00008b8c afac0028 sw 40(r29),r12 9746 00008b90 8fc60000 lw r6,(r30) 9747 00008b94 8fc70004 lw r7,4(r30) 9748 00008b98 8fc80008 lw r8,8(r30) 9749 00008b9c 8fc9000c lw r9,12(r30) 9750 00008ba0 8fca0010 lw r10,16(r30) 9751 00008ba4 8fcb0014 lw r11,20(r30) 9752 00008ba8 23bdfff8 addi r29,r29,#-8 9753 00008bac afa60000 sw (r29),r6 9754 00008bb0 200c0001 addi r12,r0,#1 9755 00008bb4 afac0004 sw 4(r29),r12 9756 00008bb8 0fffb334 jal _FsOpen 9757 00008bbc 54000000 nop; not filled. 9758 00008bc0 00011820 add r3,r0,r1 9759 00008bc4 23bd0008 addi r29,r29,#8 9760 00008bc8 68610000 slti r1,r3,#0 9761 00008bcc 10200088 beqz r1,L302_LF7 9762 00008bd0 54000000 nop; not filled. 9763 00008bd4 23bdfff8 addi r29,r29,#-8 9764 00008bd8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9765 00008bdc 24424038 addui r2,r2,(_debugstr)&0xffff 9766 00008be0 afa20000 sw (r29),r2 9767 00008be4 200c0066 addi r12,r0,#102 9768 00008be8 afac0004 sw 4(r29),r12 9769 00008bec 0fffd99c jal _dindex 9770 00008bf0 54000000 nop; not filled. 9771 00008bf4 23bd0008 addi r29,r29,#8 9772 00008bf8 64210000 snei r1,r1,#0 9773 00008bfc 1420002c bnez r1,L304_LF7 9774 00008c00 54000000 nop; not filled. 9775 00008c04 23bdfff8 addi r29,r29,#-8 9776 00008c08 afa20000 sw (r29),r2 9777 00008c0c 200c002b addi r12,r0,#43 9778 00008c10 afac0004 sw 4(r29),r12 9779 00008c14 0fffd974 jal _dindex 9780 00008c18 54000000 nop; not filled. 9781 00008c1c 23bd0008 addi r29,r29,#8 9782 00008c20 64210000 snei r1,r1,#0 9783 00008c24 10200224 beqz r1,L311_LF7 9784 00008c28 54000000 nop; not filled. 9785 00008c2c L304_LF7: 9786 00008c2c 23bdfff0 addi r29,r29,#-16 9787 00008c30 3c0c0001 lhi r12,((LC33_LF7)>>16)&0xffff 9788 00008c34 258c3b44 addui r12,r12,(LC33_LF7)&0xffff 9789 00008c38 afac0000 sw (r29),r12 9790 00008c3c afa60004 sw 4(r29),r6 9791 00008c40 afa30008 sw 8(r29),r3 9792 00008c44 0c0045dc jal _printf 9793 00008c48 54000000 nop; not filled. 9794 00008c4c 23bd0010 addi r29,r29,#16 9795 00008c50 080001f8 j L311_LF7 9796 00008c54 54000000 nop; not filled. 9797 00008c58 L302_LF7: 9798 00008c58 23bdfff8 addi r29,r29,#-8 9799 00008c5c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9800 00008c60 24424038 addui r2,r2,(_debugstr)&0xffff 9801 00008c64 afa20000 sw (r29),r2 9802 00008c68 200c0066 addi r12,r0,#102 9803 00008c6c afac0004 sw 4(r29),r12 9804 00008c70 0fffd918 jal _dindex 9805 00008c74 54000000 nop; not filled. 9806 00008c78 23bd0008 addi r29,r29,#8 9807 00008c7c 64210000 snei r1,r1,#0 9808 00008c80 1420002c bnez r1,L306_LF7 9809 00008c84 54000000 nop; not filled. 9810 00008c88 23bdfff8 addi r29,r29,#-8 9811 00008c8c afa20000 sw (r29),r2 9812 00008c90 200c002b addi r12,r0,#43 9813 00008c94 afac0004 sw 4(r29),r12 9814 00008c98 0fffd8f0 jal _dindex 9815 00008c9c 54000000 nop; not filled. 9816 00008ca0 23bd0008 addi r29,r29,#8 9817 00008ca4 64210000 snei r1,r1,#0 9818 00008ca8 10200024 beqz r1,L305_LF7 9819 00008cac 54000000 nop; not filled. 9820 00008cb0 L306_LF7: 9821 00008cb0 23bdfff8 addi r29,r29,#-8 9822 00008cb4 3c0c0001 lhi r12,((LC34_LF7)>>16)&0xffff 9823 00008cb8 258c3b74 addui r12,r12,(LC34_LF7)&0xffff 9824 00008cbc afac0000 sw (r29),r12 9825 00008cc0 afa30004 sw 4(r29),r3 9826 00008cc4 0c00455c jal _printf 9827 00008cc8 54000000 nop; not filled. 9828 00008ccc 23bd0008 addi r29,r29,#8 9829 00008cd0 L305_LF7: 9830 00008cd0 23bdfff0 addi r29,r29,#-16 9831 00008cd4 afa30000 sw (r29),r3 9832 00008cd8 23c4ff90 addi r4,r30,#-112 9833 00008cdc afa40004 sw 4(r29),r4 9834 00008ce0 200c0064 addi r12,r0,#100 9835 00008ce4 afac0008 sw 8(r29),r12 9836 00008ce8 0fffb668 jal _FsRead 9837 00008cec 54000000 nop; not filled. 9838 00008cf0 00012820 add r5,r0,r1 9839 00008cf4 23bd0010 addi r29,r29,#16 9840 00008cf8 64a10064 snei r1,r5,#100 9841 00008cfc 102000a8 beqz r1,L307_LF7 9842 00008d00 54000000 nop; not filled. 9843 00008d04 23bdfff8 addi r29,r29,#-8 9844 00008d08 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9845 00008d0c 24424038 addui r2,r2,(_debugstr)&0xffff 9846 00008d10 afa20000 sw (r29),r2 9847 00008d14 200c0066 addi r12,r0,#102 9848 00008d18 afac0004 sw 4(r29),r12 9849 00008d1c 0fffd86c jal _dindex 9850 00008d20 54000000 nop; not filled. 9851 00008d24 23bd0008 addi r29,r29,#8 9852 00008d28 64210000 snei r1,r1,#0 9853 00008d2c 1420002c bnez r1,L309_LF7 9854 00008d30 54000000 nop; not filled. 9855 00008d34 23bdfff8 addi r29,r29,#-8 9856 00008d38 afa20000 sw (r29),r2 9857 00008d3c 200c002b addi r12,r0,#43 9858 00008d40 afac0004 sw 4(r29),r12 9859 00008d44 0fffd844 jal _dindex 9860 00008d48 54000000 nop; not filled. 9861 00008d4c 23bd0008 addi r29,r29,#8 9862 00008d50 64210000 snei r1,r1,#0 9863 00008d54 10200030 beqz r1,L308_LF7 9864 00008d58 54000000 nop; not filled. 9865 00008d5c L309_LF7: 9866 00008d5c 23bdfff0 addi r29,r29,#-16 9867 00008d60 3c0c0001 lhi r12,((LC35_LF7)>>16)&0xffff 9868 00008d64 258c3b90 addui r12,r12,(LC35_LF7)&0xffff 9869 00008d68 afac0000 sw (r29),r12 9870 00008d6c afa50004 sw 4(r29),r5 9871 00008d70 200c0064 addi r12,r0,#100 9872 00008d74 afac0008 sw 8(r29),r12 9873 00008d78 afa6000c sw 12(r29),r6 9874 00008d7c 0c0044a4 jal _printf 9875 00008d80 54000000 nop; not filled. 9876 00008d84 23bd0010 addi r29,r29,#16 9877 00008d88 L308_LF7: 9878 00008d88 23bdfff8 addi r29,r29,#-8 9879 00008d8c afa30000 sw (r29),r3 9880 00008d90 0fffb4b8 jal _FsClose 9881 00008d94 54000000 nop; not filled. 9882 00008d98 2001ffff addi r1,r0,#-1 9883 00008d9c 23bd0008 addi r29,r29,#8 9884 00008da0 080001d0 j L301_LF7 9885 00008da4 54000000 nop; not filled. 9886 00008da8 L307_LF7: 9887 00008da8 23bdfff8 addi r29,r29,#-8 9888 00008dac afa40000 sw (r29),r4 9889 00008db0 3c010001 lhi r1,((LC36_LF7)>>16)&0xffff 9890 00008db4 24213bc8 addui r1,r1,(LC36_LF7)&0xffff 9891 00008db8 afa10004 sw 4(r29),r1 9892 00008dbc 0fffd5b4 jal _dstrstr 9893 00008dc0 54000000 nop; not filled. 9894 00008dc4 23bd0008 addi r29,r29,#8 9895 00008dc8 64210000 snei r1,r1,#0 9896 00008dcc 14200088 bnez r1,L310_LF7 9897 00008dd0 54000000 nop; not filled. 9898 00008dd4 23bdfff8 addi r29,r29,#-8 9899 00008dd8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9900 00008ddc 24424038 addui r2,r2,(_debugstr)&0xffff 9901 00008de0 afa20000 sw (r29),r2 9902 00008de4 200c0066 addi r12,r0,#102 9903 00008de8 afac0004 sw 4(r29),r12 9904 00008dec 0fffd79c jal _dindex 9905 00008df0 54000000 nop; not filled. 9906 00008df4 23bd0008 addi r29,r29,#8 9907 00008df8 64210000 snei r1,r1,#0 9908 00008dfc 1420002c bnez r1,L312_LF7 9909 00008e00 54000000 nop; not filled. 9910 00008e04 23bdfff8 addi r29,r29,#-8 9911 00008e08 afa20000 sw (r29),r2 9912 00008e0c 200c002b addi r12,r0,#43 9913 00008e10 afac0004 sw 4(r29),r12 9914 00008e14 0fffd774 jal _dindex 9915 00008e18 54000000 nop; not filled. 9916 00008e1c 23bd0008 addi r29,r29,#8 9917 00008e20 64210000 snei r1,r1,#0 9918 00008e24 10200024 beqz r1,L311_LF7 9919 00008e28 54000000 nop; not filled. 9920 00008e2c L312_LF7: 9921 00008e2c 23bdfff8 addi r29,r29,#-8 9922 00008e30 3c0c0001 lhi r12,((LC37_LF7)>>16)&0xffff 9923 00008e34 258c3bd0 addui r12,r12,(LC37_LF7)&0xffff 9924 00008e38 afac0000 sw (r29),r12 9925 00008e3c afa60004 sw 4(r29),r6 9926 00008e40 0c0043e0 jal _printf 9927 00008e44 54000000 nop; not filled. 9928 00008e48 23bd0008 addi r29,r29,#8 9929 00008e4c L311_LF7: 9930 00008e4c 2001ffff addi r1,r0,#-1 9931 00008e50 08000120 j L301_LF7 9932 00008e54 54000000 nop; not filled. 9933 00008e58 L310_LF7: 9934 00008e58 23bdfff8 addi r29,r29,#-8 9935 00008e5c afa40000 sw (r29),r4 9936 00008e60 200c003a addi r12,r0,#58 9937 00008e64 afac0004 sw 4(r29),r12 9938 00008e68 0fffd720 jal _dindex 9939 00008e6c 54000000 nop; not filled. 9940 00008e70 20210001 addi r1,r1,#1 9941 00008e74 afc1ff8c sw -116(r30),r1 9942 00008e78 23bdfff8 addi r29,r29,#-8 9943 00008e7c afa10000 sw (r29),r1 9944 00008e80 23c2ff8c addi r2,r30,#-116 9945 00008e84 afa20004 sw 4(r29),r2 9946 00008e88 200c0010 addi r12,r0,#16 9947 00008e8c afac0008 sw 8(r29),r12 9948 00008e90 0fffd880 jal _dstrtol 9949 00008e94 54000000 nop; not filled. 9950 00008e98 ace10000 sw (r7),r1 9951 00008e9c 8fccff8c lw r12,-116(r30) 9952 00008ea0 afac0000 sw (r29),r12 9953 00008ea4 afa20004 sw 4(r29),r2 9954 00008ea8 200c0010 addi r12,r0,#16 9955 00008eac afac0008 sw 8(r29),r12 9956 00008eb0 0fffd860 jal _dstrtol 9957 00008eb4 54000000 nop; not filled. 9958 00008eb8 8fccff8c lw r12,-116(r30) 9959 00008ebc afac0000 sw (r29),r12 9960 00008ec0 afa20004 sw 4(r29),r2 9961 00008ec4 200c0010 addi r12,r0,#16 9962 00008ec8 afac0008 sw 8(r29),r12 9963 00008ecc 0fffd844 jal _dstrtol 9964 00008ed0 54000000 nop; not filled. 9965 00008ed4 ad010000 sw (r8),r1 9966 00008ed8 8fccff8c lw r12,-116(r30) 9967 00008edc afac0000 sw (r29),r12 9968 00008ee0 afa20004 sw 4(r29),r2 9969 00008ee4 200c0010 addi r12,r0,#16 9970 00008ee8 afac0008 sw 8(r29),r12 9971 00008eec 0fffd824 jal _dstrtol 9972 00008ef0 54000000 nop; not filled. 9973 00008ef4 ad210000 sw (r9),r1 9974 00008ef8 8fccff8c lw r12,-116(r30) 9975 00008efc afac0000 sw (r29),r12 9976 00008f00 afa20004 sw 4(r29),r2 9977 00008f04 200c0010 addi r12,r0,#16 9978 00008f08 afac0008 sw 8(r29),r12 9979 00008f0c 0fffd804 jal _dstrtol 9980 00008f10 54000000 nop; not filled. 9981 00008f14 ad410000 sw (r10),r1 9982 00008f18 8fccff8c lw r12,-116(r30) 9983 00008f1c afac0000 sw (r29),r12 9984 00008f20 afa20004 sw 4(r29),r2 9985 00008f24 200c0010 addi r12,r0,#16 9986 00008f28 afac0008 sw 8(r29),r12 9987 00008f2c 0fffd7e4 jal _dstrtol 9988 00008f30 54000000 nop; not filled. 9989 00008f34 ad610000 sw (r11),r1 9990 00008f38 afa40000 sw (r29),r4 9991 00008f3c 200c000a addi r12,r0,#10 9992 00008f40 afac0004 sw 4(r29),r12 9993 00008f44 0fffd644 jal _dindex 9994 00008f48 54000000 nop; not filled. 9995 00008f4c 23c2ff8f addi r2,r30,#-113 9996 00008f50 00220822 sub r1,r1,r2 9997 00008f54 afa30000 sw (r29),r3 9998 00008f58 afa10004 sw 4(r29),r1 9999 00008f5c 200c0000 addi r12,r0,#0 10000 00008f60 afac0008 sw 8(r29),r12 10001 00008f64 0fffb5e4 jal _FsSeek 10002 00008f68 54000000 nop; not filled. 10003 00008f6c 00030820 add r1,r0,r3 10004 00008f70 23bd0010 addi r29,r29,#16 10005 00008f74 L301_LF7: 10006 00008f74 8fa20000 lw r2,0(r29) 10007 00008f78 8fa30004 lw r3,4(r29) 10008 00008f7c 8fa40008 lw r4,8(r29) 10009 00008f80 8fa5000c lw r5,12(r29) 10010 00008f84 8fa60010 lw r6,16(r29) 10011 00008f88 8fa70014 lw r7,20(r29) 10012 00008f8c 8fa80018 lw r8,24(r29) 10013 00008f90 8fa9001c lw r9,28(r29) 10014 00008f94 8faa0020 lw r10,32(r29) 10015 00008f98 8fab0024 lw r11,36(r29) 10016 00008f9c 8fac0028 lw r12,40(r29) 10017 00008fa0 8fdffff8 lw r31,-8(r30) 10018 00008fa4 001ee820 add r29,r0,r30 10019 00008fa8 8fdefffc lw r30,-4(r30) 10020 00008fac 4be00000 jr r31 10021 00008fb0 54000000 nop 10022 00008fb4 .endproc _ProcessGetCodeInfo 10023 00008fb4 .data 10024 00013c13 .align 2 10025 00013c14 LC38_LF7: 10026 00013c14 476f7420 .ascii "Got %d bytes at offset %d ...\000" 10026 00013c18 25642062 10026 00013c1c 79746573 10026 00013c20 20617420 10026 00013c24 6f666673 10026 00013c28 65742025 10026 00013c2c 64202e2e 10026 00013c30 2e00 10027 00013c32 .align 2 10028 00013c34 LC39_LF7: 10029 00013c34 20746572 .ascii " terminated at %d.\n\000" 10029 00013c38 6d696e61 10029 00013c3c 74656420 10029 00013c40 61742025 10029 00013c44 642e0a00 10030 00013c48 .align 2 10031 00013c48 LC40_LF7: 10032 00013c48 42756666 .ascii "Buffer is \'%s\'\n\000" 10032 00013c4c 65722069 10032 00013c50 73202725 10032 00013c54 73270a00 10033 00013c58 .align 2 10034 00013c58 LC41_LF7: 10035 00013c58 4e657720 .ascii "New address is 0x%x.\n\000" 10035 00013c5c 61646472 10035 00013c60 65737320 10035 00013c64 69732030 10035 00013c68 7825782e 10035 00013c6c 0a00 10036 00013c6e .align 2 10037 00013c70 LC42_LF7: 10038 00013c70 5365656b .ascii "Seeking to %d and returning %d bytes!\n\000" 10038 00013c74 696e6720 10038 00013c78 746f2025 10038 00013c7c 6420616e 10038 00013c80 64207265 10038 00013c84 7475726e 10038 00013c88 696e6720 10038 00013c8c 25642062 10038 00013c90 79746573 10038 00013c94 210a00 10039 00013c97 .text 10040 00008fb4 .align 2 10041 00008fb4 .proc _ProcessGetFromFile 10042 00008fb4 .global _ProcessGetFromFile 10043 00008fb4 _ProcessGetFromFile: 10044 ; Function 'ProcessGetFromFile'; 216 bytes of locals, 11 regs to save. 10045 00008fb4 afbefffc sw -4(r29),r30; push fp 10046 00008fb8 001df020 add r30,r0,r29; fp = sp 10047 00008fbc afbffff8 sw -8(r29),r31; push ret addr 10048 00008fc0 2fbd0110 subui r29,r29,#272; alloc local storage 10049 00008fc4 afa20000 sw 0(r29),r2 10050 00008fc8 afa30004 sw 4(r29),r3 10051 00008fcc afa40008 sw 8(r29),r4 10052 00008fd0 afa5000c sw 12(r29),r5 10053 00008fd4 afa60010 sw 16(r29),r6 10054 00008fd8 afa70014 sw 20(r29),r7 10055 00008fdc afa80018 sw 24(r29),r8 10056 00008fe0 afa9001c sw 28(r29),r9 10057 00008fe4 afaa0020 sw 32(r29),r10 10058 00008fe8 afab0024 sw 36(r29),r11 10059 00008fec afac0028 sw 40(r29),r12 10060 00008ff0 8fca0000 lw r10,(r30) 10061 00008ff4 8fc70008 lw r7,8(r30) 10062 00008ff8 8fc2000c lw r2,12(r30) 10063 00008ffc 8fcb0004 lw r11,4(r30) 10064 00009000 23c3ff28 addi r3,r30,#-216 10065 00009004 afc3ff24 sw -220(r30),r3 10066 00009008 23bdfff0 addi r29,r29,#-16 10067 0000900c afaa0000 sw (r29),r10 10068 00009010 200c0000 addi r12,r0,#0 10069 00009014 afac0004 sw 4(r29),r12 10070 00009018 200c0001 addi r12,r0,#1 10071 0000901c afac0008 sw 8(r29),r12 10072 00009020 0fffb528 jal _FsSeek 10073 00009024 54000000 nop; not filled. 10074 00009028 00014820 add r9,r0,r1 10075 0000902c 50420001 slli r2,r2,#0x1 10076 00009030 23bd0010 addi r29,r29,#16 10077 00009034 6c4100c8 sgtui r1,r2,#200 10078 00009038 10200008 beqz r1,L315_LF7 10079 0000903c 54000000 nop; not filled. 10080 00009040 200200c8 addi r2,r0,#200 10081 00009044 L315_LF7: 10082 00009044 23bdfff0 addi r29,r29,#-16 10083 00009048 afaa0000 sw (r29),r10 10084 0000904c afa30004 sw 4(r29),r3 10085 00009050 afa20008 sw 8(r29),r2 10086 00009054 0fffb2fc jal _FsRead 10087 00009058 54000000 nop; not filled. 10088 0000905c 00012820 add r5,r0,r1 10089 00009060 23bd0010 addi r29,r29,#16 10090 00009064 70a10000 slei r1,r5,#0 10091 00009068 10200010 beqz r1,L316_LF7 10092 0000906c 54000000 nop; not filled. 10093 00009070 20010000 addi r1,r0,#0 10094 00009074 08000594 j L370_LF7 10095 00009078 54000000 nop; not filled. 10096 0000907c L316_LF7: 10097 0000907c 23bdfff8 addi r29,r29,#-8 10098 00009080 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10099 00009084 24424038 addui r2,r2,(_debugstr)&0xffff 10100 00009088 afa20000 sw (r29),r2 10101 0000908c 200c0066 addi r12,r0,#102 10102 00009090 afac0004 sw 4(r29),r12 10103 00009094 0fffd4f4 jal _dindex 10104 00009098 54000000 nop; not filled. 10105 0000909c 23bd0008 addi r29,r29,#8 10106 000090a0 64210000 snei r1,r1,#0 10107 000090a4 1420002c bnez r1,L318_LF7 10108 000090a8 54000000 nop; not filled. 10109 000090ac 23bdfff8 addi r29,r29,#-8 10110 000090b0 afa20000 sw (r29),r2 10111 000090b4 200c002b addi r12,r0,#43 10112 000090b8 afac0004 sw 4(r29),r12 10113 000090bc 0fffd4cc jal _dindex 10114 000090c0 54000000 nop; not filled. 10115 000090c4 23bd0008 addi r29,r29,#8 10116 000090c8 64210000 snei r1,r1,#0 10117 000090cc 10200028 beqz r1,L317_LF7 10118 000090d0 54000000 nop; not filled. 10119 000090d4 L318_LF7: 10120 000090d4 23bdfff0 addi r29,r29,#-16 10121 000090d8 3c0c0001 lhi r12,((LC38_LF7)>>16)&0xffff 10122 000090dc 258c3c14 addui r12,r12,(LC38_LF7)&0xffff 10123 000090e0 afac0000 sw (r29),r12 10124 000090e4 afa50004 sw 4(r29),r5 10125 000090e8 afa90008 sw 8(r29),r9 10126 000090ec 0c004134 jal _printf 10127 000090f0 54000000 nop; not filled. 10128 000090f4 23bd0010 addi r29,r29,#16 10129 000090f8 L317_LF7: 10130 000090f8 20a5ffff addi r5,r5,#-1 10131 000090fc 23c1ff28 addi r1,r30,#-216 10132 00009100 00251020 add r2,r1,r5 10133 00009104 0800000c j L373_LF7 10134 00009108 54000000 nop; not filled. 10135 0000910c L319_LF7: 10136 0000910c 2042ffff addi r2,r2,#-1 10137 00009110 20a5ffff addi r5,r5,#-1 10138 00009114 L373_LF7: 10139 00009114 90410000 lbu r1,(r2) 10140 00009118 6421000a snei r1,r1,#10 10141 0000911c 1420ffec bnez r1,L319_LF7 10142 00009120 54000000 nop; not filled. 10143 00009124 23c1ff29 addi r1,r30,#-215 10144 00009128 00250820 add r1,r1,r5 10145 0000912c 200c005a addi r12,r0,(#0x5a)&0xff 10146 00009130 a02c0000 sb (r1),r12 10147 00009134 23c1ff2a addi r1,r30,#-214 10148 00009138 00250820 add r1,r1,r5 10149 0000913c 200c0000 addi r12,r0,(#0x0)&0xff 10150 00009140 a02c0000 sb (r1),r12 10151 00009144 23bdfff8 addi r29,r29,#-8 10152 00009148 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10153 0000914c 24424038 addui r2,r2,(_debugstr)&0xffff 10154 00009150 afa20000 sw (r29),r2 10155 00009154 200c0066 addi r12,r0,#102 10156 00009158 afac0004 sw 4(r29),r12 10157 0000915c 0fffd42c jal _dindex 10158 00009160 54000000 nop; not filled. 10159 00009164 23bd0008 addi r29,r29,#8 10160 00009168 64210000 snei r1,r1,#0 10161 0000916c 1420002c bnez r1,L324_LF7 10162 00009170 54000000 nop; not filled. 10163 00009174 23bdfff8 addi r29,r29,#-8 10164 00009178 afa20000 sw (r29),r2 10165 0000917c 200c002b addi r12,r0,#43 10166 00009180 afac0004 sw 4(r29),r12 10167 00009184 0fffd404 jal _dindex 10168 00009188 54000000 nop; not filled. 10169 0000918c 23bd0008 addi r29,r29,#8 10170 00009190 64210000 snei r1,r1,#0 10171 00009194 10200024 beqz r1,L323_LF7 10172 00009198 54000000 nop; not filled. 10173 0000919c L324_LF7: 10174 0000919c 23bdfff8 addi r29,r29,#-8 10175 000091a0 3c0c0001 lhi r12,((LC39_LF7)>>16)&0xffff 10176 000091a4 258c3c34 addui r12,r12,(LC39_LF7)&0xffff 10177 000091a8 afac0000 sw (r29),r12 10178 000091ac afa50004 sw 4(r29),r5 10179 000091b0 0c004070 jal _printf 10180 000091b4 54000000 nop; not filled. 10181 000091b8 23bd0008 addi r29,r29,#8 10182 000091bc L323_LF7: 10183 000091bc 23bdfff8 addi r29,r29,#-8 10184 000091c0 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10185 000091c4 24424038 addui r2,r2,(_debugstr)&0xffff 10186 000091c8 afa20000 sw (r29),r2 10187 000091cc 200c0066 addi r12,r0,#102 10188 000091d0 afac0004 sw 4(r29),r12 10189 000091d4 0fffd3b4 jal _dindex 10190 000091d8 54000000 nop; not filled. 10191 000091dc 23bd0008 addi r29,r29,#8 10192 000091e0 64210000 snei r1,r1,#0 10193 000091e4 1420002c bnez r1,L326_LF7 10194 000091e8 54000000 nop; not filled. 10195 000091ec 23bdfff8 addi r29,r29,#-8 10196 000091f0 afa20000 sw (r29),r2 10197 000091f4 200c002b addi r12,r0,#43 10198 000091f8 afac0004 sw 4(r29),r12 10199 000091fc 0fffd38c jal _dindex 10200 00009200 54000000 nop; not filled. 10201 00009204 23bd0008 addi r29,r29,#8 10202 00009208 64210000 snei r1,r1,#0 10203 0000920c 10200028 beqz r1,L325_LF7 10204 00009210 54000000 nop; not filled. 10205 00009214 L326_LF7: 10206 00009214 23bdfff8 addi r29,r29,#-8 10207 00009218 3c0c0001 lhi r12,((LC40_LF7)>>16)&0xffff 10208 0000921c 258c3c48 addui r12,r12,(LC40_LF7)&0xffff 10209 00009220 afac0000 sw (r29),r12 10210 00009224 23c1ff28 addi r1,r30,#-216 10211 00009228 afa10004 sw 4(r29),r1 10212 0000922c 0c003ff4 jal _printf 10213 00009230 54000000 nop; not filled. 10214 00009234 23bd0008 addi r29,r29,#8 10215 00009238 L325_LF7: 10216 00009238 20050000 addi r5,r0,#0 10217 0000923c 3c080001 lhi r8,((_debugstr)>>16)&0xffff 10218 00009240 25084038 addui r8,r8,(_debugstr)&0xffff 10219 00009244 L327_LF7: 10220 00009244 23bdfff8 addi r29,r29,#-8 10221 00009248 8fccff24 lw r12,-220(r30) 10222 0000924c afac0000 sw (r29),r12 10223 00009250 200c005a addi r12,r0,#90 10224 00009254 afac0004 sw 4(r29),r12 10225 00009258 0fffd330 jal _dindex 10226 0000925c 54000000 nop; not filled. 10227 00009260 23bd0008 addi r29,r29,#8 10228 00009264 64210000 snei r1,r1,#0 10229 00009268 102002ec beqz r1,L328_LF7 10230 0000926c 54000000 nop; not filled. 10231 00009270 23bdfff8 addi r29,r29,#-8 10232 00009274 8fccff24 lw r12,-220(r30) 10233 00009278 afac0000 sw (r29),r12 10234 0000927c 200c003a addi r12,r0,#58 10235 00009280 afac0004 sw 4(r29),r12 10236 00009284 0fffd304 jal _dindex 10237 00009288 54000000 nop; not filled. 10238 0000928c 23bd0008 addi r29,r29,#8 10239 00009290 64210000 snei r1,r1,#0 10240 00009294 102002c0 beqz r1,L328_LF7 10241 00009298 54000000 nop; not filled. 10242 0000929c 8fc2ff24 lw r2,-220(r30) 10243 000092a0 90410000 lbu r1,(r2) 10244 000092a4 6421003a snei r1,r1,#58 10245 000092a8 102000b8 beqz r1,L372_LF7 10246 000092ac 54000000 nop; not filled. 10247 000092b0 6ca10000 sgti r1,r5,#0 10248 000092b4 142002a0 bnez r1,L328_LF7 10249 000092b8 54000000 nop; not filled. 10250 000092bc 23bdfff0 addi r29,r29,#-16 10251 000092c0 afa20000 sw (r29),r2 10252 000092c4 23c1ff24 addi r1,r30,#-220 10253 000092c8 afa10004 sw 4(r29),r1 10254 000092cc 200c0010 addi r12,r0,#16 10255 000092d0 afac0008 sw 8(r29),r12 10256 000092d4 0fffd43c jal _dstrtol 10257 000092d8 54000000 nop; not filled. 10258 000092dc ace10000 sw (r7),r1 10259 000092e0 afa80000 sw (r29),r8 10260 000092e4 200c0066 addi r12,r0,#102 10261 000092e8 afac0004 sw 4(r29),r12 10262 000092ec 0fffd29c jal _dindex 10263 000092f0 54000000 nop; not filled. 10264 000092f4 23bd0010 addi r29,r29,#16 10265 000092f8 64210000 snei r1,r1,#0 10266 000092fc 1420002c bnez r1,L334_LF7 10267 00009300 54000000 nop; not filled. 10268 00009304 23bdfff8 addi r29,r29,#-8 10269 00009308 afa80000 sw (r29),r8 10270 0000930c 200c002b addi r12,r0,#43 10271 00009310 afac0004 sw 4(r29),r12 10272 00009314 0fffd274 jal _dindex 10273 00009318 54000000 nop; not filled. 10274 0000931c 23bd0008 addi r29,r29,#8 10275 00009320 64210000 snei r1,r1,#0 10276 00009324 10200028 beqz r1,L331_LF7 10277 00009328 54000000 nop; not filled. 10278 0000932c L334_LF7: 10279 0000932c 23bdfff8 addi r29,r29,#-8 10280 00009330 3c0c0001 lhi r12,((LC41_LF7)>>16)&0xffff 10281 00009334 258c3c58 addui r12,r12,(LC41_LF7)&0xffff 10282 00009338 afac0000 sw (r29),r12 10283 0000933c 8ce10000 lw r1,(r7) 10284 00009340 afa10004 sw 4(r29),r1 10285 00009344 0c003edc jal _printf 10286 00009348 54000000 nop; not filled. 10287 0000934c 23bd0008 addi r29,r29,#8 10288 00009350 L331_LF7: 10289 00009350 8fc1ff24 lw r1,-220(r30) 10290 00009354 90210000 lbu r1,(r1) 10291 00009358 6421003a snei r1,r1,#58 10292 0000935c 142001f8 bnez r1,L328_LF7 10293 00009360 54000000 nop; not filled. 10294 00009364 L372_LF7: 10295 00009364 8fc1ff24 lw r1,-220(r30) 10296 00009368 20210001 addi r1,r1,#1 10297 0000936c afc1ff24 sw -220(r30),r1 10298 00009370 00ab3020 add r6,r5,r11 10299 00009374 L338_LF7: 10300 00009374 8fc1ff24 lw r1,-220(r30) 10301 00009378 08000010 j L374_LF7 10302 0000937c 54000000 nop; not filled. 10303 00009380 L341_LF7: 10304 00009380 8fc1ff24 lw r1,-220(r30) 10305 00009384 20210001 addi r1,r1,#1 10306 00009388 afc1ff24 sw -220(r30),r1 10307 0000938c L374_LF7: 10308 0000938c 903f0000 lbu r31,(r1) 10309 00009390 63e10020 seqi r1,r31,#32 10310 00009394 1420ffe8 bnez r1,L341_LF7 10311 00009398 54000000 nop; not filled. 10312 0000939c 63e10009 seqi r1,r31,#9 10313 000093a0 1420ffdc bnez r1,L341_LF7 10314 000093a4 54000000 nop; not filled. 10315 000093a8 8fc2ff24 lw r2,-220(r30) 10316 000093ac 805f0000 lb r31,(r2) 10317 000093b0 33e300ff andi r3,r31,#0x00ff 10318 000093b4 6061000a seqi r1,r3,#10 10319 000093b8 10200014 beqz r1,L343_LF7 10320 000093bc 54000000 nop; not filled. 10321 000093c0 20410001 addi r1,r2,#1 10322 000093c4 afc1ff24 sw -220(r30),r1 10323 000093c8 0bfffe78 j L327_LF7 10324 000093cc 54000000 nop; not filled. 10325 000093d0 L343_LF7: 10326 000093d0 20020000 addi r2,r0,#0 10327 000093d4 23e1ffd0 addi r1,r31,#-48 10328 000093d8 302100ff andi r1,r1,#0x00ff 10329 000093dc 70210009 sleui r1,r1,#9 10330 000093e0 14200024 bnez r1,L349_LF7 10331 000093e4 54000000 nop; not filled. 10332 000093e8 23e1ff9f addi r1,r31,#-97 10333 000093ec 302100ff andi r1,r1,#0x00ff 10334 000093f0 70210005 sleui r1,r1,#5 10335 000093f4 14200010 bnez r1,L349_LF7 10336 000093f8 54000000 nop; not filled. 10337 000093fc 64610041 snei r1,r3,#65 10338 00009400 14200008 bnez r1,L348_LF7 10339 00009404 54000000 nop; not filled. 10340 00009408 L349_LF7: 10341 00009408 20020001 addi r2,r0,#1 10342 0000940c L348_LF7: 10343 0000940c 64410000 snei r1,r2,#0 10344 00009410 1020fe30 beqz r1,L327_LF7 10345 00009414 54000000 nop; not filled. 10346 00009418 8fc1ff24 lw r1,-220(r30) 10347 0000941c 80220001 lb r2,1(r1) 10348 00009420 20030000 addi r3,r0,#0 10349 00009424 2041ffd0 addi r1,r2,#-48 10350 00009428 302100ff andi r1,r1,#0x00ff 10351 0000942c 70210009 sleui r1,r1,#9 10352 00009430 14200028 bnez r1,L352_LF7 10353 00009434 54000000 nop; not filled. 10354 00009438 2041ff9f addi r1,r2,#-97 10355 0000943c 302100ff andi r1,r1,#0x00ff 10356 00009440 70210005 sleui r1,r1,#5 10357 00009444 14200014 bnez r1,L352_LF7 10358 00009448 54000000 nop; not filled. 10359 0000944c 304100ff andi r1,r2,#0x00ff 10360 00009450 64210041 snei r1,r1,#65 10361 00009454 14200008 bnez r1,L351_LF7 10362 00009458 54000000 nop; not filled. 10363 0000945c L352_LF7: 10364 0000945c 20030001 addi r3,r0,#1 10365 00009460 L351_LF7: 10366 00009460 64610000 snei r1,r3,#0 10367 00009464 1020fddc beqz r1,L327_LF7 10368 00009468 54000000 nop; not filled. 10369 0000946c 8fc1ff24 lw r1,-220(r30) 10370 00009470 90220000 lbu r2,(r1) 10371 00009474 00021820 add r3,r0,r2 10372 00009478 205fffd0 addi r31,r2,#-48 10373 0000947c 73e10009 sleui r1,r31,#9 10374 00009480 10200010 beqz r1,L354_LF7 10375 00009484 54000000 nop; not filled. 10376 00009488 001f2020 add r4,r0,r31 10377 0000948c 08000038 j L353_LF7 10378 00009490 54000000 nop; not filled. 10379 00009494 L354_LF7: 10380 00009494 2041ff9f addi r1,r2,#-97 10381 00009498 70210005 sleui r1,r1,#5 10382 0000949c 10200010 beqz r1,L356_LF7 10383 000094a0 54000000 nop; not filled. 10384 000094a4 2044ffa9 addi r4,r2,#-87 10385 000094a8 0800001c j L353_LF7 10386 000094ac 54000000 nop; not filled. 10387 000094b0 L356_LF7: 10388 000094b0 2061ffbf addi r1,r3,#-65 10389 000094b4 70210005 sleui r1,r1,#5 10390 000094b8 20040000 addi r4,r0,#0 10391 000094bc 10200008 beqz r1,L353_LF7 10392 000094c0 54000000 nop; not filled. 10393 000094c4 2064ffc9 addi r4,r3,#-55 10394 000094c8 L353_LF7: 10395 000094c8 8fc1ff24 lw r1,-220(r30) 10396 000094cc 90220001 lbu r2,1(r1) 10397 000094d0 00021820 add r3,r0,r2 10398 000094d4 205fffd0 addi r31,r2,#-48 10399 000094d8 73e10009 sleui r1,r31,#9 10400 000094dc 10200010 beqz r1,L361_LF7 10401 000094e0 54000000 nop; not filled. 10402 000094e4 001f1020 add r2,r0,r31 10403 000094e8 08000038 j L360_LF7 10404 000094ec 54000000 nop; not filled. 10405 000094f0 L361_LF7: 10406 000094f0 2041ff9f addi r1,r2,#-97 10407 000094f4 70210005 sleui r1,r1,#5 10408 000094f8 10200010 beqz r1,L363_LF7 10409 000094fc 54000000 nop; not filled. 10410 00009500 2042ffa9 addi r2,r2,#-87 10411 00009504 0800001c j L360_LF7 10412 00009508 54000000 nop; not filled. 10413 0000950c L363_LF7: 10414 0000950c 2061ffbf addi r1,r3,#-65 10415 00009510 70210005 sleui r1,r1,#5 10416 00009514 20020000 addi r2,r0,#0 10417 00009518 10200008 beqz r1,L360_LF7 10418 0000951c 54000000 nop; not filled. 10419 00009520 2062ffc9 addi r2,r3,#-55 10420 00009524 L360_LF7: 10421 00009524 50810004 slli r1,r4,#0x4 10422 00009528 00220820 add r1,r1,r2 10423 0000952c a0c10000 sb (r6),r1 10424 00009530 20c60001 addi r6,r6,#1 10425 00009534 20a50001 addi r5,r5,#1 10426 00009538 8fc1ff24 lw r1,-220(r30) 10427 0000953c 20210002 addi r1,r1,#2 10428 00009540 afc1ff24 sw -220(r30),r1 10429 00009544 8ce10000 lw r1,(r7) 10430 00009548 20210001 addi r1,r1,#1 10431 0000954c ace10000 sw (r7),r1 10432 00009550 0bfffe20 j L338_LF7 10433 00009554 54000000 nop; not filled. 10434 00009558 L328_LF7: 10435 00009558 23bdfff0 addi r29,r29,#-16 10436 0000955c afaa0000 sw (r29),r10 10437 00009560 8fc1ff24 lw r1,-220(r30) 10438 00009564 00290820 add r1,r1,r9 10439 00009568 23c3ff28 addi r3,r30,#-216 10440 0000956c 00230822 sub r1,r1,r3 10441 00009570 afa10004 sw 4(r29),r1 10442 00009574 200c0000 addi r12,r0,#0 10443 00009578 afac0008 sw 8(r29),r12 10444 0000957c 0fffafcc jal _FsSeek 10445 00009580 54000000 nop; not filled. 10446 00009584 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10447 00009588 24424038 addui r2,r2,(_debugstr)&0xffff 10448 0000958c afa20000 sw (r29),r2 10449 00009590 200c0066 addi r12,r0,#102 10450 00009594 afac0004 sw 4(r29),r12 10451 00009598 0fffcff0 jal _dindex 10452 0000959c 54000000 nop; not filled. 10453 000095a0 23bd0010 addi r29,r29,#16 10454 000095a4 64210000 snei r1,r1,#0 10455 000095a8 1420002c bnez r1,L369_LF7 10456 000095ac 54000000 nop; not filled. 10457 000095b0 23bdfff8 addi r29,r29,#-8 10458 000095b4 afa20000 sw (r29),r2 10459 000095b8 200c002b addi r12,r0,#43 10460 000095bc afac0004 sw 4(r29),r12 10461 000095c0 0fffcfc8 jal _dindex 10462 000095c4 54000000 nop; not filled. 10463 000095c8 23bd0008 addi r29,r29,#8 10464 000095cc 64210000 snei r1,r1,#0 10465 000095d0 10200034 beqz r1,L368_LF7 10466 000095d4 54000000 nop; not filled. 10467 000095d8 L369_LF7: 10468 000095d8 23bdfff0 addi r29,r29,#-16 10469 000095dc 3c0c0001 lhi r12,((LC42_LF7)>>16)&0xffff 10470 000095e0 258c3c70 addui r12,r12,(LC42_LF7)&0xffff 10471 000095e4 afac0000 sw (r29),r12 10472 000095e8 8fc1ff24 lw r1,-220(r30) 10473 000095ec 00290820 add r1,r1,r9 10474 000095f0 00230822 sub r1,r1,r3 10475 000095f4 afa10004 sw 4(r29),r1 10476 000095f8 afa50008 sw 8(r29),r5 10477 000095fc 0c003c24 jal _printf 10478 00009600 54000000 nop; not filled. 10479 00009604 23bd0010 addi r29,r29,#16 10480 00009608 L368_LF7: 10481 00009608 00050820 add r1,r0,r5 10482 0000960c L370_LF7: 10483 0000960c 8fa20000 lw r2,0(r29) 10484 00009610 8fa30004 lw r3,4(r29) 10485 00009614 8fa40008 lw r4,8(r29) 10486 00009618 8fa5000c lw r5,12(r29) 10487 0000961c 8fa60010 lw r6,16(r29) 10488 00009620 8fa70014 lw r7,20(r29) 10489 00009624 8fa80018 lw r8,24(r29) 10490 00009628 8fa9001c lw r9,28(r29) 10491 0000962c 8faa0020 lw r10,32(r29) 10492 00009630 8fab0024 lw r11,36(r29) 10493 00009634 8fac0028 lw r12,40(r29) 10494 00009638 8fdffff8 lw r31,-8(r30) 10495 0000963c 001ee820 add r29,r0,r30 10496 00009640 8fdefffc lw r30,-4(r30) 10497 00009644 4be00000 jr r31 10498 00009648 54000000 nop 10499 0000964c .endproc _ProcessGetFromFile 10500 0000964c .data 10501 00013c97 .align 2 10502 00013c98 _temppcb64_LF7: 10503 00013c98 .space 180 10504 00013d4c .align 2 10505 00013d4c LC43_LF7: 10506 00013d4c 476f7420 .ascii "Got %d arguments.\n\000" 10506 00013d50 25642061 10506 00013d54 7267756d 10506 00013d58 656e7473 10506 00013d5c 2e0a00 10507 00013d5f .align 2 10508 00013d60 LC44_LF7: 10509 00013d60 41766169 .ascii "Available memory: 0x%x -> 0x%x.\n\000" 10509 00013d64 6c61626c 10509 00013d68 65206d65 10509 00013d6c 6d6f7279 10509 00013d70 3a203078 10509 00013d74 2578202d 10509 00013d78 3e203078 10509 00013d7c 25782e0a 10509 00013d80 00 10510 00013d81 .align 2 10511 00013d84 LC45_LF7: 10512 00013d84 41726775 .ascii "Argument count is %d.\n\000" 10512 00013d88 6d656e74 10512 00013d8c 20636f75 10512 00013d90 6e742069 10512 00013d94 73202564 10512 00013d98 2e0a00 10513 00013d9b .align 2 10514 00013d9c LC46_LF7: 10515 00013d9c 41726775 .ascii "Argument %d is %s.\n\000" 10515 00013da0 6d656e74 10515 00013da4 20256420 10515 00013da8 69732025 10515 00013dac 732e0a00 10516 00013db0 .align 2 10517 00013db0 LC47_LF7: 10518 00013db0 436f6e76 .ascii "Converted %s to %d=%s\n\000" 10518 00013db4 65727465 10518 00013db8 64202573 10518 00013dbc 20746f20 10518 00013dc0 25643d25 10518 00013dc4 730a00 10519 00013dc7 _buf65_LF7: 10520 00013dc7 .space 200 10521 00013e8f .align 2 10522 00013e90 LC48_LF7: 10523 00013e90 25303878 .ascii "%08x: %02x%02x%02x%02x\n\000" 10523 00013e94 3a202530 10523 00013e98 32782530 10523 00013e9c 32782530 10523 00013ea0 32782530 10523 00013ea4 32780a00 10524 00013ea8 .align 2 10525 00013ea8 LC49_LF7: 10526 00013ea8 4f707469 .ascii "Option %s not recognized.\n\000" 10526 00013eac 6f6e2025 10526 00013eb0 73206e6f 10526 00013eb4 74207265 10526 00013eb8 636f676e 10526 00013ebc 697a6564 10526 00013ec0 2e0a00 10527 00013ec3 .align 2 10528 00013ec4 LC50_LF7: 10529 00013ec4 41626f75 .ascii "About to initialize queues.\n\000" 10529 00013ec8 7420746f 10529 00013ecc 20696e69 10529 00013ed0 7469616c 10529 00013ed4 697a6520 10529 00013ed8 71756575 10529 00013edc 65732e0a 10529 00013ee0 00 10530 00013ee1 .align 2 10531 00013ee4 LC51_LF7: 10532 00013ee4 41667465 .ascii "After initializing queues.\n\000" 10532 00013ee8 7220696e 10532 00013eec 69746961 10532 00013ef0 6c697a69 10532 00013ef4 6e672071 10532 00013ef8 75657565 10532 00013efc 732e0a00 10533 00013f00 .align 2 10534 00013f00 LC52_LF7: 10535 00013f00 41667465 .ascii "After initializing memory.\n\000" 10535 00013f04 7220696e 10535 00013f08 69746961 10535 00013f0c 6c697a69 10535 00013f10 6e67206d 10535 00013f14 656d6f72 10535 00013f18 792e0a00 10536 00013f1c .align 2 10537 00013f1c LC53_LF7: 10538 00013f1c 41667465 .ascii "After initializing processes.\n\000" 10538 00013f20 7220696e 10538 00013f24 69746961 10538 00013f28 6c697a69 10538 00013f2c 6e672070 10538 00013f30 726f6365 10538 00013f34 73736573 10538 00013f38 2e0a00 10539 00013f3b .align 2 10540 00013f3c LC54_LF7: 10541 00013f3c 41667465 .ascii "After initializing shared memory.\n\000" 10541 00013f40 7220696e 10541 00013f44 69746961 10541 00013f48 6c697a69 10541 00013f4c 6e672073 10541 00013f50 68617265 10541 00013f54 64206d65 10541 00013f58 6d6f7279 10541 00013f5c 2e0a00 10542 00013f5f .align 2 10543 00013f60 LC55_LF7: 10544 00013f60 41667465 .ascii "After initializing synchronization tools.\n\000" 10544 00013f64 7220696e 10544 00013f68 69746961 10544 00013f6c 6c697a69 10544 00013f70 6e672073 10544 00013f74 796e6368 10544 00013f78 726f6e69 10544 00013f7c 7a617469 10544 00013f80 6f6e2074 10544 00013f84 6f6f6c73 10544 00013f88 2e0a00 10545 00013f8b .align 2 10546 00013f8c LC56_LF7: 10547 00013f8c 41667465 .ascii "After initializing keyboard.\n\000" 10547 00013f90 7220696e 10547 00013f94 69746961 10547 00013f98 6c697a69 10547 00013f9c 6e67206b 10547 00013fa0 6579626f 10547 00013fa4 6172642e 10547 00013fa8 0a00 10548 00013faa .align 2 10549 00013fac LC57_LF7: 10550 00013fac 766d00 .ascii "vm\000" 10551 00013faf .align 2 10552 00013fb0 LC58_LF7: 10553 00013fb0 564d2044 .ascii "VM Descriptor is %d\n\000" 10553 00013fb4 65736372 10553 00013fb8 6970746f 10553 00013fbc 72206973 10553 00013fc0 2025640a 10553 00013fc4 00 10554 00013fc5 .align 2 10555 00013fc8 LC59_LF7: 10556 00013fc8 43726561 .ascii "Created processes - about to set timer quantum.\n\000" 10556 00013fcc 74656420 10556 00013fd0 70726f63 10556 00013fd4 65737365 10556 00013fd8 73202d20 10556 00013fdc 61626f75 10556 00013fe0 7420746f 10556 00013fe4 20736574 10556 00013fe8 2074696d 10556 00013fec 65722071 10556 00013ff0 75616e74 10556 00013ff4 756d2e0a 10556 00013ff8 00 10557 00013ff9 .align 2 10558 00013ffc LC60_LF7: 10559 00013ffc 53657420 .ascii "Set timer quantum to %d, about to run first process.\n\000" 10559 00014000 74696d65 10559 00014004 72207175 10559 00014008 616e7475 10559 0001400c 6d20746f 10559 00014010 2025642c 10559 00014014 2061626f 10559 00014018 75742074 10559 0001401c 6f207275 10559 00014020 6e206669 10559 00014024 72737420 10559 00014028 70726f63 10559 0001402c 6573732e 10559 00014030 0a00 10560 00014032 .text 10561 0000964c .align 2 10562 0000964c .proc _main 10563 0000964c .global _main 10564 0000964c _main: 10565 ; Function 'main'; 192 bytes of locals, 0 regs to save. 10566 0000964c afbefffc sw -4(r29),r30; push fp 10567 00009650 001df020 add r30,r0,r29; fp = sp 10568 00009654 afbffff8 sw -8(r29),r31; push ret addr 10569 00009658 2fbd00c8 subui r29,r29,#200; alloc local storage 10570 0000965c 8fce0000 lw r14,(r30) 10571 00009660 8fd40004 lw r20,4(r30) 10572 00009664 0c003b24 jal ___main 10573 00009668 54000000 nop; not filled. 10574 0000966c 20100000 addi r16,r0,#0 10575 00009670 20150000 addi r21,r0,#0 10576 00009674 afd5ff50 sw -176(r30),r21 10577 00009678 afd5ff54 sw -172(r30),r21 10578 0000967c afd5ff58 sw -168(r30),r21 10579 00009680 afd5ff5c sw -164(r30),r21 10580 00009684 afd5ff60 sw -160(r30),r21 10581 00009688 afd5ff64 sw -156(r30),r21 10582 0000968c afd5ff68 sw -152(r30),r21 10583 00009690 afd5ff6c sw -148(r30),r21 10584 00009694 afd5ff70 sw -144(r30),r21 10585 00009698 afd5ff74 sw -140(r30),r21 10586 0000969c afd5ff78 sw -136(r30),r21 10587 000096a0 afd5ff7c sw -132(r30),r21 10588 000096a4 3c010001 lhi r1,((_debugstr)>>16)&0xffff 10589 000096a8 24214038 addui r1,r1,(_debugstr)&0xffff 10590 000096ac 20150000 addi r21,r0,(#0x0)&0xff 10591 000096b0 a0350000 sb (r1),r21 10592 000096b4 0c000a6c jal _MyFuncRetZero 10593 000096b8 54000000 nop; not filled. 10594 000096bc 23bdfff8 addi r29,r29,#-8 10595 000096c0 3c150001 lhi r21,((LC43_LF7)>>16)&0xffff 10596 000096c4 26b53d4c addui r21,r21,(LC43_LF7)&0xffff 10597 000096c8 afb50000 sw (r29),r21 10598 000096cc afae0004 sw 4(r29),r14 10599 000096d0 0c003b50 jal _printf 10600 000096d4 54000000 nop; not filled. 10601 000096d8 0fffba88 jal _MemoryGetSize 10602 000096dc 54000000 nop; not filled. 10603 000096e0 23bdfff8 addi r29,r29,#-8 10604 000096e4 3c150001 lhi r21,((LC44_LF7)>>16)&0xffff 10605 000096e8 26b53d60 addui r21,r21,(LC44_LF7)&0xffff 10606 000096ec afb50000 sw (r29),r21 10607 000096f0 3c020001 lhi r2,((_lastosaddress)>>16)&0xffff 10608 000096f4 244275b4 addui r2,r2,(_lastosaddress)&0xffff 10609 000096f8 8c420000 lw r2,(r2) 10610 000096fc afa20004 sw 4(r29),r2 10611 00009700 afa10008 sw 8(r29),r1 10612 00009704 0c003b1c jal _printf 10613 00009708 54000000 nop; not filled. 10614 0000970c 3c150001 lhi r21,((LC45_LF7)>>16)&0xffff 10615 00009710 26b53d84 addui r21,r21,(LC45_LF7)&0xffff 10616 00009714 afb50000 sw (r29),r21 10617 00009718 afae0004 sw 4(r29),r14 10618 0000971c 0c003b04 jal _printf 10619 00009720 54000000 nop; not filled. 10620 00009724 20090000 addi r9,r0,#0 10621 00009728 23bd0010 addi r29,r29,#16 10622 0000972c 012e082a slt r1,r9,r14 10623 00009730 10200044 beqz r1,L377_LF7 10624 00009734 54000000 nop; not filled. 10625 00009738 00141020 add r2,r0,r20 10626 0000973c L379_LF7: 10627 0000973c 23bdfff0 addi r29,r29,#-16 10628 00009740 3c150001 lhi r21,((LC46_LF7)>>16)&0xffff 10629 00009744 26b53d9c addui r21,r21,(LC46_LF7)&0xffff 10630 00009748 afb50000 sw (r29),r21 10631 0000974c afa90004 sw 4(r29),r9 10632 00009750 8c550000 lw r21,(r2) 10633 00009754 afb50008 sw 8(r29),r21 10634 00009758 0c003ac8 jal _printf 10635 0000975c 54000000 nop; not filled. 10636 00009760 23bd0010 addi r29,r29,#16 10637 00009764 20420004 addi r2,r2,#4 10638 00009768 21290001 addi r9,r9,#1 10639 0000976c 012e082a slt r1,r9,r14 10640 00009770 1420ffc8 bnez r1,L379_LF7 10641 00009774 54000000 nop; not filled. 10642 00009778 L377_LF7: 10643 00009778 0fffb45c jal _FsModuleInit 10644 0000977c 54000000 nop; not filled. 10645 00009780 20090000 addi r9,r0,#0 10646 00009784 012e082a slt r1,r9,r14 10647 00009788 1020033c beqz r1,L382_LF7 10648 0000978c 54000000 nop; not filled. 10649 00009790 23ccff80 addi r12,r30,#-128 10650 00009794 23cdff38 addi r13,r30,#-200 10651 00009798 3c0f0001 lhi r15,((_buf65_LF7)>>16)&0xffff 10652 0000979c 25ef3dc7 addui r15,r15,(_buf65_LF7)&0xffff 10653 000097a0 21f20001 addi r18,r15,#1 10654 000097a4 21f10002 addi r17,r15,#2 10655 000097a8 00144020 add r8,r0,r20 10656 000097ac L384_LF7: 10657 000097ac 8d020000 lw r2,(r8) 10658 000097b0 90410000 lbu r1,(r2) 10659 000097b4 6021002d seqi r1,r1,#45 10660 000097b8 102002f8 beqz r1,L383_LF7 10661 000097bc 54000000 nop; not filled. 10662 000097c0 90420001 lbu r2,1(r2) 10663 000097c4 60410066 seqi r1,r2,#102 10664 000097c8 142000e0 bnez r1,L389_LF7 10665 000097cc 54000000 nop; not filled. 10666 000097d0 6c410066 sgti r1,r2,#102 10667 000097d4 14200018 bnez r1,L401_LF7 10668 000097d8 54000000 nop; not filled. 10669 000097dc 60410044 seqi r1,r2,#68 10670 000097e0 102002a0 beqz r1,L399_LF7 10671 000097e4 54000000 nop; not filled. 10672 000097e8 08000024 j L387_LF7 10673 000097ec 54000000 nop; not filled. 10674 000097f0 L401_LF7: 10675 000097f0 60410069 seqi r1,r2,#105 10676 000097f4 14200048 bnez r1,L388_LF7 10677 000097f8 54000000 nop; not filled. 10678 000097fc 60410075 seqi r1,r2,#117 10679 00009800 10200280 beqz r1,L399_LF7 10680 00009804 54000000 nop; not filled. 10681 00009808 08000260 j L398_LF7 10682 0000980c 54000000 nop; not filled. 10683 00009810 L387_LF7: 10684 00009810 23bdfff8 addi r29,r29,#-8 10685 00009814 3c150001 lhi r21,((_debugstr)>>16)&0xffff 10686 00009818 26b54038 addui r21,r21,(_debugstr)&0xffff 10687 0000981c afb50000 sw (r29),r21 10688 00009820 21080004 addi r8,r8,#4 10689 00009824 21290001 addi r9,r9,#1 10690 00009828 8d010000 lw r1,(r8) 10691 0000982c afa10004 sw 4(r29),r1 10692 00009830 0fffc898 jal _dstrcpy 10693 00009834 54000000 nop; not filled. 10694 00009838 08000268 j L436_LF7 10695 0000983c 54000000 nop; not filled. 10696 00009840 L388_LF7: 10697 00009840 23bdfff0 addi r29,r29,#-16 10698 00009844 21080004 addi r8,r8,#4 10699 00009848 21290001 addi r9,r9,#1 10700 0000984c 8d150000 lw r21,(r8) 10701 00009850 afb50000 sw (r29),r21 10702 00009854 20150000 addi r21,r0,#0 10703 00009858 afb50004 sw 4(r29),r21 10704 0000985c afb50008 sw 8(r29),r21 10705 00009860 0fffceb0 jal _dstrtol 10706 00009864 54000000 nop; not filled. 10707 00009868 00011820 add r3,r0,r1 10708 0000986c afa10000 sw (r29),r1 10709 00009870 afac0004 sw 4(r29),r12 10710 00009874 0fffcd90 jal _ditoa 10711 00009878 54000000 nop; not filled. 10712 0000987c 3c150001 lhi r21,((LC47_LF7)>>16)&0xffff 10713 00009880 26b53db0 addui r21,r21,(LC47_LF7)&0xffff 10714 00009884 afb50000 sw (r29),r21 10715 00009888 8d010000 lw r1,(r8) 10716 0000988c afa10004 sw 4(r29),r1 10717 00009890 afa30008 sw 8(r29),r3 10718 00009894 afac000c sw 12(r29),r12 10719 00009898 0c003988 jal _printf 10720 0000989c 54000000 nop; not filled. 10721 000098a0 23bd0010 addi r29,r29,#16 10722 000098a4 08000200 j L386_LF7 10723 000098a8 54000000 nop; not filled. 10724 000098ac L389_LF7: 10725 000098ac 20150000 addi r21,r0,#0 10726 000098b0 afd5ff38 sw -200(r30),r21 10727 000098b4 23bdffe8 addi r29,r29,#-24 10728 000098b8 21080004 addi r8,r8,#4 10729 000098bc 21290001 addi r9,r9,#1 10730 000098c0 8d150000 lw r21,(r8) 10731 000098c4 afb50000 sw (r29),r21 10732 000098c8 23c1ff4c addi r1,r30,#-180 10733 000098cc afa10004 sw 4(r29),r1 10734 000098d0 23c1ff48 addi r1,r30,#-184 10735 000098d4 afa10008 sw 8(r29),r1 10736 000098d8 23c1ff44 addi r1,r30,#-188 10737 000098dc afa1000c sw 12(r29),r1 10738 000098e0 23c1ff40 addi r1,r30,#-192 10739 000098e4 afa10010 sw 16(r29),r1 10740 000098e8 23c1ff3c addi r1,r30,#-196 10741 000098ec afa10014 sw 20(r29),r1 10742 000098f0 0ffff260 jal _ProcessGetCodeInfo 10743 000098f4 54000000 nop; not filled. 10744 000098f8 00015020 add r10,r0,r1 10745 000098fc 3c150001 lhi r21,((LC27_LF7)>>16)&0xffff 10746 00009900 26b53a6c addui r21,r21,(LC27_LF7)&0xffff 10747 00009904 afb50000 sw (r29),r21 10748 00009908 8d010000 lw r1,(r8) 10749 0000990c afa10004 sw 4(r29),r1 10750 00009910 8fd5ff4c lw r21,-180(r30) 10751 00009914 afb50008 sw 8(r29),r21 10752 00009918 0c003908 jal _printf 10753 0000991c 54000000 nop; not filled. 10754 00009920 3c150001 lhi r21,((LC28_LF7)>>16)&0xffff 10755 00009924 26b53a88 addui r21,r21,(LC28_LF7)&0xffff 10756 00009928 afb50000 sw (r29),r21 10757 0000992c 8d010000 lw r1,(r8) 10758 00009930 afa10004 sw 4(r29),r1 10759 00009934 8fd5ff48 lw r21,-184(r30) 10760 00009938 afb50008 sw 8(r29),r21 10761 0000993c 8fd5ff44 lw r21,-188(r30) 10762 00009940 afb5000c sw 12(r29),r21 10763 00009944 0c0038dc jal _printf 10764 00009948 54000000 nop; not filled. 10765 0000994c 3c150001 lhi r21,((LC29_LF7)>>16)&0xffff 10766 00009950 26b53ab0 addui r21,r21,(LC29_LF7)&0xffff 10767 00009954 afb50000 sw (r29),r21 10768 00009958 8d010000 lw r1,(r8) 10769 0000995c afa10004 sw 4(r29),r1 10770 00009960 8fd5ff40 lw r21,-192(r30) 10771 00009964 afb50008 sw 8(r29),r21 10772 00009968 8fd5ff3c lw r21,-196(r30) 10773 0000996c afb5000c sw 12(r29),r21 10774 00009970 0c0038b0 jal _printf 10775 00009974 54000000 nop; not filled. 10776 00009978 23bd0018 addi r29,r29,#24 10777 0000997c 3c0b0001 lhi r11,((_buf65_LF7+3)>>16)&0xffff 10778 00009980 256b3dca addui r11,r11,(_buf65_LF7+3)&0xffff 10779 00009984 L390_LF7: 10780 00009984 23bdfff0 addi r29,r29,#-16 10781 00009988 afaa0000 sw (r29),r10 10782 0000998c 3c150001 lhi r21,((_buf65_LF7)>>16)&0xffff 10783 00009990 26b53dc7 addui r21,r21,(_buf65_LF7)&0xffff 10784 00009994 afb50004 sw 4(r29),r21 10785 00009998 afad0008 sw 8(r29),r13 10786 0000999c 201500c8 addi r21,r0,#200 10787 000099a0 afb5000c sw 12(r29),r21 10788 000099a4 0ffff60c jal _ProcessGetFromFile 10789 000099a8 54000000 nop; not filled. 10790 000099ac 00011820 add r3,r0,r1 10791 000099b0 23bd0010 addi r29,r29,#16 10792 000099b4 6c610000 sgti r1,r3,#0 10793 000099b8 10200098 beqz r1,L391_LF7 10794 000099bc 54000000 nop; not filled. 10795 000099c0 20020000 addi r2,r0,#0 10796 000099c4 0043082a slt r1,r2,r3 10797 000099c8 1020ffb8 beqz r1,L390_LF7 10798 000099cc 54000000 nop; not filled. 10799 000099d0 000b3820 add r7,r0,r11 10800 000099d4 00113020 add r6,r0,r17 10801 000099d8 00122820 add r5,r0,r18 10802 000099dc 000f2020 add r4,r0,r15 10803 000099e0 L396_LF7: 10804 000099e0 23bdffe8 addi r29,r29,#-24 10805 000099e4 3c150001 lhi r21,((LC48_LF7)>>16)&0xffff 10806 000099e8 26b53e90 addui r21,r21,(LC48_LF7)&0xffff 10807 000099ec afb50000 sw (r29),r21 10808 000099f0 8fc1ff38 lw r1,-200(r30) 10809 000099f4 00220820 add r1,r1,r2 10810 000099f8 00230822 sub r1,r1,r3 10811 000099fc afa10004 sw 4(r29),r1 10812 00009a00 90810000 lbu r1,(r4) 10813 00009a04 afa10008 sw 8(r29),r1 10814 00009a08 90a10000 lbu r1,(r5) 10815 00009a0c afa1000c sw 12(r29),r1 10816 00009a10 90c10000 lbu r1,(r6) 10817 00009a14 afa10010 sw 16(r29),r1 10818 00009a18 90e10000 lbu r1,(r7) 10819 00009a1c afa10014 sw 20(r29),r1 10820 00009a20 0c003800 jal _printf 10821 00009a24 54000000 nop; not filled. 10822 00009a28 23bd0018 addi r29,r29,#24 10823 00009a2c 20e70004 addi r7,r7,#4 10824 00009a30 20c60004 addi r6,r6,#4 10825 00009a34 20a50004 addi r5,r5,#4 10826 00009a38 20840004 addi r4,r4,#4 10827 00009a3c 20420004 addi r2,r2,#4 10828 00009a40 0043082a slt r1,r2,r3 10829 00009a44 1420ff98 bnez r1,L396_LF7 10830 00009a48 54000000 nop; not filled. 10831 00009a4c 0bffff34 j L390_LF7 10832 00009a50 54000000 nop; not filled. 10833 00009a54 L391_LF7: 10834 00009a54 23bdfff8 addi r29,r29,#-8 10835 00009a58 afaa0000 sw (r29),r10 10836 00009a5c 0c003740 jal _close 10837 00009a60 54000000 nop; not filled. 10838 00009a64 0800003c j L436_LF7 10839 00009a68 54000000 nop; not filled. 10840 00009a6c L398_LF7: 10841 00009a6c 21080004 addi r8,r8,#4 10842 00009a70 21290001 addi r9,r9,#1 10843 00009a74 8d100000 lw r16,(r8) 10844 00009a78 00099820 add r19,r0,r9 10845 00009a7c 08000028 j L386_LF7 10846 00009a80 54000000 nop; not filled. 10847 00009a84 L399_LF7: 10848 00009a84 23bdfff8 addi r29,r29,#-8 10849 00009a88 3c150001 lhi r21,((LC49_LF7)>>16)&0xffff 10850 00009a8c 26b53ea8 addui r21,r21,(LC49_LF7)&0xffff 10851 00009a90 afb50000 sw (r29),r21 10852 00009a94 8d010000 lw r1,(r8) 10853 00009a98 afa10004 sw 4(r29),r1 10854 00009a9c 0c003784 jal _printf 10855 00009aa0 54000000 nop; not filled. 10856 00009aa4 L436_LF7: 10857 00009aa4 23bd0008 addi r29,r29,#8 10858 00009aa8 L386_LF7: 10859 00009aa8 66010000 snei r1,r16,#0 10860 00009aac 14200018 bnez r1,L382_LF7 10861 00009ab0 54000000 nop; not filled. 10862 00009ab4 L383_LF7: 10863 00009ab4 21080004 addi r8,r8,#4 10864 00009ab8 21290001 addi r9,r9,#1 10865 00009abc 012e082a slt r1,r9,r14 10866 00009ac0 1420fce8 bnez r1,L384_LF7 10867 00009ac4 54000000 nop; not filled. 10868 00009ac8 L382_LF7: 10869 00009ac8 23bdfff8 addi r29,r29,#-8 10870 00009acc 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10871 00009ad0 24424038 addui r2,r2,(_debugstr)&0xffff 10872 00009ad4 afa20000 sw (r29),r2 10873 00009ad8 20150069 addi r21,r0,#105 10874 00009adc afb50004 sw 4(r29),r21 10875 00009ae0 0fffcaa8 jal _dindex 10876 00009ae4 54000000 nop; not filled. 10877 00009ae8 23bd0008 addi r29,r29,#8 10878 00009aec 64210000 snei r1,r1,#0 10879 00009af0 1420002c bnez r1,L405_LF7 10880 00009af4 54000000 nop; not filled. 10881 00009af8 23bdfff8 addi r29,r29,#-8 10882 00009afc afa20000 sw (r29),r2 10883 00009b00 2015002b addi r21,r0,#43 10884 00009b04 afb50004 sw 4(r29),r21 10885 00009b08 0fffca80 jal _dindex 10886 00009b0c 54000000 nop; not filled. 10887 00009b10 23bd0008 addi r29,r29,#8 10888 00009b14 64210000 snei r1,r1,#0 10889 00009b18 10200020 beqz r1,L404_LF7 10890 00009b1c 54000000 nop; not filled. 10891 00009b20 L405_LF7: 10892 00009b20 23bdfff8 addi r29,r29,#-8 10893 00009b24 3c150001 lhi r21,((LC50_LF7)>>16)&0xffff 10894 00009b28 26b53ec4 addui r21,r21,(LC50_LF7)&0xffff 10895 00009b2c afb50000 sw (r29),r21 10896 00009b30 0c0036f0 jal _printf 10897 00009b34 54000000 nop; not filled. 10898 00009b38 23bd0008 addi r29,r29,#8 10899 00009b3c L404_LF7: 10900 00009b3c 0c000ca8 jal _QueueModuleInit 10901 00009b40 54000000 nop; not filled. 10902 00009b44 23bdfff8 addi r29,r29,#-8 10903 00009b48 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10904 00009b4c 24424038 addui r2,r2,(_debugstr)&0xffff 10905 00009b50 afa20000 sw (r29),r2 10906 00009b54 20150069 addi r21,r0,#105 10907 00009b58 afb50004 sw 4(r29),r21 10908 00009b5c 0fffca2c jal _dindex 10909 00009b60 54000000 nop; not filled. 10910 00009b64 23bd0008 addi r29,r29,#8 10911 00009b68 64210000 snei r1,r1,#0 10912 00009b6c 1420002c bnez r1,L407_LF7 10913 00009b70 54000000 nop; not filled. 10914 00009b74 23bdfff8 addi r29,r29,#-8 10915 00009b78 afa20000 sw (r29),r2 10916 00009b7c 2015002b addi r21,r0,#43 10917 00009b80 afb50004 sw 4(r29),r21 10918 00009b84 0fffca04 jal _dindex 10919 00009b88 54000000 nop; not filled. 10920 00009b8c 23bd0008 addi r29,r29,#8 10921 00009b90 64210000 snei r1,r1,#0 10922 00009b94 10200020 beqz r1,L406_LF7 10923 00009b98 54000000 nop; not filled. 10924 00009b9c L407_LF7: 10925 00009b9c 23bdfff8 addi r29,r29,#-8 10926 00009ba0 3c150001 lhi r21,((LC51_LF7)>>16)&0xffff 10927 00009ba4 26b53ee4 addui r21,r21,(LC51_LF7)&0xffff 10928 00009ba8 afb50000 sw (r29),r21 10929 00009bac 0c003674 jal _printf 10930 00009bb0 54000000 nop; not filled. 10931 00009bb4 23bd0008 addi r29,r29,#8 10932 00009bb8 L406_LF7: 10933 00009bb8 0fffb708 jal _MemoryModuleInit 10934 00009bbc 54000000 nop; not filled. 10935 00009bc0 23bdfff8 addi r29,r29,#-8 10936 00009bc4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10937 00009bc8 24424038 addui r2,r2,(_debugstr)&0xffff 10938 00009bcc afa20000 sw (r29),r2 10939 00009bd0 20150069 addi r21,r0,#105 10940 00009bd4 afb50004 sw 4(r29),r21 10941 00009bd8 0fffc9b0 jal _dindex 10942 00009bdc 54000000 nop; not filled. 10943 00009be0 23bd0008 addi r29,r29,#8 10944 00009be4 64210000 snei r1,r1,#0 10945 00009be8 1420002c bnez r1,L409_LF7 10946 00009bec 54000000 nop; not filled. 10947 00009bf0 23bdfff8 addi r29,r29,#-8 10948 00009bf4 afa20000 sw (r29),r2 10949 00009bf8 2015002b addi r21,r0,#43 10950 00009bfc afb50004 sw 4(r29),r21 10951 00009c00 0fffc988 jal _dindex 10952 00009c04 54000000 nop; not filled. 10953 00009c08 23bd0008 addi r29,r29,#8 10954 00009c0c 64210000 snei r1,r1,#0 10955 00009c10 10200020 beqz r1,L408_LF7 10956 00009c14 54000000 nop; not filled. 10957 00009c18 L409_LF7: 10958 00009c18 23bdfff8 addi r29,r29,#-8 10959 00009c1c 3c150001 lhi r21,((LC52_LF7)>>16)&0xffff 10960 00009c20 26b53f00 addui r21,r21,(LC52_LF7)&0xffff 10961 00009c24 afb50000 sw (r29),r21 10962 00009c28 0c0035f8 jal _printf 10963 00009c2c 54000000 nop; not filled. 10964 00009c30 23bd0008 addi r29,r29,#8 10965 00009c34 L408_LF7: 10966 00009c34 0fffd258 jal _ProcessModuleInit 10967 00009c38 54000000 nop; not filled. 10968 00009c3c 23bdfff8 addi r29,r29,#-8 10969 00009c40 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10970 00009c44 24424038 addui r2,r2,(_debugstr)&0xffff 10971 00009c48 afa20000 sw (r29),r2 10972 00009c4c 20150069 addi r21,r0,#105 10973 00009c50 afb50004 sw 4(r29),r21 10974 00009c54 0fffc934 jal _dindex 10975 00009c58 54000000 nop; not filled. 10976 00009c5c 23bd0008 addi r29,r29,#8 10977 00009c60 64210000 snei r1,r1,#0 10978 00009c64 1420002c bnez r1,L411_LF7 10979 00009c68 54000000 nop; not filled. 10980 00009c6c 23bdfff8 addi r29,r29,#-8 10981 00009c70 afa20000 sw (r29),r2 10982 00009c74 2015002b addi r21,r0,#43 10983 00009c78 afb50004 sw 4(r29),r21 10984 00009c7c 0fffc90c jal _dindex 10985 00009c80 54000000 nop; not filled. 10986 00009c84 23bd0008 addi r29,r29,#8 10987 00009c88 64210000 snei r1,r1,#0 10988 00009c8c 10200020 beqz r1,L410_LF7 10989 00009c90 54000000 nop; not filled. 10990 00009c94 L411_LF7: 10991 00009c94 23bdfff8 addi r29,r29,#-8 10992 00009c98 3c150001 lhi r21,((LC53_LF7)>>16)&0xffff 10993 00009c9c 26b53f1c addui r21,r21,(LC53_LF7)&0xffff 10994 00009ca0 afb50000 sw (r29),r21 10995 00009ca4 0c00357c jal _printf 10996 00009ca8 54000000 nop; not filled. 10997 00009cac 23bd0008 addi r29,r29,#8 10998 00009cb0 L410_LF7: 10999 00009cb0 0fff7af0 jal _ShareModuleInit 11000 00009cb4 54000000 nop; not filled. 11001 00009cb8 23bdfff8 addi r29,r29,#-8 11002 00009cbc 3c020001 lhi r2,((_debugstr)>>16)&0xffff 11003 00009cc0 24424038 addui r2,r2,(_debugstr)&0xffff 11004 00009cc4 afa20000 sw (r29),r2 11005 00009cc8 20150069 addi r21,r0,#105 11006 00009ccc afb50004 sw 4(r29),r21 11007 00009cd0 0fffc8b8 jal _dindex 11008 00009cd4 54000000 nop; not filled. 11009 00009cd8 23bd0008 addi r29,r29,#8 11010 00009cdc 64210000 snei r1,r1,#0 11011 00009ce0 1420002c bnez r1,L413_LF7 11012 00009ce4 54000000 nop; not filled. 11013 00009ce8 23bdfff8 addi r29,r29,#-8 11014 00009cec afa20000 sw (r29),r2 11015 00009cf0 2015002b addi r21,r0,#43 11016 00009cf4 afb50004 sw 4(r29),r21 11017 00009cf8 0fffc890 jal _dindex 11018 00009cfc 54000000 nop; not filled. 11019 00009d00 23bd0008 addi r29,r29,#8 11020 00009d04 64210000 snei r1,r1,#0 11021 00009d08 10200020 beqz r1,L412_LF7 11022 00009d0c 54000000 nop; not filled. 11023 00009d10 L413_LF7: 11024 00009d10 23bdfff8 addi r29,r29,#-8 11025 00009d14 3c150001 lhi r21,((LC54_LF7)>>16)&0xffff 11026 00009d18 26b53f3c addui r21,r21,(LC54_LF7)&0xffff 11027 00009d1c afb50000 sw (r29),r21 11028 00009d20 0c003500 jal _printf 11029 00009d24 54000000 nop; not filled. 11030 00009d28 23bd0008 addi r29,r29,#8 11031 00009d2c L412_LF7: 11032 00009d2c 0fff8678 jal _SynchModuleInit 11033 00009d30 54000000 nop; not filled. 11034 00009d34 23bdfff8 addi r29,r29,#-8 11035 00009d38 3c020001 lhi r2,((_debugstr)>>16)&0xffff 11036 00009d3c 24424038 addui r2,r2,(_debugstr)&0xffff 11037 00009d40 afa20000 sw (r29),r2 11038 00009d44 20150069 addi r21,r0,#105 11039 00009d48 afb50004 sw 4(r29),r21 11040 00009d4c 0fffc83c jal _dindex 11041 00009d50 54000000 nop; not filled. 11042 00009d54 23bd0008 addi r29,r29,#8 11043 00009d58 64210000 snei r1,r1,#0 11044 00009d5c 1420002c bnez r1,L415_LF7 11045 00009d60 54000000 nop; not filled. 11046 00009d64 23bdfff8 addi r29,r29,#-8 11047 00009d68 afa20000 sw (r29),r2 11048 00009d6c 2015002b addi r21,r0,#43 11049 00009d70 afb50004 sw 4(r29),r21 11050 00009d74 0fffc814 jal _dindex 11051 00009d78 54000000 nop; not filled. 11052 00009d7c 23bd0008 addi r29,r29,#8 11053 00009d80 64210000 snei r1,r1,#0 11054 00009d84 10200020 beqz r1,L414_LF7 11055 00009d88 54000000 nop; not filled. 11056 00009d8c L415_LF7: 11057 00009d8c 23bdfff8 addi r29,r29,#-8 11058 00009d90 3c150001 lhi r21,((LC55_LF7)>>16)&0xffff 11059 00009d94 26b53f60 addui r21,r21,(LC55_LF7)&0xffff 11060 00009d98 afb50000 sw (r29),r21 11061 00009d9c 0c003484 jal _printf 11062 00009da0 54000000 nop; not filled. 11063 00009da4 23bd0008 addi r29,r29,#8 11064 00009da8 L414_LF7: 11065 00009da8 0c00126c jal _KbdModuleInit 11066 00009dac 54000000 nop; not filled. 11067 00009db0 23bdfff8 addi r29,r29,#-8 11068 00009db4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 11069 00009db8 24424038 addui r2,r2,(_debugstr)&0xffff 11070 00009dbc afa20000 sw (r29),r2 11071 00009dc0 20150069 addi r21,r0,#105 11072 00009dc4 afb50004 sw 4(r29),r21 11073 00009dc8 0fffc7c0 jal _dindex 11074 00009dcc 54000000 nop; not filled. 11075 00009dd0 23bd0008 addi r29,r29,#8 11076 00009dd4 64210000 snei r1,r1,#0 11077 00009dd8 1420002c bnez r1,L417_LF7 11078 00009ddc 54000000 nop; not filled. 11079 00009de0 23bdfff8 addi r29,r29,#-8 11080 00009de4 afa20000 sw (r29),r2 11081 00009de8 2015002b addi r21,r0,#43 11082 00009dec afb50004 sw 4(r29),r21 11083 00009df0 0fffc798 jal _dindex 11084 00009df4 54000000 nop; not filled. 11085 00009df8 23bd0008 addi r29,r29,#8 11086 00009dfc 64210000 snei r1,r1,#0 11087 00009e00 10200020 beqz r1,L416_LF7 11088 00009e04 54000000 nop; not filled. 11089 00009e08 L417_LF7: 11090 00009e08 23bdfff8 addi r29,r29,#-8 11091 00009e0c 3c150001 lhi r21,((LC56_LF7)>>16)&0xffff 11092 00009e10 26b53f8c addui r21,r21,(LC56_LF7)&0xffff 11093 00009e14 afb50000 sw (r29),r21 11094 00009e18 0c003408 jal _printf 11095 00009e1c 54000000 nop; not filled. 11096 00009e20 23bd0008 addi r29,r29,#8 11097 00009e24 L416_LF7: 11098 00009e24 23c2ff80 addi r2,r30,#-128 11099 00009e28 23c3ffe3 addi r3,r30,#-29 11100 00009e2c L421_LF7: 11101 00009e2c 20150061 addi r21,r0,(#0x61)&0xff 11102 00009e30 a0550000 sb (r2),r21 11103 00009e34 20420001 addi r2,r2,#1 11104 00009e38 0043082c sle r1,r2,r3 11105 00009e3c 1420ffec bnez r1,L421_LF7 11106 00009e40 54000000 nop; not filled. 11107 00009e44 23bdfff8 addi r29,r29,#-8 11108 00009e48 3c150001 lhi r21,((LC57_LF7)>>16)&0xffff 11109 00009e4c 26b53fac addui r21,r21,(LC57_LF7)&0xffff 11110 00009e50 afb50000 sw (r29),r21 11111 00009e54 20150002 addi r21,r0,#2 11112 00009e58 afb50004 sw 4(r29),r21 11113 00009e5c 0fffa090 jal _FsOpen 11114 00009e60 54000000 nop; not filled. 11115 00009e64 00014820 add r9,r0,r1 11116 00009e68 3c020001 lhi r2,((_debugstr)>>16)&0xffff 11117 00009e6c 24424038 addui r2,r2,(_debugstr)&0xffff 11118 00009e70 afa20000 sw (r29),r2 11119 00009e74 20150069 addi r21,r0,#105 11120 00009e78 afb50004 sw 4(r29),r21 11121 00009e7c 0fffc70c jal _dindex 11122 00009e80 54000000 nop; not filled. 11123 00009e84 23bd0008 addi r29,r29,#8 11124 00009e88 64210000 snei r1,r1,#0 11125 00009e8c 1420002c bnez r1,L424_LF7 11126 00009e90 54000000 nop; not filled. 11127 00009e94 23bdfff8 addi r29,r29,#-8 11128 00009e98 afa20000 sw (r29),r2 11129 00009e9c 2015002b addi r21,r0,#43 11130 00009ea0 afb50004 sw 4(r29),r21 11131 00009ea4 0fffc6e4 jal _dindex 11132 00009ea8 54000000 nop; not filled. 11133 00009eac 23bd0008 addi r29,r29,#8 11134 00009eb0 64210000 snei r1,r1,#0 11135 00009eb4 10200024 beqz r1,L423_LF7 11136 00009eb8 54000000 nop; not filled. 11137 00009ebc L424_LF7: 11138 00009ebc 23bdfff8 addi r29,r29,#-8 11139 00009ec0 3c150001 lhi r21,((LC58_LF7)>>16)&0xffff 11140 00009ec4 26b53fb0 addui r21,r21,(LC58_LF7)&0xffff 11141 00009ec8 afb50000 sw (r29),r21 11142 00009ecc afa90004 sw 4(r29),r9 11143 00009ed0 0c003350 jal _printf 11144 00009ed4 54000000 nop; not filled. 11145 00009ed8 23bd0008 addi r29,r29,#8 11146 00009edc L423_LF7: 11147 00009edc 23bdfff0 addi r29,r29,#-16 11148 00009ee0 afa90000 sw (r29),r9 11149 00009ee4 20150000 addi r21,r0,#0 11150 00009ee8 afb50004 sw 4(r29),r21 11151 00009eec afb50008 sw 8(r29),r21 11152 00009ef0 0fffa658 jal _FsSeek 11153 00009ef4 54000000 nop; not filled. 11154 00009ef8 afa90000 sw (r29),r9 11155 00009efc 23c1ff80 addi r1,r30,#-128 11156 00009f00 afa10004 sw 4(r29),r1 11157 00009f04 20150050 addi r21,r0,#80 11158 00009f08 afb50008 sw 8(r29),r21 11159 00009f0c 0fffa540 jal _FsWrite 11160 00009f10 54000000 nop; not filled. 11161 00009f14 afa90000 sw (r29),r9 11162 00009f18 0fffa330 jal _FsClose 11163 00009f1c 54000000 nop; not filled. 11164 00009f20 23bd0010 addi r29,r29,#16 11165 00009f24 66010000 snei r1,r16,#0 11166 00009f28 102000d0 beqz r1,L425_LF7 11167 00009f2c 54000000 nop; not filled. 11168 00009f30 00134820 add r9,r0,r19 11169 00009f34 026e082a slt r1,r19,r14 11170 00009f38 10200044 beqz r1,L427_LF7 11171 00009f3c 54000000 nop; not filled. 11172 00009f40 23c4fff8 addi r4,r30,#-8 11173 00009f44 51210002 slli r1,r9,#0x2 11174 00009f48 00341820 add r3,r1,r20 11175 00009f4c L431_LF7: 11176 00009f4c 01331022 sub r2,r9,r19 11177 00009f50 7041000a slei r1,r2,#10 11178 00009f54 10200028 beqz r1,L427_LF7 11179 00009f58 54000000 nop; not filled. 11180 00009f5c 50410002 slli r1,r2,#0x2 11181 00009f60 00240820 add r1,r1,r4 11182 00009f64 8c750000 lw r21,(r3) 11183 00009f68 ac35ff58 sw -168(r1),r21 11184 00009f6c 20630004 addi r3,r3,#4 11185 00009f70 21290001 addi r9,r9,#1 11186 00009f74 012e082a slt r1,r9,r14 11187 00009f78 1420ffd0 bnez r1,L431_LF7 11188 00009f7c 54000000 nop; not filled. 11189 00009f80 L427_LF7: 11190 00009f80 23bdffc8 addi r29,r29,#-56 11191 00009f84 20150000 addi r21,r0,#0 11192 00009f88 afb50000 sw (r29),r21 11193 00009f8c afb50004 sw 4(r29),r21 11194 00009f90 8fd5ff50 lw r21,-176(r30) 11195 00009f94 afb50008 sw 8(r29),r21 11196 00009f98 8fd5ff54 lw r21,-172(r30) 11197 00009f9c afb5000c sw 12(r29),r21 11198 00009fa0 8fd5ff58 lw r21,-168(r30) 11199 00009fa4 afb50010 sw 16(r29),r21 11200 00009fa8 8fd5ff5c lw r21,-164(r30) 11201 00009fac afb50014 sw 20(r29),r21 11202 00009fb0 8fd5ff60 lw r21,-160(r30) 11203 00009fb4 afb50018 sw 24(r29),r21 11204 00009fb8 8fd5ff64 lw r21,-156(r30) 11205 00009fbc afb5001c sw 28(r29),r21 11206 00009fc0 8fd5ff68 lw r21,-152(r30) 11207 00009fc4 afb50020 sw 32(r29),r21 11208 00009fc8 8fd5ff6c lw r21,-148(r30) 11209 00009fcc afb50024 sw 36(r29),r21 11210 00009fd0 8fd5ff70 lw r21,-144(r30) 11211 00009fd4 afb50028 sw 40(r29),r21 11212 00009fd8 8fd5ff74 lw r21,-140(r30) 11213 00009fdc afb5002c sw 44(r29),r21 11214 00009fe0 8fd5ff78 lw r21,-136(r30) 11215 00009fe4 afb50030 sw 48(r29),r21 11216 00009fe8 8fd5ff7c lw r21,-132(r30) 11217 00009fec afb50034 sw 52(r29),r21 11218 00009ff0 0c000218 jal _process_create 11219 00009ff4 54000000 nop; not filled. 11220 00009ff8 23bd0038 addi r29,r29,#56 11221 00009ffc L425_LF7: 11222 00009ffc 0c00310c jal _SysprocCreateProcesses 11223 0000a000 54000000 nop; not filled. 11224 0000a004 23bdfff8 addi r29,r29,#-8 11225 0000a008 3c020001 lhi r2,((_debugstr)>>16)&0xffff 11226 0000a00c 24424038 addui r2,r2,(_debugstr)&0xffff 11227 0000a010 afa20000 sw (r29),r2 11228 0000a014 20150069 addi r21,r0,#105 11229 0000a018 afb50004 sw 4(r29),r21 11230 0000a01c 0fffc56c jal _dindex 11231 0000a020 54000000 nop; not filled. 11232 0000a024 23bd0008 addi r29,r29,#8 11233 0000a028 64210000 snei r1,r1,#0 11234 0000a02c 1420002c bnez r1,L433_LF7 11235 0000a030 54000000 nop; not filled. 11236 0000a034 23bdfff8 addi r29,r29,#-8 11237 0000a038 afa20000 sw (r29),r2 11238 0000a03c 2015002b addi r21,r0,#43 11239 0000a040 afb50004 sw 4(r29),r21 11240 0000a044 0fffc544 jal _dindex 11241 0000a048 54000000 nop; not filled. 11242 0000a04c 23bd0008 addi r29,r29,#8 11243 0000a050 64210000 snei r1,r1,#0 11244 0000a054 10200020 beqz r1,L432_LF7 11245 0000a058 54000000 nop; not filled. 11246 0000a05c L433_LF7: 11247 0000a05c 23bdfff8 addi r29,r29,#-8 11248 0000a060 3c150001 lhi r21,((LC59_LF7)>>16)&0xffff 11249 0000a064 26b53fc8 addui r21,r21,(LC59_LF7)&0xffff 11250 0000a068 afb50000 sw (r29),r21 11251 0000a06c 0c0031b4 jal _printf 11252 0000a070 54000000 nop; not filled. 11253 0000a074 23bd0008 addi r29,r29,#8 11254 0000a078 L432_LF7: 11255 0000a078 23bdfff8 addi r29,r29,#-8 11256 0000a07c 3c030001 lhi r3,((_processQuantum_LF7)>>16)&0xffff 11257 0000a080 246336b0 addui r3,r3,(_processQuantum_LF7)&0xffff 11258 0000a084 8c750000 lw r21,(r3) 11259 0000a088 afb50000 sw (r29),r21 11260 0000a08c 0c000ee4 jal _TimerSet 11261 0000a090 54000000 nop; not filled. 11262 0000a094 3c020001 lhi r2,((_debugstr)>>16)&0xffff 11263 0000a098 24424038 addui r2,r2,(_debugstr)&0xffff 11264 0000a09c afa20000 sw (r29),r2 11265 0000a0a0 20150069 addi r21,r0,#105 11266 0000a0a4 afb50004 sw 4(r29),r21 11267 0000a0a8 0fffc4e0 jal _dindex 11268 0000a0ac 54000000 nop; not filled. 11269 0000a0b0 23bd0008 addi r29,r29,#8 11270 0000a0b4 64210000 snei r1,r1,#0 11271 0000a0b8 1420002c bnez r1,L435_LF7 11272 0000a0bc 54000000 nop; not filled. 11273 0000a0c0 23bdfff8 addi r29,r29,#-8 11274 0000a0c4 afa20000 sw (r29),r2 11275 0000a0c8 2015002b addi r21,r0,#43 11276 0000a0cc afb50004 sw 4(r29),r21 11277 0000a0d0 0fffc4b8 jal _dindex 11278 0000a0d4 54000000 nop; not filled. 11279 0000a0d8 23bd0008 addi r29,r29,#8 11280 0000a0dc 64210000 snei r1,r1,#0 11281 0000a0e0 10200028 beqz r1,L434_LF7 11282 0000a0e4 54000000 nop; not filled. 11283 0000a0e8 L435_LF7: 11284 0000a0e8 23bdfff8 addi r29,r29,#-8 11285 0000a0ec 3c150001 lhi r21,((LC60_LF7)>>16)&0xffff 11286 0000a0f0 26b53ffc addui r21,r21,(LC60_LF7)&0xffff 11287 0000a0f4 afb50000 sw (r29),r21 11288 0000a0f8 8c610000 lw r1,(r3) 11289 0000a0fc afa10004 sw 4(r29),r1 11290 0000a100 0c003120 jal _printf 11291 0000a104 54000000 nop; not filled. 11292 0000a108 23bd0008 addi r29,r29,#8 11293 0000a10c L434_LF7: 11294 0000a10c 0fff7058 jal _intrreturn 11295 0000a110 54000000 nop; not filled. 11296 0000a114 0c0030f4 jal _exitsim 11297 0000a118 54000000 nop; not filled. 11298 0000a11c 0c0030f8 jal _exit 11299 0000a120 54000000 nop 11300 0000a124 .endproc _main 11301 0000a124 .data 11302 00014032 .align 2 11303 00014034 LC62_LF7: 11304 00014034 00000000 .word 0x00000000 11305 ;; 0.0000000e+00 11306 00014038 .text 11307 0000a124 .align 2 11308 0000a124 .proc _MyFuncRetZero 11309 0000a124 .global _MyFuncRetZero 11310 0000a124 _MyFuncRetZero: 11311 ; Function 'MyFuncRetZero'; 0 bytes of locals, 0 regs to save. 11312 0000a124 afbefffc sw -4(r29),r30; push fp 11313 0000a128 001df020 add r30,r0,r29; fp = sp 11314 0000a12c afbffff8 sw -8(r29),r31; push ret addr 11315 0000a130 2fbd0008 subui r29,r29,#8; alloc local storage 11316 0000a134 3c010001 lhi r1,((LC62_LF7)>>16)&0xffff 11317 0000a138 24214034 addui r1,r1,(LC62_LF7)&0xffff 11318 0000a13c 98200000 lf f0,(r1) 11319 0000a140 8fdffff8 lw r31,-8(r30) 11320 0000a144 001ee820 add r29,r0,r30 11321 0000a148 8fdefffc lw r30,-4(r30) 11322 0000a14c 4be00000 jr r31 11323 0000a150 54000000 nop 11324 0000a154 .endproc _MyFuncRetZero 11325 0000a154 .align 2 11326 0000a154 .proc _GetCurrentPid 11327 0000a154 .global _GetCurrentPid 11328 0000a154 _GetCurrentPid: 11329 ; Function 'GetCurrentPid'; 0 bytes of locals, 1 regs to save. 11330 0000a154 afbefffc sw -4(r29),r30; push fp 11331 0000a158 001df020 add r30,r0,r29; fp = sp 11332 0000a15c afbffff8 sw -8(r29),r31; push ret addr 11333 0000a160 2fbd0010 subui r29,r29,#16; alloc local storage 11334 0000a164 afa20000 sw 0(r29),r2 11335 0000a168 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 11336 0000a16c 24214100 addui r1,r1,(_currentPCB)&0xffff 11337 0000a170 8c210000 lw r1,(r1) 11338 0000a174 3c1f0001 lhi r31,((_pcbs_LF7)>>16)&0xffff 11339 0000a178 27ff4134 addui r31,r31,(_pcbs_LF7)&0xffff 11340 0000a17c 003f1022 sub r2,r1,r31 11341 0000a180 3c01a4fa lhi r1,#-23302 11342 0000a184 24214fa5 addui r1,r1,#20389 11343 0000a188 00400035 movi2fp f0,r2 11344 0000a18c 00200835 movi2fp f1,r1 11345 0000a190 0401000e mult f0,f0,f1 11346 0000a194 00000834 movfp2i r1,f0 11347 0000a198 5c210002 srai r1,r1,#0x2 11348 0000a19c 8fa20000 lw r2,0(r29) 11349 0000a1a0 8fdffff8 lw r31,-8(r30) 11350 0000a1a4 001ee820 add r29,r0,r30 11351 0000a1a8 8fdefffc lw r30,-4(r30) 11352 0000a1ac 4be00000 jr r31 11353 0000a1b0 54000000 nop 11354 0000a1b4 .endproc _GetCurrentPid 11355 0000a1b4 .align 2 11356 0000a1b4 .proc _findpid 11357 0000a1b4 .global _findpid 11358 0000a1b4 _findpid: 11359 ; Function 'findpid'; 0 bytes of locals, 1 regs to save. 11360 0000a1b4 afbefffc sw -4(r29),r30; push fp 11361 0000a1b8 001df020 add r30,r0,r29; fp = sp 11362 0000a1bc afbffff8 sw -8(r29),r31; push ret addr 11363 0000a1c0 2fbd0010 subui r29,r29,#16; alloc local storage 11364 0000a1c4 afa20000 sw 0(r29),r2 11365 0000a1c8 8fc10000 lw r1,(r30) 11366 0000a1cc 3c1f0001 lhi r31,((_pcbs_LF7)>>16)&0xffff 11367 0000a1d0 27ff4134 addui r31,r31,(_pcbs_LF7)&0xffff 11368 0000a1d4 003f1022 sub r2,r1,r31 11369 0000a1d8 3c01a4fa lhi r1,#-23302 11370 0000a1dc 24214fa5 addui r1,r1,#20389 11371 0000a1e0 00400035 movi2fp f0,r2 11372 0000a1e4 00200835 movi2fp f1,r1 11373 0000a1e8 0401000e mult f0,f0,f1 11374 0000a1ec 00000834 movfp2i r1,f0 11375 0000a1f0 5c210002 srai r1,r1,#0x2 11376 0000a1f4 8fa20000 lw r2,0(r29) 11377 0000a1f8 8fdffff8 lw r31,-8(r30) 11378 0000a1fc 001ee820 add r29,r0,r30 11379 0000a200 8fdefffc lw r30,-4(r30) 11380 0000a204 4be00000 jr r31 11381 0000a208 54000000 nop 11382 0000a20c .endproc _findpid 11383 0000a20c .align 2 11384 0000a20c .proc _process_create 11385 0000a20c .global _process_create 11386 0000a20c _process_create: 11387 ; Function 'process_create'; 1000 bytes of locals, 5 regs to save. 11388 0000a20c afbefffc sw -4(r29),r30; push fp 11389 0000a210 001df020 add r30,r0,r29; fp = sp 11390 0000a214 afbffff8 sw -8(r29),r31; push ret addr 11391 0000a218 2fbd0408 subui r29,r29,#1032; alloc local storage 11392 0000a21c afa20000 sw 0(r29),r2 11393 0000a220 afa30004 sw 4(r29),r3 11394 0000a224 afa40008 sw 8(r29),r4 11395 0000a228 afa5000c sw 12(r29),r5 11396 0000a22c afa60010 sw 16(r29),r6 11397 0000a230 23c20008 addi r2,r30,#8 11398 0000a234 20040000 addi r4,r0,#0 11399 0000a238 8c410000 lw r1,(r2) 11400 0000a23c 64210000 snei r1,r1,#0 11401 0000a240 1020005c beqz r1,L445_LF7 11402 0000a244 54000000 nop; not filled. 11403 0000a248 23c5fc10 addi r5,r30,#-1008 11404 0000a24c 0002f820 add r31,r0,r2 11405 0000a250 L447_LF7: 11406 0000a250 20020000 addi r2,r0,#0 11407 0000a254 00851820 add r3,r4,r5 11408 0000a258 L448_LF7: 11409 0000a258 8fe10000 lw r1,(r31) 11410 0000a25c 00220820 add r1,r1,r2 11411 0000a260 80210000 lb r1,(r1) 11412 0000a264 a0610000 sb (r3),r1 11413 0000a268 20420001 addi r2,r2,#1 11414 0000a26c 20630001 addi r3,r3,#1 11415 0000a270 20840001 addi r4,r4,#1 11416 0000a274 8fe10000 lw r1,(r31) 11417 0000a278 00410820 add r1,r2,r1 11418 0000a27c 9021ffff lbu r1,-1(r1) 11419 0000a280 64210000 snei r1,r1,#0 11420 0000a284 1420ffd0 bnez r1,L448_LF7 11421 0000a288 54000000 nop; not filled. 11422 0000a28c 23ff0004 addi r31,r31,#4 11423 0000a290 8fe10000 lw r1,(r31) 11424 0000a294 64210000 snei r1,r1,#0 11425 0000a298 1420ffb4 bnez r1,L447_LF7 11426 0000a29c 54000000 nop; not filled. 11427 0000a2a0 L445_LF7: 11428 0000a2a0 23c3fc10 addi r3,r30,#-1008 11429 0000a2a4 00641020 add r2,r3,r4 11430 0000a2a8 23c1fc11 addi r1,r30,#-1007 11431 0000a2ac 00240820 add r1,r1,r4 11432 0000a2b0 20060000 addi r6,r0,(#0x0)&0xff 11433 0000a2b4 a0260000 sb (r1),r6 11434 0000a2b8 a0460000 sb (r2),r6 11435 0000a2bc 23bdffe8 addi r29,r29,#-24 11436 0000a2c0 20060000 addi r6,r0,#0 11437 0000a2c4 afa60000 sw (r29),r6 11438 0000a2c8 afa30004 sw 4(r29),r3 11439 0000a2cc 8fc60000 lw r6,(r30) 11440 0000a2d0 afa60008 sw 8(r29),r6 11441 0000a2d4 8fc60004 lw r6,4(r30) 11442 0000a2d8 afa6000c sw 12(r29),r6 11443 0000a2dc 8fc60008 lw r6,8(r30) 11444 0000a2e0 afa60010 sw 16(r29),r6 11445 0000a2e4 20060001 addi r6,r0,#1 11446 0000a2e8 afa60014 sw 20(r29),r6 11447 0000a2ec 0fffdaac jal _ProcessFork 11448 0000a2f0 54000000 nop; not filled. 11449 0000a2f4 23bd0018 addi r29,r29,#24 11450 0000a2f8 8fa20000 lw r2,0(r29) 11451 0000a2fc 8fa30004 lw r3,4(r29) 11452 0000a300 8fa40008 lw r4,8(r29) 11453 0000a304 8fa5000c lw r5,12(r29) 11454 0000a308 8fa60010 lw r6,16(r29) 11455 0000a30c 8fdffff8 lw r31,-8(r30) 11456 0000a310 001ee820 add r29,r0,r30 11457 0000a314 8fdefffc lw r30,-4(r30) 11458 0000a318 4be00000 jr r31 11459 0000a31c 54000000 nop 11460 0000a320 .endproc _process_create 11461 0000a320 .data 11462 00014038 .global _debugstr 11463 00014038 _debugstr: 11464 00014038 .space 200 11465 00014100 .align 2 11466 00014100 .global _currentPCB 11467 00014100 _currentPCB: 11468 00014100 .space 4 11469 00014104 .align 2 11470 00014104 _freepcbs_LF7: 11471 00014104 .space 12 11472 00014110 .align 2 11473 00014110 _runQueue_LF7: 11474 00014110 .space 12 11475 0001411c .align 2 11476 0001411c _waitQueue_LF7: 11477 0001411c .space 12 11478 00014128 .align 2 11479 00014128 _zombieQueue_LF7: 11480 00014128 .space 12 11481 00014134 .align 2 11482 00014134 _pcbs_LF7: 11483 00014134 .space 5760 11484 000157b4 .text 11485 0000a320 .align 2 11486 0000a320 .proc _ProcessExit_LF7 11487 0000a320 _ProcessExit_LF7: 11488 ; Function 'ProcessExit'; 0 bytes of locals, 0 regs to save. 11489 0000a320 afbefffc sw -4(r29),r30; push fp 11490 0000a324 001df020 add r30,r0,r29; fp = sp 11491 0000a328 afbffff8 sw -8(r29),r31; push ret addr 11492 0000a32c 2fbd0008 subui r29,r29,#8; alloc local storage 11493 0000a330 0c002ee4 jal _exit 11494 0000a334 54000000 nop; not filled. 11495 0000a338 8fdffff8 lw r31,-8(r30) 11496 0000a33c 001ee820 add r29,r0,r30 11497 0000a340 8fdefffc lw r30,-4(r30) 11498 0000a344 4be00000 jr r31 11499 0000a348 54000000 nop 11500 0000a34c .endproc _ProcessExit_LF7 11501 ; Compiled by GCC 11503 0000a34c .align 2 11504 0000a34c .proc _isspace 11505 0000a34c .global _isspace 11506 0000a34c _isspace: 11507 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 11508 0000a34c afbefffc sw -4(r29),r30; push fp 11509 0000a350 001df020 add r30,r0,r29; fp = sp 11510 0000a354 afbffff8 sw -8(r29),r31; push ret addr 11511 0000a358 2fbd0010 subui r29,r29,#16; alloc local storage 11512 0000a35c afa20000 sw 0(r29),r2 11513 0000a360 83c20003 lb r2,3(r30) 11514 0000a364 201f0000 addi r31,r0,#0 11515 0000a368 304100ff andi r1,r2,#0x00ff 11516 0000a36c 60210020 seqi r1,r1,#32 11517 0000a370 14200018 bnez r1,L6_LF8 11518 0000a374 54000000 nop; not filled. 11519 0000a378 2041fff7 addi r1,r2,#-9 11520 0000a37c 302100ff andi r1,r1,#0x00ff 11521 0000a380 70210001 sleui r1,r1,#1 11522 0000a384 10200008 beqz r1,L5_LF8 11523 0000a388 54000000 nop; not filled. 11524 0000a38c L6_LF8: 11525 0000a38c 201f0001 addi r31,r0,#1 11526 0000a390 L5_LF8: 11527 0000a390 001f0820 add r1,r0,r31 11528 0000a394 8fa20000 lw r2,0(r29) 11529 0000a398 8fdffff8 lw r31,-8(r30) 11530 0000a39c 001ee820 add r29,r0,r30 11531 0000a3a0 8fdefffc lw r30,-4(r30) 11532 0000a3a4 4be00000 jr r31 11533 0000a3a8 54000000 nop 11534 0000a3ac .endproc _isspace 11535 0000a3ac .align 2 11536 0000a3ac .proc _isxdigit 11537 0000a3ac .global _isxdigit 11538 0000a3ac _isxdigit: 11539 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 11540 0000a3ac afbefffc sw -4(r29),r30; push fp 11541 0000a3b0 001df020 add r30,r0,r29; fp = sp 11542 0000a3b4 afbffff8 sw -8(r29),r31; push ret addr 11543 0000a3b8 2fbd0010 subui r29,r29,#16; alloc local storage 11544 0000a3bc afa20000 sw 0(r29),r2 11545 0000a3c0 83df0003 lb r31,3(r30) 11546 0000a3c4 20020000 addi r2,r0,#0 11547 0000a3c8 23e1ffd0 addi r1,r31,#-48 11548 0000a3cc 302100ff andi r1,r1,#0x00ff 11549 0000a3d0 70210009 sleui r1,r1,#9 11550 0000a3d4 14200028 bnez r1,L12_LF8 11551 0000a3d8 54000000 nop; not filled. 11552 0000a3dc 23e1ff9f addi r1,r31,#-97 11553 0000a3e0 302100ff andi r1,r1,#0x00ff 11554 0000a3e4 70210005 sleui r1,r1,#5 11555 0000a3e8 14200014 bnez r1,L12_LF8 11556 0000a3ec 54000000 nop; not filled. 11557 0000a3f0 33e100ff andi r1,r31,#0x00ff 11558 0000a3f4 64210041 snei r1,r1,#65 11559 0000a3f8 14200008 bnez r1,L11_LF8 11560 0000a3fc 54000000 nop; not filled. 11561 0000a400 L12_LF8: 11562 0000a400 20020001 addi r2,r0,#1 11563 0000a404 L11_LF8: 11564 0000a404 00020820 add r1,r0,r2 11565 0000a408 8fa20000 lw r2,0(r29) 11566 0000a40c 8fdffff8 lw r31,-8(r30) 11567 0000a410 001ee820 add r29,r0,r30 11568 0000a414 8fdefffc lw r30,-4(r30) 11569 0000a418 4be00000 jr r31 11570 0000a41c 54000000 nop 11571 0000a420 .endproc _isxdigit 11572 0000a420 .align 2 11573 0000a420 .proc _DisableIntrs 11574 0000a420 .global _DisableIntrs 11575 0000a420 _DisableIntrs: 11576 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 11577 0000a420 afbefffc sw -4(r29),r30; push fp 11578 0000a424 001df020 add r30,r0,r29; fp = sp 11579 0000a428 afbffff8 sw -8(r29),r31; push ret addr 11580 0000a42c 2fbd0010 subui r29,r29,#16; alloc local storage 11581 0000a430 afa20000 sw 0(r29),r2 11582 0000a434 23bdfff8 addi r29,r29,#-8 11583 0000a438 2002000f addi r2,r0,#15 11584 0000a43c afa20000 sw (r29),r2 11585 0000a440 0fff6e44 jal _SetIntrs 11586 0000a444 54000000 nop; not filled. 11587 0000a448 23bd0008 addi r29,r29,#8 11588 0000a44c 8fa20000 lw r2,0(r29) 11589 0000a450 8fdffff8 lw r31,-8(r30) 11590 0000a454 001ee820 add r29,r0,r30 11591 0000a458 8fdefffc lw r30,-4(r30) 11592 0000a45c 4be00000 jr r31 11593 0000a460 54000000 nop 11594 0000a464 .endproc _DisableIntrs 11595 0000a464 .align 2 11596 0000a464 .proc _EnableIntrs 11597 0000a464 .global _EnableIntrs 11598 0000a464 _EnableIntrs: 11599 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 11600 0000a464 afbefffc sw -4(r29),r30; push fp 11601 0000a468 001df020 add r30,r0,r29; fp = sp 11602 0000a46c afbffff8 sw -8(r29),r31; push ret addr 11603 0000a470 2fbd0010 subui r29,r29,#16; alloc local storage 11604 0000a474 afa20000 sw 0(r29),r2 11605 0000a478 23bdfff8 addi r29,r29,#-8 11606 0000a47c 20020000 addi r2,r0,#0 11607 0000a480 afa20000 sw (r29),r2 11608 0000a484 0fff6e00 jal _SetIntrs 11609 0000a488 54000000 nop; not filled. 11610 0000a48c 23bd0008 addi r29,r29,#8 11611 0000a490 8fa20000 lw r2,0(r29) 11612 0000a494 8fdffff8 lw r31,-8(r30) 11613 0000a498 001ee820 add r29,r0,r30 11614 0000a49c 8fdefffc lw r30,-4(r30) 11615 0000a4a0 4be00000 jr r31 11616 0000a4a4 54000000 nop 11617 0000a4a8 .endproc _EnableIntrs 11618 0000a4a8 .align 2 11619 0000a4a8 .proc _RestoreIntrs 11620 0000a4a8 .global _RestoreIntrs 11621 0000a4a8 _RestoreIntrs: 11622 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 11623 0000a4a8 afbefffc sw -4(r29),r30; push fp 11624 0000a4ac 001df020 add r30,r0,r29; fp = sp 11625 0000a4b0 afbffff8 sw -8(r29),r31; push ret addr 11626 0000a4b4 2fbd0010 subui r29,r29,#16; alloc local storage 11627 0000a4b8 afa20000 sw 0(r29),r2 11628 0000a4bc 23bdfff8 addi r29,r29,#-8 11629 0000a4c0 8fc20000 lw r2,(r30) 11630 0000a4c4 afa20000 sw (r29),r2 11631 0000a4c8 0fff6dbc jal _SetIntrs 11632 0000a4cc 54000000 nop; not filled. 11633 0000a4d0 23bd0008 addi r29,r29,#8 11634 0000a4d4 8fa20000 lw r2,0(r29) 11635 0000a4d8 8fdffff8 lw r31,-8(r30) 11636 0000a4dc 001ee820 add r29,r0,r30 11637 0000a4e0 8fdefffc lw r30,-4(r30) 11638 0000a4e4 4be00000 jr r31 11639 0000a4e8 54000000 nop 11640 0000a4ec .endproc _RestoreIntrs 11641 0000a4ec .align 2 11642 0000a4ec .proc _QueueLinkInit 11643 0000a4ec .global _QueueLinkInit 11644 0000a4ec _QueueLinkInit: 11645 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 11646 0000a4ec afbefffc sw -4(r29),r30; push fp 11647 0000a4f0 001df020 add r30,r0,r29; fp = sp 11648 0000a4f4 afbffff8 sw -8(r29),r31; push ret addr 11649 0000a4f8 2fbd0010 subui r29,r29,#16; alloc local storage 11650 0000a4fc afa20000 sw 0(r29),r2 11651 0000a500 8fc10000 lw r1,(r30) 11652 0000a504 8fc20004 lw r2,4(r30) 11653 0000a508 201f0000 addi r31,r0,#0 11654 0000a50c ac3f0000 sw (r1),r31 11655 0000a510 ac22000c sw 12(r1),r2 11656 0000a514 8fa20000 lw r2,0(r29) 11657 0000a518 8fdffff8 lw r31,-8(r30) 11658 0000a51c 001ee820 add r29,r0,r30 11659 0000a520 8fdefffc lw r30,-4(r30) 11660 0000a524 4be00000 jr r31 11661 0000a528 54000000 nop 11662 0000a52c .endproc _QueueLinkInit 11663 0000a52c .align 2 11664 0000a52c .proc _QueueNext 11665 0000a52c .global _QueueNext 11666 0000a52c _QueueNext: 11667 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 11668 0000a52c afbefffc sw -4(r29),r30; push fp 11669 0000a530 001df020 add r30,r0,r29; fp = sp 11670 0000a534 afbffff8 sw -8(r29),r31; push ret addr 11671 0000a538 2fbd0008 subui r29,r29,#8; alloc local storage 11672 0000a53c 8fc10000 lw r1,(r30) 11673 0000a540 8c210000 lw r1,(r1) 11674 0000a544 8fdffff8 lw r31,-8(r30) 11675 0000a548 001ee820 add r29,r0,r30 11676 0000a54c 8fdefffc lw r30,-4(r30) 11677 0000a550 4be00000 jr r31 11678 0000a554 54000000 nop 11679 0000a558 .endproc _QueueNext 11680 0000a558 .align 2 11681 0000a558 .proc _QueuePrev 11682 0000a558 .global _QueuePrev 11683 0000a558 _QueuePrev: 11684 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 11685 0000a558 afbefffc sw -4(r29),r30; push fp 11686 0000a55c 001df020 add r30,r0,r29; fp = sp 11687 0000a560 afbffff8 sw -8(r29),r31; push ret addr 11688 0000a564 2fbd0008 subui r29,r29,#8; alloc local storage 11689 0000a568 8fc10000 lw r1,(r30) 11690 0000a56c 8c210004 lw r1,4(r1) 11691 0000a570 8fdffff8 lw r31,-8(r30) 11692 0000a574 001ee820 add r29,r0,r30 11693 0000a578 8fdefffc lw r30,-4(r30) 11694 0000a57c 4be00000 jr r31 11695 0000a580 54000000 nop 11696 0000a584 .endproc _QueuePrev 11697 0000a584 .align 2 11698 0000a584 .proc _QueueFirst 11699 0000a584 .global _QueueFirst 11700 0000a584 _QueueFirst: 11701 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 11702 0000a584 afbefffc sw -4(r29),r30; push fp 11703 0000a588 001df020 add r30,r0,r29; fp = sp 11704 0000a58c afbffff8 sw -8(r29),r31; push ret addr 11705 0000a590 2fbd0008 subui r29,r29,#8; alloc local storage 11706 0000a594 8fc10000 lw r1,(r30) 11707 0000a598 8c210000 lw r1,(r1) 11708 0000a59c 8fdffff8 lw r31,-8(r30) 11709 0000a5a0 001ee820 add r29,r0,r30 11710 0000a5a4 8fdefffc lw r30,-4(r30) 11711 0000a5a8 4be00000 jr r31 11712 0000a5ac 54000000 nop 11713 0000a5b0 .endproc _QueueFirst 11714 0000a5b0 .align 2 11715 0000a5b0 .proc _QueueLast 11716 0000a5b0 .global _QueueLast 11717 0000a5b0 _QueueLast: 11718 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 11719 0000a5b0 afbefffc sw -4(r29),r30; push fp 11720 0000a5b4 001df020 add r30,r0,r29; fp = sp 11721 0000a5b8 afbffff8 sw -8(r29),r31; push ret addr 11722 0000a5bc 2fbd0008 subui r29,r29,#8; alloc local storage 11723 0000a5c0 8fc10000 lw r1,(r30) 11724 0000a5c4 8c210004 lw r1,4(r1) 11725 0000a5c8 8fdffff8 lw r31,-8(r30) 11726 0000a5cc 001ee820 add r29,r0,r30 11727 0000a5d0 8fdefffc lw r30,-4(r30) 11728 0000a5d4 4be00000 jr r31 11729 0000a5d8 54000000 nop 11730 0000a5dc .endproc _QueueLast 11731 0000a5dc .align 2 11732 0000a5dc .proc _QueueInsertAfter 11733 0000a5dc .global _QueueInsertAfter 11734 0000a5dc _QueueInsertAfter: 11735 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 11736 0000a5dc afbefffc sw -4(r29),r30; push fp 11737 0000a5e0 001df020 add r30,r0,r29; fp = sp 11738 0000a5e4 afbffff8 sw -8(r29),r31; push ret addr 11739 0000a5e8 2fbd0010 subui r29,r29,#16; alloc local storage 11740 0000a5ec afa20000 sw 0(r29),r2 11741 0000a5f0 afa30004 sw 4(r29),r3 11742 0000a5f4 8fc30000 lw r3,(r30) 11743 0000a5f8 8fc20004 lw r2,4(r30) 11744 0000a5fc 8fc10008 lw r1,8(r30) 11745 0000a600 ac230008 sw 8(r1),r3 11746 0000a604 ac220004 sw 4(r1),r2 11747 0000a608 8c5f0000 lw r31,(r2) 11748 0000a60c ac3f0000 sw (r1),r31 11749 0000a610 ac410000 sw (r2),r1 11750 0000a614 8c220000 lw r2,(r1) 11751 0000a618 ac410004 sw 4(r2),r1 11752 0000a61c 8c610008 lw r1,8(r3) 11753 0000a620 20210001 addi r1,r1,#1 11754 0000a624 ac610008 sw 8(r3),r1 11755 0000a628 8fa20000 lw r2,0(r29) 11756 0000a62c 8fa30004 lw r3,4(r29) 11757 0000a630 8fdffff8 lw r31,-8(r30) 11758 0000a634 001ee820 add r29,r0,r30 11759 0000a638 8fdefffc lw r30,-4(r30) 11760 0000a63c 4be00000 jr r31 11761 0000a640 54000000 nop 11762 0000a644 .endproc _QueueInsertAfter 11763 0000a644 .align 2 11764 0000a644 .proc _QueueInsertFirst 11765 0000a644 .global _QueueInsertFirst 11766 0000a644 _QueueInsertFirst: 11767 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 11768 0000a644 afbefffc sw -4(r29),r30; push fp 11769 0000a648 001df020 add r30,r0,r29; fp = sp 11770 0000a64c afbffff8 sw -8(r29),r31; push ret addr 11771 0000a650 2fbd0010 subui r29,r29,#16; alloc local storage 11772 0000a654 afa20000 sw 0(r29),r2 11773 0000a658 afa30004 sw 4(r29),r3 11774 0000a65c 8fc30000 lw r3,(r30) 11775 0000a660 8fc10004 lw r1,4(r30) 11776 0000a664 ac230008 sw 8(r1),r3 11777 0000a668 ac230004 sw 4(r1),r3 11778 0000a66c 8c7f0000 lw r31,(r3) 11779 0000a670 ac3f0000 sw (r1),r31 11780 0000a674 ac610000 sw (r3),r1 11781 0000a678 8c220000 lw r2,(r1) 11782 0000a67c ac410004 sw 4(r2),r1 11783 0000a680 8c610008 lw r1,8(r3) 11784 0000a684 20210001 addi r1,r1,#1 11785 0000a688 ac610008 sw 8(r3),r1 11786 0000a68c 8fa20000 lw r2,0(r29) 11787 0000a690 8fa30004 lw r3,4(r29) 11788 0000a694 8fdffff8 lw r31,-8(r30) 11789 0000a698 001ee820 add r29,r0,r30 11790 0000a69c 8fdefffc lw r30,-4(r30) 11791 0000a6a0 4be00000 jr r31 11792 0000a6a4 54000000 nop 11793 0000a6a8 .endproc _QueueInsertFirst 11794 0000a6a8 .align 2 11795 0000a6a8 .proc _QueueInsertLast 11796 0000a6a8 .global _QueueInsertLast 11797 0000a6a8 _QueueInsertLast: 11798 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 11799 0000a6a8 afbefffc sw -4(r29),r30; push fp 11800 0000a6ac 001df020 add r30,r0,r29; fp = sp 11801 0000a6b0 afbffff8 sw -8(r29),r31; push ret addr 11802 0000a6b4 2fbd0010 subui r29,r29,#16; alloc local storage 11803 0000a6b8 afa20000 sw 0(r29),r2 11804 0000a6bc afa30004 sw 4(r29),r3 11805 0000a6c0 8fc30000 lw r3,(r30) 11806 0000a6c4 8fc10004 lw r1,4(r30) 11807 0000a6c8 8c620004 lw r2,4(r3) 11808 0000a6cc ac230008 sw 8(r1),r3 11809 0000a6d0 ac220004 sw 4(r1),r2 11810 0000a6d4 8c5f0000 lw r31,(r2) 11811 0000a6d8 ac3f0000 sw (r1),r31 11812 0000a6dc ac410000 sw (r2),r1 11813 0000a6e0 8c220000 lw r2,(r1) 11814 0000a6e4 ac410004 sw 4(r2),r1 11815 0000a6e8 8c610008 lw r1,8(r3) 11816 0000a6ec 20210001 addi r1,r1,#1 11817 0000a6f0 ac610008 sw 8(r3),r1 11818 0000a6f4 8fa20000 lw r2,0(r29) 11819 0000a6f8 8fa30004 lw r3,4(r29) 11820 0000a6fc 8fdffff8 lw r31,-8(r30) 11821 0000a700 001ee820 add r29,r0,r30 11822 0000a704 8fdefffc lw r30,-4(r30) 11823 0000a708 4be00000 jr r31 11824 0000a70c 54000000 nop 11825 0000a710 .endproc _QueueInsertLast 11826 0000a710 .align 2 11827 0000a710 .proc _QueueRemove 11828 0000a710 .global _QueueRemove 11829 0000a710 _QueueRemove: 11830 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 11831 0000a710 afbefffc sw -4(r29),r30; push fp 11832 0000a714 001df020 add r30,r0,r29; fp = sp 11833 0000a718 afbffff8 sw -8(r29),r31; push ret addr 11834 0000a71c 2fbd0010 subui r29,r29,#16; alloc local storage 11835 0000a720 afa20000 sw 0(r29),r2 11836 0000a724 afa30004 sw 4(r29),r3 11837 0000a728 8fdf0000 lw r31,(r30) 11838 0000a72c 8fe10008 lw r1,8(r31) 11839 0000a730 8c210008 lw r1,8(r1) 11840 0000a734 6c210000 sgti r1,r1,#0 11841 0000a738 1020002c beqz r1,L44_LF8 11842 0000a73c 54000000 nop; not filled. 11843 0000a740 8fe10004 lw r1,4(r31) 11844 0000a744 8fe30000 lw r3,(r31) 11845 0000a748 ac230000 sw (r1),r3 11846 0000a74c 8fe10000 lw r1,(r31) 11847 0000a750 8fe30004 lw r3,4(r31) 11848 0000a754 ac230004 sw 4(r1),r3 11849 0000a758 8fe20008 lw r2,8(r31) 11850 0000a75c 8c410008 lw r1,8(r2) 11851 0000a760 2021ffff addi r1,r1,#-1 11852 0000a764 ac410008 sw 8(r2),r1 11853 0000a768 L44_LF8: 11854 0000a768 20030000 addi r3,r0,#0 11855 0000a76c afe30000 sw (r31),r3 11856 0000a770 8fa20000 lw r2,0(r29) 11857 0000a774 8fa30004 lw r3,4(r29) 11858 0000a778 8fdffff8 lw r31,-8(r30) 11859 0000a77c 001ee820 add r29,r0,r30 11860 0000a780 8fdefffc lw r30,-4(r30) 11861 0000a784 4be00000 jr r31 11862 0000a788 54000000 nop 11863 0000a78c .endproc _QueueRemove 11864 0000a78c .align 2 11865 0000a78c .proc _QueueLength 11866 0000a78c .global _QueueLength 11867 0000a78c _QueueLength: 11868 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 11869 0000a78c afbefffc sw -4(r29),r30; push fp 11870 0000a790 001df020 add r30,r0,r29; fp = sp 11871 0000a794 afbffff8 sw -8(r29),r31; push ret addr 11872 0000a798 2fbd0008 subui r29,r29,#8; alloc local storage 11873 0000a79c 8fc10000 lw r1,(r30) 11874 0000a7a0 8c210008 lw r1,8(r1) 11875 0000a7a4 8fdffff8 lw r31,-8(r30) 11876 0000a7a8 001ee820 add r29,r0,r30 11877 0000a7ac 8fdefffc lw r30,-4(r30) 11878 0000a7b0 4be00000 jr r31 11879 0000a7b4 54000000 nop 11880 0000a7b8 .endproc _QueueLength 11881 0000a7b8 .align 2 11882 0000a7b8 .proc _QueueEmpty 11883 0000a7b8 .global _QueueEmpty 11884 0000a7b8 _QueueEmpty: 11885 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 11886 0000a7b8 afbefffc sw -4(r29),r30; push fp 11887 0000a7bc 001df020 add r30,r0,r29; fp = sp 11888 0000a7c0 afbffff8 sw -8(r29),r31; push ret addr 11889 0000a7c4 2fbd0008 subui r29,r29,#8; alloc local storage 11890 0000a7c8 8fc10000 lw r1,(r30) 11891 0000a7cc 8c210008 lw r1,8(r1) 11892 0000a7d0 60210000 seqi r1,r1,#0 11893 0000a7d4 8fdffff8 lw r31,-8(r30) 11894 0000a7d8 001ee820 add r29,r0,r30 11895 0000a7dc 8fdefffc lw r30,-4(r30) 11896 0000a7e0 4be00000 jr r31 11897 0000a7e4 54000000 nop 11898 0000a7e8 .endproc _QueueEmpty 11899 0000a7e8 .data 11900 000157b4 .align 2 11901 000157b4 LC0_LF8: 11902 000157b4 496e6974 .ascii "Initializing queue link %d.\n\000" 11902 000157b8 69616c69 11902 000157bc 7a696e67 11902 000157c0 20717565 11902 000157c4 7565206c 11902 000157c8 696e6b20 11902 000157cc 25642e0a 11902 000157d0 00 11903 000157d1 .text 11904 0000a7e8 .align 2 11905 0000a7e8 .proc _QueueModuleInit 11906 0000a7e8 .global _QueueModuleInit 11907 0000a7e8 _QueueModuleInit: 11908 ; Function 'QueueModuleInit'; 0 bytes of locals, 4 regs to save. 11909 0000a7e8 afbefffc sw -4(r29),r30; push fp 11910 0000a7ec 001df020 add r30,r0,r29; fp = sp 11911 0000a7f0 afbffff8 sw -8(r29),r31; push ret addr 11912 0000a7f4 2fbd0018 subui r29,r29,#24; alloc local storage 11913 0000a7f8 afa20000 sw 0(r29),r2 11914 0000a7fc afa30004 sw 4(r29),r3 11915 0000a800 afa40008 sw 8(r29),r4 11916 0000a804 afa5000c sw 12(r29),r5 11917 0000a808 23bdfff8 addi r29,r29,#-8 11918 0000a80c 3c050001 lhi r5,((_freeLinks)>>16)&0xffff 11919 0000a810 24a55820 addui r5,r5,(_freeLinks)&0xffff 11920 0000a814 afa50000 sw (r29),r5 11921 0000a818 0c0000e0 jal _QueueInit 11922 0000a81c 54000000 nop; not filled. 11923 0000a820 20030000 addi r3,r0,#0 11924 0000a824 23bd0008 addi r29,r29,#8 11925 0000a828 3c040001 lhi r4,((_debugstr)>>16)&0xffff 11926 0000a82c 24844038 addui r4,r4,(_debugstr)&0xffff 11927 0000a830 3c020001 lhi r2,((_linkpool_LF8)>>16)&0xffff 11928 0000a834 2442582c addui r2,r2,(_linkpool_LF8)&0xffff 11929 0000a838 L63_LF8: 11930 0000a838 23bdfff8 addi r29,r29,#-8 11931 0000a83c afa40000 sw (r29),r4 11932 0000a840 20050069 addi r5,r0,#105 11933 0000a844 afa50004 sw 4(r29),r5 11934 0000a848 0fffbd40 jal _dindex 11935 0000a84c 54000000 nop; not filled. 11936 0000a850 23bd0008 addi r29,r29,#8 11937 0000a854 64210000 snei r1,r1,#0 11938 0000a858 1420002c bnez r1,L65_LF8 11939 0000a85c 54000000 nop; not filled. 11940 0000a860 23bdfff8 addi r29,r29,#-8 11941 0000a864 afa40000 sw (r29),r4 11942 0000a868 2005002b addi r5,r0,#43 11943 0000a86c afa50004 sw 4(r29),r5 11944 0000a870 0fffbd18 jal _dindex 11945 0000a874 54000000 nop; not filled. 11946 0000a878 23bd0008 addi r29,r29,#8 11947 0000a87c 64210000 snei r1,r1,#0 11948 0000a880 10200024 beqz r1,L64_LF8 11949 0000a884 54000000 nop; not filled. 11950 0000a888 L65_LF8: 11951 0000a888 23bdfff8 addi r29,r29,#-8 11952 0000a88c 3c050001 lhi r5,((LC0_LF8)>>16)&0xffff 11953 0000a890 24a557b4 addui r5,r5,(LC0_LF8)&0xffff 11954 0000a894 afa50000 sw (r29),r5 11955 0000a898 afa30004 sw 4(r29),r3 11956 0000a89c 0c002984 jal _printf 11957 0000a8a0 54000000 nop; not filled. 11958 0000a8a4 23bd0008 addi r29,r29,#8 11959 0000a8a8 L64_LF8: 11960 0000a8a8 20050000 addi r5,r0,#0 11961 0000a8ac ac450000 sw (r2),r5 11962 0000a8b0 23bdfff8 addi r29,r29,#-8 11963 0000a8b4 afa20000 sw (r29),r2 11964 0000a8b8 0c000078 jal _QueueFreeLink 11965 0000a8bc 54000000 nop; not filled. 11966 0000a8c0 23bd0008 addi r29,r29,#8 11967 0000a8c4 20420010 addi r2,r2,#16 11968 0000a8c8 20630001 addi r3,r3,#1 11969 0000a8cc 7061018f slei r1,r3,#399 11970 0000a8d0 1420ff64 bnez r1,L63_LF8 11971 0000a8d4 54000000 nop; not filled. 11972 0000a8d8 8fa20000 lw r2,0(r29) 11973 0000a8dc 8fa30004 lw r3,4(r29) 11974 0000a8e0 8fa40008 lw r4,8(r29) 11975 0000a8e4 8fa5000c lw r5,12(r29) 11976 0000a8e8 8fdffff8 lw r31,-8(r30) 11977 0000a8ec 001ee820 add r29,r0,r30 11978 0000a8f0 8fdefffc lw r30,-4(r30) 11979 0000a8f4 4be00000 jr r31 11980 0000a8f8 54000000 nop 11981 0000a8fc .endproc _QueueModuleInit 11982 0000a8fc .align 2 11983 0000a8fc .proc _QueueInit 11984 0000a8fc .global _QueueInit 11985 0000a8fc _QueueInit: 11986 ; Function 'QueueInit'; 0 bytes of locals, 0 regs to save. 11987 0000a8fc afbefffc sw -4(r29),r30; push fp 11988 0000a900 001df020 add r30,r0,r29; fp = sp 11989 0000a904 afbffff8 sw -8(r29),r31; push ret addr 11990 0000a908 2fbd0008 subui r29,r29,#8; alloc local storage 11991 0000a90c 8fc10000 lw r1,(r30) 11992 0000a910 ac210000 sw (r1),r1 11993 0000a914 ac210004 sw 4(r1),r1 11994 0000a918 201f0000 addi r31,r0,#0 11995 0000a91c ac3f0008 sw 8(r1),r31 11996 0000a920 8fdffff8 lw r31,-8(r30) 11997 0000a924 001ee820 add r29,r0,r30 11998 0000a928 8fdefffc lw r30,-4(r30) 11999 0000a92c 4be00000 jr r31 12000 0000a930 54000000 nop 12001 0000a934 .endproc _QueueInit 12002 0000a934 .data 12003 000157d1 .align 2 12004 000157d4 LC1_LF8: 12005 000157d4 25733a20 .ascii "%s: %s\n\000" 12005 000157d8 25730a00 12006 000157dc .align 2 12007 000157dc LC2_LF8: 12008 000157dc 51756575 .ascii "QueueFreeLink\000" 12008 000157e0 65467265 12008 000157e4 654c696e 12008 000157e8 6b00 12009 000157ea .align 2 12010 000157ec LC3_LF8: 12011 000157ec 4c696e6b .ascii "Link not empty\000" 12011 000157f0 206e6f74 12011 000157f4 20656d70 12011 000157f8 747900 12012 000157fb .text 12013 0000a934 .align 2 12014 0000a934 .proc _QueueFreeLink 12015 0000a934 .global _QueueFreeLink 12016 0000a934 _QueueFreeLink: 12017 ; Function 'QueueFreeLink'; 0 bytes of locals, 3 regs to save. 12018 0000a934 afbefffc sw -4(r29),r30; push fp 12019 0000a938 001df020 add r30,r0,r29; fp = sp 12020 0000a93c afbffff8 sw -8(r29),r31; push ret addr 12021 0000a940 2fbd0018 subui r29,r29,#24; alloc local storage 12022 0000a944 afa20000 sw 0(r29),r2 12023 0000a948 afa30004 sw 4(r29),r3 12024 0000a94c afa40008 sw 8(r29),r4 12025 0000a950 8fc30000 lw r3,(r30) 12026 0000a954 8c610000 lw r1,(r3) 12027 0000a958 64210000 snei r1,r1,#0 12028 0000a95c 10200038 beqz r1,L77_LF8 12029 0000a960 54000000 nop; not filled. 12030 0000a964 23bdfff0 addi r29,r29,#-16 12031 0000a968 3c040001 lhi r4,((LC1_LF8)>>16)&0xffff 12032 0000a96c 248457d4 addui r4,r4,(LC1_LF8)&0xffff 12033 0000a970 afa40000 sw (r29),r4 12034 0000a974 3c010001 lhi r1,((LC2_LF8)>>16)&0xffff 12035 0000a978 242157dc addui r1,r1,(LC2_LF8)&0xffff 12036 0000a97c afa10004 sw 4(r29),r1 12037 0000a980 3c040001 lhi r4,((LC3_LF8)>>16)&0xffff 12038 0000a984 248457ec addui r4,r4,(LC3_LF8)&0xffff 12039 0000a988 afa40008 sw 8(r29),r4 12040 0000a98c 0c002894 jal _printf 12041 0000a990 54000000 nop; not filled. 12042 0000a994 23bd0010 addi r29,r29,#16 12043 0000a998 L77_LF8: 12044 0000a998 3c020001 lhi r2,((_freeLinks)>>16)&0xffff 12045 0000a99c 24425820 addui r2,r2,(_freeLinks)&0xffff 12046 0000a9a0 8c410004 lw r1,4(r2) 12047 0000a9a4 ac620008 sw 8(r3),r2 12048 0000a9a8 ac610004 sw 4(r3),r1 12049 0000a9ac 8c240000 lw r4,(r1) 12050 0000a9b0 ac640000 sw (r3),r4 12051 0000a9b4 ac230000 sw (r1),r3 12052 0000a9b8 8c610000 lw r1,(r3) 12053 0000a9bc ac230004 sw 4(r1),r3 12054 0000a9c0 8c410008 lw r1,8(r2) 12055 0000a9c4 20210001 addi r1,r1,#1 12056 0000a9c8 ac410008 sw 8(r2),r1 12057 0000a9cc 8fa20000 lw r2,0(r29) 12058 0000a9d0 8fa30004 lw r3,4(r29) 12059 0000a9d4 8fa40008 lw r4,8(r29) 12060 0000a9d8 8fdffff8 lw r31,-8(r30) 12061 0000a9dc 001ee820 add r29,r0,r30 12062 0000a9e0 8fdefffc lw r30,-4(r30) 12063 0000a9e4 4be00000 jr r31 12064 0000a9e8 54000000 nop 12065 0000a9ec .endproc _QueueFreeLink 12066 0000a9ec .data 12067 000157fb .align 2 12068 000157fc LC4_LF8: 12069 000157fc 51756575 .ascii "QueueAllocLink\000" 12069 00015800 65416c6c 12069 00015804 6f634c69 12069 00015808 6e6b00 12070 0001580b .align 2 12071 0001580c LC5_LF8: 12072 0001580c 4c696e6b .ascii "Link not allocated!\000" 12072 00015810 206e6f74 12072 00015814 20616c6c 12072 00015818 6f636174 12072 0001581c 65642100 12073 00015820 .text 12074 0000a9ec .align 2 12075 0000a9ec .proc _QueueAllocLink 12076 0000a9ec .global _QueueAllocLink 12077 0000a9ec _QueueAllocLink: 12078 ; Function 'QueueAllocLink'; 0 bytes of locals, 3 regs to save. 12079 0000a9ec afbefffc sw -4(r29),r30; push fp 12080 0000a9f0 001df020 add r30,r0,r29; fp = sp 12081 0000a9f4 afbffff8 sw -8(r29),r31; push ret addr 12082 0000a9f8 2fbd0018 subui r29,r29,#24; alloc local storage 12083 0000a9fc afa20000 sw 0(r29),r2 12084 0000aa00 afa30004 sw 4(r29),r3 12085 0000aa04 afa40008 sw 8(r29),r4 12086 0000aa08 3c020001 lhi r2,((_freeLinks)>>16)&0xffff 12087 0000aa0c 24425820 addui r2,r2,(_freeLinks)&0xffff 12088 0000aa10 8c410008 lw r1,8(r2) 12089 0000aa14 60210000 seqi r1,r1,#0 12090 0000aa18 14200054 bnez r1,L92_LF8 12091 0000aa1c 54000000 nop; not filled. 12092 0000aa20 8c430000 lw r3,(r2) 12093 0000aa24 8c610008 lw r1,8(r3) 12094 0000aa28 8c210008 lw r1,8(r1) 12095 0000aa2c 6c210000 sgti r1,r1,#0 12096 0000aa30 1020002c beqz r1,L97_LF8 12097 0000aa34 54000000 nop; not filled. 12098 0000aa38 8c610004 lw r1,4(r3) 12099 0000aa3c 8c640000 lw r4,(r3) 12100 0000aa40 ac240000 sw (r1),r4 12101 0000aa44 8c610000 lw r1,(r3) 12102 0000aa48 8c640004 lw r4,4(r3) 12103 0000aa4c ac240004 sw 4(r1),r4 12104 0000aa50 8c620008 lw r2,8(r3) 12105 0000aa54 8c410008 lw r1,8(r2) 12106 0000aa58 2021ffff addi r1,r1,#-1 12107 0000aa5c ac410008 sw 8(r2),r1 12108 0000aa60 L97_LF8: 12109 0000aa60 20040000 addi r4,r0,#0 12110 0000aa64 ac640000 sw (r3),r4 12111 0000aa68 08000008 j L98_LF8 12112 0000aa6c 54000000 nop; not filled. 12113 0000aa70 L92_LF8: 12114 0000aa70 20030000 addi r3,r0,#0 12115 0000aa74 L98_LF8: 12116 0000aa74 64610000 snei r1,r3,#0 12117 0000aa78 14200038 bnez r1,L100_LF8 12118 0000aa7c 54000000 nop; not filled. 12119 0000aa80 23bdfff0 addi r29,r29,#-16 12120 0000aa84 3c040001 lhi r4,((LC1_LF8)>>16)&0xffff 12121 0000aa88 248457d4 addui r4,r4,(LC1_LF8)&0xffff 12122 0000aa8c afa40000 sw (r29),r4 12123 0000aa90 3c010001 lhi r1,((LC4_LF8)>>16)&0xffff 12124 0000aa94 242157fc addui r1,r1,(LC4_LF8)&0xffff 12125 0000aa98 afa10004 sw 4(r29),r1 12126 0000aa9c 3c040001 lhi r4,((LC5_LF8)>>16)&0xffff 12127 0000aaa0 2484580c addui r4,r4,(LC5_LF8)&0xffff 12128 0000aaa4 afa40008 sw 8(r29),r4 12129 0000aaa8 0c002778 jal _printf 12130 0000aaac 54000000 nop; not filled. 12131 0000aab0 23bd0010 addi r29,r29,#16 12132 0000aab4 L100_LF8: 12133 0000aab4 00030820 add r1,r0,r3 12134 0000aab8 8fa20000 lw r2,0(r29) 12135 0000aabc 8fa30004 lw r3,4(r29) 12136 0000aac0 8fa40008 lw r4,8(r29) 12137 0000aac4 8fdffff8 lw r31,-8(r30) 12138 0000aac8 001ee820 add r29,r0,r30 12139 0000aacc 8fdefffc lw r30,-4(r30) 12140 0000aad0 4be00000 jr r31 12141 0000aad4 54000000 nop 12142 0000aad8 .endproc _QueueAllocLink 12143 0000aad8 .data 12144 00015820 .align 2 12145 00015820 .global _freeLinks 12146 00015820 _freeLinks: 12147 00015820 .space 12 12148 0001582c .align 2 12149 0001582c _linkpool_LF8: 12150 0001582c .space 6400 12151 ; Compiled by GCC 12153 0001712c .align 2 12154 0001712c _rcsid_LF9: 12155 0001712c 3a207472 .ascii "$Id: traps.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" 12155 00017130 6170732e 12155 00017134 632c7620 12155 00017138 312e3120 12155 0001713c 32303030 12155 00017140 2f30392f 12155 00017144 32302030 12155 00017148 313a3530 12155 0001714c 3a313920 12155 00017150 656c6d20 12155 00017154 45787020 12155 00017158 656c6d20 12155 0001715c 303030 12156 0001715f .text 12157 0000aad8 .align 2 12158 0000aad8 .proc _isspace 12159 0000aad8 .global _isspace 12160 0000aad8 _isspace: 12161 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 12162 0000aad8 afbefffc sw -4(r29),r30; push fp 12163 0000aadc 001df020 add r30,r0,r29; fp = sp 12164 0000aae0 afbffff8 sw -8(r29),r31; push ret addr 12165 0000aae4 2fbd0010 subui r29,r29,#16; alloc local storage 12166 0000aae8 afa20000 sw 0(r29),r2 12167 0000aaec 83c20003 lb r2,3(r30) 12168 0000aaf0 201f0000 addi r31,r0,#0 12169 0000aaf4 304100ff andi r1,r2,#0x00ff 12170 0000aaf8 60210020 seqi r1,r1,#32 12171 0000aafc 14200018 bnez r1,L6_LF9 12172 0000ab00 54000000 nop; not filled. 12173 0000ab04 2041fff7 addi r1,r2,#-9 12174 0000ab08 302100ff andi r1,r1,#0x00ff 12175 0000ab0c 70210001 sleui r1,r1,#1 12176 0000ab10 10200008 beqz r1,L5_LF9 12177 0000ab14 54000000 nop; not filled. 12178 0000ab18 L6_LF9: 12179 0000ab18 201f0001 addi r31,r0,#1 12180 0000ab1c L5_LF9: 12181 0000ab1c 001f0820 add r1,r0,r31 12182 0000ab20 8fa20000 lw r2,0(r29) 12183 0000ab24 8fdffff8 lw r31,-8(r30) 12184 0000ab28 001ee820 add r29,r0,r30 12185 0000ab2c 8fdefffc lw r30,-4(r30) 12186 0000ab30 4be00000 jr r31 12187 0000ab34 54000000 nop 12188 0000ab38 .endproc _isspace 12189 0000ab38 .align 2 12190 0000ab38 .proc _isxdigit 12191 0000ab38 .global _isxdigit 12192 0000ab38 _isxdigit: 12193 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 12194 0000ab38 afbefffc sw -4(r29),r30; push fp 12195 0000ab3c 001df020 add r30,r0,r29; fp = sp 12196 0000ab40 afbffff8 sw -8(r29),r31; push ret addr 12197 0000ab44 2fbd0010 subui r29,r29,#16; alloc local storage 12198 0000ab48 afa20000 sw 0(r29),r2 12199 0000ab4c 83df0003 lb r31,3(r30) 12200 0000ab50 20020000 addi r2,r0,#0 12201 0000ab54 23e1ffd0 addi r1,r31,#-48 12202 0000ab58 302100ff andi r1,r1,#0x00ff 12203 0000ab5c 70210009 sleui r1,r1,#9 12204 0000ab60 14200028 bnez r1,L12_LF9 12205 0000ab64 54000000 nop; not filled. 12206 0000ab68 23e1ff9f addi r1,r31,#-97 12207 0000ab6c 302100ff andi r1,r1,#0x00ff 12208 0000ab70 70210005 sleui r1,r1,#5 12209 0000ab74 14200014 bnez r1,L12_LF9 12210 0000ab78 54000000 nop; not filled. 12211 0000ab7c 33e100ff andi r1,r31,#0x00ff 12212 0000ab80 64210041 snei r1,r1,#65 12213 0000ab84 14200008 bnez r1,L11_LF9 12214 0000ab88 54000000 nop; not filled. 12215 0000ab8c L12_LF9: 12216 0000ab8c 20020001 addi r2,r0,#1 12217 0000ab90 L11_LF9: 12218 0000ab90 00020820 add r1,r0,r2 12219 0000ab94 8fa20000 lw r2,0(r29) 12220 0000ab98 8fdffff8 lw r31,-8(r30) 12221 0000ab9c 001ee820 add r29,r0,r30 12222 0000aba0 8fdefffc lw r30,-4(r30) 12223 0000aba4 4be00000 jr r31 12224 0000aba8 54000000 nop 12225 0000abac .endproc _isxdigit 12226 0000abac .align 2 12227 0000abac .proc _DisableIntrs 12228 0000abac .global _DisableIntrs 12229 0000abac _DisableIntrs: 12230 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 12231 0000abac afbefffc sw -4(r29),r30; push fp 12232 0000abb0 001df020 add r30,r0,r29; fp = sp 12233 0000abb4 afbffff8 sw -8(r29),r31; push ret addr 12234 0000abb8 2fbd0010 subui r29,r29,#16; alloc local storage 12235 0000abbc afa20000 sw 0(r29),r2 12236 0000abc0 23bdfff8 addi r29,r29,#-8 12237 0000abc4 2002000f addi r2,r0,#15 12238 0000abc8 afa20000 sw (r29),r2 12239 0000abcc 0fff66b8 jal _SetIntrs 12240 0000abd0 54000000 nop; not filled. 12241 0000abd4 23bd0008 addi r29,r29,#8 12242 0000abd8 8fa20000 lw r2,0(r29) 12243 0000abdc 8fdffff8 lw r31,-8(r30) 12244 0000abe0 001ee820 add r29,r0,r30 12245 0000abe4 8fdefffc lw r30,-4(r30) 12246 0000abe8 4be00000 jr r31 12247 0000abec 54000000 nop 12248 0000abf0 .endproc _DisableIntrs 12249 0000abf0 .align 2 12250 0000abf0 .proc _EnableIntrs 12251 0000abf0 .global _EnableIntrs 12252 0000abf0 _EnableIntrs: 12253 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 12254 0000abf0 afbefffc sw -4(r29),r30; push fp 12255 0000abf4 001df020 add r30,r0,r29; fp = sp 12256 0000abf8 afbffff8 sw -8(r29),r31; push ret addr 12257 0000abfc 2fbd0010 subui r29,r29,#16; alloc local storage 12258 0000ac00 afa20000 sw 0(r29),r2 12259 0000ac04 23bdfff8 addi r29,r29,#-8 12260 0000ac08 20020000 addi r2,r0,#0 12261 0000ac0c afa20000 sw (r29),r2 12262 0000ac10 0fff6674 jal _SetIntrs 12263 0000ac14 54000000 nop; not filled. 12264 0000ac18 23bd0008 addi r29,r29,#8 12265 0000ac1c 8fa20000 lw r2,0(r29) 12266 0000ac20 8fdffff8 lw r31,-8(r30) 12267 0000ac24 001ee820 add r29,r0,r30 12268 0000ac28 8fdefffc lw r30,-4(r30) 12269 0000ac2c 4be00000 jr r31 12270 0000ac30 54000000 nop 12271 0000ac34 .endproc _EnableIntrs 12272 0000ac34 .align 2 12273 0000ac34 .proc _RestoreIntrs 12274 0000ac34 .global _RestoreIntrs 12275 0000ac34 _RestoreIntrs: 12276 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 12277 0000ac34 afbefffc sw -4(r29),r30; push fp 12278 0000ac38 001df020 add r30,r0,r29; fp = sp 12279 0000ac3c afbffff8 sw -8(r29),r31; push ret addr 12280 0000ac40 2fbd0010 subui r29,r29,#16; alloc local storage 12281 0000ac44 afa20000 sw 0(r29),r2 12282 0000ac48 23bdfff8 addi r29,r29,#-8 12283 0000ac4c 8fc20000 lw r2,(r30) 12284 0000ac50 afa20000 sw (r29),r2 12285 0000ac54 0fff6630 jal _SetIntrs 12286 0000ac58 54000000 nop; not filled. 12287 0000ac5c 23bd0008 addi r29,r29,#8 12288 0000ac60 8fa20000 lw r2,0(r29) 12289 0000ac64 8fdffff8 lw r31,-8(r30) 12290 0000ac68 001ee820 add r29,r0,r30 12291 0000ac6c 8fdefffc lw r30,-4(r30) 12292 0000ac70 4be00000 jr r31 12293 0000ac74 54000000 nop 12294 0000ac78 .endproc _RestoreIntrs 12295 0000ac78 .align 2 12296 0000ac78 .proc _QueueLinkInit 12297 0000ac78 .global _QueueLinkInit 12298 0000ac78 _QueueLinkInit: 12299 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 12300 0000ac78 afbefffc sw -4(r29),r30; push fp 12301 0000ac7c 001df020 add r30,r0,r29; fp = sp 12302 0000ac80 afbffff8 sw -8(r29),r31; push ret addr 12303 0000ac84 2fbd0010 subui r29,r29,#16; alloc local storage 12304 0000ac88 afa20000 sw 0(r29),r2 12305 0000ac8c 8fc10000 lw r1,(r30) 12306 0000ac90 8fc20004 lw r2,4(r30) 12307 0000ac94 201f0000 addi r31,r0,#0 12308 0000ac98 ac3f0000 sw (r1),r31 12309 0000ac9c ac22000c sw 12(r1),r2 12310 0000aca0 8fa20000 lw r2,0(r29) 12311 0000aca4 8fdffff8 lw r31,-8(r30) 12312 0000aca8 001ee820 add r29,r0,r30 12313 0000acac 8fdefffc lw r30,-4(r30) 12314 0000acb0 4be00000 jr r31 12315 0000acb4 54000000 nop 12316 0000acb8 .endproc _QueueLinkInit 12317 0000acb8 .align 2 12318 0000acb8 .proc _QueueNext 12319 0000acb8 .global _QueueNext 12320 0000acb8 _QueueNext: 12321 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 12322 0000acb8 afbefffc sw -4(r29),r30; push fp 12323 0000acbc 001df020 add r30,r0,r29; fp = sp 12324 0000acc0 afbffff8 sw -8(r29),r31; push ret addr 12325 0000acc4 2fbd0008 subui r29,r29,#8; alloc local storage 12326 0000acc8 8fc10000 lw r1,(r30) 12327 0000accc 8c210000 lw r1,(r1) 12328 0000acd0 8fdffff8 lw r31,-8(r30) 12329 0000acd4 001ee820 add r29,r0,r30 12330 0000acd8 8fdefffc lw r30,-4(r30) 12331 0000acdc 4be00000 jr r31 12332 0000ace0 54000000 nop 12333 0000ace4 .endproc _QueueNext 12334 0000ace4 .align 2 12335 0000ace4 .proc _QueuePrev 12336 0000ace4 .global _QueuePrev 12337 0000ace4 _QueuePrev: 12338 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 12339 0000ace4 afbefffc sw -4(r29),r30; push fp 12340 0000ace8 001df020 add r30,r0,r29; fp = sp 12341 0000acec afbffff8 sw -8(r29),r31; push ret addr 12342 0000acf0 2fbd0008 subui r29,r29,#8; alloc local storage 12343 0000acf4 8fc10000 lw r1,(r30) 12344 0000acf8 8c210004 lw r1,4(r1) 12345 0000acfc 8fdffff8 lw r31,-8(r30) 12346 0000ad00 001ee820 add r29,r0,r30 12347 0000ad04 8fdefffc lw r30,-4(r30) 12348 0000ad08 4be00000 jr r31 12349 0000ad0c 54000000 nop 12350 0000ad10 .endproc _QueuePrev 12351 0000ad10 .align 2 12352 0000ad10 .proc _QueueFirst 12353 0000ad10 .global _QueueFirst 12354 0000ad10 _QueueFirst: 12355 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 12356 0000ad10 afbefffc sw -4(r29),r30; push fp 12357 0000ad14 001df020 add r30,r0,r29; fp = sp 12358 0000ad18 afbffff8 sw -8(r29),r31; push ret addr 12359 0000ad1c 2fbd0008 subui r29,r29,#8; alloc local storage 12360 0000ad20 8fc10000 lw r1,(r30) 12361 0000ad24 8c210000 lw r1,(r1) 12362 0000ad28 8fdffff8 lw r31,-8(r30) 12363 0000ad2c 001ee820 add r29,r0,r30 12364 0000ad30 8fdefffc lw r30,-4(r30) 12365 0000ad34 4be00000 jr r31 12366 0000ad38 54000000 nop 12367 0000ad3c .endproc _QueueFirst 12368 0000ad3c .align 2 12369 0000ad3c .proc _QueueLast 12370 0000ad3c .global _QueueLast 12371 0000ad3c _QueueLast: 12372 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 12373 0000ad3c afbefffc sw -4(r29),r30; push fp 12374 0000ad40 001df020 add r30,r0,r29; fp = sp 12375 0000ad44 afbffff8 sw -8(r29),r31; push ret addr 12376 0000ad48 2fbd0008 subui r29,r29,#8; alloc local storage 12377 0000ad4c 8fc10000 lw r1,(r30) 12378 0000ad50 8c210004 lw r1,4(r1) 12379 0000ad54 8fdffff8 lw r31,-8(r30) 12380 0000ad58 001ee820 add r29,r0,r30 12381 0000ad5c 8fdefffc lw r30,-4(r30) 12382 0000ad60 4be00000 jr r31 12383 0000ad64 54000000 nop 12384 0000ad68 .endproc _QueueLast 12385 0000ad68 .align 2 12386 0000ad68 .proc _QueueInsertAfter 12387 0000ad68 .global _QueueInsertAfter 12388 0000ad68 _QueueInsertAfter: 12389 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 12390 0000ad68 afbefffc sw -4(r29),r30; push fp 12391 0000ad6c 001df020 add r30,r0,r29; fp = sp 12392 0000ad70 afbffff8 sw -8(r29),r31; push ret addr 12393 0000ad74 2fbd0010 subui r29,r29,#16; alloc local storage 12394 0000ad78 afa20000 sw 0(r29),r2 12395 0000ad7c afa30004 sw 4(r29),r3 12396 0000ad80 8fc30000 lw r3,(r30) 12397 0000ad84 8fc20004 lw r2,4(r30) 12398 0000ad88 8fc10008 lw r1,8(r30) 12399 0000ad8c ac230008 sw 8(r1),r3 12400 0000ad90 ac220004 sw 4(r1),r2 12401 0000ad94 8c5f0000 lw r31,(r2) 12402 0000ad98 ac3f0000 sw (r1),r31 12403 0000ad9c ac410000 sw (r2),r1 12404 0000ada0 8c220000 lw r2,(r1) 12405 0000ada4 ac410004 sw 4(r2),r1 12406 0000ada8 8c610008 lw r1,8(r3) 12407 0000adac 20210001 addi r1,r1,#1 12408 0000adb0 ac610008 sw 8(r3),r1 12409 0000adb4 8fa20000 lw r2,0(r29) 12410 0000adb8 8fa30004 lw r3,4(r29) 12411 0000adbc 8fdffff8 lw r31,-8(r30) 12412 0000adc0 001ee820 add r29,r0,r30 12413 0000adc4 8fdefffc lw r30,-4(r30) 12414 0000adc8 4be00000 jr r31 12415 0000adcc 54000000 nop 12416 0000add0 .endproc _QueueInsertAfter 12417 0000add0 .align 2 12418 0000add0 .proc _QueueInsertFirst 12419 0000add0 .global _QueueInsertFirst 12420 0000add0 _QueueInsertFirst: 12421 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 12422 0000add0 afbefffc sw -4(r29),r30; push fp 12423 0000add4 001df020 add r30,r0,r29; fp = sp 12424 0000add8 afbffff8 sw -8(r29),r31; push ret addr 12425 0000addc 2fbd0010 subui r29,r29,#16; alloc local storage 12426 0000ade0 afa20000 sw 0(r29),r2 12427 0000ade4 afa30004 sw 4(r29),r3 12428 0000ade8 8fc30000 lw r3,(r30) 12429 0000adec 8fc10004 lw r1,4(r30) 12430 0000adf0 ac230008 sw 8(r1),r3 12431 0000adf4 ac230004 sw 4(r1),r3 12432 0000adf8 8c7f0000 lw r31,(r3) 12433 0000adfc ac3f0000 sw (r1),r31 12434 0000ae00 ac610000 sw (r3),r1 12435 0000ae04 8c220000 lw r2,(r1) 12436 0000ae08 ac410004 sw 4(r2),r1 12437 0000ae0c 8c610008 lw r1,8(r3) 12438 0000ae10 20210001 addi r1,r1,#1 12439 0000ae14 ac610008 sw 8(r3),r1 12440 0000ae18 8fa20000 lw r2,0(r29) 12441 0000ae1c 8fa30004 lw r3,4(r29) 12442 0000ae20 8fdffff8 lw r31,-8(r30) 12443 0000ae24 001ee820 add r29,r0,r30 12444 0000ae28 8fdefffc lw r30,-4(r30) 12445 0000ae2c 4be00000 jr r31 12446 0000ae30 54000000 nop 12447 0000ae34 .endproc _QueueInsertFirst 12448 0000ae34 .align 2 12449 0000ae34 .proc _QueueInsertLast 12450 0000ae34 .global _QueueInsertLast 12451 0000ae34 _QueueInsertLast: 12452 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 12453 0000ae34 afbefffc sw -4(r29),r30; push fp 12454 0000ae38 001df020 add r30,r0,r29; fp = sp 12455 0000ae3c afbffff8 sw -8(r29),r31; push ret addr 12456 0000ae40 2fbd0010 subui r29,r29,#16; alloc local storage 12457 0000ae44 afa20000 sw 0(r29),r2 12458 0000ae48 afa30004 sw 4(r29),r3 12459 0000ae4c 8fc30000 lw r3,(r30) 12460 0000ae50 8fc10004 lw r1,4(r30) 12461 0000ae54 8c620004 lw r2,4(r3) 12462 0000ae58 ac230008 sw 8(r1),r3 12463 0000ae5c ac220004 sw 4(r1),r2 12464 0000ae60 8c5f0000 lw r31,(r2) 12465 0000ae64 ac3f0000 sw (r1),r31 12466 0000ae68 ac410000 sw (r2),r1 12467 0000ae6c 8c220000 lw r2,(r1) 12468 0000ae70 ac410004 sw 4(r2),r1 12469 0000ae74 8c610008 lw r1,8(r3) 12470 0000ae78 20210001 addi r1,r1,#1 12471 0000ae7c ac610008 sw 8(r3),r1 12472 0000ae80 8fa20000 lw r2,0(r29) 12473 0000ae84 8fa30004 lw r3,4(r29) 12474 0000ae88 8fdffff8 lw r31,-8(r30) 12475 0000ae8c 001ee820 add r29,r0,r30 12476 0000ae90 8fdefffc lw r30,-4(r30) 12477 0000ae94 4be00000 jr r31 12478 0000ae98 54000000 nop 12479 0000ae9c .endproc _QueueInsertLast 12480 0000ae9c .align 2 12481 0000ae9c .proc _QueueRemove 12482 0000ae9c .global _QueueRemove 12483 0000ae9c _QueueRemove: 12484 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 12485 0000ae9c afbefffc sw -4(r29),r30; push fp 12486 0000aea0 001df020 add r30,r0,r29; fp = sp 12487 0000aea4 afbffff8 sw -8(r29),r31; push ret addr 12488 0000aea8 2fbd0010 subui r29,r29,#16; alloc local storage 12489 0000aeac afa20000 sw 0(r29),r2 12490 0000aeb0 afa30004 sw 4(r29),r3 12491 0000aeb4 8fdf0000 lw r31,(r30) 12492 0000aeb8 8fe10008 lw r1,8(r31) 12493 0000aebc 8c210008 lw r1,8(r1) 12494 0000aec0 6c210000 sgti r1,r1,#0 12495 0000aec4 1020002c beqz r1,L44_LF9 12496 0000aec8 54000000 nop; not filled. 12497 0000aecc 8fe10004 lw r1,4(r31) 12498 0000aed0 8fe30000 lw r3,(r31) 12499 0000aed4 ac230000 sw (r1),r3 12500 0000aed8 8fe10000 lw r1,(r31) 12501 0000aedc 8fe30004 lw r3,4(r31) 12502 0000aee0 ac230004 sw 4(r1),r3 12503 0000aee4 8fe20008 lw r2,8(r31) 12504 0000aee8 8c410008 lw r1,8(r2) 12505 0000aeec 2021ffff addi r1,r1,#-1 12506 0000aef0 ac410008 sw 8(r2),r1 12507 0000aef4 L44_LF9: 12508 0000aef4 20030000 addi r3,r0,#0 12509 0000aef8 afe30000 sw (r31),r3 12510 0000aefc 8fa20000 lw r2,0(r29) 12511 0000af00 8fa30004 lw r3,4(r29) 12512 0000af04 8fdffff8 lw r31,-8(r30) 12513 0000af08 001ee820 add r29,r0,r30 12514 0000af0c 8fdefffc lw r30,-4(r30) 12515 0000af10 4be00000 jr r31 12516 0000af14 54000000 nop 12517 0000af18 .endproc _QueueRemove 12518 0000af18 .align 2 12519 0000af18 .proc _QueueLength 12520 0000af18 .global _QueueLength 12521 0000af18 _QueueLength: 12522 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 12523 0000af18 afbefffc sw -4(r29),r30; push fp 12524 0000af1c 001df020 add r30,r0,r29; fp = sp 12525 0000af20 afbffff8 sw -8(r29),r31; push ret addr 12526 0000af24 2fbd0008 subui r29,r29,#8; alloc local storage 12527 0000af28 8fc10000 lw r1,(r30) 12528 0000af2c 8c210008 lw r1,8(r1) 12529 0000af30 8fdffff8 lw r31,-8(r30) 12530 0000af34 001ee820 add r29,r0,r30 12531 0000af38 8fdefffc lw r30,-4(r30) 12532 0000af3c 4be00000 jr r31 12533 0000af40 54000000 nop 12534 0000af44 .endproc _QueueLength 12535 0000af44 .align 2 12536 0000af44 .proc _QueueEmpty 12537 0000af44 .global _QueueEmpty 12538 0000af44 _QueueEmpty: 12539 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 12540 0000af44 afbefffc sw -4(r29),r30; push fp 12541 0000af48 001df020 add r30,r0,r29; fp = sp 12542 0000af4c afbffff8 sw -8(r29),r31; push ret addr 12543 0000af50 2fbd0008 subui r29,r29,#8; alloc local storage 12544 0000af54 8fc10000 lw r1,(r30) 12545 0000af58 8c210008 lw r1,8(r1) 12546 0000af5c 60210000 seqi r1,r1,#0 12547 0000af60 8fdffff8 lw r31,-8(r30) 12548 0000af64 001ee820 add r29,r0,r30 12549 0000af68 8fdefffc lw r30,-4(r30) 12550 0000af6c 4be00000 jr r31 12551 0000af70 54000000 nop 12552 0000af74 .endproc _QueueEmpty 12553 0000af74 .global _MY_TIMER 12554 0000af74 .data 12555 0001715f .align 2 12556 00017160 _MY_TIMER: 12557 00017160 00000000 .word 0 12558 00017164 .text 12559 0000af74 .align 2 12560 0000af74 .proc _TimerSet 12561 0000af74 .global _TimerSet 12562 0000af74 _TimerSet: 12563 ; Function 'TimerSet'; 0 bytes of locals, 2 regs to save. 12564 0000af74 afbefffc sw -4(r29),r30; push fp 12565 0000af78 001df020 add r30,r0,r29; fp = sp 12566 0000af7c afbffff8 sw -8(r29),r31; push ret addr 12567 0000af80 2fbd0010 subui r29,r29,#16; alloc local storage 12568 0000af84 afa20000 sw 0(r29),r2 12569 0000af88 afa30004 sw 4(r29),r3 12570 0000af8c 8fc30000 lw r3,(r30) 12571 0000af90 3c020001 lhi r2,((_MY_TIMER)>>16)&0xffff 12572 0000af94 24427160 addui r2,r2,(_MY_TIMER)&0xffff 12573 0000af98 8c410000 lw r1,(r2) 12574 0000af9c 00230820 add r1,r1,r3 12575 0000afa0 ac410000 sw (r2),r1 12576 0000afa4 3c01fff0 lhi r1,#-16 12577 0000afa8 24210010 addui r1,r1,#16 12578 0000afac ac230000 sw (r1),r3 12579 0000afb0 8fa20000 lw r2,0(r29) 12580 0000afb4 8fa30004 lw r3,4(r29) 12581 0000afb8 8fdffff8 lw r31,-8(r30) 12582 0000afbc 001ee820 add r29,r0,r30 12583 0000afc0 8fdefffc lw r30,-4(r30) 12584 0000afc4 4be00000 jr r31 12585 0000afc8 54000000 nop 12586 0000afcc .endproc _TimerSet 12587 0000afcc .align 2 12588 0000afcc .proc _TimerGet 12589 0000afcc .global _TimerGet 12590 0000afcc _TimerGet: 12591 ; Function 'TimerGet'; 0 bytes of locals, 1 regs to save. 12592 0000afcc afbefffc sw -4(r29),r30; push fp 12593 0000afd0 001df020 add r30,r0,r29; fp = sp 12594 0000afd4 afbffff8 sw -8(r29),r31; push ret addr 12595 0000afd8 2fbd0010 subui r29,r29,#16; alloc local storage 12596 0000afdc afa20000 sw 0(r29),r2 12597 0000afe0 3c010001 lhi r1,((_MY_TIMER)>>16)&0xffff 12598 0000afe4 24217160 addui r1,r1,(_MY_TIMER)&0xffff 12599 0000afe8 8c220000 lw r2,(r1) 12600 0000afec 200103e8 addi r1,r0,#1000 12601 0000aff0 00400035 movi2fp f0,r2 12602 0000aff4 00200835 movi2fp f1,r1 12603 0000aff8 04010017 divu f0,f0,f1 12604 0000affc 00000834 movfp2i r1,f0 12605 0000b000 8fa20000 lw r2,0(r29) 12606 0000b004 8fdffff8 lw r31,-8(r30) 12607 0000b008 001ee820 add r29,r0,r30 12608 0000b00c 8fdefffc lw r30,-4(r30) 12609 0000b010 4be00000 jr r31 12610 0000b014 54000000 nop 12611 0000b018 .endproc _TimerGet 12612 0000b018 .align 2 12613 0000b018 .proc _KbdModuleInit 12614 0000b018 .global _KbdModuleInit 12615 0000b018 _KbdModuleInit: 12616 ; Function 'KbdModuleInit'; 0 bytes of locals, 0 regs to save. 12617 0000b018 afbefffc sw -4(r29),r30; push fp 12618 0000b01c 001df020 add r30,r0,r29; fp = sp 12619 0000b020 afbffff8 sw -8(r29),r31; push ret addr 12620 0000b024 2fbd0008 subui r29,r29,#8; alloc local storage 12621 0000b028 3c01fff0 lhi r1,#-16 12622 0000b02c 242101c0 addui r1,r1,#448 12623 0000b030 201f0001 addi r31,r0,#1 12624 0000b034 ac3f0000 sw (r1),r31 12625 0000b038 8fdffff8 lw r31,-8(r30) 12626 0000b03c 001ee820 add r29,r0,r30 12627 0000b040 8fdefffc lw r30,-4(r30) 12628 0000b044 4be00000 jr r31 12629 0000b048 54000000 nop 12630 0000b04c .endproc _KbdModuleInit 12631 0000b04c .data 12632 00017164 .align 2 12633 00017164 LC0_LF9: 12634 00017164 20496e76 .ascii " Invalid p_nice value! \n\000" 12634 00017168 616c6964 12634 0001716c 20705f6e 12634 00017170 69636520 12634 00017174 76616c75 12634 00017178 6521200a 12634 0001717c 00 12635 0001717d .align 2 12636 00017180 LC1_LF9: 12637 00017180 46617461 .ascii "Fatal: Cumulative length of all arguments > %d\n\000" 12637 00017184 6c3a2043 12637 00017188 756d756c 12637 0001718c 61746976 12637 00017190 65206c65 12637 00017194 6e677468 12637 00017198 206f6620 12637 0001719c 616c6c20 12637 000171a0 61726775 12637 000171a4 6d656e74 12637 000171a8 73203e20 12637 000171ac 25640a00 12638 000171b0 .align 2 12639 000171b0 LC2_LF9: 12640 000171b0 63616c6c .ascii "calling fork\n\000" 12640 000171b4 696e6720 12640 000171b8 666f726b 12640 000171bc 0a00 12641 000171be .text 12642 0000b04c .align 2 12643 0000b04c .proc _TrapProcessCreateHandler_LF9 12644 0000b04c _TrapProcessCreateHandler_LF9: 12645 ; Function 'TrapProcessCreateHandler'; 1640 bytes of locals, 13 regs to save. 12646 0000b04c afbefffc sw -4(r29),r30; push fp 12647 0000b050 001df020 add r30,r0,r29; fp = sp 12648 0000b054 afbffff8 sw -8(r29),r31; push ret addr 12649 0000b058 2fbd06a8 subui r29,r29,#1704; alloc local storage 12650 0000b05c afa20000 sw 0(r29),r2 12651 0000b060 afa30004 sw 4(r29),r3 12652 0000b064 afa40008 sw 8(r29),r4 12653 0000b068 afa5000c sw 12(r29),r5 12654 0000b06c afa60010 sw 16(r29),r6 12655 0000b070 afa70014 sw 20(r29),r7 12656 0000b074 afa80018 sw 24(r29),r8 12657 0000b078 afa9001c sw 28(r29),r9 12658 0000b07c afaa0020 sw 32(r29),r10 12659 0000b080 afab0024 sw 36(r29),r11 12660 0000b084 afac0028 sw 40(r29),r12 12661 0000b088 afad002c sw 44(r29),r13 12662 0000b08c afae0030 sw 48(r29),r14 12663 0000b090 8fc40000 lw r4,(r30) 12664 0000b094 8fc60004 lw r6,4(r30) 12665 0000b098 23c2fbf8 addi r2,r30,#-1032 12666 0000b09c 23c3fff7 addi r3,r30,#-9 12667 0000b0a0 L67_LF9: 12668 0000b0a0 200e0000 addi r14,r0,(#0x0)&0xff 12669 0000b0a4 a04e0000 sb (r2),r14 12670 0000b0a8 20420001 addi r2,r2,#1 12671 0000b0ac 0043082c sle r1,r2,r3 12672 0000b0b0 1420ffec bnez r1,L67_LF9 12673 0000b0b4 54000000 nop; not filled. 12674 0000b0b8 20050000 addi r5,r0,#0 12675 0000b0bc 64c10000 snei r1,r6,#0 12676 0000b0c0 142000a0 bnez r1,L69_LF9 12677 0000b0c4 54000000 nop; not filled. 12678 0000b0c8 23bdfff0 addi r29,r29,#-16 12679 0000b0cc 3c020001 lhi r2,((_currentPCB)>>16)&0xffff 12680 0000b0d0 24424100 addui r2,r2,(_currentPCB)&0xffff 12681 0000b0d4 8c4e0000 lw r14,(r2) 12682 0000b0d8 afae0000 sw (r29),r14 12683 0000b0dc afa40004 sw 4(r29),r4 12684 0000b0e0 23c1f990 addi r1,r30,#-1648 12685 0000b0e4 afa10008 sw 8(r29),r1 12686 0000b0e8 200e0200 addi r14,r0,#512 12687 0000b0ec afae000c sw 12(r29),r14 12688 0000b0f0 0fffabe8 jal _MemoryCopyUserToSystem 12689 0000b0f4 54000000 nop; not filled. 12690 0000b0f8 23bd0010 addi r29,r29,#16 12691 0000b0fc 23c4fb8f addi r4,r30,#-1137 12692 0000b100 23c3fb90 addi r3,r30,#-1136 12693 0000b104 L70_LF9: 12694 0000b104 23bdfff0 addi r29,r29,#-16 12695 0000b108 8c4e0000 lw r14,(r2) 12696 0000b10c afae0000 sw (r29),r14 12697 0000b110 8fc1f998 lw r1,-1640(r30) 12698 0000b114 00250820 add r1,r1,r5 12699 0000b118 afa10004 sw 4(r29),r1 12700 0000b11c afa30008 sw 8(r29),r3 12701 0000b120 200e0001 addi r14,r0,#1 12702 0000b124 afae000c sw 12(r29),r14 12703 0000b128 0fffabb0 jal _MemoryCopyUserToSystem 12704 0000b12c 54000000 nop; not filled. 12705 0000b130 20840001 addi r4,r4,#1 12706 0000b134 20630001 addi r3,r3,#1 12707 0000b138 20a50001 addi r5,r5,#1 12708 0000b13c 23bd0010 addi r29,r29,#16 12709 0000b140 70a10063 sleui r1,r5,#99 12710 0000b144 10200060 beqz r1,L75_LF9 12711 0000b148 54000000 nop; not filled. 12712 0000b14c 90810000 lbu r1,(r4) 12713 0000b150 64210000 snei r1,r1,#0 12714 0000b154 10200050 beqz r1,L75_LF9 12715 0000b158 54000000 nop; not filled. 12716 0000b15c 0bffffa4 j L70_LF9 12717 0000b160 54000000 nop; not filled. 12718 0000b164 L69_LF9: 12719 0000b164 23bdfff0 addi r29,r29,#-16 12720 0000b168 afa40000 sw (r29),r4 12721 0000b16c 23c1f990 addi r1,r30,#-1648 12722 0000b170 afa10004 sw 4(r29),r1 12723 0000b174 200e0200 addi r14,r0,#512 12724 0000b178 afae0008 sw 8(r29),r14 12725 0000b17c 0fffb79c jal _bcopy 12726 0000b180 54000000 nop; not filled. 12727 0000b184 8fcef998 lw r14,-1640(r30) 12728 0000b188 afae0000 sw (r29),r14 12729 0000b18c 23c1fb90 addi r1,r30,#-1136 12730 0000b190 afa10004 sw 4(r29),r1 12731 0000b194 200e0064 addi r14,r0,#100 12732 0000b198 afae0008 sw 8(r29),r14 12733 0000b19c 0fffaf90 jal _dstrncpy 12734 0000b1a0 54000000 nop; not filled. 12735 0000b1a4 23bd0010 addi r29,r29,#16 12736 0000b1a8 L75_LF9: 12737 0000b1a8 200e0000 addi r14,r0,(#0x0)&0xff 12738 0000b1ac a3cefbf3 sb -1037(r30),r14 12739 0000b1b0 20050000 addi r5,r0,#0 12740 0000b1b4 8fccf990 lw r12,-1648(r30) 12741 0000b1b8 8fcdf994 lw r13,-1644(r30) 12742 0000b1bc 21810014 addi r1,r12,#20 12743 0000b1c0 6c210027 sgtui r1,r1,#39 12744 0000b1c4 10200024 beqz r1,L76_LF9 12745 0000b1c8 54000000 nop; not filled. 12746 0000b1cc 23bdfff8 addi r29,r29,#-8 12747 0000b1d0 3c0e0001 lhi r14,((LC0_LF9)>>16)&0xffff 12748 0000b1d4 25ce7164 addui r14,r14,(LC0_LF9)&0xffff 12749 0000b1d8 afae0000 sw (r29),r14 12750 0000b1dc 0c002044 jal _printf 12751 0000b1e0 54000000 nop; not filled. 12752 0000b1e4 0c002030 jal _exit 12753 0000b1e8 54000000 nop; not filled. 12754 0000b1ec L76_LF9: 12755 0000b1ec 64c10000 snei r1,r6,#0 12756 0000b1f0 142000b0 bnez r1,L77_LF9 12757 0000b1f4 54000000 nop; not filled. 12758 0000b1f8 3c080001 lhi r8,((_currentPCB)>>16)&0xffff 12759 0000b1fc 25084100 addui r8,r8,(_currentPCB)&0xffff 12760 0000b200 23cbfbf8 addi r11,r30,#-1032 12761 0000b204 23cafbf7 addi r10,r30,#-1033 12762 0000b208 001e3020 add r6,r0,r30 12763 0000b20c 23c901f4 addi r9,r30,#500 12764 0000b210 L89_LF9: 12765 0000b210 8cc1f998 lw r1,-1640(r6) 12766 0000b214 64210000 snei r1,r1,#0 12767 0000b218 10200134 beqz r1,L90_LF9 12768 0000b21c 54000000 nop; not filled. 12769 0000b220 20020000 addi r2,r0,#0 12770 0000b224 00063820 add r7,r0,r6 12771 0000b228 00aa2020 add r4,r5,r10 12772 0000b22c 00ab1820 add r3,r5,r11 12773 0000b230 L84_LF9: 12774 0000b230 23bdfff0 addi r29,r29,#-16 12775 0000b234 8d0e0000 lw r14,(r8) 12776 0000b238 afae0000 sw (r29),r14 12777 0000b23c 8ce1f998 lw r1,-1640(r7) 12778 0000b240 00220820 add r1,r1,r2 12779 0000b244 afa10004 sw 4(r29),r1 12780 0000b248 afa30008 sw 8(r29),r3 12781 0000b24c 200e0001 addi r14,r0,#1 12782 0000b250 afae000c sw 12(r29),r14 12783 0000b254 0fffaa84 jal _MemoryCopyUserToSystem 12784 0000b258 54000000 nop; not filled. 12785 0000b25c 20840001 addi r4,r4,#1 12786 0000b260 20630001 addi r3,r3,#1 12787 0000b264 20a50001 addi r5,r5,#1 12788 0000b268 20420001 addi r2,r2,#1 12789 0000b26c 23bd0010 addi r29,r29,#16 12790 0000b270 70a103ff sleui r1,r5,#1023 12791 0000b274 10200014 beqz r1,L81_LF9 12792 0000b278 54000000 nop; not filled. 12793 0000b27c 90810000 lbu r1,(r4) 12794 0000b280 64210000 snei r1,r1,#0 12795 0000b284 1420ffa8 bnez r1,L84_LF9 12796 0000b288 54000000 nop; not filled. 12797 0000b28c L81_LF9: 12798 0000b28c 20c60004 addi r6,r6,#4 12799 0000b290 00c9082c sle r1,r6,r9 12800 0000b294 102000b8 beqz r1,L90_LF9 12801 0000b298 54000000 nop; not filled. 12802 0000b29c 0bffff70 j L89_LF9 12803 0000b2a0 54000000 nop; not filled. 12804 0000b2a4 L77_LF9: 12805 0000b2a4 23c5fbf8 addi r5,r30,#-1032 12806 0000b2a8 00053820 add r7,r0,r5 12807 0000b2ac 23c3fff8 addi r3,r30,#-8 12808 0000b2b0 23c60020 addi r6,r30,#32 12809 0000b2b4 L97_LF9: 12810 0000b2b4 2064f998 addi r4,r3,#-1640 12811 0000b2b8 8c820000 lw r2,(r4) 12812 0000b2bc 64410000 snei r1,r2,#0 12813 0000b2c0 1020008c beqz r1,L90_LF9 12814 0000b2c4 54000000 nop; not filled. 12815 0000b2c8 23bdfff8 addi r29,r29,#-8 12816 0000b2cc afa20000 sw (r29),r2 12817 0000b2d0 0fffb048 jal _dstrlen 12818 0000b2d4 54000000 nop; not filled. 12819 0000b2d8 00a11020 add r2,r5,r1 12820 0000b2dc 00470822 sub r1,r2,r7 12821 0000b2e0 23bd0008 addi r29,r29,#8 12822 0000b2e4 6c210400 sgti r1,r1,#1024 12823 0000b2e8 10200030 beqz r1,L96_LF9 12824 0000b2ec 54000000 nop; not filled. 12825 0000b2f0 23bdfff8 addi r29,r29,#-8 12826 0000b2f4 3c0e0001 lhi r14,((LC1_LF9)>>16)&0xffff 12827 0000b2f8 25ce7180 addui r14,r14,(LC1_LF9)&0xffff 12828 0000b2fc afae0000 sw (r29),r14 12829 0000b300 200e0400 addi r14,r0,#1024 12830 0000b304 afae0004 sw 4(r29),r14 12831 0000b308 0c001f18 jal _printf 12832 0000b30c 54000000 nop; not filled. 12833 0000b310 0c001ef8 jal _exitsim 12834 0000b314 54000000 nop; not filled. 12835 0000b318 23bd0008 addi r29,r29,#8 12836 0000b31c L96_LF9: 12837 0000b31c 23bdfff8 addi r29,r29,#-8 12838 0000b320 afa50000 sw (r29),r5 12839 0000b324 8c810000 lw r1,(r4) 12840 0000b328 afa10004 sw 4(r29),r1 12841 0000b32c 0fffad9c jal _dstrcpy 12842 0000b330 54000000 nop; not filled. 12843 0000b334 200e0000 addi r14,r0,(#0x0)&0xff 12844 0000b338 a04e0000 sb (r2),r14 12845 0000b33c 23bd0008 addi r29,r29,#8 12846 0000b340 20630004 addi r3,r3,#4 12847 0000b344 0066082c sle r1,r3,r6 12848 0000b348 1420ff68 bnez r1,L97_LF9 12849 0000b34c 54000000 nop; not filled. 12850 0000b350 L90_LF9: 12851 0000b350 200e0000 addi r14,r0,(#0x0)&0xff 12852 0000b354 a3cefff7 sb -9(r30),r14 12853 0000b358 23bdfff8 addi r29,r29,#-8 12854 0000b35c 3c0e0001 lhi r14,((LC2_LF9)>>16)&0xffff 12855 0000b360 25ce71b0 addui r14,r14,(LC2_LF9)&0xffff 12856 0000b364 afae0000 sw (r29),r14 12857 0000b368 0c001eb8 jal _printf 12858 0000b36c 54000000 nop; not filled. 12859 0000b370 23bdfff0 addi r29,r29,#-16 12860 0000b374 200e0000 addi r14,r0,#0 12861 0000b378 afae0000 sw (r29),r14 12862 0000b37c 23c1fbf8 addi r1,r30,#-1032 12863 0000b380 afa10004 sw 4(r29),r1 12864 0000b384 afac0008 sw 8(r29),r12 12865 0000b388 afad000c sw 12(r29),r13 12866 0000b38c 23c1fb90 addi r1,r30,#-1136 12867 0000b390 afa10010 sw 16(r29),r1 12868 0000b394 200e0001 addi r14,r0,#1 12869 0000b398 afae0014 sw 20(r29),r14 12870 0000b39c 0fffc9fc jal _ProcessFork 12871 0000b3a0 54000000 nop; not filled. 12872 0000b3a4 23bd0018 addi r29,r29,#24 12873 0000b3a8 8fa20000 lw r2,0(r29) 12874 0000b3ac 8fa30004 lw r3,4(r29) 12875 0000b3b0 8fa40008 lw r4,8(r29) 12876 0000b3b4 8fa5000c lw r5,12(r29) 12877 0000b3b8 8fa60010 lw r6,16(r29) 12878 0000b3bc 8fa70014 lw r7,20(r29) 12879 0000b3c0 8fa80018 lw r8,24(r29) 12880 0000b3c4 8fa9001c lw r9,28(r29) 12881 0000b3c8 8faa0020 lw r10,32(r29) 12882 0000b3cc 8fab0024 lw r11,36(r29) 12883 0000b3d0 8fac0028 lw r12,40(r29) 12884 0000b3d4 8fad002c lw r13,44(r29) 12885 0000b3d8 8fae0030 lw r14,48(r29) 12886 0000b3dc 8fdffff8 lw r31,-8(r30) 12887 0000b3e0 001ee820 add r29,r0,r30 12888 0000b3e4 8fdefffc lw r30,-4(r30) 12889 0000b3e8 4be00000 jr r31 12890 0000b3ec 54000000 nop 12891 0000b3f0 .endproc _TrapProcessCreateHandler_LF9 12892 0000b3f0 .align 2 12893 0000b3f0 .proc _TrapPrintfHandler_LF9 12894 0000b3f0 _TrapPrintfHandler_LF9: 12895 ; Function 'TrapPrintfHandler'; 160 bytes of locals, 10 regs to save. 12896 0000b3f0 afbefffc sw -4(r29),r30; push fp 12897 0000b3f4 001df020 add r30,r0,r29; fp = sp 12898 0000b3f8 afbffff8 sw -8(r29),r31; push ret addr 12899 0000b3fc 2fbd00d0 subui r29,r29,#208; alloc local storage 12900 0000b400 afa20000 sw 0(r29),r2 12901 0000b404 afa30004 sw 4(r29),r3 12902 0000b408 afa40008 sw 8(r29),r4 12903 0000b40c afa5000c sw 12(r29),r5 12904 0000b410 afa60010 sw 16(r29),r6 12905 0000b414 afa70014 sw 20(r29),r7 12906 0000b418 afa80018 sw 24(r29),r8 12907 0000b41c afa9001c sw 28(r29),r9 12908 0000b420 afaa0020 sw 32(r29),r10 12909 0000b424 afab0024 sw 36(r29),r11 12910 0000b428 8fc40000 lw r4,(r30) 12911 0000b42c 8fc10004 lw r1,4(r30) 12912 0000b430 20080000 addi r8,r0,#0 12913 0000b434 00081820 add r3,r0,r8 12914 0000b438 64210000 snei r1,r1,#0 12915 0000b43c 142000a0 bnez r1,L99_LF9 12916 0000b440 54000000 nop; not filled. 12917 0000b444 23bdfff0 addi r29,r29,#-16 12918 0000b448 3c020001 lhi r2,((_currentPCB)>>16)&0xffff 12919 0000b44c 24424100 addui r2,r2,(_currentPCB)&0xffff 12920 0000b450 8c4b0000 lw r11,(r2) 12921 0000b454 afab0000 sw (r29),r11 12922 0000b458 afa40004 sw 4(r29),r4 12923 0000b45c 23c1ff58 addi r1,r30,#-168 12924 0000b460 afa10008 sw 8(r29),r1 12925 0000b464 200b0028 addi r11,r0,#40 12926 0000b468 afab000c sw 12(r29),r11 12927 0000b46c 0fffa86c jal _MemoryCopyUserToSystem 12928 0000b470 54000000 nop; not filled. 12929 0000b474 23bd0010 addi r29,r29,#16 12930 0000b478 23c5ffa7 addi r5,r30,#-89 12931 0000b47c 23c4ffa8 addi r4,r30,#-88 12932 0000b480 L100_LF9: 12933 0000b480 23bdfff0 addi r29,r29,#-16 12934 0000b484 8c4b0000 lw r11,(r2) 12935 0000b488 afab0000 sw (r29),r11 12936 0000b48c 8fc1ff58 lw r1,-168(r30) 12937 0000b490 00230820 add r1,r1,r3 12938 0000b494 afa10004 sw 4(r29),r1 12939 0000b498 afa40008 sw 8(r29),r4 12940 0000b49c 200b0001 addi r11,r0,#1 12941 0000b4a0 afab000c sw 12(r29),r11 12942 0000b4a4 0fffa834 jal _MemoryCopyUserToSystem 12943 0000b4a8 54000000 nop; not filled. 12944 0000b4ac 20a50001 addi r5,r5,#1 12945 0000b4b0 20840001 addi r4,r4,#1 12946 0000b4b4 20630001 addi r3,r3,#1 12947 0000b4b8 23bd0010 addi r29,r29,#16 12948 0000b4bc 7061004f sleui r1,r3,#79 12949 0000b4c0 10200060 beqz r1,L105_LF9 12950 0000b4c4 54000000 nop; not filled. 12951 0000b4c8 90a10000 lbu r1,(r5) 12952 0000b4cc 64210000 snei r1,r1,#0 12953 0000b4d0 10200050 beqz r1,L105_LF9 12954 0000b4d4 54000000 nop; not filled. 12955 0000b4d8 0bffffa4 j L100_LF9 12956 0000b4dc 54000000 nop; not filled. 12957 0000b4e0 L99_LF9: 12958 0000b4e0 23bdfff0 addi r29,r29,#-16 12959 0000b4e4 afa40000 sw (r29),r4 12960 0000b4e8 23c1ff58 addi r1,r30,#-168 12961 0000b4ec afa10004 sw 4(r29),r1 12962 0000b4f0 200b0028 addi r11,r0,#40 12963 0000b4f4 afab0008 sw 8(r29),r11 12964 0000b4f8 0fffb420 jal _bcopy 12965 0000b4fc 54000000 nop; not filled. 12966 0000b500 8fcbff58 lw r11,-168(r30) 12967 0000b504 afab0000 sw (r29),r11 12968 0000b508 23c1ffa8 addi r1,r30,#-88 12969 0000b50c afa10004 sw 4(r29),r1 12970 0000b510 200b0050 addi r11,r0,#80 12971 0000b514 afab0008 sw 8(r29),r11 12972 0000b518 0fffac14 jal _dstrncpy 12973 0000b51c 54000000 nop; not filled. 12974 0000b520 23bd0010 addi r29,r29,#16 12975 0000b524 L105_LF9: 12976 0000b524 200b0000 addi r11,r0,(#0x0)&0xff 12977 0000b528 a3cbfff7 sb -9(r30),r11 12978 0000b52c 23c3ffa8 addi r3,r30,#-88 12979 0000b530 80620000 lb r2,(r3) 12980 0000b534 304100ff andi r1,r2,#0x00ff 12981 0000b538 64210000 snei r1,r1,#0 12982 0000b53c 102000f0 beqz r1,L107_LF9 12983 0000b540 54000000 nop; not filled. 12984 0000b544 23cafff8 addi r10,r30,#-8 12985 0000b548 23c9ff5c addi r9,r30,#-164 12986 0000b54c 51010002 slli r1,r8,#0x2 12987 0000b550 00293820 add r7,r1,r9 12988 0000b554 002a3020 add r6,r1,r10 12989 0000b558 L109_LF9: 12990 0000b558 304100ff andi r1,r2,#0x00ff 12991 0000b55c 60210025 seqi r1,r1,#37 12992 0000b560 102000b4 beqz r1,L108_LF9 12993 0000b564 54000000 nop; not filled. 12994 0000b568 90610001 lbu r1,1(r3) 12995 0000b56c 60210025 seqi r1,r1,#37 12996 0000b570 10200010 beqz r1,L111_LF9 12997 0000b574 54000000 nop; not filled. 12998 0000b578 20630001 addi r3,r3,#1 12999 0000b57c 08000098 j L108_LF9 13000 0000b580 54000000 nop; not filled. 13001 0000b584 L111_LF9: 13002 0000b584 8ceb0000 lw r11,(r7) 13003 0000b588 accbff88 sw -120(r6),r11 13004 0000b58c 51010002 slli r1,r8,#0x2 13005 0000b590 00292820 add r5,r1,r9 13006 0000b594 002a2020 add r4,r1,r10 13007 0000b598 L114_LF9: 13008 0000b598 20630001 addi r3,r3,#1 13009 0000b59c 807f0000 lb r31,(r3) 13010 0000b5a0 33e200ff andi r2,r31,#0x00ff 13011 0000b5a4 60410073 seqi r1,r2,#115 13012 0000b5a8 14200060 bnez r1,L113_LF9 13013 0000b5ac 54000000 nop; not filled. 13014 0000b5b0 6041006c seqi r1,r2,#108 13015 0000b5b4 1420ffe0 bnez r1,L114_LF9 13016 0000b5b8 54000000 nop; not filled. 13017 0000b5bc 23e1ff9a addi r1,r31,#-102 13018 0000b5c0 302100ff andi r1,r1,#0x00ff 13019 0000b5c4 70210001 sleui r1,r1,#1 13020 0000b5c8 14200010 bnez r1,L120_LF9 13021 0000b5cc 54000000 nop; not filled. 13022 0000b5d0 60410065 seqi r1,r2,#101 13023 0000b5d4 10200020 beqz r1,L119_LF9 13024 0000b5d8 54000000 nop; not filled. 13025 0000b5dc L120_LF9: 13026 0000b5dc 20e70004 addi r7,r7,#4 13027 0000b5e0 20c60004 addi r6,r6,#4 13028 0000b5e4 21080001 addi r8,r8,#1 13029 0000b5e8 8ca50004 lw r5,4(r5) 13030 0000b5ec ac85ff8c sw -116(r4),r5 13031 0000b5f0 08000018 j L113_LF9 13032 0000b5f4 54000000 nop; not filled. 13033 0000b5f8 L119_LF9: 13034 0000b5f8 23e1ff9f addi r1,r31,#-97 13035 0000b5fc 302100ff andi r1,r1,#0x00ff 13036 0000b600 70210019 sleui r1,r1,#25 13037 0000b604 1020ff90 beqz r1,L114_LF9 13038 0000b608 54000000 nop; not filled. 13039 0000b60c L113_LF9: 13040 0000b60c 20e70004 addi r7,r7,#4 13041 0000b610 20c60004 addi r6,r6,#4 13042 0000b614 21080001 addi r8,r8,#1 13043 0000b618 L108_LF9: 13044 0000b618 20630001 addi r3,r3,#1 13045 0000b61c 80620000 lb r2,(r3) 13046 0000b620 304100ff andi r1,r2,#0x00ff 13047 0000b624 64210000 snei r1,r1,#0 13048 0000b628 1420ff2c bnez r1,L109_LF9 13049 0000b62c 54000000 nop; not filled. 13050 0000b630 L107_LF9: 13051 0000b630 23bdffd8 addi r29,r29,#-40 13052 0000b634 23c1ffa8 addi r1,r30,#-88 13053 0000b638 afa10000 sw (r29),r1 13054 0000b63c 8fc1ff80 lw r1,-128(r30) 13055 0000b640 afa10004 sw 4(r29),r1 13056 0000b644 8fcbff84 lw r11,-124(r30) 13057 0000b648 afab0008 sw 8(r29),r11 13058 0000b64c 8fcbff88 lw r11,-120(r30) 13059 0000b650 afab000c sw 12(r29),r11 13060 0000b654 8fcbff8c lw r11,-116(r30) 13061 0000b658 afab0010 sw 16(r29),r11 13062 0000b65c 8fcbff90 lw r11,-112(r30) 13063 0000b660 afab0014 sw 20(r29),r11 13064 0000b664 8fcbff94 lw r11,-108(r30) 13065 0000b668 afab0018 sw 24(r29),r11 13066 0000b66c 8fcbff98 lw r11,-104(r30) 13067 0000b670 afab001c sw 28(r29),r11 13068 0000b674 8fcbff9c lw r11,-100(r30) 13069 0000b678 afab0020 sw 32(r29),r11 13070 0000b67c 0c001ba4 jal _printf 13071 0000b680 54000000 nop; not filled. 13072 0000b684 23bd0028 addi r29,r29,#40 13073 0000b688 8fa20000 lw r2,0(r29) 13074 0000b68c 8fa30004 lw r3,4(r29) 13075 0000b690 8fa40008 lw r4,8(r29) 13076 0000b694 8fa5000c lw r5,12(r29) 13077 0000b698 8fa60010 lw r6,16(r29) 13078 0000b69c 8fa70014 lw r7,20(r29) 13079 0000b6a0 8fa80018 lw r8,24(r29) 13080 0000b6a4 8fa9001c lw r9,28(r29) 13081 0000b6a8 8faa0020 lw r10,32(r29) 13082 0000b6ac 8fab0024 lw r11,36(r29) 13083 0000b6b0 8fdffff8 lw r31,-8(r30) 13084 0000b6b4 001ee820 add r29,r0,r30 13085 0000b6b8 8fdefffc lw r30,-4(r30) 13086 0000b6bc 4be00000 jr r31 13087 0000b6c0 54000000 nop 13088 0000b6c4 .endproc _TrapPrintfHandler_LF9 13089 0000b6c4 .data 13090 000171be .align 2 13091 000171c0 LC3_LF9: 13092 000171c0 496e7465 .ascii "Interrupt cause=0x%x iar=0x%x isr=0x%x args=0x%08x.\n\000" 13092 000171c4 72727570 13092 000171c8 74206361 13092 000171cc 7573653d 13092 000171d0 30782578 13092 000171d4 20696172 13092 000171d8 3d307825 13092 000171dc 78206973 13092 000171e0 723d3078 13092 000171e4 25782061 13092 000171e8 7267733d 13092 000171ec 30782530 13092 000171f0 38782e0a 13092 000171f4 00 13093 000171f5 .align 2 13094 000171f8 LC4_LF9: 13095 000171f8 476f7420 .ascii "Got a context switch trap!\n\000" 13095 000171fc 6120636f 13095 00017200 6e746578 13095 00017204 74207377 13095 00017208 69746368 13095 0001720c 20747261 13095 00017210 70210a00 13096 00017214 .align 2 13097 00017214 LC5_LF9: 13098 00017214 476f7420 .ascii "Got an exit trap!\n\000" 13098 00017218 616e2065 13098 0001721c 78697420 13098 00017220 74726170 13098 00017224 210a00 13099 00017227 .align 2 13100 00017228 LC6_LF9: 13101 00017228 476f7420 .ascii "Got a fork trap!\n\000" 13101 0001722c 6120666f 13101 00017230 726b2074 13101 00017234 72617021 13101 00017238 0a00 13102 0001723a .align 2 13103 0001723c LC7_LF9: 13104 0001723c 476f7420 .ascii "Got a process sleep trap!\n\000" 13104 00017240 61207072 13104 00017244 6f636573 13104 00017248 7320736c 13104 0001724c 65657020 13104 00017250 74726170 13104 00017254 210a00 13105 00017257 .align 2 13106 00017258 LC8_LF9: 13107 00017258 476f7420 .ascii "Got a printf trap!\n\000" 13107 0001725c 61207072 13107 00017260 696e7466 13107 00017264 20747261 13107 00017268 70210a00 13108 0001726c .align 2 13109 0001726c LC9_LF9: 13110 0001726c 476f7420 .ascii "Got an open with parameters (\'%s\',0x%x)\n\000" 13110 00017270 616e206f 13110 00017274 70656e20 13110 00017278 77697468 13110 0001727c 20706172 13110 00017280 616d6574 13110 00017284 65727320 13110 00017288 28272573 13110 0001728c 272c3078 13110 00017290 2578290a 13110 00017294 00 13111 00017295 .align 2 13112 00017298 LC10_LF9: 13113 00017298 476f7420 .ascii "Got an unrecognized trap (0x%x) - exiting!\n\000" 13113 0001729c 616e2075 13113 000172a0 6e726563 13113 000172a4 6f676e69 13113 000172a8 7a656420 13113 000172ac 74726170 13113 000172b0 20283078 13113 000172b4 25782920 13113 000172b8 2d206578 13113 000172bc 6974696e 13113 000172c0 67210a00 13114 000172c4 .align 2 13115 000172c4 LC11_LF9: 13116 000172c4 476f7420 .ascii "Got a timer interrupt!\n\000" 13116 000172c8 61207469 13116 000172cc 6d657220 13116 000172d0 696e7465 13116 000172d4 72727570 13116 000172d8 74210a00 13117 000172dc .align 2 13118 000172dc LC12_LF9: 13119 000172dc 476f7420 .ascii "Got a keyboard interrupt (char=0x%x(%c), nleft=%d)!\n\000" 13119 000172e0 61206b65 13119 000172e4 79626f61 13119 000172e8 72642069 13119 000172ec 6e746572 13119 000172f0 72757074 13119 000172f4 20286368 13119 000172f8 61723d30 13119 000172fc 78257828 13119 00017300 2563292c 13119 00017304 206e6c65 13119 00017308 66743d25 13119 0001730c 6429210a 13119 00017310 00 13120 00017311 .align 2 13121 00017314 LC13_LF9: 13122 00017314 45786974 .ascii "Exiting after illegal access at iar=0x%x, isr=0x%x\n\000" 13122 00017318 696e6720 13122 0001731c 61667465 13122 00017320 7220696c 13122 00017324 6c656761 13122 00017328 6c206163 13122 0001732c 63657373 13122 00017330 20617420 13122 00017334 6961723d 13122 00017338 30782578 13122 0001733c 2c206973 13122 00017340 723d3078 13122 00017344 25780a00 13123 00017348 .align 2 13124 00017348 LC14_LF9: 13125 00017348 45786974 .ascii "Exiting after illegal address at iar=0x%x, isr=0x%x\n\000" 13125 0001734c 696e6720 13125 00017350 61667465 13125 00017354 7220696c 13125 00017358 6c656761 13125 0001735c 6c206164 13125 00017360 64726573 13125 00017364 73206174 13125 00017368 20696172 13125 0001736c 3d307825 13125 00017370 782c2069 13125 00017374 73723d30 13125 00017378 7825780a 13125 0001737c 00 13126 0001737d .align 2 13127 00017380 LC15_LF9: 13128 00017380 45786974 .ascii "Exiting after illegal instruction at iar=0x%x, isr=0x%x\n\000" 13128 00017384 696e6720 13128 00017388 61667465 13128 0001738c 7220696c 13128 00017390 6c656761 13128 00017394 6c20696e 13128 00017398 73747275 13128 0001739c 6374696f 13128 000173a0 6e206174 13128 000173a4 20696172 13128 000173a8 3d307825 13128 000173ac 782c2069 13128 000173b0 73723d30 13128 000173b4 7825780a 13128 000173b8 00 13129 000173b9 .align 2 13130 000173bc LC16_LF9: 13131 000173bc 45786974 .ascii "Exiting after page fault at iar=0x%x, isr=0x%x\n\000" 13131 000173c0 696e6720 13131 000173c4 61667465 13131 000173c8 72207061 13131 000173cc 67652066 13131 000173d0 61756c74 13131 000173d4 20617420 13131 000173d8 6961723d 13131 000173dc 30782578 13131 000173e0 2c206973 13131 000173e4 723d3078 13131 000173e8 25780a00 13132 000173ec .align 2 13133 000173ec LC17_LF9: 13134 000173ec 476f7420 .ascii "Got an unrecognized system interrupt (0x%x) - exiting!\n\000" 13134 000173f0 616e2075 13134 000173f4 6e726563 13134 000173f8 6f676e69 13134 000173fc 7a656420 13134 00017400 73797374 13134 00017404 656d2069 13134 00017408 6e746572 13134 0001740c 72757074 13134 00017410 20283078 13134 00017414 25782920 13134 00017418 2d206578 13134 0001741c 6974696e 13134 00017420 67210a00 13135 00017424 .align 2 13136 00017424 LC18_LF9: 13137 00017424 41626f75 .ascii "About to return from dointerrupt.\n\000" 13137 00017428 7420746f 13137 0001742c 20726574 13137 00017430 75726e20 13137 00017434 66726f6d 13137 00017438 20646f69 13137 0001743c 6e746572 13137 00017440 72757074 13137 00017444 2e0a00 13138 00017447 .text 13139 0000b6c4 .align 2 13140 0000b6c4 .proc _dointerrupt 13141 0000b6c4 .global _dointerrupt 13142 0000b6c4 _dointerrupt: 13143 ; Function 'dointerrupt'; 56 bytes of locals, 6 regs to save. 13144 0000b6c4 afbefffc sw -4(r29),r30; push fp 13145 0000b6c8 001df020 add r30,r0,r29; fp = sp 13146 0000b6cc afbffff8 sw -8(r29),r31; push ret addr 13147 0000b6d0 2fbd0058 subui r29,r29,#88; alloc local storage 13148 0000b6d4 afa20000 sw 0(r29),r2 13149 0000b6d8 afa30004 sw 4(r29),r3 13150 0000b6dc afa40008 sw 8(r29),r4 13151 0000b6e0 afa5000c sw 12(r29),r5 13152 0000b6e4 afa60010 sw 16(r29),r6 13153 0000b6e8 afa70014 sw 20(r29),r7 13154 0000b6ec 8fc20000 lw r2,(r30) 13155 0000b6f0 8fc60004 lw r6,4(r30) 13156 0000b6f4 8fc40008 lw r4,8(r30) 13157 0000b6f8 8fc3000c lw r3,12(r30) 13158 0000b6fc 23bdfff8 addi r29,r29,#-8 13159 0000b700 3c050001 lhi r5,((_debugstr)>>16)&0xffff 13160 0000b704 24a54038 addui r5,r5,(_debugstr)&0xffff 13161 0000b708 afa50000 sw (r29),r5 13162 0000b70c 20070074 addi r7,r0,#116 13163 0000b710 afa70004 sw 4(r29),r7 13164 0000b714 0fffae74 jal _dindex 13165 0000b718 54000000 nop; not filled. 13166 0000b71c 23bd0008 addi r29,r29,#8 13167 0000b720 64210000 snei r1,r1,#0 13168 0000b724 1420002c bnez r1,L128_LF9 13169 0000b728 54000000 nop; not filled. 13170 0000b72c 23bdfff8 addi r29,r29,#-8 13171 0000b730 afa50000 sw (r29),r5 13172 0000b734 2007002b addi r7,r0,#43 13173 0000b738 afa70004 sw 4(r29),r7 13174 0000b73c 0fffae4c jal _dindex 13175 0000b740 54000000 nop; not filled. 13176 0000b744 23bd0008 addi r29,r29,#8 13177 0000b748 64210000 snei r1,r1,#0 13178 0000b74c 10200030 beqz r1,L127_LF9 13179 0000b750 54000000 nop; not filled. 13180 0000b754 L128_LF9: 13181 0000b754 23bdffe8 addi r29,r29,#-24 13182 0000b758 3c070001 lhi r7,((LC3_LF9)>>16)&0xffff 13183 0000b75c 24e771c0 addui r7,r7,(LC3_LF9)&0xffff 13184 0000b760 afa70000 sw (r29),r7 13185 0000b764 afa20004 sw 4(r29),r2 13186 0000b768 afa60008 sw 8(r29),r6 13187 0000b76c afa4000c sw 12(r29),r4 13188 0000b770 afa30010 sw 16(r29),r3 13189 0000b774 0c001aac jal _printf 13190 0000b778 54000000 nop; not filled. 13191 0000b77c 23bd0018 addi r29,r29,#24 13192 0000b780 L127_LF9: 13193 0000b780 3c070800 lhi r7,#2048 13194 0000b784 24e70000 addui r7,r7,#0 13195 0000b788 00470824 and r1,r2,r7 13196 0000b78c 64210000 snei r1,r1,#0 13197 0000b790 10200f0c beqz r1,L129_LF9 13198 0000b794 54000000 nop; not filled. 13199 0000b798 3c07f7ff lhi r7,#-2049 13200 0000b79c 24e7ffff addui r7,r7,#65535 13201 0000b7a0 00471024 and r2,r2,r7 13202 0000b7a4 60410433 seqi r1,r2,#1075 13203 0000b7a8 142010dc bnez r1,L223_LF9 13204 0000b7ac 54000000 nop; not filled. 13205 0000b7b0 6c410433 sgtui r1,r2,#1075 13206 0000b7b4 142000ec bnez r1,L215_LF9 13207 0000b7b8 54000000 nop; not filled. 13208 0000b7bc 60410213 seqi r1,r2,#531 13209 0000b7c0 1420046c bnez r1,L146_LF9 13210 0000b7c4 54000000 nop; not filled. 13211 0000b7c8 6c410213 sgtui r1,r2,#531 13212 0000b7cc 1420005c bnez r1,L216_LF9 13213 0000b7d0 54000000 nop; not filled. 13214 0000b7d4 60410210 seqi r1,r2,#528 13215 0000b7d8 142005d0 bnez r1,L154_LF9 13216 0000b7dc 54000000 nop; not filled. 13217 0000b7e0 6c410210 sgtui r1,r2,#528 13218 0000b7e4 14200024 bnez r1,L217_LF9 13219 0000b7e8 54000000 nop; not filled. 13220 0000b7ec 60410050 seqi r1,r2,#80 13221 0000b7f0 14200da8 bnez r1,L207_LF9 13222 0000b7f4 54000000 nop; not filled. 13223 0000b7f8 60410201 seqi r1,r2,#513 13224 0000b7fc 10200e8c beqz r1,L213_LF9 13225 0000b800 54000000 nop; not filled. 13226 0000b804 08000394 j L143_LF9 13227 0000b808 54000000 nop; not filled. 13228 0000b80c L217_LF9: 13229 0000b80c 60410211 seqi r1,r2,#529 13230 0000b810 142005f4 bnez r1,L157_LF9 13231 0000b814 54000000 nop; not filled. 13232 0000b818 60410212 seqi r1,r2,#530 13233 0000b81c 10200e6c beqz r1,L213_LF9 13234 0000b820 54000000 nop; not filled. 13235 0000b824 08000698 j L163_LF9 13236 0000b828 54000000 nop; not filled. 13237 0000b82c L216_LF9: 13238 0000b82c 60410400 seqi r1,r2,#1024 13239 0000b830 14200144 bnez r1,L131_LF9 13240 0000b834 54000000 nop; not filled. 13241 0000b838 6c410400 sgtui r1,r2,#1024 13242 0000b83c 14200024 bnez r1,L218_LF9 13243 0000b840 54000000 nop; not filled. 13244 0000b844 60410214 seqi r1,r2,#532 13245 0000b848 14200504 bnez r1,L151_LF9 13246 0000b84c 54000000 nop; not filled. 13247 0000b850 60410300 seqi r1,r2,#768 13248 0000b854 10200e34 beqz r1,L213_LF9 13249 0000b858 54000000 nop; not filled. 13250 0000b85c 08000184 j L134_LF9 13251 0000b860 54000000 nop; not filled. 13252 0000b864 L218_LF9: 13253 0000b864 60410430 seqi r1,r2,#1072 13254 0000b868 14200218 bnez r1,L137_LF9 13255 0000b86c 54000000 nop; not filled. 13256 0000b870 6c410430 sgtui r1,r2,#1072 13257 0000b874 14200018 bnez r1,L219_LF9 13258 0000b878 54000000 nop; not filled. 13259 0000b87c 60410410 seqi r1,r2,#1040 13260 0000b880 10200e08 beqz r1,L213_LF9 13261 0000b884 54000000 nop; not filled. 13262 0000b888 08000270 j L140_LF9 13263 0000b88c 54000000 nop; not filled. 13264 0000b890 L219_LF9: 13265 0000b890 60410432 seqi r1,r2,#1074 13266 0000b894 10200df4 beqz r1,L213_LF9 13267 0000b898 54000000 nop; not filled. 13268 0000b89c 0800067c j L166_LF9 13269 0000b8a0 54000000 nop; not filled. 13270 0000b8a4 L215_LF9: 13271 0000b8a4 60410454 seqi r1,r2,#1108 13272 0000b8a8 142009a8 bnez r1,L187_LF9 13273 0000b8ac 54000000 nop; not filled. 13274 0000b8b0 6c410454 sgtui r1,r2,#1108 13275 0000b8b4 1420005c bnez r1,L220_LF9 13276 0000b8b8 54000000 nop; not filled. 13277 0000b8bc 60410450 seqi r1,r2,#1104 13278 0000b8c0 14200764 bnez r1,L174_LF9 13279 0000b8c4 54000000 nop; not filled. 13280 0000b8c8 6c410450 sgtui r1,r2,#1104 13281 0000b8cc 14200024 bnez r1,L221_LF9 13282 0000b8d0 54000000 nop; not filled. 13283 0000b8d4 60410440 seqi r1,r2,#1088 13284 0000b8d8 14200660 bnez r1,L169_LF9 13285 0000b8dc 54000000 nop; not filled. 13286 0000b8e0 60410441 seqi r1,r2,#1089 13287 0000b8e4 10200da4 beqz r1,L213_LF9 13288 0000b8e8 54000000 nop; not filled. 13289 0000b8ec 08000688 j L170_LF9 13290 0000b8f0 54000000 nop; not filled. 13291 0000b8f4 L221_LF9: 13292 0000b8f4 60410452 seqi r1,r2,#1106 13293 0000b8f8 1420087c bnez r1,L182_LF9 13294 0000b8fc 54000000 nop; not filled. 13295 0000b900 6c410452 sgtui r1,r2,#1106 13296 0000b904 102007c8 beqz r1,L178_LF9 13297 0000b908 54000000 nop; not filled. 13298 0000b90c 08000910 j L186_LF9 13299 0000b910 54000000 nop; not filled. 13300 0000b914 L220_LF9: 13301 0000b914 60410457 seqi r1,r2,#1111 13302 0000b918 14200b30 bnez r1,L199_LF9 13303 0000b91c 54000000 nop; not filled. 13304 0000b920 6c410457 sgtui r1,r2,#1111 13305 0000b924 14200024 bnez r1,L222_LF9 13306 0000b928 54000000 nop; not filled. 13307 0000b92c 60410455 seqi r1,r2,#1109 13308 0000b930 142009c8 bnez r1,L191_LF9 13309 0000b934 54000000 nop; not filled. 13310 0000b938 60410456 seqi r1,r2,#1110 13311 0000b93c 10200d4c beqz r1,L213_LF9 13312 0000b940 54000000 nop; not filled. 13313 0000b944 08000a5c j L195_LF9 13314 0000b948 54000000 nop; not filled. 13315 0000b94c L222_LF9: 13316 0000b94c 60410459 seqi r1,r2,#1113 13317 0000b950 14200c90 bnez r1,L209_LF9 13318 0000b954 54000000 nop; not filled. 13319 0000b958 68410459 sltui r1,r2,#1113 13320 0000b95c 14200b94 bnez r1,L203_LF9 13321 0000b960 54000000 nop; not filled. 13322 0000b964 60410580 seqi r1,r2,#1408 13323 0000b968 10200d20 beqz r1,L213_LF9 13324 0000b96c 54000000 nop; not filled. 13325 0000b970 080004f0 j L160_LF9 13326 0000b974 54000000 nop; not filled. 13327 0000b978 L131_LF9: 13328 0000b978 23bdfff8 addi r29,r29,#-8 13329 0000b97c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 13330 0000b980 24424038 addui r2,r2,(_debugstr)&0xffff 13331 0000b984 afa20000 sw (r29),r2 13332 0000b988 20070074 addi r7,r0,#116 13333 0000b98c afa70004 sw 4(r29),r7 13334 0000b990 0fffabf8 jal _dindex 13335 0000b994 54000000 nop; not filled. 13336 0000b998 23bd0008 addi r29,r29,#8 13337 0000b99c 64210000 snei r1,r1,#0 13338 0000b9a0 1420002c bnez r1,L133_LF9 13339 0000b9a4 54000000 nop; not filled. 13340 0000b9a8 23bdfff8 addi r29,r29,#-8 13341 0000b9ac afa20000 sw (r29),r2 13342 0000b9b0 2007002b addi r7,r0,#43 13343 0000b9b4 afa70004 sw 4(r29),r7 13344 0000b9b8 0fffabd0 jal _dindex 13345 0000b9bc 54000000 nop; not filled. 13346 0000b9c0 23bd0008 addi r29,r29,#8 13347 0000b9c4 64210000 snei r1,r1,#0 13348 0000b9c8 10200dc0 beqz r1,L226_LF9 13349 0000b9cc 54000000 nop; not filled. 13350 0000b9d0 L133_LF9: 13351 0000b9d0 23bdfff8 addi r29,r29,#-8 13352 0000b9d4 3c070001 lhi r7,((LC4_LF9)>>16)&0xffff 13353 0000b9d8 24e771f8 addui r7,r7,(LC4_LF9)&0xffff 13354 0000b9dc 08000d9c j L256_LF9 13355 0000b9e0 54000000 nop; not filled. 13356 0000b9e4 L134_LF9: 13357 0000b9e4 23bdfff8 addi r29,r29,#-8 13358 0000b9e8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 13359 0000b9ec 24424038 addui r2,r2,(_debugstr)&0xffff 13360 0000b9f0 afa20000 sw (r29),r2 13361 0000b9f4 20070074 addi r7,r0,#116 13362 0000b9f8 afa70004 sw 4(r29),r7 13363 0000b9fc 0fffab8c jal _dindex 13364 0000ba00 54000000 nop; not filled. 13365 0000ba04 23bd0008 addi r29,r29,#8 13366 0000ba08 64210000 snei r1,r1,#0 13367 0000ba0c 1420002c bnez r1,L136_LF9 13368 0000ba10 54000000 nop; not filled. 13369 0000ba14 23bdfff8 addi r29,r29,#-8 13370 0000ba18 afa20000 sw (r29),r2 13371 0000ba1c 2007002b addi r7,r0,#43 13372 0000ba20 afa70004 sw 4(r29),r7 13373 0000ba24 0fffab64 jal _dindex 13374 0000ba28 54000000 nop; not filled. 13375 0000ba2c 23bd0008 addi r29,r29,#8 13376 0000ba30 64210000 snei r1,r1,#0 13377 0000ba34 10200020 beqz r1,L135_LF9 13378 0000ba38 54000000 nop; not filled. 13379 0000ba3c L136_LF9: 13380 0000ba3c 23bdfff8 addi r29,r29,#-8 13381 0000ba40 3c070001 lhi r7,((LC5_LF9)>>16)&0xffff 13382 0000ba44 24e77214 addui r7,r7,(LC5_LF9)&0xffff 13383 0000ba48 afa70000 sw (r29),r7 13384 0000ba4c 0c0017d4 jal _printf 13385 0000ba50 54000000 nop; not filled. 13386 0000ba54 23bd0008 addi r29,r29,#8 13387 0000ba58 L135_LF9: 13388 0000ba58 23bdfff8 addi r29,r29,#-8 13389 0000ba5c 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13390 0000ba60 24214100 addui r1,r1,(_currentPCB)&0xffff 13391 0000ba64 8c210000 lw r1,(r1) 13392 0000ba68 afa10000 sw (r29),r1 13393 0000ba6c 0fffc068 jal _ProcessDestroy 13394 0000ba70 54000000 nop; not filled. 13395 0000ba74 0fffb868 jal _ProcessSchedule 13396 0000ba78 54000000 nop; not filled. 13397 0000ba7c 08000e04 j L243_LF9 13398 0000ba80 54000000 nop; not filled. 13399 0000ba84 L137_LF9: 13400 0000ba84 23bdfff8 addi r29,r29,#-8 13401 0000ba88 3c020001 lhi r2,((_debugstr)>>16)&0xffff 13402 0000ba8c 24424038 addui r2,r2,(_debugstr)&0xffff 13403 0000ba90 afa20000 sw (r29),r2 13404 0000ba94 20070074 addi r7,r0,#116 13405 0000ba98 afa70004 sw 4(r29),r7 13406 0000ba9c 0fffaaec jal _dindex 13407 0000baa0 54000000 nop; not filled. 13408 0000baa4 23bd0008 addi r29,r29,#8 13409 0000baa8 64210000 snei r1,r1,#0 13410 0000baac 1420002c bnez r1,L139_LF9 13411 0000bab0 54000000 nop; not filled. 13412 0000bab4 23bdfff8 addi r29,r29,#-8 13413 0000bab8 afa20000 sw (r29),r2 13414 0000babc 2007002b addi r7,r0,#43 13415 0000bac0 afa70004 sw 4(r29),r7 13416 0000bac4 0fffaac4 jal _dindex 13417 0000bac8 54000000 nop; not filled. 13418 0000bacc 23bd0008 addi r29,r29,#8 13419 0000bad0 64210000 snei r1,r1,#0 13420 0000bad4 10200db0 beqz r1,L223_LF9 13421 0000bad8 54000000 nop; not filled. 13422 0000badc L139_LF9: 13423 0000badc 23bdfff8 addi r29,r29,#-8 13424 0000bae0 3c070001 lhi r7,((LC6_LF9)>>16)&0xffff 13425 0000bae4 24e77228 addui r7,r7,(LC6_LF9)&0xffff 13426 0000bae8 afa70000 sw (r29),r7 13427 0000baec 0c001734 jal _printf 13428 0000baf0 54000000 nop; not filled. 13429 0000baf4 08000d8c j L243_LF9 13430 0000baf8 54000000 nop; not filled. 13431 0000bafc L140_LF9: 13432 0000bafc 23bdfff8 addi r29,r29,#-8 13433 0000bb00 3c020001 lhi r2,((_debugstr)>>16)&0xffff 13434 0000bb04 24424038 addui r2,r2,(_debugstr)&0xffff 13435 0000bb08 afa20000 sw (r29),r2 13436 0000bb0c 20070074 addi r7,r0,#116 13437 0000bb10 afa70004 sw 4(r29),r7 13438 0000bb14 0fffaa74 jal _dindex 13439 0000bb18 54000000 nop; not filled. 13440 0000bb1c 23bd0008 addi r29,r29,#8 13441 0000bb20 64210000 snei r1,r1,#0 13442 0000bb24 1420002c bnez r1,L142_LF9 13443 0000bb28 54000000 nop; not filled. 13444 0000bb2c 23bdfff8 addi r29,r29,#-8 13445 0000bb30 afa20000 sw (r29),r2 13446 0000bb34 2007002b addi r7,r0,#43 13447 0000bb38 afa70004 sw 4(r29),r7 13448 0000bb3c 0fffaa4c jal _dindex 13449 0000bb40 54000000 nop; not filled. 13450 0000bb44 23bd0008 addi r29,r29,#8 13451 0000bb48 64210000 snei r1,r1,#0 13452 0000bb4c 10200020 beqz r1,L141_LF9 13453 0000bb50 54000000 nop; not filled. 13454 0000bb54 L142_LF9: 13455 0000bb54 23bdfff8 addi r29,r29,#-8 13456 0000bb58 3c070001 lhi r7,((LC7_LF9)>>16)&0xffff 13457 0000bb5c 24e7723c addui r7,r7,(LC7_LF9)&0xffff 13458 0000bb60 afa70000 sw (r29),r7 13459 0000bb64 0c0016bc jal _printf 13460 0000bb68 54000000 nop; not filled. 13461 0000bb6c 23bd0008 addi r29,r29,#8 13462 0000bb70 L141_LF9: 13463 0000bb70 23bdfff8 addi r29,r29,#-8 13464 0000bb74 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13465 0000bb78 24214100 addui r1,r1,(_currentPCB)&0xffff 13466 0000bb7c 8c210000 lw r1,(r1) 13467 0000bb80 afa10000 sw (r29),r1 13468 0000bb84 0fffbc28 jal _ProcessSuspend 13469 0000bb88 54000000 nop; not filled. 13470 0000bb8c 0fffb750 jal _ProcessSchedule 13471 0000bb90 54000000 nop; not filled. 13472 0000bb94 08000cec j L243_LF9 13473 0000bb98 54000000 nop; not filled. 13474 0000bb9c L143_LF9: 13475 0000bb9c 23bdfff8 addi r29,r29,#-8 13476 0000bba0 3c020001 lhi r2,((_debugstr)>>16)&0xffff 13477 0000bba4 24424038 addui r2,r2,(_debugstr)&0xffff 13478 0000bba8 afa20000 sw (r29),r2 13479 0000bbac 20070074 addi r7,r0,#116 13480 0000bbb0 afa70004 sw 4(r29),r7 13481 0000bbb4 0fffa9d4 jal _dindex 13482 0000bbb8 54000000 nop; not filled. 13483 0000bbbc 23bd0008 addi r29,r29,#8 13484 0000bbc0 64210000 snei r1,r1,#0 13485 0000bbc4 1420002c bnez r1,L145_LF9 13486 0000bbc8 54000000 nop; not filled. 13487 0000bbcc 23bdfff8 addi r29,r29,#-8 13488 0000bbd0 afa20000 sw (r29),r2 13489 0000bbd4 2007002b addi r7,r0,#43 13490 0000bbd8 afa70004 sw 4(r29),r7 13491 0000bbdc 0fffa9ac jal _dindex 13492 0000bbe0 54000000 nop; not filled. 13493 0000bbe4 23bd0008 addi r29,r29,#8 13494 0000bbe8 64210000 snei r1,r1,#0 13495 0000bbec 10200020 beqz r1,L144_LF9 13496 0000bbf0 54000000 nop; not filled. 13497 0000bbf4 L145_LF9: 13498 0000bbf4 23bdfff8 addi r29,r29,#-8 13499 0000bbf8 3c070001 lhi r7,((LC8_LF9)>>16)&0xffff 13500 0000bbfc 24e77258 addui r7,r7,(LC8_LF9)&0xffff 13501 0000bc00 afa70000 sw (r29),r7 13502 0000bc04 0c00161c jal _printf 13503 0000bc08 54000000 nop; not filled. 13504 0000bc0c 23bd0008 addi r29,r29,#8 13505 0000bc10 L144_LF9: 13506 0000bc10 23bdfff8 addi r29,r29,#-8 13507 0000bc14 afa30000 sw (r29),r3 13508 0000bc18 30810040 andi r1,r4,#64 13509 0000bc1c afa10004 sw 4(r29),r1 13510 0000bc20 0ffff7cc jal _TrapPrintfHandler_LF9 13511 0000bc24 54000000 nop; not filled. 13512 0000bc28 08000c58 j L243_LF9 13513 0000bc2c 54000000 nop; not filled. 13514 0000bc30 L146_LF9: 13515 0000bc30 30810040 andi r1,r4,#64 13516 0000bc34 64210000 snei r1,r1,#0 13517 0000bc38 1020001c beqz r1,L147_LF9 13518 0000bc3c 54000000 nop; not filled. 13519 0000bc40 8c670000 lw r7,(r3) 13520 0000bc44 afc7ffe8 sw -24(r30),r7 13521 0000bc48 8c630004 lw r3,4(r3) 13522 0000bc4c afc3ffec sw -20(r30),r3 13523 0000bc50 0800006c j L148_LF9 13524 0000bc54 54000000 nop; not filled. 13525 0000bc58 L147_LF9: 13526 0000bc58 23bdfff0 addi r29,r29,#-16 13527 0000bc5c 3c020001 lhi r2,((_currentPCB)>>16)&0xffff 13528 0000bc60 24424100 addui r2,r2,(_currentPCB)&0xffff 13529 0000bc64 8c470000 lw r7,(r2) 13530 0000bc68 afa70000 sw (r29),r7 13531 0000bc6c afa30004 sw 4(r29),r3 13532 0000bc70 23c1ffe8 addi r1,r30,#-24 13533 0000bc74 afa10008 sw 8(r29),r1 13534 0000bc78 20070008 addi r7,r0,#8 13535 0000bc7c afa7000c sw 12(r29),r7 13536 0000bc80 0fffa058 jal _MemoryCopyUserToSystem 13537 0000bc84 54000000 nop; not filled. 13538 0000bc88 8c420000 lw r2,(r2) 13539 0000bc8c afa20000 sw (r29),r2 13540 0000bc90 8fc1ffe8 lw r1,-24(r30) 13541 0000bc94 afa10004 sw 4(r29),r1 13542 0000bc98 23c2ffc8 addi r2,r30,#-56 13543 0000bc9c afa20008 sw 8(r29),r2 13544 0000bca0 2007001f addi r7,r0,#31 13545 0000bca4 afa7000c sw 12(r29),r7 13546 0000bca8 0fffa030 jal _MemoryCopyUserToSystem 13547 0000bcac 54000000 nop; not filled. 13548 0000bcb0 20070000 addi r7,r0,(#0x0)&0xff 13549 0000bcb4 a3c7ffe7 sb -25(r30),r7 13550 0000bcb8 afc2ffe8 sw -24(r30),r2 13551 0000bcbc 23bd0010 addi r29,r29,#16 13552 0000bcc0 L148_LF9: 13553 0000bcc0 23bdfff8 addi r29,r29,#-8 13554 0000bcc4 20070000 addi r7,r0,#0 13555 0000bcc8 afa70000 sw (r29),r7 13556 0000bccc 0fff55b8 jal _SetIntrs 13557 0000bcd0 54000000 nop; not filled. 13558 0000bcd4 00011020 add r2,r0,r1 13559 0000bcd8 23bd0008 addi r29,r29,#8 13560 0000bcdc 23bdfff8 addi r29,r29,#-8 13561 0000bce0 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13562 0000bce4 24214100 addui r1,r1,(_currentPCB)&0xffff 13563 0000bce8 8c210000 lw r1,(r1) 13564 0000bcec afa10000 sw (r29),r1 13565 0000bcf0 8fc1ffec lw r1,-20(r30) 13566 0000bcf4 3c070001 lhi r7,#1 13567 0000bcf8 24e70000 addui r7,r7,#0 13568 0000bcfc 00270820 add r1,r1,r7 13569 0000bd00 afa10004 sw 4(r29),r1 13570 0000bd04 0fffb5a4 jal _ProcessSetResult 13571 0000bd08 54000000 nop; not filled. 13572 0000bd0c 23bdfff8 addi r29,r29,#-8 13573 0000bd10 3c070001 lhi r7,((LC9_LF9)>>16)&0xffff 13574 0000bd14 24e7726c addui r7,r7,(LC9_LF9)&0xffff 13575 0000bd18 afa70000 sw (r29),r7 13576 0000bd1c 8fc1ffe8 lw r1,-24(r30) 13577 0000bd20 afa10004 sw 4(r29),r1 13578 0000bd24 8fc7ffec lw r7,-20(r30) 13579 0000bd28 afa70008 sw 8(r29),r7 13580 0000bd2c 0c0014f4 jal _printf 13581 0000bd30 54000000 nop; not filled. 13582 0000bd34 23bd0010 addi r29,r29,#16 13583 0000bd38 23bdfff8 addi r29,r29,#-8 13584 0000bd3c afa20000 sw (r29),r2 13585 0000bd40 0fff5544 jal _SetIntrs 13586 0000bd44 54000000 nop; not filled. 13587 0000bd48 08000b38 j L243_LF9 13588 0000bd4c 54000000 nop; not filled. 13589 0000bd50 L151_LF9: 13590 0000bd50 23bdfff8 addi r29,r29,#-8 13591 0000bd54 20070000 addi r7,r0,#0 13592 0000bd58 afa70000 sw (r29),r7 13593 0000bd5c 0fff5528 jal _SetIntrs 13594 0000bd60 54000000 nop; not filled. 13595 0000bd64 00011020 add r2,r0,r1 13596 0000bd68 23bd0008 addi r29,r29,#8 13597 0000bd6c 23bdfff8 addi r29,r29,#-8 13598 0000bd70 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13599 0000bd74 24214100 addui r1,r1,(_currentPCB)&0xffff 13600 0000bd78 8c210000 lw r1,(r1) 13601 0000bd7c afa10000 sw (r29),r1 13602 0000bd80 2007ffff addi r7,r0,#-1 13603 0000bd84 afa70004 sw 4(r29),r7 13604 0000bd88 0fffb520 jal _ProcessSetResult 13605 0000bd8c 54000000 nop; not filled. 13606 0000bd90 23bd0008 addi r29,r29,#8 13607 0000bd94 23bdfff8 addi r29,r29,#-8 13608 0000bd98 afa20000 sw (r29),r2 13609 0000bd9c 0fff54e8 jal _SetIntrs 13610 0000bda0 54000000 nop; not filled. 13611 0000bda4 08000adc j L243_LF9 13612 0000bda8 54000000 nop; not filled. 13613 0000bdac L154_LF9: 13614 0000bdac 23bdfff8 addi r29,r29,#-8 13615 0000bdb0 20070000 addi r7,r0,#0 13616 0000bdb4 afa70000 sw (r29),r7 13617 0000bdb8 0fff54cc jal _SetIntrs 13618 0000bdbc 54000000 nop; not filled. 13619 0000bdc0 00011020 add r2,r0,r1 13620 0000bdc4 23bd0008 addi r29,r29,#8 13621 0000bdc8 23bdfff8 addi r29,r29,#-8 13622 0000bdcc 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13623 0000bdd0 24214100 addui r1,r1,(_currentPCB)&0xffff 13624 0000bdd4 8c210000 lw r1,(r1) 13625 0000bdd8 afa10000 sw (r29),r1 13626 0000bddc 2007ffff addi r7,r0,#-1 13627 0000bde0 afa70004 sw 4(r29),r7 13628 0000bde4 0fffb4c4 jal _ProcessSetResult 13629 0000bde8 54000000 nop; not filled. 13630 0000bdec 23bd0008 addi r29,r29,#8 13631 0000bdf0 23bdfff8 addi r29,r29,#-8 13632 0000bdf4 afa20000 sw (r29),r2 13633 0000bdf8 0fff548c jal _SetIntrs 13634 0000bdfc 54000000 nop; not filled. 13635 0000be00 08000a80 j L243_LF9 13636 0000be04 54000000 nop; not filled. 13637 0000be08 L157_LF9: 13638 0000be08 23bdfff8 addi r29,r29,#-8 13639 0000be0c 20070000 addi r7,r0,#0 13640 0000be10 afa70000 sw (r29),r7 13641 0000be14 0fff5470 jal _SetIntrs 13642 0000be18 54000000 nop; not filled. 13643 0000be1c 00011020 add r2,r0,r1 13644 0000be20 23bd0008 addi r29,r29,#8 13645 0000be24 23bdfff8 addi r29,r29,#-8 13646 0000be28 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13647 0000be2c 24214100 addui r1,r1,(_currentPCB)&0xffff 13648 0000be30 8c210000 lw r1,(r1) 13649 0000be34 afa10000 sw (r29),r1 13650 0000be38 2007ffff addi r7,r0,#-1 13651 0000be3c afa70004 sw 4(r29),r7 13652 0000be40 0fffb468 jal _ProcessSetResult 13653 0000be44 54000000 nop; not filled. 13654 0000be48 23bd0008 addi r29,r29,#8 13655 0000be4c 23bdfff8 addi r29,r29,#-8 13656 0000be50 afa20000 sw (r29),r2 13657 0000be54 0fff5430 jal _SetIntrs 13658 0000be58 54000000 nop; not filled. 13659 0000be5c 08000a24 j L243_LF9 13660 0000be60 54000000 nop; not filled. 13661 0000be64 L160_LF9: 13662 0000be64 23bdfff8 addi r29,r29,#-8 13663 0000be68 20070000 addi r7,r0,#0 13664 0000be6c afa70000 sw (r29),r7 13665 0000be70 0fff5414 jal _SetIntrs 13666 0000be74 54000000 nop; not filled. 13667 0000be78 00011020 add r2,r0,r1 13668 0000be7c 23bd0008 addi r29,r29,#8 13669 0000be80 23bdfff8 addi r29,r29,#-8 13670 0000be84 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13671 0000be88 24214100 addui r1,r1,(_currentPCB)&0xffff 13672 0000be8c 8c210000 lw r1,(r1) 13673 0000be90 afa10000 sw (r29),r1 13674 0000be94 2007ffff addi r7,r0,#-1 13675 0000be98 afa70004 sw 4(r29),r7 13676 0000be9c 0fffb40c jal _ProcessSetResult 13677 0000bea0 54000000 nop; not filled. 13678 0000bea4 23bd0008 addi r29,r29,#8 13679 0000bea8 23bdfff8 addi r29,r29,#-8 13680 0000beac afa20000 sw (r29),r2 13681 0000beb0 0fff53d4 jal _SetIntrs 13682 0000beb4 54000000 nop; not filled. 13683 0000beb8 080009c8 j L243_LF9 13684 0000bebc 54000000 nop; not filled. 13685 0000bec0 L163_LF9: 13686 0000bec0 23bdfff8 addi r29,r29,#-8 13687 0000bec4 20070000 addi r7,r0,#0 13688 0000bec8 afa70000 sw (r29),r7 13689 0000becc 0fff53b8 jal _SetIntrs 13690 0000bed0 54000000 nop; not filled. 13691 0000bed4 00011020 add r2,r0,r1 13692 0000bed8 23bd0008 addi r29,r29,#8 13693 0000bedc 23bdfff8 addi r29,r29,#-8 13694 0000bee0 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13695 0000bee4 24214100 addui r1,r1,(_currentPCB)&0xffff 13696 0000bee8 8c210000 lw r1,(r1) 13697 0000beec afa10000 sw (r29),r1 13698 0000bef0 2007ffff addi r7,r0,#-1 13699 0000bef4 afa70004 sw 4(r29),r7 13700 0000bef8 0fffb3b0 jal _ProcessSetResult 13701 0000befc 54000000 nop; not filled. 13702 0000bf00 23bd0008 addi r29,r29,#8 13703 0000bf04 23bdfff8 addi r29,r29,#-8 13704 0000bf08 afa20000 sw (r29),r2 13705 0000bf0c 0fff5378 jal _SetIntrs 13706 0000bf10 54000000 nop; not filled. 13707 0000bf14 0800096c j L243_LF9 13708 0000bf18 54000000 nop; not filled. 13709 0000bf1c L166_LF9: 13710 0000bf1c 23bdfff8 addi r29,r29,#-8 13711 0000bf20 afa30000 sw (r29),r3 13712 0000bf24 30810040 andi r1,r4,#64 13713 0000bf28 afa10004 sw 4(r29),r1 13714 0000bf2c 0ffff11c jal _TrapProcessCreateHandler_LF9 13715 0000bf30 54000000 nop; not filled. 13716 0000bf34 0800094c j L243_LF9 13717 0000bf38 54000000 nop; not filled. 13718 0000bf3c L169_LF9: 13719 0000bf3c 23bdfff8 addi r29,r29,#-8 13720 0000bf40 3c020001 lhi r2,((_currentPCB)>>16)&0xffff 13721 0000bf44 24424100 addui r2,r2,(_currentPCB)&0xffff 13722 0000bf48 8c470000 lw r7,(r2) 13723 0000bf4c afa70000 sw (r29),r7 13724 0000bf50 0fff59c4 jal _MemoryCreateSharedPage 13725 0000bf54 54000000 nop; not filled. 13726 0000bf58 0001f820 add r31,r0,r1 13727 0000bf5c 8c420000 lw r2,(r2) 13728 0000bf60 afa20000 sw (r29),r2 13729 0000bf64 afbf0004 sw 4(r29),r31 13730 0000bf68 0fffb340 jal _ProcessSetResult 13731 0000bf6c 54000000 nop; not filled. 13732 0000bf70 08000910 j L243_LF9 13733 0000bf74 54000000 nop; not filled. 13734 0000bf78 L170_LF9: 13735 0000bf78 30810040 andi r1,r4,#64 13736 0000bf7c 64210000 snei r1,r1,#0 13737 0000bf80 1420003c bnez r1,L172_LF9 13738 0000bf84 54000000 nop; not filled. 13739 0000bf88 23bdfff0 addi r29,r29,#-16 13740 0000bf8c 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13741 0000bf90 24214100 addui r1,r1,(_currentPCB)&0xffff 13742 0000bf94 8c210000 lw r1,(r1) 13743 0000bf98 afa10000 sw (r29),r1 13744 0000bf9c afa30004 sw 4(r29),r3 13745 0000bfa0 23c1ffc4 addi r1,r30,#-60 13746 0000bfa4 afa10008 sw 8(r29),r1 13747 0000bfa8 20070004 addi r7,r0,#4 13748 0000bfac afa7000c sw 12(r29),r7 13749 0000bfb0 0fff9d28 jal _MemoryCopyUserToSystem 13750 0000bfb4 54000000 nop; not filled. 13751 0000bfb8 08000024 j L244_LF9 13752 0000bfbc 54000000 nop; not filled. 13753 0000bfc0 L172_LF9: 13754 0000bfc0 23bdfff0 addi r29,r29,#-16 13755 0000bfc4 afa30000 sw (r29),r3 13756 0000bfc8 23c1ffc4 addi r1,r30,#-60 13757 0000bfcc afa10004 sw 4(r29),r1 13758 0000bfd0 20070004 addi r7,r0,#4 13759 0000bfd4 afa70008 sw 8(r29),r7 13760 0000bfd8 0fffa940 jal _bcopy 13761 0000bfdc 54000000 nop; not filled. 13762 0000bfe0 L244_LF9: 13763 0000bfe0 23bd0010 addi r29,r29,#16 13764 0000bfe4 8fdfffc4 lw r31,-60(r30) 13765 0000bfe8 23bdfff8 addi r29,r29,#-8 13766 0000bfec 3c020001 lhi r2,((_currentPCB)>>16)&0xffff 13767 0000bff0 24424100 addui r2,r2,(_currentPCB)&0xffff 13768 0000bff4 8c470000 lw r7,(r2) 13769 0000bff8 afa70000 sw (r29),r7 13770 0000bffc afbf0004 sw 4(r29),r31 13771 0000c000 0fff5ae4 jal _mmap 13772 0000c004 54000000 nop; not filled. 13773 0000c008 0001f820 add r31,r0,r1 13774 0000c00c 8c420000 lw r2,(r2) 13775 0000c010 afa20000 sw (r29),r2 13776 0000c014 afbf0004 sw 4(r29),r31 13777 0000c018 0fffb290 jal _ProcessSetResult 13778 0000c01c 54000000 nop; not filled. 13779 0000c020 08000860 j L243_LF9 13780 0000c024 54000000 nop; not filled. 13781 0000c028 L174_LF9: 13782 0000c028 30810040 andi r1,r4,#64 13783 0000c02c 64210000 snei r1,r1,#0 13784 0000c030 1420003c bnez r1,L176_LF9 13785 0000c034 54000000 nop; not filled. 13786 0000c038 23bdfff0 addi r29,r29,#-16 13787 0000c03c 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13788 0000c040 24214100 addui r1,r1,(_currentPCB)&0xffff 13789 0000c044 8c210000 lw r1,(r1) 13790 0000c048 afa10000 sw (r29),r1 13791 0000c04c afa30004 sw 4(r29),r3 13792 0000c050 23c1ffc4 addi r1,r30,#-60 13793 0000c054 afa10008 sw 8(r29),r1 13794 0000c058 20070004 addi r7,r0,#4 13795 0000c05c afa7000c sw 12(r29),r7 13796 0000c060 0fff9c78 jal _MemoryCopyUserToSystem 13797 0000c064 54000000 nop; not filled. 13798 0000c068 08000024 j L245_LF9 13799 0000c06c 54000000 nop; not filled. 13800 0000c070 L176_LF9: 13801 0000c070 23bdfff0 addi r29,r29,#-16 13802 0000c074 afa30000 sw (r29),r3 13803 0000c078 23c1ffc4 addi r1,r30,#-60 13804 0000c07c afa10004 sw 4(r29),r1 13805 0000c080 20070004 addi r7,r0,#4 13806 0000c084 afa70008 sw 8(r29),r7 13807 0000c088 0fffa890 jal _bcopy 13808 0000c08c 54000000 nop; not filled. 13809 0000c090 L245_LF9: 13810 0000c090 23bd0010 addi r29,r29,#16 13811 0000c094 23bdfff8 addi r29,r29,#-8 13812 0000c098 8fc7ffc4 lw r7,-60(r30) 13813 0000c09c afa70000 sw (r29),r7 13814 0000c0a0 0fff64f0 jal _SemCreate 13815 0000c0a4 54000000 nop; not filled. 13816 0000c0a8 00011020 add r2,r0,r1 13817 0000c0ac 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13818 0000c0b0 24214100 addui r1,r1,(_currentPCB)&0xffff 13819 0000c0b4 8c210000 lw r1,(r1) 13820 0000c0b8 afa10000 sw (r29),r1 13821 0000c0bc afa20004 sw 4(r29),r2 13822 0000c0c0 0fffb1e8 jal _ProcessSetResult 13823 0000c0c4 54000000 nop; not filled. 13824 0000c0c8 080007b8 j L243_LF9 13825 0000c0cc 54000000 nop; not filled. 13826 0000c0d0 L178_LF9: 13827 0000c0d0 30810040 andi r1,r4,#64 13828 0000c0d4 64210000 snei r1,r1,#0 13829 0000c0d8 1420003c bnez r1,L180_LF9 13830 0000c0dc 54000000 nop; not filled. 13831 0000c0e0 23bdfff0 addi r29,r29,#-16 13832 0000c0e4 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13833 0000c0e8 24214100 addui r1,r1,(_currentPCB)&0xffff 13834 0000c0ec 8c210000 lw r1,(r1) 13835 0000c0f0 afa10000 sw (r29),r1 13836 0000c0f4 afa30004 sw 4(r29),r3 13837 0000c0f8 23c1ffc4 addi r1,r30,#-60 13838 0000c0fc afa10008 sw 8(r29),r1 13839 0000c100 20070004 addi r7,r0,#4 13840 0000c104 afa7000c sw 12(r29),r7 13841 0000c108 0fff9bd0 jal _MemoryCopyUserToSystem 13842 0000c10c 54000000 nop; not filled. 13843 0000c110 08000024 j L246_LF9 13844 0000c114 54000000 nop; not filled. 13845 0000c118 L180_LF9: 13846 0000c118 23bdfff0 addi r29,r29,#-16 13847 0000c11c afa30000 sw (r29),r3 13848 0000c120 23c1ffc4 addi r1,r30,#-60 13849 0000c124 afa10004 sw 4(r29),r1 13850 0000c128 20070004 addi r7,r0,#4 13851 0000c12c afa70008 sw 8(r29),r7 13852 0000c130 0fffa7e8 jal _bcopy 13853 0000c134 54000000 nop; not filled. 13854 0000c138 L246_LF9: 13855 0000c138 23bd0010 addi r29,r29,#16 13856 0000c13c 23bdfff8 addi r29,r29,#-8 13857 0000c140 8fc7ffc4 lw r7,-60(r30) 13858 0000c144 afa70000 sw (r29),r7 13859 0000c148 0fff67cc jal _SemHandleWait 13860 0000c14c 54000000 nop; not filled. 13861 0000c150 0001f820 add r31,r0,r1 13862 0000c154 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13863 0000c158 24214100 addui r1,r1,(_currentPCB)&0xffff 13864 0000c15c 8c210000 lw r1,(r1) 13865 0000c160 afa10000 sw (r29),r1 13866 0000c164 afbf0004 sw 4(r29),r31 13867 0000c168 0fffb140 jal _ProcessSetResult 13868 0000c16c 54000000 nop; not filled. 13869 0000c170 08000710 j L243_LF9 13870 0000c174 54000000 nop; not filled. 13871 0000c178 L182_LF9: 13872 0000c178 30810040 andi r1,r4,#64 13873 0000c17c 64210000 snei r1,r1,#0 13874 0000c180 1420003c bnez r1,L184_LF9 13875 0000c184 54000000 nop; not filled. 13876 0000c188 23bdfff0 addi r29,r29,#-16 13877 0000c18c 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13878 0000c190 24214100 addui r1,r1,(_currentPCB)&0xffff 13879 0000c194 8c210000 lw r1,(r1) 13880 0000c198 afa10000 sw (r29),r1 13881 0000c19c afa30004 sw 4(r29),r3 13882 0000c1a0 23c1ffc4 addi r1,r30,#-60 13883 0000c1a4 afa10008 sw 8(r29),r1 13884 0000c1a8 20070004 addi r7,r0,#4 13885 0000c1ac afa7000c sw 12(r29),r7 13886 0000c1b0 0fff9b28 jal _MemoryCopyUserToSystem 13887 0000c1b4 54000000 nop; not filled. 13888 0000c1b8 08000024 j L247_LF9 13889 0000c1bc 54000000 nop; not filled. 13890 0000c1c0 L184_LF9: 13891 0000c1c0 23bdfff0 addi r29,r29,#-16 13892 0000c1c4 afa30000 sw (r29),r3 13893 0000c1c8 23c1ffc4 addi r1,r30,#-60 13894 0000c1cc afa10004 sw 4(r29),r1 13895 0000c1d0 20070004 addi r7,r0,#4 13896 0000c1d4 afa70008 sw 8(r29),r7 13897 0000c1d8 0fffa740 jal _bcopy 13898 0000c1dc 54000000 nop; not filled. 13899 0000c1e0 L247_LF9: 13900 0000c1e0 23bd0010 addi r29,r29,#16 13901 0000c1e4 23bdfff8 addi r29,r29,#-8 13902 0000c1e8 8fc7ffc4 lw r7,-60(r30) 13903 0000c1ec afa70000 sw (r29),r7 13904 0000c1f0 0fff69b0 jal _SemHandleSignal 13905 0000c1f4 54000000 nop; not filled. 13906 0000c1f8 0001f820 add r31,r0,r1 13907 0000c1fc 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13908 0000c200 24214100 addui r1,r1,(_currentPCB)&0xffff 13909 0000c204 8c210000 lw r1,(r1) 13910 0000c208 afa10000 sw (r29),r1 13911 0000c20c afbf0004 sw 4(r29),r31 13912 0000c210 0fffb098 jal _ProcessSetResult 13913 0000c214 54000000 nop; not filled. 13914 0000c218 08000668 j L243_LF9 13915 0000c21c 54000000 nop; not filled. 13916 0000c220 L186_LF9: 13917 0000c220 0fff6aa8 jal _LockCreate 13918 0000c224 54000000 nop; not filled. 13919 0000c228 00011020 add r2,r0,r1 13920 0000c22c 23bdfff8 addi r29,r29,#-8 13921 0000c230 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13922 0000c234 24214100 addui r1,r1,(_currentPCB)&0xffff 13923 0000c238 8c210000 lw r1,(r1) 13924 0000c23c afa10000 sw (r29),r1 13925 0000c240 afa20004 sw 4(r29),r2 13926 0000c244 0fffb064 jal _ProcessSetResult 13927 0000c248 54000000 nop; not filled. 13928 0000c24c 08000634 j L243_LF9 13929 0000c250 54000000 nop; not filled. 13930 0000c254 L187_LF9: 13931 0000c254 30810040 andi r1,r4,#64 13932 0000c258 64210000 snei r1,r1,#0 13933 0000c25c 1420003c bnez r1,L189_LF9 13934 0000c260 54000000 nop; not filled. 13935 0000c264 23bdfff0 addi r29,r29,#-16 13936 0000c268 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13937 0000c26c 24214100 addui r1,r1,(_currentPCB)&0xffff 13938 0000c270 8c210000 lw r1,(r1) 13939 0000c274 afa10000 sw (r29),r1 13940 0000c278 afa30004 sw 4(r29),r3 13941 0000c27c 23c1ffc4 addi r1,r30,#-60 13942 0000c280 afa10008 sw 8(r29),r1 13943 0000c284 20070004 addi r7,r0,#4 13944 0000c288 afa7000c sw 12(r29),r7 13945 0000c28c 0fff9a4c jal _MemoryCopyUserToSystem 13946 0000c290 54000000 nop; not filled. 13947 0000c294 08000024 j L248_LF9 13948 0000c298 54000000 nop; not filled. 13949 0000c29c L189_LF9: 13950 0000c29c 23bdfff0 addi r29,r29,#-16 13951 0000c2a0 afa30000 sw (r29),r3 13952 0000c2a4 23c1ffc4 addi r1,r30,#-60 13953 0000c2a8 afa10004 sw 4(r29),r1 13954 0000c2ac 20070004 addi r7,r0,#4 13955 0000c2b0 afa70008 sw 8(r29),r7 13956 0000c2b4 0fffa664 jal _bcopy 13957 0000c2b8 54000000 nop; not filled. 13958 0000c2bc L248_LF9: 13959 0000c2bc 23bd0010 addi r29,r29,#16 13960 0000c2c0 23bdfff8 addi r29,r29,#-8 13961 0000c2c4 8fc7ffc4 lw r7,-60(r30) 13962 0000c2c8 afa70000 sw (r29),r7 13963 0000c2cc 0fff6c14 jal _LockHandleAcquire 13964 0000c2d0 54000000 nop; not filled. 13965 0000c2d4 0001f820 add r31,r0,r1 13966 0000c2d8 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13967 0000c2dc 24214100 addui r1,r1,(_currentPCB)&0xffff 13968 0000c2e0 8c210000 lw r1,(r1) 13969 0000c2e4 afa10000 sw (r29),r1 13970 0000c2e8 afbf0004 sw 4(r29),r31 13971 0000c2ec 0fffafbc jal _ProcessSetResult 13972 0000c2f0 54000000 nop; not filled. 13973 0000c2f4 0800058c j L243_LF9 13974 0000c2f8 54000000 nop; not filled. 13975 0000c2fc L191_LF9: 13976 0000c2fc 30810040 andi r1,r4,#64 13977 0000c300 64210000 snei r1,r1,#0 13978 0000c304 1420003c bnez r1,L193_LF9 13979 0000c308 54000000 nop; not filled. 13980 0000c30c 23bdfff0 addi r29,r29,#-16 13981 0000c310 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13982 0000c314 24214100 addui r1,r1,(_currentPCB)&0xffff 13983 0000c318 8c210000 lw r1,(r1) 13984 0000c31c afa10000 sw (r29),r1 13985 0000c320 afa30004 sw 4(r29),r3 13986 0000c324 23c1ffc4 addi r1,r30,#-60 13987 0000c328 afa10008 sw 8(r29),r1 13988 0000c32c 20070004 addi r7,r0,#4 13989 0000c330 afa7000c sw 12(r29),r7 13990 0000c334 0fff99a4 jal _MemoryCopyUserToSystem 13991 0000c338 54000000 nop; not filled. 13992 0000c33c 08000024 j L249_LF9 13993 0000c340 54000000 nop; not filled. 13994 0000c344 L193_LF9: 13995 0000c344 23bdfff0 addi r29,r29,#-16 13996 0000c348 afa30000 sw (r29),r3 13997 0000c34c 23c1ffc4 addi r1,r30,#-60 13998 0000c350 afa10004 sw 4(r29),r1 13999 0000c354 20070004 addi r7,r0,#4 14000 0000c358 afa70008 sw 8(r29),r7 14001 0000c35c 0fffa5bc jal _bcopy 14002 0000c360 54000000 nop; not filled. 14003 0000c364 L249_LF9: 14004 0000c364 23bd0010 addi r29,r29,#16 14005 0000c368 23bdfff8 addi r29,r29,#-8 14006 0000c36c 8fc7ffc4 lw r7,-60(r30) 14007 0000c370 afa70000 sw (r29),r7 14008 0000c374 0fff6d4c jal _LockHandleRelease 14009 0000c378 54000000 nop; not filled. 14010 0000c37c 0001f820 add r31,r0,r1 14011 0000c380 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14012 0000c384 24214100 addui r1,r1,(_currentPCB)&0xffff 14013 0000c388 8c210000 lw r1,(r1) 14014 0000c38c afa10000 sw (r29),r1 14015 0000c390 afbf0004 sw 4(r29),r31 14016 0000c394 0fffaf14 jal _ProcessSetResult 14017 0000c398 54000000 nop; not filled. 14018 0000c39c 080004e4 j L243_LF9 14019 0000c3a0 54000000 nop; not filled. 14020 0000c3a4 L195_LF9: 14021 0000c3a4 30810040 andi r1,r4,#64 14022 0000c3a8 64210000 snei r1,r1,#0 14023 0000c3ac 1420003c bnez r1,L197_LF9 14024 0000c3b0 54000000 nop; not filled. 14025 0000c3b4 23bdfff0 addi r29,r29,#-16 14026 0000c3b8 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14027 0000c3bc 24214100 addui r1,r1,(_currentPCB)&0xffff 14028 0000c3c0 8c210000 lw r1,(r1) 14029 0000c3c4 afa10000 sw (r29),r1 14030 0000c3c8 afa30004 sw 4(r29),r3 14031 0000c3cc 23c1ffc4 addi r1,r30,#-60 14032 0000c3d0 afa10008 sw 8(r29),r1 14033 0000c3d4 20070004 addi r7,r0,#4 14034 0000c3d8 afa7000c sw 12(r29),r7 14035 0000c3dc 0fff98fc jal _MemoryCopyUserToSystem 14036 0000c3e0 54000000 nop; not filled. 14037 0000c3e4 08000024 j L250_LF9 14038 0000c3e8 54000000 nop; not filled. 14039 0000c3ec L197_LF9: 14040 0000c3ec 23bdfff0 addi r29,r29,#-16 14041 0000c3f0 afa30000 sw (r29),r3 14042 0000c3f4 23c1ffc4 addi r1,r30,#-60 14043 0000c3f8 afa10004 sw 4(r29),r1 14044 0000c3fc 20070004 addi r7,r0,#4 14045 0000c400 afa70008 sw 8(r29),r7 14046 0000c404 0fffa514 jal _bcopy 14047 0000c408 54000000 nop; not filled. 14048 0000c40c L250_LF9: 14049 0000c40c 23bd0010 addi r29,r29,#16 14050 0000c410 23bdfff8 addi r29,r29,#-8 14051 0000c414 8fc7ffc4 lw r7,-60(r30) 14052 0000c418 afa70000 sw (r29),r7 14053 0000c41c 0fff6e58 jal _CondCreate 14054 0000c420 54000000 nop; not filled. 14055 0000c424 00011020 add r2,r0,r1 14056 0000c428 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14057 0000c42c 24214100 addui r1,r1,(_currentPCB)&0xffff 14058 0000c430 8c210000 lw r1,(r1) 14059 0000c434 afa10000 sw (r29),r1 14060 0000c438 afa20004 sw 4(r29),r2 14061 0000c43c 0fffae6c jal _ProcessSetResult 14062 0000c440 54000000 nop; not filled. 14063 0000c444 0800043c j L243_LF9 14064 0000c448 54000000 nop; not filled. 14065 0000c44c L199_LF9: 14066 0000c44c 30810040 andi r1,r4,#64 14067 0000c450 64210000 snei r1,r1,#0 14068 0000c454 1420003c bnez r1,L201_LF9 14069 0000c458 54000000 nop; not filled. 14070 0000c45c 23bdfff0 addi r29,r29,#-16 14071 0000c460 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14072 0000c464 24214100 addui r1,r1,(_currentPCB)&0xffff 14073 0000c468 8c210000 lw r1,(r1) 14074 0000c46c afa10000 sw (r29),r1 14075 0000c470 afa30004 sw 4(r29),r3 14076 0000c474 23c1ffc4 addi r1,r30,#-60 14077 0000c478 afa10008 sw 8(r29),r1 14078 0000c47c 20070004 addi r7,r0,#4 14079 0000c480 afa7000c sw 12(r29),r7 14080 0000c484 0fff9854 jal _MemoryCopyUserToSystem 14081 0000c488 54000000 nop; not filled. 14082 0000c48c 08000024 j L251_LF9 14083 0000c490 54000000 nop; not filled. 14084 0000c494 L201_LF9: 14085 0000c494 23bdfff0 addi r29,r29,#-16 14086 0000c498 afa30000 sw (r29),r3 14087 0000c49c 23c1ffc4 addi r1,r30,#-60 14088 0000c4a0 afa10004 sw 4(r29),r1 14089 0000c4a4 20070004 addi r7,r0,#4 14090 0000c4a8 afa70008 sw 8(r29),r7 14091 0000c4ac 0fffa46c jal _bcopy 14092 0000c4b0 54000000 nop; not filled. 14093 0000c4b4 L251_LF9: 14094 0000c4b4 23bd0010 addi r29,r29,#16 14095 0000c4b8 23bdfff8 addi r29,r29,#-8 14096 0000c4bc 8fc7ffc4 lw r7,-60(r30) 14097 0000c4c0 afa70000 sw (r29),r7 14098 0000c4c4 0fff7104 jal _CondHandleWait 14099 0000c4c8 54000000 nop; not filled. 14100 0000c4cc 00011020 add r2,r0,r1 14101 0000c4d0 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14102 0000c4d4 24214100 addui r1,r1,(_currentPCB)&0xffff 14103 0000c4d8 8c210000 lw r1,(r1) 14104 0000c4dc afa10000 sw (r29),r1 14105 0000c4e0 afa20004 sw 4(r29),r2 14106 0000c4e4 0fffadc4 jal _ProcessSetResult 14107 0000c4e8 54000000 nop; not filled. 14108 0000c4ec 08000394 j L243_LF9 14109 0000c4f0 54000000 nop; not filled. 14110 0000c4f4 L203_LF9: 14111 0000c4f4 30810040 andi r1,r4,#64 14112 0000c4f8 64210000 snei r1,r1,#0 14113 0000c4fc 1420003c bnez r1,L205_LF9 14114 0000c500 54000000 nop; not filled. 14115 0000c504 23bdfff0 addi r29,r29,#-16 14116 0000c508 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14117 0000c50c 24214100 addui r1,r1,(_currentPCB)&0xffff 14118 0000c510 8c210000 lw r1,(r1) 14119 0000c514 afa10000 sw (r29),r1 14120 0000c518 afa30004 sw 4(r29),r3 14121 0000c51c 23c1ffc4 addi r1,r30,#-60 14122 0000c520 afa10008 sw 8(r29),r1 14123 0000c524 20070004 addi r7,r0,#4 14124 0000c528 afa7000c sw 12(r29),r7 14125 0000c52c 0fff97ac jal _MemoryCopyUserToSystem 14126 0000c530 54000000 nop; not filled. 14127 0000c534 08000024 j L252_LF9 14128 0000c538 54000000 nop; not filled. 14129 0000c53c L205_LF9: 14130 0000c53c 23bdfff0 addi r29,r29,#-16 14131 0000c540 afa30000 sw (r29),r3 14132 0000c544 23c1ffc4 addi r1,r30,#-60 14133 0000c548 afa10004 sw 4(r29),r1 14134 0000c54c 20070004 addi r7,r0,#4 14135 0000c550 afa70008 sw 8(r29),r7 14136 0000c554 0fffa3c4 jal _bcopy 14137 0000c558 54000000 nop; not filled. 14138 0000c55c L252_LF9: 14139 0000c55c 23bd0010 addi r29,r29,#16 14140 0000c560 23bdfff8 addi r29,r29,#-8 14141 0000c564 8fc7ffc4 lw r7,-60(r30) 14142 0000c568 afa70000 sw (r29),r7 14143 0000c56c 0fff71cc jal _CondHandleSignal 14144 0000c570 54000000 nop; not filled. 14145 0000c574 00011020 add r2,r0,r1 14146 0000c578 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14147 0000c57c 24214100 addui r1,r1,(_currentPCB)&0xffff 14148 0000c580 8c210000 lw r1,(r1) 14149 0000c584 afa10000 sw (r29),r1 14150 0000c588 afa20004 sw 4(r29),r2 14151 0000c58c 0fffad1c jal _ProcessSetResult 14152 0000c590 54000000 nop; not filled. 14153 0000c594 080002ec j L243_LF9 14154 0000c598 54000000 nop; not filled. 14155 0000c59c L207_LF9: 14156 0000c59c 3c010001 lhi r1,((_MY_TIMER)>>16)&0xffff 14157 0000c5a0 24217160 addui r1,r1,(_MY_TIMER)&0xffff 14158 0000c5a4 8c220000 lw r2,(r1) 14159 0000c5a8 200103e8 addi r1,r0,#1000 14160 0000c5ac 00400035 movi2fp f0,r2 14161 0000c5b0 00200835 movi2fp f1,r1 14162 0000c5b4 04010017 divu f0,f0,f1 14163 0000c5b8 00001034 movfp2i r2,f0 14164 0000c5bc 23bdfff8 addi r29,r29,#-8 14165 0000c5c0 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14166 0000c5c4 24214100 addui r1,r1,(_currentPCB)&0xffff 14167 0000c5c8 8c210000 lw r1,(r1) 14168 0000c5cc afa10000 sw (r29),r1 14169 0000c5d0 afa20004 sw 4(r29),r2 14170 0000c5d4 0fffacd4 jal _ProcessSetResult 14171 0000c5d8 54000000 nop; not filled. 14172 0000c5dc 080002a4 j L243_LF9 14173 0000c5e0 54000000 nop; not filled. 14174 0000c5e4 L209_LF9: 14175 0000c5e4 30810040 andi r1,r4,#64 14176 0000c5e8 64210000 snei r1,r1,#0 14177 0000c5ec 1420003c bnez r1,L211_LF9 14178 0000c5f0 54000000 nop; not filled. 14179 0000c5f4 23bdfff0 addi r29,r29,#-16 14180 0000c5f8 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14181 0000c5fc 24214100 addui r1,r1,(_currentPCB)&0xffff 14182 0000c600 8c210000 lw r1,(r1) 14183 0000c604 afa10000 sw (r29),r1 14184 0000c608 afa30004 sw 4(r29),r3 14185 0000c60c 23c1ffc4 addi r1,r30,#-60 14186 0000c610 afa10008 sw 8(r29),r1 14187 0000c614 20070004 addi r7,r0,#4 14188 0000c618 afa7000c sw 12(r29),r7 14189 0000c61c 0fff96bc jal _MemoryCopyUserToSystem 14190 0000c620 54000000 nop; not filled. 14191 0000c624 08000024 j L253_LF9 14192 0000c628 54000000 nop; not filled. 14193 0000c62c L211_LF9: 14194 0000c62c 23bdfff0 addi r29,r29,#-16 14195 0000c630 afa30000 sw (r29),r3 14196 0000c634 23c1ffc4 addi r1,r30,#-60 14197 0000c638 afa10004 sw 4(r29),r1 14198 0000c63c 20070004 addi r7,r0,#4 14199 0000c640 afa70008 sw 8(r29),r7 14200 0000c644 0fffa2d4 jal _bcopy 14201 0000c648 54000000 nop; not filled. 14202 0000c64c L253_LF9: 14203 0000c64c 23bd0010 addi r29,r29,#16 14204 0000c650 23bdfff8 addi r29,r29,#-8 14205 0000c654 8fc7ffc4 lw r7,-60(r30) 14206 0000c658 afa70000 sw (r29),r7 14207 0000c65c 0fff72bc jal _CondHandleBroadcast 14208 0000c660 54000000 nop; not filled. 14209 0000c664 00011020 add r2,r0,r1 14210 0000c668 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14211 0000c66c 24214100 addui r1,r1,(_currentPCB)&0xffff 14212 0000c670 8c210000 lw r1,(r1) 14213 0000c674 afa10000 sw (r29),r1 14214 0000c678 afa20004 sw 4(r29),r2 14215 0000c67c 0fffac2c jal _ProcessSetResult 14216 0000c680 54000000 nop; not filled. 14217 0000c684 080001fc j L243_LF9 14218 0000c688 54000000 nop; not filled. 14219 0000c68c L213_LF9: 14220 0000c68c 23bdfff8 addi r29,r29,#-8 14221 0000c690 3c070001 lhi r7,((LC10_LF9)>>16)&0xffff 14222 0000c694 24e77298 addui r7,r7,(LC10_LF9)&0xffff 14223 0000c698 080001d0 j L254_LF9 14224 0000c69c 54000000 nop; not filled. 14225 0000c6a0 L129_LF9: 14226 0000c6a0 60410003 seqi r1,r2,#3 14227 0000c6a4 14200148 bnez r1,L233_LF9 14228 0000c6a8 54000000 nop; not filled. 14229 0000c6ac 6c410003 sgtui r1,r2,#3 14230 0000c6b0 14200024 bnez r1,L239_LF9 14231 0000c6b4 54000000 nop; not filled. 14232 0000c6b8 60410001 seqi r1,r2,#1 14233 0000c6bc 14200158 bnez r1,L235_LF9 14234 0000c6c0 54000000 nop; not filled. 14235 0000c6c4 60410002 seqi r1,r2,#2 14236 0000c6c8 10200194 beqz r1,L237_LF9 14237 0000c6cc 54000000 nop; not filled. 14238 0000c6d0 08000130 j L234_LF9 14239 0000c6d4 54000000 nop; not filled. 14240 0000c6d8 L239_LF9: 14241 0000c6d8 60410040 seqi r1,r2,#64 14242 0000c6dc 14200038 bnez r1,L225_LF9 14243 0000c6e0 54000000 nop; not filled. 14244 0000c6e4 6c410040 sgtui r1,r2,#64 14245 0000c6e8 14200018 bnez r1,L240_LF9 14246 0000c6ec 54000000 nop; not filled. 14247 0000c6f0 60410020 seqi r1,r2,#32 14248 0000c6f4 10200168 beqz r1,L237_LF9 14249 0000c6f8 54000000 nop; not filled. 14250 0000c6fc 0800012c j L236_LF9 14251 0000c700 54000000 nop; not filled. 14252 0000c704 L240_LF9: 14253 0000c704 60410048 seqi r1,r2,#72 14254 0000c708 10200154 beqz r1,L237_LF9 14255 0000c70c 54000000 nop; not filled. 14256 0000c710 08000088 j L228_LF9 14257 0000c714 54000000 nop; not filled. 14258 0000c718 L225_LF9: 14259 0000c718 23bdfff8 addi r29,r29,#-8 14260 0000c71c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 14261 0000c720 24424038 addui r2,r2,(_debugstr)&0xffff 14262 0000c724 afa20000 sw (r29),r2 14263 0000c728 20070074 addi r7,r0,#116 14264 0000c72c afa70004 sw 4(r29),r7 14265 0000c730 0fff9e58 jal _dindex 14266 0000c734 54000000 nop; not filled. 14267 0000c738 23bd0008 addi r29,r29,#8 14268 0000c73c 64210000 snei r1,r1,#0 14269 0000c740 1420002c bnez r1,L227_LF9 14270 0000c744 54000000 nop; not filled. 14271 0000c748 23bdfff8 addi r29,r29,#-8 14272 0000c74c afa20000 sw (r29),r2 14273 0000c750 2007002b addi r7,r0,#43 14274 0000c754 afa70004 sw 4(r29),r7 14275 0000c758 0fff9e30 jal _dindex 14276 0000c75c 54000000 nop; not filled. 14277 0000c760 23bd0008 addi r29,r29,#8 14278 0000c764 64210000 snei r1,r1,#0 14279 0000c768 10200020 beqz r1,L226_LF9 14280 0000c76c 54000000 nop; not filled. 14281 0000c770 L227_LF9: 14282 0000c770 23bdfff8 addi r29,r29,#-8 14283 0000c774 3c070001 lhi r7,((LC11_LF9)>>16)&0xffff 14284 0000c778 24e772c4 addui r7,r7,(LC11_LF9)&0xffff 14285 0000c77c L256_LF9: 14286 0000c77c afa70000 sw (r29),r7 14287 0000c780 0c000aa0 jal _printf 14288 0000c784 54000000 nop; not filled. 14289 0000c788 23bd0008 addi r29,r29,#8 14290 0000c78c L226_LF9: 14291 0000c78c 0fffab50 jal _ProcessSchedule 14292 0000c790 54000000 nop; not filled. 14293 0000c794 080000f0 j L223_LF9 14294 0000c798 54000000 nop; not filled. 14295 0000c79c L228_LF9: 14296 0000c79c 3c04fff0 lhi r4,#-16 14297 0000c7a0 248401a0 addui r4,r4,#416 14298 0000c7a4 3c03fff0 lhi r3,#-16 14299 0000c7a8 24630180 addui r3,r3,#384 14300 0000c7ac L229_LF9: 14301 0000c7ac 8c820000 lw r2,(r4) 14302 0000c7b0 8c610000 lw r1,(r3) 14303 0000c7b4 23bdfff0 addi r29,r29,#-16 14304 0000c7b8 3c070001 lhi r7,((LC12_LF9)>>16)&0xffff 14305 0000c7bc 24e772dc addui r7,r7,(LC12_LF9)&0xffff 14306 0000c7c0 afa70000 sw (r29),r7 14307 0000c7c4 afa10004 sw 4(r29),r1 14308 0000c7c8 afa10008 sw 8(r29),r1 14309 0000c7cc afa2000c sw 12(r29),r2 14310 0000c7d0 0c000a50 jal _printf 14311 0000c7d4 54000000 nop; not filled. 14312 0000c7d8 23bd0010 addi r29,r29,#16 14313 0000c7dc 6c410001 sgti r1,r2,#1 14314 0000c7e0 102000a4 beqz r1,L223_LF9 14315 0000c7e4 54000000 nop; not filled. 14316 0000c7e8 0bffffc0 j L229_LF9 14317 0000c7ec 54000000 nop; not filled. 14318 0000c7f0 L233_LF9: 14319 0000c7f0 23bdfff0 addi r29,r29,#-16 14320 0000c7f4 3c070001 lhi r7,((LC13_LF9)>>16)&0xffff 14321 0000c7f8 24e77314 addui r7,r7,(LC13_LF9)&0xffff 14322 0000c7fc 08000038 j L255_LF9 14323 0000c800 54000000 nop; not filled. 14324 0000c804 L234_LF9: 14325 0000c804 23bdfff0 addi r29,r29,#-16 14326 0000c808 3c070001 lhi r7,((LC14_LF9)>>16)&0xffff 14327 0000c80c 24e77348 addui r7,r7,(LC14_LF9)&0xffff 14328 0000c810 08000024 j L255_LF9 14329 0000c814 54000000 nop; not filled. 14330 0000c818 L235_LF9: 14331 0000c818 23bdfff0 addi r29,r29,#-16 14332 0000c81c 3c070001 lhi r7,((LC15_LF9)>>16)&0xffff 14333 0000c820 24e77380 addui r7,r7,(LC15_LF9)&0xffff 14334 0000c824 08000010 j L255_LF9 14335 0000c828 54000000 nop; not filled. 14336 0000c82c L236_LF9: 14337 0000c82c 23bdfff0 addi r29,r29,#-16 14338 0000c830 3c070001 lhi r7,((LC16_LF9)>>16)&0xffff 14339 0000c834 24e773bc addui r7,r7,(LC16_LF9)&0xffff 14340 0000c838 L255_LF9: 14341 0000c838 afa70000 sw (r29),r7 14342 0000c83c afa60004 sw 4(r29),r6 14343 0000c840 afa40008 sw 8(r29),r4 14344 0000c844 0c0009dc jal _printf 14345 0000c848 54000000 nop; not filled. 14346 0000c84c 0c0009bc jal _exitsim 14347 0000c850 54000000 nop; not filled. 14348 0000c854 23bd0010 addi r29,r29,#16 14349 0000c858 0800002c j L223_LF9 14350 0000c85c 54000000 nop; not filled. 14351 0000c860 L237_LF9: 14352 0000c860 23bdfff8 addi r29,r29,#-8 14353 0000c864 3c070001 lhi r7,((LC17_LF9)>>16)&0xffff 14354 0000c868 24e773ec addui r7,r7,(LC17_LF9)&0xffff 14355 0000c86c L254_LF9: 14356 0000c86c afa70000 sw (r29),r7 14357 0000c870 afa20004 sw 4(r29),r2 14358 0000c874 0c0009ac jal _printf 14359 0000c878 54000000 nop; not filled. 14360 0000c87c 0c00098c jal _exitsim 14361 0000c880 54000000 nop; not filled. 14362 0000c884 L243_LF9: 14363 0000c884 23bd0008 addi r29,r29,#8 14364 0000c888 L223_LF9: 14365 0000c888 23bdfff8 addi r29,r29,#-8 14366 0000c88c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 14367 0000c890 24424038 addui r2,r2,(_debugstr)&0xffff 14368 0000c894 afa20000 sw (r29),r2 14369 0000c898 20070074 addi r7,r0,#116 14370 0000c89c afa70004 sw 4(r29),r7 14371 0000c8a0 0fff9ce8 jal _dindex 14372 0000c8a4 54000000 nop; not filled. 14373 0000c8a8 23bd0008 addi r29,r29,#8 14374 0000c8ac 64210000 snei r1,r1,#0 14375 0000c8b0 1420002c bnez r1,L242_LF9 14376 0000c8b4 54000000 nop; not filled. 14377 0000c8b8 23bdfff8 addi r29,r29,#-8 14378 0000c8bc afa20000 sw (r29),r2 14379 0000c8c0 2007002b addi r7,r0,#43 14380 0000c8c4 afa70004 sw 4(r29),r7 14381 0000c8c8 0fff9cc0 jal _dindex 14382 0000c8cc 54000000 nop; not filled. 14383 0000c8d0 23bd0008 addi r29,r29,#8 14384 0000c8d4 64210000 snei r1,r1,#0 14385 0000c8d8 10200020 beqz r1,L241_LF9 14386 0000c8dc 54000000 nop; not filled. 14387 0000c8e0 L242_LF9: 14388 0000c8e0 23bdfff8 addi r29,r29,#-8 14389 0000c8e4 3c070001 lhi r7,((LC18_LF9)>>16)&0xffff 14390 0000c8e8 24e77424 addui r7,r7,(LC18_LF9)&0xffff 14391 0000c8ec afa70000 sw (r29),r7 14392 0000c8f0 0c000930 jal _printf 14393 0000c8f4 54000000 nop; not filled. 14394 0000c8f8 23bd0008 addi r29,r29,#8 14395 0000c8fc L241_LF9: 14396 0000c8fc 0fff4868 jal _intrreturn 14397 0000c900 54000000 nop; not filled. 14398 0000c904 8fa20000 lw r2,0(r29) 14399 0000c908 8fa30004 lw r3,4(r29) 14400 0000c90c 8fa40008 lw r4,8(r29) 14401 0000c910 8fa5000c lw r5,12(r29) 14402 0000c914 8fa60010 lw r6,16(r29) 14403 0000c918 8fa70014 lw r7,20(r29) 14404 0000c91c 8fdffff8 lw r31,-8(r30) 14405 0000c920 001ee820 add r29,r0,r30 14406 0000c924 8fdefffc lw r30,-4(r30) 14407 0000c928 4be00000 jr r31 14408 0000c92c 54000000 nop 14409 0000c930 .endproc _dointerrupt 14410 ; Compiled by GCC 14412 0000c930 .align 2 14413 0000c930 .proc _isspace 14414 0000c930 .global _isspace 14415 0000c930 _isspace: 14416 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 14417 0000c930 afbefffc sw -4(r29),r30; push fp 14418 0000c934 001df020 add r30,r0,r29; fp = sp 14419 0000c938 afbffff8 sw -8(r29),r31; push ret addr 14420 0000c93c 2fbd0010 subui r29,r29,#16; alloc local storage 14421 0000c940 afa20000 sw 0(r29),r2 14422 0000c944 83c20003 lb r2,3(r30) 14423 0000c948 201f0000 addi r31,r0,#0 14424 0000c94c 304100ff andi r1,r2,#0x00ff 14425 0000c950 60210020 seqi r1,r1,#32 14426 0000c954 14200018 bnez r1,L6_LF10 14427 0000c958 54000000 nop; not filled. 14428 0000c95c 2041fff7 addi r1,r2,#-9 14429 0000c960 302100ff andi r1,r1,#0x00ff 14430 0000c964 70210001 sleui r1,r1,#1 14431 0000c968 10200008 beqz r1,L5_LF10 14432 0000c96c 54000000 nop; not filled. 14433 0000c970 L6_LF10: 14434 0000c970 201f0001 addi r31,r0,#1 14435 0000c974 L5_LF10: 14436 0000c974 001f0820 add r1,r0,r31 14437 0000c978 8fa20000 lw r2,0(r29) 14438 0000c97c 8fdffff8 lw r31,-8(r30) 14439 0000c980 001ee820 add r29,r0,r30 14440 0000c984 8fdefffc lw r30,-4(r30) 14441 0000c988 4be00000 jr r31 14442 0000c98c 54000000 nop 14443 0000c990 .endproc _isspace 14444 0000c990 .align 2 14445 0000c990 .proc _isxdigit 14446 0000c990 .global _isxdigit 14447 0000c990 _isxdigit: 14448 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 14449 0000c990 afbefffc sw -4(r29),r30; push fp 14450 0000c994 001df020 add r30,r0,r29; fp = sp 14451 0000c998 afbffff8 sw -8(r29),r31; push ret addr 14452 0000c99c 2fbd0010 subui r29,r29,#16; alloc local storage 14453 0000c9a0 afa20000 sw 0(r29),r2 14454 0000c9a4 83df0003 lb r31,3(r30) 14455 0000c9a8 20020000 addi r2,r0,#0 14456 0000c9ac 23e1ffd0 addi r1,r31,#-48 14457 0000c9b0 302100ff andi r1,r1,#0x00ff 14458 0000c9b4 70210009 sleui r1,r1,#9 14459 0000c9b8 14200028 bnez r1,L12_LF10 14460 0000c9bc 54000000 nop; not filled. 14461 0000c9c0 23e1ff9f addi r1,r31,#-97 14462 0000c9c4 302100ff andi r1,r1,#0x00ff 14463 0000c9c8 70210005 sleui r1,r1,#5 14464 0000c9cc 14200014 bnez r1,L12_LF10 14465 0000c9d0 54000000 nop; not filled. 14466 0000c9d4 33e100ff andi r1,r31,#0x00ff 14467 0000c9d8 64210041 snei r1,r1,#65 14468 0000c9dc 14200008 bnez r1,L11_LF10 14469 0000c9e0 54000000 nop; not filled. 14470 0000c9e4 L12_LF10: 14471 0000c9e4 20020001 addi r2,r0,#1 14472 0000c9e8 L11_LF10: 14473 0000c9e8 00020820 add r1,r0,r2 14474 0000c9ec 8fa20000 lw r2,0(r29) 14475 0000c9f0 8fdffff8 lw r31,-8(r30) 14476 0000c9f4 001ee820 add r29,r0,r30 14477 0000c9f8 8fdefffc lw r30,-4(r30) 14478 0000c9fc 4be00000 jr r31 14479 0000ca00 54000000 nop 14480 0000ca04 .endproc _isxdigit 14481 0000ca04 .align 2 14482 0000ca04 .proc _DisableIntrs 14483 0000ca04 .global _DisableIntrs 14484 0000ca04 _DisableIntrs: 14485 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 14486 0000ca04 afbefffc sw -4(r29),r30; push fp 14487 0000ca08 001df020 add r30,r0,r29; fp = sp 14488 0000ca0c afbffff8 sw -8(r29),r31; push ret addr 14489 0000ca10 2fbd0010 subui r29,r29,#16; alloc local storage 14490 0000ca14 afa20000 sw 0(r29),r2 14491 0000ca18 23bdfff8 addi r29,r29,#-8 14492 0000ca1c 2002000f addi r2,r0,#15 14493 0000ca20 afa20000 sw (r29),r2 14494 0000ca24 0fff4860 jal _SetIntrs 14495 0000ca28 54000000 nop; not filled. 14496 0000ca2c 23bd0008 addi r29,r29,#8 14497 0000ca30 8fa20000 lw r2,0(r29) 14498 0000ca34 8fdffff8 lw r31,-8(r30) 14499 0000ca38 001ee820 add r29,r0,r30 14500 0000ca3c 8fdefffc lw r30,-4(r30) 14501 0000ca40 4be00000 jr r31 14502 0000ca44 54000000 nop 14503 0000ca48 .endproc _DisableIntrs 14504 0000ca48 .align 2 14505 0000ca48 .proc _EnableIntrs 14506 0000ca48 .global _EnableIntrs 14507 0000ca48 _EnableIntrs: 14508 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 14509 0000ca48 afbefffc sw -4(r29),r30; push fp 14510 0000ca4c 001df020 add r30,r0,r29; fp = sp 14511 0000ca50 afbffff8 sw -8(r29),r31; push ret addr 14512 0000ca54 2fbd0010 subui r29,r29,#16; alloc local storage 14513 0000ca58 afa20000 sw 0(r29),r2 14514 0000ca5c 23bdfff8 addi r29,r29,#-8 14515 0000ca60 20020000 addi r2,r0,#0 14516 0000ca64 afa20000 sw (r29),r2 14517 0000ca68 0fff481c jal _SetIntrs 14518 0000ca6c 54000000 nop; not filled. 14519 0000ca70 23bd0008 addi r29,r29,#8 14520 0000ca74 8fa20000 lw r2,0(r29) 14521 0000ca78 8fdffff8 lw r31,-8(r30) 14522 0000ca7c 001ee820 add r29,r0,r30 14523 0000ca80 8fdefffc lw r30,-4(r30) 14524 0000ca84 4be00000 jr r31 14525 0000ca88 54000000 nop 14526 0000ca8c .endproc _EnableIntrs 14527 0000ca8c .align 2 14528 0000ca8c .proc _RestoreIntrs 14529 0000ca8c .global _RestoreIntrs 14530 0000ca8c _RestoreIntrs: 14531 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 14532 0000ca8c afbefffc sw -4(r29),r30; push fp 14533 0000ca90 001df020 add r30,r0,r29; fp = sp 14534 0000ca94 afbffff8 sw -8(r29),r31; push ret addr 14535 0000ca98 2fbd0010 subui r29,r29,#16; alloc local storage 14536 0000ca9c afa20000 sw 0(r29),r2 14537 0000caa0 23bdfff8 addi r29,r29,#-8 14538 0000caa4 8fc20000 lw r2,(r30) 14539 0000caa8 afa20000 sw (r29),r2 14540 0000caac 0fff47d8 jal _SetIntrs 14541 0000cab0 54000000 nop; not filled. 14542 0000cab4 23bd0008 addi r29,r29,#8 14543 0000cab8 8fa20000 lw r2,0(r29) 14544 0000cabc 8fdffff8 lw r31,-8(r30) 14545 0000cac0 001ee820 add r29,r0,r30 14546 0000cac4 8fdefffc lw r30,-4(r30) 14547 0000cac8 4be00000 jr r31 14548 0000cacc 54000000 nop 14549 0000cad0 .endproc _RestoreIntrs 14550 0000cad0 .align 2 14551 0000cad0 .proc _QueueLinkInit 14552 0000cad0 .global _QueueLinkInit 14553 0000cad0 _QueueLinkInit: 14554 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 14555 0000cad0 afbefffc sw -4(r29),r30; push fp 14556 0000cad4 001df020 add r30,r0,r29; fp = sp 14557 0000cad8 afbffff8 sw -8(r29),r31; push ret addr 14558 0000cadc 2fbd0010 subui r29,r29,#16; alloc local storage 14559 0000cae0 afa20000 sw 0(r29),r2 14560 0000cae4 8fc10000 lw r1,(r30) 14561 0000cae8 8fc20004 lw r2,4(r30) 14562 0000caec 201f0000 addi r31,r0,#0 14563 0000caf0 ac3f0000 sw (r1),r31 14564 0000caf4 ac22000c sw 12(r1),r2 14565 0000caf8 8fa20000 lw r2,0(r29) 14566 0000cafc 8fdffff8 lw r31,-8(r30) 14567 0000cb00 001ee820 add r29,r0,r30 14568 0000cb04 8fdefffc lw r30,-4(r30) 14569 0000cb08 4be00000 jr r31 14570 0000cb0c 54000000 nop 14571 0000cb10 .endproc _QueueLinkInit 14572 0000cb10 .align 2 14573 0000cb10 .proc _QueueNext 14574 0000cb10 .global _QueueNext 14575 0000cb10 _QueueNext: 14576 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 14577 0000cb10 afbefffc sw -4(r29),r30; push fp 14578 0000cb14 001df020 add r30,r0,r29; fp = sp 14579 0000cb18 afbffff8 sw -8(r29),r31; push ret addr 14580 0000cb1c 2fbd0008 subui r29,r29,#8; alloc local storage 14581 0000cb20 8fc10000 lw r1,(r30) 14582 0000cb24 8c210000 lw r1,(r1) 14583 0000cb28 8fdffff8 lw r31,-8(r30) 14584 0000cb2c 001ee820 add r29,r0,r30 14585 0000cb30 8fdefffc lw r30,-4(r30) 14586 0000cb34 4be00000 jr r31 14587 0000cb38 54000000 nop 14588 0000cb3c .endproc _QueueNext 14589 0000cb3c .align 2 14590 0000cb3c .proc _QueuePrev 14591 0000cb3c .global _QueuePrev 14592 0000cb3c _QueuePrev: 14593 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 14594 0000cb3c afbefffc sw -4(r29),r30; push fp 14595 0000cb40 001df020 add r30,r0,r29; fp = sp 14596 0000cb44 afbffff8 sw -8(r29),r31; push ret addr 14597 0000cb48 2fbd0008 subui r29,r29,#8; alloc local storage 14598 0000cb4c 8fc10000 lw r1,(r30) 14599 0000cb50 8c210004 lw r1,4(r1) 14600 0000cb54 8fdffff8 lw r31,-8(r30) 14601 0000cb58 001ee820 add r29,r0,r30 14602 0000cb5c 8fdefffc lw r30,-4(r30) 14603 0000cb60 4be00000 jr r31 14604 0000cb64 54000000 nop 14605 0000cb68 .endproc _QueuePrev 14606 0000cb68 .align 2 14607 0000cb68 .proc _QueueFirst 14608 0000cb68 .global _QueueFirst 14609 0000cb68 _QueueFirst: 14610 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 14611 0000cb68 afbefffc sw -4(r29),r30; push fp 14612 0000cb6c 001df020 add r30,r0,r29; fp = sp 14613 0000cb70 afbffff8 sw -8(r29),r31; push ret addr 14614 0000cb74 2fbd0008 subui r29,r29,#8; alloc local storage 14615 0000cb78 8fc10000 lw r1,(r30) 14616 0000cb7c 8c210000 lw r1,(r1) 14617 0000cb80 8fdffff8 lw r31,-8(r30) 14618 0000cb84 001ee820 add r29,r0,r30 14619 0000cb88 8fdefffc lw r30,-4(r30) 14620 0000cb8c 4be00000 jr r31 14621 0000cb90 54000000 nop 14622 0000cb94 .endproc _QueueFirst 14623 0000cb94 .align 2 14624 0000cb94 .proc _QueueLast 14625 0000cb94 .global _QueueLast 14626 0000cb94 _QueueLast: 14627 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 14628 0000cb94 afbefffc sw -4(r29),r30; push fp 14629 0000cb98 001df020 add r30,r0,r29; fp = sp 14630 0000cb9c afbffff8 sw -8(r29),r31; push ret addr 14631 0000cba0 2fbd0008 subui r29,r29,#8; alloc local storage 14632 0000cba4 8fc10000 lw r1,(r30) 14633 0000cba8 8c210004 lw r1,4(r1) 14634 0000cbac 8fdffff8 lw r31,-8(r30) 14635 0000cbb0 001ee820 add r29,r0,r30 14636 0000cbb4 8fdefffc lw r30,-4(r30) 14637 0000cbb8 4be00000 jr r31 14638 0000cbbc 54000000 nop 14639 0000cbc0 .endproc _QueueLast 14640 0000cbc0 .align 2 14641 0000cbc0 .proc _QueueInsertAfter 14642 0000cbc0 .global _QueueInsertAfter 14643 0000cbc0 _QueueInsertAfter: 14644 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 14645 0000cbc0 afbefffc sw -4(r29),r30; push fp 14646 0000cbc4 001df020 add r30,r0,r29; fp = sp 14647 0000cbc8 afbffff8 sw -8(r29),r31; push ret addr 14648 0000cbcc 2fbd0010 subui r29,r29,#16; alloc local storage 14649 0000cbd0 afa20000 sw 0(r29),r2 14650 0000cbd4 afa30004 sw 4(r29),r3 14651 0000cbd8 8fc30000 lw r3,(r30) 14652 0000cbdc 8fc20004 lw r2,4(r30) 14653 0000cbe0 8fc10008 lw r1,8(r30) 14654 0000cbe4 ac230008 sw 8(r1),r3 14655 0000cbe8 ac220004 sw 4(r1),r2 14656 0000cbec 8c5f0000 lw r31,(r2) 14657 0000cbf0 ac3f0000 sw (r1),r31 14658 0000cbf4 ac410000 sw (r2),r1 14659 0000cbf8 8c220000 lw r2,(r1) 14660 0000cbfc ac410004 sw 4(r2),r1 14661 0000cc00 8c610008 lw r1,8(r3) 14662 0000cc04 20210001 addi r1,r1,#1 14663 0000cc08 ac610008 sw 8(r3),r1 14664 0000cc0c 8fa20000 lw r2,0(r29) 14665 0000cc10 8fa30004 lw r3,4(r29) 14666 0000cc14 8fdffff8 lw r31,-8(r30) 14667 0000cc18 001ee820 add r29,r0,r30 14668 0000cc1c 8fdefffc lw r30,-4(r30) 14669 0000cc20 4be00000 jr r31 14670 0000cc24 54000000 nop 14671 0000cc28 .endproc _QueueInsertAfter 14672 0000cc28 .align 2 14673 0000cc28 .proc _QueueInsertFirst 14674 0000cc28 .global _QueueInsertFirst 14675 0000cc28 _QueueInsertFirst: 14676 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 14677 0000cc28 afbefffc sw -4(r29),r30; push fp 14678 0000cc2c 001df020 add r30,r0,r29; fp = sp 14679 0000cc30 afbffff8 sw -8(r29),r31; push ret addr 14680 0000cc34 2fbd0010 subui r29,r29,#16; alloc local storage 14681 0000cc38 afa20000 sw 0(r29),r2 14682 0000cc3c afa30004 sw 4(r29),r3 14683 0000cc40 8fc30000 lw r3,(r30) 14684 0000cc44 8fc10004 lw r1,4(r30) 14685 0000cc48 ac230008 sw 8(r1),r3 14686 0000cc4c ac230004 sw 4(r1),r3 14687 0000cc50 8c7f0000 lw r31,(r3) 14688 0000cc54 ac3f0000 sw (r1),r31 14689 0000cc58 ac610000 sw (r3),r1 14690 0000cc5c 8c220000 lw r2,(r1) 14691 0000cc60 ac410004 sw 4(r2),r1 14692 0000cc64 8c610008 lw r1,8(r3) 14693 0000cc68 20210001 addi r1,r1,#1 14694 0000cc6c ac610008 sw 8(r3),r1 14695 0000cc70 8fa20000 lw r2,0(r29) 14696 0000cc74 8fa30004 lw r3,4(r29) 14697 0000cc78 8fdffff8 lw r31,-8(r30) 14698 0000cc7c 001ee820 add r29,r0,r30 14699 0000cc80 8fdefffc lw r30,-4(r30) 14700 0000cc84 4be00000 jr r31 14701 0000cc88 54000000 nop 14702 0000cc8c .endproc _QueueInsertFirst 14703 0000cc8c .align 2 14704 0000cc8c .proc _QueueInsertLast 14705 0000cc8c .global _QueueInsertLast 14706 0000cc8c _QueueInsertLast: 14707 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 14708 0000cc8c afbefffc sw -4(r29),r30; push fp 14709 0000cc90 001df020 add r30,r0,r29; fp = sp 14710 0000cc94 afbffff8 sw -8(r29),r31; push ret addr 14711 0000cc98 2fbd0010 subui r29,r29,#16; alloc local storage 14712 0000cc9c afa20000 sw 0(r29),r2 14713 0000cca0 afa30004 sw 4(r29),r3 14714 0000cca4 8fc30000 lw r3,(r30) 14715 0000cca8 8fc10004 lw r1,4(r30) 14716 0000ccac 8c620004 lw r2,4(r3) 14717 0000ccb0 ac230008 sw 8(r1),r3 14718 0000ccb4 ac220004 sw 4(r1),r2 14719 0000ccb8 8c5f0000 lw r31,(r2) 14720 0000ccbc ac3f0000 sw (r1),r31 14721 0000ccc0 ac410000 sw (r2),r1 14722 0000ccc4 8c220000 lw r2,(r1) 14723 0000ccc8 ac410004 sw 4(r2),r1 14724 0000cccc 8c610008 lw r1,8(r3) 14725 0000ccd0 20210001 addi r1,r1,#1 14726 0000ccd4 ac610008 sw 8(r3),r1 14727 0000ccd8 8fa20000 lw r2,0(r29) 14728 0000ccdc 8fa30004 lw r3,4(r29) 14729 0000cce0 8fdffff8 lw r31,-8(r30) 14730 0000cce4 001ee820 add r29,r0,r30 14731 0000cce8 8fdefffc lw r30,-4(r30) 14732 0000ccec 4be00000 jr r31 14733 0000ccf0 54000000 nop 14734 0000ccf4 .endproc _QueueInsertLast 14735 0000ccf4 .align 2 14736 0000ccf4 .proc _QueueRemove 14737 0000ccf4 .global _QueueRemove 14738 0000ccf4 _QueueRemove: 14739 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 14740 0000ccf4 afbefffc sw -4(r29),r30; push fp 14741 0000ccf8 001df020 add r30,r0,r29; fp = sp 14742 0000ccfc afbffff8 sw -8(r29),r31; push ret addr 14743 0000cd00 2fbd0010 subui r29,r29,#16; alloc local storage 14744 0000cd04 afa20000 sw 0(r29),r2 14745 0000cd08 afa30004 sw 4(r29),r3 14746 0000cd0c 8fdf0000 lw r31,(r30) 14747 0000cd10 8fe10008 lw r1,8(r31) 14748 0000cd14 8c210008 lw r1,8(r1) 14749 0000cd18 6c210000 sgti r1,r1,#0 14750 0000cd1c 1020002c beqz r1,L44_LF10 14751 0000cd20 54000000 nop; not filled. 14752 0000cd24 8fe10004 lw r1,4(r31) 14753 0000cd28 8fe30000 lw r3,(r31) 14754 0000cd2c ac230000 sw (r1),r3 14755 0000cd30 8fe10000 lw r1,(r31) 14756 0000cd34 8fe30004 lw r3,4(r31) 14757 0000cd38 ac230004 sw 4(r1),r3 14758 0000cd3c 8fe20008 lw r2,8(r31) 14759 0000cd40 8c410008 lw r1,8(r2) 14760 0000cd44 2021ffff addi r1,r1,#-1 14761 0000cd48 ac410008 sw 8(r2),r1 14762 0000cd4c L44_LF10: 14763 0000cd4c 20030000 addi r3,r0,#0 14764 0000cd50 afe30000 sw (r31),r3 14765 0000cd54 8fa20000 lw r2,0(r29) 14766 0000cd58 8fa30004 lw r3,4(r29) 14767 0000cd5c 8fdffff8 lw r31,-8(r30) 14768 0000cd60 001ee820 add r29,r0,r30 14769 0000cd64 8fdefffc lw r30,-4(r30) 14770 0000cd68 4be00000 jr r31 14771 0000cd6c 54000000 nop 14772 0000cd70 .endproc _QueueRemove 14773 0000cd70 .align 2 14774 0000cd70 .proc _QueueLength 14775 0000cd70 .global _QueueLength 14776 0000cd70 _QueueLength: 14777 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 14778 0000cd70 afbefffc sw -4(r29),r30; push fp 14779 0000cd74 001df020 add r30,r0,r29; fp = sp 14780 0000cd78 afbffff8 sw -8(r29),r31; push ret addr 14781 0000cd7c 2fbd0008 subui r29,r29,#8; alloc local storage 14782 0000cd80 8fc10000 lw r1,(r30) 14783 0000cd84 8c210008 lw r1,8(r1) 14784 0000cd88 8fdffff8 lw r31,-8(r30) 14785 0000cd8c 001ee820 add r29,r0,r30 14786 0000cd90 8fdefffc lw r30,-4(r30) 14787 0000cd94 4be00000 jr r31 14788 0000cd98 54000000 nop 14789 0000cd9c .endproc _QueueLength 14790 0000cd9c .align 2 14791 0000cd9c .proc _QueueEmpty 14792 0000cd9c .global _QueueEmpty 14793 0000cd9c _QueueEmpty: 14794 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 14795 0000cd9c afbefffc sw -4(r29),r30; push fp 14796 0000cda0 001df020 add r30,r0,r29; fp = sp 14797 0000cda4 afbffff8 sw -8(r29),r31; push ret addr 14798 0000cda8 2fbd0008 subui r29,r29,#8; alloc local storage 14799 0000cdac 8fc10000 lw r1,(r30) 14800 0000cdb0 8c210008 lw r1,8(r1) 14801 0000cdb4 60210000 seqi r1,r1,#0 14802 0000cdb8 8fdffff8 lw r31,-8(r30) 14803 0000cdbc 001ee820 add r29,r0,r30 14804 0000cdc0 8fdefffc lw r30,-4(r30) 14805 0000cdc4 4be00000 jr r31 14806 0000cdc8 54000000 nop 14807 0000cdcc .endproc _QueueEmpty 14808 0000cdcc .data 14809 00017447 .align 2 14810 00017448 LC0_LF10: 14811 00017448 50726f63 .ascii "Process #\000" 14811 0001744c 65737320 14811 00017450 2300 14812 00017452 .align 2 14813 00017454 LC1_LF10: 14814 00017454 52756e6e .ascii "Running process %d (iteration %d)!\n\000" 14814 00017458 696e6720 14814 0001745c 70726f63 14814 00017460 65737320 14814 00017464 25642028 14814 00017468 69746572 14814 0001746c 6174696f 14814 00017470 6e202564 14814 00017474 29210a00 14815 00017478 .text 14816 0000cdcc .align 2 14817 0000cdcc .proc _doSomething_LF10 14818 0000cdcc _doSomething_LF10: 14819 ; Function 'doSomething'; 80 bytes of locals, 7 regs to save. 14820 0000cdcc afbefffc sw -4(r29),r30; push fp 14821 0000cdd0 001df020 add r30,r0,r29; fp = sp 14822 0000cdd4 afbffff8 sw -8(r29),r31; push ret addr 14823 0000cdd8 2fbd0078 subui r29,r29,#120; alloc local storage 14824 0000cddc afa20000 sw 0(r29),r2 14825 0000cde0 afa30004 sw 4(r29),r3 14826 0000cde4 afa40008 sw 8(r29),r4 14827 0000cde8 afa5000c sw 12(r29),r5 14828 0000cdec afa60010 sw 16(r29),r6 14829 0000cdf0 afa70014 sw 20(r29),r7 14830 0000cdf4 afa80018 sw 24(r29),r8 14831 0000cdf8 8fc60000 lw r6,(r30) 14832 0000cdfc 2001000a addi r1,r0,#10 14833 0000ce00 00c00035 movi2fp f0,r6 14834 0000ce04 00200835 movi2fp f1,r1 14835 0000ce08 0401000f div f0,f0,f1 14836 0000ce0c 00001034 movfp2i r2,f0 14837 0000ce10 50410002 slli r1,r2,#0x2 14838 0000ce14 00220820 add r1,r1,r2 14839 0000ce18 50210001 slli r1,r1,#0x1 14840 0000ce1c 00c13822 sub r7,r6,r1 14841 0000ce20 70c10063 slei r1,r6,#99 14842 0000ce24 102000e4 beqz r1,L52_LF10 14843 0000ce28 54000000 nop; not filled. 14844 0000ce2c 23bdfff8 addi r29,r29,#-8 14845 0000ce30 50e10002 slli r1,r7,#0x2 14846 0000ce34 00270820 add r1,r1,r7 14847 0000ce38 50210002 slli r1,r1,#0x2 14848 0000ce3c 3c080001 lhi r8,((_mysems_LF10)>>16)&0xffff 14849 0000ce40 250874ec addui r8,r8,(_mysems_LF10)&0xffff 14850 0000ce44 00280820 add r1,r1,r8 14851 0000ce48 afa10000 sw (r29),r1 14852 0000ce4c 20080001 addi r8,r0,#1 14853 0000ce50 afa80004 sw 4(r29),r8 14854 0000ce54 0fff56e8 jal _SemInit 14855 0000ce58 54000000 nop; not filled. 14856 0000ce5c 20030001 addi r3,r0,#1 14857 0000ce60 23bd0008 addi r29,r29,#8 14858 0000ce64 23c4ffd0 addi r4,r30,#-48 14859 0000ce68 23c5ffa8 addi r5,r30,#-88 14860 0000ce6c 00061020 add r2,r0,r6 14861 0000ce70 L56_LF10: 14862 0000ce70 23bdfff8 addi r29,r29,#-8 14863 0000ce74 afa40000 sw (r29),r4 14864 0000ce78 3c080001 lhi r8,((LC0_LF10)>>16)&0xffff 14865 0000ce7c 25087448 addui r8,r8,(LC0_LF10)&0xffff 14866 0000ce80 afa80004 sw 4(r29),r8 14867 0000ce84 0fff9244 jal _dstrcpy 14868 0000ce88 54000000 nop; not filled. 14869 0000ce8c afa30000 sw (r29),r3 14870 0000ce90 afa50004 sw 4(r29),r5 14871 0000ce94 0fff9770 jal _ditoa 14872 0000ce98 54000000 nop; not filled. 14873 0000ce9c afa40000 sw (r29),r4 14874 0000cea0 afa50004 sw 4(r29),r5 14875 0000cea4 0fff9314 jal _dstrcat 14876 0000cea8 54000000 nop; not filled. 14877 0000ceac 23bdfff0 addi r29,r29,#-16 14878 0000ceb0 3c080000 lhi r8,((_doSomething_LF10)>>16)&0xffff 14879 0000ceb4 2508cdcc addui r8,r8,(_doSomething_LF10)&0xffff 14880 0000ceb8 afa80000 sw (r29),r8 14881 0000cebc 50410005 slli r1,r2,#0x5 14882 0000cec0 00220822 sub r1,r1,r2 14883 0000cec4 50210002 slli r1,r1,#0x2 14884 0000cec8 00220820 add r1,r1,r2 14885 0000cecc 50210003 slli r1,r1,#0x3 14886 0000ced0 00260820 add r1,r1,r6 14887 0000ced4 afa10004 sw 4(r29),r1 14888 0000ced8 20080000 addi r8,r0,#0 14889 0000cedc afa80008 sw 8(r29),r8 14890 0000cee0 afa8000c sw 12(r29),r8 14891 0000cee4 afa40010 sw 16(r29),r4 14892 0000cee8 afa80014 sw 20(r29),r8 14893 0000ceec 0fffaeac jal _ProcessFork 14894 0000cef0 54000000 nop; not filled. 14895 0000cef4 23bd0018 addi r29,r29,#24 14896 0000cef8 00461020 add r2,r2,r6 14897 0000cefc 20630001 addi r3,r3,#1 14898 0000cf00 70610006 slei r1,r3,#6 14899 0000cf04 1420ff68 bnez r1,L56_LF10 14900 0000cf08 54000000 nop; not filled. 14901 0000cf0c L52_LF10: 14902 0000cf0c 23bdfff8 addi r29,r29,#-8 14903 0000cf10 50e10002 slli r1,r7,#0x2 14904 0000cf14 00270820 add r1,r1,r7 14905 0000cf18 50210002 slli r1,r1,#0x2 14906 0000cf1c 3c080001 lhi r8,((_mysems_LF10)>>16)&0xffff 14907 0000cf20 250874ec addui r8,r8,(_mysems_LF10)&0xffff 14908 0000cf24 00280820 add r1,r1,r8 14909 0000cf28 afa10000 sw (r29),r1 14910 0000cf2c 0fff576c jal _SemWait 14911 0000cf30 54000000 nop; not filled. 14912 0000cf34 20030000 addi r3,r0,#0 14913 0000cf38 23bd0008 addi r29,r29,#8 14914 0000cf3c 50c20001 slli r2,r6,#0x1 14915 0000cf40 0062082a slt r1,r3,r2 14916 0000cf44 10200070 beqz r1,L59_LF10 14917 0000cf48 54000000 nop; not filled. 14918 0000cf4c 200503e8 addi r5,r0,#1000 14919 0000cf50 00022020 add r4,r0,r2 14920 0000cf54 L61_LF10: 14921 0000cf54 00600035 movi2fp f0,r3 14922 0000cf58 00a00835 movi2fp f1,r5 14923 0000cf5c 0401000f div f0,f0,f1 14924 0000cf60 00001034 movfp2i r2,f0 14925 0000cf64 50410005 slli r1,r2,#0x5 14926 0000cf68 00220822 sub r1,r1,r2 14927 0000cf6c 50210002 slli r1,r1,#0x2 14928 0000cf70 00220820 add r1,r1,r2 14929 0000cf74 50210003 slli r1,r1,#0x3 14930 0000cf78 00610829 sne r1,r3,r1 14931 0000cf7c 14200028 bnez r1,L62_LF10 14932 0000cf80 54000000 nop; not filled. 14933 0000cf84 23bdfff0 addi r29,r29,#-16 14934 0000cf88 3c080001 lhi r8,((LC1_LF10)>>16)&0xffff 14935 0000cf8c 25087454 addui r8,r8,(LC1_LF10)&0xffff 14936 0000cf90 afa80000 sw (r29),r8 14937 0000cf94 afa60004 sw 4(r29),r6 14938 0000cf98 afa30008 sw 8(r29),r3 14939 0000cf9c 0c000284 jal _printf 14940 0000cfa0 54000000 nop; not filled. 14941 0000cfa4 23bd0010 addi r29,r29,#16 14942 0000cfa8 L62_LF10: 14943 0000cfa8 20630001 addi r3,r3,#1 14944 0000cfac 0064082a slt r1,r3,r4 14945 0000cfb0 1420ffa0 bnez r1,L61_LF10 14946 0000cfb4 54000000 nop; not filled. 14947 0000cfb8 L59_LF10: 14948 0000cfb8 23bdfff8 addi r29,r29,#-8 14949 0000cfbc 50e10002 slli r1,r7,#0x2 14950 0000cfc0 00270820 add r1,r1,r7 14951 0000cfc4 50210002 slli r1,r1,#0x2 14952 0000cfc8 3c080001 lhi r8,((_mysems_LF10)>>16)&0xffff 14953 0000cfcc 250874ec addui r8,r8,(_mysems_LF10)&0xffff 14954 0000cfd0 00280820 add r1,r1,r8 14955 0000cfd4 afa10000 sw (r29),r1 14956 0000cfd8 0fff59d0 jal _SemSignal 14957 0000cfdc 54000000 nop; not filled. 14958 0000cfe0 23bd0008 addi r29,r29,#8 14959 0000cfe4 8fa20000 lw r2,0(r29) 14960 0000cfe8 8fa30004 lw r3,4(r29) 14961 0000cfec 8fa40008 lw r4,8(r29) 14962 0000cff0 8fa5000c lw r5,12(r29) 14963 0000cff4 8fa60010 lw r6,16(r29) 14964 0000cff8 8fa70014 lw r7,20(r29) 14965 0000cffc 8fa80018 lw r8,24(r29) 14966 0000d000 8fdffff8 lw r31,-8(r30) 14967 0000d004 001ee820 add r29,r0,r30 14968 0000d008 8fdefffc lw r30,-4(r30) 14969 0000d00c 4be00000 jr r31 14970 0000d010 54000000 nop 14971 0000d014 .endproc _doSomething_LF10 14972 0000d014 .data 14973 00017478 .align 2 14974 00017478 LC2_LF10: 14975 00017478 63686173 .ascii "chasetail\000" 14975 0001747c 65746169 14975 00017480 6c00 14976 00017482 .align 2 14977 00017484 LC3_LF10: 14978 00017484 43686173 .ascii "Chasing tail %d.\n\000" 14978 00017488 696e6720 14978 0001748c 7461696c 14978 00017490 2025642e 14978 00017494 0a00 14979 00017496 .align 2 14980 00017498 LC4_LF10: 14981 00017498 4f70656e .ascii "Open of (%s,0x%x) returns 0x%x.\n\000" 14981 0001749c 206f6620 14981 000174a0 2825732c 14981 000174a4 30782578 14981 000174a8 29207265 14981 000174ac 7475726e 14981 000174b0 73203078 14981 000174b4 25782e0a 14981 000174b8 00 14982 000174b9 .align 2 14983 000174bc LC5_LF10: 14984 000174bc 43686173 .ascii "ChaseTail\000" 14984 000174c0 65546169 14984 000174c4 6c00 14985 000174c6 .text 14986 0000d014 .align 2 14987 0000d014 .proc _chaseTail_LF10 14988 0000d014 _chaseTail_LF10: 14989 ; Function 'chaseTail'; 0 bytes of locals, 4 regs to save. 14990 0000d014 afbefffc sw -4(r29),r30; push fp 14991 0000d018 001df020 add r30,r0,r29; fp = sp 14992 0000d01c afbffff8 sw -8(r29),r31; push ret addr 14993 0000d020 2fbd0018 subui r29,r29,#24; alloc local storage 14994 0000d024 afa20000 sw 0(r29),r2 14995 0000d028 afa30004 sw 4(r29),r3 14996 0000d02c afa40008 sw 8(r29),r4 14997 0000d030 afa5000c sw 12(r29),r5 14998 0000d034 8fc40000 lw r4,(r30) 14999 0000d038 3c030001 lhi r3,((LC2_LF10)>>16)&0xffff 15000 0000d03c 24637478 addui r3,r3,(LC2_LF10)&0xffff 15001 0000d040 23bdfff8 addi r29,r29,#-8 15002 0000d044 3c050001 lhi r5,((LC3_LF10)>>16)&0xffff 15003 0000d048 24a57484 addui r5,r5,(LC3_LF10)&0xffff 15004 0000d04c afa50000 sw (r29),r5 15005 0000d050 afa40004 sw 4(r29),r4 15006 0000d054 0c0001cc jal _printf 15007 0000d058 54000000 nop; not filled. 15008 0000d05c afa30000 sw (r29),r3 15009 0000d060 20822000 addi r2,r4,#8192 15010 0000d064 afa20004 sw 4(r29),r2 15011 0000d068 0c000164 jal _Open 15012 0000d06c 54000000 nop; not filled. 15013 0000d070 23bdfff8 addi r29,r29,#-8 15014 0000d074 3c050001 lhi r5,((LC4_LF10)>>16)&0xffff 15015 0000d078 24a57498 addui r5,r5,(LC4_LF10)&0xffff 15016 0000d07c afa50000 sw (r29),r5 15017 0000d080 afa30004 sw 4(r29),r3 15018 0000d084 afa20008 sw 8(r29),r2 15019 0000d088 afa1000c sw 12(r29),r1 15020 0000d08c 0c000194 jal _printf 15021 0000d090 54000000 nop; not filled. 15022 0000d094 23bd0010 addi r29,r29,#16 15023 0000d098 70810027 slei r1,r4,#39 15024 0000d09c 10200048 beqz r1,L67_LF10 15025 0000d0a0 54000000 nop; not filled. 15026 0000d0a4 23bdffe8 addi r29,r29,#-24 15027 0000d0a8 3c050000 lhi r5,((_chaseTail_LF10)>>16)&0xffff 15028 0000d0ac 24a5d014 addui r5,r5,(_chaseTail_LF10)&0xffff 15029 0000d0b0 afa50000 sw (r29),r5 15030 0000d0b4 20810001 addi r1,r4,#1 15031 0000d0b8 afa10004 sw 4(r29),r1 15032 0000d0bc 20050000 addi r5,r0,#0 15033 0000d0c0 afa50008 sw 8(r29),r5 15034 0000d0c4 afa5000c sw 12(r29),r5 15035 0000d0c8 3c050001 lhi r5,((LC5_LF10)>>16)&0xffff 15036 0000d0cc 24a574bc addui r5,r5,(LC5_LF10)&0xffff 15037 0000d0d0 afa50010 sw 16(r29),r5 15038 0000d0d4 20050000 addi r5,r0,#0 15039 0000d0d8 afa50014 sw 20(r29),r5 15040 0000d0dc 0fffacbc jal _ProcessFork 15041 0000d0e0 54000000 nop; not filled. 15042 0000d0e4 23bd0018 addi r29,r29,#24 15043 0000d0e8 L67_LF10: 15044 0000d0e8 8fa20000 lw r2,0(r29) 15045 0000d0ec 8fa30004 lw r3,4(r29) 15046 0000d0f0 8fa40008 lw r4,8(r29) 15047 0000d0f4 8fa5000c lw r5,12(r29) 15048 0000d0f8 8fdffff8 lw r31,-8(r30) 15049 0000d0fc 001ee820 add r29,r0,r30 15050 0000d100 8fdefffc lw r30,-4(r30) 15051 0000d104 4be00000 jr r31 15052 0000d108 54000000 nop 15053 0000d10c .endproc _chaseTail_LF10 15054 0000d10c .data 15055 000174c6 .align 2 15056 000174c8 LC6_LF10: 15057 000174c8 25642000 .ascii "%d \000" 15058 000174cc .align 2 15059 000174cc LC7_LF10: 15060 000174cc 52616e64 .ascii "Random number %02i is 0x%08x.\n\000" 15060 000174d0 6f6d206e 15060 000174d4 756d6265 15060 000174d8 72202530 15060 000174dc 32692069 15060 000174e0 73203078 15060 000174e4 25303878 15060 000174e8 2e0a00 15061 000174eb .text 15062 0000d10c .align 2 15063 0000d10c .proc _SysprocCreateProcesses 15064 0000d10c .global _SysprocCreateProcesses 15065 0000d10c _SysprocCreateProcesses: 15066 ; Function 'SysprocCreateProcesses'; 0 bytes of locals, 3 regs to save. 15067 0000d10c afbefffc sw -4(r29),r30; push fp 15068 0000d110 001df020 add r30,r0,r29; fp = sp 15069 0000d114 afbffff8 sw -8(r29),r31; push ret addr 15070 0000d118 2fbd0018 subui r29,r29,#24; alloc local storage 15071 0000d11c afa20000 sw 0(r29),r2 15072 0000d120 afa30004 sw 4(r29),r3 15073 0000d124 afa40008 sw 8(r29),r4 15074 0000d128 3c020001 lhi r2,((_mysems_LF10)>>16)&0xffff 15075 0000d12c 244274ec addui r2,r2,(_mysems_LF10)&0xffff 15076 0000d130 204300b4 addi r3,r2,#180 15077 0000d134 L90_LF10: 15078 0000d134 23bdfff8 addi r29,r29,#-8 15079 0000d138 afa20000 sw (r29),r2 15080 0000d13c 20040001 addi r4,r0,#1 15081 0000d140 afa40004 sw 4(r29),r4 15082 0000d144 0fff53f8 jal _SemInit 15083 0000d148 54000000 nop; not filled. 15084 0000d14c 23bd0008 addi r29,r29,#8 15085 0000d150 20420014 addi r2,r2,#20 15086 0000d154 0043082c sle r1,r2,r3 15087 0000d158 1420ffd8 bnez r1,L90_LF10 15088 0000d15c 54000000 nop; not filled. 15089 0000d160 8fa20000 lw r2,0(r29) 15090 0000d164 8fa30004 lw r3,4(r29) 15091 0000d168 8fa40008 lw r4,8(r29) 15092 0000d16c 8fdffff8 lw r31,-8(r30) 15093 0000d170 001ee820 add r29,r0,r30 15094 0000d174 8fdefffc lw r30,-4(r30) 15095 0000d178 4be00000 jr r31 15096 0000d17c 54000000 nop 15097 0000d180 .endproc _SysprocCreateProcesses 15098 0000d180 .data 15099 000174eb .align 2 15100 000174ec _mysems_LF10: 15101 000174ec .space 200 15102 ;;; This file just includes a single variable that contains the last address 15103 ;;; in the operating system. The rest of memory is available for use by 15104 ;;; processes. 15106 000175b4 .align 2 15107 000175b4 .global _lastosaddress 15108 000175b4 _lastosaddress: 15109 000175b4 000175bc .word _lastosaddress+8 15110 ;;; Ethan L. Miller, 1999. Released to the public domain 15111 ;;; 15112 ;;; Most of the traps are called in files from libtraps. 15114 000175b8 .text 15115 0000d180 .align 2 15116 0000d180 .proc _exit 15117 0000d180 .global _exit 15118 0000d180 _exit: 15119 0000d180 44000300 trap #0x300 15120 0000d184 4be00000 jr r31 15121 0000d188 54000000 nop 15122 0000d18c .endproc _exit 15124 ; for the benefit of gcc. 15125 0000d18c .proc ___main 15126 0000d18c .global ___main 15127 0000d18c ___main: 15128 0000d18c 4be00000 jr r31 15129 0000d190 54000000 nop 15130 0000d194 .endproc ___main 15131 ;;; 15132 ;;; Stub functions for DLX traps. 15133 ;;; 15134 ;;; Ethan L. Miller, 1999. Released to the public domain. 15135 ;;; 15136 ;;; There are two sets of traps here. The traps such as Open and Close 15137 ;;; (note the capital letters) are for use by user programs. The traps 15138 ;;; with names such as open and close (lower case) are for use by the OS. 15139 ;;; 15142 0000d194 .align 2 15143 0000d194 .proc _open 15144 0000d194 .global _open 15145 0000d194 _open: 15146 0000d194 44002013 trap #0x2013 15147 0000d198 4be00000 jr r31 15148 0000d19c 54000000 nop 15149 0000d1a0 .endproc _open 15151 0000d1a0 .proc _close 15152 0000d1a0 .global _close 15153 0000d1a0 _close: 15154 0000d1a0 44002014 trap #0x2014 15155 0000d1a4 4be00000 jr r31 15156 0000d1a8 54000000 nop 15157 0000d1ac .endproc _close 15159 0000d1ac .proc _read 15160 0000d1ac .global _read 15161 0000d1ac _read: 15162 0000d1ac 44002010 trap #0x2010 15163 0000d1b0 4be00000 jr r31 15164 0000d1b4 54000000 nop 15165 0000d1b8 .endproc _read 15167 0000d1b8 .proc _write 15168 0000d1b8 .global _write 15169 0000d1b8 _write: 15170 0000d1b8 44002011 trap #0x2011 15171 0000d1bc 4be00000 jr r31 15172 0000d1c0 54000000 nop 15173 0000d1c4 .endproc _write 15175 0000d1c4 .proc _lseek 15176 0000d1c4 .global _lseek 15177 0000d1c4 _lseek: 15178 0000d1c4 44002012 trap #0x2012 15179 0000d1c8 4be00000 jr r31 15180 0000d1cc 54000000 nop 15181 0000d1d0 .endproc _lseek 15183 ;;; The following are the traps to be used by user-level programs 15184 ;;; 15186 0000d1d0 .align 2 15187 0000d1d0 .proc _Open 15188 0000d1d0 .global _Open 15189 0000d1d0 _Open: 15190 0000d1d0 44000213 trap #0x213 15191 0000d1d4 4be00000 jr r31 15192 0000d1d8 54000000 nop 15193 0000d1dc .endproc _Open 15195 0000d1dc .proc _Close 15196 0000d1dc .global _Close 15197 0000d1dc _Close: 15198 0000d1dc 44000214 trap #0x214 15199 0000d1e0 4be00000 jr r31 15200 0000d1e4 54000000 nop 15201 0000d1e8 .endproc _Close 15203 0000d1e8 .proc _Read 15204 0000d1e8 .global _Read 15205 0000d1e8 _Read: 15206 0000d1e8 44000210 trap #0x210 15207 0000d1ec 4be00000 jr r31 15208 0000d1f0 54000000 nop 15209 0000d1f4 .endproc _Read 15211 0000d1f4 .proc _Write 15212 0000d1f4 .global _Write 15213 0000d1f4 _Write: 15214 0000d1f4 44000211 trap #0x211 15215 0000d1f8 4be00000 jr r31 15216 0000d1fc 54000000 nop 15217 0000d200 .endproc _Write 15219 0000d200 .proc _Lseek 15220 0000d200 .global _Lseek 15221 0000d200 _Lseek: 15222 0000d200 44000212 trap #0x212 15223 0000d204 4be00000 jr r31 15224 0000d208 54000000 nop 15225 0000d20c .endproc _Lseek 15227 ;;; 15228 ;;; Stub functions for DLX traps. 15229 ;;; 15230 ;;; Ethan L. Miller, 1999. Released to the public domain. 15231 ;;; 15232 ;;; There are two exit traps. The first, _exitsim, actually exits the 15233 ;;; simulator. The second, _exit, simply calls a regular trap in the 15234 ;;; DLX simulator, and would be suitable for a user program that wants 15235 ;;; to signal the OS that it's exiting. 15236 ;;; 15237 ;;; IMPORTANT: all code that's run "native" on the simulator - OS code and 15238 ;;; programs run without an OS - should call exitsim() rather than just 15239 ;;; falling through to exit. 15240 ;;; 15243 0000d20c .align 2 15244 0000d20c .proc _exitsim 15245 0000d20c .global _exitsim 15246 0000d20c _exitsim: 15247 0000d20c 44002f00 trap #0x2f00 15248 0000d210 4be00000 jr r31 15249 0000d214 54000000 nop 15250 0000d218 .endproc _exitsim 15252 0000d218 .proc _exit 15253 0000d218 .global _exit 15254 0000d218 _exit: 15255 0000d218 44000300 trap #0x300 15256 0000d21c 4be00000 jr r31 15257 0000d220 54000000 nop 15258 0000d224 .endproc _exit 15260 ; 15261 ; Stub functions for DLX traps. 15262 ; 15263 ; Aaron Sawdey 1996; released to the Public Domain. 15264 ; 15266 0000d224 .proc _printf 15267 0000d224 .global _printf 15268 0000d224 _printf: 15269 0000d224 44002001 trap #0x2001 15270 0000d228 4be00000 jr r31 15271 0000d22c 54000000 nop 15272 0000d230 .endproc _printf 15274 0000d230 .text 15275 0000d230 .global _etext 15276 0000d230 _etext: 15277 0000d230 .align 3 15278 0000d230 .data 15279 000175b8 .global _edata 15280 000175b8 _edata:

src/dlxos.s

;;; ;;; Initialization code for programs running in the DLX simulator. ;;; Copyright (c) 1999 by Ethan Miller ;;; ;;; .text .align 2 ;;;---------------------------------------------------------------------- ;;; osinit ;;; ;;; This is the first function called by the simulator, even before main. ;;; Since it's called BEFORE any "real" routines, we can use any registers ;;; we want as long as we don't mess up the stack or frame pointers. ;;; ;;; This routine loads the interrupt vector to point to the interrupt ;;; handler later in this file. It should never return, because _main ;;; should call exitsim() or exit() rather than returning here. ;;; ;;; After initialization is done, this routine jumps to _main to start the ;;; C code portion of the operating system. ;;;---------------------------------------------------------------------- .proc _osinit .global _osinit _osinit: ;; Set up the interrupt handler lhi r1,(_intrhandler>>16)&0xffff addui r1,r1,_intrhandler&0xffff movi2s intrvec,r1 ;; Never returns because exitsim is called first j _main .endproc _osinit ;;;---------------------------------------------------------------------- ;;; intrhandler ;;; ;;; Called when an interrupt or trap is received by the CPU. It stores the ;;; current register set on the system stack. It then pushes the parameters ;;; to the C interrupt handler onto the stack: the ISR, IAR, and CAUSE ;;; registers along with the original stack pointer. The C interrupt ;;; handler can then copy arguments from the original stack, performing ;;; user -> system translations if necessary. ;;; ;;;---------------------------------------------------------------------- .proc _intrhandler .global _intrhandler _intrhandler: ;; We can use r31 as scratch space because its value was saved in ;; ir31. However, we must save the "real" value of r31 on the ;; stack. ;; Always store the registers on the system stack. This way, we don't ;; have to worry about translating things from user -> system. We ;; use r31 as the base register because its value was saved in ir31. ;; If this was a user process, load r29 with the current system ;; stack pointer. If it was a system process, just use the ;; current stack pointer. movs2i r31,isr andi r31,r31,0x40 bnez r31,intrSystem lhi r31,(_currentPCB>>16)&0xffff addui r31,r31,_currentPCB&0xffff lw r31,(r31) lw r31,4(r31) ;; Save the original (user) stack pointer sw -184(r31),r29 ; we haven't yet bumped SP, and 156-340 = -184 ;; Copy the system stack pointer into r29 (current stack pointer) ori r29,r31,0 beqz r0,intrSaveReg ; skip over the system part.... intrSystem: ;; Use the stack pointer we're already using ;; Save r29 because we won't save it later sw -184(r29),r29 ; we haven't yet bumped SP, and 156-340 = -184 intrSaveReg: ;; Adjust stack pointer for all the stuff we're going to push. This ;; is a bit more space than we need currently, but it leaves room ;; for more stuff if needed. subui r29,r29,#340 ;; Push all the stuff onto the stack sw 44(r29),r1 sw 48(r29),r2 sw 52(r29),r3 sw 56(r29),r4 sw 60(r29),r5 sw 64(r29),r6 sw 68(r29),r7 sw 72(r29),r8 sw 76(r29),r9 sw 80(r29),r10 sw 84(r29),r11 sw 88(r29),r12 sw 92(r29),r13 sw 96(r29),r14 sw 100(r29),r15 sw 104(r29),r16 sw 108(r29),r17 sw 112(r29),r18 sw 116(r29),r19 sw 120(r29),r20 sw 124(r29),r21 sw 128(r29),r22 sw 132(r29),r23 sw 136(r29),r24 sw 140(r29),r25 sw 144(r29),r26 sw 148(r29),r27 sw 152(r29),r28 ;; Skip r29 - stored earlier! sw 160(r29),r30 ;; Load the value of r31 from the special register and then save it movs2i r3,ir31 sw 164(r29),r3 ;; Store the floating-point registers sd 168(r29),f0 sd 176(r29),f2 sd 184(r29),f4 sd 192(r29),f6 sd 200(r29),f8 sd 208(r29),f10 sd 216(r29),f12 sd 224(r29),f14 sd 232(r29),f16 sd 240(r29),f18 sd 248(r29),f20 sd 256(r29),f22 sd 264(r29),f24 sd 272(r29),f26 sd 280(r29),f28 sd 288(r29),f30 ;; NOTE: we don't save the interrupt vector register because it ;; doesn't change from process to process. ;; NOTE: we don't save the status register because most of the flags ;; are the same from process to process if they're in the interrupt ;; handler. Of course, we DO save the ISR. movs2i r4,iar sw 296(r29),r4 movs2i r5,isr sw 300(r29),r5 movs2i r6,cause sw 304(r29),r6 movs2i r3,fault sw 308(r29),r3 movs2i r3,ptbase sw 312(r29),r3 movs2i r3,ptsize sw 316(r29),r3 movs2i r3,ptbits sw 320(r29),r3 ;; Push the interrupt information onto the stack sw 0(r29),r6 ; push CAUSE sw 4(r29),r4 ; push IAR sw 8(r29),r5 ; push ISR ;; Get the original stack pointer lw r1,156(r29) sw 12(r29),r1 ;; Save the previous interrupt stack frame address in the current frame lhi r1,(_currentPCB>>16)&0xffff addui r1,r1,_currentPCB&0xffff lw r1,(r1) lw r2,0(r1) sw 40(r29),r2 ;; Save this frame address in the PCB. This is used so the OS can ;; easily access the current interrupt save frame sw 0(r1), r29 ;; Call the "real" interrupt handler. This will possibly switch ;; contexts. This call never returns; instead, a separate routine ;; (_intrreturn) is called to return from interrupts after restoring ;; the current context. j _dointerrupt nop .endproc _intrhandler � ;;;---------------------------------------------------------------------- ;;; intrreturn ;;; ;;; Return from an interrupt or trap. This restores all of the previously ;;; saved registers and then returns to where the program left off. The ;;; current contents of the registers are destroyed. This routine uses ;;; the saved interrupt frame pointer, so the stack pointer need not ;;; be correct. Note, though, that the register contents from the previous ;;; process must have previously been saved - in other words, call this ;;; routine from a trap or interrupt handler. ;;;---------------------------------------------------------------------- .proc _intrreturn .global _intrreturn _intrreturn: ;; Disable interrupts - this routine must be atomic, and interrupts ;; may not be currently disabled. Don't worry about saving registers ;; because we're about to reload them anyway. jal _DisableIntrs ;; Get our interrupt stack frame location and load it into the stack ;; pointer. lhi r1,(_currentPCB>>16)&0xffff addui r1,r1,_currentPCB&0xffff lw r1,0(r1) lw r29,0(r1) ;; Get the previous interrupt stack frame location and make it the ;; current interrupt save frame. lw r2,40(r29) sw 0(r1), r2 ;; Reload the registers for the new process. We don't have to ;; load in the exact opposite order as long as we're careful to ;; get the right values back in. lw r3,296(r29) movi2s iar,r3 lw r3,300(r29) movi2s isr,r3 lw r3,304(r29) movi2s cause,r3 lw r3,308(r29) movi2s fault,r3 lw r3,312(r29) movi2s ptbase,r3 lw r3,316(r29) movi2s ptsize,r3 lw r3,320(r29) movi2s ptbits,r3 ;; Reload the floating point registers ld f0,168(r29) ld f2,176(r29) ld f4,184(r29) ld f6,192(r29) ld f8,200(r29) ld f10,208(r29) ld f12,216(r29) ld f14,224(r29) ld f16,232(r29) ld f18,240(r29) ld f20,248(r29) ld f22,256(r29) ld f24,264(r29) ld f26,272(r29) ld f28,280(r29) ld f30,288(r29) ;; Reload the integer registers. We don't reload r0 because it's ;; always 0. We won't reload r29 here because we're using it as ;; the stack pointer. The same goes for r1, which we'll use as ;; scratch so we can store r29. ;; Skip r1 - restored later lw r2,48(r29) lw r3,52(r29) lw r4,56(r29) lw r5,60(r29) lw r6,64(r29) lw r7,68(r29) lw r8,72(r29) lw r9,76(r29) lw r10,80(r29) lw r11,84(r29) lw r12,88(r29) lw r13,92(r29) lw r14,96(r29) lw r15,100(r29) lw r16,104(r29) lw r17,108(r29) lw r18,112(r29) lw r19,116(r29) lw r20,120(r29) lw r21,124(r29) lw r22,128(r29) lw r23,132(r29) lw r24,136(r29) lw r25,140(r29) lw r26,144(r29) lw r27,148(r29) lw r28,152(r29) ;; Skip r29 - restored later lw r30,160(r29) lw r31,164(r29) addui r29,r29,#340 ;; Save the current value of the stack pointer after adjusting it ;; Note that this will "destroy" the stack values below this interrupt ;; stack frame. This is exactly what we want! sw 4(r1),r29 ori r1,r29,#0 lw r29,-184(r1) ; 156-340 = -184 lw r1,-296(r1) ; 44-340 = -296 rfe .endproc _intrreturn � ;;;---------------------------------------------------------------------- ;;; SetIntrs ;;; ;;; This routine sets the interrupt level to the value passed (0 -> all ;;; interrupts enabled; 0xf -> all interrupts disabled). It returns the ;;; former value for the interrupt flags. ;;;---------------------------------------------------------------------- .proc _SetIntrs .global _SetIntrs _SetIntrs: subui r29,r29,#16 sw 12(r29),r2 ; save r2 lw r2,16(r29) ; Get the new interrupt level andi r2,r2,#0x0f ; Mask off interrupt levels movs2i r1,status sw 8(r29),r1 ; Store the old interrupt values andi r1,r1,#0xfff0 ; Mask off old interrupt level or r1,r2,r1 ; OR in new interrupt level movi2s status,r1 lw r1,8(r29) ; Get back the original interrupt level andi r1,r1,#0x0f ; Mask off all but interrupt levels lw r2,12(r29) ; restore r2 addui r29,r29,#16 ; restore stack pointer jr r31 nop .endproc _SetIntrs .proc _CurrentIntrs .global _CurrentIntrs _CurrentIntrs: movs2i r1,status andi r1,r1,#0xf jr r31 nop .endproc _CurrentIntrs ;;;---------------------------------------------------------------------- ;;; _ProcessSleep ;;; ;;; If a context switch from elsewhere in the kernel is desired, take a ;;; trap and call this routine from the trap handler. ;;;---------------------------------------------------------------------- .proc _ProcessSleep .global _ProcessSleep _ProcessSleep: trap #0x410 ; This is a process sleep trap nop jr r31 nop .endproc _ProcessSleep

src/traps.c

// // traps.c // // This file handles the low-level trap stuff for an operating system // running under DLX. static char rcsid[] = "$Id: traps.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $"; #include "dlx.h" #include "dlxos.h" #include "traps.h" #include "process.h" unsigned long MY_TIMER = 0; //---------------------------------------------------------------------- // // TimerSet // // Set the timer to go off after a particular number of microseconds. // The number of microseconds is passed to the routine. // //---------------------------------------------------------------------- void TimerSet (int us) { //MY_TIMER = *((int *)DLX_TIMER_ADDRESS); MY_TIMER += us; *((int *)DLX_TIMER_ADDRESS) = us; } int TimerGet(void) { return (MY_TIMER / 1000); } � //---------------------------------------------------------------------- // // KbdModuleInit // // Initialize the keyboard module. This involves turning on // interrupts for the keyboard. // //---------------------------------------------------------------------- void KbdModuleInit () { *((uint32 *)DLX_KBD_INTR) = 1; } //-------------------------------------------------------------------- // GetUintFromTrapArg(uint32 *trapArgs, int sysmode) //-------------------------------------------------------------------- static uint32 GetUintFromTrapArg(uint32 *trapArgs, int sysmode) { uint32 arg; if(!sysmode) { MemoryCopyUserToSystem (currentPCB, trapArgs, &arg, sizeof (arg)); } else { bcopy (trapArgs, &arg, sizeof (arg)); } return arg; } //-------------------------------------------------------------------- // GetIntFromTrapArg(uint32 *trapArgs, int sysmode) //-------------------------------------------------------------------- static int GetIntFromTrapArg(uint32 *trapArgs, int sysmode) { int arg; if(!sysmode) { MemoryCopyUserToSystem (currentPCB, trapArgs, &arg, sizeof (arg)); } else { bcopy (trapArgs, &arg, sizeof (arg)); } return arg; } //-------------------------------------------------------------------- // Here we support reading the arguments // Maximum 128 command-line arguments are allowed // Also the total length of the arguments including the terminating // '\0' should be less than or equal to 1024 //-------------------------------------------------------------------- static void TrapProcessCreateHandler(uint32 *trapArgs, int sysmode) { char allargs[SIZE_ARG_BUFF]; char name[100]; int i=0, j=0, k=0; uint32 args[MAX_ARGS]; int p_nice, p_info; char *destination; // The first argument is the name of the executable file i=0; for(i=0;i<SIZE_ARG_BUFF; i++) allargs[i] = 0; i=0; if(!sysmode) { //Get the arguments into the sytem space MemoryCopyUserToSystem (currentPCB, trapArgs, args, sizeof (args)); do { MemoryCopyUserToSystem (currentPCB,((char*)args[2])+i,name+i,1); i++; } while ((i < sizeof (name)) && (name[i-1] != '\0')); } else { bcopy (trapArgs, args, sizeof (args)); dstrncpy ((char *)args[2], name, sizeof (name)); } name[sizeof(name)-1] = '\0'; // null terminate the name i=0; p_nice = args[0]; p_info = args[1]; if (p_nice <-20 || p_nice >19) { printf(" Invalid p_nice value! \n"); exit(); } if(!sysmode) { if (p_nice <0) p_nice == 0; //Copy the rest of the arguments to the system space for(j=2; (j<MAX_ARGS)&&(args[j]!=0); j++) { k=0; do { MemoryCopyUserToSystem (currentPCB,((char*)args[j])+k,allargs+i,1); i++; k++; } while ((i<sizeof(allargs)) && (allargs[i-1]!='\0')); } } else { destination = &allargs[0]; for(j=0; (j<11)&&(args[j]!=0); j++) { k = dstrlen((char *)args[j]); //length of the argument if(&destination[k]-allargs>SIZE_ARG_BUFF) { printf("Fatal: Cumulative length of all arguments > %d\n", SIZE_ARG_BUFF); exitsim(); } dstrcpy(destination, (char *)args[j]); destination[k] = '\0'; } } allargs[sizeof(allargs)-1] = '\0'; // null terminate the name printf("calling fork\n"); ProcessFork(0, (uint32)allargs, p_nice,p_info,name, 1); } � //---------------------------------------------------------------------- // // TrapPrintfHandler // // Handle a printf trap.here. This printf code will correctly // handle integers but will not correctly handle strings (yet). // Also, note that the maximum format string length is 79 characters. // Exceeding this length will cause the format to be truncated. // //---------------------------------------------------------------------- static void TrapPrintfHandler (uint32 *trapArgs, int sysMode) { char formatstr[80]; int i = 0; uint32 printfArgs[10]; uint32 args[10]; int nargs = 0; char *c; // The first argument is the print format string. Copy it to system // space, truncating if necessary. i = 0; if (!sysMode) { // Get the arguments themselves into system space MemoryCopyUserToSystem (currentPCB, trapArgs, args, sizeof (args)); do { MemoryCopyUserToSystem (currentPCB,((char*)args[0])+i,formatstr+i,1); i++; } while ((i < sizeof (formatstr)) && (formatstr[i-1] != '\0')); } else { bcopy (trapArgs, args, sizeof (args)); dstrncpy ((char *)args[0], formatstr, sizeof (formatstr)); } formatstr[sizeof(formatstr)-1] = '\0'; // null terminate the fmt str for (c = formatstr; *c != '\0'; c++) { if (*c == '%') { // if this is a %%, skip past second % if (*(c+1) == '%') { c++; continue; } // Get the current argument off the stack printfArgs[nargs] = args[nargs+1]; // dbprintf ('t', "Argument %d at 0x%x is %d (0x%x).\n", nargs, // args[nargs], args[nargs]); while (1) { c++; if (*c == 's') { // Handle strings here. They don't work for user programs (yet...) break; } else if (*c == 'l') { continue; } else if ((*c == 'f') || (*c == 'g') || (*c == 'e')) { // If it's a floating point number, it'll be passed as // a double, so grab the second word also. nargs += 1; printfArgs[nargs] = args[nargs+1]; break; } else if ((*c >= 'a') && (*c <= 'z')) { // If it's another formatting character, it's not // a string, but we can leave the loop anyway. break; } } nargs += 1; } } printf (formatstr,printfArgs[0],printfArgs[1],printfArgs[2], printfArgs[3], printfArgs[4], printfArgs[5], printfArgs[6], printfArgs[7]); } static void Yield() { // Implement function Yield() here return; } //---------------------------------------------------------------------- // // doInterrupt // // Handle an interrupt or trap. // //---------------------------------------------------------------------- void dointerrupt (unsigned int cause, unsigned int iar, unsigned int isr, uint32 *trapArgs) { int result; int i; uint32 args[4]; int intrs; uint32 handle; int ihandle; dbprintf ('t',"Interrupt cause=0x%x iar=0x%x isr=0x%x args=0x%08x.\n", cause, iar, isr, trapArgs); // If the TRAP_INSTR bit is set, this was from a trap instruction. // If the bit isn't set, this was a system interrupt. if (cause & TRAP_TRAP_INSTR) { cause &= ~TRAP_TRAP_INSTR; switch (cause) { case TRAP_CONTEXT_SWITCH: dbprintf ('t', "Got a context switch trap!\n"); ProcessSchedule (); break; case TRAP_EXIT: dbprintf ('t', "Got an exit trap!\n"); ProcessDestroy (currentPCB); ProcessSchedule (); break; case TRAP_PROCESS_FORK: dbprintf ('t', "Got a fork trap!\n"); break; case TRAP_PROCESS_SLEEP: dbprintf ('t', "Got a process sleep trap!\n"); ProcessSuspend (currentPCB); ProcessSchedule (); break; case TRAP_PRINTF: // Call the trap printf handler and pass the arguments and a flag // indicating whether the trap was called from system mode. dbprintf ('t', "Got a printf trap!\n"); TrapPrintfHandler (trapArgs, isr & DLX_STATUS_SYSMODE); break; case TRAP_OPEN: // Get the arguments to the trap handler. If this is a user mode trap, // copy them from user space. if (isr & DLX_STATUS_SYSMODE) { args[0] = trapArgs[0]; args[1] = trapArgs[1]; } else { char filename[32]; // trapArgs points to the trap arguments in user space. There are // two of them, so copy them to to system space. The first argument // is a string, so it has to be copied to system space and the // argument replaced with a pointer to the string in system space. MemoryCopyUserToSystem (currentPCB, trapArgs, args, sizeof(args[0])*2); MemoryCopyUserToSystem (currentPCB, args[0], filename, 31); // Null-terminate the string in case it's longer than 31 characters. filename[31] = '\0'; // Set the argument to be the filename args[0] = (uint32)filename; } // Allow Open() calls to be interruptible! intrs = EnableIntrs (); ProcessSetResult (currentPCB, args[1] + 0x10000); printf ("Got an open with parameters ('%s',0x%x)\n", args[0], args[1]); RestoreIntrs (intrs); break; case TRAP_CLOSE: // Allow Close() calls to be interruptible! intrs = EnableIntrs (); ProcessSetResult (currentPCB, -1); RestoreIntrs (intrs); break; case TRAP_READ: // Allow Read() calls to be interruptible! intrs = EnableIntrs (); ProcessSetResult (currentPCB, -1); RestoreIntrs (intrs); break; case TRAP_WRITE: // Allow Write() calls to be interruptible! intrs = EnableIntrs (); ProcessSetResult (currentPCB, -1); RestoreIntrs (intrs); break; case TRAP_DELETE: intrs = EnableIntrs (); ProcessSetResult (currentPCB, -1); RestoreIntrs (intrs); break; case TRAP_SEEK: intrs = EnableIntrs (); ProcessSetResult (currentPCB, -1); RestoreIntrs (intrs); break; case TRAP_PROCESS_CREATE: TrapProcessCreateHandler(trapArgs, isr & DLX_STATUS_SYSMODE); break; case TRAP_PROCESS_YIELD: Yield(); //ProcessSetResult(currentPCB, -1); break; case TRAP_SHARE_CREATE_PAGE: handle = MemoryCreateSharedPage(currentPCB); ProcessSetResult(currentPCB, handle); break; case TRAP_SHARE_MAP_PAGE: handle = GetUintFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); handle = (uint32)mmap(currentPCB, handle); ProcessSetResult(currentPCB, handle); break; case TRAP_SEM_CREATE: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); ihandle = SemCreate(ihandle); ProcessSetResult(currentPCB, ihandle); //Return handle break; case TRAP_SEM_WAIT: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); handle = SemHandleWait(ihandle); ProcessSetResult(currentPCB, handle); //Return 1 or 0 break; case TRAP_SEM_SIGNAL: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); handle = SemHandleSignal(ihandle); ProcessSetResult(currentPCB, handle); //Return 1 or 0 break; case TRAP_LOCK_CREATE: ihandle = LockCreate(); ProcessSetResult(currentPCB, ihandle); //Return handle break; case TRAP_LOCK_ACQUIRE: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); handle = LockHandleAcquire(ihandle); ProcessSetResult(currentPCB, handle); //Return 1 or 0 break; case TRAP_LOCK_RELEASE: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); handle = LockHandleRelease(ihandle); ProcessSetResult(currentPCB, handle); //Return 1 or 0 break; case TRAP_COND_CREATE: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); ihandle = CondCreate(ihandle); ProcessSetResult(currentPCB, ihandle); //Return handle break; case TRAP_COND_WAIT: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); ihandle = CondHandleWait(ihandle); ProcessSetResult(currentPCB, ihandle); //Return 1 or 0 break; case TRAP_COND_SIGNAL: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); ihandle = CondHandleSignal(ihandle); ProcessSetResult(currentPCB, ihandle); //Return 1 or 0 break; case TRAP_TIMERGET: ihandle = TimerGet(); ProcessSetResult(currentPCB,ihandle); break; case TRAP_COND_BROADCAST: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); ihandle = CondHandleBroadcast(ihandle); ProcessSetResult(currentPCB, ihandle); //Return 1 or 0 break; default: printf ("Got an unrecognized trap (0x%x) - exiting!\n", cause); exitsim (); break; } } else { switch (cause) { case TRAP_TIMER: dbprintf ('t', "Got a timer interrupt!\n"); ProcessSchedule (); break; case TRAP_KBD: do { i = *((uint32 *)DLX_KBD_NCHARSIN); result = *((uint32 *)DLX_KBD_GETCHAR); printf ("Got a keyboard interrupt (char=0x%x(%c), nleft=%d)!\n", result, result, i); } while (i > 1); break; case TRAP_ACCESS: printf ("Exiting after illegal access at iar=0x%x, isr=0x%x\n", iar, isr); exitsim (); break; case TRAP_ADDRESS: printf ("Exiting after illegal address at iar=0x%x, isr=0x%x\n", iar, isr); exitsim (); break; case TRAP_ILLEGALINST: printf ("Exiting after illegal instruction at iar=0x%x, isr=0x%x\n", iar, isr); exitsim (); break; case TRAP_PAGEFAULT: printf ("Exiting after page fault at iar=0x%x, isr=0x%x\n", iar, isr); exitsim (); break; default: printf ("Got an unrecognized system interrupt (0x%x) - exiting!\n", cause); exitsim (); break; } } dbprintf ('t',"About to return from dointerrupt.\n"); // Note that this return may schedule a new process! intrreturn (); }

src/osend.s

;;; This file just includes a single variable that contains the last address ;;; in the operating system. The rest of memory is available for use by ;;; processes. .data .align 2 .global _lastosaddress _lastosaddress: .word _lastosaddress+8

src/memory.h

// // memory.h // // Definitions for dealing with memory. // // // $Id: memory.h,v 1.1 2000/09/20 01:50:19 elm Exp elm $ #ifndef _memory_h_ #define _memory_h_ // We can read this address in I/O space to figure out how much memory // is available on the system. #define DLX_MEMSIZE_ADDRESS 0xffff0000 // We currently support 64 KB pages. This is done as 64 KB pages in // the level 1 page table and no level 2 page table // These two constants should be set as follows: // L1_PAGE_SIZE_BITS -> amount mapped by a single entry in the L1 table // L2_PAGE_SIZE_BITS -> amount mapped by a single entry in the L2 table // // For example, if you have 4KB pages and each L2 page table has 512 entries, // you'd have 2MB per entry in a L1 table. That would mean L1_BITS=21 and // L2_BITS=12. #define MEMORY_L1_PAGE_SIZE_BITS 16 // each entry in L1 is 64 KB #define MEMORY_L2_PAGE_SIZE_BITS 16 // if L1 == L2, there's no L2 tables #define MEMORY_PAGE_SIZE (1 << MEMORY_L2_PAGE_SIZE_BITS) #define MEMORY_PAGE_MASK (MEMORY_PAGE_SIZE-1) #define MEMORY_MAX_PAGES 0x10000 // The PTE is valid if this bit is set in the PTE! #define MEMORY_PTE_VALID 0x00000001 // The page is dirty if this bit is set in the PTE #define MEMORY_PTE_DIRTY 0x00000002 // The page has been referenced if this bit is set in the PTE #define MEMORY_PTE_REFERENCED 0x00000004 #define MEMORY_PTE_MASK (~(MEMORY_PTE_VALID|MEMORY_PTE_DIRTY|MEMORY_PTE_REFERENCED)) extern int lastosaddress; // Defined in an assembly file extern int MemoryGetSize (); extern int MemoryAllocPage (); extern void MemoryFreePage (uint32 page); extern uint32 MemorySetupPte (uint32 page); extern void MemoryFreePte (uint32 pte); extern uint32 MemoryPteToPage (); extern void MemoryModuleInit (); extern uint32 MemoryTranslateUserToSystem (); extern int MemoryCopySystemToUser (); extern int MemoryCopyUserToSystem (); #endif // _memory_h_

src/trap_random.s

; ; Stub functions for DLX traps. ; ; Aaron Sawdey 1996; released to the Public Domain. ; .text .align 2 .proc _random .global _random _random: trap #0x2020 jr r31 nop .endproc _random .proc _srandom .global _srandom _srandom: trap #0x2021 jr r31 nop .endproc _srandom ; I know this is not the right place to put it, but what the heck .proc _timerget .global _timerget _timerget: trap #0x2002 jr r31 nop .endproc _timerget

src/queue.h

// // queue.h // // Definitions for routines used to manage queues. The queues are // doubly-linked lists so it's easier to add and remove from them. // Also, the links themselves have pointers to objects so that objects // may be on more than one queue. // // not only that, it also seems like the queue is circular. // So do not use NULL check when traversing the queue. Use // nitems instead. #ifndef _queue_h_ #define _queue_h_ #ifndef NULL #define NULL ((void *)0) #endif #define QUEUE_MAX_LINKS 400 typedef struct Link { struct Link *next; struct Link *prev; struct Queue *queue; void *object; } Link; typedef struct Queue { struct Link *first; struct Link *last; int nitems; } Queue; inline void QueueLinkInit (Link *l, void *obj) { l->next = NULL; l->object = obj; } inline Link * QueueNext (Link *l) { return (l->next); } inline Link * QueuePrev (Link *l) { return (l->prev); } inline Link * QueueFirst (Queue *q) { return (q->first); } inline Link * QueueLast (Queue *q) { return (q->last); } inline void QueueInsertAfter (Queue *q, Link *after, Link *l) { l->queue = q; l->prev = after; l->next = after->next; after->next = l; l->next->prev = l; q->nitems += 1; } inline void QueueInsertFirst (Queue *q, Link *l) { QueueInsertAfter (q, (Link *)q, l); } inline void QueueInsertLast (Queue *q, Link *l) { QueueInsertAfter (q, QueueLast(q), l); } inline void QueueRemove (Link *l) { if (l->queue->nitems > 0) { l->prev->next = l->next; l->next->prev = l->prev; l->queue->nitems -= 1; } l->next = NULL; } inline int QueueLength (Queue *q) { return (q->nitems); } inline int QueueEmpty (Queue *q) { return (QueueLength (q) == 0); } extern void QueueModuleInit (); extern void QueueFreeLink (Link *l); extern Link *QueueAllocLink (); extern void QueueInit (Queue *q); #endif // _queue_h_

src/process.c

// // process.c // // This file defines routines for dealing with processes. This // includes the "main" routine for the OS, which creates a process // for the initial thread of execution. It also includes // code to create and delete processes, as well as context switch // code. Note, however, that the actual context switching is // done in assembly language elsewhere. #include "dlxos.h" #include "process.h" //#include "synch.h" #include "memory.h" #include "filesys.h" float MyFuncRetZero(); // Lab3: These two string are defined for you to print out your // timming analysis. Do not use your own strings. // Your printf statement should be printf(TIMESTRING1,data1...);... // note that we need to print the floating point value by itself, // otherwise it is not going to print right #define TIMESTRING1 "Process %d has run for" #define TIMESTRING2 " %.3f s\n" #define TIMESTRING3 "Process %d 's priority is %d \n" // Pointer to the current PCB. This is used by the assembly language // routines for context switches. PCB *currentPCB; // List of free PCBs. static Queue freepcbs; // List of processes that are ready to run (ie, not waiting for something // to happen). static Queue runQueue; // List of processes that are waiting for something to happen. There's no // reason why this must be a single list; there could be many lists for many // different conditions. static Queue waitQueue; // List of processes waiting to be deleted. See below for a description of // the reason that we need a separate queue for processes about to die. static Queue zombieQueue; // Static area for all process control blocks. This is necessary because // we can't use malloc() inside the OS. static PCB pcbs[PROCESS_MAX_PROCS]; // Default value for scheduler quantum. This could be set to any value. // In fact, it could even be dynamic, though that would require modifying // the timer trap handler.... static processQuantum = DLX_PROCESS_QUANTUM; // String listing debugging options to print out. char debugstr[200]; � //---------------------------------------------------------------------- // // ProcessModuleInit // // Initialize the process module. This involves initializing all // of the process control blocks to appropriate values (ie, free // and available). We also need to initialize all of the queues. // //---------------------------------------------------------------------- void ProcessModuleInit () { int i; dbprintf ('p', "Entering ProcessModuleInit\n"); QueueInit (&freepcbs); QueueInit (&runQueue); QueueInit (&waitQueue); QueueInit (&zombieQueue); for (i = 0; i < PROCESS_MAX_PROCS; i++) { dbprintf ('p', "Initializing PCB %d @ 0x%x.\n", i, &(pcbs[i])); pcbs[i].flags = PROCESS_STATUS_FREE; QueueLinkInit (&(pcbs[i].l), (void *)&pcbs[i]); QueueInsertFirst(&freepcbs, &(pcbs[i].l)); } currentPCB = NULL; dbprintf ('p', "Leaving ProcessModuleInit\n"); } � //---------------------------------------------------------------------- // // ProcessSetStatus // // Set the status of a process. // //---------------------------------------------------------------------- void ProcessSetStatus (PCB *pcb, int status) { pcb->flags &= ~PROCESS_STATUS_MASK; pcb->flags |= status; } //---------------------------------------------------------------------- // // ProcessFreeResources // // Free the resources associated with a process. This assumes the // process isn't currently on any queue. // //---------------------------------------------------------------------- void ProcessFreeResources (PCB *pcb) { int i; int npages; QueueInsertLast (&freepcbs, &pcb->l); // Free the process's memory. This is easy with a one-level page // table, but could get more complex with two-level page tables. npages = pcb->npages; for (i=0; i<npages; i++) { MemoryFreeSharedPte(pcb, i); // *MUST* be called before calling // MemoryFreePte. MemoryFreePte does not know // anything about shared pages, and hence it // might screw up big time } for (i = 0; i < pcb->npages; i++) { MemoryFreePte (pcb->pagetable[i]); } // Free the page allocated for the system stack MemoryFreePage (pcb->sysStackArea / MEMORY_PAGE_SIZE); ProcessSetStatus (pcb, PROCESS_STATUS_FREE); } //---------------------------------------------------------------------- // // ProcessSetResult // // Set the result returned to a process. This is done by storing // the value into the current register save area for r1. When the // context is restored, r1 will contain the return value. This // routine should only be called from a trap. Calling it at other // times (such as an interrupt handler) will cause unpredictable // results. // //---------------------------------------------------------------------- void ProcessSetResult (PCB * pcb, uint32 result) { pcb->currentSavedFrame[PROCESS_STACK_IREG+1] = result; } � //---------------------------------------------------------------------- // // ProcessSchedule // // Schedule the next process to run. If there are no processes to // run, exit. This means that there should be an idle loop process // if you want to allow the system to "run" when there's no real // work to be done. // // NOTE: the scheduler should only be called from a trap or interrupt // handler. This way, interrupts are disabled. Also, it must be // called consistently, and because it might be called from an interrupt // handler (the timer interrupt), it must ALWAYS be called from a trap // or interrupt handler. // // Note that this procedure doesn't actually START the next process. // It only changes the currentPCB and other variables so the next // return from interrupt will restore a different context from that // which was saved. // //---------------------------------------------------------------------- // void ProcessSchedule () { PCB *pcb; int i; dbprintf ('p', "Now entering ProcessSchedule (cur=0x%x, %d ready)\n", currentPCB, QueueLength (&runQueue)); // The OS exits if there's no runnable process. This is a feature, not a // bug. An easy solution to allowing no runnable "user" processes is to // have an "idle" process that's simply an infinite loop. if (QueueEmpty (&runQueue)) { printf ("No runnable processes - exiting!\n"); exitsim (); // NEVER RETURNS } // Move the front of the queue to the end, if it is the running process. pcb = (PCB *)((QueueFirst (&runQueue))->object); if (pcb == currentPCB) { QueueRemove (&pcb->l); QueueInsertLast (&runQueue, &pcb->l); } // Now, run the one at the head of the queue. pcb = (PCB *)((QueueFirst (&runQueue))->object); currentPCB = pcb; dbprintf ('p',"About to switch to PCB 0x%x,flags=0x%x @ 0x%x\n", pcb, pcb->flags, pcb->sysStackPtr[PROCESS_STACK_IAR]); // Clean up zombie processes here. This is done at interrupt time // because it can't be done while the process might still be running while (!QueueEmpty (&zombieQueue)) { pcb = (PCB *)(QueueFirst (&zombieQueue)->object); dbprintf ('p', "Freeing zombie PCB 0x%x.\n", pcb); QueueRemove (&pcb->l); ProcessFreeResources (pcb); } // Set the timer so this process gets at most a fixed quantum of time. TimerSet (processQuantum); dbprintf ('p', "Leaving ProcessSchedule (cur=0x%x)\n", currentPCB); } � //---------------------------------------------------------------------- // // ProcessSuspend // // Place a process in suspended animation until it's // awakened by Processwakeup. // // NOTE: This must only be called from an interrupt or trap. It // should be immediately followed by ProcessSchedule(). // //---------------------------------------------------------------------- void ProcessSuspend (PCB *suspend) { // Make sure it's already a runnable process. dbprintf ('p', "Suspending PCB 0x%x (%s).\n", suspend, suspend->name); ASSERT (suspend->flags & PROCESS_STATUS_RUNNABLE, "Trying to suspend a non-running process!\n"); ProcessSetStatus (suspend, PROCESS_STATUS_WAITING); QueueRemove (&suspend->l); QueueInsertLast (&waitQueue, &suspend->l); } //---------------------------------------------------------------------- // // ProcessWakeup // // Wake up a process from its slumber. This only involves putting // it on the run queue; it's not guaranteed to be the next one to // run. // // NOTE: This must only be called from an interrupt or trap. It // need not be followed immediately by ProcessSchedule() because // the currently running process is unaffected. // //---------------------------------------------------------------------- void ProcessWakeup (PCB *wakeup) { dbprintf ('p',"Waking up PCB 0x%x.\n", wakeup); // Make sure it's not yet a runnable process. ASSERT (wakeup->flags & PROCESS_STATUS_WAITING, "Trying to wake up a non-sleeping process!\n"); ProcessSetStatus (wakeup, PROCESS_STATUS_RUNNABLE); QueueRemove (&wakeup->l); QueueInsertLast (&runQueue, &wakeup->l); } � //---------------------------------------------------------------------- // // ProcessDestroy // // Destroy a process by setting its status to zombie and putting it // on the zombie queue. The next time the scheduler is called, this // process will be marked as free. We can't necessarily do it now // because we might be the currently running process. // // NOTE: This must only be called from an interrupt or trap. However, // it need not be followed immediately by a ProcessSchedule() because // the process can continue running. // //---------------------------------------------------------------------- void ProcessDestroy (PCB *pcb) { dbprintf('p', "Entering ProcessDestroy for 0x%x.\n", pcb); ProcessSetStatus (pcb, PROCESS_STATUS_ZOMBIE); QueueRemove (&pcb->l); QueueInsertFirst (&zombieQueue, &pcb->l); dbprintf('p', "Leaving ProcessDestroy for 0x%x.\n", pcb); } //---------------------------------------------------------------------- // // ProcessExit // // This routine is called to exit from a system process. It simply // calls an exit trap, which will be caught to exit the process. // //---------------------------------------------------------------------- static void ProcessExit () { exit (); } uint32 get_argument(char *string) { static char *str; static int location=0; int location2; if(string) { str=string; location = 0; } location2 = location; if(str[location]=='\0'||location>=99) return 0; for(;location<100;location++) { if(str[location]=='\0') { location++; break; } } return location2; } //---------------------------------------------------------------------- // // ProcessFork // // Create a new process and make it runnable. This involves the // following steps: // * Allocate resources for the process (PCB, memory, etc.) // * Initialize the resources // * Place the PCB on the runnable queue // // NOTE: This code has been tested for system processes, but not // for user processes. // //---------------------------------------------------------------------- int ProcessFork (VoidFunc func, uint32 param, int p_nice, int p_info,char *name, int isUser) { int i, j, fd, n; Link *l; int start, codeS, codeL, dataS, dataL; uint32 *stackframe; int newPage; PCB *pcb; int addr = 0; int intrs; unsigned char buf[100]; uint32 dum[MAX_ARGS+8], count, offset; char *str; intrs = DisableIntrs (); dbprintf ('I', "Old interrupt value was 0x%x.\n", intrs); dbprintf ('p', "Entering ProcessFork args=0x%x 0x%x %s %d\n", func, param, name, isUser); // Get a free PCB for the new process if (QueueEmpty (&freepcbs)) { printf ("FATAL error: no free processes!\n"); exitsim (); // NEVER RETURNS! } l = QueueFirst (&freepcbs); dbprintf ('p', "Got a link @ 0x%x\n", l); QueueRemove (l); pcb = (PCB *)(l->object); // This prevents someone else from grabbing this process ProcessSetStatus (pcb, PROCESS_STATUS_RUNNABLE); // At this point, the PCB is allocated and nobody else can get it. // However, it's not in the run queue, so it won't be run. Thus, we // can turn on interrupts here. dbprintf ('I', "Before restore interrupt value is 0x%x.\n", CurrentIntrs()); RestoreIntrs (intrs); dbprintf ('I', "New interrupt value is 0x%x.\n", CurrentIntrs()); // Copy the process name into the PCB. dstrcpy (pcb->name, name); //---------------------------------------------------------------------- // This section initializes the memory for this process //---------------------------------------------------------------------- // For now, we'll use one user page and a page for the system stack. // For system processes, though, all pages must be contiguous. // Of course, system processes probably need just a single page for // their stack, and don't need any code or data pages allocated for them. pcb->npages = 1; newPage = MemoryAllocPage (); if (newPage == 0) { printf ("aFATAL: couldn't allocate memory - no free pages!\n"); exitsim (); // NEVER RETURNS! } pcb->pagetable[0] = MemorySetupPte (newPage); newPage = MemoryAllocPage (); if (newPage == 0) { printf ("bFATAL: couldn't allocate system stack - no free pages!\n"); exitsim (); // NEVER RETURNS! } pcb->sysStackArea = newPage * MEMORY_PAGE_SIZE; //--------------------------------------- // Lab3: initialize pcb members for your scheduling algorithm here //-------------------------------------- //---------------------------------------------------------------------- // Stacks grow down from the top. The current system stack pointer has // to be set to the bottom of the interrupt stack frame, which is at the // high end (address-wise) of the system stack. stackframe = ((uint32 *)(pcb->sysStackArea + MEMORY_PAGE_SIZE)) - (PROCESS_STACK_FRAME_SIZE + 8); // The system stack pointer is set to the base of the current interrupt // stack frame. pcb->sysStackPtr = stackframe; // The current stack frame pointer is set to the same thing. pcb->currentSavedFrame = stackframe; dbprintf ('p', "Setting up PCB @ 0x%x (sys stack=0x%x, mem=0x%x, size=0x%x)\n", pcb, pcb->sysStackArea, pcb->pagetable[0], pcb->npages * MEMORY_PAGE_SIZE); //---------------------------------------------------------------------- // This section sets up the stack frame for the process. This is done // so that the frame looks to the interrupt handler like the process // was "suspended" right before it began execution. The standard // mechanism of swapping in the registers and returning to the place // where it was "interrupted" will then work. //---------------------------------------------------------------------- // The previous stack frame pointer is set to 0, meaning there is no // previous frame. stackframe[PROCESS_STACK_PREV_FRAME] = 0; // Set the base of the level 1 page table. If there's only one page // table level, this is it. For 2-level page tables, put the address // of the level 1 page table here. For 2-level page tables, we'll also // have to build up the necessary tables.... stackframe[PROCESS_STACK_PTBASE] = (uint32)&(pcb->pagetable[0]); // Set the size (maximum number of entries) of the level 1 page table. // In our case, it's just one page, but it could be larger. stackframe[PROCESS_STACK_PTSIZE] = pcb->npages; // Set the number of bits for both the level 1 and level 2 page tables. // This can be changed on a per-process basis if desired. For now, // though, it's fixed. stackframe[PROCESS_STACK_PTBITS] = (MEMORY_L1_PAGE_SIZE_BITS + (MEMORY_L2_PAGE_SIZE_BITS << 16)); if (isUser) { dbprintf ('p', "About to load %s\n", name); fd = ProcessGetCodeInfo (name, &start, &codeS, &codeL, &dataS, &dataL); if (fd < 0) { // Free newpage and pcb so we don't run out... ProcessFreeResources (pcb); return (-1); } dbprintf ('p', "File %s -> start=0x%08x\n", name, start); dbprintf ('p', "File %s -> code @ 0x%08x (size=0x%08x)\n", name, codeS, codeL); dbprintf ('p', "File %s -> data @ 0x%08x (size=0x%08x)\n", name, dataS, dataL); while ((n = ProcessGetFromFile (fd, buf, &addr, sizeof (buf))) > 0) { dbprintf ('p', "Placing %d bytes at vaddr %08x.\n", n, addr - n); // Copy the data to user memory. Note that the user memory needs to // have enough space so that this copy will succeed! MemoryCopySystemToUser (pcb, buf, addr - n, n); } FsClose (fd); stackframe[PROCESS_STACK_ISR] = PROCESS_INIT_ISR_USER; // Set the initial stack pointer correctly. Currently, it's just set // to the top of the (single) user address space allocated to this // process. str = (char *)param; stackframe[PROCESS_STACK_IREG+29] = MEMORY_PAGE_SIZE - SIZE_ARG_BUFF; // Copy the initial parameter to the top of stack MemoryCopySystemToUser (pcb, (char *)str, (char *)stackframe[PROCESS_STACK_IREG+29], SIZE_ARG_BUFF-32); offset = get_argument((char *)param); dum[2] = MEMORY_PAGE_SIZE - SIZE_ARG_BUFF + offset; for(count=3;;count++) { offset=get_argument(NULL); dum[count] = MEMORY_PAGE_SIZE - SIZE_ARG_BUFF + offset; if(offset==0) { break; } } dum[0] = count-2; dum[1] = MEMORY_PAGE_SIZE - SIZE_ARG_BUFF - (count-2)*4; MemoryCopySystemToUser (pcb, (char *)dum, (char *)(stackframe[PROCESS_STACK_IREG+29]-count*4), (count)*sizeof(uint32)); stackframe[PROCESS_STACK_IREG+29] -= 4*count; // Set the correct address at which to execute a user process. stackframe[PROCESS_STACK_IAR] = (uint32)start; pcb->flags |= PROCESS_TYPE_USER; } else { // Set r31 to ProcessExit(). This will only be called for a system // process; user processes do an exit() trap. stackframe[PROCESS_STACK_IREG+31] = (uint32)ProcessExit; // Set the stack register to the base of the system stack. stackframe[PROCESS_STACK_IREG+29]=pcb->sysStackArea + MEMORY_PAGE_SIZE-32; // Set the initial parameter properly by placing it on the stack frame // at the location pointed to by the "saved" stack pointer (r29). *((uint32 *)(stackframe[PROCESS_STACK_IREG+29])) = param; // Set up the initial address at which to execute. This is done by // placing the address into the IAR slot of the stack frame. stackframe[PROCESS_STACK_IAR] = (uint32)func; // Set the initial value for the interrupt status register stackframe[PROCESS_STACK_ISR] = PROCESS_INIT_ISR_SYS; // Mark this as a system process. pcb->flags |= PROCESS_TYPE_SYSTEM; } // Place the PCB onto the run queue. intrs = DisableIntrs (); QueueInsertLast (&runQueue, l); RestoreIntrs (intrs); // If this is the first process, make it the current one if (currentPCB == NULL) { dbprintf ('p', "Setting currentPCB=0x%x, stackframe=0x%x\n", pcb, pcb->currentSavedFrame); currentPCB = pcb; } dbprintf ('p', "Leaving ProcessFork (%s)\n", name); // Return the process number (found by subtracting the PCB number // from the base of the PCB array). return (pcb - pcbs); } � //---------------------------------------------------------------------- // // getxvalue // // Convert a hex digit into an actual value. // //---------------------------------------------------------------------- static inline int getxvalue (int x) { if ((x >= '0') && (x <= '9')) { return (x - '0'); } else if ((x >= 'a') && (x <= 'f')) { return (x + 10 - 'a'); } else if ((x >= 'A') && (x <= 'F')) { return (x + 10 - 'A'); } else { return (0); } } � //---------------------------------------------------------------------- // // ProcessGetCodeSizes // // Get the code sizes (stack & data) for a file. A file descriptor // for the named file is returned. This descriptor MUST be closed // (presumably by the caller) at some point. // //---------------------------------------------------------------------- int ProcessGetCodeInfo (const char *file, uint32 *startAddr, uint32 *codeStart, uint32 *codeSize, uint32 *dataStart, uint32 *dataSize) { int fd; int totalsize; char buf[100]; char *pos; // Open the file for reading. If it returns a negative number, the open // didn't work. if ((fd = FsOpen (file, FS_MODE_READ)) < 0) { dbprintf ('f', "ProcessGetCodeInfo: open of %s failed (%d).\n", file, fd); return (-1); } dbprintf ('f', "File descriptor is now %d.\n", fd); if ((totalsize = FsRead (fd, buf, sizeof (buf))) != sizeof (buf)) { dbprintf ('f', "ProcessGetCodeInfo: read got %d (not %d) bytes from %s\n", totalsize, sizeof (buf), file); FsClose (fd); return (-1); } if (dstrstr (buf, "start:") == NULL) { dbprintf ('f', "ProcessGetCodeInfo: %s missing start line (not a DLX executable?)\n", file); return (-1); } pos = (char *)dindex (buf, ':') + 1; // Get the start address and overall size *startAddr = dstrtol (pos, &pos, 16); totalsize = dstrtol (pos, &pos, 16); // Get code & data section start & sizes *codeStart = dstrtol (pos, &pos, 16); *codeSize = dstrtol (pos, &pos, 16); *dataStart = dstrtol (pos, &pos, 16); *dataSize = dstrtol (pos, &pos, 16); // Seek to start of first real line FsSeek (fd, 1 + dindex (buf, '\n') - buf, 0); return (fd); } � //---------------------------------------------------------------------- // // ProcessGetFromFile // // Inputs: // addr - points to an integer that contains the address of // the byte past that previously returned. If this is the // first call to this routine, *addr should be set to 0. // fd - File descriptor from which to read data. The file format // is the same as that used by the DLX simulator. // buf - points to a buffer that will receive data from the input // file. Note that the data is NOT 0-terminated, and may // include any number of 0 bytes. // max - maximum length of data to return. The routine collects data // until either the address changes or it has read max bytes. // // Returns the number of bytes actually stored into buf. In addition, // *addr is updated to point to the byte following the last byte in // the buffer. // // Load a file into memory. The file format consists of a // leading address, followed by a colon, followed by the data // to go at that address. If the address is omitted, the data // follows that from the previous line of the file. // //---------------------------------------------------------------------- int ProcessGetFromFile (int fd, unsigned char *buf, uint32 *addr, int max) { char localbuf[204]; int nbytes; int seekpos; unsigned char *pos = buf; char *lpos = localbuf; // Remember our position at the start of the routine so we can adjust // it later. seekpos = FsSeek (fd, 0, FS_SEEK_CUR); // The maximum number of characters we could read is limited to the // maximum buffer space available to the caller * 2 because each 2 // characters in the input file result in a single byte of program // info being read in. max = max * 2; // If the callers maximum is greater than the available buffer space, // limit the buffer space further. if (max > (sizeof(localbuf)-4)) { max = sizeof(localbuf)-4; } if ((nbytes = FsRead (fd, localbuf, max)) <= 0) { return (0); } // 'Z' is unused in load file, so use it to mark the end of the buffer // Back up until just after the last newline in the data we read. dbprintf ('f', "Got %d bytes at offset %d ...", nbytes, seekpos); while (localbuf[--nbytes] != '\n') { } localbuf[nbytes+1] = 'Z'; localbuf[nbytes+2] = '\0'; dbprintf ('f', " terminated at %d.\n", nbytes); dbprintf ('f', "Buffer is '%s'\n", localbuf); nbytes = 0; while (dindex (lpos, 'Z') != NULL) { if (dindex (lpos, ':') == NULL) { break; } if (*lpos != ':') { // If we're going to go to a new address, we break out of the // loop and return what we've got already. if (nbytes > 0) { break; } *addr = dstrtol (lpos, &lpos, 16); dbprintf ('f', "New address is 0x%x.\n", *addr); } if (*lpos != ':') { break; } lpos++; // skip past colon while (1) { while (((*lpos) == ' ') || (*lpos == '\t')) { lpos++; } if (*lpos == '\n') { lpos++; break; } else if (!(isxdigit (*lpos) && isxdigit (*(lpos+1)))) { // Exit loop if at least one digit isn't a hex digit. break; } pos[nbytes++] = (getxvalue(*lpos) * 16) + getxvalue(*(lpos+1)); lpos += 2; (*addr)++; } } // Seek to just past the last line we read. FsSeek (fd, seekpos + lpos - localbuf, FS_SEEK_SET); dbprintf ('f', "Seeking to %d and returning %d bytes!\n", seekpos + lpos - localbuf, nbytes); return (nbytes); } � //---------------------------------------------------------------------- // // main // // This routine is called when the OS starts up. It allocates a // PCB for the first process - the one corresponding to the initial // thread of execution. Note that the stack pointer is already // set correctly by _osinit (assembly language code) to point // to the stack for the 0th process. This stack isn't very big, // though, so it should be replaced by the system stack of the // currently running process. // //---------------------------------------------------------------------- main (int argc, char *argv[]) { int i, j; int n; char buf[120]; char *userprog = (char *)0; static PCB temppcb; uint32 addr; extern void SysprocCreateProcesses (); char *param[12]={NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; int base; debugstr[0] = '\0'; MyFuncRetZero(); printf ("Got %d arguments.\n", argc); printf ("Available memory: 0x%x -> 0x%x.\n", lastosaddress, MemoryGetSize ()); printf ("Argument count is %d.\n", argc); for (i = 0; i < argc; i++) { printf ("Argument %d is %s.\n", i, argv[i]); } // *((int *)0xfff00100) = 't'; FsModuleInit (); for (i = 0; i < argc; i++) { if (argv[i][0] == '-') { switch (argv[i][1]) { case 'D': dstrcpy (debugstr, argv[++i]); break; case 'i': n = dstrtol (argv[++i], (void *)0, 0); ditoa (n, buf); printf ("Converted %s to %d=%s\n", argv[i], n, buf); break; case 'f': { int start, codeS, codeL, dataS, dataL, fd, j; int addr = 0; static unsigned char buf[200]; fd = ProcessGetCodeInfo (argv[++i], &start, &codeS, &codeL, &dataS, &dataL); printf ("File %s -> start=0x%08x\n", argv[i], start); printf ("File %s -> code @ 0x%08x (size=0x%08x)\n", argv[i], codeS, codeL); printf ("File %s -> data @ 0x%08x (size=0x%08x)\n", argv[i], dataS, dataL); while ((n = ProcessGetFromFile (fd, buf, &addr, sizeof (buf))) > 0) { for (j = 0; j < n; j += 4) { printf ("%08x: %02x%02x%02x%02x\n", addr + j - n, buf[j], buf[j+1], buf[j+2], buf[j+3]); } } close (fd); break; } case 'u': userprog = argv[++i]; base = i; break; default: printf ("Option %s not recognized.\n", argv[i]); break; } if(userprog) break; } } dbprintf ('i', "About to initialize queues.\n"); QueueModuleInit (); dbprintf ('i', "After initializing queues.\n"); MemoryModuleInit (); dbprintf ('i', "After initializing memory.\n"); ProcessModuleInit (); dbprintf ('i', "After initializing processes.\n"); ShareModuleInit (); dbprintf ('i', "After initializing shared memory.\n"); SynchModuleInit (); dbprintf ('i', "After initializing synchronization tools.\n"); KbdModuleInit (); dbprintf ('i', "After initializing keyboard.\n"); for (i = 0; i < 100; i++) { buf[i] = 'a'; } i = FsOpen ("vm", FS_MODE_WRITE); dbprintf ('i', "VM Descriptor is %d\n", i); FsSeek (i, 0, FS_SEEK_SET); FsWrite (i, buf, 80); FsClose (i); if (userprog != (char *)0) { for(i=base;i<argc&&i-base<11; i++) { param[i-base] = argv[i]; } process_create(0,0,param[0], param[1], param[2], param[3], param[4], param[5], param[6], param[7], param[8], param[9], param[10], param[11]); // ProcessFork (0, (uint32)"Help Me man!", userprog, 1); } SysprocCreateProcesses (); dbprintf ('i', "Created processes - about to set timer quantum.\n"); TimerSet (processQuantum); dbprintf ('i', "Set timer quantum to %d, about to run first process.\n", processQuantum); intrreturn (); // Should never be called because the scheduler exits when there // are no runnable processes left. exitsim(); // NEVER RETURNS! } float MyFuncRetZero() { return 0; } unsigned GetCurrentPid() { return (unsigned)(currentPCB - pcbs); } unsigned findpid(PCB *pcb) { return (unsigned)(pcb - pcbs); } void process_create(int p_nice, int p_info, char *name, ...) { char **args; int i, j, k; char allargs[1000]; args = &name; k=0; for(i=0; args[i]!=NULL; i++) { j=0; do { allargs[k] = args[i][j]; j++; k++; } while(args[i][j-1]!='\0'); } allargs[k] = allargs[k+1] = 0; ProcessFork(0, (uint32)allargs, p_nice,p_info,name, 1); }

src/sysproc.c

// // sysproc.c // // This file defines system processes run by the OS. It also // includes a routine to initialize system processes. #include "process.h" //#include "synch.h" //---------------------------------------------------------------------- // // doSomething // // A useless little function that does some small stuff to test // process switching and the like. // //---------------------------------------------------------------------- typedef struct Sem { Queue waiting; int count; uint32 inuse; //indicates whether the semaphore is being //used by any process } Sem; static Sem mysems[10]; static void doSomething (int me) { int i; int j; int mygrp = me % 10; char buf[40]; char buf2[40]; if (me < 100) { SemInit (&(mysems[mygrp]), 1); for (i = 1; i <= 6; i++) { dstrcpy (buf, "Process #"); ditoa (i, buf2); dstrcat (buf, buf2); ProcessFork (&doSomething, i * me * 1000 + me,0,0, buf, 0); } } SemWait (&mysems[mygrp]); for (i = 0, j = 0; i < (me * 2); i++) { if ((i % 1000) == 0) { printf ("Running process %d (iteration %d)!\n", me, i); } j += (i & 3); } SemSignal (&mysems[mygrp]); } � //---------------------------------------------------------------------- // // chaseTail // // A little function that chases its tail, forking off other // processes before exiting. This can be used to test resource // allocation and reclamation. // //---------------------------------------------------------------------- static void chaseTail (int me) { char *str = "chasetail"; printf ("Chasing tail %d.\n", me); printf ("Open of (%s,0x%x) returns 0x%x.\n", str, me+0x2000, Open (str, me + 0x2000)); if (me < 40) { ProcessFork (&chaseTail, me + 1,0,0, "ChaseTail", 0); } } //---------------------------------------------------------------------- // // emptyLoop // // This is an empty loop. It's used to test running code. A similar // loop could be used as the "idle" process. // //---------------------------------------------------------------------- static void emptyLoop (int me) { int i; int limit = me * 50000; i = 0; while (1) { i += 1; if (i > limit) { i = 0; printf ("%d ", me); } } } � //---------------------------------------------------------------------- // // randomStuff // // This routine tests random number usage in DLXOS. // //---------------------------------------------------------------------- static void randomStuff (int seed) { int i,rn; extern int random(),srandom(); srandom (seed); for (i = 0; i < 40; i++) { rn = random (); printf ("Random number %02i is 0x%08x.\n", i, rn); } } //---------------------------------------------------------------------- // // SysprocCreateProcesses // // This is the routine that is called by main to create processes. // It must create at least one process, and there must always be // at least one runnable process. If there isn't, the OS will // exit. // //---------------------------------------------------------------------- void SysprocCreateProcesses () { int i; for (i = 0; i < 10; i++) { SemInit (&mysems[i], 1); } }

src/synch.bin

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Entering SynchModuleInit\n\000" .align 2 LC1: .ascii "Leaving SynchModuleInit\n\000" .text .align 2 .proc _SynchModuleInit .global _SynchModuleInit _SynchModuleInit: ; Function 'SynchModuleInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r3,r0,#112 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L53 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r3,r0,#43 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L52 nop ; not filled. L53: addi r29,r29,#-8 lhi r3,((LC0)>>16)&0xffff addui r3,r3,(LC0)&0xffff sw (r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L52: lhi r31,((_sems)>>16)&0xffff addui r31,r31,(_sems)&0xffff addi r2,r31,#1260 L57: addi r3,r0,#0 sw 16(r31),r3 addi r31,r31,#20 sle r1,r31,r2 bnez r1,L57 nop ; not filled. lhi r31,((_locks)>>16)&0xffff addui r31,r31,(_locks)&0xffff addi r2,r31,#1764 L62: addi r3,r0,#0 sw 24(r31),r3 addi r3,r0,#-1 sw 20(r31),r3 addi r31,r31,#28 sle r1,r31,r2 bnez r1,L62 nop ; not filled. addi r2,r0,#0 lhi r31,((_conds)>>16)&0xffff addui r31,r31,(_conds)&0xffff L67: addi r3,r0,#0 sw 28(r31),r3 sw 24(r31),r3 addi r31,r31,#32 addi r2,r2,#1 slei r1,r2,#31 bnez r1,L67 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r3,r0,#112 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L70 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r3,r0,#43 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L69 nop ; not filled. L70: addi r29,r29,#-8 lhi r3,((LC1)>>16)&0xffff addui r3,r3,(LC1)&0xffff sw (r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L69: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SynchModuleInit .align 2 .proc _SemInit .global _SemInit _SemInit: ; Function 'SemInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. sw 12(r2),r3 addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemInit .align 2 .proc _SemCreate .global _SemCreate _SemCreate: ; Function 'SemCreate'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r3,r0,#0 lhi r31,((_sems)>>16)&0xffff addui r31,r31,(_sems)&0xffff L89: add r2,r0,r31 lw r1,16(r31) snei r1,r1,#0 beqz r1,L96 nop ; not filled. addi r31,r2,#20 addi r3,r3,#1 slei r1,r3,#63 bnez r1,L89 nop ; not filled. L87: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 seqi r1,r3,#64 bnez r1,L93 nop ; not filled. slli r1,r3,#0x2 add r1,r1,r3 slli r1,r1,#0x2 lhi r5,((_sems)>>16)&0xffff addui r5,r5,(_sems)&0xffff add r2,r1,r5 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. lw r5,(r30) sw 12(r2),r5 addi r29,r29,#8 add r1,r0,r3 j L95 nop ; not filled. L96: addi r5,r0,#1 sw 16(r31),r5 j L87 nop ; not filled. L93: addi r1,r0,#-1 L95: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemCreate .data .align 2 LC2: .ascii "Old interrupt value was 0x%x.\n\000" .align 2 LC3: .ascii "Proc 0x%x waiting on sem 0x%x, count=%d.\n\000" .align 2 LC4: .ascii "Suspending current proc (0x%x).\n\000" .text .align 2 .proc _SemWait .global _SemWait _SemWait: ; Function 'SemWait'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r4,(r30) addi r29,r29,#-8 addi r7,r0,#15 sw (r29),r7 jal _SetIntrs nop ; not filled. add r6,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#73 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L100 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L99 nop ; not filled. L100: addi r29,r29,#-8 lhi r7,((LC2)>>16)&0xffff addui r7,r7,(LC2)&0xffff sw (r29),r7 sw 4(r29),r6 jal _printf nop ; not filled. addi r29,r29,#8 L99: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#115 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L102 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L101 nop ; not filled. L102: addi r29,r29,#-16 lhi r7,((LC3)>>16)&0xffff addui r7,r7,(LC3)&0xffff sw (r29),r7 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 sw 8(r29),r4 lw r7,12(r4) sw 12(r29),r7 jal _printf nop ; not filled. addi r29,r29,#16 L101: lw r1,12(r4) addi r1,r1,#-1 sw 12(r4),r1 slti r1,r1,#0 beqz r1,L103 nop ; not filled. jal _QueueAllocLink nop ; not filled. add r2,r0,r1 lhi r5,((_currentPCB)>>16)&0xffff addui r5,r5,(_currentPCB)&0xffff lw r1,(r5) addi r7,r0,#0 sw (r2),r7 sw 12(r2),r1 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r7,r0,#115 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L106 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L105 nop ; not filled. L106: addi r29,r29,#-8 lhi r7,((LC4)>>16)&0xffff addui r7,r7,(LC4)&0xffff sw (r29),r7 lw r1,(r5) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L105: lw r1,4(r4) sw 8(r2),r4 sw 4(r2),r1 lw r7,(r1) sw (r2),r7 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r4) addi r1,r1,#1 sw 8(r4),r1 jal _ProcessSleep nop ; not filled. L103: addi r29,r29,#-8 sw (r29),r6 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemWait .align 2 .proc _SemHandleWait .global _SemHandleWait _SemHandleWait: ; Function 'SemHandleWait'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r31,(r30) sleui r1,r31,#63 beqz r1,L116 nop ; not filled. slli r1,r31,#0x2 add r1,r1,r31 slli r1,r1,#0x2 lhi r2,((_sems)>>16)&0xffff addui r2,r2,(_sems)&0xffff add r31,r1,r2 lw r1,16(r31) snei r1,r1,#0 beqz r1,L117 nop ; not filled. addi r29,r29,#-8 sw (r29),r31 jal _SemWait nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L115 nop ; not filled. L117: addi r1,r0,#1 j L115 nop ; not filled. L116: addi r1,r0,#1 L115: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemHandleWait .data .align 2 LC5: .ascii "Signalling on sem 0x%x, count=%d.\n\000" .align 2 LC6: .ascii "Waking up PCB 0x%x.\n\000" .text .align 2 .proc _SemSignal .global _SemSignal _SemSignal: ; Function 'SemSignal'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r5,r0,#115 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L123 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L122 nop ; not filled. L123: addi r29,r29,#-16 lhi r5,((LC5)>>16)&0xffff addui r5,r5,(LC5)&0xffff sw (r29),r5 sw 4(r29),r2 lw r5,12(r2) sw 8(r29),r5 jal _printf nop ; not filled. addi r29,r29,#16 L122: lw r1,12(r2) addi r1,r1,#1 sw 12(r2),r1 slei r1,r1,#0 beqz r1,L124 nop ; not filled. lw r3,(r2) lw r1,8(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L127 nop ; not filled. lw r1,4(r3) lw r5,(r3) sw (r1),r5 lw r1,(r3) lw r5,4(r3) sw 4(r1),r5 lw r2,8(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L127: addi r5,r0,#0 sw (r3),r5 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#115 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L129 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L128 nop ; not filled. L129: addi r29,r29,#-8 lhi r5,((LC6)>>16)&0xffff addui r5,r5,(LC6)&0xffff sw (r29),r5 lw r1,12(r3) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L128: addi r29,r29,#-8 lw r5,12(r3) sw (r29),r5 jal _ProcessWakeup nop ; not filled. sw (r29),r3 jal _QueueFreeLink nop ; not filled. addi r29,r29,#8 L124: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemSignal .align 2 .proc _SemHandleSignal .global _SemHandleSignal _SemHandleSignal: ; Function 'SemHandleSignal'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r31,(r30) sleui r1,r31,#63 beqz r1,L136 nop ; not filled. slli r1,r31,#0x2 add r1,r1,r31 slli r1,r1,#0x2 lhi r2,((_sems)>>16)&0xffff addui r2,r2,(_sems)&0xffff add r31,r1,r2 lw r1,16(r31) snei r1,r1,#0 beqz r1,L137 nop ; not filled. addi r29,r29,#-8 sw (r29),r31 jal _SemSignal nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L135 nop ; not filled. L137: addi r1,r0,#1 j L135 nop ; not filled. L136: addi r1,r0,#1 L135: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemHandleSignal .align 2 .proc _LockInit .global _LockInit _LockInit: ; Function 'LockInit'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) addi r29,r29,#-8 addi r4,r0,#15 sw (r29),r4 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. addi r4,r0,#1 sw 12(r2),r4 addi r29,r29,#8 addi r4,r0,#-1 sw 20(r2),r4 addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockInit .align 2 .proc _LockCreate .global _LockCreate _LockCreate: ; Function 'LockCreate'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r31,r0,r1 addi r29,r29,#8 addi r4,r0,#0 lhi r3,((_locks)>>16)&0xffff addui r3,r3,(_locks)&0xffff L153: add r2,r0,r3 lw r1,24(r3) snei r1,r1,#0 beqz r1,L163 nop ; not filled. addi r3,r2,#28 addi r4,r4,#1 slei r1,r4,#63 bnez r1,L153 nop ; not filled. L151: addi r29,r29,#-8 sw (r29),r31 jal _SetIntrs nop ; not filled. addi r29,r29,#8 seqi r1,r4,#64 bnez r1,L157 nop ; not filled. slli r1,r4,#0x3 sub r1,r1,r4 slli r1,r1,#0x2 lhi r5,((_locks)>>16)&0xffff addui r5,r5,(_locks)&0xffff add r2,r1,r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. addi r5,r0,#1 sw 12(r2),r5 addi r29,r29,#8 addi r5,r0,#-1 sw 20(r2),r5 addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r4 j L162 nop ; not filled. L163: addi r5,r0,#1 sw 24(r3),r5 j L151 nop ; not filled. L157: addi r1,r0,#-1 L162: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockCreate .align 2 .proc _LockAcquire .global _LockAcquire _LockAcquire: ; Function 'LockAcquire'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r4,((_currentPCB)>>16)&0xffff addui r4,r4,(_currentPCB)&0xffff lw r6,(r4) sw (r29),r6 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L170 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop ; not filled. lw r4,(r4) sw (r29),r4 jal _findpid nop ; not filled. sw 20(r3),r1 addi r29,r29,#8 L170: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockAcquire .align 2 .proc _LockHandleAcquire .global _LockHandleAcquire _LockHandleAcquire: ; Function 'LockHandleAcquire'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) sleui r1,r2,#63 beqz r1,L181 nop ; not filled. slli r1,r2,#0x3 sub r1,r1,r2 slli r1,r1,#0x2 lhi r6,((_locks)>>16)&0xffff addui r6,r6,(_locks)&0xffff add r3,r1,r6 lw r1,24(r3) snei r1,r1,#0 beqz r1,L181 nop ; not filled. addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r4,((_currentPCB)>>16)&0xffff addui r4,r4,(_currentPCB)&0xffff lw r6,(r4) sw (r29),r6 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L185 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop ; not filled. lw r4,(r4) sw (r29),r4 jal _findpid nop ; not filled. sw 20(r3),r1 addi r29,r29,#8 L185: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L188 nop ; not filled. L181: addi r1,r0,#1 L188: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockHandleAcquire .align 2 .proc _LockRelease .global _LockRelease _LockRelease: ; Function 'LockRelease'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r3,(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L195 nop ; not filled. addi r5,r0,#-1 sw 20(r3),r5 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 L195: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockRelease .align 2 .proc _LockHandleRelease .global _LockHandleRelease _LockHandleRelease: ; Function 'LockHandleRelease'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) sleui r1,r2,#63 beqz r1,L206 nop ; not filled. slli r1,r2,#0x3 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_locks)>>16)&0xffff addui r5,r5,(_locks)&0xffff add r3,r1,r5 lw r1,24(r3) snei r1,r1,#0 beqz r1,L206 nop ; not filled. addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L210 nop ; not filled. addi r5,r0,#-1 sw 20(r3),r5 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 L210: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L213 nop ; not filled. L206: addi r1,r0,#1 L213: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockHandleRelease .align 2 .proc _CondInit .global _CondInit _CondInit: ; Function 'CondInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop ; not filled. addi r5,r0,#0 sw 16(r2),r5 addi r29,r29,#8 sw (r2),r3 sw 24(r2),r5 addi r5,r0,#1 sw 28(r2),r5 addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondInit .align 2 .proc _CondCreate .global _CondCreate _CondCreate: ; Function 'CondCreate'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) sgtui r1,r3,#64 bnez r1,L233 nop ; not filled. slli r1,r3,#0x3 sub r1,r1,r3 slli r1,r1,#0x2 lhi r6,((_locks)>>16)&0xffff addui r6,r6,(_locks)&0xffff add r1,r1,r6 lw r1,24(r1) snei r1,r1,#1 beqz r1,L224 nop ; not filled. j L233 nop ; not filled. L239: addi r6,r0,#1 sw 28(r2),r6 j L227 nop ; not filled. L224: addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r5,r0,#0 lhi r2,((_conds)>>16)&0xffff addui r2,r2,(_conds)&0xffff L229: lw r1,28(r2) snei r1,r1,#0 beqz r1,L239 nop ; not filled. addi r2,r2,#32 addi r5,r5,#1 slei r1,r5,#31 bnez r1,L229 nop ; not filled. L227: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 seqi r1,r5,#32 bnez r1,L233 nop ; not filled. slli r2,r5,#0x5 lhi r6,((_conds)>>16)&0xffff addui r6,r6,(_conds)&0xffff add r2,r2,r6 slli r1,r3,#0x3 sub r1,r1,r3 slli r1,r1,#0x2 lhi r6,((_locks)>>16)&0xffff addui r6,r6,(_locks)&0xffff add r3,r1,r6 addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop ; not filled. addi r6,r0,#0 sw 16(r2),r6 addi r29,r29,#8 sw (r2),r3 sw 24(r2),r6 addi r6,r0,#1 sw 28(r2),r6 addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r5 j L238 nop ; not filled. L233: addi r1,r0,#-1 L238: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondCreate .align 2 .proc _CondWait .global _CondWait _CondWait: ; Function 'CondWait'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r4,(r30) addi r29,r29,#-8 addi r8,r0,#15 sw (r29),r8 jal _SetIntrs nop ; not filled. add r7,r0,r1 addi r29,r29,#8 lw r1,24(r4) addi r1,r1,#1 sw 24(r4),r1 lw r3,(r4) addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r6,((_currentPCB)>>16)&0xffff addui r6,r6,(_currentPCB)&0xffff lw r8,(r6) sw (r29),r8 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L244 nop ; not filled. addi r8,r0,#-1 sw 20(r3),r8 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 L244: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 addi r1,r4,#4 sw (r29),r1 jal _SemWait nop ; not filled. lw r3,(r4) addi r29,r29,#8 addi r29,r29,#-8 addi r8,r0,#15 sw (r29),r8 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lw r8,(r6) sw (r29),r8 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L248 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop ; not filled. lw r6,(r6) sw (r29),r6 jal _findpid nop ; not filled. sw 20(r3),r1 addi r29,r29,#8 L248: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondWait .align 2 .proc _CondHandleWait .global _CondHandleWait _CondHandleWait: ; Function 'CondHandleWait'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) sleui r1,r2,#31 beqz r1,L256 nop ; not filled. slli r1,r2,#0x5 lhi r4,((_conds)>>16)&0xffff addui r4,r4,(_conds)&0xffff add r3,r1,r4 lw r1,28(r3) snei r1,r1,#0 beqz r1,L257 nop ; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r2) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L257 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _CondWait nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L255 nop ; not filled. L257: addi r1,r0,#1 j L255 nop ; not filled. L256: addi r1,r0,#1 L255: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleWait .align 2 .proc _CondSignal .global _CondSignal _CondSignal: ; Function 'CondSignal'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) addi r29,r29,#-8 addi r4,r0,#15 sw (r29),r4 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 lw r31,24(r2) snei r1,r31,#0 beqz r1,L266 nop ; not filled. addi r1,r31,#-1 sw 24(r2),r1 addi r29,r29,#-8 addi r1,r2,#4 sw (r29),r1 jal _SemSignal nop ; not filled. addi r29,r29,#8 L266: addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondSignal .align 2 .proc _CondHandleSignal .global _CondHandleSignal _CondHandleSignal: ; Function 'CondHandleSignal'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) sleui r1,r2,#31 beqz r1,L277 nop ; not filled. slli r1,r2,#0x5 lhi r5,((_conds)>>16)&0xffff addui r5,r5,(_conds)&0xffff add r3,r1,r5 lw r1,28(r3) snei r1,r1,#0 beqz r1,L277 nop ; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r2) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L277 nop ; not filled. addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 lw r2,24(r3) snei r1,r2,#0 beqz r1,L282 nop ; not filled. addi r1,r2,#-1 sw 24(r3),r1 addi r29,r29,#-8 addi r1,r3,#4 sw (r29),r1 jal _SemSignal nop ; not filled. addi r29,r29,#8 L282: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L284 nop ; not filled. L277: addi r1,r0,#1 L284: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleSignal .align 2 .proc _CondBroadcast .global _CondBroadcast _CondBroadcast: ; Function 'CondBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r2,r0,#0 lw r1,24(r4) sltu r1,r2,r1 beqz r1,L296 nop ; not filled. addi r3,r4,#4 L298: addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 lw r1,24(r4) sltu r1,r2,r1 bnez r1,L298 nop ; not filled. L296: addi r6,r0,#0 sw 24(r4),r6 addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondBroadcast .align 2 .proc _CondHandleBroadcast .global _CondHandleBroadcast _CondHandleBroadcast: ; Function 'CondHandleBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) sleui r1,r2,#31 beqz r1,L302 nop ; not filled. slli r1,r2,#0x5 lhi r6,((_conds)>>16)&0xffff addui r6,r6,(_conds)&0xffff add r3,r1,r6 lw r1,28(r3) snei r1,r1,#0 beqz r1,L302 nop ; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r2) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L302 nop ; not filled. addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r2,r0,#0 lw r1,24(r3) sltu r1,r2,r1 beqz r1,L308 nop ; not filled. addi r4,r3,#4 L310: addi r29,r29,#-8 sw (r29),r4 jal _SemSignal nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 lw r1,24(r3) sltu r1,r2,r1 bnez r1,L310 nop ; not filled. L308: addi r6,r0,#0 sw 24(r3),r6 addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L313 nop ; not filled. L302: addi r1,r0,#1 L313: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleBroadcast .data .align 2 _sems: .space 1280 .align 2 _locks: .space 1792 .align 2 _conds: .space 1024

src/filesys.o

; Compiled by GCC .data .align 2 _rcsid: .ascii "$Id: filesys.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Attepmting to open %s mode=%d.\n\000" .align 2 LC1: .ascii "dlx:\000" .align 2 LC2: .ascii "File %s opening in file system %d.\n\000" .align 2 LC3: .ascii "Opened %s in FS %d, mode=%d slot=%d.\n\000" .text .align 2 .proc _FsOpen .global _FsOpen _FsOpen: ; Function 'FsOpen'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r4,(r30) lw r5,4(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#102 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L56 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L55 nop ; not filled. L56: addi r29,r29,#-16 lhi r8,((LC0)>>16)&0xffff addui r8,r8,(LC0)&0xffff sw (r29),r8 sw 4(r29),r4 sw 8(r29),r5 jal _printf nop ; not filled. addi r29,r29,#16 L55: andi r5,r5,#3 snei r1,r5,#0 beqz r1,L74 nop ; not filled. addi r3,r0,#0 lhi r6,((_openfiles)>>16)&0xffff addui r6,r6,(_openfiles)&0xffff add r2,r0,r6 L61: lw r1,4(r2) snei r1,r1,#0 beqz r1,L59 nop ; not filled. addi r2,r2,#268 addi r3,r3,#1 slei r1,r3,#31 bnez r1,L61 nop ; not filled. L59: sgti r1,r3,#31 beqz r1,L64 nop ; not filled. L74: addi r1,r0,#-1 j L73 nop ; not filled. L64: slli r1,r3,#0x4 add r1,r1,r3 slli r1,r1,#0x2 sub r1,r1,r3 slli r1,r1,#0x2 add r2,r1,r6 sw 4(r2),r5 addi r29,r29,#-16 sw (r29),r4 lhi r1,((LC1)>>16)&0xffff addui r1,r1,(LC1)&0xffff sw 4(r29),r1 addi r8,r0,#4 sw 8(r29),r8 jal _dstrncmp nop ; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L65 nop ; not filled. addi r4,r4,#4 addi r8,r0,#1 j L75 nop ; not filled. L65: addi r8,r0,#0 L75: sw (r2),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#102 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L68 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L67 nop ; not filled. L68: addi r29,r29,#-16 lhi r8,((LC2)>>16)&0xffff addui r8,r8,(LC2)&0xffff sw (r29),r8 sw 4(r29),r4 slli r1,r3,#0x4 add r1,r1,r3 slli r1,r1,#0x2 sub r1,r1,r3 slli r1,r1,#0x2 lhi r8,((_openfiles)>>16)&0xffff addui r8,r8,(_openfiles)&0xffff add r1,r1,r8 lw r1,(r1) sw 8(r29),r1 jal _printf nop ; not filled. addi r29,r29,#16 L67: addi r29,r29,#-16 slli r1,r3,#0x4 add r1,r1,r3 slli r1,r1,#0x2 sub r1,r1,r3 slli r6,r1,#0x2 lhi r8,((_openfiles)>>16)&0xffff addui r8,r8,(_openfiles)&0xffff add r7,r6,r8 lw r2,(r7) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r8,((_fs)>>16)&0xffff addui r8,r8,(_fs)&0xffff add r1,r1,r8 sw (r29),r3 sw 4(r29),r4 sw 8(r29),r5 lw r1,(r1) jalr r1 nop ; not filled. add r2,r0,r1 addi r29,r29,#16 slti r1,r2,#0 beqz r1,L69 nop ; not filled. lhi r8,((_openfiles)>>16)&0xffff addui r8,r8,(_openfiles)&0xffff add r1,r6,r8 addi r8,r0,#0 sw 4(r1),r8 add r1,r0,r2 j L73 nop ; not filled. L69: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#102 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L72 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L71 nop ; not filled. L72: addi r29,r29,#-24 lhi r8,((LC3)>>16)&0xffff addui r8,r8,(LC3)&0xffff sw (r29),r8 sw 4(r29),r4 lw r7,(r7) sw 8(r29),r7 sw 12(r29),r5 sw 16(r29),r3 jal _printf nop ; not filled. addi r29,r29,#24 L71: add r1,r0,r3 L73: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsOpen .align 2 .proc _FsClose .global _FsClose _FsClose: ; Function 'FsClose'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L84 nop ; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r4,((_openfiles)>>16)&0xffff addui r4,r4,(_openfiles)&0xffff add r1,r1,r4 lw r1,4(r1) snei r1,r1,#0 beqz r1,L84 nop ; not filled. addi r2,r0,#1 L84: snei r1,r2,#0 beqz r1,L82 nop ; not filled. addi r29,r29,#-8 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r3,r1,#0x2 lhi r4,((_openfiles)>>16)&0xffff addui r4,r4,(_openfiles)&0xffff add r1,r3,r4 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r4,((_fs)>>16)&0xffff addui r4,r4,(_fs)&0xffff add r1,r1,r4 sw (r29),r31 lw r1,16(r1) jalr r1 nop ; not filled. addi r29,r29,#8 lhi r4,((_openfiles)>>16)&0xffff addui r4,r4,(_openfiles)&0xffff add r2,r3,r4 addi r4,r0,#0 sw 4(r2),r4 j L86 nop ; not filled. L82: addi r1,r0,#-1 L86: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsClose .align 2 .proc _FsRead .global _FsRead _FsRead: ; Function 'FsRead'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L94 nop ; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r1,4(r1) snei r1,r1,#0 beqz r1,L94 nop ; not filled. addi r2,r0,#1 L94: snei r1,r2,#0 beqz r1,L92 nop ; not filled. addi r29,r29,#-16 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r3,((_fs)>>16)&0xffff addui r3,r3,(_fs)&0xffff add r1,r1,r3 sw (r29),r31 lw r3,4(r30) sw 4(r29),r3 lw r3,8(r30) sw 8(r29),r3 lw r1,4(r1) jalr r1 nop ; not filled. addi r29,r29,#16 j L91 nop ; not filled. L92: addi r1,r0,#-1 L91: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsRead .align 2 .proc _FsWrite .global _FsWrite _FsWrite: ; Function 'FsWrite'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L103 nop ; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r1,4(r1) snei r1,r1,#0 beqz r1,L103 nop ; not filled. addi r2,r0,#1 L103: snei r1,r2,#0 beqz r1,L101 nop ; not filled. addi r29,r29,#-16 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r3,((_fs)>>16)&0xffff addui r3,r3,(_fs)&0xffff add r1,r1,r3 sw (r29),r31 lw r3,4(r30) sw 4(r29),r3 lw r3,8(r30) sw 8(r29),r3 lw r1,8(r1) jalr r1 nop ; not filled. addi r29,r29,#16 j L100 nop ; not filled. L101: addi r1,r0,#-1 L100: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsWrite .align 2 .proc _FsSeek .global _FsSeek _FsSeek: ; Function 'FsSeek'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L112 nop ; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r1,4(r1) snei r1,r1,#0 beqz r1,L112 nop ; not filled. addi r2,r0,#1 L112: snei r1,r2,#0 beqz r1,L110 nop ; not filled. addi r29,r29,#-16 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r3,((_fs)>>16)&0xffff addui r3,r3,(_fs)&0xffff add r1,r1,r3 sw (r29),r31 lw r3,4(r30) sw 4(r29),r3 lw r3,8(r30) sw 8(r29),r3 lw r1,12(r1) jalr r1 nop ; not filled. addi r29,r29,#16 j L109 nop ; not filled. L110: addi r1,r0,#-1 L109: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsSeek .align 2 .proc _FsDelete .global _FsDelete _FsDelete: ; Function 'FsDelete'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) addi r29,r29,#-16 sw (r29),r2 lhi r1,((LC1)>>16)&0xffff addui r1,r1,(LC1)&0xffff sw 4(r29),r1 addi r3,r0,#4 sw 8(r29),r3 jal _dstrncmp nop ; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L118 nop ; not filled. addi r2,r2,#4 addi r29,r29,#-8 lhi r1,((_fs+44)>>16)&0xffff addui r1,r1,(_fs+44)&0xffff j L120 nop ; not filled. L118: addi r29,r29,#-8 lhi r1,((_fs+20)>>16)&0xffff addui r1,r1,(_fs+20)&0xffff L120: sw (r29),r2 lw r1,(r1) jalr r1 nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDelete .data .align 2 LC4: .ascii "Attempting to open file %s into desc %d, mode %d.\n\000" .text .align 2 .proc _FsUnixOpen .global _FsUnixOpen _FsUnixOpen: ; Function 'FsUnixOpen'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) lw r3,4(r30) lw r5,8(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r6,r0,#102 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L127 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r6,r0,#43 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L126 nop ; not filled. L127: addi r29,r29,#-16 lhi r6,((LC4)>>16)&0xffff addui r6,r6,(LC4)&0xffff sw (r29),r6 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 jal _printf nop ; not filled. addi r29,r29,#16 L126: addi r29,r29,#-8 sw (r29),r3 sw 4(r29),r5 jal _open nop ; not filled. add r3,r0,r1 slli r1,r4,#0x4 add r1,r1,r4 slli r1,r1,#0x2 sub r1,r1,r4 slli r1,r1,#0x2 lhi r6,((_openfiles)>>16)&0xffff addui r6,r6,(_openfiles)&0xffff add r1,r1,r6 sw 264(r1),r3 addi r29,r29,#8 slti r2,r3,#0 add r1,r0,r3 bnez r2,L128 nop ; not filled. addi r1,r0,#1 L128: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixOpen .align 2 .proc _FsUnixRead .global _FsUnixRead _FsUnixRead: ; Function 'FsUnixRead'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) lw r4,8(r30) addi r29,r29,#-16 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_openfiles)>>16)&0xffff addui r5,r5,(_openfiles)&0xffff add r1,r1,r5 lw r1,264(r1) sw (r29),r1 sw 4(r29),r3 sw 8(r29),r4 jal _read nop ; not filled. addi r29,r29,#16 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixRead .align 2 .proc _FsUnixWrite .global _FsUnixWrite _FsUnixWrite: ; Function 'FsUnixWrite'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) lw r4,8(r30) addi r29,r29,#-16 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_openfiles)>>16)&0xffff addui r5,r5,(_openfiles)&0xffff add r1,r1,r5 lw r1,264(r1) sw (r29),r1 sw 4(r29),r3 sw 8(r29),r4 jal _write nop ; not filled. addi r29,r29,#16 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixWrite .align 2 .proc _FsUnixSeek .global _FsUnixSeek _FsUnixSeek: ; Function 'FsUnixSeek'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) lw r4,8(r30) addi r29,r29,#-16 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_openfiles)>>16)&0xffff addui r5,r5,(_openfiles)&0xffff add r1,r1,r5 lw r1,264(r1) sw (r29),r1 sw 4(r29),r3 sw 8(r29),r4 jal _lseek nop ; not filled. addi r29,r29,#16 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixSeek .align 2 .proc _FsUnixClose .global _FsUnixClose _FsUnixClose: ; Function 'FsUnixClose'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) addi r29,r29,#-8 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r1,264(r1) sw (r29),r1 jal _close nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixClose .align 2 .proc _FsUnixDelete .global _FsUnixDelete _FsUnixDelete: ; Function 'FsUnixDelete'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r1,r0,#-1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixDelete .align 2 .proc _FsDlxIo .global _FsDlxIo _FsDlxIo: ; Function 'FsDlxIo'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxIo .align 2 .proc _FsDlxRead .global _FsDlxRead _FsDlxRead: ; Function 'FsDlxRead'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxRead .align 2 .proc _FsDlxWrite .global _FsDlxWrite _FsDlxWrite: ; Function 'FsDlxWrite'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxWrite .align 2 .proc _FsDlxOpen .global _FsDlxOpen _FsDlxOpen: ; Function 'FsDlxOpen'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) slli r2,r1,#0x4 add r2,r2,r1 slli r2,r2,#0x2 sub r1,r2,r1 slli r1,r1,#0x2 lhi r31,((_openfiles)>>16)&0xffff addui r31,r31,(_openfiles)&0xffff add r1,r1,r31 addi r31,r0,#0 sw 264(r1),r31 addi r1,r0,#1 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxOpen .align 2 .proc _FsDlxSeek .global _FsDlxSeek _FsDlxSeek: ; Function 'FsDlxSeek'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) slli r2,r1,#0x4 add r2,r2,r1 slli r2,r2,#0x2 sub r1,r2,r1 slli r1,r1,#0x2 lhi r31,((_openfiles)>>16)&0xffff addui r31,r31,(_openfiles)&0xffff add r1,r1,r31 lw r1,264(r1) lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxSeek .align 2 .proc _FsDlxClose .global _FsDlxClose _FsDlxClose: ; Function 'FsDlxClose'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxClose .align 2 .proc _FsDlxDelete .global _FsDlxDelete _FsDlxDelete: ; Function 'FsDlxDelete'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxDelete .align 2 .proc _FsModuleInit .global _FsModuleInit _FsModuleInit: ; Function 'FsModuleInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lhi r31,((_openfiles)>>16)&0xffff addui r31,r31,(_openfiles)&0xffff addi r2,r31,#8308 L182: addi r3,r0,#0 sw 4(r31),r3 addi r31,r31,#268 sle r1,r31,r2 bnez r1,L182 nop ; not filled. lhi r1,((_fs)>>16)&0xffff addui r1,r1,(_fs)&0xffff lhi r3,((_FsUnixOpen)>>16)&0xffff addui r3,r3,(_FsUnixOpen)&0xffff sw (r1),r3 lhi r3,((_FsUnixClose)>>16)&0xffff addui r3,r3,(_FsUnixClose)&0xffff sw 16(r1),r3 lhi r3,((_FsUnixRead)>>16)&0xffff addui r3,r3,(_FsUnixRead)&0xffff sw 4(r1),r3 lhi r3,((_FsUnixWrite)>>16)&0xffff addui r3,r3,(_FsUnixWrite)&0xffff sw 8(r1),r3 lhi r3,((_FsUnixSeek)>>16)&0xffff addui r3,r3,(_FsUnixSeek)&0xffff sw 12(r1),r3 lhi r3,((_FsUnixDelete)>>16)&0xffff addui r3,r3,(_FsUnixDelete)&0xffff sw 20(r1),r3 lhi r3,((_FsDlxOpen)>>16)&0xffff addui r3,r3,(_FsDlxOpen)&0xffff sw 24(r1),r3 lhi r3,((_FsDlxClose)>>16)&0xffff addui r3,r3,(_FsDlxClose)&0xffff sw 40(r1),r3 lhi r3,((_FsDlxRead)>>16)&0xffff addui r3,r3,(_FsDlxRead)&0xffff sw 28(r1),r3 lhi r3,((_FsDlxWrite)>>16)&0xffff addui r3,r3,(_FsDlxWrite)&0xffff sw 32(r1),r3 lhi r3,((_FsDlxSeek)>>16)&0xffff addui r3,r3,(_FsDlxSeek)&0xffff sw 36(r1),r3 lhi r3,((_FsDlxDelete)>>16)&0xffff addui r3,r3,(_FsDlxDelete)&0xffff sw 44(r1),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsModuleInit .data .align 2 _fs: .space 48 .align 2 _openfiles: .space 8576

src/filesys.h

// // filesys.h // // Includes for the file system. Includes the definition of the file // system interface structure. // // Copyright 1999 by Ethan L. Miller // University of Maryland Baltimore County // // $Id: filesys.h,v 1.1 2000/09/20 01:50:19 elm Exp elm $ // #ifndef _filesys_h_ #define _filesys_h_ #define FS_FS_BUILTIN 1 #define FS_FS_DLXOS 2 #define FS_MODE_READ 0x1 #define FS_MODE_WRITE 0x2 #define FS_MODE_RW (FS_MODE_READ | FS_MODE_WRITE) // If this flag is set, a new file is created if no file already exists. // This flag only works with the DLX file system. #define FS_MODE_CREATE 0x4 // IMPORTANT: These must match the underlying UNIX seek parameters. // These values are correct for Linux and should work elsewhere, but // be careful.... #define FS_SEEK_SET 0 #define FS_SEEK_CUR 1 #define FS_SEEK_END 2 #define FS_BUFFER_SIZE 256 #define FS_MAX_OPEN_FILES 32 typedef struct Fs { int (*Open)(int, const char *, int); int (*Read)(int, char *, int); int (*Write)(int, char *, int); int (*Seek)(int, int, int); int (*Close)(int); int (*Delete)(const char *); } Fs; typedef struct FsUnixInfo { int fd; // Unix file descriptor } FsUnixInfo; typedef struct FsDlxInfo { int curpos; // What's our current position in the file? } FsDlxInfo; typedef struct FsOpenFile { int fs; // which file system is this file in? int flags; char buffer[FS_BUFFER_SIZE]; union { FsUnixInfo Unix; FsDlxInfo Dlx; } u; } FsOpenFile; extern int FsOpen (const char *, int); extern int FsRead (int, char *, int); extern int FsWrite (int, char *, int); extern int FsSeek (int, int, int); extern int FsClose (int); extern int FsDelete (const char *); #endif // _filesys_h_

src/usertraps.s

;;; ;;; Stub functions for DLX traps. ;;; ;;; Ethan L. Miller, 1999. Released to the public domain. ;;; ;;; The traps such as Open and Close ;;; (note the capital letters) are for use by user programs. The traps ;;; with names such as open and close (lower case) are for use by the OS. ;;; .text .align 2 ;;; The following are the traps to be used by user-level programs ;;; .text .align 2 .proc _Open .global _Open _Open: ;;; Note that trap #0x213 actually causes a trap vector in the OS of ;;; 0x1213. The same is true for other user traps. Thus, a user trap ;;; with trap #0x240 will result in a trap vector of 0x1240 in the OS. trap #0x213 jr r31 nop .endproc _Open .proc _Close .global _Close _Close: trap #0x214 jr r31 nop .endproc _Close .proc _Read .global _Read _Read: trap #0x210 jr r31 nop .endproc _Read .proc _Write .global _Write _Write: trap #0x211 jr r31 nop .endproc _Write .proc _Lseek .global _Lseek _Lseek: trap #0x212 jr r31 nop .endproc _Lseek .proc _Putchar .global _Putchar _Putchar: trap #0x280 jr r31 nop .endproc _Putchar .proc _Printf .global _Printf _Printf: trap #0x201 jr r31 nop .endproc _Printf .proc _getpid .global _getpid _getpid: trap #0x431 jr r31 nop .endproc _getpid .proc _process_create .global _process_create _process_create: trap #0x432 jr r31 nop .endproc _process_create .proc _shmget .global _shmget _shmget: trap #0x440 jr r31 nop .endproc _shmget .proc _shmat .global _shmat _shmat: trap #0x441 jr r31 nop .endproc _shmat .proc _sem_create .global _sem_create _sem_create: trap #0x450 jr r31 nop .endproc _sem_create .proc _sem_wait .global _sem_wait _sem_wait: trap #0x451 jr r31 nop .endproc _sem_wait .proc _sem_signal .global _sem_signal _sem_signal: trap #0x452 jr r31 nop .endproc _sem_signal .proc _lock_create .global _lock_create _lock_create: trap #0x453 jr r31 nop .endproc _lock_create .proc _lock_acquire .global _lock_acquire _lock_acquire: trap #0x454 jr r31 nop .endproc _lock_acquire .proc _lock_release .global _lock_release _lock_release: trap #0x455 jr r31 nop .endproc _lock_release .proc _cond_create .global _cond_create _cond_create: trap #0x456 jr r31 nop .endproc _cond_create .proc _cond_wait .global _cond_wait _cond_wait: trap #0x457 jr r31 nop .endproc _cond_wait .proc _cond_signal .global _cond_signal _cond_signal: trap #0x458 jr r31 nop .endproc _cond_signal .proc _cond_broadcast .global _cond_broadcast _cond_broadcast: trap #0x455 jr r31 nop .endproc _cond_broadcast .proc _TimerGet .global _TimerGet _TimerGet: trap #0x50 jr r31 nop .endproc _TimerGet .proc _yield .global _yield _yield: trap #0x433 jr r31 nop .endproc _yield

src/queue.o

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Initializing queue link %d.\n\000" .text .align 2 .proc _QueueModuleInit .global _QueueModuleInit _QueueModuleInit: ; Function 'QueueModuleInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 lhi r5,((_freeLinks)>>16)&0xffff addui r5,r5,(_freeLinks)&0xffff sw (r29),r5 jal _QueueInit nop ; not filled. addi r3,r0,#0 addi r29,r29,#8 lhi r4,((_debugstr)>>16)&0xffff addui r4,r4,(_debugstr)&0xffff lhi r2,((_linkpool)>>16)&0xffff addui r2,r2,(_linkpool)&0xffff L63: addi r29,r29,#-8 sw (r29),r4 addi r5,r0,#105 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65 nop ; not filled. addi r29,r29,#-8 sw (r29),r4 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64 nop ; not filled. L65: addi r29,r29,#-8 lhi r5,((LC0)>>16)&0xffff addui r5,r5,(LC0)&0xffff sw (r29),r5 sw 4(r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L64: addi r5,r0,#0 sw (r2),r5 addi r29,r29,#-8 sw (r29),r2 jal _QueueFreeLink nop ; not filled. addi r29,r29,#8 addi r2,r2,#16 addi r3,r3,#1 slei r1,r3,#399 bnez r1,L63 nop ; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueModuleInit .align 2 .proc _QueueInit .global _QueueInit _QueueInit: ; Function 'QueueInit'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) sw (r1),r1 sw 4(r1),r1 addi r31,r0,#0 sw 8(r1),r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInit .data .align 2 LC1: .ascii "%s: %s\n\000" .align 2 LC2: .ascii "QueueFreeLink\000" .align 2 LC3: .ascii "Link not empty\000" .text .align 2 .proc _QueueFreeLink .global _QueueFreeLink _QueueFreeLink: ; Function 'QueueFreeLink'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) lw r1,(r3) snei r1,r1,#0 beqz r1,L77 nop ; not filled. addi r29,r29,#-16 lhi r4,((LC1)>>16)&0xffff addui r4,r4,(LC1)&0xffff sw (r29),r4 lhi r1,((LC2)>>16)&0xffff addui r1,r1,(LC2)&0xffff sw 4(r29),r1 lhi r4,((LC3)>>16)&0xffff addui r4,r4,(LC3)&0xffff sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L77: lhi r2,((_freeLinks)>>16)&0xffff addui r2,r2,(_freeLinks)&0xffff lw r1,4(r2) sw 8(r3),r2 sw 4(r3),r1 lw r4,(r1) sw (r3),r4 sw (r1),r3 lw r1,(r3) sw 4(r1),r3 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFreeLink .data .align 2 LC4: .ascii "QueueAllocLink\000" .align 2 LC5: .ascii "Link not allocated!\000" .text .align 2 .proc _QueueAllocLink .global _QueueAllocLink _QueueAllocLink: ; Function 'QueueAllocLink'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lhi r2,((_freeLinks)>>16)&0xffff addui r2,r2,(_freeLinks)&0xffff lw r1,8(r2) seqi r1,r1,#0 bnez r1,L92 nop ; not filled. lw r3,(r2) lw r1,8(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L97 nop ; not filled. lw r1,4(r3) lw r4,(r3) sw (r1),r4 lw r1,(r3) lw r4,4(r3) sw 4(r1),r4 lw r2,8(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L97: addi r4,r0,#0 sw (r3),r4 j L98 nop ; not filled. L92: addi r3,r0,#0 L98: snei r1,r3,#0 bnez r1,L100 nop ; not filled. addi r29,r29,#-16 lhi r4,((LC1)>>16)&0xffff addui r4,r4,(LC1)&0xffff sw (r29),r4 lhi r1,((LC4)>>16)&0xffff addui r1,r1,(LC4)&0xffff sw 4(r29),r1 lhi r4,((LC5)>>16)&0xffff addui r4,r4,(LC5)&0xffff sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L100: add r1,r0,r3 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueAllocLink .data .align 2 .global _freeLinks _freeLinks: .space 12 .align 2 _linkpool: .space 6400

src/misc.c

// // misc.c // // Miscellaneous routines for the operating system. These include // basic routines that would be in libc if we had access to it. // #include "misc.h" //---------------------------------------------------------------------- // // dstrcpy // dstrncpy // dstrcat // // These three functions do exactly what their counterparts in the // standard C library do. // //---------------------------------------------------------------------- char* dstrcpy (char *to, const char *from) { char *tokeep = to; char last; do { last = *(to++) = *(from++); } while (last != '\0'); return (tokeep); } char* dstrncpy (char *to, const char *from, int n) { char *tokeep = to; char last; int cur = 0; do { // Stop if we're exceeded the maximum string length if (n-- <= 0) { break; } last = *(to++) = *(from++); } while (last != '\0'); return (tokeep); } char * dstrcat (char *onto, const char *addn) { char *konto = onto; while (*onto != '\0') { onto++; } dstrcpy (onto, addn); return (konto); } int dstrncmp (const char *s1, const char *s2, int n) { int i; for (i = 0; i < n; i++) { // If they don't match, end the loop if (*s2 == '\0') { // If the second string is NULL, we're at the end of the string and // have a match. return (0); } else if (*s1 != *s2) { break; } s1++; s2++; } if (i == n) { return (0); } else { return (((*s1 - *s2) < 0) ? -1 : ((*s1 == *s2) ? 0 : 1)); } } int dstrlen (const char *s) { int i = 0; while (*(s++) != '\0') { i++; } return (i); } const char * dstrstr (const char *buf, const char *pattern) { int n = dstrlen (pattern); while (*buf != '\0') { if (dstrncmp (buf, pattern, n) == 0) { return (buf); } buf++; } return ((char *)0); } � //---------------------------------------------------------------------- // // dindex // dmindex // // dindex is identical to the libc function index. dmindex is // similar to dindex, but it reports the index in the string of the // first match for any one of the characters passed (rather than // matching only on a single specific character). // //---------------------------------------------------------------------- const char * dmindex (const char *s, const char *match) { const char *c; while (*s != '\0') { for (c = match; *c != '\0'; c++) { if (*s == *c) { return (s); } } } return ((const char *)0); } const char* dindex (const char *s, int c) { while (*s != '\0') { if (*s == c) { return (s); } s++; } return ((char *)0); } � //---------------------------------------------------------------------- // // ditoa: Convert an integer into an ASCII number. // dstrtol: Convert ASCII into an integer // //---------------------------------------------------------------------- void ditoa (int n, char *buf) { int k; if (n < 0) { *(buf++) = '-'; n = -n; } else if (n == 0) { *(buf++) = '0'; } else { for (k = 1; k <= n; k *= 10) { } do { k /= 10; *(buf++) = (n / k) + '0'; n %= k; } while (k > 1); } *buf = '\0'; } int dstrtol (char *c, char **newpos, int base) { int v = 0; int curdigit; int sign; while ((*c == ' ') || (*c == '\t') || (*c == '\n')) { c++; } if (newpos != (char **)0) { *newpos = c; } if (*c == '\0') { return (v); } if (*c == '-') { sign = -1; c++; } else { sign = 1; } if (base == 0) { if (*c == '0') { c++; if ((*c == 'x') || (*c == 'X')) { base = 16; c++; } else { base = 8; } } else { base = 10; } } if ((base <= 0) || (base > 16)) { return (v); } do { if ((*c >= '0') && (*c <= '9')) { curdigit = (*c) - '0'; } else if ((*c >= 'a') && (*c <= 'z')) { curdigit = (*c) + 10 - 'a'; } else if ((*c >= 'A') && (*c <= 'Z')) { curdigit = (*c) + 10 - 'A'; } else { curdigit = 1000; } if (curdigit < base) { v *= base; v += curdigit; c++; } } while (curdigit < base); if (newpos != (char **)0) { *newpos = c; } v *= sign; return (v); } � //---------------------------------------------------------------------- // // bcopy: Copy bytes from one location to another. // bzero: Set all the bytes in a region to zero. // //---------------------------------------------------------------------- void bcopy (char *src, char *dst, int count) { while (count-- > 0) { *(dst++) = *(src++); } } void bzero (char *dst, int count) { while (count-- > 0) { *(dst++) = 0; } }

src/userprog.o

; Compiled by GCC .data .align 2 LC0: .ascii "userprog.dlx.obj\000" .align 2 LC1: .ascii "%c%d\n\000" .align 2 LC2: .ascii "Usage: \000" .align 2 LC3: .ascii " number\n\000" .align 2 LC4: .ascii "argc = %d\n\000" .text .align 2 .proc _main .global _main _main: ; Function 'main'; 32 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage lw r2,(r30) lw r3,4(r30) jal ___main nop ; not filled. seqi r1,r2,#2 bnez r1,L3 nop ; not filled. seqi r1,r2,#3 beqz r1,L20 nop ; not filled. j L9 nop ; not filled. L3: addi r29,r29,#-16 lw r3,4(r3) sw (r29),r3 addi r6,r0,#0 sw 4(r29),r6 addi r6,r0,#10 sw 8(r29),r6 jal _dstrtol nop ; not filled. add r5,r0,r1 addi r6,r0,#1 sw (r29),r6 jal _sem_create nop ; not filled. sw (r29),r1 addi r4,r30,#-40 sw 4(r29),r4 jal _ditoa nop ; not filled. addi r3,r0,#0 addi r29,r29,#16 slt r1,r3,r5 beqz r1,L2 nop ; not filled. addi r2,r30,#-24 L7: addi r29,r29,#-8 sw (r29),r3 sw 4(r29),r2 jal _ditoa nop ; not filled. addi r29,r29,#-16 sw (r29),r3 addi r6,r0,#0 sw 4(r29),r6 lhi r6,((LC0)>>16)&0xffff addui r6,r6,(LC0)&0xffff sw 8(r29),r6 sw 12(r29),r2 sw 16(r29),r4 addi r6,r0,#0 sw 20(r29),r6 jal _process_create nop ; not filled. addi r29,r29,#24 addi r3,r3,#1 slt r1,r3,r5 beqz r1,L2 nop ; not filled. j L7 nop ; not filled. L9: addi r29,r29,#-16 lw r6,4(r3) sw (r29),r6 addi r6,r0,#0 sw 4(r29),r6 addi r6,r0,#10 sw 8(r29),r6 jal _dstrtol nop ; not filled. add r2,r0,r1 lw r3,8(r3) sw (r29),r3 addi r6,r0,#0 sw 4(r29),r6 addi r6,r0,#10 sw 8(r29),r6 jal _dstrtol nop ; not filled. add r4,r0,r1 addi r3,r0,#0 addi r29,r29,#16 addui r5,r0,#49999 addi r2,r2,#65 L13: addi r29,r29,#-8 sw (r29),r4 jal _sem_wait nop ; not filled. addi r31,r0,#0 addi r29,r29,#8 L16: addi r31,r31,#1 sle r1,r31,r5 bnez r1,L16 nop ; not filled. addi r29,r29,#-16 lhi r6,((LC1)>>16)&0xffff addui r6,r6,(LC1)&0xffff sw (r29),r6 sw 4(r29),r2 sw 8(r29),r3 jal _Printf nop ; not filled. sw (r29),r4 jal _sem_signal nop ; not filled. addi r29,r29,#16 addi r3,r3,#1 slei r1,r3,#99 beqz r1,L2 nop ; not filled. j L13 nop ; not filled. L20: addi r29,r29,#-8 lhi r6,((LC2)>>16)&0xffff addui r6,r6,(LC2)&0xffff sw (r29),r6 jal _Printf nop ; not filled. lw r3,(r3) sw (r29),r3 jal _Printf nop ; not filled. lhi r6,((LC3)>>16)&0xffff addui r6,r6,(LC3)&0xffff sw (r29),r6 jal _Printf nop ; not filled. lhi r6,((LC4)>>16)&0xffff addui r6,r6,(LC4)&0xffff sw (r29),r6 sw 4(r29),r2 jal _Printf nop ; not filled. jal _exit nop ; not filled. L2: jal _exit nop .endproc _main

src/traps.h

// // dlxtraps.h // // Traps used by the DLX simulator. These traps have to be handled by the // operating system. // // Copyright 1999 by Ethan L. Miller // University of Maryland Baltimore County // // $Id: traps.h,v 1.1 2000/09/20 01:50:19 elm Exp elm $ // #ifndef _dlxtraps_h_ #define _dlxtraps_h_ #define TRAP_ILLEGALINST 0x1 // Illegal instruction #define TRAP_ADDRESS 0x2 // Bad address #define TRAP_ACCESS 0x3 // Attempted to access illegal memory #define TRAP_OVERFLOW 0x4 // Math overflow #define TRAP_DIV0 0x5 // Divide by 0 #define TRAP_PRIVILEGE 0x6 // Instruction must be executed as sys #define TRAP_FORMAT 0x7 // Instruction is malformed #define TRAP_PAGEFAULT 0x20 #define TRAP_TLBFAULT 0x30 #define TRAP_TIMER 0x40 // timer interrupt #define TRAP_KBD 0x48 // keyboard interrupt #define TRAP_TIMERGET 0x50 // This bit is set in CAUSE if the interrupt was a trap instruction #define TRAP_TRAP_INSTR 0x08000000 // The following traps are all defined in the basic traps library. To // call TRAP_READ, use a Read() call from a user-level program. This applies // to every trap except EXIT, which is called via exit() [no uppercase]. #define TRAP_PRINTF 0x201 #define TRAP_READ 0x210 #define TRAP_WRITE 0x211 #define TRAP_LSEEK 0x212 #define TRAP_SEEK TRAP_LSEEK // SEEK and LSEEK are synonyms #define TRAP_OPEN 0x213 #define TRAP_CLOSE 0x214 #define TRAP_DELETE 0x580 #define TRAP_EXIT 0x300 // Following are user-defined traps. Traps should be in the range // 0x400 - 0xfff #define TRAP_CONTEXT_SWITCH 0x400 //#define TRAP_SEM_WAIT 0x401 //#define TRAP_SEM_SIGNAL 0x402 #define TRAP_PROCESS_SLEEP 0x410 #define TRAP_PROCESS_WAKEUP 0x420 #define TRAP_PROCESS_FORK 0x430 #define TRAP_PROCESS_GETPID 0x431 #define TRAP_PROCESS_CREATE 0x432 #define TRAP_PROCESS_YIELD 0x433 #define TRAP_SHARE_CREATE_PAGE 0x440 #define TRAP_SHARE_MAP_PAGE 0x441 #define TRAP_SEM_CREATE 0x450 #define TRAP_SEM_WAIT 0x451 #define TRAP_SEM_SIGNAL 0x452 #define TRAP_LOCK_CREATE 0x453 #define TRAP_LOCK_ACQUIRE 0x454 #define TRAP_LOCK_RELEASE 0x455 #define TRAP_COND_CREATE 0x456 #define TRAP_COND_WAIT 0x457 #define TRAP_COND_SIGNAL 0x458 #define TRAP_COND_BROADCAST 0x459 #define TRAP_MBOX_OPEN 0x460 #define TRAP_MBOX_CLOSE 0x461 #define TRAP_MBOX_SEND 0x462 #define TRAP_MBOX_RECV 0x463 #define TRAP_MBOX_STAT 0x464 // The following are special I/O addresses for DLX. #define DLX_TIMER_ADDRESS 0xfff00010 #define DLX_KBD_PUTCHAR 0xfff00100 #define DLX_KBD_NCHARSOUT 0xfff00120 #define DLX_KBD_GETCHAR 0xfff00180 #define DLX_KBD_NCHARSIN 0xfff001a0 #define DLX_KBD_INTR 0xfff001c0 #define TRAP_STACK_SIZE 0x800 // interrupt stack is 2K words #endif /* _dlxtraps_h_ */

src/memory.c

// // memory.c // // Routines for dealing with memory management. static char rcsid[] = "$Id: memory.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $"; #include "dlxos.h" #include "memory.h" #include "process.h" #include "queue.h" static uint32 pagestart; static int freemapmax; static int nfreepages; static uint32 freepages[MEMORY_MAX_PAGES/32]; static uint32 negativeone = 0xffffffff; //---------------------------------------------------------------------- // // This silliness is required because the compiler believes that // it can invert a number by subtracting it from zero and subtracting // an additional 1. This works unless you try to negate 0x80000000, // which causes an overflow when subtracted from 0. Simply // trying to do an XOR with 0xffffffff results in the same code // being emitted. // //---------------------------------------------------------------------- static inline uint32 invert (uint32 n) { return (n ^ negativeone); } //---------------------------------------------------------------------- // // MemoryGetSize // // Return the total size of memory in the simulator. This is // available by reading a special location. // //---------------------------------------------------------------------- int MemoryGetSize () { return (*((int *)DLX_MEMSIZE_ADDRESS)); } //---------------------------------------------------------------------- // // MemorySetFreemap // //---------------------------------------------------------------------- inline void MemorySetFreemap (int p, int b) { uint32 wd = p / 32; uint32 bitnum = p % 32; freepages[wd] = (freepages[wd] & invert(1 << bitnum)) | (b << bitnum); dbprintf ('m', "Set freemap entry %d to 0x%x.\n", wd, freepages[wd]); } � //---------------------------------------------------------------------- // // MemoryInitModule // // Initialize the memory module of the operating system. // //---------------------------------------------------------------------- void MemoryModuleInit () { int i; int maxpage = MemoryGetSize () / MEMORY_PAGE_SIZE; int curpage; pagestart = (lastosaddress + MEMORY_PAGE_SIZE - 4) / MEMORY_PAGE_SIZE; freemapmax = (maxpage+31) / 32; dbprintf ('m', "Map has %d entries, memory size is 0x%x.\n", freemapmax, maxpage); dbprintf ('m', "Free pages start with page # 0x%x.\n", pagestart); for (i = 0; i < freemapmax; i++) { // Initially, all pages are considered in use. This is done to make // sure we don't have any partially initialized freemap entries. freepages[i] = 0; } nfreepages = 0; for (curpage = pagestart; curpage < maxpage; curpage++) { nfreepages += 1; MemorySetFreemap (curpage, 1); } dbprintf ('m', "Initialized %d free pages.\n", nfreepages); } � //---------------------------------------------------------------------- // // MemoryAllocPage // // Allocate a page of memory. // //---------------------------------------------------------------------- inline int MemoryAllocPage () { static int mapnum = 0; int bitnum; uint32 v; if (nfreepages == 0) { printf("ERROR AT THIS POINT\n"); return (0); } dbprintf ('m', "Allocating memory, starting with page %d\n", mapnum); while (freepages[mapnum] == 0) { mapnum += 1; if (mapnum >= freemapmax) { mapnum = 0; } } v = freepages[mapnum]; for (bitnum = 0; (v & (1 << bitnum)) == 0; bitnum++) { } freepages[mapnum] &= invert(1 << bitnum); v = (mapnum * 32) + bitnum; dbprintf ('m', "Allocated memory, from map %d, page %d, map=0x%x.\n", mapnum, v, freepages[mapnum]); nfreepages -= 1; return (v); } //---------------------------------------------------------------------- // // MemoryFreePage // // Free a page of memory. // //---------------------------------------------------------------------- void MemoryFreePage(uint32 page) { MemorySetFreemap (page, 1); nfreepages += 1; dbprintf ('m',"Freed page 0x%x, %d remaining.\n", page, nfreepages); } � //---------------------------------------------------------------------- // // MemoryTranslateUserToSystem // // Translate a user address (in the process referenced by pcb) // into an OS (physical) address. This works for simple one-level // page tables, but will have to be modified for two-level page // tables. // //---------------------------------------------------------------------- uint32 MemoryTranslateUserToSystem (PCB *pcb, uint32 addr) { int page = addr / MEMORY_PAGE_SIZE; int offset = addr % MEMORY_PAGE_SIZE; if (page > pcb->npages) { return (0); } return ((pcb->pagetable[page] & MEMORY_PTE_MASK) + offset); } � //---------------------------------------------------------------------- // // moveBetweenSpaces // // Copy data between user and system spaces. This is done page by // page by: // * Translating the user address into system space. // * Copying all of the data in that page // * Repeating until all of the data is copied. // A positive direction means the copy goes from system to user // space; negative direction means the copy goes from user to system // space. // // This routine returns the number of bytes copied. Note that this // may be less than the number requested if there were unmapped pages // in the user range. If this happens, the copy stops at the // first unmapped address. // //---------------------------------------------------------------------- static int moveBetweenSpaces (PCB *pcb, unsigned char *s, unsigned char *u, int n, int dir) { unsigned char *curUser; int bytesCopied = 0; int bytesToCopy; while (n > 0) { // Translate current user page to system address. If this fails, return // the number of bytes copied so far. curUser = (unsigned char *)MemoryTranslateUserToSystem (pcb, (uint32)u); if (curUser == (unsigned char *)0) { // Leave the loop if translation fails. break; } // Calculate the number of bytes to copy this time. This is the minimum // of the bytes left on this page and the bytes left to copy. bytesToCopy = MEMORY_PAGE_SIZE - ((uint32)curUser % MEMORY_PAGE_SIZE); if (bytesToCopy > n) { bytesToCopy = n; } // Perform the copy. if (dir >= 0) { bcopy (s, curUser, bytesToCopy); } else { bcopy (curUser, s, bytesToCopy); } // Keep track of bytes copied and adjust addresses appropriately. n -= bytesToCopy; bytesCopied += bytesToCopy; s += bytesToCopy; u += bytesToCopy; } return (bytesCopied); } //---------------------------------------------------------------------- // // These two routines copy data between user and system spaces. // They call a common routine to do the copying; the only difference // between the calls is the actual call to do the copying. Everything // else is identical. // //---------------------------------------------------------------------- int MemoryCopySystemToUser (PCB *pcb, unsigned char *from,unsigned char *to, int n) { return (moveBetweenSpaces (pcb, from, to, n, 1)); } int MemoryCopyUserToSystem (PCB *pcb, unsigned char *from,unsigned char *to, int n) { return (moveBetweenSpaces (pcb, to, from, n, -1)); } � //---------------------------------------------------------------------- // // MemorySetupPte // // Set up a PTE given a page number. // //---------------------------------------------------------------------- uint32 MemorySetupPte (uint32 page) { return ((page * MEMORY_PAGE_SIZE) | MEMORY_PTE_VALID); } //---------------------------------------------------------------------- // // MemoryFreePte // // Free a page given its PTE. // //---------------------------------------------------------------------- void MemoryFreePte (uint32 pte) { MemoryFreePage ((pte & MEMORY_PTE_MASK) / MEMORY_PAGE_SIZE); } //---------------------------------------------------------------------- // // MemoryPteToPage // // Given a PTE, return the base address for the (virtual) page the // PTE references. // //---------------------------------------------------------------------- uint32 MemoryPteToPage (uint32 pte) { return (pte & MEMORY_PTE_MASK); } � //---------------------------------------------------------------------- // // MemoryGetOperandAddress // // This routine takes an instruction and a pointer to a PCB, and // returns the address that the instruction is trying to use // for its memory operand. If the instruction doesn't access memory, // it returns 0xffffffff. Note that this means it's impossible to // distinguish between a valid access to 0xffffffff and an instruction // without an operand.... // //---------------------------------------------------------------------- uint32 MemoryGetOperandAddress (PCB *pcb, uint32 instr) { static uint32 invalidOps = 0x3404; uint32 opcode = (instr >> 26) & 0x3f; uint32 reg; uint32 addr; uint32 offset; uint32 regValue; if ((opcode<0x20) || (opcode>0x2f) || ((invalidOps >> (opcode-0x20) & 1))) { return (0xffffffff); } reg = (instr >> 21) & 0x1f; offset = instr & 0xffff; if (offset & 0x8000) { offset |= 0xffff0000; } regValue = pcb->currentSavedFrame[PROCESS_STACK_IREG+reg]; addr = regValue + offset; dbprintf ('m', "Operand for instruction %08x is 0x%x (reg=<%d,0x%x>)\n", instr, addr, reg, regValue); return (addr); }

src/usertraps.o

;;; ;;; Stub functions for DLX traps. ;;; ;;; Ethan L. Miller, 1999. Released to the public domain. ;;; ;;; The traps such as Open and Close ;;; (note the capital letters) are for use by user programs. The traps ;;; with names such as open and close (lower case) are for use by the OS. ;;; .text .align 2 ;;; The following are the traps to be used by user-level programs ;;; .text .align 2 .proc _Open .global _Open _Open: ;;; Note that trap #0x213 actually causes a trap vector in the OS of ;;; 0x1213. The same is true for other user traps. Thus, a user trap ;;; with trap #0x240 will result in a trap vector of 0x1240 in the OS. trap #0x213 jr r31 nop .endproc _Open .proc _Close .global _Close _Close: trap #0x214 jr r31 nop .endproc _Close .proc _Read .global _Read _Read: trap #0x210 jr r31 nop .endproc _Read .proc _Write .global _Write _Write: trap #0x211 jr r31 nop .endproc _Write .proc _Lseek .global _Lseek _Lseek: trap #0x212 jr r31 nop .endproc _Lseek .proc _Putchar .global _Putchar _Putchar: trap #0x280 jr r31 nop .endproc _Putchar .proc _Printf .global _Printf _Printf: trap #0x201 jr r31 nop .endproc _Printf .proc _getpid .global _getpid _getpid: trap #0x431 jr r31 nop .endproc _getpid .proc _process_create .global _process_create _process_create: trap #0x432 jr r31 nop .endproc _process_create .proc _shmget .global _shmget _shmget: trap #0x440 jr r31 nop .endproc _shmget .proc _shmat .global _shmat _shmat: trap #0x441 jr r31 nop .endproc _shmat .proc _sem_create .global _sem_create _sem_create: trap #0x450 jr r31 nop .endproc _sem_create .proc _sem_wait .global _sem_wait _sem_wait: trap #0x451 jr r31 nop .endproc _sem_wait .proc _sem_signal .global _sem_signal _sem_signal: trap #0x452 jr r31 nop .endproc _sem_signal .proc _lock_create .global _lock_create _lock_create: trap #0x453 jr r31 nop .endproc _lock_create .proc _lock_acquire .global _lock_acquire _lock_acquire: trap #0x454 jr r31 nop .endproc _lock_acquire .proc _lock_release .global _lock_release _lock_release: trap #0x455 jr r31 nop .endproc _lock_release .proc _cond_create .global _cond_create _cond_create: trap #0x456 jr r31 nop .endproc _cond_create .proc _cond_wait .global _cond_wait _cond_wait: trap #0x457 jr r31 nop .endproc _cond_wait .proc _cond_signal .global _cond_signal _cond_signal: trap #0x458 jr r31 nop .endproc _cond_signal .proc _cond_broadcast .global _cond_broadcast _cond_broadcast: trap #0x455 jr r31 nop .endproc _cond_broadcast .proc _TimerGet .global _TimerGet _TimerGet: trap #0x50 jr r31 nop .endproc _TimerGet .proc _yield .global _yield _yield: trap #0x433 jr r31 nop .endproc _yield

src/lab3-api.h

/***************************************************************** * * Various APIs for Lab 2 of OS469 * Copyright: Uday Savagaonkar, Jan 2002 * *****************************************************************/ #ifndef _LAB3_API_H_ #define _LAB3_API_H_ #define NULL (void *)0x0 #define INVALID_SEM -1 typedef unsigned int uint32; typedef int sem_t; typedef int lock_t; typedef int cond_t; typedef int mbox_t; //Related to processes uint32 getpid(); //trap 0x431 void process_create(int p_nice, int p_info, char *arg1, ...); //trap 0x432 //Related to shared memory uint32 shmget(); //trap 0x440 void *shmat(uint32 handle); //trap 0x441 //Related to semaphores sem_t sem_create(int count); //trap 0x450 int sem_wait(sem_t sem); //trap 0x451 int sem_signal(sem_t sem); //trap 0x452 lock_t lock_create(); //trap 0x453 int lock_acquire(lock_t lock); //trap 0x454 int lock_release(lock_t lock); //trap 0x455 cond_t cond_create(lock_t lock); //trap 0x456 int cond_wait(cond_t cond); //trap 0x457 int cond_signal(cond_t cond); //trap 0x458 int cond_broadcast(cond_t cond); //trap 0x459 int mbox_open(mbox_t); //TRAP 0x460 int mbox_close(mbox_t); //TRAP 0x461 int mbox_send(mbox_t,int,char*); //TRAP 0x462 int mbox_recv(mbox_t, int*, char*); //TRAP 0x463 int mbox_stat(mbox_t); //TRAP 0x464 #endif _LAB3_API_H_

src/share_memory.o

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Entering ProcessModuleInit\n\000" .align 2 LC1: .ascii "Leaving ProcessModuleInit\n\000" .text .align 2 .proc _ShareModuleInit .global _ShareModuleInit _ShareModuleInit: ; Function 'ShareModuleInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#112 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L64 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L63 nop ; not filled. L64: addi r29,r29,#-8 lhi r5,((LC0)>>16)&0xffff addui r5,r5,(LC0)&0xffff sw (r29),r5 jal _printf nop ; not filled. addi r29,r29,#8 L63: lhi r2,((_spages)>>16)&0xffff addui r2,r2,(_spages)&0xffff addi r4,r2,#248 L68: addi r5,r0,#0 sw (r2),r5 add r31,r0,r2 add r3,r0,r2 L72: addi r1,r31,#4 addi r5,r0,#0 sw (r1),r5 add r31,r0,r1 sle r1,r31,r3 bnez r1,L72 nop ; not filled. addi r2,r2,#8 sle r1,r2,r4 bnez r1,L68 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#112 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L76 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L75 nop ; not filled. L76: addi r29,r29,#-8 lhi r5,((LC1)>>16)&0xffff addui r5,r5,(LC1)&0xffff sw (r29),r5 jal _printf nop ; not filled. addi r29,r29,#8 L75: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ShareModuleInit .data .align 2 LC2: .ascii "FATAL: couldn\'t allocate memory - no free pages!\n\000" .text .align 2 .proc _MemoryCreateSharedPage .global _MemoryCreateSharedPage _MemoryCreateSharedPage: ; Function 'MemoryCreateSharedPage'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r6,(r30) addi r29,r29,#-8 sw (r29),r6 jal _findpid nop ; not filled. add r5,r0,r1 srli r8,r5,#0x5 slli r1,r8,#0x5 sub r5,r5,r1 addi r29,r29,#8 addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop ; not filled. add r7,r0,r1 addi r29,r29,#8 lw r1,160(r6) seqi r1,r1,#16 bnez r1,L92 nop ; not filled. addi r3,r0,#0 lhi r9,((_spages)>>16)&0xffff addui r9,r9,(_spages)&0xffff add r2,r0,r9 L84: lw r1,(r2) snei r1,r1,#0 beqz r1,L82 nop ; not filled. addi r2,r2,#8 addi r3,r3,#1 slei r1,r3,#31 bnez r1,L84 nop ; not filled. L82: seqi r1,r3,#32 beqz r1,L87 nop ; not filled. L92: addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L91 nop ; not filled. L87: jal _MemoryAllocPage nop ; not filled. add r4,r0,r1 snei r1,r4,#0 bnez r1,L89 nop ; not filled. addi r29,r29,#-8 lhi r10,((LC2)>>16)&0xffff addui r10,r10,(LC2)&0xffff sw (r29),r10 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L89: slli r1,r3,#0x3 add r2,r1,r9 sw (r2),r4 slli r1,r8,#0x2 add r2,r1,r2 addi r1,r0,#1 sll r1,r1,r5 sw 4(r2),r1 addi r29,r29,#-8 sw (r29),r4 jal _MemorySetupPte nop ; not filled. lw r2,160(r6) slli r2,r2,#0x2 add r2,r2,r6 sw 96(r2),r1 lw r1,160(r6) addi r2,r1,#1 sw 160(r6),r2 lw r1,8(r6) addui r1,r1,#65164 sw 316(r1),r2 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r4 L91: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCreateSharedPage .align 2 .proc _mmap .global _mmap _mmap: ; Function 'mmap'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r6,(r30) lw r7,4(r30) snei r1,r7,#0 bnez r1,L94 nop ; not filled. addi r1,r0,#0 j L115 nop ; not filled. L94: lw r1,8(r6) addui r9,r1,#65164 addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop ; not filled. add r8,r0,r1 addi r29,r29,#8 addi r3,r0,#0 lhi r2,((_spages)>>16)&0xffff addui r2,r2,(_spages)&0xffff L99: lw r1,(r2) seq r1,r1,r7 bnez r1,L97 nop ; not filled. addi r2,r2,#8 addi r3,r3,#1 sleui r1,r3,#31 bnez r1,L99 nop ; not filled. L97: seqi r1,r3,#32 bnez r1,L116 nop ; not filled. slli r31,r7,#0x10 addi r5,r0,#0 lw r4,160(r6) slt r1,r5,r4 beqz r1,L105 nop ; not filled. add r2,r0,r6 L107: lw r1,96(r2) addi r10,r0,#-8 and r1,r1,r10 seq r1,r1,r31 bnez r1,L105 nop ; not filled. addi r2,r2,#4 addi r5,r5,#1 slt r1,r5,r4 bnez r1,L107 nop ; not filled. L105: lw r2,160(r6) seq r1,r5,r2 beqz r1,L110 nop ; not filled. slei r1,r2,#15 bnez r1,L111 nop ; not filled. L116: addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L115 nop ; not filled. L111: addi r29,r29,#-8 sw (r29),r7 jal _MemorySetupPte nop ; not filled. lw r2,160(r6) slli r2,r2,#0x2 add r2,r2,r6 sw 96(r2),r1 lw r1,160(r6) addi r1,r1,#1 sw 160(r6),r1 sw 316(r9),r1 addi r29,r29,#8 L110: addi r29,r29,#-8 sw (r29),r6 jal _findpid nop ; not filled. add r2,r0,r1 srli r4,r2,#0x5 slli r1,r4,#0x5 sub r2,r2,r1 slli r3,r3,#0x3 slli r1,r4,#0x2 add r1,r3,r1 lhi r10,((_spages+4)>>16)&0xffff addui r10,r10,(_spages+4)&0xffff add r3,r1,r10 addi r1,r0,#1 sll r2,r1,r2 lw r1,(r3) or r1,r1,r2 sw (r3),r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop ; not filled. addi r29,r29,#8 slli r1,r5,#0x10 L115: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _mmap .data .align 2 LC3: .ascii "FATAL: Attempted to free memory page 0\n\000" .text .align 2 .proc _MemoryFreeSharedPte .global _MemoryFreeSharedPte _MemoryFreeSharedPte: ; Function 'MemoryFreeSharedPte'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r8,(r30) lw r2,4(r30) addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop ; not filled. add r9,r0,r1 addi r29,r29,#8 slli r1,r2,#0x2 add r1,r1,r8 lhu r7,96(r1) snei r1,r7,#0 bnez r1,L119 nop ; not filled. addi r29,r29,#-8 lhi r10,((LC3)>>16)&0xffff addui r10,r10,(LC3)&0xffff sw (r29),r10 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L119: addi r4,r0,#0 lhi r5,((_spages)>>16)&0xffff addui r5,r5,(_spages)&0xffff add r2,r0,r5 L123: lw r1,(r2) seq r1,r1,r7 bnez r1,L121 nop ; not filled. addi r2,r2,#8 addi r4,r4,#1 slei r1,r4,#31 bnez r1,L123 nop ; not filled. L121: seqi r1,r4,#32 beqz r1,L126 nop ; not filled. addi r29,r29,#-8 sw (r29),r9 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#-1 j L141 nop ; not filled. L126: addi r29,r29,#-8 sw (r29),r8 jal _findpid nop ; not filled. add r2,r0,r1 srli r3,r1,#0x5 slli r1,r3,#0x5 sub r2,r2,r1 slli r1,r4,#0x3 add r4,r1,r5 slli r1,r3,#0x2 add r1,r1,r4 addi r3,r1,#4 addi r1,r0,#1 sll r1,r1,r2 addi r10,r0,#-1 xor r2,r1,r10 lw r1,(r3) and r1,r1,r2 sw (r3),r1 addi r29,r29,#8 addi r6,r0,#0 addi r5,r0,#0 L132: addi r3,r0,#1 addi r2,r0,#0 lw r31,4(r4) L136: and r1,r31,r3 snei r1,r1,#0 add r6,r6,r1 slli r3,r3,#0x1 addi r2,r2,#1 slei r1,r2,#31 bnez r1,L136 nop ; not filled. addi r4,r4,#4 addi r5,r5,#1 slei r1,r5,#0 bnez r1,L132 nop ; not filled. lw r1,160(r8) addi r2,r1,#-1 sw 160(r8),r2 lw r1,8(r8) addui r1,r1,#65164 sw 316(r1),r2 snei r1,r6,#0 bnez r1,L139 nop ; not filled. addi r29,r29,#-8 sw (r29),r7 jal _MemoryFreePage nop ; not filled. addi r29,r29,#8 L139: addi r29,r29,#-8 sw (r29),r9 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r6 L141: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreeSharedPte .data .align 2 _spages: .space 256

src/share_memory.h

/*********************************************************************** * * share_memory.h * Copyright: Uday Savagaonkar (2002). All rights reserved. * Share memory API for dlxos * ***********************************************************************/ #ifndef _SHARE_MEMORY_H_ #define _SHARE_MEMORY_H_ #include "dlxos.h" #include "memory.h" #include "process.h" typedef struct shared_page { uint32 page; //The physical page corresponding to this block //This page is not shared if ==0 uint32 using[(PROCESS_MAX_PROCS+31)/32]; //List of process using this page } shared_page; #define MEMORY_MAX_SHARED_PAGES 32 //Maximum number of pages that can be //shared amongst different processes #define PROCESS_MAX_PAGES 16 //Maximum number of pages allowed in Level //1 page table void SharedInitModule(); //Turns on the shared memory module uint32 MemoryCreateSharedPage(PCB *pcb); //Creates a shared page in the memory void *mmap(PCB *pcb, uint32 handle); //Maps a shared page to the virtual address //space int MemoryFreeSharedPage(PCB *pcb, uint32 handle); //Releases a shared page. The page is not //actually deallocated untill all the process //release it. #endif _SHARE_MEMORY_H_

src/lab2-api.h

/***************************************************************** * * Various APIs for Lab 2 of OS469 * Copyright: Uday Savagaonkar, Jan 2002 * *****************************************************************/ #ifndef _LAB2_API_H_ #define _LAB2_API_H_ #define NULL (void *)0x0 #define INVALID_SEM -1 typedef unsigned int uint32; typedef int sem_t; typedef int lock_t; typedef int cond_t; //Related to processes uint32 getpid(); //trap 0x431 void process_create(int p_nice, int p_info, char *arg1, ...); //trap 0x432 //Related to shared memory uint32 shmget(); //trap 0x440 void *shmat(uint32 handle); //trap 0x441 //Related to semaphores sem_t sem_create(int count); //trap 0x450 int sem_wait(sem_t sem); //trap 0x451 int sem_signal(sem_t sem); //trap 0x452 lock_t lock_create(); //trap 0x452 int lock_acquire(lock_t lock); //trap 0x453 int lock_release(lock_t lock); //trap 0x454 cond_t cond_create(lock_t lock); //trap 0x455 int cond_wait(cond_t cond); //trap 0x456 int cond_signal(cond_t cond); //trap 0x457 int cond_broadcast(cond_t cond); //trap 0x458 #endif _LAB2_API_H_

src/syscall.h

// // syscall.h // // This file declares all of the system calls available as builtins // in the simulator. // #ifndef _syscall_h_ #define _syscall_h_ extern int open(const char *, int); extern int read(int, char *, int); extern int write(int, char *, int); extern int lseek(int, int, int); extern int close(int); #endif // _syscall_h_

src/trap_random.o

; ; Stub functions for DLX traps. ; ; Aaron Sawdey 1996; released to the Public Domain. ; .text .align 2 .proc _random .global _random _random: trap #0x2020 jr r31 nop .endproc _random .proc _srandom .global _srandom _srandom: trap #0x2021 jr r31 nop .endproc _srandom ; I know this is not the right place to put it, but what the heck .proc _timerget .global _timerget _timerget: trap #0x2002 jr r31 nop .endproc _timerget

src/traps.o

; Compiled by GCC .data .align 2 _rcsid: .ascii "$Id: traps.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .global _MY_TIMER .data .align 2 _MY_TIMER: .word 0 .text .align 2 .proc _TimerSet .global _TimerSet _TimerSet: ; Function 'TimerSet'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lhi r2,((_MY_TIMER)>>16)&0xffff addui r2,r2,(_MY_TIMER)&0xffff lw r1,(r2) add r1,r1,r3 sw (r2),r1 lhi r1,#-16 addui r1,r1,#16 sw (r1),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TimerSet .align 2 .proc _TimerGet .global _TimerGet _TimerGet: ; Function 'TimerGet'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lhi r1,((_MY_TIMER)>>16)&0xffff addui r1,r1,(_MY_TIMER)&0xffff lw r2,(r1) addi r1,r0,#1000 movi2fp f0,r2 movi2fp f1,r1 divu f0,f0,f1 movfp2i r1,f0 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TimerGet .align 2 .proc _KbdModuleInit .global _KbdModuleInit _KbdModuleInit: ; Function 'KbdModuleInit'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lhi r1,#-16 addui r1,r1,#448 addi r31,r0,#1 sw (r1),r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _KbdModuleInit .data .align 2 LC0: .ascii " Invalid p_nice value! \n\000" .align 2 LC1: .ascii "Fatal: Cumulative length of all arguments > %d\n\000" .align 2 LC2: .ascii "calling fork\n\000" .text .align 2 .proc _TrapProcessCreateHandler _TrapProcessCreateHandler: ; Function 'TrapProcessCreateHandler'; 1640 bytes of locals, 13 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#1704 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 sw 44(r29),r13 sw 48(r29),r14 lw r4,(r30) lw r6,4(r30) addi r2,r30,#-1032 addi r3,r30,#-9 L67: addi r14,r0,(#0x0)&0xff sb (r2),r14 addi r2,r2,#1 sle r1,r2,r3 bnez r1,L67 nop ; not filled. addi r5,r0,#0 snei r1,r6,#0 bnez r1,L69 nop ; not filled. addi r29,r29,#-16 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r14,(r2) sw (r29),r14 sw 4(r29),r4 addi r1,r30,#-1648 sw 8(r29),r1 addi r14,r0,#512 sw 12(r29),r14 jal _MemoryCopyUserToSystem nop ; not filled. addi r29,r29,#16 addi r4,r30,#-1137 addi r3,r30,#-1136 L70: addi r29,r29,#-16 lw r14,(r2) sw (r29),r14 lw r1,-1640(r30) add r1,r1,r5 sw 4(r29),r1 sw 8(r29),r3 addi r14,r0,#1 sw 12(r29),r14 jal _MemoryCopyUserToSystem nop ; not filled. addi r4,r4,#1 addi r3,r3,#1 addi r5,r5,#1 addi r29,r29,#16 sleui r1,r5,#99 beqz r1,L75 nop ; not filled. lbu r1,(r4) snei r1,r1,#0 beqz r1,L75 nop ; not filled. j L70 nop ; not filled. L69: addi r29,r29,#-16 sw (r29),r4 addi r1,r30,#-1648 sw 4(r29),r1 addi r14,r0,#512 sw 8(r29),r14 jal _bcopy nop ; not filled. lw r14,-1640(r30) sw (r29),r14 addi r1,r30,#-1136 sw 4(r29),r1 addi r14,r0,#100 sw 8(r29),r14 jal _dstrncpy nop ; not filled. addi r29,r29,#16 L75: addi r14,r0,(#0x0)&0xff sb -1037(r30),r14 addi r5,r0,#0 lw r12,-1648(r30) lw r13,-1644(r30) addi r1,r12,#20 sgtui r1,r1,#39 beqz r1,L76 nop ; not filled. addi r29,r29,#-8 lhi r14,((LC0)>>16)&0xffff addui r14,r14,(LC0)&0xffff sw (r29),r14 jal _printf nop ; not filled. jal _exit nop ; not filled. L76: snei r1,r6,#0 bnez r1,L77 nop ; not filled. lhi r8,((_currentPCB)>>16)&0xffff addui r8,r8,(_currentPCB)&0xffff addi r11,r30,#-1032 addi r10,r30,#-1033 add r6,r0,r30 addi r9,r30,#500 L89: lw r1,-1640(r6) snei r1,r1,#0 beqz r1,L90 nop ; not filled. addi r2,r0,#0 add r7,r0,r6 add r4,r5,r10 add r3,r5,r11 L84: addi r29,r29,#-16 lw r14,(r8) sw (r29),r14 lw r1,-1640(r7) add r1,r1,r2 sw 4(r29),r1 sw 8(r29),r3 addi r14,r0,#1 sw 12(r29),r14 jal _MemoryCopyUserToSystem nop ; not filled. addi r4,r4,#1 addi r3,r3,#1 addi r5,r5,#1 addi r2,r2,#1 addi r29,r29,#16 sleui r1,r5,#1023 beqz r1,L81 nop ; not filled. lbu r1,(r4) snei r1,r1,#0 bnez r1,L84 nop ; not filled. L81: addi r6,r6,#4 sle r1,r6,r9 beqz r1,L90 nop ; not filled. j L89 nop ; not filled. L77: addi r5,r30,#-1032 add r7,r0,r5 addi r3,r30,#-8 addi r6,r30,#32 L97: addi r4,r3,#-1640 lw r2,(r4) snei r1,r2,#0 beqz r1,L90 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 jal _dstrlen nop ; not filled. add r2,r5,r1 sub r1,r2,r7 addi r29,r29,#8 sgti r1,r1,#1024 beqz r1,L96 nop ; not filled. addi r29,r29,#-8 lhi r14,((LC1)>>16)&0xffff addui r14,r14,(LC1)&0xffff sw (r29),r14 addi r14,r0,#1024 sw 4(r29),r14 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L96: addi r29,r29,#-8 sw (r29),r5 lw r1,(r4) sw 4(r29),r1 jal _dstrcpy nop ; not filled. addi r14,r0,(#0x0)&0xff sb (r2),r14 addi r29,r29,#8 addi r3,r3,#4 sle r1,r3,r6 bnez r1,L97 nop ; not filled. L90: addi r14,r0,(#0x0)&0xff sb -9(r30),r14 addi r29,r29,#-8 lhi r14,((LC2)>>16)&0xffff addui r14,r14,(LC2)&0xffff sw (r29),r14 jal _printf nop ; not filled. addi r29,r29,#-16 addi r14,r0,#0 sw (r29),r14 addi r1,r30,#-1032 sw 4(r29),r1 sw 8(r29),r12 sw 12(r29),r13 addi r1,r30,#-1136 sw 16(r29),r1 addi r14,r0,#1 sw 20(r29),r14 jal _ProcessFork nop ; not filled. addi r29,r29,#24 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r13,44(r29) lw r14,48(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TrapProcessCreateHandler .align 2 .proc _TrapPrintfHandler _TrapPrintfHandler: ; Function 'TrapPrintfHandler'; 160 bytes of locals, 10 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#208 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 lw r4,(r30) lw r1,4(r30) addi r8,r0,#0 add r3,r0,r8 snei r1,r1,#0 bnez r1,L99 nop ; not filled. addi r29,r29,#-16 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r11,(r2) sw (r29),r11 sw 4(r29),r4 addi r1,r30,#-168 sw 8(r29),r1 addi r11,r0,#40 sw 12(r29),r11 jal _MemoryCopyUserToSystem nop ; not filled. addi r29,r29,#16 addi r5,r30,#-89 addi r4,r30,#-88 L100: addi r29,r29,#-16 lw r11,(r2) sw (r29),r11 lw r1,-168(r30) add r1,r1,r3 sw 4(r29),r1 sw 8(r29),r4 addi r11,r0,#1 sw 12(r29),r11 jal _MemoryCopyUserToSystem nop ; not filled. addi r5,r5,#1 addi r4,r4,#1 addi r3,r3,#1 addi r29,r29,#16 sleui r1,r3,#79 beqz r1,L105 nop ; not filled. lbu r1,(r5) snei r1,r1,#0 beqz r1,L105 nop ; not filled. j L100 nop ; not filled. L99: addi r29,r29,#-16 sw (r29),r4 addi r1,r30,#-168 sw 4(r29),r1 addi r11,r0,#40 sw 8(r29),r11 jal _bcopy nop ; not filled. lw r11,-168(r30) sw (r29),r11 addi r1,r30,#-88 sw 4(r29),r1 addi r11,r0,#80 sw 8(r29),r11 jal _dstrncpy nop ; not filled. addi r29,r29,#16 L105: addi r11,r0,(#0x0)&0xff sb -9(r30),r11 addi r3,r30,#-88 lb r2,(r3) andi r1,r2,#0x00ff snei r1,r1,#0 beqz r1,L107 nop ; not filled. addi r10,r30,#-8 addi r9,r30,#-164 slli r1,r8,#0x2 add r7,r1,r9 add r6,r1,r10 L109: andi r1,r2,#0x00ff seqi r1,r1,#37 beqz r1,L108 nop ; not filled. lbu r1,1(r3) seqi r1,r1,#37 beqz r1,L111 nop ; not filled. addi r3,r3,#1 j L108 nop ; not filled. L111: lw r11,(r7) sw -120(r6),r11 slli r1,r8,#0x2 add r5,r1,r9 add r4,r1,r10 L114: addi r3,r3,#1 lb r31,(r3) andi r2,r31,#0x00ff seqi r1,r2,#115 bnez r1,L113 nop ; not filled. seqi r1,r2,#108 bnez r1,L114 nop ; not filled. addi r1,r31,#-102 andi r1,r1,#0x00ff sleui r1,r1,#1 bnez r1,L120 nop ; not filled. seqi r1,r2,#101 beqz r1,L119 nop ; not filled. L120: addi r7,r7,#4 addi r6,r6,#4 addi r8,r8,#1 lw r5,4(r5) sw -116(r4),r5 j L113 nop ; not filled. L119: addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#25 beqz r1,L114 nop ; not filled. L113: addi r7,r7,#4 addi r6,r6,#4 addi r8,r8,#1 L108: addi r3,r3,#1 lb r2,(r3) andi r1,r2,#0x00ff snei r1,r1,#0 bnez r1,L109 nop ; not filled. L107: addi r29,r29,#-40 addi r1,r30,#-88 sw (r29),r1 lw r1,-128(r30) sw 4(r29),r1 lw r11,-124(r30) sw 8(r29),r11 lw r11,-120(r30) sw 12(r29),r11 lw r11,-116(r30) sw 16(r29),r11 lw r11,-112(r30) sw 20(r29),r11 lw r11,-108(r30) sw 24(r29),r11 lw r11,-104(r30) sw 28(r29),r11 lw r11,-100(r30) sw 32(r29),r11 jal _printf nop ; not filled. addi r29,r29,#40 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TrapPrintfHandler .data .align 2 LC3: .ascii "Interrupt cause=0x%x iar=0x%x isr=0x%x args=0x%08x.\n\000" .align 2 LC4: .ascii "Got a context switch trap!\n\000" .align 2 LC5: .ascii "Got an exit trap!\n\000" .align 2 LC6: .ascii "Got a fork trap!\n\000" .align 2 LC7: .ascii "Got a process sleep trap!\n\000" .align 2 LC8: .ascii "Got a printf trap!\n\000" .align 2 LC9: .ascii "Got an open with parameters (\'%s\',0x%x)\n\000" .align 2 LC10: .ascii "Got an unrecognized trap (0x%x) - exiting!\n\000" .align 2 LC11: .ascii "Got a timer interrupt!\n\000" .align 2 LC12: .ascii "Got a keyboard interrupt (char=0x%x(%c), nleft=%d)!\n\000" .align 2 LC13: .ascii "Exiting after illegal access at iar=0x%x, isr=0x%x\n\000" .align 2 LC14: .ascii "Exiting after illegal address at iar=0x%x, isr=0x%x\n\000" .align 2 LC15: .ascii "Exiting after illegal instruction at iar=0x%x, isr=0x%x\n\000" .align 2 LC16: .ascii "Exiting after page fault at iar=0x%x, isr=0x%x\n\000" .align 2 LC17: .ascii "Got an unrecognized system interrupt (0x%x) - exiting!\n\000" .align 2 LC18: .ascii "About to return from dointerrupt.\n\000" .text .align 2 .proc _dointerrupt .global _dointerrupt _dointerrupt: ; Function 'dointerrupt'; 56 bytes of locals, 6 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#88 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r2,(r30) lw r6,4(r30) lw r4,8(r30) lw r3,12(r30) addi r29,r29,#-8 lhi r5,((_debugstr)>>16)&0xffff addui r5,r5,(_debugstr)&0xffff sw (r29),r5 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L128 nop ; not filled. addi r29,r29,#-8 sw (r29),r5 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L127 nop ; not filled. L128: addi r29,r29,#-24 lhi r7,((LC3)>>16)&0xffff addui r7,r7,(LC3)&0xffff sw (r29),r7 sw 4(r29),r2 sw 8(r29),r6 sw 12(r29),r4 sw 16(r29),r3 jal _printf nop ; not filled. addi r29,r29,#24 L127: lhi r7,#2048 addui r7,r7,#0 and r1,r2,r7 snei r1,r1,#0 beqz r1,L129 nop ; not filled. lhi r7,#-2049 addui r7,r7,#65535 and r2,r2,r7 seqi r1,r2,#1075 bnez r1,L223 nop ; not filled. sgtui r1,r2,#1075 bnez r1,L215 nop ; not filled. seqi r1,r2,#531 bnez r1,L146 nop ; not filled. sgtui r1,r2,#531 bnez r1,L216 nop ; not filled. seqi r1,r2,#528 bnez r1,L154 nop ; not filled. sgtui r1,r2,#528 bnez r1,L217 nop ; not filled. seqi r1,r2,#80 bnez r1,L207 nop ; not filled. seqi r1,r2,#513 beqz r1,L213 nop ; not filled. j L143 nop ; not filled. L217: seqi r1,r2,#529 bnez r1,L157 nop ; not filled. seqi r1,r2,#530 beqz r1,L213 nop ; not filled. j L163 nop ; not filled. L216: seqi r1,r2,#1024 bnez r1,L131 nop ; not filled. sgtui r1,r2,#1024 bnez r1,L218 nop ; not filled. seqi r1,r2,#532 bnez r1,L151 nop ; not filled. seqi r1,r2,#768 beqz r1,L213 nop ; not filled. j L134 nop ; not filled. L218: seqi r1,r2,#1072 bnez r1,L137 nop ; not filled. sgtui r1,r2,#1072 bnez r1,L219 nop ; not filled. seqi r1,r2,#1040 beqz r1,L213 nop ; not filled. j L140 nop ; not filled. L219: seqi r1,r2,#1074 beqz r1,L213 nop ; not filled. j L166 nop ; not filled. L215: seqi r1,r2,#1108 bnez r1,L187 nop ; not filled. sgtui r1,r2,#1108 bnez r1,L220 nop ; not filled. seqi r1,r2,#1104 bnez r1,L174 nop ; not filled. sgtui r1,r2,#1104 bnez r1,L221 nop ; not filled. seqi r1,r2,#1088 bnez r1,L169 nop ; not filled. seqi r1,r2,#1089 beqz r1,L213 nop ; not filled. j L170 nop ; not filled. L221: seqi r1,r2,#1106 bnez r1,L182 nop ; not filled. sgtui r1,r2,#1106 beqz r1,L178 nop ; not filled. j L186 nop ; not filled. L220: seqi r1,r2,#1111 bnez r1,L199 nop ; not filled. sgtui r1,r2,#1111 bnez r1,L222 nop ; not filled. seqi r1,r2,#1109 bnez r1,L191 nop ; not filled. seqi r1,r2,#1110 beqz r1,L213 nop ; not filled. j L195 nop ; not filled. L222: seqi r1,r2,#1113 bnez r1,L209 nop ; not filled. sltui r1,r2,#1113 bnez r1,L203 nop ; not filled. seqi r1,r2,#1408 beqz r1,L213 nop ; not filled. j L160 nop ; not filled. L131: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L133 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L226 nop ; not filled. L133: addi r29,r29,#-8 lhi r7,((LC4)>>16)&0xffff addui r7,r7,(LC4)&0xffff j L256 nop ; not filled. L134: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L136 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L135 nop ; not filled. L136: addi r29,r29,#-8 lhi r7,((LC5)>>16)&0xffff addui r7,r7,(LC5)&0xffff sw (r29),r7 jal _printf nop ; not filled. addi r29,r29,#8 L135: addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _ProcessDestroy nop ; not filled. jal _ProcessSchedule nop ; not filled. j L243 nop ; not filled. L137: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L139 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L223 nop ; not filled. L139: addi r29,r29,#-8 lhi r7,((LC6)>>16)&0xffff addui r7,r7,(LC6)&0xffff sw (r29),r7 jal _printf nop ; not filled. j L243 nop ; not filled. L140: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L142 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L141 nop ; not filled. L142: addi r29,r29,#-8 lhi r7,((LC7)>>16)&0xffff addui r7,r7,(LC7)&0xffff sw (r29),r7 jal _printf nop ; not filled. addi r29,r29,#8 L141: addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _ProcessSuspend nop ; not filled. jal _ProcessSchedule nop ; not filled. j L243 nop ; not filled. L143: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L145 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L144 nop ; not filled. L145: addi r29,r29,#-8 lhi r7,((LC8)>>16)&0xffff addui r7,r7,(LC8)&0xffff sw (r29),r7 jal _printf nop ; not filled. addi r29,r29,#8 L144: addi r29,r29,#-8 sw (r29),r3 andi r1,r4,#64 sw 4(r29),r1 jal _TrapPrintfHandler nop ; not filled. j L243 nop ; not filled. L146: andi r1,r4,#64 snei r1,r1,#0 beqz r1,L147 nop ; not filled. lw r7,(r3) sw -24(r30),r7 lw r3,4(r3) sw -20(r30),r3 j L148 nop ; not filled. L147: addi r29,r29,#-16 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r7,(r2) sw (r29),r7 sw 4(r29),r3 addi r1,r30,#-24 sw 8(r29),r1 addi r7,r0,#8 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. lw r2,(r2) sw (r29),r2 lw r1,-24(r30) sw 4(r29),r1 addi r2,r30,#-56 sw 8(r29),r2 addi r7,r0,#31 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. addi r7,r0,(#0x0)&0xff sb -25(r30),r7 sw -24(r30),r2 addi r29,r29,#16 L148: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop ; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 lw r1,-20(r30) lhi r7,#1 addui r7,r7,#0 add r1,r1,r7 sw 4(r29),r1 jal _ProcessSetResult nop ; not filled. addi r29,r29,#-8 lhi r7,((LC9)>>16)&0xffff addui r7,r7,(LC9)&0xffff sw (r29),r7 lw r1,-24(r30) sw 4(r29),r1 lw r7,-20(r30) sw 8(r29),r7 jal _printf nop ; not filled. addi r29,r29,#16 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop ; not filled. j L243 nop ; not filled. L151: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop ; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop ; not filled. j L243 nop ; not filled. L154: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop ; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop ; not filled. j L243 nop ; not filled. L157: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop ; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop ; not filled. j L243 nop ; not filled. L160: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop ; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop ; not filled. j L243 nop ; not filled. L163: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop ; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop ; not filled. j L243 nop ; not filled. L166: addi r29,r29,#-8 sw (r29),r3 andi r1,r4,#64 sw 4(r29),r1 jal _TrapProcessCreateHandler nop ; not filled. j L243 nop ; not filled. L169: addi r29,r29,#-8 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r7,(r2) sw (r29),r7 jal _MemoryCreateSharedPage nop ; not filled. add r31,r0,r1 lw r2,(r2) sw (r29),r2 sw 4(r29),r31 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L170: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L172 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L244 nop ; not filled. L172: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L244: addi r29,r29,#16 lw r31,-60(r30) addi r29,r29,#-8 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r7,(r2) sw (r29),r7 sw 4(r29),r31 jal _mmap nop ; not filled. add r31,r0,r1 lw r2,(r2) sw (r29),r2 sw 4(r29),r31 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L174: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L176 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L245 nop ; not filled. L176: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L245: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _SemCreate nop ; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L178: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L180 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L246 nop ; not filled. L180: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L246: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _SemHandleWait nop ; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L182: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L184 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L247 nop ; not filled. L184: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L247: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _SemHandleSignal nop ; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L186: jal _LockCreate nop ; not filled. add r2,r0,r1 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L187: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L189 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L248 nop ; not filled. L189: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L248: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _LockHandleAcquire nop ; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L191: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L193 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L249 nop ; not filled. L193: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L249: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _LockHandleRelease nop ; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L195: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L197 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L250 nop ; not filled. L197: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L250: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondCreate nop ; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L199: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L201 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L251 nop ; not filled. L201: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L251: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondHandleWait nop ; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L203: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L205 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L252 nop ; not filled. L205: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L252: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondHandleSignal nop ; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L207: lhi r1,((_MY_TIMER)>>16)&0xffff addui r1,r1,(_MY_TIMER)&0xffff lw r2,(r1) addi r1,r0,#1000 movi2fp f0,r2 movi2fp f1,r1 divu f0,f0,f1 movfp2i r2,f0 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L209: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L211 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L253 nop ; not filled. L211: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L253: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondHandleBroadcast nop ; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L213: addi r29,r29,#-8 lhi r7,((LC10)>>16)&0xffff addui r7,r7,(LC10)&0xffff j L254 nop ; not filled. L129: seqi r1,r2,#3 bnez r1,L233 nop ; not filled. sgtui r1,r2,#3 bnez r1,L239 nop ; not filled. seqi r1,r2,#1 bnez r1,L235 nop ; not filled. seqi r1,r2,#2 beqz r1,L237 nop ; not filled. j L234 nop ; not filled. L239: seqi r1,r2,#64 bnez r1,L225 nop ; not filled. sgtui r1,r2,#64 bnez r1,L240 nop ; not filled. seqi r1,r2,#32 beqz r1,L237 nop ; not filled. j L236 nop ; not filled. L240: seqi r1,r2,#72 beqz r1,L237 nop ; not filled. j L228 nop ; not filled. L225: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L227 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L226 nop ; not filled. L227: addi r29,r29,#-8 lhi r7,((LC11)>>16)&0xffff addui r7,r7,(LC11)&0xffff L256: sw (r29),r7 jal _printf nop ; not filled. addi r29,r29,#8 L226: jal _ProcessSchedule nop ; not filled. j L223 nop ; not filled. L228: lhi r4,#-16 addui r4,r4,#416 lhi r3,#-16 addui r3,r3,#384 L229: lw r2,(r4) lw r1,(r3) addi r29,r29,#-16 lhi r7,((LC12)>>16)&0xffff addui r7,r7,(LC12)&0xffff sw (r29),r7 sw 4(r29),r1 sw 8(r29),r1 sw 12(r29),r2 jal _printf nop ; not filled. addi r29,r29,#16 sgti r1,r2,#1 beqz r1,L223 nop ; not filled. j L229 nop ; not filled. L233: addi r29,r29,#-16 lhi r7,((LC13)>>16)&0xffff addui r7,r7,(LC13)&0xffff j L255 nop ; not filled. L234: addi r29,r29,#-16 lhi r7,((LC14)>>16)&0xffff addui r7,r7,(LC14)&0xffff j L255 nop ; not filled. L235: addi r29,r29,#-16 lhi r7,((LC15)>>16)&0xffff addui r7,r7,(LC15)&0xffff j L255 nop ; not filled. L236: addi r29,r29,#-16 lhi r7,((LC16)>>16)&0xffff addui r7,r7,(LC16)&0xffff L255: sw (r29),r7 sw 4(r29),r6 sw 8(r29),r4 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#16 j L223 nop ; not filled. L237: addi r29,r29,#-8 lhi r7,((LC17)>>16)&0xffff addui r7,r7,(LC17)&0xffff L254: sw (r29),r7 sw 4(r29),r2 jal _printf nop ; not filled. jal _exitsim nop ; not filled. L243: addi r29,r29,#8 L223: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L242 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L241 nop ; not filled. L242: addi r29,r29,#-8 lhi r7,((LC18)>>16)&0xffff addui r7,r7,(LC18)&0xffff sw (r29),r7 jal _printf nop ; not filled. addi r29,r29,#8 L241: jal _intrreturn nop ; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dointerrupt

src/Makefile

# # This is a makefile for the DLX OS projects. # CC = gcc-dlx AS = dlxasm CFLAGS = -mtraps -O3 #INCS = $(wildcard *.h) #SRCS = $(wildcard *.c) #OBJS = $(addsuffix .o, $(basename $(wildcard *.c))) \ # $(addsuffix .o, $(basename $(wildcard *.s))) INCS = dlxos.h traps.h filesys.h memory.h misc.h process.h queue.h \ syscall.h share_memory.h SRCS = filesys.c memory.c misc.c process.c queue.c traps.c sysproc.c OBJS = $(addsuffix .o, $(basename $(SRCS))) all: os.dlx.obj userprog os.dlx.obj: os.dlx $(AS) -i _osinit -l os.lst os.dlx mv os.dlx.obj ../execs os.dlx: $(OBJS) dlxos.o trap_random.o osend.o share_memory.o synch.o $(CC) -mtraps -O3 dlxos.o trap_random.o share_memory.o synch.o $(OBJS) osend.o -o os.dlx share_memory.o: share_memory.api cp share_memory.api share_memory.o synch.o: synch.bin cp synch.bin synch.o osend.o: osend.s $(CC) -c osend.s trap_random.o: trap_random.s $(CC) -c trap_random.s dlxos.o: dlxos.s $(CC) -c dlxos.s usertraps.o: usertraps.s $(CC) -c usertraps.s userprog : userprog.o usertraps.o misc.o $(CC) -mtraps -O3 userprog.o usertraps.o misc.o -o userprog.dlx $(AS) -l userprog.lst userprog.dlx mv userprog.dlx.obj ../execs Makefile.depend: depend depend: $(SRCS) $(INCS) $(CC) -MM $(SRCS) > Makefile.depend clean: /bin/rm -f *.o *.dlx *.lst ../execs/*.obj Makefile.depend ../execs/vm include Makefile.depend

src/Makefile.depend

filesys.o: filesys.c dlxos.h misc.h process.h queue.h filesys.h memory.o: memory.c dlxos.h misc.h memory.h process.h queue.h misc.o: misc.c misc.h process.o: process.c dlxos.h misc.h process.h queue.h memory.h \ filesys.h queue.o: queue.c dlxos.h misc.h queue.h traps.o: traps.c dlx.h dlxos.h misc.h traps.h process.h queue.h sysproc.o: sysproc.c process.h dlxos.h misc.h queue.h

src/process.o

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 _processQuantum: .word 100000 .align 2 LC0: .ascii "Entering ProcessModuleInit\n\000" .align 2 LC1: .ascii "Initializing PCB %d @ 0x%x.\n\000" .align 2 LC2: .ascii "Leaving ProcessModuleInit\n\000" .text .align 2 .proc _ProcessModuleInit .global _ProcessModuleInit _ProcessModuleInit: ; Function 'ProcessModuleInit'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L53 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L52 nop ; not filled. L53: addi r29,r29,#-8 lhi r8,((LC0)>>16)&0xffff addui r8,r8,(LC0)&0xffff sw (r29),r8 jal _printf nop ; not filled. addi r29,r29,#8 L52: addi r29,r29,#-8 lhi r2,((_freepcbs)>>16)&0xffff addui r2,r2,(_freepcbs)&0xffff sw (r29),r2 jal _QueueInit nop ; not filled. lhi r8,((_runQueue)>>16)&0xffff addui r8,r8,(_runQueue)&0xffff sw (r29),r8 jal _QueueInit nop ; not filled. lhi r8,((_waitQueue)>>16)&0xffff addui r8,r8,(_waitQueue)&0xffff sw (r29),r8 jal _QueueInit nop ; not filled. lhi r8,((_zombieQueue)>>16)&0xffff addui r8,r8,(_zombieQueue)&0xffff sw (r29),r8 jal _QueueInit nop ; not filled. addi r4,r0,#0 addi r29,r29,#8 lhi r7,((_debugstr)>>16)&0xffff addui r7,r7,(_debugstr)&0xffff lhi r1,((_pcbs)>>16)&0xffff addui r1,r1,(_pcbs)&0xffff add r5,r0,r2 addi r2,r1,#164 add r3,r0,r1 add r6,r0,r3 L57: addi r29,r29,#-8 sw (r29),r7 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L59 nop ; not filled. addi r29,r29,#-8 sw (r29),r7 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L58 nop ; not filled. L59: addi r29,r29,#-16 lhi r8,((LC1)>>16)&0xffff addui r8,r8,(LC1)&0xffff sw (r29),r8 sw 4(r29),r4 sw 8(r29),r6 jal _printf nop ; not filled. addi r29,r29,#16 L58: addi r8,r0,#1 sw 12(r3),r8 addi r8,r0,#0 sw (r2),r8 sw 12(r2),r3 sw 8(r2),r5 sw 4(r2),r5 lw r8,(r5) sw (r2),r8 sw (r5),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r5) addi r1,r1,#1 sw 8(r5),r1 addi r2,r2,#180 addi r3,r3,#180 addi r6,r6,#180 addi r4,r4,#1 slei r1,r4,#31 bnez r1,L57 nop ; not filled. lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff addi r8,r0,#0 sw (r1),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64 nop ; not filled. L65: addi r29,r29,#-8 lhi r8,((LC2)>>16)&0xffff addui r8,r8,(LC2)&0xffff sw (r29),r8 jal _printf nop ; not filled. addi r29,r29,#8 L64: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessModuleInit .align 2 .proc _ProcessSetStatus .global _ProcessSetStatus _ProcessSetStatus: ; Function 'ProcessSetStatus'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,12(r3) addi r31,r0,#-64 and r1,r1,r31 or r1,r1,r2 sw 12(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSetStatus .align 2 .proc _ProcessFreeResources .global _ProcessFreeResources _ProcessFreeResources: ; Function 'ProcessFreeResources'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r4,(r30) lhi r3,((_freepcbs)>>16)&0xffff addui r3,r3,(_freepcbs)&0xffff addi r2,r4,#164 lw r1,4(r3) sw 172(r4),r3 sw 168(r4),r1 lw r5,(r1) sw (r2),r5 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r3,160(r4) addi r2,r0,#0 slt r1,r2,r3 beqz r1,L98 nop ; not filled. L90: addi r29,r29,#-8 sw (r29),r4 sw 4(r29),r2 jal _MemoryFreeSharedPte nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 slt r1,r2,r3 bnez r1,L90 nop ; not filled. addi r2,r0,#0 L98: lw r1,160(r4) slt r1,r2,r1 beqz r1,L93 nop ; not filled. add r3,r0,r4 L95: addi r29,r29,#-8 lw r5,96(r3) sw (r29),r5 jal _MemoryFreePte nop ; not filled. addi r29,r29,#8 addi r3,r3,#4 addi r2,r2,#1 lw r1,160(r4) slt r1,r2,r1 bnez r1,L95 nop ; not filled. L93: addi r29,r29,#-8 lhu r1,8(r4) sw (r29),r1 jal _MemoryFreePage nop ; not filled. addi r29,r29,#8 lw r1,12(r4) addi r5,r0,#-64 and r1,r1,r5 ori r1,r1,#1 sw 12(r4),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessFreeResources .align 2 .proc _ProcessSetResult .global _ProcessSetResult _ProcessSetResult: ; Function 'ProcessSetResult'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,4(r30) sw 44(r1),r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSetResult .data .align 2 LC3: .ascii "Now entering ProcessSchedule (cur=0x%x, %d ready)\n\000" .align 2 LC4: .ascii "No runnable processes - exiting!\n\000" .align 2 LC5: .ascii "About to switch to PCB 0x%x,flags=0x%x @ 0x%x\n\000" .align 2 LC6: .ascii "Freeing zombie PCB 0x%x.\n\000" .align 2 LC7: .ascii "Leaving ProcessSchedule (cur=0x%x)\n\000" .text .align 2 .proc _ProcessSchedule .global _ProcessSchedule _ProcessSchedule: ; Function 'ProcessSchedule'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L103 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L102 nop ; not filled. L103: lhi r1,((_runQueue)>>16)&0xffff addui r1,r1,(_runQueue)&0xffff lw r2,8(r1) addi r29,r29,#-16 lhi r8,((LC3)>>16)&0xffff addui r8,r8,(LC3)&0xffff sw (r29),r8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 sw 8(r29),r2 jal _printf nop ; not filled. addi r29,r29,#16 L102: lhi r5,((_runQueue)>>16)&0xffff addui r5,r5,(_runQueue)&0xffff lw r1,8(r5) seqi r1,r1,#0 beqz r1,L105 nop ; not filled. addi r29,r29,#-8 lhi r8,((LC4)>>16)&0xffff addui r8,r8,(LC4)&0xffff sw (r29),r8 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L105: lw r1,(r5) lw r4,12(r1) lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) seq r1,r4,r1 beqz r1,L109 nop ; not filled. addi r3,r4,#164 lw r1,172(r4) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L111 nop ; not filled. lw r1,168(r4) lw r8,(r3) sw (r1),r8 lw r1,(r3) lw r8,168(r4) sw 4(r1),r8 lw r2,172(r4) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L111: addi r8,r0,#0 sw (r3),r8 lw r1,4(r5) sw 172(r4),r5 sw 168(r4),r1 lw r8,(r1) sw (r3),r8 sw (r1),r3 lw r1,(r3) sw 4(r1),r3 lw r1,8(r5) addi r1,r1,#1 sw 8(r5),r1 L109: lhi r1,((_runQueue)>>16)&0xffff addui r1,r1,(_runQueue)&0xffff lw r1,(r1) lw r4,12(r1) lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff sw (r1),r4 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L117 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L116 nop ; not filled. L117: addi r29,r29,#-16 lhi r8,((LC5)>>16)&0xffff addui r8,r8,(LC5)&0xffff sw (r29),r8 sw 4(r29),r4 lw r8,12(r4) sw 8(r29),r8 lw r1,4(r4) lw r1,296(r1) sw 12(r29),r1 jal _printf nop ; not filled. addi r29,r29,#16 L116: lhi r7,((_zombieQueue)>>16)&0xffff addui r7,r7,(_zombieQueue)&0xffff lhi r6,((_debugstr)>>16)&0xffff addui r6,r6,(_debugstr)&0xffff lhi r5,((_freepcbs)>>16)&0xffff addui r5,r5,(_freepcbs)&0xffff L118: lw r1,8(r7) seqi r1,r1,#0 bnez r1,L119 nop ; not filled. lw r1,(r7) lw r4,12(r1) addi r29,r29,#-8 sw (r29),r6 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L125 nop ; not filled. addi r29,r29,#-8 sw (r29),r6 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L124 nop ; not filled. L125: addi r29,r29,#-8 lhi r8,((LC6)>>16)&0xffff addui r8,r8,(LC6)&0xffff sw (r29),r8 sw 4(r29),r4 jal _printf nop ; not filled. addi r29,r29,#8 L124: addi r31,r4,#164 lw r1,172(r4) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L127 nop ; not filled. lw r1,168(r4) lw r8,(r31) sw (r1),r8 lw r1,(r31) lw r8,168(r4) sw 4(r1),r8 lw r2,172(r4) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L127: addi r8,r0,#0 sw (r31),r8 lw r1,4(r5) sw 172(r4),r5 sw 168(r4),r1 lw r8,(r1) sw (r31),r8 sw (r1),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r5) addi r1,r1,#1 sw 8(r5),r1 lw r3,160(r4) addi r2,r0,#0 slt r1,r2,r3 beqz r1,L145 nop ; not filled. L135: addi r29,r29,#-8 sw (r29),r4 sw 4(r29),r2 jal _MemoryFreeSharedPte nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 slt r1,r2,r3 bnez r1,L135 nop ; not filled. addi r2,r0,#0 L145: lw r1,160(r4) slt r1,r2,r1 beqz r1,L138 nop ; not filled. add r3,r0,r4 L140: addi r29,r29,#-8 lw r8,96(r3) sw (r29),r8 jal _MemoryFreePte nop ; not filled. addi r29,r29,#8 addi r3,r3,#4 addi r2,r2,#1 lw r1,160(r4) slt r1,r2,r1 bnez r1,L140 nop ; not filled. L138: addi r29,r29,#-8 lhu r1,8(r4) sw (r29),r1 jal _MemoryFreePage nop ; not filled. addi r29,r29,#8 lw r1,12(r4) addi r8,r0,#-64 and r1,r1,r8 ori r1,r1,#1 sw 12(r4),r1 j L118 nop ; not filled. L119: addi r29,r29,#-8 lhi r1,((_processQuantum)>>16)&0xffff addui r1,r1,(_processQuantum)&0xffff lw r1,(r1) sw (r29),r1 jal _TimerSet nop ; not filled. lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L144 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L143 nop ; not filled. L144: addi r29,r29,#-8 lhi r8,((LC7)>>16)&0xffff addui r8,r8,(LC7)&0xffff sw (r29),r8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L143: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSchedule .data .align 2 LC8: .ascii "Suspending PCB 0x%x (%s).\n\000" .align 2 LC9: .ascii "%s: %s\n\000" .align 2 LC10: .ascii "ProcessSuspend\000" .align 2 LC11: .ascii "Trying to suspend a non-running process!\n\000" .text .align 2 .proc _ProcessSuspend .global _ProcessSuspend _ProcessSuspend: ; Function 'ProcessSuspend'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L148 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L147 nop ; not filled. L148: addi r29,r29,#-16 lhi r4,((LC8)>>16)&0xffff addui r4,r4,(LC8)&0xffff sw (r29),r4 sw 4(r29),r3 addi r1,r3,#16 sw 8(r29),r1 jal _printf nop ; not filled. addi r29,r29,#16 L147: lb r4,15(r3) srli r1,r4,#0x1 andi r1,r1,#1 bnez r1,L150 nop ; not filled. addi r29,r29,#-16 lhi r4,((LC9)>>16)&0xffff addui r4,r4,(LC9)&0xffff sw (r29),r4 lhi r1,((LC10)>>16)&0xffff addui r1,r1,(LC10)&0xffff sw 4(r29),r1 lhi r4,((LC11)>>16)&0xffff addui r4,r4,(LC11)&0xffff sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L150: lw r1,12(r3) addi r4,r0,#-64 and r1,r1,r4 ori r1,r1,#4 sw 12(r3),r1 addi r31,r3,#164 lw r1,172(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L153 nop ; not filled. lw r1,168(r3) lw r4,(r31) sw (r1),r4 lw r1,(r31) lw r4,168(r3) sw 4(r1),r4 lw r2,172(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L153: addi r4,r0,#0 sw (r31),r4 lhi r2,((_waitQueue)>>16)&0xffff addui r2,r2,(_waitQueue)&0xffff lw r1,4(r2) sw 172(r3),r2 sw 168(r3),r1 lw r4,(r1) sw (r31),r4 sw (r1),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSuspend .data .align 2 LC12: .ascii "Waking up PCB 0x%x.\n\000" .align 2 LC13: .ascii "ProcessWakeup\000" .align 2 LC14: .ascii "Trying to wake up a non-sleeping process!\n\000" .text .align 2 .proc _ProcessWakeup .global _ProcessWakeup _ProcessWakeup: ; Function 'ProcessWakeup'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L159 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L158 nop ; not filled. L159: addi r29,r29,#-8 lhi r4,((LC12)>>16)&0xffff addui r4,r4,(LC12)&0xffff sw (r29),r4 sw 4(r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L158: lb r4,15(r3) srli r1,r4,#0x2 andi r1,r1,#1 bnez r1,L161 nop ; not filled. addi r29,r29,#-16 lhi r4,((LC9)>>16)&0xffff addui r4,r4,(LC9)&0xffff sw (r29),r4 lhi r1,((LC13)>>16)&0xffff addui r1,r1,(LC13)&0xffff sw 4(r29),r1 lhi r4,((LC14)>>16)&0xffff addui r4,r4,(LC14)&0xffff sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L161: lw r1,12(r3) addi r4,r0,#-64 and r1,r1,r4 ori r1,r1,#2 sw 12(r3),r1 addi r31,r3,#164 lw r1,172(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L164 nop ; not filled. lw r1,168(r3) lw r4,(r31) sw (r1),r4 lw r1,(r31) lw r4,168(r3) sw 4(r1),r4 lw r2,172(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L164: addi r4,r0,#0 sw (r31),r4 lhi r2,((_runQueue)>>16)&0xffff addui r2,r2,(_runQueue)&0xffff lw r1,4(r2) sw 172(r3),r2 sw 168(r3),r1 lw r4,(r1) sw (r31),r4 sw (r1),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessWakeup .data .align 2 LC15: .ascii "Entering ProcessDestroy for 0x%x.\n\000" .align 2 LC16: .ascii "Leaving ProcessDestroy for 0x%x.\n\000" .text .align 2 .proc _ProcessDestroy .global _ProcessDestroy _ProcessDestroy: ; Function 'ProcessDestroy'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L170 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L169 nop ; not filled. L170: addi r29,r29,#-8 lhi r4,((LC15)>>16)&0xffff addui r4,r4,(LC15)&0xffff sw (r29),r4 sw 4(r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L169: lw r1,12(r3) addi r4,r0,#-64 and r1,r1,r4 ori r1,r1,#16 sw 12(r3),r1 addi r31,r3,#164 lw r1,172(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L173 nop ; not filled. lw r1,168(r3) lw r4,(r31) sw (r1),r4 lw r1,(r31) lw r4,168(r3) sw 4(r1),r4 lw r2,172(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L173: addi r4,r0,#0 sw (r31),r4 lhi r2,((_zombieQueue)>>16)&0xffff addui r2,r2,(_zombieQueue)&0xffff sw 172(r3),r2 sw 168(r3),r2 lw r4,(r2) sw (r31),r4 sw (r2),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L177 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L176 nop ; not filled. L177: addi r29,r29,#-8 lhi r4,((LC16)>>16)&0xffff addui r4,r4,(LC16)&0xffff sw (r29),r4 sw 4(r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L176: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessDestroy .data .align 2 _str52: .space 4 .align 2 _location53: .word 0 .text .align 2 .proc _get_argument .global _get_argument _get_argument: ; Function 'get_argument'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) snei r1,r2,#0 beqz r1,L190 nop ; not filled. lhi r1,((_str52)>>16)&0xffff addui r1,r1,(_str52)&0xffff sw (r1),r2 lhi r1,((_location53)>>16)&0xffff addui r1,r1,(_location53)&0xffff addi r5,r0,#0 sw (r1),r5 L190: lhi r31,((_location53)>>16)&0xffff addui r31,r31,(_location53)&0xffff lw r3,(r31) lhi r1,((_str52)>>16)&0xffff addui r1,r1,(_str52)&0xffff lw r2,(r1) add r1,r2,r3 lbu r1,(r1) snei r1,r1,#0 beqz r1,L192 nop ; not filled. sgti r1,r3,#98 beqz r1,L191 nop ; not filled. L192: addi r1,r0,#0 j L199 nop ; not filled. L200: addi r1,r31,#1 sw (r2),r1 j L194 nop ; not filled. L191: slei r1,r3,#99 beqz r1,L194 nop ; not filled. add r4,r0,r2 add r2,r0,r31 L196: lw r31,(r2) add r1,r4,r31 lbu r1,(r1) snei r1,r1,#0 beqz r1,L200 nop ; not filled. addi r1,r31,#1 sw (r2),r1 slei r1,r1,#99 bnez r1,L196 nop ; not filled. L194: add r1,r0,r3 L199: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _get_argument .data .align 2 LC17: .ascii "Old interrupt value was 0x%x.\n\000" .align 2 LC18: .ascii "Entering ProcessFork args=0x%x 0x%x %s %d\n\000" .align 2 LC19: .ascii "FATAL error: no free processes!\n\000" .align 2 LC20: .ascii "Got a link @ 0x%x\n\000" .align 2 LC21: .ascii "Before restore interrupt value is 0x%x.\n\000" .align 2 LC22: .ascii "New interrupt value is 0x%x.\n\000" .align 2 LC23: .ascii "aFATAL: couldn\'t allocate memory - no free pages!\n\000" .align 2 LC24: .ascii "bFATAL: couldn\'t allocate system stack - no free pages!\n\000" .align 2 LC25: .ascii "Setting up PCB @ 0x%x (sys stack=0x%x, mem=0x%x, size=0x%x)\n\000" .align 2 LC26: .ascii "About to load %s\n\000" .align 2 LC27: .ascii "File %s -> start=0x%08x\n\000" .align 2 LC28: .ascii "File %s -> code @ 0x%08x (size=0x%08x)\n\000" .align 2 LC29: .ascii "File %s -> data @ 0x%08x (size=0x%08x)\n\000" .align 2 LC30: .ascii "Placing %d bytes at vaddr %08x.\n\000" .align 2 LC31: .ascii "Setting currentPCB=0x%x, stackframe=0x%x\n\000" .align 2 LC32: .ascii "Leaving ProcessFork (%s)\n\000" .text .align 2 .proc _ProcessFork .global _ProcessFork _ProcessFork: ; Function 'ProcessFork'; 672 bytes of locals, 12 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#728 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 sw 44(r29),r13 lw r5,(r30) lw r10,4(r30) lw r12,16(r30) lw r4,20(r30) addi r13,r0,#0 sw -680(r30),r13 addi r29,r29,#-8 addi r13,r0,#15 sw (r29),r13 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#73 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L204 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L203 nop ; not filled. L204: addi r29,r29,#-8 lhi r13,((LC17)>>16)&0xffff addui r13,r13,(LC17)&0xffff sw (r29),r13 sw 4(r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L203: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L206 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L205 nop ; not filled. L206: addi r29,r29,#-24 lhi r13,((LC18)>>16)&0xffff addui r13,r13,(LC18)&0xffff sw (r29),r13 sw 4(r29),r5 sw 8(r29),r10 sw 12(r29),r12 sw 16(r29),r4 jal _printf nop ; not filled. addi r29,r29,#24 L205: lhi r2,((_freepcbs)>>16)&0xffff addui r2,r2,(_freepcbs)&0xffff lw r1,8(r2) seqi r1,r1,#0 beqz r1,L207 nop ; not filled. addi r29,r29,#-8 lhi r13,((LC19)>>16)&0xffff addui r13,r13,(LC19)&0xffff sw (r29),r13 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L207: lw r9,(r2) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L212 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L211 nop ; not filled. L212: addi r29,r29,#-8 lhi r13,((LC20)>>16)&0xffff addui r13,r13,(LC20)&0xffff sw (r29),r13 sw 4(r29),r9 jal _printf nop ; not filled. addi r29,r29,#8 L211: lw r1,8(r9) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L214 nop ; not filled. lw r1,4(r9) lw r13,(r9) sw (r1),r13 lw r1,(r9) lw r13,4(r9) sw 4(r1),r13 lw r2,8(r9) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L214: addi r13,r0,#0 sw (r9),r13 lw r6,12(r9) lw r1,12(r6) addi r13,r0,#-64 and r1,r1,r13 ori r1,r1,#2 sw 12(r6),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#73 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L217 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L216 nop ; not filled. L217: jal _CurrentIntrs nop ; not filled. addi r29,r29,#-8 lhi r13,((LC21)>>16)&0xffff addui r13,r13,(LC21)&0xffff sw (r29),r13 sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L216: addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#73 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L220 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L219 nop ; not filled. L220: jal _CurrentIntrs nop ; not filled. addi r29,r29,#-8 lhi r13,((LC22)>>16)&0xffff addui r13,r13,(LC22)&0xffff sw (r29),r13 sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L219: addi r29,r29,#-8 addi r1,r6,#16 sw (r29),r1 sw 4(r29),r12 jal _dstrcpy nop ; not filled. addi r13,r0,#1 sw 160(r6),r13 jal _MemoryAllocPage nop ; not filled. add r2,r0,r1 addi r29,r29,#8 snei r1,r2,#0 bnez r1,L221 nop ; not filled. addi r29,r29,#-8 lhi r13,((LC23)>>16)&0xffff addui r13,r13,(LC23)&0xffff sw (r29),r13 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L221: addi r29,r29,#-8 sw (r29),r2 jal _MemorySetupPte nop ; not filled. sw 96(r6),r1 jal _MemoryAllocPage nop ; not filled. add r2,r0,r1 addi r29,r29,#8 snei r1,r2,#0 bnez r1,L222 nop ; not filled. addi r29,r29,#-8 lhi r13,((LC24)>>16)&0xffff addui r13,r13,(LC24)&0xffff sw (r29),r13 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L222: slli r1,r2,#0x10 sw 8(r6),r1 ori r8,r1,#65164 sw 4(r6),r8 sw (r6),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L224 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L223 nop ; not filled. L224: addi r29,r29,#-24 lhi r13,((LC25)>>16)&0xffff addui r13,r13,(LC25)&0xffff sw (r29),r13 sw 4(r29),r6 lw r13,8(r6) sw 8(r29),r13 lw r13,96(r6) sw 12(r29),r13 lw r1,160(r6) slli r1,r1,#0x10 sw 16(r29),r1 jal _printf nop ; not filled. addi r29,r29,#24 L223: addi r13,r0,#0 sw 40(r8),r13 addi r1,r6,#96 sw 312(r8),r1 lw r13,160(r6) sw 316(r8),r13 lhi r1,#16 addui r1,r1,#16 sw 320(r8),r1 snei r1,r4,#0 beqz r1,L225 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L227 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L226 nop ; not filled. L227: addi r29,r29,#-8 lhi r13,((LC26)>>16)&0xffff addui r13,r13,(LC26)&0xffff sw (r29),r13 sw 4(r29),r12 jal _printf nop ; not filled. addi r29,r29,#8 L226: addi r29,r29,#-24 sw (r29),r12 addi r1,r30,#-660 sw 4(r29),r1 addi r1,r30,#-664 sw 8(r29),r1 addi r1,r30,#-668 sw 12(r29),r1 addi r1,r30,#-672 sw 16(r29),r1 addi r1,r30,#-676 sw 20(r29),r1 jal _ProcessGetCodeInfo nop ; not filled. add r5,r0,r1 addi r29,r29,#24 slti r1,r5,#0 beqz r1,L228 nop ; not filled. lhi r3,((_freepcbs)>>16)&0xffff addui r3,r3,(_freepcbs)&0xffff addi r2,r6,#164 lw r1,4(r3) sw 172(r6),r3 sw 168(r6),r1 lw r13,(r1) sw (r2),r13 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r3,160(r6) addi r2,r0,#0 slt r1,r2,r3 beqz r1,L293 nop ; not filled. L236: addi r29,r29,#-8 sw (r29),r6 sw 4(r29),r2 jal _MemoryFreeSharedPte nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 slt r1,r2,r3 bnez r1,L236 nop ; not filled. addi r2,r0,#0 L293: lw r1,160(r6) slt r1,r2,r1 beqz r1,L239 nop ; not filled. add r3,r0,r6 L241: addi r29,r29,#-8 lw r13,96(r3) sw (r29),r13 jal _MemoryFreePte nop ; not filled. addi r29,r29,#8 addi r3,r3,#4 addi r2,r2,#1 lw r1,160(r6) slt r1,r2,r1 bnez r1,L241 nop ; not filled. L239: addi r29,r29,#-8 lhu r1,8(r6) sw (r29),r1 jal _MemoryFreePage nop ; not filled. addi r29,r29,#8 lw r1,12(r6) addi r13,r0,#-64 and r1,r1,r13 ori r1,r1,#1 sw 12(r6),r1 addi r1,r0,#-1 j L290 nop ; not filled. L228: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L245 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L244 nop ; not filled. L245: addi r29,r29,#-16 lhi r13,((LC27)>>16)&0xffff addui r13,r13,(LC27)&0xffff sw (r29),r13 sw 4(r29),r12 lw r13,-660(r30) sw 8(r29),r13 jal _printf nop ; not filled. addi r29,r29,#16 L244: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L247 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L246 nop ; not filled. L247: addi r29,r29,#-16 lhi r13,((LC28)>>16)&0xffff addui r13,r13,(LC28)&0xffff sw (r29),r13 sw 4(r29),r12 lw r13,-664(r30) sw 8(r29),r13 lw r13,-668(r30) sw 12(r29),r13 jal _printf nop ; not filled. addi r29,r29,#16 L246: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L249 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L248 nop ; not filled. L249: addi r29,r29,#-16 lhi r13,((LC29)>>16)&0xffff addui r13,r13,(LC29)&0xffff sw (r29),r13 sw 4(r29),r12 lw r13,-672(r30) sw 8(r29),r13 lw r13,-676(r30) sw 12(r29),r13 jal _printf nop ; not filled. addi r29,r29,#16 L248: addi r3,r30,#-112 addi r7,r30,#-680 lhi r4,((_debugstr)>>16)&0xffff addui r4,r4,(_debugstr)&0xffff L250: addi r29,r29,#-16 sw (r29),r5 sw 4(r29),r3 sw 8(r29),r7 addi r13,r0,#100 sw 12(r29),r13 jal _ProcessGetFromFile nop ; not filled. add r2,r0,r1 addi r29,r29,#16 sgti r1,r2,#0 beqz r1,L251 nop ; not filled. addi r29,r29,#-8 sw (r29),r4 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L254 nop ; not filled. addi r29,r29,#-8 sw (r29),r4 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L253 nop ; not filled. L254: addi r29,r29,#-16 lhi r13,((LC30)>>16)&0xffff addui r13,r13,(LC30)&0xffff sw (r29),r13 sw 4(r29),r2 lw r1,-680(r30) sub r1,r1,r2 sw 8(r29),r1 jal _printf nop ; not filled. addi r29,r29,#16 L253: addi r29,r29,#-16 sw (r29),r6 sw 4(r29),r3 lw r1,-680(r30) sub r1,r1,r2 sw 8(r29),r1 sw 12(r29),r2 jal _MemoryCopySystemToUser nop ; not filled. addi r29,r29,#16 j L250 nop ; not filled. L251: addi r29,r29,#-8 sw (r29),r5 jal _FsClose nop ; not filled. addi r13,r0,#256 sw 300(r8),r13 addui r13,r0,#64512 sw 156(r8),r13 addi r29,r29,#-8 sw (r29),r6 sw 4(r29),r10 lw r13,156(r8) sw 8(r29),r13 addi r13,r0,#992 sw 12(r29),r13 jal _MemoryCopySystemToUser nop ; not filled. addi r29,r29,#16 snei r1,r10,#0 beqz r1,L256 nop ; not filled. lhi r1,((_str52)>>16)&0xffff addui r1,r1,(_str52)&0xffff sw (r1),r10 lhi r1,((_location53)>>16)&0xffff addui r1,r1,(_location53)&0xffff addi r13,r0,#0 sw (r1),r13 L256: lhi r3,((_location53)>>16)&0xffff addui r3,r3,(_location53)&0xffff lw r4,(r3) lhi r1,((_str52)>>16)&0xffff addui r1,r1,(_str52)&0xffff lw r2,(r1) add r1,r2,r4 lbu r1,(r1) snei r1,r1,#0 beqz r1,L258 nop ; not filled. sgti r1,r4,#98 beqz r1,L257 nop ; not filled. L258: addi r3,r0,#0 j L255 nop ; not filled. L291: addi r1,r2,#1 sw (r3),r1 j L260 nop ; not filled. L257: slei r1,r4,#99 beqz r1,L260 nop ; not filled. add r5,r0,r2 L262: lw r2,(r3) add r1,r5,r2 lbu r1,(r1) snei r1,r1,#0 beqz r1,L291 nop ; not filled. addi r1,r2,#1 sw (r3),r1 slei r1,r1,#99 bnez r1,L262 nop ; not filled. L260: add r3,r0,r4 L255: addui r2,r0,#64512 add r1,r3,r2 sw -648(r30),r1 addi r7,r0,#3 lhi r4,((_location53)>>16)&0xffff addui r4,r4,(_location53)&0xffff lhi r11,((_str52)>>16)&0xffff addui r11,r11,(_str52)&0xffff add r10,r0,r2 addi r5,r30,#4 L265: lw r31,(r4) lw r3,(r11) add r1,r3,r31 lbu r1,(r1) snei r1,r1,#0 beqz r1,L271 nop ; not filled. sgti r1,r31,#98 beqz r1,L270 nop ; not filled. L271: addi r3,r0,#0 j L268 nop ; not filled. L292: addi r1,r3,#1 sw (r4),r1 j L273 nop ; not filled. L270: slei r1,r31,#99 beqz r1,L273 nop ; not filled. add r2,r0,r3 L275: lw r3,(r4) add r1,r2,r3 lbu r1,(r1) snei r1,r1,#0 beqz r1,L292 nop ; not filled. addi r1,r3,#1 sw (r4),r1 slei r1,r1,#99 bnez r1,L275 nop ; not filled. L273: add r3,r0,r31 L268: add r1,r3,r10 sw -648(r5),r1 snei r1,r3,#0 beqz r1,L266 nop ; not filled. addi r5,r5,#4 addi r7,r7,#1 j L265 nop ; not filled. L266: addi r1,r7,#-2 sw -656(r30),r1 slli r1,r1,#0x2 sub r1,r10,r1 sw -652(r30),r1 addi r29,r29,#-16 sw (r29),r6 addi r1,r30,#-656 sw 4(r29),r1 slli r2,r7,#0x2 lw r1,156(r8) sub r1,r1,r2 sw 8(r29),r1 sw 12(r29),r2 jal _MemoryCopySystemToUser nop ; not filled. lw r1,156(r8) sub r1,r1,r2 sw 156(r8),r1 lw r13,-660(r30) sw 296(r8),r13 lw r1,12(r6) ori r1,r1,#512 sw 12(r6),r1 addi r29,r29,#16 j L279 nop ; not filled. L225: lhi r13,((_ProcessExit)>>16)&0xffff addui r13,r13,(_ProcessExit)&0xffff sw 164(r8),r13 lw r1,8(r6) addui r1,r1,#65504 sw 156(r8),r1 sw (r1),r10 sw 296(r8),r5 addi r13,r0,#320 sw 300(r8),r13 lw r1,12(r6) ori r1,r1,#256 sw 12(r6),r1 L279: addi r29,r29,#-8 addi r13,r0,#15 sw (r29),r13 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lhi r3,((_runQueue)>>16)&0xffff addui r3,r3,(_runQueue)&0xffff lw r2,4(r3) sw 8(r9),r3 sw 4(r9),r2 lw r13,(r2) sw (r9),r13 sw (r2),r9 lw r2,(r9) sw 4(r2),r9 lw r2,8(r3) addi r2,r2,#1 sw 8(r3),r2 addi r29,r29,#-8 sw (r29),r1 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) snei r1,r1,#0 bnez r1,L285 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L287 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L286 nop ; not filled. L287: addi r29,r29,#-16 lhi r13,((LC31)>>16)&0xffff addui r13,r13,(LC31)&0xffff sw (r29),r13 sw 4(r29),r6 lw r13,(r6) sw 8(r29),r13 jal _printf nop ; not filled. addi r29,r29,#16 L286: lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff sw (r1),r6 L285: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L289 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L288 nop ; not filled. L289: addi r29,r29,#-8 lhi r13,((LC32)>>16)&0xffff addui r13,r13,(LC32)&0xffff sw (r29),r13 sw 4(r29),r12 jal _printf nop ; not filled. addi r29,r29,#8 L288: lhi r13,((_pcbs)>>16)&0xffff addui r13,r13,(_pcbs)&0xffff sub r2,r6,r13 lhi r1,#-23302 addui r1,r1,#20389 movi2fp f0,r2 movi2fp f1,r1 mult f0,f0,f1 movfp2i r1,f0 srai r1,r1,#0x2 L290: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r13,44(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessFork .data .align 2 LC33: .ascii "ProcessGetCodeInfo: open of %s failed (%d).\n\000" .align 2 LC34: .ascii "File descriptor is now %d.\n\000" .align 2 LC35: .ascii "ProcessGetCodeInfo: read got %d (not %d) bytes from %s\n\000" .align 2 LC36: .ascii "start:\000" .align 2 LC37: .ascii "ProcessGetCodeInfo: %s missing start line (not a DLX executable?)\n\000" .text .align 2 .proc _ProcessGetCodeInfo .global _ProcessGetCodeInfo _ProcessGetCodeInfo: ; Function 'ProcessGetCodeInfo'; 112 bytes of locals, 11 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#168 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 lw r6,(r30) lw r7,4(r30) lw r8,8(r30) lw r9,12(r30) lw r10,16(r30) lw r11,20(r30) addi r29,r29,#-8 sw (r29),r6 addi r12,r0,#1 sw 4(r29),r12 jal _FsOpen nop ; not filled. add r3,r0,r1 addi r29,r29,#8 slti r1,r3,#0 beqz r1,L302 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L304 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L311 nop ; not filled. L304: addi r29,r29,#-16 lhi r12,((LC33)>>16)&0xffff addui r12,r12,(LC33)&0xffff sw (r29),r12 sw 4(r29),r6 sw 8(r29),r3 jal _printf nop ; not filled. addi r29,r29,#16 j L311 nop ; not filled. L302: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L306 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L305 nop ; not filled. L306: addi r29,r29,#-8 lhi r12,((LC34)>>16)&0xffff addui r12,r12,(LC34)&0xffff sw (r29),r12 sw 4(r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L305: addi r29,r29,#-16 sw (r29),r3 addi r4,r30,#-112 sw 4(r29),r4 addi r12,r0,#100 sw 8(r29),r12 jal _FsRead nop ; not filled. add r5,r0,r1 addi r29,r29,#16 snei r1,r5,#100 beqz r1,L307 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L309 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L308 nop ; not filled. L309: addi r29,r29,#-16 lhi r12,((LC35)>>16)&0xffff addui r12,r12,(LC35)&0xffff sw (r29),r12 sw 4(r29),r5 addi r12,r0,#100 sw 8(r29),r12 sw 12(r29),r6 jal _printf nop ; not filled. addi r29,r29,#16 L308: addi r29,r29,#-8 sw (r29),r3 jal _FsClose nop ; not filled. addi r1,r0,#-1 addi r29,r29,#8 j L301 nop ; not filled. L307: addi r29,r29,#-8 sw (r29),r4 lhi r1,((LC36)>>16)&0xffff addui r1,r1,(LC36)&0xffff sw 4(r29),r1 jal _dstrstr nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L310 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L312 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L311 nop ; not filled. L312: addi r29,r29,#-8 lhi r12,((LC37)>>16)&0xffff addui r12,r12,(LC37)&0xffff sw (r29),r12 sw 4(r29),r6 jal _printf nop ; not filled. addi r29,r29,#8 L311: addi r1,r0,#-1 j L301 nop ; not filled. L310: addi r29,r29,#-8 sw (r29),r4 addi r12,r0,#58 sw 4(r29),r12 jal _dindex nop ; not filled. addi r1,r1,#1 sw -116(r30),r1 addi r29,r29,#-8 sw (r29),r1 addi r2,r30,#-116 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. sw (r7),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. sw (r8),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. sw (r9),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. sw (r10),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. sw (r11),r1 sw (r29),r4 addi r12,r0,#10 sw 4(r29),r12 jal _dindex nop ; not filled. addi r2,r30,#-113 sub r1,r1,r2 sw (r29),r3 sw 4(r29),r1 addi r12,r0,#0 sw 8(r29),r12 jal _FsSeek nop ; not filled. add r1,r0,r3 addi r29,r29,#16 L301: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessGetCodeInfo .data .align 2 LC38: .ascii "Got %d bytes at offset %d ...\000" .align 2 LC39: .ascii " terminated at %d.\n\000" .align 2 LC40: .ascii "Buffer is \'%s\'\n\000" .align 2 LC41: .ascii "New address is 0x%x.\n\000" .align 2 LC42: .ascii "Seeking to %d and returning %d bytes!\n\000" .text .align 2 .proc _ProcessGetFromFile .global _ProcessGetFromFile _ProcessGetFromFile: ; Function 'ProcessGetFromFile'; 216 bytes of locals, 11 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#272 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 lw r10,(r30) lw r7,8(r30) lw r2,12(r30) lw r11,4(r30) addi r3,r30,#-216 sw -220(r30),r3 addi r29,r29,#-16 sw (r29),r10 addi r12,r0,#0 sw 4(r29),r12 addi r12,r0,#1 sw 8(r29),r12 jal _FsSeek nop ; not filled. add r9,r0,r1 slli r2,r2,#0x1 addi r29,r29,#16 sgtui r1,r2,#200 beqz r1,L315 nop ; not filled. addi r2,r0,#200 L315: addi r29,r29,#-16 sw (r29),r10 sw 4(r29),r3 sw 8(r29),r2 jal _FsRead nop ; not filled. add r5,r0,r1 addi r29,r29,#16 slei r1,r5,#0 beqz r1,L316 nop ; not filled. addi r1,r0,#0 j L370 nop ; not filled. L316: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L318 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L317 nop ; not filled. L318: addi r29,r29,#-16 lhi r12,((LC38)>>16)&0xffff addui r12,r12,(LC38)&0xffff sw (r29),r12 sw 4(r29),r5 sw 8(r29),r9 jal _printf nop ; not filled. addi r29,r29,#16 L317: addi r5,r5,#-1 addi r1,r30,#-216 add r2,r1,r5 j L373 nop ; not filled. L319: addi r2,r2,#-1 addi r5,r5,#-1 L373: lbu r1,(r2) snei r1,r1,#10 bnez r1,L319 nop ; not filled. addi r1,r30,#-215 add r1,r1,r5 addi r12,r0,(#0x5a)&0xff sb (r1),r12 addi r1,r30,#-214 add r1,r1,r5 addi r12,r0,(#0x0)&0xff sb (r1),r12 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L324 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L323 nop ; not filled. L324: addi r29,r29,#-8 lhi r12,((LC39)>>16)&0xffff addui r12,r12,(LC39)&0xffff sw (r29),r12 sw 4(r29),r5 jal _printf nop ; not filled. addi r29,r29,#8 L323: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L326 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L325 nop ; not filled. L326: addi r29,r29,#-8 lhi r12,((LC40)>>16)&0xffff addui r12,r12,(LC40)&0xffff sw (r29),r12 addi r1,r30,#-216 sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L325: addi r5,r0,#0 lhi r8,((_debugstr)>>16)&0xffff addui r8,r8,(_debugstr)&0xffff L327: addi r29,r29,#-8 lw r12,-220(r30) sw (r29),r12 addi r12,r0,#90 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L328 nop ; not filled. addi r29,r29,#-8 lw r12,-220(r30) sw (r29),r12 addi r12,r0,#58 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L328 nop ; not filled. lw r2,-220(r30) lbu r1,(r2) snei r1,r1,#58 beqz r1,L372 nop ; not filled. sgti r1,r5,#0 bnez r1,L328 nop ; not filled. addi r29,r29,#-16 sw (r29),r2 addi r1,r30,#-220 sw 4(r29),r1 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. sw (r7),r1 sw (r29),r8 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L334 nop ; not filled. addi r29,r29,#-8 sw (r29),r8 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L331 nop ; not filled. L334: addi r29,r29,#-8 lhi r12,((LC41)>>16)&0xffff addui r12,r12,(LC41)&0xffff sw (r29),r12 lw r1,(r7) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L331: lw r1,-220(r30) lbu r1,(r1) snei r1,r1,#58 bnez r1,L328 nop ; not filled. L372: lw r1,-220(r30) addi r1,r1,#1 sw -220(r30),r1 add r6,r5,r11 L338: lw r1,-220(r30) j L374 nop ; not filled. L341: lw r1,-220(r30) addi r1,r1,#1 sw -220(r30),r1 L374: lbu r31,(r1) seqi r1,r31,#32 bnez r1,L341 nop ; not filled. seqi r1,r31,#9 bnez r1,L341 nop ; not filled. lw r2,-220(r30) lb r31,(r2) andi r3,r31,#0x00ff seqi r1,r3,#10 beqz r1,L343 nop ; not filled. addi r1,r2,#1 sw -220(r30),r1 j L327 nop ; not filled. L343: addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L349 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L349 nop ; not filled. snei r1,r3,#65 bnez r1,L348 nop ; not filled. L349: addi r2,r0,#1 L348: snei r1,r2,#0 beqz r1,L327 nop ; not filled. lw r1,-220(r30) lb r2,1(r1) addi r3,r0,#0 addi r1,r2,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L352 nop ; not filled. addi r1,r2,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L352 nop ; not filled. andi r1,r2,#0x00ff snei r1,r1,#65 bnez r1,L351 nop ; not filled. L352: addi r3,r0,#1 L351: snei r1,r3,#0 beqz r1,L327 nop ; not filled. lw r1,-220(r30) lbu r2,(r1) add r3,r0,r2 addi r31,r2,#-48 sleui r1,r31,#9 beqz r1,L354 nop ; not filled. add r4,r0,r31 j L353 nop ; not filled. L354: addi r1,r2,#-97 sleui r1,r1,#5 beqz r1,L356 nop ; not filled. addi r4,r2,#-87 j L353 nop ; not filled. L356: addi r1,r3,#-65 sleui r1,r1,#5 addi r4,r0,#0 beqz r1,L353 nop ; not filled. addi r4,r3,#-55 L353: lw r1,-220(r30) lbu r2,1(r1) add r3,r0,r2 addi r31,r2,#-48 sleui r1,r31,#9 beqz r1,L361 nop ; not filled. add r2,r0,r31 j L360 nop ; not filled. L361: addi r1,r2,#-97 sleui r1,r1,#5 beqz r1,L363 nop ; not filled. addi r2,r2,#-87 j L360 nop ; not filled. L363: addi r1,r3,#-65 sleui r1,r1,#5 addi r2,r0,#0 beqz r1,L360 nop ; not filled. addi r2,r3,#-55 L360: slli r1,r4,#0x4 add r1,r1,r2 sb (r6),r1 addi r6,r6,#1 addi r5,r5,#1 lw r1,-220(r30) addi r1,r1,#2 sw -220(r30),r1 lw r1,(r7) addi r1,r1,#1 sw (r7),r1 j L338 nop ; not filled. L328: addi r29,r29,#-16 sw (r29),r10 lw r1,-220(r30) add r1,r1,r9 addi r3,r30,#-216 sub r1,r1,r3 sw 4(r29),r1 addi r12,r0,#0 sw 8(r29),r12 jal _FsSeek nop ; not filled. lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L369 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L368 nop ; not filled. L369: addi r29,r29,#-16 lhi r12,((LC42)>>16)&0xffff addui r12,r12,(LC42)&0xffff sw (r29),r12 lw r1,-220(r30) add r1,r1,r9 sub r1,r1,r3 sw 4(r29),r1 sw 8(r29),r5 jal _printf nop ; not filled. addi r29,r29,#16 L368: add r1,r0,r5 L370: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessGetFromFile .data .align 2 _temppcb64: .space 180 .align 2 LC43: .ascii "Got %d arguments.\n\000" .align 2 LC44: .ascii "Available memory: 0x%x -> 0x%x.\n\000" .align 2 LC45: .ascii "Argument count is %d.\n\000" .align 2 LC46: .ascii "Argument %d is %s.\n\000" .align 2 LC47: .ascii "Converted %s to %d=%s\n\000" _buf65: .space 200 .align 2 LC48: .ascii "%08x: %02x%02x%02x%02x\n\000" .align 2 LC49: .ascii "Option %s not recognized.\n\000" .align 2 LC50: .ascii "About to initialize queues.\n\000" .align 2 LC51: .ascii "After initializing queues.\n\000" .align 2 LC52: .ascii "After initializing memory.\n\000" .align 2 LC53: .ascii "After initializing processes.\n\000" .align 2 LC54: .ascii "After initializing shared memory.\n\000" .align 2 LC55: .ascii "After initializing synchronization tools.\n\000" .align 2 LC56: .ascii "After initializing keyboard.\n\000" .align 2 LC57: .ascii "vm\000" .align 2 LC58: .ascii "VM Descriptor is %d\n\000" .align 2 LC59: .ascii "Created processes - about to set timer quantum.\n\000" .align 2 LC60: .ascii "Set timer quantum to %d, about to run first process.\n\000" .text .align 2 .proc _main .global _main _main: ; Function 'main'; 192 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#200 ; alloc local storage lw r14,(r30) lw r20,4(r30) jal ___main nop ; not filled. addi r16,r0,#0 addi r21,r0,#0 sw -176(r30),r21 sw -172(r30),r21 sw -168(r30),r21 sw -164(r30),r21 sw -160(r30),r21 sw -156(r30),r21 sw -152(r30),r21 sw -148(r30),r21 sw -144(r30),r21 sw -140(r30),r21 sw -136(r30),r21 sw -132(r30),r21 lhi r1,((_debugstr)>>16)&0xffff addui r1,r1,(_debugstr)&0xffff addi r21,r0,(#0x0)&0xff sb (r1),r21 jal _MyFuncRetZero nop ; not filled. addi r29,r29,#-8 lhi r21,((LC43)>>16)&0xffff addui r21,r21,(LC43)&0xffff sw (r29),r21 sw 4(r29),r14 jal _printf nop ; not filled. jal _MemoryGetSize nop ; not filled. addi r29,r29,#-8 lhi r21,((LC44)>>16)&0xffff addui r21,r21,(LC44)&0xffff sw (r29),r21 lhi r2,((_lastosaddress)>>16)&0xffff addui r2,r2,(_lastosaddress)&0xffff lw r2,(r2) sw 4(r29),r2 sw 8(r29),r1 jal _printf nop ; not filled. lhi r21,((LC45)>>16)&0xffff addui r21,r21,(LC45)&0xffff sw (r29),r21 sw 4(r29),r14 jal _printf nop ; not filled. addi r9,r0,#0 addi r29,r29,#16 slt r1,r9,r14 beqz r1,L377 nop ; not filled. add r2,r0,r20 L379: addi r29,r29,#-16 lhi r21,((LC46)>>16)&0xffff addui r21,r21,(LC46)&0xffff sw (r29),r21 sw 4(r29),r9 lw r21,(r2) sw 8(r29),r21 jal _printf nop ; not filled. addi r29,r29,#16 addi r2,r2,#4 addi r9,r9,#1 slt r1,r9,r14 bnez r1,L379 nop ; not filled. L377: jal _FsModuleInit nop ; not filled. addi r9,r0,#0 slt r1,r9,r14 beqz r1,L382 nop ; not filled. addi r12,r30,#-128 addi r13,r30,#-200 lhi r15,((_buf65)>>16)&0xffff addui r15,r15,(_buf65)&0xffff addi r18,r15,#1 addi r17,r15,#2 add r8,r0,r20 L384: lw r2,(r8) lbu r1,(r2) seqi r1,r1,#45 beqz r1,L383 nop ; not filled. lbu r2,1(r2) seqi r1,r2,#102 bnez r1,L389 nop ; not filled. sgti r1,r2,#102 bnez r1,L401 nop ; not filled. seqi r1,r2,#68 beqz r1,L399 nop ; not filled. j L387 nop ; not filled. L401: seqi r1,r2,#105 bnez r1,L388 nop ; not filled. seqi r1,r2,#117 beqz r1,L399 nop ; not filled. j L398 nop ; not filled. L387: addi r29,r29,#-8 lhi r21,((_debugstr)>>16)&0xffff addui r21,r21,(_debugstr)&0xffff sw (r29),r21 addi r8,r8,#4 addi r9,r9,#1 lw r1,(r8) sw 4(r29),r1 jal _dstrcpy nop ; not filled. j L436 nop ; not filled. L388: addi r29,r29,#-16 addi r8,r8,#4 addi r9,r9,#1 lw r21,(r8) sw (r29),r21 addi r21,r0,#0 sw 4(r29),r21 sw 8(r29),r21 jal _dstrtol nop ; not filled. add r3,r0,r1 sw (r29),r1 sw 4(r29),r12 jal _ditoa nop ; not filled. lhi r21,((LC47)>>16)&0xffff addui r21,r21,(LC47)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 sw 8(r29),r3 sw 12(r29),r12 jal _printf nop ; not filled. addi r29,r29,#16 j L386 nop ; not filled. L389: addi r21,r0,#0 sw -200(r30),r21 addi r29,r29,#-24 addi r8,r8,#4 addi r9,r9,#1 lw r21,(r8) sw (r29),r21 addi r1,r30,#-180 sw 4(r29),r1 addi r1,r30,#-184 sw 8(r29),r1 addi r1,r30,#-188 sw 12(r29),r1 addi r1,r30,#-192 sw 16(r29),r1 addi r1,r30,#-196 sw 20(r29),r1 jal _ProcessGetCodeInfo nop ; not filled. add r10,r0,r1 lhi r21,((LC27)>>16)&0xffff addui r21,r21,(LC27)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 lw r21,-180(r30) sw 8(r29),r21 jal _printf nop ; not filled. lhi r21,((LC28)>>16)&0xffff addui r21,r21,(LC28)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 lw r21,-184(r30) sw 8(r29),r21 lw r21,-188(r30) sw 12(r29),r21 jal _printf nop ; not filled. lhi r21,((LC29)>>16)&0xffff addui r21,r21,(LC29)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 lw r21,-192(r30) sw 8(r29),r21 lw r21,-196(r30) sw 12(r29),r21 jal _printf nop ; not filled. addi r29,r29,#24 lhi r11,((_buf65+3)>>16)&0xffff addui r11,r11,(_buf65+3)&0xffff L390: addi r29,r29,#-16 sw (r29),r10 lhi r21,((_buf65)>>16)&0xffff addui r21,r21,(_buf65)&0xffff sw 4(r29),r21 sw 8(r29),r13 addi r21,r0,#200 sw 12(r29),r21 jal _ProcessGetFromFile nop ; not filled. add r3,r0,r1 addi r29,r29,#16 sgti r1,r3,#0 beqz r1,L391 nop ; not filled. addi r2,r0,#0 slt r1,r2,r3 beqz r1,L390 nop ; not filled. add r7,r0,r11 add r6,r0,r17 add r5,r0,r18 add r4,r0,r15 L396: addi r29,r29,#-24 lhi r21,((LC48)>>16)&0xffff addui r21,r21,(LC48)&0xffff sw (r29),r21 lw r1,-200(r30) add r1,r1,r2 sub r1,r1,r3 sw 4(r29),r1 lbu r1,(r4) sw 8(r29),r1 lbu r1,(r5) sw 12(r29),r1 lbu r1,(r6) sw 16(r29),r1 lbu r1,(r7) sw 20(r29),r1 jal _printf nop ; not filled. addi r29,r29,#24 addi r7,r7,#4 addi r6,r6,#4 addi r5,r5,#4 addi r4,r4,#4 addi r2,r2,#4 slt r1,r2,r3 bnez r1,L396 nop ; not filled. j L390 nop ; not filled. L391: addi r29,r29,#-8 sw (r29),r10 jal _close nop ; not filled. j L436 nop ; not filled. L398: addi r8,r8,#4 addi r9,r9,#1 lw r16,(r8) add r19,r0,r9 j L386 nop ; not filled. L399: addi r29,r29,#-8 lhi r21,((LC49)>>16)&0xffff addui r21,r21,(LC49)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 jal _printf nop ; not filled. L436: addi r29,r29,#8 L386: snei r1,r16,#0 bnez r1,L382 nop ; not filled. L383: addi r8,r8,#4 addi r9,r9,#1 slt r1,r9,r14 bnez r1,L384 nop ; not filled. L382: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L405 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L404 nop ; not filled. L405: addi r29,r29,#-8 lhi r21,((LC50)>>16)&0xffff addui r21,r21,(LC50)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L404: jal _QueueModuleInit nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L407 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L406 nop ; not filled. L407: addi r29,r29,#-8 lhi r21,((LC51)>>16)&0xffff addui r21,r21,(LC51)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L406: jal _MemoryModuleInit nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L409 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L408 nop ; not filled. L409: addi r29,r29,#-8 lhi r21,((LC52)>>16)&0xffff addui r21,r21,(LC52)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L408: jal _ProcessModuleInit nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L411 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L410 nop ; not filled. L411: addi r29,r29,#-8 lhi r21,((LC53)>>16)&0xffff addui r21,r21,(LC53)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L410: jal _ShareModuleInit nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L413 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L412 nop ; not filled. L413: addi r29,r29,#-8 lhi r21,((LC54)>>16)&0xffff addui r21,r21,(LC54)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L412: jal _SynchModuleInit nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L415 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L414 nop ; not filled. L415: addi r29,r29,#-8 lhi r21,((LC55)>>16)&0xffff addui r21,r21,(LC55)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L414: jal _KbdModuleInit nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L417 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L416 nop ; not filled. L417: addi r29,r29,#-8 lhi r21,((LC56)>>16)&0xffff addui r21,r21,(LC56)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L416: addi r2,r30,#-128 addi r3,r30,#-29 L421: addi r21,r0,(#0x61)&0xff sb (r2),r21 addi r2,r2,#1 sle r1,r2,r3 bnez r1,L421 nop ; not filled. addi r29,r29,#-8 lhi r21,((LC57)>>16)&0xffff addui r21,r21,(LC57)&0xffff sw (r29),r21 addi r21,r0,#2 sw 4(r29),r21 jal _FsOpen nop ; not filled. add r9,r0,r1 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L424 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L423 nop ; not filled. L424: addi r29,r29,#-8 lhi r21,((LC58)>>16)&0xffff addui r21,r21,(LC58)&0xffff sw (r29),r21 sw 4(r29),r9 jal _printf nop ; not filled. addi r29,r29,#8 L423: addi r29,r29,#-16 sw (r29),r9 addi r21,r0,#0 sw 4(r29),r21 sw 8(r29),r21 jal _FsSeek nop ; not filled. sw (r29),r9 addi r1,r30,#-128 sw 4(r29),r1 addi r21,r0,#80 sw 8(r29),r21 jal _FsWrite nop ; not filled. sw (r29),r9 jal _FsClose nop ; not filled. addi r29,r29,#16 snei r1,r16,#0 beqz r1,L425 nop ; not filled. add r9,r0,r19 slt r1,r19,r14 beqz r1,L427 nop ; not filled. addi r4,r30,#-8 slli r1,r9,#0x2 add r3,r1,r20 L431: sub r2,r9,r19 slei r1,r2,#10 beqz r1,L427 nop ; not filled. slli r1,r2,#0x2 add r1,r1,r4 lw r21,(r3) sw -168(r1),r21 addi r3,r3,#4 addi r9,r9,#1 slt r1,r9,r14 bnez r1,L431 nop ; not filled. L427: addi r29,r29,#-56 addi r21,r0,#0 sw (r29),r21 sw 4(r29),r21 lw r21,-176(r30) sw 8(r29),r21 lw r21,-172(r30) sw 12(r29),r21 lw r21,-168(r30) sw 16(r29),r21 lw r21,-164(r30) sw 20(r29),r21 lw r21,-160(r30) sw 24(r29),r21 lw r21,-156(r30) sw 28(r29),r21 lw r21,-152(r30) sw 32(r29),r21 lw r21,-148(r30) sw 36(r29),r21 lw r21,-144(r30) sw 40(r29),r21 lw r21,-140(r30) sw 44(r29),r21 lw r21,-136(r30) sw 48(r29),r21 lw r21,-132(r30) sw 52(r29),r21 jal _process_create nop ; not filled. addi r29,r29,#56 L425: jal _SysprocCreateProcesses nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L433 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L432 nop ; not filled. L433: addi r29,r29,#-8 lhi r21,((LC59)>>16)&0xffff addui r21,r21,(LC59)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L432: addi r29,r29,#-8 lhi r3,((_processQuantum)>>16)&0xffff addui r3,r3,(_processQuantum)&0xffff lw r21,(r3) sw (r29),r21 jal _TimerSet nop ; not filled. lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L435 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L434 nop ; not filled. L435: addi r29,r29,#-8 lhi r21,((LC60)>>16)&0xffff addui r21,r21,(LC60)&0xffff sw (r29),r21 lw r1,(r3) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L434: jal _intrreturn nop ; not filled. jal _exitsim nop ; not filled. jal _exit nop .endproc _main .data .align 2 LC62: .word 0x00000000 ;; 0.0000000e+00 .text .align 2 .proc _MyFuncRetZero .global _MyFuncRetZero _MyFuncRetZero: ; Function 'MyFuncRetZero'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lhi r1,((LC62)>>16)&0xffff addui r1,r1,(LC62)&0xffff lf f0,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MyFuncRetZero .align 2 .proc _GetCurrentPid .global _GetCurrentPid _GetCurrentPid: ; Function 'GetCurrentPid'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) lhi r31,((_pcbs)>>16)&0xffff addui r31,r31,(_pcbs)&0xffff sub r2,r1,r31 lhi r1,#-23302 addui r1,r1,#20389 movi2fp f0,r2 movi2fp f1,r1 mult f0,f0,f1 movfp2i r1,f0 srai r1,r1,#0x2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _GetCurrentPid .align 2 .proc _findpid .global _findpid _findpid: ; Function 'findpid'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lhi r31,((_pcbs)>>16)&0xffff addui r31,r31,(_pcbs)&0xffff sub r2,r1,r31 lhi r1,#-23302 addui r1,r1,#20389 movi2fp f0,r2 movi2fp f1,r1 mult f0,f0,f1 movfp2i r1,f0 srai r1,r1,#0x2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _findpid .align 2 .proc _process_create .global _process_create _process_create: ; Function 'process_create'; 1000 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#1032 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 addi r2,r30,#8 addi r4,r0,#0 lw r1,(r2) snei r1,r1,#0 beqz r1,L445 nop ; not filled. addi r5,r30,#-1008 add r31,r0,r2 L447: addi r2,r0,#0 add r3,r4,r5 L448: lw r1,(r31) add r1,r1,r2 lb r1,(r1) sb (r3),r1 addi r2,r2,#1 addi r3,r3,#1 addi r4,r4,#1 lw r1,(r31) add r1,r2,r1 lbu r1,-1(r1) snei r1,r1,#0 bnez r1,L448 nop ; not filled. addi r31,r31,#4 lw r1,(r31) snei r1,r1,#0 bnez r1,L447 nop ; not filled. L445: addi r3,r30,#-1008 add r2,r3,r4 addi r1,r30,#-1007 add r1,r1,r4 addi r6,r0,(#0x0)&0xff sb (r1),r6 sb (r2),r6 addi r29,r29,#-24 addi r6,r0,#0 sw (r29),r6 sw 4(r29),r3 lw r6,(r30) sw 8(r29),r6 lw r6,4(r30) sw 12(r29),r6 lw r6,8(r30) sw 16(r29),r6 addi r6,r0,#1 sw 20(r29),r6 jal _ProcessFork nop ; not filled. addi r29,r29,#24 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _process_create .data .global _debugstr _debugstr: .space 200 .align 2 .global _currentPCB _currentPCB: .space 4 .align 2 _freepcbs: .space 12 .align 2 _runQueue: .space 12 .align 2 _waitQueue: .space 12 .align 2 _zombieQueue: .space 12 .align 2 _pcbs: .space 5760 .text .align 2 .proc _ProcessExit _ProcessExit: ; Function 'ProcessExit'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage jal _exit nop ; not filled. lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessExit

src/sysproc.o

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Process #\000" .align 2 LC1: .ascii "Running process %d (iteration %d)!\n\000" .text .align 2 .proc _doSomething _doSomething: ; Function 'doSomething'; 80 bytes of locals, 7 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#120 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r6,(r30) addi r1,r0,#10 movi2fp f0,r6 movi2fp f1,r1 div f0,f0,f1 movfp2i r2,f0 slli r1,r2,#0x2 add r1,r1,r2 slli r1,r1,#0x1 sub r7,r6,r1 slei r1,r6,#99 beqz r1,L52 nop ; not filled. addi r29,r29,#-8 slli r1,r7,#0x2 add r1,r1,r7 slli r1,r1,#0x2 lhi r8,((_mysems)>>16)&0xffff addui r8,r8,(_mysems)&0xffff add r1,r1,r8 sw (r29),r1 addi r8,r0,#1 sw 4(r29),r8 jal _SemInit nop ; not filled. addi r3,r0,#1 addi r29,r29,#8 addi r4,r30,#-48 addi r5,r30,#-88 add r2,r0,r6 L56: addi r29,r29,#-8 sw (r29),r4 lhi r8,((LC0)>>16)&0xffff addui r8,r8,(LC0)&0xffff sw 4(r29),r8 jal _dstrcpy nop ; not filled. sw (r29),r3 sw 4(r29),r5 jal _ditoa nop ; not filled. sw (r29),r4 sw 4(r29),r5 jal _dstrcat nop ; not filled. addi r29,r29,#-16 lhi r8,((_doSomething)>>16)&0xffff addui r8,r8,(_doSomething)&0xffff sw (r29),r8 slli r1,r2,#0x5 sub r1,r1,r2 slli r1,r1,#0x2 add r1,r1,r2 slli r1,r1,#0x3 add r1,r1,r6 sw 4(r29),r1 addi r8,r0,#0 sw 8(r29),r8 sw 12(r29),r8 sw 16(r29),r4 sw 20(r29),r8 jal _ProcessFork nop ; not filled. addi r29,r29,#24 add r2,r2,r6 addi r3,r3,#1 slei r1,r3,#6 bnez r1,L56 nop ; not filled. L52: addi r29,r29,#-8 slli r1,r7,#0x2 add r1,r1,r7 slli r1,r1,#0x2 lhi r8,((_mysems)>>16)&0xffff addui r8,r8,(_mysems)&0xffff add r1,r1,r8 sw (r29),r1 jal _SemWait nop ; not filled. addi r3,r0,#0 addi r29,r29,#8 slli r2,r6,#0x1 slt r1,r3,r2 beqz r1,L59 nop ; not filled. addi r5,r0,#1000 add r4,r0,r2 L61: movi2fp f0,r3 movi2fp f1,r5 div f0,f0,f1 movfp2i r2,f0 slli r1,r2,#0x5 sub r1,r1,r2 slli r1,r1,#0x2 add r1,r1,r2 slli r1,r1,#0x3 sne r1,r3,r1 bnez r1,L62 nop ; not filled. addi r29,r29,#-16 lhi r8,((LC1)>>16)&0xffff addui r8,r8,(LC1)&0xffff sw (r29),r8 sw 4(r29),r6 sw 8(r29),r3 jal _printf nop ; not filled. addi r29,r29,#16 L62: addi r3,r3,#1 slt r1,r3,r4 bnez r1,L61 nop ; not filled. L59: addi r29,r29,#-8 slli r1,r7,#0x2 add r1,r1,r7 slli r1,r1,#0x2 lhi r8,((_mysems)>>16)&0xffff addui r8,r8,(_mysems)&0xffff add r1,r1,r8 sw (r29),r1 jal _SemSignal nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _doSomething .data .align 2 LC2: .ascii "chasetail\000" .align 2 LC3: .ascii "Chasing tail %d.\n\000" .align 2 LC4: .ascii "Open of (%s,0x%x) returns 0x%x.\n\000" .align 2 LC5: .ascii "ChaseTail\000" .text .align 2 .proc _chaseTail _chaseTail: ; Function 'chaseTail'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r4,(r30) lhi r3,((LC2)>>16)&0xffff addui r3,r3,(LC2)&0xffff addi r29,r29,#-8 lhi r5,((LC3)>>16)&0xffff addui r5,r5,(LC3)&0xffff sw (r29),r5 sw 4(r29),r4 jal _printf nop ; not filled. sw (r29),r3 addi r2,r4,#8192 sw 4(r29),r2 jal _Open nop ; not filled. addi r29,r29,#-8 lhi r5,((LC4)>>16)&0xffff addui r5,r5,(LC4)&0xffff sw (r29),r5 sw 4(r29),r3 sw 8(r29),r2 sw 12(r29),r1 jal _printf nop ; not filled. addi r29,r29,#16 slei r1,r4,#39 beqz r1,L67 nop ; not filled. addi r29,r29,#-24 lhi r5,((_chaseTail)>>16)&0xffff addui r5,r5,(_chaseTail)&0xffff sw (r29),r5 addi r1,r4,#1 sw 4(r29),r1 addi r5,r0,#0 sw 8(r29),r5 sw 12(r29),r5 lhi r5,((LC5)>>16)&0xffff addui r5,r5,(LC5)&0xffff sw 16(r29),r5 addi r5,r0,#0 sw 20(r29),r5 jal _ProcessFork nop ; not filled. addi r29,r29,#24 L67: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _chaseTail .data .align 2 LC6: .ascii "%d \000" .align 2 LC7: .ascii "Random number %02i is 0x%08x.\n\000" .text .align 2 .proc _SysprocCreateProcesses .global _SysprocCreateProcesses _SysprocCreateProcesses: ; Function 'SysprocCreateProcesses'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lhi r2,((_mysems)>>16)&0xffff addui r2,r2,(_mysems)&0xffff addi r3,r2,#180 L90: addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#1 sw 4(r29),r4 jal _SemInit nop ; not filled. addi r29,r29,#8 addi r2,r2,#20 sle r1,r2,r3 bnez r1,L90 nop ; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SysprocCreateProcesses .data .align 2 _mysems: .space 200

src/osend.o

;;; This file just includes a single variable that contains the last address ;;; in the operating system. The rest of memory is available for use by ;;; processes. .data .align 2 .global _lastosaddress _lastosaddress: .word _lastosaddress+8

src/misc.h

// // Routines used by the entire operating system. // #ifndef _misc_h_ #define _misc_h_ extern char* dstrcpy(char*, const char*); extern char* dstrncpy(char*, const char*, int n); extern const char *dstrstr (const char *, const char *); extern int dstrlen (const char *); extern int dstrncmp (const char *, const char *, int); extern int dstrtol(char*, char**, int); extern const char* dindex(const char*, int); extern const char* dmindex(const char*, const char *); inline int isspace (char c) { return ((c == ' ') || (c == '\t') || (c == '\n')); } inline int isxdigit (char c) { return (((c >= '0') && (c <= '9')) || ((c >= 'a') && (c <= 'f')) || ((c >= 'A') && (c <= 'A'))); } #endif // !_misc_h_

src/os.dlx

; Linked by DLX-LD. ; MemSize 106496 ; Data size: 38336 ; Text size: 49712 ; Stack size: 8192 .text 0x1000 .data 0xe000 ;;; ;;; Initialization code for programs running in the DLX simulator. ;;; Copyright (c) 1999 by Ethan Miller ;;; ;;; .text .align 2 ;;;---------------------------------------------------------------------- ;;; osinit ;;; ;;; This is the first function called by the simulator, even before main. ;;; Since it's called BEFORE any "real" routines, we can use any registers ;;; we want as long as we don't mess up the stack or frame pointers. ;;; ;;; This routine loads the interrupt vector to point to the interrupt ;;; handler later in this file. It should never return, because _main ;;; should call exitsim() or exit() rather than returning here. ;;; ;;; After initialization is done, this routine jumps to _main to start the ;;; C code portion of the operating system. ;;;---------------------------------------------------------------------- .proc _osinit .global _osinit _osinit: ;; Set up the interrupt handler lhi r1,(_intrhandler>>16)&0xffff addui r1,r1,_intrhandler&0xffff movi2s intrvec,r1 ;; Never returns because exitsim is called first j _main .endproc _osinit ;;;---------------------------------------------------------------------- ;;; intrhandler ;;; ;;; Called when an interrupt or trap is received by the CPU. It stores the ;;; current register set on the system stack. It then pushes the parameters ;;; to the C interrupt handler onto the stack: the ISR, IAR, and CAUSE ;;; registers along with the original stack pointer. The C interrupt ;;; handler can then copy arguments from the original stack, performing ;;; user -> system translations if necessary. ;;; ;;;---------------------------------------------------------------------- .proc _intrhandler .global _intrhandler _intrhandler: ;; We can use r31 as scratch space because its value was saved in ;; ir31. However, we must save the "real" value of r31 on the ;; stack. ;; Always store the registers on the system stack. This way, we don't ;; have to worry about translating things from user -> system. We ;; use r31 as the base register because its value was saved in ir31. ;; If this was a user process, load r29 with the current system ;; stack pointer. If it was a system process, just use the ;; current stack pointer. movs2i r31,isr andi r31,r31,0x40 bnez r31,intrSystem_LF0 lhi r31,(_currentPCB>>16)&0xffff addui r31,r31,_currentPCB&0xffff lw r31,(r31) lw r31,4(r31) ;; Save the original (user) stack pointer sw -184(r31),r29; we haven't yet bumped SP, and 156-340 = -184 ;; Copy the system stack pointer into r29 (current stack pointer) ori r29,r31,0 beqz r0,intrSaveReg_LF0; skip over the system part.... intrSystem_LF0: ;; Use the stack pointer we're already using ;; Save r29 because we won't save it later sw -184(r29),r29; we haven't yet bumped SP, and 156-340 = -184 intrSaveReg_LF0: ;; Adjust stack pointer for all the stuff we're going to push. This ;; is a bit more space than we need currently, but it leaves room ;; for more stuff if needed. subui r29,r29,#340 ;; Push all the stuff onto the stack sw 44(r29),r1 sw 48(r29),r2 sw 52(r29),r3 sw 56(r29),r4 sw 60(r29),r5 sw 64(r29),r6 sw 68(r29),r7 sw 72(r29),r8 sw 76(r29),r9 sw 80(r29),r10 sw 84(r29),r11 sw 88(r29),r12 sw 92(r29),r13 sw 96(r29),r14 sw 100(r29),r15 sw 104(r29),r16 sw 108(r29),r17 sw 112(r29),r18 sw 116(r29),r19 sw 120(r29),r20 sw 124(r29),r21 sw 128(r29),r22 sw 132(r29),r23 sw 136(r29),r24 sw 140(r29),r25 sw 144(r29),r26 sw 148(r29),r27 sw 152(r29),r28 ;; Skip r29 - stored earlier! sw 160(r29),r30 ;; Load the value of r31 from the special register and then save it movs2i r3,ir31 sw 164(r29),r3 ;; Store the floating-point registers sd 168(r29),f0 sd 176(r29),f2 sd 184(r29),f4 sd 192(r29),f6 sd 200(r29),f8 sd 208(r29),f10 sd 216(r29),f12 sd 224(r29),f14 sd 232(r29),f16 sd 240(r29),f18 sd 248(r29),f20 sd 256(r29),f22 sd 264(r29),f24 sd 272(r29),f26 sd 280(r29),f28 sd 288(r29),f30 ;; NOTE: we don't save the interrupt vector register because it ;; doesn't change from process to process. ;; NOTE: we don't save the status register because most of the flags ;; are the same from process to process if they're in the interrupt ;; handler. Of course, we DO save the ISR. movs2i r4,iar sw 296(r29),r4 movs2i r5,isr sw 300(r29),r5 movs2i r6,cause sw 304(r29),r6 movs2i r3,fault sw 308(r29),r3 movs2i r3,ptbase sw 312(r29),r3 movs2i r3,ptsize sw 316(r29),r3 movs2i r3,ptbits sw 320(r29),r3 ;; Push the interrupt information onto the stack sw 0(r29),r6; push CAUSE sw 4(r29),r4; push IAR sw 8(r29),r5; push ISR ;; Get the original stack pointer lw r1,156(r29) sw 12(r29),r1 ;; Save the previous interrupt stack frame address in the current frame lhi r1,(_currentPCB>>16)&0xffff addui r1,r1,_currentPCB&0xffff lw r1,(r1) lw r2,0(r1) sw 40(r29),r2 ;; Save this frame address in the PCB. This is used so the OS can ;; easily access the current interrupt save frame sw 0(r1),r29 ;; Call the "real" interrupt handler. This will possibly switch ;; contexts. This call never returns; instead, a separate routine ;; (_intrreturn) is called to return from interrupts after restoring ;; the current context. j _dointerrupt nop .endproc _intrhandler ;;;---------------------------------------------------------------------- ;;; intrreturn ;;; ;;; Return from an interrupt or trap. This restores all of the previously ;;; saved registers and then returns to where the program left off. The ;;; current contents of the registers are destroyed. This routine uses ;;; the saved interrupt frame pointer, so the stack pointer need not ;;; be correct. Note, though, that the register contents from the previous ;;; process must have previously been saved - in other words, call this ;;; routine from a trap or interrupt handler. ;;;---------------------------------------------------------------------- .proc _intrreturn .global _intrreturn _intrreturn: ;; Disable interrupts - this routine must be atomic, and interrupts ;; may not be currently disabled. Don't worry about saving registers ;; because we're about to reload them anyway. jal _DisableIntrs ;; Get our interrupt stack frame location and load it into the stack ;; pointer. lhi r1,(_currentPCB>>16)&0xffff addui r1,r1,_currentPCB&0xffff lw r1,0(r1) lw r29,0(r1) ;; Get the previous interrupt stack frame location and make it the ;; current interrupt save frame. lw r2,40(r29) sw 0(r1),r2 ;; Reload the registers for the new process. We don't have to ;; load in the exact opposite order as long as we're careful to ;; get the right values back in. lw r3,296(r29) movi2s iar,r3 lw r3,300(r29) movi2s isr,r3 lw r3,304(r29) movi2s cause,r3 lw r3,308(r29) movi2s fault,r3 lw r3,312(r29) movi2s ptbase,r3 lw r3,316(r29) movi2s ptsize,r3 lw r3,320(r29) movi2s ptbits,r3 ;; Reload the floating point registers ld f0,168(r29) ld f2,176(r29) ld f4,184(r29) ld f6,192(r29) ld f8,200(r29) ld f10,208(r29) ld f12,216(r29) ld f14,224(r29) ld f16,232(r29) ld f18,240(r29) ld f20,248(r29) ld f22,256(r29) ld f24,264(r29) ld f26,272(r29) ld f28,280(r29) ld f30,288(r29) ;; Reload the integer registers. We don't reload r0 because it's ;; always 0. We won't reload r29 here because we're using it as ;; the stack pointer. The same goes for r1, which we'll use as ;; scratch so we can store r29. ;; Skip r1 - restored later lw r2,48(r29) lw r3,52(r29) lw r4,56(r29) lw r5,60(r29) lw r6,64(r29) lw r7,68(r29) lw r8,72(r29) lw r9,76(r29) lw r10,80(r29) lw r11,84(r29) lw r12,88(r29) lw r13,92(r29) lw r14,96(r29) lw r15,100(r29) lw r16,104(r29) lw r17,108(r29) lw r18,112(r29) lw r19,116(r29) lw r20,120(r29) lw r21,124(r29) lw r22,128(r29) lw r23,132(r29) lw r24,136(r29) lw r25,140(r29) lw r26,144(r29) lw r27,148(r29) lw r28,152(r29) ;; Skip r29 - restored later lw r30,160(r29) lw r31,164(r29) addui r29,r29,#340 ;; Save the current value of the stack pointer after adjusting it ;; Note that this will "destroy" the stack values below this interrupt ;; stack frame. This is exactly what we want! sw 4(r1),r29 ori r1,r29,#0 lw r29,-184(r1); 156-340 = -184 lw r1,-296(r1); 44-340 = -296 rfe .endproc _intrreturn ;;;---------------------------------------------------------------------- ;;; SetIntrs ;;; ;;; This routine sets the interrupt level to the value passed (0 -> all ;;; interrupts enabled; 0xf -> all interrupts disabled). It returns the ;;; former value for the interrupt flags. ;;;---------------------------------------------------------------------- .proc _SetIntrs .global _SetIntrs _SetIntrs: subui r29,r29,#16 sw 12(r29),r2; save r2 lw r2,16(r29); Get the new interrupt level andi r2,r2,#0x0f; Mask off interrupt levels movs2i r1,status sw 8(r29),r1; Store the old interrupt values andi r1,r1,#0xfff0; Mask off old interrupt level or r1,r2,r1; OR in new interrupt level movi2s status,r1 lw r1,8(r29); Get back the original interrupt level andi r1,r1,#0x0f; Mask off all but interrupt levels lw r2,12(r29); restore r2 addui r29,r29,#16; restore stack pointer jr r31 nop .endproc _SetIntrs .proc _CurrentIntrs .global _CurrentIntrs _CurrentIntrs: movs2i r1,status andi r1,r1,#0xf jr r31 nop .endproc _CurrentIntrs ;;;---------------------------------------------------------------------- ;;; _ProcessSleep ;;; ;;; If a context switch from elsewhere in the kernel is desired, take a ;;; trap and call this routine from the trap handler. ;;;---------------------------------------------------------------------- .proc _ProcessSleep .global _ProcessSleep _ProcessSleep: trap #0x410; This is a process sleep trap nop jr r31 nop .endproc _ProcessSleep ; ; Stub functions for DLX traps. ; ; Aaron Sawdey 1996; released to the Public Domain. ; .align 2 .proc _random .global _random _random: trap #0x2020 jr r31 nop .endproc _random .proc _srandom .global _srandom _srandom: trap #0x2021 jr r31 nop .endproc _srandom ; I know this is not the right place to put it, but what the heck .proc _timerget .global _timerget _timerget: trap #0x2002 jr r31 nop .endproc _timerget ; Compiled by GCC .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF2 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF2 nop; not filled. L6_LF2: addi r31,r0,#1 L5_LF2: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF2 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF2 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF2 nop; not filled. L12_LF2: addi r2,r0,#1 L11_LF2: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF2 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF2: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0_LF2: .ascii "Entering ProcessModuleInit\n\000" .align 2 LC1_LF2: .ascii "Leaving ProcessModuleInit\n\000" .text .align 2 .proc _ShareModuleInit .global _ShareModuleInit _ShareModuleInit: ; Function 'ShareModuleInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#112 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L64_LF2 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L63_LF2 nop; not filled. L64_LF2: addi r29,r29,#-8 lhi r5,((LC0_LF2)>>16)&0xffff addui r5,r5,(LC0_LF2)&0xffff sw (r29),r5 jal _printf nop; not filled. addi r29,r29,#8 L63_LF2: lhi r2,((_spages_LF2)>>16)&0xffff addui r2,r2,(_spages_LF2)&0xffff addi r4,r2,#248 L68_LF2: addi r5,r0,#0 sw (r2),r5 add r31,r0,r2 add r3,r0,r2 L72_LF2: addi r1,r31,#4 addi r5,r0,#0 sw (r1),r5 add r31,r0,r1 sle r1,r31,r3 bnez r1,L72_LF2 nop; not filled. addi r2,r2,#8 sle r1,r2,r4 bnez r1,L68_LF2 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#112 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L76_LF2 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L75_LF2 nop; not filled. L76_LF2: addi r29,r29,#-8 lhi r5,((LC1_LF2)>>16)&0xffff addui r5,r5,(LC1_LF2)&0xffff sw (r29),r5 jal _printf nop; not filled. addi r29,r29,#8 L75_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ShareModuleInit .data .align 2 LC2_LF2: .ascii "FATAL: couldn\'t allocate memory - no free pages!\n\000" .text .align 2 .proc _MemoryCreateSharedPage .global _MemoryCreateSharedPage _MemoryCreateSharedPage: ; Function 'MemoryCreateSharedPage'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#48; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r6,(r30) addi r29,r29,#-8 sw (r29),r6 jal _findpid nop; not filled. add r5,r0,r1 srli r8,r5,#0x5 slli r1,r8,#0x5 sub r5,r5,r1 addi r29,r29,#8 addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop; not filled. add r7,r0,r1 addi r29,r29,#8 lw r1,160(r6) seqi r1,r1,#16 bnez r1,L92_LF2 nop; not filled. addi r3,r0,#0 lhi r9,((_spages_LF2)>>16)&0xffff addui r9,r9,(_spages_LF2)&0xffff add r2,r0,r9 L84_LF2: lw r1,(r2) snei r1,r1,#0 beqz r1,L82_LF2 nop; not filled. addi r2,r2,#8 addi r3,r3,#1 slei r1,r3,#31 bnez r1,L84_LF2 nop; not filled. L82_LF2: seqi r1,r3,#32 beqz r1,L87_LF2 nop; not filled. L92_LF2: addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#0 j L91_LF2 nop; not filled. L87_LF2: jal _MemoryAllocPage nop; not filled. add r4,r0,r1 snei r1,r4,#0 bnez r1,L89_LF2 nop; not filled. addi r29,r29,#-8 lhi r10,((LC2_LF2)>>16)&0xffff addui r10,r10,(LC2_LF2)&0xffff sw (r29),r10 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L89_LF2: slli r1,r3,#0x3 add r2,r1,r9 sw (r2),r4 slli r1,r8,#0x2 add r2,r1,r2 addi r1,r0,#1 sll r1,r1,r5 sw 4(r2),r1 addi r29,r29,#-8 sw (r29),r4 jal _MemorySetupPte nop; not filled. lw r2,160(r6) slli r2,r2,#0x2 add r2,r2,r6 sw 96(r2),r1 lw r1,160(r6) addi r2,r1,#1 sw 160(r6),r2 lw r1,8(r6) addui r1,r1,#65164 sw 316(r1),r2 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop; not filled. addi r29,r29,#8 add r1,r0,r4 L91_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCreateSharedPage .align 2 .proc _mmap .global _mmap _mmap: ; Function 'mmap'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#48; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r6,(r30) lw r7,4(r30) snei r1,r7,#0 bnez r1,L94_LF2 nop; not filled. addi r1,r0,#0 j L115_LF2 nop; not filled. L94_LF2: lw r1,8(r6) addui r9,r1,#65164 addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop; not filled. add r8,r0,r1 addi r29,r29,#8 addi r3,r0,#0 lhi r2,((_spages_LF2)>>16)&0xffff addui r2,r2,(_spages_LF2)&0xffff L99_LF2: lw r1,(r2) seq r1,r1,r7 bnez r1,L97_LF2 nop; not filled. addi r2,r2,#8 addi r3,r3,#1 sleui r1,r3,#31 bnez r1,L99_LF2 nop; not filled. L97_LF2: seqi r1,r3,#32 bnez r1,L116_LF2 nop; not filled. slli r31,r7,#0x10 addi r5,r0,#0 lw r4,160(r6) slt r1,r5,r4 beqz r1,L105_LF2 nop; not filled. add r2,r0,r6 L107_LF2: lw r1,96(r2) addi r10,r0,#-8 and r1,r1,r10 seq r1,r1,r31 bnez r1,L105_LF2 nop; not filled. addi r2,r2,#4 addi r5,r5,#1 slt r1,r5,r4 bnez r1,L107_LF2 nop; not filled. L105_LF2: lw r2,160(r6) seq r1,r5,r2 beqz r1,L110_LF2 nop; not filled. slei r1,r2,#15 bnez r1,L111_LF2 nop; not filled. L116_LF2: addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#0 j L115_LF2 nop; not filled. L111_LF2: addi r29,r29,#-8 sw (r29),r7 jal _MemorySetupPte nop; not filled. lw r2,160(r6) slli r2,r2,#0x2 add r2,r2,r6 sw 96(r2),r1 lw r1,160(r6) addi r1,r1,#1 sw 160(r6),r1 sw 316(r9),r1 addi r29,r29,#8 L110_LF2: addi r29,r29,#-8 sw (r29),r6 jal _findpid nop; not filled. add r2,r0,r1 srli r4,r2,#0x5 slli r1,r4,#0x5 sub r2,r2,r1 slli r3,r3,#0x3 slli r1,r4,#0x2 add r1,r3,r1 lhi r10,((_spages_LF2+4)>>16)&0xffff addui r10,r10,(_spages_LF2+4)&0xffff add r3,r1,r10 addi r1,r0,#1 sll r2,r1,r2 lw r1,(r3) or r1,r1,r2 sw (r3),r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop; not filled. addi r29,r29,#8 slli r1,r5,#0x10 L115_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _mmap .data .align 2 LC3_LF2: .ascii "FATAL: Attempted to free memory page 0\n\000" .text .align 2 .proc _MemoryFreeSharedPte .global _MemoryFreeSharedPte _MemoryFreeSharedPte: ; Function 'MemoryFreeSharedPte'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#48; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r8,(r30) lw r2,4(r30) addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop; not filled. add r9,r0,r1 addi r29,r29,#8 slli r1,r2,#0x2 add r1,r1,r8 lhu r7,96(r1) snei r1,r7,#0 bnez r1,L119_LF2 nop; not filled. addi r29,r29,#-8 lhi r10,((LC3_LF2)>>16)&0xffff addui r10,r10,(LC3_LF2)&0xffff sw (r29),r10 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L119_LF2: addi r4,r0,#0 lhi r5,((_spages_LF2)>>16)&0xffff addui r5,r5,(_spages_LF2)&0xffff add r2,r0,r5 L123_LF2: lw r1,(r2) seq r1,r1,r7 bnez r1,L121_LF2 nop; not filled. addi r2,r2,#8 addi r4,r4,#1 slei r1,r4,#31 bnez r1,L123_LF2 nop; not filled. L121_LF2: seqi r1,r4,#32 beqz r1,L126_LF2 nop; not filled. addi r29,r29,#-8 sw (r29),r9 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#-1 j L141_LF2 nop; not filled. L126_LF2: addi r29,r29,#-8 sw (r29),r8 jal _findpid nop; not filled. add r2,r0,r1 srli r3,r1,#0x5 slli r1,r3,#0x5 sub r2,r2,r1 slli r1,r4,#0x3 add r4,r1,r5 slli r1,r3,#0x2 add r1,r1,r4 addi r3,r1,#4 addi r1,r0,#1 sll r1,r1,r2 addi r10,r0,#-1 xor r2,r1,r10 lw r1,(r3) and r1,r1,r2 sw (r3),r1 addi r29,r29,#8 addi r6,r0,#0 addi r5,r0,#0 L132_LF2: addi r3,r0,#1 addi r2,r0,#0 lw r31,4(r4) L136_LF2: and r1,r31,r3 snei r1,r1,#0 add r6,r6,r1 slli r3,r3,#0x1 addi r2,r2,#1 slei r1,r2,#31 bnez r1,L136_LF2 nop; not filled. addi r4,r4,#4 addi r5,r5,#1 slei r1,r5,#0 bnez r1,L132_LF2 nop; not filled. lw r1,160(r8) addi r2,r1,#-1 sw 160(r8),r2 lw r1,8(r8) addui r1,r1,#65164 sw 316(r1),r2 snei r1,r6,#0 bnez r1,L139_LF2 nop; not filled. addi r29,r29,#-8 sw (r29),r7 jal _MemoryFreePage nop; not filled. addi r29,r29,#8 L139_LF2: addi r29,r29,#-8 sw (r29),r9 jal _SetIntrs nop; not filled. addi r29,r29,#8 add r1,r0,r6 L141_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreeSharedPte .data .align 2 _spages_LF2: .space 256 ; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF3 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF3 nop; not filled. L6_LF3: addi r31,r0,#1 L5_LF3: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF3 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF3 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF3 nop; not filled. L12_LF3: addi r2,r0,#1 L11_LF3: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF3 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF3: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0_LF3: .ascii "Entering SynchModuleInit\n\000" .align 2 LC1_LF3: .ascii "Leaving SynchModuleInit\n\000" .text .align 2 .proc _SynchModuleInit .global _SynchModuleInit _SynchModuleInit: ; Function 'SynchModuleInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r3,r0,#112 sw 4(r29),r3 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L53_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r3,r0,#43 sw 4(r29),r3 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L52_LF3 nop; not filled. L53_LF3: addi r29,r29,#-8 lhi r3,((LC0_LF3)>>16)&0xffff addui r3,r3,(LC0_LF3)&0xffff sw (r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L52_LF3: lhi r31,((_sems_LF3)>>16)&0xffff addui r31,r31,(_sems_LF3)&0xffff addi r2,r31,#1260 L57_LF3: addi r3,r0,#0 sw 16(r31),r3 addi r31,r31,#20 sle r1,r31,r2 bnez r1,L57_LF3 nop; not filled. lhi r31,((_locks_LF3)>>16)&0xffff addui r31,r31,(_locks_LF3)&0xffff addi r2,r31,#1764 L62_LF3: addi r3,r0,#0 sw 24(r31),r3 addi r3,r0,#-1 sw 20(r31),r3 addi r31,r31,#28 sle r1,r31,r2 bnez r1,L62_LF3 nop; not filled. addi r2,r0,#0 lhi r31,((_conds_LF3)>>16)&0xffff addui r31,r31,(_conds_LF3)&0xffff L67_LF3: addi r3,r0,#0 sw 28(r31),r3 sw 24(r31),r3 addi r31,r31,#32 addi r2,r2,#1 slei r1,r2,#31 bnez r1,L67_LF3 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r3,r0,#112 sw 4(r29),r3 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L70_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r3,r0,#43 sw 4(r29),r3 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L69_LF3 nop; not filled. L70_LF3: addi r29,r29,#-8 lhi r3,((LC1_LF3)>>16)&0xffff addui r3,r3,(LC1_LF3)&0xffff sw (r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L69_LF3: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SynchModuleInit .align 2 .proc _SemInit .global _SemInit _SemInit: ; Function 'SemInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop; not filled. sw 12(r2),r3 addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemInit .align 2 .proc _SemCreate .global _SemCreate _SemCreate: ; Function 'SemCreate'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r3,r0,#0 lhi r31,((_sems_LF3)>>16)&0xffff addui r31,r31,(_sems_LF3)&0xffff L89_LF3: add r2,r0,r31 lw r1,16(r31) snei r1,r1,#0 beqz r1,L96_LF3 nop; not filled. addi r31,r2,#20 addi r3,r3,#1 slei r1,r3,#63 bnez r1,L89_LF3 nop; not filled. L87_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 seqi r1,r3,#64 bnez r1,L93_LF3 nop; not filled. slli r1,r3,#0x2 add r1,r1,r3 slli r1,r1,#0x2 lhi r5,((_sems_LF3)>>16)&0xffff addui r5,r5,(_sems_LF3)&0xffff add r2,r1,r5 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop; not filled. lw r5,(r30) sw 12(r2),r5 addi r29,r29,#8 add r1,r0,r3 j L95_LF3 nop; not filled. L96_LF3: addi r5,r0,#1 sw 16(r31),r5 j L87_LF3 nop; not filled. L93_LF3: addi r1,r0,#-1 L95_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemCreate .data .align 2 LC2_LF3: .ascii "Old interrupt value was 0x%x.\n\000" .align 2 LC3_LF3: .ascii "Proc 0x%x waiting on sem 0x%x, count=%d.\n\000" .align 2 LC4_LF3: .ascii "Suspending current proc (0x%x).\n\000" .text .align 2 .proc _SemWait .global _SemWait _SemWait: ; Function 'SemWait'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r4,(r30) addi r29,r29,#-8 addi r7,r0,#15 sw (r29),r7 jal _SetIntrs nop; not filled. add r6,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#73 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L100_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L99_LF3 nop; not filled. L100_LF3: addi r29,r29,#-8 lhi r7,((LC2_LF3)>>16)&0xffff addui r7,r7,(LC2_LF3)&0xffff sw (r29),r7 sw 4(r29),r6 jal _printf nop; not filled. addi r29,r29,#8 L99_LF3: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#115 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L102_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L101_LF3 nop; not filled. L102_LF3: addi r29,r29,#-16 lhi r7,((LC3_LF3)>>16)&0xffff addui r7,r7,(LC3_LF3)&0xffff sw (r29),r7 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 sw 8(r29),r4 lw r7,12(r4) sw 12(r29),r7 jal _printf nop; not filled. addi r29,r29,#16 L101_LF3: lw r1,12(r4) addi r1,r1,#-1 sw 12(r4),r1 slti r1,r1,#0 beqz r1,L103_LF3 nop; not filled. jal _QueueAllocLink nop; not filled. add r2,r0,r1 lhi r5,((_currentPCB)>>16)&0xffff addui r5,r5,(_currentPCB)&0xffff lw r1,(r5) addi r7,r0,#0 sw (r2),r7 sw 12(r2),r1 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r7,r0,#115 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L106_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r3 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L105_LF3 nop; not filled. L106_LF3: addi r29,r29,#-8 lhi r7,((LC4_LF3)>>16)&0xffff addui r7,r7,(LC4_LF3)&0xffff sw (r29),r7 lw r1,(r5) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L105_LF3: lw r1,4(r4) sw 8(r2),r4 sw 4(r2),r1 lw r7,(r1) sw (r2),r7 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r4) addi r1,r1,#1 sw 8(r4),r1 jal _ProcessSleep nop; not filled. L103_LF3: addi r29,r29,#-8 sw (r29),r6 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemWait .align 2 .proc _SemHandleWait .global _SemHandleWait _SemHandleWait: ; Function 'SemHandleWait'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r31,(r30) sleui r1,r31,#63 beqz r1,L116_LF3 nop; not filled. slli r1,r31,#0x2 add r1,r1,r31 slli r1,r1,#0x2 lhi r2,((_sems_LF3)>>16)&0xffff addui r2,r2,(_sems_LF3)&0xffff add r31,r1,r2 lw r1,16(r31) snei r1,r1,#0 beqz r1,L117_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r31 jal _SemWait nop; not filled. addi r1,r0,#0 addi r29,r29,#8 j L115_LF3 nop; not filled. L117_LF3: addi r1,r0,#1 j L115_LF3 nop; not filled. L116_LF3: addi r1,r0,#1 L115_LF3: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemHandleWait .data .align 2 LC5_LF3: .ascii "Signalling on sem 0x%x, count=%d.\n\000" .align 2 LC6_LF3: .ascii "Waking up PCB 0x%x.\n\000" .text .align 2 .proc _SemSignal .global _SemSignal _SemSignal: ; Function 'SemSignal'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r5,r0,#115 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L123_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r3 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L122_LF3 nop; not filled. L123_LF3: addi r29,r29,#-16 lhi r5,((LC5_LF3)>>16)&0xffff addui r5,r5,(LC5_LF3)&0xffff sw (r29),r5 sw 4(r29),r2 lw r5,12(r2) sw 8(r29),r5 jal _printf nop; not filled. addi r29,r29,#16 L122_LF3: lw r1,12(r2) addi r1,r1,#1 sw 12(r2),r1 slei r1,r1,#0 beqz r1,L124_LF3 nop; not filled. lw r3,(r2) lw r1,8(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L127_LF3 nop; not filled. lw r1,4(r3) lw r5,(r3) sw (r1),r5 lw r1,(r3) lw r5,4(r3) sw 4(r1),r5 lw r2,8(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L127_LF3: addi r5,r0,#0 sw (r3),r5 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#115 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L129_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L128_LF3 nop; not filled. L129_LF3: addi r29,r29,#-8 lhi r5,((LC6_LF3)>>16)&0xffff addui r5,r5,(LC6_LF3)&0xffff sw (r29),r5 lw r1,12(r3) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L128_LF3: addi r29,r29,#-8 lw r5,12(r3) sw (r29),r5 jal _ProcessWakeup nop; not filled. sw (r29),r3 jal _QueueFreeLink nop; not filled. addi r29,r29,#8 L124_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemSignal .align 2 .proc _SemHandleSignal .global _SemHandleSignal _SemHandleSignal: ; Function 'SemHandleSignal'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r31,(r30) sleui r1,r31,#63 beqz r1,L136_LF3 nop; not filled. slli r1,r31,#0x2 add r1,r1,r31 slli r1,r1,#0x2 lhi r2,((_sems_LF3)>>16)&0xffff addui r2,r2,(_sems_LF3)&0xffff add r31,r1,r2 lw r1,16(r31) snei r1,r1,#0 beqz r1,L137_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r31 jal _SemSignal nop; not filled. addi r1,r0,#0 addi r29,r29,#8 j L135_LF3 nop; not filled. L137_LF3: addi r1,r0,#1 j L135_LF3 nop; not filled. L136_LF3: addi r1,r0,#1 L135_LF3: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemHandleSignal .align 2 .proc _LockInit .global _LockInit _LockInit: ; Function 'LockInit'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) addi r29,r29,#-8 addi r4,r0,#15 sw (r29),r4 jal _SetIntrs nop; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop; not filled. addi r4,r0,#1 sw 12(r2),r4 addi r29,r29,#8 addi r4,r0,#-1 sw 20(r2),r4 addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockInit .align 2 .proc _LockCreate .global _LockCreate _LockCreate: ; Function 'LockCreate'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r31,r0,r1 addi r29,r29,#8 addi r4,r0,#0 lhi r3,((_locks_LF3)>>16)&0xffff addui r3,r3,(_locks_LF3)&0xffff L153_LF3: add r2,r0,r3 lw r1,24(r3) snei r1,r1,#0 beqz r1,L163_LF3 nop; not filled. addi r3,r2,#28 addi r4,r4,#1 slei r1,r4,#63 bnez r1,L153_LF3 nop; not filled. L151_LF3: addi r29,r29,#-8 sw (r29),r31 jal _SetIntrs nop; not filled. addi r29,r29,#8 seqi r1,r4,#64 bnez r1,L157_LF3 nop; not filled. slli r1,r4,#0x3 sub r1,r1,r4 slli r1,r1,#0x2 lhi r5,((_locks_LF3)>>16)&0xffff addui r5,r5,(_locks_LF3)&0xffff add r2,r1,r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop; not filled. addi r5,r0,#1 sw 12(r2),r5 addi r29,r29,#8 addi r5,r0,#-1 sw 20(r2),r5 addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop; not filled. addi r29,r29,#8 add r1,r0,r4 j L162_LF3 nop; not filled. L163_LF3: addi r5,r0,#1 sw 24(r3),r5 j L151_LF3 nop; not filled. L157_LF3: addi r1,r0,#-1 L162_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockCreate .align 2 .proc _LockAcquire .global _LockAcquire _LockAcquire: ; Function 'LockAcquire'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r4,((_currentPCB)>>16)&0xffff addui r4,r4,(_currentPCB)&0xffff lw r6,(r4) sw (r29),r6 jal _findpid nop; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L170_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop; not filled. lw r4,(r4) sw (r29),r4 jal _findpid nop; not filled. sw 20(r3),r1 addi r29,r29,#8 L170_LF3: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockAcquire .align 2 .proc _LockHandleAcquire .global _LockHandleAcquire _LockHandleAcquire: ; Function 'LockHandleAcquire'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) sleui r1,r2,#63 beqz r1,L181_LF3 nop; not filled. slli r1,r2,#0x3 sub r1,r1,r2 slli r1,r1,#0x2 lhi r6,((_locks_LF3)>>16)&0xffff addui r6,r6,(_locks_LF3)&0xffff add r3,r1,r6 lw r1,24(r3) snei r1,r1,#0 beqz r1,L181_LF3 nop; not filled. addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r4,((_currentPCB)>>16)&0xffff addui r4,r4,(_currentPCB)&0xffff lw r6,(r4) sw (r29),r6 jal _findpid nop; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L185_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop; not filled. lw r4,(r4) sw (r29),r4 jal _findpid nop; not filled. sw 20(r3),r1 addi r29,r29,#8 L185_LF3: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#0 j L188_LF3 nop; not filled. L181_LF3: addi r1,r0,#1 L188_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockHandleAcquire .align 2 .proc _LockRelease .global _LockRelease _LockRelease: ; Function 'LockRelease'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r3,(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L195_LF3 nop; not filled. addi r5,r0,#-1 sw 20(r3),r5 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop; not filled. addi r29,r29,#8 L195_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockRelease .align 2 .proc _LockHandleRelease .global _LockHandleRelease _LockHandleRelease: ; Function 'LockHandleRelease'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) sleui r1,r2,#63 beqz r1,L206_LF3 nop; not filled. slli r1,r2,#0x3 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_locks_LF3)>>16)&0xffff addui r5,r5,(_locks_LF3)&0xffff add r3,r1,r5 lw r1,24(r3) snei r1,r1,#0 beqz r1,L206_LF3 nop; not filled. addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L210_LF3 nop; not filled. addi r5,r0,#-1 sw 20(r3),r5 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop; not filled. addi r29,r29,#8 L210_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#0 j L213_LF3 nop; not filled. L206_LF3: addi r1,r0,#1 L213_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockHandleRelease .align 2 .proc _CondInit .global _CondInit _CondInit: ; Function 'CondInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop; not filled. addi r5,r0,#0 sw 16(r2),r5 addi r29,r29,#8 sw (r2),r3 sw 24(r2),r5 addi r5,r0,#1 sw 28(r2),r5 addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondInit .align 2 .proc _CondCreate .global _CondCreate _CondCreate: ; Function 'CondCreate'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) sgtui r1,r3,#64 bnez r1,L233_LF3 nop; not filled. slli r1,r3,#0x3 sub r1,r1,r3 slli r1,r1,#0x2 lhi r6,((_locks_LF3)>>16)&0xffff addui r6,r6,(_locks_LF3)&0xffff add r1,r1,r6 lw r1,24(r1) snei r1,r1,#1 beqz r1,L224_LF3 nop; not filled. j L233_LF3 nop; not filled. L239_LF3: addi r6,r0,#1 sw 28(r2),r6 j L227_LF3 nop; not filled. L224_LF3: addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r5,r0,#0 lhi r2,((_conds_LF3)>>16)&0xffff addui r2,r2,(_conds_LF3)&0xffff L229_LF3: lw r1,28(r2) snei r1,r1,#0 beqz r1,L239_LF3 nop; not filled. addi r2,r2,#32 addi r5,r5,#1 slei r1,r5,#31 bnez r1,L229_LF3 nop; not filled. L227_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 seqi r1,r5,#32 bnez r1,L233_LF3 nop; not filled. slli r2,r5,#0x5 lhi r6,((_conds_LF3)>>16)&0xffff addui r6,r6,(_conds_LF3)&0xffff add r2,r2,r6 slli r1,r3,#0x3 sub r1,r1,r3 slli r1,r1,#0x2 lhi r6,((_locks_LF3)>>16)&0xffff addui r6,r6,(_locks_LF3)&0xffff add r3,r1,r6 addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop; not filled. addi r6,r0,#0 sw 16(r2),r6 addi r29,r29,#8 sw (r2),r3 sw 24(r2),r6 addi r6,r0,#1 sw 28(r2),r6 addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 add r1,r0,r5 j L238_LF3 nop; not filled. L233_LF3: addi r1,r0,#-1 L238_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondCreate .align 2 .proc _CondWait .global _CondWait _CondWait: ; Function 'CondWait'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r4,(r30) addi r29,r29,#-8 addi r8,r0,#15 sw (r29),r8 jal _SetIntrs nop; not filled. add r7,r0,r1 addi r29,r29,#8 lw r1,24(r4) addi r1,r1,#1 sw 24(r4),r1 lw r3,(r4) addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r6,((_currentPCB)>>16)&0xffff addui r6,r6,(_currentPCB)&0xffff lw r8,(r6) sw (r29),r8 jal _findpid nop; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L244_LF3 nop; not filled. addi r8,r0,#-1 sw 20(r3),r8 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop; not filled. addi r29,r29,#8 L244_LF3: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 addi r1,r4,#4 sw (r29),r1 jal _SemWait nop; not filled. lw r3,(r4) addi r29,r29,#8 addi r29,r29,#-8 addi r8,r0,#15 sw (r29),r8 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lw r8,(r6) sw (r29),r8 jal _findpid nop; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L248_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop; not filled. lw r6,(r6) sw (r29),r6 jal _findpid nop; not filled. sw 20(r3),r1 addi r29,r29,#8 L248_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondWait .align 2 .proc _CondHandleWait .global _CondHandleWait _CondHandleWait: ; Function 'CondHandleWait'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) sleui r1,r2,#31 beqz r1,L256_LF3 nop; not filled. slli r1,r2,#0x5 lhi r4,((_conds_LF3)>>16)&0xffff addui r4,r4,(_conds_LF3)&0xffff add r3,r1,r4 lw r1,28(r3) snei r1,r1,#0 beqz r1,L257_LF3 nop; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop; not filled. lw r2,20(r2) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L257_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r3 jal _CondWait nop; not filled. addi r1,r0,#0 addi r29,r29,#8 j L255_LF3 nop; not filled. L257_LF3: addi r1,r0,#1 j L255_LF3 nop; not filled. L256_LF3: addi r1,r0,#1 L255_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleWait .align 2 .proc _CondSignal .global _CondSignal _CondSignal: ; Function 'CondSignal'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) addi r29,r29,#-8 addi r4,r0,#15 sw (r29),r4 jal _SetIntrs nop; not filled. add r3,r0,r1 addi r29,r29,#8 lw r31,24(r2) snei r1,r31,#0 beqz r1,L266_LF3 nop; not filled. addi r1,r31,#-1 sw 24(r2),r1 addi r29,r29,#-8 addi r1,r2,#4 sw (r29),r1 jal _SemSignal nop; not filled. addi r29,r29,#8 L266_LF3: addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondSignal .align 2 .proc _CondHandleSignal .global _CondHandleSignal _CondHandleSignal: ; Function 'CondHandleSignal'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) sleui r1,r2,#31 beqz r1,L277_LF3 nop; not filled. slli r1,r2,#0x5 lhi r5,((_conds_LF3)>>16)&0xffff addui r5,r5,(_conds_LF3)&0xffff add r3,r1,r5 lw r1,28(r3) snei r1,r1,#0 beqz r1,L277_LF3 nop; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop; not filled. lw r2,20(r2) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L277_LF3 nop; not filled. addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 lw r2,24(r3) snei r1,r2,#0 beqz r1,L282_LF3 nop; not filled. addi r1,r2,#-1 sw 24(r3),r1 addi r29,r29,#-8 addi r1,r3,#4 sw (r29),r1 jal _SemSignal nop; not filled. addi r29,r29,#8 L282_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#0 j L284_LF3 nop; not filled. L277_LF3: addi r1,r0,#1 L284_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleSignal .align 2 .proc _CondBroadcast .global _CondBroadcast _CondBroadcast: ; Function 'CondBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop; not filled. add r5,r0,r1 addi r29,r29,#8 addi r2,r0,#0 lw r1,24(r4) sltu r1,r2,r1 beqz r1,L296_LF3 nop; not filled. addi r3,r4,#4 L298_LF3: addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop; not filled. addi r29,r29,#8 addi r2,r2,#1 lw r1,24(r4) sltu r1,r2,r1 bnez r1,L298_LF3 nop; not filled. L296_LF3: addi r6,r0,#0 sw 24(r4),r6 addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondBroadcast .align 2 .proc _CondHandleBroadcast .global _CondHandleBroadcast _CondHandleBroadcast: ; Function 'CondHandleBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) sleui r1,r2,#31 beqz r1,L302_LF3 nop; not filled. slli r1,r2,#0x5 lhi r6,((_conds_LF3)>>16)&0xffff addui r6,r6,(_conds_LF3)&0xffff add r3,r1,r6 lw r1,28(r3) snei r1,r1,#0 beqz r1,L302_LF3 nop; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop; not filled. lw r2,20(r2) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L302_LF3 nop; not filled. addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop; not filled. add r5,r0,r1 addi r29,r29,#8 addi r2,r0,#0 lw r1,24(r3) sltu r1,r2,r1 beqz r1,L308_LF3 nop; not filled. addi r4,r3,#4 L310_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SemSignal nop; not filled. addi r29,r29,#8 addi r2,r2,#1 lw r1,24(r3) sltu r1,r2,r1 bnez r1,L310_LF3 nop; not filled. L308_LF3: addi r6,r0,#0 sw 24(r3),r6 addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#0 j L313_LF3 nop; not filled. L302_LF3: addi r1,r0,#1 L313_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleBroadcast .data .align 2 _sems_LF3: .space 1280 .align 2 _locks_LF3: .space 1792 .align 2 _conds_LF3: .space 1024 ; Compiled by GCC .align 2 _rcsid_LF4: .ascii "$Id: filesys.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF4 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF4 nop; not filled. L6_LF4: addi r31,r0,#1 L5_LF4: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF4 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF4 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF4 nop; not filled. L12_LF4: addi r2,r0,#1 L11_LF4: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF4 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF4: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0_LF4: .ascii "Attepmting to open %s mode=%d.\n\000" .align 2 LC1_LF4: .ascii "dlx:\000" .align 2 LC2_LF4: .ascii "File %s opening in file system %d.\n\000" .align 2 LC3_LF4: .ascii "Opened %s in FS %d, mode=%d slot=%d.\n\000" .text .align 2 .proc _FsOpen .global _FsOpen _FsOpen: ; Function 'FsOpen'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r4,(r30) lw r5,4(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#102 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L56_LF4 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L55_LF4 nop; not filled. L56_LF4: addi r29,r29,#-16 lhi r8,((LC0_LF4)>>16)&0xffff addui r8,r8,(LC0_LF4)&0xffff sw (r29),r8 sw 4(r29),r4 sw 8(r29),r5 jal _printf nop; not filled. addi r29,r29,#16 L55_LF4: andi r5,r5,#3 snei r1,r5,#0 beqz r1,L74_LF4 nop; not filled. addi r3,r0,#0 lhi r6,((_openfiles_LF4)>>16)&0xffff addui r6,r6,(_openfiles_LF4)&0xffff add r2,r0,r6 L61_LF4: lw r1,4(r2) snei r1,r1,#0 beqz r1,L59_LF4 nop; not filled. addi r2,r2,#268 addi r3,r3,#1 slei r1,r3,#31 bnez r1,L61_LF4 nop; not filled. L59_LF4: sgti r1,r3,#31 beqz r1,L64_LF4 nop; not filled. L74_LF4: addi r1,r0,#-1 j L73_LF4 nop; not filled. L64_LF4: slli r1,r3,#0x4 add r1,r1,r3 slli r1,r1,#0x2 sub r1,r1,r3 slli r1,r1,#0x2 add r2,r1,r6 sw 4(r2),r5 addi r29,r29,#-16 sw (r29),r4 lhi r1,((LC1_LF4)>>16)&0xffff addui r1,r1,(LC1_LF4)&0xffff sw 4(r29),r1 addi r8,r0,#4 sw 8(r29),r8 jal _dstrncmp nop; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L65_LF4 nop; not filled. addi r4,r4,#4 addi r8,r0,#1 j L75_LF4 nop; not filled. L65_LF4: addi r8,r0,#0 L75_LF4: sw (r2),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#102 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L68_LF4 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L67_LF4 nop; not filled. L68_LF4: addi r29,r29,#-16 lhi r8,((LC2_LF4)>>16)&0xffff addui r8,r8,(LC2_LF4)&0xffff sw (r29),r8 sw 4(r29),r4 slli r1,r3,#0x4 add r1,r1,r3 slli r1,r1,#0x2 sub r1,r1,r3 slli r1,r1,#0x2 lhi r8,((_openfiles_LF4)>>16)&0xffff addui r8,r8,(_openfiles_LF4)&0xffff add r1,r1,r8 lw r1,(r1) sw 8(r29),r1 jal _printf nop; not filled. addi r29,r29,#16 L67_LF4: addi r29,r29,#-16 slli r1,r3,#0x4 add r1,r1,r3 slli r1,r1,#0x2 sub r1,r1,r3 slli r6,r1,#0x2 lhi r8,((_openfiles_LF4)>>16)&0xffff addui r8,r8,(_openfiles_LF4)&0xffff add r7,r6,r8 lw r2,(r7) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r8,((_fs_LF4)>>16)&0xffff addui r8,r8,(_fs_LF4)&0xffff add r1,r1,r8 sw (r29),r3 sw 4(r29),r4 sw 8(r29),r5 lw r1,(r1) jalr r1 nop; not filled. add r2,r0,r1 addi r29,r29,#16 slti r1,r2,#0 beqz r1,L69_LF4 nop; not filled. lhi r8,((_openfiles_LF4)>>16)&0xffff addui r8,r8,(_openfiles_LF4)&0xffff add r1,r6,r8 addi r8,r0,#0 sw 4(r1),r8 add r1,r0,r2 j L73_LF4 nop; not filled. L69_LF4: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#102 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L72_LF4 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L71_LF4 nop; not filled. L72_LF4: addi r29,r29,#-24 lhi r8,((LC3_LF4)>>16)&0xffff addui r8,r8,(LC3_LF4)&0xffff sw (r29),r8 sw 4(r29),r4 lw r7,(r7) sw 8(r29),r7 sw 12(r29),r5 sw 16(r29),r3 jal _printf nop; not filled. addi r29,r29,#24 L71_LF4: add r1,r0,r3 L73_LF4: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsOpen .align 2 .proc _FsClose .global _FsClose _FsClose: ; Function 'FsClose'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L84_LF4 nop; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r4,((_openfiles_LF4)>>16)&0xffff addui r4,r4,(_openfiles_LF4)&0xffff add r1,r1,r4 lw r1,4(r1) snei r1,r1,#0 beqz r1,L84_LF4 nop; not filled. addi r2,r0,#1 L84_LF4: snei r1,r2,#0 beqz r1,L82_LF4 nop; not filled. addi r29,r29,#-8 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r3,r1,#0x2 lhi r4,((_openfiles_LF4)>>16)&0xffff addui r4,r4,(_openfiles_LF4)&0xffff add r1,r3,r4 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r4,((_fs_LF4)>>16)&0xffff addui r4,r4,(_fs_LF4)&0xffff add r1,r1,r4 sw (r29),r31 lw r1,16(r1) jalr r1 nop; not filled. addi r29,r29,#8 lhi r4,((_openfiles_LF4)>>16)&0xffff addui r4,r4,(_openfiles_LF4)&0xffff add r2,r3,r4 addi r4,r0,#0 sw 4(r2),r4 j L86_LF4 nop; not filled. L82_LF4: addi r1,r0,#-1 L86_LF4: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsClose .align 2 .proc _FsRead .global _FsRead _FsRead: ; Function 'FsRead'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L94_LF4 nop; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r1,4(r1) snei r1,r1,#0 beqz r1,L94_LF4 nop; not filled. addi r2,r0,#1 L94_LF4: snei r1,r2,#0 beqz r1,L92_LF4 nop; not filled. addi r29,r29,#-16 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r3,((_fs_LF4)>>16)&0xffff addui r3,r3,(_fs_LF4)&0xffff add r1,r1,r3 sw (r29),r31 lw r3,4(r30) sw 4(r29),r3 lw r3,8(r30) sw 8(r29),r3 lw r1,4(r1) jalr r1 nop; not filled. addi r29,r29,#16 j L91_LF4 nop; not filled. L92_LF4: addi r1,r0,#-1 L91_LF4: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsRead .align 2 .proc _FsWrite .global _FsWrite _FsWrite: ; Function 'FsWrite'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L103_LF4 nop; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r1,4(r1) snei r1,r1,#0 beqz r1,L103_LF4 nop; not filled. addi r2,r0,#1 L103_LF4: snei r1,r2,#0 beqz r1,L101_LF4 nop; not filled. addi r29,r29,#-16 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r3,((_fs_LF4)>>16)&0xffff addui r3,r3,(_fs_LF4)&0xffff add r1,r1,r3 sw (r29),r31 lw r3,4(r30) sw 4(r29),r3 lw r3,8(r30) sw 8(r29),r3 lw r1,8(r1) jalr r1 nop; not filled. addi r29,r29,#16 j L100_LF4 nop; not filled. L101_LF4: addi r1,r0,#-1 L100_LF4: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsWrite .align 2 .proc _FsSeek .global _FsSeek _FsSeek: ; Function 'FsSeek'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L112_LF4 nop; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r1,4(r1) snei r1,r1,#0 beqz r1,L112_LF4 nop; not filled. addi r2,r0,#1 L112_LF4: snei r1,r2,#0 beqz r1,L110_LF4 nop; not filled. addi r29,r29,#-16 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r3,((_fs_LF4)>>16)&0xffff addui r3,r3,(_fs_LF4)&0xffff add r1,r1,r3 sw (r29),r31 lw r3,4(r30) sw 4(r29),r3 lw r3,8(r30) sw 8(r29),r3 lw r1,12(r1) jalr r1 nop; not filled. addi r29,r29,#16 j L109_LF4 nop; not filled. L110_LF4: addi r1,r0,#-1 L109_LF4: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsSeek .align 2 .proc _FsDelete .global _FsDelete _FsDelete: ; Function 'FsDelete'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) addi r29,r29,#-16 sw (r29),r2 lhi r1,((LC1_LF4)>>16)&0xffff addui r1,r1,(LC1_LF4)&0xffff sw 4(r29),r1 addi r3,r0,#4 sw 8(r29),r3 jal _dstrncmp nop; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L118_LF4 nop; not filled. addi r2,r2,#4 addi r29,r29,#-8 lhi r1,((_fs_LF4+44)>>16)&0xffff addui r1,r1,(_fs_LF4+44)&0xffff j L120_LF4 nop; not filled. L118_LF4: addi r29,r29,#-8 lhi r1,((_fs_LF4+20)>>16)&0xffff addui r1,r1,(_fs_LF4+20)&0xffff L120_LF4: sw (r29),r2 lw r1,(r1) jalr r1 nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDelete .data .align 2 LC4_LF4: .ascii "Attempting to open file %s into desc %d, mode %d.\n\000" .text .align 2 .proc _FsUnixOpen .global _FsUnixOpen _FsUnixOpen: ; Function 'FsUnixOpen'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) lw r3,4(r30) lw r5,8(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r6,r0,#102 sw 4(r29),r6 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L127_LF4 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r6,r0,#43 sw 4(r29),r6 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L126_LF4 nop; not filled. L127_LF4: addi r29,r29,#-16 lhi r6,((LC4_LF4)>>16)&0xffff addui r6,r6,(LC4_LF4)&0xffff sw (r29),r6 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 jal _printf nop; not filled. addi r29,r29,#16 L126_LF4: addi r29,r29,#-8 sw (r29),r3 sw 4(r29),r5 jal _open nop; not filled. add r3,r0,r1 slli r1,r4,#0x4 add r1,r1,r4 slli r1,r1,#0x2 sub r1,r1,r4 slli r1,r1,#0x2 lhi r6,((_openfiles_LF4)>>16)&0xffff addui r6,r6,(_openfiles_LF4)&0xffff add r1,r1,r6 sw 264(r1),r3 addi r29,r29,#8 slti r2,r3,#0 add r1,r0,r3 bnez r2,L128_LF4 nop; not filled. addi r1,r0,#1 L128_LF4: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixOpen .align 2 .proc _FsUnixRead .global _FsUnixRead _FsUnixRead: ; Function 'FsUnixRead'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) lw r4,8(r30) addi r29,r29,#-16 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_openfiles_LF4)>>16)&0xffff addui r5,r5,(_openfiles_LF4)&0xffff add r1,r1,r5 lw r1,264(r1) sw (r29),r1 sw 4(r29),r3 sw 8(r29),r4 jal _read nop; not filled. addi r29,r29,#16 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixRead .align 2 .proc _FsUnixWrite .global _FsUnixWrite _FsUnixWrite: ; Function 'FsUnixWrite'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) lw r4,8(r30) addi r29,r29,#-16 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_openfiles_LF4)>>16)&0xffff addui r5,r5,(_openfiles_LF4)&0xffff add r1,r1,r5 lw r1,264(r1) sw (r29),r1 sw 4(r29),r3 sw 8(r29),r4 jal _write nop; not filled. addi r29,r29,#16 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixWrite .align 2 .proc _FsUnixSeek .global _FsUnixSeek _FsUnixSeek: ; Function 'FsUnixSeek'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) lw r4,8(r30) addi r29,r29,#-16 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_openfiles_LF4)>>16)&0xffff addui r5,r5,(_openfiles_LF4)&0xffff add r1,r1,r5 lw r1,264(r1) sw (r29),r1 sw 4(r29),r3 sw 8(r29),r4 jal _lseek nop; not filled. addi r29,r29,#16 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixSeek .align 2 .proc _FsUnixClose .global _FsUnixClose _FsUnixClose: ; Function 'FsUnixClose'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) addi r29,r29,#-8 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r1,264(r1) sw (r29),r1 jal _close nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixClose .align 2 .proc _FsUnixDelete .global _FsUnixDelete _FsUnixDelete: ; Function 'FsUnixDelete'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r1,r0,#-1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixDelete .align 2 .proc _FsDlxIo .global _FsDlxIo _FsDlxIo: ; Function 'FsDlxIo'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxIo .align 2 .proc _FsDlxRead .global _FsDlxRead _FsDlxRead: ; Function 'FsDlxRead'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxRead .align 2 .proc _FsDlxWrite .global _FsDlxWrite _FsDlxWrite: ; Function 'FsDlxWrite'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxWrite .align 2 .proc _FsDlxOpen .global _FsDlxOpen _FsDlxOpen: ; Function 'FsDlxOpen'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) slli r2,r1,#0x4 add r2,r2,r1 slli r2,r2,#0x2 sub r1,r2,r1 slli r1,r1,#0x2 lhi r31,((_openfiles_LF4)>>16)&0xffff addui r31,r31,(_openfiles_LF4)&0xffff add r1,r1,r31 addi r31,r0,#0 sw 264(r1),r31 addi r1,r0,#1 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxOpen .align 2 .proc _FsDlxSeek .global _FsDlxSeek _FsDlxSeek: ; Function 'FsDlxSeek'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) slli r2,r1,#0x4 add r2,r2,r1 slli r2,r2,#0x2 sub r1,r2,r1 slli r1,r1,#0x2 lhi r31,((_openfiles_LF4)>>16)&0xffff addui r31,r31,(_openfiles_LF4)&0xffff add r1,r1,r31 lw r1,264(r1) lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxSeek .align 2 .proc _FsDlxClose .global _FsDlxClose _FsDlxClose: ; Function 'FsDlxClose'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxClose .align 2 .proc _FsDlxDelete .global _FsDlxDelete _FsDlxDelete: ; Function 'FsDlxDelete'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxDelete .align 2 .proc _FsModuleInit .global _FsModuleInit _FsModuleInit: ; Function 'FsModuleInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lhi r31,((_openfiles_LF4)>>16)&0xffff addui r31,r31,(_openfiles_LF4)&0xffff addi r2,r31,#8308 L182_LF4: addi r3,r0,#0 sw 4(r31),r3 addi r31,r31,#268 sle r1,r31,r2 bnez r1,L182_LF4 nop; not filled. lhi r1,((_fs_LF4)>>16)&0xffff addui r1,r1,(_fs_LF4)&0xffff lhi r3,((_FsUnixOpen)>>16)&0xffff addui r3,r3,(_FsUnixOpen)&0xffff sw (r1),r3 lhi r3,((_FsUnixClose)>>16)&0xffff addui r3,r3,(_FsUnixClose)&0xffff sw 16(r1),r3 lhi r3,((_FsUnixRead)>>16)&0xffff addui r3,r3,(_FsUnixRead)&0xffff sw 4(r1),r3 lhi r3,((_FsUnixWrite)>>16)&0xffff addui r3,r3,(_FsUnixWrite)&0xffff sw 8(r1),r3 lhi r3,((_FsUnixSeek)>>16)&0xffff addui r3,r3,(_FsUnixSeek)&0xffff sw 12(r1),r3 lhi r3,((_FsUnixDelete)>>16)&0xffff addui r3,r3,(_FsUnixDelete)&0xffff sw 20(r1),r3 lhi r3,((_FsDlxOpen)>>16)&0xffff addui r3,r3,(_FsDlxOpen)&0xffff sw 24(r1),r3 lhi r3,((_FsDlxClose)>>16)&0xffff addui r3,r3,(_FsDlxClose)&0xffff sw 40(r1),r3 lhi r3,((_FsDlxRead)>>16)&0xffff addui r3,r3,(_FsDlxRead)&0xffff sw 28(r1),r3 lhi r3,((_FsDlxWrite)>>16)&0xffff addui r3,r3,(_FsDlxWrite)&0xffff sw 32(r1),r3 lhi r3,((_FsDlxSeek)>>16)&0xffff addui r3,r3,(_FsDlxSeek)&0xffff sw 36(r1),r3 lhi r3,((_FsDlxDelete)>>16)&0xffff addui r3,r3,(_FsDlxDelete)&0xffff sw 44(r1),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsModuleInit .data .align 2 _fs_LF4: .space 48 .align 2 _openfiles_LF4: .space 8576 ; Compiled by GCC .align 2 _rcsid_LF5: .ascii "$Id: memory.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF5 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF5 nop; not filled. L6_LF5: addi r31,r0,#1 L5_LF5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF5 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF5 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF5 nop; not filled. L12_LF5: addi r2,r0,#1 L11_LF5: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF5 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF5: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 _negativeone_LF5: .word -1 .text .align 2 .proc _MemoryGetSize .global _MemoryGetSize _MemoryGetSize: ; Function 'MemoryGetSize'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lhi r1,#-1 addui r1,r1,#0 lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryGetSize .data .align 2 LC0_LF5: .ascii "Set freemap entry %d to 0x%x.\n\000" .text .align 2 .proc _MemorySetFreemap .global _MemorySetFreemap _MemorySetFreemap: ; Function 'MemorySetFreemap'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) lw r31,4(r30) add r2,r0,r3 sgei r1,r3,#0 bnez r1,L61_LF5 nop; not filled. addi r2,r3,#31 L61_LF5: srai r5,r2,#0x5 slli r1,r5,#0x5 sub r3,r3,r1 addi r1,r0,#1 sll r2,r1,r3 lhi r1,((_negativeone_LF5)>>16)&0xffff addui r1,r1,(_negativeone_LF5)&0xffff lw r1,(r1) xor r2,r2,r1 slli r1,r5,#0x2 lhi r6,((_freepages_LF5)>>16)&0xffff addui r6,r6,(_freepages_LF5)&0xffff add r4,r1,r6 lw r1,(r4) and r2,r1,r2 sll r1,r31,r3 or r1,r2,r1 sw (r4),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r6,r0,#109 sw 4(r29),r6 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r6,r0,#43 sw 4(r29),r6 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64_LF5 nop; not filled. L65_LF5: addi r29,r29,#-16 lhi r6,((LC0_LF5)>>16)&0xffff addui r6,r6,(LC0_LF5)&0xffff sw (r29),r6 sw 4(r29),r5 lw r4,(r4) sw 8(r29),r4 jal _printf nop; not filled. addi r29,r29,#16 L64_LF5: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemorySetFreemap .data .align 2 LC1_LF5: .ascii "Map has %d entries, memory size is 0x%x.\n\000" .align 2 LC2_LF5: .ascii "Free pages start with page # 0x%x.\n\000" .align 2 LC3_LF5: .ascii "Initialized %d free pages.\n\000" .text .align 2 .proc _MemoryModuleInit .global _MemoryModuleInit _MemoryModuleInit: ; Function 'MemoryModuleInit'; 0 bytes of locals, 10 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#48; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 lhi r1,#-1 addui r1,r1,#0 lw r2,(r1) sgei r1,r2,#0 bnez r1,L68_LF5 nop; not filled. addui r2,r2,#65535 L68_LF5: srai r8,r2,#0x10 lhi r3,((_pagestart_LF5)>>16)&0xffff addui r3,r3,(_pagestart_LF5)&0xffff lhi r1,((_lastosaddress)>>16)&0xffff addui r1,r1,(_lastosaddress)&0xffff lw r1,(r1) addui r2,r1,#65532 sgei r1,r2,#0 bnez r1,L69_LF5 nop; not filled. addui r2,r2,#65535 L69_LF5: srai r1,r2,#0x10 sw (r3),r1 lhi r3,((_freemapmax_LF5)>>16)&0xffff addui r3,r3,(_freemapmax_LF5)&0xffff addi r2,r8,#31 sgei r1,r2,#0 bnez r1,L70_LF5 nop; not filled. addi r2,r8,#62 L70_LF5: srai r1,r2,#0x5 sw (r3),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L72_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L71_LF5 nop; not filled. L72_LF5: addi r29,r29,#-16 lhi r11,((LC1_LF5)>>16)&0xffff addui r11,r11,(LC1_LF5)&0xffff sw (r29),r11 lw r1,(r3) sw 4(r29),r1 sw 8(r29),r8 jal _printf nop; not filled. addi r29,r29,#16 L71_LF5: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L74_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L73_LF5 nop; not filled. L74_LF5: addi r29,r29,#-8 lhi r11,((LC2_LF5)>>16)&0xffff addui r11,r11,(LC2_LF5)&0xffff sw (r29),r11 lhi r1,((_pagestart_LF5)>>16)&0xffff addui r1,r1,(_pagestart_LF5)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L73_LF5: addi r2,r0,#0 lhi r4,((_freemapmax_LF5)>>16)&0xffff addui r4,r4,(_freemapmax_LF5)&0xffff lw r1,(r4) slt r1,r2,r1 beqz r1,L76_LF5 nop; not filled. lhi r3,((_freepages_LF5)>>16)&0xffff addui r3,r3,(_freepages_LF5)&0xffff L78_LF5: addi r11,r0,#0 sw (r3),r11 addi r3,r3,#4 addi r2,r2,#1 lw r1,(r4) slt r1,r2,r1 bnez r1,L78_LF5 nop; not filled. L76_LF5: lhi r2,((_nfreepages_LF5)>>16)&0xffff addui r2,r2,(_nfreepages_LF5)&0xffff addi r11,r0,#0 sw (r2),r11 lhi r1,((_pagestart_LF5)>>16)&0xffff addui r1,r1,(_pagestart_LF5)&0xffff lw r4,(r1) slt r1,r4,r8 beqz r1,L81_LF5 nop; not filled. add r7,r0,r2 addi r10,r0,#1 lhi r9,((_negativeone_LF5)>>16)&0xffff addui r9,r9,(_negativeone_LF5)&0xffff L83_LF5: lw r1,(r7) addi r1,r1,#1 sw (r7),r1 add r2,r0,r4 sgei r1,r4,#0 bnez r1,L85_LF5 nop; not filled. addi r2,r4,#31 L85_LF5: srai r6,r2,#0x5 slli r1,r6,#0x5 sub r1,r4,r1 sll r3,r10,r1 lw r1,(r9) xor r2,r3,r1 slli r1,r6,#0x2 lhi r11,((_freepages_LF5)>>16)&0xffff addui r11,r11,(_freepages_LF5)&0xffff add r5,r1,r11 lw r1,(r5) and r1,r1,r2 or r1,r1,r3 sw (r5),r1 addi r29,r29,#-8 lhi r11,((_debugstr)>>16)&0xffff addui r11,r11,(_debugstr)&0xffff sw (r29),r11 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L89_LF5 nop; not filled. addi r29,r29,#-8 lhi r11,((_debugstr)>>16)&0xffff addui r11,r11,(_debugstr)&0xffff sw (r29),r11 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L82_LF5 nop; not filled. L89_LF5: addi r29,r29,#-16 lhi r11,((LC0_LF5)>>16)&0xffff addui r11,r11,(LC0_LF5)&0xffff sw (r29),r11 sw 4(r29),r6 lw r5,(r5) sw 8(r29),r5 jal _printf nop; not filled. addi r29,r29,#16 L82_LF5: addi r4,r4,#1 slt r1,r4,r8 bnez r1,L83_LF5 nop; not filled. L81_LF5: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L92_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L91_LF5 nop; not filled. L92_LF5: addi r29,r29,#-8 lhi r11,((LC3_LF5)>>16)&0xffff addui r11,r11,(LC3_LF5)&0xffff sw (r29),r11 lhi r1,((_nfreepages_LF5)>>16)&0xffff addui r1,r1,(_nfreepages_LF5)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L91_LF5: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryModuleInit .data .align 2 _mapnum42_LF5: .word 0 .align 2 LC4_LF5: .ascii "ERROR AT THIS POINT\n\000" .align 2 LC5_LF5: .ascii "Allocating memory, starting with page %d\n\000" .align 2 LC6_LF5: .ascii "Allocated memory, from map %d, page %d, map=0x%x.\n\000" .text .align 2 .proc _MemoryAllocPage .global _MemoryAllocPage _MemoryAllocPage: ; Function 'MemoryAllocPage'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lhi r1,((_nfreepages_LF5)>>16)&0xffff addui r1,r1,(_nfreepages_LF5)&0xffff lw r1,(r1) snei r1,r1,#0 bnez r1,L111_LF5 nop; not filled. addi r29,r29,#-8 lhi r7,((LC4_LF5)>>16)&0xffff addui r7,r7,(LC4_LF5)&0xffff sw (r29),r7 jal _printf nop; not filled. addi r1,r0,#0 addi r29,r29,#8 j L110_LF5 nop; not filled. L111_LF5: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L113_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L112_LF5 nop; not filled. L113_LF5: addi r29,r29,#-8 lhi r7,((LC5_LF5)>>16)&0xffff addui r7,r7,(LC5_LF5)&0xffff sw (r29),r7 lhi r1,((_mapnum42_LF5)>>16)&0xffff addui r1,r1,(_mapnum42_LF5)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L112_LF5: lhi r2,((_mapnum42_LF5)>>16)&0xffff addui r2,r2,(_mapnum42_LF5)&0xffff lw r1,(r2) lhi r4,((_freepages_LF5)>>16)&0xffff addui r4,r4,(_freepages_LF5)&0xffff slli r1,r1,#0x2 add r1,r1,r4 lw r1,(r1) snei r1,r1,#0 bnez r1,L115_LF5 nop; not filled. lhi r1,((_freemapmax_LF5)>>16)&0xffff addui r1,r1,(_freemapmax_LF5)&0xffff lw r3,(r1) L116_LF5: lw r1,(r2) addi r1,r1,#1 sw (r2),r1 sge r1,r1,r3 beqz r1,L114_LF5 nop; not filled. addi r7,r0,#0 sw (r2),r7 L114_LF5: lw r1,(r2) slli r1,r1,#0x2 add r1,r1,r4 lw r1,(r1) snei r1,r1,#0 beqz r1,L116_LF5 nop; not filled. L115_LF5: lhi r1,((_mapnum42_LF5)>>16)&0xffff addui r1,r1,(_mapnum42_LF5)&0xffff lw r1,(r1) slli r1,r1,#0x2 lhi r7,((_freepages_LF5)>>16)&0xffff addui r7,r7,(_freepages_LF5)&0xffff add r1,r1,r7 lw r3,(r1) addi r31,r0,#0 andi r1,r3,#1 bnez r1,L120_LF5 nop; not filled. addi r2,r0,#1 L121_LF5: addi r31,r31,#1 sll r1,r2,r31 and r1,r3,r1 snei r1,r1,#0 beqz r1,L121_LF5 nop; not filled. L120_LF5: addi r1,r0,#1 sll r2,r1,r31 lhi r1,((_negativeone_LF5)>>16)&0xffff addui r1,r1,(_negativeone_LF5)&0xffff lw r1,(r1) xor r4,r2,r1 lhi r5,((_mapnum42_LF5)>>16)&0xffff addui r5,r5,(_mapnum42_LF5)&0xffff lw r3,(r5) lhi r6,((_freepages_LF5)>>16)&0xffff addui r6,r6,(_freepages_LF5)&0xffff slli r1,r3,#0x2 add r2,r1,r6 lw r1,(r2) and r1,r1,r4 sw (r2),r1 slli r1,r3,#0x5 add r3,r1,r31 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L126_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L125_LF5 nop; not filled. L126_LF5: addi r29,r29,#-16 lhi r7,((LC6_LF5)>>16)&0xffff addui r7,r7,(LC6_LF5)&0xffff sw (r29),r7 lw r1,(r5) sw 4(r29),r1 sw 8(r29),r3 slli r1,r1,#0x2 add r1,r1,r6 lw r1,(r1) sw 12(r29),r1 jal _printf nop; not filled. addi r29,r29,#16 L125_LF5: lhi r1,((_nfreepages_LF5)>>16)&0xffff addui r1,r1,(_nfreepages_LF5)&0xffff lw r2,(r1) addi r2,r2,#-1 sw (r1),r2 add r1,r0,r3 L110_LF5: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryAllocPage .data .align 2 LC7_LF5: .ascii "Freed page 0x%x, %d remaining.\n\000" .text .align 2 .proc _MemoryFreePage .global _MemoryFreePage _MemoryFreePage: ; Function 'MemoryFreePage'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r6,(r30) addi r3,r0,#1 add r2,r0,r6 sgei r1,r6,#0 bnez r1,L129_LF5 nop; not filled. addi r2,r6,#31 L129_LF5: srai r5,r2,#0x5 slli r1,r5,#0x5 sub r1,r6,r1 sll r3,r3,r1 lhi r1,((_negativeone_LF5)>>16)&0xffff addui r1,r1,(_negativeone_LF5)&0xffff lw r1,(r1) xor r2,r3,r1 slli r1,r5,#0x2 lhi r7,((_freepages_LF5)>>16)&0xffff addui r7,r7,(_freepages_LF5)&0xffff add r4,r1,r7 lw r1,(r4) and r1,r1,r2 or r1,r1,r3 sw (r4),r1 addi r29,r29,#-8 lhi r7,((_debugstr)>>16)&0xffff addui r7,r7,(_debugstr)&0xffff sw (r29),r7 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L133_LF5 nop; not filled. addi r29,r29,#-8 lhi r7,((_debugstr)>>16)&0xffff addui r7,r7,(_debugstr)&0xffff sw (r29),r7 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L128_LF5 nop; not filled. L133_LF5: addi r29,r29,#-16 lhi r7,((LC0_LF5)>>16)&0xffff addui r7,r7,(LC0_LF5)&0xffff sw (r29),r7 sw 4(r29),r5 lw r4,(r4) sw 8(r29),r4 jal _printf nop; not filled. addi r29,r29,#16 L128_LF5: lhi r2,((_nfreepages_LF5)>>16)&0xffff addui r2,r2,(_nfreepages_LF5)&0xffff lw r1,(r2) addi r1,r1,#1 sw (r2),r1 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L135_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r3 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L134_LF5 nop; not filled. L135_LF5: addi r29,r29,#-16 lhi r7,((LC7_LF5)>>16)&0xffff addui r7,r7,(LC7_LF5)&0xffff sw (r29),r7 sw 4(r29),r6 lw r2,(r2) sw 8(r29),r2 jal _printf nop; not filled. addi r29,r29,#16 L134_LF5: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreePage .align 2 .proc _MemoryTranslateUserToSystem .global _MemoryTranslateUserToSystem _MemoryTranslateUserToSystem: ; Function 'MemoryTranslateUserToSystem'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) lw r1,4(r30) srli r31,r1,#0x10 andi r2,r1,#0xffff lw r1,160(r3) sgt r1,r31,r1 bnez r1,L139_LF5 nop; not filled. slli r1,r31,#0x2 add r1,r1,r3 lw r1,96(r1) addi r4,r0,#-8 and r1,r1,r4 add r1,r1,r2 j L140_LF5 nop; not filled. L139_LF5: addi r1,r0,#0 L140_LF5: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryTranslateUserToSystem .align 2 .proc _MemoryCopySystemToUser .global _MemoryCopySystemToUser _MemoryCopySystemToUser: ; Function 'MemoryCopySystemToUser'; 0 bytes of locals, 8 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 lw r7,(r30) lw r5,4(r30) lw r4,8(r30) lw r3,12(r30) addi r6,r0,#0 sgti r1,r3,#0 beqz r1,L167_LF5 nop; not filled. lhi r8,#1 addui r8,r8,#0 L168_LF5: srli r2,r4,#0x10 andi r31,r4,#0xffff lw r1,160(r7) sgt r1,r2,r1 beqz r1,L170_LF5 nop; not filled. addi r31,r0,#0 j L169_LF5 nop; not filled. L170_LF5: slli r1,r2,#0x2 add r1,r1,r7 lw r1,96(r1) addi r9,r0,#-8 and r1,r1,r9 add r31,r1,r31 L169_LF5: snei r1,r31,#0 beqz r1,L167_LF5 nop; not filled. andi r1,r31,#65535 sub r2,r8,r1 sgt r1,r2,r3 beqz r1,L172_LF5 nop; not filled. add r2,r0,r3 L172_LF5: addi r29,r29,#-16 sw (r29),r5 sw 4(r29),r31 sw 8(r29),r2 jal _bcopy nop; not filled. addi r29,r29,#16 sub r3,r3,r2 add r6,r6,r2 add r5,r5,r2 add r4,r4,r2 sgti r1,r3,#0 bnez r1,L168_LF5 nop; not filled. L167_LF5: add r1,r0,r6 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCopySystemToUser .align 2 .proc _MemoryCopyUserToSystem .global _MemoryCopyUserToSystem _MemoryCopyUserToSystem: ; Function 'MemoryCopyUserToSystem'; 0 bytes of locals, 8 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 lw r7,(r30) lw r5,8(r30) lw r4,4(r30) lw r3,12(r30) addi r6,r0,#0 sgti r1,r3,#0 beqz r1,L191_LF5 nop; not filled. lhi r8,#1 addui r8,r8,#0 L192_LF5: srli r2,r4,#0x10 andi r31,r4,#0xffff lw r1,160(r7) sgt r1,r2,r1 beqz r1,L194_LF5 nop; not filled. addi r31,r0,#0 j L193_LF5 nop; not filled. L194_LF5: slli r1,r2,#0x2 add r1,r1,r7 lw r1,96(r1) addi r9,r0,#-8 and r1,r1,r9 add r31,r1,r31 L193_LF5: snei r1,r31,#0 beqz r1,L191_LF5 nop; not filled. andi r1,r31,#65535 sub r2,r8,r1 sgt r1,r2,r3 beqz r1,L197_LF5 nop; not filled. add r2,r0,r3 L197_LF5: addi r29,r29,#-16 sw (r29),r31 sw 4(r29),r5 sw 8(r29),r2 jal _bcopy nop; not filled. addi r29,r29,#16 sub r3,r3,r2 add r6,r6,r2 add r5,r5,r2 add r4,r4,r2 sgti r1,r3,#0 bnez r1,L192_LF5 nop; not filled. L191_LF5: add r1,r0,r6 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCopyUserToSystem .align 2 .proc _MemorySetupPte .global _MemorySetupPte _MemorySetupPte: ; Function 'MemorySetupPte'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) slli r1,r1,#0x10 ori r1,r1,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemorySetupPte .align 2 .proc _MemoryFreePte .global _MemoryFreePte _MemoryFreePte: ; Function 'MemoryFreePte'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r29,r29,#-8 lhu r1,(r30) sw (r29),r1 jal _MemoryFreePage nop; not filled. addi r29,r29,#8 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreePte .align 2 .proc _MemoryPteToPage .global _MemoryPteToPage _MemoryPteToPage: ; Function 'MemoryPteToPage'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) addi r31,r0,#-8 and r1,r1,r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryPteToPage .data .align 2 _invalidOps61_LF5: .word 13316 .align 2 LC8_LF5: .ascii "Operand for instruction %08x is 0x%x (reg=<%d,0x%x>)\n\000" .text .align 2 .proc _MemoryGetOperandAddress .global _MemoryGetOperandAddress _MemoryGetOperandAddress: ; Function 'MemoryGetOperandAddress'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r2,(r30) lw r5,4(r30) srli r1,r5,#0x1a addi r31,r1,#-32 sgtui r1,r31,#15 bnez r1,L214_LF5 nop; not filled. lhi r1,((_invalidOps61_LF5)>>16)&0xffff addui r1,r1,(_invalidOps61_LF5)&0xffff lw r1,(r1) srl r1,r1,r31 andi r1,r1,#1 beqz r1,L213_LF5 nop; not filled. L214_LF5: addi r1,r0,#-1 j L218_LF5 nop; not filled. L213_LF5: srli r1,r5,#0x15 andi r6,r1,#31 andi r31,r5,#0xffff srli r1,r31,#0xf beqz r1,L215_LF5 nop; not filled. lhi r7,#-1 addui r7,r7,#0 or r31,r31,r7 L215_LF5: lw r2,(r2) slli r1,r6,#0x2 add r1,r1,r2 lw r3,40(r1) add r4,r3,r31 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L217_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L216_LF5 nop; not filled. L217_LF5: addi r29,r29,#-24 lhi r7,((LC8_LF5)>>16)&0xffff addui r7,r7,(LC8_LF5)&0xffff sw (r29),r7 sw 4(r29),r5 sw 8(r29),r4 sw 12(r29),r6 sw 16(r29),r3 jal _printf nop; not filled. addi r29,r29,#24 L216_LF5: add r1,r0,r4 L218_LF5: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryGetOperandAddress .data .align 2 _pagestart_LF5: .space 4 .align 2 _freemapmax_LF5: .space 4 .align 2 _nfreepages_LF5: .space 4 .align 2 _freepages_LF5: .space 8192 ; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF6 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF6 nop; not filled. L6_LF6: addi r31,r0,#1 L5_LF6: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF6 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF6 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF6 nop; not filled. L12_LF6: addi r2,r0,#1 L11_LF6: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _dstrcpy .global _dstrcpy _dstrcpy: ; Function 'dstrcpy'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r2,4(r30) add r3,r0,r31 L19_LF6: lb r1,(r2) sb (r31),r1 addi r2,r2,#1 addi r31,r31,#1 andi r1,r1,#0x00ff snei r1,r1,#0 bnez r1,L19_LF6 nop; not filled. add r1,r0,r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrcpy .align 2 .proc _dstrncpy .global _dstrncpy _dstrncpy: ; Function 'dstrncpy'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) lw r3,4(r30) lw r31,8(r30) add r4,r0,r2 j L37_LF6 nop; not filled. L34_LF6: lb r1,(r3) sb (r2),r1 addi r3,r3,#1 addi r2,r2,#1 andi r1,r1,#0x00ff snei r1,r1,#0 beqz r1,L32_LF6 nop; not filled. L37_LF6: add r1,r0,r31 addi r31,r31,#-1 slei r1,r1,#0 beqz r1,L34_LF6 nop; not filled. L32_LF6: add r1,r0,r4 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrncpy .align 2 .proc _dstrcat .global _dstrcat _dstrcat: ; Function 'dstrcat'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) add r3,r0,r31 lbu r1,(r3) snei r1,r1,#0 beqz r1,L50_LF6 nop; not filled. L51_LF6: addi r31,r31,#1 lbu r1,(r31) snei r1,r1,#0 bnez r1,L51_LF6 nop; not filled. L50_LF6: add r2,r0,r31 lw r31,4(r30) L54_LF6: lb r1,(r31) sb (r2),r1 addi r31,r31,#1 addi r2,r2,#1 andi r1,r1,#0x00ff snei r1,r1,#0 bnez r1,L54_LF6 nop; not filled. add r1,r0,r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrcat .align 2 .proc _dstrncmp .global _dstrncmp _dstrncmp: ; Function 'dstrncmp'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r3,(r30) lw r4,4(r30) lw r5,8(r30) addi r2,r0,#0 slt r1,r2,r5 beqz r1,L73_LF6 nop; not filled. L75_LF6: lbu r31,(r4) snei r1,r31,#0 beqz r1,L86_LF6 nop; not filled. lbu r1,(r3) sne r1,r1,r31 bnez r1,L73_LF6 nop; not filled. addi r3,r3,#1 addi r4,r4,#1 addi r2,r2,#1 slt r1,r2,r5 bnez r1,L75_LF6 nop; not filled. L73_LF6: seq r1,r2,r5 beqz r1,L80_LF6 nop; not filled. L86_LF6: addi r1,r0,#0 j L84_LF6 nop; not filled. L80_LF6: lbu r31,(r3) lbu r3,(r4) sub r1,r31,r3 sgei r1,r1,#0 addi r2,r0,#-1 beqz r1,L82_LF6 nop; not filled. sne r2,r31,r3 L82_LF6: add r1,r0,r2 L84_LF6: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrncmp .align 2 .proc _dstrlen .global _dstrlen _dstrlen: ; Function 'dstrlen'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r31,(r30) addi r2,r0,#0 j L97_LF6 nop; not filled. L95_LF6: addi r2,r2,#1 L97_LF6: lbu r1,(r31) addi r31,r31,#1 snei r1,r1,#0 bnez r1,L95_LF6 nop; not filled. add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrlen .align 2 .proc _dstrstr .global _dstrstr _dstrstr: ; Function 'dstrstr'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r5,(r30) lw r7,4(r30) addi r3,r0,#0 lbu r1,(r7) addi r2,r7,#1 snei r1,r1,#0 beqz r1,L125_LF6 nop; not filled. L126_LF6: addi r3,r3,#1 lbu r1,(r2) addi r2,r2,#1 snei r1,r1,#0 bnez r1,L126_LF6 nop; not filled. L125_LF6: add r6,r0,r3 j L149_LF6 nop; not filled. L130_LF6: add r3,r0,r5 add r4,r0,r7 addi r2,r0,#0 slt r1,r2,r6 beqz r1,L134_LF6 nop; not filled. L136_LF6: lbu r31,(r4) snei r1,r31,#0 beqz r1,L150_LF6 nop; not filled. lbu r1,(r3) sne r1,r1,r31 bnez r1,L134_LF6 nop; not filled. addi r3,r3,#1 addi r4,r4,#1 addi r2,r2,#1 slt r1,r2,r6 bnez r1,L136_LF6 nop; not filled. L134_LF6: seq r1,r2,r6 beqz r1,L141_LF6 nop; not filled. L150_LF6: addi r1,r0,#0 j L132_LF6 nop; not filled. L141_LF6: lbu r3,(r3) lbu r2,(r4) sub r1,r3,r2 sgei r1,r1,#0 addi r31,r0,#-1 beqz r1,L143_LF6 nop; not filled. sne r31,r3,r2 L143_LF6: add r1,r0,r31 L132_LF6: snei r1,r1,#0 bnez r1,L131_LF6 nop; not filled. add r1,r0,r5 j L146_LF6 nop; not filled. L131_LF6: addi r5,r5,#1 L149_LF6: lbu r1,(r5) snei r1,r1,#0 bnez r1,L130_LF6 nop; not filled. addi r1,r0,#0 L146_LF6: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrstr .align 2 .proc _dmindex .global _dmindex _dmindex: ; Function 'dmindex'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) lw r6,4(r30) lbu r1,(r4) snei r1,r1,#0 beqz r1,L164_LF6 nop; not filled. add r5,r0,r1 L165_LF6: add r2,r0,r6 lb r31,(r6) andi r1,r31,#0x00ff snei r1,r1,#0 beqz r1,L163_LF6 nop; not filled. lbu r3,(r4) L169_LF6: andi r1,r31,#0x00ff seq r1,r3,r1 beqz r1,L168_LF6 nop; not filled. add r1,r0,r4 j L173_LF6 nop; not filled. L168_LF6: addi r2,r2,#1 lb r31,(r2) andi r1,r31,#0x00ff snei r1,r1,#0 bnez r1,L169_LF6 nop; not filled. L163_LF6: bnez r5,L165_LF6 nop; not filled. L164_LF6: addi r1,r0,#0 L173_LF6: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dmindex .align 2 .proc _dindex .global _dindex _dindex: ; Function 'dindex'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) j L187_LF6 nop; not filled. L183_LF6: andi r1,r31,#0x00ff seq r1,r1,r3 beqz r1,L184_LF6 nop; not filled. add r1,r0,r2 j L186_LF6 nop; not filled. L184_LF6: addi r2,r2,#1 L187_LF6: lb r31,(r2) andi r1,r31,#0x00ff snei r1,r1,#0 bnez r1,L183_LF6 nop; not filled. addi r1,r0,#0 L186_LF6: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dindex .align 2 .proc _ditoa .global _ditoa _ditoa: ; Function 'ditoa'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) lw r4,4(r30) slti r1,r3,#0 beqz r1,L203_LF6 nop; not filled. addi r6,r0,(#0x2d)&0xff j L216_LF6 nop; not filled. L203_LF6: snei r1,r3,#0 bnez r1,L205_LF6 nop; not filled. addi r6,r0,(#0x30)&0xff L216_LF6: sb (r4),r6 addi r4,r4,#1 j L204_LF6 nop; not filled. L205_LF6: addi r31,r0,#1 sle r1,r31,r3 beqz r1,L208_LF6 nop; not filled. L209_LF6: slli r1,r31,#0x2 add r1,r1,r31 slli r31,r1,#0x1 sle r1,r31,r3 bnez r1,L209_LF6 nop; not filled. L208_LF6: addi r5,r0,#10 L212_LF6: movi2fp f0,r31 movi2fp f1,r5 div f0,f0,f1 movfp2i r31,f0 movi2fp f0,r3 movi2fp f1,r31 div f0,f0,f1 movfp2i r2,f0 addi r1,r2,#48 sb (r4),r1 addi r4,r4,#1 movi2fp f0,r2 movi2fp f1,r31 mult f0,f0,f1 movfp2i r1,f0 sub r3,r3,r1 sgti r1,r31,#1 bnez r1,L212_LF6 nop; not filled. L204_LF6: addi r6,r0,(#0x0)&0xff sb (r4),r6 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ditoa .align 2 .proc _dstrtol .global _dstrtol _dstrtol: ; Function 'dstrtol'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) lw r5,4(r30) lw r4,8(r30) addi r3,r0,#0 j L247_LF6 nop; not filled. L220_LF6: addi r2,r2,#1 L247_LF6: lb r31,(r2) andi r1,r31,#0x00ff seqi r1,r1,#32 bnez r1,L220_LF6 nop; not filled. addi r1,r31,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 bnez r1,L220_LF6 nop; not filled. snei r1,r5,#0 beqz r1,L222_LF6 nop; not filled. sw (r5),r2 L222_LF6: lbu r31,(r2) snei r1,r31,#0 beqz r1,L248_LF6 nop; not filled. seqi r1,r31,#45 beqz r1,L224_LF6 nop; not filled. addi r6,r0,#-1 addi r2,r2,#1 j L225_LF6 nop; not filled. L224_LF6: addi r6,r0,#1 L225_LF6: snei r1,r4,#0 bnez r1,L226_LF6 nop; not filled. lbu r1,(r2) seqi r1,r1,#48 beqz r1,L227_LF6 nop; not filled. addi r2,r2,#1 lbu r31,(r2) seqi r1,r31,#120 bnez r1,L229_LF6 nop; not filled. seqi r1,r31,#88 beqz r1,L228_LF6 nop; not filled. L229_LF6: addi r4,r0,#16 addi r2,r2,#1 j L226_LF6 nop; not filled. L228_LF6: addi r4,r0,#8 j L226_LF6 nop; not filled. L227_LF6: addi r4,r0,#10 L226_LF6: addi r1,r4,#-1 sgtui r1,r1,#15 beqz r1,L233_LF6 nop; not filled. L248_LF6: add r1,r0,r3 j L245_LF6 nop; not filled. L233_LF6: lb r31,(r2) addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 beqz r1,L236_LF6 nop; not filled. andi r1,r31,#0x00ff addi r1,r1,#-48 j L237_LF6 nop; not filled. L236_LF6: addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#25 beqz r1,L238_LF6 nop; not filled. andi r1,r31,#0x00ff addi r1,r1,#-87 j L237_LF6 nop; not filled. L238_LF6: addi r1,r31,#-65 andi r1,r1,#0x00ff sleui r1,r1,#25 beqz r1,L240_LF6 nop; not filled. andi r1,r31,#0x00ff addi r1,r1,#-55 j L237_LF6 nop; not filled. L240_LF6: addi r1,r0,#1000 L237_LF6: slt r31,r1,r4 beqz r31,L246_LF6 nop; not filled. movi2fp f0,r3 movi2fp f1,r4 mult f0,f0,f1 movfp2i r3,f0 add r3,r3,r1 addi r2,r2,#1 bnez r31,L233_LF6 nop; not filled. L246_LF6: snei r1,r5,#0 beqz r1,L244_LF6 nop; not filled. sw (r5),r2 L244_LF6: movi2fp f0,r3 movi2fp f1,r6 mult f0,f0,f1 movfp2i r1,f0 L245_LF6: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrtol .align 2 .proc _bcopy .global _bcopy _bcopy: ; Function 'bcopy'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) lw r2,4(r30) lw r31,8(r30) j L259_LF6 nop; not filled. L257_LF6: lb r4,(r3) sb (r2),r4 addi r3,r3,#1 addi r2,r2,#1 L259_LF6: add r1,r0,r31 addi r31,r31,#-1 sgti r1,r1,#0 bnez r1,L257_LF6 nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _bcopy .align 2 .proc _bzero .global _bzero _bzero: ; Function 'bzero'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r31,4(r30) j L270_LF6 nop; not filled. L268_LF6: addi r3,r0,(#0x0)&0xff sb (r2),r3 addi r2,r2,#1 L270_LF6: add r1,r0,r31 addi r31,r31,#-1 sgti r1,r1,#0 bnez r1,L268_LF6 nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _bzero ; Compiled by GCC .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF7 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF7 nop; not filled. L6_LF7: addi r31,r0,#1 L5_LF7: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF7 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF7 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF7 nop; not filled. L12_LF7: addi r2,r0,#1 L11_LF7: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF7 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF7: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 _processQuantum_LF7: .word 100000 .align 2 LC0_LF7: .ascii "Entering ProcessModuleInit\n\000" .align 2 LC1_LF7: .ascii "Initializing PCB %d @ 0x%x.\n\000" .align 2 LC2_LF7: .ascii "Leaving ProcessModuleInit\n\000" .text .align 2 .proc _ProcessModuleInit .global _ProcessModuleInit _ProcessModuleInit: ; Function 'ProcessModuleInit'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L53_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L52_LF7 nop; not filled. L53_LF7: addi r29,r29,#-8 lhi r8,((LC0_LF7)>>16)&0xffff addui r8,r8,(LC0_LF7)&0xffff sw (r29),r8 jal _printf nop; not filled. addi r29,r29,#8 L52_LF7: addi r29,r29,#-8 lhi r2,((_freepcbs_LF7)>>16)&0xffff addui r2,r2,(_freepcbs_LF7)&0xffff sw (r29),r2 jal _QueueInit nop; not filled. lhi r8,((_runQueue_LF7)>>16)&0xffff addui r8,r8,(_runQueue_LF7)&0xffff sw (r29),r8 jal _QueueInit nop; not filled. lhi r8,((_waitQueue_LF7)>>16)&0xffff addui r8,r8,(_waitQueue_LF7)&0xffff sw (r29),r8 jal _QueueInit nop; not filled. lhi r8,((_zombieQueue_LF7)>>16)&0xffff addui r8,r8,(_zombieQueue_LF7)&0xffff sw (r29),r8 jal _QueueInit nop; not filled. addi r4,r0,#0 addi r29,r29,#8 lhi r7,((_debugstr)>>16)&0xffff addui r7,r7,(_debugstr)&0xffff lhi r1,((_pcbs_LF7)>>16)&0xffff addui r1,r1,(_pcbs_LF7)&0xffff add r5,r0,r2 addi r2,r1,#164 add r3,r0,r1 add r6,r0,r3 L57_LF7: addi r29,r29,#-8 sw (r29),r7 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L59_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r7 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L58_LF7 nop; not filled. L59_LF7: addi r29,r29,#-16 lhi r8,((LC1_LF7)>>16)&0xffff addui r8,r8,(LC1_LF7)&0xffff sw (r29),r8 sw 4(r29),r4 sw 8(r29),r6 jal _printf nop; not filled. addi r29,r29,#16 L58_LF7: addi r8,r0,#1 sw 12(r3),r8 addi r8,r0,#0 sw (r2),r8 sw 12(r2),r3 sw 8(r2),r5 sw 4(r2),r5 lw r8,(r5) sw (r2),r8 sw (r5),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r5) addi r1,r1,#1 sw 8(r5),r1 addi r2,r2,#180 addi r3,r3,#180 addi r6,r6,#180 addi r4,r4,#1 slei r1,r4,#31 bnez r1,L57_LF7 nop; not filled. lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff addi r8,r0,#0 sw (r1),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64_LF7 nop; not filled. L65_LF7: addi r29,r29,#-8 lhi r8,((LC2_LF7)>>16)&0xffff addui r8,r8,(LC2_LF7)&0xffff sw (r29),r8 jal _printf nop; not filled. addi r29,r29,#8 L64_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessModuleInit .align 2 .proc _ProcessSetStatus .global _ProcessSetStatus _ProcessSetStatus: ; Function 'ProcessSetStatus'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,12(r3) addi r31,r0,#-64 and r1,r1,r31 or r1,r1,r2 sw 12(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSetStatus .align 2 .proc _ProcessFreeResources .global _ProcessFreeResources _ProcessFreeResources: ; Function 'ProcessFreeResources'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r4,(r30) lhi r3,((_freepcbs_LF7)>>16)&0xffff addui r3,r3,(_freepcbs_LF7)&0xffff addi r2,r4,#164 lw r1,4(r3) sw 172(r4),r3 sw 168(r4),r1 lw r5,(r1) sw (r2),r5 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r3,160(r4) addi r2,r0,#0 slt r1,r2,r3 beqz r1,L98_LF7 nop; not filled. L90_LF7: addi r29,r29,#-8 sw (r29),r4 sw 4(r29),r2 jal _MemoryFreeSharedPte nop; not filled. addi r29,r29,#8 addi r2,r2,#1 slt r1,r2,r3 bnez r1,L90_LF7 nop; not filled. addi r2,r0,#0 L98_LF7: lw r1,160(r4) slt r1,r2,r1 beqz r1,L93_LF7 nop; not filled. add r3,r0,r4 L95_LF7: addi r29,r29,#-8 lw r5,96(r3) sw (r29),r5 jal _MemoryFreePte nop; not filled. addi r29,r29,#8 addi r3,r3,#4 addi r2,r2,#1 lw r1,160(r4) slt r1,r2,r1 bnez r1,L95_LF7 nop; not filled. L93_LF7: addi r29,r29,#-8 lhu r1,8(r4) sw (r29),r1 jal _MemoryFreePage nop; not filled. addi r29,r29,#8 lw r1,12(r4) addi r5,r0,#-64 and r1,r1,r5 ori r1,r1,#1 sw 12(r4),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessFreeResources .align 2 .proc _ProcessSetResult .global _ProcessSetResult _ProcessSetResult: ; Function 'ProcessSetResult'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,4(r30) sw 44(r1),r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSetResult .data .align 2 LC3_LF7: .ascii "Now entering ProcessSchedule (cur=0x%x, %d ready)\n\000" .align 2 LC4_LF7: .ascii "No runnable processes - exiting!\n\000" .align 2 LC5_LF7: .ascii "About to switch to PCB 0x%x,flags=0x%x @ 0x%x\n\000" .align 2 LC6_LF7: .ascii "Freeing zombie PCB 0x%x.\n\000" .align 2 LC7_LF7: .ascii "Leaving ProcessSchedule (cur=0x%x)\n\000" .text .align 2 .proc _ProcessSchedule .global _ProcessSchedule _ProcessSchedule: ; Function 'ProcessSchedule'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L103_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L102_LF7 nop; not filled. L103_LF7: lhi r1,((_runQueue_LF7)>>16)&0xffff addui r1,r1,(_runQueue_LF7)&0xffff lw r2,8(r1) addi r29,r29,#-16 lhi r8,((LC3_LF7)>>16)&0xffff addui r8,r8,(LC3_LF7)&0xffff sw (r29),r8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 sw 8(r29),r2 jal _printf nop; not filled. addi r29,r29,#16 L102_LF7: lhi r5,((_runQueue_LF7)>>16)&0xffff addui r5,r5,(_runQueue_LF7)&0xffff lw r1,8(r5) seqi r1,r1,#0 beqz r1,L105_LF7 nop; not filled. addi r29,r29,#-8 lhi r8,((LC4_LF7)>>16)&0xffff addui r8,r8,(LC4_LF7)&0xffff sw (r29),r8 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L105_LF7: lw r1,(r5) lw r4,12(r1) lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) seq r1,r4,r1 beqz r1,L109_LF7 nop; not filled. addi r3,r4,#164 lw r1,172(r4) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L111_LF7 nop; not filled. lw r1,168(r4) lw r8,(r3) sw (r1),r8 lw r1,(r3) lw r8,168(r4) sw 4(r1),r8 lw r2,172(r4) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L111_LF7: addi r8,r0,#0 sw (r3),r8 lw r1,4(r5) sw 172(r4),r5 sw 168(r4),r1 lw r8,(r1) sw (r3),r8 sw (r1),r3 lw r1,(r3) sw 4(r1),r3 lw r1,8(r5) addi r1,r1,#1 sw 8(r5),r1 L109_LF7: lhi r1,((_runQueue_LF7)>>16)&0xffff addui r1,r1,(_runQueue_LF7)&0xffff lw r1,(r1) lw r4,12(r1) lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff sw (r1),r4 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L117_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L116_LF7 nop; not filled. L117_LF7: addi r29,r29,#-16 lhi r8,((LC5_LF7)>>16)&0xffff addui r8,r8,(LC5_LF7)&0xffff sw (r29),r8 sw 4(r29),r4 lw r8,12(r4) sw 8(r29),r8 lw r1,4(r4) lw r1,296(r1) sw 12(r29),r1 jal _printf nop; not filled. addi r29,r29,#16 L116_LF7: lhi r7,((_zombieQueue_LF7)>>16)&0xffff addui r7,r7,(_zombieQueue_LF7)&0xffff lhi r6,((_debugstr)>>16)&0xffff addui r6,r6,(_debugstr)&0xffff lhi r5,((_freepcbs_LF7)>>16)&0xffff addui r5,r5,(_freepcbs_LF7)&0xffff L118_LF7: lw r1,8(r7) seqi r1,r1,#0 bnez r1,L119_LF7 nop; not filled. lw r1,(r7) lw r4,12(r1) addi r29,r29,#-8 sw (r29),r6 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L125_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r6 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L124_LF7 nop; not filled. L125_LF7: addi r29,r29,#-8 lhi r8,((LC6_LF7)>>16)&0xffff addui r8,r8,(LC6_LF7)&0xffff sw (r29),r8 sw 4(r29),r4 jal _printf nop; not filled. addi r29,r29,#8 L124_LF7: addi r31,r4,#164 lw r1,172(r4) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L127_LF7 nop; not filled. lw r1,168(r4) lw r8,(r31) sw (r1),r8 lw r1,(r31) lw r8,168(r4) sw 4(r1),r8 lw r2,172(r4) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L127_LF7: addi r8,r0,#0 sw (r31),r8 lw r1,4(r5) sw 172(r4),r5 sw 168(r4),r1 lw r8,(r1) sw (r31),r8 sw (r1),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r5) addi r1,r1,#1 sw 8(r5),r1 lw r3,160(r4) addi r2,r0,#0 slt r1,r2,r3 beqz r1,L145_LF7 nop; not filled. L135_LF7: addi r29,r29,#-8 sw (r29),r4 sw 4(r29),r2 jal _MemoryFreeSharedPte nop; not filled. addi r29,r29,#8 addi r2,r2,#1 slt r1,r2,r3 bnez r1,L135_LF7 nop; not filled. addi r2,r0,#0 L145_LF7: lw r1,160(r4) slt r1,r2,r1 beqz r1,L138_LF7 nop; not filled. add r3,r0,r4 L140_LF7: addi r29,r29,#-8 lw r8,96(r3) sw (r29),r8 jal _MemoryFreePte nop; not filled. addi r29,r29,#8 addi r3,r3,#4 addi r2,r2,#1 lw r1,160(r4) slt r1,r2,r1 bnez r1,L140_LF7 nop; not filled. L138_LF7: addi r29,r29,#-8 lhu r1,8(r4) sw (r29),r1 jal _MemoryFreePage nop; not filled. addi r29,r29,#8 lw r1,12(r4) addi r8,r0,#-64 and r1,r1,r8 ori r1,r1,#1 sw 12(r4),r1 j L118_LF7 nop; not filled. L119_LF7: addi r29,r29,#-8 lhi r1,((_processQuantum_LF7)>>16)&0xffff addui r1,r1,(_processQuantum_LF7)&0xffff lw r1,(r1) sw (r29),r1 jal _TimerSet nop; not filled. lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L144_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L143_LF7 nop; not filled. L144_LF7: addi r29,r29,#-8 lhi r8,((LC7_LF7)>>16)&0xffff addui r8,r8,(LC7_LF7)&0xffff sw (r29),r8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L143_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSchedule .data .align 2 LC8_LF7: .ascii "Suspending PCB 0x%x (%s).\n\000" .align 2 LC9_LF7: .ascii "%s: %s\n\000" .align 2 LC10_LF7: .ascii "ProcessSuspend\000" .align 2 LC11_LF7: .ascii "Trying to suspend a non-running process!\n\000" .text .align 2 .proc _ProcessSuspend .global _ProcessSuspend _ProcessSuspend: ; Function 'ProcessSuspend'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L148_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L147_LF7 nop; not filled. L148_LF7: addi r29,r29,#-16 lhi r4,((LC8_LF7)>>16)&0xffff addui r4,r4,(LC8_LF7)&0xffff sw (r29),r4 sw 4(r29),r3 addi r1,r3,#16 sw 8(r29),r1 jal _printf nop; not filled. addi r29,r29,#16 L147_LF7: lb r4,15(r3) srli r1,r4,#0x1 andi r1,r1,#1 bnez r1,L150_LF7 nop; not filled. addi r29,r29,#-16 lhi r4,((LC9_LF7)>>16)&0xffff addui r4,r4,(LC9_LF7)&0xffff sw (r29),r4 lhi r1,((LC10_LF7)>>16)&0xffff addui r1,r1,(LC10_LF7)&0xffff sw 4(r29),r1 lhi r4,((LC11_LF7)>>16)&0xffff addui r4,r4,(LC11_LF7)&0xffff sw 8(r29),r4 jal _printf nop; not filled. addi r29,r29,#16 L150_LF7: lw r1,12(r3) addi r4,r0,#-64 and r1,r1,r4 ori r1,r1,#4 sw 12(r3),r1 addi r31,r3,#164 lw r1,172(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L153_LF7 nop; not filled. lw r1,168(r3) lw r4,(r31) sw (r1),r4 lw r1,(r31) lw r4,168(r3) sw 4(r1),r4 lw r2,172(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L153_LF7: addi r4,r0,#0 sw (r31),r4 lhi r2,((_waitQueue_LF7)>>16)&0xffff addui r2,r2,(_waitQueue_LF7)&0xffff lw r1,4(r2) sw 172(r3),r2 sw 168(r3),r1 lw r4,(r1) sw (r31),r4 sw (r1),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSuspend .data .align 2 LC12_LF7: .ascii "Waking up PCB 0x%x.\n\000" .align 2 LC13_LF7: .ascii "ProcessWakeup\000" .align 2 LC14_LF7: .ascii "Trying to wake up a non-sleeping process!\n\000" .text .align 2 .proc _ProcessWakeup .global _ProcessWakeup _ProcessWakeup: ; Function 'ProcessWakeup'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L159_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L158_LF7 nop; not filled. L159_LF7: addi r29,r29,#-8 lhi r4,((LC12_LF7)>>16)&0xffff addui r4,r4,(LC12_LF7)&0xffff sw (r29),r4 sw 4(r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L158_LF7: lb r4,15(r3) srli r1,r4,#0x2 andi r1,r1,#1 bnez r1,L161_LF7 nop; not filled. addi r29,r29,#-16 lhi r4,((LC9_LF7)>>16)&0xffff addui r4,r4,(LC9_LF7)&0xffff sw (r29),r4 lhi r1,((LC13_LF7)>>16)&0xffff addui r1,r1,(LC13_LF7)&0xffff sw 4(r29),r1 lhi r4,((LC14_LF7)>>16)&0xffff addui r4,r4,(LC14_LF7)&0xffff sw 8(r29),r4 jal _printf nop; not filled. addi r29,r29,#16 L161_LF7: lw r1,12(r3) addi r4,r0,#-64 and r1,r1,r4 ori r1,r1,#2 sw 12(r3),r1 addi r31,r3,#164 lw r1,172(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L164_LF7 nop; not filled. lw r1,168(r3) lw r4,(r31) sw (r1),r4 lw r1,(r31) lw r4,168(r3) sw 4(r1),r4 lw r2,172(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L164_LF7: addi r4,r0,#0 sw (r31),r4 lhi r2,((_runQueue_LF7)>>16)&0xffff addui r2,r2,(_runQueue_LF7)&0xffff lw r1,4(r2) sw 172(r3),r2 sw 168(r3),r1 lw r4,(r1) sw (r31),r4 sw (r1),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessWakeup .data .align 2 LC15_LF7: .ascii "Entering ProcessDestroy for 0x%x.\n\000" .align 2 LC16_LF7: .ascii "Leaving ProcessDestroy for 0x%x.\n\000" .text .align 2 .proc _ProcessDestroy .global _ProcessDestroy _ProcessDestroy: ; Function 'ProcessDestroy'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L170_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L169_LF7 nop; not filled. L170_LF7: addi r29,r29,#-8 lhi r4,((LC15_LF7)>>16)&0xffff addui r4,r4,(LC15_LF7)&0xffff sw (r29),r4 sw 4(r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L169_LF7: lw r1,12(r3) addi r4,r0,#-64 and r1,r1,r4 ori r1,r1,#16 sw 12(r3),r1 addi r31,r3,#164 lw r1,172(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L173_LF7 nop; not filled. lw r1,168(r3) lw r4,(r31) sw (r1),r4 lw r1,(r31) lw r4,168(r3) sw 4(r1),r4 lw r2,172(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L173_LF7: addi r4,r0,#0 sw (r31),r4 lhi r2,((_zombieQueue_LF7)>>16)&0xffff addui r2,r2,(_zombieQueue_LF7)&0xffff sw 172(r3),r2 sw 168(r3),r2 lw r4,(r2) sw (r31),r4 sw (r2),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L177_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L176_LF7 nop; not filled. L177_LF7: addi r29,r29,#-8 lhi r4,((LC16_LF7)>>16)&0xffff addui r4,r4,(LC16_LF7)&0xffff sw (r29),r4 sw 4(r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L176_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessDestroy .data .align 2 _str52_LF7: .space 4 .align 2 _location53_LF7: .word 0 .text .align 2 .proc _get_argument .global _get_argument _get_argument: ; Function 'get_argument'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) snei r1,r2,#0 beqz r1,L190_LF7 nop; not filled. lhi r1,((_str52_LF7)>>16)&0xffff addui r1,r1,(_str52_LF7)&0xffff sw (r1),r2 lhi r1,((_location53_LF7)>>16)&0xffff addui r1,r1,(_location53_LF7)&0xffff addi r5,r0,#0 sw (r1),r5 L190_LF7: lhi r31,((_location53_LF7)>>16)&0xffff addui r31,r31,(_location53_LF7)&0xffff lw r3,(r31) lhi r1,((_str52_LF7)>>16)&0xffff addui r1,r1,(_str52_LF7)&0xffff lw r2,(r1) add r1,r2,r3 lbu r1,(r1) snei r1,r1,#0 beqz r1,L192_LF7 nop; not filled. sgti r1,r3,#98 beqz r1,L191_LF7 nop; not filled. L192_LF7: addi r1,r0,#0 j L199_LF7 nop; not filled. L200_LF7: addi r1,r31,#1 sw (r2),r1 j L194_LF7 nop; not filled. L191_LF7: slei r1,r3,#99 beqz r1,L194_LF7 nop; not filled. add r4,r0,r2 add r2,r0,r31 L196_LF7: lw r31,(r2) add r1,r4,r31 lbu r1,(r1) snei r1,r1,#0 beqz r1,L200_LF7 nop; not filled. addi r1,r31,#1 sw (r2),r1 slei r1,r1,#99 bnez r1,L196_LF7 nop; not filled. L194_LF7: add r1,r0,r3 L199_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _get_argument .data .align 2 LC17_LF7: .ascii "Old interrupt value was 0x%x.\n\000" .align 2 LC18_LF7: .ascii "Entering ProcessFork args=0x%x 0x%x %s %d\n\000" .align 2 LC19_LF7: .ascii "FATAL error: no free processes!\n\000" .align 2 LC20_LF7: .ascii "Got a link @ 0x%x\n\000" .align 2 LC21_LF7: .ascii "Before restore interrupt value is 0x%x.\n\000" .align 2 LC22_LF7: .ascii "New interrupt value is 0x%x.\n\000" .align 2 LC23_LF7: .ascii "aFATAL: couldn\'t allocate memory - no free pages!\n\000" .align 2 LC24_LF7: .ascii "bFATAL: couldn\'t allocate system stack - no free pages!\n\000" .align 2 LC25_LF7: .ascii "Setting up PCB @ 0x%x (sys stack=0x%x, mem=0x%x, size=0x%x)\n\000" .align 2 LC26_LF7: .ascii "About to load %s\n\000" .align 2 LC27_LF7: .ascii "File %s -> start=0x%08x\n\000" .align 2 LC28_LF7: .ascii "File %s -> code @ 0x%08x (size=0x%08x)\n\000" .align 2 LC29_LF7: .ascii "File %s -> data @ 0x%08x (size=0x%08x)\n\000" .align 2 LC30_LF7: .ascii "Placing %d bytes at vaddr %08x.\n\000" .align 2 LC31_LF7: .ascii "Setting currentPCB=0x%x, stackframe=0x%x\n\000" .align 2 LC32_LF7: .ascii "Leaving ProcessFork (%s)\n\000" .text .align 2 .proc _ProcessFork .global _ProcessFork _ProcessFork: ; Function 'ProcessFork'; 672 bytes of locals, 12 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#728; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 sw 44(r29),r13 lw r5,(r30) lw r10,4(r30) lw r12,16(r30) lw r4,20(r30) addi r13,r0,#0 sw -680(r30),r13 addi r29,r29,#-8 addi r13,r0,#15 sw (r29),r13 jal _SetIntrs nop; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#73 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L204_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L203_LF7 nop; not filled. L204_LF7: addi r29,r29,#-8 lhi r13,((LC17_LF7)>>16)&0xffff addui r13,r13,(LC17_LF7)&0xffff sw (r29),r13 sw 4(r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L203_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L206_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L205_LF7 nop; not filled. L206_LF7: addi r29,r29,#-24 lhi r13,((LC18_LF7)>>16)&0xffff addui r13,r13,(LC18_LF7)&0xffff sw (r29),r13 sw 4(r29),r5 sw 8(r29),r10 sw 12(r29),r12 sw 16(r29),r4 jal _printf nop; not filled. addi r29,r29,#24 L205_LF7: lhi r2,((_freepcbs_LF7)>>16)&0xffff addui r2,r2,(_freepcbs_LF7)&0xffff lw r1,8(r2) seqi r1,r1,#0 beqz r1,L207_LF7 nop; not filled. addi r29,r29,#-8 lhi r13,((LC19_LF7)>>16)&0xffff addui r13,r13,(LC19_LF7)&0xffff sw (r29),r13 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L207_LF7: lw r9,(r2) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L212_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L211_LF7 nop; not filled. L212_LF7: addi r29,r29,#-8 lhi r13,((LC20_LF7)>>16)&0xffff addui r13,r13,(LC20_LF7)&0xffff sw (r29),r13 sw 4(r29),r9 jal _printf nop; not filled. addi r29,r29,#8 L211_LF7: lw r1,8(r9) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L214_LF7 nop; not filled. lw r1,4(r9) lw r13,(r9) sw (r1),r13 lw r1,(r9) lw r13,4(r9) sw 4(r1),r13 lw r2,8(r9) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L214_LF7: addi r13,r0,#0 sw (r9),r13 lw r6,12(r9) lw r1,12(r6) addi r13,r0,#-64 and r1,r1,r13 ori r1,r1,#2 sw 12(r6),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#73 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L217_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L216_LF7 nop; not filled. L217_LF7: jal _CurrentIntrs nop; not filled. addi r29,r29,#-8 lhi r13,((LC21_LF7)>>16)&0xffff addui r13,r13,(LC21_LF7)&0xffff sw (r29),r13 sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L216_LF7: addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#73 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L220_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L219_LF7 nop; not filled. L220_LF7: jal _CurrentIntrs nop; not filled. addi r29,r29,#-8 lhi r13,((LC22_LF7)>>16)&0xffff addui r13,r13,(LC22_LF7)&0xffff sw (r29),r13 sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L219_LF7: addi r29,r29,#-8 addi r1,r6,#16 sw (r29),r1 sw 4(r29),r12 jal _dstrcpy nop; not filled. addi r13,r0,#1 sw 160(r6),r13 jal _MemoryAllocPage nop; not filled. add r2,r0,r1 addi r29,r29,#8 snei r1,r2,#0 bnez r1,L221_LF7 nop; not filled. addi r29,r29,#-8 lhi r13,((LC23_LF7)>>16)&0xffff addui r13,r13,(LC23_LF7)&0xffff sw (r29),r13 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L221_LF7: addi r29,r29,#-8 sw (r29),r2 jal _MemorySetupPte nop; not filled. sw 96(r6),r1 jal _MemoryAllocPage nop; not filled. add r2,r0,r1 addi r29,r29,#8 snei r1,r2,#0 bnez r1,L222_LF7 nop; not filled. addi r29,r29,#-8 lhi r13,((LC24_LF7)>>16)&0xffff addui r13,r13,(LC24_LF7)&0xffff sw (r29),r13 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L222_LF7: slli r1,r2,#0x10 sw 8(r6),r1 ori r8,r1,#65164 sw 4(r6),r8 sw (r6),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L224_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L223_LF7 nop; not filled. L224_LF7: addi r29,r29,#-24 lhi r13,((LC25_LF7)>>16)&0xffff addui r13,r13,(LC25_LF7)&0xffff sw (r29),r13 sw 4(r29),r6 lw r13,8(r6) sw 8(r29),r13 lw r13,96(r6) sw 12(r29),r13 lw r1,160(r6) slli r1,r1,#0x10 sw 16(r29),r1 jal _printf nop; not filled. addi r29,r29,#24 L223_LF7: addi r13,r0,#0 sw 40(r8),r13 addi r1,r6,#96 sw 312(r8),r1 lw r13,160(r6) sw 316(r8),r13 lhi r1,#16 addui r1,r1,#16 sw 320(r8),r1 snei r1,r4,#0 beqz r1,L225_LF7 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L227_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L226_LF7 nop; not filled. L227_LF7: addi r29,r29,#-8 lhi r13,((LC26_LF7)>>16)&0xffff addui r13,r13,(LC26_LF7)&0xffff sw (r29),r13 sw 4(r29),r12 jal _printf nop; not filled. addi r29,r29,#8 L226_LF7: addi r29,r29,#-24 sw (r29),r12 addi r1,r30,#-660 sw 4(r29),r1 addi r1,r30,#-664 sw 8(r29),r1 addi r1,r30,#-668 sw 12(r29),r1 addi r1,r30,#-672 sw 16(r29),r1 addi r1,r30,#-676 sw 20(r29),r1 jal _ProcessGetCodeInfo nop; not filled. add r5,r0,r1 addi r29,r29,#24 slti r1,r5,#0 beqz r1,L228_LF7 nop; not filled. lhi r3,((_freepcbs_LF7)>>16)&0xffff addui r3,r3,(_freepcbs_LF7)&0xffff addi r2,r6,#164 lw r1,4(r3) sw 172(r6),r3 sw 168(r6),r1 lw r13,(r1) sw (r2),r13 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r3,160(r6) addi r2,r0,#0 slt r1,r2,r3 beqz r1,L293_LF7 nop; not filled. L236_LF7: addi r29,r29,#-8 sw (r29),r6 sw 4(r29),r2 jal _MemoryFreeSharedPte nop; not filled. addi r29,r29,#8 addi r2,r2,#1 slt r1,r2,r3 bnez r1,L236_LF7 nop; not filled. addi r2,r0,#0 L293_LF7: lw r1,160(r6) slt r1,r2,r1 beqz r1,L239_LF7 nop; not filled. add r3,r0,r6 L241_LF7: addi r29,r29,#-8 lw r13,96(r3) sw (r29),r13 jal _MemoryFreePte nop; not filled. addi r29,r29,#8 addi r3,r3,#4 addi r2,r2,#1 lw r1,160(r6) slt r1,r2,r1 bnez r1,L241_LF7 nop; not filled. L239_LF7: addi r29,r29,#-8 lhu r1,8(r6) sw (r29),r1 jal _MemoryFreePage nop; not filled. addi r29,r29,#8 lw r1,12(r6) addi r13,r0,#-64 and r1,r1,r13 ori r1,r1,#1 sw 12(r6),r1 addi r1,r0,#-1 j L290_LF7 nop; not filled. L228_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L245_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L244_LF7 nop; not filled. L245_LF7: addi r29,r29,#-16 lhi r13,((LC27_LF7)>>16)&0xffff addui r13,r13,(LC27_LF7)&0xffff sw (r29),r13 sw 4(r29),r12 lw r13,-660(r30) sw 8(r29),r13 jal _printf nop; not filled. addi r29,r29,#16 L244_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L247_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L246_LF7 nop; not filled. L247_LF7: addi r29,r29,#-16 lhi r13,((LC28_LF7)>>16)&0xffff addui r13,r13,(LC28_LF7)&0xffff sw (r29),r13 sw 4(r29),r12 lw r13,-664(r30) sw 8(r29),r13 lw r13,-668(r30) sw 12(r29),r13 jal _printf nop; not filled. addi r29,r29,#16 L246_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L249_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L248_LF7 nop; not filled. L249_LF7: addi r29,r29,#-16 lhi r13,((LC29_LF7)>>16)&0xffff addui r13,r13,(LC29_LF7)&0xffff sw (r29),r13 sw 4(r29),r12 lw r13,-672(r30) sw 8(r29),r13 lw r13,-676(r30) sw 12(r29),r13 jal _printf nop; not filled. addi r29,r29,#16 L248_LF7: addi r3,r30,#-112 addi r7,r30,#-680 lhi r4,((_debugstr)>>16)&0xffff addui r4,r4,(_debugstr)&0xffff L250_LF7: addi r29,r29,#-16 sw (r29),r5 sw 4(r29),r3 sw 8(r29),r7 addi r13,r0,#100 sw 12(r29),r13 jal _ProcessGetFromFile nop; not filled. add r2,r0,r1 addi r29,r29,#16 sgti r1,r2,#0 beqz r1,L251_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r4 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L254_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r4 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L253_LF7 nop; not filled. L254_LF7: addi r29,r29,#-16 lhi r13,((LC30_LF7)>>16)&0xffff addui r13,r13,(LC30_LF7)&0xffff sw (r29),r13 sw 4(r29),r2 lw r1,-680(r30) sub r1,r1,r2 sw 8(r29),r1 jal _printf nop; not filled. addi r29,r29,#16 L253_LF7: addi r29,r29,#-16 sw (r29),r6 sw 4(r29),r3 lw r1,-680(r30) sub r1,r1,r2 sw 8(r29),r1 sw 12(r29),r2 jal _MemoryCopySystemToUser nop; not filled. addi r29,r29,#16 j L250_LF7 nop; not filled. L251_LF7: addi r29,r29,#-8 sw (r29),r5 jal _FsClose nop; not filled. addi r13,r0,#256 sw 300(r8),r13 addui r13,r0,#64512 sw 156(r8),r13 addi r29,r29,#-8 sw (r29),r6 sw 4(r29),r10 lw r13,156(r8) sw 8(r29),r13 addi r13,r0,#992 sw 12(r29),r13 jal _MemoryCopySystemToUser nop; not filled. addi r29,r29,#16 snei r1,r10,#0 beqz r1,L256_LF7 nop; not filled. lhi r1,((_str52_LF7)>>16)&0xffff addui r1,r1,(_str52_LF7)&0xffff sw (r1),r10 lhi r1,((_location53_LF7)>>16)&0xffff addui r1,r1,(_location53_LF7)&0xffff addi r13,r0,#0 sw (r1),r13 L256_LF7: lhi r3,((_location53_LF7)>>16)&0xffff addui r3,r3,(_location53_LF7)&0xffff lw r4,(r3) lhi r1,((_str52_LF7)>>16)&0xffff addui r1,r1,(_str52_LF7)&0xffff lw r2,(r1) add r1,r2,r4 lbu r1,(r1) snei r1,r1,#0 beqz r1,L258_LF7 nop; not filled. sgti r1,r4,#98 beqz r1,L257_LF7 nop; not filled. L258_LF7: addi r3,r0,#0 j L255_LF7 nop; not filled. L291_LF7: addi r1,r2,#1 sw (r3),r1 j L260_LF7 nop; not filled. L257_LF7: slei r1,r4,#99 beqz r1,L260_LF7 nop; not filled. add r5,r0,r2 L262_LF7: lw r2,(r3) add r1,r5,r2 lbu r1,(r1) snei r1,r1,#0 beqz r1,L291_LF7 nop; not filled. addi r1,r2,#1 sw (r3),r1 slei r1,r1,#99 bnez r1,L262_LF7 nop; not filled. L260_LF7: add r3,r0,r4 L255_LF7: addui r2,r0,#64512 add r1,r3,r2 sw -648(r30),r1 addi r7,r0,#3 lhi r4,((_location53_LF7)>>16)&0xffff addui r4,r4,(_location53_LF7)&0xffff lhi r11,((_str52_LF7)>>16)&0xffff addui r11,r11,(_str52_LF7)&0xffff add r10,r0,r2 addi r5,r30,#4 L265_LF7: lw r31,(r4) lw r3,(r11) add r1,r3,r31 lbu r1,(r1) snei r1,r1,#0 beqz r1,L271_LF7 nop; not filled. sgti r1,r31,#98 beqz r1,L270_LF7 nop; not filled. L271_LF7: addi r3,r0,#0 j L268_LF7 nop; not filled. L292_LF7: addi r1,r3,#1 sw (r4),r1 j L273_LF7 nop; not filled. L270_LF7: slei r1,r31,#99 beqz r1,L273_LF7 nop; not filled. add r2,r0,r3 L275_LF7: lw r3,(r4) add r1,r2,r3 lbu r1,(r1) snei r1,r1,#0 beqz r1,L292_LF7 nop; not filled. addi r1,r3,#1 sw (r4),r1 slei r1,r1,#99 bnez r1,L275_LF7 nop; not filled. L273_LF7: add r3,r0,r31 L268_LF7: add r1,r3,r10 sw -648(r5),r1 snei r1,r3,#0 beqz r1,L266_LF7 nop; not filled. addi r5,r5,#4 addi r7,r7,#1 j L265_LF7 nop; not filled. L266_LF7: addi r1,r7,#-2 sw -656(r30),r1 slli r1,r1,#0x2 sub r1,r10,r1 sw -652(r30),r1 addi r29,r29,#-16 sw (r29),r6 addi r1,r30,#-656 sw 4(r29),r1 slli r2,r7,#0x2 lw r1,156(r8) sub r1,r1,r2 sw 8(r29),r1 sw 12(r29),r2 jal _MemoryCopySystemToUser nop; not filled. lw r1,156(r8) sub r1,r1,r2 sw 156(r8),r1 lw r13,-660(r30) sw 296(r8),r13 lw r1,12(r6) ori r1,r1,#512 sw 12(r6),r1 addi r29,r29,#16 j L279_LF7 nop; not filled. L225_LF7: lhi r13,((_ProcessExit_LF7)>>16)&0xffff addui r13,r13,(_ProcessExit_LF7)&0xffff sw 164(r8),r13 lw r1,8(r6) addui r1,r1,#65504 sw 156(r8),r1 sw (r1),r10 sw 296(r8),r5 addi r13,r0,#320 sw 300(r8),r13 lw r1,12(r6) ori r1,r1,#256 sw 12(r6),r1 L279_LF7: addi r29,r29,#-8 addi r13,r0,#15 sw (r29),r13 jal _SetIntrs nop; not filled. addi r29,r29,#8 lhi r3,((_runQueue_LF7)>>16)&0xffff addui r3,r3,(_runQueue_LF7)&0xffff lw r2,4(r3) sw 8(r9),r3 sw 4(r9),r2 lw r13,(r2) sw (r9),r13 sw (r2),r9 lw r2,(r9) sw 4(r2),r9 lw r2,8(r3) addi r2,r2,#1 sw 8(r3),r2 addi r29,r29,#-8 sw (r29),r1 jal _SetIntrs nop; not filled. addi r29,r29,#8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) snei r1,r1,#0 bnez r1,L285_LF7 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L287_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L286_LF7 nop; not filled. L287_LF7: addi r29,r29,#-16 lhi r13,((LC31_LF7)>>16)&0xffff addui r13,r13,(LC31_LF7)&0xffff sw (r29),r13 sw 4(r29),r6 lw r13,(r6) sw 8(r29),r13 jal _printf nop; not filled. addi r29,r29,#16 L286_LF7: lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff sw (r1),r6 L285_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L289_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L288_LF7 nop; not filled. L289_LF7: addi r29,r29,#-8 lhi r13,((LC32_LF7)>>16)&0xffff addui r13,r13,(LC32_LF7)&0xffff sw (r29),r13 sw 4(r29),r12 jal _printf nop; not filled. addi r29,r29,#8 L288_LF7: lhi r13,((_pcbs_LF7)>>16)&0xffff addui r13,r13,(_pcbs_LF7)&0xffff sub r2,r6,r13 lhi r1,#-23302 addui r1,r1,#20389 movi2fp f0,r2 movi2fp f1,r1 mult f0,f0,f1 movfp2i r1,f0 srai r1,r1,#0x2 L290_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r13,44(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessFork .data .align 2 LC33_LF7: .ascii "ProcessGetCodeInfo: open of %s failed (%d).\n\000" .align 2 LC34_LF7: .ascii "File descriptor is now %d.\n\000" .align 2 LC35_LF7: .ascii "ProcessGetCodeInfo: read got %d (not %d) bytes from %s\n\000" .align 2 LC36_LF7: .ascii "start:\000" .align 2 LC37_LF7: .ascii "ProcessGetCodeInfo: %s missing start line (not a DLX executable?)\n\000" .text .align 2 .proc _ProcessGetCodeInfo .global _ProcessGetCodeInfo _ProcessGetCodeInfo: ; Function 'ProcessGetCodeInfo'; 112 bytes of locals, 11 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#168; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 lw r6,(r30) lw r7,4(r30) lw r8,8(r30) lw r9,12(r30) lw r10,16(r30) lw r11,20(r30) addi r29,r29,#-8 sw (r29),r6 addi r12,r0,#1 sw 4(r29),r12 jal _FsOpen nop; not filled. add r3,r0,r1 addi r29,r29,#8 slti r1,r3,#0 beqz r1,L302_LF7 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L304_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L311_LF7 nop; not filled. L304_LF7: addi r29,r29,#-16 lhi r12,((LC33_LF7)>>16)&0xffff addui r12,r12,(LC33_LF7)&0xffff sw (r29),r12 sw 4(r29),r6 sw 8(r29),r3 jal _printf nop; not filled. addi r29,r29,#16 j L311_LF7 nop; not filled. L302_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L306_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L305_LF7 nop; not filled. L306_LF7: addi r29,r29,#-8 lhi r12,((LC34_LF7)>>16)&0xffff addui r12,r12,(LC34_LF7)&0xffff sw (r29),r12 sw 4(r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L305_LF7: addi r29,r29,#-16 sw (r29),r3 addi r4,r30,#-112 sw 4(r29),r4 addi r12,r0,#100 sw 8(r29),r12 jal _FsRead nop; not filled. add r5,r0,r1 addi r29,r29,#16 snei r1,r5,#100 beqz r1,L307_LF7 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L309_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L308_LF7 nop; not filled. L309_LF7: addi r29,r29,#-16 lhi r12,((LC35_LF7)>>16)&0xffff addui r12,r12,(LC35_LF7)&0xffff sw (r29),r12 sw 4(r29),r5 addi r12,r0,#100 sw 8(r29),r12 sw 12(r29),r6 jal _printf nop; not filled. addi r29,r29,#16 L308_LF7: addi r29,r29,#-8 sw (r29),r3 jal _FsClose nop; not filled. addi r1,r0,#-1 addi r29,r29,#8 j L301_LF7 nop; not filled. L307_LF7: addi r29,r29,#-8 sw (r29),r4 lhi r1,((LC36_LF7)>>16)&0xffff addui r1,r1,(LC36_LF7)&0xffff sw 4(r29),r1 jal _dstrstr nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L310_LF7 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L312_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L311_LF7 nop; not filled. L312_LF7: addi r29,r29,#-8 lhi r12,((LC37_LF7)>>16)&0xffff addui r12,r12,(LC37_LF7)&0xffff sw (r29),r12 sw 4(r29),r6 jal _printf nop; not filled. addi r29,r29,#8 L311_LF7: addi r1,r0,#-1 j L301_LF7 nop; not filled. L310_LF7: addi r29,r29,#-8 sw (r29),r4 addi r12,r0,#58 sw 4(r29),r12 jal _dindex nop; not filled. addi r1,r1,#1 sw -116(r30),r1 addi r29,r29,#-8 sw (r29),r1 addi r2,r30,#-116 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. sw (r7),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. sw (r8),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. sw (r9),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. sw (r10),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. sw (r11),r1 sw (r29),r4 addi r12,r0,#10 sw 4(r29),r12 jal _dindex nop; not filled. addi r2,r30,#-113 sub r1,r1,r2 sw (r29),r3 sw 4(r29),r1 addi r12,r0,#0 sw 8(r29),r12 jal _FsSeek nop; not filled. add r1,r0,r3 addi r29,r29,#16 L301_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessGetCodeInfo .data .align 2 LC38_LF7: .ascii "Got %d bytes at offset %d ...\000" .align 2 LC39_LF7: .ascii " terminated at %d.\n\000" .align 2 LC40_LF7: .ascii "Buffer is \'%s\'\n\000" .align 2 LC41_LF7: .ascii "New address is 0x%x.\n\000" .align 2 LC42_LF7: .ascii "Seeking to %d and returning %d bytes!\n\000" .text .align 2 .proc _ProcessGetFromFile .global _ProcessGetFromFile _ProcessGetFromFile: ; Function 'ProcessGetFromFile'; 216 bytes of locals, 11 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#272; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 lw r10,(r30) lw r7,8(r30) lw r2,12(r30) lw r11,4(r30) addi r3,r30,#-216 sw -220(r30),r3 addi r29,r29,#-16 sw (r29),r10 addi r12,r0,#0 sw 4(r29),r12 addi r12,r0,#1 sw 8(r29),r12 jal _FsSeek nop; not filled. add r9,r0,r1 slli r2,r2,#0x1 addi r29,r29,#16 sgtui r1,r2,#200 beqz r1,L315_LF7 nop; not filled. addi r2,r0,#200 L315_LF7: addi r29,r29,#-16 sw (r29),r10 sw 4(r29),r3 sw 8(r29),r2 jal _FsRead nop; not filled. add r5,r0,r1 addi r29,r29,#16 slei r1,r5,#0 beqz r1,L316_LF7 nop; not filled. addi r1,r0,#0 j L370_LF7 nop; not filled. L316_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L318_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L317_LF7 nop; not filled. L318_LF7: addi r29,r29,#-16 lhi r12,((LC38_LF7)>>16)&0xffff addui r12,r12,(LC38_LF7)&0xffff sw (r29),r12 sw 4(r29),r5 sw 8(r29),r9 jal _printf nop; not filled. addi r29,r29,#16 L317_LF7: addi r5,r5,#-1 addi r1,r30,#-216 add r2,r1,r5 j L373_LF7 nop; not filled. L319_LF7: addi r2,r2,#-1 addi r5,r5,#-1 L373_LF7: lbu r1,(r2) snei r1,r1,#10 bnez r1,L319_LF7 nop; not filled. addi r1,r30,#-215 add r1,r1,r5 addi r12,r0,(#0x5a)&0xff sb (r1),r12 addi r1,r30,#-214 add r1,r1,r5 addi r12,r0,(#0x0)&0xff sb (r1),r12 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L324_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L323_LF7 nop; not filled. L324_LF7: addi r29,r29,#-8 lhi r12,((LC39_LF7)>>16)&0xffff addui r12,r12,(LC39_LF7)&0xffff sw (r29),r12 sw 4(r29),r5 jal _printf nop; not filled. addi r29,r29,#8 L323_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L326_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L325_LF7 nop; not filled. L326_LF7: addi r29,r29,#-8 lhi r12,((LC40_LF7)>>16)&0xffff addui r12,r12,(LC40_LF7)&0xffff sw (r29),r12 addi r1,r30,#-216 sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L325_LF7: addi r5,r0,#0 lhi r8,((_debugstr)>>16)&0xffff addui r8,r8,(_debugstr)&0xffff L327_LF7: addi r29,r29,#-8 lw r12,-220(r30) sw (r29),r12 addi r12,r0,#90 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L328_LF7 nop; not filled. addi r29,r29,#-8 lw r12,-220(r30) sw (r29),r12 addi r12,r0,#58 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L328_LF7 nop; not filled. lw r2,-220(r30) lbu r1,(r2) snei r1,r1,#58 beqz r1,L372_LF7 nop; not filled. sgti r1,r5,#0 bnez r1,L328_LF7 nop; not filled. addi r29,r29,#-16 sw (r29),r2 addi r1,r30,#-220 sw 4(r29),r1 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. sw (r7),r1 sw (r29),r8 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L334_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r8 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L331_LF7 nop; not filled. L334_LF7: addi r29,r29,#-8 lhi r12,((LC41_LF7)>>16)&0xffff addui r12,r12,(LC41_LF7)&0xffff sw (r29),r12 lw r1,(r7) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L331_LF7: lw r1,-220(r30) lbu r1,(r1) snei r1,r1,#58 bnez r1,L328_LF7 nop; not filled. L372_LF7: lw r1,-220(r30) addi r1,r1,#1 sw -220(r30),r1 add r6,r5,r11 L338_LF7: lw r1,-220(r30) j L374_LF7 nop; not filled. L341_LF7: lw r1,-220(r30) addi r1,r1,#1 sw -220(r30),r1 L374_LF7: lbu r31,(r1) seqi r1,r31,#32 bnez r1,L341_LF7 nop; not filled. seqi r1,r31,#9 bnez r1,L341_LF7 nop; not filled. lw r2,-220(r30) lb r31,(r2) andi r3,r31,#0x00ff seqi r1,r3,#10 beqz r1,L343_LF7 nop; not filled. addi r1,r2,#1 sw -220(r30),r1 j L327_LF7 nop; not filled. L343_LF7: addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L349_LF7 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L349_LF7 nop; not filled. snei r1,r3,#65 bnez r1,L348_LF7 nop; not filled. L349_LF7: addi r2,r0,#1 L348_LF7: snei r1,r2,#0 beqz r1,L327_LF7 nop; not filled. lw r1,-220(r30) lb r2,1(r1) addi r3,r0,#0 addi r1,r2,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L352_LF7 nop; not filled. addi r1,r2,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L352_LF7 nop; not filled. andi r1,r2,#0x00ff snei r1,r1,#65 bnez r1,L351_LF7 nop; not filled. L352_LF7: addi r3,r0,#1 L351_LF7: snei r1,r3,#0 beqz r1,L327_LF7 nop; not filled. lw r1,-220(r30) lbu r2,(r1) add r3,r0,r2 addi r31,r2,#-48 sleui r1,r31,#9 beqz r1,L354_LF7 nop; not filled. add r4,r0,r31 j L353_LF7 nop; not filled. L354_LF7: addi r1,r2,#-97 sleui r1,r1,#5 beqz r1,L356_LF7 nop; not filled. addi r4,r2,#-87 j L353_LF7 nop; not filled. L356_LF7: addi r1,r3,#-65 sleui r1,r1,#5 addi r4,r0,#0 beqz r1,L353_LF7 nop; not filled. addi r4,r3,#-55 L353_LF7: lw r1,-220(r30) lbu r2,1(r1) add r3,r0,r2 addi r31,r2,#-48 sleui r1,r31,#9 beqz r1,L361_LF7 nop; not filled. add r2,r0,r31 j L360_LF7 nop; not filled. L361_LF7: addi r1,r2,#-97 sleui r1,r1,#5 beqz r1,L363_LF7 nop; not filled. addi r2,r2,#-87 j L360_LF7 nop; not filled. L363_LF7: addi r1,r3,#-65 sleui r1,r1,#5 addi r2,r0,#0 beqz r1,L360_LF7 nop; not filled. addi r2,r3,#-55 L360_LF7: slli r1,r4,#0x4 add r1,r1,r2 sb (r6),r1 addi r6,r6,#1 addi r5,r5,#1 lw r1,-220(r30) addi r1,r1,#2 sw -220(r30),r1 lw r1,(r7) addi r1,r1,#1 sw (r7),r1 j L338_LF7 nop; not filled. L328_LF7: addi r29,r29,#-16 sw (r29),r10 lw r1,-220(r30) add r1,r1,r9 addi r3,r30,#-216 sub r1,r1,r3 sw 4(r29),r1 addi r12,r0,#0 sw 8(r29),r12 jal _FsSeek nop; not filled. lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L369_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L368_LF7 nop; not filled. L369_LF7: addi r29,r29,#-16 lhi r12,((LC42_LF7)>>16)&0xffff addui r12,r12,(LC42_LF7)&0xffff sw (r29),r12 lw r1,-220(r30) add r1,r1,r9 sub r1,r1,r3 sw 4(r29),r1 sw 8(r29),r5 jal _printf nop; not filled. addi r29,r29,#16 L368_LF7: add r1,r0,r5 L370_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessGetFromFile .data .align 2 _temppcb64_LF7: .space 180 .align 2 LC43_LF7: .ascii "Got %d arguments.\n\000" .align 2 LC44_LF7: .ascii "Available memory: 0x%x -> 0x%x.\n\000" .align 2 LC45_LF7: .ascii "Argument count is %d.\n\000" .align 2 LC46_LF7: .ascii "Argument %d is %s.\n\000" .align 2 LC47_LF7: .ascii "Converted %s to %d=%s\n\000" _buf65_LF7: .space 200 .align 2 LC48_LF7: .ascii "%08x: %02x%02x%02x%02x\n\000" .align 2 LC49_LF7: .ascii "Option %s not recognized.\n\000" .align 2 LC50_LF7: .ascii "About to initialize queues.\n\000" .align 2 LC51_LF7: .ascii "After initializing queues.\n\000" .align 2 LC52_LF7: .ascii "After initializing memory.\n\000" .align 2 LC53_LF7: .ascii "After initializing processes.\n\000" .align 2 LC54_LF7: .ascii "After initializing shared memory.\n\000" .align 2 LC55_LF7: .ascii "After initializing synchronization tools.\n\000" .align 2 LC56_LF7: .ascii "After initializing keyboard.\n\000" .align 2 LC57_LF7: .ascii "vm\000" .align 2 LC58_LF7: .ascii "VM Descriptor is %d\n\000" .align 2 LC59_LF7: .ascii "Created processes - about to set timer quantum.\n\000" .align 2 LC60_LF7: .ascii "Set timer quantum to %d, about to run first process.\n\000" .text .align 2 .proc _main .global _main _main: ; Function 'main'; 192 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#200; alloc local storage lw r14,(r30) lw r20,4(r30) jal ___main nop; not filled. addi r16,r0,#0 addi r21,r0,#0 sw -176(r30),r21 sw -172(r30),r21 sw -168(r30),r21 sw -164(r30),r21 sw -160(r30),r21 sw -156(r30),r21 sw -152(r30),r21 sw -148(r30),r21 sw -144(r30),r21 sw -140(r30),r21 sw -136(r30),r21 sw -132(r30),r21 lhi r1,((_debugstr)>>16)&0xffff addui r1,r1,(_debugstr)&0xffff addi r21,r0,(#0x0)&0xff sb (r1),r21 jal _MyFuncRetZero nop; not filled. addi r29,r29,#-8 lhi r21,((LC43_LF7)>>16)&0xffff addui r21,r21,(LC43_LF7)&0xffff sw (r29),r21 sw 4(r29),r14 jal _printf nop; not filled. jal _MemoryGetSize nop; not filled. addi r29,r29,#-8 lhi r21,((LC44_LF7)>>16)&0xffff addui r21,r21,(LC44_LF7)&0xffff sw (r29),r21 lhi r2,((_lastosaddress)>>16)&0xffff addui r2,r2,(_lastosaddress)&0xffff lw r2,(r2) sw 4(r29),r2 sw 8(r29),r1 jal _printf nop; not filled. lhi r21,((LC45_LF7)>>16)&0xffff addui r21,r21,(LC45_LF7)&0xffff sw (r29),r21 sw 4(r29),r14 jal _printf nop; not filled. addi r9,r0,#0 addi r29,r29,#16 slt r1,r9,r14 beqz r1,L377_LF7 nop; not filled. add r2,r0,r20 L379_LF7: addi r29,r29,#-16 lhi r21,((LC46_LF7)>>16)&0xffff addui r21,r21,(LC46_LF7)&0xffff sw (r29),r21 sw 4(r29),r9 lw r21,(r2) sw 8(r29),r21 jal _printf nop; not filled. addi r29,r29,#16 addi r2,r2,#4 addi r9,r9,#1 slt r1,r9,r14 bnez r1,L379_LF7 nop; not filled. L377_LF7: jal _FsModuleInit nop; not filled. addi r9,r0,#0 slt r1,r9,r14 beqz r1,L382_LF7 nop; not filled. addi r12,r30,#-128 addi r13,r30,#-200 lhi r15,((_buf65_LF7)>>16)&0xffff addui r15,r15,(_buf65_LF7)&0xffff addi r18,r15,#1 addi r17,r15,#2 add r8,r0,r20 L384_LF7: lw r2,(r8) lbu r1,(r2) seqi r1,r1,#45 beqz r1,L383_LF7 nop; not filled. lbu r2,1(r2) seqi r1,r2,#102 bnez r1,L389_LF7 nop; not filled. sgti r1,r2,#102 bnez r1,L401_LF7 nop; not filled. seqi r1,r2,#68 beqz r1,L399_LF7 nop; not filled. j L387_LF7 nop; not filled. L401_LF7: seqi r1,r2,#105 bnez r1,L388_LF7 nop; not filled. seqi r1,r2,#117 beqz r1,L399_LF7 nop; not filled. j L398_LF7 nop; not filled. L387_LF7: addi r29,r29,#-8 lhi r21,((_debugstr)>>16)&0xffff addui r21,r21,(_debugstr)&0xffff sw (r29),r21 addi r8,r8,#4 addi r9,r9,#1 lw r1,(r8) sw 4(r29),r1 jal _dstrcpy nop; not filled. j L436_LF7 nop; not filled. L388_LF7: addi r29,r29,#-16 addi r8,r8,#4 addi r9,r9,#1 lw r21,(r8) sw (r29),r21 addi r21,r0,#0 sw 4(r29),r21 sw 8(r29),r21 jal _dstrtol nop; not filled. add r3,r0,r1 sw (r29),r1 sw 4(r29),r12 jal _ditoa nop; not filled. lhi r21,((LC47_LF7)>>16)&0xffff addui r21,r21,(LC47_LF7)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 sw 8(r29),r3 sw 12(r29),r12 jal _printf nop; not filled. addi r29,r29,#16 j L386_LF7 nop; not filled. L389_LF7: addi r21,r0,#0 sw -200(r30),r21 addi r29,r29,#-24 addi r8,r8,#4 addi r9,r9,#1 lw r21,(r8) sw (r29),r21 addi r1,r30,#-180 sw 4(r29),r1 addi r1,r30,#-184 sw 8(r29),r1 addi r1,r30,#-188 sw 12(r29),r1 addi r1,r30,#-192 sw 16(r29),r1 addi r1,r30,#-196 sw 20(r29),r1 jal _ProcessGetCodeInfo nop; not filled. add r10,r0,r1 lhi r21,((LC27_LF7)>>16)&0xffff addui r21,r21,(LC27_LF7)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 lw r21,-180(r30) sw 8(r29),r21 jal _printf nop; not filled. lhi r21,((LC28_LF7)>>16)&0xffff addui r21,r21,(LC28_LF7)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 lw r21,-184(r30) sw 8(r29),r21 lw r21,-188(r30) sw 12(r29),r21 jal _printf nop; not filled. lhi r21,((LC29_LF7)>>16)&0xffff addui r21,r21,(LC29_LF7)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 lw r21,-192(r30) sw 8(r29),r21 lw r21,-196(r30) sw 12(r29),r21 jal _printf nop; not filled. addi r29,r29,#24 lhi r11,((_buf65_LF7+3)>>16)&0xffff addui r11,r11,(_buf65_LF7+3)&0xffff L390_LF7: addi r29,r29,#-16 sw (r29),r10 lhi r21,((_buf65_LF7)>>16)&0xffff addui r21,r21,(_buf65_LF7)&0xffff sw 4(r29),r21 sw 8(r29),r13 addi r21,r0,#200 sw 12(r29),r21 jal _ProcessGetFromFile nop; not filled. add r3,r0,r1 addi r29,r29,#16 sgti r1,r3,#0 beqz r1,L391_LF7 nop; not filled. addi r2,r0,#0 slt r1,r2,r3 beqz r1,L390_LF7 nop; not filled. add r7,r0,r11 add r6,r0,r17 add r5,r0,r18 add r4,r0,r15 L396_LF7: addi r29,r29,#-24 lhi r21,((LC48_LF7)>>16)&0xffff addui r21,r21,(LC48_LF7)&0xffff sw (r29),r21 lw r1,-200(r30) add r1,r1,r2 sub r1,r1,r3 sw 4(r29),r1 lbu r1,(r4) sw 8(r29),r1 lbu r1,(r5) sw 12(r29),r1 lbu r1,(r6) sw 16(r29),r1 lbu r1,(r7) sw 20(r29),r1 jal _printf nop; not filled. addi r29,r29,#24 addi r7,r7,#4 addi r6,r6,#4 addi r5,r5,#4 addi r4,r4,#4 addi r2,r2,#4 slt r1,r2,r3 bnez r1,L396_LF7 nop; not filled. j L390_LF7 nop; not filled. L391_LF7: addi r29,r29,#-8 sw (r29),r10 jal _close nop; not filled. j L436_LF7 nop; not filled. L398_LF7: addi r8,r8,#4 addi r9,r9,#1 lw r16,(r8) add r19,r0,r9 j L386_LF7 nop; not filled. L399_LF7: addi r29,r29,#-8 lhi r21,((LC49_LF7)>>16)&0xffff addui r21,r21,(LC49_LF7)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 jal _printf nop; not filled. L436_LF7: addi r29,r29,#8 L386_LF7: snei r1,r16,#0 bnez r1,L382_LF7 nop; not filled. L383_LF7: addi r8,r8,#4 addi r9,r9,#1 slt r1,r9,r14 bnez r1,L384_LF7 nop; not filled. L382_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L405_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L404_LF7 nop; not filled. L405_LF7: addi r29,r29,#-8 lhi r21,((LC50_LF7)>>16)&0xffff addui r21,r21,(LC50_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L404_LF7: jal _QueueModuleInit nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L407_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L406_LF7 nop; not filled. L407_LF7: addi r29,r29,#-8 lhi r21,((LC51_LF7)>>16)&0xffff addui r21,r21,(LC51_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L406_LF7: jal _MemoryModuleInit nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L409_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L408_LF7 nop; not filled. L409_LF7: addi r29,r29,#-8 lhi r21,((LC52_LF7)>>16)&0xffff addui r21,r21,(LC52_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L408_LF7: jal _ProcessModuleInit nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L411_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L410_LF7 nop; not filled. L411_LF7: addi r29,r29,#-8 lhi r21,((LC53_LF7)>>16)&0xffff addui r21,r21,(LC53_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L410_LF7: jal _ShareModuleInit nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L413_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L412_LF7 nop; not filled. L413_LF7: addi r29,r29,#-8 lhi r21,((LC54_LF7)>>16)&0xffff addui r21,r21,(LC54_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L412_LF7: jal _SynchModuleInit nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L415_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L414_LF7 nop; not filled. L415_LF7: addi r29,r29,#-8 lhi r21,((LC55_LF7)>>16)&0xffff addui r21,r21,(LC55_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L414_LF7: jal _KbdModuleInit nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L417_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L416_LF7 nop; not filled. L417_LF7: addi r29,r29,#-8 lhi r21,((LC56_LF7)>>16)&0xffff addui r21,r21,(LC56_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L416_LF7: addi r2,r30,#-128 addi r3,r30,#-29 L421_LF7: addi r21,r0,(#0x61)&0xff sb (r2),r21 addi r2,r2,#1 sle r1,r2,r3 bnez r1,L421_LF7 nop; not filled. addi r29,r29,#-8 lhi r21,((LC57_LF7)>>16)&0xffff addui r21,r21,(LC57_LF7)&0xffff sw (r29),r21 addi r21,r0,#2 sw 4(r29),r21 jal _FsOpen nop; not filled. add r9,r0,r1 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L424_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L423_LF7 nop; not filled. L424_LF7: addi r29,r29,#-8 lhi r21,((LC58_LF7)>>16)&0xffff addui r21,r21,(LC58_LF7)&0xffff sw (r29),r21 sw 4(r29),r9 jal _printf nop; not filled. addi r29,r29,#8 L423_LF7: addi r29,r29,#-16 sw (r29),r9 addi r21,r0,#0 sw 4(r29),r21 sw 8(r29),r21 jal _FsSeek nop; not filled. sw (r29),r9 addi r1,r30,#-128 sw 4(r29),r1 addi r21,r0,#80 sw 8(r29),r21 jal _FsWrite nop; not filled. sw (r29),r9 jal _FsClose nop; not filled. addi r29,r29,#16 snei r1,r16,#0 beqz r1,L425_LF7 nop; not filled. add r9,r0,r19 slt r1,r19,r14 beqz r1,L427_LF7 nop; not filled. addi r4,r30,#-8 slli r1,r9,#0x2 add r3,r1,r20 L431_LF7: sub r2,r9,r19 slei r1,r2,#10 beqz r1,L427_LF7 nop; not filled. slli r1,r2,#0x2 add r1,r1,r4 lw r21,(r3) sw -168(r1),r21 addi r3,r3,#4 addi r9,r9,#1 slt r1,r9,r14 bnez r1,L431_LF7 nop; not filled. L427_LF7: addi r29,r29,#-56 addi r21,r0,#0 sw (r29),r21 sw 4(r29),r21 lw r21,-176(r30) sw 8(r29),r21 lw r21,-172(r30) sw 12(r29),r21 lw r21,-168(r30) sw 16(r29),r21 lw r21,-164(r30) sw 20(r29),r21 lw r21,-160(r30) sw 24(r29),r21 lw r21,-156(r30) sw 28(r29),r21 lw r21,-152(r30) sw 32(r29),r21 lw r21,-148(r30) sw 36(r29),r21 lw r21,-144(r30) sw 40(r29),r21 lw r21,-140(r30) sw 44(r29),r21 lw r21,-136(r30) sw 48(r29),r21 lw r21,-132(r30) sw 52(r29),r21 jal _process_create nop; not filled. addi r29,r29,#56 L425_LF7: jal _SysprocCreateProcesses nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L433_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L432_LF7 nop; not filled. L433_LF7: addi r29,r29,#-8 lhi r21,((LC59_LF7)>>16)&0xffff addui r21,r21,(LC59_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L432_LF7: addi r29,r29,#-8 lhi r3,((_processQuantum_LF7)>>16)&0xffff addui r3,r3,(_processQuantum_LF7)&0xffff lw r21,(r3) sw (r29),r21 jal _TimerSet nop; not filled. lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L435_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L434_LF7 nop; not filled. L435_LF7: addi r29,r29,#-8 lhi r21,((LC60_LF7)>>16)&0xffff addui r21,r21,(LC60_LF7)&0xffff sw (r29),r21 lw r1,(r3) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L434_LF7: jal _intrreturn nop; not filled. jal _exitsim nop; not filled. jal _exit nop .endproc _main .data .align 2 LC62_LF7: .word 0x00000000 ;; 0.0000000e+00 .text .align 2 .proc _MyFuncRetZero .global _MyFuncRetZero _MyFuncRetZero: ; Function 'MyFuncRetZero'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lhi r1,((LC62_LF7)>>16)&0xffff addui r1,r1,(LC62_LF7)&0xffff lf f0,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MyFuncRetZero .align 2 .proc _GetCurrentPid .global _GetCurrentPid _GetCurrentPid: ; Function 'GetCurrentPid'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) lhi r31,((_pcbs_LF7)>>16)&0xffff addui r31,r31,(_pcbs_LF7)&0xffff sub r2,r1,r31 lhi r1,#-23302 addui r1,r1,#20389 movi2fp f0,r2 movi2fp f1,r1 mult f0,f0,f1 movfp2i r1,f0 srai r1,r1,#0x2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _GetCurrentPid .align 2 .proc _findpid .global _findpid _findpid: ; Function 'findpid'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lhi r31,((_pcbs_LF7)>>16)&0xffff addui r31,r31,(_pcbs_LF7)&0xffff sub r2,r1,r31 lhi r1,#-23302 addui r1,r1,#20389 movi2fp f0,r2 movi2fp f1,r1 mult f0,f0,f1 movfp2i r1,f0 srai r1,r1,#0x2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _findpid .align 2 .proc _process_create .global _process_create _process_create: ; Function 'process_create'; 1000 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#1032; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 addi r2,r30,#8 addi r4,r0,#0 lw r1,(r2) snei r1,r1,#0 beqz r1,L445_LF7 nop; not filled. addi r5,r30,#-1008 add r31,r0,r2 L447_LF7: addi r2,r0,#0 add r3,r4,r5 L448_LF7: lw r1,(r31) add r1,r1,r2 lb r1,(r1) sb (r3),r1 addi r2,r2,#1 addi r3,r3,#1 addi r4,r4,#1 lw r1,(r31) add r1,r2,r1 lbu r1,-1(r1) snei r1,r1,#0 bnez r1,L448_LF7 nop; not filled. addi r31,r31,#4 lw r1,(r31) snei r1,r1,#0 bnez r1,L447_LF7 nop; not filled. L445_LF7: addi r3,r30,#-1008 add r2,r3,r4 addi r1,r30,#-1007 add r1,r1,r4 addi r6,r0,(#0x0)&0xff sb (r1),r6 sb (r2),r6 addi r29,r29,#-24 addi r6,r0,#0 sw (r29),r6 sw 4(r29),r3 lw r6,(r30) sw 8(r29),r6 lw r6,4(r30) sw 12(r29),r6 lw r6,8(r30) sw 16(r29),r6 addi r6,r0,#1 sw 20(r29),r6 jal _ProcessFork nop; not filled. addi r29,r29,#24 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _process_create .data .global _debugstr _debugstr: .space 200 .align 2 .global _currentPCB _currentPCB: .space 4 .align 2 _freepcbs_LF7: .space 12 .align 2 _runQueue_LF7: .space 12 .align 2 _waitQueue_LF7: .space 12 .align 2 _zombieQueue_LF7: .space 12 .align 2 _pcbs_LF7: .space 5760 .text .align 2 .proc _ProcessExit_LF7 _ProcessExit_LF7: ; Function 'ProcessExit'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage jal _exit nop; not filled. lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessExit_LF7 ; Compiled by GCC .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF8 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF8 nop; not filled. L6_LF8: addi r31,r0,#1 L5_LF8: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF8 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF8 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF8 nop; not filled. L12_LF8: addi r2,r0,#1 L11_LF8: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF8 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF8: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0_LF8: .ascii "Initializing queue link %d.\n\000" .text .align 2 .proc _QueueModuleInit .global _QueueModuleInit _QueueModuleInit: ; Function 'QueueModuleInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 lhi r5,((_freeLinks)>>16)&0xffff addui r5,r5,(_freeLinks)&0xffff sw (r29),r5 jal _QueueInit nop; not filled. addi r3,r0,#0 addi r29,r29,#8 lhi r4,((_debugstr)>>16)&0xffff addui r4,r4,(_debugstr)&0xffff lhi r2,((_linkpool_LF8)>>16)&0xffff addui r2,r2,(_linkpool_LF8)&0xffff L63_LF8: addi r29,r29,#-8 sw (r29),r4 addi r5,r0,#105 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65_LF8 nop; not filled. addi r29,r29,#-8 sw (r29),r4 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64_LF8 nop; not filled. L65_LF8: addi r29,r29,#-8 lhi r5,((LC0_LF8)>>16)&0xffff addui r5,r5,(LC0_LF8)&0xffff sw (r29),r5 sw 4(r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L64_LF8: addi r5,r0,#0 sw (r2),r5 addi r29,r29,#-8 sw (r29),r2 jal _QueueFreeLink nop; not filled. addi r29,r29,#8 addi r2,r2,#16 addi r3,r3,#1 slei r1,r3,#399 bnez r1,L63_LF8 nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueModuleInit .align 2 .proc _QueueInit .global _QueueInit _QueueInit: ; Function 'QueueInit'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) sw (r1),r1 sw 4(r1),r1 addi r31,r0,#0 sw 8(r1),r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInit .data .align 2 LC1_LF8: .ascii "%s: %s\n\000" .align 2 LC2_LF8: .ascii "QueueFreeLink\000" .align 2 LC3_LF8: .ascii "Link not empty\000" .text .align 2 .proc _QueueFreeLink .global _QueueFreeLink _QueueFreeLink: ; Function 'QueueFreeLink'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) lw r1,(r3) snei r1,r1,#0 beqz r1,L77_LF8 nop; not filled. addi r29,r29,#-16 lhi r4,((LC1_LF8)>>16)&0xffff addui r4,r4,(LC1_LF8)&0xffff sw (r29),r4 lhi r1,((LC2_LF8)>>16)&0xffff addui r1,r1,(LC2_LF8)&0xffff sw 4(r29),r1 lhi r4,((LC3_LF8)>>16)&0xffff addui r4,r4,(LC3_LF8)&0xffff sw 8(r29),r4 jal _printf nop; not filled. addi r29,r29,#16 L77_LF8: lhi r2,((_freeLinks)>>16)&0xffff addui r2,r2,(_freeLinks)&0xffff lw r1,4(r2) sw 8(r3),r2 sw 4(r3),r1 lw r4,(r1) sw (r3),r4 sw (r1),r3 lw r1,(r3) sw 4(r1),r3 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFreeLink .data .align 2 LC4_LF8: .ascii "QueueAllocLink\000" .align 2 LC5_LF8: .ascii "Link not allocated!\000" .text .align 2 .proc _QueueAllocLink .global _QueueAllocLink _QueueAllocLink: ; Function 'QueueAllocLink'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lhi r2,((_freeLinks)>>16)&0xffff addui r2,r2,(_freeLinks)&0xffff lw r1,8(r2) seqi r1,r1,#0 bnez r1,L92_LF8 nop; not filled. lw r3,(r2) lw r1,8(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L97_LF8 nop; not filled. lw r1,4(r3) lw r4,(r3) sw (r1),r4 lw r1,(r3) lw r4,4(r3) sw 4(r1),r4 lw r2,8(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L97_LF8: addi r4,r0,#0 sw (r3),r4 j L98_LF8 nop; not filled. L92_LF8: addi r3,r0,#0 L98_LF8: snei r1,r3,#0 bnez r1,L100_LF8 nop; not filled. addi r29,r29,#-16 lhi r4,((LC1_LF8)>>16)&0xffff addui r4,r4,(LC1_LF8)&0xffff sw (r29),r4 lhi r1,((LC4_LF8)>>16)&0xffff addui r1,r1,(LC4_LF8)&0xffff sw 4(r29),r1 lhi r4,((LC5_LF8)>>16)&0xffff addui r4,r4,(LC5_LF8)&0xffff sw 8(r29),r4 jal _printf nop; not filled. addi r29,r29,#16 L100_LF8: add r1,r0,r3 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueAllocLink .data .align 2 .global _freeLinks _freeLinks: .space 12 .align 2 _linkpool_LF8: .space 6400 ; Compiled by GCC .align 2 _rcsid_LF9: .ascii "$Id: traps.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF9 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF9 nop; not filled. L6_LF9: addi r31,r0,#1 L5_LF9: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF9 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF9 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF9 nop; not filled. L12_LF9: addi r2,r0,#1 L11_LF9: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF9 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF9: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .global _MY_TIMER .data .align 2 _MY_TIMER: .word 0 .text .align 2 .proc _TimerSet .global _TimerSet _TimerSet: ; Function 'TimerSet'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lhi r2,((_MY_TIMER)>>16)&0xffff addui r2,r2,(_MY_TIMER)&0xffff lw r1,(r2) add r1,r1,r3 sw (r2),r1 lhi r1,#-16 addui r1,r1,#16 sw (r1),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TimerSet .align 2 .proc _TimerGet .global _TimerGet _TimerGet: ; Function 'TimerGet'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lhi r1,((_MY_TIMER)>>16)&0xffff addui r1,r1,(_MY_TIMER)&0xffff lw r2,(r1) addi r1,r0,#1000 movi2fp f0,r2 movi2fp f1,r1 divu f0,f0,f1 movfp2i r1,f0 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TimerGet .align 2 .proc _KbdModuleInit .global _KbdModuleInit _KbdModuleInit: ; Function 'KbdModuleInit'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lhi r1,#-16 addui r1,r1,#448 addi r31,r0,#1 sw (r1),r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _KbdModuleInit .data .align 2 LC0_LF9: .ascii " Invalid p_nice value! \n\000" .align 2 LC1_LF9: .ascii "Fatal: Cumulative length of all arguments > %d\n\000" .align 2 LC2_LF9: .ascii "calling fork\n\000" .text .align 2 .proc _TrapProcessCreateHandler_LF9 _TrapProcessCreateHandler_LF9: ; Function 'TrapProcessCreateHandler'; 1640 bytes of locals, 13 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#1704; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 sw 44(r29),r13 sw 48(r29),r14 lw r4,(r30) lw r6,4(r30) addi r2,r30,#-1032 addi r3,r30,#-9 L67_LF9: addi r14,r0,(#0x0)&0xff sb (r2),r14 addi r2,r2,#1 sle r1,r2,r3 bnez r1,L67_LF9 nop; not filled. addi r5,r0,#0 snei r1,r6,#0 bnez r1,L69_LF9 nop; not filled. addi r29,r29,#-16 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r14,(r2) sw (r29),r14 sw 4(r29),r4 addi r1,r30,#-1648 sw 8(r29),r1 addi r14,r0,#512 sw 12(r29),r14 jal _MemoryCopyUserToSystem nop; not filled. addi r29,r29,#16 addi r4,r30,#-1137 addi r3,r30,#-1136 L70_LF9: addi r29,r29,#-16 lw r14,(r2) sw (r29),r14 lw r1,-1640(r30) add r1,r1,r5 sw 4(r29),r1 sw 8(r29),r3 addi r14,r0,#1 sw 12(r29),r14 jal _MemoryCopyUserToSystem nop; not filled. addi r4,r4,#1 addi r3,r3,#1 addi r5,r5,#1 addi r29,r29,#16 sleui r1,r5,#99 beqz r1,L75_LF9 nop; not filled. lbu r1,(r4) snei r1,r1,#0 beqz r1,L75_LF9 nop; not filled. j L70_LF9 nop; not filled. L69_LF9: addi r29,r29,#-16 sw (r29),r4 addi r1,r30,#-1648 sw 4(r29),r1 addi r14,r0,#512 sw 8(r29),r14 jal _bcopy nop; not filled. lw r14,-1640(r30) sw (r29),r14 addi r1,r30,#-1136 sw 4(r29),r1 addi r14,r0,#100 sw 8(r29),r14 jal _dstrncpy nop; not filled. addi r29,r29,#16 L75_LF9: addi r14,r0,(#0x0)&0xff sb -1037(r30),r14 addi r5,r0,#0 lw r12,-1648(r30) lw r13,-1644(r30) addi r1,r12,#20 sgtui r1,r1,#39 beqz r1,L76_LF9 nop; not filled. addi r29,r29,#-8 lhi r14,((LC0_LF9)>>16)&0xffff addui r14,r14,(LC0_LF9)&0xffff sw (r29),r14 jal _printf nop; not filled. jal _exit nop; not filled. L76_LF9: snei r1,r6,#0 bnez r1,L77_LF9 nop; not filled. lhi r8,((_currentPCB)>>16)&0xffff addui r8,r8,(_currentPCB)&0xffff addi r11,r30,#-1032 addi r10,r30,#-1033 add r6,r0,r30 addi r9,r30,#500 L89_LF9: lw r1,-1640(r6) snei r1,r1,#0 beqz r1,L90_LF9 nop; not filled. addi r2,r0,#0 add r7,r0,r6 add r4,r5,r10 add r3,r5,r11 L84_LF9: addi r29,r29,#-16 lw r14,(r8) sw (r29),r14 lw r1,-1640(r7) add r1,r1,r2 sw 4(r29),r1 sw 8(r29),r3 addi r14,r0,#1 sw 12(r29),r14 jal _MemoryCopyUserToSystem nop; not filled. addi r4,r4,#1 addi r3,r3,#1 addi r5,r5,#1 addi r2,r2,#1 addi r29,r29,#16 sleui r1,r5,#1023 beqz r1,L81_LF9 nop; not filled. lbu r1,(r4) snei r1,r1,#0 bnez r1,L84_LF9 nop; not filled. L81_LF9: addi r6,r6,#4 sle r1,r6,r9 beqz r1,L90_LF9 nop; not filled. j L89_LF9 nop; not filled. L77_LF9: addi r5,r30,#-1032 add r7,r0,r5 addi r3,r30,#-8 addi r6,r30,#32 L97_LF9: addi r4,r3,#-1640 lw r2,(r4) snei r1,r2,#0 beqz r1,L90_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 jal _dstrlen nop; not filled. add r2,r5,r1 sub r1,r2,r7 addi r29,r29,#8 sgti r1,r1,#1024 beqz r1,L96_LF9 nop; not filled. addi r29,r29,#-8 lhi r14,((LC1_LF9)>>16)&0xffff addui r14,r14,(LC1_LF9)&0xffff sw (r29),r14 addi r14,r0,#1024 sw 4(r29),r14 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L96_LF9: addi r29,r29,#-8 sw (r29),r5 lw r1,(r4) sw 4(r29),r1 jal _dstrcpy nop; not filled. addi r14,r0,(#0x0)&0xff sb (r2),r14 addi r29,r29,#8 addi r3,r3,#4 sle r1,r3,r6 bnez r1,L97_LF9 nop; not filled. L90_LF9: addi r14,r0,(#0x0)&0xff sb -9(r30),r14 addi r29,r29,#-8 lhi r14,((LC2_LF9)>>16)&0xffff addui r14,r14,(LC2_LF9)&0xffff sw (r29),r14 jal _printf nop; not filled. addi r29,r29,#-16 addi r14,r0,#0 sw (r29),r14 addi r1,r30,#-1032 sw 4(r29),r1 sw 8(r29),r12 sw 12(r29),r13 addi r1,r30,#-1136 sw 16(r29),r1 addi r14,r0,#1 sw 20(r29),r14 jal _ProcessFork nop; not filled. addi r29,r29,#24 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r13,44(r29) lw r14,48(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TrapProcessCreateHandler_LF9 .align 2 .proc _TrapPrintfHandler_LF9 _TrapPrintfHandler_LF9: ; Function 'TrapPrintfHandler'; 160 bytes of locals, 10 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#208; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 lw r4,(r30) lw r1,4(r30) addi r8,r0,#0 add r3,r0,r8 snei r1,r1,#0 bnez r1,L99_LF9 nop; not filled. addi r29,r29,#-16 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r11,(r2) sw (r29),r11 sw 4(r29),r4 addi r1,r30,#-168 sw 8(r29),r1 addi r11,r0,#40 sw 12(r29),r11 jal _MemoryCopyUserToSystem nop; not filled. addi r29,r29,#16 addi r5,r30,#-89 addi r4,r30,#-88 L100_LF9: addi r29,r29,#-16 lw r11,(r2) sw (r29),r11 lw r1,-168(r30) add r1,r1,r3 sw 4(r29),r1 sw 8(r29),r4 addi r11,r0,#1 sw 12(r29),r11 jal _MemoryCopyUserToSystem nop; not filled. addi r5,r5,#1 addi r4,r4,#1 addi r3,r3,#1 addi r29,r29,#16 sleui r1,r3,#79 beqz r1,L105_LF9 nop; not filled. lbu r1,(r5) snei r1,r1,#0 beqz r1,L105_LF9 nop; not filled. j L100_LF9 nop; not filled. L99_LF9: addi r29,r29,#-16 sw (r29),r4 addi r1,r30,#-168 sw 4(r29),r1 addi r11,r0,#40 sw 8(r29),r11 jal _bcopy nop; not filled. lw r11,-168(r30) sw (r29),r11 addi r1,r30,#-88 sw 4(r29),r1 addi r11,r0,#80 sw 8(r29),r11 jal _dstrncpy nop; not filled. addi r29,r29,#16 L105_LF9: addi r11,r0,(#0x0)&0xff sb -9(r30),r11 addi r3,r30,#-88 lb r2,(r3) andi r1,r2,#0x00ff snei r1,r1,#0 beqz r1,L107_LF9 nop; not filled. addi r10,r30,#-8 addi r9,r30,#-164 slli r1,r8,#0x2 add r7,r1,r9 add r6,r1,r10 L109_LF9: andi r1,r2,#0x00ff seqi r1,r1,#37 beqz r1,L108_LF9 nop; not filled. lbu r1,1(r3) seqi r1,r1,#37 beqz r1,L111_LF9 nop; not filled. addi r3,r3,#1 j L108_LF9 nop; not filled. L111_LF9: lw r11,(r7) sw -120(r6),r11 slli r1,r8,#0x2 add r5,r1,r9 add r4,r1,r10 L114_LF9: addi r3,r3,#1 lb r31,(r3) andi r2,r31,#0x00ff seqi r1,r2,#115 bnez r1,L113_LF9 nop; not filled. seqi r1,r2,#108 bnez r1,L114_LF9 nop; not filled. addi r1,r31,#-102 andi r1,r1,#0x00ff sleui r1,r1,#1 bnez r1,L120_LF9 nop; not filled. seqi r1,r2,#101 beqz r1,L119_LF9 nop; not filled. L120_LF9: addi r7,r7,#4 addi r6,r6,#4 addi r8,r8,#1 lw r5,4(r5) sw -116(r4),r5 j L113_LF9 nop; not filled. L119_LF9: addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#25 beqz r1,L114_LF9 nop; not filled. L113_LF9: addi r7,r7,#4 addi r6,r6,#4 addi r8,r8,#1 L108_LF9: addi r3,r3,#1 lb r2,(r3) andi r1,r2,#0x00ff snei r1,r1,#0 bnez r1,L109_LF9 nop; not filled. L107_LF9: addi r29,r29,#-40 addi r1,r30,#-88 sw (r29),r1 lw r1,-128(r30) sw 4(r29),r1 lw r11,-124(r30) sw 8(r29),r11 lw r11,-120(r30) sw 12(r29),r11 lw r11,-116(r30) sw 16(r29),r11 lw r11,-112(r30) sw 20(r29),r11 lw r11,-108(r30) sw 24(r29),r11 lw r11,-104(r30) sw 28(r29),r11 lw r11,-100(r30) sw 32(r29),r11 jal _printf nop; not filled. addi r29,r29,#40 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TrapPrintfHandler_LF9 .data .align 2 LC3_LF9: .ascii "Interrupt cause=0x%x iar=0x%x isr=0x%x args=0x%08x.\n\000" .align 2 LC4_LF9: .ascii "Got a context switch trap!\n\000" .align 2 LC5_LF9: .ascii "Got an exit trap!\n\000" .align 2 LC6_LF9: .ascii "Got a fork trap!\n\000" .align 2 LC7_LF9: .ascii "Got a process sleep trap!\n\000" .align 2 LC8_LF9: .ascii "Got a printf trap!\n\000" .align 2 LC9_LF9: .ascii "Got an open with parameters (\'%s\',0x%x)\n\000" .align 2 LC10_LF9: .ascii "Got an unrecognized trap (0x%x) - exiting!\n\000" .align 2 LC11_LF9: .ascii "Got a timer interrupt!\n\000" .align 2 LC12_LF9: .ascii "Got a keyboard interrupt (char=0x%x(%c), nleft=%d)!\n\000" .align 2 LC13_LF9: .ascii "Exiting after illegal access at iar=0x%x, isr=0x%x\n\000" .align 2 LC14_LF9: .ascii "Exiting after illegal address at iar=0x%x, isr=0x%x\n\000" .align 2 LC15_LF9: .ascii "Exiting after illegal instruction at iar=0x%x, isr=0x%x\n\000" .align 2 LC16_LF9: .ascii "Exiting after page fault at iar=0x%x, isr=0x%x\n\000" .align 2 LC17_LF9: .ascii "Got an unrecognized system interrupt (0x%x) - exiting!\n\000" .align 2 LC18_LF9: .ascii "About to return from dointerrupt.\n\000" .text .align 2 .proc _dointerrupt .global _dointerrupt _dointerrupt: ; Function 'dointerrupt'; 56 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#88; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r2,(r30) lw r6,4(r30) lw r4,8(r30) lw r3,12(r30) addi r29,r29,#-8 lhi r5,((_debugstr)>>16)&0xffff addui r5,r5,(_debugstr)&0xffff sw (r29),r5 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L128_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r5 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L127_LF9 nop; not filled. L128_LF9: addi r29,r29,#-24 lhi r7,((LC3_LF9)>>16)&0xffff addui r7,r7,(LC3_LF9)&0xffff sw (r29),r7 sw 4(r29),r2 sw 8(r29),r6 sw 12(r29),r4 sw 16(r29),r3 jal _printf nop; not filled. addi r29,r29,#24 L127_LF9: lhi r7,#2048 addui r7,r7,#0 and r1,r2,r7 snei r1,r1,#0 beqz r1,L129_LF9 nop; not filled. lhi r7,#-2049 addui r7,r7,#65535 and r2,r2,r7 seqi r1,r2,#1075 bnez r1,L223_LF9 nop; not filled. sgtui r1,r2,#1075 bnez r1,L215_LF9 nop; not filled. seqi r1,r2,#531 bnez r1,L146_LF9 nop; not filled. sgtui r1,r2,#531 bnez r1,L216_LF9 nop; not filled. seqi r1,r2,#528 bnez r1,L154_LF9 nop; not filled. sgtui r1,r2,#528 bnez r1,L217_LF9 nop; not filled. seqi r1,r2,#80 bnez r1,L207_LF9 nop; not filled. seqi r1,r2,#513 beqz r1,L213_LF9 nop; not filled. j L143_LF9 nop; not filled. L217_LF9: seqi r1,r2,#529 bnez r1,L157_LF9 nop; not filled. seqi r1,r2,#530 beqz r1,L213_LF9 nop; not filled. j L163_LF9 nop; not filled. L216_LF9: seqi r1,r2,#1024 bnez r1,L131_LF9 nop; not filled. sgtui r1,r2,#1024 bnez r1,L218_LF9 nop; not filled. seqi r1,r2,#532 bnez r1,L151_LF9 nop; not filled. seqi r1,r2,#768 beqz r1,L213_LF9 nop; not filled. j L134_LF9 nop; not filled. L218_LF9: seqi r1,r2,#1072 bnez r1,L137_LF9 nop; not filled. sgtui r1,r2,#1072 bnez r1,L219_LF9 nop; not filled. seqi r1,r2,#1040 beqz r1,L213_LF9 nop; not filled. j L140_LF9 nop; not filled. L219_LF9: seqi r1,r2,#1074 beqz r1,L213_LF9 nop; not filled. j L166_LF9 nop; not filled. L215_LF9: seqi r1,r2,#1108 bnez r1,L187_LF9 nop; not filled. sgtui r1,r2,#1108 bnez r1,L220_LF9 nop; not filled. seqi r1,r2,#1104 bnez r1,L174_LF9 nop; not filled. sgtui r1,r2,#1104 bnez r1,L221_LF9 nop; not filled. seqi r1,r2,#1088 bnez r1,L169_LF9 nop; not filled. seqi r1,r2,#1089 beqz r1,L213_LF9 nop; not filled. j L170_LF9 nop; not filled. L221_LF9: seqi r1,r2,#1106 bnez r1,L182_LF9 nop; not filled. sgtui r1,r2,#1106 beqz r1,L178_LF9 nop; not filled. j L186_LF9 nop; not filled. L220_LF9: seqi r1,r2,#1111 bnez r1,L199_LF9 nop; not filled. sgtui r1,r2,#1111 bnez r1,L222_LF9 nop; not filled. seqi r1,r2,#1109 bnez r1,L191_LF9 nop; not filled. seqi r1,r2,#1110 beqz r1,L213_LF9 nop; not filled. j L195_LF9 nop; not filled. L222_LF9: seqi r1,r2,#1113 bnez r1,L209_LF9 nop; not filled. sltui r1,r2,#1113 bnez r1,L203_LF9 nop; not filled. seqi r1,r2,#1408 beqz r1,L213_LF9 nop; not filled. j L160_LF9 nop; not filled. L131_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L133_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L226_LF9 nop; not filled. L133_LF9: addi r29,r29,#-8 lhi r7,((LC4_LF9)>>16)&0xffff addui r7,r7,(LC4_LF9)&0xffff j L256_LF9 nop; not filled. L134_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L136_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L135_LF9 nop; not filled. L136_LF9: addi r29,r29,#-8 lhi r7,((LC5_LF9)>>16)&0xffff addui r7,r7,(LC5_LF9)&0xffff sw (r29),r7 jal _printf nop; not filled. addi r29,r29,#8 L135_LF9: addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _ProcessDestroy nop; not filled. jal _ProcessSchedule nop; not filled. j L243_LF9 nop; not filled. L137_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L139_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L223_LF9 nop; not filled. L139_LF9: addi r29,r29,#-8 lhi r7,((LC6_LF9)>>16)&0xffff addui r7,r7,(LC6_LF9)&0xffff sw (r29),r7 jal _printf nop; not filled. j L243_LF9 nop; not filled. L140_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L142_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L141_LF9 nop; not filled. L142_LF9: addi r29,r29,#-8 lhi r7,((LC7_LF9)>>16)&0xffff addui r7,r7,(LC7_LF9)&0xffff sw (r29),r7 jal _printf nop; not filled. addi r29,r29,#8 L141_LF9: addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _ProcessSuspend nop; not filled. jal _ProcessSchedule nop; not filled. j L243_LF9 nop; not filled. L143_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L145_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L144_LF9 nop; not filled. L145_LF9: addi r29,r29,#-8 lhi r7,((LC8_LF9)>>16)&0xffff addui r7,r7,(LC8_LF9)&0xffff sw (r29),r7 jal _printf nop; not filled. addi r29,r29,#8 L144_LF9: addi r29,r29,#-8 sw (r29),r3 andi r1,r4,#64 sw 4(r29),r1 jal _TrapPrintfHandler_LF9 nop; not filled. j L243_LF9 nop; not filled. L146_LF9: andi r1,r4,#64 snei r1,r1,#0 beqz r1,L147_LF9 nop; not filled. lw r7,(r3) sw -24(r30),r7 lw r3,4(r3) sw -20(r30),r3 j L148_LF9 nop; not filled. L147_LF9: addi r29,r29,#-16 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r7,(r2) sw (r29),r7 sw 4(r29),r3 addi r1,r30,#-24 sw 8(r29),r1 addi r7,r0,#8 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. lw r2,(r2) sw (r29),r2 lw r1,-24(r30) sw 4(r29),r1 addi r2,r30,#-56 sw 8(r29),r2 addi r7,r0,#31 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. addi r7,r0,(#0x0)&0xff sb -25(r30),r7 sw -24(r30),r2 addi r29,r29,#16 L148_LF9: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 lw r1,-20(r30) lhi r7,#1 addui r7,r7,#0 add r1,r1,r7 sw 4(r29),r1 jal _ProcessSetResult nop; not filled. addi r29,r29,#-8 lhi r7,((LC9_LF9)>>16)&0xffff addui r7,r7,(LC9_LF9)&0xffff sw (r29),r7 lw r1,-24(r30) sw 4(r29),r1 lw r7,-20(r30) sw 8(r29),r7 jal _printf nop; not filled. addi r29,r29,#16 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop; not filled. j L243_LF9 nop; not filled. L151_LF9: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop; not filled. j L243_LF9 nop; not filled. L154_LF9: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop; not filled. j L243_LF9 nop; not filled. L157_LF9: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop; not filled. j L243_LF9 nop; not filled. L160_LF9: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop; not filled. j L243_LF9 nop; not filled. L163_LF9: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop; not filled. j L243_LF9 nop; not filled. L166_LF9: addi r29,r29,#-8 sw (r29),r3 andi r1,r4,#64 sw 4(r29),r1 jal _TrapProcessCreateHandler_LF9 nop; not filled. j L243_LF9 nop; not filled. L169_LF9: addi r29,r29,#-8 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r7,(r2) sw (r29),r7 jal _MemoryCreateSharedPage nop; not filled. add r31,r0,r1 lw r2,(r2) sw (r29),r2 sw 4(r29),r31 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L170_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L172_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L244_LF9 nop; not filled. L172_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L244_LF9: addi r29,r29,#16 lw r31,-60(r30) addi r29,r29,#-8 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r7,(r2) sw (r29),r7 sw 4(r29),r31 jal _mmap nop; not filled. add r31,r0,r1 lw r2,(r2) sw (r29),r2 sw 4(r29),r31 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L174_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L176_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L245_LF9 nop; not filled. L176_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L245_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _SemCreate nop; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L178_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L180_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L246_LF9 nop; not filled. L180_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L246_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _SemHandleWait nop; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L182_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L184_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L247_LF9 nop; not filled. L184_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L247_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _SemHandleSignal nop; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L186_LF9: jal _LockCreate nop; not filled. add r2,r0,r1 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L187_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L189_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L248_LF9 nop; not filled. L189_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L248_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _LockHandleAcquire nop; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L191_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L193_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L249_LF9 nop; not filled. L193_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L249_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _LockHandleRelease nop; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L195_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L197_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L250_LF9 nop; not filled. L197_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L250_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondCreate nop; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L199_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L201_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L251_LF9 nop; not filled. L201_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L251_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondHandleWait nop; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L203_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L205_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L252_LF9 nop; not filled. L205_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L252_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondHandleSignal nop; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L207_LF9: lhi r1,((_MY_TIMER)>>16)&0xffff addui r1,r1,(_MY_TIMER)&0xffff lw r2,(r1) addi r1,r0,#1000 movi2fp f0,r2 movi2fp f1,r1 divu f0,f0,f1 movfp2i r2,f0 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L209_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L211_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L253_LF9 nop; not filled. L211_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L253_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondHandleBroadcast nop; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L213_LF9: addi r29,r29,#-8 lhi r7,((LC10_LF9)>>16)&0xffff addui r7,r7,(LC10_LF9)&0xffff j L254_LF9 nop; not filled. L129_LF9: seqi r1,r2,#3 bnez r1,L233_LF9 nop; not filled. sgtui r1,r2,#3 bnez r1,L239_LF9 nop; not filled. seqi r1,r2,#1 bnez r1,L235_LF9 nop; not filled. seqi r1,r2,#2 beqz r1,L237_LF9 nop; not filled. j L234_LF9 nop; not filled. L239_LF9: seqi r1,r2,#64 bnez r1,L225_LF9 nop; not filled. sgtui r1,r2,#64 bnez r1,L240_LF9 nop; not filled. seqi r1,r2,#32 beqz r1,L237_LF9 nop; not filled. j L236_LF9 nop; not filled. L240_LF9: seqi r1,r2,#72 beqz r1,L237_LF9 nop; not filled. j L228_LF9 nop; not filled. L225_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L227_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L226_LF9 nop; not filled. L227_LF9: addi r29,r29,#-8 lhi r7,((LC11_LF9)>>16)&0xffff addui r7,r7,(LC11_LF9)&0xffff L256_LF9: sw (r29),r7 jal _printf nop; not filled. addi r29,r29,#8 L226_LF9: jal _ProcessSchedule nop; not filled. j L223_LF9 nop; not filled. L228_LF9: lhi r4,#-16 addui r4,r4,#416 lhi r3,#-16 addui r3,r3,#384 L229_LF9: lw r2,(r4) lw r1,(r3) addi r29,r29,#-16 lhi r7,((LC12_LF9)>>16)&0xffff addui r7,r7,(LC12_LF9)&0xffff sw (r29),r7 sw 4(r29),r1 sw 8(r29),r1 sw 12(r29),r2 jal _printf nop; not filled. addi r29,r29,#16 sgti r1,r2,#1 beqz r1,L223_LF9 nop; not filled. j L229_LF9 nop; not filled. L233_LF9: addi r29,r29,#-16 lhi r7,((LC13_LF9)>>16)&0xffff addui r7,r7,(LC13_LF9)&0xffff j L255_LF9 nop; not filled. L234_LF9: addi r29,r29,#-16 lhi r7,((LC14_LF9)>>16)&0xffff addui r7,r7,(LC14_LF9)&0xffff j L255_LF9 nop; not filled. L235_LF9: addi r29,r29,#-16 lhi r7,((LC15_LF9)>>16)&0xffff addui r7,r7,(LC15_LF9)&0xffff j L255_LF9 nop; not filled. L236_LF9: addi r29,r29,#-16 lhi r7,((LC16_LF9)>>16)&0xffff addui r7,r7,(LC16_LF9)&0xffff L255_LF9: sw (r29),r7 sw 4(r29),r6 sw 8(r29),r4 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#16 j L223_LF9 nop; not filled. L237_LF9: addi r29,r29,#-8 lhi r7,((LC17_LF9)>>16)&0xffff addui r7,r7,(LC17_LF9)&0xffff L254_LF9: sw (r29),r7 sw 4(r29),r2 jal _printf nop; not filled. jal _exitsim nop; not filled. L243_LF9: addi r29,r29,#8 L223_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L242_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L241_LF9 nop; not filled. L242_LF9: addi r29,r29,#-8 lhi r7,((LC18_LF9)>>16)&0xffff addui r7,r7,(LC18_LF9)&0xffff sw (r29),r7 jal _printf nop; not filled. addi r29,r29,#8 L241_LF9: jal _intrreturn nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dointerrupt ; Compiled by GCC .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF10 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF10 nop; not filled. L6_LF10: addi r31,r0,#1 L5_LF10: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF10 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF10 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF10 nop; not filled. L12_LF10: addi r2,r0,#1 L11_LF10: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF10 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF10: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0_LF10: .ascii "Process #\000" .align 2 LC1_LF10: .ascii "Running process %d (iteration %d)!\n\000" .text .align 2 .proc _doSomething_LF10 _doSomething_LF10: ; Function 'doSomething'; 80 bytes of locals, 7 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#120; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r6,(r30) addi r1,r0,#10 movi2fp f0,r6 movi2fp f1,r1 div f0,f0,f1 movfp2i r2,f0 slli r1,r2,#0x2 add r1,r1,r2 slli r1,r1,#0x1 sub r7,r6,r1 slei r1,r6,#99 beqz r1,L52_LF10 nop; not filled. addi r29,r29,#-8 slli r1,r7,#0x2 add r1,r1,r7 slli r1,r1,#0x2 lhi r8,((_mysems_LF10)>>16)&0xffff addui r8,r8,(_mysems_LF10)&0xffff add r1,r1,r8 sw (r29),r1 addi r8,r0,#1 sw 4(r29),r8 jal _SemInit nop; not filled. addi r3,r0,#1 addi r29,r29,#8 addi r4,r30,#-48 addi r5,r30,#-88 add r2,r0,r6 L56_LF10: addi r29,r29,#-8 sw (r29),r4 lhi r8,((LC0_LF10)>>16)&0xffff addui r8,r8,(LC0_LF10)&0xffff sw 4(r29),r8 jal _dstrcpy nop; not filled. sw (r29),r3 sw 4(r29),r5 jal _ditoa nop; not filled. sw (r29),r4 sw 4(r29),r5 jal _dstrcat nop; not filled. addi r29,r29,#-16 lhi r8,((_doSomething_LF10)>>16)&0xffff addui r8,r8,(_doSomething_LF10)&0xffff sw (r29),r8 slli r1,r2,#0x5 sub r1,r1,r2 slli r1,r1,#0x2 add r1,r1,r2 slli r1,r1,#0x3 add r1,r1,r6 sw 4(r29),r1 addi r8,r0,#0 sw 8(r29),r8 sw 12(r29),r8 sw 16(r29),r4 sw 20(r29),r8 jal _ProcessFork nop; not filled. addi r29,r29,#24 add r2,r2,r6 addi r3,r3,#1 slei r1,r3,#6 bnez r1,L56_LF10 nop; not filled. L52_LF10: addi r29,r29,#-8 slli r1,r7,#0x2 add r1,r1,r7 slli r1,r1,#0x2 lhi r8,((_mysems_LF10)>>16)&0xffff addui r8,r8,(_mysems_LF10)&0xffff add r1,r1,r8 sw (r29),r1 jal _SemWait nop; not filled. addi r3,r0,#0 addi r29,r29,#8 slli r2,r6,#0x1 slt r1,r3,r2 beqz r1,L59_LF10 nop; not filled. addi r5,r0,#1000 add r4,r0,r2 L61_LF10: movi2fp f0,r3 movi2fp f1,r5 div f0,f0,f1 movfp2i r2,f0 slli r1,r2,#0x5 sub r1,r1,r2 slli r1,r1,#0x2 add r1,r1,r2 slli r1,r1,#0x3 sne r1,r3,r1 bnez r1,L62_LF10 nop; not filled. addi r29,r29,#-16 lhi r8,((LC1_LF10)>>16)&0xffff addui r8,r8,(LC1_LF10)&0xffff sw (r29),r8 sw 4(r29),r6 sw 8(r29),r3 jal _printf nop; not filled. addi r29,r29,#16 L62_LF10: addi r3,r3,#1 slt r1,r3,r4 bnez r1,L61_LF10 nop; not filled. L59_LF10: addi r29,r29,#-8 slli r1,r7,#0x2 add r1,r1,r7 slli r1,r1,#0x2 lhi r8,((_mysems_LF10)>>16)&0xffff addui r8,r8,(_mysems_LF10)&0xffff add r1,r1,r8 sw (r29),r1 jal _SemSignal nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _doSomething_LF10 .data .align 2 LC2_LF10: .ascii "chasetail\000" .align 2 LC3_LF10: .ascii "Chasing tail %d.\n\000" .align 2 LC4_LF10: .ascii "Open of (%s,0x%x) returns 0x%x.\n\000" .align 2 LC5_LF10: .ascii "ChaseTail\000" .text .align 2 .proc _chaseTail_LF10 _chaseTail_LF10: ; Function 'chaseTail'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r4,(r30) lhi r3,((LC2_LF10)>>16)&0xffff addui r3,r3,(LC2_LF10)&0xffff addi r29,r29,#-8 lhi r5,((LC3_LF10)>>16)&0xffff addui r5,r5,(LC3_LF10)&0xffff sw (r29),r5 sw 4(r29),r4 jal _printf nop; not filled. sw (r29),r3 addi r2,r4,#8192 sw 4(r29),r2 jal _Open nop; not filled. addi r29,r29,#-8 lhi r5,((LC4_LF10)>>16)&0xffff addui r5,r5,(LC4_LF10)&0xffff sw (r29),r5 sw 4(r29),r3 sw 8(r29),r2 sw 12(r29),r1 jal _printf nop; not filled. addi r29,r29,#16 slei r1,r4,#39 beqz r1,L67_LF10 nop; not filled. addi r29,r29,#-24 lhi r5,((_chaseTail_LF10)>>16)&0xffff addui r5,r5,(_chaseTail_LF10)&0xffff sw (r29),r5 addi r1,r4,#1 sw 4(r29),r1 addi r5,r0,#0 sw 8(r29),r5 sw 12(r29),r5 lhi r5,((LC5_LF10)>>16)&0xffff addui r5,r5,(LC5_LF10)&0xffff sw 16(r29),r5 addi r5,r0,#0 sw 20(r29),r5 jal _ProcessFork nop; not filled. addi r29,r29,#24 L67_LF10: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _chaseTail_LF10 .data .align 2 LC6_LF10: .ascii "%d \000" .align 2 LC7_LF10: .ascii "Random number %02i is 0x%08x.\n\000" .text .align 2 .proc _SysprocCreateProcesses .global _SysprocCreateProcesses _SysprocCreateProcesses: ; Function 'SysprocCreateProcesses'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lhi r2,((_mysems_LF10)>>16)&0xffff addui r2,r2,(_mysems_LF10)&0xffff addi r3,r2,#180 L90_LF10: addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#1 sw 4(r29),r4 jal _SemInit nop; not filled. addi r29,r29,#8 addi r2,r2,#20 sle r1,r2,r3 bnez r1,L90_LF10 nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SysprocCreateProcesses .data .align 2 _mysems_LF10: .space 200 ;;; This file just includes a single variable that contains the last address ;;; in the operating system. The rest of memory is available for use by ;;; processes. .align 2 .global _lastosaddress _lastosaddress: .word _lastosaddress+8 ;;; Ethan L. Miller, 1999. Released to the public domain ;;; ;;; Most of the traps are called in files from libtraps. .text .align 2 .proc _exit .global _exit _exit: trap #0x300 jr r31 nop .endproc _exit ; for the benefit of gcc. .proc ___main .global ___main ___main: jr r31 nop .endproc ___main ;;; ;;; Stub functions for DLX traps. ;;; ;;; Ethan L. Miller, 1999. Released to the public domain. ;;; ;;; There are two sets of traps here. The traps such as Open and Close ;;; (note the capital letters) are for use by user programs. The traps ;;; with names such as open and close (lower case) are for use by the OS. ;;; .align 2 .proc _open .global _open _open: trap #0x2013 jr r31 nop .endproc _open .proc _close .global _close _close: trap #0x2014 jr r31 nop .endproc _close .proc _read .global _read _read: trap #0x2010 jr r31 nop .endproc _read .proc _write .global _write _write: trap #0x2011 jr r31 nop .endproc _write .proc _lseek .global _lseek _lseek: trap #0x2012 jr r31 nop .endproc _lseek ;;; The following are the traps to be used by user-level programs ;;; .align 2 .proc _Open .global _Open _Open: trap #0x213 jr r31 nop .endproc _Open .proc _Close .global _Close _Close: trap #0x214 jr r31 nop .endproc _Close .proc _Read .global _Read _Read: trap #0x210 jr r31 nop .endproc _Read .proc _Write .global _Write _Write: trap #0x211 jr r31 nop .endproc _Write .proc _Lseek .global _Lseek _Lseek: trap #0x212 jr r31 nop .endproc _Lseek ;;; ;;; Stub functions for DLX traps. ;;; ;;; Ethan L. Miller, 1999. Released to the public domain. ;;; ;;; There are two exit traps. The first, _exitsim, actually exits the ;;; simulator. The second, _exit, simply calls a regular trap in the ;;; DLX simulator, and would be suitable for a user program that wants ;;; to signal the OS that it's exiting. ;;; ;;; IMPORTANT: all code that's run "native" on the simulator - OS code and ;;; programs run without an OS - should call exitsim() rather than just ;;; falling through to exit. ;;; .align 2 .proc _exitsim .global _exitsim _exitsim: trap #0x2f00 jr r31 nop .endproc _exitsim .proc _exit .global _exit _exit: trap #0x300 jr r31 nop .endproc _exit ; ; Stub functions for DLX traps. ; ; Aaron Sawdey 1996; released to the Public Domain. ; .proc _printf .global _printf _printf: trap #0x2001 jr r31 nop .endproc _printf .text .global _etext _etext: .align 3 .data .global _edata _edata:

src/synch.working.h

// // synch.h // // Include file for synchronization stuff. The synchronization // primitives include: // Semaphore // Lock // Condition // // Semaphores are the only "native" synchronization primitive. // Condition variables and locks are implemented using semaphores. // #ifndef _synch_h_ #define _synch_h_ #include "queue.h" typedef struct Sem { Queue waiting; int count; } Sem; extern void SemInit (Sem *, int); extern void SemWait (Sem *); extern void SemSignal (Sem *); typedef struct Lock { Sem mutex; // Overall mutex for the Lock. Sem pri; // Semaphore on which "high-priority" processes wait int npri; // Number of high-priority processes waiting } Lock; typedef struct Cond { Lock *condLock; Sem condSem; // Semaphore on which condition variables wait int nwaiters; // Number of processes waiting for this condition } Cond; extern void LockInit (Lock *); extern void LockAcquire (Lock *); extern void LockRelease (Lock *); extern void CondInit (Cond *, Lock *); extern void CondWait (Cond *); extern void CondSignal (Cond *); extern void CondBroadcast (Cond *); #endif //_synch_h_

src/filesys.c

// // filesys.c // // This file has handlers for the file systems supported by the DLX // operating system. These include both the basic, simulator-provided // file system and the more complex file system from the file system // assignment. static char rcsid[] = "$Id: filesys.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $"; #include "dlxos.h" #include "process.h" #include "filesys.h" // One entry for each type of file system. Currently, the file systems // are native Unix (0) and DLX (1). static Fs fs[2]; // One entry for each open file in the operating system. static FsOpenFile openfiles[FS_MAX_OPEN_FILES]; //---------------------------------------------------------------------- // // FdValid // // Return 1 if the file descriptor is valid, 0 otherwise. // //---------------------------------------------------------------------- static inline int FdValid (int fd) { return ((fd > 0) && (fd < FS_MAX_OPEN_FILES) && (openfiles[fd].flags != 0)); } //---------------------------------------------------------------------- // // FsFreeEntry // // Free an entry in the open files table. // //---------------------------------------------------------------------- static inline void FsFreeEntry (int x) { openfiles[x].flags = 0; } � //---------------------------------------------------------------------- // // FsOpen // // Open a file. The name of the file is passed, along with the file // mode (read or write). // // This function figures out which file system is desired using a // simple heuristic. Basically, if the file starts with "dlx:", it's // a DLX file system file. Otherwise, it's a UNIX file. // // Once the file system is figured out, this routine allocates a // file descriptor and calls the file-system specific open routine. // //---------------------------------------------------------------------- int FsOpen (const char *name, int mode) { int i, retval; dbprintf ('f', "Attepmting to open %s mode=%d.\n", name, mode); // Mask off all but the mode bits mode &= FS_MODE_RW; // ERROR if the caller hasn't specified a file mode. if (mode == 0) { return (-1); } for (i = 0; i < FS_MAX_OPEN_FILES; i++) { if (openfiles[i].flags == 0) { break; } } if (i >= FS_MAX_OPEN_FILES) { return (-1); } openfiles[i].flags = mode; // If file name starts with "dlx:", it's a DLX file system file. Pass // the remainder of the file name to FsDlxOpen. if (!dstrncmp (name, "dlx:", 4)) { name += 4; // Skip past the "dlx:" openfiles[i].fs = 1; } else { openfiles[i].fs = 0; } dbprintf ('f', "File %s opening in file system %d.\n",name,openfiles[i].fs); retval = fs[openfiles[i].fs].Open (i, name, mode); if (retval < 0) { // Open failed, so return error code FsFreeEntry (i); return (retval); } dbprintf ('f', "Opened %s in FS %d, mode=%d slot=%d.\n", name, openfiles[i].fs, mode, i); return (i); } //---------------------------------------------------------------------- // // FsClose // // Close an open file. Call the FS-specific routine, and then mark // the file table entry unused. // //---------------------------------------------------------------------- int FsClose (int fd) { int retval; if (!FdValid (fd)) { return (-1); } retval = fs[openfiles[fd].fs].Close (fd); FsFreeEntry (fd); return (retval); } � //---------------------------------------------------------------------- // // FsRead // // Read data from a file. // //---------------------------------------------------------------------- int FsRead (int fd, char *buf, int n) { if (!FdValid (fd)) { return (-1); } return (fs[openfiles[fd].fs].Read (fd, buf, n)); } //---------------------------------------------------------------------- // // FsWrite // // Write data to a file. // //---------------------------------------------------------------------- int FsWrite (int fd, char *buf, int n) { if (!FdValid (fd)) { return (-1); } return (fs[openfiles[fd].fs].Write (fd, buf, n)); } //---------------------------------------------------------------------- // // FsSeek // // Seek in a file. // //---------------------------------------------------------------------- int FsSeek (int fd, int offset, int whence) { if (!FdValid (fd)) { return (-1); } return (fs[openfiles[fd].fs].Seek (fd, offset, whence)); } //---------------------------------------------------------------------- // // FsDelete // // Delete a file. // //---------------------------------------------------------------------- int FsDelete (const char *name) { // If file name starts with "dlx:", it's a DLX file system file. Pass // the remainder of the file name to FsDlxDelete. if (!dstrncmp (name, "dlx:", 4)) { name += 4; // Skip past the "dlx:" return (fs[1].Delete (name)); } else { return (fs[0].Delete (name)); } } � //---------------------------------------------------------------------- // // FsUnixOpen // FsUnixRead // FsUnixWrite // FsUnixSeek // FsUnixClose // // Unix file I/O routines. These are pretty simple, and just call // the simulator traps directly using the file descriptor stored in // the open file table. // //---------------------------------------------------------------------- int FsUnixOpen (int x, const char *name, int mode) { dbprintf ('f', "Attempting to open file %s into desc %d, mode %d.\n", name, x, mode); if ((openfiles[x].u.Unix.fd = open (name, mode)) < 0) { return (openfiles[x].u.Unix.fd); } return (1); } int FsUnixRead (int x, char *buf, int n) { return (read (openfiles[x].u.Unix.fd, buf, n)); } int FsUnixWrite (int x, char *buf, int n) { return (write (openfiles[x].u.Unix.fd, buf, n)); } int FsUnixSeek (int x, int offset, int where) { return (lseek (openfiles[x].u.Unix.fd, offset, where)); } int FsUnixClose (int x) { int retval; retval = close (openfiles[x].u.Unix.fd); return (retval); } int FsUnixDelete (const char *name) { // Refuse to delete Unix files via the simulator. This is for safety // reasons. return (-1); } � //---------------------------------------------------------------------- // // FsDlxIo // // Perform a read or a write on a DLX file. // //---------------------------------------------------------------------- int FsDlxIo (int fd, char *buf, int n, int which) { // Your code to read or write a DLX file goes here. return (1); } //---------------------------------------------------------------------- // // FsDlxRead // FsDlxWrite // // This is just a stub that calls FsDlxIo to do either a read or a // write in the DLX file system. // //---------------------------------------------------------------------- int FsDlxRead (int fd, char *buf, int n) { return (FsDlxIo (fd, buf, n, 0)); } int FsDlxWrite (int fd, char *buf, int n) { return (FsDlxIo (fd, buf, n, 1)); } � //---------------------------------------------------------------------- // // FsDlxOpen // // Open a file in the DLX file system. Currently, this just means // to set current position to 0. However, it should also check to // make sure that the file exists. // //---------------------------------------------------------------------- int FsDlxOpen (int f, const char *name, int mode) { openfiles[f].u.Dlx.curpos = 0; // You may want to put additional code here (checking to see if the // file exists, etc.) return (1); } //---------------------------------------------------------------------- // // FsDlxSeek // // Seek in a DLX file. This just requires adjusting the current // position as recorded in the open files table. // //---------------------------------------------------------------------- int FsDlxSeek (int f, int offset, int whence) { switch (whence) { case FS_SEEK_SET: break; case FS_SEEK_CUR: break; case FS_SEEK_END: break; }; return (openfiles[f].u.Dlx.curpos); } //---------------------------------------------------------------------- // // FsDlxClose // // Close a DLX file system file. //---------------------------------------------------------------------- int FsDlxClose (int f) { // You may want to add code to this routine. return (1); } � //---------------------------------------------------------------------- // // FsDlxDelete // // Delete a file in the DLX file system. // //---------------------------------------------------------------------- int FsDlxDelete (const char *file) { // Your code goes here. return (1); } � //---------------------------------------------------------------------- // // FsModuleInit // // Initialize the file system module. This consists simply of marking // all the file slots as available. // //---------------------------------------------------------------------- void FsModuleInit () { int i; for (i = 0; i < FS_MAX_OPEN_FILES; i++) { openfiles[i].flags = 0; } fs[0].Open = FsUnixOpen; fs[0].Close = FsUnixClose; fs[0].Read = FsUnixRead; fs[0].Write = FsUnixWrite; fs[0].Seek = FsUnixSeek; fs[0].Delete = FsUnixDelete; fs[1].Open = FsDlxOpen; fs[1].Close = FsDlxClose; fs[1].Read = FsDlxRead; fs[1].Write = FsDlxWrite; fs[1].Seek = FsDlxSeek; fs[1].Delete = FsDlxDelete; }

src/dlxos.o

;;; ;;; Initialization code for programs running in the DLX simulator. ;;; Copyright (c) 1999 by Ethan Miller ;;; ;;; .text .align 2 ;;;---------------------------------------------------------------------- ;;; osinit ;;; ;;; This is the first function called by the simulator, even before main. ;;; Since it's called BEFORE any "real" routines, we can use any registers ;;; we want as long as we don't mess up the stack or frame pointers. ;;; ;;; This routine loads the interrupt vector to point to the interrupt ;;; handler later in this file. It should never return, because _main ;;; should call exitsim() or exit() rather than returning here. ;;; ;;; After initialization is done, this routine jumps to _main to start the ;;; C code portion of the operating system. ;;;---------------------------------------------------------------------- .proc _osinit .global _osinit _osinit: ;; Set up the interrupt handler lhi r1,(_intrhandler>>16)&0xffff addui r1,r1,_intrhandler&0xffff movi2s intrvec,r1 ;; Never returns because exitsim is called first j _main .endproc _osinit ;;;---------------------------------------------------------------------- ;;; intrhandler ;;; ;;; Called when an interrupt or trap is received by the CPU. It stores the ;;; current register set on the system stack. It then pushes the parameters ;;; to the C interrupt handler onto the stack: the ISR, IAR, and CAUSE ;;; registers along with the original stack pointer. The C interrupt ;;; handler can then copy arguments from the original stack, performing ;;; user -> system translations if necessary. ;;; ;;;---------------------------------------------------------------------- .proc _intrhandler .global _intrhandler _intrhandler: ;; We can use r31 as scratch space because its value was saved in ;; ir31. However, we must save the "real" value of r31 on the ;; stack. ;; Always store the registers on the system stack. This way, we don't ;; have to worry about translating things from user -> system. We ;; use r31 as the base register because its value was saved in ir31. ;; If this was a user process, load r29 with the current system ;; stack pointer. If it was a system process, just use the ;; current stack pointer. movs2i r31,isr andi r31,r31,0x40 bnez r31,intrSystem lhi r31,(_currentPCB>>16)&0xffff addui r31,r31,_currentPCB&0xffff lw r31,(r31) lw r31,4(r31) ;; Save the original (user) stack pointer sw -184(r31),r29 ; we haven't yet bumped SP, and 156-340 = -184 ;; Copy the system stack pointer into r29 (current stack pointer) ori r29,r31,0 beqz r0,intrSaveReg ; skip over the system part.... intrSystem: ;; Use the stack pointer we're already using ;; Save r29 because we won't save it later sw -184(r29),r29 ; we haven't yet bumped SP, and 156-340 = -184 intrSaveReg: ;; Adjust stack pointer for all the stuff we're going to push. This ;; is a bit more space than we need currently, but it leaves room ;; for more stuff if needed. subui r29,r29,#340 ;; Push all the stuff onto the stack sw 44(r29),r1 sw 48(r29),r2 sw 52(r29),r3 sw 56(r29),r4 sw 60(r29),r5 sw 64(r29),r6 sw 68(r29),r7 sw 72(r29),r8 sw 76(r29),r9 sw 80(r29),r10 sw 84(r29),r11 sw 88(r29),r12 sw 92(r29),r13 sw 96(r29),r14 sw 100(r29),r15 sw 104(r29),r16 sw 108(r29),r17 sw 112(r29),r18 sw 116(r29),r19 sw 120(r29),r20 sw 124(r29),r21 sw 128(r29),r22 sw 132(r29),r23 sw 136(r29),r24 sw 140(r29),r25 sw 144(r29),r26 sw 148(r29),r27 sw 152(r29),r28 ;; Skip r29 - stored earlier! sw 160(r29),r30 ;; Load the value of r31 from the special register and then save it movs2i r3,ir31 sw 164(r29),r3 ;; Store the floating-point registers sd 168(r29),f0 sd 176(r29),f2 sd 184(r29),f4 sd 192(r29),f6 sd 200(r29),f8 sd 208(r29),f10 sd 216(r29),f12 sd 224(r29),f14 sd 232(r29),f16 sd 240(r29),f18 sd 248(r29),f20 sd 256(r29),f22 sd 264(r29),f24 sd 272(r29),f26 sd 280(r29),f28 sd 288(r29),f30 ;; NOTE: we don't save the interrupt vector register because it ;; doesn't change from process to process. ;; NOTE: we don't save the status register because most of the flags ;; are the same from process to process if they're in the interrupt ;; handler. Of course, we DO save the ISR. movs2i r4,iar sw 296(r29),r4 movs2i r5,isr sw 300(r29),r5 movs2i r6,cause sw 304(r29),r6 movs2i r3,fault sw 308(r29),r3 movs2i r3,ptbase sw 312(r29),r3 movs2i r3,ptsize sw 316(r29),r3 movs2i r3,ptbits sw 320(r29),r3 ;; Push the interrupt information onto the stack sw 0(r29),r6 ; push CAUSE sw 4(r29),r4 ; push IAR sw 8(r29),r5 ; push ISR ;; Get the original stack pointer lw r1,156(r29) sw 12(r29),r1 ;; Save the previous interrupt stack frame address in the current frame lhi r1,(_currentPCB>>16)&0xffff addui r1,r1,_currentPCB&0xffff lw r1,(r1) lw r2,0(r1) sw 40(r29),r2 ;; Save this frame address in the PCB. This is used so the OS can ;; easily access the current interrupt save frame sw 0(r1), r29 ;; Call the "real" interrupt handler. This will possibly switch ;; contexts. This call never returns; instead, a separate routine ;; (_intrreturn) is called to return from interrupts after restoring ;; the current context. j _dointerrupt nop .endproc _intrhandler � ;;;---------------------------------------------------------------------- ;;; intrreturn ;;; ;;; Return from an interrupt or trap. This restores all of the previously ;;; saved registers and then returns to where the program left off. The ;;; current contents of the registers are destroyed. This routine uses ;;; the saved interrupt frame pointer, so the stack pointer need not ;;; be correct. Note, though, that the register contents from the previous ;;; process must have previously been saved - in other words, call this ;;; routine from a trap or interrupt handler. ;;;---------------------------------------------------------------------- .proc _intrreturn .global _intrreturn _intrreturn: ;; Disable interrupts - this routine must be atomic, and interrupts ;; may not be currently disabled. Don't worry about saving registers ;; because we're about to reload them anyway. jal _DisableIntrs ;; Get our interrupt stack frame location and load it into the stack ;; pointer. lhi r1,(_currentPCB>>16)&0xffff addui r1,r1,_currentPCB&0xffff lw r1,0(r1) lw r29,0(r1) ;; Get the previous interrupt stack frame location and make it the ;; current interrupt save frame. lw r2,40(r29) sw 0(r1), r2 ;; Reload the registers for the new process. We don't have to ;; load in the exact opposite order as long as we're careful to ;; get the right values back in. lw r3,296(r29) movi2s iar,r3 lw r3,300(r29) movi2s isr,r3 lw r3,304(r29) movi2s cause,r3 lw r3,308(r29) movi2s fault,r3 lw r3,312(r29) movi2s ptbase,r3 lw r3,316(r29) movi2s ptsize,r3 lw r3,320(r29) movi2s ptbits,r3 ;; Reload the floating point registers ld f0,168(r29) ld f2,176(r29) ld f4,184(r29) ld f6,192(r29) ld f8,200(r29) ld f10,208(r29) ld f12,216(r29) ld f14,224(r29) ld f16,232(r29) ld f18,240(r29) ld f20,248(r29) ld f22,256(r29) ld f24,264(r29) ld f26,272(r29) ld f28,280(r29) ld f30,288(r29) ;; Reload the integer registers. We don't reload r0 because it's ;; always 0. We won't reload r29 here because we're using it as ;; the stack pointer. The same goes for r1, which we'll use as ;; scratch so we can store r29. ;; Skip r1 - restored later lw r2,48(r29) lw r3,52(r29) lw r4,56(r29) lw r5,60(r29) lw r6,64(r29) lw r7,68(r29) lw r8,72(r29) lw r9,76(r29) lw r10,80(r29) lw r11,84(r29) lw r12,88(r29) lw r13,92(r29) lw r14,96(r29) lw r15,100(r29) lw r16,104(r29) lw r17,108(r29) lw r18,112(r29) lw r19,116(r29) lw r20,120(r29) lw r21,124(r29) lw r22,128(r29) lw r23,132(r29) lw r24,136(r29) lw r25,140(r29) lw r26,144(r29) lw r27,148(r29) lw r28,152(r29) ;; Skip r29 - restored later lw r30,160(r29) lw r31,164(r29) addui r29,r29,#340 ;; Save the current value of the stack pointer after adjusting it ;; Note that this will "destroy" the stack values below this interrupt ;; stack frame. This is exactly what we want! sw 4(r1),r29 ori r1,r29,#0 lw r29,-184(r1) ; 156-340 = -184 lw r1,-296(r1) ; 44-340 = -296 rfe .endproc _intrreturn � ;;;---------------------------------------------------------------------- ;;; SetIntrs ;;; ;;; This routine sets the interrupt level to the value passed (0 -> all ;;; interrupts enabled; 0xf -> all interrupts disabled). It returns the ;;; former value for the interrupt flags. ;;;---------------------------------------------------------------------- .proc _SetIntrs .global _SetIntrs _SetIntrs: subui r29,r29,#16 sw 12(r29),r2 ; save r2 lw r2,16(r29) ; Get the new interrupt level andi r2,r2,#0x0f ; Mask off interrupt levels movs2i r1,status sw 8(r29),r1 ; Store the old interrupt values andi r1,r1,#0xfff0 ; Mask off old interrupt level or r1,r2,r1 ; OR in new interrupt level movi2s status,r1 lw r1,8(r29) ; Get back the original interrupt level andi r1,r1,#0x0f ; Mask off all but interrupt levels lw r2,12(r29) ; restore r2 addui r29,r29,#16 ; restore stack pointer jr r31 nop .endproc _SetIntrs .proc _CurrentIntrs .global _CurrentIntrs _CurrentIntrs: movs2i r1,status andi r1,r1,#0xf jr r31 nop .endproc _CurrentIntrs ;;;---------------------------------------------------------------------- ;;; _ProcessSleep ;;; ;;; If a context switch from elsewhere in the kernel is desired, take a ;;; trap and call this routine from the trap handler. ;;;---------------------------------------------------------------------- .proc _ProcessSleep .global _ProcessSleep _ProcessSleep: trap #0x410 ; This is a process sleep trap nop jr r31 nop .endproc _ProcessSleep

src/dlxos.h

// // Routines used by the entire operating system. // #ifndef _dlxos_h_ #define _dlxos_h_ #include "misc.h" typedef unsigned int uint32; #define DLX_PROCESS_QUANTUM 100000 // in microseconds extern void SetTimer (int); extern char debugstr[]; #define ASSERT(cond,s) (cond ? 0 : printf ("%s: %s\n", __FUNCTION__,s)) // dbprintf() is a VERY useful macro. It gets used as follows: // dbprintf ('x', "This prints %d and %x\n", val1, val2); // This will print the expected string only if the debugging options contain // the letter 'x'. This allows users to turn on different debugging // statements at different times by using different letters. For example, // process debugging statements could use 'p', and memory 'm'. Specifying // a '+' in the debugging string will turn on all debugging printfs. #define dbprintf(flag, format, args...) \ if ((dindex(debugstr,flag)!=(char *)0) || \ (dindex(debugstr,'+')!=(char *)0)) { \ printf (format, ## args); \ } extern int CurrentIntrs (); extern int SetIntrs (int); extern void KbdModuleInit (); extern void intrreturn (); inline int DisableIntrs () { return (SetIntrs (0xf)); } inline int EnableIntrs () { return (SetIntrs (0x0)); } inline int RestoreIntrs (int intrs) { return (SetIntrs (intrs)); } #endif // _dlxos_h_

src/dlx.h

// // Definitions of flags and other things defined by the DLX processor. // #ifndef _dlx_h_ #define _dlx_h_ #define DLX_STATUS_INTRMASK 0x0f // up to 16 interrupt levels #define DLX_STATUS_FPTRUE 0x20 // Set if last FP comparison was true #define DLX_STATUS_SYSMODE 0x40 // Set if CPU is in system mode #define DLX_STATUS_PAGE_TABLE 0x100 // Set -> use a page table #define DLX_STATUS_TLB 0x200 // Set -> use a software-loaded TLB #endif // _dlx_h_

src/dlxos.ps

src/misc.o

; Compiled by GCC
.text
.align 2
.proc _isspace
.global _isspace
_isspace:
; Function 'isspace'; 0 bytes of locals, 1 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
lb r2,3(r30)
addi r31,r0,#0
andi r1,r2,#0x00ff
seqi r1,r1,#32
bnez r1,L6
nop ; not filled.
addi r1,r2,#-9
andi r1,r1,#0x00ff
sleui r1,r1,#1
beqz r1,L5
nop ; not filled.
L6:
addi r31,r0,#1
L5:
add r1,r0,r31
lw r2,0(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _isspace
.align 2
.proc _isxdigit
.global _isxdigit
_isxdigit:
; Function 'isxdigit'; 0 bytes of locals, 1 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
lb r31,3(r30)
addi r2,r0,#0
addi r1,r31,#-48
andi r1,r1,#0x00ff
sleui r1,r1,#9
bnez r1,L12
nop ; not filled.
addi r1,r31,#-97
andi r1,r1,#0x00ff
sleui r1,r1,#5
bnez r1,L12
nop ; not filled.
andi r1,r31,#0x00ff
snei r1,r1,#65
bnez r1,L11
nop ; not filled.
L12:
addi r2,r0,#1
L11:
add r1,r0,r2
lw r2,0(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _isxdigit
.align 2
.proc _dstrcpy
.global _dstrcpy
_dstrcpy:
; Function 'dstrcpy'; 0 bytes of locals, 2 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
lw r31,(r30)
lw r2,4(r30)
add r3,r0,r31
L19:
lb r1,(r2)
sb (r31),r1
addi r2,r2,#1
addi r31,r31,#1
andi r1,r1,#0x00ff
snei r1,r1,#0
bnez r1,L19
nop ; not filled.
add r1,r0,r3
lw r2,0(r29)
lw r3,4(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrcpy
.align 2
.proc _dstrncpy
.global _dstrncpy
_dstrncpy:
; Function 'dstrncpy'; 0 bytes of locals, 3 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#24 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
lw r2,(r30)
lw r3,4(r30)
lw r31,8(r30)
add r4,r0,r2
j L37
nop ; not filled.
L34:
lb r1,(r3)
sb (r2),r1
addi r3,r3,#1
addi r2,r2,#1
andi r1,r1,#0x00ff
snei r1,r1,#0
beqz r1,L32
nop ; not filled.
L37:
add r1,r0,r31
addi r31,r31,#-1
slei r1,r1,#0
beqz r1,L34
nop ; not filled.
L32:
add r1,r0,r4
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrncpy
.align 2
.proc _dstrcat
.global _dstrcat
_dstrcat:
; Function 'dstrcat'; 0 bytes of locals, 2 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
lw r31,(r30)
add r3,r0,r31
lbu r1,(r3)
snei r1,r1,#0
beqz r1,L50
nop ; not filled.
L51:
addi r31,r31,#1
lbu r1,(r31)
snei r1,r1,#0
bnez r1,L51
nop ; not filled.
L50:
add r2,r0,r31
lw r31,4(r30)
L54:
lb r1,(r31)
sb (r2),r1
addi r31,r31,#1
addi r2,r2,#1
andi r1,r1,#0x00ff
snei r1,r1,#0
bnez r1,L54
nop ; not filled.
add r1,r0,r3
lw r2,0(r29)
lw r3,4(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrcat
.align 2
.proc _dstrncmp
.global _dstrncmp
_dstrncmp:
; Function 'dstrncmp'; 0 bytes of locals, 4 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#24 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
sw 12(r29),r5
lw r3,(r30)
lw r4,4(r30)
lw r5,8(r30)
addi r2,r0,#0
slt r1,r2,r5
beqz r1,L73
nop ; not filled.
L75:
lbu r31,(r4)
snei r1,r31,#0
beqz r1,L86
nop ; not filled.
lbu r1,(r3)
sne r1,r1,r31
bnez r1,L73
nop ; not filled.
addi r3,r3,#1
addi r4,r4,#1
addi r2,r2,#1
slt r1,r2,r5
bnez r1,L75
nop ; not filled.
L73:
seq r1,r2,r5
beqz r1,L80
nop ; not filled.
L86:
addi r1,r0,#0
j L84
nop ; not filled.
L80:
lbu r31,(r3)
lbu r3,(r4)
sub r1,r31,r3
sgei r1,r1,#0
addi r2,r0,#-1
beqz r1,L82
nop ; not filled.
sne r2,r31,r3
L82:
add r1,r0,r2
L84:
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r5,12(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrncmp
.align 2
.proc _dstrlen
.global _dstrlen
_dstrlen:
; Function 'dstrlen'; 0 bytes of locals, 1 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
lw r31,(r30)
addi r2,r0,#0
j L97
nop ; not filled.
L95:
addi r2,r2,#1
L97:
lbu r1,(r31)
addi r31,r31,#1
snei r1,r1,#0
bnez r1,L95
nop ; not filled.
add r1,r0,r2
lw r2,0(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrlen
.align 2
.proc _dstrstr
.global _dstrstr
_dstrstr:
; Function 'dstrstr'; 0 bytes of locals, 6 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#32 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
sw 12(r29),r5
sw 16(r29),r6
sw 20(r29),r7
lw r5,(r30)
lw r7,4(r30)
addi r3,r0,#0
lbu r1,(r7)
addi r2,r7,#1
snei r1,r1,#0
beqz r1,L125
nop ; not filled.
L126:
addi r3,r3,#1
lbu r1,(r2)
addi r2,r2,#1
snei r1,r1,#0
bnez r1,L126
nop ; not filled.
L125:
add r6,r0,r3
j L149
nop ; not filled.
L130:
add r3,r0,r5
add r4,r0,r7
addi r2,r0,#0
slt r1,r2,r6
beqz r1,L134
nop ; not filled.
L136:
lbu r31,(r4)
snei r1,r31,#0
beqz r1,L150
nop ; not filled.
lbu r1,(r3)
sne r1,r1,r31
bnez r1,L134
nop ; not filled.
addi r3,r3,#1
addi r4,r4,#1
addi r2,r2,#1
slt r1,r2,r6
bnez r1,L136
nop ; not filled.
L134:
seq r1,r2,r6
beqz r1,L141
nop ; not filled.
L150:
addi r1,r0,#0
j L132
nop ; not filled.
L141:
lbu r3,(r3)
lbu r2,(r4)
sub r1,r3,r2
sgei r1,r1,#0
addi r31,r0,#-1
beqz r1,L143
nop ; not filled.
sne r31,r3,r2
L143:
add r1,r0,r31
L132:
snei r1,r1,#0
bnez r1,L131
nop ; not filled.
add r1,r0,r5
j L146
nop ; not filled.
L131:
addi r5,r5,#1
L149:
lbu r1,(r5)
snei r1,r1,#0
bnez r1,L130
nop ; not filled.
addi r1,r0,#0
L146:
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r5,12(r29)
lw r6,16(r29)
lw r7,20(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrstr
.align 2
.proc _dmindex
.global _dmindex
_dmindex:
; Function 'dmindex'; 0 bytes of locals, 5 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#32 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
sw 12(r29),r5
sw 16(r29),r6
lw r4,(r30)
lw r6,4(r30)
lbu r1,(r4)
snei r1,r1,#0
beqz r1,L164
nop ; not filled.
add r5,r0,r1
L165:
add r2,r0,r6
lb r31,(r6)
andi r1,r31,#0x00ff
snei r1,r1,#0
beqz r1,L163
nop ; not filled.
lbu r3,(r4)
L169:
andi r1,r31,#0x00ff
seq r1,r3,r1
beqz r1,L168
nop ; not filled.
add r1,r0,r4
j L173
nop ; not filled.
L168:
addi r2,r2,#1
lb r31,(r2)
andi r1,r31,#0x00ff
snei r1,r1,#0
bnez r1,L169
nop ; not filled.
L163:
bnez r5,L165
nop ; not filled.
L164:
addi r1,r0,#0
L173:
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r5,12(r29)
lw r6,16(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dmindex
.align 2
.proc _dindex
.global _dindex
_dindex:
; Function 'dindex'; 0 bytes of locals, 2 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
lw r2,(r30)
lw r3,4(r30)
j L187
nop ; not filled.
L183:
andi r1,r31,#0x00ff
seq r1,r1,r3
beqz r1,L184
nop ; not filled.
add r1,r0,r2
j L186
nop ; not filled.
L184:
addi r2,r2,#1
L187:
lb r31,(r2)
andi r1,r31,#0x00ff
snei r1,r1,#0
bnez r1,L183
nop ; not filled.
addi r1,r0,#0
L186:
lw r2,0(r29)
lw r3,4(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dindex
.align 2
.proc _ditoa
.global _ditoa
_ditoa:
; Function 'ditoa'; 0 bytes of locals, 5 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#32 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
sw 12(r29),r5
sw 16(r29),r6
lw r3,(r30)
lw r4,4(r30)
slti r1,r3,#0
beqz r1,L203
nop ; not filled.
addi r6,r0,(#0x2d)&0xff
j L216
nop ; not filled.
L203:
snei r1,r3,#0
bnez r1,L205
nop ; not filled.
addi r6,r0,(#0x30)&0xff
L216:
sb (r4),r6
addi r4,r4,#1
j L204
nop ; not filled.
L205:
addi r31,r0,#1
sle r1,r31,r3
beqz r1,L208
nop ; not filled.
L209:
slli r1,r31,#0x2
add r1,r1,r31
slli r31,r1,#0x1
sle r1,r31,r3
bnez r1,L209
nop ; not filled.
L208:
addi r5,r0,#10
L212:
movi2fp f0,r31
movi2fp f1,r5
div f0,f0,f1
movfp2i r31,f0
movi2fp f0,r3
movi2fp f1,r31
div f0,f0,f1
movfp2i r2,f0
addi r1,r2,#48
sb (r4),r1
addi r4,r4,#1
movi2fp f0,r2
movi2fp f1,r31
mult f0,f0,f1
movfp2i r1,f0
sub r3,r3,r1
sgti r1,r31,#1
bnez r1,L212
nop ; not filled.
L204:
addi r6,r0,(#0x0)&0xff
sb (r4),r6
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r5,12(r29)
lw r6,16(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _ditoa
.align 2
.proc _dstrtol
.global _dstrtol
_dstrtol:
; Function 'dstrtol'; 0 bytes of locals, 5 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#32 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
sw 12(r29),r5
sw 16(r29),r6
lw r2,(r30)
lw r5,4(r30)
lw r4,8(r30)
addi r3,r0,#0
j L247
nop ; not filled.
L220:
addi r2,r2,#1
L247:
lb r31,(r2)
andi r1,r31,#0x00ff
seqi r1,r1,#32
bnez r1,L220
nop ; not filled.
addi r1,r31,#-9
andi r1,r1,#0x00ff
sleui r1,r1,#1
bnez r1,L220
nop ; not filled.
snei r1,r5,#0
beqz r1,L222
nop ; not filled.
sw (r5),r2
L222:
lbu r31,(r2)
snei r1,r31,#0
beqz r1,L248
nop ; not filled.
seqi r1,r31,#45
beqz r1,L224
nop ; not filled.
addi r6,r0,#-1
addi r2,r2,#1
j L225
nop ; not filled.
L224:
addi r6,r0,#1
L225:
snei r1,r4,#0
bnez r1,L226
nop ; not filled.
lbu r1,(r2)
seqi r1,r1,#48
beqz r1,L227
nop ; not filled.
addi r2,r2,#1
lbu r31,(r2)
seqi r1,r31,#120
bnez r1,L229
nop ; not filled.
seqi r1,r31,#88
beqz r1,L228
nop ; not filled.
L229:
addi r4,r0,#16
addi r2,r2,#1
j L226
nop ; not filled.
L228:
addi r4,r0,#8
j L226
nop ; not filled.
L227:
addi r4,r0,#10
L226:
addi r1,r4,#-1
sgtui r1,r1,#15
beqz r1,L233
nop ; not filled.
L248:
add r1,r0,r3
j L245
nop ; not filled.
L233:
lb r31,(r2)
addi r1,r31,#-48
andi r1,r1,#0x00ff
sleui r1,r1,#9
beqz r1,L236
nop ; not filled.
andi r1,r31,#0x00ff
addi r1,r1,#-48
j L237
nop ; not filled.
L236:
addi r1,r31,#-97
andi r1,r1,#0x00ff
sleui r1,r1,#25
beqz r1,L238
nop ; not filled.
andi r1,r31,#0x00ff
addi r1,r1,#-87
j L237
nop ; not filled.
L238:
addi r1,r31,#-65
andi r1,r1,#0x00ff
sleui r1,r1,#25
beqz r1,L240
nop ; not filled.
andi r1,r31,#0x00ff
addi r1,r1,#-55
j L237
nop ; not filled.
L240:
addi r1,r0,#1000
L237:
slt r31,r1,r4
beqz r31,L246
nop ; not filled.
movi2fp f0,r3
movi2fp f1,r4
mult f0,f0,f1
movfp2i r3,f0
add r3,r3,r1
addi r2,r2,#1
bnez r31,L233
nop ; not filled.
L246:
snei r1,r5,#0
beqz r1,L244
nop ; not filled.
sw (r5),r2
L244:
movi2fp f0,r3
movi2fp f1,r6
mult f0,f0,f1
movfp2i r1,f0
L245:
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r5,12(r29)
lw r6,16(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrtol
.align 2
.proc _bcopy
.global _bcopy
_bcopy:
; Function 'bcopy'; 0 bytes of locals, 3 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#24 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
lw r3,(r30)
lw r2,4(r30)
lw r31,8(r30)
j L259
nop ; not filled.
L257:
lb r4,(r3)
sb (r2),r4
addi r3,r3,#1
addi r2,r2,#1
L259:
add r1,r0,r31
addi r31,r31,#-1
sgti r1,r1,#0
bnez r1,L257
nop ; not filled.
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _bcopy
.align 2
.proc _bzero
.global _bzero
_bzero:
; Function 'bzero'; 0 bytes of locals, 2 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
lw r2,(r30)
lw r31,4(r30)
j L270
nop ; not filled.
L268:
addi r3,r0,(#0x0)&0xff
sb (r2),r3
addi r2,r2,#1
L270:
add r1,r0,r31
addi r31,r31,#-1
sgti r1,r1,#0
bnez r1,L268
nop ; not filled.
lw r2,0(r29)
lw r3,4(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _bzero

src/queue.c

// // queue.c // // Variables for queues, and a routine to initialize the pool of links. // // #include "dlxos.h" #include "queue.h" Queue freeLinks; static Link linkpool[QUEUE_MAX_LINKS]; void QueueModuleInit () { int i; QueueInit (&freeLinks); for (i = 0; i < QUEUE_MAX_LINKS; i++) { dbprintf ('i', "Initializing queue link %d.\n", i); linkpool[i].next = NULL; QueueFreeLink (&(linkpool[i])); } } void QueueInit (Queue *q) { q->first = (Link *)q; q->last = (Link *)q; q->nitems = 0; } void QueueFreeLink (Link *l) { extern Queue freeLinks; // Make sure the link has already been freed! ASSERT ((l->next == NULL), "Link not empty"); QueueInsertLast (&freeLinks, l); } Link * QueueAllocLink () { extern Queue freeLinks; Link *l; if (! QueueEmpty (&freeLinks)) { l = QueueFirst (&freeLinks); QueueRemove (l); } else { l = NULL; } ASSERT ((l != NULL), "Link not allocated!"); return (l); }

src/process.h

// // process.h // // Definitions for process creation and manipulation. These include // the process control block (PCB) structure as well as information // about the stack format for a saved process. // #ifndef _process_h__ #define _process_h_ #include "dlxos.h" #include "queue.h" //#include "share_memory.h" #define PROCESS_MAX_PROCS 32 // Maximum number of active processes #define PROCESS_INIT_ISR_SYS 0x140 // Initial status reg value for system processes #define PROCESS_INIT_ISR_USER 0x100 // Initial status reg value for user processes #define PROCESS_STATUS_FREE 0x1 #define PROCESS_STATUS_RUNNABLE 0x2 #define PROCESS_STATUS_WAITING 0x4 #define PROCESS_STATUS_STARTING 0x8 #define PROCESS_STATUS_ZOMBIE 0x10 #define PROCESS_STATUS_MASK 0x3f #define PROCESS_TYPE_SYSTEM 0x100 #define PROCESS_TYPE_USER 0x200 // Lab3 : These parameters are used for lab 3 #define NUM_OF_RUNQUEUE 32 #define PUSER 50 #define TRUE 1 #define FALSE 0 typedef void (*VoidFunc)(); // Process control block typedef struct PCB { uint32 *currentSavedFrame; // -> current saved frame. MUST BE 1ST! uint32 *sysStackPtr; // Current system stack pointer. MUST BE 2ND! uint32 sysStackArea; // System stack area for this process unsigned int flags; char name[80]; // Process name uint32 pagetable[16]; // Statically allocated page table int npages; // Number of pages allocated to this process Link l; // Used for keeping PCB in queues // put in data used for your scheduling algorithm here } PCB; // Offsets of various registers from the stack pointer in the register // save frame. Offsets are in WORDS (4 byte chunks) #define PROCESS_STACK_IREG 10 // Offset of r0 (grows upwards) // NOTE: r0 isn't actually stored! This is for convenience - r1 is the // first stored register, and is at location PROCESS_STACK_IREG+1 #define PROCESS_STACK_FREG (PROCESS_STACK_IREG+32) // Offset of f0 #define PROCESS_STACK_IAR (PROCESS_STACK_FREG+32) // Offset of IAR #define PROCESS_STACK_ISR (PROCESS_STACK_IAR+1) #define PROCESS_STACK_CAUSE (PROCESS_STACK_IAR+2) #define PROCESS_STACK_FAULT (PROCESS_STACK_IAR+3) #define PROCESS_STACK_PTBASE (PROCESS_STACK_IAR+4) #define PROCESS_STACK_PTSIZE (PROCESS_STACK_IAR+5) #define PROCESS_STACK_PTBITS (PROCESS_STACK_IAR+6) #define PROCESS_STACK_PREV_FRAME 10 // points to previous interrupt frame #define PROCESS_STACK_FRAME_SIZE 85 // interrupt frame is 85 words #define SIZE_ARG_BUFF 1024 // Max number of characters in the // command-line arguments #define MAX_ARGS 128 // Max number of command-line // arguments extern PCB *currentPCB; extern int ProcessFork (VoidFunc, unsigned int, int, int,char *, int); extern void ProcessSchedule (); extern void ContextSwitch(void *, void *, int); extern void ProcessSuspend (PCB *); extern void ProcessWakeup (PCB *); extern void ProcessSetResult (PCB *, uint32); extern void ProcessSleep (); extern unsigned GetCurrentPid(); extern unsigned getpid(); void process_create(int p_nice, int p_info,char *name, ...); #endif /* _process_h_ */

src/userprog.lst

line address contents 1 ; Linked by DLX-LD. 2 ; MemSize 20480 3 ; Data size: 59 4 ; Text size: 3420 5 ; Stack size: 8192 6 00000000 .text 0x1000 7 00001000 .data 0x2000 8 ; Compiled by GCC 10 00002000 .align 2 11 00002000 LC0_LF0: 12 00002000 75736572 .ascii "userprog.dlx.obj\000" 12 00002004 70726f67 12 00002008 2e646c78 12 0000200c 2e6f626a 12 00002010 00 13 00002011 .align 2 14 00002014 LC1_LF0: 15 00002014 25632564 .ascii "%c%d\n\000" 15 00002018 0a00 16 0000201a .align 2 17 0000201c LC2_LF0: 18 0000201c 55736167 .ascii "Usage: \000" 18 00002020 653a2000 19 00002024 .align 2 20 00002024 LC3_LF0: 21 00002024 206e756d .ascii " number\n\000" 21 00002028 6265720a 21 0000202c 00 22 0000202d .align 2 23 00002030 LC4_LF0: 24 00002030 61726763 .ascii "argc = %d\n\000" 24 00002034 203d2025 24 00002038 640a00 25 0000203b .text 26 00001000 .align 2 27 00001000 .proc _main 28 00001000 .global _main 29 00001000 _main: 30 ; Function 'main'; 32 bytes of locals, 0 regs to save. 31 00001000 afbefffc sw -4(r29),r30; push fp 32 00001004 001df020 add r30,r0,r29; fp = sp 33 00001008 afbffff8 sw -8(r29),r31; push ret addr 34 0000100c 2fbd0028 subui r29,r29,#40; alloc local storage 35 00001010 8fc20000 lw r2,(r30) 36 00001014 8fc30004 lw r3,4(r30) 37 00001018 0c000d38 jal ___main 38 0000101c 54000000 nop; not filled. 39 00001020 60410002 seqi r1,r2,#2 40 00001024 14200018 bnez r1,L3_LF0 41 00001028 54000000 nop; not filled. 42 0000102c 60410003 seqi r1,r2,#3 43 00001030 102001a0 beqz r1,L20_LF0 44 00001034 54000000 nop; not filled. 45 00001038 080000cc j L9_LF0 46 0000103c 54000000 nop; not filled. 47 00001040 L3_LF0: 48 00001040 23bdfff0 addi r29,r29,#-16 49 00001044 8c630004 lw r3,4(r3) 50 00001048 afa30000 sw (r29),r3 51 0000104c 20060000 addi r6,r0,#0 52 00001050 afa60004 sw 4(r29),r6 53 00001054 2006000a addi r6,r0,#10 54 00001058 afa60008 sw 8(r29),r6 55 0000105c 0c000a08 jal _dstrtol 56 00001060 54000000 nop; not filled. 57 00001064 00012820 add r5,r0,r1 58 00001068 20060001 addi r6,r0,#1 59 0000106c afa60000 sw (r29),r6 60 00001070 0c000248 jal _sem_create 61 00001074 54000000 nop; not filled. 62 00001078 afa10000 sw (r29),r1 63 0000107c 23c4ffd8 addi r4,r30,#-40 64 00001080 afa40004 sw 4(r29),r4 65 00001084 0c0008d4 jal _ditoa 66 00001088 54000000 nop; not filled. 67 0000108c 20030000 addi r3,r0,#0 68 00001090 23bd0010 addi r29,r29,#16 69 00001094 0065082a slt r1,r3,r5 70 00001098 10200194 beqz r1,L2_LF0 71 0000109c 54000000 nop; not filled. 72 000010a0 23c2ffe8 addi r2,r30,#-24 73 000010a4 L7_LF0: 74 000010a4 23bdfff8 addi r29,r29,#-8 75 000010a8 afa30000 sw (r29),r3 76 000010ac afa20004 sw 4(r29),r2 77 000010b0 0c0008a8 jal _ditoa 78 000010b4 54000000 nop; not filled. 79 000010b8 23bdfff0 addi r29,r29,#-16 80 000010bc afa30000 sw (r29),r3 81 000010c0 20060000 addi r6,r0,#0 82 000010c4 afa60004 sw 4(r29),r6 83 000010c8 3c060000 lhi r6,((LC0_LF0)>>16)&0xffff 84 000010cc 24c62000 addui r6,r6,(LC0_LF0)&0xffff 85 000010d0 afa60008 sw 8(r29),r6 86 000010d4 afa2000c sw 12(r29),r2 87 000010d8 afa40010 sw 16(r29),r4 88 000010dc 20060000 addi r6,r0,#0 89 000010e0 afa60014 sw 20(r29),r6 90 000010e4 0c0001b0 jal _process_create 91 000010e8 54000000 nop; not filled. 92 000010ec 23bd0018 addi r29,r29,#24 93 000010f0 20630001 addi r3,r3,#1 94 000010f4 0065082a slt r1,r3,r5 95 000010f8 10200134 beqz r1,L2_LF0 96 000010fc 54000000 nop; not filled. 97 00001100 0bffffa0 j L7_LF0 98 00001104 54000000 nop; not filled. 99 00001108 L9_LF0: 100 00001108 23bdfff0 addi r29,r29,#-16 101 0000110c 8c660004 lw r6,4(r3) 102 00001110 afa60000 sw (r29),r6 103 00001114 20060000 addi r6,r0,#0 104 00001118 afa60004 sw 4(r29),r6 105 0000111c 2006000a addi r6,r0,#10 106 00001120 afa60008 sw 8(r29),r6 107 00001124 0c000940 jal _dstrtol 108 00001128 54000000 nop; not filled. 109 0000112c 00011020 add r2,r0,r1 110 00001130 8c630008 lw r3,8(r3) 111 00001134 afa30000 sw (r29),r3 112 00001138 20060000 addi r6,r0,#0 113 0000113c afa60004 sw 4(r29),r6 114 00001140 2006000a addi r6,r0,#10 115 00001144 afa60008 sw 8(r29),r6 116 00001148 0c00091c jal _dstrtol 117 0000114c 54000000 nop; not filled. 118 00001150 00012020 add r4,r0,r1 119 00001154 20030000 addi r3,r0,#0 120 00001158 23bd0010 addi r29,r29,#16 121 0000115c 2405c34f addui r5,r0,#49999 122 00001160 20420041 addi r2,r2,#65 123 00001164 L13_LF0: 124 00001164 23bdfff8 addi r29,r29,#-8 125 00001168 afa40000 sw (r29),r4 126 0000116c 0c000158 jal _sem_wait 127 00001170 54000000 nop; not filled. 128 00001174 201f0000 addi r31,r0,#0 129 00001178 23bd0008 addi r29,r29,#8 130 0000117c L16_LF0: 131 0000117c 23ff0001 addi r31,r31,#1 132 00001180 03e5082c sle r1,r31,r5 133 00001184 1420fff4 bnez r1,L16_LF0 134 00001188 54000000 nop; not filled. 135 0000118c 23bdfff0 addi r29,r29,#-16 136 00001190 3c060000 lhi r6,((LC1_LF0)>>16)&0xffff 137 00001194 24c62014 addui r6,r6,(LC1_LF0)&0xffff 138 00001198 afa60000 sw (r29),r6 139 0000119c afa20004 sw 4(r29),r2 140 000011a0 afa30008 sw 8(r29),r3 141 000011a4 0c0000d8 jal _Printf 142 000011a8 54000000 nop; not filled. 143 000011ac afa40000 sw (r29),r4 144 000011b0 0c000120 jal _sem_signal 145 000011b4 54000000 nop; not filled. 146 000011b8 23bd0010 addi r29,r29,#16 147 000011bc 20630001 addi r3,r3,#1 148 000011c0 70610063 slei r1,r3,#99 149 000011c4 10200068 beqz r1,L2_LF0 150 000011c8 54000000 nop; not filled. 151 000011cc 0bffff94 j L13_LF0 152 000011d0 54000000 nop; not filled. 153 000011d4 L20_LF0: 154 000011d4 23bdfff8 addi r29,r29,#-8 155 000011d8 3c060000 lhi r6,((LC2_LF0)>>16)&0xffff 156 000011dc 24c6201c addui r6,r6,(LC2_LF0)&0xffff 157 000011e0 afa60000 sw (r29),r6 158 000011e4 0c000098 jal _Printf 159 000011e8 54000000 nop; not filled. 160 000011ec 8c630000 lw r3,(r3) 161 000011f0 afa30000 sw (r29),r3 162 000011f4 0c000088 jal _Printf 163 000011f8 54000000 nop; not filled. 164 000011fc 3c060000 lhi r6,((LC3_LF0)>>16)&0xffff 165 00001200 24c62024 addui r6,r6,(LC3_LF0)&0xffff 166 00001204 afa60000 sw (r29),r6 167 00001208 0c000074 jal _Printf 168 0000120c 54000000 nop; not filled. 169 00001210 3c060000 lhi r6,((LC4_LF0)>>16)&0xffff 170 00001214 24c62030 addui r6,r6,(LC4_LF0)&0xffff 171 00001218 afa60000 sw (r29),r6 172 0000121c afa20004 sw 4(r29),r2 173 00001220 0c00005c jal _Printf 174 00001224 54000000 nop; not filled. 175 00001228 0c000b1c jal _exit 176 0000122c 54000000 nop; not filled. 177 00001230 L2_LF0: 178 00001230 0c000b14 jal _exit 179 00001234 54000000 nop 180 00001238 .endproc _main 181 ;;; 182 ;;; Stub functions for DLX traps. 183 ;;; 184 ;;; Ethan L. Miller, 1999. Released to the public domain. 185 ;;; 186 ;;; The traps such as Open and Close 187 ;;; (note the capital letters) are for use by user programs. The traps 188 ;;; with names such as open and close (lower case) are for use by the OS. 189 ;;; 192 00001238 .align 2 194 ;;; The following are the traps to be used by user-level programs 195 ;;; 197 00001238 .align 2 198 00001238 .proc _Open 199 00001238 .global _Open 200 00001238 _Open: 201 ;;; Note that trap #0x213 actually causes a trap vector in the OS of 202 ;;; 0x1213. The same is true for other user traps. Thus, a user trap 203 ;;; with trap #0x240 will result in a trap vector of 0x1240 in the OS. 204 00001238 44000213 trap #0x213 205 0000123c 4be00000 jr r31 206 00001240 54000000 nop 207 00001244 .endproc _Open 209 00001244 .proc _Close 210 00001244 .global _Close 211 00001244 _Close: 212 00001244 44000214 trap #0x214 213 00001248 4be00000 jr r31 214 0000124c 54000000 nop 215 00001250 .endproc _Close 217 00001250 .proc _Read 218 00001250 .global _Read 219 00001250 _Read: 220 00001250 44000210 trap #0x210 221 00001254 4be00000 jr r31 222 00001258 54000000 nop 223 0000125c .endproc _Read 225 0000125c .proc _Write 226 0000125c .global _Write 227 0000125c _Write: 228 0000125c 44000211 trap #0x211 229 00001260 4be00000 jr r31 230 00001264 54000000 nop 231 00001268 .endproc _Write 233 00001268 .proc _Lseek 234 00001268 .global _Lseek 235 00001268 _Lseek: 236 00001268 44000212 trap #0x212 237 0000126c 4be00000 jr r31 238 00001270 54000000 nop 239 00001274 .endproc _Lseek 241 00001274 .proc _Putchar 242 00001274 .global _Putchar 243 00001274 _Putchar: 244 00001274 44000280 trap #0x280 245 00001278 4be00000 jr r31 246 0000127c 54000000 nop 247 00001280 .endproc _Putchar 249 00001280 .proc _Printf 250 00001280 .global _Printf 251 00001280 _Printf: 252 00001280 44000201 trap #0x201 253 00001284 4be00000 jr r31 254 00001288 54000000 nop 255 0000128c .endproc _Printf 257 0000128c .proc _getpid 258 0000128c .global _getpid 259 0000128c _getpid: 260 0000128c 44000431 trap #0x431 261 00001290 4be00000 jr r31 262 00001294 54000000 nop 263 00001298 .endproc _getpid 266 00001298 .proc _process_create 267 00001298 .global _process_create 268 00001298 _process_create: 269 00001298 44000432 trap #0x432 270 0000129c 4be00000 jr r31 271 000012a0 54000000 nop 272 000012a4 .endproc _process_create 274 000012a4 .proc _shmget 275 000012a4 .global _shmget 276 000012a4 _shmget: 277 000012a4 44000440 trap #0x440 278 000012a8 4be00000 jr r31 279 000012ac 54000000 nop 280 000012b0 .endproc _shmget 282 000012b0 .proc _shmat 283 000012b0 .global _shmat 284 000012b0 _shmat: 285 000012b0 44000441 trap #0x441 286 000012b4 4be00000 jr r31 287 000012b8 54000000 nop 288 000012bc .endproc _shmat 290 000012bc .proc _sem_create 291 000012bc .global _sem_create 292 000012bc _sem_create: 293 000012bc 44000450 trap #0x450 294 000012c0 4be00000 jr r31 295 000012c4 54000000 nop 296 000012c8 .endproc _sem_create 298 000012c8 .proc _sem_wait 299 000012c8 .global _sem_wait 300 000012c8 _sem_wait: 301 000012c8 44000451 trap #0x451 302 000012cc 4be00000 jr r31 303 000012d0 54000000 nop 304 000012d4 .endproc _sem_wait 306 000012d4 .proc _sem_signal 307 000012d4 .global _sem_signal 308 000012d4 _sem_signal: 309 000012d4 44000452 trap #0x452 310 000012d8 4be00000 jr r31 311 000012dc 54000000 nop 312 000012e0 .endproc _sem_signal 314 000012e0 .proc _lock_create 315 000012e0 .global _lock_create 316 000012e0 _lock_create: 317 000012e0 44000453 trap #0x453 318 000012e4 4be00000 jr r31 319 000012e8 54000000 nop 320 000012ec .endproc _lock_create 322 000012ec .proc _lock_acquire 323 000012ec .global _lock_acquire 324 000012ec _lock_acquire: 325 000012ec 44000454 trap #0x454 326 000012f0 4be00000 jr r31 327 000012f4 54000000 nop 328 000012f8 .endproc _lock_acquire 330 000012f8 .proc _lock_release 331 000012f8 .global _lock_release 332 000012f8 _lock_release: 333 000012f8 44000455 trap #0x455 334 000012fc 4be00000 jr r31 335 00001300 54000000 nop 336 00001304 .endproc _lock_release 338 00001304 .proc _cond_create 339 00001304 .global _cond_create 340 00001304 _cond_create: 341 00001304 44000456 trap #0x456 342 00001308 4be00000 jr r31 343 0000130c 54000000 nop 344 00001310 .endproc _cond_create 346 00001310 .proc _cond_wait 347 00001310 .global _cond_wait 348 00001310 _cond_wait: 349 00001310 44000457 trap #0x457 350 00001314 4be00000 jr r31 351 00001318 54000000 nop 352 0000131c .endproc _cond_wait 354 0000131c .proc _cond_signal 355 0000131c .global _cond_signal 356 0000131c _cond_signal: 357 0000131c 44000458 trap #0x458 358 00001320 4be00000 jr r31 359 00001324 54000000 nop 360 00001328 .endproc _cond_signal 362 00001328 .proc _cond_broadcast 363 00001328 .global _cond_broadcast 364 00001328 _cond_broadcast: 365 00001328 44000455 trap #0x455 366 0000132c 4be00000 jr r31 367 00001330 54000000 nop 368 00001334 .endproc _cond_broadcast 370 00001334 .proc _TimerGet 371 00001334 .global _TimerGet 372 00001334 _TimerGet: 373 00001334 44000050 trap #0x50 374 00001338 4be00000 jr r31 375 0000133c 54000000 nop 376 00001340 .endproc _TimerGet 378 00001340 .proc _yield 379 00001340 .global _yield 380 00001340 _yield: 381 00001340 44000433 trap #0x433 382 00001344 4be00000 jr r31 383 00001348 54000000 nop 384 0000134c .endproc _yield 385 ; Compiled by GCC 387 0000134c .align 2 388 0000134c .proc _isspace 389 0000134c .global _isspace 390 0000134c _isspace: 391 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 392 0000134c afbefffc sw -4(r29),r30; push fp 393 00001350 001df020 add r30,r0,r29; fp = sp 394 00001354 afbffff8 sw -8(r29),r31; push ret addr 395 00001358 2fbd0010 subui r29,r29,#16; alloc local storage 396 0000135c afa20000 sw 0(r29),r2 397 00001360 83c20003 lb r2,3(r30) 398 00001364 201f0000 addi r31,r0,#0 399 00001368 304100ff andi r1,r2,#0x00ff 400 0000136c 60210020 seqi r1,r1,#32 401 00001370 14200018 bnez r1,L6_LF2 402 00001374 54000000 nop; not filled. 403 00001378 2041fff7 addi r1,r2,#-9 404 0000137c 302100ff andi r1,r1,#0x00ff 405 00001380 70210001 sleui r1,r1,#1 406 00001384 10200008 beqz r1,L5_LF2 407 00001388 54000000 nop; not filled. 408 0000138c L6_LF2: 409 0000138c 201f0001 addi r31,r0,#1 410 00001390 L5_LF2: 411 00001390 001f0820 add r1,r0,r31 412 00001394 8fa20000 lw r2,0(r29) 413 00001398 8fdffff8 lw r31,-8(r30) 414 0000139c 001ee820 add r29,r0,r30 415 000013a0 8fdefffc lw r30,-4(r30) 416 000013a4 4be00000 jr r31 417 000013a8 54000000 nop 418 000013ac .endproc _isspace 419 000013ac .align 2 420 000013ac .proc _isxdigit 421 000013ac .global _isxdigit 422 000013ac _isxdigit: 423 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 424 000013ac afbefffc sw -4(r29),r30; push fp 425 000013b0 001df020 add r30,r0,r29; fp = sp 426 000013b4 afbffff8 sw -8(r29),r31; push ret addr 427 000013b8 2fbd0010 subui r29,r29,#16; alloc local storage 428 000013bc afa20000 sw 0(r29),r2 429 000013c0 83df0003 lb r31,3(r30) 430 000013c4 20020000 addi r2,r0,#0 431 000013c8 23e1ffd0 addi r1,r31,#-48 432 000013cc 302100ff andi r1,r1,#0x00ff 433 000013d0 70210009 sleui r1,r1,#9 434 000013d4 14200028 bnez r1,L12_LF2 435 000013d8 54000000 nop; not filled. 436 000013dc 23e1ff9f addi r1,r31,#-97 437 000013e0 302100ff andi r1,r1,#0x00ff 438 000013e4 70210005 sleui r1,r1,#5 439 000013e8 14200014 bnez r1,L12_LF2 440 000013ec 54000000 nop; not filled. 441 000013f0 33e100ff andi r1,r31,#0x00ff 442 000013f4 64210041 snei r1,r1,#65 443 000013f8 14200008 bnez r1,L11_LF2 444 000013fc 54000000 nop; not filled. 445 00001400 L12_LF2: 446 00001400 20020001 addi r2,r0,#1 447 00001404 L11_LF2: 448 00001404 00020820 add r1,r0,r2 449 00001408 8fa20000 lw r2,0(r29) 450 0000140c 8fdffff8 lw r31,-8(r30) 451 00001410 001ee820 add r29,r0,r30 452 00001414 8fdefffc lw r30,-4(r30) 453 00001418 4be00000 jr r31 454 0000141c 54000000 nop 455 00001420 .endproc _isxdigit 456 00001420 .align 2 457 00001420 .proc _dstrcpy 458 00001420 .global _dstrcpy 459 00001420 _dstrcpy: 460 ; Function 'dstrcpy'; 0 bytes of locals, 2 regs to save. 461 00001420 afbefffc sw -4(r29),r30; push fp 462 00001424 001df020 add r30,r0,r29; fp = sp 463 00001428 afbffff8 sw -8(r29),r31; push ret addr 464 0000142c 2fbd0010 subui r29,r29,#16; alloc local storage 465 00001430 afa20000 sw 0(r29),r2 466 00001434 afa30004 sw 4(r29),r3 467 00001438 8fdf0000 lw r31,(r30) 468 0000143c 8fc20004 lw r2,4(r30) 469 00001440 001f1820 add r3,r0,r31 470 00001444 L19_LF2: 471 00001444 80410000 lb r1,(r2) 472 00001448 a3e10000 sb (r31),r1 473 0000144c 20420001 addi r2,r2,#1 474 00001450 23ff0001 addi r31,r31,#1 475 00001454 302100ff andi r1,r1,#0x00ff 476 00001458 64210000 snei r1,r1,#0 477 0000145c 1420ffe4 bnez r1,L19_LF2 478 00001460 54000000 nop; not filled. 479 00001464 00030820 add r1,r0,r3 480 00001468 8fa20000 lw r2,0(r29) 481 0000146c 8fa30004 lw r3,4(r29) 482 00001470 8fdffff8 lw r31,-8(r30) 483 00001474 001ee820 add r29,r0,r30 484 00001478 8fdefffc lw r30,-4(r30) 485 0000147c 4be00000 jr r31 486 00001480 54000000 nop 487 00001484 .endproc _dstrcpy 488 00001484 .align 2 489 00001484 .proc _dstrncpy 490 00001484 .global _dstrncpy 491 00001484 _dstrncpy: 492 ; Function 'dstrncpy'; 0 bytes of locals, 3 regs to save. 493 00001484 afbefffc sw -4(r29),r30; push fp 494 00001488 001df020 add r30,r0,r29; fp = sp 495 0000148c afbffff8 sw -8(r29),r31; push ret addr 496 00001490 2fbd0018 subui r29,r29,#24; alloc local storage 497 00001494 afa20000 sw 0(r29),r2 498 00001498 afa30004 sw 4(r29),r3 499 0000149c afa40008 sw 8(r29),r4 500 000014a0 8fc20000 lw r2,(r30) 501 000014a4 8fc30004 lw r3,4(r30) 502 000014a8 8fdf0008 lw r31,8(r30) 503 000014ac 00022020 add r4,r0,r2 504 000014b0 08000024 j L37_LF2 505 000014b4 54000000 nop; not filled. 506 000014b8 L34_LF2: 507 000014b8 80610000 lb r1,(r3) 508 000014bc a0410000 sb (r2),r1 509 000014c0 20630001 addi r3,r3,#1 510 000014c4 20420001 addi r2,r2,#1 511 000014c8 302100ff andi r1,r1,#0x00ff 512 000014cc 64210000 snei r1,r1,#0 513 000014d0 10200018 beqz r1,L32_LF2 514 000014d4 54000000 nop; not filled. 515 000014d8 L37_LF2: 516 000014d8 001f0820 add r1,r0,r31 517 000014dc 23ffffff addi r31,r31,#-1 518 000014e0 70210000 slei r1,r1,#0 519 000014e4 1020ffd0 beqz r1,L34_LF2 520 000014e8 54000000 nop; not filled. 521 000014ec L32_LF2: 522 000014ec 00040820 add r1,r0,r4 523 000014f0 8fa20000 lw r2,0(r29) 524 000014f4 8fa30004 lw r3,4(r29) 525 000014f8 8fa40008 lw r4,8(r29) 526 000014fc 8fdffff8 lw r31,-8(r30) 527 00001500 001ee820 add r29,r0,r30 528 00001504 8fdefffc lw r30,-4(r30) 529 00001508 4be00000 jr r31 530 0000150c 54000000 nop 531 00001510 .endproc _dstrncpy 532 00001510 .align 2 533 00001510 .proc _dstrcat 534 00001510 .global _dstrcat 535 00001510 _dstrcat: 536 ; Function 'dstrcat'; 0 bytes of locals, 2 regs to save. 537 00001510 afbefffc sw -4(r29),r30; push fp 538 00001514 001df020 add r30,r0,r29; fp = sp 539 00001518 afbffff8 sw -8(r29),r31; push ret addr 540 0000151c 2fbd0010 subui r29,r29,#16; alloc local storage 541 00001520 afa20000 sw 0(r29),r2 542 00001524 afa30004 sw 4(r29),r3 543 00001528 8fdf0000 lw r31,(r30) 544 0000152c 001f1820 add r3,r0,r31 545 00001530 90610000 lbu r1,(r3) 546 00001534 64210000 snei r1,r1,#0 547 00001538 10200018 beqz r1,L50_LF2 548 0000153c 54000000 nop; not filled. 549 00001540 L51_LF2: 550 00001540 23ff0001 addi r31,r31,#1 551 00001544 93e10000 lbu r1,(r31) 552 00001548 64210000 snei r1,r1,#0 553 0000154c 1420fff0 bnez r1,L51_LF2 554 00001550 54000000 nop; not filled. 555 00001554 L50_LF2: 556 00001554 001f1020 add r2,r0,r31 557 00001558 8fdf0004 lw r31,4(r30) 558 0000155c L54_LF2: 559 0000155c 83e10000 lb r1,(r31) 560 00001560 a0410000 sb (r2),r1 561 00001564 23ff0001 addi r31,r31,#1 562 00001568 20420001 addi r2,r2,#1 563 0000156c 302100ff andi r1,r1,#0x00ff 564 00001570 64210000 snei r1,r1,#0 565 00001574 1420ffe4 bnez r1,L54_LF2 566 00001578 54000000 nop; not filled. 567 0000157c 00030820 add r1,r0,r3 568 00001580 8fa20000 lw r2,0(r29) 569 00001584 8fa30004 lw r3,4(r29) 570 00001588 8fdffff8 lw r31,-8(r30) 571 0000158c 001ee820 add r29,r0,r30 572 00001590 8fdefffc lw r30,-4(r30) 573 00001594 4be00000 jr r31 574 00001598 54000000 nop 575 0000159c .endproc _dstrcat 576 0000159c .align 2 577 0000159c .proc _dstrncmp 578 0000159c .global _dstrncmp 579 0000159c _dstrncmp: 580 ; Function 'dstrncmp'; 0 bytes of locals, 4 regs to save. 581 0000159c afbefffc sw -4(r29),r30; push fp 582 000015a0 001df020 add r30,r0,r29; fp = sp 583 000015a4 afbffff8 sw -8(r29),r31; push ret addr 584 000015a8 2fbd0018 subui r29,r29,#24; alloc local storage 585 000015ac afa20000 sw 0(r29),r2 586 000015b0 afa30004 sw 4(r29),r3 587 000015b4 afa40008 sw 8(r29),r4 588 000015b8 afa5000c sw 12(r29),r5 589 000015bc 8fc30000 lw r3,(r30) 590 000015c0 8fc40004 lw r4,4(r30) 591 000015c4 8fc50008 lw r5,8(r30) 592 000015c8 20020000 addi r2,r0,#0 593 000015cc 0045082a slt r1,r2,r5 594 000015d0 1020003c beqz r1,L73_LF2 595 000015d4 54000000 nop; not filled. 596 000015d8 L75_LF2: 597 000015d8 909f0000 lbu r31,(r4) 598 000015dc 67e10000 snei r1,r31,#0 599 000015e0 10200038 beqz r1,L86_LF2 600 000015e4 54000000 nop; not filled. 601 000015e8 90610000 lbu r1,(r3) 602 000015ec 003f0829 sne r1,r1,r31 603 000015f0 1420001c bnez r1,L73_LF2 604 000015f4 54000000 nop; not filled. 605 000015f8 20630001 addi r3,r3,#1 606 000015fc 20840001 addi r4,r4,#1 607 00001600 20420001 addi r2,r2,#1 608 00001604 0045082a slt r1,r2,r5 609 00001608 1420ffcc bnez r1,L75_LF2 610 0000160c 54000000 nop; not filled. 611 00001610 L73_LF2: 612 00001610 00450828 seq r1,r2,r5 613 00001614 10200010 beqz r1,L80_LF2 614 00001618 54000000 nop; not filled. 615 0000161c L86_LF2: 616 0000161c 20010000 addi r1,r0,#0 617 00001620 08000028 j L84_LF2 618 00001624 54000000 nop; not filled. 619 00001628 L80_LF2: 620 00001628 907f0000 lbu r31,(r3) 621 0000162c 90830000 lbu r3,(r4) 622 00001630 03e30822 sub r1,r31,r3 623 00001634 74210000 sgei r1,r1,#0 624 00001638 2002ffff addi r2,r0,#-1 625 0000163c 10200008 beqz r1,L82_LF2 626 00001640 54000000 nop; not filled. 627 00001644 03e31029 sne r2,r31,r3 628 00001648 L82_LF2: 629 00001648 00020820 add r1,r0,r2 630 0000164c L84_LF2: 631 0000164c 8fa20000 lw r2,0(r29) 632 00001650 8fa30004 lw r3,4(r29) 633 00001654 8fa40008 lw r4,8(r29) 634 00001658 8fa5000c lw r5,12(r29) 635 0000165c 8fdffff8 lw r31,-8(r30) 636 00001660 001ee820 add r29,r0,r30 637 00001664 8fdefffc lw r30,-4(r30) 638 00001668 4be00000 jr r31 639 0000166c 54000000 nop 640 00001670 .endproc _dstrncmp 641 00001670 .align 2 642 00001670 .proc _dstrlen 643 00001670 .global _dstrlen 644 00001670 _dstrlen: 645 ; Function 'dstrlen'; 0 bytes of locals, 1 regs to save. 646 00001670 afbefffc sw -4(r29),r30; push fp 647 00001674 001df020 add r30,r0,r29; fp = sp 648 00001678 afbffff8 sw -8(r29),r31; push ret addr 649 0000167c 2fbd0010 subui r29,r29,#16; alloc local storage 650 00001680 afa20000 sw 0(r29),r2 651 00001684 8fdf0000 lw r31,(r30) 652 00001688 20020000 addi r2,r0,#0 653 0000168c 08000008 j L97_LF2 654 00001690 54000000 nop; not filled. 655 00001694 L95_LF2: 656 00001694 20420001 addi r2,r2,#1 657 00001698 L97_LF2: 658 00001698 93e10000 lbu r1,(r31) 659 0000169c 23ff0001 addi r31,r31,#1 660 000016a0 64210000 snei r1,r1,#0 661 000016a4 1420ffec bnez r1,L95_LF2 662 000016a8 54000000 nop; not filled. 663 000016ac 00020820 add r1,r0,r2 664 000016b0 8fa20000 lw r2,0(r29) 665 000016b4 8fdffff8 lw r31,-8(r30) 666 000016b8 001ee820 add r29,r0,r30 667 000016bc 8fdefffc lw r30,-4(r30) 668 000016c0 4be00000 jr r31 669 000016c4 54000000 nop 670 000016c8 .endproc _dstrlen 671 000016c8 .align 2 672 000016c8 .proc _dstrstr 673 000016c8 .global _dstrstr 674 000016c8 _dstrstr: 675 ; Function 'dstrstr'; 0 bytes of locals, 6 regs to save. 676 000016c8 afbefffc sw -4(r29),r30; push fp 677 000016cc 001df020 add r30,r0,r29; fp = sp 678 000016d0 afbffff8 sw -8(r29),r31; push ret addr 679 000016d4 2fbd0020 subui r29,r29,#32; alloc local storage 680 000016d8 afa20000 sw 0(r29),r2 681 000016dc afa30004 sw 4(r29),r3 682 000016e0 afa40008 sw 8(r29),r4 683 000016e4 afa5000c sw 12(r29),r5 684 000016e8 afa60010 sw 16(r29),r6 685 000016ec afa70014 sw 20(r29),r7 686 000016f0 8fc50000 lw r5,(r30) 687 000016f4 8fc70004 lw r7,4(r30) 688 000016f8 20030000 addi r3,r0,#0 689 000016fc 90e10000 lbu r1,(r7) 690 00001700 20e20001 addi r2,r7,#1 691 00001704 64210000 snei r1,r1,#0 692 00001708 1020001c beqz r1,L125_LF2 693 0000170c 54000000 nop; not filled. 694 00001710 L126_LF2: 695 00001710 20630001 addi r3,r3,#1 696 00001714 90410000 lbu r1,(r2) 697 00001718 20420001 addi r2,r2,#1 698 0000171c 64210000 snei r1,r1,#0 699 00001720 1420ffec bnez r1,L126_LF2 700 00001724 54000000 nop; not filled. 701 00001728 L125_LF2: 702 00001728 00033020 add r6,r0,r3 703 0000172c 080000ac j L149_LF2 704 00001730 54000000 nop; not filled. 705 00001734 L130_LF2: 706 00001734 00051820 add r3,r0,r5 707 00001738 00072020 add r4,r0,r7 708 0000173c 20020000 addi r2,r0,#0 709 00001740 0046082a slt r1,r2,r6 710 00001744 1020003c beqz r1,L134_LF2 711 00001748 54000000 nop; not filled. 712 0000174c L136_LF2: 713 0000174c 909f0000 lbu r31,(r4) 714 00001750 67e10000 snei r1,r31,#0 715 00001754 10200038 beqz r1,L150_LF2 716 00001758 54000000 nop; not filled. 717 0000175c 90610000 lbu r1,(r3) 718 00001760 003f0829 sne r1,r1,r31 719 00001764 1420001c bnez r1,L134_LF2 720 00001768 54000000 nop; not filled. 721 0000176c 20630001 addi r3,r3,#1 722 00001770 20840001 addi r4,r4,#1 723 00001774 20420001 addi r2,r2,#1 724 00001778 0046082a slt r1,r2,r6 725 0000177c 1420ffcc bnez r1,L136_LF2 726 00001780 54000000 nop; not filled. 727 00001784 L134_LF2: 728 00001784 00460828 seq r1,r2,r6 729 00001788 10200010 beqz r1,L141_LF2 730 0000178c 54000000 nop; not filled. 731 00001790 L150_LF2: 732 00001790 20010000 addi r1,r0,#0 733 00001794 08000028 j L132_LF2 734 00001798 54000000 nop; not filled. 735 0000179c L141_LF2: 736 0000179c 90630000 lbu r3,(r3) 737 000017a0 90820000 lbu r2,(r4) 738 000017a4 00620822 sub r1,r3,r2 739 000017a8 74210000 sgei r1,r1,#0 740 000017ac 201fffff addi r31,r0,#-1 741 000017b0 10200008 beqz r1,L143_LF2 742 000017b4 54000000 nop; not filled. 743 000017b8 0062f829 sne r31,r3,r2 744 000017bc L143_LF2: 745 000017bc 001f0820 add r1,r0,r31 746 000017c0 L132_LF2: 747 000017c0 64210000 snei r1,r1,#0 748 000017c4 14200010 bnez r1,L131_LF2 749 000017c8 54000000 nop; not filled. 750 000017cc 00050820 add r1,r0,r5 751 000017d0 0800001c j L146_LF2 752 000017d4 54000000 nop; not filled. 753 000017d8 L131_LF2: 754 000017d8 20a50001 addi r5,r5,#1 755 000017dc L149_LF2: 756 000017dc 90a10000 lbu r1,(r5) 757 000017e0 64210000 snei r1,r1,#0 758 000017e4 1420ff4c bnez r1,L130_LF2 759 000017e8 54000000 nop; not filled. 760 000017ec 20010000 addi r1,r0,#0 761 000017f0 L146_LF2: 762 000017f0 8fa20000 lw r2,0(r29) 763 000017f4 8fa30004 lw r3,4(r29) 764 000017f8 8fa40008 lw r4,8(r29) 765 000017fc 8fa5000c lw r5,12(r29) 766 00001800 8fa60010 lw r6,16(r29) 767 00001804 8fa70014 lw r7,20(r29) 768 00001808 8fdffff8 lw r31,-8(r30) 769 0000180c 001ee820 add r29,r0,r30 770 00001810 8fdefffc lw r30,-4(r30) 771 00001814 4be00000 jr r31 772 00001818 54000000 nop 773 0000181c .endproc _dstrstr 774 0000181c .align 2 775 0000181c .proc _dmindex 776 0000181c .global _dmindex 777 0000181c _dmindex: 778 ; Function 'dmindex'; 0 bytes of locals, 5 regs to save. 779 0000181c afbefffc sw -4(r29),r30; push fp 780 00001820 001df020 add r30,r0,r29; fp = sp 781 00001824 afbffff8 sw -8(r29),r31; push ret addr 782 00001828 2fbd0020 subui r29,r29,#32; alloc local storage 783 0000182c afa20000 sw 0(r29),r2 784 00001830 afa30004 sw 4(r29),r3 785 00001834 afa40008 sw 8(r29),r4 786 00001838 afa5000c sw 12(r29),r5 787 0000183c afa60010 sw 16(r29),r6 788 00001840 8fc40000 lw r4,(r30) 789 00001844 8fc60004 lw r6,4(r30) 790 00001848 90810000 lbu r1,(r4) 791 0000184c 64210000 snei r1,r1,#0 792 00001850 10200060 beqz r1,L164_LF2 793 00001854 54000000 nop; not filled. 794 00001858 00012820 add r5,r0,r1 795 0000185c L165_LF2: 796 0000185c 00061020 add r2,r0,r6 797 00001860 80df0000 lb r31,(r6) 798 00001864 33e100ff andi r1,r31,#0x00ff 799 00001868 64210000 snei r1,r1,#0 800 0000186c 1020003c beqz r1,L163_LF2 801 00001870 54000000 nop; not filled. 802 00001874 90830000 lbu r3,(r4) 803 00001878 L169_LF2: 804 00001878 33e100ff andi r1,r31,#0x00ff 805 0000187c 00610828 seq r1,r3,r1 806 00001880 10200010 beqz r1,L168_LF2 807 00001884 54000000 nop; not filled. 808 00001888 00040820 add r1,r0,r4 809 0000188c 08000028 j L173_LF2 810 00001890 54000000 nop; not filled. 811 00001894 L168_LF2: 812 00001894 20420001 addi r2,r2,#1 813 00001898 805f0000 lb r31,(r2) 814 0000189c 33e100ff andi r1,r31,#0x00ff 815 000018a0 64210000 snei r1,r1,#0 816 000018a4 1420ffd0 bnez r1,L169_LF2 817 000018a8 54000000 nop; not filled. 818 000018ac L163_LF2: 819 000018ac 14a0ffac bnez r5,L165_LF2 820 000018b0 54000000 nop; not filled. 821 000018b4 L164_LF2: 822 000018b4 20010000 addi r1,r0,#0 823 000018b8 L173_LF2: 824 000018b8 8fa20000 lw r2,0(r29) 825 000018bc 8fa30004 lw r3,4(r29) 826 000018c0 8fa40008 lw r4,8(r29) 827 000018c4 8fa5000c lw r5,12(r29) 828 000018c8 8fa60010 lw r6,16(r29) 829 000018cc 8fdffff8 lw r31,-8(r30) 830 000018d0 001ee820 add r29,r0,r30 831 000018d4 8fdefffc lw r30,-4(r30) 832 000018d8 4be00000 jr r31 833 000018dc 54000000 nop 834 000018e0 .endproc _dmindex 835 000018e0 .align 2 836 000018e0 .proc _dindex 837 000018e0 .global _dindex 838 000018e0 _dindex: 839 ; Function 'dindex'; 0 bytes of locals, 2 regs to save. 840 000018e0 afbefffc sw -4(r29),r30; push fp 841 000018e4 001df020 add r30,r0,r29; fp = sp 842 000018e8 afbffff8 sw -8(r29),r31; push ret addr 843 000018ec 2fbd0010 subui r29,r29,#16; alloc local storage 844 000018f0 afa20000 sw 0(r29),r2 845 000018f4 afa30004 sw 4(r29),r3 846 000018f8 8fc20000 lw r2,(r30) 847 000018fc 8fc30004 lw r3,4(r30) 848 00001900 08000024 j L187_LF2 849 00001904 54000000 nop; not filled. 850 00001908 L183_LF2: 851 00001908 33e100ff andi r1,r31,#0x00ff 852 0000190c 00230828 seq r1,r1,r3 853 00001910 10200010 beqz r1,L184_LF2 854 00001914 54000000 nop; not filled. 855 00001918 00020820 add r1,r0,r2 856 0000191c 08000020 j L186_LF2 857 00001920 54000000 nop; not filled. 858 00001924 L184_LF2: 859 00001924 20420001 addi r2,r2,#1 860 00001928 L187_LF2: 861 00001928 805f0000 lb r31,(r2) 862 0000192c 33e100ff andi r1,r31,#0x00ff 863 00001930 64210000 snei r1,r1,#0 864 00001934 1420ffd0 bnez r1,L183_LF2 865 00001938 54000000 nop; not filled. 866 0000193c 20010000 addi r1,r0,#0 867 00001940 L186_LF2: 868 00001940 8fa20000 lw r2,0(r29) 869 00001944 8fa30004 lw r3,4(r29) 870 00001948 8fdffff8 lw r31,-8(r30) 871 0000194c 001ee820 add r29,r0,r30 872 00001950 8fdefffc lw r30,-4(r30) 873 00001954 4be00000 jr r31 874 00001958 54000000 nop 875 0000195c .endproc _dindex 876 0000195c .align 2 877 0000195c .proc _ditoa 878 0000195c .global _ditoa 879 0000195c _ditoa: 880 ; Function 'ditoa'; 0 bytes of locals, 5 regs to save. 881 0000195c afbefffc sw -4(r29),r30; push fp 882 00001960 001df020 add r30,r0,r29; fp = sp 883 00001964 afbffff8 sw -8(r29),r31; push ret addr 884 00001968 2fbd0020 subui r29,r29,#32; alloc local storage 885 0000196c afa20000 sw 0(r29),r2 886 00001970 afa30004 sw 4(r29),r3 887 00001974 afa40008 sw 8(r29),r4 888 00001978 afa5000c sw 12(r29),r5 889 0000197c afa60010 sw 16(r29),r6 890 00001980 8fc30000 lw r3,(r30) 891 00001984 8fc40004 lw r4,4(r30) 892 00001988 68610000 slti r1,r3,#0 893 0000198c 10200010 beqz r1,L203_LF2 894 00001990 54000000 nop; not filled. 895 00001994 2006002d addi r6,r0,(#0x2d)&0xff 896 00001998 08000014 j L216_LF2 897 0000199c 54000000 nop; not filled. 898 000019a0 L203_LF2: 899 000019a0 64610000 snei r1,r3,#0 900 000019a4 14200018 bnez r1,L205_LF2 901 000019a8 54000000 nop; not filled. 902 000019ac 20060030 addi r6,r0,(#0x30)&0xff 903 000019b0 L216_LF2: 904 000019b0 a0860000 sb (r4),r6 905 000019b4 20840001 addi r4,r4,#1 906 000019b8 0800007c j L204_LF2 907 000019bc 54000000 nop; not filled. 908 000019c0 L205_LF2: 909 000019c0 201f0001 addi r31,r0,#1 910 000019c4 03e3082c sle r1,r31,r3 911 000019c8 1020001c beqz r1,L208_LF2 912 000019cc 54000000 nop; not filled. 913 000019d0 L209_LF2: 914 000019d0 53e10002 slli r1,r31,#0x2 915 000019d4 003f0820 add r1,r1,r31 916 000019d8 503f0001 slli r31,r1,#0x1 917 000019dc 03e3082c sle r1,r31,r3 918 000019e0 1420ffec bnez r1,L209_LF2 919 000019e4 54000000 nop; not filled. 920 000019e8 L208_LF2: 921 000019e8 2005000a addi r5,r0,#10 922 000019ec L212_LF2: 923 000019ec 03e00035 movi2fp f0,r31 924 000019f0 00a00835 movi2fp f1,r5 925 000019f4 0401000f div f0,f0,f1 926 000019f8 0000f834 movfp2i r31,f0 927 000019fc 00600035 movi2fp f0,r3 928 00001a00 03e00835 movi2fp f1,r31 929 00001a04 0401000f div f0,f0,f1 930 00001a08 00001034 movfp2i r2,f0 931 00001a0c 20410030 addi r1,r2,#48 932 00001a10 a0810000 sb (r4),r1 933 00001a14 20840001 addi r4,r4,#1 934 00001a18 00400035 movi2fp f0,r2 935 00001a1c 03e00835 movi2fp f1,r31 936 00001a20 0401000e mult f0,f0,f1 937 00001a24 00000834 movfp2i r1,f0 938 00001a28 00611822 sub r3,r3,r1 939 00001a2c 6fe10001 sgti r1,r31,#1 940 00001a30 1420ffb8 bnez r1,L212_LF2 941 00001a34 54000000 nop; not filled. 942 00001a38 L204_LF2: 943 00001a38 20060000 addi r6,r0,(#0x0)&0xff 944 00001a3c a0860000 sb (r4),r6 945 00001a40 8fa20000 lw r2,0(r29) 946 00001a44 8fa30004 lw r3,4(r29) 947 00001a48 8fa40008 lw r4,8(r29) 948 00001a4c 8fa5000c lw r5,12(r29) 949 00001a50 8fa60010 lw r6,16(r29) 950 00001a54 8fdffff8 lw r31,-8(r30) 951 00001a58 001ee820 add r29,r0,r30 952 00001a5c 8fdefffc lw r30,-4(r30) 953 00001a60 4be00000 jr r31 954 00001a64 54000000 nop 955 00001a68 .endproc _ditoa 956 00001a68 .align 2 957 00001a68 .proc _dstrtol 958 00001a68 .global _dstrtol 959 00001a68 _dstrtol: 960 ; Function 'dstrtol'; 0 bytes of locals, 5 regs to save. 961 00001a68 afbefffc sw -4(r29),r30; push fp 962 00001a6c 001df020 add r30,r0,r29; fp = sp 963 00001a70 afbffff8 sw -8(r29),r31; push ret addr 964 00001a74 2fbd0020 subui r29,r29,#32; alloc local storage 965 00001a78 afa20000 sw 0(r29),r2 966 00001a7c afa30004 sw 4(r29),r3 967 00001a80 afa40008 sw 8(r29),r4 968 00001a84 afa5000c sw 12(r29),r5 969 00001a88 afa60010 sw 16(r29),r6 970 00001a8c 8fc20000 lw r2,(r30) 971 00001a90 8fc50004 lw r5,4(r30) 972 00001a94 8fc40008 lw r4,8(r30) 973 00001a98 20030000 addi r3,r0,#0 974 00001a9c 08000008 j L247_LF2 975 00001aa0 54000000 nop; not filled. 976 00001aa4 L220_LF2: 977 00001aa4 20420001 addi r2,r2,#1 978 00001aa8 L247_LF2: 979 00001aa8 805f0000 lb r31,(r2) 980 00001aac 33e100ff andi r1,r31,#0x00ff 981 00001ab0 60210020 seqi r1,r1,#32 982 00001ab4 1420ffec bnez r1,L220_LF2 983 00001ab8 54000000 nop; not filled. 984 00001abc 23e1fff7 addi r1,r31,#-9 985 00001ac0 302100ff andi r1,r1,#0x00ff 986 00001ac4 70210001 sleui r1,r1,#1 987 00001ac8 1420ffd8 bnez r1,L220_LF2 988 00001acc 54000000 nop; not filled. 989 00001ad0 64a10000 snei r1,r5,#0 990 00001ad4 10200008 beqz r1,L222_LF2 991 00001ad8 54000000 nop; not filled. 992 00001adc aca20000 sw (r5),r2 993 00001ae0 L222_LF2: 994 00001ae0 905f0000 lbu r31,(r2) 995 00001ae4 67e10000 snei r1,r31,#0 996 00001ae8 10200090 beqz r1,L248_LF2 997 00001aec 54000000 nop; not filled. 998 00001af0 63e1002d seqi r1,r31,#45 999 00001af4 10200014 beqz r1,L224_LF2 1000 00001af8 54000000 nop; not filled. 1001 00001afc 2006ffff addi r6,r0,#-1 1002 00001b00 20420001 addi r2,r2,#1 1003 00001b04 08000008 j L225_LF2 1004 00001b08 54000000 nop; not filled. 1005 00001b0c L224_LF2: 1006 00001b0c 20060001 addi r6,r0,#1 1007 00001b10 L225_LF2: 1008 00001b10 64810000 snei r1,r4,#0 1009 00001b14 14200054 bnez r1,L226_LF2 1010 00001b18 54000000 nop; not filled. 1011 00001b1c 90410000 lbu r1,(r2) 1012 00001b20 60210030 seqi r1,r1,#48 1013 00001b24 10200040 beqz r1,L227_LF2 1014 00001b28 54000000 nop; not filled. 1015 00001b2c 20420001 addi r2,r2,#1 1016 00001b30 905f0000 lbu r31,(r2) 1017 00001b34 63e10078 seqi r1,r31,#120 1018 00001b38 14200010 bnez r1,L229_LF2 1019 00001b3c 54000000 nop; not filled. 1020 00001b40 63e10058 seqi r1,r31,#88 1021 00001b44 10200014 beqz r1,L228_LF2 1022 00001b48 54000000 nop; not filled. 1023 00001b4c L229_LF2: 1024 00001b4c 20040010 addi r4,r0,#16 1025 00001b50 20420001 addi r2,r2,#1 1026 00001b54 08000014 j L226_LF2 1027 00001b58 54000000 nop; not filled. 1028 00001b5c L228_LF2: 1029 00001b5c 20040008 addi r4,r0,#8 1030 00001b60 08000008 j L226_LF2 1031 00001b64 54000000 nop; not filled. 1032 00001b68 L227_LF2: 1033 00001b68 2004000a addi r4,r0,#10 1034 00001b6c L226_LF2: 1035 00001b6c 2081ffff addi r1,r4,#-1 1036 00001b70 6c21000f sgtui r1,r1,#15 1037 00001b74 10200010 beqz r1,L233_LF2 1038 00001b78 54000000 nop; not filled. 1039 00001b7c L248_LF2: 1040 00001b7c 00030820 add r1,r0,r3 1041 00001b80 080000c4 j L245_LF2 1042 00001b84 54000000 nop; not filled. 1043 00001b88 L233_LF2: 1044 00001b88 805f0000 lb r31,(r2) 1045 00001b8c 23e1ffd0 addi r1,r31,#-48 1046 00001b90 302100ff andi r1,r1,#0x00ff 1047 00001b94 70210009 sleui r1,r1,#9 1048 00001b98 10200014 beqz r1,L236_LF2 1049 00001b9c 54000000 nop; not filled. 1050 00001ba0 33e100ff andi r1,r31,#0x00ff 1051 00001ba4 2021ffd0 addi r1,r1,#-48 1052 00001ba8 08000050 j L237_LF2 1053 00001bac 54000000 nop; not filled. 1054 00001bb0 L236_LF2: 1055 00001bb0 23e1ff9f addi r1,r31,#-97 1056 00001bb4 302100ff andi r1,r1,#0x00ff 1057 00001bb8 70210019 sleui r1,r1,#25 1058 00001bbc 10200014 beqz r1,L238_LF2 1059 00001bc0 54000000 nop; not filled. 1060 00001bc4 33e100ff andi r1,r31,#0x00ff 1061 00001bc8 2021ffa9 addi r1,r1,#-87 1062 00001bcc 0800002c j L237_LF2 1063 00001bd0 54000000 nop; not filled. 1064 00001bd4 L238_LF2: 1065 00001bd4 23e1ffbf addi r1,r31,#-65 1066 00001bd8 302100ff andi r1,r1,#0x00ff 1067 00001bdc 70210019 sleui r1,r1,#25 1068 00001be0 10200014 beqz r1,L240_LF2 1069 00001be4 54000000 nop; not filled. 1070 00001be8 33e100ff andi r1,r31,#0x00ff 1071 00001bec 2021ffc9 addi r1,r1,#-55 1072 00001bf0 08000008 j L237_LF2 1073 00001bf4 54000000 nop; not filled. 1074 00001bf8 L240_LF2: 1075 00001bf8 200103e8 addi r1,r0,#1000 1076 00001bfc L237_LF2: 1077 00001bfc 0024f82a slt r31,r1,r4 1078 00001c00 13e00024 beqz r31,L246_LF2 1079 00001c04 54000000 nop; not filled. 1080 00001c08 00600035 movi2fp f0,r3 1081 00001c0c 00800835 movi2fp f1,r4 1082 00001c10 0401000e mult f0,f0,f1 1083 00001c14 00001834 movfp2i r3,f0 1084 00001c18 00611820 add r3,r3,r1 1085 00001c1c 20420001 addi r2,r2,#1 1086 00001c20 17e0ff64 bnez r31,L233_LF2 1087 00001c24 54000000 nop; not filled. 1088 00001c28 L246_LF2: 1089 00001c28 64a10000 snei r1,r5,#0 1090 00001c2c 10200008 beqz r1,L244_LF2 1091 00001c30 54000000 nop; not filled. 1092 00001c34 aca20000 sw (r5),r2 1093 00001c38 L244_LF2: 1094 00001c38 00600035 movi2fp f0,r3 1095 00001c3c 00c00835 movi2fp f1,r6 1096 00001c40 0401000e mult f0,f0,f1 1097 00001c44 00000834 movfp2i r1,f0 1098 00001c48 L245_LF2: 1099 00001c48 8fa20000 lw r2,0(r29) 1100 00001c4c 8fa30004 lw r3,4(r29) 1101 00001c50 8fa40008 lw r4,8(r29) 1102 00001c54 8fa5000c lw r5,12(r29) 1103 00001c58 8fa60010 lw r6,16(r29) 1104 00001c5c 8fdffff8 lw r31,-8(r30) 1105 00001c60 001ee820 add r29,r0,r30 1106 00001c64 8fdefffc lw r30,-4(r30) 1107 00001c68 4be00000 jr r31 1108 00001c6c 54000000 nop 1109 00001c70 .endproc _dstrtol 1110 00001c70 .align 2 1111 00001c70 .proc _bcopy 1112 00001c70 .global _bcopy 1113 00001c70 _bcopy: 1114 ; Function 'bcopy'; 0 bytes of locals, 3 regs to save. 1115 00001c70 afbefffc sw -4(r29),r30; push fp 1116 00001c74 001df020 add r30,r0,r29; fp = sp 1117 00001c78 afbffff8 sw -8(r29),r31; push ret addr 1118 00001c7c 2fbd0018 subui r29,r29,#24; alloc local storage 1119 00001c80 afa20000 sw 0(r29),r2 1120 00001c84 afa30004 sw 4(r29),r3 1121 00001c88 afa40008 sw 8(r29),r4 1122 00001c8c 8fc30000 lw r3,(r30) 1123 00001c90 8fc20004 lw r2,4(r30) 1124 00001c94 8fdf0008 lw r31,8(r30) 1125 00001c98 08000014 j L259_LF2 1126 00001c9c 54000000 nop; not filled. 1127 00001ca0 L257_LF2: 1128 00001ca0 80640000 lb r4,(r3) 1129 00001ca4 a0440000 sb (r2),r4 1130 00001ca8 20630001 addi r3,r3,#1 1131 00001cac 20420001 addi r2,r2,#1 1132 00001cb0 L259_LF2: 1133 00001cb0 001f0820 add r1,r0,r31 1134 00001cb4 23ffffff addi r31,r31,#-1 1135 00001cb8 6c210000 sgti r1,r1,#0 1136 00001cbc 1420ffe0 bnez r1,L257_LF2 1137 00001cc0 54000000 nop; not filled. 1138 00001cc4 8fa20000 lw r2,0(r29) 1139 00001cc8 8fa30004 lw r3,4(r29) 1140 00001ccc 8fa40008 lw r4,8(r29) 1141 00001cd0 8fdffff8 lw r31,-8(r30) 1142 00001cd4 001ee820 add r29,r0,r30 1143 00001cd8 8fdefffc lw r30,-4(r30) 1144 00001cdc 4be00000 jr r31 1145 00001ce0 54000000 nop 1146 00001ce4 .endproc _bcopy 1147 00001ce4 .align 2 1148 00001ce4 .proc _bzero 1149 00001ce4 .global _bzero 1150 00001ce4 _bzero: 1151 ; Function 'bzero'; 0 bytes of locals, 2 regs to save. 1152 00001ce4 afbefffc sw -4(r29),r30; push fp 1153 00001ce8 001df020 add r30,r0,r29; fp = sp 1154 00001cec afbffff8 sw -8(r29),r31; push ret addr 1155 00001cf0 2fbd0010 subui r29,r29,#16; alloc local storage 1156 00001cf4 afa20000 sw 0(r29),r2 1157 00001cf8 afa30004 sw 4(r29),r3 1158 00001cfc 8fc20000 lw r2,(r30) 1159 00001d00 8fdf0004 lw r31,4(r30) 1160 00001d04 08000010 j L270_LF2 1161 00001d08 54000000 nop; not filled. 1162 00001d0c L268_LF2: 1163 00001d0c 20030000 addi r3,r0,(#0x0)&0xff 1164 00001d10 a0430000 sb (r2),r3 1165 00001d14 20420001 addi r2,r2,#1 1166 00001d18 L270_LF2: 1167 00001d18 001f0820 add r1,r0,r31 1168 00001d1c 23ffffff addi r31,r31,#-1 1169 00001d20 6c210000 sgti r1,r1,#0 1170 00001d24 1420ffe4 bnez r1,L268_LF2 1171 00001d28 54000000 nop; not filled. 1172 00001d2c 8fa20000 lw r2,0(r29) 1173 00001d30 8fa30004 lw r3,4(r29) 1174 00001d34 8fdffff8 lw r31,-8(r30) 1175 00001d38 001ee820 add r29,r0,r30 1176 00001d3c 8fdefffc lw r30,-4(r30) 1177 00001d40 4be00000 jr r31 1178 00001d44 54000000 nop 1179 00001d48 .endproc _bzero 1180 ;;; Ethan L. Miller, 1999. Released to the public domain 1181 ;;; 1182 ;;; Most of the traps are called in files from libtraps. 1185 00001d48 .align 2 1186 00001d48 .proc _exit 1187 00001d48 .global _exit 1188 00001d48 _exit: 1189 00001d48 44000300 trap #0x300 1190 00001d4c 4be00000 jr r31 1191 00001d50 54000000 nop 1192 00001d54 .endproc _exit 1194 ; for the benefit of gcc. 1195 00001d54 .proc ___main 1196 00001d54 .global ___main 1197 00001d54 ___main: 1198 00001d54 4be00000 jr r31 1199 00001d58 54000000 nop 1200 00001d5c .endproc ___main 1201 00001d5c .text 1202 00001d5c .global _etext 1203 00001d5c _etext: 1204 00001d5c .align 3 1205 00001d60 .data 1206 0000203b .global _edata 1207 0000203b _edata:

home/bshapir/cs314/project3/src/misc.c

// // misc.c // // Miscellaneous routines for the operating system. These include // basic routines that would be in libc if we had access to it. // #include "misc.h" //---------------------------------------------------------------------- // // dstrcpy // dstrncpy // dstrcat // // These three functions do exactly what their counterparts in the // standard C library do. // //---------------------------------------------------------------------- char* dstrcpy (char *to, const char *from) { char *tokeep = to; char last; do { last = *(to++) = *(from++); } while (last != '\0'); return (tokeep); } char* dstrncpy (char *to, const char *from, int n) { char *tokeep = to; char last; int cur = 0; do { // Stop if we're exceeded the maximum string length if (n-- <= 0) { break; } last = *(to++) = *(from++); } while (last != '\0'); return (tokeep); } char * dstrcat (char *onto, const char *addn) { char *konto = onto; while (*onto != '\0') { onto++; } dstrcpy (onto, addn); return (konto); } int dstrncmp (const char *s1, const char *s2, int n) { int i; for (i = 0; i < n; i++) { // If they don't match, end the loop if (*s2 == '\0') { // If the second string is NULL, we're at the end of the string and // have a match. return (0); } else if (*s1 != *s2) { break; } s1++; s2++; } if (i == n) { return (0); } else { return (((*s1 - *s2) < 0) ? -1 : ((*s1 == *s2) ? 0 : 1)); } } int dstrlen (const char *s) { int i = 0; while (*(s++) != '\0') { i++; } return (i); } const char * dstrstr (const char *buf, const char *pattern) { int n = dstrlen (pattern); while (*buf != '\0') { if (dstrncmp (buf, pattern, n) == 0) { return (buf); } buf++; } return ((char *)0); } � //---------------------------------------------------------------------- // // dindex // dmindex // // dindex is identical to the libc function index. dmindex is // similar to dindex, but it reports the index in the string of the // first match for any one of the characters passed (rather than // matching only on a single specific character). // //---------------------------------------------------------------------- const char * dmindex (const char *s, const char *match) { const char *c; while (*s != '\0') { for (c = match; *c != '\0'; c++) { if (*s == *c) { return (s); } } } return ((const char *)0); } const char* dindex (const char *s, int c) { while (*s != '\0') { if (*s == c) { return (s); } s++; } return ((char *)0); } � //---------------------------------------------------------------------- // // ditoa: Convert an integer into an ASCII number. // dstrtol: Convert ASCII into an integer // //---------------------------------------------------------------------- void ditoa (int n, char *buf) { int k; if (n < 0) { *(buf++) = '-'; n = -n; } else if (n == 0) { *(buf++) = '0'; } else { for (k = 1; k <= n; k *= 10) { } do { k /= 10; *(buf++) = (n / k) + '0'; n %= k; } while (k > 1); } *buf = '\0'; } int dstrtol (char *c, char **newpos, int base) { int v = 0; int curdigit; int sign; while ((*c == ' ') || (*c == '\t') || (*c == '\n')) { c++; } if (newpos != (char **)0) { *newpos = c; } if (*c == '\0') { return (v); } if (*c == '-') { sign = -1; c++; } else { sign = 1; } if (base == 0) { if (*c == '0') { c++; if ((*c == 'x') || (*c == 'X')) { base = 16; c++; } else { base = 8; } } else { base = 10; } } if ((base <= 0) || (base > 16)) { return (v); } do { if ((*c >= '0') && (*c <= '9')) { curdigit = (*c) - '0'; } else if ((*c >= 'a') && (*c <= 'z')) { curdigit = (*c) + 10 - 'a'; } else if ((*c >= 'A') && (*c <= 'Z')) { curdigit = (*c) + 10 - 'A'; } else { curdigit = 1000; } if (curdigit < base) { v *= base; v += curdigit; c++; } } while (curdigit < base); if (newpos != (char **)0) { *newpos = c; } v *= sign; return (v); } � //---------------------------------------------------------------------- // // bcopy: Copy bytes from one location to another. // bzero: Set all the bytes in a region to zero. // //---------------------------------------------------------------------- void bcopy (char *src, char *dst, int count) { while (count-- > 0) { *(dst++) = *(src++); } } void bzero (char *dst, int count) { while (count-- > 0) { *(dst++) = 0; } }

home/bshapir/cs314/project3/src/syscall.h

// // syscall.h // // This file declares all of the system calls available as builtins // in the simulator. // #ifndef _syscall_h_ #define _syscall_h_ extern int open(const char *, int); extern int read(int, char *, int); extern int write(int, char *, int); extern int lseek(int, int, int); extern int close(int); #endif // _syscall_h_

home/bshapir/cs314/project3/src/traps.h

// // dlxtraps.h // // Traps used by the DLX simulator. These traps have to be handled by the // operating system. // // Copyright 1999 by Ethan L. Miller // University of Maryland Baltimore County // // $Id: traps.h,v 1.1 2000/09/20 01:50:19 elm Exp elm $ // #ifndef _dlxtraps_h_ #define _dlxtraps_h_ #define TRAP_ILLEGALINST 0x1 // Illegal instruction #define TRAP_ADDRESS 0x2 // Bad address #define TRAP_ACCESS 0x3 // Attempted to access illegal memory #define TRAP_OVERFLOW 0x4 // Math overflow #define TRAP_DIV0 0x5 // Divide by 0 #define TRAP_PRIVILEGE 0x6 // Instruction must be executed as sys #define TRAP_FORMAT 0x7 // Instruction is malformed #define TRAP_PAGEFAULT 0x20 #define TRAP_TLBFAULT 0x30 #define TRAP_TIMER 0x40 // timer interrupt #define TRAP_KBD 0x48 // keyboard interrupt #define TRAP_TIMERGET 0x50 // This bit is set in CAUSE if the interrupt was a trap instruction #define TRAP_TRAP_INSTR 0x08000000 // The following traps are all defined in the basic traps library. To // call TRAP_READ, use a Read() call from a user-level program. This applies // to every trap except EXIT, which is called via exit() [no uppercase]. #define TRAP_PRINTF 0x201 #define TRAP_READ 0x210 #define TRAP_WRITE 0x211 #define TRAP_LSEEK 0x212 #define TRAP_SEEK TRAP_LSEEK // SEEK and LSEEK are synonyms #define TRAP_OPEN 0x213 #define TRAP_CLOSE 0x214 #define TRAP_DELETE 0x580 #define TRAP_EXIT 0x300 // Following are user-defined traps. Traps should be in the range // 0x400 - 0xfff #define TRAP_CONTEXT_SWITCH 0x400 //#define TRAP_SEM_WAIT 0x401 //#define TRAP_SEM_SIGNAL 0x402 #define TRAP_PROCESS_SLEEP 0x410 #define TRAP_PROCESS_WAKEUP 0x420 #define TRAP_PROCESS_FORK 0x430 #define TRAP_PROCESS_GETPID 0x431 #define TRAP_PROCESS_CREATE 0x432 #define TRAP_PROCESS_YIELD 0x433 #define TRAP_SHARE_CREATE_PAGE 0x440 #define TRAP_SHARE_MAP_PAGE 0x441 #define TRAP_SEM_CREATE 0x450 #define TRAP_SEM_WAIT 0x451 #define TRAP_SEM_SIGNAL 0x452 #define TRAP_LOCK_CREATE 0x453 #define TRAP_LOCK_ACQUIRE 0x454 #define TRAP_LOCK_RELEASE 0x455 #define TRAP_COND_CREATE 0x456 #define TRAP_COND_WAIT 0x457 #define TRAP_COND_SIGNAL 0x458 #define TRAP_COND_BROADCAST 0x459 #define TRAP_MBOX_OPEN 0x460 #define TRAP_MBOX_CLOSE 0x461 #define TRAP_MBOX_SEND 0x462 #define TRAP_MBOX_RECV 0x463 #define TRAP_MBOX_STAT 0x464 // The following are special I/O addresses for DLX. #define DLX_TIMER_ADDRESS 0xfff00010 #define DLX_KBD_PUTCHAR 0xfff00100 #define DLX_KBD_NCHARSOUT 0xfff00120 #define DLX_KBD_GETCHAR 0xfff00180 #define DLX_KBD_NCHARSIN 0xfff001a0 #define DLX_KBD_INTR 0xfff001c0 #define TRAP_STACK_SIZE 0x800 // interrupt stack is 2K words #endif /* _dlxtraps_h_ */

home/bshapir/cs314/project3/src/traps.o

; Compiled by GCC .data .align 2 _rcsid: .ascii "$Id: traps.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .global _MY_TIMER .data .align 2 _MY_TIMER: .word 0 .text .align 2 .proc _TimerSet .global _TimerSet _TimerSet: ; Function 'TimerSet'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lhi r2,((_MY_TIMER)>>16)&0xffff addui r2,r2,(_MY_TIMER)&0xffff lw r1,(r2) add r1,r1,r3 sw (r2),r1 lhi r1,#-16 addui r1,r1,#16 sw (r1),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TimerSet .align 2 .proc _TimerGet .global _TimerGet _TimerGet: ; Function 'TimerGet'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lhi r1,((_MY_TIMER)>>16)&0xffff addui r1,r1,(_MY_TIMER)&0xffff lw r2,(r1) addi r1,r0,#1000 movi2fp f0,r2 movi2fp f1,r1 divu f0,f0,f1 movfp2i r1,f0 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TimerGet .align 2 .proc _KbdModuleInit .global _KbdModuleInit _KbdModuleInit: ; Function 'KbdModuleInit'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lhi r1,#-16 addui r1,r1,#448 addi r31,r0,#1 sw (r1),r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _KbdModuleInit .data .align 2 LC0: .ascii " Invalid p_nice value! \n\000" .align 2 LC1: .ascii "Fatal: Cumulative length of all arguments > %d\n\000" .align 2 LC2: .ascii "calling fork\n\000" .text .align 2 .proc _TrapProcessCreateHandler _TrapProcessCreateHandler: ; Function 'TrapProcessCreateHandler'; 1640 bytes of locals, 13 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#1704 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 sw 44(r29),r13 sw 48(r29),r14 lw r4,(r30) lw r6,4(r30) addi r2,r30,#-1032 addi r3,r30,#-9 L67: addi r14,r0,(#0x0)&0xff sb (r2),r14 addi r2,r2,#1 sle r1,r2,r3 bnez r1,L67 nop ; not filled. addi r5,r0,#0 snei r1,r6,#0 bnez r1,L69 nop ; not filled. addi r29,r29,#-16 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r14,(r2) sw (r29),r14 sw 4(r29),r4 addi r1,r30,#-1648 sw 8(r29),r1 addi r14,r0,#512 sw 12(r29),r14 jal _MemoryCopyUserToSystem nop ; not filled. addi r29,r29,#16 addi r4,r30,#-1137 addi r3,r30,#-1136 L70: addi r29,r29,#-16 lw r14,(r2) sw (r29),r14 lw r1,-1640(r30) add r1,r1,r5 sw 4(r29),r1 sw 8(r29),r3 addi r14,r0,#1 sw 12(r29),r14 jal _MemoryCopyUserToSystem nop ; not filled. addi r4,r4,#1 addi r3,r3,#1 addi r5,r5,#1 addi r29,r29,#16 sleui r1,r5,#99 beqz r1,L75 nop ; not filled. lbu r1,(r4) snei r1,r1,#0 beqz r1,L75 nop ; not filled. j L70 nop ; not filled. L69: addi r29,r29,#-16 sw (r29),r4 addi r1,r30,#-1648 sw 4(r29),r1 addi r14,r0,#512 sw 8(r29),r14 jal _bcopy nop ; not filled. lw r14,-1640(r30) sw (r29),r14 addi r1,r30,#-1136 sw 4(r29),r1 addi r14,r0,#100 sw 8(r29),r14 jal _dstrncpy nop ; not filled. addi r29,r29,#16 L75: addi r14,r0,(#0x0)&0xff sb -1037(r30),r14 addi r5,r0,#0 lw r12,-1648(r30) lw r13,-1644(r30) addi r1,r12,#20 sgtui r1,r1,#39 beqz r1,L76 nop ; not filled. addi r29,r29,#-8 lhi r14,((LC0)>>16)&0xffff addui r14,r14,(LC0)&0xffff sw (r29),r14 jal _printf nop ; not filled. jal _exit nop ; not filled. L76: snei r1,r6,#0 bnez r1,L77 nop ; not filled. lhi r8,((_currentPCB)>>16)&0xffff addui r8,r8,(_currentPCB)&0xffff addi r11,r30,#-1032 addi r10,r30,#-1033 add r6,r0,r30 addi r9,r30,#500 L89: lw r1,-1640(r6) snei r1,r1,#0 beqz r1,L90 nop ; not filled. addi r2,r0,#0 add r7,r0,r6 add r4,r5,r10 add r3,r5,r11 L84: addi r29,r29,#-16 lw r14,(r8) sw (r29),r14 lw r1,-1640(r7) add r1,r1,r2 sw 4(r29),r1 sw 8(r29),r3 addi r14,r0,#1 sw 12(r29),r14 jal _MemoryCopyUserToSystem nop ; not filled. addi r4,r4,#1 addi r3,r3,#1 addi r5,r5,#1 addi r2,r2,#1 addi r29,r29,#16 sleui r1,r5,#1023 beqz r1,L81 nop ; not filled. lbu r1,(r4) snei r1,r1,#0 bnez r1,L84 nop ; not filled. L81: addi r6,r6,#4 sle r1,r6,r9 beqz r1,L90 nop ; not filled. j L89 nop ; not filled. L77: addi r5,r30,#-1032 add r7,r0,r5 addi r3,r30,#-8 addi r6,r30,#32 L97: addi r4,r3,#-1640 lw r2,(r4) snei r1,r2,#0 beqz r1,L90 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 jal _dstrlen nop ; not filled. add r2,r5,r1 sub r1,r2,r7 addi r29,r29,#8 sgti r1,r1,#1024 beqz r1,L96 nop ; not filled. addi r29,r29,#-8 lhi r14,((LC1)>>16)&0xffff addui r14,r14,(LC1)&0xffff sw (r29),r14 addi r14,r0,#1024 sw 4(r29),r14 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L96: addi r29,r29,#-8 sw (r29),r5 lw r1,(r4) sw 4(r29),r1 jal _dstrcpy nop ; not filled. addi r14,r0,(#0x0)&0xff sb (r2),r14 addi r29,r29,#8 addi r3,r3,#4 sle r1,r3,r6 bnez r1,L97 nop ; not filled. L90: addi r14,r0,(#0x0)&0xff sb -9(r30),r14 addi r29,r29,#-8 lhi r14,((LC2)>>16)&0xffff addui r14,r14,(LC2)&0xffff sw (r29),r14 jal _printf nop ; not filled. addi r29,r29,#-16 addi r14,r0,#0 sw (r29),r14 addi r1,r30,#-1032 sw 4(r29),r1 sw 8(r29),r12 sw 12(r29),r13 addi r1,r30,#-1136 sw 16(r29),r1 addi r14,r0,#1 sw 20(r29),r14 jal _ProcessFork nop ; not filled. addi r29,r29,#24 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r13,44(r29) lw r14,48(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TrapProcessCreateHandler .align 2 .proc _TrapPrintfHandler _TrapPrintfHandler: ; Function 'TrapPrintfHandler'; 160 bytes of locals, 10 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#208 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 lw r4,(r30) lw r1,4(r30) addi r8,r0,#0 add r3,r0,r8 snei r1,r1,#0 bnez r1,L99 nop ; not filled. addi r29,r29,#-16 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r11,(r2) sw (r29),r11 sw 4(r29),r4 addi r1,r30,#-168 sw 8(r29),r1 addi r11,r0,#40 sw 12(r29),r11 jal _MemoryCopyUserToSystem nop ; not filled. addi r29,r29,#16 addi r5,r30,#-89 addi r4,r30,#-88 L100: addi r29,r29,#-16 lw r11,(r2) sw (r29),r11 lw r1,-168(r30) add r1,r1,r3 sw 4(r29),r1 sw 8(r29),r4 addi r11,r0,#1 sw 12(r29),r11 jal _MemoryCopyUserToSystem nop ; not filled. addi r5,r5,#1 addi r4,r4,#1 addi r3,r3,#1 addi r29,r29,#16 sleui r1,r3,#79 beqz r1,L105 nop ; not filled. lbu r1,(r5) snei r1,r1,#0 beqz r1,L105 nop ; not filled. j L100 nop ; not filled. L99: addi r29,r29,#-16 sw (r29),r4 addi r1,r30,#-168 sw 4(r29),r1 addi r11,r0,#40 sw 8(r29),r11 jal _bcopy nop ; not filled. lw r11,-168(r30) sw (r29),r11 addi r1,r30,#-88 sw 4(r29),r1 addi r11,r0,#80 sw 8(r29),r11 jal _dstrncpy nop ; not filled. addi r29,r29,#16 L105: addi r11,r0,(#0x0)&0xff sb -9(r30),r11 addi r3,r30,#-88 lb r2,(r3) andi r1,r2,#0x00ff snei r1,r1,#0 beqz r1,L107 nop ; not filled. addi r10,r30,#-8 addi r9,r30,#-164 slli r1,r8,#0x2 add r7,r1,r9 add r6,r1,r10 L109: andi r1,r2,#0x00ff seqi r1,r1,#37 beqz r1,L108 nop ; not filled. lbu r1,1(r3) seqi r1,r1,#37 beqz r1,L111 nop ; not filled. addi r3,r3,#1 j L108 nop ; not filled. L111: lw r11,(r7) sw -120(r6),r11 slli r1,r8,#0x2 add r5,r1,r9 add r4,r1,r10 L114: addi r3,r3,#1 lb r31,(r3) andi r2,r31,#0x00ff seqi r1,r2,#115 bnez r1,L113 nop ; not filled. seqi r1,r2,#108 bnez r1,L114 nop ; not filled. addi r1,r31,#-102 andi r1,r1,#0x00ff sleui r1,r1,#1 bnez r1,L120 nop ; not filled. seqi r1,r2,#101 beqz r1,L119 nop ; not filled. L120: addi r7,r7,#4 addi r6,r6,#4 addi r8,r8,#1 lw r5,4(r5) sw -116(r4),r5 j L113 nop ; not filled. L119: addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#25 beqz r1,L114 nop ; not filled. L113: addi r7,r7,#4 addi r6,r6,#4 addi r8,r8,#1 L108: addi r3,r3,#1 lb r2,(r3) andi r1,r2,#0x00ff snei r1,r1,#0 bnez r1,L109 nop ; not filled. L107: addi r29,r29,#-40 addi r1,r30,#-88 sw (r29),r1 lw r1,-128(r30) sw 4(r29),r1 lw r11,-124(r30) sw 8(r29),r11 lw r11,-120(r30) sw 12(r29),r11 lw r11,-116(r30) sw 16(r29),r11 lw r11,-112(r30) sw 20(r29),r11 lw r11,-108(r30) sw 24(r29),r11 lw r11,-104(r30) sw 28(r29),r11 lw r11,-100(r30) sw 32(r29),r11 jal _printf nop ; not filled. addi r29,r29,#40 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TrapPrintfHandler .data .align 2 LC3: .ascii "Interrupt cause=0x%x iar=0x%x isr=0x%x args=0x%08x.\n\000" .align 2 LC4: .ascii "Got a context switch trap!\n\000" .align 2 LC5: .ascii "Got an exit trap!\n\000" .align 2 LC6: .ascii "Got a fork trap!\n\000" .align 2 LC7: .ascii "Got a process sleep trap!\n\000" .align 2 LC8: .ascii "Got a printf trap!\n\000" .align 2 LC9: .ascii "Got an open with parameters (\'%s\',0x%x)\n\000" .align 2 LC10: .ascii "Got an unrecognized trap (0x%x) - exiting!\n\000" .align 2 LC11: .ascii "Got a timer interrupt!\n\000" .align 2 LC12: .ascii "Got a keyboard interrupt (char=0x%x(%c), nleft=%d)!\n\000" .align 2 LC13: .ascii "Exiting after illegal access at iar=0x%x, isr=0x%x\n\000" .align 2 LC14: .ascii "Exiting after illegal address at iar=0x%x, isr=0x%x\n\000" .align 2 LC15: .ascii "Exiting after illegal instruction at iar=0x%x, isr=0x%x\n\000" .align 2 LC16: .ascii "Exiting after page fault at iar=0x%x, isr=0x%x\n\000" .align 2 LC17: .ascii "Got an unrecognized system interrupt (0x%x) - exiting!\n\000" .align 2 LC18: .ascii "About to return from dointerrupt.\n\000" .text .align 2 .proc _dointerrupt .global _dointerrupt _dointerrupt: ; Function 'dointerrupt'; 56 bytes of locals, 6 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#88 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r2,(r30) lw r6,4(r30) lw r4,8(r30) lw r3,12(r30) addi r29,r29,#-8 lhi r5,((_debugstr)>>16)&0xffff addui r5,r5,(_debugstr)&0xffff sw (r29),r5 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L128 nop ; not filled. addi r29,r29,#-8 sw (r29),r5 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L127 nop ; not filled. L128: addi r29,r29,#-24 lhi r7,((LC3)>>16)&0xffff addui r7,r7,(LC3)&0xffff sw (r29),r7 sw 4(r29),r2 sw 8(r29),r6 sw 12(r29),r4 sw 16(r29),r3 jal _printf nop ; not filled. addi r29,r29,#24 L127: lhi r7,#2048 addui r7,r7,#0 and r1,r2,r7 snei r1,r1,#0 beqz r1,L129 nop ; not filled. lhi r7,#-2049 addui r7,r7,#65535 and r2,r2,r7 seqi r1,r2,#1075 bnez r1,L223 nop ; not filled. sgtui r1,r2,#1075 bnez r1,L215 nop ; not filled. seqi r1,r2,#531 bnez r1,L146 nop ; not filled. sgtui r1,r2,#531 bnez r1,L216 nop ; not filled. seqi r1,r2,#528 bnez r1,L154 nop ; not filled. sgtui r1,r2,#528 bnez r1,L217 nop ; not filled. seqi r1,r2,#80 bnez r1,L207 nop ; not filled. seqi r1,r2,#513 beqz r1,L213 nop ; not filled. j L143 nop ; not filled. L217: seqi r1,r2,#529 bnez r1,L157 nop ; not filled. seqi r1,r2,#530 beqz r1,L213 nop ; not filled. j L163 nop ; not filled. L216: seqi r1,r2,#1024 bnez r1,L131 nop ; not filled. sgtui r1,r2,#1024 bnez r1,L218 nop ; not filled. seqi r1,r2,#532 bnez r1,L151 nop ; not filled. seqi r1,r2,#768 beqz r1,L213 nop ; not filled. j L134 nop ; not filled. L218: seqi r1,r2,#1072 bnez r1,L137 nop ; not filled. sgtui r1,r2,#1072 bnez r1,L219 nop ; not filled. seqi r1,r2,#1040 beqz r1,L213 nop ; not filled. j L140 nop ; not filled. L219: seqi r1,r2,#1074 beqz r1,L213 nop ; not filled. j L166 nop ; not filled. L215: seqi r1,r2,#1108 bnez r1,L187 nop ; not filled. sgtui r1,r2,#1108 bnez r1,L220 nop ; not filled. seqi r1,r2,#1104 bnez r1,L174 nop ; not filled. sgtui r1,r2,#1104 bnez r1,L221 nop ; not filled. seqi r1,r2,#1088 bnez r1,L169 nop ; not filled. seqi r1,r2,#1089 beqz r1,L213 nop ; not filled. j L170 nop ; not filled. L221: seqi r1,r2,#1106 bnez r1,L182 nop ; not filled. sgtui r1,r2,#1106 beqz r1,L178 nop ; not filled. j L186 nop ; not filled. L220: seqi r1,r2,#1111 bnez r1,L199 nop ; not filled. sgtui r1,r2,#1111 bnez r1,L222 nop ; not filled. seqi r1,r2,#1109 bnez r1,L191 nop ; not filled. seqi r1,r2,#1110 beqz r1,L213 nop ; not filled. j L195 nop ; not filled. L222: seqi r1,r2,#1113 bnez r1,L209 nop ; not filled. sltui r1,r2,#1113 bnez r1,L203 nop ; not filled. seqi r1,r2,#1408 beqz r1,L213 nop ; not filled. j L160 nop ; not filled. L131: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L133 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L226 nop ; not filled. L133: addi r29,r29,#-8 lhi r7,((LC4)>>16)&0xffff addui r7,r7,(LC4)&0xffff j L256 nop ; not filled. L134: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L136 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L135 nop ; not filled. L136: addi r29,r29,#-8 lhi r7,((LC5)>>16)&0xffff addui r7,r7,(LC5)&0xffff sw (r29),r7 jal _printf nop ; not filled. addi r29,r29,#8 L135: addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _ProcessDestroy nop ; not filled. jal _ProcessSchedule nop ; not filled. j L243 nop ; not filled. L137: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L139 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L223 nop ; not filled. L139: addi r29,r29,#-8 lhi r7,((LC6)>>16)&0xffff addui r7,r7,(LC6)&0xffff sw (r29),r7 jal _printf nop ; not filled. j L243 nop ; not filled. L140: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L142 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L141 nop ; not filled. L142: addi r29,r29,#-8 lhi r7,((LC7)>>16)&0xffff addui r7,r7,(LC7)&0xffff sw (r29),r7 jal _printf nop ; not filled. addi r29,r29,#8 L141: addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _ProcessSuspend nop ; not filled. jal _ProcessSchedule nop ; not filled. j L243 nop ; not filled. L143: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L145 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L144 nop ; not filled. L145: addi r29,r29,#-8 lhi r7,((LC8)>>16)&0xffff addui r7,r7,(LC8)&0xffff sw (r29),r7 jal _printf nop ; not filled. addi r29,r29,#8 L144: addi r29,r29,#-8 sw (r29),r3 andi r1,r4,#64 sw 4(r29),r1 jal _TrapPrintfHandler nop ; not filled. j L243 nop ; not filled. L146: andi r1,r4,#64 snei r1,r1,#0 beqz r1,L147 nop ; not filled. lw r7,(r3) sw -24(r30),r7 lw r3,4(r3) sw -20(r30),r3 j L148 nop ; not filled. L147: addi r29,r29,#-16 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r7,(r2) sw (r29),r7 sw 4(r29),r3 addi r1,r30,#-24 sw 8(r29),r1 addi r7,r0,#8 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. lw r2,(r2) sw (r29),r2 lw r1,-24(r30) sw 4(r29),r1 addi r2,r30,#-56 sw 8(r29),r2 addi r7,r0,#31 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. addi r7,r0,(#0x0)&0xff sb -25(r30),r7 sw -24(r30),r2 addi r29,r29,#16 L148: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop ; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 lw r1,-20(r30) lhi r7,#1 addui r7,r7,#0 add r1,r1,r7 sw 4(r29),r1 jal _ProcessSetResult nop ; not filled. addi r29,r29,#-8 lhi r7,((LC9)>>16)&0xffff addui r7,r7,(LC9)&0xffff sw (r29),r7 lw r1,-24(r30) sw 4(r29),r1 lw r7,-20(r30) sw 8(r29),r7 jal _printf nop ; not filled. addi r29,r29,#16 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop ; not filled. j L243 nop ; not filled. L151: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop ; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop ; not filled. j L243 nop ; not filled. L154: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop ; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop ; not filled. j L243 nop ; not filled. L157: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop ; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop ; not filled. j L243 nop ; not filled. L160: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop ; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop ; not filled. j L243 nop ; not filled. L163: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop ; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop ; not filled. j L243 nop ; not filled. L166: addi r29,r29,#-8 sw (r29),r3 andi r1,r4,#64 sw 4(r29),r1 jal _TrapProcessCreateHandler nop ; not filled. j L243 nop ; not filled. L169: addi r29,r29,#-8 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r7,(r2) sw (r29),r7 jal _MemoryCreateSharedPage nop ; not filled. add r31,r0,r1 lw r2,(r2) sw (r29),r2 sw 4(r29),r31 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L170: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L172 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L244 nop ; not filled. L172: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L244: addi r29,r29,#16 lw r31,-60(r30) addi r29,r29,#-8 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r7,(r2) sw (r29),r7 sw 4(r29),r31 jal _mmap nop ; not filled. add r31,r0,r1 lw r2,(r2) sw (r29),r2 sw 4(r29),r31 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L174: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L176 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L245 nop ; not filled. L176: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L245: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _SemCreate nop ; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L178: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L180 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L246 nop ; not filled. L180: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L246: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _SemHandleWait nop ; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L182: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L184 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L247 nop ; not filled. L184: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L247: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _SemHandleSignal nop ; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L186: jal _LockCreate nop ; not filled. add r2,r0,r1 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L187: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L189 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L248 nop ; not filled. L189: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L248: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _LockHandleAcquire nop ; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L191: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L193 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L249 nop ; not filled. L193: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L249: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _LockHandleRelease nop ; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L195: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L197 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L250 nop ; not filled. L197: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L250: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondCreate nop ; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L199: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L201 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L251 nop ; not filled. L201: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L251: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondHandleWait nop ; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L203: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L205 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L252 nop ; not filled. L205: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L252: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondHandleSignal nop ; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L207: lhi r1,((_MY_TIMER)>>16)&0xffff addui r1,r1,(_MY_TIMER)&0xffff lw r2,(r1) addi r1,r0,#1000 movi2fp f0,r2 movi2fp f1,r1 divu f0,f0,f1 movfp2i r2,f0 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L209: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L211 nop ; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop ; not filled. j L253 nop ; not filled. L211: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop ; not filled. L253: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondHandleBroadcast nop ; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop ; not filled. j L243 nop ; not filled. L213: addi r29,r29,#-8 lhi r7,((LC10)>>16)&0xffff addui r7,r7,(LC10)&0xffff j L254 nop ; not filled. L129: seqi r1,r2,#3 bnez r1,L233 nop ; not filled. sgtui r1,r2,#3 bnez r1,L239 nop ; not filled. seqi r1,r2,#1 bnez r1,L235 nop ; not filled. seqi r1,r2,#2 beqz r1,L237 nop ; not filled. j L234 nop ; not filled. L239: seqi r1,r2,#64 bnez r1,L225 nop ; not filled. sgtui r1,r2,#64 bnez r1,L240 nop ; not filled. seqi r1,r2,#32 beqz r1,L237 nop ; not filled. j L236 nop ; not filled. L240: seqi r1,r2,#72 beqz r1,L237 nop ; not filled. j L228 nop ; not filled. L225: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L227 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L226 nop ; not filled. L227: addi r29,r29,#-8 lhi r7,((LC11)>>16)&0xffff addui r7,r7,(LC11)&0xffff L256: sw (r29),r7 jal _printf nop ; not filled. addi r29,r29,#8 L226: jal _ProcessSchedule nop ; not filled. j L223 nop ; not filled. L228: lhi r4,#-16 addui r4,r4,#416 lhi r3,#-16 addui r3,r3,#384 L229: lw r2,(r4) lw r1,(r3) addi r29,r29,#-16 lhi r7,((LC12)>>16)&0xffff addui r7,r7,(LC12)&0xffff sw (r29),r7 sw 4(r29),r1 sw 8(r29),r1 sw 12(r29),r2 jal _printf nop ; not filled. addi r29,r29,#16 sgti r1,r2,#1 beqz r1,L223 nop ; not filled. j L229 nop ; not filled. L233: addi r29,r29,#-16 lhi r7,((LC13)>>16)&0xffff addui r7,r7,(LC13)&0xffff j L255 nop ; not filled. L234: addi r29,r29,#-16 lhi r7,((LC14)>>16)&0xffff addui r7,r7,(LC14)&0xffff j L255 nop ; not filled. L235: addi r29,r29,#-16 lhi r7,((LC15)>>16)&0xffff addui r7,r7,(LC15)&0xffff j L255 nop ; not filled. L236: addi r29,r29,#-16 lhi r7,((LC16)>>16)&0xffff addui r7,r7,(LC16)&0xffff L255: sw (r29),r7 sw 4(r29),r6 sw 8(r29),r4 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#16 j L223 nop ; not filled. L237: addi r29,r29,#-8 lhi r7,((LC17)>>16)&0xffff addui r7,r7,(LC17)&0xffff L254: sw (r29),r7 sw 4(r29),r2 jal _printf nop ; not filled. jal _exitsim nop ; not filled. L243: addi r29,r29,#8 L223: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L242 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L241 nop ; not filled. L242: addi r29,r29,#-8 lhi r7,((LC18)>>16)&0xffff addui r7,r7,(LC18)&0xffff sw (r29),r7 jal _printf nop ; not filled. addi r29,r29,#8 L241: jal _intrreturn nop ; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dointerrupt

home/bshapir/cs314/project3/src/dlxos.ps

home/bshapir/cs314/project3/src/userprog.dlx

; Linked by DLX-LD. ; MemSize 20480 ; Data size: 59 ; Text size: 3420 ; Stack size: 8192 .text 0x1000 .data 0x2000 ; Compiled by GCC .align 2 LC0_LF0: .ascii "userprog.dlx.obj\000" .align 2 LC1_LF0: .ascii "%c%d\n\000" .align 2 LC2_LF0: .ascii "Usage: \000" .align 2 LC3_LF0: .ascii " number\n\000" .align 2 LC4_LF0: .ascii "argc = %d\n\000" .text .align 2 .proc _main .global _main _main: ; Function 'main'; 32 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage lw r2,(r30) lw r3,4(r30) jal ___main nop; not filled. seqi r1,r2,#2 bnez r1,L3_LF0 nop; not filled. seqi r1,r2,#3 beqz r1,L20_LF0 nop; not filled. j L9_LF0 nop; not filled. L3_LF0: addi r29,r29,#-16 lw r3,4(r3) sw (r29),r3 addi r6,r0,#0 sw 4(r29),r6 addi r6,r0,#10 sw 8(r29),r6 jal _dstrtol nop; not filled. add r5,r0,r1 addi r6,r0,#1 sw (r29),r6 jal _sem_create nop; not filled. sw (r29),r1 addi r4,r30,#-40 sw 4(r29),r4 jal _ditoa nop; not filled. addi r3,r0,#0 addi r29,r29,#16 slt r1,r3,r5 beqz r1,L2_LF0 nop; not filled. addi r2,r30,#-24 L7_LF0: addi r29,r29,#-8 sw (r29),r3 sw 4(r29),r2 jal _ditoa nop; not filled. addi r29,r29,#-16 sw (r29),r3 addi r6,r0,#0 sw 4(r29),r6 lhi r6,((LC0_LF0)>>16)&0xffff addui r6,r6,(LC0_LF0)&0xffff sw 8(r29),r6 sw 12(r29),r2 sw 16(r29),r4 addi r6,r0,#0 sw 20(r29),r6 jal _process_create nop; not filled. addi r29,r29,#24 addi r3,r3,#1 slt r1,r3,r5 beqz r1,L2_LF0 nop; not filled. j L7_LF0 nop; not filled. L9_LF0: addi r29,r29,#-16 lw r6,4(r3) sw (r29),r6 addi r6,r0,#0 sw 4(r29),r6 addi r6,r0,#10 sw 8(r29),r6 jal _dstrtol nop; not filled. add r2,r0,r1 lw r3,8(r3) sw (r29),r3 addi r6,r0,#0 sw 4(r29),r6 addi r6,r0,#10 sw 8(r29),r6 jal _dstrtol nop; not filled. add r4,r0,r1 addi r3,r0,#0 addi r29,r29,#16 addui r5,r0,#49999 addi r2,r2,#65 L13_LF0: addi r29,r29,#-8 sw (r29),r4 jal _sem_wait nop; not filled. addi r31,r0,#0 addi r29,r29,#8 L16_LF0: addi r31,r31,#1 sle r1,r31,r5 bnez r1,L16_LF0 nop; not filled. addi r29,r29,#-16 lhi r6,((LC1_LF0)>>16)&0xffff addui r6,r6,(LC1_LF0)&0xffff sw (r29),r6 sw 4(r29),r2 sw 8(r29),r3 jal _Printf nop; not filled. sw (r29),r4 jal _sem_signal nop; not filled. addi r29,r29,#16 addi r3,r3,#1 slei r1,r3,#99 beqz r1,L2_LF0 nop; not filled. j L13_LF0 nop; not filled. L20_LF0: addi r29,r29,#-8 lhi r6,((LC2_LF0)>>16)&0xffff addui r6,r6,(LC2_LF0)&0xffff sw (r29),r6 jal _Printf nop; not filled. lw r3,(r3) sw (r29),r3 jal _Printf nop; not filled. lhi r6,((LC3_LF0)>>16)&0xffff addui r6,r6,(LC3_LF0)&0xffff sw (r29),r6 jal _Printf nop; not filled. lhi r6,((LC4_LF0)>>16)&0xffff addui r6,r6,(LC4_LF0)&0xffff sw (r29),r6 sw 4(r29),r2 jal _Printf nop; not filled. jal _exit nop; not filled. L2_LF0: jal _exit nop .endproc _main ;;; ;;; Stub functions for DLX traps. ;;; ;;; Ethan L. Miller, 1999. Released to the public domain. ;;; ;;; The traps such as Open and Close ;;; (note the capital letters) are for use by user programs. The traps ;;; with names such as open and close (lower case) are for use by the OS. ;;; .align 2 ;;; The following are the traps to be used by user-level programs ;;; .align 2 .proc _Open .global _Open _Open: ;;; Note that trap #0x213 actually causes a trap vector in the OS of ;;; 0x1213. The same is true for other user traps. Thus, a user trap ;;; with trap #0x240 will result in a trap vector of 0x1240 in the OS. trap #0x213 jr r31 nop .endproc _Open .proc _Close .global _Close _Close: trap #0x214 jr r31 nop .endproc _Close .proc _Read .global _Read _Read: trap #0x210 jr r31 nop .endproc _Read .proc _Write .global _Write _Write: trap #0x211 jr r31 nop .endproc _Write .proc _Lseek .global _Lseek _Lseek: trap #0x212 jr r31 nop .endproc _Lseek .proc _Putchar .global _Putchar _Putchar: trap #0x280 jr r31 nop .endproc _Putchar .proc _Printf .global _Printf _Printf: trap #0x201 jr r31 nop .endproc _Printf .proc _getpid .global _getpid _getpid: trap #0x431 jr r31 nop .endproc _getpid .proc _process_create .global _process_create _process_create: trap #0x432 jr r31 nop .endproc _process_create .proc _shmget .global _shmget _shmget: trap #0x440 jr r31 nop .endproc _shmget .proc _shmat .global _shmat _shmat: trap #0x441 jr r31 nop .endproc _shmat .proc _sem_create .global _sem_create _sem_create: trap #0x450 jr r31 nop .endproc _sem_create .proc _sem_wait .global _sem_wait _sem_wait: trap #0x451 jr r31 nop .endproc _sem_wait .proc _sem_signal .global _sem_signal _sem_signal: trap #0x452 jr r31 nop .endproc _sem_signal .proc _lock_create .global _lock_create _lock_create: trap #0x453 jr r31 nop .endproc _lock_create .proc _lock_acquire .global _lock_acquire _lock_acquire: trap #0x454 jr r31 nop .endproc _lock_acquire .proc _lock_release .global _lock_release _lock_release: trap #0x455 jr r31 nop .endproc _lock_release .proc _cond_create .global _cond_create _cond_create: trap #0x456 jr r31 nop .endproc _cond_create .proc _cond_wait .global _cond_wait _cond_wait: trap #0x457 jr r31 nop .endproc _cond_wait .proc _cond_signal .global _cond_signal _cond_signal: trap #0x458 jr r31 nop .endproc _cond_signal .proc _cond_broadcast .global _cond_broadcast _cond_broadcast: trap #0x455 jr r31 nop .endproc _cond_broadcast .proc _TimerGet .global _TimerGet _TimerGet: trap #0x50 jr r31 nop .endproc _TimerGet .proc _yield .global _yield _yield: trap #0x433 jr r31 nop .endproc _yield ; Compiled by GCC .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF2 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF2 nop; not filled. L6_LF2: addi r31,r0,#1 L5_LF2: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF2 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF2 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF2 nop; not filled. L12_LF2: addi r2,r0,#1 L11_LF2: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _dstrcpy .global _dstrcpy _dstrcpy: ; Function 'dstrcpy'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r2,4(r30) add r3,r0,r31 L19_LF2: lb r1,(r2) sb (r31),r1 addi r2,r2,#1 addi r31,r31,#1 andi r1,r1,#0x00ff snei r1,r1,#0 bnez r1,L19_LF2 nop; not filled. add r1,r0,r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrcpy .align 2 .proc _dstrncpy .global _dstrncpy _dstrncpy: ; Function 'dstrncpy'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) lw r3,4(r30) lw r31,8(r30) add r4,r0,r2 j L37_LF2 nop; not filled. L34_LF2: lb r1,(r3) sb (r2),r1 addi r3,r3,#1 addi r2,r2,#1 andi r1,r1,#0x00ff snei r1,r1,#0 beqz r1,L32_LF2 nop; not filled. L37_LF2: add r1,r0,r31 addi r31,r31,#-1 slei r1,r1,#0 beqz r1,L34_LF2 nop; not filled. L32_LF2: add r1,r0,r4 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrncpy .align 2 .proc _dstrcat .global _dstrcat _dstrcat: ; Function 'dstrcat'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) add r3,r0,r31 lbu r1,(r3) snei r1,r1,#0 beqz r1,L50_LF2 nop; not filled. L51_LF2: addi r31,r31,#1 lbu r1,(r31) snei r1,r1,#0 bnez r1,L51_LF2 nop; not filled. L50_LF2: add r2,r0,r31 lw r31,4(r30) L54_LF2: lb r1,(r31) sb (r2),r1 addi r31,r31,#1 addi r2,r2,#1 andi r1,r1,#0x00ff snei r1,r1,#0 bnez r1,L54_LF2 nop; not filled. add r1,r0,r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrcat .align 2 .proc _dstrncmp .global _dstrncmp _dstrncmp: ; Function 'dstrncmp'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r3,(r30) lw r4,4(r30) lw r5,8(r30) addi r2,r0,#0 slt r1,r2,r5 beqz r1,L73_LF2 nop; not filled. L75_LF2: lbu r31,(r4) snei r1,r31,#0 beqz r1,L86_LF2 nop; not filled. lbu r1,(r3) sne r1,r1,r31 bnez r1,L73_LF2 nop; not filled. addi r3,r3,#1 addi r4,r4,#1 addi r2,r2,#1 slt r1,r2,r5 bnez r1,L75_LF2 nop; not filled. L73_LF2: seq r1,r2,r5 beqz r1,L80_LF2 nop; not filled. L86_LF2: addi r1,r0,#0 j L84_LF2 nop; not filled. L80_LF2: lbu r31,(r3) lbu r3,(r4) sub r1,r31,r3 sgei r1,r1,#0 addi r2,r0,#-1 beqz r1,L82_LF2 nop; not filled. sne r2,r31,r3 L82_LF2: add r1,r0,r2 L84_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrncmp .align 2 .proc _dstrlen .global _dstrlen _dstrlen: ; Function 'dstrlen'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r31,(r30) addi r2,r0,#0 j L97_LF2 nop; not filled. L95_LF2: addi r2,r2,#1 L97_LF2: lbu r1,(r31) addi r31,r31,#1 snei r1,r1,#0 bnez r1,L95_LF2 nop; not filled. add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrlen .align 2 .proc _dstrstr .global _dstrstr _dstrstr: ; Function 'dstrstr'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r5,(r30) lw r7,4(r30) addi r3,r0,#0 lbu r1,(r7) addi r2,r7,#1 snei r1,r1,#0 beqz r1,L125_LF2 nop; not filled. L126_LF2: addi r3,r3,#1 lbu r1,(r2) addi r2,r2,#1 snei r1,r1,#0 bnez r1,L126_LF2 nop; not filled. L125_LF2: add r6,r0,r3 j L149_LF2 nop; not filled. L130_LF2: add r3,r0,r5 add r4,r0,r7 addi r2,r0,#0 slt r1,r2,r6 beqz r1,L134_LF2 nop; not filled. L136_LF2: lbu r31,(r4) snei r1,r31,#0 beqz r1,L150_LF2 nop; not filled. lbu r1,(r3) sne r1,r1,r31 bnez r1,L134_LF2 nop; not filled. addi r3,r3,#1 addi r4,r4,#1 addi r2,r2,#1 slt r1,r2,r6 bnez r1,L136_LF2 nop; not filled. L134_LF2: seq r1,r2,r6 beqz r1,L141_LF2 nop; not filled. L150_LF2: addi r1,r0,#0 j L132_LF2 nop; not filled. L141_LF2: lbu r3,(r3) lbu r2,(r4) sub r1,r3,r2 sgei r1,r1,#0 addi r31,r0,#-1 beqz r1,L143_LF2 nop; not filled. sne r31,r3,r2 L143_LF2: add r1,r0,r31 L132_LF2: snei r1,r1,#0 bnez r1,L131_LF2 nop; not filled. add r1,r0,r5 j L146_LF2 nop; not filled. L131_LF2: addi r5,r5,#1 L149_LF2: lbu r1,(r5) snei r1,r1,#0 bnez r1,L130_LF2 nop; not filled. addi r1,r0,#0 L146_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrstr .align 2 .proc _dmindex .global _dmindex _dmindex: ; Function 'dmindex'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) lw r6,4(r30) lbu r1,(r4) snei r1,r1,#0 beqz r1,L164_LF2 nop; not filled. add r5,r0,r1 L165_LF2: add r2,r0,r6 lb r31,(r6) andi r1,r31,#0x00ff snei r1,r1,#0 beqz r1,L163_LF2 nop; not filled. lbu r3,(r4) L169_LF2: andi r1,r31,#0x00ff seq r1,r3,r1 beqz r1,L168_LF2 nop; not filled. add r1,r0,r4 j L173_LF2 nop; not filled. L168_LF2: addi r2,r2,#1 lb r31,(r2) andi r1,r31,#0x00ff snei r1,r1,#0 bnez r1,L169_LF2 nop; not filled. L163_LF2: bnez r5,L165_LF2 nop; not filled. L164_LF2: addi r1,r0,#0 L173_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dmindex .align 2 .proc _dindex .global _dindex _dindex: ; Function 'dindex'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) j L187_LF2 nop; not filled. L183_LF2: andi r1,r31,#0x00ff seq r1,r1,r3 beqz r1,L184_LF2 nop; not filled. add r1,r0,r2 j L186_LF2 nop; not filled. L184_LF2: addi r2,r2,#1 L187_LF2: lb r31,(r2) andi r1,r31,#0x00ff snei r1,r1,#0 bnez r1,L183_LF2 nop; not filled. addi r1,r0,#0 L186_LF2: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dindex .align 2 .proc _ditoa .global _ditoa _ditoa: ; Function 'ditoa'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) lw r4,4(r30) slti r1,r3,#0 beqz r1,L203_LF2 nop; not filled. addi r6,r0,(#0x2d)&0xff j L216_LF2 nop; not filled. L203_LF2: snei r1,r3,#0 bnez r1,L205_LF2 nop; not filled. addi r6,r0,(#0x30)&0xff L216_LF2: sb (r4),r6 addi r4,r4,#1 j L204_LF2 nop; not filled. L205_LF2: addi r31,r0,#1 sle r1,r31,r3 beqz r1,L208_LF2 nop; not filled. L209_LF2: slli r1,r31,#0x2 add r1,r1,r31 slli r31,r1,#0x1 sle r1,r31,r3 bnez r1,L209_LF2 nop; not filled. L208_LF2: addi r5,r0,#10 L212_LF2: movi2fp f0,r31 movi2fp f1,r5 div f0,f0,f1 movfp2i r31,f0 movi2fp f0,r3 movi2fp f1,r31 div f0,f0,f1 movfp2i r2,f0 addi r1,r2,#48 sb (r4),r1 addi r4,r4,#1 movi2fp f0,r2 movi2fp f1,r31 mult f0,f0,f1 movfp2i r1,f0 sub r3,r3,r1 sgti r1,r31,#1 bnez r1,L212_LF2 nop; not filled. L204_LF2: addi r6,r0,(#0x0)&0xff sb (r4),r6 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ditoa .align 2 .proc _dstrtol .global _dstrtol _dstrtol: ; Function 'dstrtol'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) lw r5,4(r30) lw r4,8(r30) addi r3,r0,#0 j L247_LF2 nop; not filled. L220_LF2: addi r2,r2,#1 L247_LF2: lb r31,(r2) andi r1,r31,#0x00ff seqi r1,r1,#32 bnez r1,L220_LF2 nop; not filled. addi r1,r31,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 bnez r1,L220_LF2 nop; not filled. snei r1,r5,#0 beqz r1,L222_LF2 nop; not filled. sw (r5),r2 L222_LF2: lbu r31,(r2) snei r1,r31,#0 beqz r1,L248_LF2 nop; not filled. seqi r1,r31,#45 beqz r1,L224_LF2 nop; not filled. addi r6,r0,#-1 addi r2,r2,#1 j L225_LF2 nop; not filled. L224_LF2: addi r6,r0,#1 L225_LF2: snei r1,r4,#0 bnez r1,L226_LF2 nop; not filled. lbu r1,(r2) seqi r1,r1,#48 beqz r1,L227_LF2 nop; not filled. addi r2,r2,#1 lbu r31,(r2) seqi r1,r31,#120 bnez r1,L229_LF2 nop; not filled. seqi r1,r31,#88 beqz r1,L228_LF2 nop; not filled. L229_LF2: addi r4,r0,#16 addi r2,r2,#1 j L226_LF2 nop; not filled. L228_LF2: addi r4,r0,#8 j L226_LF2 nop; not filled. L227_LF2: addi r4,r0,#10 L226_LF2: addi r1,r4,#-1 sgtui r1,r1,#15 beqz r1,L233_LF2 nop; not filled. L248_LF2: add r1,r0,r3 j L245_LF2 nop; not filled. L233_LF2: lb r31,(r2) addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 beqz r1,L236_LF2 nop; not filled. andi r1,r31,#0x00ff addi r1,r1,#-48 j L237_LF2 nop; not filled. L236_LF2: addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#25 beqz r1,L238_LF2 nop; not filled. andi r1,r31,#0x00ff addi r1,r1,#-87 j L237_LF2 nop; not filled. L238_LF2: addi r1,r31,#-65 andi r1,r1,#0x00ff sleui r1,r1,#25 beqz r1,L240_LF2 nop; not filled. andi r1,r31,#0x00ff addi r1,r1,#-55 j L237_LF2 nop; not filled. L240_LF2: addi r1,r0,#1000 L237_LF2: slt r31,r1,r4 beqz r31,L246_LF2 nop; not filled. movi2fp f0,r3 movi2fp f1,r4 mult f0,f0,f1 movfp2i r3,f0 add r3,r3,r1 addi r2,r2,#1 bnez r31,L233_LF2 nop; not filled. L246_LF2: snei r1,r5,#0 beqz r1,L244_LF2 nop; not filled. sw (r5),r2 L244_LF2: movi2fp f0,r3 movi2fp f1,r6 mult f0,f0,f1 movfp2i r1,f0 L245_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrtol .align 2 .proc _bcopy .global _bcopy _bcopy: ; Function 'bcopy'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) lw r2,4(r30) lw r31,8(r30) j L259_LF2 nop; not filled. L257_LF2: lb r4,(r3) sb (r2),r4 addi r3,r3,#1 addi r2,r2,#1 L259_LF2: add r1,r0,r31 addi r31,r31,#-1 sgti r1,r1,#0 bnez r1,L257_LF2 nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _bcopy .align 2 .proc _bzero .global _bzero _bzero: ; Function 'bzero'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r31,4(r30) j L270_LF2 nop; not filled. L268_LF2: addi r3,r0,(#0x0)&0xff sb (r2),r3 addi r2,r2,#1 L270_LF2: add r1,r0,r31 addi r31,r31,#-1 sgti r1,r1,#0 bnez r1,L268_LF2 nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _bzero ;;; Ethan L. Miller, 1999. Released to the public domain ;;; ;;; Most of the traps are called in files from libtraps. .align 2 .proc _exit .global _exit _exit: trap #0x300 jr r31 nop .endproc _exit ; for the benefit of gcc. .proc ___main .global ___main ___main: jr r31 nop .endproc ___main .text .global _etext _etext: .align 3 .data .global _edata _edata:

home/bshapir/cs314/project3/src/usertraps.s

;;; ;;; Stub functions for DLX traps. ;;; ;;; Ethan L. Miller, 1999. Released to the public domain. ;;; ;;; The traps such as Open and Close ;;; (note the capital letters) are for use by user programs. The traps ;;; with names such as open and close (lower case) are for use by the OS. ;;; .text .align 2 ;;; The following are the traps to be used by user-level programs ;;; .text .align 2 .proc _Open .global _Open _Open: ;;; Note that trap #0x213 actually causes a trap vector in the OS of ;;; 0x1213. The same is true for other user traps. Thus, a user trap ;;; with trap #0x240 will result in a trap vector of 0x1240 in the OS. trap #0x213 jr r31 nop .endproc _Open .proc _Close .global _Close _Close: trap #0x214 jr r31 nop .endproc _Close .proc _Read .global _Read _Read: trap #0x210 jr r31 nop .endproc _Read .proc _Write .global _Write _Write: trap #0x211 jr r31 nop .endproc _Write .proc _Lseek .global _Lseek _Lseek: trap #0x212 jr r31 nop .endproc _Lseek .proc _Putchar .global _Putchar _Putchar: trap #0x280 jr r31 nop .endproc _Putchar .proc _Printf .global _Printf _Printf: trap #0x201 jr r31 nop .endproc _Printf .proc _getpid .global _getpid _getpid: trap #0x431 jr r31 nop .endproc _getpid .proc _process_create .global _process_create _process_create: trap #0x432 jr r31 nop .endproc _process_create .proc _shmget .global _shmget _shmget: trap #0x440 jr r31 nop .endproc _shmget .proc _shmat .global _shmat _shmat: trap #0x441 jr r31 nop .endproc _shmat .proc _sem_create .global _sem_create _sem_create: trap #0x450 jr r31 nop .endproc _sem_create .proc _sem_wait .global _sem_wait _sem_wait: trap #0x451 jr r31 nop .endproc _sem_wait .proc _sem_signal .global _sem_signal _sem_signal: trap #0x452 jr r31 nop .endproc _sem_signal .proc _lock_create .global _lock_create _lock_create: trap #0x453 jr r31 nop .endproc _lock_create .proc _lock_acquire .global _lock_acquire _lock_acquire: trap #0x454 jr r31 nop .endproc _lock_acquire .proc _lock_release .global _lock_release _lock_release: trap #0x455 jr r31 nop .endproc _lock_release .proc _cond_create .global _cond_create _cond_create: trap #0x456 jr r31 nop .endproc _cond_create .proc _cond_wait .global _cond_wait _cond_wait: trap #0x457 jr r31 nop .endproc _cond_wait .proc _cond_signal .global _cond_signal _cond_signal: trap #0x458 jr r31 nop .endproc _cond_signal .proc _cond_broadcast .global _cond_broadcast _cond_broadcast: trap #0x455 jr r31 nop .endproc _cond_broadcast .proc _TimerGet .global _TimerGet _TimerGet: trap #0x50 jr r31 nop .endproc _TimerGet .proc _yield .global _yield _yield: trap #0x433 jr r31 nop .endproc _yield

home/bshapir/cs314/project3/src/trap_random.s

; ; Stub functions for DLX traps. ; ; Aaron Sawdey 1996; released to the Public Domain. ; .text .align 2 .proc _random .global _random _random: trap #0x2020 jr r31 nop .endproc _random .proc _srandom .global _srandom _srandom: trap #0x2021 jr r31 nop .endproc _srandom ; I know this is not the right place to put it, but what the heck .proc _timerget .global _timerget _timerget: trap #0x2002 jr r31 nop .endproc _timerget

home/bshapir/cs314/project3/src/process.h

// // process.h // // Definitions for process creation and manipulation. These include // the process control block (PCB) structure as well as information // about the stack format for a saved process. // #ifndef _process_h__ #define _process_h_ #include "dlxos.h" #include "queue.h" //#include "share_memory.h" #define PROCESS_MAX_PROCS 32 // Maximum number of active processes #define PROCESS_INIT_ISR_SYS 0x140 // Initial status reg value for system processes #define PROCESS_INIT_ISR_USER 0x100 // Initial status reg value for user processes #define PROCESS_STATUS_FREE 0x1 #define PROCESS_STATUS_RUNNABLE 0x2 #define PROCESS_STATUS_WAITING 0x4 #define PROCESS_STATUS_STARTING 0x8 #define PROCESS_STATUS_ZOMBIE 0x10 #define PROCESS_STATUS_MASK 0x3f #define PROCESS_TYPE_SYSTEM 0x100 #define PROCESS_TYPE_USER 0x200 // Lab3 : These parameters are used for lab 3 #define NUM_OF_RUNQUEUE 32 #define PUSER 50 #define TRUE 1 #define FALSE 0 typedef void (*VoidFunc)(); // Process control block typedef struct PCB { uint32 *currentSavedFrame; // -> current saved frame. MUST BE 1ST! uint32 *sysStackPtr; // Current system stack pointer. MUST BE 2ND! uint32 sysStackArea; // System stack area for this process unsigned int flags; char name[80]; // Process name uint32 pagetable[16]; // Statically allocated page table int npages; // Number of pages allocated to this process Link l; // Used for keeping PCB in queues // put in data used for your scheduling algorithm here } PCB; // Offsets of various registers from the stack pointer in the register // save frame. Offsets are in WORDS (4 byte chunks) #define PROCESS_STACK_IREG 10 // Offset of r0 (grows upwards) // NOTE: r0 isn't actually stored! This is for convenience - r1 is the // first stored register, and is at location PROCESS_STACK_IREG+1 #define PROCESS_STACK_FREG (PROCESS_STACK_IREG+32) // Offset of f0 #define PROCESS_STACK_IAR (PROCESS_STACK_FREG+32) // Offset of IAR #define PROCESS_STACK_ISR (PROCESS_STACK_IAR+1) #define PROCESS_STACK_CAUSE (PROCESS_STACK_IAR+2) #define PROCESS_STACK_FAULT (PROCESS_STACK_IAR+3) #define PROCESS_STACK_PTBASE (PROCESS_STACK_IAR+4) #define PROCESS_STACK_PTSIZE (PROCESS_STACK_IAR+5) #define PROCESS_STACK_PTBITS (PROCESS_STACK_IAR+6) #define PROCESS_STACK_PREV_FRAME 10 // points to previous interrupt frame #define PROCESS_STACK_FRAME_SIZE 85 // interrupt frame is 85 words #define SIZE_ARG_BUFF 1024 // Max number of characters in the // command-line arguments #define MAX_ARGS 128 // Max number of command-line // arguments extern PCB *currentPCB; extern int ProcessFork (VoidFunc, unsigned int, int, int,char *, int); extern void ProcessSchedule (); extern void ContextSwitch(void *, void *, int); extern void ProcessSuspend (PCB *); extern void ProcessWakeup (PCB *); extern void ProcessSetResult (PCB *, uint32); extern void ProcessSleep (); extern unsigned GetCurrentPid(); extern unsigned getpid(); void process_create(int p_nice, int p_info,char *name, ...); #endif /* _process_h_ */

home/bshapir/cs314/project3/src/lab2-api.h

/***************************************************************** * * Various APIs for Lab 2 of OS469 * Copyright: Uday Savagaonkar, Jan 2002 * *****************************************************************/ #ifndef _LAB2_API_H_ #define _LAB2_API_H_ #define NULL (void *)0x0 #define INVALID_SEM -1 typedef unsigned int uint32; typedef int sem_t; typedef int lock_t; typedef int cond_t; //Related to processes uint32 getpid(); //trap 0x431 void process_create(int p_nice, int p_info, char *arg1, ...); //trap 0x432 //Related to shared memory uint32 shmget(); //trap 0x440 void *shmat(uint32 handle); //trap 0x441 //Related to semaphores sem_t sem_create(int count); //trap 0x450 int sem_wait(sem_t sem); //trap 0x451 int sem_signal(sem_t sem); //trap 0x452 lock_t lock_create(); //trap 0x452 int lock_acquire(lock_t lock); //trap 0x453 int lock_release(lock_t lock); //trap 0x454 cond_t cond_create(lock_t lock); //trap 0x455 int cond_wait(cond_t cond); //trap 0x456 int cond_signal(cond_t cond); //trap 0x457 int cond_broadcast(cond_t cond); //trap 0x458 #endif _LAB2_API_H_

home/bshapir/cs314/project3/src/dlxos.o

;;; ;;; Initialization code for programs running in the DLX simulator. ;;; Copyright (c) 1999 by Ethan Miller ;;; ;;; .text .align 2 ;;;---------------------------------------------------------------------- ;;; osinit ;;; ;;; This is the first function called by the simulator, even before main. ;;; Since it's called BEFORE any "real" routines, we can use any registers ;;; we want as long as we don't mess up the stack or frame pointers. ;;; ;;; This routine loads the interrupt vector to point to the interrupt ;;; handler later in this file. It should never return, because _main ;;; should call exitsim() or exit() rather than returning here. ;;; ;;; After initialization is done, this routine jumps to _main to start the ;;; C code portion of the operating system. ;;;---------------------------------------------------------------------- .proc _osinit .global _osinit _osinit: ;; Set up the interrupt handler lhi r1,(_intrhandler>>16)&0xffff addui r1,r1,_intrhandler&0xffff movi2s intrvec,r1 ;; Never returns because exitsim is called first j _main .endproc _osinit ;;;---------------------------------------------------------------------- ;;; intrhandler ;;; ;;; Called when an interrupt or trap is received by the CPU. It stores the ;;; current register set on the system stack. It then pushes the parameters ;;; to the C interrupt handler onto the stack: the ISR, IAR, and CAUSE ;;; registers along with the original stack pointer. The C interrupt ;;; handler can then copy arguments from the original stack, performing ;;; user -> system translations if necessary. ;;; ;;;---------------------------------------------------------------------- .proc _intrhandler .global _intrhandler _intrhandler: ;; We can use r31 as scratch space because its value was saved in ;; ir31. However, we must save the "real" value of r31 on the ;; stack. ;; Always store the registers on the system stack. This way, we don't ;; have to worry about translating things from user -> system. We ;; use r31 as the base register because its value was saved in ir31. ;; If this was a user process, load r29 with the current system ;; stack pointer. If it was a system process, just use the ;; current stack pointer. movs2i r31,isr andi r31,r31,0x40 bnez r31,intrSystem lhi r31,(_currentPCB>>16)&0xffff addui r31,r31,_currentPCB&0xffff lw r31,(r31) lw r31,4(r31) ;; Save the original (user) stack pointer sw -184(r31),r29 ; we haven't yet bumped SP, and 156-340 = -184 ;; Copy the system stack pointer into r29 (current stack pointer) ori r29,r31,0 beqz r0,intrSaveReg ; skip over the system part.... intrSystem: ;; Use the stack pointer we're already using ;; Save r29 because we won't save it later sw -184(r29),r29 ; we haven't yet bumped SP, and 156-340 = -184 intrSaveReg: ;; Adjust stack pointer for all the stuff we're going to push. This ;; is a bit more space than we need currently, but it leaves room ;; for more stuff if needed. subui r29,r29,#340 ;; Push all the stuff onto the stack sw 44(r29),r1 sw 48(r29),r2 sw 52(r29),r3 sw 56(r29),r4 sw 60(r29),r5 sw 64(r29),r6 sw 68(r29),r7 sw 72(r29),r8 sw 76(r29),r9 sw 80(r29),r10 sw 84(r29),r11 sw 88(r29),r12 sw 92(r29),r13 sw 96(r29),r14 sw 100(r29),r15 sw 104(r29),r16 sw 108(r29),r17 sw 112(r29),r18 sw 116(r29),r19 sw 120(r29),r20 sw 124(r29),r21 sw 128(r29),r22 sw 132(r29),r23 sw 136(r29),r24 sw 140(r29),r25 sw 144(r29),r26 sw 148(r29),r27 sw 152(r29),r28 ;; Skip r29 - stored earlier! sw 160(r29),r30 ;; Load the value of r31 from the special register and then save it movs2i r3,ir31 sw 164(r29),r3 ;; Store the floating-point registers sd 168(r29),f0 sd 176(r29),f2 sd 184(r29),f4 sd 192(r29),f6 sd 200(r29),f8 sd 208(r29),f10 sd 216(r29),f12 sd 224(r29),f14 sd 232(r29),f16 sd 240(r29),f18 sd 248(r29),f20 sd 256(r29),f22 sd 264(r29),f24 sd 272(r29),f26 sd 280(r29),f28 sd 288(r29),f30 ;; NOTE: we don't save the interrupt vector register because it ;; doesn't change from process to process. ;; NOTE: we don't save the status register because most of the flags ;; are the same from process to process if they're in the interrupt ;; handler. Of course, we DO save the ISR. movs2i r4,iar sw 296(r29),r4 movs2i r5,isr sw 300(r29),r5 movs2i r6,cause sw 304(r29),r6 movs2i r3,fault sw 308(r29),r3 movs2i r3,ptbase sw 312(r29),r3 movs2i r3,ptsize sw 316(r29),r3 movs2i r3,ptbits sw 320(r29),r3 ;; Push the interrupt information onto the stack sw 0(r29),r6 ; push CAUSE sw 4(r29),r4 ; push IAR sw 8(r29),r5 ; push ISR ;; Get the original stack pointer lw r1,156(r29) sw 12(r29),r1 ;; Save the previous interrupt stack frame address in the current frame lhi r1,(_currentPCB>>16)&0xffff addui r1,r1,_currentPCB&0xffff lw r1,(r1) lw r2,0(r1) sw 40(r29),r2 ;; Save this frame address in the PCB. This is used so the OS can ;; easily access the current interrupt save frame sw 0(r1), r29 ;; Call the "real" interrupt handler. This will possibly switch ;; contexts. This call never returns; instead, a separate routine ;; (_intrreturn) is called to return from interrupts after restoring ;; the current context. j _dointerrupt nop .endproc _intrhandler � ;;;---------------------------------------------------------------------- ;;; intrreturn ;;; ;;; Return from an interrupt or trap. This restores all of the previously ;;; saved registers and then returns to where the program left off. The ;;; current contents of the registers are destroyed. This routine uses ;;; the saved interrupt frame pointer, so the stack pointer need not ;;; be correct. Note, though, that the register contents from the previous ;;; process must have previously been saved - in other words, call this ;;; routine from a trap or interrupt handler. ;;;---------------------------------------------------------------------- .proc _intrreturn .global _intrreturn _intrreturn: ;; Disable interrupts - this routine must be atomic, and interrupts ;; may not be currently disabled. Don't worry about saving registers ;; because we're about to reload them anyway. jal _DisableIntrs ;; Get our interrupt stack frame location and load it into the stack ;; pointer. lhi r1,(_currentPCB>>16)&0xffff addui r1,r1,_currentPCB&0xffff lw r1,0(r1) lw r29,0(r1) ;; Get the previous interrupt stack frame location and make it the ;; current interrupt save frame. lw r2,40(r29) sw 0(r1), r2 ;; Reload the registers for the new process. We don't have to ;; load in the exact opposite order as long as we're careful to ;; get the right values back in. lw r3,296(r29) movi2s iar,r3 lw r3,300(r29) movi2s isr,r3 lw r3,304(r29) movi2s cause,r3 lw r3,308(r29) movi2s fault,r3 lw r3,312(r29) movi2s ptbase,r3 lw r3,316(r29) movi2s ptsize,r3 lw r3,320(r29) movi2s ptbits,r3 ;; Reload the floating point registers ld f0,168(r29) ld f2,176(r29) ld f4,184(r29) ld f6,192(r29) ld f8,200(r29) ld f10,208(r29) ld f12,216(r29) ld f14,224(r29) ld f16,232(r29) ld f18,240(r29) ld f20,248(r29) ld f22,256(r29) ld f24,264(r29) ld f26,272(r29) ld f28,280(r29) ld f30,288(r29) ;; Reload the integer registers. We don't reload r0 because it's ;; always 0. We won't reload r29 here because we're using it as ;; the stack pointer. The same goes for r1, which we'll use as ;; scratch so we can store r29. ;; Skip r1 - restored later lw r2,48(r29) lw r3,52(r29) lw r4,56(r29) lw r5,60(r29) lw r6,64(r29) lw r7,68(r29) lw r8,72(r29) lw r9,76(r29) lw r10,80(r29) lw r11,84(r29) lw r12,88(r29) lw r13,92(r29) lw r14,96(r29) lw r15,100(r29) lw r16,104(r29) lw r17,108(r29) lw r18,112(r29) lw r19,116(r29) lw r20,120(r29) lw r21,124(r29) lw r22,128(r29) lw r23,132(r29) lw r24,136(r29) lw r25,140(r29) lw r26,144(r29) lw r27,148(r29) lw r28,152(r29) ;; Skip r29 - restored later lw r30,160(r29) lw r31,164(r29) addui r29,r29,#340 ;; Save the current value of the stack pointer after adjusting it ;; Note that this will "destroy" the stack values below this interrupt ;; stack frame. This is exactly what we want! sw 4(r1),r29 ori r1,r29,#0 lw r29,-184(r1) ; 156-340 = -184 lw r1,-296(r1) ; 44-340 = -296 rfe .endproc _intrreturn � ;;;---------------------------------------------------------------------- ;;; SetIntrs ;;; ;;; This routine sets the interrupt level to the value passed (0 -> all ;;; interrupts enabled; 0xf -> all interrupts disabled). It returns the ;;; former value for the interrupt flags. ;;;---------------------------------------------------------------------- .proc _SetIntrs .global _SetIntrs _SetIntrs: subui r29,r29,#16 sw 12(r29),r2 ; save r2 lw r2,16(r29) ; Get the new interrupt level andi r2,r2,#0x0f ; Mask off interrupt levels movs2i r1,status sw 8(r29),r1 ; Store the old interrupt values andi r1,r1,#0xfff0 ; Mask off old interrupt level or r1,r2,r1 ; OR in new interrupt level movi2s status,r1 lw r1,8(r29) ; Get back the original interrupt level andi r1,r1,#0x0f ; Mask off all but interrupt levels lw r2,12(r29) ; restore r2 addui r29,r29,#16 ; restore stack pointer jr r31 nop .endproc _SetIntrs .proc _CurrentIntrs .global _CurrentIntrs _CurrentIntrs: movs2i r1,status andi r1,r1,#0xf jr r31 nop .endproc _CurrentIntrs ;;;---------------------------------------------------------------------- ;;; _ProcessSleep ;;; ;;; If a context switch from elsewhere in the kernel is desired, take a ;;; trap and call this routine from the trap handler. ;;;---------------------------------------------------------------------- .proc _ProcessSleep .global _ProcessSleep _ProcessSleep: trap #0x410 ; This is a process sleep trap nop jr r31 nop .endproc _ProcessSleep

home/bshapir/cs314/project3/src/dlx.h

// // Definitions of flags and other things defined by the DLX processor. // #ifndef _dlx_h_ #define _dlx_h_ #define DLX_STATUS_INTRMASK 0x0f // up to 16 interrupt levels #define DLX_STATUS_FPTRUE 0x20 // Set if last FP comparison was true #define DLX_STATUS_SYSMODE 0x40 // Set if CPU is in system mode #define DLX_STATUS_PAGE_TABLE 0x100 // Set -> use a page table #define DLX_STATUS_TLB 0x200 // Set -> use a software-loaded TLB #endif // _dlx_h_

home/bshapir/cs314/project3/src/memory.c

// // memory.c // // Routines for dealing with memory management. static char rcsid[] = "$Id: memory.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $"; #include "dlxos.h" #include "memory.h" #include "process.h" #include "queue.h" static uint32 pagestart; static int freemapmax; static int nfreepages; static uint32 freepages[MEMORY_MAX_PAGES/32]; static uint32 negativeone = 0xffffffff; //---------------------------------------------------------------------- // // This silliness is required because the compiler believes that // it can invert a number by subtracting it from zero and subtracting // an additional 1. This works unless you try to negate 0x80000000, // which causes an overflow when subtracted from 0. Simply // trying to do an XOR with 0xffffffff results in the same code // being emitted. // //---------------------------------------------------------------------- static inline uint32 invert (uint32 n) { return (n ^ negativeone); } //---------------------------------------------------------------------- // // MemoryGetSize // // Return the total size of memory in the simulator. This is // available by reading a special location. // //---------------------------------------------------------------------- int MemoryGetSize () { return (*((int *)DLX_MEMSIZE_ADDRESS)); } //---------------------------------------------------------------------- // // MemorySetFreemap // //---------------------------------------------------------------------- inline void MemorySetFreemap (int p, int b) { uint32 wd = p / 32; uint32 bitnum = p % 32; freepages[wd] = (freepages[wd] & invert(1 << bitnum)) | (b << bitnum); dbprintf ('m', "Set freemap entry %d to 0x%x.\n", wd, freepages[wd]); } � //---------------------------------------------------------------------- // // MemoryInitModule // // Initialize the memory module of the operating system. // //---------------------------------------------------------------------- void MemoryModuleInit () { int i; int maxpage = MemoryGetSize () / MEMORY_PAGE_SIZE; int curpage; pagestart = (lastosaddress + MEMORY_PAGE_SIZE - 4) / MEMORY_PAGE_SIZE; freemapmax = (maxpage+31) / 32; dbprintf ('m', "Map has %d entries, memory size is 0x%x.\n", freemapmax, maxpage); dbprintf ('m', "Free pages start with page # 0x%x.\n", pagestart); for (i = 0; i < freemapmax; i++) { // Initially, all pages are considered in use. This is done to make // sure we don't have any partially initialized freemap entries. freepages[i] = 0; } nfreepages = 0; for (curpage = pagestart; curpage < maxpage; curpage++) { nfreepages += 1; MemorySetFreemap (curpage, 1); } dbprintf ('m', "Initialized %d free pages.\n", nfreepages); } � //---------------------------------------------------------------------- // // MemoryAllocPage // // Allocate a page of memory. // //---------------------------------------------------------------------- inline int MemoryAllocPage () { static int mapnum = 0; int bitnum; uint32 v; if (nfreepages == 0) { printf("ERROR AT THIS POINT\n"); return (0); } dbprintf ('m', "Allocating memory, starting with page %d\n", mapnum); while (freepages[mapnum] == 0) { mapnum += 1; if (mapnum >= freemapmax) { mapnum = 0; } } v = freepages[mapnum]; for (bitnum = 0; (v & (1 << bitnum)) == 0; bitnum++) { } freepages[mapnum] &= invert(1 << bitnum); v = (mapnum * 32) + bitnum; dbprintf ('m', "Allocated memory, from map %d, page %d, map=0x%x.\n", mapnum, v, freepages[mapnum]); nfreepages -= 1; return (v); } //---------------------------------------------------------------------- // // MemoryFreePage // // Free a page of memory. // //---------------------------------------------------------------------- void MemoryFreePage(uint32 page) { MemorySetFreemap (page, 1); nfreepages += 1; dbprintf ('m',"Freed page 0x%x, %d remaining.\n", page, nfreepages); } � //---------------------------------------------------------------------- // // MemoryTranslateUserToSystem // // Translate a user address (in the process referenced by pcb) // into an OS (physical) address. This works for simple one-level // page tables, but will have to be modified for two-level page // tables. // //---------------------------------------------------------------------- uint32 MemoryTranslateUserToSystem (PCB *pcb, uint32 addr) { int page = addr / MEMORY_PAGE_SIZE; int offset = addr % MEMORY_PAGE_SIZE; if (page > pcb->npages) { return (0); } return ((pcb->pagetable[page] & MEMORY_PTE_MASK) + offset); } � //---------------------------------------------------------------------- // // moveBetweenSpaces // // Copy data between user and system spaces. This is done page by // page by: // * Translating the user address into system space. // * Copying all of the data in that page // * Repeating until all of the data is copied. // A positive direction means the copy goes from system to user // space; negative direction means the copy goes from user to system // space. // // This routine returns the number of bytes copied. Note that this // may be less than the number requested if there were unmapped pages // in the user range. If this happens, the copy stops at the // first unmapped address. // //---------------------------------------------------------------------- static int moveBetweenSpaces (PCB *pcb, unsigned char *s, unsigned char *u, int n, int dir) { unsigned char *curUser; int bytesCopied = 0; int bytesToCopy; while (n > 0) { // Translate current user page to system address. If this fails, return // the number of bytes copied so far. curUser = (unsigned char *)MemoryTranslateUserToSystem (pcb, (uint32)u); if (curUser == (unsigned char *)0) { // Leave the loop if translation fails. break; } // Calculate the number of bytes to copy this time. This is the minimum // of the bytes left on this page and the bytes left to copy. bytesToCopy = MEMORY_PAGE_SIZE - ((uint32)curUser % MEMORY_PAGE_SIZE); if (bytesToCopy > n) { bytesToCopy = n; } // Perform the copy. if (dir >= 0) { bcopy (s, curUser, bytesToCopy); } else { bcopy (curUser, s, bytesToCopy); } // Keep track of bytes copied and adjust addresses appropriately. n -= bytesToCopy; bytesCopied += bytesToCopy; s += bytesToCopy; u += bytesToCopy; } return (bytesCopied); } //---------------------------------------------------------------------- // // These two routines copy data between user and system spaces. // They call a common routine to do the copying; the only difference // between the calls is the actual call to do the copying. Everything // else is identical. // //---------------------------------------------------------------------- int MemoryCopySystemToUser (PCB *pcb, unsigned char *from,unsigned char *to, int n) { return (moveBetweenSpaces (pcb, from, to, n, 1)); } int MemoryCopyUserToSystem (PCB *pcb, unsigned char *from,unsigned char *to, int n) { return (moveBetweenSpaces (pcb, to, from, n, -1)); } � //---------------------------------------------------------------------- // // MemorySetupPte // // Set up a PTE given a page number. // //---------------------------------------------------------------------- uint32 MemorySetupPte (uint32 page) { return ((page * MEMORY_PAGE_SIZE) | MEMORY_PTE_VALID); } //---------------------------------------------------------------------- // // MemoryFreePte // // Free a page given its PTE. // //---------------------------------------------------------------------- void MemoryFreePte (uint32 pte) { MemoryFreePage ((pte & MEMORY_PTE_MASK) / MEMORY_PAGE_SIZE); } //---------------------------------------------------------------------- // // MemoryPteToPage // // Given a PTE, return the base address for the (virtual) page the // PTE references. // //---------------------------------------------------------------------- uint32 MemoryPteToPage (uint32 pte) { return (pte & MEMORY_PTE_MASK); } � //---------------------------------------------------------------------- // // MemoryGetOperandAddress // // This routine takes an instruction and a pointer to a PCB, and // returns the address that the instruction is trying to use // for its memory operand. If the instruction doesn't access memory, // it returns 0xffffffff. Note that this means it's impossible to // distinguish between a valid access to 0xffffffff and an instruction // without an operand.... // //---------------------------------------------------------------------- uint32 MemoryGetOperandAddress (PCB *pcb, uint32 instr) { static uint32 invalidOps = 0x3404; uint32 opcode = (instr >> 26) & 0x3f; uint32 reg; uint32 addr; uint32 offset; uint32 regValue; if ((opcode<0x20) || (opcode>0x2f) || ((invalidOps >> (opcode-0x20) & 1))) { return (0xffffffff); } reg = (instr >> 21) & 0x1f; offset = instr & 0xffff; if (offset & 0x8000) { offset |= 0xffff0000; } regValue = pcb->currentSavedFrame[PROCESS_STACK_IREG+reg]; addr = regValue + offset; dbprintf ('m', "Operand for instruction %08x is 0x%x (reg=<%d,0x%x>)\n", instr, addr, reg, regValue); return (addr); }

home/bshapir/cs314/project3/src/os.lst

line address contents 1 ; Linked by DLX-LD. 2 ; MemSize 106496 3 ; Data size: 38336 4 ; Text size: 49712 5 ; Stack size: 8192 6 00000000 .text 0x1000 7 00001000 .data 0xe000 8 ;;; 9 ;;; Initialization code for programs running in the DLX simulator. 10 ;;; Copyright (c) 1999 by Ethan Miller 11 ;;; 12 ;;; 14 0000e000 .text 15 00001000 .align 2 17 ;;;---------------------------------------------------------------------- 18 ;;; osinit 19 ;;; 20 ;;; This is the first function called by the simulator, even before main. 21 ;;; Since it's called BEFORE any "real" routines, we can use any registers 22 ;;; we want as long as we don't mess up the stack or frame pointers. 23 ;;; 24 ;;; This routine loads the interrupt vector to point to the interrupt 25 ;;; handler later in this file. It should never return, because _main 26 ;;; should call exitsim() or exit() rather than returning here. 27 ;;; 28 ;;; After initialization is done, this routine jumps to _main to start the 29 ;;; C code portion of the operating system. 30 ;;;---------------------------------------------------------------------- 31 00001000 .proc _osinit 32 00001000 .global _osinit 33 00001000 _osinit: 34 ;; Set up the interrupt handler 35 00001000 3c010000 lhi r1,(_intrhandler>>16)&0xffff 36 00001004 24211010 addui r1,r1,_intrhandler&0xffff 37 00001008 00204030 movi2s intrvec,r1 38 ;; Never returns because exitsim is called first 39 0000100c 0800863c j _main 40 00001010 .endproc _osinit 42 ;;;---------------------------------------------------------------------- 43 ;;; intrhandler 44 ;;; 45 ;;; Called when an interrupt or trap is received by the CPU. It stores the 46 ;;; current register set on the system stack. It then pushes the parameters 47 ;;; to the C interrupt handler onto the stack: the ISR, IAR, and CAUSE 48 ;;; registers along with the original stack pointer. The C interrupt 49 ;;; handler can then copy arguments from the original stack, performing 50 ;;; user -> system translations if necessary. 51 ;;; 52 ;;;---------------------------------------------------------------------- 53 00001010 .proc _intrhandler 54 00001010 .global _intrhandler 55 00001010 _intrhandler: 56 ;; We can use r31 as scratch space because its value was saved in 57 ;; ir31. However, we must save the "real" value of r31 on the 58 ;; stack. 60 ;; Always store the registers on the system stack. This way, we don't 61 ;; have to worry about translating things from user -> system. We 62 ;; use r31 as the base register because its value was saved in ir31. 64 ;; If this was a user process, load r29 with the current system 65 ;; stack pointer. If it was a system process, just use the 66 ;; current stack pointer. 67 00001010 0060f831 movs2i r31,isr 68 00001014 33ff0040 andi r31,r31,0x40 69 00001018 17e0001c bnez r31,intrSystem_LF0 70 0000101c 3c1f0001 lhi r31,(_currentPCB>>16)&0xffff 71 00001020 27ff4100 addui r31,r31,_currentPCB&0xffff 72 00001024 8fff0000 lw r31,(r31) 73 00001028 8fff0004 lw r31,4(r31) 74 ;; Save the original (user) stack pointer 75 0000102c affdff48 sw -184(r31),r29; we haven't yet bumped SP, and 156-340 = -184 76 ;; Copy the system stack pointer into r29 (current stack pointer) 77 00001030 37fd0000 ori r29,r31,0 78 00001034 10000004 beqz r0,intrSaveReg_LF0; skip over the system part.... 79 00001038 intrSystem_LF0: 80 ;; Use the stack pointer we're already using 81 ;; Save r29 because we won't save it later 82 00001038 afbdff48 sw -184(r29),r29; we haven't yet bumped SP, and 156-340 = -184 83 0000103c intrSaveReg_LF0: 84 ;; Adjust stack pointer for all the stuff we're going to push. This 85 ;; is a bit more space than we need currently, but it leaves room 86 ;; for more stuff if needed. 87 0000103c 2fbd0154 subui r29,r29,#340 88 ;; Push all the stuff onto the stack 89 00001040 afa1002c sw 44(r29),r1 90 00001044 afa20030 sw 48(r29),r2 91 00001048 afa30034 sw 52(r29),r3 92 0000104c afa40038 sw 56(r29),r4 93 00001050 afa5003c sw 60(r29),r5 94 00001054 afa60040 sw 64(r29),r6 95 00001058 afa70044 sw 68(r29),r7 96 0000105c afa80048 sw 72(r29),r8 97 00001060 afa9004c sw 76(r29),r9 98 00001064 afaa0050 sw 80(r29),r10 99 00001068 afab0054 sw 84(r29),r11 100 0000106c afac0058 sw 88(r29),r12 101 00001070 afad005c sw 92(r29),r13 102 00001074 afae0060 sw 96(r29),r14 103 00001078 afaf0064 sw 100(r29),r15 104 0000107c afb00068 sw 104(r29),r16 105 00001080 afb1006c sw 108(r29),r17 106 00001084 afb20070 sw 112(r29),r18 107 00001088 afb30074 sw 116(r29),r19 108 0000108c afb40078 sw 120(r29),r20 109 00001090 afb5007c sw 124(r29),r21 110 00001094 afb60080 sw 128(r29),r22 111 00001098 afb70084 sw 132(r29),r23 112 0000109c afb80088 sw 136(r29),r24 113 000010a0 afb9008c sw 140(r29),r25 114 000010a4 afba0090 sw 144(r29),r26 115 000010a8 afbb0094 sw 148(r29),r27 116 000010ac afbc0098 sw 152(r29),r28 117 ;; Skip r29 - stored earlier! 118 000010b0 afbe00a0 sw 160(r29),r30 119 ;; Load the value of r31 from the special register and then save it 120 000010b4 00401831 movs2i r3,ir31 121 000010b8 afa300a4 sw 164(r29),r3 122 ;; Store the floating-point registers 123 000010bc bfa000a8 sd 168(r29),f0 124 000010c0 bfa200b0 sd 176(r29),f2 125 000010c4 bfa400b8 sd 184(r29),f4 126 000010c8 bfa600c0 sd 192(r29),f6 127 000010cc bfa800c8 sd 200(r29),f8 128 000010d0 bfaa00d0 sd 208(r29),f10 129 000010d4 bfac00d8 sd 216(r29),f12 130 000010d8 bfae00e0 sd 224(r29),f14 131 000010dc bfb000e8 sd 232(r29),f16 132 000010e0 bfb200f0 sd 240(r29),f18 133 000010e4 bfb400f8 sd 248(r29),f20 134 000010e8 bfb60100 sd 256(r29),f22 135 000010ec bfb80108 sd 264(r29),f24 136 000010f0 bfba0110 sd 272(r29),f26 137 000010f4 bfbc0118 sd 280(r29),f28 138 000010f8 bfbe0120 sd 288(r29),f30 139 ;; NOTE: we don't save the interrupt vector register because it 140 ;; doesn't change from process to process. 141 ;; NOTE: we don't save the status register because most of the flags 142 ;; are the same from process to process if they're in the interrupt 143 ;; handler. Of course, we DO save the ISR. 144 000010fc 00802031 movs2i r4,iar 145 00001100 afa40128 sw 296(r29),r4 146 00001104 00602831 movs2i r5,isr 147 00001108 afa5012c sw 300(r29),r5 148 0000110c 00c03031 movs2i r6,cause 149 00001110 afa60130 sw 304(r29),r6 150 00001114 01201831 movs2i r3,fault 151 00001118 afa30134 sw 308(r29),r3 152 0000111c 01801831 movs2i r3,ptbase 153 00001120 afa30138 sw 312(r29),r3 154 00001124 01a01831 movs2i r3,ptsize 155 00001128 afa3013c sw 316(r29),r3 156 0000112c 01c01831 movs2i r3,ptbits 157 00001130 afa30140 sw 320(r29),r3 159 ;; Push the interrupt information onto the stack 160 00001134 afa60000 sw 0(r29),r6; push CAUSE 161 00001138 afa40004 sw 4(r29),r4; push IAR 162 0000113c afa50008 sw 8(r29),r5; push ISR 163 ;; Get the original stack pointer 164 00001140 8fa1009c lw r1,156(r29) 165 00001144 afa1000c sw 12(r29),r1 166 ;; Save the previous interrupt stack frame address in the current frame 167 00001148 3c010001 lhi r1,(_currentPCB>>16)&0xffff 168 0000114c 24214100 addui r1,r1,_currentPCB&0xffff 169 00001150 8c210000 lw r1,(r1) 170 00001154 8c220000 lw r2,0(r1) 171 00001158 afa20028 sw 40(r29),r2 172 ;; Save this frame address in the PCB. This is used so the OS can 173 ;; easily access the current interrupt save frame 174 0000115c ac3d0000 sw 0(r1),r29 175 ;; Call the "real" interrupt handler. This will possibly switch 176 ;; contexts. This call never returns; instead, a separate routine 177 ;; (_intrreturn) is called to return from interrupts after restoring 178 ;; the current context. 179 00001160 0800a560 j _dointerrupt 180 00001164 54000000 nop 181 00001168 .endproc _intrhandler 183 ;;;---------------------------------------------------------------------- 184 ;;; intrreturn 185 ;;; 186 ;;; Return from an interrupt or trap. This restores all of the previously 187 ;;; saved registers and then returns to where the program left off. The 188 ;;; current contents of the registers are destroyed. This routine uses 189 ;;; the saved interrupt frame pointer, so the stack pointer need not 190 ;;; be correct. Note, though, that the register contents from the previous 191 ;;; process must have previously been saved - in other words, call this 192 ;;; routine from a trap or interrupt handler. 193 ;;;---------------------------------------------------------------------- 194 00001168 .proc _intrreturn 195 00001168 .global _intrreturn 196 00001168 _intrreturn: 197 ;; Disable interrupts - this routine must be atomic, and interrupts 198 ;; may not be currently disabled. Don't worry about saving registers 199 ;; because we're about to reload them anyway. 200 00001168 0c00b898 jal _DisableIntrs 201 ;; Get our interrupt stack frame location and load it into the stack 202 ;; pointer. 203 0000116c 3c010001 lhi r1,(_currentPCB>>16)&0xffff 204 00001170 24214100 addui r1,r1,_currentPCB&0xffff 205 00001174 8c210000 lw r1,0(r1) 206 00001178 8c3d0000 lw r29,0(r1) 207 ;; Get the previous interrupt stack frame location and make it the 208 ;; current interrupt save frame. 209 0000117c 8fa20028 lw r2,40(r29) 210 00001180 ac220000 sw 0(r1),r2 212 ;; Reload the registers for the new process. We don't have to 213 ;; load in the exact opposite order as long as we're careful to 214 ;; get the right values back in. 215 00001184 8fa30128 lw r3,296(r29) 216 00001188 00602030 movi2s iar,r3 217 0000118c 8fa3012c lw r3,300(r29) 218 00001190 00601830 movi2s isr,r3 219 00001194 8fa30130 lw r3,304(r29) 220 00001198 00603030 movi2s cause,r3 221 0000119c 8fa30134 lw r3,308(r29) 222 000011a0 00604830 movi2s fault,r3 223 000011a4 8fa30138 lw r3,312(r29) 224 000011a8 00606030 movi2s ptbase,r3 225 000011ac 8fa3013c lw r3,316(r29) 226 000011b0 00606830 movi2s ptsize,r3 227 000011b4 8fa30140 lw r3,320(r29) 228 000011b8 00607030 movi2s ptbits,r3 230 ;; Reload the floating point registers 231 000011bc 9fa000a8 ld f0,168(r29) 232 000011c0 9fa200b0 ld f2,176(r29) 233 000011c4 9fa400b8 ld f4,184(r29) 234 000011c8 9fa600c0 ld f6,192(r29) 235 000011cc 9fa800c8 ld f8,200(r29) 236 000011d0 9faa00d0 ld f10,208(r29) 237 000011d4 9fac00d8 ld f12,216(r29) 238 000011d8 9fae00e0 ld f14,224(r29) 239 000011dc 9fb000e8 ld f16,232(r29) 240 000011e0 9fb200f0 ld f18,240(r29) 241 000011e4 9fb400f8 ld f20,248(r29) 242 000011e8 9fb60100 ld f22,256(r29) 243 000011ec 9fb80108 ld f24,264(r29) 244 000011f0 9fba0110 ld f26,272(r29) 245 000011f4 9fbc0118 ld f28,280(r29) 246 000011f8 9fbe0120 ld f30,288(r29) 248 ;; Reload the integer registers. We don't reload r0 because it's 249 ;; always 0. We won't reload r29 here because we're using it as 250 ;; the stack pointer. The same goes for r1, which we'll use as 251 ;; scratch so we can store r29. 252 ;; Skip r1 - restored later 253 000011fc 8fa20030 lw r2,48(r29) 254 00001200 8fa30034 lw r3,52(r29) 255 00001204 8fa40038 lw r4,56(r29) 256 00001208 8fa5003c lw r5,60(r29) 257 0000120c 8fa60040 lw r6,64(r29) 258 00001210 8fa70044 lw r7,68(r29) 259 00001214 8fa80048 lw r8,72(r29) 260 00001218 8fa9004c lw r9,76(r29) 261 0000121c 8faa0050 lw r10,80(r29) 262 00001220 8fab0054 lw r11,84(r29) 263 00001224 8fac0058 lw r12,88(r29) 264 00001228 8fad005c lw r13,92(r29) 265 0000122c 8fae0060 lw r14,96(r29) 266 00001230 8faf0064 lw r15,100(r29) 267 00001234 8fb00068 lw r16,104(r29) 268 00001238 8fb1006c lw r17,108(r29) 269 0000123c 8fb20070 lw r18,112(r29) 270 00001240 8fb30074 lw r19,116(r29) 271 00001244 8fb40078 lw r20,120(r29) 272 00001248 8fb5007c lw r21,124(r29) 273 0000124c 8fb60080 lw r22,128(r29) 274 00001250 8fb70084 lw r23,132(r29) 275 00001254 8fb80088 lw r24,136(r29) 276 00001258 8fb9008c lw r25,140(r29) 277 0000125c 8fba0090 lw r26,144(r29) 278 00001260 8fbb0094 lw r27,148(r29) 279 00001264 8fbc0098 lw r28,152(r29) 280 ;; Skip r29 - restored later 281 00001268 8fbe00a0 lw r30,160(r29) 282 0000126c 8fbf00a4 lw r31,164(r29) 284 00001270 27bd0154 addui r29,r29,#340 285 ;; Save the current value of the stack pointer after adjusting it 286 ;; Note that this will "destroy" the stack values below this interrupt 287 ;; stack frame. This is exactly what we want! 288 00001274 ac3d0004 sw 4(r1),r29 289 00001278 37a10000 ori r1,r29,#0 290 0000127c 8c3dff48 lw r29,-184(r1); 156-340 = -184 291 00001280 8c21fed8 lw r1,-296(r1); 44-340 = -296 292 00001284 40000000 rfe 293 00001288 .endproc _intrreturn 295 ;;;---------------------------------------------------------------------- 296 ;;; SetIntrs 297 ;;; 298 ;;; This routine sets the interrupt level to the value passed (0 -> all 299 ;;; interrupts enabled; 0xf -> all interrupts disabled). It returns the 300 ;;; former value for the interrupt flags. 301 ;;;---------------------------------------------------------------------- 302 00001288 .proc _SetIntrs 303 00001288 .global _SetIntrs 304 00001288 _SetIntrs: 305 00001288 2fbd0010 subui r29,r29,#16 306 0000128c afa2000c sw 12(r29),r2; save r2 307 00001290 8fa20010 lw r2,16(r29); Get the new interrupt level 308 00001294 3042000f andi r2,r2,#0x0f; Mask off interrupt levels 309 00001298 00a00831 movs2i r1,status 310 0000129c afa10008 sw 8(r29),r1; Store the old interrupt values 311 000012a0 3021fff0 andi r1,r1,#0xfff0; Mask off old interrupt level 312 000012a4 00410825 or r1,r2,r1; OR in new interrupt level 313 000012a8 00202830 movi2s status,r1 314 000012ac 8fa10008 lw r1,8(r29); Get back the original interrupt level 315 000012b0 3021000f andi r1,r1,#0x0f; Mask off all but interrupt levels 316 000012b4 8fa2000c lw r2,12(r29); restore r2 317 000012b8 27bd0010 addui r29,r29,#16; restore stack pointer 318 000012bc 4be00000 jr r31 319 000012c0 54000000 nop 320 000012c4 .endproc _SetIntrs 322 000012c4 .proc _CurrentIntrs 323 000012c4 .global _CurrentIntrs 324 000012c4 _CurrentIntrs: 325 000012c4 00a00831 movs2i r1,status 326 000012c8 3021000f andi r1,r1,#0xf 327 000012cc 4be00000 jr r31 328 000012d0 54000000 nop 329 000012d4 .endproc _CurrentIntrs 330 ;;;---------------------------------------------------------------------- 331 ;;; _ProcessSleep 332 ;;; 333 ;;; If a context switch from elsewhere in the kernel is desired, take a 334 ;;; trap and call this routine from the trap handler. 335 ;;;---------------------------------------------------------------------- 336 000012d4 .proc _ProcessSleep 337 000012d4 .global _ProcessSleep 338 000012d4 _ProcessSleep: 339 000012d4 44000410 trap #0x410; This is a process sleep trap 340 000012d8 54000000 nop 341 000012dc 4be00000 jr r31 342 000012e0 54000000 nop 343 000012e4 .endproc _ProcessSleep 344 ; 345 ; Stub functions for DLX traps. 346 ; 347 ; Aaron Sawdey 1996; released to the Public Domain. 348 ; 350 000012e4 .align 2 351 000012e4 .proc _random 352 000012e4 .global _random 353 000012e4 _random: 354 000012e4 44002020 trap #0x2020 355 000012e8 4be00000 jr r31 356 000012ec 54000000 nop 357 000012f0 .endproc _random 359 000012f0 .proc _srandom 360 000012f0 .global _srandom 361 000012f0 _srandom: 362 000012f0 44002021 trap #0x2021 363 000012f4 4be00000 jr r31 364 000012f8 54000000 nop 365 000012fc .endproc _srandom 367 ; I know this is not the right place to put it, but what the heck 369 000012fc .proc _timerget 370 000012fc .global _timerget 371 000012fc _timerget: 372 000012fc 44002002 trap #0x2002 373 00001300 4be00000 jr r31 374 00001304 54000000 nop 375 00001308 .endproc _timerget 377 ; Compiled by GCC 379 00001308 .align 2 380 00001308 .proc _isspace 381 00001308 .global _isspace 382 00001308 _isspace: 383 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 384 00001308 afbefffc sw -4(r29),r30; push fp 385 0000130c 001df020 add r30,r0,r29; fp = sp 386 00001310 afbffff8 sw -8(r29),r31; push ret addr 387 00001314 2fbd0010 subui r29,r29,#16; alloc local storage 388 00001318 afa20000 sw 0(r29),r2 389 0000131c 83c20003 lb r2,3(r30) 390 00001320 201f0000 addi r31,r0,#0 391 00001324 304100ff andi r1,r2,#0x00ff 392 00001328 60210020 seqi r1,r1,#32 393 0000132c 14200018 bnez r1,L6_LF2 394 00001330 54000000 nop; not filled. 395 00001334 2041fff7 addi r1,r2,#-9 396 00001338 302100ff andi r1,r1,#0x00ff 397 0000133c 70210001 sleui r1,r1,#1 398 00001340 10200008 beqz r1,L5_LF2 399 00001344 54000000 nop; not filled. 400 00001348 L6_LF2: 401 00001348 201f0001 addi r31,r0,#1 402 0000134c L5_LF2: 403 0000134c 001f0820 add r1,r0,r31 404 00001350 8fa20000 lw r2,0(r29) 405 00001354 8fdffff8 lw r31,-8(r30) 406 00001358 001ee820 add r29,r0,r30 407 0000135c 8fdefffc lw r30,-4(r30) 408 00001360 4be00000 jr r31 409 00001364 54000000 nop 410 00001368 .endproc _isspace 411 00001368 .align 2 412 00001368 .proc _isxdigit 413 00001368 .global _isxdigit 414 00001368 _isxdigit: 415 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 416 00001368 afbefffc sw -4(r29),r30; push fp 417 0000136c 001df020 add r30,r0,r29; fp = sp 418 00001370 afbffff8 sw -8(r29),r31; push ret addr 419 00001374 2fbd0010 subui r29,r29,#16; alloc local storage 420 00001378 afa20000 sw 0(r29),r2 421 0000137c 83df0003 lb r31,3(r30) 422 00001380 20020000 addi r2,r0,#0 423 00001384 23e1ffd0 addi r1,r31,#-48 424 00001388 302100ff andi r1,r1,#0x00ff 425 0000138c 70210009 sleui r1,r1,#9 426 00001390 14200028 bnez r1,L12_LF2 427 00001394 54000000 nop; not filled. 428 00001398 23e1ff9f addi r1,r31,#-97 429 0000139c 302100ff andi r1,r1,#0x00ff 430 000013a0 70210005 sleui r1,r1,#5 431 000013a4 14200014 bnez r1,L12_LF2 432 000013a8 54000000 nop; not filled. 433 000013ac 33e100ff andi r1,r31,#0x00ff 434 000013b0 64210041 snei r1,r1,#65 435 000013b4 14200008 bnez r1,L11_LF2 436 000013b8 54000000 nop; not filled. 437 000013bc L12_LF2: 438 000013bc 20020001 addi r2,r0,#1 439 000013c0 L11_LF2: 440 000013c0 00020820 add r1,r0,r2 441 000013c4 8fa20000 lw r2,0(r29) 442 000013c8 8fdffff8 lw r31,-8(r30) 443 000013cc 001ee820 add r29,r0,r30 444 000013d0 8fdefffc lw r30,-4(r30) 445 000013d4 4be00000 jr r31 446 000013d8 54000000 nop 447 000013dc .endproc _isxdigit 448 000013dc .align 2 449 000013dc .proc _DisableIntrs 450 000013dc .global _DisableIntrs 451 000013dc _DisableIntrs: 452 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 453 000013dc afbefffc sw -4(r29),r30; push fp 454 000013e0 001df020 add r30,r0,r29; fp = sp 455 000013e4 afbffff8 sw -8(r29),r31; push ret addr 456 000013e8 2fbd0010 subui r29,r29,#16; alloc local storage 457 000013ec afa20000 sw 0(r29),r2 458 000013f0 23bdfff8 addi r29,r29,#-8 459 000013f4 2002000f addi r2,r0,#15 460 000013f8 afa20000 sw (r29),r2 461 000013fc 0ffffe88 jal _SetIntrs 462 00001400 54000000 nop; not filled. 463 00001404 23bd0008 addi r29,r29,#8 464 00001408 8fa20000 lw r2,0(r29) 465 0000140c 8fdffff8 lw r31,-8(r30) 466 00001410 001ee820 add r29,r0,r30 467 00001414 8fdefffc lw r30,-4(r30) 468 00001418 4be00000 jr r31 469 0000141c 54000000 nop 470 00001420 .endproc _DisableIntrs 471 00001420 .align 2 472 00001420 .proc _EnableIntrs 473 00001420 .global _EnableIntrs 474 00001420 _EnableIntrs: 475 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 476 00001420 afbefffc sw -4(r29),r30; push fp 477 00001424 001df020 add r30,r0,r29; fp = sp 478 00001428 afbffff8 sw -8(r29),r31; push ret addr 479 0000142c 2fbd0010 subui r29,r29,#16; alloc local storage 480 00001430 afa20000 sw 0(r29),r2 481 00001434 23bdfff8 addi r29,r29,#-8 482 00001438 20020000 addi r2,r0,#0 483 0000143c afa20000 sw (r29),r2 484 00001440 0ffffe44 jal _SetIntrs 485 00001444 54000000 nop; not filled. 486 00001448 23bd0008 addi r29,r29,#8 487 0000144c 8fa20000 lw r2,0(r29) 488 00001450 8fdffff8 lw r31,-8(r30) 489 00001454 001ee820 add r29,r0,r30 490 00001458 8fdefffc lw r30,-4(r30) 491 0000145c 4be00000 jr r31 492 00001460 54000000 nop 493 00001464 .endproc _EnableIntrs 494 00001464 .align 2 495 00001464 .proc _RestoreIntrs 496 00001464 .global _RestoreIntrs 497 00001464 _RestoreIntrs: 498 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 499 00001464 afbefffc sw -4(r29),r30; push fp 500 00001468 001df020 add r30,r0,r29; fp = sp 501 0000146c afbffff8 sw -8(r29),r31; push ret addr 502 00001470 2fbd0010 subui r29,r29,#16; alloc local storage 503 00001474 afa20000 sw 0(r29),r2 504 00001478 23bdfff8 addi r29,r29,#-8 505 0000147c 8fc20000 lw r2,(r30) 506 00001480 afa20000 sw (r29),r2 507 00001484 0ffffe00 jal _SetIntrs 508 00001488 54000000 nop; not filled. 509 0000148c 23bd0008 addi r29,r29,#8 510 00001490 8fa20000 lw r2,0(r29) 511 00001494 8fdffff8 lw r31,-8(r30) 512 00001498 001ee820 add r29,r0,r30 513 0000149c 8fdefffc lw r30,-4(r30) 514 000014a0 4be00000 jr r31 515 000014a4 54000000 nop 516 000014a8 .endproc _RestoreIntrs 517 000014a8 .align 2 518 000014a8 .proc _QueueLinkInit 519 000014a8 .global _QueueLinkInit 520 000014a8 _QueueLinkInit: 521 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 522 000014a8 afbefffc sw -4(r29),r30; push fp 523 000014ac 001df020 add r30,r0,r29; fp = sp 524 000014b0 afbffff8 sw -8(r29),r31; push ret addr 525 000014b4 2fbd0010 subui r29,r29,#16; alloc local storage 526 000014b8 afa20000 sw 0(r29),r2 527 000014bc 8fc10000 lw r1,(r30) 528 000014c0 8fc20004 lw r2,4(r30) 529 000014c4 201f0000 addi r31,r0,#0 530 000014c8 ac3f0000 sw (r1),r31 531 000014cc ac22000c sw 12(r1),r2 532 000014d0 8fa20000 lw r2,0(r29) 533 000014d4 8fdffff8 lw r31,-8(r30) 534 000014d8 001ee820 add r29,r0,r30 535 000014dc 8fdefffc lw r30,-4(r30) 536 000014e0 4be00000 jr r31 537 000014e4 54000000 nop 538 000014e8 .endproc _QueueLinkInit 539 000014e8 .align 2 540 000014e8 .proc _QueueNext 541 000014e8 .global _QueueNext 542 000014e8 _QueueNext: 543 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 544 000014e8 afbefffc sw -4(r29),r30; push fp 545 000014ec 001df020 add r30,r0,r29; fp = sp 546 000014f0 afbffff8 sw -8(r29),r31; push ret addr 547 000014f4 2fbd0008 subui r29,r29,#8; alloc local storage 548 000014f8 8fc10000 lw r1,(r30) 549 000014fc 8c210000 lw r1,(r1) 550 00001500 8fdffff8 lw r31,-8(r30) 551 00001504 001ee820 add r29,r0,r30 552 00001508 8fdefffc lw r30,-4(r30) 553 0000150c 4be00000 jr r31 554 00001510 54000000 nop 555 00001514 .endproc _QueueNext 556 00001514 .align 2 557 00001514 .proc _QueuePrev 558 00001514 .global _QueuePrev 559 00001514 _QueuePrev: 560 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 561 00001514 afbefffc sw -4(r29),r30; push fp 562 00001518 001df020 add r30,r0,r29; fp = sp 563 0000151c afbffff8 sw -8(r29),r31; push ret addr 564 00001520 2fbd0008 subui r29,r29,#8; alloc local storage 565 00001524 8fc10000 lw r1,(r30) 566 00001528 8c210004 lw r1,4(r1) 567 0000152c 8fdffff8 lw r31,-8(r30) 568 00001530 001ee820 add r29,r0,r30 569 00001534 8fdefffc lw r30,-4(r30) 570 00001538 4be00000 jr r31 571 0000153c 54000000 nop 572 00001540 .endproc _QueuePrev 573 00001540 .align 2 574 00001540 .proc _QueueFirst 575 00001540 .global _QueueFirst 576 00001540 _QueueFirst: 577 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 578 00001540 afbefffc sw -4(r29),r30; push fp 579 00001544 001df020 add r30,r0,r29; fp = sp 580 00001548 afbffff8 sw -8(r29),r31; push ret addr 581 0000154c 2fbd0008 subui r29,r29,#8; alloc local storage 582 00001550 8fc10000 lw r1,(r30) 583 00001554 8c210000 lw r1,(r1) 584 00001558 8fdffff8 lw r31,-8(r30) 585 0000155c 001ee820 add r29,r0,r30 586 00001560 8fdefffc lw r30,-4(r30) 587 00001564 4be00000 jr r31 588 00001568 54000000 nop 589 0000156c .endproc _QueueFirst 590 0000156c .align 2 591 0000156c .proc _QueueLast 592 0000156c .global _QueueLast 593 0000156c _QueueLast: 594 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 595 0000156c afbefffc sw -4(r29),r30; push fp 596 00001570 001df020 add r30,r0,r29; fp = sp 597 00001574 afbffff8 sw -8(r29),r31; push ret addr 598 00001578 2fbd0008 subui r29,r29,#8; alloc local storage 599 0000157c 8fc10000 lw r1,(r30) 600 00001580 8c210004 lw r1,4(r1) 601 00001584 8fdffff8 lw r31,-8(r30) 602 00001588 001ee820 add r29,r0,r30 603 0000158c 8fdefffc lw r30,-4(r30) 604 00001590 4be00000 jr r31 605 00001594 54000000 nop 606 00001598 .endproc _QueueLast 607 00001598 .align 2 608 00001598 .proc _QueueInsertAfter 609 00001598 .global _QueueInsertAfter 610 00001598 _QueueInsertAfter: 611 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 612 00001598 afbefffc sw -4(r29),r30; push fp 613 0000159c 001df020 add r30,r0,r29; fp = sp 614 000015a0 afbffff8 sw -8(r29),r31; push ret addr 615 000015a4 2fbd0010 subui r29,r29,#16; alloc local storage 616 000015a8 afa20000 sw 0(r29),r2 617 000015ac afa30004 sw 4(r29),r3 618 000015b0 8fc30000 lw r3,(r30) 619 000015b4 8fc20004 lw r2,4(r30) 620 000015b8 8fc10008 lw r1,8(r30) 621 000015bc ac230008 sw 8(r1),r3 622 000015c0 ac220004 sw 4(r1),r2 623 000015c4 8c5f0000 lw r31,(r2) 624 000015c8 ac3f0000 sw (r1),r31 625 000015cc ac410000 sw (r2),r1 626 000015d0 8c220000 lw r2,(r1) 627 000015d4 ac410004 sw 4(r2),r1 628 000015d8 8c610008 lw r1,8(r3) 629 000015dc 20210001 addi r1,r1,#1 630 000015e0 ac610008 sw 8(r3),r1 631 000015e4 8fa20000 lw r2,0(r29) 632 000015e8 8fa30004 lw r3,4(r29) 633 000015ec 8fdffff8 lw r31,-8(r30) 634 000015f0 001ee820 add r29,r0,r30 635 000015f4 8fdefffc lw r30,-4(r30) 636 000015f8 4be00000 jr r31 637 000015fc 54000000 nop 638 00001600 .endproc _QueueInsertAfter 639 00001600 .align 2 640 00001600 .proc _QueueInsertFirst 641 00001600 .global _QueueInsertFirst 642 00001600 _QueueInsertFirst: 643 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 644 00001600 afbefffc sw -4(r29),r30; push fp 645 00001604 001df020 add r30,r0,r29; fp = sp 646 00001608 afbffff8 sw -8(r29),r31; push ret addr 647 0000160c 2fbd0010 subui r29,r29,#16; alloc local storage 648 00001610 afa20000 sw 0(r29),r2 649 00001614 afa30004 sw 4(r29),r3 650 00001618 8fc30000 lw r3,(r30) 651 0000161c 8fc10004 lw r1,4(r30) 652 00001620 ac230008 sw 8(r1),r3 653 00001624 ac230004 sw 4(r1),r3 654 00001628 8c7f0000 lw r31,(r3) 655 0000162c ac3f0000 sw (r1),r31 656 00001630 ac610000 sw (r3),r1 657 00001634 8c220000 lw r2,(r1) 658 00001638 ac410004 sw 4(r2),r1 659 0000163c 8c610008 lw r1,8(r3) 660 00001640 20210001 addi r1,r1,#1 661 00001644 ac610008 sw 8(r3),r1 662 00001648 8fa20000 lw r2,0(r29) 663 0000164c 8fa30004 lw r3,4(r29) 664 00001650 8fdffff8 lw r31,-8(r30) 665 00001654 001ee820 add r29,r0,r30 666 00001658 8fdefffc lw r30,-4(r30) 667 0000165c 4be00000 jr r31 668 00001660 54000000 nop 669 00001664 .endproc _QueueInsertFirst 670 00001664 .align 2 671 00001664 .proc _QueueInsertLast 672 00001664 .global _QueueInsertLast 673 00001664 _QueueInsertLast: 674 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 675 00001664 afbefffc sw -4(r29),r30; push fp 676 00001668 001df020 add r30,r0,r29; fp = sp 677 0000166c afbffff8 sw -8(r29),r31; push ret addr 678 00001670 2fbd0010 subui r29,r29,#16; alloc local storage 679 00001674 afa20000 sw 0(r29),r2 680 00001678 afa30004 sw 4(r29),r3 681 0000167c 8fc30000 lw r3,(r30) 682 00001680 8fc10004 lw r1,4(r30) 683 00001684 8c620004 lw r2,4(r3) 684 00001688 ac230008 sw 8(r1),r3 685 0000168c ac220004 sw 4(r1),r2 686 00001690 8c5f0000 lw r31,(r2) 687 00001694 ac3f0000 sw (r1),r31 688 00001698 ac410000 sw (r2),r1 689 0000169c 8c220000 lw r2,(r1) 690 000016a0 ac410004 sw 4(r2),r1 691 000016a4 8c610008 lw r1,8(r3) 692 000016a8 20210001 addi r1,r1,#1 693 000016ac ac610008 sw 8(r3),r1 694 000016b0 8fa20000 lw r2,0(r29) 695 000016b4 8fa30004 lw r3,4(r29) 696 000016b8 8fdffff8 lw r31,-8(r30) 697 000016bc 001ee820 add r29,r0,r30 698 000016c0 8fdefffc lw r30,-4(r30) 699 000016c4 4be00000 jr r31 700 000016c8 54000000 nop 701 000016cc .endproc _QueueInsertLast 702 000016cc .align 2 703 000016cc .proc _QueueRemove 704 000016cc .global _QueueRemove 705 000016cc _QueueRemove: 706 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 707 000016cc afbefffc sw -4(r29),r30; push fp 708 000016d0 001df020 add r30,r0,r29; fp = sp 709 000016d4 afbffff8 sw -8(r29),r31; push ret addr 710 000016d8 2fbd0010 subui r29,r29,#16; alloc local storage 711 000016dc afa20000 sw 0(r29),r2 712 000016e0 afa30004 sw 4(r29),r3 713 000016e4 8fdf0000 lw r31,(r30) 714 000016e8 8fe10008 lw r1,8(r31) 715 000016ec 8c210008 lw r1,8(r1) 716 000016f0 6c210000 sgti r1,r1,#0 717 000016f4 1020002c beqz r1,L44_LF2 718 000016f8 54000000 nop; not filled. 719 000016fc 8fe10004 lw r1,4(r31) 720 00001700 8fe30000 lw r3,(r31) 721 00001704 ac230000 sw (r1),r3 722 00001708 8fe10000 lw r1,(r31) 723 0000170c 8fe30004 lw r3,4(r31) 724 00001710 ac230004 sw 4(r1),r3 725 00001714 8fe20008 lw r2,8(r31) 726 00001718 8c410008 lw r1,8(r2) 727 0000171c 2021ffff addi r1,r1,#-1 728 00001720 ac410008 sw 8(r2),r1 729 00001724 L44_LF2: 730 00001724 20030000 addi r3,r0,#0 731 00001728 afe30000 sw (r31),r3 732 0000172c 8fa20000 lw r2,0(r29) 733 00001730 8fa30004 lw r3,4(r29) 734 00001734 8fdffff8 lw r31,-8(r30) 735 00001738 001ee820 add r29,r0,r30 736 0000173c 8fdefffc lw r30,-4(r30) 737 00001740 4be00000 jr r31 738 00001744 54000000 nop 739 00001748 .endproc _QueueRemove 740 00001748 .align 2 741 00001748 .proc _QueueLength 742 00001748 .global _QueueLength 743 00001748 _QueueLength: 744 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 745 00001748 afbefffc sw -4(r29),r30; push fp 746 0000174c 001df020 add r30,r0,r29; fp = sp 747 00001750 afbffff8 sw -8(r29),r31; push ret addr 748 00001754 2fbd0008 subui r29,r29,#8; alloc local storage 749 00001758 8fc10000 lw r1,(r30) 750 0000175c 8c210008 lw r1,8(r1) 751 00001760 8fdffff8 lw r31,-8(r30) 752 00001764 001ee820 add r29,r0,r30 753 00001768 8fdefffc lw r30,-4(r30) 754 0000176c 4be00000 jr r31 755 00001770 54000000 nop 756 00001774 .endproc _QueueLength 757 00001774 .align 2 758 00001774 .proc _QueueEmpty 759 00001774 .global _QueueEmpty 760 00001774 _QueueEmpty: 761 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 762 00001774 afbefffc sw -4(r29),r30; push fp 763 00001778 001df020 add r30,r0,r29; fp = sp 764 0000177c afbffff8 sw -8(r29),r31; push ret addr 765 00001780 2fbd0008 subui r29,r29,#8; alloc local storage 766 00001784 8fc10000 lw r1,(r30) 767 00001788 8c210008 lw r1,8(r1) 768 0000178c 60210000 seqi r1,r1,#0 769 00001790 8fdffff8 lw r31,-8(r30) 770 00001794 001ee820 add r29,r0,r30 771 00001798 8fdefffc lw r30,-4(r30) 772 0000179c 4be00000 jr r31 773 000017a0 54000000 nop 774 000017a4 .endproc _QueueEmpty 775 000017a4 .data 776 0000e000 .align 2 777 0000e000 LC0_LF2: 778 0000e000 456e7465 .ascii "Entering ProcessModuleInit\n\000" 778 0000e004 72696e67 778 0000e008 2050726f 778 0000e00c 63657373 778 0000e010 4d6f6475 778 0000e014 6c65496e 778 0000e018 69740a00 779 0000e01c .align 2 780 0000e01c LC1_LF2: 781 0000e01c 4c656176 .ascii "Leaving ProcessModuleInit\n\000" 781 0000e020 696e6720 781 0000e024 50726f63 781 0000e028 6573734d 781 0000e02c 6f64756c 781 0000e030 65496e69 781 0000e034 740a00 782 0000e037 .text 783 000017a4 .align 2 784 000017a4 .proc _ShareModuleInit 785 000017a4 .global _ShareModuleInit 786 000017a4 _ShareModuleInit: 787 ; Function 'ShareModuleInit'; 0 bytes of locals, 4 regs to save. 788 000017a4 afbefffc sw -4(r29),r30; push fp 789 000017a8 001df020 add r30,r0,r29; fp = sp 790 000017ac afbffff8 sw -8(r29),r31; push ret addr 791 000017b0 2fbd0018 subui r29,r29,#24; alloc local storage 792 000017b4 afa20000 sw 0(r29),r2 793 000017b8 afa30004 sw 4(r29),r3 794 000017bc afa40008 sw 8(r29),r4 795 000017c0 afa5000c sw 12(r29),r5 796 000017c4 23bdfff8 addi r29,r29,#-8 797 000017c8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 798 000017cc 24424038 addui r2,r2,(_debugstr)&0xffff 799 000017d0 afa20000 sw (r29),r2 800 000017d4 20050070 addi r5,r0,#112 801 000017d8 afa50004 sw 4(r29),r5 802 000017dc 0c004dac jal _dindex 803 000017e0 54000000 nop; not filled. 804 000017e4 23bd0008 addi r29,r29,#8 805 000017e8 64210000 snei r1,r1,#0 806 000017ec 1420002c bnez r1,L64_LF2 807 000017f0 54000000 nop; not filled. 808 000017f4 23bdfff8 addi r29,r29,#-8 809 000017f8 afa20000 sw (r29),r2 810 000017fc 2005002b addi r5,r0,#43 811 00001800 afa50004 sw 4(r29),r5 812 00001804 0c004d84 jal _dindex 813 00001808 54000000 nop; not filled. 814 0000180c 23bd0008 addi r29,r29,#8 815 00001810 64210000 snei r1,r1,#0 816 00001814 10200020 beqz r1,L63_LF2 817 00001818 54000000 nop; not filled. 818 0000181c L64_LF2: 819 0000181c 23bdfff8 addi r29,r29,#-8 820 00001820 3c050000 lhi r5,((LC0_LF2)>>16)&0xffff 821 00001824 24a5e000 addui r5,r5,(LC0_LF2)&0xffff 822 00001828 afa50000 sw (r29),r5 823 0000182c 0c00b9f4 jal _printf 824 00001830 54000000 nop; not filled. 825 00001834 23bd0008 addi r29,r29,#8 826 00001838 L63_LF2: 827 00001838 3c020000 lhi r2,((_spages_LF2)>>16)&0xffff 828 0000183c 2442e094 addui r2,r2,(_spages_LF2)&0xffff 829 00001840 204400f8 addi r4,r2,#248 830 00001844 L68_LF2: 831 00001844 20050000 addi r5,r0,#0 832 00001848 ac450000 sw (r2),r5 833 0000184c 0002f820 add r31,r0,r2 834 00001850 00021820 add r3,r0,r2 835 00001854 L72_LF2: 836 00001854 23e10004 addi r1,r31,#4 837 00001858 20050000 addi r5,r0,#0 838 0000185c ac250000 sw (r1),r5 839 00001860 0001f820 add r31,r0,r1 840 00001864 03e3082c sle r1,r31,r3 841 00001868 1420ffe8 bnez r1,L72_LF2 842 0000186c 54000000 nop; not filled. 843 00001870 20420008 addi r2,r2,#8 844 00001874 0044082c sle r1,r2,r4 845 00001878 1420ffc8 bnez r1,L68_LF2 846 0000187c 54000000 nop; not filled. 847 00001880 23bdfff8 addi r29,r29,#-8 848 00001884 3c020001 lhi r2,((_debugstr)>>16)&0xffff 849 00001888 24424038 addui r2,r2,(_debugstr)&0xffff 850 0000188c afa20000 sw (r29),r2 851 00001890 20050070 addi r5,r0,#112 852 00001894 afa50004 sw 4(r29),r5 853 00001898 0c004cf0 jal _dindex 854 0000189c 54000000 nop; not filled. 855 000018a0 23bd0008 addi r29,r29,#8 856 000018a4 64210000 snei r1,r1,#0 857 000018a8 1420002c bnez r1,L76_LF2 858 000018ac 54000000 nop; not filled. 859 000018b0 23bdfff8 addi r29,r29,#-8 860 000018b4 afa20000 sw (r29),r2 861 000018b8 2005002b addi r5,r0,#43 862 000018bc afa50004 sw 4(r29),r5 863 000018c0 0c004cc8 jal _dindex 864 000018c4 54000000 nop; not filled. 865 000018c8 23bd0008 addi r29,r29,#8 866 000018cc 64210000 snei r1,r1,#0 867 000018d0 10200020 beqz r1,L75_LF2 868 000018d4 54000000 nop; not filled. 869 000018d8 L76_LF2: 870 000018d8 23bdfff8 addi r29,r29,#-8 871 000018dc 3c050000 lhi r5,((LC1_LF2)>>16)&0xffff 872 000018e0 24a5e01c addui r5,r5,(LC1_LF2)&0xffff 873 000018e4 afa50000 sw (r29),r5 874 000018e8 0c00b938 jal _printf 875 000018ec 54000000 nop; not filled. 876 000018f0 23bd0008 addi r29,r29,#8 877 000018f4 L75_LF2: 878 000018f4 8fa20000 lw r2,0(r29) 879 000018f8 8fa30004 lw r3,4(r29) 880 000018fc 8fa40008 lw r4,8(r29) 881 00001900 8fa5000c lw r5,12(r29) 882 00001904 8fdffff8 lw r31,-8(r30) 883 00001908 001ee820 add r29,r0,r30 884 0000190c 8fdefffc lw r30,-4(r30) 885 00001910 4be00000 jr r31 886 00001914 54000000 nop 887 00001918 .endproc _ShareModuleInit 888 00001918 .data 889 0000e037 .align 2 890 0000e038 LC2_LF2: 891 0000e038 46415441 .ascii "FATAL: couldn\'t allocate memory - no free pages!\n\000" 891 0000e03c 4c3a2063 891 0000e040 6f756c64 891 0000e044 6e277420 891 0000e048 616c6c6f 891 0000e04c 63617465 891 0000e050 206d656d 891 0000e054 6f727920 891 0000e058 2d206e6f 891 0000e05c 20667265 891 0000e060 65207061 891 0000e064 67657321 891 0000e068 0a00 892 0000e06a .text 893 00001918 .align 2 894 00001918 .proc _MemoryCreateSharedPage 895 00001918 .global _MemoryCreateSharedPage 896 00001918 _MemoryCreateSharedPage: 897 ; Function 'MemoryCreateSharedPage'; 0 bytes of locals, 9 regs to save. 898 00001918 afbefffc sw -4(r29),r30; push fp 899 0000191c 001df020 add r30,r0,r29; fp = sp 900 00001920 afbffff8 sw -8(r29),r31; push ret addr 901 00001924 2fbd0030 subui r29,r29,#48; alloc local storage 902 00001928 afa20000 sw 0(r29),r2 903 0000192c afa30004 sw 4(r29),r3 904 00001930 afa40008 sw 8(r29),r4 905 00001934 afa5000c sw 12(r29),r5 906 00001938 afa60010 sw 16(r29),r6 907 0000193c afa70014 sw 20(r29),r7 908 00001940 afa80018 sw 24(r29),r8 909 00001944 afa9001c sw 28(r29),r9 910 00001948 afaa0020 sw 32(r29),r10 911 0000194c 8fc60000 lw r6,(r30) 912 00001950 23bdfff8 addi r29,r29,#-8 913 00001954 afa60000 sw (r29),r6 914 00001958 0c008858 jal _findpid 915 0000195c 54000000 nop; not filled. 916 00001960 00012820 add r5,r0,r1 917 00001964 58a80005 srli r8,r5,#0x5 918 00001968 51010005 slli r1,r8,#0x5 919 0000196c 00a12822 sub r5,r5,r1 920 00001970 23bd0008 addi r29,r29,#8 921 00001974 23bdfff8 addi r29,r29,#-8 922 00001978 200a000f addi r10,r0,#15 923 0000197c afaa0000 sw (r29),r10 924 00001980 0ffff904 jal _SetIntrs 925 00001984 54000000 nop; not filled. 926 00001988 00013820 add r7,r0,r1 927 0000198c 23bd0008 addi r29,r29,#8 928 00001990 8cc100a0 lw r1,160(r6) 929 00001994 60210010 seqi r1,r1,#16 930 00001998 14200044 bnez r1,L92_LF2 931 0000199c 54000000 nop; not filled. 932 000019a0 20030000 addi r3,r0,#0 933 000019a4 3c090000 lhi r9,((_spages_LF2)>>16)&0xffff 934 000019a8 2529e094 addui r9,r9,(_spages_LF2)&0xffff 935 000019ac 00091020 add r2,r0,r9 936 000019b0 L84_LF2: 937 000019b0 8c410000 lw r1,(r2) 938 000019b4 64210000 snei r1,r1,#0 939 000019b8 10200018 beqz r1,L82_LF2 940 000019bc 54000000 nop; not filled. 941 000019c0 20420008 addi r2,r2,#8 942 000019c4 20630001 addi r3,r3,#1 943 000019c8 7061001f slei r1,r3,#31 944 000019cc 1420ffe0 bnez r1,L84_LF2 945 000019d0 54000000 nop; not filled. 946 000019d4 L82_LF2: 947 000019d4 60610020 seqi r1,r3,#32 948 000019d8 10200024 beqz r1,L87_LF2 949 000019dc 54000000 nop; not filled. 950 000019e0 L92_LF2: 951 000019e0 23bdfff8 addi r29,r29,#-8 952 000019e4 afa70000 sw (r29),r7 953 000019e8 0ffff89c jal _SetIntrs 954 000019ec 54000000 nop; not filled. 955 000019f0 23bd0008 addi r29,r29,#8 956 000019f4 20010000 addi r1,r0,#0 957 000019f8 080000b4 j L91_LF2 958 000019fc 54000000 nop; not filled. 959 00001a00 L87_LF2: 960 00001a00 0c003c9c jal _MemoryAllocPage 961 00001a04 54000000 nop; not filled. 962 00001a08 00012020 add r4,r0,r1 963 00001a0c 64810000 snei r1,r4,#0 964 00001a10 14200028 bnez r1,L89_LF2 965 00001a14 54000000 nop; not filled. 966 00001a18 23bdfff8 addi r29,r29,#-8 967 00001a1c 3c0a0000 lhi r10,((LC2_LF2)>>16)&0xffff 968 00001a20 254ae038 addui r10,r10,(LC2_LF2)&0xffff 969 00001a24 afaa0000 sw (r29),r10 970 00001a28 0c00b7f8 jal _printf 971 00001a2c 54000000 nop; not filled. 972 00001a30 0c00b7d8 jal _exitsim 973 00001a34 54000000 nop; not filled. 974 00001a38 23bd0008 addi r29,r29,#8 975 00001a3c L89_LF2: 976 00001a3c 50610003 slli r1,r3,#0x3 977 00001a40 00291020 add r2,r1,r9 978 00001a44 ac440000 sw (r2),r4 979 00001a48 51010002 slli r1,r8,#0x2 980 00001a4c 00221020 add r2,r1,r2 981 00001a50 20010001 addi r1,r0,#1 982 00001a54 00250804 sll r1,r1,r5 983 00001a58 ac410004 sw 4(r2),r1 984 00001a5c 23bdfff8 addi r29,r29,#-8 985 00001a60 afa40000 sw (r29),r4 986 00001a64 0c00439c jal _MemorySetupPte 987 00001a68 54000000 nop; not filled. 988 00001a6c 8cc200a0 lw r2,160(r6) 989 00001a70 50420002 slli r2,r2,#0x2 990 00001a74 00461020 add r2,r2,r6 991 00001a78 ac410060 sw 96(r2),r1 992 00001a7c 8cc100a0 lw r1,160(r6) 993 00001a80 20220001 addi r2,r1,#1 994 00001a84 acc200a0 sw 160(r6),r2 995 00001a88 8cc10008 lw r1,8(r6) 996 00001a8c 2421fe8c addui r1,r1,#65164 997 00001a90 ac22013c sw 316(r1),r2 998 00001a94 23bd0008 addi r29,r29,#8 999 00001a98 23bdfff8 addi r29,r29,#-8 1000 00001a9c afa70000 sw (r29),r7 1001 00001aa0 0ffff7e4 jal _SetIntrs 1002 00001aa4 54000000 nop; not filled. 1003 00001aa8 23bd0008 addi r29,r29,#8 1004 00001aac 00040820 add r1,r0,r4 1005 00001ab0 L91_LF2: 1006 00001ab0 8fa20000 lw r2,0(r29) 1007 00001ab4 8fa30004 lw r3,4(r29) 1008 00001ab8 8fa40008 lw r4,8(r29) 1009 00001abc 8fa5000c lw r5,12(r29) 1010 00001ac0 8fa60010 lw r6,16(r29) 1011 00001ac4 8fa70014 lw r7,20(r29) 1012 00001ac8 8fa80018 lw r8,24(r29) 1013 00001acc 8fa9001c lw r9,28(r29) 1014 00001ad0 8faa0020 lw r10,32(r29) 1015 00001ad4 8fdffff8 lw r31,-8(r30) 1016 00001ad8 001ee820 add r29,r0,r30 1017 00001adc 8fdefffc lw r30,-4(r30) 1018 00001ae0 4be00000 jr r31 1019 00001ae4 54000000 nop 1020 00001ae8 .endproc _MemoryCreateSharedPage 1021 00001ae8 .align 2 1022 00001ae8 .proc _mmap 1023 00001ae8 .global _mmap 1024 00001ae8 _mmap: 1025 ; Function 'mmap'; 0 bytes of locals, 9 regs to save. 1026 00001ae8 afbefffc sw -4(r29),r30; push fp 1027 00001aec 001df020 add r30,r0,r29; fp = sp 1028 00001af0 afbffff8 sw -8(r29),r31; push ret addr 1029 00001af4 2fbd0030 subui r29,r29,#48; alloc local storage 1030 00001af8 afa20000 sw 0(r29),r2 1031 00001afc afa30004 sw 4(r29),r3 1032 00001b00 afa40008 sw 8(r29),r4 1033 00001b04 afa5000c sw 12(r29),r5 1034 00001b08 afa60010 sw 16(r29),r6 1035 00001b0c afa70014 sw 20(r29),r7 1036 00001b10 afa80018 sw 24(r29),r8 1037 00001b14 afa9001c sw 28(r29),r9 1038 00001b18 afaa0020 sw 32(r29),r10 1039 00001b1c 8fc60000 lw r6,(r30) 1040 00001b20 8fc70004 lw r7,4(r30) 1041 00001b24 64e10000 snei r1,r7,#0 1042 00001b28 14200010 bnez r1,L94_LF2 1043 00001b2c 54000000 nop; not filled. 1044 00001b30 20010000 addi r1,r0,#0 1045 00001b34 08000184 j L115_LF2 1046 00001b38 54000000 nop; not filled. 1047 00001b3c L94_LF2: 1048 00001b3c 8cc10008 lw r1,8(r6) 1049 00001b40 2429fe8c addui r9,r1,#65164 1050 00001b44 23bdfff8 addi r29,r29,#-8 1051 00001b48 200a000f addi r10,r0,#15 1052 00001b4c afaa0000 sw (r29),r10 1053 00001b50 0ffff734 jal _SetIntrs 1054 00001b54 54000000 nop; not filled. 1055 00001b58 00014020 add r8,r0,r1 1056 00001b5c 23bd0008 addi r29,r29,#8 1057 00001b60 20030000 addi r3,r0,#0 1058 00001b64 3c020000 lhi r2,((_spages_LF2)>>16)&0xffff 1059 00001b68 2442e094 addui r2,r2,(_spages_LF2)&0xffff 1060 00001b6c L99_LF2: 1061 00001b6c 8c410000 lw r1,(r2) 1062 00001b70 00270828 seq r1,r1,r7 1063 00001b74 14200018 bnez r1,L97_LF2 1064 00001b78 54000000 nop; not filled. 1065 00001b7c 20420008 addi r2,r2,#8 1066 00001b80 20630001 addi r3,r3,#1 1067 00001b84 7061001f sleui r1,r3,#31 1068 00001b88 1420ffe0 bnez r1,L99_LF2 1069 00001b8c 54000000 nop; not filled. 1070 00001b90 L97_LF2: 1071 00001b90 60610020 seqi r1,r3,#32 1072 00001b94 14200068 bnez r1,L116_LF2 1073 00001b98 54000000 nop; not filled. 1074 00001b9c 50ff0010 slli r31,r7,#0x10 1075 00001ba0 20050000 addi r5,r0,#0 1076 00001ba4 8cc400a0 lw r4,160(r6) 1077 00001ba8 00a4082a slt r1,r5,r4 1078 00001bac 10200034 beqz r1,L105_LF2 1079 00001bb0 54000000 nop; not filled. 1080 00001bb4 00061020 add r2,r0,r6 1081 00001bb8 L107_LF2: 1082 00001bb8 8c410060 lw r1,96(r2) 1083 00001bbc 200afff8 addi r10,r0,#-8 1084 00001bc0 002a0824 and r1,r1,r10 1085 00001bc4 003f0828 seq r1,r1,r31 1086 00001bc8 14200018 bnez r1,L105_LF2 1087 00001bcc 54000000 nop; not filled. 1088 00001bd0 20420004 addi r2,r2,#4 1089 00001bd4 20a50001 addi r5,r5,#1 1090 00001bd8 00a4082a slt r1,r5,r4 1091 00001bdc 1420ffd8 bnez r1,L107_LF2 1092 00001be0 54000000 nop; not filled. 1093 00001be4 L105_LF2: 1094 00001be4 8cc200a0 lw r2,160(r6) 1095 00001be8 00a20828 seq r1,r5,r2 1096 00001bec 10200064 beqz r1,L110_LF2 1097 00001bf0 54000000 nop; not filled. 1098 00001bf4 7041000f slei r1,r2,#15 1099 00001bf8 14200024 bnez r1,L111_LF2 1100 00001bfc 54000000 nop; not filled. 1101 00001c00 L116_LF2: 1102 00001c00 23bdfff8 addi r29,r29,#-8 1103 00001c04 afa80000 sw (r29),r8 1104 00001c08 0ffff67c jal _SetIntrs 1105 00001c0c 54000000 nop; not filled. 1106 00001c10 23bd0008 addi r29,r29,#8 1107 00001c14 20010000 addi r1,r0,#0 1108 00001c18 080000a0 j L115_LF2 1109 00001c1c 54000000 nop; not filled. 1110 00001c20 L111_LF2: 1111 00001c20 23bdfff8 addi r29,r29,#-8 1112 00001c24 afa70000 sw (r29),r7 1113 00001c28 0c0041d8 jal _MemorySetupPte 1114 00001c2c 54000000 nop; not filled. 1115 00001c30 8cc200a0 lw r2,160(r6) 1116 00001c34 50420002 slli r2,r2,#0x2 1117 00001c38 00461020 add r2,r2,r6 1118 00001c3c ac410060 sw 96(r2),r1 1119 00001c40 8cc100a0 lw r1,160(r6) 1120 00001c44 20210001 addi r1,r1,#1 1121 00001c48 acc100a0 sw 160(r6),r1 1122 00001c4c ad21013c sw 316(r9),r1 1123 00001c50 23bd0008 addi r29,r29,#8 1124 00001c54 L110_LF2: 1125 00001c54 23bdfff8 addi r29,r29,#-8 1126 00001c58 afa60000 sw (r29),r6 1127 00001c5c 0c008554 jal _findpid 1128 00001c60 54000000 nop; not filled. 1129 00001c64 00011020 add r2,r0,r1 1130 00001c68 58440005 srli r4,r2,#0x5 1131 00001c6c 50810005 slli r1,r4,#0x5 1132 00001c70 00411022 sub r2,r2,r1 1133 00001c74 50630003 slli r3,r3,#0x3 1134 00001c78 50810002 slli r1,r4,#0x2 1135 00001c7c 00610820 add r1,r3,r1 1136 00001c80 3c0a0000 lhi r10,((_spages_LF2+4)>>16)&0xffff 1137 00001c84 254ae098 addui r10,r10,(_spages_LF2+4)&0xffff 1138 00001c88 002a1820 add r3,r1,r10 1139 00001c8c 20010001 addi r1,r0,#1 1140 00001c90 00221004 sll r2,r1,r2 1141 00001c94 8c610000 lw r1,(r3) 1142 00001c98 00220825 or r1,r1,r2 1143 00001c9c ac610000 sw (r3),r1 1144 00001ca0 23bd0008 addi r29,r29,#8 1145 00001ca4 23bdfff8 addi r29,r29,#-8 1146 00001ca8 afa80000 sw (r29),r8 1147 00001cac 0ffff5d8 jal _SetIntrs 1148 00001cb0 54000000 nop; not filled. 1149 00001cb4 23bd0008 addi r29,r29,#8 1150 00001cb8 50a10010 slli r1,r5,#0x10 1151 00001cbc L115_LF2: 1152 00001cbc 8fa20000 lw r2,0(r29) 1153 00001cc0 8fa30004 lw r3,4(r29) 1154 00001cc4 8fa40008 lw r4,8(r29) 1155 00001cc8 8fa5000c lw r5,12(r29) 1156 00001ccc 8fa60010 lw r6,16(r29) 1157 00001cd0 8fa70014 lw r7,20(r29) 1158 00001cd4 8fa80018 lw r8,24(r29) 1159 00001cd8 8fa9001c lw r9,28(r29) 1160 00001cdc 8faa0020 lw r10,32(r29) 1161 00001ce0 8fdffff8 lw r31,-8(r30) 1162 00001ce4 001ee820 add r29,r0,r30 1163 00001ce8 8fdefffc lw r30,-4(r30) 1164 00001cec 4be00000 jr r31 1165 00001cf0 54000000 nop 1166 00001cf4 .endproc _mmap 1167 00001cf4 .data 1168 0000e06a .align 2 1169 0000e06c LC3_LF2: 1170 0000e06c 46415441 .ascii "FATAL: Attempted to free memory page 0\n\000" 1170 0000e070 4c3a2041 1170 0000e074 7474656d 1170 0000e078 70746564 1170 0000e07c 20746f20 1170 0000e080 66726565 1170 0000e084 206d656d 1170 0000e088 6f727920 1170 0000e08c 70616765 1170 0000e090 20300a00 1171 0000e094 .text 1172 00001cf4 .align 2 1173 00001cf4 .proc _MemoryFreeSharedPte 1174 00001cf4 .global _MemoryFreeSharedPte 1175 00001cf4 _MemoryFreeSharedPte: 1176 ; Function 'MemoryFreeSharedPte'; 0 bytes of locals, 9 regs to save. 1177 00001cf4 afbefffc sw -4(r29),r30; push fp 1178 00001cf8 001df020 add r30,r0,r29; fp = sp 1179 00001cfc afbffff8 sw -8(r29),r31; push ret addr 1180 00001d00 2fbd0030 subui r29,r29,#48; alloc local storage 1181 00001d04 afa20000 sw 0(r29),r2 1182 00001d08 afa30004 sw 4(r29),r3 1183 00001d0c afa40008 sw 8(r29),r4 1184 00001d10 afa5000c sw 12(r29),r5 1185 00001d14 afa60010 sw 16(r29),r6 1186 00001d18 afa70014 sw 20(r29),r7 1187 00001d1c afa80018 sw 24(r29),r8 1188 00001d20 afa9001c sw 28(r29),r9 1189 00001d24 afaa0020 sw 32(r29),r10 1190 00001d28 8fc80000 lw r8,(r30) 1191 00001d2c 8fc20004 lw r2,4(r30) 1192 00001d30 23bdfff8 addi r29,r29,#-8 1193 00001d34 200a000f addi r10,r0,#15 1194 00001d38 afaa0000 sw (r29),r10 1195 00001d3c 0ffff548 jal _SetIntrs 1196 00001d40 54000000 nop; not filled. 1197 00001d44 00014820 add r9,r0,r1 1198 00001d48 23bd0008 addi r29,r29,#8 1199 00001d4c 50410002 slli r1,r2,#0x2 1200 00001d50 00280820 add r1,r1,r8 1201 00001d54 94270060 lhu r7,96(r1) 1202 00001d58 64e10000 snei r1,r7,#0 1203 00001d5c 14200028 bnez r1,L119_LF2 1204 00001d60 54000000 nop; not filled. 1205 00001d64 23bdfff8 addi r29,r29,#-8 1206 00001d68 3c0a0000 lhi r10,((LC3_LF2)>>16)&0xffff 1207 00001d6c 254ae06c addui r10,r10,(LC3_LF2)&0xffff 1208 00001d70 afaa0000 sw (r29),r10 1209 00001d74 0c00b4ac jal _printf 1210 00001d78 54000000 nop; not filled. 1211 00001d7c 0c00b48c jal _exitsim 1212 00001d80 54000000 nop; not filled. 1213 00001d84 23bd0008 addi r29,r29,#8 1214 00001d88 L119_LF2: 1215 00001d88 20040000 addi r4,r0,#0 1216 00001d8c 3c050000 lhi r5,((_spages_LF2)>>16)&0xffff 1217 00001d90 24a5e094 addui r5,r5,(_spages_LF2)&0xffff 1218 00001d94 00051020 add r2,r0,r5 1219 00001d98 L123_LF2: 1220 00001d98 8c410000 lw r1,(r2) 1221 00001d9c 00270828 seq r1,r1,r7 1222 00001da0 14200018 bnez r1,L121_LF2 1223 00001da4 54000000 nop; not filled. 1224 00001da8 20420008 addi r2,r2,#8 1225 00001dac 20840001 addi r4,r4,#1 1226 00001db0 7081001f slei r1,r4,#31 1227 00001db4 1420ffe0 bnez r1,L123_LF2 1228 00001db8 54000000 nop; not filled. 1229 00001dbc L121_LF2: 1230 00001dbc 60810020 seqi r1,r4,#32 1231 00001dc0 10200024 beqz r1,L126_LF2 1232 00001dc4 54000000 nop; not filled. 1233 00001dc8 23bdfff8 addi r29,r29,#-8 1234 00001dcc afa90000 sw (r29),r9 1235 00001dd0 0ffff4b4 jal _SetIntrs 1236 00001dd4 54000000 nop; not filled. 1237 00001dd8 23bd0008 addi r29,r29,#8 1238 00001ddc 2001ffff addi r1,r0,#-1 1239 00001de0 080000f0 j L141_LF2 1240 00001de4 54000000 nop; not filled. 1241 00001de8 L126_LF2: 1242 00001de8 23bdfff8 addi r29,r29,#-8 1243 00001dec afa80000 sw (r29),r8 1244 00001df0 0c0083c0 jal _findpid 1245 00001df4 54000000 nop; not filled. 1246 00001df8 00011020 add r2,r0,r1 1247 00001dfc 58230005 srli r3,r1,#0x5 1248 00001e00 50610005 slli r1,r3,#0x5 1249 00001e04 00411022 sub r2,r2,r1 1250 00001e08 50810003 slli r1,r4,#0x3 1251 00001e0c 00252020 add r4,r1,r5 1252 00001e10 50610002 slli r1,r3,#0x2 1253 00001e14 00240820 add r1,r1,r4 1254 00001e18 20230004 addi r3,r1,#4 1255 00001e1c 20010001 addi r1,r0,#1 1256 00001e20 00220804 sll r1,r1,r2 1257 00001e24 200affff addi r10,r0,#-1 1258 00001e28 002a1026 xor r2,r1,r10 1259 00001e2c 8c610000 lw r1,(r3) 1260 00001e30 00220824 and r1,r1,r2 1261 00001e34 ac610000 sw (r3),r1 1262 00001e38 23bd0008 addi r29,r29,#8 1263 00001e3c 20060000 addi r6,r0,#0 1264 00001e40 20050000 addi r5,r0,#0 1265 00001e44 L132_LF2: 1266 00001e44 20030001 addi r3,r0,#1 1267 00001e48 20020000 addi r2,r0,#0 1268 00001e4c 8c9f0004 lw r31,4(r4) 1269 00001e50 L136_LF2: 1270 00001e50 03e30824 and r1,r31,r3 1271 00001e54 64210000 snei r1,r1,#0 1272 00001e58 00c13020 add r6,r6,r1 1273 00001e5c 50630001 slli r3,r3,#0x1 1274 00001e60 20420001 addi r2,r2,#1 1275 00001e64 7041001f slei r1,r2,#31 1276 00001e68 1420ffe4 bnez r1,L136_LF2 1277 00001e6c 54000000 nop; not filled. 1278 00001e70 20840004 addi r4,r4,#4 1279 00001e74 20a50001 addi r5,r5,#1 1280 00001e78 70a10000 slei r1,r5,#0 1281 00001e7c 1420ffc4 bnez r1,L132_LF2 1282 00001e80 54000000 nop; not filled. 1283 00001e84 8d0100a0 lw r1,160(r8) 1284 00001e88 2022ffff addi r2,r1,#-1 1285 00001e8c ad0200a0 sw 160(r8),r2 1286 00001e90 8d010008 lw r1,8(r8) 1287 00001e94 2421fe8c addui r1,r1,#65164 1288 00001e98 ac22013c sw 316(r1),r2 1289 00001e9c 64c10000 snei r1,r6,#0 1290 00001ea0 14200018 bnez r1,L139_LF2 1291 00001ea4 54000000 nop; not filled. 1292 00001ea8 23bdfff8 addi r29,r29,#-8 1293 00001eac afa70000 sw (r29),r7 1294 00001eb0 0c003ab4 jal _MemoryFreePage 1295 00001eb4 54000000 nop; not filled. 1296 00001eb8 23bd0008 addi r29,r29,#8 1297 00001ebc L139_LF2: 1298 00001ebc 23bdfff8 addi r29,r29,#-8 1299 00001ec0 afa90000 sw (r29),r9 1300 00001ec4 0ffff3c0 jal _SetIntrs 1301 00001ec8 54000000 nop; not filled. 1302 00001ecc 23bd0008 addi r29,r29,#8 1303 00001ed0 00060820 add r1,r0,r6 1304 00001ed4 L141_LF2: 1305 00001ed4 8fa20000 lw r2,0(r29) 1306 00001ed8 8fa30004 lw r3,4(r29) 1307 00001edc 8fa40008 lw r4,8(r29) 1308 00001ee0 8fa5000c lw r5,12(r29) 1309 00001ee4 8fa60010 lw r6,16(r29) 1310 00001ee8 8fa70014 lw r7,20(r29) 1311 00001eec 8fa80018 lw r8,24(r29) 1312 00001ef0 8fa9001c lw r9,28(r29) 1313 00001ef4 8faa0020 lw r10,32(r29) 1314 00001ef8 8fdffff8 lw r31,-8(r30) 1315 00001efc 001ee820 add r29,r0,r30 1316 00001f00 8fdefffc lw r30,-4(r30) 1317 00001f04 4be00000 jr r31 1318 00001f08 54000000 nop 1319 00001f0c .endproc _MemoryFreeSharedPte 1320 00001f0c .data 1321 0000e094 .align 2 1322 0000e094 _spages_LF2: 1323 0000e094 .space 256 1324 ; Compiled by GCC 1325 0000e194 .text 1326 00001f0c .align 2 1327 00001f0c .proc _isspace 1328 00001f0c .global _isspace 1329 00001f0c _isspace: 1330 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 1331 00001f0c afbefffc sw -4(r29),r30; push fp 1332 00001f10 001df020 add r30,r0,r29; fp = sp 1333 00001f14 afbffff8 sw -8(r29),r31; push ret addr 1334 00001f18 2fbd0010 subui r29,r29,#16; alloc local storage 1335 00001f1c afa20000 sw 0(r29),r2 1336 00001f20 83c20003 lb r2,3(r30) 1337 00001f24 201f0000 addi r31,r0,#0 1338 00001f28 304100ff andi r1,r2,#0x00ff 1339 00001f2c 60210020 seqi r1,r1,#32 1340 00001f30 14200018 bnez r1,L6_LF3 1341 00001f34 54000000 nop; not filled. 1342 00001f38 2041fff7 addi r1,r2,#-9 1343 00001f3c 302100ff andi r1,r1,#0x00ff 1344 00001f40 70210001 sleui r1,r1,#1 1345 00001f44 10200008 beqz r1,L5_LF3 1346 00001f48 54000000 nop; not filled. 1347 00001f4c L6_LF3: 1348 00001f4c 201f0001 addi r31,r0,#1 1349 00001f50 L5_LF3: 1350 00001f50 001f0820 add r1,r0,r31 1351 00001f54 8fa20000 lw r2,0(r29) 1352 00001f58 8fdffff8 lw r31,-8(r30) 1353 00001f5c 001ee820 add r29,r0,r30 1354 00001f60 8fdefffc lw r30,-4(r30) 1355 00001f64 4be00000 jr r31 1356 00001f68 54000000 nop 1357 00001f6c .endproc _isspace 1358 00001f6c .align 2 1359 00001f6c .proc _isxdigit 1360 00001f6c .global _isxdigit 1361 00001f6c _isxdigit: 1362 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 1363 00001f6c afbefffc sw -4(r29),r30; push fp 1364 00001f70 001df020 add r30,r0,r29; fp = sp 1365 00001f74 afbffff8 sw -8(r29),r31; push ret addr 1366 00001f78 2fbd0010 subui r29,r29,#16; alloc local storage 1367 00001f7c afa20000 sw 0(r29),r2 1368 00001f80 83df0003 lb r31,3(r30) 1369 00001f84 20020000 addi r2,r0,#0 1370 00001f88 23e1ffd0 addi r1,r31,#-48 1371 00001f8c 302100ff andi r1,r1,#0x00ff 1372 00001f90 70210009 sleui r1,r1,#9 1373 00001f94 14200028 bnez r1,L12_LF3 1374 00001f98 54000000 nop; not filled. 1375 00001f9c 23e1ff9f addi r1,r31,#-97 1376 00001fa0 302100ff andi r1,r1,#0x00ff 1377 00001fa4 70210005 sleui r1,r1,#5 1378 00001fa8 14200014 bnez r1,L12_LF3 1379 00001fac 54000000 nop; not filled. 1380 00001fb0 33e100ff andi r1,r31,#0x00ff 1381 00001fb4 64210041 snei r1,r1,#65 1382 00001fb8 14200008 bnez r1,L11_LF3 1383 00001fbc 54000000 nop; not filled. 1384 00001fc0 L12_LF3: 1385 00001fc0 20020001 addi r2,r0,#1 1386 00001fc4 L11_LF3: 1387 00001fc4 00020820 add r1,r0,r2 1388 00001fc8 8fa20000 lw r2,0(r29) 1389 00001fcc 8fdffff8 lw r31,-8(r30) 1390 00001fd0 001ee820 add r29,r0,r30 1391 00001fd4 8fdefffc lw r30,-4(r30) 1392 00001fd8 4be00000 jr r31 1393 00001fdc 54000000 nop 1394 00001fe0 .endproc _isxdigit 1395 00001fe0 .align 2 1396 00001fe0 .proc _DisableIntrs 1397 00001fe0 .global _DisableIntrs 1398 00001fe0 _DisableIntrs: 1399 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 1400 00001fe0 afbefffc sw -4(r29),r30; push fp 1401 00001fe4 001df020 add r30,r0,r29; fp = sp 1402 00001fe8 afbffff8 sw -8(r29),r31; push ret addr 1403 00001fec 2fbd0010 subui r29,r29,#16; alloc local storage 1404 00001ff0 afa20000 sw 0(r29),r2 1405 00001ff4 23bdfff8 addi r29,r29,#-8 1406 00001ff8 2002000f addi r2,r0,#15 1407 00001ffc afa20000 sw (r29),r2 1408 00002000 0ffff284 jal _SetIntrs 1409 00002004 54000000 nop; not filled. 1410 00002008 23bd0008 addi r29,r29,#8 1411 0000200c 8fa20000 lw r2,0(r29) 1412 00002010 8fdffff8 lw r31,-8(r30) 1413 00002014 001ee820 add r29,r0,r30 1414 00002018 8fdefffc lw r30,-4(r30) 1415 0000201c 4be00000 jr r31 1416 00002020 54000000 nop 1417 00002024 .endproc _DisableIntrs 1418 00002024 .align 2 1419 00002024 .proc _EnableIntrs 1420 00002024 .global _EnableIntrs 1421 00002024 _EnableIntrs: 1422 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 1423 00002024 afbefffc sw -4(r29),r30; push fp 1424 00002028 001df020 add r30,r0,r29; fp = sp 1425 0000202c afbffff8 sw -8(r29),r31; push ret addr 1426 00002030 2fbd0010 subui r29,r29,#16; alloc local storage 1427 00002034 afa20000 sw 0(r29),r2 1428 00002038 23bdfff8 addi r29,r29,#-8 1429 0000203c 20020000 addi r2,r0,#0 1430 00002040 afa20000 sw (r29),r2 1431 00002044 0ffff240 jal _SetIntrs 1432 00002048 54000000 nop; not filled. 1433 0000204c 23bd0008 addi r29,r29,#8 1434 00002050 8fa20000 lw r2,0(r29) 1435 00002054 8fdffff8 lw r31,-8(r30) 1436 00002058 001ee820 add r29,r0,r30 1437 0000205c 8fdefffc lw r30,-4(r30) 1438 00002060 4be00000 jr r31 1439 00002064 54000000 nop 1440 00002068 .endproc _EnableIntrs 1441 00002068 .align 2 1442 00002068 .proc _RestoreIntrs 1443 00002068 .global _RestoreIntrs 1444 00002068 _RestoreIntrs: 1445 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 1446 00002068 afbefffc sw -4(r29),r30; push fp 1447 0000206c 001df020 add r30,r0,r29; fp = sp 1448 00002070 afbffff8 sw -8(r29),r31; push ret addr 1449 00002074 2fbd0010 subui r29,r29,#16; alloc local storage 1450 00002078 afa20000 sw 0(r29),r2 1451 0000207c 23bdfff8 addi r29,r29,#-8 1452 00002080 8fc20000 lw r2,(r30) 1453 00002084 afa20000 sw (r29),r2 1454 00002088 0ffff1fc jal _SetIntrs 1455 0000208c 54000000 nop; not filled. 1456 00002090 23bd0008 addi r29,r29,#8 1457 00002094 8fa20000 lw r2,0(r29) 1458 00002098 8fdffff8 lw r31,-8(r30) 1459 0000209c 001ee820 add r29,r0,r30 1460 000020a0 8fdefffc lw r30,-4(r30) 1461 000020a4 4be00000 jr r31 1462 000020a8 54000000 nop 1463 000020ac .endproc _RestoreIntrs 1464 000020ac .align 2 1465 000020ac .proc _QueueLinkInit 1466 000020ac .global _QueueLinkInit 1467 000020ac _QueueLinkInit: 1468 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 1469 000020ac afbefffc sw -4(r29),r30; push fp 1470 000020b0 001df020 add r30,r0,r29; fp = sp 1471 000020b4 afbffff8 sw -8(r29),r31; push ret addr 1472 000020b8 2fbd0010 subui r29,r29,#16; alloc local storage 1473 000020bc afa20000 sw 0(r29),r2 1474 000020c0 8fc10000 lw r1,(r30) 1475 000020c4 8fc20004 lw r2,4(r30) 1476 000020c8 201f0000 addi r31,r0,#0 1477 000020cc ac3f0000 sw (r1),r31 1478 000020d0 ac22000c sw 12(r1),r2 1479 000020d4 8fa20000 lw r2,0(r29) 1480 000020d8 8fdffff8 lw r31,-8(r30) 1481 000020dc 001ee820 add r29,r0,r30 1482 000020e0 8fdefffc lw r30,-4(r30) 1483 000020e4 4be00000 jr r31 1484 000020e8 54000000 nop 1485 000020ec .endproc _QueueLinkInit 1486 000020ec .align 2 1487 000020ec .proc _QueueNext 1488 000020ec .global _QueueNext 1489 000020ec _QueueNext: 1490 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 1491 000020ec afbefffc sw -4(r29),r30; push fp 1492 000020f0 001df020 add r30,r0,r29; fp = sp 1493 000020f4 afbffff8 sw -8(r29),r31; push ret addr 1494 000020f8 2fbd0008 subui r29,r29,#8; alloc local storage 1495 000020fc 8fc10000 lw r1,(r30) 1496 00002100 8c210000 lw r1,(r1) 1497 00002104 8fdffff8 lw r31,-8(r30) 1498 00002108 001ee820 add r29,r0,r30 1499 0000210c 8fdefffc lw r30,-4(r30) 1500 00002110 4be00000 jr r31 1501 00002114 54000000 nop 1502 00002118 .endproc _QueueNext 1503 00002118 .align 2 1504 00002118 .proc _QueuePrev 1505 00002118 .global _QueuePrev 1506 00002118 _QueuePrev: 1507 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 1508 00002118 afbefffc sw -4(r29),r30; push fp 1509 0000211c 001df020 add r30,r0,r29; fp = sp 1510 00002120 afbffff8 sw -8(r29),r31; push ret addr 1511 00002124 2fbd0008 subui r29,r29,#8; alloc local storage 1512 00002128 8fc10000 lw r1,(r30) 1513 0000212c 8c210004 lw r1,4(r1) 1514 00002130 8fdffff8 lw r31,-8(r30) 1515 00002134 001ee820 add r29,r0,r30 1516 00002138 8fdefffc lw r30,-4(r30) 1517 0000213c 4be00000 jr r31 1518 00002140 54000000 nop 1519 00002144 .endproc _QueuePrev 1520 00002144 .align 2 1521 00002144 .proc _QueueFirst 1522 00002144 .global _QueueFirst 1523 00002144 _QueueFirst: 1524 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 1525 00002144 afbefffc sw -4(r29),r30; push fp 1526 00002148 001df020 add r30,r0,r29; fp = sp 1527 0000214c afbffff8 sw -8(r29),r31; push ret addr 1528 00002150 2fbd0008 subui r29,r29,#8; alloc local storage 1529 00002154 8fc10000 lw r1,(r30) 1530 00002158 8c210000 lw r1,(r1) 1531 0000215c 8fdffff8 lw r31,-8(r30) 1532 00002160 001ee820 add r29,r0,r30 1533 00002164 8fdefffc lw r30,-4(r30) 1534 00002168 4be00000 jr r31 1535 0000216c 54000000 nop 1536 00002170 .endproc _QueueFirst 1537 00002170 .align 2 1538 00002170 .proc _QueueLast 1539 00002170 .global _QueueLast 1540 00002170 _QueueLast: 1541 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 1542 00002170 afbefffc sw -4(r29),r30; push fp 1543 00002174 001df020 add r30,r0,r29; fp = sp 1544 00002178 afbffff8 sw -8(r29),r31; push ret addr 1545 0000217c 2fbd0008 subui r29,r29,#8; alloc local storage 1546 00002180 8fc10000 lw r1,(r30) 1547 00002184 8c210004 lw r1,4(r1) 1548 00002188 8fdffff8 lw r31,-8(r30) 1549 0000218c 001ee820 add r29,r0,r30 1550 00002190 8fdefffc lw r30,-4(r30) 1551 00002194 4be00000 jr r31 1552 00002198 54000000 nop 1553 0000219c .endproc _QueueLast 1554 0000219c .align 2 1555 0000219c .proc _QueueInsertAfter 1556 0000219c .global _QueueInsertAfter 1557 0000219c _QueueInsertAfter: 1558 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 1559 0000219c afbefffc sw -4(r29),r30; push fp 1560 000021a0 001df020 add r30,r0,r29; fp = sp 1561 000021a4 afbffff8 sw -8(r29),r31; push ret addr 1562 000021a8 2fbd0010 subui r29,r29,#16; alloc local storage 1563 000021ac afa20000 sw 0(r29),r2 1564 000021b0 afa30004 sw 4(r29),r3 1565 000021b4 8fc30000 lw r3,(r30) 1566 000021b8 8fc20004 lw r2,4(r30) 1567 000021bc 8fc10008 lw r1,8(r30) 1568 000021c0 ac230008 sw 8(r1),r3 1569 000021c4 ac220004 sw 4(r1),r2 1570 000021c8 8c5f0000 lw r31,(r2) 1571 000021cc ac3f0000 sw (r1),r31 1572 000021d0 ac410000 sw (r2),r1 1573 000021d4 8c220000 lw r2,(r1) 1574 000021d8 ac410004 sw 4(r2),r1 1575 000021dc 8c610008 lw r1,8(r3) 1576 000021e0 20210001 addi r1,r1,#1 1577 000021e4 ac610008 sw 8(r3),r1 1578 000021e8 8fa20000 lw r2,0(r29) 1579 000021ec 8fa30004 lw r3,4(r29) 1580 000021f0 8fdffff8 lw r31,-8(r30) 1581 000021f4 001ee820 add r29,r0,r30 1582 000021f8 8fdefffc lw r30,-4(r30) 1583 000021fc 4be00000 jr r31 1584 00002200 54000000 nop 1585 00002204 .endproc _QueueInsertAfter 1586 00002204 .align 2 1587 00002204 .proc _QueueInsertFirst 1588 00002204 .global _QueueInsertFirst 1589 00002204 _QueueInsertFirst: 1590 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 1591 00002204 afbefffc sw -4(r29),r30; push fp 1592 00002208 001df020 add r30,r0,r29; fp = sp 1593 0000220c afbffff8 sw -8(r29),r31; push ret addr 1594 00002210 2fbd0010 subui r29,r29,#16; alloc local storage 1595 00002214 afa20000 sw 0(r29),r2 1596 00002218 afa30004 sw 4(r29),r3 1597 0000221c 8fc30000 lw r3,(r30) 1598 00002220 8fc10004 lw r1,4(r30) 1599 00002224 ac230008 sw 8(r1),r3 1600 00002228 ac230004 sw 4(r1),r3 1601 0000222c 8c7f0000 lw r31,(r3) 1602 00002230 ac3f0000 sw (r1),r31 1603 00002234 ac610000 sw (r3),r1 1604 00002238 8c220000 lw r2,(r1) 1605 0000223c ac410004 sw 4(r2),r1 1606 00002240 8c610008 lw r1,8(r3) 1607 00002244 20210001 addi r1,r1,#1 1608 00002248 ac610008 sw 8(r3),r1 1609 0000224c 8fa20000 lw r2,0(r29) 1610 00002250 8fa30004 lw r3,4(r29) 1611 00002254 8fdffff8 lw r31,-8(r30) 1612 00002258 001ee820 add r29,r0,r30 1613 0000225c 8fdefffc lw r30,-4(r30) 1614 00002260 4be00000 jr r31 1615 00002264 54000000 nop 1616 00002268 .endproc _QueueInsertFirst 1617 00002268 .align 2 1618 00002268 .proc _QueueInsertLast 1619 00002268 .global _QueueInsertLast 1620 00002268 _QueueInsertLast: 1621 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 1622 00002268 afbefffc sw -4(r29),r30; push fp 1623 0000226c 001df020 add r30,r0,r29; fp = sp 1624 00002270 afbffff8 sw -8(r29),r31; push ret addr 1625 00002274 2fbd0010 subui r29,r29,#16; alloc local storage 1626 00002278 afa20000 sw 0(r29),r2 1627 0000227c afa30004 sw 4(r29),r3 1628 00002280 8fc30000 lw r3,(r30) 1629 00002284 8fc10004 lw r1,4(r30) 1630 00002288 8c620004 lw r2,4(r3) 1631 0000228c ac230008 sw 8(r1),r3 1632 00002290 ac220004 sw 4(r1),r2 1633 00002294 8c5f0000 lw r31,(r2) 1634 00002298 ac3f0000 sw (r1),r31 1635 0000229c ac410000 sw (r2),r1 1636 000022a0 8c220000 lw r2,(r1) 1637 000022a4 ac410004 sw 4(r2),r1 1638 000022a8 8c610008 lw r1,8(r3) 1639 000022ac 20210001 addi r1,r1,#1 1640 000022b0 ac610008 sw 8(r3),r1 1641 000022b4 8fa20000 lw r2,0(r29) 1642 000022b8 8fa30004 lw r3,4(r29) 1643 000022bc 8fdffff8 lw r31,-8(r30) 1644 000022c0 001ee820 add r29,r0,r30 1645 000022c4 8fdefffc lw r30,-4(r30) 1646 000022c8 4be00000 jr r31 1647 000022cc 54000000 nop 1648 000022d0 .endproc _QueueInsertLast 1649 000022d0 .align 2 1650 000022d0 .proc _QueueRemove 1651 000022d0 .global _QueueRemove 1652 000022d0 _QueueRemove: 1653 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 1654 000022d0 afbefffc sw -4(r29),r30; push fp 1655 000022d4 001df020 add r30,r0,r29; fp = sp 1656 000022d8 afbffff8 sw -8(r29),r31; push ret addr 1657 000022dc 2fbd0010 subui r29,r29,#16; alloc local storage 1658 000022e0 afa20000 sw 0(r29),r2 1659 000022e4 afa30004 sw 4(r29),r3 1660 000022e8 8fdf0000 lw r31,(r30) 1661 000022ec 8fe10008 lw r1,8(r31) 1662 000022f0 8c210008 lw r1,8(r1) 1663 000022f4 6c210000 sgti r1,r1,#0 1664 000022f8 1020002c beqz r1,L44_LF3 1665 000022fc 54000000 nop; not filled. 1666 00002300 8fe10004 lw r1,4(r31) 1667 00002304 8fe30000 lw r3,(r31) 1668 00002308 ac230000 sw (r1),r3 1669 0000230c 8fe10000 lw r1,(r31) 1670 00002310 8fe30004 lw r3,4(r31) 1671 00002314 ac230004 sw 4(r1),r3 1672 00002318 8fe20008 lw r2,8(r31) 1673 0000231c 8c410008 lw r1,8(r2) 1674 00002320 2021ffff addi r1,r1,#-1 1675 00002324 ac410008 sw 8(r2),r1 1676 00002328 L44_LF3: 1677 00002328 20030000 addi r3,r0,#0 1678 0000232c afe30000 sw (r31),r3 1679 00002330 8fa20000 lw r2,0(r29) 1680 00002334 8fa30004 lw r3,4(r29) 1681 00002338 8fdffff8 lw r31,-8(r30) 1682 0000233c 001ee820 add r29,r0,r30 1683 00002340 8fdefffc lw r30,-4(r30) 1684 00002344 4be00000 jr r31 1685 00002348 54000000 nop 1686 0000234c .endproc _QueueRemove 1687 0000234c .align 2 1688 0000234c .proc _QueueLength 1689 0000234c .global _QueueLength 1690 0000234c _QueueLength: 1691 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 1692 0000234c afbefffc sw -4(r29),r30; push fp 1693 00002350 001df020 add r30,r0,r29; fp = sp 1694 00002354 afbffff8 sw -8(r29),r31; push ret addr 1695 00002358 2fbd0008 subui r29,r29,#8; alloc local storage 1696 0000235c 8fc10000 lw r1,(r30) 1697 00002360 8c210008 lw r1,8(r1) 1698 00002364 8fdffff8 lw r31,-8(r30) 1699 00002368 001ee820 add r29,r0,r30 1700 0000236c 8fdefffc lw r30,-4(r30) 1701 00002370 4be00000 jr r31 1702 00002374 54000000 nop 1703 00002378 .endproc _QueueLength 1704 00002378 .align 2 1705 00002378 .proc _QueueEmpty 1706 00002378 .global _QueueEmpty 1707 00002378 _QueueEmpty: 1708 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 1709 00002378 afbefffc sw -4(r29),r30; push fp 1710 0000237c 001df020 add r30,r0,r29; fp = sp 1711 00002380 afbffff8 sw -8(r29),r31; push ret addr 1712 00002384 2fbd0008 subui r29,r29,#8; alloc local storage 1713 00002388 8fc10000 lw r1,(r30) 1714 0000238c 8c210008 lw r1,8(r1) 1715 00002390 60210000 seqi r1,r1,#0 1716 00002394 8fdffff8 lw r31,-8(r30) 1717 00002398 001ee820 add r29,r0,r30 1718 0000239c 8fdefffc lw r30,-4(r30) 1719 000023a0 4be00000 jr r31 1720 000023a4 54000000 nop 1721 000023a8 .endproc _QueueEmpty 1722 000023a8 .data 1723 0000e194 .align 2 1724 0000e194 LC0_LF3: 1725 0000e194 456e7465 .ascii "Entering SynchModuleInit\n\000" 1725 0000e198 72696e67 1725 0000e19c 2053796e 1725 0000e1a0 63684d6f 1725 0000e1a4 64756c65 1725 0000e1a8 496e6974 1725 0000e1ac 0a00 1726 0000e1ae .align 2 1727 0000e1b0 LC1_LF3: 1728 0000e1b0 4c656176 .ascii "Leaving SynchModuleInit\n\000" 1728 0000e1b4 696e6720 1728 0000e1b8 53796e63 1728 0000e1bc 684d6f64 1728 0000e1c0 756c6549 1728 0000e1c4 6e69740a 1728 0000e1c8 00 1729 0000e1c9 .text 1730 000023a8 .align 2 1731 000023a8 .proc _SynchModuleInit 1732 000023a8 .global _SynchModuleInit 1733 000023a8 _SynchModuleInit: 1734 ; Function 'SynchModuleInit'; 0 bytes of locals, 2 regs to save. 1735 000023a8 afbefffc sw -4(r29),r30; push fp 1736 000023ac 001df020 add r30,r0,r29; fp = sp 1737 000023b0 afbffff8 sw -8(r29),r31; push ret addr 1738 000023b4 2fbd0010 subui r29,r29,#16; alloc local storage 1739 000023b8 afa20000 sw 0(r29),r2 1740 000023bc afa30004 sw 4(r29),r3 1741 000023c0 23bdfff8 addi r29,r29,#-8 1742 000023c4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 1743 000023c8 24424038 addui r2,r2,(_debugstr)&0xffff 1744 000023cc afa20000 sw (r29),r2 1745 000023d0 20030070 addi r3,r0,#112 1746 000023d4 afa30004 sw 4(r29),r3 1747 000023d8 0c0041b0 jal _dindex 1748 000023dc 54000000 nop; not filled. 1749 000023e0 23bd0008 addi r29,r29,#8 1750 000023e4 64210000 snei r1,r1,#0 1751 000023e8 1420002c bnez r1,L53_LF3 1752 000023ec 54000000 nop; not filled. 1753 000023f0 23bdfff8 addi r29,r29,#-8 1754 000023f4 afa20000 sw (r29),r2 1755 000023f8 2003002b addi r3,r0,#43 1756 000023fc afa30004 sw 4(r29),r3 1757 00002400 0c004188 jal _dindex 1758 00002404 54000000 nop; not filled. 1759 00002408 23bd0008 addi r29,r29,#8 1760 0000240c 64210000 snei r1,r1,#0 1761 00002410 10200020 beqz r1,L52_LF3 1762 00002414 54000000 nop; not filled. 1763 00002418 L53_LF3: 1764 00002418 23bdfff8 addi r29,r29,#-8 1765 0000241c 3c030000 lhi r3,((LC0_LF3)>>16)&0xffff 1766 00002420 2463e194 addui r3,r3,(LC0_LF3)&0xffff 1767 00002424 afa30000 sw (r29),r3 1768 00002428 0c00adf8 jal _printf 1769 0000242c 54000000 nop; not filled. 1770 00002430 23bd0008 addi r29,r29,#8 1771 00002434 L52_LF3: 1772 00002434 3c1f0000 lhi r31,((_sems_LF3)>>16)&0xffff 1773 00002438 27ffe278 addui r31,r31,(_sems_LF3)&0xffff 1774 0000243c 23e204ec addi r2,r31,#1260 1775 00002440 L57_LF3: 1776 00002440 20030000 addi r3,r0,#0 1777 00002444 afe30010 sw 16(r31),r3 1778 00002448 23ff0014 addi r31,r31,#20 1779 0000244c 03e2082c sle r1,r31,r2 1780 00002450 1420ffec bnez r1,L57_LF3 1781 00002454 54000000 nop; not filled. 1782 00002458 3c1f0000 lhi r31,((_locks_LF3)>>16)&0xffff 1783 0000245c 27ffe778 addui r31,r31,(_locks_LF3)&0xffff 1784 00002460 23e206e4 addi r2,r31,#1764 1785 00002464 L62_LF3: 1786 00002464 20030000 addi r3,r0,#0 1787 00002468 afe30018 sw 24(r31),r3 1788 0000246c 2003ffff addi r3,r0,#-1 1789 00002470 afe30014 sw 20(r31),r3 1790 00002474 23ff001c addi r31,r31,#28 1791 00002478 03e2082c sle r1,r31,r2 1792 0000247c 1420ffe4 bnez r1,L62_LF3 1793 00002480 54000000 nop; not filled. 1794 00002484 20020000 addi r2,r0,#0 1795 00002488 3c1f0000 lhi r31,((_conds_LF3)>>16)&0xffff 1796 0000248c 27ffee78 addui r31,r31,(_conds_LF3)&0xffff 1797 00002490 L67_LF3: 1798 00002490 20030000 addi r3,r0,#0 1799 00002494 afe3001c sw 28(r31),r3 1800 00002498 afe30018 sw 24(r31),r3 1801 0000249c 23ff0020 addi r31,r31,#32 1802 000024a0 20420001 addi r2,r2,#1 1803 000024a4 7041001f slei r1,r2,#31 1804 000024a8 1420ffe4 bnez r1,L67_LF3 1805 000024ac 54000000 nop; not filled. 1806 000024b0 23bdfff8 addi r29,r29,#-8 1807 000024b4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 1808 000024b8 24424038 addui r2,r2,(_debugstr)&0xffff 1809 000024bc afa20000 sw (r29),r2 1810 000024c0 20030070 addi r3,r0,#112 1811 000024c4 afa30004 sw 4(r29),r3 1812 000024c8 0c0040c0 jal _dindex 1813 000024cc 54000000 nop; not filled. 1814 000024d0 23bd0008 addi r29,r29,#8 1815 000024d4 64210000 snei r1,r1,#0 1816 000024d8 1420002c bnez r1,L70_LF3 1817 000024dc 54000000 nop; not filled. 1818 000024e0 23bdfff8 addi r29,r29,#-8 1819 000024e4 afa20000 sw (r29),r2 1820 000024e8 2003002b addi r3,r0,#43 1821 000024ec afa30004 sw 4(r29),r3 1822 000024f0 0c004098 jal _dindex 1823 000024f4 54000000 nop; not filled. 1824 000024f8 23bd0008 addi r29,r29,#8 1825 000024fc 64210000 snei r1,r1,#0 1826 00002500 10200020 beqz r1,L69_LF3 1827 00002504 54000000 nop; not filled. 1828 00002508 L70_LF3: 1829 00002508 23bdfff8 addi r29,r29,#-8 1830 0000250c 3c030000 lhi r3,((LC1_LF3)>>16)&0xffff 1831 00002510 2463e1b0 addui r3,r3,(LC1_LF3)&0xffff 1832 00002514 afa30000 sw (r29),r3 1833 00002518 0c00ad08 jal _printf 1834 0000251c 54000000 nop; not filled. 1835 00002520 23bd0008 addi r29,r29,#8 1836 00002524 L69_LF3: 1837 00002524 8fa20000 lw r2,0(r29) 1838 00002528 8fa30004 lw r3,4(r29) 1839 0000252c 8fdffff8 lw r31,-8(r30) 1840 00002530 001ee820 add r29,r0,r30 1841 00002534 8fdefffc lw r30,-4(r30) 1842 00002538 4be00000 jr r31 1843 0000253c 54000000 nop 1844 00002540 .endproc _SynchModuleInit 1845 00002540 .align 2 1846 00002540 .proc _SemInit 1847 00002540 .global _SemInit 1848 00002540 _SemInit: 1849 ; Function 'SemInit'; 0 bytes of locals, 2 regs to save. 1850 00002540 afbefffc sw -4(r29),r30; push fp 1851 00002544 001df020 add r30,r0,r29; fp = sp 1852 00002548 afbffff8 sw -8(r29),r31; push ret addr 1853 0000254c 2fbd0010 subui r29,r29,#16; alloc local storage 1854 00002550 afa20000 sw 0(r29),r2 1855 00002554 afa30004 sw 4(r29),r3 1856 00002558 8fc20000 lw r2,(r30) 1857 0000255c 8fc30004 lw r3,4(r30) 1858 00002560 23bdfff8 addi r29,r29,#-8 1859 00002564 afa20000 sw (r29),r2 1860 00002568 0c008390 jal _QueueInit 1861 0000256c 54000000 nop; not filled. 1862 00002570 ac43000c sw 12(r2),r3 1863 00002574 23bd0008 addi r29,r29,#8 1864 00002578 8fa20000 lw r2,0(r29) 1865 0000257c 8fa30004 lw r3,4(r29) 1866 00002580 8fdffff8 lw r31,-8(r30) 1867 00002584 001ee820 add r29,r0,r30 1868 00002588 8fdefffc lw r30,-4(r30) 1869 0000258c 4be00000 jr r31 1870 00002590 54000000 nop 1871 00002594 .endproc _SemInit 1872 00002594 .align 2 1873 00002594 .proc _SemCreate 1874 00002594 .global _SemCreate 1875 00002594 _SemCreate: 1876 ; Function 'SemCreate'; 0 bytes of locals, 4 regs to save. 1877 00002594 afbefffc sw -4(r29),r30; push fp 1878 00002598 001df020 add r30,r0,r29; fp = sp 1879 0000259c afbffff8 sw -8(r29),r31; push ret addr 1880 000025a0 2fbd0018 subui r29,r29,#24; alloc local storage 1881 000025a4 afa20000 sw 0(r29),r2 1882 000025a8 afa30004 sw 4(r29),r3 1883 000025ac afa40008 sw 8(r29),r4 1884 000025b0 afa5000c sw 12(r29),r5 1885 000025b4 23bdfff8 addi r29,r29,#-8 1886 000025b8 2005000f addi r5,r0,#15 1887 000025bc afa50000 sw (r29),r5 1888 000025c0 0fffecc4 jal _SetIntrs 1889 000025c4 54000000 nop; not filled. 1890 000025c8 00012020 add r4,r0,r1 1891 000025cc 23bd0008 addi r29,r29,#8 1892 000025d0 20030000 addi r3,r0,#0 1893 000025d4 3c1f0000 lhi r31,((_sems_LF3)>>16)&0xffff 1894 000025d8 27ffe278 addui r31,r31,(_sems_LF3)&0xffff 1895 000025dc L89_LF3: 1896 000025dc 001f1020 add r2,r0,r31 1897 000025e0 8fe10010 lw r1,16(r31) 1898 000025e4 64210000 snei r1,r1,#0 1899 000025e8 10200078 beqz r1,L96_LF3 1900 000025ec 54000000 nop; not filled. 1901 000025f0 205f0014 addi r31,r2,#20 1902 000025f4 20630001 addi r3,r3,#1 1903 000025f8 7061003f slei r1,r3,#63 1904 000025fc 1420ffdc bnez r1,L89_LF3 1905 00002600 54000000 nop; not filled. 1906 00002604 L87_LF3: 1907 00002604 23bdfff8 addi r29,r29,#-8 1908 00002608 afa40000 sw (r29),r4 1909 0000260c 0fffec78 jal _SetIntrs 1910 00002610 54000000 nop; not filled. 1911 00002614 23bd0008 addi r29,r29,#8 1912 00002618 60610040 seqi r1,r3,#64 1913 0000261c 14200054 bnez r1,L93_LF3 1914 00002620 54000000 nop; not filled. 1915 00002624 50610002 slli r1,r3,#0x2 1916 00002628 00230820 add r1,r1,r3 1917 0000262c 50210002 slli r1,r1,#0x2 1918 00002630 3c050000 lhi r5,((_sems_LF3)>>16)&0xffff 1919 00002634 24a5e278 addui r5,r5,(_sems_LF3)&0xffff 1920 00002638 00251020 add r2,r1,r5 1921 0000263c 23bdfff8 addi r29,r29,#-8 1922 00002640 afa20000 sw (r29),r2 1923 00002644 0c0082b4 jal _QueueInit 1924 00002648 54000000 nop; not filled. 1925 0000264c 8fc50000 lw r5,(r30) 1926 00002650 ac45000c sw 12(r2),r5 1927 00002654 23bd0008 addi r29,r29,#8 1928 00002658 00030820 add r1,r0,r3 1929 0000265c 08000018 j L95_LF3 1930 00002660 54000000 nop; not filled. 1931 00002664 L96_LF3: 1932 00002664 20050001 addi r5,r0,#1 1933 00002668 afe50010 sw 16(r31),r5 1934 0000266c 0bffff94 j L87_LF3 1935 00002670 54000000 nop; not filled. 1936 00002674 L93_LF3: 1937 00002674 2001ffff addi r1,r0,#-1 1938 00002678 L95_LF3: 1939 00002678 8fa20000 lw r2,0(r29) 1940 0000267c 8fa30004 lw r3,4(r29) 1941 00002680 8fa40008 lw r4,8(r29) 1942 00002684 8fa5000c lw r5,12(r29) 1943 00002688 8fdffff8 lw r31,-8(r30) 1944 0000268c 001ee820 add r29,r0,r30 1945 00002690 8fdefffc lw r30,-4(r30) 1946 00002694 4be00000 jr r31 1947 00002698 54000000 nop 1948 0000269c .endproc _SemCreate 1949 0000269c .data 1950 0000e1c9 .align 2 1951 0000e1cc LC2_LF3: 1952 0000e1cc 4f6c6420 .ascii "Old interrupt value was 0x%x.\n\000" 1952 0000e1d0 696e7465 1952 0000e1d4 72727570 1952 0000e1d8 74207661 1952 0000e1dc 6c756520 1952 0000e1e0 77617320 1952 0000e1e4 30782578 1952 0000e1e8 2e0a00 1953 0000e1eb .align 2 1954 0000e1ec LC3_LF3: 1955 0000e1ec 50726f63 .ascii "Proc 0x%x waiting on sem 0x%x, count=%d.\n\000" 1955 0000e1f0 20307825 1955 0000e1f4 78207761 1955 0000e1f8 6974696e 1955 0000e1fc 67206f6e 1955 0000e200 2073656d 1955 0000e204 20307825 1955 0000e208 782c2063 1955 0000e20c 6f756e74 1955 0000e210 3d25642e 1955 0000e214 0a00 1956 0000e216 .align 2 1957 0000e218 LC4_LF3: 1958 0000e218 53757370 .ascii "Suspending current proc (0x%x).\n\000" 1958 0000e21c 656e6469 1958 0000e220 6e672063 1958 0000e224 75727265 1958 0000e228 6e742070 1958 0000e22c 726f6320 1958 0000e230 28307825 1958 0000e234 78292e0a 1958 0000e238 00 1959 0000e239 .text 1960 0000269c .align 2 1961 0000269c .proc _SemWait 1962 0000269c .global _SemWait 1963 0000269c _SemWait: 1964 ; Function 'SemWait'; 0 bytes of locals, 6 regs to save. 1965 0000269c afbefffc sw -4(r29),r30; push fp 1966 000026a0 001df020 add r30,r0,r29; fp = sp 1967 000026a4 afbffff8 sw -8(r29),r31; push ret addr 1968 000026a8 2fbd0020 subui r29,r29,#32; alloc local storage 1969 000026ac afa20000 sw 0(r29),r2 1970 000026b0 afa30004 sw 4(r29),r3 1971 000026b4 afa40008 sw 8(r29),r4 1972 000026b8 afa5000c sw 12(r29),r5 1973 000026bc afa60010 sw 16(r29),r6 1974 000026c0 afa70014 sw 20(r29),r7 1975 000026c4 8fc40000 lw r4,(r30) 1976 000026c8 23bdfff8 addi r29,r29,#-8 1977 000026cc 2007000f addi r7,r0,#15 1978 000026d0 afa70000 sw (r29),r7 1979 000026d4 0fffebb0 jal _SetIntrs 1980 000026d8 54000000 nop; not filled. 1981 000026dc 00013020 add r6,r0,r1 1982 000026e0 23bd0008 addi r29,r29,#8 1983 000026e4 23bdfff8 addi r29,r29,#-8 1984 000026e8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 1985 000026ec 24424038 addui r2,r2,(_debugstr)&0xffff 1986 000026f0 afa20000 sw (r29),r2 1987 000026f4 20070049 addi r7,r0,#73 1988 000026f8 afa70004 sw 4(r29),r7 1989 000026fc 0c003e8c jal _dindex 1990 00002700 54000000 nop; not filled. 1991 00002704 23bd0008 addi r29,r29,#8 1992 00002708 64210000 snei r1,r1,#0 1993 0000270c 1420002c bnez r1,L100_LF3 1994 00002710 54000000 nop; not filled. 1995 00002714 23bdfff8 addi r29,r29,#-8 1996 00002718 afa20000 sw (r29),r2 1997 0000271c 2007002b addi r7,r0,#43 1998 00002720 afa70004 sw 4(r29),r7 1999 00002724 0c003e64 jal _dindex 2000 00002728 54000000 nop; not filled. 2001 0000272c 23bd0008 addi r29,r29,#8 2002 00002730 64210000 snei r1,r1,#0 2003 00002734 10200024 beqz r1,L99_LF3 2004 00002738 54000000 nop; not filled. 2005 0000273c L100_LF3: 2006 0000273c 23bdfff8 addi r29,r29,#-8 2007 00002740 3c070000 lhi r7,((LC2_LF3)>>16)&0xffff 2008 00002744 24e7e1cc addui r7,r7,(LC2_LF3)&0xffff 2009 00002748 afa70000 sw (r29),r7 2010 0000274c afa60004 sw 4(r29),r6 2011 00002750 0c00aad0 jal _printf 2012 00002754 54000000 nop; not filled. 2013 00002758 23bd0008 addi r29,r29,#8 2014 0000275c L99_LF3: 2015 0000275c 23bdfff8 addi r29,r29,#-8 2016 00002760 3c020001 lhi r2,((_debugstr)>>16)&0xffff 2017 00002764 24424038 addui r2,r2,(_debugstr)&0xffff 2018 00002768 afa20000 sw (r29),r2 2019 0000276c 20070073 addi r7,r0,#115 2020 00002770 afa70004 sw 4(r29),r7 2021 00002774 0c003e14 jal _dindex 2022 00002778 54000000 nop; not filled. 2023 0000277c 23bd0008 addi r29,r29,#8 2024 00002780 64210000 snei r1,r1,#0 2025 00002784 1420002c bnez r1,L102_LF3 2026 00002788 54000000 nop; not filled. 2027 0000278c 23bdfff8 addi r29,r29,#-8 2028 00002790 afa20000 sw (r29),r2 2029 00002794 2007002b addi r7,r0,#43 2030 00002798 afa70004 sw 4(r29),r7 2031 0000279c 0c003dec jal _dindex 2032 000027a0 54000000 nop; not filled. 2033 000027a4 23bd0008 addi r29,r29,#8 2034 000027a8 64210000 snei r1,r1,#0 2035 000027ac 1020003c beqz r1,L101_LF3 2036 000027b0 54000000 nop; not filled. 2037 000027b4 L102_LF3: 2038 000027b4 23bdfff0 addi r29,r29,#-16 2039 000027b8 3c070000 lhi r7,((LC3_LF3)>>16)&0xffff 2040 000027bc 24e7e1ec addui r7,r7,(LC3_LF3)&0xffff 2041 000027c0 afa70000 sw (r29),r7 2042 000027c4 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 2043 000027c8 24214100 addui r1,r1,(_currentPCB)&0xffff 2044 000027cc 8c210000 lw r1,(r1) 2045 000027d0 afa10004 sw 4(r29),r1 2046 000027d4 afa40008 sw 8(r29),r4 2047 000027d8 8c87000c lw r7,12(r4) 2048 000027dc afa7000c sw 12(r29),r7 2049 000027e0 0c00aa40 jal _printf 2050 000027e4 54000000 nop; not filled. 2051 000027e8 23bd0010 addi r29,r29,#16 2052 000027ec L101_LF3: 2053 000027ec 8c81000c lw r1,12(r4) 2054 000027f0 2021ffff addi r1,r1,#-1 2055 000027f4 ac81000c sw 12(r4),r1 2056 000027f8 68210000 slti r1,r1,#0 2057 000027fc 102000d8 beqz r1,L103_LF3 2058 00002800 54000000 nop; not filled. 2059 00002804 0c0081e4 jal _QueueAllocLink 2060 00002808 54000000 nop; not filled. 2061 0000280c 00011020 add r2,r0,r1 2062 00002810 3c050001 lhi r5,((_currentPCB)>>16)&0xffff 2063 00002814 24a54100 addui r5,r5,(_currentPCB)&0xffff 2064 00002818 8ca10000 lw r1,(r5) 2065 0000281c 20070000 addi r7,r0,#0 2066 00002820 ac470000 sw (r2),r7 2067 00002824 ac41000c sw 12(r2),r1 2068 00002828 23bdfff8 addi r29,r29,#-8 2069 0000282c 3c030001 lhi r3,((_debugstr)>>16)&0xffff 2070 00002830 24634038 addui r3,r3,(_debugstr)&0xffff 2071 00002834 afa30000 sw (r29),r3 2072 00002838 20070073 addi r7,r0,#115 2073 0000283c afa70004 sw 4(r29),r7 2074 00002840 0c003d48 jal _dindex 2075 00002844 54000000 nop; not filled. 2076 00002848 23bd0008 addi r29,r29,#8 2077 0000284c 64210000 snei r1,r1,#0 2078 00002850 1420002c bnez r1,L106_LF3 2079 00002854 54000000 nop; not filled. 2080 00002858 23bdfff8 addi r29,r29,#-8 2081 0000285c afa30000 sw (r29),r3 2082 00002860 2007002b addi r7,r0,#43 2083 00002864 afa70004 sw 4(r29),r7 2084 00002868 0c003d20 jal _dindex 2085 0000286c 54000000 nop; not filled. 2086 00002870 23bd0008 addi r29,r29,#8 2087 00002874 64210000 snei r1,r1,#0 2088 00002878 10200028 beqz r1,L105_LF3 2089 0000287c 54000000 nop; not filled. 2090 00002880 L106_LF3: 2091 00002880 23bdfff8 addi r29,r29,#-8 2092 00002884 3c070000 lhi r7,((LC4_LF3)>>16)&0xffff 2093 00002888 24e7e218 addui r7,r7,(LC4_LF3)&0xffff 2094 0000288c afa70000 sw (r29),r7 2095 00002890 8ca10000 lw r1,(r5) 2096 00002894 afa10004 sw 4(r29),r1 2097 00002898 0c00a988 jal _printf 2098 0000289c 54000000 nop; not filled. 2099 000028a0 23bd0008 addi r29,r29,#8 2100 000028a4 L105_LF3: 2101 000028a4 8c810004 lw r1,4(r4) 2102 000028a8 ac440008 sw 8(r2),r4 2103 000028ac ac410004 sw 4(r2),r1 2104 000028b0 8c270000 lw r7,(r1) 2105 000028b4 ac470000 sw (r2),r7 2106 000028b8 ac220000 sw (r1),r2 2107 000028bc 8c410000 lw r1,(r2) 2108 000028c0 ac220004 sw 4(r1),r2 2109 000028c4 8c810008 lw r1,8(r4) 2110 000028c8 20210001 addi r1,r1,#1 2111 000028cc ac810008 sw 8(r4),r1 2112 000028d0 0fffea00 jal _ProcessSleep 2113 000028d4 54000000 nop; not filled. 2114 000028d8 L103_LF3: 2115 000028d8 23bdfff8 addi r29,r29,#-8 2116 000028dc afa60000 sw (r29),r6 2117 000028e0 0fffe9a4 jal _SetIntrs 2118 000028e4 54000000 nop; not filled. 2119 000028e8 23bd0008 addi r29,r29,#8 2120 000028ec 8fa20000 lw r2,0(r29) 2121 000028f0 8fa30004 lw r3,4(r29) 2122 000028f4 8fa40008 lw r4,8(r29) 2123 000028f8 8fa5000c lw r5,12(r29) 2124 000028fc 8fa60010 lw r6,16(r29) 2125 00002900 8fa70014 lw r7,20(r29) 2126 00002904 8fdffff8 lw r31,-8(r30) 2127 00002908 001ee820 add r29,r0,r30 2128 0000290c 8fdefffc lw r30,-4(r30) 2129 00002910 4be00000 jr r31 2130 00002914 54000000 nop 2131 00002918 .endproc _SemWait 2132 00002918 .align 2 2133 00002918 .proc _SemHandleWait 2134 00002918 .global _SemHandleWait 2135 00002918 _SemHandleWait: 2136 ; Function 'SemHandleWait'; 0 bytes of locals, 1 regs to save. 2137 00002918 afbefffc sw -4(r29),r30; push fp 2138 0000291c 001df020 add r30,r0,r29; fp = sp 2139 00002920 afbffff8 sw -8(r29),r31; push ret addr 2140 00002924 2fbd0010 subui r29,r29,#16; alloc local storage 2141 00002928 afa20000 sw 0(r29),r2 2142 0000292c 8fdf0000 lw r31,(r30) 2143 00002930 73e1003f sleui r1,r31,#63 2144 00002934 10200058 beqz r1,L116_LF3 2145 00002938 54000000 nop; not filled. 2146 0000293c 53e10002 slli r1,r31,#0x2 2147 00002940 003f0820 add r1,r1,r31 2148 00002944 50210002 slli r1,r1,#0x2 2149 00002948 3c020000 lhi r2,((_sems_LF3)>>16)&0xffff 2150 0000294c 2442e278 addui r2,r2,(_sems_LF3)&0xffff 2151 00002950 0022f820 add r31,r1,r2 2152 00002954 8fe10010 lw r1,16(r31) 2153 00002958 64210000 snei r1,r1,#0 2154 0000295c 10200024 beqz r1,L117_LF3 2155 00002960 54000000 nop; not filled. 2156 00002964 23bdfff8 addi r29,r29,#-8 2157 00002968 afbf0000 sw (r29),r31 2158 0000296c 0ffffd2c jal _SemWait 2159 00002970 54000000 nop; not filled. 2160 00002974 20010000 addi r1,r0,#0 2161 00002978 23bd0008 addi r29,r29,#8 2162 0000297c 08000014 j L115_LF3 2163 00002980 54000000 nop; not filled. 2164 00002984 L117_LF3: 2165 00002984 20010001 addi r1,r0,#1 2166 00002988 08000008 j L115_LF3 2167 0000298c 54000000 nop; not filled. 2168 00002990 L116_LF3: 2169 00002990 20010001 addi r1,r0,#1 2170 00002994 L115_LF3: 2171 00002994 8fa20000 lw r2,0(r29) 2172 00002998 8fdffff8 lw r31,-8(r30) 2173 0000299c 001ee820 add r29,r0,r30 2174 000029a0 8fdefffc lw r30,-4(r30) 2175 000029a4 4be00000 jr r31 2176 000029a8 54000000 nop 2177 000029ac .endproc _SemHandleWait 2178 000029ac .data 2179 0000e239 .align 2 2180 0000e23c LC5_LF3: 2181 0000e23c 5369676e .ascii "Signalling on sem 0x%x, count=%d.\n\000" 2181 0000e240 616c6c69 2181 0000e244 6e67206f 2181 0000e248 6e207365 2181 0000e24c 6d203078 2181 0000e250 25782c20 2181 0000e254 636f756e 2181 0000e258 743d2564 2181 0000e25c 2e0a00 2182 0000e25f .align 2 2183 0000e260 LC6_LF3: 2184 0000e260 57616b69 .ascii "Waking up PCB 0x%x.\n\000" 2184 0000e264 6e672075 2184 0000e268 70205043 2184 0000e26c 42203078 2184 0000e270 25782e0a 2184 0000e274 00 2185 0000e275 .text 2186 000029ac .align 2 2187 000029ac .proc _SemSignal 2188 000029ac .global _SemSignal 2189 000029ac _SemSignal: 2190 ; Function 'SemSignal'; 0 bytes of locals, 4 regs to save. 2191 000029ac afbefffc sw -4(r29),r30; push fp 2192 000029b0 001df020 add r30,r0,r29; fp = sp 2193 000029b4 afbffff8 sw -8(r29),r31; push ret addr 2194 000029b8 2fbd0018 subui r29,r29,#24; alloc local storage 2195 000029bc afa20000 sw 0(r29),r2 2196 000029c0 afa30004 sw 4(r29),r3 2197 000029c4 afa40008 sw 8(r29),r4 2198 000029c8 afa5000c sw 12(r29),r5 2199 000029cc 8fc20000 lw r2,(r30) 2200 000029d0 23bdfff8 addi r29,r29,#-8 2201 000029d4 2005000f addi r5,r0,#15 2202 000029d8 afa50000 sw (r29),r5 2203 000029dc 0fffe8a8 jal _SetIntrs 2204 000029e0 54000000 nop; not filled. 2205 000029e4 00012020 add r4,r0,r1 2206 000029e8 23bd0008 addi r29,r29,#8 2207 000029ec 23bdfff8 addi r29,r29,#-8 2208 000029f0 3c030001 lhi r3,((_debugstr)>>16)&0xffff 2209 000029f4 24634038 addui r3,r3,(_debugstr)&0xffff 2210 000029f8 afa30000 sw (r29),r3 2211 000029fc 20050073 addi r5,r0,#115 2212 00002a00 afa50004 sw 4(r29),r5 2213 00002a04 0c003b84 jal _dindex 2214 00002a08 54000000 nop; not filled. 2215 00002a0c 23bd0008 addi r29,r29,#8 2216 00002a10 64210000 snei r1,r1,#0 2217 00002a14 1420002c bnez r1,L123_LF3 2218 00002a18 54000000 nop; not filled. 2219 00002a1c 23bdfff8 addi r29,r29,#-8 2220 00002a20 afa30000 sw (r29),r3 2221 00002a24 2005002b addi r5,r0,#43 2222 00002a28 afa50004 sw 4(r29),r5 2223 00002a2c 0c003b5c jal _dindex 2224 00002a30 54000000 nop; not filled. 2225 00002a34 23bd0008 addi r29,r29,#8 2226 00002a38 64210000 snei r1,r1,#0 2227 00002a3c 1020002c beqz r1,L122_LF3 2228 00002a40 54000000 nop; not filled. 2229 00002a44 L123_LF3: 2230 00002a44 23bdfff0 addi r29,r29,#-16 2231 00002a48 3c050000 lhi r5,((LC5_LF3)>>16)&0xffff 2232 00002a4c 24a5e23c addui r5,r5,(LC5_LF3)&0xffff 2233 00002a50 afa50000 sw (r29),r5 2234 00002a54 afa20004 sw 4(r29),r2 2235 00002a58 8c45000c lw r5,12(r2) 2236 00002a5c afa50008 sw 8(r29),r5 2237 00002a60 0c00a7c0 jal _printf 2238 00002a64 54000000 nop; not filled. 2239 00002a68 23bd0010 addi r29,r29,#16 2240 00002a6c L122_LF3: 2241 00002a6c 8c41000c lw r1,12(r2) 2242 00002a70 20210001 addi r1,r1,#1 2243 00002a74 ac41000c sw 12(r2),r1 2244 00002a78 70210000 slei r1,r1,#0 2245 00002a7c 102000ec beqz r1,L124_LF3 2246 00002a80 54000000 nop; not filled. 2247 00002a84 8c430000 lw r3,(r2) 2248 00002a88 8c610008 lw r1,8(r3) 2249 00002a8c 8c210008 lw r1,8(r1) 2250 00002a90 6c210000 sgti r1,r1,#0 2251 00002a94 1020002c beqz r1,L127_LF3 2252 00002a98 54000000 nop; not filled. 2253 00002a9c 8c610004 lw r1,4(r3) 2254 00002aa0 8c650000 lw r5,(r3) 2255 00002aa4 ac250000 sw (r1),r5 2256 00002aa8 8c610000 lw r1,(r3) 2257 00002aac 8c650004 lw r5,4(r3) 2258 00002ab0 ac250004 sw 4(r1),r5 2259 00002ab4 8c620008 lw r2,8(r3) 2260 00002ab8 8c410008 lw r1,8(r2) 2261 00002abc 2021ffff addi r1,r1,#-1 2262 00002ac0 ac410008 sw 8(r2),r1 2263 00002ac4 L127_LF3: 2264 00002ac4 20050000 addi r5,r0,#0 2265 00002ac8 ac650000 sw (r3),r5 2266 00002acc 23bdfff8 addi r29,r29,#-8 2267 00002ad0 3c020001 lhi r2,((_debugstr)>>16)&0xffff 2268 00002ad4 24424038 addui r2,r2,(_debugstr)&0xffff 2269 00002ad8 afa20000 sw (r29),r2 2270 00002adc 20050073 addi r5,r0,#115 2271 00002ae0 afa50004 sw 4(r29),r5 2272 00002ae4 0c003aa4 jal _dindex 2273 00002ae8 54000000 nop; not filled. 2274 00002aec 23bd0008 addi r29,r29,#8 2275 00002af0 64210000 snei r1,r1,#0 2276 00002af4 1420002c bnez r1,L129_LF3 2277 00002af8 54000000 nop; not filled. 2278 00002afc 23bdfff8 addi r29,r29,#-8 2279 00002b00 afa20000 sw (r29),r2 2280 00002b04 2005002b addi r5,r0,#43 2281 00002b08 afa50004 sw 4(r29),r5 2282 00002b0c 0c003a7c jal _dindex 2283 00002b10 54000000 nop; not filled. 2284 00002b14 23bd0008 addi r29,r29,#8 2285 00002b18 64210000 snei r1,r1,#0 2286 00002b1c 10200028 beqz r1,L128_LF3 2287 00002b20 54000000 nop; not filled. 2288 00002b24 L129_LF3: 2289 00002b24 23bdfff8 addi r29,r29,#-8 2290 00002b28 3c050000 lhi r5,((LC6_LF3)>>16)&0xffff 2291 00002b2c 24a5e260 addui r5,r5,(LC6_LF3)&0xffff 2292 00002b30 afa50000 sw (r29),r5 2293 00002b34 8c61000c lw r1,12(r3) 2294 00002b38 afa10004 sw 4(r29),r1 2295 00002b3c 0c00a6e4 jal _printf 2296 00002b40 54000000 nop; not filled. 2297 00002b44 23bd0008 addi r29,r29,#8 2298 00002b48 L128_LF3: 2299 00002b48 23bdfff8 addi r29,r29,#-8 2300 00002b4c 8c65000c lw r5,12(r3) 2301 00002b50 afa50000 sw (r29),r5 2302 00002b54 0c004df0 jal _ProcessWakeup 2303 00002b58 54000000 nop; not filled. 2304 00002b5c afa30000 sw (r29),r3 2305 00002b60 0c007dd0 jal _QueueFreeLink 2306 00002b64 54000000 nop; not filled. 2307 00002b68 23bd0008 addi r29,r29,#8 2308 00002b6c L124_LF3: 2309 00002b6c 23bdfff8 addi r29,r29,#-8 2310 00002b70 afa40000 sw (r29),r4 2311 00002b74 0fffe710 jal _SetIntrs 2312 00002b78 54000000 nop; not filled. 2313 00002b7c 23bd0008 addi r29,r29,#8 2314 00002b80 8fa20000 lw r2,0(r29) 2315 00002b84 8fa30004 lw r3,4(r29) 2316 00002b88 8fa40008 lw r4,8(r29) 2317 00002b8c 8fa5000c lw r5,12(r29) 2318 00002b90 8fdffff8 lw r31,-8(r30) 2319 00002b94 001ee820 add r29,r0,r30 2320 00002b98 8fdefffc lw r30,-4(r30) 2321 00002b9c 4be00000 jr r31 2322 00002ba0 54000000 nop 2323 00002ba4 .endproc _SemSignal 2324 00002ba4 .align 2 2325 00002ba4 .proc _SemHandleSignal 2326 00002ba4 .global _SemHandleSignal 2327 00002ba4 _SemHandleSignal: 2328 ; Function 'SemHandleSignal'; 0 bytes of locals, 1 regs to save. 2329 00002ba4 afbefffc sw -4(r29),r30; push fp 2330 00002ba8 001df020 add r30,r0,r29; fp = sp 2331 00002bac afbffff8 sw -8(r29),r31; push ret addr 2332 00002bb0 2fbd0010 subui r29,r29,#16; alloc local storage 2333 00002bb4 afa20000 sw 0(r29),r2 2334 00002bb8 8fdf0000 lw r31,(r30) 2335 00002bbc 73e1003f sleui r1,r31,#63 2336 00002bc0 10200058 beqz r1,L136_LF3 2337 00002bc4 54000000 nop; not filled. 2338 00002bc8 53e10002 slli r1,r31,#0x2 2339 00002bcc 003f0820 add r1,r1,r31 2340 00002bd0 50210002 slli r1,r1,#0x2 2341 00002bd4 3c020000 lhi r2,((_sems_LF3)>>16)&0xffff 2342 00002bd8 2442e278 addui r2,r2,(_sems_LF3)&0xffff 2343 00002bdc 0022f820 add r31,r1,r2 2344 00002be0 8fe10010 lw r1,16(r31) 2345 00002be4 64210000 snei r1,r1,#0 2346 00002be8 10200024 beqz r1,L137_LF3 2347 00002bec 54000000 nop; not filled. 2348 00002bf0 23bdfff8 addi r29,r29,#-8 2349 00002bf4 afbf0000 sw (r29),r31 2350 00002bf8 0ffffdb0 jal _SemSignal 2351 00002bfc 54000000 nop; not filled. 2352 00002c00 20010000 addi r1,r0,#0 2353 00002c04 23bd0008 addi r29,r29,#8 2354 00002c08 08000014 j L135_LF3 2355 00002c0c 54000000 nop; not filled. 2356 00002c10 L137_LF3: 2357 00002c10 20010001 addi r1,r0,#1 2358 00002c14 08000008 j L135_LF3 2359 00002c18 54000000 nop; not filled. 2360 00002c1c L136_LF3: 2361 00002c1c 20010001 addi r1,r0,#1 2362 00002c20 L135_LF3: 2363 00002c20 8fa20000 lw r2,0(r29) 2364 00002c24 8fdffff8 lw r31,-8(r30) 2365 00002c28 001ee820 add r29,r0,r30 2366 00002c2c 8fdefffc lw r30,-4(r30) 2367 00002c30 4be00000 jr r31 2368 00002c34 54000000 nop 2369 00002c38 .endproc _SemHandleSignal 2370 00002c38 .align 2 2371 00002c38 .proc _LockInit 2372 00002c38 .global _LockInit 2373 00002c38 _LockInit: 2374 ; Function 'LockInit'; 0 bytes of locals, 3 regs to save. 2375 00002c38 afbefffc sw -4(r29),r30; push fp 2376 00002c3c 001df020 add r30,r0,r29; fp = sp 2377 00002c40 afbffff8 sw -8(r29),r31; push ret addr 2378 00002c44 2fbd0018 subui r29,r29,#24; alloc local storage 2379 00002c48 afa20000 sw 0(r29),r2 2380 00002c4c afa30004 sw 4(r29),r3 2381 00002c50 afa40008 sw 8(r29),r4 2382 00002c54 8fc20000 lw r2,(r30) 2383 00002c58 23bdfff8 addi r29,r29,#-8 2384 00002c5c 2004000f addi r4,r0,#15 2385 00002c60 afa40000 sw (r29),r4 2386 00002c64 0fffe620 jal _SetIntrs 2387 00002c68 54000000 nop; not filled. 2388 00002c6c 00011820 add r3,r0,r1 2389 00002c70 23bd0008 addi r29,r29,#8 2390 00002c74 23bdfff8 addi r29,r29,#-8 2391 00002c78 afa20000 sw (r29),r2 2392 00002c7c 0c007c7c jal _QueueInit 2393 00002c80 54000000 nop; not filled. 2394 00002c84 20040001 addi r4,r0,#1 2395 00002c88 ac44000c sw 12(r2),r4 2396 00002c8c 23bd0008 addi r29,r29,#8 2397 00002c90 2004ffff addi r4,r0,#-1 2398 00002c94 ac440014 sw 20(r2),r4 2399 00002c98 23bdfff8 addi r29,r29,#-8 2400 00002c9c afa30000 sw (r29),r3 2401 00002ca0 0fffe5e4 jal _SetIntrs 2402 00002ca4 54000000 nop; not filled. 2403 00002ca8 23bd0008 addi r29,r29,#8 2404 00002cac 8fa20000 lw r2,0(r29) 2405 00002cb0 8fa30004 lw r3,4(r29) 2406 00002cb4 8fa40008 lw r4,8(r29) 2407 00002cb8 8fdffff8 lw r31,-8(r30) 2408 00002cbc 001ee820 add r29,r0,r30 2409 00002cc0 8fdefffc lw r30,-4(r30) 2410 00002cc4 4be00000 jr r31 2411 00002cc8 54000000 nop 2412 00002ccc .endproc _LockInit 2413 00002ccc .align 2 2414 00002ccc .proc _LockCreate 2415 00002ccc .global _LockCreate 2416 00002ccc _LockCreate: 2417 ; Function 'LockCreate'; 0 bytes of locals, 4 regs to save. 2418 00002ccc afbefffc sw -4(r29),r30; push fp 2419 00002cd0 001df020 add r30,r0,r29; fp = sp 2420 00002cd4 afbffff8 sw -8(r29),r31; push ret addr 2421 00002cd8 2fbd0018 subui r29,r29,#24; alloc local storage 2422 00002cdc afa20000 sw 0(r29),r2 2423 00002ce0 afa30004 sw 4(r29),r3 2424 00002ce4 afa40008 sw 8(r29),r4 2425 00002ce8 afa5000c sw 12(r29),r5 2426 00002cec 23bdfff8 addi r29,r29,#-8 2427 00002cf0 2005000f addi r5,r0,#15 2428 00002cf4 afa50000 sw (r29),r5 2429 00002cf8 0fffe58c jal _SetIntrs 2430 00002cfc 54000000 nop; not filled. 2431 00002d00 0001f820 add r31,r0,r1 2432 00002d04 23bd0008 addi r29,r29,#8 2433 00002d08 20040000 addi r4,r0,#0 2434 00002d0c 3c030000 lhi r3,((_locks_LF3)>>16)&0xffff 2435 00002d10 2463e778 addui r3,r3,(_locks_LF3)&0xffff 2436 00002d14 L153_LF3: 2437 00002d14 00031020 add r2,r0,r3 2438 00002d18 8c610018 lw r1,24(r3) 2439 00002d1c 64210000 snei r1,r1,#0 2440 00002d20 102000b0 beqz r1,L163_LF3 2441 00002d24 54000000 nop; not filled. 2442 00002d28 2043001c addi r3,r2,#28 2443 00002d2c 20840001 addi r4,r4,#1 2444 00002d30 7081003f slei r1,r4,#63 2445 00002d34 1420ffdc bnez r1,L153_LF3 2446 00002d38 54000000 nop; not filled. 2447 00002d3c L151_LF3: 2448 00002d3c 23bdfff8 addi r29,r29,#-8 2449 00002d40 afbf0000 sw (r29),r31 2450 00002d44 0fffe540 jal _SetIntrs 2451 00002d48 54000000 nop; not filled. 2452 00002d4c 23bd0008 addi r29,r29,#8 2453 00002d50 60810040 seqi r1,r4,#64 2454 00002d54 1420008c bnez r1,L157_LF3 2455 00002d58 54000000 nop; not filled. 2456 00002d5c 50810003 slli r1,r4,#0x3 2457 00002d60 00240822 sub r1,r1,r4 2458 00002d64 50210002 slli r1,r1,#0x2 2459 00002d68 3c050000 lhi r5,((_locks_LF3)>>16)&0xffff 2460 00002d6c 24a5e778 addui r5,r5,(_locks_LF3)&0xffff 2461 00002d70 00251020 add r2,r1,r5 2462 00002d74 23bdfff8 addi r29,r29,#-8 2463 00002d78 2005000f addi r5,r0,#15 2464 00002d7c afa50000 sw (r29),r5 2465 00002d80 0fffe504 jal _SetIntrs 2466 00002d84 54000000 nop; not filled. 2467 00002d88 00011820 add r3,r0,r1 2468 00002d8c 23bd0008 addi r29,r29,#8 2469 00002d90 23bdfff8 addi r29,r29,#-8 2470 00002d94 afa20000 sw (r29),r2 2471 00002d98 0c007b60 jal _QueueInit 2472 00002d9c 54000000 nop; not filled. 2473 00002da0 20050001 addi r5,r0,#1 2474 00002da4 ac45000c sw 12(r2),r5 2475 00002da8 23bd0008 addi r29,r29,#8 2476 00002dac 2005ffff addi r5,r0,#-1 2477 00002db0 ac450014 sw 20(r2),r5 2478 00002db4 23bdfff8 addi r29,r29,#-8 2479 00002db8 afa30000 sw (r29),r3 2480 00002dbc 0fffe4c8 jal _SetIntrs 2481 00002dc0 54000000 nop; not filled. 2482 00002dc4 23bd0008 addi r29,r29,#8 2483 00002dc8 00040820 add r1,r0,r4 2484 00002dcc 08000018 j L162_LF3 2485 00002dd0 54000000 nop; not filled. 2486 00002dd4 L163_LF3: 2487 00002dd4 20050001 addi r5,r0,#1 2488 00002dd8 ac650018 sw 24(r3),r5 2489 00002ddc 0bffff5c j L151_LF3 2490 00002de0 54000000 nop; not filled. 2491 00002de4 L157_LF3: 2492 00002de4 2001ffff addi r1,r0,#-1 2493 00002de8 L162_LF3: 2494 00002de8 8fa20000 lw r2,0(r29) 2495 00002dec 8fa30004 lw r3,4(r29) 2496 00002df0 8fa40008 lw r4,8(r29) 2497 00002df4 8fa5000c lw r5,12(r29) 2498 00002df8 8fdffff8 lw r31,-8(r30) 2499 00002dfc 001ee820 add r29,r0,r30 2500 00002e00 8fdefffc lw r30,-4(r30) 2501 00002e04 4be00000 jr r31 2502 00002e08 54000000 nop 2503 00002e0c .endproc _LockCreate 2504 00002e0c .align 2 2505 00002e0c .proc _LockAcquire 2506 00002e0c .global _LockAcquire 2507 00002e0c _LockAcquire: 2508 ; Function 'LockAcquire'; 0 bytes of locals, 5 regs to save. 2509 00002e0c afbefffc sw -4(r29),r30; push fp 2510 00002e10 001df020 add r30,r0,r29; fp = sp 2511 00002e14 afbffff8 sw -8(r29),r31; push ret addr 2512 00002e18 2fbd0020 subui r29,r29,#32; alloc local storage 2513 00002e1c afa20000 sw 0(r29),r2 2514 00002e20 afa30004 sw 4(r29),r3 2515 00002e24 afa40008 sw 8(r29),r4 2516 00002e28 afa5000c sw 12(r29),r5 2517 00002e2c afa60010 sw 16(r29),r6 2518 00002e30 8fc30000 lw r3,(r30) 2519 00002e34 23bdfff8 addi r29,r29,#-8 2520 00002e38 2006000f addi r6,r0,#15 2521 00002e3c afa60000 sw (r29),r6 2522 00002e40 0fffe444 jal _SetIntrs 2523 00002e44 54000000 nop; not filled. 2524 00002e48 00012820 add r5,r0,r1 2525 00002e4c 23bd0008 addi r29,r29,#8 2526 00002e50 23bdfff8 addi r29,r29,#-8 2527 00002e54 3c040001 lhi r4,((_currentPCB)>>16)&0xffff 2528 00002e58 24844100 addui r4,r4,(_currentPCB)&0xffff 2529 00002e5c 8c860000 lw r6,(r4) 2530 00002e60 afa60000 sw (r29),r6 2531 00002e64 0c00734c jal _findpid 2532 00002e68 54000000 nop; not filled. 2533 00002e6c 8c620014 lw r2,20(r3) 2534 00002e70 23bd0008 addi r29,r29,#8 2535 00002e74 00410829 sne r1,r2,r1 2536 00002e78 1020002c beqz r1,L170_LF3 2537 00002e7c 54000000 nop; not filled. 2538 00002e80 23bdfff8 addi r29,r29,#-8 2539 00002e84 afa30000 sw (r29),r3 2540 00002e88 0ffff810 jal _SemWait 2541 00002e8c 54000000 nop; not filled. 2542 00002e90 8c840000 lw r4,(r4) 2543 00002e94 afa40000 sw (r29),r4 2544 00002e98 0c007318 jal _findpid 2545 00002e9c 54000000 nop; not filled. 2546 00002ea0 ac610014 sw 20(r3),r1 2547 00002ea4 23bd0008 addi r29,r29,#8 2548 00002ea8 L170_LF3: 2549 00002ea8 23bdfff8 addi r29,r29,#-8 2550 00002eac afa50000 sw (r29),r5 2551 00002eb0 0fffe3d4 jal _SetIntrs 2552 00002eb4 54000000 nop; not filled. 2553 00002eb8 23bd0008 addi r29,r29,#8 2554 00002ebc 8fa20000 lw r2,0(r29) 2555 00002ec0 8fa30004 lw r3,4(r29) 2556 00002ec4 8fa40008 lw r4,8(r29) 2557 00002ec8 8fa5000c lw r5,12(r29) 2558 00002ecc 8fa60010 lw r6,16(r29) 2559 00002ed0 8fdffff8 lw r31,-8(r30) 2560 00002ed4 001ee820 add r29,r0,r30 2561 00002ed8 8fdefffc lw r30,-4(r30) 2562 00002edc 4be00000 jr r31 2563 00002ee0 54000000 nop 2564 00002ee4 .endproc _LockAcquire 2565 00002ee4 .align 2 2566 00002ee4 .proc _LockHandleAcquire 2567 00002ee4 .global _LockHandleAcquire 2568 00002ee4 _LockHandleAcquire: 2569 ; Function 'LockHandleAcquire'; 0 bytes of locals, 5 regs to save. 2570 00002ee4 afbefffc sw -4(r29),r30; push fp 2571 00002ee8 001df020 add r30,r0,r29; fp = sp 2572 00002eec afbffff8 sw -8(r29),r31; push ret addr 2573 00002ef0 2fbd0020 subui r29,r29,#32; alloc local storage 2574 00002ef4 afa20000 sw 0(r29),r2 2575 00002ef8 afa30004 sw 4(r29),r3 2576 00002efc afa40008 sw 8(r29),r4 2577 00002f00 afa5000c sw 12(r29),r5 2578 00002f04 afa60010 sw 16(r29),r6 2579 00002f08 8fc20000 lw r2,(r30) 2580 00002f0c 7041003f sleui r1,r2,#63 2581 00002f10 102000c0 beqz r1,L181_LF3 2582 00002f14 54000000 nop; not filled. 2583 00002f18 50410003 slli r1,r2,#0x3 2584 00002f1c 00220822 sub r1,r1,r2 2585 00002f20 50210002 slli r1,r1,#0x2 2586 00002f24 3c060000 lhi r6,((_locks_LF3)>>16)&0xffff 2587 00002f28 24c6e778 addui r6,r6,(_locks_LF3)&0xffff 2588 00002f2c 00261820 add r3,r1,r6 2589 00002f30 8c610018 lw r1,24(r3) 2590 00002f34 64210000 snei r1,r1,#0 2591 00002f38 10200098 beqz r1,L181_LF3 2592 00002f3c 54000000 nop; not filled. 2593 00002f40 23bdfff8 addi r29,r29,#-8 2594 00002f44 2006000f addi r6,r0,#15 2595 00002f48 afa60000 sw (r29),r6 2596 00002f4c 0fffe338 jal _SetIntrs 2597 00002f50 54000000 nop; not filled. 2598 00002f54 00012820 add r5,r0,r1 2599 00002f58 23bd0008 addi r29,r29,#8 2600 00002f5c 23bdfff8 addi r29,r29,#-8 2601 00002f60 3c040001 lhi r4,((_currentPCB)>>16)&0xffff 2602 00002f64 24844100 addui r4,r4,(_currentPCB)&0xffff 2603 00002f68 8c860000 lw r6,(r4) 2604 00002f6c afa60000 sw (r29),r6 2605 00002f70 0c007240 jal _findpid 2606 00002f74 54000000 nop; not filled. 2607 00002f78 8c620014 lw r2,20(r3) 2608 00002f7c 23bd0008 addi r29,r29,#8 2609 00002f80 00410829 sne r1,r2,r1 2610 00002f84 1020002c beqz r1,L185_LF3 2611 00002f88 54000000 nop; not filled. 2612 00002f8c 23bdfff8 addi r29,r29,#-8 2613 00002f90 afa30000 sw (r29),r3 2614 00002f94 0ffff704 jal _SemWait 2615 00002f98 54000000 nop; not filled. 2616 00002f9c 8c840000 lw r4,(r4) 2617 00002fa0 afa40000 sw (r29),r4 2618 00002fa4 0c00720c jal _findpid 2619 00002fa8 54000000 nop; not filled. 2620 00002fac ac610014 sw 20(r3),r1 2621 00002fb0 23bd0008 addi r29,r29,#8 2622 00002fb4 L185_LF3: 2623 00002fb4 23bdfff8 addi r29,r29,#-8 2624 00002fb8 afa50000 sw (r29),r5 2625 00002fbc 0fffe2c8 jal _SetIntrs 2626 00002fc0 54000000 nop; not filled. 2627 00002fc4 23bd0008 addi r29,r29,#8 2628 00002fc8 20010000 addi r1,r0,#0 2629 00002fcc 08000008 j L188_LF3 2630 00002fd0 54000000 nop; not filled. 2631 00002fd4 L181_LF3: 2632 00002fd4 20010001 addi r1,r0,#1 2633 00002fd8 L188_LF3: 2634 00002fd8 8fa20000 lw r2,0(r29) 2635 00002fdc 8fa30004 lw r3,4(r29) 2636 00002fe0 8fa40008 lw r4,8(r29) 2637 00002fe4 8fa5000c lw r5,12(r29) 2638 00002fe8 8fa60010 lw r6,16(r29) 2639 00002fec 8fdffff8 lw r31,-8(r30) 2640 00002ff0 001ee820 add r29,r0,r30 2641 00002ff4 8fdefffc lw r30,-4(r30) 2642 00002ff8 4be00000 jr r31 2643 00002ffc 54000000 nop 2644 00003000 .endproc _LockHandleAcquire 2645 00003000 .align 2 2646 00003000 .proc _LockRelease 2647 00003000 .global _LockRelease 2648 00003000 _LockRelease: 2649 ; Function 'LockRelease'; 0 bytes of locals, 4 regs to save. 2650 00003000 afbefffc sw -4(r29),r30; push fp 2651 00003004 001df020 add r30,r0,r29; fp = sp 2652 00003008 afbffff8 sw -8(r29),r31; push ret addr 2653 0000300c 2fbd0018 subui r29,r29,#24; alloc local storage 2654 00003010 afa20000 sw 0(r29),r2 2655 00003014 afa30004 sw 4(r29),r3 2656 00003018 afa40008 sw 8(r29),r4 2657 0000301c afa5000c sw 12(r29),r5 2658 00003020 8fc30000 lw r3,(r30) 2659 00003024 23bdfff8 addi r29,r29,#-8 2660 00003028 2005000f addi r5,r0,#15 2661 0000302c afa50000 sw (r29),r5 2662 00003030 0fffe254 jal _SetIntrs 2663 00003034 54000000 nop; not filled. 2664 00003038 00012020 add r4,r0,r1 2665 0000303c 23bd0008 addi r29,r29,#8 2666 00003040 23bdfff8 addi r29,r29,#-8 2667 00003044 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 2668 00003048 24214100 addui r1,r1,(_currentPCB)&0xffff 2669 0000304c 8c210000 lw r1,(r1) 2670 00003050 afa10000 sw (r29),r1 2671 00003054 0c00715c jal _findpid 2672 00003058 54000000 nop; not filled. 2673 0000305c 8c620014 lw r2,20(r3) 2674 00003060 23bd0008 addi r29,r29,#8 2675 00003064 00410828 seq r1,r2,r1 2676 00003068 10200020 beqz r1,L195_LF3 2677 0000306c 54000000 nop; not filled. 2678 00003070 2005ffff addi r5,r0,#-1 2679 00003074 ac650014 sw 20(r3),r5 2680 00003078 23bdfff8 addi r29,r29,#-8 2681 0000307c afa30000 sw (r29),r3 2682 00003080 0ffff928 jal _SemSignal 2683 00003084 54000000 nop; not filled. 2684 00003088 23bd0008 addi r29,r29,#8 2685 0000308c L195_LF3: 2686 0000308c 23bdfff8 addi r29,r29,#-8 2687 00003090 afa40000 sw (r29),r4 2688 00003094 0fffe1f0 jal _SetIntrs 2689 00003098 54000000 nop; not filled. 2690 0000309c 23bd0008 addi r29,r29,#8 2691 000030a0 8fa20000 lw r2,0(r29) 2692 000030a4 8fa30004 lw r3,4(r29) 2693 000030a8 8fa40008 lw r4,8(r29) 2694 000030ac 8fa5000c lw r5,12(r29) 2695 000030b0 8fdffff8 lw r31,-8(r30) 2696 000030b4 001ee820 add r29,r0,r30 2697 000030b8 8fdefffc lw r30,-4(r30) 2698 000030bc 4be00000 jr r31 2699 000030c0 54000000 nop 2700 000030c4 .endproc _LockRelease 2701 000030c4 .align 2 2702 000030c4 .proc _LockHandleRelease 2703 000030c4 .global _LockHandleRelease 2704 000030c4 _LockHandleRelease: 2705 ; Function 'LockHandleRelease'; 0 bytes of locals, 4 regs to save. 2706 000030c4 afbefffc sw -4(r29),r30; push fp 2707 000030c8 001df020 add r30,r0,r29; fp = sp 2708 000030cc afbffff8 sw -8(r29),r31; push ret addr 2709 000030d0 2fbd0018 subui r29,r29,#24; alloc local storage 2710 000030d4 afa20000 sw 0(r29),r2 2711 000030d8 afa30004 sw 4(r29),r3 2712 000030dc afa40008 sw 8(r29),r4 2713 000030e0 afa5000c sw 12(r29),r5 2714 000030e4 8fc20000 lw r2,(r30) 2715 000030e8 7041003f sleui r1,r2,#63 2716 000030ec 102000b4 beqz r1,L206_LF3 2717 000030f0 54000000 nop; not filled. 2718 000030f4 50410003 slli r1,r2,#0x3 2719 000030f8 00220822 sub r1,r1,r2 2720 000030fc 50210002 slli r1,r1,#0x2 2721 00003100 3c050000 lhi r5,((_locks_LF3)>>16)&0xffff 2722 00003104 24a5e778 addui r5,r5,(_locks_LF3)&0xffff 2723 00003108 00251820 add r3,r1,r5 2724 0000310c 8c610018 lw r1,24(r3) 2725 00003110 64210000 snei r1,r1,#0 2726 00003114 1020008c beqz r1,L206_LF3 2727 00003118 54000000 nop; not filled. 2728 0000311c 23bdfff8 addi r29,r29,#-8 2729 00003120 2005000f addi r5,r0,#15 2730 00003124 afa50000 sw (r29),r5 2731 00003128 0fffe15c jal _SetIntrs 2732 0000312c 54000000 nop; not filled. 2733 00003130 00012020 add r4,r0,r1 2734 00003134 23bd0008 addi r29,r29,#8 2735 00003138 23bdfff8 addi r29,r29,#-8 2736 0000313c 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 2737 00003140 24214100 addui r1,r1,(_currentPCB)&0xffff 2738 00003144 8c210000 lw r1,(r1) 2739 00003148 afa10000 sw (r29),r1 2740 0000314c 0c007064 jal _findpid 2741 00003150 54000000 nop; not filled. 2742 00003154 8c620014 lw r2,20(r3) 2743 00003158 23bd0008 addi r29,r29,#8 2744 0000315c 00410828 seq r1,r2,r1 2745 00003160 10200020 beqz r1,L210_LF3 2746 00003164 54000000 nop; not filled. 2747 00003168 2005ffff addi r5,r0,#-1 2748 0000316c ac650014 sw 20(r3),r5 2749 00003170 23bdfff8 addi r29,r29,#-8 2750 00003174 afa30000 sw (r29),r3 2751 00003178 0ffff830 jal _SemSignal 2752 0000317c 54000000 nop; not filled. 2753 00003180 23bd0008 addi r29,r29,#8 2754 00003184 L210_LF3: 2755 00003184 23bdfff8 addi r29,r29,#-8 2756 00003188 afa40000 sw (r29),r4 2757 0000318c 0fffe0f8 jal _SetIntrs 2758 00003190 54000000 nop; not filled. 2759 00003194 23bd0008 addi r29,r29,#8 2760 00003198 20010000 addi r1,r0,#0 2761 0000319c 08000008 j L213_LF3 2762 000031a0 54000000 nop; not filled. 2763 000031a4 L206_LF3: 2764 000031a4 20010001 addi r1,r0,#1 2765 000031a8 L213_LF3: 2766 000031a8 8fa20000 lw r2,0(r29) 2767 000031ac 8fa30004 lw r3,4(r29) 2768 000031b0 8fa40008 lw r4,8(r29) 2769 000031b4 8fa5000c lw r5,12(r29) 2770 000031b8 8fdffff8 lw r31,-8(r30) 2771 000031bc 001ee820 add r29,r0,r30 2772 000031c0 8fdefffc lw r30,-4(r30) 2773 000031c4 4be00000 jr r31 2774 000031c8 54000000 nop 2775 000031cc .endproc _LockHandleRelease 2776 000031cc .align 2 2777 000031cc .proc _CondInit 2778 000031cc .global _CondInit 2779 000031cc _CondInit: 2780 ; Function 'CondInit'; 0 bytes of locals, 4 regs to save. 2781 000031cc afbefffc sw -4(r29),r30; push fp 2782 000031d0 001df020 add r30,r0,r29; fp = sp 2783 000031d4 afbffff8 sw -8(r29),r31; push ret addr 2784 000031d8 2fbd0018 subui r29,r29,#24; alloc local storage 2785 000031dc afa20000 sw 0(r29),r2 2786 000031e0 afa30004 sw 4(r29),r3 2787 000031e4 afa40008 sw 8(r29),r4 2788 000031e8 afa5000c sw 12(r29),r5 2789 000031ec 8fc20000 lw r2,(r30) 2790 000031f0 8fc30004 lw r3,4(r30) 2791 000031f4 23bdfff8 addi r29,r29,#-8 2792 000031f8 2005000f addi r5,r0,#15 2793 000031fc afa50000 sw (r29),r5 2794 00003200 0fffe084 jal _SetIntrs 2795 00003204 54000000 nop; not filled. 2796 00003208 00012020 add r4,r0,r1 2797 0000320c 23bd0008 addi r29,r29,#8 2798 00003210 20410004 addi r1,r2,#4 2799 00003214 23bdfff8 addi r29,r29,#-8 2800 00003218 afa10000 sw (r29),r1 2801 0000321c 0c0076dc jal _QueueInit 2802 00003220 54000000 nop; not filled. 2803 00003224 20050000 addi r5,r0,#0 2804 00003228 ac450010 sw 16(r2),r5 2805 0000322c 23bd0008 addi r29,r29,#8 2806 00003230 ac430000 sw (r2),r3 2807 00003234 ac450018 sw 24(r2),r5 2808 00003238 20050001 addi r5,r0,#1 2809 0000323c ac45001c sw 28(r2),r5 2810 00003240 23bdfff8 addi r29,r29,#-8 2811 00003244 afa40000 sw (r29),r4 2812 00003248 0fffe03c jal _SetIntrs 2813 0000324c 54000000 nop; not filled. 2814 00003250 23bd0008 addi r29,r29,#8 2815 00003254 8fa20000 lw r2,0(r29) 2816 00003258 8fa30004 lw r3,4(r29) 2817 0000325c 8fa40008 lw r4,8(r29) 2818 00003260 8fa5000c lw r5,12(r29) 2819 00003264 8fdffff8 lw r31,-8(r30) 2820 00003268 001ee820 add r29,r0,r30 2821 0000326c 8fdefffc lw r30,-4(r30) 2822 00003270 4be00000 jr r31 2823 00003274 54000000 nop 2824 00003278 .endproc _CondInit 2825 00003278 .align 2 2826 00003278 .proc _CondCreate 2827 00003278 .global _CondCreate 2828 00003278 _CondCreate: 2829 ; Function 'CondCreate'; 0 bytes of locals, 5 regs to save. 2830 00003278 afbefffc sw -4(r29),r30; push fp 2831 0000327c 001df020 add r30,r0,r29; fp = sp 2832 00003280 afbffff8 sw -8(r29),r31; push ret addr 2833 00003284 2fbd0020 subui r29,r29,#32; alloc local storage 2834 00003288 afa20000 sw 0(r29),r2 2835 0000328c afa30004 sw 4(r29),r3 2836 00003290 afa40008 sw 8(r29),r4 2837 00003294 afa5000c sw 12(r29),r5 2838 00003298 afa60010 sw 16(r29),r6 2839 0000329c 8fc30000 lw r3,(r30) 2840 000032a0 6c610040 sgtui r1,r3,#64 2841 000032a4 14200144 bnez r1,L233_LF3 2842 000032a8 54000000 nop; not filled. 2843 000032ac 50610003 slli r1,r3,#0x3 2844 000032b0 00230822 sub r1,r1,r3 2845 000032b4 50210002 slli r1,r1,#0x2 2846 000032b8 3c060000 lhi r6,((_locks_LF3)>>16)&0xffff 2847 000032bc 24c6e778 addui r6,r6,(_locks_LF3)&0xffff 2848 000032c0 00260820 add r1,r1,r6 2849 000032c4 8c210018 lw r1,24(r1) 2850 000032c8 64210001 snei r1,r1,#1 2851 000032cc 1020001c beqz r1,L224_LF3 2852 000032d0 54000000 nop; not filled. 2853 000032d4 08000114 j L233_LF3 2854 000032d8 54000000 nop; not filled. 2855 000032dc L239_LF3: 2856 000032dc 20060001 addi r6,r0,#1 2857 000032e0 ac46001c sw 28(r2),r6 2858 000032e4 08000050 j L227_LF3 2859 000032e8 54000000 nop; not filled. 2860 000032ec L224_LF3: 2861 000032ec 23bdfff8 addi r29,r29,#-8 2862 000032f0 2006000f addi r6,r0,#15 2863 000032f4 afa60000 sw (r29),r6 2864 000032f8 0fffdf8c jal _SetIntrs 2865 000032fc 54000000 nop; not filled. 2866 00003300 00012020 add r4,r0,r1 2867 00003304 23bd0008 addi r29,r29,#8 2868 00003308 20050000 addi r5,r0,#0 2869 0000330c 3c020000 lhi r2,((_conds_LF3)>>16)&0xffff 2870 00003310 2442ee78 addui r2,r2,(_conds_LF3)&0xffff 2871 00003314 L229_LF3: 2872 00003314 8c41001c lw r1,28(r2) 2873 00003318 64210000 snei r1,r1,#0 2874 0000331c 1020ffbc beqz r1,L239_LF3 2875 00003320 54000000 nop; not filled. 2876 00003324 20420020 addi r2,r2,#32 2877 00003328 20a50001 addi r5,r5,#1 2878 0000332c 70a1001f slei r1,r5,#31 2879 00003330 1420ffe0 bnez r1,L229_LF3 2880 00003334 54000000 nop; not filled. 2881 00003338 L227_LF3: 2882 00003338 23bdfff8 addi r29,r29,#-8 2883 0000333c afa40000 sw (r29),r4 2884 00003340 0fffdf44 jal _SetIntrs 2885 00003344 54000000 nop; not filled. 2886 00003348 23bd0008 addi r29,r29,#8 2887 0000334c 60a10020 seqi r1,r5,#32 2888 00003350 14200098 bnez r1,L233_LF3 2889 00003354 54000000 nop; not filled. 2890 00003358 50a20005 slli r2,r5,#0x5 2891 0000335c 3c060000 lhi r6,((_conds_LF3)>>16)&0xffff 2892 00003360 24c6ee78 addui r6,r6,(_conds_LF3)&0xffff 2893 00003364 00461020 add r2,r2,r6 2894 00003368 50610003 slli r1,r3,#0x3 2895 0000336c 00230822 sub r1,r1,r3 2896 00003370 50210002 slli r1,r1,#0x2 2897 00003374 3c060000 lhi r6,((_locks_LF3)>>16)&0xffff 2898 00003378 24c6e778 addui r6,r6,(_locks_LF3)&0xffff 2899 0000337c 00261820 add r3,r1,r6 2900 00003380 23bdfff8 addi r29,r29,#-8 2901 00003384 2006000f addi r6,r0,#15 2902 00003388 afa60000 sw (r29),r6 2903 0000338c 0fffdef8 jal _SetIntrs 2904 00003390 54000000 nop; not filled. 2905 00003394 00012020 add r4,r0,r1 2906 00003398 23bd0008 addi r29,r29,#8 2907 0000339c 20410004 addi r1,r2,#4 2908 000033a0 23bdfff8 addi r29,r29,#-8 2909 000033a4 afa10000 sw (r29),r1 2910 000033a8 0c007550 jal _QueueInit 2911 000033ac 54000000 nop; not filled. 2912 000033b0 20060000 addi r6,r0,#0 2913 000033b4 ac460010 sw 16(r2),r6 2914 000033b8 23bd0008 addi r29,r29,#8 2915 000033bc ac430000 sw (r2),r3 2916 000033c0 ac460018 sw 24(r2),r6 2917 000033c4 20060001 addi r6,r0,#1 2918 000033c8 ac46001c sw 28(r2),r6 2919 000033cc 23bdfff8 addi r29,r29,#-8 2920 000033d0 afa40000 sw (r29),r4 2921 000033d4 0fffdeb0 jal _SetIntrs 2922 000033d8 54000000 nop; not filled. 2923 000033dc 23bd0008 addi r29,r29,#8 2924 000033e0 00050820 add r1,r0,r5 2925 000033e4 08000008 j L238_LF3 2926 000033e8 54000000 nop; not filled. 2927 000033ec L233_LF3: 2928 000033ec 2001ffff addi r1,r0,#-1 2929 000033f0 L238_LF3: 2930 000033f0 8fa20000 lw r2,0(r29) 2931 000033f4 8fa30004 lw r3,4(r29) 2932 000033f8 8fa40008 lw r4,8(r29) 2933 000033fc 8fa5000c lw r5,12(r29) 2934 00003400 8fa60010 lw r6,16(r29) 2935 00003404 8fdffff8 lw r31,-8(r30) 2936 00003408 001ee820 add r29,r0,r30 2937 0000340c 8fdefffc lw r30,-4(r30) 2938 00003410 4be00000 jr r31 2939 00003414 54000000 nop 2940 00003418 .endproc _CondCreate 2941 00003418 .align 2 2942 00003418 .proc _CondWait 2943 00003418 .global _CondWait 2944 00003418 _CondWait: 2945 ; Function 'CondWait'; 0 bytes of locals, 7 regs to save. 2946 00003418 afbefffc sw -4(r29),r30; push fp 2947 0000341c 001df020 add r30,r0,r29; fp = sp 2948 00003420 afbffff8 sw -8(r29),r31; push ret addr 2949 00003424 2fbd0028 subui r29,r29,#40; alloc local storage 2950 00003428 afa20000 sw 0(r29),r2 2951 0000342c afa30004 sw 4(r29),r3 2952 00003430 afa40008 sw 8(r29),r4 2953 00003434 afa5000c sw 12(r29),r5 2954 00003438 afa60010 sw 16(r29),r6 2955 0000343c afa70014 sw 20(r29),r7 2956 00003440 afa80018 sw 24(r29),r8 2957 00003444 8fc40000 lw r4,(r30) 2958 00003448 23bdfff8 addi r29,r29,#-8 2959 0000344c 2008000f addi r8,r0,#15 2960 00003450 afa80000 sw (r29),r8 2961 00003454 0fffde30 jal _SetIntrs 2962 00003458 54000000 nop; not filled. 2963 0000345c 00013820 add r7,r0,r1 2964 00003460 23bd0008 addi r29,r29,#8 2965 00003464 8c810018 lw r1,24(r4) 2966 00003468 20210001 addi r1,r1,#1 2967 0000346c ac810018 sw 24(r4),r1 2968 00003470 8c830000 lw r3,(r4) 2969 00003474 23bdfff8 addi r29,r29,#-8 2970 00003478 afa80000 sw (r29),r8 2971 0000347c 0fffde08 jal _SetIntrs 2972 00003480 54000000 nop; not filled. 2973 00003484 00012820 add r5,r0,r1 2974 00003488 23bd0008 addi r29,r29,#8 2975 0000348c 23bdfff8 addi r29,r29,#-8 2976 00003490 3c060001 lhi r6,((_currentPCB)>>16)&0xffff 2977 00003494 24c64100 addui r6,r6,(_currentPCB)&0xffff 2978 00003498 8cc80000 lw r8,(r6) 2979 0000349c afa80000 sw (r29),r8 2980 000034a0 0c006d10 jal _findpid 2981 000034a4 54000000 nop; not filled. 2982 000034a8 8c620014 lw r2,20(r3) 2983 000034ac 23bd0008 addi r29,r29,#8 2984 000034b0 00410828 seq r1,r2,r1 2985 000034b4 10200020 beqz r1,L244_LF3 2986 000034b8 54000000 nop; not filled. 2987 000034bc 2008ffff addi r8,r0,#-1 2988 000034c0 ac680014 sw 20(r3),r8 2989 000034c4 23bdfff8 addi r29,r29,#-8 2990 000034c8 afa30000 sw (r29),r3 2991 000034cc 0ffff4dc jal _SemSignal 2992 000034d0 54000000 nop; not filled. 2993 000034d4 23bd0008 addi r29,r29,#8 2994 000034d8 L244_LF3: 2995 000034d8 23bdfff8 addi r29,r29,#-8 2996 000034dc afa50000 sw (r29),r5 2997 000034e0 0fffdda4 jal _SetIntrs 2998 000034e4 54000000 nop; not filled. 2999 000034e8 23bd0008 addi r29,r29,#8 3000 000034ec 23bdfff8 addi r29,r29,#-8 3001 000034f0 20810004 addi r1,r4,#4 3002 000034f4 afa10000 sw (r29),r1 3003 000034f8 0ffff1a0 jal _SemWait 3004 000034fc 54000000 nop; not filled. 3005 00003500 8c830000 lw r3,(r4) 3006 00003504 23bd0008 addi r29,r29,#8 3007 00003508 23bdfff8 addi r29,r29,#-8 3008 0000350c 2008000f addi r8,r0,#15 3009 00003510 afa80000 sw (r29),r8 3010 00003514 0fffdd70 jal _SetIntrs 3011 00003518 54000000 nop; not filled. 3012 0000351c 00012020 add r4,r0,r1 3013 00003520 23bd0008 addi r29,r29,#8 3014 00003524 23bdfff8 addi r29,r29,#-8 3015 00003528 8cc80000 lw r8,(r6) 3016 0000352c afa80000 sw (r29),r8 3017 00003530 0c006c80 jal _findpid 3018 00003534 54000000 nop; not filled. 3019 00003538 8c620014 lw r2,20(r3) 3020 0000353c 23bd0008 addi r29,r29,#8 3021 00003540 00410829 sne r1,r2,r1 3022 00003544 1020002c beqz r1,L248_LF3 3023 00003548 54000000 nop; not filled. 3024 0000354c 23bdfff8 addi r29,r29,#-8 3025 00003550 afa30000 sw (r29),r3 3026 00003554 0ffff144 jal _SemWait 3027 00003558 54000000 nop; not filled. 3028 0000355c 8cc60000 lw r6,(r6) 3029 00003560 afa60000 sw (r29),r6 3030 00003564 0c006c4c jal _findpid 3031 00003568 54000000 nop; not filled. 3032 0000356c ac610014 sw 20(r3),r1 3033 00003570 23bd0008 addi r29,r29,#8 3034 00003574 L248_LF3: 3035 00003574 23bdfff8 addi r29,r29,#-8 3036 00003578 afa40000 sw (r29),r4 3037 0000357c 0fffdd08 jal _SetIntrs 3038 00003580 54000000 nop; not filled. 3039 00003584 23bd0008 addi r29,r29,#8 3040 00003588 23bdfff8 addi r29,r29,#-8 3041 0000358c afa70000 sw (r29),r7 3042 00003590 0fffdcf4 jal _SetIntrs 3043 00003594 54000000 nop; not filled. 3044 00003598 23bd0008 addi r29,r29,#8 3045 0000359c 8fa20000 lw r2,0(r29) 3046 000035a0 8fa30004 lw r3,4(r29) 3047 000035a4 8fa40008 lw r4,8(r29) 3048 000035a8 8fa5000c lw r5,12(r29) 3049 000035ac 8fa60010 lw r6,16(r29) 3050 000035b0 8fa70014 lw r7,20(r29) 3051 000035b4 8fa80018 lw r8,24(r29) 3052 000035b8 8fdffff8 lw r31,-8(r30) 3053 000035bc 001ee820 add r29,r0,r30 3054 000035c0 8fdefffc lw r30,-4(r30) 3055 000035c4 4be00000 jr r31 3056 000035c8 54000000 nop 3057 000035cc .endproc _CondWait 3058 000035cc .align 2 3059 000035cc .proc _CondHandleWait 3060 000035cc .global _CondHandleWait 3061 000035cc _CondHandleWait: 3062 ; Function 'CondHandleWait'; 0 bytes of locals, 3 regs to save. 3063 000035cc afbefffc sw -4(r29),r30; push fp 3064 000035d0 001df020 add r30,r0,r29; fp = sp 3065 000035d4 afbffff8 sw -8(r29),r31; push ret addr 3066 000035d8 2fbd0018 subui r29,r29,#24; alloc local storage 3067 000035dc afa20000 sw 0(r29),r2 3068 000035e0 afa30004 sw 4(r29),r3 3069 000035e4 afa40008 sw 8(r29),r4 3070 000035e8 8fc20000 lw r2,(r30) 3071 000035ec 7041001f sleui r1,r2,#31 3072 000035f0 10200084 beqz r1,L256_LF3 3073 000035f4 54000000 nop; not filled. 3074 000035f8 50410005 slli r1,r2,#0x5 3075 000035fc 3c040000 lhi r4,((_conds_LF3)>>16)&0xffff 3076 00003600 2484ee78 addui r4,r4,(_conds_LF3)&0xffff 3077 00003604 00241820 add r3,r1,r4 3078 00003608 8c61001c lw r1,28(r3) 3079 0000360c 64210000 snei r1,r1,#0 3080 00003610 10200058 beqz r1,L257_LF3 3081 00003614 54000000 nop; not filled. 3082 00003618 8c620000 lw r2,(r3) 3083 0000361c 23bdfff8 addi r29,r29,#-8 3084 00003620 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 3085 00003624 24214100 addui r1,r1,(_currentPCB)&0xffff 3086 00003628 8c210000 lw r1,(r1) 3087 0000362c afa10000 sw (r29),r1 3088 00003630 0c006b80 jal _findpid 3089 00003634 54000000 nop; not filled. 3090 00003638 8c420014 lw r2,20(r2) 3091 0000363c 23bd0008 addi r29,r29,#8 3092 00003640 00410828 seq r1,r2,r1 3093 00003644 10200024 beqz r1,L257_LF3 3094 00003648 54000000 nop; not filled. 3095 0000364c 23bdfff8 addi r29,r29,#-8 3096 00003650 afa30000 sw (r29),r3 3097 00003654 0ffffdc0 jal _CondWait 3098 00003658 54000000 nop; not filled. 3099 0000365c 20010000 addi r1,r0,#0 3100 00003660 23bd0008 addi r29,r29,#8 3101 00003664 08000014 j L255_LF3 3102 00003668 54000000 nop; not filled. 3103 0000366c L257_LF3: 3104 0000366c 20010001 addi r1,r0,#1 3105 00003670 08000008 j L255_LF3 3106 00003674 54000000 nop; not filled. 3107 00003678 L256_LF3: 3108 00003678 20010001 addi r1,r0,#1 3109 0000367c L255_LF3: 3110 0000367c 8fa20000 lw r2,0(r29) 3111 00003680 8fa30004 lw r3,4(r29) 3112 00003684 8fa40008 lw r4,8(r29) 3113 00003688 8fdffff8 lw r31,-8(r30) 3114 0000368c 001ee820 add r29,r0,r30 3115 00003690 8fdefffc lw r30,-4(r30) 3116 00003694 4be00000 jr r31 3117 00003698 54000000 nop 3118 0000369c .endproc _CondHandleWait 3119 0000369c .align 2 3120 0000369c .proc _CondSignal 3121 0000369c .global _CondSignal 3122 0000369c _CondSignal: 3123 ; Function 'CondSignal'; 0 bytes of locals, 3 regs to save. 3124 0000369c afbefffc sw -4(r29),r30; push fp 3125 000036a0 001df020 add r30,r0,r29; fp = sp 3126 000036a4 afbffff8 sw -8(r29),r31; push ret addr 3127 000036a8 2fbd0018 subui r29,r29,#24; alloc local storage 3128 000036ac afa20000 sw 0(r29),r2 3129 000036b0 afa30004 sw 4(r29),r3 3130 000036b4 afa40008 sw 8(r29),r4 3131 000036b8 8fc20000 lw r2,(r30) 3132 000036bc 23bdfff8 addi r29,r29,#-8 3133 000036c0 2004000f addi r4,r0,#15 3134 000036c4 afa40000 sw (r29),r4 3135 000036c8 0fffdbbc jal _SetIntrs 3136 000036cc 54000000 nop; not filled. 3137 000036d0 00011820 add r3,r0,r1 3138 000036d4 23bd0008 addi r29,r29,#8 3139 000036d8 8c5f0018 lw r31,24(r2) 3140 000036dc 67e10000 snei r1,r31,#0 3141 000036e0 10200024 beqz r1,L266_LF3 3142 000036e4 54000000 nop; not filled. 3143 000036e8 23e1ffff addi r1,r31,#-1 3144 000036ec ac410018 sw 24(r2),r1 3145 000036f0 23bdfff8 addi r29,r29,#-8 3146 000036f4 20410004 addi r1,r2,#4 3147 000036f8 afa10000 sw (r29),r1 3148 000036fc 0ffff2ac jal _SemSignal 3149 00003700 54000000 nop; not filled. 3150 00003704 23bd0008 addi r29,r29,#8 3151 00003708 L266_LF3: 3152 00003708 23bdfff8 addi r29,r29,#-8 3153 0000370c afa30000 sw (r29),r3 3154 00003710 0fffdb74 jal _SetIntrs 3155 00003714 54000000 nop; not filled. 3156 00003718 23bd0008 addi r29,r29,#8 3157 0000371c 8fa20000 lw r2,0(r29) 3158 00003720 8fa30004 lw r3,4(r29) 3159 00003724 8fa40008 lw r4,8(r29) 3160 00003728 8fdffff8 lw r31,-8(r30) 3161 0000372c 001ee820 add r29,r0,r30 3162 00003730 8fdefffc lw r30,-4(r30) 3163 00003734 4be00000 jr r31 3164 00003738 54000000 nop 3165 0000373c .endproc _CondSignal 3166 0000373c .align 2 3167 0000373c .proc _CondHandleSignal 3168 0000373c .global _CondHandleSignal 3169 0000373c _CondHandleSignal: 3170 ; Function 'CondHandleSignal'; 0 bytes of locals, 4 regs to save. 3171 0000373c afbefffc sw -4(r29),r30; push fp 3172 00003740 001df020 add r30,r0,r29; fp = sp 3173 00003744 afbffff8 sw -8(r29),r31; push ret addr 3174 00003748 2fbd0018 subui r29,r29,#24; alloc local storage 3175 0000374c afa20000 sw 0(r29),r2 3176 00003750 afa30004 sw 4(r29),r3 3177 00003754 afa40008 sw 8(r29),r4 3178 00003758 afa5000c sw 12(r29),r5 3179 0000375c 8fc20000 lw r2,(r30) 3180 00003760 7041001f sleui r1,r2,#31 3181 00003764 102000c4 beqz r1,L277_LF3 3182 00003768 54000000 nop; not filled. 3183 0000376c 50410005 slli r1,r2,#0x5 3184 00003770 3c050000 lhi r5,((_conds_LF3)>>16)&0xffff 3185 00003774 24a5ee78 addui r5,r5,(_conds_LF3)&0xffff 3186 00003778 00251820 add r3,r1,r5 3187 0000377c 8c61001c lw r1,28(r3) 3188 00003780 64210000 snei r1,r1,#0 3189 00003784 102000a4 beqz r1,L277_LF3 3190 00003788 54000000 nop; not filled. 3191 0000378c 8c620000 lw r2,(r3) 3192 00003790 23bdfff8 addi r29,r29,#-8 3193 00003794 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 3194 00003798 24214100 addui r1,r1,(_currentPCB)&0xffff 3195 0000379c 8c210000 lw r1,(r1) 3196 000037a0 afa10000 sw (r29),r1 3197 000037a4 0c006a0c jal _findpid 3198 000037a8 54000000 nop; not filled. 3199 000037ac 8c420014 lw r2,20(r2) 3200 000037b0 23bd0008 addi r29,r29,#8 3201 000037b4 00410828 seq r1,r2,r1 3202 000037b8 10200070 beqz r1,L277_LF3 3203 000037bc 54000000 nop; not filled. 3204 000037c0 23bdfff8 addi r29,r29,#-8 3205 000037c4 2005000f addi r5,r0,#15 3206 000037c8 afa50000 sw (r29),r5 3207 000037cc 0fffdab8 jal _SetIntrs 3208 000037d0 54000000 nop; not filled. 3209 000037d4 00012020 add r4,r0,r1 3210 000037d8 23bd0008 addi r29,r29,#8 3211 000037dc 8c620018 lw r2,24(r3) 3212 000037e0 64410000 snei r1,r2,#0 3213 000037e4 10200024 beqz r1,L282_LF3 3214 000037e8 54000000 nop; not filled. 3215 000037ec 2041ffff addi r1,r2,#-1 3216 000037f0 ac610018 sw 24(r3),r1 3217 000037f4 23bdfff8 addi r29,r29,#-8 3218 000037f8 20610004 addi r1,r3,#4 3219 000037fc afa10000 sw (r29),r1 3220 00003800 0ffff1a8 jal _SemSignal 3221 00003804 54000000 nop; not filled. 3222 00003808 23bd0008 addi r29,r29,#8 3223 0000380c L282_LF3: 3224 0000380c 23bdfff8 addi r29,r29,#-8 3225 00003810 afa40000 sw (r29),r4 3226 00003814 0fffda70 jal _SetIntrs 3227 00003818 54000000 nop; not filled. 3228 0000381c 23bd0008 addi r29,r29,#8 3229 00003820 20010000 addi r1,r0,#0 3230 00003824 08000008 j L284_LF3 3231 00003828 54000000 nop; not filled. 3232 0000382c L277_LF3: 3233 0000382c 20010001 addi r1,r0,#1 3234 00003830 L284_LF3: 3235 00003830 8fa20000 lw r2,0(r29) 3236 00003834 8fa30004 lw r3,4(r29) 3237 00003838 8fa40008 lw r4,8(r29) 3238 0000383c 8fa5000c lw r5,12(r29) 3239 00003840 8fdffff8 lw r31,-8(r30) 3240 00003844 001ee820 add r29,r0,r30 3241 00003848 8fdefffc lw r30,-4(r30) 3242 0000384c 4be00000 jr r31 3243 00003850 54000000 nop 3244 00003854 .endproc _CondHandleSignal 3245 00003854 .align 2 3246 00003854 .proc _CondBroadcast 3247 00003854 .global _CondBroadcast 3248 00003854 _CondBroadcast: 3249 ; Function 'CondBroadcast'; 0 bytes of locals, 5 regs to save. 3250 00003854 afbefffc sw -4(r29),r30; push fp 3251 00003858 001df020 add r30,r0,r29; fp = sp 3252 0000385c afbffff8 sw -8(r29),r31; push ret addr 3253 00003860 2fbd0020 subui r29,r29,#32; alloc local storage 3254 00003864 afa20000 sw 0(r29),r2 3255 00003868 afa30004 sw 4(r29),r3 3256 0000386c afa40008 sw 8(r29),r4 3257 00003870 afa5000c sw 12(r29),r5 3258 00003874 afa60010 sw 16(r29),r6 3259 00003878 8fc40000 lw r4,(r30) 3260 0000387c 23bdfff8 addi r29,r29,#-8 3261 00003880 2006000f addi r6,r0,#15 3262 00003884 afa60000 sw (r29),r6 3263 00003888 0fffd9fc jal _SetIntrs 3264 0000388c 54000000 nop; not filled. 3265 00003890 00012820 add r5,r0,r1 3266 00003894 23bd0008 addi r29,r29,#8 3267 00003898 20020000 addi r2,r0,#0 3268 0000389c 8c810018 lw r1,24(r4) 3269 000038a0 0041082a sltu r1,r2,r1 3270 000038a4 10200030 beqz r1,L296_LF3 3271 000038a8 54000000 nop; not filled. 3272 000038ac 20830004 addi r3,r4,#4 3273 000038b0 L298_LF3: 3274 000038b0 23bdfff8 addi r29,r29,#-8 3275 000038b4 afa30000 sw (r29),r3 3276 000038b8 0ffff0f0 jal _SemSignal 3277 000038bc 54000000 nop; not filled. 3278 000038c0 23bd0008 addi r29,r29,#8 3279 000038c4 20420001 addi r2,r2,#1 3280 000038c8 8c810018 lw r1,24(r4) 3281 000038cc 0041082a sltu r1,r2,r1 3282 000038d0 1420ffdc bnez r1,L298_LF3 3283 000038d4 54000000 nop; not filled. 3284 000038d8 L296_LF3: 3285 000038d8 20060000 addi r6,r0,#0 3286 000038dc ac860018 sw 24(r4),r6 3287 000038e0 23bdfff8 addi r29,r29,#-8 3288 000038e4 afa50000 sw (r29),r5 3289 000038e8 0fffd99c jal _SetIntrs 3290 000038ec 54000000 nop; not filled. 3291 000038f0 23bd0008 addi r29,r29,#8 3292 000038f4 8fa20000 lw r2,0(r29) 3293 000038f8 8fa30004 lw r3,4(r29) 3294 000038fc 8fa40008 lw r4,8(r29) 3295 00003900 8fa5000c lw r5,12(r29) 3296 00003904 8fa60010 lw r6,16(r29) 3297 00003908 8fdffff8 lw r31,-8(r30) 3298 0000390c 001ee820 add r29,r0,r30 3299 00003910 8fdefffc lw r30,-4(r30) 3300 00003914 4be00000 jr r31 3301 00003918 54000000 nop 3302 0000391c .endproc _CondBroadcast 3303 0000391c .align 2 3304 0000391c .proc _CondHandleBroadcast 3305 0000391c .global _CondHandleBroadcast 3306 0000391c _CondHandleBroadcast: 3307 ; Function 'CondHandleBroadcast'; 0 bytes of locals, 5 regs to save. 3308 0000391c afbefffc sw -4(r29),r30; push fp 3309 00003920 001df020 add r30,r0,r29; fp = sp 3310 00003924 afbffff8 sw -8(r29),r31; push ret addr 3311 00003928 2fbd0020 subui r29,r29,#32; alloc local storage 3312 0000392c afa20000 sw 0(r29),r2 3313 00003930 afa30004 sw 4(r29),r3 3314 00003934 afa40008 sw 8(r29),r4 3315 00003938 afa5000c sw 12(r29),r5 3316 0000393c afa60010 sw 16(r29),r6 3317 00003940 8fc20000 lw r2,(r30) 3318 00003944 7041001f sleui r1,r2,#31 3319 00003948 102000dc beqz r1,L302_LF3 3320 0000394c 54000000 nop; not filled. 3321 00003950 50410005 slli r1,r2,#0x5 3322 00003954 3c060000 lhi r6,((_conds_LF3)>>16)&0xffff 3323 00003958 24c6ee78 addui r6,r6,(_conds_LF3)&0xffff 3324 0000395c 00261820 add r3,r1,r6 3325 00003960 8c61001c lw r1,28(r3) 3326 00003964 64210000 snei r1,r1,#0 3327 00003968 102000bc beqz r1,L302_LF3 3328 0000396c 54000000 nop; not filled. 3329 00003970 8c620000 lw r2,(r3) 3330 00003974 23bdfff8 addi r29,r29,#-8 3331 00003978 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 3332 0000397c 24214100 addui r1,r1,(_currentPCB)&0xffff 3333 00003980 8c210000 lw r1,(r1) 3334 00003984 afa10000 sw (r29),r1 3335 00003988 0c006828 jal _findpid 3336 0000398c 54000000 nop; not filled. 3337 00003990 8c420014 lw r2,20(r2) 3338 00003994 23bd0008 addi r29,r29,#8 3339 00003998 00410829 sne r1,r2,r1 3340 0000399c 10200088 beqz r1,L302_LF3 3341 000039a0 54000000 nop; not filled. 3342 000039a4 23bdfff8 addi r29,r29,#-8 3343 000039a8 2006000f addi r6,r0,#15 3344 000039ac afa60000 sw (r29),r6 3345 000039b0 0fffd8d4 jal _SetIntrs 3346 000039b4 54000000 nop; not filled. 3347 000039b8 00012820 add r5,r0,r1 3348 000039bc 23bd0008 addi r29,r29,#8 3349 000039c0 20020000 addi r2,r0,#0 3350 000039c4 8c610018 lw r1,24(r3) 3351 000039c8 0041082a sltu r1,r2,r1 3352 000039cc 10200030 beqz r1,L308_LF3 3353 000039d0 54000000 nop; not filled. 3354 000039d4 20640004 addi r4,r3,#4 3355 000039d8 L310_LF3: 3356 000039d8 23bdfff8 addi r29,r29,#-8 3357 000039dc afa40000 sw (r29),r4 3358 000039e0 0fffefc8 jal _SemSignal 3359 000039e4 54000000 nop; not filled. 3360 000039e8 23bd0008 addi r29,r29,#8 3361 000039ec 20420001 addi r2,r2,#1 3362 000039f0 8c610018 lw r1,24(r3) 3363 000039f4 0041082a sltu r1,r2,r1 3364 000039f8 1420ffdc bnez r1,L310_LF3 3365 000039fc 54000000 nop; not filled. 3366 00003a00 L308_LF3: 3367 00003a00 20060000 addi r6,r0,#0 3368 00003a04 ac660018 sw 24(r3),r6 3369 00003a08 23bdfff8 addi r29,r29,#-8 3370 00003a0c afa50000 sw (r29),r5 3371 00003a10 0fffd874 jal _SetIntrs 3372 00003a14 54000000 nop; not filled. 3373 00003a18 23bd0008 addi r29,r29,#8 3374 00003a1c 20010000 addi r1,r0,#0 3375 00003a20 08000008 j L313_LF3 3376 00003a24 54000000 nop; not filled. 3377 00003a28 L302_LF3: 3378 00003a28 20010001 addi r1,r0,#1 3379 00003a2c L313_LF3: 3380 00003a2c 8fa20000 lw r2,0(r29) 3381 00003a30 8fa30004 lw r3,4(r29) 3382 00003a34 8fa40008 lw r4,8(r29) 3383 00003a38 8fa5000c lw r5,12(r29) 3384 00003a3c 8fa60010 lw r6,16(r29) 3385 00003a40 8fdffff8 lw r31,-8(r30) 3386 00003a44 001ee820 add r29,r0,r30 3387 00003a48 8fdefffc lw r30,-4(r30) 3388 00003a4c 4be00000 jr r31 3389 00003a50 54000000 nop 3390 00003a54 .endproc _CondHandleBroadcast 3391 00003a54 .data 3392 0000e275 .align 2 3393 0000e278 _sems_LF3: 3394 0000e278 .space 1280 3395 0000e778 .align 2 3396 0000e778 _locks_LF3: 3397 0000e778 .space 1792 3398 0000ee78 .align 2 3399 0000ee78 _conds_LF3: 3400 0000ee78 .space 1024 3401 ; Compiled by GCC 3403 0000f278 .align 2 3404 0000f278 _rcsid_LF4: 3405 0000f278 3a206669 .ascii "$Id: filesys.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" 3405 0000f27c 6c657379 3405 0000f280 732e632c 3405 0000f284 7620312e 3405 0000f288 31203230 3405 0000f28c 30302f30 3405 0000f290 392f3230 3405 0000f294 2030313a 3405 0000f298 35303a31 3405 0000f29c 3920656c 3405 0000f2a0 6d204578 3405 0000f2a4 7020656c 3405 0000f2a8 6d203030 3405 0000f2ac 30 3406 0000f2ad .text 3407 00003a54 .align 2 3408 00003a54 .proc _isspace 3409 00003a54 .global _isspace 3410 00003a54 _isspace: 3411 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 3412 00003a54 afbefffc sw -4(r29),r30; push fp 3413 00003a58 001df020 add r30,r0,r29; fp = sp 3414 00003a5c afbffff8 sw -8(r29),r31; push ret addr 3415 00003a60 2fbd0010 subui r29,r29,#16; alloc local storage 3416 00003a64 afa20000 sw 0(r29),r2 3417 00003a68 83c20003 lb r2,3(r30) 3418 00003a6c 201f0000 addi r31,r0,#0 3419 00003a70 304100ff andi r1,r2,#0x00ff 3420 00003a74 60210020 seqi r1,r1,#32 3421 00003a78 14200018 bnez r1,L6_LF4 3422 00003a7c 54000000 nop; not filled. 3423 00003a80 2041fff7 addi r1,r2,#-9 3424 00003a84 302100ff andi r1,r1,#0x00ff 3425 00003a88 70210001 sleui r1,r1,#1 3426 00003a8c 10200008 beqz r1,L5_LF4 3427 00003a90 54000000 nop; not filled. 3428 00003a94 L6_LF4: 3429 00003a94 201f0001 addi r31,r0,#1 3430 00003a98 L5_LF4: 3431 00003a98 001f0820 add r1,r0,r31 3432 00003a9c 8fa20000 lw r2,0(r29) 3433 00003aa0 8fdffff8 lw r31,-8(r30) 3434 00003aa4 001ee820 add r29,r0,r30 3435 00003aa8 8fdefffc lw r30,-4(r30) 3436 00003aac 4be00000 jr r31 3437 00003ab0 54000000 nop 3438 00003ab4 .endproc _isspace 3439 00003ab4 .align 2 3440 00003ab4 .proc _isxdigit 3441 00003ab4 .global _isxdigit 3442 00003ab4 _isxdigit: 3443 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 3444 00003ab4 afbefffc sw -4(r29),r30; push fp 3445 00003ab8 001df020 add r30,r0,r29; fp = sp 3446 00003abc afbffff8 sw -8(r29),r31; push ret addr 3447 00003ac0 2fbd0010 subui r29,r29,#16; alloc local storage 3448 00003ac4 afa20000 sw 0(r29),r2 3449 00003ac8 83df0003 lb r31,3(r30) 3450 00003acc 20020000 addi r2,r0,#0 3451 00003ad0 23e1ffd0 addi r1,r31,#-48 3452 00003ad4 302100ff andi r1,r1,#0x00ff 3453 00003ad8 70210009 sleui r1,r1,#9 3454 00003adc 14200028 bnez r1,L12_LF4 3455 00003ae0 54000000 nop; not filled. 3456 00003ae4 23e1ff9f addi r1,r31,#-97 3457 00003ae8 302100ff andi r1,r1,#0x00ff 3458 00003aec 70210005 sleui r1,r1,#5 3459 00003af0 14200014 bnez r1,L12_LF4 3460 00003af4 54000000 nop; not filled. 3461 00003af8 33e100ff andi r1,r31,#0x00ff 3462 00003afc 64210041 snei r1,r1,#65 3463 00003b00 14200008 bnez r1,L11_LF4 3464 00003b04 54000000 nop; not filled. 3465 00003b08 L12_LF4: 3466 00003b08 20020001 addi r2,r0,#1 3467 00003b0c L11_LF4: 3468 00003b0c 00020820 add r1,r0,r2 3469 00003b10 8fa20000 lw r2,0(r29) 3470 00003b14 8fdffff8 lw r31,-8(r30) 3471 00003b18 001ee820 add r29,r0,r30 3472 00003b1c 8fdefffc lw r30,-4(r30) 3473 00003b20 4be00000 jr r31 3474 00003b24 54000000 nop 3475 00003b28 .endproc _isxdigit 3476 00003b28 .align 2 3477 00003b28 .proc _DisableIntrs 3478 00003b28 .global _DisableIntrs 3479 00003b28 _DisableIntrs: 3480 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 3481 00003b28 afbefffc sw -4(r29),r30; push fp 3482 00003b2c 001df020 add r30,r0,r29; fp = sp 3483 00003b30 afbffff8 sw -8(r29),r31; push ret addr 3484 00003b34 2fbd0010 subui r29,r29,#16; alloc local storage 3485 00003b38 afa20000 sw 0(r29),r2 3486 00003b3c 23bdfff8 addi r29,r29,#-8 3487 00003b40 2002000f addi r2,r0,#15 3488 00003b44 afa20000 sw (r29),r2 3489 00003b48 0fffd73c jal _SetIntrs 3490 00003b4c 54000000 nop; not filled. 3491 00003b50 23bd0008 addi r29,r29,#8 3492 00003b54 8fa20000 lw r2,0(r29) 3493 00003b58 8fdffff8 lw r31,-8(r30) 3494 00003b5c 001ee820 add r29,r0,r30 3495 00003b60 8fdefffc lw r30,-4(r30) 3496 00003b64 4be00000 jr r31 3497 00003b68 54000000 nop 3498 00003b6c .endproc _DisableIntrs 3499 00003b6c .align 2 3500 00003b6c .proc _EnableIntrs 3501 00003b6c .global _EnableIntrs 3502 00003b6c _EnableIntrs: 3503 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 3504 00003b6c afbefffc sw -4(r29),r30; push fp 3505 00003b70 001df020 add r30,r0,r29; fp = sp 3506 00003b74 afbffff8 sw -8(r29),r31; push ret addr 3507 00003b78 2fbd0010 subui r29,r29,#16; alloc local storage 3508 00003b7c afa20000 sw 0(r29),r2 3509 00003b80 23bdfff8 addi r29,r29,#-8 3510 00003b84 20020000 addi r2,r0,#0 3511 00003b88 afa20000 sw (r29),r2 3512 00003b8c 0fffd6f8 jal _SetIntrs 3513 00003b90 54000000 nop; not filled. 3514 00003b94 23bd0008 addi r29,r29,#8 3515 00003b98 8fa20000 lw r2,0(r29) 3516 00003b9c 8fdffff8 lw r31,-8(r30) 3517 00003ba0 001ee820 add r29,r0,r30 3518 00003ba4 8fdefffc lw r30,-4(r30) 3519 00003ba8 4be00000 jr r31 3520 00003bac 54000000 nop 3521 00003bb0 .endproc _EnableIntrs 3522 00003bb0 .align 2 3523 00003bb0 .proc _RestoreIntrs 3524 00003bb0 .global _RestoreIntrs 3525 00003bb0 _RestoreIntrs: 3526 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 3527 00003bb0 afbefffc sw -4(r29),r30; push fp 3528 00003bb4 001df020 add r30,r0,r29; fp = sp 3529 00003bb8 afbffff8 sw -8(r29),r31; push ret addr 3530 00003bbc 2fbd0010 subui r29,r29,#16; alloc local storage 3531 00003bc0 afa20000 sw 0(r29),r2 3532 00003bc4 23bdfff8 addi r29,r29,#-8 3533 00003bc8 8fc20000 lw r2,(r30) 3534 00003bcc afa20000 sw (r29),r2 3535 00003bd0 0fffd6b4 jal _SetIntrs 3536 00003bd4 54000000 nop; not filled. 3537 00003bd8 23bd0008 addi r29,r29,#8 3538 00003bdc 8fa20000 lw r2,0(r29) 3539 00003be0 8fdffff8 lw r31,-8(r30) 3540 00003be4 001ee820 add r29,r0,r30 3541 00003be8 8fdefffc lw r30,-4(r30) 3542 00003bec 4be00000 jr r31 3543 00003bf0 54000000 nop 3544 00003bf4 .endproc _RestoreIntrs 3545 00003bf4 .align 2 3546 00003bf4 .proc _QueueLinkInit 3547 00003bf4 .global _QueueLinkInit 3548 00003bf4 _QueueLinkInit: 3549 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 3550 00003bf4 afbefffc sw -4(r29),r30; push fp 3551 00003bf8 001df020 add r30,r0,r29; fp = sp 3552 00003bfc afbffff8 sw -8(r29),r31; push ret addr 3553 00003c00 2fbd0010 subui r29,r29,#16; alloc local storage 3554 00003c04 afa20000 sw 0(r29),r2 3555 00003c08 8fc10000 lw r1,(r30) 3556 00003c0c 8fc20004 lw r2,4(r30) 3557 00003c10 201f0000 addi r31,r0,#0 3558 00003c14 ac3f0000 sw (r1),r31 3559 00003c18 ac22000c sw 12(r1),r2 3560 00003c1c 8fa20000 lw r2,0(r29) 3561 00003c20 8fdffff8 lw r31,-8(r30) 3562 00003c24 001ee820 add r29,r0,r30 3563 00003c28 8fdefffc lw r30,-4(r30) 3564 00003c2c 4be00000 jr r31 3565 00003c30 54000000 nop 3566 00003c34 .endproc _QueueLinkInit 3567 00003c34 .align 2 3568 00003c34 .proc _QueueNext 3569 00003c34 .global _QueueNext 3570 00003c34 _QueueNext: 3571 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 3572 00003c34 afbefffc sw -4(r29),r30; push fp 3573 00003c38 001df020 add r30,r0,r29; fp = sp 3574 00003c3c afbffff8 sw -8(r29),r31; push ret addr 3575 00003c40 2fbd0008 subui r29,r29,#8; alloc local storage 3576 00003c44 8fc10000 lw r1,(r30) 3577 00003c48 8c210000 lw r1,(r1) 3578 00003c4c 8fdffff8 lw r31,-8(r30) 3579 00003c50 001ee820 add r29,r0,r30 3580 00003c54 8fdefffc lw r30,-4(r30) 3581 00003c58 4be00000 jr r31 3582 00003c5c 54000000 nop 3583 00003c60 .endproc _QueueNext 3584 00003c60 .align 2 3585 00003c60 .proc _QueuePrev 3586 00003c60 .global _QueuePrev 3587 00003c60 _QueuePrev: 3588 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 3589 00003c60 afbefffc sw -4(r29),r30; push fp 3590 00003c64 001df020 add r30,r0,r29; fp = sp 3591 00003c68 afbffff8 sw -8(r29),r31; push ret addr 3592 00003c6c 2fbd0008 subui r29,r29,#8; alloc local storage 3593 00003c70 8fc10000 lw r1,(r30) 3594 00003c74 8c210004 lw r1,4(r1) 3595 00003c78 8fdffff8 lw r31,-8(r30) 3596 00003c7c 001ee820 add r29,r0,r30 3597 00003c80 8fdefffc lw r30,-4(r30) 3598 00003c84 4be00000 jr r31 3599 00003c88 54000000 nop 3600 00003c8c .endproc _QueuePrev 3601 00003c8c .align 2 3602 00003c8c .proc _QueueFirst 3603 00003c8c .global _QueueFirst 3604 00003c8c _QueueFirst: 3605 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 3606 00003c8c afbefffc sw -4(r29),r30; push fp 3607 00003c90 001df020 add r30,r0,r29; fp = sp 3608 00003c94 afbffff8 sw -8(r29),r31; push ret addr 3609 00003c98 2fbd0008 subui r29,r29,#8; alloc local storage 3610 00003c9c 8fc10000 lw r1,(r30) 3611 00003ca0 8c210000 lw r1,(r1) 3612 00003ca4 8fdffff8 lw r31,-8(r30) 3613 00003ca8 001ee820 add r29,r0,r30 3614 00003cac 8fdefffc lw r30,-4(r30) 3615 00003cb0 4be00000 jr r31 3616 00003cb4 54000000 nop 3617 00003cb8 .endproc _QueueFirst 3618 00003cb8 .align 2 3619 00003cb8 .proc _QueueLast 3620 00003cb8 .global _QueueLast 3621 00003cb8 _QueueLast: 3622 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 3623 00003cb8 afbefffc sw -4(r29),r30; push fp 3624 00003cbc 001df020 add r30,r0,r29; fp = sp 3625 00003cc0 afbffff8 sw -8(r29),r31; push ret addr 3626 00003cc4 2fbd0008 subui r29,r29,#8; alloc local storage 3627 00003cc8 8fc10000 lw r1,(r30) 3628 00003ccc 8c210004 lw r1,4(r1) 3629 00003cd0 8fdffff8 lw r31,-8(r30) 3630 00003cd4 001ee820 add r29,r0,r30 3631 00003cd8 8fdefffc lw r30,-4(r30) 3632 00003cdc 4be00000 jr r31 3633 00003ce0 54000000 nop 3634 00003ce4 .endproc _QueueLast 3635 00003ce4 .align 2 3636 00003ce4 .proc _QueueInsertAfter 3637 00003ce4 .global _QueueInsertAfter 3638 00003ce4 _QueueInsertAfter: 3639 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 3640 00003ce4 afbefffc sw -4(r29),r30; push fp 3641 00003ce8 001df020 add r30,r0,r29; fp = sp 3642 00003cec afbffff8 sw -8(r29),r31; push ret addr 3643 00003cf0 2fbd0010 subui r29,r29,#16; alloc local storage 3644 00003cf4 afa20000 sw 0(r29),r2 3645 00003cf8 afa30004 sw 4(r29),r3 3646 00003cfc 8fc30000 lw r3,(r30) 3647 00003d00 8fc20004 lw r2,4(r30) 3648 00003d04 8fc10008 lw r1,8(r30) 3649 00003d08 ac230008 sw 8(r1),r3 3650 00003d0c ac220004 sw 4(r1),r2 3651 00003d10 8c5f0000 lw r31,(r2) 3652 00003d14 ac3f0000 sw (r1),r31 3653 00003d18 ac410000 sw (r2),r1 3654 00003d1c 8c220000 lw r2,(r1) 3655 00003d20 ac410004 sw 4(r2),r1 3656 00003d24 8c610008 lw r1,8(r3) 3657 00003d28 20210001 addi r1,r1,#1 3658 00003d2c ac610008 sw 8(r3),r1 3659 00003d30 8fa20000 lw r2,0(r29) 3660 00003d34 8fa30004 lw r3,4(r29) 3661 00003d38 8fdffff8 lw r31,-8(r30) 3662 00003d3c 001ee820 add r29,r0,r30 3663 00003d40 8fdefffc lw r30,-4(r30) 3664 00003d44 4be00000 jr r31 3665 00003d48 54000000 nop 3666 00003d4c .endproc _QueueInsertAfter 3667 00003d4c .align 2 3668 00003d4c .proc _QueueInsertFirst 3669 00003d4c .global _QueueInsertFirst 3670 00003d4c _QueueInsertFirst: 3671 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 3672 00003d4c afbefffc sw -4(r29),r30; push fp 3673 00003d50 001df020 add r30,r0,r29; fp = sp 3674 00003d54 afbffff8 sw -8(r29),r31; push ret addr 3675 00003d58 2fbd0010 subui r29,r29,#16; alloc local storage 3676 00003d5c afa20000 sw 0(r29),r2 3677 00003d60 afa30004 sw 4(r29),r3 3678 00003d64 8fc30000 lw r3,(r30) 3679 00003d68 8fc10004 lw r1,4(r30) 3680 00003d6c ac230008 sw 8(r1),r3 3681 00003d70 ac230004 sw 4(r1),r3 3682 00003d74 8c7f0000 lw r31,(r3) 3683 00003d78 ac3f0000 sw (r1),r31 3684 00003d7c ac610000 sw (r3),r1 3685 00003d80 8c220000 lw r2,(r1) 3686 00003d84 ac410004 sw 4(r2),r1 3687 00003d88 8c610008 lw r1,8(r3) 3688 00003d8c 20210001 addi r1,r1,#1 3689 00003d90 ac610008 sw 8(r3),r1 3690 00003d94 8fa20000 lw r2,0(r29) 3691 00003d98 8fa30004 lw r3,4(r29) 3692 00003d9c 8fdffff8 lw r31,-8(r30) 3693 00003da0 001ee820 add r29,r0,r30 3694 00003da4 8fdefffc lw r30,-4(r30) 3695 00003da8 4be00000 jr r31 3696 00003dac 54000000 nop 3697 00003db0 .endproc _QueueInsertFirst 3698 00003db0 .align 2 3699 00003db0 .proc _QueueInsertLast 3700 00003db0 .global _QueueInsertLast 3701 00003db0 _QueueInsertLast: 3702 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 3703 00003db0 afbefffc sw -4(r29),r30; push fp 3704 00003db4 001df020 add r30,r0,r29; fp = sp 3705 00003db8 afbffff8 sw -8(r29),r31; push ret addr 3706 00003dbc 2fbd0010 subui r29,r29,#16; alloc local storage 3707 00003dc0 afa20000 sw 0(r29),r2 3708 00003dc4 afa30004 sw 4(r29),r3 3709 00003dc8 8fc30000 lw r3,(r30) 3710 00003dcc 8fc10004 lw r1,4(r30) 3711 00003dd0 8c620004 lw r2,4(r3) 3712 00003dd4 ac230008 sw 8(r1),r3 3713 00003dd8 ac220004 sw 4(r1),r2 3714 00003ddc 8c5f0000 lw r31,(r2) 3715 00003de0 ac3f0000 sw (r1),r31 3716 00003de4 ac410000 sw (r2),r1 3717 00003de8 8c220000 lw r2,(r1) 3718 00003dec ac410004 sw 4(r2),r1 3719 00003df0 8c610008 lw r1,8(r3) 3720 00003df4 20210001 addi r1,r1,#1 3721 00003df8 ac610008 sw 8(r3),r1 3722 00003dfc 8fa20000 lw r2,0(r29) 3723 00003e00 8fa30004 lw r3,4(r29) 3724 00003e04 8fdffff8 lw r31,-8(r30) 3725 00003e08 001ee820 add r29,r0,r30 3726 00003e0c 8fdefffc lw r30,-4(r30) 3727 00003e10 4be00000 jr r31 3728 00003e14 54000000 nop 3729 00003e18 .endproc _QueueInsertLast 3730 00003e18 .align 2 3731 00003e18 .proc _QueueRemove 3732 00003e18 .global _QueueRemove 3733 00003e18 _QueueRemove: 3734 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 3735 00003e18 afbefffc sw -4(r29),r30; push fp 3736 00003e1c 001df020 add r30,r0,r29; fp = sp 3737 00003e20 afbffff8 sw -8(r29),r31; push ret addr 3738 00003e24 2fbd0010 subui r29,r29,#16; alloc local storage 3739 00003e28 afa20000 sw 0(r29),r2 3740 00003e2c afa30004 sw 4(r29),r3 3741 00003e30 8fdf0000 lw r31,(r30) 3742 00003e34 8fe10008 lw r1,8(r31) 3743 00003e38 8c210008 lw r1,8(r1) 3744 00003e3c 6c210000 sgti r1,r1,#0 3745 00003e40 1020002c beqz r1,L44_LF4 3746 00003e44 54000000 nop; not filled. 3747 00003e48 8fe10004 lw r1,4(r31) 3748 00003e4c 8fe30000 lw r3,(r31) 3749 00003e50 ac230000 sw (r1),r3 3750 00003e54 8fe10000 lw r1,(r31) 3751 00003e58 8fe30004 lw r3,4(r31) 3752 00003e5c ac230004 sw 4(r1),r3 3753 00003e60 8fe20008 lw r2,8(r31) 3754 00003e64 8c410008 lw r1,8(r2) 3755 00003e68 2021ffff addi r1,r1,#-1 3756 00003e6c ac410008 sw 8(r2),r1 3757 00003e70 L44_LF4: 3758 00003e70 20030000 addi r3,r0,#0 3759 00003e74 afe30000 sw (r31),r3 3760 00003e78 8fa20000 lw r2,0(r29) 3761 00003e7c 8fa30004 lw r3,4(r29) 3762 00003e80 8fdffff8 lw r31,-8(r30) 3763 00003e84 001ee820 add r29,r0,r30 3764 00003e88 8fdefffc lw r30,-4(r30) 3765 00003e8c 4be00000 jr r31 3766 00003e90 54000000 nop 3767 00003e94 .endproc _QueueRemove 3768 00003e94 .align 2 3769 00003e94 .proc _QueueLength 3770 00003e94 .global _QueueLength 3771 00003e94 _QueueLength: 3772 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 3773 00003e94 afbefffc sw -4(r29),r30; push fp 3774 00003e98 001df020 add r30,r0,r29; fp = sp 3775 00003e9c afbffff8 sw -8(r29),r31; push ret addr 3776 00003ea0 2fbd0008 subui r29,r29,#8; alloc local storage 3777 00003ea4 8fc10000 lw r1,(r30) 3778 00003ea8 8c210008 lw r1,8(r1) 3779 00003eac 8fdffff8 lw r31,-8(r30) 3780 00003eb0 001ee820 add r29,r0,r30 3781 00003eb4 8fdefffc lw r30,-4(r30) 3782 00003eb8 4be00000 jr r31 3783 00003ebc 54000000 nop 3784 00003ec0 .endproc _QueueLength 3785 00003ec0 .align 2 3786 00003ec0 .proc _QueueEmpty 3787 00003ec0 .global _QueueEmpty 3788 00003ec0 _QueueEmpty: 3789 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 3790 00003ec0 afbefffc sw -4(r29),r30; push fp 3791 00003ec4 001df020 add r30,r0,r29; fp = sp 3792 00003ec8 afbffff8 sw -8(r29),r31; push ret addr 3793 00003ecc 2fbd0008 subui r29,r29,#8; alloc local storage 3794 00003ed0 8fc10000 lw r1,(r30) 3795 00003ed4 8c210008 lw r1,8(r1) 3796 00003ed8 60210000 seqi r1,r1,#0 3797 00003edc 8fdffff8 lw r31,-8(r30) 3798 00003ee0 001ee820 add r29,r0,r30 3799 00003ee4 8fdefffc lw r30,-4(r30) 3800 00003ee8 4be00000 jr r31 3801 00003eec 54000000 nop 3802 00003ef0 .endproc _QueueEmpty 3803 00003ef0 .data 3804 0000f2ad .align 2 3805 0000f2b0 LC0_LF4: 3806 0000f2b0 41747465 .ascii "Attepmting to open %s mode=%d.\n\000" 3806 0000f2b4 706d7469 3806 0000f2b8 6e672074 3806 0000f2bc 6f206f70 3806 0000f2c0 656e2025 3806 0000f2c4 73206d6f 3806 0000f2c8 64653d25 3806 0000f2cc 642e0a00 3807 0000f2d0 .align 2 3808 0000f2d0 LC1_LF4: 3809 0000f2d0 646c783a .ascii "dlx:\000" 3809 0000f2d4 00 3810 0000f2d5 .align 2 3811 0000f2d8 LC2_LF4: 3812 0000f2d8 46696c65 .ascii "File %s opening in file system %d.\n\000" 3812 0000f2dc 20257320 3812 0000f2e0 6f70656e 3812 0000f2e4 696e6720 3812 0000f2e8 696e2066 3812 0000f2ec 696c6520 3812 0000f2f0 73797374 3812 0000f2f4 656d2025 3812 0000f2f8 642e0a00 3813 0000f2fc .align 2 3814 0000f2fc LC3_LF4: 3815 0000f2fc 4f70656e .ascii "Opened %s in FS %d, mode=%d slot=%d.\n\000" 3815 0000f300 65642025 3815 0000f304 7320696e 3815 0000f308 20465320 3815 0000f30c 25642c20 3815 0000f310 6d6f6465 3815 0000f314 3d256420 3815 0000f318 736c6f74 3815 0000f31c 3d25642e 3815 0000f320 0a00 3816 0000f322 .text 3817 00003ef0 .align 2 3818 00003ef0 .proc _FsOpen 3819 00003ef0 .global _FsOpen 3820 00003ef0 _FsOpen: 3821 ; Function 'FsOpen'; 0 bytes of locals, 7 regs to save. 3822 00003ef0 afbefffc sw -4(r29),r30; push fp 3823 00003ef4 001df020 add r30,r0,r29; fp = sp 3824 00003ef8 afbffff8 sw -8(r29),r31; push ret addr 3825 00003efc 2fbd0028 subui r29,r29,#40; alloc local storage 3826 00003f00 afa20000 sw 0(r29),r2 3827 00003f04 afa30004 sw 4(r29),r3 3828 00003f08 afa40008 sw 8(r29),r4 3829 00003f0c afa5000c sw 12(r29),r5 3830 00003f10 afa60010 sw 16(r29),r6 3831 00003f14 afa70014 sw 20(r29),r7 3832 00003f18 afa80018 sw 24(r29),r8 3833 00003f1c 8fc40000 lw r4,(r30) 3834 00003f20 8fc50004 lw r5,4(r30) 3835 00003f24 23bdfff8 addi r29,r29,#-8 3836 00003f28 3c020001 lhi r2,((_debugstr)>>16)&0xffff 3837 00003f2c 24424038 addui r2,r2,(_debugstr)&0xffff 3838 00003f30 afa20000 sw (r29),r2 3839 00003f34 20080066 addi r8,r0,#102 3840 00003f38 afa80004 sw 4(r29),r8 3841 00003f3c 0c00264c jal _dindex 3842 00003f40 54000000 nop; not filled. 3843 00003f44 23bd0008 addi r29,r29,#8 3844 00003f48 64210000 snei r1,r1,#0 3845 00003f4c 1420002c bnez r1,L56_LF4 3846 00003f50 54000000 nop; not filled. 3847 00003f54 23bdfff8 addi r29,r29,#-8 3848 00003f58 afa20000 sw (r29),r2 3849 00003f5c 2008002b addi r8,r0,#43 3850 00003f60 afa80004 sw 4(r29),r8 3851 00003f64 0c002624 jal _dindex 3852 00003f68 54000000 nop; not filled. 3853 00003f6c 23bd0008 addi r29,r29,#8 3854 00003f70 64210000 snei r1,r1,#0 3855 00003f74 10200028 beqz r1,L55_LF4 3856 00003f78 54000000 nop; not filled. 3857 00003f7c L56_LF4: 3858 00003f7c 23bdfff0 addi r29,r29,#-16 3859 00003f80 3c080000 lhi r8,((LC0_LF4)>>16)&0xffff 3860 00003f84 2508f2b0 addui r8,r8,(LC0_LF4)&0xffff 3861 00003f88 afa80000 sw (r29),r8 3862 00003f8c afa40004 sw 4(r29),r4 3863 00003f90 afa50008 sw 8(r29),r5 3864 00003f94 0c00928c jal _printf 3865 00003f98 54000000 nop; not filled. 3866 00003f9c 23bd0010 addi r29,r29,#16 3867 00003fa0 L55_LF4: 3868 00003fa0 30a50003 andi r5,r5,#3 3869 00003fa4 64a10000 snei r1,r5,#0 3870 00003fa8 10200044 beqz r1,L74_LF4 3871 00003fac 54000000 nop; not filled. 3872 00003fb0 20030000 addi r3,r0,#0 3873 00003fb4 3c060000 lhi r6,((_openfiles_LF4)>>16)&0xffff 3874 00003fb8 24c6f388 addui r6,r6,(_openfiles_LF4)&0xffff 3875 00003fbc 00061020 add r2,r0,r6 3876 00003fc0 L61_LF4: 3877 00003fc0 8c410004 lw r1,4(r2) 3878 00003fc4 64210000 snei r1,r1,#0 3879 00003fc8 10200018 beqz r1,L59_LF4 3880 00003fcc 54000000 nop; not filled. 3881 00003fd0 2042010c addi r2,r2,#268 3882 00003fd4 20630001 addi r3,r3,#1 3883 00003fd8 7061001f slei r1,r3,#31 3884 00003fdc 1420ffe0 bnez r1,L61_LF4 3885 00003fe0 54000000 nop; not filled. 3886 00003fe4 L59_LF4: 3887 00003fe4 6c61001f sgti r1,r3,#31 3888 00003fe8 10200010 beqz r1,L64_LF4 3889 00003fec 54000000 nop; not filled. 3890 00003ff0 L74_LF4: 3891 00003ff0 2001ffff addi r1,r0,#-1 3892 00003ff4 08000224 j L73_LF4 3893 00003ff8 54000000 nop; not filled. 3894 00003ffc L64_LF4: 3895 00003ffc 50610004 slli r1,r3,#0x4 3896 00004000 00230820 add r1,r1,r3 3897 00004004 50210002 slli r1,r1,#0x2 3898 00004008 00230822 sub r1,r1,r3 3899 0000400c 50210002 slli r1,r1,#0x2 3900 00004010 00261020 add r2,r1,r6 3901 00004014 ac450004 sw 4(r2),r5 3902 00004018 23bdfff0 addi r29,r29,#-16 3903 0000401c afa40000 sw (r29),r4 3904 00004020 3c010000 lhi r1,((LC1_LF4)>>16)&0xffff 3905 00004024 2421f2d0 addui r1,r1,(LC1_LF4)&0xffff 3906 00004028 afa10004 sw 4(r29),r1 3907 0000402c 20080004 addi r8,r0,#4 3908 00004030 afa80008 sw 8(r29),r8 3909 00004034 0c002210 jal _dstrncmp 3910 00004038 54000000 nop; not filled. 3911 0000403c 23bd0010 addi r29,r29,#16 3912 00004040 64210000 snei r1,r1,#0 3913 00004044 14200014 bnez r1,L65_LF4 3914 00004048 54000000 nop; not filled. 3915 0000404c 20840004 addi r4,r4,#4 3916 00004050 20080001 addi r8,r0,#1 3917 00004054 08000008 j L75_LF4 3918 00004058 54000000 nop; not filled. 3919 0000405c L65_LF4: 3920 0000405c 20080000 addi r8,r0,#0 3921 00004060 L75_LF4: 3922 00004060 ac480000 sw (r2),r8 3923 00004064 23bdfff8 addi r29,r29,#-8 3924 00004068 3c020001 lhi r2,((_debugstr)>>16)&0xffff 3925 0000406c 24424038 addui r2,r2,(_debugstr)&0xffff 3926 00004070 afa20000 sw (r29),r2 3927 00004074 20080066 addi r8,r0,#102 3928 00004078 afa80004 sw 4(r29),r8 3929 0000407c 0c00250c jal _dindex 3930 00004080 54000000 nop; not filled. 3931 00004084 23bd0008 addi r29,r29,#8 3932 00004088 64210000 snei r1,r1,#0 3933 0000408c 1420002c bnez r1,L68_LF4 3934 00004090 54000000 nop; not filled. 3935 00004094 23bdfff8 addi r29,r29,#-8 3936 00004098 afa20000 sw (r29),r2 3937 0000409c 2008002b addi r8,r0,#43 3938 000040a0 afa80004 sw 4(r29),r8 3939 000040a4 0c0024e4 jal _dindex 3940 000040a8 54000000 nop; not filled. 3941 000040ac 23bd0008 addi r29,r29,#8 3942 000040b0 64210000 snei r1,r1,#0 3943 000040b4 1020004c beqz r1,L67_LF4 3944 000040b8 54000000 nop; not filled. 3945 000040bc L68_LF4: 3946 000040bc 23bdfff0 addi r29,r29,#-16 3947 000040c0 3c080000 lhi r8,((LC2_LF4)>>16)&0xffff 3948 000040c4 2508f2d8 addui r8,r8,(LC2_LF4)&0xffff 3949 000040c8 afa80000 sw (r29),r8 3950 000040cc afa40004 sw 4(r29),r4 3951 000040d0 50610004 slli r1,r3,#0x4 3952 000040d4 00230820 add r1,r1,r3 3953 000040d8 50210002 slli r1,r1,#0x2 3954 000040dc 00230822 sub r1,r1,r3 3955 000040e0 50210002 slli r1,r1,#0x2 3956 000040e4 3c080000 lhi r8,((_openfiles_LF4)>>16)&0xffff 3957 000040e8 2508f388 addui r8,r8,(_openfiles_LF4)&0xffff 3958 000040ec 00280820 add r1,r1,r8 3959 000040f0 8c210000 lw r1,(r1) 3960 000040f4 afa10008 sw 8(r29),r1 3961 000040f8 0c009128 jal _printf 3962 000040fc 54000000 nop; not filled. 3963 00004100 23bd0010 addi r29,r29,#16 3964 00004104 L67_LF4: 3965 00004104 23bdfff0 addi r29,r29,#-16 3966 00004108 50610004 slli r1,r3,#0x4 3967 0000410c 00230820 add r1,r1,r3 3968 00004110 50210002 slli r1,r1,#0x2 3969 00004114 00230822 sub r1,r1,r3 3970 00004118 50260002 slli r6,r1,#0x2 3971 0000411c 3c080000 lhi r8,((_openfiles_LF4)>>16)&0xffff 3972 00004120 2508f388 addui r8,r8,(_openfiles_LF4)&0xffff 3973 00004124 00c83820 add r7,r6,r8 3974 00004128 8ce20000 lw r2,(r7) 3975 0000412c 50410001 slli r1,r2,#0x1 3976 00004130 00220820 add r1,r1,r2 3977 00004134 50210003 slli r1,r1,#0x3 3978 00004138 3c080000 lhi r8,((_fs_LF4)>>16)&0xffff 3979 0000413c 2508f358 addui r8,r8,(_fs_LF4)&0xffff 3980 00004140 00280820 add r1,r1,r8 3981 00004144 afa30000 sw (r29),r3 3982 00004148 afa40004 sw 4(r29),r4 3983 0000414c afa50008 sw 8(r29),r5 3984 00004150 8c210000 lw r1,(r1) 3985 00004154 4c200000 jalr r1 3986 00004158 54000000 nop; not filled. 3987 0000415c 00011020 add r2,r0,r1 3988 00004160 23bd0010 addi r29,r29,#16 3989 00004164 68410000 slti r1,r2,#0 3990 00004168 10200024 beqz r1,L69_LF4 3991 0000416c 54000000 nop; not filled. 3992 00004170 3c080000 lhi r8,((_openfiles_LF4)>>16)&0xffff 3993 00004174 2508f388 addui r8,r8,(_openfiles_LF4)&0xffff 3994 00004178 00c80820 add r1,r6,r8 3995 0000417c 20080000 addi r8,r0,#0 3996 00004180 ac280004 sw 4(r1),r8 3997 00004184 00020820 add r1,r0,r2 3998 00004188 08000090 j L73_LF4 3999 0000418c 54000000 nop; not filled. 4000 00004190 L69_LF4: 4001 00004190 23bdfff8 addi r29,r29,#-8 4002 00004194 3c020001 lhi r2,((_debugstr)>>16)&0xffff 4003 00004198 24424038 addui r2,r2,(_debugstr)&0xffff 4004 0000419c afa20000 sw (r29),r2 4005 000041a0 20080066 addi r8,r0,#102 4006 000041a4 afa80004 sw 4(r29),r8 4007 000041a8 0c0023e0 jal _dindex 4008 000041ac 54000000 nop; not filled. 4009 000041b0 23bd0008 addi r29,r29,#8 4010 000041b4 64210000 snei r1,r1,#0 4011 000041b8 1420002c bnez r1,L72_LF4 4012 000041bc 54000000 nop; not filled. 4013 000041c0 23bdfff8 addi r29,r29,#-8 4014 000041c4 afa20000 sw (r29),r2 4015 000041c8 2008002b addi r8,r0,#43 4016 000041cc afa80004 sw 4(r29),r8 4017 000041d0 0c0023b8 jal _dindex 4018 000041d4 54000000 nop; not filled. 4019 000041d8 23bd0008 addi r29,r29,#8 4020 000041dc 64210000 snei r1,r1,#0 4021 000041e0 10200034 beqz r1,L71_LF4 4022 000041e4 54000000 nop; not filled. 4023 000041e8 L72_LF4: 4024 000041e8 23bdffe8 addi r29,r29,#-24 4025 000041ec 3c080000 lhi r8,((LC3_LF4)>>16)&0xffff 4026 000041f0 2508f2fc addui r8,r8,(LC3_LF4)&0xffff 4027 000041f4 afa80000 sw (r29),r8 4028 000041f8 afa40004 sw 4(r29),r4 4029 000041fc 8ce70000 lw r7,(r7) 4030 00004200 afa70008 sw 8(r29),r7 4031 00004204 afa5000c sw 12(r29),r5 4032 00004208 afa30010 sw 16(r29),r3 4033 0000420c 0c009014 jal _printf 4034 00004210 54000000 nop; not filled. 4035 00004214 23bd0018 addi r29,r29,#24 4036 00004218 L71_LF4: 4037 00004218 00030820 add r1,r0,r3 4038 0000421c L73_LF4: 4039 0000421c 8fa20000 lw r2,0(r29) 4040 00004220 8fa30004 lw r3,4(r29) 4041 00004224 8fa40008 lw r4,8(r29) 4042 00004228 8fa5000c lw r5,12(r29) 4043 0000422c 8fa60010 lw r6,16(r29) 4044 00004230 8fa70014 lw r7,20(r29) 4045 00004234 8fa80018 lw r8,24(r29) 4046 00004238 8fdffff8 lw r31,-8(r30) 4047 0000423c 001ee820 add r29,r0,r30 4048 00004240 8fdefffc lw r30,-4(r30) 4049 00004244 4be00000 jr r31 4050 00004248 54000000 nop 4051 0000424c .endproc _FsOpen 4052 0000424c .align 2 4053 0000424c .proc _FsClose 4054 0000424c .global _FsClose 4055 0000424c _FsClose: 4056 ; Function 'FsClose'; 0 bytes of locals, 3 regs to save. 4057 0000424c afbefffc sw -4(r29),r30; push fp 4058 00004250 001df020 add r30,r0,r29; fp = sp 4059 00004254 afbffff8 sw -8(r29),r31; push ret addr 4060 00004258 2fbd0018 subui r29,r29,#24; alloc local storage 4061 0000425c afa20000 sw 0(r29),r2 4062 00004260 afa30004 sw 4(r29),r3 4063 00004264 afa40008 sw 8(r29),r4 4064 00004268 8fdf0000 lw r31,(r30) 4065 0000426c 20020000 addi r2,r0,#0 4066 00004270 23e1ffff addi r1,r31,#-1 4067 00004274 7021001e sleui r1,r1,#30 4068 00004278 10200038 beqz r1,L84_LF4 4069 0000427c 54000000 nop; not filled. 4070 00004280 53e10004 slli r1,r31,#0x4 4071 00004284 003f0820 add r1,r1,r31 4072 00004288 50210002 slli r1,r1,#0x2 4073 0000428c 003f0822 sub r1,r1,r31 4074 00004290 50210002 slli r1,r1,#0x2 4075 00004294 3c040000 lhi r4,((_openfiles_LF4)>>16)&0xffff 4076 00004298 2484f388 addui r4,r4,(_openfiles_LF4)&0xffff 4077 0000429c 00240820 add r1,r1,r4 4078 000042a0 8c210004 lw r1,4(r1) 4079 000042a4 64210000 snei r1,r1,#0 4080 000042a8 10200008 beqz r1,L84_LF4 4081 000042ac 54000000 nop; not filled. 4082 000042b0 20020001 addi r2,r0,#1 4083 000042b4 L84_LF4: 4084 000042b4 64410000 snei r1,r2,#0 4085 000042b8 10200074 beqz r1,L82_LF4 4086 000042bc 54000000 nop; not filled. 4087 000042c0 23bdfff8 addi r29,r29,#-8 4088 000042c4 53e10004 slli r1,r31,#0x4 4089 000042c8 003f0820 add r1,r1,r31 4090 000042cc 50210002 slli r1,r1,#0x2 4091 000042d0 003f0822 sub r1,r1,r31 4092 000042d4 50230002 slli r3,r1,#0x2 4093 000042d8 3c040000 lhi r4,((_openfiles_LF4)>>16)&0xffff 4094 000042dc 2484f388 addui r4,r4,(_openfiles_LF4)&0xffff 4095 000042e0 00640820 add r1,r3,r4 4096 000042e4 8c220000 lw r2,(r1) 4097 000042e8 50410001 slli r1,r2,#0x1 4098 000042ec 00220820 add r1,r1,r2 4099 000042f0 50210003 slli r1,r1,#0x3 4100 000042f4 3c040000 lhi r4,((_fs_LF4)>>16)&0xffff 4101 000042f8 2484f358 addui r4,r4,(_fs_LF4)&0xffff 4102 000042fc 00240820 add r1,r1,r4 4103 00004300 afbf0000 sw (r29),r31 4104 00004304 8c210010 lw r1,16(r1) 4105 00004308 4c200000 jalr r1 4106 0000430c 54000000 nop; not filled. 4107 00004310 23bd0008 addi r29,r29,#8 4108 00004314 3c040000 lhi r4,((_openfiles_LF4)>>16)&0xffff 4109 00004318 2484f388 addui r4,r4,(_openfiles_LF4)&0xffff 4110 0000431c 00641020 add r2,r3,r4 4111 00004320 20040000 addi r4,r0,#0 4112 00004324 ac440004 sw 4(r2),r4 4113 00004328 08000008 j L86_LF4 4114 0000432c 54000000 nop; not filled. 4115 00004330 L82_LF4: 4116 00004330 2001ffff addi r1,r0,#-1 4117 00004334 L86_LF4: 4118 00004334 8fa20000 lw r2,0(r29) 4119 00004338 8fa30004 lw r3,4(r29) 4120 0000433c 8fa40008 lw r4,8(r29) 4121 00004340 8fdffff8 lw r31,-8(r30) 4122 00004344 001ee820 add r29,r0,r30 4123 00004348 8fdefffc lw r30,-4(r30) 4124 0000434c 4be00000 jr r31 4125 00004350 54000000 nop 4126 00004354 .endproc _FsClose 4127 00004354 .align 2 4128 00004354 .proc _FsRead 4129 00004354 .global _FsRead 4130 00004354 _FsRead: 4131 ; Function 'FsRead'; 0 bytes of locals, 2 regs to save. 4132 00004354 afbefffc sw -4(r29),r30; push fp 4133 00004358 001df020 add r30,r0,r29; fp = sp 4134 0000435c afbffff8 sw -8(r29),r31; push ret addr 4135 00004360 2fbd0010 subui r29,r29,#16; alloc local storage 4136 00004364 afa20000 sw 0(r29),r2 4137 00004368 afa30004 sw 4(r29),r3 4138 0000436c 8fdf0000 lw r31,(r30) 4139 00004370 20020000 addi r2,r0,#0 4140 00004374 23e1ffff addi r1,r31,#-1 4141 00004378 7021001e sleui r1,r1,#30 4142 0000437c 10200038 beqz r1,L94_LF4 4143 00004380 54000000 nop; not filled. 4144 00004384 53e10004 slli r1,r31,#0x4 4145 00004388 003f0820 add r1,r1,r31 4146 0000438c 50210002 slli r1,r1,#0x2 4147 00004390 003f0822 sub r1,r1,r31 4148 00004394 50210002 slli r1,r1,#0x2 4149 00004398 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4150 0000439c 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4151 000043a0 00230820 add r1,r1,r3 4152 000043a4 8c210004 lw r1,4(r1) 4153 000043a8 64210000 snei r1,r1,#0 4154 000043ac 10200008 beqz r1,L94_LF4 4155 000043b0 54000000 nop; not filled. 4156 000043b4 20020001 addi r2,r0,#1 4157 000043b8 L94_LF4: 4158 000043b8 64410000 snei r1,r2,#0 4159 000043bc 10200070 beqz r1,L92_LF4 4160 000043c0 54000000 nop; not filled. 4161 000043c4 23bdfff0 addi r29,r29,#-16 4162 000043c8 53e10004 slli r1,r31,#0x4 4163 000043cc 003f0820 add r1,r1,r31 4164 000043d0 50210002 slli r1,r1,#0x2 4165 000043d4 003f0822 sub r1,r1,r31 4166 000043d8 50210002 slli r1,r1,#0x2 4167 000043dc 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4168 000043e0 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4169 000043e4 00230820 add r1,r1,r3 4170 000043e8 8c220000 lw r2,(r1) 4171 000043ec 50410001 slli r1,r2,#0x1 4172 000043f0 00220820 add r1,r1,r2 4173 000043f4 50210003 slli r1,r1,#0x3 4174 000043f8 3c030000 lhi r3,((_fs_LF4)>>16)&0xffff 4175 000043fc 2463f358 addui r3,r3,(_fs_LF4)&0xffff 4176 00004400 00230820 add r1,r1,r3 4177 00004404 afbf0000 sw (r29),r31 4178 00004408 8fc30004 lw r3,4(r30) 4179 0000440c afa30004 sw 4(r29),r3 4180 00004410 8fc30008 lw r3,8(r30) 4181 00004414 afa30008 sw 8(r29),r3 4182 00004418 8c210004 lw r1,4(r1) 4183 0000441c 4c200000 jalr r1 4184 00004420 54000000 nop; not filled. 4185 00004424 23bd0010 addi r29,r29,#16 4186 00004428 08000008 j L91_LF4 4187 0000442c 54000000 nop; not filled. 4188 00004430 L92_LF4: 4189 00004430 2001ffff addi r1,r0,#-1 4190 00004434 L91_LF4: 4191 00004434 8fa20000 lw r2,0(r29) 4192 00004438 8fa30004 lw r3,4(r29) 4193 0000443c 8fdffff8 lw r31,-8(r30) 4194 00004440 001ee820 add r29,r0,r30 4195 00004444 8fdefffc lw r30,-4(r30) 4196 00004448 4be00000 jr r31 4197 0000444c 54000000 nop 4198 00004450 .endproc _FsRead 4199 00004450 .align 2 4200 00004450 .proc _FsWrite 4201 00004450 .global _FsWrite 4202 00004450 _FsWrite: 4203 ; Function 'FsWrite'; 0 bytes of locals, 2 regs to save. 4204 00004450 afbefffc sw -4(r29),r30; push fp 4205 00004454 001df020 add r30,r0,r29; fp = sp 4206 00004458 afbffff8 sw -8(r29),r31; push ret addr 4207 0000445c 2fbd0010 subui r29,r29,#16; alloc local storage 4208 00004460 afa20000 sw 0(r29),r2 4209 00004464 afa30004 sw 4(r29),r3 4210 00004468 8fdf0000 lw r31,(r30) 4211 0000446c 20020000 addi r2,r0,#0 4212 00004470 23e1ffff addi r1,r31,#-1 4213 00004474 7021001e sleui r1,r1,#30 4214 00004478 10200038 beqz r1,L103_LF4 4215 0000447c 54000000 nop; not filled. 4216 00004480 53e10004 slli r1,r31,#0x4 4217 00004484 003f0820 add r1,r1,r31 4218 00004488 50210002 slli r1,r1,#0x2 4219 0000448c 003f0822 sub r1,r1,r31 4220 00004490 50210002 slli r1,r1,#0x2 4221 00004494 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4222 00004498 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4223 0000449c 00230820 add r1,r1,r3 4224 000044a0 8c210004 lw r1,4(r1) 4225 000044a4 64210000 snei r1,r1,#0 4226 000044a8 10200008 beqz r1,L103_LF4 4227 000044ac 54000000 nop; not filled. 4228 000044b0 20020001 addi r2,r0,#1 4229 000044b4 L103_LF4: 4230 000044b4 64410000 snei r1,r2,#0 4231 000044b8 10200070 beqz r1,L101_LF4 4232 000044bc 54000000 nop; not filled. 4233 000044c0 23bdfff0 addi r29,r29,#-16 4234 000044c4 53e10004 slli r1,r31,#0x4 4235 000044c8 003f0820 add r1,r1,r31 4236 000044cc 50210002 slli r1,r1,#0x2 4237 000044d0 003f0822 sub r1,r1,r31 4238 000044d4 50210002 slli r1,r1,#0x2 4239 000044d8 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4240 000044dc 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4241 000044e0 00230820 add r1,r1,r3 4242 000044e4 8c220000 lw r2,(r1) 4243 000044e8 50410001 slli r1,r2,#0x1 4244 000044ec 00220820 add r1,r1,r2 4245 000044f0 50210003 slli r1,r1,#0x3 4246 000044f4 3c030000 lhi r3,((_fs_LF4)>>16)&0xffff 4247 000044f8 2463f358 addui r3,r3,(_fs_LF4)&0xffff 4248 000044fc 00230820 add r1,r1,r3 4249 00004500 afbf0000 sw (r29),r31 4250 00004504 8fc30004 lw r3,4(r30) 4251 00004508 afa30004 sw 4(r29),r3 4252 0000450c 8fc30008 lw r3,8(r30) 4253 00004510 afa30008 sw 8(r29),r3 4254 00004514 8c210008 lw r1,8(r1) 4255 00004518 4c200000 jalr r1 4256 0000451c 54000000 nop; not filled. 4257 00004520 23bd0010 addi r29,r29,#16 4258 00004524 08000008 j L100_LF4 4259 00004528 54000000 nop; not filled. 4260 0000452c L101_LF4: 4261 0000452c 2001ffff addi r1,r0,#-1 4262 00004530 L100_LF4: 4263 00004530 8fa20000 lw r2,0(r29) 4264 00004534 8fa30004 lw r3,4(r29) 4265 00004538 8fdffff8 lw r31,-8(r30) 4266 0000453c 001ee820 add r29,r0,r30 4267 00004540 8fdefffc lw r30,-4(r30) 4268 00004544 4be00000 jr r31 4269 00004548 54000000 nop 4270 0000454c .endproc _FsWrite 4271 0000454c .align 2 4272 0000454c .proc _FsSeek 4273 0000454c .global _FsSeek 4274 0000454c _FsSeek: 4275 ; Function 'FsSeek'; 0 bytes of locals, 2 regs to save. 4276 0000454c afbefffc sw -4(r29),r30; push fp 4277 00004550 001df020 add r30,r0,r29; fp = sp 4278 00004554 afbffff8 sw -8(r29),r31; push ret addr 4279 00004558 2fbd0010 subui r29,r29,#16; alloc local storage 4280 0000455c afa20000 sw 0(r29),r2 4281 00004560 afa30004 sw 4(r29),r3 4282 00004564 8fdf0000 lw r31,(r30) 4283 00004568 20020000 addi r2,r0,#0 4284 0000456c 23e1ffff addi r1,r31,#-1 4285 00004570 7021001e sleui r1,r1,#30 4286 00004574 10200038 beqz r1,L112_LF4 4287 00004578 54000000 nop; not filled. 4288 0000457c 53e10004 slli r1,r31,#0x4 4289 00004580 003f0820 add r1,r1,r31 4290 00004584 50210002 slli r1,r1,#0x2 4291 00004588 003f0822 sub r1,r1,r31 4292 0000458c 50210002 slli r1,r1,#0x2 4293 00004590 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4294 00004594 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4295 00004598 00230820 add r1,r1,r3 4296 0000459c 8c210004 lw r1,4(r1) 4297 000045a0 64210000 snei r1,r1,#0 4298 000045a4 10200008 beqz r1,L112_LF4 4299 000045a8 54000000 nop; not filled. 4300 000045ac 20020001 addi r2,r0,#1 4301 000045b0 L112_LF4: 4302 000045b0 64410000 snei r1,r2,#0 4303 000045b4 10200070 beqz r1,L110_LF4 4304 000045b8 54000000 nop; not filled. 4305 000045bc 23bdfff0 addi r29,r29,#-16 4306 000045c0 53e10004 slli r1,r31,#0x4 4307 000045c4 003f0820 add r1,r1,r31 4308 000045c8 50210002 slli r1,r1,#0x2 4309 000045cc 003f0822 sub r1,r1,r31 4310 000045d0 50210002 slli r1,r1,#0x2 4311 000045d4 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4312 000045d8 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4313 000045dc 00230820 add r1,r1,r3 4314 000045e0 8c220000 lw r2,(r1) 4315 000045e4 50410001 slli r1,r2,#0x1 4316 000045e8 00220820 add r1,r1,r2 4317 000045ec 50210003 slli r1,r1,#0x3 4318 000045f0 3c030000 lhi r3,((_fs_LF4)>>16)&0xffff 4319 000045f4 2463f358 addui r3,r3,(_fs_LF4)&0xffff 4320 000045f8 00230820 add r1,r1,r3 4321 000045fc afbf0000 sw (r29),r31 4322 00004600 8fc30004 lw r3,4(r30) 4323 00004604 afa30004 sw 4(r29),r3 4324 00004608 8fc30008 lw r3,8(r30) 4325 0000460c afa30008 sw 8(r29),r3 4326 00004610 8c21000c lw r1,12(r1) 4327 00004614 4c200000 jalr r1 4328 00004618 54000000 nop; not filled. 4329 0000461c 23bd0010 addi r29,r29,#16 4330 00004620 08000008 j L109_LF4 4331 00004624 54000000 nop; not filled. 4332 00004628 L110_LF4: 4333 00004628 2001ffff addi r1,r0,#-1 4334 0000462c L109_LF4: 4335 0000462c 8fa20000 lw r2,0(r29) 4336 00004630 8fa30004 lw r3,4(r29) 4337 00004634 8fdffff8 lw r31,-8(r30) 4338 00004638 001ee820 add r29,r0,r30 4339 0000463c 8fdefffc lw r30,-4(r30) 4340 00004640 4be00000 jr r31 4341 00004644 54000000 nop 4342 00004648 .endproc _FsSeek 4343 00004648 .align 2 4344 00004648 .proc _FsDelete 4345 00004648 .global _FsDelete 4346 00004648 _FsDelete: 4347 ; Function 'FsDelete'; 0 bytes of locals, 2 regs to save. 4348 00004648 afbefffc sw -4(r29),r30; push fp 4349 0000464c 001df020 add r30,r0,r29; fp = sp 4350 00004650 afbffff8 sw -8(r29),r31; push ret addr 4351 00004654 2fbd0010 subui r29,r29,#16; alloc local storage 4352 00004658 afa20000 sw 0(r29),r2 4353 0000465c afa30004 sw 4(r29),r3 4354 00004660 8fc20000 lw r2,(r30) 4355 00004664 23bdfff0 addi r29,r29,#-16 4356 00004668 afa20000 sw (r29),r2 4357 0000466c 3c010000 lhi r1,((LC1_LF4)>>16)&0xffff 4358 00004670 2421f2d0 addui r1,r1,(LC1_LF4)&0xffff 4359 00004674 afa10004 sw 4(r29),r1 4360 00004678 20030004 addi r3,r0,#4 4361 0000467c afa30008 sw 8(r29),r3 4362 00004680 0c001bc4 jal _dstrncmp 4363 00004684 54000000 nop; not filled. 4364 00004688 23bd0010 addi r29,r29,#16 4365 0000468c 64210000 snei r1,r1,#0 4366 00004690 1420001c bnez r1,L118_LF4 4367 00004694 54000000 nop; not filled. 4368 00004698 20420004 addi r2,r2,#4 4369 0000469c 23bdfff8 addi r29,r29,#-8 4370 000046a0 3c010000 lhi r1,((_fs_LF4+44)>>16)&0xffff 4371 000046a4 2421f384 addui r1,r1,(_fs_LF4+44)&0xffff 4372 000046a8 08000010 j L120_LF4 4373 000046ac 54000000 nop; not filled. 4374 000046b0 L118_LF4: 4375 000046b0 23bdfff8 addi r29,r29,#-8 4376 000046b4 3c010000 lhi r1,((_fs_LF4+20)>>16)&0xffff 4377 000046b8 2421f36c addui r1,r1,(_fs_LF4+20)&0xffff 4378 000046bc L120_LF4: 4379 000046bc afa20000 sw (r29),r2 4380 000046c0 8c210000 lw r1,(r1) 4381 000046c4 4c200000 jalr r1 4382 000046c8 54000000 nop; not filled. 4383 000046cc 23bd0008 addi r29,r29,#8 4384 000046d0 8fa20000 lw r2,0(r29) 4385 000046d4 8fa30004 lw r3,4(r29) 4386 000046d8 8fdffff8 lw r31,-8(r30) 4387 000046dc 001ee820 add r29,r0,r30 4388 000046e0 8fdefffc lw r30,-4(r30) 4389 000046e4 4be00000 jr r31 4390 000046e8 54000000 nop 4391 000046ec .endproc _FsDelete 4392 000046ec .data 4393 0000f322 .align 2 4394 0000f324 LC4_LF4: 4395 0000f324 41747465 .ascii "Attempting to open file %s into desc %d, mode %d.\n\000" 4395 0000f328 6d707469 4395 0000f32c 6e672074 4395 0000f330 6f206f70 4395 0000f334 656e2066 4395 0000f338 696c6520 4395 0000f33c 25732069 4395 0000f340 6e746f20 4395 0000f344 64657363 4395 0000f348 2025642c 4395 0000f34c 206d6f64 4395 0000f350 65202564 4395 0000f354 2e0a00 4396 0000f357 .text 4397 000046ec .align 2 4398 000046ec .proc _FsUnixOpen 4399 000046ec .global _FsUnixOpen 4400 000046ec _FsUnixOpen: 4401 ; Function 'FsUnixOpen'; 0 bytes of locals, 5 regs to save. 4402 000046ec afbefffc sw -4(r29),r30; push fp 4403 000046f0 001df020 add r30,r0,r29; fp = sp 4404 000046f4 afbffff8 sw -8(r29),r31; push ret addr 4405 000046f8 2fbd0020 subui r29,r29,#32; alloc local storage 4406 000046fc afa20000 sw 0(r29),r2 4407 00004700 afa30004 sw 4(r29),r3 4408 00004704 afa40008 sw 8(r29),r4 4409 00004708 afa5000c sw 12(r29),r5 4410 0000470c afa60010 sw 16(r29),r6 4411 00004710 8fc40000 lw r4,(r30) 4412 00004714 8fc30004 lw r3,4(r30) 4413 00004718 8fc50008 lw r5,8(r30) 4414 0000471c 23bdfff8 addi r29,r29,#-8 4415 00004720 3c020001 lhi r2,((_debugstr)>>16)&0xffff 4416 00004724 24424038 addui r2,r2,(_debugstr)&0xffff 4417 00004728 afa20000 sw (r29),r2 4418 0000472c 20060066 addi r6,r0,#102 4419 00004730 afa60004 sw 4(r29),r6 4420 00004734 0c001e54 jal _dindex 4421 00004738 54000000 nop; not filled. 4422 0000473c 23bd0008 addi r29,r29,#8 4423 00004740 64210000 snei r1,r1,#0 4424 00004744 1420002c bnez r1,L127_LF4 4425 00004748 54000000 nop; not filled. 4426 0000474c 23bdfff8 addi r29,r29,#-8 4427 00004750 afa20000 sw (r29),r2 4428 00004754 2006002b addi r6,r0,#43 4429 00004758 afa60004 sw 4(r29),r6 4430 0000475c 0c001e2c jal _dindex 4431 00004760 54000000 nop; not filled. 4432 00004764 23bd0008 addi r29,r29,#8 4433 00004768 64210000 snei r1,r1,#0 4434 0000476c 1020002c beqz r1,L126_LF4 4435 00004770 54000000 nop; not filled. 4436 00004774 L127_LF4: 4437 00004774 23bdfff0 addi r29,r29,#-16 4438 00004778 3c060000 lhi r6,((LC4_LF4)>>16)&0xffff 4439 0000477c 24c6f324 addui r6,r6,(LC4_LF4)&0xffff 4440 00004780 afa60000 sw (r29),r6 4441 00004784 afa30004 sw 4(r29),r3 4442 00004788 afa40008 sw 8(r29),r4 4443 0000478c afa5000c sw 12(r29),r5 4444 00004790 0c008a90 jal _printf 4445 00004794 54000000 nop; not filled. 4446 00004798 23bd0010 addi r29,r29,#16 4447 0000479c L126_LF4: 4448 0000479c 23bdfff8 addi r29,r29,#-8 4449 000047a0 afa30000 sw (r29),r3 4450 000047a4 afa50004 sw 4(r29),r5 4451 000047a8 0c0089e8 jal _open 4452 000047ac 54000000 nop; not filled. 4453 000047b0 00011820 add r3,r0,r1 4454 000047b4 50810004 slli r1,r4,#0x4 4455 000047b8 00240820 add r1,r1,r4 4456 000047bc 50210002 slli r1,r1,#0x2 4457 000047c0 00240822 sub r1,r1,r4 4458 000047c4 50210002 slli r1,r1,#0x2 4459 000047c8 3c060000 lhi r6,((_openfiles_LF4)>>16)&0xffff 4460 000047cc 24c6f388 addui r6,r6,(_openfiles_LF4)&0xffff 4461 000047d0 00260820 add r1,r1,r6 4462 000047d4 ac230108 sw 264(r1),r3 4463 000047d8 23bd0008 addi r29,r29,#8 4464 000047dc 68620000 slti r2,r3,#0 4465 000047e0 00030820 add r1,r0,r3 4466 000047e4 14400008 bnez r2,L128_LF4 4467 000047e8 54000000 nop; not filled. 4468 000047ec 20010001 addi r1,r0,#1 4469 000047f0 L128_LF4: 4470 000047f0 8fa20000 lw r2,0(r29) 4471 000047f4 8fa30004 lw r3,4(r29) 4472 000047f8 8fa40008 lw r4,8(r29) 4473 000047fc 8fa5000c lw r5,12(r29) 4474 00004800 8fa60010 lw r6,16(r29) 4475 00004804 8fdffff8 lw r31,-8(r30) 4476 00004808 001ee820 add r29,r0,r30 4477 0000480c 8fdefffc lw r30,-4(r30) 4478 00004810 4be00000 jr r31 4479 00004814 54000000 nop 4480 00004818 .endproc _FsUnixOpen 4481 00004818 .align 2 4482 00004818 .proc _FsUnixRead 4483 00004818 .global _FsUnixRead 4484 00004818 _FsUnixRead: 4485 ; Function 'FsUnixRead'; 0 bytes of locals, 4 regs to save. 4486 00004818 afbefffc sw -4(r29),r30; push fp 4487 0000481c 001df020 add r30,r0,r29; fp = sp 4488 00004820 afbffff8 sw -8(r29),r31; push ret addr 4489 00004824 2fbd0018 subui r29,r29,#24; alloc local storage 4490 00004828 afa20000 sw 0(r29),r2 4491 0000482c afa30004 sw 4(r29),r3 4492 00004830 afa40008 sw 8(r29),r4 4493 00004834 afa5000c sw 12(r29),r5 4494 00004838 8fc20000 lw r2,(r30) 4495 0000483c 8fc30004 lw r3,4(r30) 4496 00004840 8fc40008 lw r4,8(r30) 4497 00004844 23bdfff0 addi r29,r29,#-16 4498 00004848 50410004 slli r1,r2,#0x4 4499 0000484c 00220820 add r1,r1,r2 4500 00004850 50210002 slli r1,r1,#0x2 4501 00004854 00220822 sub r1,r1,r2 4502 00004858 50210002 slli r1,r1,#0x2 4503 0000485c 3c050000 lhi r5,((_openfiles_LF4)>>16)&0xffff 4504 00004860 24a5f388 addui r5,r5,(_openfiles_LF4)&0xffff 4505 00004864 00250820 add r1,r1,r5 4506 00004868 8c210108 lw r1,264(r1) 4507 0000486c afa10000 sw (r29),r1 4508 00004870 afa30004 sw 4(r29),r3 4509 00004874 afa40008 sw 8(r29),r4 4510 00004878 0c008930 jal _read 4511 0000487c 54000000 nop; not filled. 4512 00004880 23bd0010 addi r29,r29,#16 4513 00004884 8fa20000 lw r2,0(r29) 4514 00004888 8fa30004 lw r3,4(r29) 4515 0000488c 8fa40008 lw r4,8(r29) 4516 00004890 8fa5000c lw r5,12(r29) 4517 00004894 8fdffff8 lw r31,-8(r30) 4518 00004898 001ee820 add r29,r0,r30 4519 0000489c 8fdefffc lw r30,-4(r30) 4520 000048a0 4be00000 jr r31 4521 000048a4 54000000 nop 4522 000048a8 .endproc _FsUnixRead 4523 000048a8 .align 2 4524 000048a8 .proc _FsUnixWrite 4525 000048a8 .global _FsUnixWrite 4526 000048a8 _FsUnixWrite: 4527 ; Function 'FsUnixWrite'; 0 bytes of locals, 4 regs to save. 4528 000048a8 afbefffc sw -4(r29),r30; push fp 4529 000048ac 001df020 add r30,r0,r29; fp = sp 4530 000048b0 afbffff8 sw -8(r29),r31; push ret addr 4531 000048b4 2fbd0018 subui r29,r29,#24; alloc local storage 4532 000048b8 afa20000 sw 0(r29),r2 4533 000048bc afa30004 sw 4(r29),r3 4534 000048c0 afa40008 sw 8(r29),r4 4535 000048c4 afa5000c sw 12(r29),r5 4536 000048c8 8fc20000 lw r2,(r30) 4537 000048cc 8fc30004 lw r3,4(r30) 4538 000048d0 8fc40008 lw r4,8(r30) 4539 000048d4 23bdfff0 addi r29,r29,#-16 4540 000048d8 50410004 slli r1,r2,#0x4 4541 000048dc 00220820 add r1,r1,r2 4542 000048e0 50210002 slli r1,r1,#0x2 4543 000048e4 00220822 sub r1,r1,r2 4544 000048e8 50210002 slli r1,r1,#0x2 4545 000048ec 3c050000 lhi r5,((_openfiles_LF4)>>16)&0xffff 4546 000048f0 24a5f388 addui r5,r5,(_openfiles_LF4)&0xffff 4547 000048f4 00250820 add r1,r1,r5 4548 000048f8 8c210108 lw r1,264(r1) 4549 000048fc afa10000 sw (r29),r1 4550 00004900 afa30004 sw 4(r29),r3 4551 00004904 afa40008 sw 8(r29),r4 4552 00004908 0c0088ac jal _write 4553 0000490c 54000000 nop; not filled. 4554 00004910 23bd0010 addi r29,r29,#16 4555 00004914 8fa20000 lw r2,0(r29) 4556 00004918 8fa30004 lw r3,4(r29) 4557 0000491c 8fa40008 lw r4,8(r29) 4558 00004920 8fa5000c lw r5,12(r29) 4559 00004924 8fdffff8 lw r31,-8(r30) 4560 00004928 001ee820 add r29,r0,r30 4561 0000492c 8fdefffc lw r30,-4(r30) 4562 00004930 4be00000 jr r31 4563 00004934 54000000 nop 4564 00004938 .endproc _FsUnixWrite 4565 00004938 .align 2 4566 00004938 .proc _FsUnixSeek 4567 00004938 .global _FsUnixSeek 4568 00004938 _FsUnixSeek: 4569 ; Function 'FsUnixSeek'; 0 bytes of locals, 4 regs to save. 4570 00004938 afbefffc sw -4(r29),r30; push fp 4571 0000493c 001df020 add r30,r0,r29; fp = sp 4572 00004940 afbffff8 sw -8(r29),r31; push ret addr 4573 00004944 2fbd0018 subui r29,r29,#24; alloc local storage 4574 00004948 afa20000 sw 0(r29),r2 4575 0000494c afa30004 sw 4(r29),r3 4576 00004950 afa40008 sw 8(r29),r4 4577 00004954 afa5000c sw 12(r29),r5 4578 00004958 8fc20000 lw r2,(r30) 4579 0000495c 8fc30004 lw r3,4(r30) 4580 00004960 8fc40008 lw r4,8(r30) 4581 00004964 23bdfff0 addi r29,r29,#-16 4582 00004968 50410004 slli r1,r2,#0x4 4583 0000496c 00220820 add r1,r1,r2 4584 00004970 50210002 slli r1,r1,#0x2 4585 00004974 00220822 sub r1,r1,r2 4586 00004978 50210002 slli r1,r1,#0x2 4587 0000497c 3c050000 lhi r5,((_openfiles_LF4)>>16)&0xffff 4588 00004980 24a5f388 addui r5,r5,(_openfiles_LF4)&0xffff 4589 00004984 00250820 add r1,r1,r5 4590 00004988 8c210108 lw r1,264(r1) 4591 0000498c afa10000 sw (r29),r1 4592 00004990 afa30004 sw 4(r29),r3 4593 00004994 afa40008 sw 8(r29),r4 4594 00004998 0c008828 jal _lseek 4595 0000499c 54000000 nop; not filled. 4596 000049a0 23bd0010 addi r29,r29,#16 4597 000049a4 8fa20000 lw r2,0(r29) 4598 000049a8 8fa30004 lw r3,4(r29) 4599 000049ac 8fa40008 lw r4,8(r29) 4600 000049b0 8fa5000c lw r5,12(r29) 4601 000049b4 8fdffff8 lw r31,-8(r30) 4602 000049b8 001ee820 add r29,r0,r30 4603 000049bc 8fdefffc lw r30,-4(r30) 4604 000049c0 4be00000 jr r31 4605 000049c4 54000000 nop 4606 000049c8 .endproc _FsUnixSeek 4607 000049c8 .align 2 4608 000049c8 .proc _FsUnixClose 4609 000049c8 .global _FsUnixClose 4610 000049c8 _FsUnixClose: 4611 ; Function 'FsUnixClose'; 0 bytes of locals, 2 regs to save. 4612 000049c8 afbefffc sw -4(r29),r30; push fp 4613 000049cc 001df020 add r30,r0,r29; fp = sp 4614 000049d0 afbffff8 sw -8(r29),r31; push ret addr 4615 000049d4 2fbd0010 subui r29,r29,#16; alloc local storage 4616 000049d8 afa20000 sw 0(r29),r2 4617 000049dc afa30004 sw 4(r29),r3 4618 000049e0 8fc20000 lw r2,(r30) 4619 000049e4 23bdfff8 addi r29,r29,#-8 4620 000049e8 50410004 slli r1,r2,#0x4 4621 000049ec 00220820 add r1,r1,r2 4622 000049f0 50210002 slli r1,r1,#0x2 4623 000049f4 00220822 sub r1,r1,r2 4624 000049f8 50210002 slli r1,r1,#0x2 4625 000049fc 3c030000 lhi r3,((_openfiles_LF4)>>16)&0xffff 4626 00004a00 2463f388 addui r3,r3,(_openfiles_LF4)&0xffff 4627 00004a04 00230820 add r1,r1,r3 4628 00004a08 8c210108 lw r1,264(r1) 4629 00004a0c afa10000 sw (r29),r1 4630 00004a10 0c00878c jal _close 4631 00004a14 54000000 nop; not filled. 4632 00004a18 23bd0008 addi r29,r29,#8 4633 00004a1c 8fa20000 lw r2,0(r29) 4634 00004a20 8fa30004 lw r3,4(r29) 4635 00004a24 8fdffff8 lw r31,-8(r30) 4636 00004a28 001ee820 add r29,r0,r30 4637 00004a2c 8fdefffc lw r30,-4(r30) 4638 00004a30 4be00000 jr r31 4639 00004a34 54000000 nop 4640 00004a38 .endproc _FsUnixClose 4641 00004a38 .align 2 4642 00004a38 .proc _FsUnixDelete 4643 00004a38 .global _FsUnixDelete 4644 00004a38 _FsUnixDelete: 4645 ; Function 'FsUnixDelete'; 0 bytes of locals, 0 regs to save. 4646 00004a38 afbefffc sw -4(r29),r30; push fp 4647 00004a3c 001df020 add r30,r0,r29; fp = sp 4648 00004a40 afbffff8 sw -8(r29),r31; push ret addr 4649 00004a44 2fbd0008 subui r29,r29,#8; alloc local storage 4650 00004a48 2001ffff addi r1,r0,#-1 4651 00004a4c 8fdffff8 lw r31,-8(r30) 4652 00004a50 001ee820 add r29,r0,r30 4653 00004a54 8fdefffc lw r30,-4(r30) 4654 00004a58 4be00000 jr r31 4655 00004a5c 54000000 nop 4656 00004a60 .endproc _FsUnixDelete 4657 00004a60 .align 2 4658 00004a60 .proc _FsDlxIo 4659 00004a60 .global _FsDlxIo 4660 00004a60 _FsDlxIo: 4661 ; Function 'FsDlxIo'; 0 bytes of locals, 0 regs to save. 4662 00004a60 afbefffc sw -4(r29),r30; push fp 4663 00004a64 001df020 add r30,r0,r29; fp = sp 4664 00004a68 afbffff8 sw -8(r29),r31; push ret addr 4665 00004a6c 2fbd0008 subui r29,r29,#8; alloc local storage 4666 00004a70 20010001 addi r1,r0,#1 4667 00004a74 8fdffff8 lw r31,-8(r30) 4668 00004a78 001ee820 add r29,r0,r30 4669 00004a7c 8fdefffc lw r30,-4(r30) 4670 00004a80 4be00000 jr r31 4671 00004a84 54000000 nop 4672 00004a88 .endproc _FsDlxIo 4673 00004a88 .align 2 4674 00004a88 .proc _FsDlxRead 4675 00004a88 .global _FsDlxRead 4676 00004a88 _FsDlxRead: 4677 ; Function 'FsDlxRead'; 0 bytes of locals, 0 regs to save. 4678 00004a88 afbefffc sw -4(r29),r30; push fp 4679 00004a8c 001df020 add r30,r0,r29; fp = sp 4680 00004a90 afbffff8 sw -8(r29),r31; push ret addr 4681 00004a94 2fbd0008 subui r29,r29,#8; alloc local storage 4682 00004a98 20010001 addi r1,r0,#1 4683 00004a9c 8fdffff8 lw r31,-8(r30) 4684 00004aa0 001ee820 add r29,r0,r30 4685 00004aa4 8fdefffc lw r30,-4(r30) 4686 00004aa8 4be00000 jr r31 4687 00004aac 54000000 nop 4688 00004ab0 .endproc _FsDlxRead 4689 00004ab0 .align 2 4690 00004ab0 .proc _FsDlxWrite 4691 00004ab0 .global _FsDlxWrite 4692 00004ab0 _FsDlxWrite: 4693 ; Function 'FsDlxWrite'; 0 bytes of locals, 0 regs to save. 4694 00004ab0 afbefffc sw -4(r29),r30; push fp 4695 00004ab4 001df020 add r30,r0,r29; fp = sp 4696 00004ab8 afbffff8 sw -8(r29),r31; push ret addr 4697 00004abc 2fbd0008 subui r29,r29,#8; alloc local storage 4698 00004ac0 20010001 addi r1,r0,#1 4699 00004ac4 8fdffff8 lw r31,-8(r30) 4700 00004ac8 001ee820 add r29,r0,r30 4701 00004acc 8fdefffc lw r30,-4(r30) 4702 00004ad0 4be00000 jr r31 4703 00004ad4 54000000 nop 4704 00004ad8 .endproc _FsDlxWrite 4705 00004ad8 .align 2 4706 00004ad8 .proc _FsDlxOpen 4707 00004ad8 .global _FsDlxOpen 4708 00004ad8 _FsDlxOpen: 4709 ; Function 'FsDlxOpen'; 0 bytes of locals, 1 regs to save. 4710 00004ad8 afbefffc sw -4(r29),r30; push fp 4711 00004adc 001df020 add r30,r0,r29; fp = sp 4712 00004ae0 afbffff8 sw -8(r29),r31; push ret addr 4713 00004ae4 2fbd0010 subui r29,r29,#16; alloc local storage 4714 00004ae8 afa20000 sw 0(r29),r2 4715 00004aec 8fc10000 lw r1,(r30) 4716 00004af0 50220004 slli r2,r1,#0x4 4717 00004af4 00411020 add r2,r2,r1 4718 00004af8 50420002 slli r2,r2,#0x2 4719 00004afc 00410822 sub r1,r2,r1 4720 00004b00 50210002 slli r1,r1,#0x2 4721 00004b04 3c1f0000 lhi r31,((_openfiles_LF4)>>16)&0xffff 4722 00004b08 27fff388 addui r31,r31,(_openfiles_LF4)&0xffff 4723 00004b0c 003f0820 add r1,r1,r31 4724 00004b10 201f0000 addi r31,r0,#0 4725 00004b14 ac3f0108 sw 264(r1),r31 4726 00004b18 20010001 addi r1,r0,#1 4727 00004b1c 8fa20000 lw r2,0(r29) 4728 00004b20 8fdffff8 lw r31,-8(r30) 4729 00004b24 001ee820 add r29,r0,r30 4730 00004b28 8fdefffc lw r30,-4(r30) 4731 00004b2c 4be00000 jr r31 4732 00004b30 54000000 nop 4733 00004b34 .endproc _FsDlxOpen 4734 00004b34 .align 2 4735 00004b34 .proc _FsDlxSeek 4736 00004b34 .global _FsDlxSeek 4737 00004b34 _FsDlxSeek: 4738 ; Function 'FsDlxSeek'; 0 bytes of locals, 1 regs to save. 4739 00004b34 afbefffc sw -4(r29),r30; push fp 4740 00004b38 001df020 add r30,r0,r29; fp = sp 4741 00004b3c afbffff8 sw -8(r29),r31; push ret addr 4742 00004b40 2fbd0010 subui r29,r29,#16; alloc local storage 4743 00004b44 afa20000 sw 0(r29),r2 4744 00004b48 8fc10000 lw r1,(r30) 4745 00004b4c 50220004 slli r2,r1,#0x4 4746 00004b50 00411020 add r2,r2,r1 4747 00004b54 50420002 slli r2,r2,#0x2 4748 00004b58 00410822 sub r1,r2,r1 4749 00004b5c 50210002 slli r1,r1,#0x2 4750 00004b60 3c1f0000 lhi r31,((_openfiles_LF4)>>16)&0xffff 4751 00004b64 27fff388 addui r31,r31,(_openfiles_LF4)&0xffff 4752 00004b68 003f0820 add r1,r1,r31 4753 00004b6c 8c210108 lw r1,264(r1) 4754 00004b70 8fa20000 lw r2,0(r29) 4755 00004b74 8fdffff8 lw r31,-8(r30) 4756 00004b78 001ee820 add r29,r0,r30 4757 00004b7c 8fdefffc lw r30,-4(r30) 4758 00004b80 4be00000 jr r31 4759 00004b84 54000000 nop 4760 00004b88 .endproc _FsDlxSeek 4761 00004b88 .align 2 4762 00004b88 .proc _FsDlxClose 4763 00004b88 .global _FsDlxClose 4764 00004b88 _FsDlxClose: 4765 ; Function 'FsDlxClose'; 0 bytes of locals, 0 regs to save. 4766 00004b88 afbefffc sw -4(r29),r30; push fp 4767 00004b8c 001df020 add r30,r0,r29; fp = sp 4768 00004b90 afbffff8 sw -8(r29),r31; push ret addr 4769 00004b94 2fbd0008 subui r29,r29,#8; alloc local storage 4770 00004b98 20010001 addi r1,r0,#1 4771 00004b9c 8fdffff8 lw r31,-8(r30) 4772 00004ba0 001ee820 add r29,r0,r30 4773 00004ba4 8fdefffc lw r30,-4(r30) 4774 00004ba8 4be00000 jr r31 4775 00004bac 54000000 nop 4776 00004bb0 .endproc _FsDlxClose 4777 00004bb0 .align 2 4778 00004bb0 .proc _FsDlxDelete 4779 00004bb0 .global _FsDlxDelete 4780 00004bb0 _FsDlxDelete: 4781 ; Function 'FsDlxDelete'; 0 bytes of locals, 0 regs to save. 4782 00004bb0 afbefffc sw -4(r29),r30; push fp 4783 00004bb4 001df020 add r30,r0,r29; fp = sp 4784 00004bb8 afbffff8 sw -8(r29),r31; push ret addr 4785 00004bbc 2fbd0008 subui r29,r29,#8; alloc local storage 4786 00004bc0 20010001 addi r1,r0,#1 4787 00004bc4 8fdffff8 lw r31,-8(r30) 4788 00004bc8 001ee820 add r29,r0,r30 4789 00004bcc 8fdefffc lw r30,-4(r30) 4790 00004bd0 4be00000 jr r31 4791 00004bd4 54000000 nop 4792 00004bd8 .endproc _FsDlxDelete 4793 00004bd8 .align 2 4794 00004bd8 .proc _FsModuleInit 4795 00004bd8 .global _FsModuleInit 4796 00004bd8 _FsModuleInit: 4797 ; Function 'FsModuleInit'; 0 bytes of locals, 2 regs to save. 4798 00004bd8 afbefffc sw -4(r29),r30; push fp 4799 00004bdc 001df020 add r30,r0,r29; fp = sp 4800 00004be0 afbffff8 sw -8(r29),r31; push ret addr 4801 00004be4 2fbd0010 subui r29,r29,#16; alloc local storage 4802 00004be8 afa20000 sw 0(r29),r2 4803 00004bec afa30004 sw 4(r29),r3 4804 00004bf0 3c1f0000 lhi r31,((_openfiles_LF4)>>16)&0xffff 4805 00004bf4 27fff388 addui r31,r31,(_openfiles_LF4)&0xffff 4806 00004bf8 23e22074 addi r2,r31,#8308 4807 00004bfc L182_LF4: 4808 00004bfc 20030000 addi r3,r0,#0 4809 00004c00 afe30004 sw 4(r31),r3 4810 00004c04 23ff010c addi r31,r31,#268 4811 00004c08 03e2082c sle r1,r31,r2 4812 00004c0c 1420ffec bnez r1,L182_LF4 4813 00004c10 54000000 nop; not filled. 4814 00004c14 3c010000 lhi r1,((_fs_LF4)>>16)&0xffff 4815 00004c18 2421f358 addui r1,r1,(_fs_LF4)&0xffff 4816 00004c1c 3c030000 lhi r3,((_FsUnixOpen)>>16)&0xffff 4817 00004c20 246346ec addui r3,r3,(_FsUnixOpen)&0xffff 4818 00004c24 ac230000 sw (r1),r3 4819 00004c28 3c030000 lhi r3,((_FsUnixClose)>>16)&0xffff 4820 00004c2c 246349c8 addui r3,r3,(_FsUnixClose)&0xffff 4821 00004c30 ac230010 sw 16(r1),r3 4822 00004c34 3c030000 lhi r3,((_FsUnixRead)>>16)&0xffff 4823 00004c38 24634818 addui r3,r3,(_FsUnixRead)&0xffff 4824 00004c3c ac230004 sw 4(r1),r3 4825 00004c40 3c030000 lhi r3,((_FsUnixWrite)>>16)&0xffff 4826 00004c44 246348a8 addui r3,r3,(_FsUnixWrite)&0xffff 4827 00004c48 ac230008 sw 8(r1),r3 4828 00004c4c 3c030000 lhi r3,((_FsUnixSeek)>>16)&0xffff 4829 00004c50 24634938 addui r3,r3,(_FsUnixSeek)&0xffff 4830 00004c54 ac23000c sw 12(r1),r3 4831 00004c58 3c030000 lhi r3,((_FsUnixDelete)>>16)&0xffff 4832 00004c5c 24634a38 addui r3,r3,(_FsUnixDelete)&0xffff 4833 00004c60 ac230014 sw 20(r1),r3 4834 00004c64 3c030000 lhi r3,((_FsDlxOpen)>>16)&0xffff 4835 00004c68 24634ad8 addui r3,r3,(_FsDlxOpen)&0xffff 4836 00004c6c ac230018 sw 24(r1),r3 4837 00004c70 3c030000 lhi r3,((_FsDlxClose)>>16)&0xffff 4838 00004c74 24634b88 addui r3,r3,(_FsDlxClose)&0xffff 4839 00004c78 ac230028 sw 40(r1),r3 4840 00004c7c 3c030000 lhi r3,((_FsDlxRead)>>16)&0xffff 4841 00004c80 24634a88 addui r3,r3,(_FsDlxRead)&0xffff 4842 00004c84 ac23001c sw 28(r1),r3 4843 00004c88 3c030000 lhi r3,((_FsDlxWrite)>>16)&0xffff 4844 00004c8c 24634ab0 addui r3,r3,(_FsDlxWrite)&0xffff 4845 00004c90 ac230020 sw 32(r1),r3 4846 00004c94 3c030000 lhi r3,((_FsDlxSeek)>>16)&0xffff 4847 00004c98 24634b34 addui r3,r3,(_FsDlxSeek)&0xffff 4848 00004c9c ac230024 sw 36(r1),r3 4849 00004ca0 3c030000 lhi r3,((_FsDlxDelete)>>16)&0xffff 4850 00004ca4 24634bb0 addui r3,r3,(_FsDlxDelete)&0xffff 4851 00004ca8 ac23002c sw 44(r1),r3 4852 00004cac 8fa20000 lw r2,0(r29) 4853 00004cb0 8fa30004 lw r3,4(r29) 4854 00004cb4 8fdffff8 lw r31,-8(r30) 4855 00004cb8 001ee820 add r29,r0,r30 4856 00004cbc 8fdefffc lw r30,-4(r30) 4857 00004cc0 4be00000 jr r31 4858 00004cc4 54000000 nop 4859 00004cc8 .endproc _FsModuleInit 4860 00004cc8 .data 4861 0000f357 .align 2 4862 0000f358 _fs_LF4: 4863 0000f358 .space 48 4864 0000f388 .align 2 4865 0000f388 _openfiles_LF4: 4866 0000f388 .space 8576 4867 ; Compiled by GCC 4869 00011508 .align 2 4870 00011508 _rcsid_LF5: 4871 00011508 3a206d65 .ascii "$Id: memory.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" 4871 0001150c 6d6f7279 4871 00011510 2e632c76 4871 00011514 20312e31 4871 00011518 20323030 4871 0001151c 302f3039 4871 00011520 2f323020 4871 00011524 30313a35 4871 00011528 303a3139 4871 0001152c 20656c6d 4871 00011530 20457870 4871 00011534 20656c6d 4871 00011538 20303030 4872 0001153c .text 4873 00004cc8 .align 2 4874 00004cc8 .proc _isspace 4875 00004cc8 .global _isspace 4876 00004cc8 _isspace: 4877 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 4878 00004cc8 afbefffc sw -4(r29),r30; push fp 4879 00004ccc 001df020 add r30,r0,r29; fp = sp 4880 00004cd0 afbffff8 sw -8(r29),r31; push ret addr 4881 00004cd4 2fbd0010 subui r29,r29,#16; alloc local storage 4882 00004cd8 afa20000 sw 0(r29),r2 4883 00004cdc 83c20003 lb r2,3(r30) 4884 00004ce0 201f0000 addi r31,r0,#0 4885 00004ce4 304100ff andi r1,r2,#0x00ff 4886 00004ce8 60210020 seqi r1,r1,#32 4887 00004cec 14200018 bnez r1,L6_LF5 4888 00004cf0 54000000 nop; not filled. 4889 00004cf4 2041fff7 addi r1,r2,#-9 4890 00004cf8 302100ff andi r1,r1,#0x00ff 4891 00004cfc 70210001 sleui r1,r1,#1 4892 00004d00 10200008 beqz r1,L5_LF5 4893 00004d04 54000000 nop; not filled. 4894 00004d08 L6_LF5: 4895 00004d08 201f0001 addi r31,r0,#1 4896 00004d0c L5_LF5: 4897 00004d0c 001f0820 add r1,r0,r31 4898 00004d10 8fa20000 lw r2,0(r29) 4899 00004d14 8fdffff8 lw r31,-8(r30) 4900 00004d18 001ee820 add r29,r0,r30 4901 00004d1c 8fdefffc lw r30,-4(r30) 4902 00004d20 4be00000 jr r31 4903 00004d24 54000000 nop 4904 00004d28 .endproc _isspace 4905 00004d28 .align 2 4906 00004d28 .proc _isxdigit 4907 00004d28 .global _isxdigit 4908 00004d28 _isxdigit: 4909 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 4910 00004d28 afbefffc sw -4(r29),r30; push fp 4911 00004d2c 001df020 add r30,r0,r29; fp = sp 4912 00004d30 afbffff8 sw -8(r29),r31; push ret addr 4913 00004d34 2fbd0010 subui r29,r29,#16; alloc local storage 4914 00004d38 afa20000 sw 0(r29),r2 4915 00004d3c 83df0003 lb r31,3(r30) 4916 00004d40 20020000 addi r2,r0,#0 4917 00004d44 23e1ffd0 addi r1,r31,#-48 4918 00004d48 302100ff andi r1,r1,#0x00ff 4919 00004d4c 70210009 sleui r1,r1,#9 4920 00004d50 14200028 bnez r1,L12_LF5 4921 00004d54 54000000 nop; not filled. 4922 00004d58 23e1ff9f addi r1,r31,#-97 4923 00004d5c 302100ff andi r1,r1,#0x00ff 4924 00004d60 70210005 sleui r1,r1,#5 4925 00004d64 14200014 bnez r1,L12_LF5 4926 00004d68 54000000 nop; not filled. 4927 00004d6c 33e100ff andi r1,r31,#0x00ff 4928 00004d70 64210041 snei r1,r1,#65 4929 00004d74 14200008 bnez r1,L11_LF5 4930 00004d78 54000000 nop; not filled. 4931 00004d7c L12_LF5: 4932 00004d7c 20020001 addi r2,r0,#1 4933 00004d80 L11_LF5: 4934 00004d80 00020820 add r1,r0,r2 4935 00004d84 8fa20000 lw r2,0(r29) 4936 00004d88 8fdffff8 lw r31,-8(r30) 4937 00004d8c 001ee820 add r29,r0,r30 4938 00004d90 8fdefffc lw r30,-4(r30) 4939 00004d94 4be00000 jr r31 4940 00004d98 54000000 nop 4941 00004d9c .endproc _isxdigit 4942 00004d9c .align 2 4943 00004d9c .proc _DisableIntrs 4944 00004d9c .global _DisableIntrs 4945 00004d9c _DisableIntrs: 4946 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 4947 00004d9c afbefffc sw -4(r29),r30; push fp 4948 00004da0 001df020 add r30,r0,r29; fp = sp 4949 00004da4 afbffff8 sw -8(r29),r31; push ret addr 4950 00004da8 2fbd0010 subui r29,r29,#16; alloc local storage 4951 00004dac afa20000 sw 0(r29),r2 4952 00004db0 23bdfff8 addi r29,r29,#-8 4953 00004db4 2002000f addi r2,r0,#15 4954 00004db8 afa20000 sw (r29),r2 4955 00004dbc 0fffc4c8 jal _SetIntrs 4956 00004dc0 54000000 nop; not filled. 4957 00004dc4 23bd0008 addi r29,r29,#8 4958 00004dc8 8fa20000 lw r2,0(r29) 4959 00004dcc 8fdffff8 lw r31,-8(r30) 4960 00004dd0 001ee820 add r29,r0,r30 4961 00004dd4 8fdefffc lw r30,-4(r30) 4962 00004dd8 4be00000 jr r31 4963 00004ddc 54000000 nop 4964 00004de0 .endproc _DisableIntrs 4965 00004de0 .align 2 4966 00004de0 .proc _EnableIntrs 4967 00004de0 .global _EnableIntrs 4968 00004de0 _EnableIntrs: 4969 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 4970 00004de0 afbefffc sw -4(r29),r30; push fp 4971 00004de4 001df020 add r30,r0,r29; fp = sp 4972 00004de8 afbffff8 sw -8(r29),r31; push ret addr 4973 00004dec 2fbd0010 subui r29,r29,#16; alloc local storage 4974 00004df0 afa20000 sw 0(r29),r2 4975 00004df4 23bdfff8 addi r29,r29,#-8 4976 00004df8 20020000 addi r2,r0,#0 4977 00004dfc afa20000 sw (r29),r2 4978 00004e00 0fffc484 jal _SetIntrs 4979 00004e04 54000000 nop; not filled. 4980 00004e08 23bd0008 addi r29,r29,#8 4981 00004e0c 8fa20000 lw r2,0(r29) 4982 00004e10 8fdffff8 lw r31,-8(r30) 4983 00004e14 001ee820 add r29,r0,r30 4984 00004e18 8fdefffc lw r30,-4(r30) 4985 00004e1c 4be00000 jr r31 4986 00004e20 54000000 nop 4987 00004e24 .endproc _EnableIntrs 4988 00004e24 .align 2 4989 00004e24 .proc _RestoreIntrs 4990 00004e24 .global _RestoreIntrs 4991 00004e24 _RestoreIntrs: 4992 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 4993 00004e24 afbefffc sw -4(r29),r30; push fp 4994 00004e28 001df020 add r30,r0,r29; fp = sp 4995 00004e2c afbffff8 sw -8(r29),r31; push ret addr 4996 00004e30 2fbd0010 subui r29,r29,#16; alloc local storage 4997 00004e34 afa20000 sw 0(r29),r2 4998 00004e38 23bdfff8 addi r29,r29,#-8 4999 00004e3c 8fc20000 lw r2,(r30) 5000 00004e40 afa20000 sw (r29),r2 5001 00004e44 0fffc440 jal _SetIntrs 5002 00004e48 54000000 nop; not filled. 5003 00004e4c 23bd0008 addi r29,r29,#8 5004 00004e50 8fa20000 lw r2,0(r29) 5005 00004e54 8fdffff8 lw r31,-8(r30) 5006 00004e58 001ee820 add r29,r0,r30 5007 00004e5c 8fdefffc lw r30,-4(r30) 5008 00004e60 4be00000 jr r31 5009 00004e64 54000000 nop 5010 00004e68 .endproc _RestoreIntrs 5011 00004e68 .align 2 5012 00004e68 .proc _QueueLinkInit 5013 00004e68 .global _QueueLinkInit 5014 00004e68 _QueueLinkInit: 5015 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 5016 00004e68 afbefffc sw -4(r29),r30; push fp 5017 00004e6c 001df020 add r30,r0,r29; fp = sp 5018 00004e70 afbffff8 sw -8(r29),r31; push ret addr 5019 00004e74 2fbd0010 subui r29,r29,#16; alloc local storage 5020 00004e78 afa20000 sw 0(r29),r2 5021 00004e7c 8fc10000 lw r1,(r30) 5022 00004e80 8fc20004 lw r2,4(r30) 5023 00004e84 201f0000 addi r31,r0,#0 5024 00004e88 ac3f0000 sw (r1),r31 5025 00004e8c ac22000c sw 12(r1),r2 5026 00004e90 8fa20000 lw r2,0(r29) 5027 00004e94 8fdffff8 lw r31,-8(r30) 5028 00004e98 001ee820 add r29,r0,r30 5029 00004e9c 8fdefffc lw r30,-4(r30) 5030 00004ea0 4be00000 jr r31 5031 00004ea4 54000000 nop 5032 00004ea8 .endproc _QueueLinkInit 5033 00004ea8 .align 2 5034 00004ea8 .proc _QueueNext 5035 00004ea8 .global _QueueNext 5036 00004ea8 _QueueNext: 5037 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 5038 00004ea8 afbefffc sw -4(r29),r30; push fp 5039 00004eac 001df020 add r30,r0,r29; fp = sp 5040 00004eb0 afbffff8 sw -8(r29),r31; push ret addr 5041 00004eb4 2fbd0008 subui r29,r29,#8; alloc local storage 5042 00004eb8 8fc10000 lw r1,(r30) 5043 00004ebc 8c210000 lw r1,(r1) 5044 00004ec0 8fdffff8 lw r31,-8(r30) 5045 00004ec4 001ee820 add r29,r0,r30 5046 00004ec8 8fdefffc lw r30,-4(r30) 5047 00004ecc 4be00000 jr r31 5048 00004ed0 54000000 nop 5049 00004ed4 .endproc _QueueNext 5050 00004ed4 .align 2 5051 00004ed4 .proc _QueuePrev 5052 00004ed4 .global _QueuePrev 5053 00004ed4 _QueuePrev: 5054 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 5055 00004ed4 afbefffc sw -4(r29),r30; push fp 5056 00004ed8 001df020 add r30,r0,r29; fp = sp 5057 00004edc afbffff8 sw -8(r29),r31; push ret addr 5058 00004ee0 2fbd0008 subui r29,r29,#8; alloc local storage 5059 00004ee4 8fc10000 lw r1,(r30) 5060 00004ee8 8c210004 lw r1,4(r1) 5061 00004eec 8fdffff8 lw r31,-8(r30) 5062 00004ef0 001ee820 add r29,r0,r30 5063 00004ef4 8fdefffc lw r30,-4(r30) 5064 00004ef8 4be00000 jr r31 5065 00004efc 54000000 nop 5066 00004f00 .endproc _QueuePrev 5067 00004f00 .align 2 5068 00004f00 .proc _QueueFirst 5069 00004f00 .global _QueueFirst 5070 00004f00 _QueueFirst: 5071 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 5072 00004f00 afbefffc sw -4(r29),r30; push fp 5073 00004f04 001df020 add r30,r0,r29; fp = sp 5074 00004f08 afbffff8 sw -8(r29),r31; push ret addr 5075 00004f0c 2fbd0008 subui r29,r29,#8; alloc local storage 5076 00004f10 8fc10000 lw r1,(r30) 5077 00004f14 8c210000 lw r1,(r1) 5078 00004f18 8fdffff8 lw r31,-8(r30) 5079 00004f1c 001ee820 add r29,r0,r30 5080 00004f20 8fdefffc lw r30,-4(r30) 5081 00004f24 4be00000 jr r31 5082 00004f28 54000000 nop 5083 00004f2c .endproc _QueueFirst 5084 00004f2c .align 2 5085 00004f2c .proc _QueueLast 5086 00004f2c .global _QueueLast 5087 00004f2c _QueueLast: 5088 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 5089 00004f2c afbefffc sw -4(r29),r30; push fp 5090 00004f30 001df020 add r30,r0,r29; fp = sp 5091 00004f34 afbffff8 sw -8(r29),r31; push ret addr 5092 00004f38 2fbd0008 subui r29,r29,#8; alloc local storage 5093 00004f3c 8fc10000 lw r1,(r30) 5094 00004f40 8c210004 lw r1,4(r1) 5095 00004f44 8fdffff8 lw r31,-8(r30) 5096 00004f48 001ee820 add r29,r0,r30 5097 00004f4c 8fdefffc lw r30,-4(r30) 5098 00004f50 4be00000 jr r31 5099 00004f54 54000000 nop 5100 00004f58 .endproc _QueueLast 5101 00004f58 .align 2 5102 00004f58 .proc _QueueInsertAfter 5103 00004f58 .global _QueueInsertAfter 5104 00004f58 _QueueInsertAfter: 5105 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 5106 00004f58 afbefffc sw -4(r29),r30; push fp 5107 00004f5c 001df020 add r30,r0,r29; fp = sp 5108 00004f60 afbffff8 sw -8(r29),r31; push ret addr 5109 00004f64 2fbd0010 subui r29,r29,#16; alloc local storage 5110 00004f68 afa20000 sw 0(r29),r2 5111 00004f6c afa30004 sw 4(r29),r3 5112 00004f70 8fc30000 lw r3,(r30) 5113 00004f74 8fc20004 lw r2,4(r30) 5114 00004f78 8fc10008 lw r1,8(r30) 5115 00004f7c ac230008 sw 8(r1),r3 5116 00004f80 ac220004 sw 4(r1),r2 5117 00004f84 8c5f0000 lw r31,(r2) 5118 00004f88 ac3f0000 sw (r1),r31 5119 00004f8c ac410000 sw (r2),r1 5120 00004f90 8c220000 lw r2,(r1) 5121 00004f94 ac410004 sw 4(r2),r1 5122 00004f98 8c610008 lw r1,8(r3) 5123 00004f9c 20210001 addi r1,r1,#1 5124 00004fa0 ac610008 sw 8(r3),r1 5125 00004fa4 8fa20000 lw r2,0(r29) 5126 00004fa8 8fa30004 lw r3,4(r29) 5127 00004fac 8fdffff8 lw r31,-8(r30) 5128 00004fb0 001ee820 add r29,r0,r30 5129 00004fb4 8fdefffc lw r30,-4(r30) 5130 00004fb8 4be00000 jr r31 5131 00004fbc 54000000 nop 5132 00004fc0 .endproc _QueueInsertAfter 5133 00004fc0 .align 2 5134 00004fc0 .proc _QueueInsertFirst 5135 00004fc0 .global _QueueInsertFirst 5136 00004fc0 _QueueInsertFirst: 5137 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 5138 00004fc0 afbefffc sw -4(r29),r30; push fp 5139 00004fc4 001df020 add r30,r0,r29; fp = sp 5140 00004fc8 afbffff8 sw -8(r29),r31; push ret addr 5141 00004fcc 2fbd0010 subui r29,r29,#16; alloc local storage 5142 00004fd0 afa20000 sw 0(r29),r2 5143 00004fd4 afa30004 sw 4(r29),r3 5144 00004fd8 8fc30000 lw r3,(r30) 5145 00004fdc 8fc10004 lw r1,4(r30) 5146 00004fe0 ac230008 sw 8(r1),r3 5147 00004fe4 ac230004 sw 4(r1),r3 5148 00004fe8 8c7f0000 lw r31,(r3) 5149 00004fec ac3f0000 sw (r1),r31 5150 00004ff0 ac610000 sw (r3),r1 5151 00004ff4 8c220000 lw r2,(r1) 5152 00004ff8 ac410004 sw 4(r2),r1 5153 00004ffc 8c610008 lw r1,8(r3) 5154 00005000 20210001 addi r1,r1,#1 5155 00005004 ac610008 sw 8(r3),r1 5156 00005008 8fa20000 lw r2,0(r29) 5157 0000500c 8fa30004 lw r3,4(r29) 5158 00005010 8fdffff8 lw r31,-8(r30) 5159 00005014 001ee820 add r29,r0,r30 5160 00005018 8fdefffc lw r30,-4(r30) 5161 0000501c 4be00000 jr r31 5162 00005020 54000000 nop 5163 00005024 .endproc _QueueInsertFirst 5164 00005024 .align 2 5165 00005024 .proc _QueueInsertLast 5166 00005024 .global _QueueInsertLast 5167 00005024 _QueueInsertLast: 5168 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 5169 00005024 afbefffc sw -4(r29),r30; push fp 5170 00005028 001df020 add r30,r0,r29; fp = sp 5171 0000502c afbffff8 sw -8(r29),r31; push ret addr 5172 00005030 2fbd0010 subui r29,r29,#16; alloc local storage 5173 00005034 afa20000 sw 0(r29),r2 5174 00005038 afa30004 sw 4(r29),r3 5175 0000503c 8fc30000 lw r3,(r30) 5176 00005040 8fc10004 lw r1,4(r30) 5177 00005044 8c620004 lw r2,4(r3) 5178 00005048 ac230008 sw 8(r1),r3 5179 0000504c ac220004 sw 4(r1),r2 5180 00005050 8c5f0000 lw r31,(r2) 5181 00005054 ac3f0000 sw (r1),r31 5182 00005058 ac410000 sw (r2),r1 5183 0000505c 8c220000 lw r2,(r1) 5184 00005060 ac410004 sw 4(r2),r1 5185 00005064 8c610008 lw r1,8(r3) 5186 00005068 20210001 addi r1,r1,#1 5187 0000506c ac610008 sw 8(r3),r1 5188 00005070 8fa20000 lw r2,0(r29) 5189 00005074 8fa30004 lw r3,4(r29) 5190 00005078 8fdffff8 lw r31,-8(r30) 5191 0000507c 001ee820 add r29,r0,r30 5192 00005080 8fdefffc lw r30,-4(r30) 5193 00005084 4be00000 jr r31 5194 00005088 54000000 nop 5195 0000508c .endproc _QueueInsertLast 5196 0000508c .align 2 5197 0000508c .proc _QueueRemove 5198 0000508c .global _QueueRemove 5199 0000508c _QueueRemove: 5200 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 5201 0000508c afbefffc sw -4(r29),r30; push fp 5202 00005090 001df020 add r30,r0,r29; fp = sp 5203 00005094 afbffff8 sw -8(r29),r31; push ret addr 5204 00005098 2fbd0010 subui r29,r29,#16; alloc local storage 5205 0000509c afa20000 sw 0(r29),r2 5206 000050a0 afa30004 sw 4(r29),r3 5207 000050a4 8fdf0000 lw r31,(r30) 5208 000050a8 8fe10008 lw r1,8(r31) 5209 000050ac 8c210008 lw r1,8(r1) 5210 000050b0 6c210000 sgti r1,r1,#0 5211 000050b4 1020002c beqz r1,L44_LF5 5212 000050b8 54000000 nop; not filled. 5213 000050bc 8fe10004 lw r1,4(r31) 5214 000050c0 8fe30000 lw r3,(r31) 5215 000050c4 ac230000 sw (r1),r3 5216 000050c8 8fe10000 lw r1,(r31) 5217 000050cc 8fe30004 lw r3,4(r31) 5218 000050d0 ac230004 sw 4(r1),r3 5219 000050d4 8fe20008 lw r2,8(r31) 5220 000050d8 8c410008 lw r1,8(r2) 5221 000050dc 2021ffff addi r1,r1,#-1 5222 000050e0 ac410008 sw 8(r2),r1 5223 000050e4 L44_LF5: 5224 000050e4 20030000 addi r3,r0,#0 5225 000050e8 afe30000 sw (r31),r3 5226 000050ec 8fa20000 lw r2,0(r29) 5227 000050f0 8fa30004 lw r3,4(r29) 5228 000050f4 8fdffff8 lw r31,-8(r30) 5229 000050f8 001ee820 add r29,r0,r30 5230 000050fc 8fdefffc lw r30,-4(r30) 5231 00005100 4be00000 jr r31 5232 00005104 54000000 nop 5233 00005108 .endproc _QueueRemove 5234 00005108 .align 2 5235 00005108 .proc _QueueLength 5236 00005108 .global _QueueLength 5237 00005108 _QueueLength: 5238 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 5239 00005108 afbefffc sw -4(r29),r30; push fp 5240 0000510c 001df020 add r30,r0,r29; fp = sp 5241 00005110 afbffff8 sw -8(r29),r31; push ret addr 5242 00005114 2fbd0008 subui r29,r29,#8; alloc local storage 5243 00005118 8fc10000 lw r1,(r30) 5244 0000511c 8c210008 lw r1,8(r1) 5245 00005120 8fdffff8 lw r31,-8(r30) 5246 00005124 001ee820 add r29,r0,r30 5247 00005128 8fdefffc lw r30,-4(r30) 5248 0000512c 4be00000 jr r31 5249 00005130 54000000 nop 5250 00005134 .endproc _QueueLength 5251 00005134 .align 2 5252 00005134 .proc _QueueEmpty 5253 00005134 .global _QueueEmpty 5254 00005134 _QueueEmpty: 5255 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 5256 00005134 afbefffc sw -4(r29),r30; push fp 5257 00005138 001df020 add r30,r0,r29; fp = sp 5258 0000513c afbffff8 sw -8(r29),r31; push ret addr 5259 00005140 2fbd0008 subui r29,r29,#8; alloc local storage 5260 00005144 8fc10000 lw r1,(r30) 5261 00005148 8c210008 lw r1,8(r1) 5262 0000514c 60210000 seqi r1,r1,#0 5263 00005150 8fdffff8 lw r31,-8(r30) 5264 00005154 001ee820 add r29,r0,r30 5265 00005158 8fdefffc lw r30,-4(r30) 5266 0000515c 4be00000 jr r31 5267 00005160 54000000 nop 5268 00005164 .endproc _QueueEmpty 5269 00005164 .data 5270 0001153c .align 2 5271 0001153c _negativeone_LF5: 5272 0001153c ffffffff .word -1 5273 00011540 .text 5274 00005164 .align 2 5275 00005164 .proc _MemoryGetSize 5276 00005164 .global _MemoryGetSize 5277 00005164 _MemoryGetSize: 5278 ; Function 'MemoryGetSize'; 0 bytes of locals, 0 regs to save. 5279 00005164 afbefffc sw -4(r29),r30; push fp 5280 00005168 001df020 add r30,r0,r29; fp = sp 5281 0000516c afbffff8 sw -8(r29),r31; push ret addr 5282 00005170 2fbd0008 subui r29,r29,#8; alloc local storage 5283 00005174 3c01ffff lhi r1,#-1 5284 00005178 24210000 addui r1,r1,#0 5285 0000517c 8c210000 lw r1,(r1) 5286 00005180 8fdffff8 lw r31,-8(r30) 5287 00005184 001ee820 add r29,r0,r30 5288 00005188 8fdefffc lw r30,-4(r30) 5289 0000518c 4be00000 jr r31 5290 00005190 54000000 nop 5291 00005194 .endproc _MemoryGetSize 5292 00005194 .data 5293 00011540 .align 2 5294 00011540 LC0_LF5: 5295 00011540 53657420 .ascii "Set freemap entry %d to 0x%x.\n\000" 5295 00011544 66726565 5295 00011548 6d617020 5295 0001154c 656e7472 5295 00011550 79202564 5295 00011554 20746f20 5295 00011558 30782578 5295 0001155c 2e0a00 5296 0001155f .text 5297 00005194 .align 2 5298 00005194 .proc _MemorySetFreemap 5299 00005194 .global _MemorySetFreemap 5300 00005194 _MemorySetFreemap: 5301 ; Function 'MemorySetFreemap'; 0 bytes of locals, 5 regs to save. 5302 00005194 afbefffc sw -4(r29),r30; push fp 5303 00005198 001df020 add r30,r0,r29; fp = sp 5304 0000519c afbffff8 sw -8(r29),r31; push ret addr 5305 000051a0 2fbd0020 subui r29,r29,#32; alloc local storage 5306 000051a4 afa20000 sw 0(r29),r2 5307 000051a8 afa30004 sw 4(r29),r3 5308 000051ac afa40008 sw 8(r29),r4 5309 000051b0 afa5000c sw 12(r29),r5 5310 000051b4 afa60010 sw 16(r29),r6 5311 000051b8 8fc30000 lw r3,(r30) 5312 000051bc 8fdf0004 lw r31,4(r30) 5313 000051c0 00031020 add r2,r0,r3 5314 000051c4 74610000 sgei r1,r3,#0 5315 000051c8 14200008 bnez r1,L61_LF5 5316 000051cc 54000000 nop; not filled. 5317 000051d0 2062001f addi r2,r3,#31 5318 000051d4 L61_LF5: 5319 000051d4 5c450005 srai r5,r2,#0x5 5320 000051d8 50a10005 slli r1,r5,#0x5 5321 000051dc 00611822 sub r3,r3,r1 5322 000051e0 20010001 addi r1,r0,#1 5323 000051e4 00231004 sll r2,r1,r3 5324 000051e8 3c010001 lhi r1,((_negativeone_LF5)>>16)&0xffff 5325 000051ec 2421153c addui r1,r1,(_negativeone_LF5)&0xffff 5326 000051f0 8c210000 lw r1,(r1) 5327 000051f4 00411026 xor r2,r2,r1 5328 000051f8 50a10002 slli r1,r5,#0x2 5329 000051fc 3c060001 lhi r6,((_freepages_LF5)>>16)&0xffff 5330 00005200 24c616b0 addui r6,r6,(_freepages_LF5)&0xffff 5331 00005204 00262020 add r4,r1,r6 5332 00005208 8c810000 lw r1,(r4) 5333 0000520c 00221024 and r2,r1,r2 5334 00005210 03e30804 sll r1,r31,r3 5335 00005214 00410825 or r1,r2,r1 5336 00005218 ac810000 sw (r4),r1 5337 0000521c 23bdfff8 addi r29,r29,#-8 5338 00005220 3c020001 lhi r2,((_debugstr)>>16)&0xffff 5339 00005224 24424038 addui r2,r2,(_debugstr)&0xffff 5340 00005228 afa20000 sw (r29),r2 5341 0000522c 2006006d addi r6,r0,#109 5342 00005230 afa60004 sw 4(r29),r6 5343 00005234 0c001354 jal _dindex 5344 00005238 54000000 nop; not filled. 5345 0000523c 23bd0008 addi r29,r29,#8 5346 00005240 64210000 snei r1,r1,#0 5347 00005244 1420002c bnez r1,L65_LF5 5348 00005248 54000000 nop; not filled. 5349 0000524c 23bdfff8 addi r29,r29,#-8 5350 00005250 afa20000 sw (r29),r2 5351 00005254 2006002b addi r6,r0,#43 5352 00005258 afa60004 sw 4(r29),r6 5353 0000525c 0c00132c jal _dindex 5354 00005260 54000000 nop; not filled. 5355 00005264 23bd0008 addi r29,r29,#8 5356 00005268 64210000 snei r1,r1,#0 5357 0000526c 1020002c beqz r1,L64_LF5 5358 00005270 54000000 nop; not filled. 5359 00005274 L65_LF5: 5360 00005274 23bdfff0 addi r29,r29,#-16 5361 00005278 3c060001 lhi r6,((LC0_LF5)>>16)&0xffff 5362 0000527c 24c61540 addui r6,r6,(LC0_LF5)&0xffff 5363 00005280 afa60000 sw (r29),r6 5364 00005284 afa50004 sw 4(r29),r5 5365 00005288 8c840000 lw r4,(r4) 5366 0000528c afa40008 sw 8(r29),r4 5367 00005290 0c007f90 jal _printf 5368 00005294 54000000 nop; not filled. 5369 00005298 23bd0010 addi r29,r29,#16 5370 0000529c L64_LF5: 5371 0000529c 8fa20000 lw r2,0(r29) 5372 000052a0 8fa30004 lw r3,4(r29) 5373 000052a4 8fa40008 lw r4,8(r29) 5374 000052a8 8fa5000c lw r5,12(r29) 5375 000052ac 8fa60010 lw r6,16(r29) 5376 000052b0 8fdffff8 lw r31,-8(r30) 5377 000052b4 001ee820 add r29,r0,r30 5378 000052b8 8fdefffc lw r30,-4(r30) 5379 000052bc 4be00000 jr r31 5380 000052c0 54000000 nop 5381 000052c4 .endproc _MemorySetFreemap 5382 000052c4 .data 5383 0001155f .align 2 5384 00011560 LC1_LF5: 5385 00011560 4d617020 .ascii "Map has %d entries, memory size is 0x%x.\n\000" 5385 00011564 68617320 5385 00011568 25642065 5385 0001156c 6e747269 5385 00011570 65732c20 5385 00011574 6d656d6f 5385 00011578 72792073 5385 0001157c 697a6520 5385 00011580 69732030 5385 00011584 7825782e 5385 00011588 0a00 5386 0001158a .align 2 5387 0001158c LC2_LF5: 5388 0001158c 46726565 .ascii "Free pages start with page # 0x%x.\n\000" 5388 00011590 20706167 5388 00011594 65732073 5388 00011598 74617274 5388 0001159c 20776974 5388 000115a0 68207061 5388 000115a4 67652023 5388 000115a8 20307825 5388 000115ac 782e0a00 5389 000115b0 .align 2 5390 000115b0 LC3_LF5: 5391 000115b0 496e6974 .ascii "Initialized %d free pages.\n\000" 5391 000115b4 69616c69 5391 000115b8 7a656420 5391 000115bc 25642066 5391 000115c0 72656520 5391 000115c4 70616765 5391 000115c8 732e0a00 5392 000115cc .text 5393 000052c4 .align 2 5394 000052c4 .proc _MemoryModuleInit 5395 000052c4 .global _MemoryModuleInit 5396 000052c4 _MemoryModuleInit: 5397 ; Function 'MemoryModuleInit'; 0 bytes of locals, 10 regs to save. 5398 000052c4 afbefffc sw -4(r29),r30; push fp 5399 000052c8 001df020 add r30,r0,r29; fp = sp 5400 000052cc afbffff8 sw -8(r29),r31; push ret addr 5401 000052d0 2fbd0030 subui r29,r29,#48; alloc local storage 5402 000052d4 afa20000 sw 0(r29),r2 5403 000052d8 afa30004 sw 4(r29),r3 5404 000052dc afa40008 sw 8(r29),r4 5405 000052e0 afa5000c sw 12(r29),r5 5406 000052e4 afa60010 sw 16(r29),r6 5407 000052e8 afa70014 sw 20(r29),r7 5408 000052ec afa80018 sw 24(r29),r8 5409 000052f0 afa9001c sw 28(r29),r9 5410 000052f4 afaa0020 sw 32(r29),r10 5411 000052f8 afab0024 sw 36(r29),r11 5412 000052fc 3c01ffff lhi r1,#-1 5413 00005300 24210000 addui r1,r1,#0 5414 00005304 8c220000 lw r2,(r1) 5415 00005308 74410000 sgei r1,r2,#0 5416 0000530c 14200008 bnez r1,L68_LF5 5417 00005310 54000000 nop; not filled. 5418 00005314 2442ffff addui r2,r2,#65535 5419 00005318 L68_LF5: 5420 00005318 5c480010 srai r8,r2,#0x10 5421 0000531c 3c030001 lhi r3,((_pagestart_LF5)>>16)&0xffff 5422 00005320 246316a4 addui r3,r3,(_pagestart_LF5)&0xffff 5423 00005324 3c010001 lhi r1,((_lastosaddress)>>16)&0xffff 5424 00005328 242175b4 addui r1,r1,(_lastosaddress)&0xffff 5425 0000532c 8c210000 lw r1,(r1) 5426 00005330 2422fffc addui r2,r1,#65532 5427 00005334 74410000 sgei r1,r2,#0 5428 00005338 14200008 bnez r1,L69_LF5 5429 0000533c 54000000 nop; not filled. 5430 00005340 2442ffff addui r2,r2,#65535 5431 00005344 L69_LF5: 5432 00005344 5c410010 srai r1,r2,#0x10 5433 00005348 ac610000 sw (r3),r1 5434 0000534c 3c030001 lhi r3,((_freemapmax_LF5)>>16)&0xffff 5435 00005350 246316a8 addui r3,r3,(_freemapmax_LF5)&0xffff 5436 00005354 2102001f addi r2,r8,#31 5437 00005358 74410000 sgei r1,r2,#0 5438 0000535c 14200008 bnez r1,L70_LF5 5439 00005360 54000000 nop; not filled. 5440 00005364 2102003e addi r2,r8,#62 5441 00005368 L70_LF5: 5442 00005368 5c410005 srai r1,r2,#0x5 5443 0000536c ac610000 sw (r3),r1 5444 00005370 23bdfff8 addi r29,r29,#-8 5445 00005374 3c020001 lhi r2,((_debugstr)>>16)&0xffff 5446 00005378 24424038 addui r2,r2,(_debugstr)&0xffff 5447 0000537c afa20000 sw (r29),r2 5448 00005380 200b006d addi r11,r0,#109 5449 00005384 afab0004 sw 4(r29),r11 5450 00005388 0c001200 jal _dindex 5451 0000538c 54000000 nop; not filled. 5452 00005390 23bd0008 addi r29,r29,#8 5453 00005394 64210000 snei r1,r1,#0 5454 00005398 1420002c bnez r1,L72_LF5 5455 0000539c 54000000 nop; not filled. 5456 000053a0 23bdfff8 addi r29,r29,#-8 5457 000053a4 afa20000 sw (r29),r2 5458 000053a8 200b002b addi r11,r0,#43 5459 000053ac afab0004 sw 4(r29),r11 5460 000053b0 0c0011d8 jal _dindex 5461 000053b4 54000000 nop; not filled. 5462 000053b8 23bd0008 addi r29,r29,#8 5463 000053bc 64210000 snei r1,r1,#0 5464 000053c0 1020002c beqz r1,L71_LF5 5465 000053c4 54000000 nop; not filled. 5466 000053c8 L72_LF5: 5467 000053c8 23bdfff0 addi r29,r29,#-16 5468 000053cc 3c0b0001 lhi r11,((LC1_LF5)>>16)&0xffff 5469 000053d0 256b1560 addui r11,r11,(LC1_LF5)&0xffff 5470 000053d4 afab0000 sw (r29),r11 5471 000053d8 8c610000 lw r1,(r3) 5472 000053dc afa10004 sw 4(r29),r1 5473 000053e0 afa80008 sw 8(r29),r8 5474 000053e4 0c007e3c jal _printf 5475 000053e8 54000000 nop; not filled. 5476 000053ec 23bd0010 addi r29,r29,#16 5477 000053f0 L71_LF5: 5478 000053f0 23bdfff8 addi r29,r29,#-8 5479 000053f4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 5480 000053f8 24424038 addui r2,r2,(_debugstr)&0xffff 5481 000053fc afa20000 sw (r29),r2 5482 00005400 200b006d addi r11,r0,#109 5483 00005404 afab0004 sw 4(r29),r11 5484 00005408 0c001180 jal _dindex 5485 0000540c 54000000 nop; not filled. 5486 00005410 23bd0008 addi r29,r29,#8 5487 00005414 64210000 snei r1,r1,#0 5488 00005418 1420002c bnez r1,L74_LF5 5489 0000541c 54000000 nop; not filled. 5490 00005420 23bdfff8 addi r29,r29,#-8 5491 00005424 afa20000 sw (r29),r2 5492 00005428 200b002b addi r11,r0,#43 5493 0000542c afab0004 sw 4(r29),r11 5494 00005430 0c001158 jal _dindex 5495 00005434 54000000 nop; not filled. 5496 00005438 23bd0008 addi r29,r29,#8 5497 0000543c 64210000 snei r1,r1,#0 5498 00005440 10200030 beqz r1,L73_LF5 5499 00005444 54000000 nop; not filled. 5500 00005448 L74_LF5: 5501 00005448 23bdfff8 addi r29,r29,#-8 5502 0000544c 3c0b0001 lhi r11,((LC2_LF5)>>16)&0xffff 5503 00005450 256b158c addui r11,r11,(LC2_LF5)&0xffff 5504 00005454 afab0000 sw (r29),r11 5505 00005458 3c010001 lhi r1,((_pagestart_LF5)>>16)&0xffff 5506 0000545c 242116a4 addui r1,r1,(_pagestart_LF5)&0xffff 5507 00005460 8c210000 lw r1,(r1) 5508 00005464 afa10004 sw 4(r29),r1 5509 00005468 0c007db8 jal _printf 5510 0000546c 54000000 nop; not filled. 5511 00005470 23bd0008 addi r29,r29,#8 5512 00005474 L73_LF5: 5513 00005474 20020000 addi r2,r0,#0 5514 00005478 3c040001 lhi r4,((_freemapmax_LF5)>>16)&0xffff 5515 0000547c 248416a8 addui r4,r4,(_freemapmax_LF5)&0xffff 5516 00005480 8c810000 lw r1,(r4) 5517 00005484 0041082a slt r1,r2,r1 5518 00005488 1020002c beqz r1,L76_LF5 5519 0000548c 54000000 nop; not filled. 5520 00005490 3c030001 lhi r3,((_freepages_LF5)>>16)&0xffff 5521 00005494 246316b0 addui r3,r3,(_freepages_LF5)&0xffff 5522 00005498 L78_LF5: 5523 00005498 200b0000 addi r11,r0,#0 5524 0000549c ac6b0000 sw (r3),r11 5525 000054a0 20630004 addi r3,r3,#4 5526 000054a4 20420001 addi r2,r2,#1 5527 000054a8 8c810000 lw r1,(r4) 5528 000054ac 0041082a slt r1,r2,r1 5529 000054b0 1420ffe4 bnez r1,L78_LF5 5530 000054b4 54000000 nop; not filled. 5531 000054b8 L76_LF5: 5532 000054b8 3c020001 lhi r2,((_nfreepages_LF5)>>16)&0xffff 5533 000054bc 244216ac addui r2,r2,(_nfreepages_LF5)&0xffff 5534 000054c0 200b0000 addi r11,r0,#0 5535 000054c4 ac4b0000 sw (r2),r11 5536 000054c8 3c010001 lhi r1,((_pagestart_LF5)>>16)&0xffff 5537 000054cc 242116a4 addui r1,r1,(_pagestart_LF5)&0xffff 5538 000054d0 8c240000 lw r4,(r1) 5539 000054d4 0088082a slt r1,r4,r8 5540 000054d8 10200104 beqz r1,L81_LF5 5541 000054dc 54000000 nop; not filled. 5542 000054e0 00023820 add r7,r0,r2 5543 000054e4 200a0001 addi r10,r0,#1 5544 000054e8 3c090001 lhi r9,((_negativeone_LF5)>>16)&0xffff 5545 000054ec 2529153c addui r9,r9,(_negativeone_LF5)&0xffff 5546 000054f0 L83_LF5: 5547 000054f0 8ce10000 lw r1,(r7) 5548 000054f4 20210001 addi r1,r1,#1 5549 000054f8 ace10000 sw (r7),r1 5550 000054fc 00041020 add r2,r0,r4 5551 00005500 74810000 sgei r1,r4,#0 5552 00005504 14200008 bnez r1,L85_LF5 5553 00005508 54000000 nop; not filled. 5554 0000550c 2082001f addi r2,r4,#31 5555 00005510 L85_LF5: 5556 00005510 5c460005 srai r6,r2,#0x5 5557 00005514 50c10005 slli r1,r6,#0x5 5558 00005518 00810822 sub r1,r4,r1 5559 0000551c 01411804 sll r3,r10,r1 5560 00005520 8d210000 lw r1,(r9) 5561 00005524 00611026 xor r2,r3,r1 5562 00005528 50c10002 slli r1,r6,#0x2 5563 0000552c 3c0b0001 lhi r11,((_freepages_LF5)>>16)&0xffff 5564 00005530 256b16b0 addui r11,r11,(_freepages_LF5)&0xffff 5565 00005534 002b2820 add r5,r1,r11 5566 00005538 8ca10000 lw r1,(r5) 5567 0000553c 00220824 and r1,r1,r2 5568 00005540 00230825 or r1,r1,r3 5569 00005544 aca10000 sw (r5),r1 5570 00005548 23bdfff8 addi r29,r29,#-8 5571 0000554c 3c0b0001 lhi r11,((_debugstr)>>16)&0xffff 5572 00005550 256b4038 addui r11,r11,(_debugstr)&0xffff 5573 00005554 afab0000 sw (r29),r11 5574 00005558 200b006d addi r11,r0,#109 5575 0000555c afab0004 sw 4(r29),r11 5576 00005560 0c001028 jal _dindex 5577 00005564 54000000 nop; not filled. 5578 00005568 23bd0008 addi r29,r29,#8 5579 0000556c 64210000 snei r1,r1,#0 5580 00005570 14200034 bnez r1,L89_LF5 5581 00005574 54000000 nop; not filled. 5582 00005578 23bdfff8 addi r29,r29,#-8 5583 0000557c 3c0b0001 lhi r11,((_debugstr)>>16)&0xffff 5584 00005580 256b4038 addui r11,r11,(_debugstr)&0xffff 5585 00005584 afab0000 sw (r29),r11 5586 00005588 200b002b addi r11,r0,#43 5587 0000558c afab0004 sw 4(r29),r11 5588 00005590 0c000ff8 jal _dindex 5589 00005594 54000000 nop; not filled. 5590 00005598 23bd0008 addi r29,r29,#8 5591 0000559c 64210000 snei r1,r1,#0 5592 000055a0 1020002c beqz r1,L82_LF5 5593 000055a4 54000000 nop; not filled. 5594 000055a8 L89_LF5: 5595 000055a8 23bdfff0 addi r29,r29,#-16 5596 000055ac 3c0b0001 lhi r11,((LC0_LF5)>>16)&0xffff 5597 000055b0 256b1540 addui r11,r11,(LC0_LF5)&0xffff 5598 000055b4 afab0000 sw (r29),r11 5599 000055b8 afa60004 sw 4(r29),r6 5600 000055bc 8ca50000 lw r5,(r5) 5601 000055c0 afa50008 sw 8(r29),r5 5602 000055c4 0c007c5c jal _printf 5603 000055c8 54000000 nop; not filled. 5604 000055cc 23bd0010 addi r29,r29,#16 5605 000055d0 L82_LF5: 5606 000055d0 20840001 addi r4,r4,#1 5607 000055d4 0088082a slt r1,r4,r8 5608 000055d8 1420ff14 bnez r1,L83_LF5 5609 000055dc 54000000 nop; not filled. 5610 000055e0 L81_LF5: 5611 000055e0 23bdfff8 addi r29,r29,#-8 5612 000055e4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 5613 000055e8 24424038 addui r2,r2,(_debugstr)&0xffff 5614 000055ec afa20000 sw (r29),r2 5615 000055f0 200b006d addi r11,r0,#109 5616 000055f4 afab0004 sw 4(r29),r11 5617 000055f8 0c000f90 jal _dindex 5618 000055fc 54000000 nop; not filled. 5619 00005600 23bd0008 addi r29,r29,#8 5620 00005604 64210000 snei r1,r1,#0 5621 00005608 1420002c bnez r1,L92_LF5 5622 0000560c 54000000 nop; not filled. 5623 00005610 23bdfff8 addi r29,r29,#-8 5624 00005614 afa20000 sw (r29),r2 5625 00005618 200b002b addi r11,r0,#43 5626 0000561c afab0004 sw 4(r29),r11 5627 00005620 0c000f68 jal _dindex 5628 00005624 54000000 nop; not filled. 5629 00005628 23bd0008 addi r29,r29,#8 5630 0000562c 64210000 snei r1,r1,#0 5631 00005630 10200030 beqz r1,L91_LF5 5632 00005634 54000000 nop; not filled. 5633 00005638 L92_LF5: 5634 00005638 23bdfff8 addi r29,r29,#-8 5635 0000563c 3c0b0001 lhi r11,((LC3_LF5)>>16)&0xffff 5636 00005640 256b15b0 addui r11,r11,(LC3_LF5)&0xffff 5637 00005644 afab0000 sw (r29),r11 5638 00005648 3c010001 lhi r1,((_nfreepages_LF5)>>16)&0xffff 5639 0000564c 242116ac addui r1,r1,(_nfreepages_LF5)&0xffff 5640 00005650 8c210000 lw r1,(r1) 5641 00005654 afa10004 sw 4(r29),r1 5642 00005658 0c007bc8 jal _printf 5643 0000565c 54000000 nop; not filled. 5644 00005660 23bd0008 addi r29,r29,#8 5645 00005664 L91_LF5: 5646 00005664 8fa20000 lw r2,0(r29) 5647 00005668 8fa30004 lw r3,4(r29) 5648 0000566c 8fa40008 lw r4,8(r29) 5649 00005670 8fa5000c lw r5,12(r29) 5650 00005674 8fa60010 lw r6,16(r29) 5651 00005678 8fa70014 lw r7,20(r29) 5652 0000567c 8fa80018 lw r8,24(r29) 5653 00005680 8fa9001c lw r9,28(r29) 5654 00005684 8faa0020 lw r10,32(r29) 5655 00005688 8fab0024 lw r11,36(r29) 5656 0000568c 8fdffff8 lw r31,-8(r30) 5657 00005690 001ee820 add r29,r0,r30 5658 00005694 8fdefffc lw r30,-4(r30) 5659 00005698 4be00000 jr r31 5660 0000569c 54000000 nop 5661 000056a0 .endproc _MemoryModuleInit 5662 000056a0 .data 5663 000115cc .align 2 5664 000115cc _mapnum42_LF5: 5665 000115cc 00000000 .word 0 5666 000115d0 .align 2 5667 000115d0 LC4_LF5: 5668 000115d0 4552524f .ascii "ERROR AT THIS POINT\n\000" 5668 000115d4 52204154 5668 000115d8 20544849 5668 000115dc 5320504f 5668 000115e0 494e540a 5668 000115e4 00 5669 000115e5 .align 2 5670 000115e8 LC5_LF5: 5671 000115e8 416c6c6f .ascii "Allocating memory, starting with page %d\n\000" 5671 000115ec 63617469 5671 000115f0 6e67206d 5671 000115f4 656d6f72 5671 000115f8 792c2073 5671 000115fc 74617274 5671 00011600 696e6720 5671 00011604 77697468 5671 00011608 20706167 5671 0001160c 65202564 5671 00011610 0a00 5672 00011612 .align 2 5673 00011614 LC6_LF5: 5674 00011614 416c6c6f .ascii "Allocated memory, from map %d, page %d, map=0x%x.\n\000" 5674 00011618 63617465 5674 0001161c 64206d65 5674 00011620 6d6f7279 5674 00011624 2c206672 5674 00011628 6f6d206d 5674 0001162c 61702025 5674 00011630 642c2070 5674 00011634 61676520 5674 00011638 25642c20 5674 0001163c 6d61703d 5674 00011640 30782578 5674 00011644 2e0a00 5675 00011647 .text 5676 000056a0 .align 2 5677 000056a0 .proc _MemoryAllocPage 5678 000056a0 .global _MemoryAllocPage 5679 000056a0 _MemoryAllocPage: 5680 ; Function 'MemoryAllocPage'; 0 bytes of locals, 6 regs to save. 5681 000056a0 afbefffc sw -4(r29),r30; push fp 5682 000056a4 001df020 add r30,r0,r29; fp = sp 5683 000056a8 afbffff8 sw -8(r29),r31; push ret addr 5684 000056ac 2fbd0020 subui r29,r29,#32; alloc local storage 5685 000056b0 afa20000 sw 0(r29),r2 5686 000056b4 afa30004 sw 4(r29),r3 5687 000056b8 afa40008 sw 8(r29),r4 5688 000056bc afa5000c sw 12(r29),r5 5689 000056c0 afa60010 sw 16(r29),r6 5690 000056c4 afa70014 sw 20(r29),r7 5691 000056c8 3c010001 lhi r1,((_nfreepages_LF5)>>16)&0xffff 5692 000056cc 242116ac addui r1,r1,(_nfreepages_LF5)&0xffff 5693 000056d0 8c210000 lw r1,(r1) 5694 000056d4 64210000 snei r1,r1,#0 5695 000056d8 1420002c bnez r1,L111_LF5 5696 000056dc 54000000 nop; not filled. 5697 000056e0 23bdfff8 addi r29,r29,#-8 5698 000056e4 3c070001 lhi r7,((LC4_LF5)>>16)&0xffff 5699 000056e8 24e715d0 addui r7,r7,(LC4_LF5)&0xffff 5700 000056ec afa70000 sw (r29),r7 5701 000056f0 0c007b30 jal _printf 5702 000056f4 54000000 nop; not filled. 5703 000056f8 20010000 addi r1,r0,#0 5704 000056fc 23bd0008 addi r29,r29,#8 5705 00005700 08000238 j L110_LF5 5706 00005704 54000000 nop; not filled. 5707 00005708 L111_LF5: 5708 00005708 23bdfff8 addi r29,r29,#-8 5709 0000570c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 5710 00005710 24424038 addui r2,r2,(_debugstr)&0xffff 5711 00005714 afa20000 sw (r29),r2 5712 00005718 2007006d addi r7,r0,#109 5713 0000571c afa70004 sw 4(r29),r7 5714 00005720 0c000e68 jal _dindex 5715 00005724 54000000 nop; not filled. 5716 00005728 23bd0008 addi r29,r29,#8 5717 0000572c 64210000 snei r1,r1,#0 5718 00005730 1420002c bnez r1,L113_LF5 5719 00005734 54000000 nop; not filled. 5720 00005738 23bdfff8 addi r29,r29,#-8 5721 0000573c afa20000 sw (r29),r2 5722 00005740 2007002b addi r7,r0,#43 5723 00005744 afa70004 sw 4(r29),r7 5724 00005748 0c000e40 jal _dindex 5725 0000574c 54000000 nop; not filled. 5726 00005750 23bd0008 addi r29,r29,#8 5727 00005754 64210000 snei r1,r1,#0 5728 00005758 10200030 beqz r1,L112_LF5 5729 0000575c 54000000 nop; not filled. 5730 00005760 L113_LF5: 5731 00005760 23bdfff8 addi r29,r29,#-8 5732 00005764 3c070001 lhi r7,((LC5_LF5)>>16)&0xffff 5733 00005768 24e715e8 addui r7,r7,(LC5_LF5)&0xffff 5734 0000576c afa70000 sw (r29),r7 5735 00005770 3c010001 lhi r1,((_mapnum42_LF5)>>16)&0xffff 5736 00005774 242115cc addui r1,r1,(_mapnum42_LF5)&0xffff 5737 00005778 8c210000 lw r1,(r1) 5738 0000577c afa10004 sw 4(r29),r1 5739 00005780 0c007aa0 jal _printf 5740 00005784 54000000 nop; not filled. 5741 00005788 23bd0008 addi r29,r29,#8 5742 0000578c L112_LF5: 5743 0000578c 3c020001 lhi r2,((_mapnum42_LF5)>>16)&0xffff 5744 00005790 244215cc addui r2,r2,(_mapnum42_LF5)&0xffff 5745 00005794 8c410000 lw r1,(r2) 5746 00005798 3c040001 lhi r4,((_freepages_LF5)>>16)&0xffff 5747 0000579c 248416b0 addui r4,r4,(_freepages_LF5)&0xffff 5748 000057a0 50210002 slli r1,r1,#0x2 5749 000057a4 00240820 add r1,r1,r4 5750 000057a8 8c210000 lw r1,(r1) 5751 000057ac 64210000 snei r1,r1,#0 5752 000057b0 1420004c bnez r1,L115_LF5 5753 000057b4 54000000 nop; not filled. 5754 000057b8 3c010001 lhi r1,((_freemapmax_LF5)>>16)&0xffff 5755 000057bc 242116a8 addui r1,r1,(_freemapmax_LF5)&0xffff 5756 000057c0 8c230000 lw r3,(r1) 5757 000057c4 L116_LF5: 5758 000057c4 8c410000 lw r1,(r2) 5759 000057c8 20210001 addi r1,r1,#1 5760 000057cc ac410000 sw (r2),r1 5761 000057d0 0023082d sge r1,r1,r3 5762 000057d4 1020000c beqz r1,L114_LF5 5763 000057d8 54000000 nop; not filled. 5764 000057dc 20070000 addi r7,r0,#0 5765 000057e0 ac470000 sw (r2),r7 5766 000057e4 L114_LF5: 5767 000057e4 8c410000 lw r1,(r2) 5768 000057e8 50210002 slli r1,r1,#0x2 5769 000057ec 00240820 add r1,r1,r4 5770 000057f0 8c210000 lw r1,(r1) 5771 000057f4 64210000 snei r1,r1,#0 5772 000057f8 1020ffc8 beqz r1,L116_LF5 5773 000057fc 54000000 nop; not filled. 5774 00005800 L115_LF5: 5775 00005800 3c010001 lhi r1,((_mapnum42_LF5)>>16)&0xffff 5776 00005804 242115cc addui r1,r1,(_mapnum42_LF5)&0xffff 5777 00005808 8c210000 lw r1,(r1) 5778 0000580c 50210002 slli r1,r1,#0x2 5779 00005810 3c070001 lhi r7,((_freepages_LF5)>>16)&0xffff 5780 00005814 24e716b0 addui r7,r7,(_freepages_LF5)&0xffff 5781 00005818 00270820 add r1,r1,r7 5782 0000581c 8c230000 lw r3,(r1) 5783 00005820 201f0000 addi r31,r0,#0 5784 00005824 30610001 andi r1,r3,#1 5785 00005828 14200020 bnez r1,L120_LF5 5786 0000582c 54000000 nop; not filled. 5787 00005830 20020001 addi r2,r0,#1 5788 00005834 L121_LF5: 5789 00005834 23ff0001 addi r31,r31,#1 5790 00005838 005f0804 sll r1,r2,r31 5791 0000583c 00610824 and r1,r3,r1 5792 00005840 64210000 snei r1,r1,#0 5793 00005844 1020ffec beqz r1,L121_LF5 5794 00005848 54000000 nop; not filled. 5795 0000584c L120_LF5: 5796 0000584c 20010001 addi r1,r0,#1 5797 00005850 003f1004 sll r2,r1,r31 5798 00005854 3c010001 lhi r1,((_negativeone_LF5)>>16)&0xffff 5799 00005858 2421153c addui r1,r1,(_negativeone_LF5)&0xffff 5800 0000585c 8c210000 lw r1,(r1) 5801 00005860 00412026 xor r4,r2,r1 5802 00005864 3c050001 lhi r5,((_mapnum42_LF5)>>16)&0xffff 5803 00005868 24a515cc addui r5,r5,(_mapnum42_LF5)&0xffff 5804 0000586c 8ca30000 lw r3,(r5) 5805 00005870 3c060001 lhi r6,((_freepages_LF5)>>16)&0xffff 5806 00005874 24c616b0 addui r6,r6,(_freepages_LF5)&0xffff 5807 00005878 50610002 slli r1,r3,#0x2 5808 0000587c 00261020 add r2,r1,r6 5809 00005880 8c410000 lw r1,(r2) 5810 00005884 00240824 and r1,r1,r4 5811 00005888 ac410000 sw (r2),r1 5812 0000588c 50610005 slli r1,r3,#0x5 5813 00005890 003f1820 add r3,r1,r31 5814 00005894 23bdfff8 addi r29,r29,#-8 5815 00005898 3c020001 lhi r2,((_debugstr)>>16)&0xffff 5816 0000589c 24424038 addui r2,r2,(_debugstr)&0xffff 5817 000058a0 afa20000 sw (r29),r2 5818 000058a4 2007006d addi r7,r0,#109 5819 000058a8 afa70004 sw 4(r29),r7 5820 000058ac 0c000cdc jal _dindex 5821 000058b0 54000000 nop; not filled. 5822 000058b4 23bd0008 addi r29,r29,#8 5823 000058b8 64210000 snei r1,r1,#0 5824 000058bc 1420002c bnez r1,L126_LF5 5825 000058c0 54000000 nop; not filled. 5826 000058c4 23bdfff8 addi r29,r29,#-8 5827 000058c8 afa20000 sw (r29),r2 5828 000058cc 2007002b addi r7,r0,#43 5829 000058d0 afa70004 sw 4(r29),r7 5830 000058d4 0c000cb4 jal _dindex 5831 000058d8 54000000 nop; not filled. 5832 000058dc 23bd0008 addi r29,r29,#8 5833 000058e0 64210000 snei r1,r1,#0 5834 000058e4 1020003c beqz r1,L125_LF5 5835 000058e8 54000000 nop; not filled. 5836 000058ec L126_LF5: 5837 000058ec 23bdfff0 addi r29,r29,#-16 5838 000058f0 3c070001 lhi r7,((LC6_LF5)>>16)&0xffff 5839 000058f4 24e71614 addui r7,r7,(LC6_LF5)&0xffff 5840 000058f8 afa70000 sw (r29),r7 5841 000058fc 8ca10000 lw r1,(r5) 5842 00005900 afa10004 sw 4(r29),r1 5843 00005904 afa30008 sw 8(r29),r3 5844 00005908 50210002 slli r1,r1,#0x2 5845 0000590c 00260820 add r1,r1,r6 5846 00005910 8c210000 lw r1,(r1) 5847 00005914 afa1000c sw 12(r29),r1 5848 00005918 0c007908 jal _printf 5849 0000591c 54000000 nop; not filled. 5850 00005920 23bd0010 addi r29,r29,#16 5851 00005924 L125_LF5: 5852 00005924 3c010001 lhi r1,((_nfreepages_LF5)>>16)&0xffff 5853 00005928 242116ac addui r1,r1,(_nfreepages_LF5)&0xffff 5854 0000592c 8c220000 lw r2,(r1) 5855 00005930 2042ffff addi r2,r2,#-1 5856 00005934 ac220000 sw (r1),r2 5857 00005938 00030820 add r1,r0,r3 5858 0000593c L110_LF5: 5859 0000593c 8fa20000 lw r2,0(r29) 5860 00005940 8fa30004 lw r3,4(r29) 5861 00005944 8fa40008 lw r4,8(r29) 5862 00005948 8fa5000c lw r5,12(r29) 5863 0000594c 8fa60010 lw r6,16(r29) 5864 00005950 8fa70014 lw r7,20(r29) 5865 00005954 8fdffff8 lw r31,-8(r30) 5866 00005958 001ee820 add r29,r0,r30 5867 0000595c 8fdefffc lw r30,-4(r30) 5868 00005960 4be00000 jr r31 5869 00005964 54000000 nop 5870 00005968 .endproc _MemoryAllocPage 5871 00005968 .data 5872 00011647 .align 2 5873 00011648 LC7_LF5: 5874 00011648 46726565 .ascii "Freed page 0x%x, %d remaining.\n\000" 5874 0001164c 64207061 5874 00011650 67652030 5874 00011654 7825782c 5874 00011658 20256420 5874 0001165c 72656d61 5874 00011660 696e696e 5874 00011664 672e0a00 5875 00011668 .text 5876 00005968 .align 2 5877 00005968 .proc _MemoryFreePage 5878 00005968 .global _MemoryFreePage 5879 00005968 _MemoryFreePage: 5880 ; Function 'MemoryFreePage'; 0 bytes of locals, 6 regs to save. 5881 00005968 afbefffc sw -4(r29),r30; push fp 5882 0000596c 001df020 add r30,r0,r29; fp = sp 5883 00005970 afbffff8 sw -8(r29),r31; push ret addr 5884 00005974 2fbd0020 subui r29,r29,#32; alloc local storage 5885 00005978 afa20000 sw 0(r29),r2 5886 0000597c afa30004 sw 4(r29),r3 5887 00005980 afa40008 sw 8(r29),r4 5888 00005984 afa5000c sw 12(r29),r5 5889 00005988 afa60010 sw 16(r29),r6 5890 0000598c afa70014 sw 20(r29),r7 5891 00005990 8fc60000 lw r6,(r30) 5892 00005994 20030001 addi r3,r0,#1 5893 00005998 00061020 add r2,r0,r6 5894 0000599c 74c10000 sgei r1,r6,#0 5895 000059a0 14200008 bnez r1,L129_LF5 5896 000059a4 54000000 nop; not filled. 5897 000059a8 20c2001f addi r2,r6,#31 5898 000059ac L129_LF5: 5899 000059ac 5c450005 srai r5,r2,#0x5 5900 000059b0 50a10005 slli r1,r5,#0x5 5901 000059b4 00c10822 sub r1,r6,r1 5902 000059b8 00611804 sll r3,r3,r1 5903 000059bc 3c010001 lhi r1,((_negativeone_LF5)>>16)&0xffff 5904 000059c0 2421153c addui r1,r1,(_negativeone_LF5)&0xffff 5905 000059c4 8c210000 lw r1,(r1) 5906 000059c8 00611026 xor r2,r3,r1 5907 000059cc 50a10002 slli r1,r5,#0x2 5908 000059d0 3c070001 lhi r7,((_freepages_LF5)>>16)&0xffff 5909 000059d4 24e716b0 addui r7,r7,(_freepages_LF5)&0xffff 5910 000059d8 00272020 add r4,r1,r7 5911 000059dc 8c810000 lw r1,(r4) 5912 000059e0 00220824 and r1,r1,r2 5913 000059e4 00230825 or r1,r1,r3 5914 000059e8 ac810000 sw (r4),r1 5915 000059ec 23bdfff8 addi r29,r29,#-8 5916 000059f0 3c070001 lhi r7,((_debugstr)>>16)&0xffff 5917 000059f4 24e74038 addui r7,r7,(_debugstr)&0xffff 5918 000059f8 afa70000 sw (r29),r7 5919 000059fc 2007006d addi r7,r0,#109 5920 00005a00 afa70004 sw 4(r29),r7 5921 00005a04 0c000b84 jal _dindex 5922 00005a08 54000000 nop; not filled. 5923 00005a0c 23bd0008 addi r29,r29,#8 5924 00005a10 64210000 snei r1,r1,#0 5925 00005a14 14200034 bnez r1,L133_LF5 5926 00005a18 54000000 nop; not filled. 5927 00005a1c 23bdfff8 addi r29,r29,#-8 5928 00005a20 3c070001 lhi r7,((_debugstr)>>16)&0xffff 5929 00005a24 24e74038 addui r7,r7,(_debugstr)&0xffff 5930 00005a28 afa70000 sw (r29),r7 5931 00005a2c 2007002b addi r7,r0,#43 5932 00005a30 afa70004 sw 4(r29),r7 5933 00005a34 0c000b54 jal _dindex 5934 00005a38 54000000 nop; not filled. 5935 00005a3c 23bd0008 addi r29,r29,#8 5936 00005a40 64210000 snei r1,r1,#0 5937 00005a44 1020002c beqz r1,L128_LF5 5938 00005a48 54000000 nop; not filled. 5939 00005a4c L133_LF5: 5940 00005a4c 23bdfff0 addi r29,r29,#-16 5941 00005a50 3c070001 lhi r7,((LC0_LF5)>>16)&0xffff 5942 00005a54 24e71540 addui r7,r7,(LC0_LF5)&0xffff 5943 00005a58 afa70000 sw (r29),r7 5944 00005a5c afa50004 sw 4(r29),r5 5945 00005a60 8c840000 lw r4,(r4) 5946 00005a64 afa40008 sw 8(r29),r4 5947 00005a68 0c0077b8 jal _printf 5948 00005a6c 54000000 nop; not filled. 5949 00005a70 23bd0010 addi r29,r29,#16 5950 00005a74 L128_LF5: 5951 00005a74 3c020001 lhi r2,((_nfreepages_LF5)>>16)&0xffff 5952 00005a78 244216ac addui r2,r2,(_nfreepages_LF5)&0xffff 5953 00005a7c 8c410000 lw r1,(r2) 5954 00005a80 20210001 addi r1,r1,#1 5955 00005a84 ac410000 sw (r2),r1 5956 00005a88 23bdfff8 addi r29,r29,#-8 5957 00005a8c 3c030001 lhi r3,((_debugstr)>>16)&0xffff 5958 00005a90 24634038 addui r3,r3,(_debugstr)&0xffff 5959 00005a94 afa30000 sw (r29),r3 5960 00005a98 2007006d addi r7,r0,#109 5961 00005a9c afa70004 sw 4(r29),r7 5962 00005aa0 0c000ae8 jal _dindex 5963 00005aa4 54000000 nop; not filled. 5964 00005aa8 23bd0008 addi r29,r29,#8 5965 00005aac 64210000 snei r1,r1,#0 5966 00005ab0 1420002c bnez r1,L135_LF5 5967 00005ab4 54000000 nop; not filled. 5968 00005ab8 23bdfff8 addi r29,r29,#-8 5969 00005abc afa30000 sw (r29),r3 5970 00005ac0 2007002b addi r7,r0,#43 5971 00005ac4 afa70004 sw 4(r29),r7 5972 00005ac8 0c000ac0 jal _dindex 5973 00005acc 54000000 nop; not filled. 5974 00005ad0 23bd0008 addi r29,r29,#8 5975 00005ad4 64210000 snei r1,r1,#0 5976 00005ad8 1020002c beqz r1,L134_LF5 5977 00005adc 54000000 nop; not filled. 5978 00005ae0 L135_LF5: 5979 00005ae0 23bdfff0 addi r29,r29,#-16 5980 00005ae4 3c070001 lhi r7,((LC7_LF5)>>16)&0xffff 5981 00005ae8 24e71648 addui r7,r7,(LC7_LF5)&0xffff 5982 00005aec afa70000 sw (r29),r7 5983 00005af0 afa60004 sw 4(r29),r6 5984 00005af4 8c420000 lw r2,(r2) 5985 00005af8 afa20008 sw 8(r29),r2 5986 00005afc 0c007724 jal _printf 5987 00005b00 54000000 nop; not filled. 5988 00005b04 23bd0010 addi r29,r29,#16 5989 00005b08 L134_LF5: 5990 00005b08 8fa20000 lw r2,0(r29) 5991 00005b0c 8fa30004 lw r3,4(r29) 5992 00005b10 8fa40008 lw r4,8(r29) 5993 00005b14 8fa5000c lw r5,12(r29) 5994 00005b18 8fa60010 lw r6,16(r29) 5995 00005b1c 8fa70014 lw r7,20(r29) 5996 00005b20 8fdffff8 lw r31,-8(r30) 5997 00005b24 001ee820 add r29,r0,r30 5998 00005b28 8fdefffc lw r30,-4(r30) 5999 00005b2c 4be00000 jr r31 6000 00005b30 54000000 nop 6001 00005b34 .endproc _MemoryFreePage 6002 00005b34 .align 2 6003 00005b34 .proc _MemoryTranslateUserToSystem 6004 00005b34 .global _MemoryTranslateUserToSystem 6005 00005b34 _MemoryTranslateUserToSystem: 6006 ; Function 'MemoryTranslateUserToSystem'; 0 bytes of locals, 3 regs to save. 6007 00005b34 afbefffc sw -4(r29),r30; push fp 6008 00005b38 001df020 add r30,r0,r29; fp = sp 6009 00005b3c afbffff8 sw -8(r29),r31; push ret addr 6010 00005b40 2fbd0018 subui r29,r29,#24; alloc local storage 6011 00005b44 afa20000 sw 0(r29),r2 6012 00005b48 afa30004 sw 4(r29),r3 6013 00005b4c afa40008 sw 8(r29),r4 6014 00005b50 8fc30000 lw r3,(r30) 6015 00005b54 8fc10004 lw r1,4(r30) 6016 00005b58 583f0010 srli r31,r1,#0x10 6017 00005b5c 3022ffff andi r2,r1,#0xffff 6018 00005b60 8c6100a0 lw r1,160(r3) 6019 00005b64 03e1082b sgt r1,r31,r1 6020 00005b68 14200024 bnez r1,L139_LF5 6021 00005b6c 54000000 nop; not filled. 6022 00005b70 53e10002 slli r1,r31,#0x2 6023 00005b74 00230820 add r1,r1,r3 6024 00005b78 8c210060 lw r1,96(r1) 6025 00005b7c 2004fff8 addi r4,r0,#-8 6026 00005b80 00240824 and r1,r1,r4 6027 00005b84 00220820 add r1,r1,r2 6028 00005b88 08000008 j L140_LF5 6029 00005b8c 54000000 nop; not filled. 6030 00005b90 L139_LF5: 6031 00005b90 20010000 addi r1,r0,#0 6032 00005b94 L140_LF5: 6033 00005b94 8fa20000 lw r2,0(r29) 6034 00005b98 8fa30004 lw r3,4(r29) 6035 00005b9c 8fa40008 lw r4,8(r29) 6036 00005ba0 8fdffff8 lw r31,-8(r30) 6037 00005ba4 001ee820 add r29,r0,r30 6038 00005ba8 8fdefffc lw r30,-4(r30) 6039 00005bac 4be00000 jr r31 6040 00005bb0 54000000 nop 6041 00005bb4 .endproc _MemoryTranslateUserToSystem 6042 00005bb4 .align 2 6043 00005bb4 .proc _MemoryCopySystemToUser 6044 00005bb4 .global _MemoryCopySystemToUser 6045 00005bb4 _MemoryCopySystemToUser: 6046 ; Function 'MemoryCopySystemToUser'; 0 bytes of locals, 8 regs to save. 6047 00005bb4 afbefffc sw -4(r29),r30; push fp 6048 00005bb8 001df020 add r30,r0,r29; fp = sp 6049 00005bbc afbffff8 sw -8(r29),r31; push ret addr 6050 00005bc0 2fbd0028 subui r29,r29,#40; alloc local storage 6051 00005bc4 afa20000 sw 0(r29),r2 6052 00005bc8 afa30004 sw 4(r29),r3 6053 00005bcc afa40008 sw 8(r29),r4 6054 00005bd0 afa5000c sw 12(r29),r5 6055 00005bd4 afa60010 sw 16(r29),r6 6056 00005bd8 afa70014 sw 20(r29),r7 6057 00005bdc afa80018 sw 24(r29),r8 6058 00005be0 afa9001c sw 28(r29),r9 6059 00005be4 8fc70000 lw r7,(r30) 6060 00005be8 8fc50004 lw r5,4(r30) 6061 00005bec 8fc40008 lw r4,8(r30) 6062 00005bf0 8fc3000c lw r3,12(r30) 6063 00005bf4 20060000 addi r6,r0,#0 6064 00005bf8 6c610000 sgti r1,r3,#0 6065 00005bfc 102000a4 beqz r1,L167_LF5 6066 00005c00 54000000 nop; not filled. 6067 00005c04 3c080001 lhi r8,#1 6068 00005c08 25080000 addui r8,r8,#0 6069 00005c0c L168_LF5: 6070 00005c0c 58820010 srli r2,r4,#0x10 6071 00005c10 309fffff andi r31,r4,#0xffff 6072 00005c14 8ce100a0 lw r1,160(r7) 6073 00005c18 0041082b sgt r1,r2,r1 6074 00005c1c 10200010 beqz r1,L170_LF5 6075 00005c20 54000000 nop; not filled. 6076 00005c24 201f0000 addi r31,r0,#0 6077 00005c28 0800001c j L169_LF5 6078 00005c2c 54000000 nop; not filled. 6079 00005c30 L170_LF5: 6080 00005c30 50410002 slli r1,r2,#0x2 6081 00005c34 00270820 add r1,r1,r7 6082 00005c38 8c210060 lw r1,96(r1) 6083 00005c3c 2009fff8 addi r9,r0,#-8 6084 00005c40 00290824 and r1,r1,r9 6085 00005c44 003ff820 add r31,r1,r31 6086 00005c48 L169_LF5: 6087 00005c48 67e10000 snei r1,r31,#0 6088 00005c4c 10200054 beqz r1,L167_LF5 6089 00005c50 54000000 nop; not filled. 6090 00005c54 33e1ffff andi r1,r31,#65535 6091 00005c58 01011022 sub r2,r8,r1 6092 00005c5c 0043082b sgt r1,r2,r3 6093 00005c60 10200008 beqz r1,L172_LF5 6094 00005c64 54000000 nop; not filled. 6095 00005c68 00031020 add r2,r0,r3 6096 00005c6c L172_LF5: 6097 00005c6c 23bdfff0 addi r29,r29,#-16 6098 00005c70 afa50000 sw (r29),r5 6099 00005c74 afbf0004 sw 4(r29),r31 6100 00005c78 afa20008 sw 8(r29),r2 6101 00005c7c 0c000c9c jal _bcopy 6102 00005c80 54000000 nop; not filled. 6103 00005c84 23bd0010 addi r29,r29,#16 6104 00005c88 00621822 sub r3,r3,r2 6105 00005c8c 00c23020 add r6,r6,r2 6106 00005c90 00a22820 add r5,r5,r2 6107 00005c94 00822020 add r4,r4,r2 6108 00005c98 6c610000 sgti r1,r3,#0 6109 00005c9c 1420ff6c bnez r1,L168_LF5 6110 00005ca0 54000000 nop; not filled. 6111 00005ca4 L167_LF5: 6112 00005ca4 00060820 add r1,r0,r6 6113 00005ca8 8fa20000 lw r2,0(r29) 6114 00005cac 8fa30004 lw r3,4(r29) 6115 00005cb0 8fa40008 lw r4,8(r29) 6116 00005cb4 8fa5000c lw r5,12(r29) 6117 00005cb8 8fa60010 lw r6,16(r29) 6118 00005cbc 8fa70014 lw r7,20(r29) 6119 00005cc0 8fa80018 lw r8,24(r29) 6120 00005cc4 8fa9001c lw r9,28(r29) 6121 00005cc8 8fdffff8 lw r31,-8(r30) 6122 00005ccc 001ee820 add r29,r0,r30 6123 00005cd0 8fdefffc lw r30,-4(r30) 6124 00005cd4 4be00000 jr r31 6125 00005cd8 54000000 nop 6126 00005cdc .endproc _MemoryCopySystemToUser 6127 00005cdc .align 2 6128 00005cdc .proc _MemoryCopyUserToSystem 6129 00005cdc .global _MemoryCopyUserToSystem 6130 00005cdc _MemoryCopyUserToSystem: 6131 ; Function 'MemoryCopyUserToSystem'; 0 bytes of locals, 8 regs to save. 6132 00005cdc afbefffc sw -4(r29),r30; push fp 6133 00005ce0 001df020 add r30,r0,r29; fp = sp 6134 00005ce4 afbffff8 sw -8(r29),r31; push ret addr 6135 00005ce8 2fbd0028 subui r29,r29,#40; alloc local storage 6136 00005cec afa20000 sw 0(r29),r2 6137 00005cf0 afa30004 sw 4(r29),r3 6138 00005cf4 afa40008 sw 8(r29),r4 6139 00005cf8 afa5000c sw 12(r29),r5 6140 00005cfc afa60010 sw 16(r29),r6 6141 00005d00 afa70014 sw 20(r29),r7 6142 00005d04 afa80018 sw 24(r29),r8 6143 00005d08 afa9001c sw 28(r29),r9 6144 00005d0c 8fc70000 lw r7,(r30) 6145 00005d10 8fc50008 lw r5,8(r30) 6146 00005d14 8fc40004 lw r4,4(r30) 6147 00005d18 8fc3000c lw r3,12(r30) 6148 00005d1c 20060000 addi r6,r0,#0 6149 00005d20 6c610000 sgti r1,r3,#0 6150 00005d24 102000a4 beqz r1,L191_LF5 6151 00005d28 54000000 nop; not filled. 6152 00005d2c 3c080001 lhi r8,#1 6153 00005d30 25080000 addui r8,r8,#0 6154 00005d34 L192_LF5: 6155 00005d34 58820010 srli r2,r4,#0x10 6156 00005d38 309fffff andi r31,r4,#0xffff 6157 00005d3c 8ce100a0 lw r1,160(r7) 6158 00005d40 0041082b sgt r1,r2,r1 6159 00005d44 10200010 beqz r1,L194_LF5 6160 00005d48 54000000 nop; not filled. 6161 00005d4c 201f0000 addi r31,r0,#0 6162 00005d50 0800001c j L193_LF5 6163 00005d54 54000000 nop; not filled. 6164 00005d58 L194_LF5: 6165 00005d58 50410002 slli r1,r2,#0x2 6166 00005d5c 00270820 add r1,r1,r7 6167 00005d60 8c210060 lw r1,96(r1) 6168 00005d64 2009fff8 addi r9,r0,#-8 6169 00005d68 00290824 and r1,r1,r9 6170 00005d6c 003ff820 add r31,r1,r31 6171 00005d70 L193_LF5: 6172 00005d70 67e10000 snei r1,r31,#0 6173 00005d74 10200054 beqz r1,L191_LF5 6174 00005d78 54000000 nop; not filled. 6175 00005d7c 33e1ffff andi r1,r31,#65535 6176 00005d80 01011022 sub r2,r8,r1 6177 00005d84 0043082b sgt r1,r2,r3 6178 00005d88 10200008 beqz r1,L197_LF5 6179 00005d8c 54000000 nop; not filled. 6180 00005d90 00031020 add r2,r0,r3 6181 00005d94 L197_LF5: 6182 00005d94 23bdfff0 addi r29,r29,#-16 6183 00005d98 afbf0000 sw (r29),r31 6184 00005d9c afa50004 sw 4(r29),r5 6185 00005da0 afa20008 sw 8(r29),r2 6186 00005da4 0c000b74 jal _bcopy 6187 00005da8 54000000 nop; not filled. 6188 00005dac 23bd0010 addi r29,r29,#16 6189 00005db0 00621822 sub r3,r3,r2 6190 00005db4 00c23020 add r6,r6,r2 6191 00005db8 00a22820 add r5,r5,r2 6192 00005dbc 00822020 add r4,r4,r2 6193 00005dc0 6c610000 sgti r1,r3,#0 6194 00005dc4 1420ff6c bnez r1,L192_LF5 6195 00005dc8 54000000 nop; not filled. 6196 00005dcc L191_LF5: 6197 00005dcc 00060820 add r1,r0,r6 6198 00005dd0 8fa20000 lw r2,0(r29) 6199 00005dd4 8fa30004 lw r3,4(r29) 6200 00005dd8 8fa40008 lw r4,8(r29) 6201 00005ddc 8fa5000c lw r5,12(r29) 6202 00005de0 8fa60010 lw r6,16(r29) 6203 00005de4 8fa70014 lw r7,20(r29) 6204 00005de8 8fa80018 lw r8,24(r29) 6205 00005dec 8fa9001c lw r9,28(r29) 6206 00005df0 8fdffff8 lw r31,-8(r30) 6207 00005df4 001ee820 add r29,r0,r30 6208 00005df8 8fdefffc lw r30,-4(r30) 6209 00005dfc 4be00000 jr r31 6210 00005e00 54000000 nop 6211 00005e04 .endproc _MemoryCopyUserToSystem 6212 00005e04 .align 2 6213 00005e04 .proc _MemorySetupPte 6214 00005e04 .global _MemorySetupPte 6215 00005e04 _MemorySetupPte: 6216 ; Function 'MemorySetupPte'; 0 bytes of locals, 0 regs to save. 6217 00005e04 afbefffc sw -4(r29),r30; push fp 6218 00005e08 001df020 add r30,r0,r29; fp = sp 6219 00005e0c afbffff8 sw -8(r29),r31; push ret addr 6220 00005e10 2fbd0008 subui r29,r29,#8; alloc local storage 6221 00005e14 8fc10000 lw r1,(r30) 6222 00005e18 50210010 slli r1,r1,#0x10 6223 00005e1c 34210001 ori r1,r1,#1 6224 00005e20 8fdffff8 lw r31,-8(r30) 6225 00005e24 001ee820 add r29,r0,r30 6226 00005e28 8fdefffc lw r30,-4(r30) 6227 00005e2c 4be00000 jr r31 6228 00005e30 54000000 nop 6229 00005e34 .endproc _MemorySetupPte 6230 00005e34 .align 2 6231 00005e34 .proc _MemoryFreePte 6232 00005e34 .global _MemoryFreePte 6233 00005e34 _MemoryFreePte: 6234 ; Function 'MemoryFreePte'; 0 bytes of locals, 0 regs to save. 6235 00005e34 afbefffc sw -4(r29),r30; push fp 6236 00005e38 001df020 add r30,r0,r29; fp = sp 6237 00005e3c afbffff8 sw -8(r29),r31; push ret addr 6238 00005e40 2fbd0008 subui r29,r29,#8; alloc local storage 6239 00005e44 23bdfff8 addi r29,r29,#-8 6240 00005e48 97c10000 lhu r1,(r30) 6241 00005e4c afa10000 sw (r29),r1 6242 00005e50 0ffffb14 jal _MemoryFreePage 6243 00005e54 54000000 nop; not filled. 6244 00005e58 23bd0008 addi r29,r29,#8 6245 00005e5c 8fdffff8 lw r31,-8(r30) 6246 00005e60 001ee820 add r29,r0,r30 6247 00005e64 8fdefffc lw r30,-4(r30) 6248 00005e68 4be00000 jr r31 6249 00005e6c 54000000 nop 6250 00005e70 .endproc _MemoryFreePte 6251 00005e70 .align 2 6252 00005e70 .proc _MemoryPteToPage 6253 00005e70 .global _MemoryPteToPage 6254 00005e70 _MemoryPteToPage: 6255 ; Function 'MemoryPteToPage'; 0 bytes of locals, 0 regs to save. 6256 00005e70 afbefffc sw -4(r29),r30; push fp 6257 00005e74 001df020 add r30,r0,r29; fp = sp 6258 00005e78 afbffff8 sw -8(r29),r31; push ret addr 6259 00005e7c 2fbd0008 subui r29,r29,#8; alloc local storage 6260 00005e80 8fc10000 lw r1,(r30) 6261 00005e84 201ffff8 addi r31,r0,#-8 6262 00005e88 003f0824 and r1,r1,r31 6263 00005e8c 8fdffff8 lw r31,-8(r30) 6264 00005e90 001ee820 add r29,r0,r30 6265 00005e94 8fdefffc lw r30,-4(r30) 6266 00005e98 4be00000 jr r31 6267 00005e9c 54000000 nop 6268 00005ea0 .endproc _MemoryPteToPage 6269 00005ea0 .data 6270 00011668 .align 2 6271 00011668 _invalidOps61_LF5: 6272 00011668 00003404 .word 13316 6273 0001166c .align 2 6274 0001166c LC8_LF5: 6275 0001166c 4f706572 .ascii "Operand for instruction %08x is 0x%x (reg=<%d,0x%x>)\n\000" 6275 00011670 616e6420 6275 00011674 666f7220 6275 00011678 696e7374 6275 0001167c 72756374 6275 00011680 696f6e20 6275 00011684 25303878 6275 00011688 20697320 6275 0001168c 30782578 6275 00011690 20287265 6275 00011694 673d3c25 6275 00011698 642c3078 6275 0001169c 25783e29 6275 000116a0 0a00 6276 000116a2 .text 6277 00005ea0 .align 2 6278 00005ea0 .proc _MemoryGetOperandAddress 6279 00005ea0 .global _MemoryGetOperandAddress 6280 00005ea0 _MemoryGetOperandAddress: 6281 ; Function 'MemoryGetOperandAddress'; 0 bytes of locals, 6 regs to save. 6282 00005ea0 afbefffc sw -4(r29),r30; push fp 6283 00005ea4 001df020 add r30,r0,r29; fp = sp 6284 00005ea8 afbffff8 sw -8(r29),r31; push ret addr 6285 00005eac 2fbd0020 subui r29,r29,#32; alloc local storage 6286 00005eb0 afa20000 sw 0(r29),r2 6287 00005eb4 afa30004 sw 4(r29),r3 6288 00005eb8 afa40008 sw 8(r29),r4 6289 00005ebc afa5000c sw 12(r29),r5 6290 00005ec0 afa60010 sw 16(r29),r6 6291 00005ec4 afa70014 sw 20(r29),r7 6292 00005ec8 8fc20000 lw r2,(r30) 6293 00005ecc 8fc50004 lw r5,4(r30) 6294 00005ed0 58a1001a srli r1,r5,#0x1a 6295 00005ed4 203fffe0 addi r31,r1,#-32 6296 00005ed8 6fe1000f sgtui r1,r31,#15 6297 00005edc 14200020 bnez r1,L214_LF5 6298 00005ee0 54000000 nop; not filled. 6299 00005ee4 3c010001 lhi r1,((_invalidOps61_LF5)>>16)&0xffff 6300 00005ee8 24211668 addui r1,r1,(_invalidOps61_LF5)&0xffff 6301 00005eec 8c210000 lw r1,(r1) 6302 00005ef0 003f0806 srl r1,r1,r31 6303 00005ef4 30210001 andi r1,r1,#1 6304 00005ef8 10200010 beqz r1,L213_LF5 6305 00005efc 54000000 nop; not filled. 6306 00005f00 L214_LF5: 6307 00005f00 2001ffff addi r1,r0,#-1 6308 00005f04 080000c4 j L218_LF5 6309 00005f08 54000000 nop; not filled. 6310 00005f0c L213_LF5: 6311 00005f0c 58a10015 srli r1,r5,#0x15 6312 00005f10 3026001f andi r6,r1,#31 6313 00005f14 30bfffff andi r31,r5,#0xffff 6314 00005f18 5be1000f srli r1,r31,#0xf 6315 00005f1c 10200010 beqz r1,L215_LF5 6316 00005f20 54000000 nop; not filled. 6317 00005f24 3c07ffff lhi r7,#-1 6318 00005f28 24e70000 addui r7,r7,#0 6319 00005f2c 03e7f825 or r31,r31,r7 6320 00005f30 L215_LF5: 6321 00005f30 8c420000 lw r2,(r2) 6322 00005f34 50c10002 slli r1,r6,#0x2 6323 00005f38 00220820 add r1,r1,r2 6324 00005f3c 8c230028 lw r3,40(r1) 6325 00005f40 007f2020 add r4,r3,r31 6326 00005f44 23bdfff8 addi r29,r29,#-8 6327 00005f48 3c020001 lhi r2,((_debugstr)>>16)&0xffff 6328 00005f4c 24424038 addui r2,r2,(_debugstr)&0xffff 6329 00005f50 afa20000 sw (r29),r2 6330 00005f54 2007006d addi r7,r0,#109 6331 00005f58 afa70004 sw 4(r29),r7 6332 00005f5c 0c00062c jal _dindex 6333 00005f60 54000000 nop; not filled. 6334 00005f64 23bd0008 addi r29,r29,#8 6335 00005f68 64210000 snei r1,r1,#0 6336 00005f6c 1420002c bnez r1,L217_LF5 6337 00005f70 54000000 nop; not filled. 6338 00005f74 23bdfff8 addi r29,r29,#-8 6339 00005f78 afa20000 sw (r29),r2 6340 00005f7c 2007002b addi r7,r0,#43 6341 00005f80 afa70004 sw 4(r29),r7 6342 00005f84 0c000604 jal _dindex 6343 00005f88 54000000 nop; not filled. 6344 00005f8c 23bd0008 addi r29,r29,#8 6345 00005f90 64210000 snei r1,r1,#0 6346 00005f94 10200030 beqz r1,L216_LF5 6347 00005f98 54000000 nop; not filled. 6348 00005f9c L217_LF5: 6349 00005f9c 23bdffe8 addi r29,r29,#-24 6350 00005fa0 3c070001 lhi r7,((LC8_LF5)>>16)&0xffff 6351 00005fa4 24e7166c addui r7,r7,(LC8_LF5)&0xffff 6352 00005fa8 afa70000 sw (r29),r7 6353 00005fac afa50004 sw 4(r29),r5 6354 00005fb0 afa40008 sw 8(r29),r4 6355 00005fb4 afa6000c sw 12(r29),r6 6356 00005fb8 afa30010 sw 16(r29),r3 6357 00005fbc 0c007264 jal _printf 6358 00005fc0 54000000 nop; not filled. 6359 00005fc4 23bd0018 addi r29,r29,#24 6360 00005fc8 L216_LF5: 6361 00005fc8 00040820 add r1,r0,r4 6362 00005fcc L218_LF5: 6363 00005fcc 8fa20000 lw r2,0(r29) 6364 00005fd0 8fa30004 lw r3,4(r29) 6365 00005fd4 8fa40008 lw r4,8(r29) 6366 00005fd8 8fa5000c lw r5,12(r29) 6367 00005fdc 8fa60010 lw r6,16(r29) 6368 00005fe0 8fa70014 lw r7,20(r29) 6369 00005fe4 8fdffff8 lw r31,-8(r30) 6370 00005fe8 001ee820 add r29,r0,r30 6371 00005fec 8fdefffc lw r30,-4(r30) 6372 00005ff0 4be00000 jr r31 6373 00005ff4 54000000 nop 6374 00005ff8 .endproc _MemoryGetOperandAddress 6375 00005ff8 .data 6376 000116a2 .align 2 6377 000116a4 _pagestart_LF5: 6378 000116a4 .space 4 6379 000116a8 .align 2 6380 000116a8 _freemapmax_LF5: 6381 000116a8 .space 4 6382 000116ac .align 2 6383 000116ac _nfreepages_LF5: 6384 000116ac .space 4 6385 000116b0 .align 2 6386 000116b0 _freepages_LF5: 6387 000116b0 .space 8192 6388 ; Compiled by GCC 6389 000136b0 .text 6390 00005ff8 .align 2 6391 00005ff8 .proc _isspace 6392 00005ff8 .global _isspace 6393 00005ff8 _isspace: 6394 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 6395 00005ff8 afbefffc sw -4(r29),r30; push fp 6396 00005ffc 001df020 add r30,r0,r29; fp = sp 6397 00006000 afbffff8 sw -8(r29),r31; push ret addr 6398 00006004 2fbd0010 subui r29,r29,#16; alloc local storage 6399 00006008 afa20000 sw 0(r29),r2 6400 0000600c 83c20003 lb r2,3(r30) 6401 00006010 201f0000 addi r31,r0,#0 6402 00006014 304100ff andi r1,r2,#0x00ff 6403 00006018 60210020 seqi r1,r1,#32 6404 0000601c 14200018 bnez r1,L6_LF6 6405 00006020 54000000 nop; not filled. 6406 00006024 2041fff7 addi r1,r2,#-9 6407 00006028 302100ff andi r1,r1,#0x00ff 6408 0000602c 70210001 sleui r1,r1,#1 6409 00006030 10200008 beqz r1,L5_LF6 6410 00006034 54000000 nop; not filled. 6411 00006038 L6_LF6: 6412 00006038 201f0001 addi r31,r0,#1 6413 0000603c L5_LF6: 6414 0000603c 001f0820 add r1,r0,r31 6415 00006040 8fa20000 lw r2,0(r29) 6416 00006044 8fdffff8 lw r31,-8(r30) 6417 00006048 001ee820 add r29,r0,r30 6418 0000604c 8fdefffc lw r30,-4(r30) 6419 00006050 4be00000 jr r31 6420 00006054 54000000 nop 6421 00006058 .endproc _isspace 6422 00006058 .align 2 6423 00006058 .proc _isxdigit 6424 00006058 .global _isxdigit 6425 00006058 _isxdigit: 6426 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 6427 00006058 afbefffc sw -4(r29),r30; push fp 6428 0000605c 001df020 add r30,r0,r29; fp = sp 6429 00006060 afbffff8 sw -8(r29),r31; push ret addr 6430 00006064 2fbd0010 subui r29,r29,#16; alloc local storage 6431 00006068 afa20000 sw 0(r29),r2 6432 0000606c 83df0003 lb r31,3(r30) 6433 00006070 20020000 addi r2,r0,#0 6434 00006074 23e1ffd0 addi r1,r31,#-48 6435 00006078 302100ff andi r1,r1,#0x00ff 6436 0000607c 70210009 sleui r1,r1,#9 6437 00006080 14200028 bnez r1,L12_LF6 6438 00006084 54000000 nop; not filled. 6439 00006088 23e1ff9f addi r1,r31,#-97 6440 0000608c 302100ff andi r1,r1,#0x00ff 6441 00006090 70210005 sleui r1,r1,#5 6442 00006094 14200014 bnez r1,L12_LF6 6443 00006098 54000000 nop; not filled. 6444 0000609c 33e100ff andi r1,r31,#0x00ff 6445 000060a0 64210041 snei r1,r1,#65 6446 000060a4 14200008 bnez r1,L11_LF6 6447 000060a8 54000000 nop; not filled. 6448 000060ac L12_LF6: 6449 000060ac 20020001 addi r2,r0,#1 6450 000060b0 L11_LF6: 6451 000060b0 00020820 add r1,r0,r2 6452 000060b4 8fa20000 lw r2,0(r29) 6453 000060b8 8fdffff8 lw r31,-8(r30) 6454 000060bc 001ee820 add r29,r0,r30 6455 000060c0 8fdefffc lw r30,-4(r30) 6456 000060c4 4be00000 jr r31 6457 000060c8 54000000 nop 6458 000060cc .endproc _isxdigit 6459 000060cc .align 2 6460 000060cc .proc _dstrcpy 6461 000060cc .global _dstrcpy 6462 000060cc _dstrcpy: 6463 ; Function 'dstrcpy'; 0 bytes of locals, 2 regs to save. 6464 000060cc afbefffc sw -4(r29),r30; push fp 6465 000060d0 001df020 add r30,r0,r29; fp = sp 6466 000060d4 afbffff8 sw -8(r29),r31; push ret addr 6467 000060d8 2fbd0010 subui r29,r29,#16; alloc local storage 6468 000060dc afa20000 sw 0(r29),r2 6469 000060e0 afa30004 sw 4(r29),r3 6470 000060e4 8fdf0000 lw r31,(r30) 6471 000060e8 8fc20004 lw r2,4(r30) 6472 000060ec 001f1820 add r3,r0,r31 6473 000060f0 L19_LF6: 6474 000060f0 80410000 lb r1,(r2) 6475 000060f4 a3e10000 sb (r31),r1 6476 000060f8 20420001 addi r2,r2,#1 6477 000060fc 23ff0001 addi r31,r31,#1 6478 00006100 302100ff andi r1,r1,#0x00ff 6479 00006104 64210000 snei r1,r1,#0 6480 00006108 1420ffe4 bnez r1,L19_LF6 6481 0000610c 54000000 nop; not filled. 6482 00006110 00030820 add r1,r0,r3 6483 00006114 8fa20000 lw r2,0(r29) 6484 00006118 8fa30004 lw r3,4(r29) 6485 0000611c 8fdffff8 lw r31,-8(r30) 6486 00006120 001ee820 add r29,r0,r30 6487 00006124 8fdefffc lw r30,-4(r30) 6488 00006128 4be00000 jr r31 6489 0000612c 54000000 nop 6490 00006130 .endproc _dstrcpy 6491 00006130 .align 2 6492 00006130 .proc _dstrncpy 6493 00006130 .global _dstrncpy 6494 00006130 _dstrncpy: 6495 ; Function 'dstrncpy'; 0 bytes of locals, 3 regs to save. 6496 00006130 afbefffc sw -4(r29),r30; push fp 6497 00006134 001df020 add r30,r0,r29; fp = sp 6498 00006138 afbffff8 sw -8(r29),r31; push ret addr 6499 0000613c 2fbd0018 subui r29,r29,#24; alloc local storage 6500 00006140 afa20000 sw 0(r29),r2 6501 00006144 afa30004 sw 4(r29),r3 6502 00006148 afa40008 sw 8(r29),r4 6503 0000614c 8fc20000 lw r2,(r30) 6504 00006150 8fc30004 lw r3,4(r30) 6505 00006154 8fdf0008 lw r31,8(r30) 6506 00006158 00022020 add r4,r0,r2 6507 0000615c 08000024 j L37_LF6 6508 00006160 54000000 nop; not filled. 6509 00006164 L34_LF6: 6510 00006164 80610000 lb r1,(r3) 6511 00006168 a0410000 sb (r2),r1 6512 0000616c 20630001 addi r3,r3,#1 6513 00006170 20420001 addi r2,r2,#1 6514 00006174 302100ff andi r1,r1,#0x00ff 6515 00006178 64210000 snei r1,r1,#0 6516 0000617c 10200018 beqz r1,L32_LF6 6517 00006180 54000000 nop; not filled. 6518 00006184 L37_LF6: 6519 00006184 001f0820 add r1,r0,r31 6520 00006188 23ffffff addi r31,r31,#-1 6521 0000618c 70210000 slei r1,r1,#0 6522 00006190 1020ffd0 beqz r1,L34_LF6 6523 00006194 54000000 nop; not filled. 6524 00006198 L32_LF6: 6525 00006198 00040820 add r1,r0,r4 6526 0000619c 8fa20000 lw r2,0(r29) 6527 000061a0 8fa30004 lw r3,4(r29) 6528 000061a4 8fa40008 lw r4,8(r29) 6529 000061a8 8fdffff8 lw r31,-8(r30) 6530 000061ac 001ee820 add r29,r0,r30 6531 000061b0 8fdefffc lw r30,-4(r30) 6532 000061b4 4be00000 jr r31 6533 000061b8 54000000 nop 6534 000061bc .endproc _dstrncpy 6535 000061bc .align 2 6536 000061bc .proc _dstrcat 6537 000061bc .global _dstrcat 6538 000061bc _dstrcat: 6539 ; Function 'dstrcat'; 0 bytes of locals, 2 regs to save. 6540 000061bc afbefffc sw -4(r29),r30; push fp 6541 000061c0 001df020 add r30,r0,r29; fp = sp 6542 000061c4 afbffff8 sw -8(r29),r31; push ret addr 6543 000061c8 2fbd0010 subui r29,r29,#16; alloc local storage 6544 000061cc afa20000 sw 0(r29),r2 6545 000061d0 afa30004 sw 4(r29),r3 6546 000061d4 8fdf0000 lw r31,(r30) 6547 000061d8 001f1820 add r3,r0,r31 6548 000061dc 90610000 lbu r1,(r3) 6549 000061e0 64210000 snei r1,r1,#0 6550 000061e4 10200018 beqz r1,L50_LF6 6551 000061e8 54000000 nop; not filled. 6552 000061ec L51_LF6: 6553 000061ec 23ff0001 addi r31,r31,#1 6554 000061f0 93e10000 lbu r1,(r31) 6555 000061f4 64210000 snei r1,r1,#0 6556 000061f8 1420fff0 bnez r1,L51_LF6 6557 000061fc 54000000 nop; not filled. 6558 00006200 L50_LF6: 6559 00006200 001f1020 add r2,r0,r31 6560 00006204 8fdf0004 lw r31,4(r30) 6561 00006208 L54_LF6: 6562 00006208 83e10000 lb r1,(r31) 6563 0000620c a0410000 sb (r2),r1 6564 00006210 23ff0001 addi r31,r31,#1 6565 00006214 20420001 addi r2,r2,#1 6566 00006218 302100ff andi r1,r1,#0x00ff 6567 0000621c 64210000 snei r1,r1,#0 6568 00006220 1420ffe4 bnez r1,L54_LF6 6569 00006224 54000000 nop; not filled. 6570 00006228 00030820 add r1,r0,r3 6571 0000622c 8fa20000 lw r2,0(r29) 6572 00006230 8fa30004 lw r3,4(r29) 6573 00006234 8fdffff8 lw r31,-8(r30) 6574 00006238 001ee820 add r29,r0,r30 6575 0000623c 8fdefffc lw r30,-4(r30) 6576 00006240 4be00000 jr r31 6577 00006244 54000000 nop 6578 00006248 .endproc _dstrcat 6579 00006248 .align 2 6580 00006248 .proc _dstrncmp 6581 00006248 .global _dstrncmp 6582 00006248 _dstrncmp: 6583 ; Function 'dstrncmp'; 0 bytes of locals, 4 regs to save. 6584 00006248 afbefffc sw -4(r29),r30; push fp 6585 0000624c 001df020 add r30,r0,r29; fp = sp 6586 00006250 afbffff8 sw -8(r29),r31; push ret addr 6587 00006254 2fbd0018 subui r29,r29,#24; alloc local storage 6588 00006258 afa20000 sw 0(r29),r2 6589 0000625c afa30004 sw 4(r29),r3 6590 00006260 afa40008 sw 8(r29),r4 6591 00006264 afa5000c sw 12(r29),r5 6592 00006268 8fc30000 lw r3,(r30) 6593 0000626c 8fc40004 lw r4,4(r30) 6594 00006270 8fc50008 lw r5,8(r30) 6595 00006274 20020000 addi r2,r0,#0 6596 00006278 0045082a slt r1,r2,r5 6597 0000627c 1020003c beqz r1,L73_LF6 6598 00006280 54000000 nop; not filled. 6599 00006284 L75_LF6: 6600 00006284 909f0000 lbu r31,(r4) 6601 00006288 67e10000 snei r1,r31,#0 6602 0000628c 10200038 beqz r1,L86_LF6 6603 00006290 54000000 nop; not filled. 6604 00006294 90610000 lbu r1,(r3) 6605 00006298 003f0829 sne r1,r1,r31 6606 0000629c 1420001c bnez r1,L73_LF6 6607 000062a0 54000000 nop; not filled. 6608 000062a4 20630001 addi r3,r3,#1 6609 000062a8 20840001 addi r4,r4,#1 6610 000062ac 20420001 addi r2,r2,#1 6611 000062b0 0045082a slt r1,r2,r5 6612 000062b4 1420ffcc bnez r1,L75_LF6 6613 000062b8 54000000 nop; not filled. 6614 000062bc L73_LF6: 6615 000062bc 00450828 seq r1,r2,r5 6616 000062c0 10200010 beqz r1,L80_LF6 6617 000062c4 54000000 nop; not filled. 6618 000062c8 L86_LF6: 6619 000062c8 20010000 addi r1,r0,#0 6620 000062cc 08000028 j L84_LF6 6621 000062d0 54000000 nop; not filled. 6622 000062d4 L80_LF6: 6623 000062d4 907f0000 lbu r31,(r3) 6624 000062d8 90830000 lbu r3,(r4) 6625 000062dc 03e30822 sub r1,r31,r3 6626 000062e0 74210000 sgei r1,r1,#0 6627 000062e4 2002ffff addi r2,r0,#-1 6628 000062e8 10200008 beqz r1,L82_LF6 6629 000062ec 54000000 nop; not filled. 6630 000062f0 03e31029 sne r2,r31,r3 6631 000062f4 L82_LF6: 6632 000062f4 00020820 add r1,r0,r2 6633 000062f8 L84_LF6: 6634 000062f8 8fa20000 lw r2,0(r29) 6635 000062fc 8fa30004 lw r3,4(r29) 6636 00006300 8fa40008 lw r4,8(r29) 6637 00006304 8fa5000c lw r5,12(r29) 6638 00006308 8fdffff8 lw r31,-8(r30) 6639 0000630c 001ee820 add r29,r0,r30 6640 00006310 8fdefffc lw r30,-4(r30) 6641 00006314 4be00000 jr r31 6642 00006318 54000000 nop 6643 0000631c .endproc _dstrncmp 6644 0000631c .align 2 6645 0000631c .proc _dstrlen 6646 0000631c .global _dstrlen 6647 0000631c _dstrlen: 6648 ; Function 'dstrlen'; 0 bytes of locals, 1 regs to save. 6649 0000631c afbefffc sw -4(r29),r30; push fp 6650 00006320 001df020 add r30,r0,r29; fp = sp 6651 00006324 afbffff8 sw -8(r29),r31; push ret addr 6652 00006328 2fbd0010 subui r29,r29,#16; alloc local storage 6653 0000632c afa20000 sw 0(r29),r2 6654 00006330 8fdf0000 lw r31,(r30) 6655 00006334 20020000 addi r2,r0,#0 6656 00006338 08000008 j L97_LF6 6657 0000633c 54000000 nop; not filled. 6658 00006340 L95_LF6: 6659 00006340 20420001 addi r2,r2,#1 6660 00006344 L97_LF6: 6661 00006344 93e10000 lbu r1,(r31) 6662 00006348 23ff0001 addi r31,r31,#1 6663 0000634c 64210000 snei r1,r1,#0 6664 00006350 1420ffec bnez r1,L95_LF6 6665 00006354 54000000 nop; not filled. 6666 00006358 00020820 add r1,r0,r2 6667 0000635c 8fa20000 lw r2,0(r29) 6668 00006360 8fdffff8 lw r31,-8(r30) 6669 00006364 001ee820 add r29,r0,r30 6670 00006368 8fdefffc lw r30,-4(r30) 6671 0000636c 4be00000 jr r31 6672 00006370 54000000 nop 6673 00006374 .endproc _dstrlen 6674 00006374 .align 2 6675 00006374 .proc _dstrstr 6676 00006374 .global _dstrstr 6677 00006374 _dstrstr: 6678 ; Function 'dstrstr'; 0 bytes of locals, 6 regs to save. 6679 00006374 afbefffc sw -4(r29),r30; push fp 6680 00006378 001df020 add r30,r0,r29; fp = sp 6681 0000637c afbffff8 sw -8(r29),r31; push ret addr 6682 00006380 2fbd0020 subui r29,r29,#32; alloc local storage 6683 00006384 afa20000 sw 0(r29),r2 6684 00006388 afa30004 sw 4(r29),r3 6685 0000638c afa40008 sw 8(r29),r4 6686 00006390 afa5000c sw 12(r29),r5 6687 00006394 afa60010 sw 16(r29),r6 6688 00006398 afa70014 sw 20(r29),r7 6689 0000639c 8fc50000 lw r5,(r30) 6690 000063a0 8fc70004 lw r7,4(r30) 6691 000063a4 20030000 addi r3,r0,#0 6692 000063a8 90e10000 lbu r1,(r7) 6693 000063ac 20e20001 addi r2,r7,#1 6694 000063b0 64210000 snei r1,r1,#0 6695 000063b4 1020001c beqz r1,L125_LF6 6696 000063b8 54000000 nop; not filled. 6697 000063bc L126_LF6: 6698 000063bc 20630001 addi r3,r3,#1 6699 000063c0 90410000 lbu r1,(r2) 6700 000063c4 20420001 addi r2,r2,#1 6701 000063c8 64210000 snei r1,r1,#0 6702 000063cc 1420ffec bnez r1,L126_LF6 6703 000063d0 54000000 nop; not filled. 6704 000063d4 L125_LF6: 6705 000063d4 00033020 add r6,r0,r3 6706 000063d8 080000ac j L149_LF6 6707 000063dc 54000000 nop; not filled. 6708 000063e0 L130_LF6: 6709 000063e0 00051820 add r3,r0,r5 6710 000063e4 00072020 add r4,r0,r7 6711 000063e8 20020000 addi r2,r0,#0 6712 000063ec 0046082a slt r1,r2,r6 6713 000063f0 1020003c beqz r1,L134_LF6 6714 000063f4 54000000 nop; not filled. 6715 000063f8 L136_LF6: 6716 000063f8 909f0000 lbu r31,(r4) 6717 000063fc 67e10000 snei r1,r31,#0 6718 00006400 10200038 beqz r1,L150_LF6 6719 00006404 54000000 nop; not filled. 6720 00006408 90610000 lbu r1,(r3) 6721 0000640c 003f0829 sne r1,r1,r31 6722 00006410 1420001c bnez r1,L134_LF6 6723 00006414 54000000 nop; not filled. 6724 00006418 20630001 addi r3,r3,#1 6725 0000641c 20840001 addi r4,r4,#1 6726 00006420 20420001 addi r2,r2,#1 6727 00006424 0046082a slt r1,r2,r6 6728 00006428 1420ffcc bnez r1,L136_LF6 6729 0000642c 54000000 nop; not filled. 6730 00006430 L134_LF6: 6731 00006430 00460828 seq r1,r2,r6 6732 00006434 10200010 beqz r1,L141_LF6 6733 00006438 54000000 nop; not filled. 6734 0000643c L150_LF6: 6735 0000643c 20010000 addi r1,r0,#0 6736 00006440 08000028 j L132_LF6 6737 00006444 54000000 nop; not filled. 6738 00006448 L141_LF6: 6739 00006448 90630000 lbu r3,(r3) 6740 0000644c 90820000 lbu r2,(r4) 6741 00006450 00620822 sub r1,r3,r2 6742 00006454 74210000 sgei r1,r1,#0 6743 00006458 201fffff addi r31,r0,#-1 6744 0000645c 10200008 beqz r1,L143_LF6 6745 00006460 54000000 nop; not filled. 6746 00006464 0062f829 sne r31,r3,r2 6747 00006468 L143_LF6: 6748 00006468 001f0820 add r1,r0,r31 6749 0000646c L132_LF6: 6750 0000646c 64210000 snei r1,r1,#0 6751 00006470 14200010 bnez r1,L131_LF6 6752 00006474 54000000 nop; not filled. 6753 00006478 00050820 add r1,r0,r5 6754 0000647c 0800001c j L146_LF6 6755 00006480 54000000 nop; not filled. 6756 00006484 L131_LF6: 6757 00006484 20a50001 addi r5,r5,#1 6758 00006488 L149_LF6: 6759 00006488 90a10000 lbu r1,(r5) 6760 0000648c 64210000 snei r1,r1,#0 6761 00006490 1420ff4c bnez r1,L130_LF6 6762 00006494 54000000 nop; not filled. 6763 00006498 20010000 addi r1,r0,#0 6764 0000649c L146_LF6: 6765 0000649c 8fa20000 lw r2,0(r29) 6766 000064a0 8fa30004 lw r3,4(r29) 6767 000064a4 8fa40008 lw r4,8(r29) 6768 000064a8 8fa5000c lw r5,12(r29) 6769 000064ac 8fa60010 lw r6,16(r29) 6770 000064b0 8fa70014 lw r7,20(r29) 6771 000064b4 8fdffff8 lw r31,-8(r30) 6772 000064b8 001ee820 add r29,r0,r30 6773 000064bc 8fdefffc lw r30,-4(r30) 6774 000064c0 4be00000 jr r31 6775 000064c4 54000000 nop 6776 000064c8 .endproc _dstrstr 6777 000064c8 .align 2 6778 000064c8 .proc _dmindex 6779 000064c8 .global _dmindex 6780 000064c8 _dmindex: 6781 ; Function 'dmindex'; 0 bytes of locals, 5 regs to save. 6782 000064c8 afbefffc sw -4(r29),r30; push fp 6783 000064cc 001df020 add r30,r0,r29; fp = sp 6784 000064d0 afbffff8 sw -8(r29),r31; push ret addr 6785 000064d4 2fbd0020 subui r29,r29,#32; alloc local storage 6786 000064d8 afa20000 sw 0(r29),r2 6787 000064dc afa30004 sw 4(r29),r3 6788 000064e0 afa40008 sw 8(r29),r4 6789 000064e4 afa5000c sw 12(r29),r5 6790 000064e8 afa60010 sw 16(r29),r6 6791 000064ec 8fc40000 lw r4,(r30) 6792 000064f0 8fc60004 lw r6,4(r30) 6793 000064f4 90810000 lbu r1,(r4) 6794 000064f8 64210000 snei r1,r1,#0 6795 000064fc 10200060 beqz r1,L164_LF6 6796 00006500 54000000 nop; not filled. 6797 00006504 00012820 add r5,r0,r1 6798 00006508 L165_LF6: 6799 00006508 00061020 add r2,r0,r6 6800 0000650c 80df0000 lb r31,(r6) 6801 00006510 33e100ff andi r1,r31,#0x00ff 6802 00006514 64210000 snei r1,r1,#0 6803 00006518 1020003c beqz r1,L163_LF6 6804 0000651c 54000000 nop; not filled. 6805 00006520 90830000 lbu r3,(r4) 6806 00006524 L169_LF6: 6807 00006524 33e100ff andi r1,r31,#0x00ff 6808 00006528 00610828 seq r1,r3,r1 6809 0000652c 10200010 beqz r1,L168_LF6 6810 00006530 54000000 nop; not filled. 6811 00006534 00040820 add r1,r0,r4 6812 00006538 08000028 j L173_LF6 6813 0000653c 54000000 nop; not filled. 6814 00006540 L168_LF6: 6815 00006540 20420001 addi r2,r2,#1 6816 00006544 805f0000 lb r31,(r2) 6817 00006548 33e100ff andi r1,r31,#0x00ff 6818 0000654c 64210000 snei r1,r1,#0 6819 00006550 1420ffd0 bnez r1,L169_LF6 6820 00006554 54000000 nop; not filled. 6821 00006558 L163_LF6: 6822 00006558 14a0ffac bnez r5,L165_LF6 6823 0000655c 54000000 nop; not filled. 6824 00006560 L164_LF6: 6825 00006560 20010000 addi r1,r0,#0 6826 00006564 L173_LF6: 6827 00006564 8fa20000 lw r2,0(r29) 6828 00006568 8fa30004 lw r3,4(r29) 6829 0000656c 8fa40008 lw r4,8(r29) 6830 00006570 8fa5000c lw r5,12(r29) 6831 00006574 8fa60010 lw r6,16(r29) 6832 00006578 8fdffff8 lw r31,-8(r30) 6833 0000657c 001ee820 add r29,r0,r30 6834 00006580 8fdefffc lw r30,-4(r30) 6835 00006584 4be00000 jr r31 6836 00006588 54000000 nop 6837 0000658c .endproc _dmindex 6838 0000658c .align 2 6839 0000658c .proc _dindex 6840 0000658c .global _dindex 6841 0000658c _dindex: 6842 ; Function 'dindex'; 0 bytes of locals, 2 regs to save. 6843 0000658c afbefffc sw -4(r29),r30; push fp 6844 00006590 001df020 add r30,r0,r29; fp = sp 6845 00006594 afbffff8 sw -8(r29),r31; push ret addr 6846 00006598 2fbd0010 subui r29,r29,#16; alloc local storage 6847 0000659c afa20000 sw 0(r29),r2 6848 000065a0 afa30004 sw 4(r29),r3 6849 000065a4 8fc20000 lw r2,(r30) 6850 000065a8 8fc30004 lw r3,4(r30) 6851 000065ac 08000024 j L187_LF6 6852 000065b0 54000000 nop; not filled. 6853 000065b4 L183_LF6: 6854 000065b4 33e100ff andi r1,r31,#0x00ff 6855 000065b8 00230828 seq r1,r1,r3 6856 000065bc 10200010 beqz r1,L184_LF6 6857 000065c0 54000000 nop; not filled. 6858 000065c4 00020820 add r1,r0,r2 6859 000065c8 08000020 j L186_LF6 6860 000065cc 54000000 nop; not filled. 6861 000065d0 L184_LF6: 6862 000065d0 20420001 addi r2,r2,#1 6863 000065d4 L187_LF6: 6864 000065d4 805f0000 lb r31,(r2) 6865 000065d8 33e100ff andi r1,r31,#0x00ff 6866 000065dc 64210000 snei r1,r1,#0 6867 000065e0 1420ffd0 bnez r1,L183_LF6 6868 000065e4 54000000 nop; not filled. 6869 000065e8 20010000 addi r1,r0,#0 6870 000065ec L186_LF6: 6871 000065ec 8fa20000 lw r2,0(r29) 6872 000065f0 8fa30004 lw r3,4(r29) 6873 000065f4 8fdffff8 lw r31,-8(r30) 6874 000065f8 001ee820 add r29,r0,r30 6875 000065fc 8fdefffc lw r30,-4(r30) 6876 00006600 4be00000 jr r31 6877 00006604 54000000 nop 6878 00006608 .endproc _dindex 6879 00006608 .align 2 6880 00006608 .proc _ditoa 6881 00006608 .global _ditoa 6882 00006608 _ditoa: 6883 ; Function 'ditoa'; 0 bytes of locals, 5 regs to save. 6884 00006608 afbefffc sw -4(r29),r30; push fp 6885 0000660c 001df020 add r30,r0,r29; fp = sp 6886 00006610 afbffff8 sw -8(r29),r31; push ret addr 6887 00006614 2fbd0020 subui r29,r29,#32; alloc local storage 6888 00006618 afa20000 sw 0(r29),r2 6889 0000661c afa30004 sw 4(r29),r3 6890 00006620 afa40008 sw 8(r29),r4 6891 00006624 afa5000c sw 12(r29),r5 6892 00006628 afa60010 sw 16(r29),r6 6893 0000662c 8fc30000 lw r3,(r30) 6894 00006630 8fc40004 lw r4,4(r30) 6895 00006634 68610000 slti r1,r3,#0 6896 00006638 10200010 beqz r1,L203_LF6 6897 0000663c 54000000 nop; not filled. 6898 00006640 2006002d addi r6,r0,(#0x2d)&0xff 6899 00006644 08000014 j L216_LF6 6900 00006648 54000000 nop; not filled. 6901 0000664c L203_LF6: 6902 0000664c 64610000 snei r1,r3,#0 6903 00006650 14200018 bnez r1,L205_LF6 6904 00006654 54000000 nop; not filled. 6905 00006658 20060030 addi r6,r0,(#0x30)&0xff 6906 0000665c L216_LF6: 6907 0000665c a0860000 sb (r4),r6 6908 00006660 20840001 addi r4,r4,#1 6909 00006664 0800007c j L204_LF6 6910 00006668 54000000 nop; not filled. 6911 0000666c L205_LF6: 6912 0000666c 201f0001 addi r31,r0,#1 6913 00006670 03e3082c sle r1,r31,r3 6914 00006674 1020001c beqz r1,L208_LF6 6915 00006678 54000000 nop; not filled. 6916 0000667c L209_LF6: 6917 0000667c 53e10002 slli r1,r31,#0x2 6918 00006680 003f0820 add r1,r1,r31 6919 00006684 503f0001 slli r31,r1,#0x1 6920 00006688 03e3082c sle r1,r31,r3 6921 0000668c 1420ffec bnez r1,L209_LF6 6922 00006690 54000000 nop; not filled. 6923 00006694 L208_LF6: 6924 00006694 2005000a addi r5,r0,#10 6925 00006698 L212_LF6: 6926 00006698 03e00035 movi2fp f0,r31 6927 0000669c 00a00835 movi2fp f1,r5 6928 000066a0 0401000f div f0,f0,f1 6929 000066a4 0000f834 movfp2i r31,f0 6930 000066a8 00600035 movi2fp f0,r3 6931 000066ac 03e00835 movi2fp f1,r31 6932 000066b0 0401000f div f0,f0,f1 6933 000066b4 00001034 movfp2i r2,f0 6934 000066b8 20410030 addi r1,r2,#48 6935 000066bc a0810000 sb (r4),r1 6936 000066c0 20840001 addi r4,r4,#1 6937 000066c4 00400035 movi2fp f0,r2 6938 000066c8 03e00835 movi2fp f1,r31 6939 000066cc 0401000e mult f0,f0,f1 6940 000066d0 00000834 movfp2i r1,f0 6941 000066d4 00611822 sub r3,r3,r1 6942 000066d8 6fe10001 sgti r1,r31,#1 6943 000066dc 1420ffb8 bnez r1,L212_LF6 6944 000066e0 54000000 nop; not filled. 6945 000066e4 L204_LF6: 6946 000066e4 20060000 addi r6,r0,(#0x0)&0xff 6947 000066e8 a0860000 sb (r4),r6 6948 000066ec 8fa20000 lw r2,0(r29) 6949 000066f0 8fa30004 lw r3,4(r29) 6950 000066f4 8fa40008 lw r4,8(r29) 6951 000066f8 8fa5000c lw r5,12(r29) 6952 000066fc 8fa60010 lw r6,16(r29) 6953 00006700 8fdffff8 lw r31,-8(r30) 6954 00006704 001ee820 add r29,r0,r30 6955 00006708 8fdefffc lw r30,-4(r30) 6956 0000670c 4be00000 jr r31 6957 00006710 54000000 nop 6958 00006714 .endproc _ditoa 6959 00006714 .align 2 6960 00006714 .proc _dstrtol 6961 00006714 .global _dstrtol 6962 00006714 _dstrtol: 6963 ; Function 'dstrtol'; 0 bytes of locals, 5 regs to save. 6964 00006714 afbefffc sw -4(r29),r30; push fp 6965 00006718 001df020 add r30,r0,r29; fp = sp 6966 0000671c afbffff8 sw -8(r29),r31; push ret addr 6967 00006720 2fbd0020 subui r29,r29,#32; alloc local storage 6968 00006724 afa20000 sw 0(r29),r2 6969 00006728 afa30004 sw 4(r29),r3 6970 0000672c afa40008 sw 8(r29),r4 6971 00006730 afa5000c sw 12(r29),r5 6972 00006734 afa60010 sw 16(r29),r6 6973 00006738 8fc20000 lw r2,(r30) 6974 0000673c 8fc50004 lw r5,4(r30) 6975 00006740 8fc40008 lw r4,8(r30) 6976 00006744 20030000 addi r3,r0,#0 6977 00006748 08000008 j L247_LF6 6978 0000674c 54000000 nop; not filled. 6979 00006750 L220_LF6: 6980 00006750 20420001 addi r2,r2,#1 6981 00006754 L247_LF6: 6982 00006754 805f0000 lb r31,(r2) 6983 00006758 33e100ff andi r1,r31,#0x00ff 6984 0000675c 60210020 seqi r1,r1,#32 6985 00006760 1420ffec bnez r1,L220_LF6 6986 00006764 54000000 nop; not filled. 6987 00006768 23e1fff7 addi r1,r31,#-9 6988 0000676c 302100ff andi r1,r1,#0x00ff 6989 00006770 70210001 sleui r1,r1,#1 6990 00006774 1420ffd8 bnez r1,L220_LF6 6991 00006778 54000000 nop; not filled. 6992 0000677c 64a10000 snei r1,r5,#0 6993 00006780 10200008 beqz r1,L222_LF6 6994 00006784 54000000 nop; not filled. 6995 00006788 aca20000 sw (r5),r2 6996 0000678c L222_LF6: 6997 0000678c 905f0000 lbu r31,(r2) 6998 00006790 67e10000 snei r1,r31,#0 6999 00006794 10200090 beqz r1,L248_LF6 7000 00006798 54000000 nop; not filled. 7001 0000679c 63e1002d seqi r1,r31,#45 7002 000067a0 10200014 beqz r1,L224_LF6 7003 000067a4 54000000 nop; not filled. 7004 000067a8 2006ffff addi r6,r0,#-1 7005 000067ac 20420001 addi r2,r2,#1 7006 000067b0 08000008 j L225_LF6 7007 000067b4 54000000 nop; not filled. 7008 000067b8 L224_LF6: 7009 000067b8 20060001 addi r6,r0,#1 7010 000067bc L225_LF6: 7011 000067bc 64810000 snei r1,r4,#0 7012 000067c0 14200054 bnez r1,L226_LF6 7013 000067c4 54000000 nop; not filled. 7014 000067c8 90410000 lbu r1,(r2) 7015 000067cc 60210030 seqi r1,r1,#48 7016 000067d0 10200040 beqz r1,L227_LF6 7017 000067d4 54000000 nop; not filled. 7018 000067d8 20420001 addi r2,r2,#1 7019 000067dc 905f0000 lbu r31,(r2) 7020 000067e0 63e10078 seqi r1,r31,#120 7021 000067e4 14200010 bnez r1,L229_LF6 7022 000067e8 54000000 nop; not filled. 7023 000067ec 63e10058 seqi r1,r31,#88 7024 000067f0 10200014 beqz r1,L228_LF6 7025 000067f4 54000000 nop; not filled. 7026 000067f8 L229_LF6: 7027 000067f8 20040010 addi r4,r0,#16 7028 000067fc 20420001 addi r2,r2,#1 7029 00006800 08000014 j L226_LF6 7030 00006804 54000000 nop; not filled. 7031 00006808 L228_LF6: 7032 00006808 20040008 addi r4,r0,#8 7033 0000680c 08000008 j L226_LF6 7034 00006810 54000000 nop; not filled. 7035 00006814 L227_LF6: 7036 00006814 2004000a addi r4,r0,#10 7037 00006818 L226_LF6: 7038 00006818 2081ffff addi r1,r4,#-1 7039 0000681c 6c21000f sgtui r1,r1,#15 7040 00006820 10200010 beqz r1,L233_LF6 7041 00006824 54000000 nop; not filled. 7042 00006828 L248_LF6: 7043 00006828 00030820 add r1,r0,r3 7044 0000682c 080000c4 j L245_LF6 7045 00006830 54000000 nop; not filled. 7046 00006834 L233_LF6: 7047 00006834 805f0000 lb r31,(r2) 7048 00006838 23e1ffd0 addi r1,r31,#-48 7049 0000683c 302100ff andi r1,r1,#0x00ff 7050 00006840 70210009 sleui r1,r1,#9 7051 00006844 10200014 beqz r1,L236_LF6 7052 00006848 54000000 nop; not filled. 7053 0000684c 33e100ff andi r1,r31,#0x00ff 7054 00006850 2021ffd0 addi r1,r1,#-48 7055 00006854 08000050 j L237_LF6 7056 00006858 54000000 nop; not filled. 7057 0000685c L236_LF6: 7058 0000685c 23e1ff9f addi r1,r31,#-97 7059 00006860 302100ff andi r1,r1,#0x00ff 7060 00006864 70210019 sleui r1,r1,#25 7061 00006868 10200014 beqz r1,L238_LF6 7062 0000686c 54000000 nop; not filled. 7063 00006870 33e100ff andi r1,r31,#0x00ff 7064 00006874 2021ffa9 addi r1,r1,#-87 7065 00006878 0800002c j L237_LF6 7066 0000687c 54000000 nop; not filled. 7067 00006880 L238_LF6: 7068 00006880 23e1ffbf addi r1,r31,#-65 7069 00006884 302100ff andi r1,r1,#0x00ff 7070 00006888 70210019 sleui r1,r1,#25 7071 0000688c 10200014 beqz r1,L240_LF6 7072 00006890 54000000 nop; not filled. 7073 00006894 33e100ff andi r1,r31,#0x00ff 7074 00006898 2021ffc9 addi r1,r1,#-55 7075 0000689c 08000008 j L237_LF6 7076 000068a0 54000000 nop; not filled. 7077 000068a4 L240_LF6: 7078 000068a4 200103e8 addi r1,r0,#1000 7079 000068a8 L237_LF6: 7080 000068a8 0024f82a slt r31,r1,r4 7081 000068ac 13e00024 beqz r31,L246_LF6 7082 000068b0 54000000 nop; not filled. 7083 000068b4 00600035 movi2fp f0,r3 7084 000068b8 00800835 movi2fp f1,r4 7085 000068bc 0401000e mult f0,f0,f1 7086 000068c0 00001834 movfp2i r3,f0 7087 000068c4 00611820 add r3,r3,r1 7088 000068c8 20420001 addi r2,r2,#1 7089 000068cc 17e0ff64 bnez r31,L233_LF6 7090 000068d0 54000000 nop; not filled. 7091 000068d4 L246_LF6: 7092 000068d4 64a10000 snei r1,r5,#0 7093 000068d8 10200008 beqz r1,L244_LF6 7094 000068dc 54000000 nop; not filled. 7095 000068e0 aca20000 sw (r5),r2 7096 000068e4 L244_LF6: 7097 000068e4 00600035 movi2fp f0,r3 7098 000068e8 00c00835 movi2fp f1,r6 7099 000068ec 0401000e mult f0,f0,f1 7100 000068f0 00000834 movfp2i r1,f0 7101 000068f4 L245_LF6: 7102 000068f4 8fa20000 lw r2,0(r29) 7103 000068f8 8fa30004 lw r3,4(r29) 7104 000068fc 8fa40008 lw r4,8(r29) 7105 00006900 8fa5000c lw r5,12(r29) 7106 00006904 8fa60010 lw r6,16(r29) 7107 00006908 8fdffff8 lw r31,-8(r30) 7108 0000690c 001ee820 add r29,r0,r30 7109 00006910 8fdefffc lw r30,-4(r30) 7110 00006914 4be00000 jr r31 7111 00006918 54000000 nop 7112 0000691c .endproc _dstrtol 7113 0000691c .align 2 7114 0000691c .proc _bcopy 7115 0000691c .global _bcopy 7116 0000691c _bcopy: 7117 ; Function 'bcopy'; 0 bytes of locals, 3 regs to save. 7118 0000691c afbefffc sw -4(r29),r30; push fp 7119 00006920 001df020 add r30,r0,r29; fp = sp 7120 00006924 afbffff8 sw -8(r29),r31; push ret addr 7121 00006928 2fbd0018 subui r29,r29,#24; alloc local storage 7122 0000692c afa20000 sw 0(r29),r2 7123 00006930 afa30004 sw 4(r29),r3 7124 00006934 afa40008 sw 8(r29),r4 7125 00006938 8fc30000 lw r3,(r30) 7126 0000693c 8fc20004 lw r2,4(r30) 7127 00006940 8fdf0008 lw r31,8(r30) 7128 00006944 08000014 j L259_LF6 7129 00006948 54000000 nop; not filled. 7130 0000694c L257_LF6: 7131 0000694c 80640000 lb r4,(r3) 7132 00006950 a0440000 sb (r2),r4 7133 00006954 20630001 addi r3,r3,#1 7134 00006958 20420001 addi r2,r2,#1 7135 0000695c L259_LF6: 7136 0000695c 001f0820 add r1,r0,r31 7137 00006960 23ffffff addi r31,r31,#-1 7138 00006964 6c210000 sgti r1,r1,#0 7139 00006968 1420ffe0 bnez r1,L257_LF6 7140 0000696c 54000000 nop; not filled. 7141 00006970 8fa20000 lw r2,0(r29) 7142 00006974 8fa30004 lw r3,4(r29) 7143 00006978 8fa40008 lw r4,8(r29) 7144 0000697c 8fdffff8 lw r31,-8(r30) 7145 00006980 001ee820 add r29,r0,r30 7146 00006984 8fdefffc lw r30,-4(r30) 7147 00006988 4be00000 jr r31 7148 0000698c 54000000 nop 7149 00006990 .endproc _bcopy 7150 00006990 .align 2 7151 00006990 .proc _bzero 7152 00006990 .global _bzero 7153 00006990 _bzero: 7154 ; Function 'bzero'; 0 bytes of locals, 2 regs to save. 7155 00006990 afbefffc sw -4(r29),r30; push fp 7156 00006994 001df020 add r30,r0,r29; fp = sp 7157 00006998 afbffff8 sw -8(r29),r31; push ret addr 7158 0000699c 2fbd0010 subui r29,r29,#16; alloc local storage 7159 000069a0 afa20000 sw 0(r29),r2 7160 000069a4 afa30004 sw 4(r29),r3 7161 000069a8 8fc20000 lw r2,(r30) 7162 000069ac 8fdf0004 lw r31,4(r30) 7163 000069b0 08000010 j L270_LF6 7164 000069b4 54000000 nop; not filled. 7165 000069b8 L268_LF6: 7166 000069b8 20030000 addi r3,r0,(#0x0)&0xff 7167 000069bc a0430000 sb (r2),r3 7168 000069c0 20420001 addi r2,r2,#1 7169 000069c4 L270_LF6: 7170 000069c4 001f0820 add r1,r0,r31 7171 000069c8 23ffffff addi r31,r31,#-1 7172 000069cc 6c210000 sgti r1,r1,#0 7173 000069d0 1420ffe4 bnez r1,L268_LF6 7174 000069d4 54000000 nop; not filled. 7175 000069d8 8fa20000 lw r2,0(r29) 7176 000069dc 8fa30004 lw r3,4(r29) 7177 000069e0 8fdffff8 lw r31,-8(r30) 7178 000069e4 001ee820 add r29,r0,r30 7179 000069e8 8fdefffc lw r30,-4(r30) 7180 000069ec 4be00000 jr r31 7181 000069f0 54000000 nop 7182 000069f4 .endproc _bzero 7183 ; Compiled by GCC 7185 000069f4 .align 2 7186 000069f4 .proc _isspace 7187 000069f4 .global _isspace 7188 000069f4 _isspace: 7189 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 7190 000069f4 afbefffc sw -4(r29),r30; push fp 7191 000069f8 001df020 add r30,r0,r29; fp = sp 7192 000069fc afbffff8 sw -8(r29),r31; push ret addr 7193 00006a00 2fbd0010 subui r29,r29,#16; alloc local storage 7194 00006a04 afa20000 sw 0(r29),r2 7195 00006a08 83c20003 lb r2,3(r30) 7196 00006a0c 201f0000 addi r31,r0,#0 7197 00006a10 304100ff andi r1,r2,#0x00ff 7198 00006a14 60210020 seqi r1,r1,#32 7199 00006a18 14200018 bnez r1,L6_LF7 7200 00006a1c 54000000 nop; not filled. 7201 00006a20 2041fff7 addi r1,r2,#-9 7202 00006a24 302100ff andi r1,r1,#0x00ff 7203 00006a28 70210001 sleui r1,r1,#1 7204 00006a2c 10200008 beqz r1,L5_LF7 7205 00006a30 54000000 nop; not filled. 7206 00006a34 L6_LF7: 7207 00006a34 201f0001 addi r31,r0,#1 7208 00006a38 L5_LF7: 7209 00006a38 001f0820 add r1,r0,r31 7210 00006a3c 8fa20000 lw r2,0(r29) 7211 00006a40 8fdffff8 lw r31,-8(r30) 7212 00006a44 001ee820 add r29,r0,r30 7213 00006a48 8fdefffc lw r30,-4(r30) 7214 00006a4c 4be00000 jr r31 7215 00006a50 54000000 nop 7216 00006a54 .endproc _isspace 7217 00006a54 .align 2 7218 00006a54 .proc _isxdigit 7219 00006a54 .global _isxdigit 7220 00006a54 _isxdigit: 7221 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 7222 00006a54 afbefffc sw -4(r29),r30; push fp 7223 00006a58 001df020 add r30,r0,r29; fp = sp 7224 00006a5c afbffff8 sw -8(r29),r31; push ret addr 7225 00006a60 2fbd0010 subui r29,r29,#16; alloc local storage 7226 00006a64 afa20000 sw 0(r29),r2 7227 00006a68 83df0003 lb r31,3(r30) 7228 00006a6c 20020000 addi r2,r0,#0 7229 00006a70 23e1ffd0 addi r1,r31,#-48 7230 00006a74 302100ff andi r1,r1,#0x00ff 7231 00006a78 70210009 sleui r1,r1,#9 7232 00006a7c 14200028 bnez r1,L12_LF7 7233 00006a80 54000000 nop; not filled. 7234 00006a84 23e1ff9f addi r1,r31,#-97 7235 00006a88 302100ff andi r1,r1,#0x00ff 7236 00006a8c 70210005 sleui r1,r1,#5 7237 00006a90 14200014 bnez r1,L12_LF7 7238 00006a94 54000000 nop; not filled. 7239 00006a98 33e100ff andi r1,r31,#0x00ff 7240 00006a9c 64210041 snei r1,r1,#65 7241 00006aa0 14200008 bnez r1,L11_LF7 7242 00006aa4 54000000 nop; not filled. 7243 00006aa8 L12_LF7: 7244 00006aa8 20020001 addi r2,r0,#1 7245 00006aac L11_LF7: 7246 00006aac 00020820 add r1,r0,r2 7247 00006ab0 8fa20000 lw r2,0(r29) 7248 00006ab4 8fdffff8 lw r31,-8(r30) 7249 00006ab8 001ee820 add r29,r0,r30 7250 00006abc 8fdefffc lw r30,-4(r30) 7251 00006ac0 4be00000 jr r31 7252 00006ac4 54000000 nop 7253 00006ac8 .endproc _isxdigit 7254 00006ac8 .align 2 7255 00006ac8 .proc _DisableIntrs 7256 00006ac8 .global _DisableIntrs 7257 00006ac8 _DisableIntrs: 7258 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 7259 00006ac8 afbefffc sw -4(r29),r30; push fp 7260 00006acc 001df020 add r30,r0,r29; fp = sp 7261 00006ad0 afbffff8 sw -8(r29),r31; push ret addr 7262 00006ad4 2fbd0010 subui r29,r29,#16; alloc local storage 7263 00006ad8 afa20000 sw 0(r29),r2 7264 00006adc 23bdfff8 addi r29,r29,#-8 7265 00006ae0 2002000f addi r2,r0,#15 7266 00006ae4 afa20000 sw (r29),r2 7267 00006ae8 0fffa79c jal _SetIntrs 7268 00006aec 54000000 nop; not filled. 7269 00006af0 23bd0008 addi r29,r29,#8 7270 00006af4 8fa20000 lw r2,0(r29) 7271 00006af8 8fdffff8 lw r31,-8(r30) 7272 00006afc 001ee820 add r29,r0,r30 7273 00006b00 8fdefffc lw r30,-4(r30) 7274 00006b04 4be00000 jr r31 7275 00006b08 54000000 nop 7276 00006b0c .endproc _DisableIntrs 7277 00006b0c .align 2 7278 00006b0c .proc _EnableIntrs 7279 00006b0c .global _EnableIntrs 7280 00006b0c _EnableIntrs: 7281 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 7282 00006b0c afbefffc sw -4(r29),r30; push fp 7283 00006b10 001df020 add r30,r0,r29; fp = sp 7284 00006b14 afbffff8 sw -8(r29),r31; push ret addr 7285 00006b18 2fbd0010 subui r29,r29,#16; alloc local storage 7286 00006b1c afa20000 sw 0(r29),r2 7287 00006b20 23bdfff8 addi r29,r29,#-8 7288 00006b24 20020000 addi r2,r0,#0 7289 00006b28 afa20000 sw (r29),r2 7290 00006b2c 0fffa758 jal _SetIntrs 7291 00006b30 54000000 nop; not filled. 7292 00006b34 23bd0008 addi r29,r29,#8 7293 00006b38 8fa20000 lw r2,0(r29) 7294 00006b3c 8fdffff8 lw r31,-8(r30) 7295 00006b40 001ee820 add r29,r0,r30 7296 00006b44 8fdefffc lw r30,-4(r30) 7297 00006b48 4be00000 jr r31 7298 00006b4c 54000000 nop 7299 00006b50 .endproc _EnableIntrs 7300 00006b50 .align 2 7301 00006b50 .proc _RestoreIntrs 7302 00006b50 .global _RestoreIntrs 7303 00006b50 _RestoreIntrs: 7304 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 7305 00006b50 afbefffc sw -4(r29),r30; push fp 7306 00006b54 001df020 add r30,r0,r29; fp = sp 7307 00006b58 afbffff8 sw -8(r29),r31; push ret addr 7308 00006b5c 2fbd0010 subui r29,r29,#16; alloc local storage 7309 00006b60 afa20000 sw 0(r29),r2 7310 00006b64 23bdfff8 addi r29,r29,#-8 7311 00006b68 8fc20000 lw r2,(r30) 7312 00006b6c afa20000 sw (r29),r2 7313 00006b70 0fffa714 jal _SetIntrs 7314 00006b74 54000000 nop; not filled. 7315 00006b78 23bd0008 addi r29,r29,#8 7316 00006b7c 8fa20000 lw r2,0(r29) 7317 00006b80 8fdffff8 lw r31,-8(r30) 7318 00006b84 001ee820 add r29,r0,r30 7319 00006b88 8fdefffc lw r30,-4(r30) 7320 00006b8c 4be00000 jr r31 7321 00006b90 54000000 nop 7322 00006b94 .endproc _RestoreIntrs 7323 00006b94 .align 2 7324 00006b94 .proc _QueueLinkInit 7325 00006b94 .global _QueueLinkInit 7326 00006b94 _QueueLinkInit: 7327 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 7328 00006b94 afbefffc sw -4(r29),r30; push fp 7329 00006b98 001df020 add r30,r0,r29; fp = sp 7330 00006b9c afbffff8 sw -8(r29),r31; push ret addr 7331 00006ba0 2fbd0010 subui r29,r29,#16; alloc local storage 7332 00006ba4 afa20000 sw 0(r29),r2 7333 00006ba8 8fc10000 lw r1,(r30) 7334 00006bac 8fc20004 lw r2,4(r30) 7335 00006bb0 201f0000 addi r31,r0,#0 7336 00006bb4 ac3f0000 sw (r1),r31 7337 00006bb8 ac22000c sw 12(r1),r2 7338 00006bbc 8fa20000 lw r2,0(r29) 7339 00006bc0 8fdffff8 lw r31,-8(r30) 7340 00006bc4 001ee820 add r29,r0,r30 7341 00006bc8 8fdefffc lw r30,-4(r30) 7342 00006bcc 4be00000 jr r31 7343 00006bd0 54000000 nop 7344 00006bd4 .endproc _QueueLinkInit 7345 00006bd4 .align 2 7346 00006bd4 .proc _QueueNext 7347 00006bd4 .global _QueueNext 7348 00006bd4 _QueueNext: 7349 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 7350 00006bd4 afbefffc sw -4(r29),r30; push fp 7351 00006bd8 001df020 add r30,r0,r29; fp = sp 7352 00006bdc afbffff8 sw -8(r29),r31; push ret addr 7353 00006be0 2fbd0008 subui r29,r29,#8; alloc local storage 7354 00006be4 8fc10000 lw r1,(r30) 7355 00006be8 8c210000 lw r1,(r1) 7356 00006bec 8fdffff8 lw r31,-8(r30) 7357 00006bf0 001ee820 add r29,r0,r30 7358 00006bf4 8fdefffc lw r30,-4(r30) 7359 00006bf8 4be00000 jr r31 7360 00006bfc 54000000 nop 7361 00006c00 .endproc _QueueNext 7362 00006c00 .align 2 7363 00006c00 .proc _QueuePrev 7364 00006c00 .global _QueuePrev 7365 00006c00 _QueuePrev: 7366 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 7367 00006c00 afbefffc sw -4(r29),r30; push fp 7368 00006c04 001df020 add r30,r0,r29; fp = sp 7369 00006c08 afbffff8 sw -8(r29),r31; push ret addr 7370 00006c0c 2fbd0008 subui r29,r29,#8; alloc local storage 7371 00006c10 8fc10000 lw r1,(r30) 7372 00006c14 8c210004 lw r1,4(r1) 7373 00006c18 8fdffff8 lw r31,-8(r30) 7374 00006c1c 001ee820 add r29,r0,r30 7375 00006c20 8fdefffc lw r30,-4(r30) 7376 00006c24 4be00000 jr r31 7377 00006c28 54000000 nop 7378 00006c2c .endproc _QueuePrev 7379 00006c2c .align 2 7380 00006c2c .proc _QueueFirst 7381 00006c2c .global _QueueFirst 7382 00006c2c _QueueFirst: 7383 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 7384 00006c2c afbefffc sw -4(r29),r30; push fp 7385 00006c30 001df020 add r30,r0,r29; fp = sp 7386 00006c34 afbffff8 sw -8(r29),r31; push ret addr 7387 00006c38 2fbd0008 subui r29,r29,#8; alloc local storage 7388 00006c3c 8fc10000 lw r1,(r30) 7389 00006c40 8c210000 lw r1,(r1) 7390 00006c44 8fdffff8 lw r31,-8(r30) 7391 00006c48 001ee820 add r29,r0,r30 7392 00006c4c 8fdefffc lw r30,-4(r30) 7393 00006c50 4be00000 jr r31 7394 00006c54 54000000 nop 7395 00006c58 .endproc _QueueFirst 7396 00006c58 .align 2 7397 00006c58 .proc _QueueLast 7398 00006c58 .global _QueueLast 7399 00006c58 _QueueLast: 7400 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 7401 00006c58 afbefffc sw -4(r29),r30; push fp 7402 00006c5c 001df020 add r30,r0,r29; fp = sp 7403 00006c60 afbffff8 sw -8(r29),r31; push ret addr 7404 00006c64 2fbd0008 subui r29,r29,#8; alloc local storage 7405 00006c68 8fc10000 lw r1,(r30) 7406 00006c6c 8c210004 lw r1,4(r1) 7407 00006c70 8fdffff8 lw r31,-8(r30) 7408 00006c74 001ee820 add r29,r0,r30 7409 00006c78 8fdefffc lw r30,-4(r30) 7410 00006c7c 4be00000 jr r31 7411 00006c80 54000000 nop 7412 00006c84 .endproc _QueueLast 7413 00006c84 .align 2 7414 00006c84 .proc _QueueInsertAfter 7415 00006c84 .global _QueueInsertAfter 7416 00006c84 _QueueInsertAfter: 7417 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 7418 00006c84 afbefffc sw -4(r29),r30; push fp 7419 00006c88 001df020 add r30,r0,r29; fp = sp 7420 00006c8c afbffff8 sw -8(r29),r31; push ret addr 7421 00006c90 2fbd0010 subui r29,r29,#16; alloc local storage 7422 00006c94 afa20000 sw 0(r29),r2 7423 00006c98 afa30004 sw 4(r29),r3 7424 00006c9c 8fc30000 lw r3,(r30) 7425 00006ca0 8fc20004 lw r2,4(r30) 7426 00006ca4 8fc10008 lw r1,8(r30) 7427 00006ca8 ac230008 sw 8(r1),r3 7428 00006cac ac220004 sw 4(r1),r2 7429 00006cb0 8c5f0000 lw r31,(r2) 7430 00006cb4 ac3f0000 sw (r1),r31 7431 00006cb8 ac410000 sw (r2),r1 7432 00006cbc 8c220000 lw r2,(r1) 7433 00006cc0 ac410004 sw 4(r2),r1 7434 00006cc4 8c610008 lw r1,8(r3) 7435 00006cc8 20210001 addi r1,r1,#1 7436 00006ccc ac610008 sw 8(r3),r1 7437 00006cd0 8fa20000 lw r2,0(r29) 7438 00006cd4 8fa30004 lw r3,4(r29) 7439 00006cd8 8fdffff8 lw r31,-8(r30) 7440 00006cdc 001ee820 add r29,r0,r30 7441 00006ce0 8fdefffc lw r30,-4(r30) 7442 00006ce4 4be00000 jr r31 7443 00006ce8 54000000 nop 7444 00006cec .endproc _QueueInsertAfter 7445 00006cec .align 2 7446 00006cec .proc _QueueInsertFirst 7447 00006cec .global _QueueInsertFirst 7448 00006cec _QueueInsertFirst: 7449 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 7450 00006cec afbefffc sw -4(r29),r30; push fp 7451 00006cf0 001df020 add r30,r0,r29; fp = sp 7452 00006cf4 afbffff8 sw -8(r29),r31; push ret addr 7453 00006cf8 2fbd0010 subui r29,r29,#16; alloc local storage 7454 00006cfc afa20000 sw 0(r29),r2 7455 00006d00 afa30004 sw 4(r29),r3 7456 00006d04 8fc30000 lw r3,(r30) 7457 00006d08 8fc10004 lw r1,4(r30) 7458 00006d0c ac230008 sw 8(r1),r3 7459 00006d10 ac230004 sw 4(r1),r3 7460 00006d14 8c7f0000 lw r31,(r3) 7461 00006d18 ac3f0000 sw (r1),r31 7462 00006d1c ac610000 sw (r3),r1 7463 00006d20 8c220000 lw r2,(r1) 7464 00006d24 ac410004 sw 4(r2),r1 7465 00006d28 8c610008 lw r1,8(r3) 7466 00006d2c 20210001 addi r1,r1,#1 7467 00006d30 ac610008 sw 8(r3),r1 7468 00006d34 8fa20000 lw r2,0(r29) 7469 00006d38 8fa30004 lw r3,4(r29) 7470 00006d3c 8fdffff8 lw r31,-8(r30) 7471 00006d40 001ee820 add r29,r0,r30 7472 00006d44 8fdefffc lw r30,-4(r30) 7473 00006d48 4be00000 jr r31 7474 00006d4c 54000000 nop 7475 00006d50 .endproc _QueueInsertFirst 7476 00006d50 .align 2 7477 00006d50 .proc _QueueInsertLast 7478 00006d50 .global _QueueInsertLast 7479 00006d50 _QueueInsertLast: 7480 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 7481 00006d50 afbefffc sw -4(r29),r30; push fp 7482 00006d54 001df020 add r30,r0,r29; fp = sp 7483 00006d58 afbffff8 sw -8(r29),r31; push ret addr 7484 00006d5c 2fbd0010 subui r29,r29,#16; alloc local storage 7485 00006d60 afa20000 sw 0(r29),r2 7486 00006d64 afa30004 sw 4(r29),r3 7487 00006d68 8fc30000 lw r3,(r30) 7488 00006d6c 8fc10004 lw r1,4(r30) 7489 00006d70 8c620004 lw r2,4(r3) 7490 00006d74 ac230008 sw 8(r1),r3 7491 00006d78 ac220004 sw 4(r1),r2 7492 00006d7c 8c5f0000 lw r31,(r2) 7493 00006d80 ac3f0000 sw (r1),r31 7494 00006d84 ac410000 sw (r2),r1 7495 00006d88 8c220000 lw r2,(r1) 7496 00006d8c ac410004 sw 4(r2),r1 7497 00006d90 8c610008 lw r1,8(r3) 7498 00006d94 20210001 addi r1,r1,#1 7499 00006d98 ac610008 sw 8(r3),r1 7500 00006d9c 8fa20000 lw r2,0(r29) 7501 00006da0 8fa30004 lw r3,4(r29) 7502 00006da4 8fdffff8 lw r31,-8(r30) 7503 00006da8 001ee820 add r29,r0,r30 7504 00006dac 8fdefffc lw r30,-4(r30) 7505 00006db0 4be00000 jr r31 7506 00006db4 54000000 nop 7507 00006db8 .endproc _QueueInsertLast 7508 00006db8 .align 2 7509 00006db8 .proc _QueueRemove 7510 00006db8 .global _QueueRemove 7511 00006db8 _QueueRemove: 7512 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 7513 00006db8 afbefffc sw -4(r29),r30; push fp 7514 00006dbc 001df020 add r30,r0,r29; fp = sp 7515 00006dc0 afbffff8 sw -8(r29),r31; push ret addr 7516 00006dc4 2fbd0010 subui r29,r29,#16; alloc local storage 7517 00006dc8 afa20000 sw 0(r29),r2 7518 00006dcc afa30004 sw 4(r29),r3 7519 00006dd0 8fdf0000 lw r31,(r30) 7520 00006dd4 8fe10008 lw r1,8(r31) 7521 00006dd8 8c210008 lw r1,8(r1) 7522 00006ddc 6c210000 sgti r1,r1,#0 7523 00006de0 1020002c beqz r1,L44_LF7 7524 00006de4 54000000 nop; not filled. 7525 00006de8 8fe10004 lw r1,4(r31) 7526 00006dec 8fe30000 lw r3,(r31) 7527 00006df0 ac230000 sw (r1),r3 7528 00006df4 8fe10000 lw r1,(r31) 7529 00006df8 8fe30004 lw r3,4(r31) 7530 00006dfc ac230004 sw 4(r1),r3 7531 00006e00 8fe20008 lw r2,8(r31) 7532 00006e04 8c410008 lw r1,8(r2) 7533 00006e08 2021ffff addi r1,r1,#-1 7534 00006e0c ac410008 sw 8(r2),r1 7535 00006e10 L44_LF7: 7536 00006e10 20030000 addi r3,r0,#0 7537 00006e14 afe30000 sw (r31),r3 7538 00006e18 8fa20000 lw r2,0(r29) 7539 00006e1c 8fa30004 lw r3,4(r29) 7540 00006e20 8fdffff8 lw r31,-8(r30) 7541 00006e24 001ee820 add r29,r0,r30 7542 00006e28 8fdefffc lw r30,-4(r30) 7543 00006e2c 4be00000 jr r31 7544 00006e30 54000000 nop 7545 00006e34 .endproc _QueueRemove 7546 00006e34 .align 2 7547 00006e34 .proc _QueueLength 7548 00006e34 .global _QueueLength 7549 00006e34 _QueueLength: 7550 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 7551 00006e34 afbefffc sw -4(r29),r30; push fp 7552 00006e38 001df020 add r30,r0,r29; fp = sp 7553 00006e3c afbffff8 sw -8(r29),r31; push ret addr 7554 00006e40 2fbd0008 subui r29,r29,#8; alloc local storage 7555 00006e44 8fc10000 lw r1,(r30) 7556 00006e48 8c210008 lw r1,8(r1) 7557 00006e4c 8fdffff8 lw r31,-8(r30) 7558 00006e50 001ee820 add r29,r0,r30 7559 00006e54 8fdefffc lw r30,-4(r30) 7560 00006e58 4be00000 jr r31 7561 00006e5c 54000000 nop 7562 00006e60 .endproc _QueueLength 7563 00006e60 .align 2 7564 00006e60 .proc _QueueEmpty 7565 00006e60 .global _QueueEmpty 7566 00006e60 _QueueEmpty: 7567 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 7568 00006e60 afbefffc sw -4(r29),r30; push fp 7569 00006e64 001df020 add r30,r0,r29; fp = sp 7570 00006e68 afbffff8 sw -8(r29),r31; push ret addr 7571 00006e6c 2fbd0008 subui r29,r29,#8; alloc local storage 7572 00006e70 8fc10000 lw r1,(r30) 7573 00006e74 8c210008 lw r1,8(r1) 7574 00006e78 60210000 seqi r1,r1,#0 7575 00006e7c 8fdffff8 lw r31,-8(r30) 7576 00006e80 001ee820 add r29,r0,r30 7577 00006e84 8fdefffc lw r30,-4(r30) 7578 00006e88 4be00000 jr r31 7579 00006e8c 54000000 nop 7580 00006e90 .endproc _QueueEmpty 7581 00006e90 .data 7582 000136b0 .align 2 7583 000136b0 _processQuantum_LF7: 7584 000136b0 000186a0 .word 100000 7585 000136b4 .align 2 7586 000136b4 LC0_LF7: 7587 000136b4 456e7465 .ascii "Entering ProcessModuleInit\n\000" 7587 000136b8 72696e67 7587 000136bc 2050726f 7587 000136c0 63657373 7587 000136c4 4d6f6475 7587 000136c8 6c65496e 7587 000136cc 69740a00 7588 000136d0 .align 2 7589 000136d0 LC1_LF7: 7590 000136d0 496e6974 .ascii "Initializing PCB %d @ 0x%x.\n\000" 7590 000136d4 69616c69 7590 000136d8 7a696e67 7590 000136dc 20504342 7590 000136e0 20256420 7590 000136e4 40203078 7590 000136e8 25782e0a 7590 000136ec 00 7591 000136ed .align 2 7592 000136f0 LC2_LF7: 7593 000136f0 4c656176 .ascii "Leaving ProcessModuleInit\n\000" 7593 000136f4 696e6720 7593 000136f8 50726f63 7593 000136fc 6573734d 7593 00013700 6f64756c 7593 00013704 65496e69 7593 00013708 740a00 7594 0001370b .text 7595 00006e90 .align 2 7596 00006e90 .proc _ProcessModuleInit 7597 00006e90 .global _ProcessModuleInit 7598 00006e90 _ProcessModuleInit: 7599 ; Function 'ProcessModuleInit'; 0 bytes of locals, 7 regs to save. 7600 00006e90 afbefffc sw -4(r29),r30; push fp 7601 00006e94 001df020 add r30,r0,r29; fp = sp 7602 00006e98 afbffff8 sw -8(r29),r31; push ret addr 7603 00006e9c 2fbd0028 subui r29,r29,#40; alloc local storage 7604 00006ea0 afa20000 sw 0(r29),r2 7605 00006ea4 afa30004 sw 4(r29),r3 7606 00006ea8 afa40008 sw 8(r29),r4 7607 00006eac afa5000c sw 12(r29),r5 7608 00006eb0 afa60010 sw 16(r29),r6 7609 00006eb4 afa70014 sw 20(r29),r7 7610 00006eb8 afa80018 sw 24(r29),r8 7611 00006ebc 23bdfff8 addi r29,r29,#-8 7612 00006ec0 3c020001 lhi r2,((_debugstr)>>16)&0xffff 7613 00006ec4 24424038 addui r2,r2,(_debugstr)&0xffff 7614 00006ec8 afa20000 sw (r29),r2 7615 00006ecc 20080070 addi r8,r0,#112 7616 00006ed0 afa80004 sw 4(r29),r8 7617 00006ed4 0ffff6b4 jal _dindex 7618 00006ed8 54000000 nop; not filled. 7619 00006edc 23bd0008 addi r29,r29,#8 7620 00006ee0 64210000 snei r1,r1,#0 7621 00006ee4 1420002c bnez r1,L53_LF7 7622 00006ee8 54000000 nop; not filled. 7623 00006eec 23bdfff8 addi r29,r29,#-8 7624 00006ef0 afa20000 sw (r29),r2 7625 00006ef4 2008002b addi r8,r0,#43 7626 00006ef8 afa80004 sw 4(r29),r8 7627 00006efc 0ffff68c jal _dindex 7628 00006f00 54000000 nop; not filled. 7629 00006f04 23bd0008 addi r29,r29,#8 7630 00006f08 64210000 snei r1,r1,#0 7631 00006f0c 10200020 beqz r1,L52_LF7 7632 00006f10 54000000 nop; not filled. 7633 00006f14 L53_LF7: 7634 00006f14 23bdfff8 addi r29,r29,#-8 7635 00006f18 3c080001 lhi r8,((LC0_LF7)>>16)&0xffff 7636 00006f1c 250836b4 addui r8,r8,(LC0_LF7)&0xffff 7637 00006f20 afa80000 sw (r29),r8 7638 00006f24 0c0062fc jal _printf 7639 00006f28 54000000 nop; not filled. 7640 00006f2c 23bd0008 addi r29,r29,#8 7641 00006f30 L52_LF7: 7642 00006f30 23bdfff8 addi r29,r29,#-8 7643 00006f34 3c020001 lhi r2,((_freepcbs_LF7)>>16)&0xffff 7644 00006f38 24424104 addui r2,r2,(_freepcbs_LF7)&0xffff 7645 00006f3c afa20000 sw (r29),r2 7646 00006f40 0c0039b8 jal _QueueInit 7647 00006f44 54000000 nop; not filled. 7648 00006f48 3c080001 lhi r8,((_runQueue_LF7)>>16)&0xffff 7649 00006f4c 25084110 addui r8,r8,(_runQueue_LF7)&0xffff 7650 00006f50 afa80000 sw (r29),r8 7651 00006f54 0c0039a4 jal _QueueInit 7652 00006f58 54000000 nop; not filled. 7653 00006f5c 3c080001 lhi r8,((_waitQueue_LF7)>>16)&0xffff 7654 00006f60 2508411c addui r8,r8,(_waitQueue_LF7)&0xffff 7655 00006f64 afa80000 sw (r29),r8 7656 00006f68 0c003990 jal _QueueInit 7657 00006f6c 54000000 nop; not filled. 7658 00006f70 3c080001 lhi r8,((_zombieQueue_LF7)>>16)&0xffff 7659 00006f74 25084128 addui r8,r8,(_zombieQueue_LF7)&0xffff 7660 00006f78 afa80000 sw (r29),r8 7661 00006f7c 0c00397c jal _QueueInit 7662 00006f80 54000000 nop; not filled. 7663 00006f84 20040000 addi r4,r0,#0 7664 00006f88 23bd0008 addi r29,r29,#8 7665 00006f8c 3c070001 lhi r7,((_debugstr)>>16)&0xffff 7666 00006f90 24e74038 addui r7,r7,(_debugstr)&0xffff 7667 00006f94 3c010001 lhi r1,((_pcbs_LF7)>>16)&0xffff 7668 00006f98 24214134 addui r1,r1,(_pcbs_LF7)&0xffff 7669 00006f9c 00022820 add r5,r0,r2 7670 00006fa0 202200a4 addi r2,r1,#164 7671 00006fa4 00011820 add r3,r0,r1 7672 00006fa8 00033020 add r6,r0,r3 7673 00006fac L57_LF7: 7674 00006fac 23bdfff8 addi r29,r29,#-8 7675 00006fb0 afa70000 sw (r29),r7 7676 00006fb4 20080070 addi r8,r0,#112 7677 00006fb8 afa80004 sw 4(r29),r8 7678 00006fbc 0ffff5cc jal _dindex 7679 00006fc0 54000000 nop; not filled. 7680 00006fc4 23bd0008 addi r29,r29,#8 7681 00006fc8 64210000 snei r1,r1,#0 7682 00006fcc 1420002c bnez r1,L59_LF7 7683 00006fd0 54000000 nop; not filled. 7684 00006fd4 23bdfff8 addi r29,r29,#-8 7685 00006fd8 afa70000 sw (r29),r7 7686 00006fdc 2008002b addi r8,r0,#43 7687 00006fe0 afa80004 sw 4(r29),r8 7688 00006fe4 0ffff5a4 jal _dindex 7689 00006fe8 54000000 nop; not filled. 7690 00006fec 23bd0008 addi r29,r29,#8 7691 00006ff0 64210000 snei r1,r1,#0 7692 00006ff4 10200028 beqz r1,L58_LF7 7693 00006ff8 54000000 nop; not filled. 7694 00006ffc L59_LF7: 7695 00006ffc 23bdfff0 addi r29,r29,#-16 7696 00007000 3c080001 lhi r8,((LC1_LF7)>>16)&0xffff 7697 00007004 250836d0 addui r8,r8,(LC1_LF7)&0xffff 7698 00007008 afa80000 sw (r29),r8 7699 0000700c afa40004 sw 4(r29),r4 7700 00007010 afa60008 sw 8(r29),r6 7701 00007014 0c00620c jal _printf 7702 00007018 54000000 nop; not filled. 7703 0000701c 23bd0010 addi r29,r29,#16 7704 00007020 L58_LF7: 7705 00007020 20080001 addi r8,r0,#1 7706 00007024 ac68000c sw 12(r3),r8 7707 00007028 20080000 addi r8,r0,#0 7708 0000702c ac480000 sw (r2),r8 7709 00007030 ac43000c sw 12(r2),r3 7710 00007034 ac450008 sw 8(r2),r5 7711 00007038 ac450004 sw 4(r2),r5 7712 0000703c 8ca80000 lw r8,(r5) 7713 00007040 ac480000 sw (r2),r8 7714 00007044 aca20000 sw (r5),r2 7715 00007048 8c410000 lw r1,(r2) 7716 0000704c ac220004 sw 4(r1),r2 7717 00007050 8ca10008 lw r1,8(r5) 7718 00007054 20210001 addi r1,r1,#1 7719 00007058 aca10008 sw 8(r5),r1 7720 0000705c 204200b4 addi r2,r2,#180 7721 00007060 206300b4 addi r3,r3,#180 7722 00007064 20c600b4 addi r6,r6,#180 7723 00007068 20840001 addi r4,r4,#1 7724 0000706c 7081001f slei r1,r4,#31 7725 00007070 1420ff38 bnez r1,L57_LF7 7726 00007074 54000000 nop; not filled. 7727 00007078 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 7728 0000707c 24214100 addui r1,r1,(_currentPCB)&0xffff 7729 00007080 20080000 addi r8,r0,#0 7730 00007084 ac280000 sw (r1),r8 7731 00007088 23bdfff8 addi r29,r29,#-8 7732 0000708c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 7733 00007090 24424038 addui r2,r2,(_debugstr)&0xffff 7734 00007094 afa20000 sw (r29),r2 7735 00007098 20080070 addi r8,r0,#112 7736 0000709c afa80004 sw 4(r29),r8 7737 000070a0 0ffff4e8 jal _dindex 7738 000070a4 54000000 nop; not filled. 7739 000070a8 23bd0008 addi r29,r29,#8 7740 000070ac 64210000 snei r1,r1,#0 7741 000070b0 1420002c bnez r1,L65_LF7 7742 000070b4 54000000 nop; not filled. 7743 000070b8 23bdfff8 addi r29,r29,#-8 7744 000070bc afa20000 sw (r29),r2 7745 000070c0 2008002b addi r8,r0,#43 7746 000070c4 afa80004 sw 4(r29),r8 7747 000070c8 0ffff4c0 jal _dindex 7748 000070cc 54000000 nop; not filled. 7749 000070d0 23bd0008 addi r29,r29,#8 7750 000070d4 64210000 snei r1,r1,#0 7751 000070d8 10200020 beqz r1,L64_LF7 7752 000070dc 54000000 nop; not filled. 7753 000070e0 L65_LF7: 7754 000070e0 23bdfff8 addi r29,r29,#-8 7755 000070e4 3c080001 lhi r8,((LC2_LF7)>>16)&0xffff 7756 000070e8 250836f0 addui r8,r8,(LC2_LF7)&0xffff 7757 000070ec afa80000 sw (r29),r8 7758 000070f0 0c006130 jal _printf 7759 000070f4 54000000 nop; not filled. 7760 000070f8 23bd0008 addi r29,r29,#8 7761 000070fc L64_LF7: 7762 000070fc 8fa20000 lw r2,0(r29) 7763 00007100 8fa30004 lw r3,4(r29) 7764 00007104 8fa40008 lw r4,8(r29) 7765 00007108 8fa5000c lw r5,12(r29) 7766 0000710c 8fa60010 lw r6,16(r29) 7767 00007110 8fa70014 lw r7,20(r29) 7768 00007114 8fa80018 lw r8,24(r29) 7769 00007118 8fdffff8 lw r31,-8(r30) 7770 0000711c 001ee820 add r29,r0,r30 7771 00007120 8fdefffc lw r30,-4(r30) 7772 00007124 4be00000 jr r31 7773 00007128 54000000 nop 7774 0000712c .endproc _ProcessModuleInit 7775 0000712c .align 2 7776 0000712c .proc _ProcessSetStatus 7777 0000712c .global _ProcessSetStatus 7778 0000712c _ProcessSetStatus: 7779 ; Function 'ProcessSetStatus'; 0 bytes of locals, 2 regs to save. 7780 0000712c afbefffc sw -4(r29),r30; push fp 7781 00007130 001df020 add r30,r0,r29; fp = sp 7782 00007134 afbffff8 sw -8(r29),r31; push ret addr 7783 00007138 2fbd0010 subui r29,r29,#16; alloc local storage 7784 0000713c afa20000 sw 0(r29),r2 7785 00007140 afa30004 sw 4(r29),r3 7786 00007144 8fc30000 lw r3,(r30) 7787 00007148 8fc20004 lw r2,4(r30) 7788 0000714c 8c61000c lw r1,12(r3) 7789 00007150 201fffc0 addi r31,r0,#-64 7790 00007154 003f0824 and r1,r1,r31 7791 00007158 00220825 or r1,r1,r2 7792 0000715c ac61000c sw 12(r3),r1 7793 00007160 8fa20000 lw r2,0(r29) 7794 00007164 8fa30004 lw r3,4(r29) 7795 00007168 8fdffff8 lw r31,-8(r30) 7796 0000716c 001ee820 add r29,r0,r30 7797 00007170 8fdefffc lw r30,-4(r30) 7798 00007174 4be00000 jr r31 7799 00007178 54000000 nop 7800 0000717c .endproc _ProcessSetStatus 7801 0000717c .align 2 7802 0000717c .proc _ProcessFreeResources 7803 0000717c .global _ProcessFreeResources 7804 0000717c _ProcessFreeResources: 7805 ; Function 'ProcessFreeResources'; 0 bytes of locals, 4 regs to save. 7806 0000717c afbefffc sw -4(r29),r30; push fp 7807 00007180 001df020 add r30,r0,r29; fp = sp 7808 00007184 afbffff8 sw -8(r29),r31; push ret addr 7809 00007188 2fbd0018 subui r29,r29,#24; alloc local storage 7810 0000718c afa20000 sw 0(r29),r2 7811 00007190 afa30004 sw 4(r29),r3 7812 00007194 afa40008 sw 8(r29),r4 7813 00007198 afa5000c sw 12(r29),r5 7814 0000719c 8fc40000 lw r4,(r30) 7815 000071a0 3c030001 lhi r3,((_freepcbs_LF7)>>16)&0xffff 7816 000071a4 24634104 addui r3,r3,(_freepcbs_LF7)&0xffff 7817 000071a8 208200a4 addi r2,r4,#164 7818 000071ac 8c610004 lw r1,4(r3) 7819 000071b0 ac8300ac sw 172(r4),r3 7820 000071b4 ac8100a8 sw 168(r4),r1 7821 000071b8 8c250000 lw r5,(r1) 7822 000071bc ac450000 sw (r2),r5 7823 000071c0 ac220000 sw (r1),r2 7824 000071c4 8c410000 lw r1,(r2) 7825 000071c8 ac220004 sw 4(r1),r2 7826 000071cc 8c610008 lw r1,8(r3) 7827 000071d0 20210001 addi r1,r1,#1 7828 000071d4 ac610008 sw 8(r3),r1 7829 000071d8 8c8300a0 lw r3,160(r4) 7830 000071dc 20020000 addi r2,r0,#0 7831 000071e0 0043082a slt r1,r2,r3 7832 000071e4 10200030 beqz r1,L98_LF7 7833 000071e8 54000000 nop; not filled. 7834 000071ec L90_LF7: 7835 000071ec 23bdfff8 addi r29,r29,#-8 7836 000071f0 afa40000 sw (r29),r4 7837 000071f4 afa20004 sw 4(r29),r2 7838 000071f8 0fffaaf8 jal _MemoryFreeSharedPte 7839 000071fc 54000000 nop; not filled. 7840 00007200 23bd0008 addi r29,r29,#8 7841 00007204 20420001 addi r2,r2,#1 7842 00007208 0043082a slt r1,r2,r3 7843 0000720c 1420ffdc bnez r1,L90_LF7 7844 00007210 54000000 nop; not filled. 7845 00007214 20020000 addi r2,r0,#0 7846 00007218 L98_LF7: 7847 00007218 8c8100a0 lw r1,160(r4) 7848 0000721c 0041082a slt r1,r2,r1 7849 00007220 10200038 beqz r1,L93_LF7 7850 00007224 54000000 nop; not filled. 7851 00007228 00041820 add r3,r0,r4 7852 0000722c L95_LF7: 7853 0000722c 23bdfff8 addi r29,r29,#-8 7854 00007230 8c650060 lw r5,96(r3) 7855 00007234 afa50000 sw (r29),r5 7856 00007238 0fffebf8 jal _MemoryFreePte 7857 0000723c 54000000 nop; not filled. 7858 00007240 23bd0008 addi r29,r29,#8 7859 00007244 20630004 addi r3,r3,#4 7860 00007248 20420001 addi r2,r2,#1 7861 0000724c 8c8100a0 lw r1,160(r4) 7862 00007250 0041082a slt r1,r2,r1 7863 00007254 1420ffd4 bnez r1,L95_LF7 7864 00007258 54000000 nop; not filled. 7865 0000725c L93_LF7: 7866 0000725c 23bdfff8 addi r29,r29,#-8 7867 00007260 94810008 lhu r1,8(r4) 7868 00007264 afa10000 sw (r29),r1 7869 00007268 0fffe6fc jal _MemoryFreePage 7870 0000726c 54000000 nop; not filled. 7871 00007270 23bd0008 addi r29,r29,#8 7872 00007274 8c81000c lw r1,12(r4) 7873 00007278 2005ffc0 addi r5,r0,#-64 7874 0000727c 00250824 and r1,r1,r5 7875 00007280 34210001 ori r1,r1,#1 7876 00007284 ac81000c sw 12(r4),r1 7877 00007288 8fa20000 lw r2,0(r29) 7878 0000728c 8fa30004 lw r3,4(r29) 7879 00007290 8fa40008 lw r4,8(r29) 7880 00007294 8fa5000c lw r5,12(r29) 7881 00007298 8fdffff8 lw r31,-8(r30) 7882 0000729c 001ee820 add r29,r0,r30 7883 000072a0 8fdefffc lw r30,-4(r30) 7884 000072a4 4be00000 jr r31 7885 000072a8 54000000 nop 7886 000072ac .endproc _ProcessFreeResources 7887 000072ac .align 2 7888 000072ac .proc _ProcessSetResult 7889 000072ac .global _ProcessSetResult 7890 000072ac _ProcessSetResult: 7891 ; Function 'ProcessSetResult'; 0 bytes of locals, 0 regs to save. 7892 000072ac afbefffc sw -4(r29),r30; push fp 7893 000072b0 001df020 add r30,r0,r29; fp = sp 7894 000072b4 afbffff8 sw -8(r29),r31; push ret addr 7895 000072b8 2fbd0008 subui r29,r29,#8; alloc local storage 7896 000072bc 8fc10000 lw r1,(r30) 7897 000072c0 8c210000 lw r1,(r1) 7898 000072c4 8fdf0004 lw r31,4(r30) 7899 000072c8 ac3f002c sw 44(r1),r31 7900 000072cc 8fdffff8 lw r31,-8(r30) 7901 000072d0 001ee820 add r29,r0,r30 7902 000072d4 8fdefffc lw r30,-4(r30) 7903 000072d8 4be00000 jr r31 7904 000072dc 54000000 nop 7905 000072e0 .endproc _ProcessSetResult 7906 000072e0 .data 7907 0001370b .align 2 7908 0001370c LC3_LF7: 7909 0001370c 4e6f7720 .ascii "Now entering ProcessSchedule (cur=0x%x, %d ready)\n\000" 7909 00013710 656e7465 7909 00013714 72696e67 7909 00013718 2050726f 7909 0001371c 63657373 7909 00013720 53636865 7909 00013724 64756c65 7909 00013728 20286375 7909 0001372c 723d3078 7909 00013730 25782c20 7909 00013734 25642072 7909 00013738 65616479 7909 0001373c 290a00 7910 0001373f .align 2 7911 00013740 LC4_LF7: 7912 00013740 4e6f2072 .ascii "No runnable processes - exiting!\n\000" 7912 00013744 756e6e61 7912 00013748 626c6520 7912 0001374c 70726f63 7912 00013750 65737365 7912 00013754 73202d20 7912 00013758 65786974 7912 0001375c 696e6721 7912 00013760 0a00 7913 00013762 .align 2 7914 00013764 LC5_LF7: 7915 00013764 41626f75 .ascii "About to switch to PCB 0x%x,flags=0x%x @ 0x%x\n\000" 7915 00013768 7420746f 7915 0001376c 20737769 7915 00013770 74636820 7915 00013774 746f2050 7915 00013778 43422030 7915 0001377c 7825782c 7915 00013780 666c6167 7915 00013784 733d3078 7915 00013788 25782040 7915 0001378c 20307825 7915 00013790 780a00 7916 00013793 .align 2 7917 00013794 LC6_LF7: 7918 00013794 46726565 .ascii "Freeing zombie PCB 0x%x.\n\000" 7918 00013798 696e6720 7918 0001379c 7a6f6d62 7918 000137a0 69652050 7918 000137a4 43422030 7918 000137a8 7825782e 7918 000137ac 0a00 7919 000137ae .align 2 7920 000137b0 LC7_LF7: 7921 000137b0 4c656176 .ascii "Leaving ProcessSchedule (cur=0x%x)\n\000" 7921 000137b4 696e6720 7921 000137b8 50726f63 7921 000137bc 65737353 7921 000137c0 63686564 7921 000137c4 756c6520 7921 000137c8 28637572 7921 000137cc 3d307825 7921 000137d0 78290a00 7922 000137d4 .text 7923 000072e0 .align 2 7924 000072e0 .proc _ProcessSchedule 7925 000072e0 .global _ProcessSchedule 7926 000072e0 _ProcessSchedule: 7927 ; Function 'ProcessSchedule'; 0 bytes of locals, 7 regs to save. 7928 000072e0 afbefffc sw -4(r29),r30; push fp 7929 000072e4 001df020 add r30,r0,r29; fp = sp 7930 000072e8 afbffff8 sw -8(r29),r31; push ret addr 7931 000072ec 2fbd0028 subui r29,r29,#40; alloc local storage 7932 000072f0 afa20000 sw 0(r29),r2 7933 000072f4 afa30004 sw 4(r29),r3 7934 000072f8 afa40008 sw 8(r29),r4 7935 000072fc afa5000c sw 12(r29),r5 7936 00007300 afa60010 sw 16(r29),r6 7937 00007304 afa70014 sw 20(r29),r7 7938 00007308 afa80018 sw 24(r29),r8 7939 0000730c 23bdfff8 addi r29,r29,#-8 7940 00007310 3c020001 lhi r2,((_debugstr)>>16)&0xffff 7941 00007314 24424038 addui r2,r2,(_debugstr)&0xffff 7942 00007318 afa20000 sw (r29),r2 7943 0000731c 20080070 addi r8,r0,#112 7944 00007320 afa80004 sw 4(r29),r8 7945 00007324 0ffff264 jal _dindex 7946 00007328 54000000 nop; not filled. 7947 0000732c 23bd0008 addi r29,r29,#8 7948 00007330 64210000 snei r1,r1,#0 7949 00007334 1420002c bnez r1,L103_LF7 7950 00007338 54000000 nop; not filled. 7951 0000733c 23bdfff8 addi r29,r29,#-8 7952 00007340 afa20000 sw (r29),r2 7953 00007344 2008002b addi r8,r0,#43 7954 00007348 afa80004 sw 4(r29),r8 7955 0000734c 0ffff23c jal _dindex 7956 00007350 54000000 nop; not filled. 7957 00007354 23bd0008 addi r29,r29,#8 7958 00007358 64210000 snei r1,r1,#0 7959 0000735c 10200040 beqz r1,L102_LF7 7960 00007360 54000000 nop; not filled. 7961 00007364 L103_LF7: 7962 00007364 3c010001 lhi r1,((_runQueue_LF7)>>16)&0xffff 7963 00007368 24214110 addui r1,r1,(_runQueue_LF7)&0xffff 7964 0000736c 8c220008 lw r2,8(r1) 7965 00007370 23bdfff0 addi r29,r29,#-16 7966 00007374 3c080001 lhi r8,((LC3_LF7)>>16)&0xffff 7967 00007378 2508370c addui r8,r8,(LC3_LF7)&0xffff 7968 0000737c afa80000 sw (r29),r8 7969 00007380 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 7970 00007384 24214100 addui r1,r1,(_currentPCB)&0xffff 7971 00007388 8c210000 lw r1,(r1) 7972 0000738c afa10004 sw 4(r29),r1 7973 00007390 afa20008 sw 8(r29),r2 7974 00007394 0c005e8c jal _printf 7975 00007398 54000000 nop; not filled. 7976 0000739c 23bd0010 addi r29,r29,#16 7977 000073a0 L102_LF7: 7978 000073a0 3c050001 lhi r5,((_runQueue_LF7)>>16)&0xffff 7979 000073a4 24a54110 addui r5,r5,(_runQueue_LF7)&0xffff 7980 000073a8 8ca10008 lw r1,8(r5) 7981 000073ac 60210000 seqi r1,r1,#0 7982 000073b0 10200028 beqz r1,L105_LF7 7983 000073b4 54000000 nop; not filled. 7984 000073b8 23bdfff8 addi r29,r29,#-8 7985 000073bc 3c080001 lhi r8,((LC4_LF7)>>16)&0xffff 7986 000073c0 25083740 addui r8,r8,(LC4_LF7)&0xffff 7987 000073c4 afa80000 sw (r29),r8 7988 000073c8 0c005e58 jal _printf 7989 000073cc 54000000 nop; not filled. 7990 000073d0 0c005e38 jal _exitsim 7991 000073d4 54000000 nop; not filled. 7992 000073d8 23bd0008 addi r29,r29,#8 7993 000073dc L105_LF7: 7994 000073dc 8ca10000 lw r1,(r5) 7995 000073e0 8c24000c lw r4,12(r1) 7996 000073e4 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 7997 000073e8 24214100 addui r1,r1,(_currentPCB)&0xffff 7998 000073ec 8c210000 lw r1,(r1) 7999 000073f0 00810828 seq r1,r4,r1 8000 000073f4 10200078 beqz r1,L109_LF7 8001 000073f8 54000000 nop; not filled. 8002 000073fc 208300a4 addi r3,r4,#164 8003 00007400 8c8100ac lw r1,172(r4) 8004 00007404 8c210008 lw r1,8(r1) 8005 00007408 6c210000 sgti r1,r1,#0 8006 0000740c 1020002c beqz r1,L111_LF7 8007 00007410 54000000 nop; not filled. 8008 00007414 8c8100a8 lw r1,168(r4) 8009 00007418 8c680000 lw r8,(r3) 8010 0000741c ac280000 sw (r1),r8 8011 00007420 8c610000 lw r1,(r3) 8012 00007424 8c8800a8 lw r8,168(r4) 8013 00007428 ac280004 sw 4(r1),r8 8014 0000742c 8c8200ac lw r2,172(r4) 8015 00007430 8c410008 lw r1,8(r2) 8016 00007434 2021ffff addi r1,r1,#-1 8017 00007438 ac410008 sw 8(r2),r1 8018 0000743c L111_LF7: 8019 0000743c 20080000 addi r8,r0,#0 8020 00007440 ac680000 sw (r3),r8 8021 00007444 8ca10004 lw r1,4(r5) 8022 00007448 ac8500ac sw 172(r4),r5 8023 0000744c ac8100a8 sw 168(r4),r1 8024 00007450 8c280000 lw r8,(r1) 8025 00007454 ac680000 sw (r3),r8 8026 00007458 ac230000 sw (r1),r3 8027 0000745c 8c610000 lw r1,(r3) 8028 00007460 ac230004 sw 4(r1),r3 8029 00007464 8ca10008 lw r1,8(r5) 8030 00007468 20210001 addi r1,r1,#1 8031 0000746c aca10008 sw 8(r5),r1 8032 00007470 L109_LF7: 8033 00007470 3c010001 lhi r1,((_runQueue_LF7)>>16)&0xffff 8034 00007474 24214110 addui r1,r1,(_runQueue_LF7)&0xffff 8035 00007478 8c210000 lw r1,(r1) 8036 0000747c 8c24000c lw r4,12(r1) 8037 00007480 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 8038 00007484 24214100 addui r1,r1,(_currentPCB)&0xffff 8039 00007488 ac240000 sw (r1),r4 8040 0000748c 23bdfff8 addi r29,r29,#-8 8041 00007490 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8042 00007494 24424038 addui r2,r2,(_debugstr)&0xffff 8043 00007498 afa20000 sw (r29),r2 8044 0000749c 20080070 addi r8,r0,#112 8045 000074a0 afa80004 sw 4(r29),r8 8046 000074a4 0ffff0e4 jal _dindex 8047 000074a8 54000000 nop; not filled. 8048 000074ac 23bd0008 addi r29,r29,#8 8049 000074b0 64210000 snei r1,r1,#0 8050 000074b4 1420002c bnez r1,L117_LF7 8051 000074b8 54000000 nop; not filled. 8052 000074bc 23bdfff8 addi r29,r29,#-8 8053 000074c0 afa20000 sw (r29),r2 8054 000074c4 2008002b addi r8,r0,#43 8055 000074c8 afa80004 sw 4(r29),r8 8056 000074cc 0ffff0bc jal _dindex 8057 000074d0 54000000 nop; not filled. 8058 000074d4 23bd0008 addi r29,r29,#8 8059 000074d8 64210000 snei r1,r1,#0 8060 000074dc 10200038 beqz r1,L116_LF7 8061 000074e0 54000000 nop; not filled. 8062 000074e4 L117_LF7: 8063 000074e4 23bdfff0 addi r29,r29,#-16 8064 000074e8 3c080001 lhi r8,((LC5_LF7)>>16)&0xffff 8065 000074ec 25083764 addui r8,r8,(LC5_LF7)&0xffff 8066 000074f0 afa80000 sw (r29),r8 8067 000074f4 afa40004 sw 4(r29),r4 8068 000074f8 8c88000c lw r8,12(r4) 8069 000074fc afa80008 sw 8(r29),r8 8070 00007500 8c810004 lw r1,4(r4) 8071 00007504 8c210128 lw r1,296(r1) 8072 00007508 afa1000c sw 12(r29),r1 8073 0000750c 0c005d14 jal _printf 8074 00007510 54000000 nop; not filled. 8075 00007514 23bd0010 addi r29,r29,#16 8076 00007518 L116_LF7: 8077 00007518 3c070001 lhi r7,((_zombieQueue_LF7)>>16)&0xffff 8078 0000751c 24e74128 addui r7,r7,(_zombieQueue_LF7)&0xffff 8079 00007520 3c060001 lhi r6,((_debugstr)>>16)&0xffff 8080 00007524 24c64038 addui r6,r6,(_debugstr)&0xffff 8081 00007528 3c050001 lhi r5,((_freepcbs_LF7)>>16)&0xffff 8082 0000752c 24a54104 addui r5,r5,(_freepcbs_LF7)&0xffff 8083 00007530 L118_LF7: 8084 00007530 8ce10008 lw r1,8(r7) 8085 00007534 60210000 seqi r1,r1,#0 8086 00007538 142001a8 bnez r1,L119_LF7 8087 0000753c 54000000 nop; not filled. 8088 00007540 8ce10000 lw r1,(r7) 8089 00007544 8c24000c lw r4,12(r1) 8090 00007548 23bdfff8 addi r29,r29,#-8 8091 0000754c afa60000 sw (r29),r6 8092 00007550 20080070 addi r8,r0,#112 8093 00007554 afa80004 sw 4(r29),r8 8094 00007558 0ffff030 jal _dindex 8095 0000755c 54000000 nop; not filled. 8096 00007560 23bd0008 addi r29,r29,#8 8097 00007564 64210000 snei r1,r1,#0 8098 00007568 1420002c bnez r1,L125_LF7 8099 0000756c 54000000 nop; not filled. 8100 00007570 23bdfff8 addi r29,r29,#-8 8101 00007574 afa60000 sw (r29),r6 8102 00007578 2008002b addi r8,r0,#43 8103 0000757c afa80004 sw 4(r29),r8 8104 00007580 0ffff008 jal _dindex 8105 00007584 54000000 nop; not filled. 8106 00007588 23bd0008 addi r29,r29,#8 8107 0000758c 64210000 snei r1,r1,#0 8108 00007590 10200024 beqz r1,L124_LF7 8109 00007594 54000000 nop; not filled. 8110 00007598 L125_LF7: 8111 00007598 23bdfff8 addi r29,r29,#-8 8112 0000759c 3c080001 lhi r8,((LC6_LF7)>>16)&0xffff 8113 000075a0 25083794 addui r8,r8,(LC6_LF7)&0xffff 8114 000075a4 afa80000 sw (r29),r8 8115 000075a8 afa40004 sw 4(r29),r4 8116 000075ac 0c005c74 jal _printf 8117 000075b0 54000000 nop; not filled. 8118 000075b4 23bd0008 addi r29,r29,#8 8119 000075b8 L124_LF7: 8120 000075b8 209f00a4 addi r31,r4,#164 8121 000075bc 8c8100ac lw r1,172(r4) 8122 000075c0 8c210008 lw r1,8(r1) 8123 000075c4 6c210000 sgti r1,r1,#0 8124 000075c8 1020002c beqz r1,L127_LF7 8125 000075cc 54000000 nop; not filled. 8126 000075d0 8c8100a8 lw r1,168(r4) 8127 000075d4 8fe80000 lw r8,(r31) 8128 000075d8 ac280000 sw (r1),r8 8129 000075dc 8fe10000 lw r1,(r31) 8130 000075e0 8c8800a8 lw r8,168(r4) 8131 000075e4 ac280004 sw 4(r1),r8 8132 000075e8 8c8200ac lw r2,172(r4) 8133 000075ec 8c410008 lw r1,8(r2) 8134 000075f0 2021ffff addi r1,r1,#-1 8135 000075f4 ac410008 sw 8(r2),r1 8136 000075f8 L127_LF7: 8137 000075f8 20080000 addi r8,r0,#0 8138 000075fc afe80000 sw (r31),r8 8139 00007600 8ca10004 lw r1,4(r5) 8140 00007604 ac8500ac sw 172(r4),r5 8141 00007608 ac8100a8 sw 168(r4),r1 8142 0000760c 8c280000 lw r8,(r1) 8143 00007610 afe80000 sw (r31),r8 8144 00007614 ac3f0000 sw (r1),r31 8145 00007618 8fe10000 lw r1,(r31) 8146 0000761c ac3f0004 sw 4(r1),r31 8147 00007620 8ca10008 lw r1,8(r5) 8148 00007624 20210001 addi r1,r1,#1 8149 00007628 aca10008 sw 8(r5),r1 8150 0000762c 8c8300a0 lw r3,160(r4) 8151 00007630 20020000 addi r2,r0,#0 8152 00007634 0043082a slt r1,r2,r3 8153 00007638 10200030 beqz r1,L145_LF7 8154 0000763c 54000000 nop; not filled. 8155 00007640 L135_LF7: 8156 00007640 23bdfff8 addi r29,r29,#-8 8157 00007644 afa40000 sw (r29),r4 8158 00007648 afa20004 sw 4(r29),r2 8159 0000764c 0fffa6a4 jal _MemoryFreeSharedPte 8160 00007650 54000000 nop; not filled. 8161 00007654 23bd0008 addi r29,r29,#8 8162 00007658 20420001 addi r2,r2,#1 8163 0000765c 0043082a slt r1,r2,r3 8164 00007660 1420ffdc bnez r1,L135_LF7 8165 00007664 54000000 nop; not filled. 8166 00007668 20020000 addi r2,r0,#0 8167 0000766c L145_LF7: 8168 0000766c 8c8100a0 lw r1,160(r4) 8169 00007670 0041082a slt r1,r2,r1 8170 00007674 10200038 beqz r1,L138_LF7 8171 00007678 54000000 nop; not filled. 8172 0000767c 00041820 add r3,r0,r4 8173 00007680 L140_LF7: 8174 00007680 23bdfff8 addi r29,r29,#-8 8175 00007684 8c680060 lw r8,96(r3) 8176 00007688 afa80000 sw (r29),r8 8177 0000768c 0fffe7a4 jal _MemoryFreePte 8178 00007690 54000000 nop; not filled. 8179 00007694 23bd0008 addi r29,r29,#8 8180 00007698 20630004 addi r3,r3,#4 8181 0000769c 20420001 addi r2,r2,#1 8182 000076a0 8c8100a0 lw r1,160(r4) 8183 000076a4 0041082a slt r1,r2,r1 8184 000076a8 1420ffd4 bnez r1,L140_LF7 8185 000076ac 54000000 nop; not filled. 8186 000076b0 L138_LF7: 8187 000076b0 23bdfff8 addi r29,r29,#-8 8188 000076b4 94810008 lhu r1,8(r4) 8189 000076b8 afa10000 sw (r29),r1 8190 000076bc 0fffe2a8 jal _MemoryFreePage 8191 000076c0 54000000 nop; not filled. 8192 000076c4 23bd0008 addi r29,r29,#8 8193 000076c8 8c81000c lw r1,12(r4) 8194 000076cc 2008ffc0 addi r8,r0,#-64 8195 000076d0 00280824 and r1,r1,r8 8196 000076d4 34210001 ori r1,r1,#1 8197 000076d8 ac81000c sw 12(r4),r1 8198 000076dc 0bfffe50 j L118_LF7 8199 000076e0 54000000 nop; not filled. 8200 000076e4 L119_LF7: 8201 000076e4 23bdfff8 addi r29,r29,#-8 8202 000076e8 3c010001 lhi r1,((_processQuantum_LF7)>>16)&0xffff 8203 000076ec 242136b0 addui r1,r1,(_processQuantum_LF7)&0xffff 8204 000076f0 8c210000 lw r1,(r1) 8205 000076f4 afa10000 sw (r29),r1 8206 000076f8 0c003878 jal _TimerSet 8207 000076fc 54000000 nop; not filled. 8208 00007700 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8209 00007704 24424038 addui r2,r2,(_debugstr)&0xffff 8210 00007708 afa20000 sw (r29),r2 8211 0000770c 20080070 addi r8,r0,#112 8212 00007710 afa80004 sw 4(r29),r8 8213 00007714 0fffee74 jal _dindex 8214 00007718 54000000 nop; not filled. 8215 0000771c 23bd0008 addi r29,r29,#8 8216 00007720 64210000 snei r1,r1,#0 8217 00007724 1420002c bnez r1,L144_LF7 8218 00007728 54000000 nop; not filled. 8219 0000772c 23bdfff8 addi r29,r29,#-8 8220 00007730 afa20000 sw (r29),r2 8221 00007734 2008002b addi r8,r0,#43 8222 00007738 afa80004 sw 4(r29),r8 8223 0000773c 0fffee4c jal _dindex 8224 00007740 54000000 nop; not filled. 8225 00007744 23bd0008 addi r29,r29,#8 8226 00007748 64210000 snei r1,r1,#0 8227 0000774c 10200030 beqz r1,L143_LF7 8228 00007750 54000000 nop; not filled. 8229 00007754 L144_LF7: 8230 00007754 23bdfff8 addi r29,r29,#-8 8231 00007758 3c080001 lhi r8,((LC7_LF7)>>16)&0xffff 8232 0000775c 250837b0 addui r8,r8,(LC7_LF7)&0xffff 8233 00007760 afa80000 sw (r29),r8 8234 00007764 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 8235 00007768 24214100 addui r1,r1,(_currentPCB)&0xffff 8236 0000776c 8c210000 lw r1,(r1) 8237 00007770 afa10004 sw 4(r29),r1 8238 00007774 0c005aac jal _printf 8239 00007778 54000000 nop; not filled. 8240 0000777c 23bd0008 addi r29,r29,#8 8241 00007780 L143_LF7: 8242 00007780 8fa20000 lw r2,0(r29) 8243 00007784 8fa30004 lw r3,4(r29) 8244 00007788 8fa40008 lw r4,8(r29) 8245 0000778c 8fa5000c lw r5,12(r29) 8246 00007790 8fa60010 lw r6,16(r29) 8247 00007794 8fa70014 lw r7,20(r29) 8248 00007798 8fa80018 lw r8,24(r29) 8249 0000779c 8fdffff8 lw r31,-8(r30) 8250 000077a0 001ee820 add r29,r0,r30 8251 000077a4 8fdefffc lw r30,-4(r30) 8252 000077a8 4be00000 jr r31 8253 000077ac 54000000 nop 8254 000077b0 .endproc _ProcessSchedule 8255 000077b0 .data 8256 000137d4 .align 2 8257 000137d4 LC8_LF7: 8258 000137d4 53757370 .ascii "Suspending PCB 0x%x (%s).\n\000" 8258 000137d8 656e6469 8258 000137dc 6e672050 8258 000137e0 43422030 8258 000137e4 78257820 8258 000137e8 28257329 8258 000137ec 2e0a00 8259 000137ef .align 2 8260 000137f0 LC9_LF7: 8261 000137f0 25733a20 .ascii "%s: %s\n\000" 8261 000137f4 25730a00 8262 000137f8 .align 2 8263 000137f8 LC10_LF7: 8264 000137f8 50726f63 .ascii "ProcessSuspend\000" 8264 000137fc 65737353 8264 00013800 75737065 8264 00013804 6e6400 8265 00013807 .align 2 8266 00013808 LC11_LF7: 8267 00013808 54727969 .ascii "Trying to suspend a non-running process!\n\000" 8267 0001380c 6e672074 8267 00013810 6f207375 8267 00013814 7370656e 8267 00013818 64206120 8267 0001381c 6e6f6e2d 8267 00013820 72756e6e 8267 00013824 696e6720 8267 00013828 70726f63 8267 0001382c 65737321 8267 00013830 0a00 8268 00013832 .text 8269 000077b0 .align 2 8270 000077b0 .proc _ProcessSuspend 8271 000077b0 .global _ProcessSuspend 8272 000077b0 _ProcessSuspend: 8273 ; Function 'ProcessSuspend'; 0 bytes of locals, 3 regs to save. 8274 000077b0 afbefffc sw -4(r29),r30; push fp 8275 000077b4 001df020 add r30,r0,r29; fp = sp 8276 000077b8 afbffff8 sw -8(r29),r31; push ret addr 8277 000077bc 2fbd0018 subui r29,r29,#24; alloc local storage 8278 000077c0 afa20000 sw 0(r29),r2 8279 000077c4 afa30004 sw 4(r29),r3 8280 000077c8 afa40008 sw 8(r29),r4 8281 000077cc 8fc30000 lw r3,(r30) 8282 000077d0 23bdfff8 addi r29,r29,#-8 8283 000077d4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8284 000077d8 24424038 addui r2,r2,(_debugstr)&0xffff 8285 000077dc afa20000 sw (r29),r2 8286 000077e0 20040070 addi r4,r0,#112 8287 000077e4 afa40004 sw 4(r29),r4 8288 000077e8 0fffeda0 jal _dindex 8289 000077ec 54000000 nop; not filled. 8290 000077f0 23bd0008 addi r29,r29,#8 8291 000077f4 64210000 snei r1,r1,#0 8292 000077f8 1420002c bnez r1,L148_LF7 8293 000077fc 54000000 nop; not filled. 8294 00007800 23bdfff8 addi r29,r29,#-8 8295 00007804 afa20000 sw (r29),r2 8296 00007808 2004002b addi r4,r0,#43 8297 0000780c afa40004 sw 4(r29),r4 8298 00007810 0fffed78 jal _dindex 8299 00007814 54000000 nop; not filled. 8300 00007818 23bd0008 addi r29,r29,#8 8301 0000781c 64210000 snei r1,r1,#0 8302 00007820 1020002c beqz r1,L147_LF7 8303 00007824 54000000 nop; not filled. 8304 00007828 L148_LF7: 8305 00007828 23bdfff0 addi r29,r29,#-16 8306 0000782c 3c040001 lhi r4,((LC8_LF7)>>16)&0xffff 8307 00007830 248437d4 addui r4,r4,(LC8_LF7)&0xffff 8308 00007834 afa40000 sw (r29),r4 8309 00007838 afa30004 sw 4(r29),r3 8310 0000783c 20610010 addi r1,r3,#16 8311 00007840 afa10008 sw 8(r29),r1 8312 00007844 0c0059dc jal _printf 8313 00007848 54000000 nop; not filled. 8314 0000784c 23bd0010 addi r29,r29,#16 8315 00007850 L147_LF7: 8316 00007850 8064000f lb r4,15(r3) 8317 00007854 58810001 srli r1,r4,#0x1 8318 00007858 30210001 andi r1,r1,#1 8319 0000785c 14200038 bnez r1,L150_LF7 8320 00007860 54000000 nop; not filled. 8321 00007864 23bdfff0 addi r29,r29,#-16 8322 00007868 3c040001 lhi r4,((LC9_LF7)>>16)&0xffff 8323 0000786c 248437f0 addui r4,r4,(LC9_LF7)&0xffff 8324 00007870 afa40000 sw (r29),r4 8325 00007874 3c010001 lhi r1,((LC10_LF7)>>16)&0xffff 8326 00007878 242137f8 addui r1,r1,(LC10_LF7)&0xffff 8327 0000787c afa10004 sw 4(r29),r1 8328 00007880 3c040001 lhi r4,((LC11_LF7)>>16)&0xffff 8329 00007884 24843808 addui r4,r4,(LC11_LF7)&0xffff 8330 00007888 afa40008 sw 8(r29),r4 8331 0000788c 0c005994 jal _printf 8332 00007890 54000000 nop; not filled. 8333 00007894 23bd0010 addi r29,r29,#16 8334 00007898 L150_LF7: 8335 00007898 8c61000c lw r1,12(r3) 8336 0000789c 2004ffc0 addi r4,r0,#-64 8337 000078a0 00240824 and r1,r1,r4 8338 000078a4 34210004 ori r1,r1,#4 8339 000078a8 ac61000c sw 12(r3),r1 8340 000078ac 207f00a4 addi r31,r3,#164 8341 000078b0 8c6100ac lw r1,172(r3) 8342 000078b4 8c210008 lw r1,8(r1) 8343 000078b8 6c210000 sgti r1,r1,#0 8344 000078bc 1020002c beqz r1,L153_LF7 8345 000078c0 54000000 nop; not filled. 8346 000078c4 8c6100a8 lw r1,168(r3) 8347 000078c8 8fe40000 lw r4,(r31) 8348 000078cc ac240000 sw (r1),r4 8349 000078d0 8fe10000 lw r1,(r31) 8350 000078d4 8c6400a8 lw r4,168(r3) 8351 000078d8 ac240004 sw 4(r1),r4 8352 000078dc 8c6200ac lw r2,172(r3) 8353 000078e0 8c410008 lw r1,8(r2) 8354 000078e4 2021ffff addi r1,r1,#-1 8355 000078e8 ac410008 sw 8(r2),r1 8356 000078ec L153_LF7: 8357 000078ec 20040000 addi r4,r0,#0 8358 000078f0 afe40000 sw (r31),r4 8359 000078f4 3c020001 lhi r2,((_waitQueue_LF7)>>16)&0xffff 8360 000078f8 2442411c addui r2,r2,(_waitQueue_LF7)&0xffff 8361 000078fc 8c410004 lw r1,4(r2) 8362 00007900 ac6200ac sw 172(r3),r2 8363 00007904 ac6100a8 sw 168(r3),r1 8364 00007908 8c240000 lw r4,(r1) 8365 0000790c afe40000 sw (r31),r4 8366 00007910 ac3f0000 sw (r1),r31 8367 00007914 8fe10000 lw r1,(r31) 8368 00007918 ac3f0004 sw 4(r1),r31 8369 0000791c 8c410008 lw r1,8(r2) 8370 00007920 20210001 addi r1,r1,#1 8371 00007924 ac410008 sw 8(r2),r1 8372 00007928 8fa20000 lw r2,0(r29) 8373 0000792c 8fa30004 lw r3,4(r29) 8374 00007930 8fa40008 lw r4,8(r29) 8375 00007934 8fdffff8 lw r31,-8(r30) 8376 00007938 001ee820 add r29,r0,r30 8377 0000793c 8fdefffc lw r30,-4(r30) 8378 00007940 4be00000 jr r31 8379 00007944 54000000 nop 8380 00007948 .endproc _ProcessSuspend 8381 00007948 .data 8382 00013832 .align 2 8383 00013834 LC12_LF7: 8384 00013834 57616b69 .ascii "Waking up PCB 0x%x.\n\000" 8384 00013838 6e672075 8384 0001383c 70205043 8384 00013840 42203078 8384 00013844 25782e0a 8384 00013848 00 8385 00013849 .align 2 8386 0001384c LC13_LF7: 8387 0001384c 50726f63 .ascii "ProcessWakeup\000" 8387 00013850 65737357 8387 00013854 616b6575 8387 00013858 7000 8388 0001385a .align 2 8389 0001385c LC14_LF7: 8390 0001385c 54727969 .ascii "Trying to wake up a non-sleeping process!\n\000" 8390 00013860 6e672074 8390 00013864 6f207761 8390 00013868 6b652075 8390 0001386c 70206120 8390 00013870 6e6f6e2d 8390 00013874 736c6565 8390 00013878 70696e67 8390 0001387c 2070726f 8390 00013880 63657373 8390 00013884 210a00 8391 00013887 .text 8392 00007948 .align 2 8393 00007948 .proc _ProcessWakeup 8394 00007948 .global _ProcessWakeup 8395 00007948 _ProcessWakeup: 8396 ; Function 'ProcessWakeup'; 0 bytes of locals, 3 regs to save. 8397 00007948 afbefffc sw -4(r29),r30; push fp 8398 0000794c 001df020 add r30,r0,r29; fp = sp 8399 00007950 afbffff8 sw -8(r29),r31; push ret addr 8400 00007954 2fbd0018 subui r29,r29,#24; alloc local storage 8401 00007958 afa20000 sw 0(r29),r2 8402 0000795c afa30004 sw 4(r29),r3 8403 00007960 afa40008 sw 8(r29),r4 8404 00007964 8fc30000 lw r3,(r30) 8405 00007968 23bdfff8 addi r29,r29,#-8 8406 0000796c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8407 00007970 24424038 addui r2,r2,(_debugstr)&0xffff 8408 00007974 afa20000 sw (r29),r2 8409 00007978 20040070 addi r4,r0,#112 8410 0000797c afa40004 sw 4(r29),r4 8411 00007980 0fffec08 jal _dindex 8412 00007984 54000000 nop; not filled. 8413 00007988 23bd0008 addi r29,r29,#8 8414 0000798c 64210000 snei r1,r1,#0 8415 00007990 1420002c bnez r1,L159_LF7 8416 00007994 54000000 nop; not filled. 8417 00007998 23bdfff8 addi r29,r29,#-8 8418 0000799c afa20000 sw (r29),r2 8419 000079a0 2004002b addi r4,r0,#43 8420 000079a4 afa40004 sw 4(r29),r4 8421 000079a8 0fffebe0 jal _dindex 8422 000079ac 54000000 nop; not filled. 8423 000079b0 23bd0008 addi r29,r29,#8 8424 000079b4 64210000 snei r1,r1,#0 8425 000079b8 10200024 beqz r1,L158_LF7 8426 000079bc 54000000 nop; not filled. 8427 000079c0 L159_LF7: 8428 000079c0 23bdfff8 addi r29,r29,#-8 8429 000079c4 3c040001 lhi r4,((LC12_LF7)>>16)&0xffff 8430 000079c8 24843834 addui r4,r4,(LC12_LF7)&0xffff 8431 000079cc afa40000 sw (r29),r4 8432 000079d0 afa30004 sw 4(r29),r3 8433 000079d4 0c00584c jal _printf 8434 000079d8 54000000 nop; not filled. 8435 000079dc 23bd0008 addi r29,r29,#8 8436 000079e0 L158_LF7: 8437 000079e0 8064000f lb r4,15(r3) 8438 000079e4 58810002 srli r1,r4,#0x2 8439 000079e8 30210001 andi r1,r1,#1 8440 000079ec 14200038 bnez r1,L161_LF7 8441 000079f0 54000000 nop; not filled. 8442 000079f4 23bdfff0 addi r29,r29,#-16 8443 000079f8 3c040001 lhi r4,((LC9_LF7)>>16)&0xffff 8444 000079fc 248437f0 addui r4,r4,(LC9_LF7)&0xffff 8445 00007a00 afa40000 sw (r29),r4 8446 00007a04 3c010001 lhi r1,((LC13_LF7)>>16)&0xffff 8447 00007a08 2421384c addui r1,r1,(LC13_LF7)&0xffff 8448 00007a0c afa10004 sw 4(r29),r1 8449 00007a10 3c040001 lhi r4,((LC14_LF7)>>16)&0xffff 8450 00007a14 2484385c addui r4,r4,(LC14_LF7)&0xffff 8451 00007a18 afa40008 sw 8(r29),r4 8452 00007a1c 0c005804 jal _printf 8453 00007a20 54000000 nop; not filled. 8454 00007a24 23bd0010 addi r29,r29,#16 8455 00007a28 L161_LF7: 8456 00007a28 8c61000c lw r1,12(r3) 8457 00007a2c 2004ffc0 addi r4,r0,#-64 8458 00007a30 00240824 and r1,r1,r4 8459 00007a34 34210002 ori r1,r1,#2 8460 00007a38 ac61000c sw 12(r3),r1 8461 00007a3c 207f00a4 addi r31,r3,#164 8462 00007a40 8c6100ac lw r1,172(r3) 8463 00007a44 8c210008 lw r1,8(r1) 8464 00007a48 6c210000 sgti r1,r1,#0 8465 00007a4c 1020002c beqz r1,L164_LF7 8466 00007a50 54000000 nop; not filled. 8467 00007a54 8c6100a8 lw r1,168(r3) 8468 00007a58 8fe40000 lw r4,(r31) 8469 00007a5c ac240000 sw (r1),r4 8470 00007a60 8fe10000 lw r1,(r31) 8471 00007a64 8c6400a8 lw r4,168(r3) 8472 00007a68 ac240004 sw 4(r1),r4 8473 00007a6c 8c6200ac lw r2,172(r3) 8474 00007a70 8c410008 lw r1,8(r2) 8475 00007a74 2021ffff addi r1,r1,#-1 8476 00007a78 ac410008 sw 8(r2),r1 8477 00007a7c L164_LF7: 8478 00007a7c 20040000 addi r4,r0,#0 8479 00007a80 afe40000 sw (r31),r4 8480 00007a84 3c020001 lhi r2,((_runQueue_LF7)>>16)&0xffff 8481 00007a88 24424110 addui r2,r2,(_runQueue_LF7)&0xffff 8482 00007a8c 8c410004 lw r1,4(r2) 8483 00007a90 ac6200ac sw 172(r3),r2 8484 00007a94 ac6100a8 sw 168(r3),r1 8485 00007a98 8c240000 lw r4,(r1) 8486 00007a9c afe40000 sw (r31),r4 8487 00007aa0 ac3f0000 sw (r1),r31 8488 00007aa4 8fe10000 lw r1,(r31) 8489 00007aa8 ac3f0004 sw 4(r1),r31 8490 00007aac 8c410008 lw r1,8(r2) 8491 00007ab0 20210001 addi r1,r1,#1 8492 00007ab4 ac410008 sw 8(r2),r1 8493 00007ab8 8fa20000 lw r2,0(r29) 8494 00007abc 8fa30004 lw r3,4(r29) 8495 00007ac0 8fa40008 lw r4,8(r29) 8496 00007ac4 8fdffff8 lw r31,-8(r30) 8497 00007ac8 001ee820 add r29,r0,r30 8498 00007acc 8fdefffc lw r30,-4(r30) 8499 00007ad0 4be00000 jr r31 8500 00007ad4 54000000 nop 8501 00007ad8 .endproc _ProcessWakeup 8502 00007ad8 .data 8503 00013887 .align 2 8504 00013888 LC15_LF7: 8505 00013888 456e7465 .ascii "Entering ProcessDestroy for 0x%x.\n\000" 8505 0001388c 72696e67 8505 00013890 2050726f 8505 00013894 63657373 8505 00013898 44657374 8505 0001389c 726f7920 8505 000138a0 666f7220 8505 000138a4 30782578 8505 000138a8 2e0a00 8506 000138ab .align 2 8507 000138ac LC16_LF7: 8508 000138ac 4c656176 .ascii "Leaving ProcessDestroy for 0x%x.\n\000" 8508 000138b0 696e6720 8508 000138b4 50726f63 8508 000138b8 65737344 8508 000138bc 65737472 8508 000138c0 6f792066 8508 000138c4 6f722030 8508 000138c8 7825782e 8508 000138cc 0a00 8509 000138ce .text 8510 00007ad8 .align 2 8511 00007ad8 .proc _ProcessDestroy 8512 00007ad8 .global _ProcessDestroy 8513 00007ad8 _ProcessDestroy: 8514 ; Function 'ProcessDestroy'; 0 bytes of locals, 3 regs to save. 8515 00007ad8 afbefffc sw -4(r29),r30; push fp 8516 00007adc 001df020 add r30,r0,r29; fp = sp 8517 00007ae0 afbffff8 sw -8(r29),r31; push ret addr 8518 00007ae4 2fbd0018 subui r29,r29,#24; alloc local storage 8519 00007ae8 afa20000 sw 0(r29),r2 8520 00007aec afa30004 sw 4(r29),r3 8521 00007af0 afa40008 sw 8(r29),r4 8522 00007af4 8fc30000 lw r3,(r30) 8523 00007af8 23bdfff8 addi r29,r29,#-8 8524 00007afc 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8525 00007b00 24424038 addui r2,r2,(_debugstr)&0xffff 8526 00007b04 afa20000 sw (r29),r2 8527 00007b08 20040070 addi r4,r0,#112 8528 00007b0c afa40004 sw 4(r29),r4 8529 00007b10 0fffea78 jal _dindex 8530 00007b14 54000000 nop; not filled. 8531 00007b18 23bd0008 addi r29,r29,#8 8532 00007b1c 64210000 snei r1,r1,#0 8533 00007b20 1420002c bnez r1,L170_LF7 8534 00007b24 54000000 nop; not filled. 8535 00007b28 23bdfff8 addi r29,r29,#-8 8536 00007b2c afa20000 sw (r29),r2 8537 00007b30 2004002b addi r4,r0,#43 8538 00007b34 afa40004 sw 4(r29),r4 8539 00007b38 0fffea50 jal _dindex 8540 00007b3c 54000000 nop; not filled. 8541 00007b40 23bd0008 addi r29,r29,#8 8542 00007b44 64210000 snei r1,r1,#0 8543 00007b48 10200024 beqz r1,L169_LF7 8544 00007b4c 54000000 nop; not filled. 8545 00007b50 L170_LF7: 8546 00007b50 23bdfff8 addi r29,r29,#-8 8547 00007b54 3c040001 lhi r4,((LC15_LF7)>>16)&0xffff 8548 00007b58 24843888 addui r4,r4,(LC15_LF7)&0xffff 8549 00007b5c afa40000 sw (r29),r4 8550 00007b60 afa30004 sw 4(r29),r3 8551 00007b64 0c0056bc jal _printf 8552 00007b68 54000000 nop; not filled. 8553 00007b6c 23bd0008 addi r29,r29,#8 8554 00007b70 L169_LF7: 8555 00007b70 8c61000c lw r1,12(r3) 8556 00007b74 2004ffc0 addi r4,r0,#-64 8557 00007b78 00240824 and r1,r1,r4 8558 00007b7c 34210010 ori r1,r1,#16 8559 00007b80 ac61000c sw 12(r3),r1 8560 00007b84 207f00a4 addi r31,r3,#164 8561 00007b88 8c6100ac lw r1,172(r3) 8562 00007b8c 8c210008 lw r1,8(r1) 8563 00007b90 6c210000 sgti r1,r1,#0 8564 00007b94 1020002c beqz r1,L173_LF7 8565 00007b98 54000000 nop; not filled. 8566 00007b9c 8c6100a8 lw r1,168(r3) 8567 00007ba0 8fe40000 lw r4,(r31) 8568 00007ba4 ac240000 sw (r1),r4 8569 00007ba8 8fe10000 lw r1,(r31) 8570 00007bac 8c6400a8 lw r4,168(r3) 8571 00007bb0 ac240004 sw 4(r1),r4 8572 00007bb4 8c6200ac lw r2,172(r3) 8573 00007bb8 8c410008 lw r1,8(r2) 8574 00007bbc 2021ffff addi r1,r1,#-1 8575 00007bc0 ac410008 sw 8(r2),r1 8576 00007bc4 L173_LF7: 8577 00007bc4 20040000 addi r4,r0,#0 8578 00007bc8 afe40000 sw (r31),r4 8579 00007bcc 3c020001 lhi r2,((_zombieQueue_LF7)>>16)&0xffff 8580 00007bd0 24424128 addui r2,r2,(_zombieQueue_LF7)&0xffff 8581 00007bd4 ac6200ac sw 172(r3),r2 8582 00007bd8 ac6200a8 sw 168(r3),r2 8583 00007bdc 8c440000 lw r4,(r2) 8584 00007be0 afe40000 sw (r31),r4 8585 00007be4 ac5f0000 sw (r2),r31 8586 00007be8 8fe10000 lw r1,(r31) 8587 00007bec ac3f0004 sw 4(r1),r31 8588 00007bf0 8c410008 lw r1,8(r2) 8589 00007bf4 20210001 addi r1,r1,#1 8590 00007bf8 ac410008 sw 8(r2),r1 8591 00007bfc 23bdfff8 addi r29,r29,#-8 8592 00007c00 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8593 00007c04 24424038 addui r2,r2,(_debugstr)&0xffff 8594 00007c08 afa20000 sw (r29),r2 8595 00007c0c 20040070 addi r4,r0,#112 8596 00007c10 afa40004 sw 4(r29),r4 8597 00007c14 0fffe974 jal _dindex 8598 00007c18 54000000 nop; not filled. 8599 00007c1c 23bd0008 addi r29,r29,#8 8600 00007c20 64210000 snei r1,r1,#0 8601 00007c24 1420002c bnez r1,L177_LF7 8602 00007c28 54000000 nop; not filled. 8603 00007c2c 23bdfff8 addi r29,r29,#-8 8604 00007c30 afa20000 sw (r29),r2 8605 00007c34 2004002b addi r4,r0,#43 8606 00007c38 afa40004 sw 4(r29),r4 8607 00007c3c 0fffe94c jal _dindex 8608 00007c40 54000000 nop; not filled. 8609 00007c44 23bd0008 addi r29,r29,#8 8610 00007c48 64210000 snei r1,r1,#0 8611 00007c4c 10200024 beqz r1,L176_LF7 8612 00007c50 54000000 nop; not filled. 8613 00007c54 L177_LF7: 8614 00007c54 23bdfff8 addi r29,r29,#-8 8615 00007c58 3c040001 lhi r4,((LC16_LF7)>>16)&0xffff 8616 00007c5c 248438ac addui r4,r4,(LC16_LF7)&0xffff 8617 00007c60 afa40000 sw (r29),r4 8618 00007c64 afa30004 sw 4(r29),r3 8619 00007c68 0c0055b8 jal _printf 8620 00007c6c 54000000 nop; not filled. 8621 00007c70 23bd0008 addi r29,r29,#8 8622 00007c74 L176_LF7: 8623 00007c74 8fa20000 lw r2,0(r29) 8624 00007c78 8fa30004 lw r3,4(r29) 8625 00007c7c 8fa40008 lw r4,8(r29) 8626 00007c80 8fdffff8 lw r31,-8(r30) 8627 00007c84 001ee820 add r29,r0,r30 8628 00007c88 8fdefffc lw r30,-4(r30) 8629 00007c8c 4be00000 jr r31 8630 00007c90 54000000 nop 8631 00007c94 .endproc _ProcessDestroy 8632 00007c94 .data 8633 000138ce .align 2 8634 000138d0 _str52_LF7: 8635 000138d0 .space 4 8636 000138d4 .align 2 8637 000138d4 _location53_LF7: 8638 000138d4 00000000 .word 0 8639 000138d8 .text 8640 00007c94 .align 2 8641 00007c94 .proc _get_argument 8642 00007c94 .global _get_argument 8643 00007c94 _get_argument: 8644 ; Function 'get_argument'; 0 bytes of locals, 4 regs to save. 8645 00007c94 afbefffc sw -4(r29),r30; push fp 8646 00007c98 001df020 add r30,r0,r29; fp = sp 8647 00007c9c afbffff8 sw -8(r29),r31; push ret addr 8648 00007ca0 2fbd0018 subui r29,r29,#24; alloc local storage 8649 00007ca4 afa20000 sw 0(r29),r2 8650 00007ca8 afa30004 sw 4(r29),r3 8651 00007cac afa40008 sw 8(r29),r4 8652 00007cb0 afa5000c sw 12(r29),r5 8653 00007cb4 8fc20000 lw r2,(r30) 8654 00007cb8 64410000 snei r1,r2,#0 8655 00007cbc 10200020 beqz r1,L190_LF7 8656 00007cc0 54000000 nop; not filled. 8657 00007cc4 3c010001 lhi r1,((_str52_LF7)>>16)&0xffff 8658 00007cc8 242138d0 addui r1,r1,(_str52_LF7)&0xffff 8659 00007ccc ac220000 sw (r1),r2 8660 00007cd0 3c010001 lhi r1,((_location53_LF7)>>16)&0xffff 8661 00007cd4 242138d4 addui r1,r1,(_location53_LF7)&0xffff 8662 00007cd8 20050000 addi r5,r0,#0 8663 00007cdc ac250000 sw (r1),r5 8664 00007ce0 L190_LF7: 8665 00007ce0 3c1f0001 lhi r31,((_location53_LF7)>>16)&0xffff 8666 00007ce4 27ff38d4 addui r31,r31,(_location53_LF7)&0xffff 8667 00007ce8 8fe30000 lw r3,(r31) 8668 00007cec 3c010001 lhi r1,((_str52_LF7)>>16)&0xffff 8669 00007cf0 242138d0 addui r1,r1,(_str52_LF7)&0xffff 8670 00007cf4 8c220000 lw r2,(r1) 8671 00007cf8 00430820 add r1,r2,r3 8672 00007cfc 90210000 lbu r1,(r1) 8673 00007d00 64210000 snei r1,r1,#0 8674 00007d04 10200010 beqz r1,L192_LF7 8675 00007d08 54000000 nop; not filled. 8676 00007d0c 6c610062 sgti r1,r3,#98 8677 00007d10 10200020 beqz r1,L191_LF7 8678 00007d14 54000000 nop; not filled. 8679 00007d18 L192_LF7: 8680 00007d18 20010000 addi r1,r0,#0 8681 00007d1c 08000058 j L199_LF7 8682 00007d20 54000000 nop; not filled. 8683 00007d24 L200_LF7: 8684 00007d24 23e10001 addi r1,r31,#1 8685 00007d28 ac410000 sw (r2),r1 8686 00007d2c 08000044 j L194_LF7 8687 00007d30 54000000 nop; not filled. 8688 00007d34 L191_LF7: 8689 00007d34 70610063 slei r1,r3,#99 8690 00007d38 10200038 beqz r1,L194_LF7 8691 00007d3c 54000000 nop; not filled. 8692 00007d40 00022020 add r4,r0,r2 8693 00007d44 001f1020 add r2,r0,r31 8694 00007d48 L196_LF7: 8695 00007d48 8c5f0000 lw r31,(r2) 8696 00007d4c 009f0820 add r1,r4,r31 8697 00007d50 90210000 lbu r1,(r1) 8698 00007d54 64210000 snei r1,r1,#0 8699 00007d58 1020ffc8 beqz r1,L200_LF7 8700 00007d5c 54000000 nop; not filled. 8701 00007d60 23e10001 addi r1,r31,#1 8702 00007d64 ac410000 sw (r2),r1 8703 00007d68 70210063 slei r1,r1,#99 8704 00007d6c 1420ffd8 bnez r1,L196_LF7 8705 00007d70 54000000 nop; not filled. 8706 00007d74 L194_LF7: 8707 00007d74 00030820 add r1,r0,r3 8708 00007d78 L199_LF7: 8709 00007d78 8fa20000 lw r2,0(r29) 8710 00007d7c 8fa30004 lw r3,4(r29) 8711 00007d80 8fa40008 lw r4,8(r29) 8712 00007d84 8fa5000c lw r5,12(r29) 8713 00007d88 8fdffff8 lw r31,-8(r30) 8714 00007d8c 001ee820 add r29,r0,r30 8715 00007d90 8fdefffc lw r30,-4(r30) 8716 00007d94 4be00000 jr r31 8717 00007d98 54000000 nop 8718 00007d9c .endproc _get_argument 8719 00007d9c .data 8720 000138d8 .align 2 8721 000138d8 LC17_LF7: 8722 000138d8 4f6c6420 .ascii "Old interrupt value was 0x%x.\n\000" 8722 000138dc 696e7465 8722 000138e0 72727570 8722 000138e4 74207661 8722 000138e8 6c756520 8722 000138ec 77617320 8722 000138f0 30782578 8722 000138f4 2e0a00 8723 000138f7 .align 2 8724 000138f8 LC18_LF7: 8725 000138f8 456e7465 .ascii "Entering ProcessFork args=0x%x 0x%x %s %d\n\000" 8725 000138fc 72696e67 8725 00013900 2050726f 8725 00013904 63657373 8725 00013908 466f726b 8725 0001390c 20617267 8725 00013910 733d3078 8725 00013914 25782030 8725 00013918 78257820 8725 0001391c 25732025 8725 00013920 640a00 8726 00013923 .align 2 8727 00013924 LC19_LF7: 8728 00013924 46415441 .ascii "FATAL error: no free processes!\n\000" 8728 00013928 4c206572 8728 0001392c 726f723a 8728 00013930 206e6f20 8728 00013934 66726565 8728 00013938 2070726f 8728 0001393c 63657373 8728 00013940 6573210a 8728 00013944 00 8729 00013945 .align 2 8730 00013948 LC20_LF7: 8731 00013948 476f7420 .ascii "Got a link @ 0x%x\n\000" 8731 0001394c 61206c69 8731 00013950 6e6b2040 8731 00013954 20307825 8731 00013958 780a00 8732 0001395b .align 2 8733 0001395c LC21_LF7: 8734 0001395c 4265666f .ascii "Before restore interrupt value is 0x%x.\n\000" 8734 00013960 72652072 8734 00013964 6573746f 8734 00013968 72652069 8734 0001396c 6e746572 8734 00013970 72757074 8734 00013974 2076616c 8734 00013978 75652069 8734 0001397c 73203078 8734 00013980 25782e0a 8734 00013984 00 8735 00013985 .align 2 8736 00013988 LC22_LF7: 8737 00013988 4e657720 .ascii "New interrupt value is 0x%x.\n\000" 8737 0001398c 696e7465 8737 00013990 72727570 8737 00013994 74207661 8737 00013998 6c756520 8737 0001399c 69732030 8737 000139a0 7825782e 8737 000139a4 0a00 8738 000139a6 .align 2 8739 000139a8 LC23_LF7: 8740 000139a8 61464154 .ascii "aFATAL: couldn\'t allocate memory - no free pages!\n\000" 8740 000139ac 414c3a20 8740 000139b0 636f756c 8740 000139b4 646e2774 8740 000139b8 20616c6c 8740 000139bc 6f636174 8740 000139c0 65206d65 8740 000139c4 6d6f7279 8740 000139c8 202d206e 8740 000139cc 6f206672 8740 000139d0 65652070 8740 000139d4 61676573 8740 000139d8 210a00 8741 000139db .align 2 8742 000139dc LC24_LF7: 8743 000139dc 62464154 .ascii "bFATAL: couldn\'t allocate system stack - no free pages!\n\000" 8743 000139e0 414c3a20 8743 000139e4 636f756c 8743 000139e8 646e2774 8743 000139ec 20616c6c 8743 000139f0 6f636174 8743 000139f4 65207379 8743 000139f8 7374656d 8743 000139fc 20737461 8743 00013a00 636b202d 8743 00013a04 206e6f20 8743 00013a08 66726565 8743 00013a0c 20706167 8743 00013a10 6573210a 8743 00013a14 00 8744 00013a15 .align 2 8745 00013a18 LC25_LF7: 8746 00013a18 53657474 .ascii "Setting up PCB @ 0x%x (sys stack=0x%x, mem=0x%x, size=0x%x)\n\000" 8746 00013a1c 696e6720 8746 00013a20 75702050 8746 00013a24 43422040 8746 00013a28 20307825 8746 00013a2c 78202873 8746 00013a30 79732073 8746 00013a34 7461636b 8746 00013a38 3d307825 8746 00013a3c 782c206d 8746 00013a40 656d3d30 8746 00013a44 7825782c 8746 00013a48 2073697a 8746 00013a4c 653d3078 8746 00013a50 2578290a 8746 00013a54 00 8747 00013a55 .align 2 8748 00013a58 LC26_LF7: 8749 00013a58 41626f75 .ascii "About to load %s\n\000" 8749 00013a5c 7420746f 8749 00013a60 206c6f61 8749 00013a64 64202573 8749 00013a68 0a00 8750 00013a6a .align 2 8751 00013a6c LC27_LF7: 8752 00013a6c 46696c65 .ascii "File %s -> start=0x%08x\n\000" 8752 00013a70 20257320 8752 00013a74 2d3e2073 8752 00013a78 74617274 8752 00013a7c 3d307825 8752 00013a80 3038780a 8752 00013a84 00 8753 00013a85 .align 2 8754 00013a88 LC28_LF7: 8755 00013a88 46696c65 .ascii "File %s -> code @ 0x%08x (size=0x%08x)\n\000" 8755 00013a8c 20257320 8755 00013a90 2d3e2063 8755 00013a94 6f646520 8755 00013a98 40203078 8755 00013a9c 25303878 8755 00013aa0 20287369 8755 00013aa4 7a653d30 8755 00013aa8 78253038 8755 00013aac 78290a00 8756 00013ab0 .align 2 8757 00013ab0 LC29_LF7: 8758 00013ab0 46696c65 .ascii "File %s -> data @ 0x%08x (size=0x%08x)\n\000" 8758 00013ab4 20257320 8758 00013ab8 2d3e2064 8758 00013abc 61746120 8758 00013ac0 40203078 8758 00013ac4 25303878 8758 00013ac8 20287369 8758 00013acc 7a653d30 8758 00013ad0 78253038 8758 00013ad4 78290a00 8759 00013ad8 .align 2 8760 00013ad8 LC30_LF7: 8761 00013ad8 506c6163 .ascii "Placing %d bytes at vaddr %08x.\n\000" 8761 00013adc 696e6720 8761 00013ae0 25642062 8761 00013ae4 79746573 8761 00013ae8 20617420 8761 00013aec 76616464 8761 00013af0 72202530 8761 00013af4 38782e0a 8761 00013af8 00 8762 00013af9 .align 2 8763 00013afc LC31_LF7: 8764 00013afc 53657474 .ascii "Setting currentPCB=0x%x, stackframe=0x%x\n\000" 8764 00013b00 696e6720 8764 00013b04 63757272 8764 00013b08 656e7450 8764 00013b0c 43423d30 8764 00013b10 7825782c 8764 00013b14 20737461 8764 00013b18 636b6672 8764 00013b1c 616d653d 8764 00013b20 30782578 8764 00013b24 0a00 8765 00013b26 .align 2 8766 00013b28 LC32_LF7: 8767 00013b28 4c656176 .ascii "Leaving ProcessFork (%s)\n\000" 8767 00013b2c 696e6720 8767 00013b30 50726f63 8767 00013b34 65737346 8767 00013b38 6f726b20 8767 00013b3c 28257329 8767 00013b40 0a00 8768 00013b42 .text 8769 00007d9c .align 2 8770 00007d9c .proc _ProcessFork 8771 00007d9c .global _ProcessFork 8772 00007d9c _ProcessFork: 8773 ; Function 'ProcessFork'; 672 bytes of locals, 12 regs to save. 8774 00007d9c afbefffc sw -4(r29),r30; push fp 8775 00007da0 001df020 add r30,r0,r29; fp = sp 8776 00007da4 afbffff8 sw -8(r29),r31; push ret addr 8777 00007da8 2fbd02d8 subui r29,r29,#728; alloc local storage 8778 00007dac afa20000 sw 0(r29),r2 8779 00007db0 afa30004 sw 4(r29),r3 8780 00007db4 afa40008 sw 8(r29),r4 8781 00007db8 afa5000c sw 12(r29),r5 8782 00007dbc afa60010 sw 16(r29),r6 8783 00007dc0 afa70014 sw 20(r29),r7 8784 00007dc4 afa80018 sw 24(r29),r8 8785 00007dc8 afa9001c sw 28(r29),r9 8786 00007dcc afaa0020 sw 32(r29),r10 8787 00007dd0 afab0024 sw 36(r29),r11 8788 00007dd4 afac0028 sw 40(r29),r12 8789 00007dd8 afad002c sw 44(r29),r13 8790 00007ddc 8fc50000 lw r5,(r30) 8791 00007de0 8fca0004 lw r10,4(r30) 8792 00007de4 8fcc0010 lw r12,16(r30) 8793 00007de8 8fc40014 lw r4,20(r30) 8794 00007dec 200d0000 addi r13,r0,#0 8795 00007df0 afcdfd58 sw -680(r30),r13 8796 00007df4 23bdfff8 addi r29,r29,#-8 8797 00007df8 200d000f addi r13,r0,#15 8798 00007dfc afad0000 sw (r29),r13 8799 00007e00 0fff9484 jal _SetIntrs 8800 00007e04 54000000 nop; not filled. 8801 00007e08 00011820 add r3,r0,r1 8802 00007e0c 23bd0008 addi r29,r29,#8 8803 00007e10 23bdfff8 addi r29,r29,#-8 8804 00007e14 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8805 00007e18 24424038 addui r2,r2,(_debugstr)&0xffff 8806 00007e1c afa20000 sw (r29),r2 8807 00007e20 200d0049 addi r13,r0,#73 8808 00007e24 afad0004 sw 4(r29),r13 8809 00007e28 0fffe760 jal _dindex 8810 00007e2c 54000000 nop; not filled. 8811 00007e30 23bd0008 addi r29,r29,#8 8812 00007e34 64210000 snei r1,r1,#0 8813 00007e38 1420002c bnez r1,L204_LF7 8814 00007e3c 54000000 nop; not filled. 8815 00007e40 23bdfff8 addi r29,r29,#-8 8816 00007e44 afa20000 sw (r29),r2 8817 00007e48 200d002b addi r13,r0,#43 8818 00007e4c afad0004 sw 4(r29),r13 8819 00007e50 0fffe738 jal _dindex 8820 00007e54 54000000 nop; not filled. 8821 00007e58 23bd0008 addi r29,r29,#8 8822 00007e5c 64210000 snei r1,r1,#0 8823 00007e60 10200024 beqz r1,L203_LF7 8824 00007e64 54000000 nop; not filled. 8825 00007e68 L204_LF7: 8826 00007e68 23bdfff8 addi r29,r29,#-8 8827 00007e6c 3c0d0001 lhi r13,((LC17_LF7)>>16)&0xffff 8828 00007e70 25ad38d8 addui r13,r13,(LC17_LF7)&0xffff 8829 00007e74 afad0000 sw (r29),r13 8830 00007e78 afa30004 sw 4(r29),r3 8831 00007e7c 0c0053a4 jal _printf 8832 00007e80 54000000 nop; not filled. 8833 00007e84 23bd0008 addi r29,r29,#8 8834 00007e88 L203_LF7: 8835 00007e88 23bdfff8 addi r29,r29,#-8 8836 00007e8c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8837 00007e90 24424038 addui r2,r2,(_debugstr)&0xffff 8838 00007e94 afa20000 sw (r29),r2 8839 00007e98 200d0070 addi r13,r0,#112 8840 00007e9c afad0004 sw 4(r29),r13 8841 00007ea0 0fffe6e8 jal _dindex 8842 00007ea4 54000000 nop; not filled. 8843 00007ea8 23bd0008 addi r29,r29,#8 8844 00007eac 64210000 snei r1,r1,#0 8845 00007eb0 1420002c bnez r1,L206_LF7 8846 00007eb4 54000000 nop; not filled. 8847 00007eb8 23bdfff8 addi r29,r29,#-8 8848 00007ebc afa20000 sw (r29),r2 8849 00007ec0 200d002b addi r13,r0,#43 8850 00007ec4 afad0004 sw 4(r29),r13 8851 00007ec8 0fffe6c0 jal _dindex 8852 00007ecc 54000000 nop; not filled. 8853 00007ed0 23bd0008 addi r29,r29,#8 8854 00007ed4 64210000 snei r1,r1,#0 8855 00007ed8 10200030 beqz r1,L205_LF7 8856 00007edc 54000000 nop; not filled. 8857 00007ee0 L206_LF7: 8858 00007ee0 23bdffe8 addi r29,r29,#-24 8859 00007ee4 3c0d0001 lhi r13,((LC18_LF7)>>16)&0xffff 8860 00007ee8 25ad38f8 addui r13,r13,(LC18_LF7)&0xffff 8861 00007eec afad0000 sw (r29),r13 8862 00007ef0 afa50004 sw 4(r29),r5 8863 00007ef4 afaa0008 sw 8(r29),r10 8864 00007ef8 afac000c sw 12(r29),r12 8865 00007efc afa40010 sw 16(r29),r4 8866 00007f00 0c005320 jal _printf 8867 00007f04 54000000 nop; not filled. 8868 00007f08 23bd0018 addi r29,r29,#24 8869 00007f0c L205_LF7: 8870 00007f0c 3c020001 lhi r2,((_freepcbs_LF7)>>16)&0xffff 8871 00007f10 24424104 addui r2,r2,(_freepcbs_LF7)&0xffff 8872 00007f14 8c410008 lw r1,8(r2) 8873 00007f18 60210000 seqi r1,r1,#0 8874 00007f1c 10200028 beqz r1,L207_LF7 8875 00007f20 54000000 nop; not filled. 8876 00007f24 23bdfff8 addi r29,r29,#-8 8877 00007f28 3c0d0001 lhi r13,((LC19_LF7)>>16)&0xffff 8878 00007f2c 25ad3924 addui r13,r13,(LC19_LF7)&0xffff 8879 00007f30 afad0000 sw (r29),r13 8880 00007f34 0c0052ec jal _printf 8881 00007f38 54000000 nop; not filled. 8882 00007f3c 0c0052cc jal _exitsim 8883 00007f40 54000000 nop; not filled. 8884 00007f44 23bd0008 addi r29,r29,#8 8885 00007f48 L207_LF7: 8886 00007f48 8c490000 lw r9,(r2) 8887 00007f4c 23bdfff8 addi r29,r29,#-8 8888 00007f50 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8889 00007f54 24424038 addui r2,r2,(_debugstr)&0xffff 8890 00007f58 afa20000 sw (r29),r2 8891 00007f5c 200d0070 addi r13,r0,#112 8892 00007f60 afad0004 sw 4(r29),r13 8893 00007f64 0fffe624 jal _dindex 8894 00007f68 54000000 nop; not filled. 8895 00007f6c 23bd0008 addi r29,r29,#8 8896 00007f70 64210000 snei r1,r1,#0 8897 00007f74 1420002c bnez r1,L212_LF7 8898 00007f78 54000000 nop; not filled. 8899 00007f7c 23bdfff8 addi r29,r29,#-8 8900 00007f80 afa20000 sw (r29),r2 8901 00007f84 200d002b addi r13,r0,#43 8902 00007f88 afad0004 sw 4(r29),r13 8903 00007f8c 0fffe5fc jal _dindex 8904 00007f90 54000000 nop; not filled. 8905 00007f94 23bd0008 addi r29,r29,#8 8906 00007f98 64210000 snei r1,r1,#0 8907 00007f9c 10200024 beqz r1,L211_LF7 8908 00007fa0 54000000 nop; not filled. 8909 00007fa4 L212_LF7: 8910 00007fa4 23bdfff8 addi r29,r29,#-8 8911 00007fa8 3c0d0001 lhi r13,((LC20_LF7)>>16)&0xffff 8912 00007fac 25ad3948 addui r13,r13,(LC20_LF7)&0xffff 8913 00007fb0 afad0000 sw (r29),r13 8914 00007fb4 afa90004 sw 4(r29),r9 8915 00007fb8 0c005268 jal _printf 8916 00007fbc 54000000 nop; not filled. 8917 00007fc0 23bd0008 addi r29,r29,#8 8918 00007fc4 L211_LF7: 8919 00007fc4 8d210008 lw r1,8(r9) 8920 00007fc8 8c210008 lw r1,8(r1) 8921 00007fcc 6c210000 sgti r1,r1,#0 8922 00007fd0 1020002c beqz r1,L214_LF7 8923 00007fd4 54000000 nop; not filled. 8924 00007fd8 8d210004 lw r1,4(r9) 8925 00007fdc 8d2d0000 lw r13,(r9) 8926 00007fe0 ac2d0000 sw (r1),r13 8927 00007fe4 8d210000 lw r1,(r9) 8928 00007fe8 8d2d0004 lw r13,4(r9) 8929 00007fec ac2d0004 sw 4(r1),r13 8930 00007ff0 8d220008 lw r2,8(r9) 8931 00007ff4 8c410008 lw r1,8(r2) 8932 00007ff8 2021ffff addi r1,r1,#-1 8933 00007ffc ac410008 sw 8(r2),r1 8934 00008000 L214_LF7: 8935 00008000 200d0000 addi r13,r0,#0 8936 00008004 ad2d0000 sw (r9),r13 8937 00008008 8d26000c lw r6,12(r9) 8938 0000800c 8cc1000c lw r1,12(r6) 8939 00008010 200dffc0 addi r13,r0,#-64 8940 00008014 002d0824 and r1,r1,r13 8941 00008018 34210002 ori r1,r1,#2 8942 0000801c acc1000c sw 12(r6),r1 8943 00008020 23bdfff8 addi r29,r29,#-8 8944 00008024 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8945 00008028 24424038 addui r2,r2,(_debugstr)&0xffff 8946 0000802c afa20000 sw (r29),r2 8947 00008030 200d0049 addi r13,r0,#73 8948 00008034 afad0004 sw 4(r29),r13 8949 00008038 0fffe550 jal _dindex 8950 0000803c 54000000 nop; not filled. 8951 00008040 23bd0008 addi r29,r29,#8 8952 00008044 64210000 snei r1,r1,#0 8953 00008048 1420002c bnez r1,L217_LF7 8954 0000804c 54000000 nop; not filled. 8955 00008050 23bdfff8 addi r29,r29,#-8 8956 00008054 afa20000 sw (r29),r2 8957 00008058 200d002b addi r13,r0,#43 8958 0000805c afad0004 sw 4(r29),r13 8959 00008060 0fffe528 jal _dindex 8960 00008064 54000000 nop; not filled. 8961 00008068 23bd0008 addi r29,r29,#8 8962 0000806c 64210000 snei r1,r1,#0 8963 00008070 1020002c beqz r1,L216_LF7 8964 00008074 54000000 nop; not filled. 8965 00008078 L217_LF7: 8966 00008078 0fff9248 jal _CurrentIntrs 8967 0000807c 54000000 nop; not filled. 8968 00008080 23bdfff8 addi r29,r29,#-8 8969 00008084 3c0d0001 lhi r13,((LC21_LF7)>>16)&0xffff 8970 00008088 25ad395c addui r13,r13,(LC21_LF7)&0xffff 8971 0000808c afad0000 sw (r29),r13 8972 00008090 afa10004 sw 4(r29),r1 8973 00008094 0c00518c jal _printf 8974 00008098 54000000 nop; not filled. 8975 0000809c 23bd0008 addi r29,r29,#8 8976 000080a0 L216_LF7: 8977 000080a0 23bdfff8 addi r29,r29,#-8 8978 000080a4 afa30000 sw (r29),r3 8979 000080a8 0fff91dc jal _SetIntrs 8980 000080ac 54000000 nop; not filled. 8981 000080b0 23bd0008 addi r29,r29,#8 8982 000080b4 23bdfff8 addi r29,r29,#-8 8983 000080b8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 8984 000080bc 24424038 addui r2,r2,(_debugstr)&0xffff 8985 000080c0 afa20000 sw (r29),r2 8986 000080c4 200d0049 addi r13,r0,#73 8987 000080c8 afad0004 sw 4(r29),r13 8988 000080cc 0fffe4bc jal _dindex 8989 000080d0 54000000 nop; not filled. 8990 000080d4 23bd0008 addi r29,r29,#8 8991 000080d8 64210000 snei r1,r1,#0 8992 000080dc 1420002c bnez r1,L220_LF7 8993 000080e0 54000000 nop; not filled. 8994 000080e4 23bdfff8 addi r29,r29,#-8 8995 000080e8 afa20000 sw (r29),r2 8996 000080ec 200d002b addi r13,r0,#43 8997 000080f0 afad0004 sw 4(r29),r13 8998 000080f4 0fffe494 jal _dindex 8999 000080f8 54000000 nop; not filled. 9000 000080fc 23bd0008 addi r29,r29,#8 9001 00008100 64210000 snei r1,r1,#0 9002 00008104 1020002c beqz r1,L219_LF7 9003 00008108 54000000 nop; not filled. 9004 0000810c L220_LF7: 9005 0000810c 0fff91b4 jal _CurrentIntrs 9006 00008110 54000000 nop; not filled. 9007 00008114 23bdfff8 addi r29,r29,#-8 9008 00008118 3c0d0001 lhi r13,((LC22_LF7)>>16)&0xffff 9009 0000811c 25ad3988 addui r13,r13,(LC22_LF7)&0xffff 9010 00008120 afad0000 sw (r29),r13 9011 00008124 afa10004 sw 4(r29),r1 9012 00008128 0c0050f8 jal _printf 9013 0000812c 54000000 nop; not filled. 9014 00008130 23bd0008 addi r29,r29,#8 9015 00008134 L219_LF7: 9016 00008134 23bdfff8 addi r29,r29,#-8 9017 00008138 20c10010 addi r1,r6,#16 9018 0000813c afa10000 sw (r29),r1 9019 00008140 afac0004 sw 4(r29),r12 9020 00008144 0fffdf84 jal _dstrcpy 9021 00008148 54000000 nop; not filled. 9022 0000814c 200d0001 addi r13,r0,#1 9023 00008150 accd00a0 sw 160(r6),r13 9024 00008154 0fffd548 jal _MemoryAllocPage 9025 00008158 54000000 nop; not filled. 9026 0000815c 00011020 add r2,r0,r1 9027 00008160 23bd0008 addi r29,r29,#8 9028 00008164 64410000 snei r1,r2,#0 9029 00008168 14200028 bnez r1,L221_LF7 9030 0000816c 54000000 nop; not filled. 9031 00008170 23bdfff8 addi r29,r29,#-8 9032 00008174 3c0d0001 lhi r13,((LC23_LF7)>>16)&0xffff 9033 00008178 25ad39a8 addui r13,r13,(LC23_LF7)&0xffff 9034 0000817c afad0000 sw (r29),r13 9035 00008180 0c0050a0 jal _printf 9036 00008184 54000000 nop; not filled. 9037 00008188 0c005080 jal _exitsim 9038 0000818c 54000000 nop; not filled. 9039 00008190 23bd0008 addi r29,r29,#8 9040 00008194 L221_LF7: 9041 00008194 23bdfff8 addi r29,r29,#-8 9042 00008198 afa20000 sw (r29),r2 9043 0000819c 0fffdc64 jal _MemorySetupPte 9044 000081a0 54000000 nop; not filled. 9045 000081a4 acc10060 sw 96(r6),r1 9046 000081a8 0fffd4f4 jal _MemoryAllocPage 9047 000081ac 54000000 nop; not filled. 9048 000081b0 00011020 add r2,r0,r1 9049 000081b4 23bd0008 addi r29,r29,#8 9050 000081b8 64410000 snei r1,r2,#0 9051 000081bc 14200028 bnez r1,L222_LF7 9052 000081c0 54000000 nop; not filled. 9053 000081c4 23bdfff8 addi r29,r29,#-8 9054 000081c8 3c0d0001 lhi r13,((LC24_LF7)>>16)&0xffff 9055 000081cc 25ad39dc addui r13,r13,(LC24_LF7)&0xffff 9056 000081d0 afad0000 sw (r29),r13 9057 000081d4 0c00504c jal _printf 9058 000081d8 54000000 nop; not filled. 9059 000081dc 0c00502c jal _exitsim 9060 000081e0 54000000 nop; not filled. 9061 000081e4 23bd0008 addi r29,r29,#8 9062 000081e8 L222_LF7: 9063 000081e8 50410010 slli r1,r2,#0x10 9064 000081ec acc10008 sw 8(r6),r1 9065 000081f0 3428fe8c ori r8,r1,#65164 9066 000081f4 acc80004 sw 4(r6),r8 9067 000081f8 acc80000 sw (r6),r8 9068 000081fc 23bdfff8 addi r29,r29,#-8 9069 00008200 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9070 00008204 24424038 addui r2,r2,(_debugstr)&0xffff 9071 00008208 afa20000 sw (r29),r2 9072 0000820c 200d0070 addi r13,r0,#112 9073 00008210 afad0004 sw 4(r29),r13 9074 00008214 0fffe374 jal _dindex 9075 00008218 54000000 nop; not filled. 9076 0000821c 23bd0008 addi r29,r29,#8 9077 00008220 64210000 snei r1,r1,#0 9078 00008224 1420002c bnez r1,L224_LF7 9079 00008228 54000000 nop; not filled. 9080 0000822c 23bdfff8 addi r29,r29,#-8 9081 00008230 afa20000 sw (r29),r2 9082 00008234 200d002b addi r13,r0,#43 9083 00008238 afad0004 sw 4(r29),r13 9084 0000823c 0fffe34c jal _dindex 9085 00008240 54000000 nop; not filled. 9086 00008244 23bd0008 addi r29,r29,#8 9087 00008248 64210000 snei r1,r1,#0 9088 0000824c 10200040 beqz r1,L223_LF7 9089 00008250 54000000 nop; not filled. 9090 00008254 L224_LF7: 9091 00008254 23bdffe8 addi r29,r29,#-24 9092 00008258 3c0d0001 lhi r13,((LC25_LF7)>>16)&0xffff 9093 0000825c 25ad3a18 addui r13,r13,(LC25_LF7)&0xffff 9094 00008260 afad0000 sw (r29),r13 9095 00008264 afa60004 sw 4(r29),r6 9096 00008268 8ccd0008 lw r13,8(r6) 9097 0000826c afad0008 sw 8(r29),r13 9098 00008270 8ccd0060 lw r13,96(r6) 9099 00008274 afad000c sw 12(r29),r13 9100 00008278 8cc100a0 lw r1,160(r6) 9101 0000827c 50210010 slli r1,r1,#0x10 9102 00008280 afa10010 sw 16(r29),r1 9103 00008284 0c004f9c jal _printf 9104 00008288 54000000 nop; not filled. 9105 0000828c 23bd0018 addi r29,r29,#24 9106 00008290 L223_LF7: 9107 00008290 200d0000 addi r13,r0,#0 9108 00008294 ad0d0028 sw 40(r8),r13 9109 00008298 20c10060 addi r1,r6,#96 9110 0000829c ad010138 sw 312(r8),r1 9111 000082a0 8ccd00a0 lw r13,160(r6) 9112 000082a4 ad0d013c sw 316(r8),r13 9113 000082a8 3c010010 lhi r1,#16 9114 000082ac 24210010 addui r1,r1,#16 9115 000082b0 ad010140 sw 320(r8),r1 9116 000082b4 64810000 snei r1,r4,#0 9117 000082b8 1020067c beqz r1,L225_LF7 9118 000082bc 54000000 nop; not filled. 9119 000082c0 23bdfff8 addi r29,r29,#-8 9120 000082c4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9121 000082c8 24424038 addui r2,r2,(_debugstr)&0xffff 9122 000082cc afa20000 sw (r29),r2 9123 000082d0 200d0070 addi r13,r0,#112 9124 000082d4 afad0004 sw 4(r29),r13 9125 000082d8 0fffe2b0 jal _dindex 9126 000082dc 54000000 nop; not filled. 9127 000082e0 23bd0008 addi r29,r29,#8 9128 000082e4 64210000 snei r1,r1,#0 9129 000082e8 1420002c bnez r1,L227_LF7 9130 000082ec 54000000 nop; not filled. 9131 000082f0 23bdfff8 addi r29,r29,#-8 9132 000082f4 afa20000 sw (r29),r2 9133 000082f8 200d002b addi r13,r0,#43 9134 000082fc afad0004 sw 4(r29),r13 9135 00008300 0fffe288 jal _dindex 9136 00008304 54000000 nop; not filled. 9137 00008308 23bd0008 addi r29,r29,#8 9138 0000830c 64210000 snei r1,r1,#0 9139 00008310 10200024 beqz r1,L226_LF7 9140 00008314 54000000 nop; not filled. 9141 00008318 L227_LF7: 9142 00008318 23bdfff8 addi r29,r29,#-8 9143 0000831c 3c0d0001 lhi r13,((LC26_LF7)>>16)&0xffff 9144 00008320 25ad3a58 addui r13,r13,(LC26_LF7)&0xffff 9145 00008324 afad0000 sw (r29),r13 9146 00008328 afac0004 sw 4(r29),r12 9147 0000832c 0c004ef4 jal _printf 9148 00008330 54000000 nop; not filled. 9149 00008334 23bd0008 addi r29,r29,#8 9150 00008338 L226_LF7: 9151 00008338 23bdffe8 addi r29,r29,#-24 9152 0000833c afac0000 sw (r29),r12 9153 00008340 23c1fd6c addi r1,r30,#-660 9154 00008344 afa10004 sw 4(r29),r1 9155 00008348 23c1fd68 addi r1,r30,#-664 9156 0000834c afa10008 sw 8(r29),r1 9157 00008350 23c1fd64 addi r1,r30,#-668 9158 00008354 afa1000c sw 12(r29),r1 9159 00008358 23c1fd60 addi r1,r30,#-672 9160 0000835c afa10010 sw 16(r29),r1 9161 00008360 23c1fd5c addi r1,r30,#-676 9162 00008364 afa10014 sw 20(r29),r1 9163 00008368 0c0007e8 jal _ProcessGetCodeInfo 9164 0000836c 54000000 nop; not filled. 9165 00008370 00012820 add r5,r0,r1 9166 00008374 23bd0018 addi r29,r29,#24 9167 00008378 68a10000 slti r1,r5,#0 9168 0000837c 102000f8 beqz r1,L228_LF7 9169 00008380 54000000 nop; not filled. 9170 00008384 3c030001 lhi r3,((_freepcbs_LF7)>>16)&0xffff 9171 00008388 24634104 addui r3,r3,(_freepcbs_LF7)&0xffff 9172 0000838c 20c200a4 addi r2,r6,#164 9173 00008390 8c610004 lw r1,4(r3) 9174 00008394 acc300ac sw 172(r6),r3 9175 00008398 acc100a8 sw 168(r6),r1 9176 0000839c 8c2d0000 lw r13,(r1) 9177 000083a0 ac4d0000 sw (r2),r13 9178 000083a4 ac220000 sw (r1),r2 9179 000083a8 8c410000 lw r1,(r2) 9180 000083ac ac220004 sw 4(r1),r2 9181 000083b0 8c610008 lw r1,8(r3) 9182 000083b4 20210001 addi r1,r1,#1 9183 000083b8 ac610008 sw 8(r3),r1 9184 000083bc 8cc300a0 lw r3,160(r6) 9185 000083c0 20020000 addi r2,r0,#0 9186 000083c4 0043082a slt r1,r2,r3 9187 000083c8 10200030 beqz r1,L293_LF7 9188 000083cc 54000000 nop; not filled. 9189 000083d0 L236_LF7: 9190 000083d0 23bdfff8 addi r29,r29,#-8 9191 000083d4 afa60000 sw (r29),r6 9192 000083d8 afa20004 sw 4(r29),r2 9193 000083dc 0fff9914 jal _MemoryFreeSharedPte 9194 000083e0 54000000 nop; not filled. 9195 000083e4 23bd0008 addi r29,r29,#8 9196 000083e8 20420001 addi r2,r2,#1 9197 000083ec 0043082a slt r1,r2,r3 9198 000083f0 1420ffdc bnez r1,L236_LF7 9199 000083f4 54000000 nop; not filled. 9200 000083f8 20020000 addi r2,r0,#0 9201 000083fc L293_LF7: 9202 000083fc 8cc100a0 lw r1,160(r6) 9203 00008400 0041082a slt r1,r2,r1 9204 00008404 10200038 beqz r1,L239_LF7 9205 00008408 54000000 nop; not filled. 9206 0000840c 00061820 add r3,r0,r6 9207 00008410 L241_LF7: 9208 00008410 23bdfff8 addi r29,r29,#-8 9209 00008414 8c6d0060 lw r13,96(r3) 9210 00008418 afad0000 sw (r29),r13 9211 0000841c 0fffda14 jal _MemoryFreePte 9212 00008420 54000000 nop; not filled. 9213 00008424 23bd0008 addi r29,r29,#8 9214 00008428 20630004 addi r3,r3,#4 9215 0000842c 20420001 addi r2,r2,#1 9216 00008430 8cc100a0 lw r1,160(r6) 9217 00008434 0041082a slt r1,r2,r1 9218 00008438 1420ffd4 bnez r1,L241_LF7 9219 0000843c 54000000 nop; not filled. 9220 00008440 L239_LF7: 9221 00008440 23bdfff8 addi r29,r29,#-8 9222 00008444 94c10008 lhu r1,8(r6) 9223 00008448 afa10000 sw (r29),r1 9224 0000844c 0fffd518 jal _MemoryFreePage 9225 00008450 54000000 nop; not filled. 9226 00008454 23bd0008 addi r29,r29,#8 9227 00008458 8cc1000c lw r1,12(r6) 9228 0000845c 200dffc0 addi r13,r0,#-64 9229 00008460 002d0824 and r1,r1,r13 9230 00008464 34210001 ori r1,r1,#1 9231 00008468 acc1000c sw 12(r6),r1 9232 0000846c 2001ffff addi r1,r0,#-1 9233 00008470 0800069c j L290_LF7 9234 00008474 54000000 nop; not filled. 9235 00008478 L228_LF7: 9236 00008478 23bdfff8 addi r29,r29,#-8 9237 0000847c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9238 00008480 24424038 addui r2,r2,(_debugstr)&0xffff 9239 00008484 afa20000 sw (r29),r2 9240 00008488 200d0070 addi r13,r0,#112 9241 0000848c afad0004 sw 4(r29),r13 9242 00008490 0fffe0f8 jal _dindex 9243 00008494 54000000 nop; not filled. 9244 00008498 23bd0008 addi r29,r29,#8 9245 0000849c 64210000 snei r1,r1,#0 9246 000084a0 1420002c bnez r1,L245_LF7 9247 000084a4 54000000 nop; not filled. 9248 000084a8 23bdfff8 addi r29,r29,#-8 9249 000084ac afa20000 sw (r29),r2 9250 000084b0 200d002b addi r13,r0,#43 9251 000084b4 afad0004 sw 4(r29),r13 9252 000084b8 0fffe0d0 jal _dindex 9253 000084bc 54000000 nop; not filled. 9254 000084c0 23bd0008 addi r29,r29,#8 9255 000084c4 64210000 snei r1,r1,#0 9256 000084c8 1020002c beqz r1,L244_LF7 9257 000084cc 54000000 nop; not filled. 9258 000084d0 L245_LF7: 9259 000084d0 23bdfff0 addi r29,r29,#-16 9260 000084d4 3c0d0001 lhi r13,((LC27_LF7)>>16)&0xffff 9261 000084d8 25ad3a6c addui r13,r13,(LC27_LF7)&0xffff 9262 000084dc afad0000 sw (r29),r13 9263 000084e0 afac0004 sw 4(r29),r12 9264 000084e4 8fcdfd6c lw r13,-660(r30) 9265 000084e8 afad0008 sw 8(r29),r13 9266 000084ec 0c004d34 jal _printf 9267 000084f0 54000000 nop; not filled. 9268 000084f4 23bd0010 addi r29,r29,#16 9269 000084f8 L244_LF7: 9270 000084f8 23bdfff8 addi r29,r29,#-8 9271 000084fc 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9272 00008500 24424038 addui r2,r2,(_debugstr)&0xffff 9273 00008504 afa20000 sw (r29),r2 9274 00008508 200d0070 addi r13,r0,#112 9275 0000850c afad0004 sw 4(r29),r13 9276 00008510 0fffe078 jal _dindex 9277 00008514 54000000 nop; not filled. 9278 00008518 23bd0008 addi r29,r29,#8 9279 0000851c 64210000 snei r1,r1,#0 9280 00008520 1420002c bnez r1,L247_LF7 9281 00008524 54000000 nop; not filled. 9282 00008528 23bdfff8 addi r29,r29,#-8 9283 0000852c afa20000 sw (r29),r2 9284 00008530 200d002b addi r13,r0,#43 9285 00008534 afad0004 sw 4(r29),r13 9286 00008538 0fffe050 jal _dindex 9287 0000853c 54000000 nop; not filled. 9288 00008540 23bd0008 addi r29,r29,#8 9289 00008544 64210000 snei r1,r1,#0 9290 00008548 10200034 beqz r1,L246_LF7 9291 0000854c 54000000 nop; not filled. 9292 00008550 L247_LF7: 9293 00008550 23bdfff0 addi r29,r29,#-16 9294 00008554 3c0d0001 lhi r13,((LC28_LF7)>>16)&0xffff 9295 00008558 25ad3a88 addui r13,r13,(LC28_LF7)&0xffff 9296 0000855c afad0000 sw (r29),r13 9297 00008560 afac0004 sw 4(r29),r12 9298 00008564 8fcdfd68 lw r13,-664(r30) 9299 00008568 afad0008 sw 8(r29),r13 9300 0000856c 8fcdfd64 lw r13,-668(r30) 9301 00008570 afad000c sw 12(r29),r13 9302 00008574 0c004cac jal _printf 9303 00008578 54000000 nop; not filled. 9304 0000857c 23bd0010 addi r29,r29,#16 9305 00008580 L246_LF7: 9306 00008580 23bdfff8 addi r29,r29,#-8 9307 00008584 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9308 00008588 24424038 addui r2,r2,(_debugstr)&0xffff 9309 0000858c afa20000 sw (r29),r2 9310 00008590 200d0070 addi r13,r0,#112 9311 00008594 afad0004 sw 4(r29),r13 9312 00008598 0fffdff0 jal _dindex 9313 0000859c 54000000 nop; not filled. 9314 000085a0 23bd0008 addi r29,r29,#8 9315 000085a4 64210000 snei r1,r1,#0 9316 000085a8 1420002c bnez r1,L249_LF7 9317 000085ac 54000000 nop; not filled. 9318 000085b0 23bdfff8 addi r29,r29,#-8 9319 000085b4 afa20000 sw (r29),r2 9320 000085b8 200d002b addi r13,r0,#43 9321 000085bc afad0004 sw 4(r29),r13 9322 000085c0 0fffdfc8 jal _dindex 9323 000085c4 54000000 nop; not filled. 9324 000085c8 23bd0008 addi r29,r29,#8 9325 000085cc 64210000 snei r1,r1,#0 9326 000085d0 10200034 beqz r1,L248_LF7 9327 000085d4 54000000 nop; not filled. 9328 000085d8 L249_LF7: 9329 000085d8 23bdfff0 addi r29,r29,#-16 9330 000085dc 3c0d0001 lhi r13,((LC29_LF7)>>16)&0xffff 9331 000085e0 25ad3ab0 addui r13,r13,(LC29_LF7)&0xffff 9332 000085e4 afad0000 sw (r29),r13 9333 000085e8 afac0004 sw 4(r29),r12 9334 000085ec 8fcdfd60 lw r13,-672(r30) 9335 000085f0 afad0008 sw 8(r29),r13 9336 000085f4 8fcdfd5c lw r13,-676(r30) 9337 000085f8 afad000c sw 12(r29),r13 9338 000085fc 0c004c24 jal _printf 9339 00008600 54000000 nop; not filled. 9340 00008604 23bd0010 addi r29,r29,#16 9341 00008608 L248_LF7: 9342 00008608 23c3ff90 addi r3,r30,#-112 9343 0000860c 23c7fd58 addi r7,r30,#-680 9344 00008610 3c040001 lhi r4,((_debugstr)>>16)&0xffff 9345 00008614 24844038 addui r4,r4,(_debugstr)&0xffff 9346 00008618 L250_LF7: 9347 00008618 23bdfff0 addi r29,r29,#-16 9348 0000861c afa50000 sw (r29),r5 9349 00008620 afa30004 sw 4(r29),r3 9350 00008624 afa70008 sw 8(r29),r7 9351 00008628 200d0064 addi r13,r0,#100 9352 0000862c afad000c sw 12(r29),r13 9353 00008630 0c000980 jal _ProcessGetFromFile 9354 00008634 54000000 nop; not filled. 9355 00008638 00011020 add r2,r0,r1 9356 0000863c 23bd0010 addi r29,r29,#16 9357 00008640 6c410000 sgti r1,r2,#0 9358 00008644 102000b0 beqz r1,L251_LF7 9359 00008648 54000000 nop; not filled. 9360 0000864c 23bdfff8 addi r29,r29,#-8 9361 00008650 afa40000 sw (r29),r4 9362 00008654 200d0070 addi r13,r0,#112 9363 00008658 afad0004 sw 4(r29),r13 9364 0000865c 0fffdf2c jal _dindex 9365 00008660 54000000 nop; not filled. 9366 00008664 23bd0008 addi r29,r29,#8 9367 00008668 64210000 snei r1,r1,#0 9368 0000866c 1420002c bnez r1,L254_LF7 9369 00008670 54000000 nop; not filled. 9370 00008674 23bdfff8 addi r29,r29,#-8 9371 00008678 afa40000 sw (r29),r4 9372 0000867c 200d002b addi r13,r0,#43 9373 00008680 afad0004 sw 4(r29),r13 9374 00008684 0fffdf04 jal _dindex 9375 00008688 54000000 nop; not filled. 9376 0000868c 23bd0008 addi r29,r29,#8 9377 00008690 64210000 snei r1,r1,#0 9378 00008694 10200030 beqz r1,L253_LF7 9379 00008698 54000000 nop; not filled. 9380 0000869c L254_LF7: 9381 0000869c 23bdfff0 addi r29,r29,#-16 9382 000086a0 3c0d0001 lhi r13,((LC30_LF7)>>16)&0xffff 9383 000086a4 25ad3ad8 addui r13,r13,(LC30_LF7)&0xffff 9384 000086a8 afad0000 sw (r29),r13 9385 000086ac afa20004 sw 4(r29),r2 9386 000086b0 8fc1fd58 lw r1,-680(r30) 9387 000086b4 00220822 sub r1,r1,r2 9388 000086b8 afa10008 sw 8(r29),r1 9389 000086bc 0c004b64 jal _printf 9390 000086c0 54000000 nop; not filled. 9391 000086c4 23bd0010 addi r29,r29,#16 9392 000086c8 L253_LF7: 9393 000086c8 23bdfff0 addi r29,r29,#-16 9394 000086cc afa60000 sw (r29),r6 9395 000086d0 afa30004 sw 4(r29),r3 9396 000086d4 8fc1fd58 lw r1,-680(r30) 9397 000086d8 00220822 sub r1,r1,r2 9398 000086dc afa10008 sw 8(r29),r1 9399 000086e0 afa2000c sw 12(r29),r2 9400 000086e4 0fffd4cc jal _MemoryCopySystemToUser 9401 000086e8 54000000 nop; not filled. 9402 000086ec 23bd0010 addi r29,r29,#16 9403 000086f0 0bffff24 j L250_LF7 9404 000086f4 54000000 nop; not filled. 9405 000086f8 L251_LF7: 9406 000086f8 23bdfff8 addi r29,r29,#-8 9407 000086fc afa50000 sw (r29),r5 9408 00008700 0fffbb48 jal _FsClose 9409 00008704 54000000 nop; not filled. 9410 00008708 200d0100 addi r13,r0,#256 9411 0000870c ad0d012c sw 300(r8),r13 9412 00008710 240dfc00 addui r13,r0,#64512 9413 00008714 ad0d009c sw 156(r8),r13 9414 00008718 23bdfff8 addi r29,r29,#-8 9415 0000871c afa60000 sw (r29),r6 9416 00008720 afaa0004 sw 4(r29),r10 9417 00008724 8d0d009c lw r13,156(r8) 9418 00008728 afad0008 sw 8(r29),r13 9419 0000872c 200d03e0 addi r13,r0,#992 9420 00008730 afad000c sw 12(r29),r13 9421 00008734 0fffd47c jal _MemoryCopySystemToUser 9422 00008738 54000000 nop; not filled. 9423 0000873c 23bd0010 addi r29,r29,#16 9424 00008740 65410000 snei r1,r10,#0 9425 00008744 10200020 beqz r1,L256_LF7 9426 00008748 54000000 nop; not filled. 9427 0000874c 3c010001 lhi r1,((_str52_LF7)>>16)&0xffff 9428 00008750 242138d0 addui r1,r1,(_str52_LF7)&0xffff 9429 00008754 ac2a0000 sw (r1),r10 9430 00008758 3c010001 lhi r1,((_location53_LF7)>>16)&0xffff 9431 0000875c 242138d4 addui r1,r1,(_location53_LF7)&0xffff 9432 00008760 200d0000 addi r13,r0,#0 9433 00008764 ac2d0000 sw (r1),r13 9434 00008768 L256_LF7: 9435 00008768 3c030001 lhi r3,((_location53_LF7)>>16)&0xffff 9436 0000876c 246338d4 addui r3,r3,(_location53_LF7)&0xffff 9437 00008770 8c640000 lw r4,(r3) 9438 00008774 3c010001 lhi r1,((_str52_LF7)>>16)&0xffff 9439 00008778 242138d0 addui r1,r1,(_str52_LF7)&0xffff 9440 0000877c 8c220000 lw r2,(r1) 9441 00008780 00440820 add r1,r2,r4 9442 00008784 90210000 lbu r1,(r1) 9443 00008788 64210000 snei r1,r1,#0 9444 0000878c 10200010 beqz r1,L258_LF7 9445 00008790 54000000 nop; not filled. 9446 00008794 6c810062 sgti r1,r4,#98 9447 00008798 10200020 beqz r1,L257_LF7 9448 0000879c 54000000 nop; not filled. 9449 000087a0 L258_LF7: 9450 000087a0 20030000 addi r3,r0,#0 9451 000087a4 08000054 j L255_LF7 9452 000087a8 54000000 nop; not filled. 9453 000087ac L291_LF7: 9454 000087ac 20410001 addi r1,r2,#1 9455 000087b0 ac610000 sw (r3),r1 9456 000087b4 08000040 j L260_LF7 9457 000087b8 54000000 nop; not filled. 9458 000087bc L257_LF7: 9459 000087bc 70810063 slei r1,r4,#99 9460 000087c0 10200034 beqz r1,L260_LF7 9461 000087c4 54000000 nop; not filled. 9462 000087c8 00022820 add r5,r0,r2 9463 000087cc L262_LF7: 9464 000087cc 8c620000 lw r2,(r3) 9465 000087d0 00a20820 add r1,r5,r2 9466 000087d4 90210000 lbu r1,(r1) 9467 000087d8 64210000 snei r1,r1,#0 9468 000087dc 1020ffcc beqz r1,L291_LF7 9469 000087e0 54000000 nop; not filled. 9470 000087e4 20410001 addi r1,r2,#1 9471 000087e8 ac610000 sw (r3),r1 9472 000087ec 70210063 slei r1,r1,#99 9473 000087f0 1420ffd8 bnez r1,L262_LF7 9474 000087f4 54000000 nop; not filled. 9475 000087f8 L260_LF7: 9476 000087f8 00041820 add r3,r0,r4 9477 000087fc L255_LF7: 9478 000087fc 2402fc00 addui r2,r0,#64512 9479 00008800 00620820 add r1,r3,r2 9480 00008804 afc1fd78 sw -648(r30),r1 9481 00008808 20070003 addi r7,r0,#3 9482 0000880c 3c040001 lhi r4,((_location53_LF7)>>16)&0xffff 9483 00008810 248438d4 addui r4,r4,(_location53_LF7)&0xffff 9484 00008814 3c0b0001 lhi r11,((_str52_LF7)>>16)&0xffff 9485 00008818 256b38d0 addui r11,r11,(_str52_LF7)&0xffff 9486 0000881c 00025020 add r10,r0,r2 9487 00008820 23c50004 addi r5,r30,#4 9488 00008824 L265_LF7: 9489 00008824 8c9f0000 lw r31,(r4) 9490 00008828 8d630000 lw r3,(r11) 9491 0000882c 007f0820 add r1,r3,r31 9492 00008830 90210000 lbu r1,(r1) 9493 00008834 64210000 snei r1,r1,#0 9494 00008838 10200010 beqz r1,L271_LF7 9495 0000883c 54000000 nop; not filled. 9496 00008840 6fe10062 sgti r1,r31,#98 9497 00008844 10200020 beqz r1,L270_LF7 9498 00008848 54000000 nop; not filled. 9499 0000884c L271_LF7: 9500 0000884c 20030000 addi r3,r0,#0 9501 00008850 08000054 j L268_LF7 9502 00008854 54000000 nop; not filled. 9503 00008858 L292_LF7: 9504 00008858 20610001 addi r1,r3,#1 9505 0000885c ac810000 sw (r4),r1 9506 00008860 08000040 j L273_LF7 9507 00008864 54000000 nop; not filled. 9508 00008868 L270_LF7: 9509 00008868 73e10063 slei r1,r31,#99 9510 0000886c 10200034 beqz r1,L273_LF7 9511 00008870 54000000 nop; not filled. 9512 00008874 00031020 add r2,r0,r3 9513 00008878 L275_LF7: 9514 00008878 8c830000 lw r3,(r4) 9515 0000887c 00430820 add r1,r2,r3 9516 00008880 90210000 lbu r1,(r1) 9517 00008884 64210000 snei r1,r1,#0 9518 00008888 1020ffcc beqz r1,L292_LF7 9519 0000888c 54000000 nop; not filled. 9520 00008890 20610001 addi r1,r3,#1 9521 00008894 ac810000 sw (r4),r1 9522 00008898 70210063 slei r1,r1,#99 9523 0000889c 1420ffd8 bnez r1,L275_LF7 9524 000088a0 54000000 nop; not filled. 9525 000088a4 L273_LF7: 9526 000088a4 001f1820 add r3,r0,r31 9527 000088a8 L268_LF7: 9528 000088a8 006a0820 add r1,r3,r10 9529 000088ac aca1fd78 sw -648(r5),r1 9530 000088b0 64610000 snei r1,r3,#0 9531 000088b4 10200014 beqz r1,L266_LF7 9532 000088b8 54000000 nop; not filled. 9533 000088bc 20a50004 addi r5,r5,#4 9534 000088c0 20e70001 addi r7,r7,#1 9535 000088c4 0bffff5c j L265_LF7 9536 000088c8 54000000 nop; not filled. 9537 000088cc L266_LF7: 9538 000088cc 20e1fffe addi r1,r7,#-2 9539 000088d0 afc1fd70 sw -656(r30),r1 9540 000088d4 50210002 slli r1,r1,#0x2 9541 000088d8 01410822 sub r1,r10,r1 9542 000088dc afc1fd74 sw -652(r30),r1 9543 000088e0 23bdfff0 addi r29,r29,#-16 9544 000088e4 afa60000 sw (r29),r6 9545 000088e8 23c1fd70 addi r1,r30,#-656 9546 000088ec afa10004 sw 4(r29),r1 9547 000088f0 50e20002 slli r2,r7,#0x2 9548 000088f4 8d01009c lw r1,156(r8) 9549 000088f8 00220822 sub r1,r1,r2 9550 000088fc afa10008 sw 8(r29),r1 9551 00008900 afa2000c sw 12(r29),r2 9552 00008904 0fffd2ac jal _MemoryCopySystemToUser 9553 00008908 54000000 nop; not filled. 9554 0000890c 8d01009c lw r1,156(r8) 9555 00008910 00220822 sub r1,r1,r2 9556 00008914 ad01009c sw 156(r8),r1 9557 00008918 8fcdfd6c lw r13,-660(r30) 9558 0000891c ad0d0128 sw 296(r8),r13 9559 00008920 8cc1000c lw r1,12(r6) 9560 00008924 34210200 ori r1,r1,#512 9561 00008928 acc1000c sw 12(r6),r1 9562 0000892c 23bd0010 addi r29,r29,#16 9563 00008930 08000038 j L279_LF7 9564 00008934 54000000 nop; not filled. 9565 00008938 L225_LF7: 9566 00008938 3c0d0000 lhi r13,((_ProcessExit_LF7)>>16)&0xffff 9567 0000893c 25ada320 addui r13,r13,(_ProcessExit_LF7)&0xffff 9568 00008940 ad0d00a4 sw 164(r8),r13 9569 00008944 8cc10008 lw r1,8(r6) 9570 00008948 2421ffe0 addui r1,r1,#65504 9571 0000894c ad01009c sw 156(r8),r1 9572 00008950 ac2a0000 sw (r1),r10 9573 00008954 ad050128 sw 296(r8),r5 9574 00008958 200d0140 addi r13,r0,#320 9575 0000895c ad0d012c sw 300(r8),r13 9576 00008960 8cc1000c lw r1,12(r6) 9577 00008964 34210100 ori r1,r1,#256 9578 00008968 acc1000c sw 12(r6),r1 9579 0000896c L279_LF7: 9580 0000896c 23bdfff8 addi r29,r29,#-8 9581 00008970 200d000f addi r13,r0,#15 9582 00008974 afad0000 sw (r29),r13 9583 00008978 0fff890c jal _SetIntrs 9584 0000897c 54000000 nop; not filled. 9585 00008980 23bd0008 addi r29,r29,#8 9586 00008984 3c030001 lhi r3,((_runQueue_LF7)>>16)&0xffff 9587 00008988 24634110 addui r3,r3,(_runQueue_LF7)&0xffff 9588 0000898c 8c620004 lw r2,4(r3) 9589 00008990 ad230008 sw 8(r9),r3 9590 00008994 ad220004 sw 4(r9),r2 9591 00008998 8c4d0000 lw r13,(r2) 9592 0000899c ad2d0000 sw (r9),r13 9593 000089a0 ac490000 sw (r2),r9 9594 000089a4 8d220000 lw r2,(r9) 9595 000089a8 ac490004 sw 4(r2),r9 9596 000089ac 8c620008 lw r2,8(r3) 9597 000089b0 20420001 addi r2,r2,#1 9598 000089b4 ac620008 sw 8(r3),r2 9599 000089b8 23bdfff8 addi r29,r29,#-8 9600 000089bc afa10000 sw (r29),r1 9601 000089c0 0fff88c4 jal _SetIntrs 9602 000089c4 54000000 nop; not filled. 9603 000089c8 23bd0008 addi r29,r29,#8 9604 000089cc 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 9605 000089d0 24214100 addui r1,r1,(_currentPCB)&0xffff 9606 000089d4 8c210000 lw r1,(r1) 9607 000089d8 64210000 snei r1,r1,#0 9608 000089dc 14200090 bnez r1,L285_LF7 9609 000089e0 54000000 nop; not filled. 9610 000089e4 23bdfff8 addi r29,r29,#-8 9611 000089e8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9612 000089ec 24424038 addui r2,r2,(_debugstr)&0xffff 9613 000089f0 afa20000 sw (r29),r2 9614 000089f4 200d0070 addi r13,r0,#112 9615 000089f8 afad0004 sw 4(r29),r13 9616 000089fc 0fffdb8c jal _dindex 9617 00008a00 54000000 nop; not filled. 9618 00008a04 23bd0008 addi r29,r29,#8 9619 00008a08 64210000 snei r1,r1,#0 9620 00008a0c 1420002c bnez r1,L287_LF7 9621 00008a10 54000000 nop; not filled. 9622 00008a14 23bdfff8 addi r29,r29,#-8 9623 00008a18 afa20000 sw (r29),r2 9624 00008a1c 200d002b addi r13,r0,#43 9625 00008a20 afad0004 sw 4(r29),r13 9626 00008a24 0fffdb64 jal _dindex 9627 00008a28 54000000 nop; not filled. 9628 00008a2c 23bd0008 addi r29,r29,#8 9629 00008a30 64210000 snei r1,r1,#0 9630 00008a34 1020002c beqz r1,L286_LF7 9631 00008a38 54000000 nop; not filled. 9632 00008a3c L287_LF7: 9633 00008a3c 23bdfff0 addi r29,r29,#-16 9634 00008a40 3c0d0001 lhi r13,((LC31_LF7)>>16)&0xffff 9635 00008a44 25ad3afc addui r13,r13,(LC31_LF7)&0xffff 9636 00008a48 afad0000 sw (r29),r13 9637 00008a4c afa60004 sw 4(r29),r6 9638 00008a50 8ccd0000 lw r13,(r6) 9639 00008a54 afad0008 sw 8(r29),r13 9640 00008a58 0c0047c8 jal _printf 9641 00008a5c 54000000 nop; not filled. 9642 00008a60 23bd0010 addi r29,r29,#16 9643 00008a64 L286_LF7: 9644 00008a64 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 9645 00008a68 24214100 addui r1,r1,(_currentPCB)&0xffff 9646 00008a6c ac260000 sw (r1),r6 9647 00008a70 L285_LF7: 9648 00008a70 23bdfff8 addi r29,r29,#-8 9649 00008a74 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9650 00008a78 24424038 addui r2,r2,(_debugstr)&0xffff 9651 00008a7c afa20000 sw (r29),r2 9652 00008a80 200d0070 addi r13,r0,#112 9653 00008a84 afad0004 sw 4(r29),r13 9654 00008a88 0fffdb00 jal _dindex 9655 00008a8c 54000000 nop; not filled. 9656 00008a90 23bd0008 addi r29,r29,#8 9657 00008a94 64210000 snei r1,r1,#0 9658 00008a98 1420002c bnez r1,L289_LF7 9659 00008a9c 54000000 nop; not filled. 9660 00008aa0 23bdfff8 addi r29,r29,#-8 9661 00008aa4 afa20000 sw (r29),r2 9662 00008aa8 200d002b addi r13,r0,#43 9663 00008aac afad0004 sw 4(r29),r13 9664 00008ab0 0fffdad8 jal _dindex 9665 00008ab4 54000000 nop; not filled. 9666 00008ab8 23bd0008 addi r29,r29,#8 9667 00008abc 64210000 snei r1,r1,#0 9668 00008ac0 10200024 beqz r1,L288_LF7 9669 00008ac4 54000000 nop; not filled. 9670 00008ac8 L289_LF7: 9671 00008ac8 23bdfff8 addi r29,r29,#-8 9672 00008acc 3c0d0001 lhi r13,((LC32_LF7)>>16)&0xffff 9673 00008ad0 25ad3b28 addui r13,r13,(LC32_LF7)&0xffff 9674 00008ad4 afad0000 sw (r29),r13 9675 00008ad8 afac0004 sw 4(r29),r12 9676 00008adc 0c004744 jal _printf 9677 00008ae0 54000000 nop; not filled. 9678 00008ae4 23bd0008 addi r29,r29,#8 9679 00008ae8 L288_LF7: 9680 00008ae8 3c0d0001 lhi r13,((_pcbs_LF7)>>16)&0xffff 9681 00008aec 25ad4134 addui r13,r13,(_pcbs_LF7)&0xffff 9682 00008af0 00cd1022 sub r2,r6,r13 9683 00008af4 3c01a4fa lhi r1,#-23302 9684 00008af8 24214fa5 addui r1,r1,#20389 9685 00008afc 00400035 movi2fp f0,r2 9686 00008b00 00200835 movi2fp f1,r1 9687 00008b04 0401000e mult f0,f0,f1 9688 00008b08 00000834 movfp2i r1,f0 9689 00008b0c 5c210002 srai r1,r1,#0x2 9690 00008b10 L290_LF7: 9691 00008b10 8fa20000 lw r2,0(r29) 9692 00008b14 8fa30004 lw r3,4(r29) 9693 00008b18 8fa40008 lw r4,8(r29) 9694 00008b1c 8fa5000c lw r5,12(r29) 9695 00008b20 8fa60010 lw r6,16(r29) 9696 00008b24 8fa70014 lw r7,20(r29) 9697 00008b28 8fa80018 lw r8,24(r29) 9698 00008b2c 8fa9001c lw r9,28(r29) 9699 00008b30 8faa0020 lw r10,32(r29) 9700 00008b34 8fab0024 lw r11,36(r29) 9701 00008b38 8fac0028 lw r12,40(r29) 9702 00008b3c 8fad002c lw r13,44(r29) 9703 00008b40 8fdffff8 lw r31,-8(r30) 9704 00008b44 001ee820 add r29,r0,r30 9705 00008b48 8fdefffc lw r30,-4(r30) 9706 00008b4c 4be00000 jr r31 9707 00008b50 54000000 nop 9708 00008b54 .endproc _ProcessFork 9709 00008b54 .data 9710 00013b42 .align 2 9711 00013b44 LC33_LF7: 9712 00013b44 50726f63 .ascii "ProcessGetCodeInfo: open of %s failed (%d).\n\000" 9712 00013b48 65737347 9712 00013b4c 6574436f 9712 00013b50 6465496e 9712 00013b54 666f3a20 9712 00013b58 6f70656e 9712 00013b5c 206f6620 9712 00013b60 25732066 9712 00013b64 61696c65 9712 00013b68 64202825 9712 00013b6c 64292e0a 9712 00013b70 00 9713 00013b71 .align 2 9714 00013b74 LC34_LF7: 9715 00013b74 46696c65 .ascii "File descriptor is now %d.\n\000" 9715 00013b78 20646573 9715 00013b7c 63726970 9715 00013b80 746f7220 9715 00013b84 6973206e 9715 00013b88 6f772025 9715 00013b8c 642e0a00 9716 00013b90 .align 2 9717 00013b90 LC35_LF7: 9718 00013b90 50726f63 .ascii "ProcessGetCodeInfo: read got %d (not %d) bytes from %s\n\000" 9718 00013b94 65737347 9718 00013b98 6574436f 9718 00013b9c 6465496e 9718 00013ba0 666f3a20 9718 00013ba4 72656164 9718 00013ba8 20676f74 9718 00013bac 20256420 9718 00013bb0 286e6f74 9718 00013bb4 20256429 9718 00013bb8 20627974 9718 00013bbc 65732066 9718 00013bc0 726f6d20 9718 00013bc4 25730a00 9719 00013bc8 .align 2 9720 00013bc8 LC36_LF7: 9721 00013bc8 73746172 .ascii "start:\000" 9721 00013bcc 743a00 9722 00013bcf .align 2 9723 00013bd0 LC37_LF7: 9724 00013bd0 50726f63 .ascii "ProcessGetCodeInfo: %s missing start line (not a DLX executable?)\n\000" 9724 00013bd4 65737347 9724 00013bd8 6574436f 9724 00013bdc 6465496e 9724 00013be0 666f3a20 9724 00013be4 2573206d 9724 00013be8 69737369 9724 00013bec 6e672073 9724 00013bf0 74617274 9724 00013bf4 206c696e 9724 00013bf8 6520286e 9724 00013bfc 6f742061 9724 00013c00 20444c58 9724 00013c04 20657865 9724 00013c08 63757461 9724 00013c0c 626c653f 9724 00013c10 290a00 9725 00013c13 .text 9726 00008b54 .align 2 9727 00008b54 .proc _ProcessGetCodeInfo 9728 00008b54 .global _ProcessGetCodeInfo 9729 00008b54 _ProcessGetCodeInfo: 9730 ; Function 'ProcessGetCodeInfo'; 112 bytes of locals, 11 regs to save. 9731 00008b54 afbefffc sw -4(r29),r30; push fp 9732 00008b58 001df020 add r30,r0,r29; fp = sp 9733 00008b5c afbffff8 sw -8(r29),r31; push ret addr 9734 00008b60 2fbd00a8 subui r29,r29,#168; alloc local storage 9735 00008b64 afa20000 sw 0(r29),r2 9736 00008b68 afa30004 sw 4(r29),r3 9737 00008b6c afa40008 sw 8(r29),r4 9738 00008b70 afa5000c sw 12(r29),r5 9739 00008b74 afa60010 sw 16(r29),r6 9740 00008b78 afa70014 sw 20(r29),r7 9741 00008b7c afa80018 sw 24(r29),r8 9742 00008b80 afa9001c sw 28(r29),r9 9743 00008b84 afaa0020 sw 32(r29),r10 9744 00008b88 afab0024 sw 36(r29),r11 9745 00008b8c afac0028 sw 40(r29),r12 9746 00008b90 8fc60000 lw r6,(r30) 9747 00008b94 8fc70004 lw r7,4(r30) 9748 00008b98 8fc80008 lw r8,8(r30) 9749 00008b9c 8fc9000c lw r9,12(r30) 9750 00008ba0 8fca0010 lw r10,16(r30) 9751 00008ba4 8fcb0014 lw r11,20(r30) 9752 00008ba8 23bdfff8 addi r29,r29,#-8 9753 00008bac afa60000 sw (r29),r6 9754 00008bb0 200c0001 addi r12,r0,#1 9755 00008bb4 afac0004 sw 4(r29),r12 9756 00008bb8 0fffb334 jal _FsOpen 9757 00008bbc 54000000 nop; not filled. 9758 00008bc0 00011820 add r3,r0,r1 9759 00008bc4 23bd0008 addi r29,r29,#8 9760 00008bc8 68610000 slti r1,r3,#0 9761 00008bcc 10200088 beqz r1,L302_LF7 9762 00008bd0 54000000 nop; not filled. 9763 00008bd4 23bdfff8 addi r29,r29,#-8 9764 00008bd8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9765 00008bdc 24424038 addui r2,r2,(_debugstr)&0xffff 9766 00008be0 afa20000 sw (r29),r2 9767 00008be4 200c0066 addi r12,r0,#102 9768 00008be8 afac0004 sw 4(r29),r12 9769 00008bec 0fffd99c jal _dindex 9770 00008bf0 54000000 nop; not filled. 9771 00008bf4 23bd0008 addi r29,r29,#8 9772 00008bf8 64210000 snei r1,r1,#0 9773 00008bfc 1420002c bnez r1,L304_LF7 9774 00008c00 54000000 nop; not filled. 9775 00008c04 23bdfff8 addi r29,r29,#-8 9776 00008c08 afa20000 sw (r29),r2 9777 00008c0c 200c002b addi r12,r0,#43 9778 00008c10 afac0004 sw 4(r29),r12 9779 00008c14 0fffd974 jal _dindex 9780 00008c18 54000000 nop; not filled. 9781 00008c1c 23bd0008 addi r29,r29,#8 9782 00008c20 64210000 snei r1,r1,#0 9783 00008c24 10200224 beqz r1,L311_LF7 9784 00008c28 54000000 nop; not filled. 9785 00008c2c L304_LF7: 9786 00008c2c 23bdfff0 addi r29,r29,#-16 9787 00008c30 3c0c0001 lhi r12,((LC33_LF7)>>16)&0xffff 9788 00008c34 258c3b44 addui r12,r12,(LC33_LF7)&0xffff 9789 00008c38 afac0000 sw (r29),r12 9790 00008c3c afa60004 sw 4(r29),r6 9791 00008c40 afa30008 sw 8(r29),r3 9792 00008c44 0c0045dc jal _printf 9793 00008c48 54000000 nop; not filled. 9794 00008c4c 23bd0010 addi r29,r29,#16 9795 00008c50 080001f8 j L311_LF7 9796 00008c54 54000000 nop; not filled. 9797 00008c58 L302_LF7: 9798 00008c58 23bdfff8 addi r29,r29,#-8 9799 00008c5c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9800 00008c60 24424038 addui r2,r2,(_debugstr)&0xffff 9801 00008c64 afa20000 sw (r29),r2 9802 00008c68 200c0066 addi r12,r0,#102 9803 00008c6c afac0004 sw 4(r29),r12 9804 00008c70 0fffd918 jal _dindex 9805 00008c74 54000000 nop; not filled. 9806 00008c78 23bd0008 addi r29,r29,#8 9807 00008c7c 64210000 snei r1,r1,#0 9808 00008c80 1420002c bnez r1,L306_LF7 9809 00008c84 54000000 nop; not filled. 9810 00008c88 23bdfff8 addi r29,r29,#-8 9811 00008c8c afa20000 sw (r29),r2 9812 00008c90 200c002b addi r12,r0,#43 9813 00008c94 afac0004 sw 4(r29),r12 9814 00008c98 0fffd8f0 jal _dindex 9815 00008c9c 54000000 nop; not filled. 9816 00008ca0 23bd0008 addi r29,r29,#8 9817 00008ca4 64210000 snei r1,r1,#0 9818 00008ca8 10200024 beqz r1,L305_LF7 9819 00008cac 54000000 nop; not filled. 9820 00008cb0 L306_LF7: 9821 00008cb0 23bdfff8 addi r29,r29,#-8 9822 00008cb4 3c0c0001 lhi r12,((LC34_LF7)>>16)&0xffff 9823 00008cb8 258c3b74 addui r12,r12,(LC34_LF7)&0xffff 9824 00008cbc afac0000 sw (r29),r12 9825 00008cc0 afa30004 sw 4(r29),r3 9826 00008cc4 0c00455c jal _printf 9827 00008cc8 54000000 nop; not filled. 9828 00008ccc 23bd0008 addi r29,r29,#8 9829 00008cd0 L305_LF7: 9830 00008cd0 23bdfff0 addi r29,r29,#-16 9831 00008cd4 afa30000 sw (r29),r3 9832 00008cd8 23c4ff90 addi r4,r30,#-112 9833 00008cdc afa40004 sw 4(r29),r4 9834 00008ce0 200c0064 addi r12,r0,#100 9835 00008ce4 afac0008 sw 8(r29),r12 9836 00008ce8 0fffb668 jal _FsRead 9837 00008cec 54000000 nop; not filled. 9838 00008cf0 00012820 add r5,r0,r1 9839 00008cf4 23bd0010 addi r29,r29,#16 9840 00008cf8 64a10064 snei r1,r5,#100 9841 00008cfc 102000a8 beqz r1,L307_LF7 9842 00008d00 54000000 nop; not filled. 9843 00008d04 23bdfff8 addi r29,r29,#-8 9844 00008d08 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9845 00008d0c 24424038 addui r2,r2,(_debugstr)&0xffff 9846 00008d10 afa20000 sw (r29),r2 9847 00008d14 200c0066 addi r12,r0,#102 9848 00008d18 afac0004 sw 4(r29),r12 9849 00008d1c 0fffd86c jal _dindex 9850 00008d20 54000000 nop; not filled. 9851 00008d24 23bd0008 addi r29,r29,#8 9852 00008d28 64210000 snei r1,r1,#0 9853 00008d2c 1420002c bnez r1,L309_LF7 9854 00008d30 54000000 nop; not filled. 9855 00008d34 23bdfff8 addi r29,r29,#-8 9856 00008d38 afa20000 sw (r29),r2 9857 00008d3c 200c002b addi r12,r0,#43 9858 00008d40 afac0004 sw 4(r29),r12 9859 00008d44 0fffd844 jal _dindex 9860 00008d48 54000000 nop; not filled. 9861 00008d4c 23bd0008 addi r29,r29,#8 9862 00008d50 64210000 snei r1,r1,#0 9863 00008d54 10200030 beqz r1,L308_LF7 9864 00008d58 54000000 nop; not filled. 9865 00008d5c L309_LF7: 9866 00008d5c 23bdfff0 addi r29,r29,#-16 9867 00008d60 3c0c0001 lhi r12,((LC35_LF7)>>16)&0xffff 9868 00008d64 258c3b90 addui r12,r12,(LC35_LF7)&0xffff 9869 00008d68 afac0000 sw (r29),r12 9870 00008d6c afa50004 sw 4(r29),r5 9871 00008d70 200c0064 addi r12,r0,#100 9872 00008d74 afac0008 sw 8(r29),r12 9873 00008d78 afa6000c sw 12(r29),r6 9874 00008d7c 0c0044a4 jal _printf 9875 00008d80 54000000 nop; not filled. 9876 00008d84 23bd0010 addi r29,r29,#16 9877 00008d88 L308_LF7: 9878 00008d88 23bdfff8 addi r29,r29,#-8 9879 00008d8c afa30000 sw (r29),r3 9880 00008d90 0fffb4b8 jal _FsClose 9881 00008d94 54000000 nop; not filled. 9882 00008d98 2001ffff addi r1,r0,#-1 9883 00008d9c 23bd0008 addi r29,r29,#8 9884 00008da0 080001d0 j L301_LF7 9885 00008da4 54000000 nop; not filled. 9886 00008da8 L307_LF7: 9887 00008da8 23bdfff8 addi r29,r29,#-8 9888 00008dac afa40000 sw (r29),r4 9889 00008db0 3c010001 lhi r1,((LC36_LF7)>>16)&0xffff 9890 00008db4 24213bc8 addui r1,r1,(LC36_LF7)&0xffff 9891 00008db8 afa10004 sw 4(r29),r1 9892 00008dbc 0fffd5b4 jal _dstrstr 9893 00008dc0 54000000 nop; not filled. 9894 00008dc4 23bd0008 addi r29,r29,#8 9895 00008dc8 64210000 snei r1,r1,#0 9896 00008dcc 14200088 bnez r1,L310_LF7 9897 00008dd0 54000000 nop; not filled. 9898 00008dd4 23bdfff8 addi r29,r29,#-8 9899 00008dd8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 9900 00008ddc 24424038 addui r2,r2,(_debugstr)&0xffff 9901 00008de0 afa20000 sw (r29),r2 9902 00008de4 200c0066 addi r12,r0,#102 9903 00008de8 afac0004 sw 4(r29),r12 9904 00008dec 0fffd79c jal _dindex 9905 00008df0 54000000 nop; not filled. 9906 00008df4 23bd0008 addi r29,r29,#8 9907 00008df8 64210000 snei r1,r1,#0 9908 00008dfc 1420002c bnez r1,L312_LF7 9909 00008e00 54000000 nop; not filled. 9910 00008e04 23bdfff8 addi r29,r29,#-8 9911 00008e08 afa20000 sw (r29),r2 9912 00008e0c 200c002b addi r12,r0,#43 9913 00008e10 afac0004 sw 4(r29),r12 9914 00008e14 0fffd774 jal _dindex 9915 00008e18 54000000 nop; not filled. 9916 00008e1c 23bd0008 addi r29,r29,#8 9917 00008e20 64210000 snei r1,r1,#0 9918 00008e24 10200024 beqz r1,L311_LF7 9919 00008e28 54000000 nop; not filled. 9920 00008e2c L312_LF7: 9921 00008e2c 23bdfff8 addi r29,r29,#-8 9922 00008e30 3c0c0001 lhi r12,((LC37_LF7)>>16)&0xffff 9923 00008e34 258c3bd0 addui r12,r12,(LC37_LF7)&0xffff 9924 00008e38 afac0000 sw (r29),r12 9925 00008e3c afa60004 sw 4(r29),r6 9926 00008e40 0c0043e0 jal _printf 9927 00008e44 54000000 nop; not filled. 9928 00008e48 23bd0008 addi r29,r29,#8 9929 00008e4c L311_LF7: 9930 00008e4c 2001ffff addi r1,r0,#-1 9931 00008e50 08000120 j L301_LF7 9932 00008e54 54000000 nop; not filled. 9933 00008e58 L310_LF7: 9934 00008e58 23bdfff8 addi r29,r29,#-8 9935 00008e5c afa40000 sw (r29),r4 9936 00008e60 200c003a addi r12,r0,#58 9937 00008e64 afac0004 sw 4(r29),r12 9938 00008e68 0fffd720 jal _dindex 9939 00008e6c 54000000 nop; not filled. 9940 00008e70 20210001 addi r1,r1,#1 9941 00008e74 afc1ff8c sw -116(r30),r1 9942 00008e78 23bdfff8 addi r29,r29,#-8 9943 00008e7c afa10000 sw (r29),r1 9944 00008e80 23c2ff8c addi r2,r30,#-116 9945 00008e84 afa20004 sw 4(r29),r2 9946 00008e88 200c0010 addi r12,r0,#16 9947 00008e8c afac0008 sw 8(r29),r12 9948 00008e90 0fffd880 jal _dstrtol 9949 00008e94 54000000 nop; not filled. 9950 00008e98 ace10000 sw (r7),r1 9951 00008e9c 8fccff8c lw r12,-116(r30) 9952 00008ea0 afac0000 sw (r29),r12 9953 00008ea4 afa20004 sw 4(r29),r2 9954 00008ea8 200c0010 addi r12,r0,#16 9955 00008eac afac0008 sw 8(r29),r12 9956 00008eb0 0fffd860 jal _dstrtol 9957 00008eb4 54000000 nop; not filled. 9958 00008eb8 8fccff8c lw r12,-116(r30) 9959 00008ebc afac0000 sw (r29),r12 9960 00008ec0 afa20004 sw 4(r29),r2 9961 00008ec4 200c0010 addi r12,r0,#16 9962 00008ec8 afac0008 sw 8(r29),r12 9963 00008ecc 0fffd844 jal _dstrtol 9964 00008ed0 54000000 nop; not filled. 9965 00008ed4 ad010000 sw (r8),r1 9966 00008ed8 8fccff8c lw r12,-116(r30) 9967 00008edc afac0000 sw (r29),r12 9968 00008ee0 afa20004 sw 4(r29),r2 9969 00008ee4 200c0010 addi r12,r0,#16 9970 00008ee8 afac0008 sw 8(r29),r12 9971 00008eec 0fffd824 jal _dstrtol 9972 00008ef0 54000000 nop; not filled. 9973 00008ef4 ad210000 sw (r9),r1 9974 00008ef8 8fccff8c lw r12,-116(r30) 9975 00008efc afac0000 sw (r29),r12 9976 00008f00 afa20004 sw 4(r29),r2 9977 00008f04 200c0010 addi r12,r0,#16 9978 00008f08 afac0008 sw 8(r29),r12 9979 00008f0c 0fffd804 jal _dstrtol 9980 00008f10 54000000 nop; not filled. 9981 00008f14 ad410000 sw (r10),r1 9982 00008f18 8fccff8c lw r12,-116(r30) 9983 00008f1c afac0000 sw (r29),r12 9984 00008f20 afa20004 sw 4(r29),r2 9985 00008f24 200c0010 addi r12,r0,#16 9986 00008f28 afac0008 sw 8(r29),r12 9987 00008f2c 0fffd7e4 jal _dstrtol 9988 00008f30 54000000 nop; not filled. 9989 00008f34 ad610000 sw (r11),r1 9990 00008f38 afa40000 sw (r29),r4 9991 00008f3c 200c000a addi r12,r0,#10 9992 00008f40 afac0004 sw 4(r29),r12 9993 00008f44 0fffd644 jal _dindex 9994 00008f48 54000000 nop; not filled. 9995 00008f4c 23c2ff8f addi r2,r30,#-113 9996 00008f50 00220822 sub r1,r1,r2 9997 00008f54 afa30000 sw (r29),r3 9998 00008f58 afa10004 sw 4(r29),r1 9999 00008f5c 200c0000 addi r12,r0,#0 10000 00008f60 afac0008 sw 8(r29),r12 10001 00008f64 0fffb5e4 jal _FsSeek 10002 00008f68 54000000 nop; not filled. 10003 00008f6c 00030820 add r1,r0,r3 10004 00008f70 23bd0010 addi r29,r29,#16 10005 00008f74 L301_LF7: 10006 00008f74 8fa20000 lw r2,0(r29) 10007 00008f78 8fa30004 lw r3,4(r29) 10008 00008f7c 8fa40008 lw r4,8(r29) 10009 00008f80 8fa5000c lw r5,12(r29) 10010 00008f84 8fa60010 lw r6,16(r29) 10011 00008f88 8fa70014 lw r7,20(r29) 10012 00008f8c 8fa80018 lw r8,24(r29) 10013 00008f90 8fa9001c lw r9,28(r29) 10014 00008f94 8faa0020 lw r10,32(r29) 10015 00008f98 8fab0024 lw r11,36(r29) 10016 00008f9c 8fac0028 lw r12,40(r29) 10017 00008fa0 8fdffff8 lw r31,-8(r30) 10018 00008fa4 001ee820 add r29,r0,r30 10019 00008fa8 8fdefffc lw r30,-4(r30) 10020 00008fac 4be00000 jr r31 10021 00008fb0 54000000 nop 10022 00008fb4 .endproc _ProcessGetCodeInfo 10023 00008fb4 .data 10024 00013c13 .align 2 10025 00013c14 LC38_LF7: 10026 00013c14 476f7420 .ascii "Got %d bytes at offset %d ...\000" 10026 00013c18 25642062 10026 00013c1c 79746573 10026 00013c20 20617420 10026 00013c24 6f666673 10026 00013c28 65742025 10026 00013c2c 64202e2e 10026 00013c30 2e00 10027 00013c32 .align 2 10028 00013c34 LC39_LF7: 10029 00013c34 20746572 .ascii " terminated at %d.\n\000" 10029 00013c38 6d696e61 10029 00013c3c 74656420 10029 00013c40 61742025 10029 00013c44 642e0a00 10030 00013c48 .align 2 10031 00013c48 LC40_LF7: 10032 00013c48 42756666 .ascii "Buffer is \'%s\'\n\000" 10032 00013c4c 65722069 10032 00013c50 73202725 10032 00013c54 73270a00 10033 00013c58 .align 2 10034 00013c58 LC41_LF7: 10035 00013c58 4e657720 .ascii "New address is 0x%x.\n\000" 10035 00013c5c 61646472 10035 00013c60 65737320 10035 00013c64 69732030 10035 00013c68 7825782e 10035 00013c6c 0a00 10036 00013c6e .align 2 10037 00013c70 LC42_LF7: 10038 00013c70 5365656b .ascii "Seeking to %d and returning %d bytes!\n\000" 10038 00013c74 696e6720 10038 00013c78 746f2025 10038 00013c7c 6420616e 10038 00013c80 64207265 10038 00013c84 7475726e 10038 00013c88 696e6720 10038 00013c8c 25642062 10038 00013c90 79746573 10038 00013c94 210a00 10039 00013c97 .text 10040 00008fb4 .align 2 10041 00008fb4 .proc _ProcessGetFromFile 10042 00008fb4 .global _ProcessGetFromFile 10043 00008fb4 _ProcessGetFromFile: 10044 ; Function 'ProcessGetFromFile'; 216 bytes of locals, 11 regs to save. 10045 00008fb4 afbefffc sw -4(r29),r30; push fp 10046 00008fb8 001df020 add r30,r0,r29; fp = sp 10047 00008fbc afbffff8 sw -8(r29),r31; push ret addr 10048 00008fc0 2fbd0110 subui r29,r29,#272; alloc local storage 10049 00008fc4 afa20000 sw 0(r29),r2 10050 00008fc8 afa30004 sw 4(r29),r3 10051 00008fcc afa40008 sw 8(r29),r4 10052 00008fd0 afa5000c sw 12(r29),r5 10053 00008fd4 afa60010 sw 16(r29),r6 10054 00008fd8 afa70014 sw 20(r29),r7 10055 00008fdc afa80018 sw 24(r29),r8 10056 00008fe0 afa9001c sw 28(r29),r9 10057 00008fe4 afaa0020 sw 32(r29),r10 10058 00008fe8 afab0024 sw 36(r29),r11 10059 00008fec afac0028 sw 40(r29),r12 10060 00008ff0 8fca0000 lw r10,(r30) 10061 00008ff4 8fc70008 lw r7,8(r30) 10062 00008ff8 8fc2000c lw r2,12(r30) 10063 00008ffc 8fcb0004 lw r11,4(r30) 10064 00009000 23c3ff28 addi r3,r30,#-216 10065 00009004 afc3ff24 sw -220(r30),r3 10066 00009008 23bdfff0 addi r29,r29,#-16 10067 0000900c afaa0000 sw (r29),r10 10068 00009010 200c0000 addi r12,r0,#0 10069 00009014 afac0004 sw 4(r29),r12 10070 00009018 200c0001 addi r12,r0,#1 10071 0000901c afac0008 sw 8(r29),r12 10072 00009020 0fffb528 jal _FsSeek 10073 00009024 54000000 nop; not filled. 10074 00009028 00014820 add r9,r0,r1 10075 0000902c 50420001 slli r2,r2,#0x1 10076 00009030 23bd0010 addi r29,r29,#16 10077 00009034 6c4100c8 sgtui r1,r2,#200 10078 00009038 10200008 beqz r1,L315_LF7 10079 0000903c 54000000 nop; not filled. 10080 00009040 200200c8 addi r2,r0,#200 10081 00009044 L315_LF7: 10082 00009044 23bdfff0 addi r29,r29,#-16 10083 00009048 afaa0000 sw (r29),r10 10084 0000904c afa30004 sw 4(r29),r3 10085 00009050 afa20008 sw 8(r29),r2 10086 00009054 0fffb2fc jal _FsRead 10087 00009058 54000000 nop; not filled. 10088 0000905c 00012820 add r5,r0,r1 10089 00009060 23bd0010 addi r29,r29,#16 10090 00009064 70a10000 slei r1,r5,#0 10091 00009068 10200010 beqz r1,L316_LF7 10092 0000906c 54000000 nop; not filled. 10093 00009070 20010000 addi r1,r0,#0 10094 00009074 08000594 j L370_LF7 10095 00009078 54000000 nop; not filled. 10096 0000907c L316_LF7: 10097 0000907c 23bdfff8 addi r29,r29,#-8 10098 00009080 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10099 00009084 24424038 addui r2,r2,(_debugstr)&0xffff 10100 00009088 afa20000 sw (r29),r2 10101 0000908c 200c0066 addi r12,r0,#102 10102 00009090 afac0004 sw 4(r29),r12 10103 00009094 0fffd4f4 jal _dindex 10104 00009098 54000000 nop; not filled. 10105 0000909c 23bd0008 addi r29,r29,#8 10106 000090a0 64210000 snei r1,r1,#0 10107 000090a4 1420002c bnez r1,L318_LF7 10108 000090a8 54000000 nop; not filled. 10109 000090ac 23bdfff8 addi r29,r29,#-8 10110 000090b0 afa20000 sw (r29),r2 10111 000090b4 200c002b addi r12,r0,#43 10112 000090b8 afac0004 sw 4(r29),r12 10113 000090bc 0fffd4cc jal _dindex 10114 000090c0 54000000 nop; not filled. 10115 000090c4 23bd0008 addi r29,r29,#8 10116 000090c8 64210000 snei r1,r1,#0 10117 000090cc 10200028 beqz r1,L317_LF7 10118 000090d0 54000000 nop; not filled. 10119 000090d4 L318_LF7: 10120 000090d4 23bdfff0 addi r29,r29,#-16 10121 000090d8 3c0c0001 lhi r12,((LC38_LF7)>>16)&0xffff 10122 000090dc 258c3c14 addui r12,r12,(LC38_LF7)&0xffff 10123 000090e0 afac0000 sw (r29),r12 10124 000090e4 afa50004 sw 4(r29),r5 10125 000090e8 afa90008 sw 8(r29),r9 10126 000090ec 0c004134 jal _printf 10127 000090f0 54000000 nop; not filled. 10128 000090f4 23bd0010 addi r29,r29,#16 10129 000090f8 L317_LF7: 10130 000090f8 20a5ffff addi r5,r5,#-1 10131 000090fc 23c1ff28 addi r1,r30,#-216 10132 00009100 00251020 add r2,r1,r5 10133 00009104 0800000c j L373_LF7 10134 00009108 54000000 nop; not filled. 10135 0000910c L319_LF7: 10136 0000910c 2042ffff addi r2,r2,#-1 10137 00009110 20a5ffff addi r5,r5,#-1 10138 00009114 L373_LF7: 10139 00009114 90410000 lbu r1,(r2) 10140 00009118 6421000a snei r1,r1,#10 10141 0000911c 1420ffec bnez r1,L319_LF7 10142 00009120 54000000 nop; not filled. 10143 00009124 23c1ff29 addi r1,r30,#-215 10144 00009128 00250820 add r1,r1,r5 10145 0000912c 200c005a addi r12,r0,(#0x5a)&0xff 10146 00009130 a02c0000 sb (r1),r12 10147 00009134 23c1ff2a addi r1,r30,#-214 10148 00009138 00250820 add r1,r1,r5 10149 0000913c 200c0000 addi r12,r0,(#0x0)&0xff 10150 00009140 a02c0000 sb (r1),r12 10151 00009144 23bdfff8 addi r29,r29,#-8 10152 00009148 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10153 0000914c 24424038 addui r2,r2,(_debugstr)&0xffff 10154 00009150 afa20000 sw (r29),r2 10155 00009154 200c0066 addi r12,r0,#102 10156 00009158 afac0004 sw 4(r29),r12 10157 0000915c 0fffd42c jal _dindex 10158 00009160 54000000 nop; not filled. 10159 00009164 23bd0008 addi r29,r29,#8 10160 00009168 64210000 snei r1,r1,#0 10161 0000916c 1420002c bnez r1,L324_LF7 10162 00009170 54000000 nop; not filled. 10163 00009174 23bdfff8 addi r29,r29,#-8 10164 00009178 afa20000 sw (r29),r2 10165 0000917c 200c002b addi r12,r0,#43 10166 00009180 afac0004 sw 4(r29),r12 10167 00009184 0fffd404 jal _dindex 10168 00009188 54000000 nop; not filled. 10169 0000918c 23bd0008 addi r29,r29,#8 10170 00009190 64210000 snei r1,r1,#0 10171 00009194 10200024 beqz r1,L323_LF7 10172 00009198 54000000 nop; not filled. 10173 0000919c L324_LF7: 10174 0000919c 23bdfff8 addi r29,r29,#-8 10175 000091a0 3c0c0001 lhi r12,((LC39_LF7)>>16)&0xffff 10176 000091a4 258c3c34 addui r12,r12,(LC39_LF7)&0xffff 10177 000091a8 afac0000 sw (r29),r12 10178 000091ac afa50004 sw 4(r29),r5 10179 000091b0 0c004070 jal _printf 10180 000091b4 54000000 nop; not filled. 10181 000091b8 23bd0008 addi r29,r29,#8 10182 000091bc L323_LF7: 10183 000091bc 23bdfff8 addi r29,r29,#-8 10184 000091c0 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10185 000091c4 24424038 addui r2,r2,(_debugstr)&0xffff 10186 000091c8 afa20000 sw (r29),r2 10187 000091cc 200c0066 addi r12,r0,#102 10188 000091d0 afac0004 sw 4(r29),r12 10189 000091d4 0fffd3b4 jal _dindex 10190 000091d8 54000000 nop; not filled. 10191 000091dc 23bd0008 addi r29,r29,#8 10192 000091e0 64210000 snei r1,r1,#0 10193 000091e4 1420002c bnez r1,L326_LF7 10194 000091e8 54000000 nop; not filled. 10195 000091ec 23bdfff8 addi r29,r29,#-8 10196 000091f0 afa20000 sw (r29),r2 10197 000091f4 200c002b addi r12,r0,#43 10198 000091f8 afac0004 sw 4(r29),r12 10199 000091fc 0fffd38c jal _dindex 10200 00009200 54000000 nop; not filled. 10201 00009204 23bd0008 addi r29,r29,#8 10202 00009208 64210000 snei r1,r1,#0 10203 0000920c 10200028 beqz r1,L325_LF7 10204 00009210 54000000 nop; not filled. 10205 00009214 L326_LF7: 10206 00009214 23bdfff8 addi r29,r29,#-8 10207 00009218 3c0c0001 lhi r12,((LC40_LF7)>>16)&0xffff 10208 0000921c 258c3c48 addui r12,r12,(LC40_LF7)&0xffff 10209 00009220 afac0000 sw (r29),r12 10210 00009224 23c1ff28 addi r1,r30,#-216 10211 00009228 afa10004 sw 4(r29),r1 10212 0000922c 0c003ff4 jal _printf 10213 00009230 54000000 nop; not filled. 10214 00009234 23bd0008 addi r29,r29,#8 10215 00009238 L325_LF7: 10216 00009238 20050000 addi r5,r0,#0 10217 0000923c 3c080001 lhi r8,((_debugstr)>>16)&0xffff 10218 00009240 25084038 addui r8,r8,(_debugstr)&0xffff 10219 00009244 L327_LF7: 10220 00009244 23bdfff8 addi r29,r29,#-8 10221 00009248 8fccff24 lw r12,-220(r30) 10222 0000924c afac0000 sw (r29),r12 10223 00009250 200c005a addi r12,r0,#90 10224 00009254 afac0004 sw 4(r29),r12 10225 00009258 0fffd330 jal _dindex 10226 0000925c 54000000 nop; not filled. 10227 00009260 23bd0008 addi r29,r29,#8 10228 00009264 64210000 snei r1,r1,#0 10229 00009268 102002ec beqz r1,L328_LF7 10230 0000926c 54000000 nop; not filled. 10231 00009270 23bdfff8 addi r29,r29,#-8 10232 00009274 8fccff24 lw r12,-220(r30) 10233 00009278 afac0000 sw (r29),r12 10234 0000927c 200c003a addi r12,r0,#58 10235 00009280 afac0004 sw 4(r29),r12 10236 00009284 0fffd304 jal _dindex 10237 00009288 54000000 nop; not filled. 10238 0000928c 23bd0008 addi r29,r29,#8 10239 00009290 64210000 snei r1,r1,#0 10240 00009294 102002c0 beqz r1,L328_LF7 10241 00009298 54000000 nop; not filled. 10242 0000929c 8fc2ff24 lw r2,-220(r30) 10243 000092a0 90410000 lbu r1,(r2) 10244 000092a4 6421003a snei r1,r1,#58 10245 000092a8 102000b8 beqz r1,L372_LF7 10246 000092ac 54000000 nop; not filled. 10247 000092b0 6ca10000 sgti r1,r5,#0 10248 000092b4 142002a0 bnez r1,L328_LF7 10249 000092b8 54000000 nop; not filled. 10250 000092bc 23bdfff0 addi r29,r29,#-16 10251 000092c0 afa20000 sw (r29),r2 10252 000092c4 23c1ff24 addi r1,r30,#-220 10253 000092c8 afa10004 sw 4(r29),r1 10254 000092cc 200c0010 addi r12,r0,#16 10255 000092d0 afac0008 sw 8(r29),r12 10256 000092d4 0fffd43c jal _dstrtol 10257 000092d8 54000000 nop; not filled. 10258 000092dc ace10000 sw (r7),r1 10259 000092e0 afa80000 sw (r29),r8 10260 000092e4 200c0066 addi r12,r0,#102 10261 000092e8 afac0004 sw 4(r29),r12 10262 000092ec 0fffd29c jal _dindex 10263 000092f0 54000000 nop; not filled. 10264 000092f4 23bd0010 addi r29,r29,#16 10265 000092f8 64210000 snei r1,r1,#0 10266 000092fc 1420002c bnez r1,L334_LF7 10267 00009300 54000000 nop; not filled. 10268 00009304 23bdfff8 addi r29,r29,#-8 10269 00009308 afa80000 sw (r29),r8 10270 0000930c 200c002b addi r12,r0,#43 10271 00009310 afac0004 sw 4(r29),r12 10272 00009314 0fffd274 jal _dindex 10273 00009318 54000000 nop; not filled. 10274 0000931c 23bd0008 addi r29,r29,#8 10275 00009320 64210000 snei r1,r1,#0 10276 00009324 10200028 beqz r1,L331_LF7 10277 00009328 54000000 nop; not filled. 10278 0000932c L334_LF7: 10279 0000932c 23bdfff8 addi r29,r29,#-8 10280 00009330 3c0c0001 lhi r12,((LC41_LF7)>>16)&0xffff 10281 00009334 258c3c58 addui r12,r12,(LC41_LF7)&0xffff 10282 00009338 afac0000 sw (r29),r12 10283 0000933c 8ce10000 lw r1,(r7) 10284 00009340 afa10004 sw 4(r29),r1 10285 00009344 0c003edc jal _printf 10286 00009348 54000000 nop; not filled. 10287 0000934c 23bd0008 addi r29,r29,#8 10288 00009350 L331_LF7: 10289 00009350 8fc1ff24 lw r1,-220(r30) 10290 00009354 90210000 lbu r1,(r1) 10291 00009358 6421003a snei r1,r1,#58 10292 0000935c 142001f8 bnez r1,L328_LF7 10293 00009360 54000000 nop; not filled. 10294 00009364 L372_LF7: 10295 00009364 8fc1ff24 lw r1,-220(r30) 10296 00009368 20210001 addi r1,r1,#1 10297 0000936c afc1ff24 sw -220(r30),r1 10298 00009370 00ab3020 add r6,r5,r11 10299 00009374 L338_LF7: 10300 00009374 8fc1ff24 lw r1,-220(r30) 10301 00009378 08000010 j L374_LF7 10302 0000937c 54000000 nop; not filled. 10303 00009380 L341_LF7: 10304 00009380 8fc1ff24 lw r1,-220(r30) 10305 00009384 20210001 addi r1,r1,#1 10306 00009388 afc1ff24 sw -220(r30),r1 10307 0000938c L374_LF7: 10308 0000938c 903f0000 lbu r31,(r1) 10309 00009390 63e10020 seqi r1,r31,#32 10310 00009394 1420ffe8 bnez r1,L341_LF7 10311 00009398 54000000 nop; not filled. 10312 0000939c 63e10009 seqi r1,r31,#9 10313 000093a0 1420ffdc bnez r1,L341_LF7 10314 000093a4 54000000 nop; not filled. 10315 000093a8 8fc2ff24 lw r2,-220(r30) 10316 000093ac 805f0000 lb r31,(r2) 10317 000093b0 33e300ff andi r3,r31,#0x00ff 10318 000093b4 6061000a seqi r1,r3,#10 10319 000093b8 10200014 beqz r1,L343_LF7 10320 000093bc 54000000 nop; not filled. 10321 000093c0 20410001 addi r1,r2,#1 10322 000093c4 afc1ff24 sw -220(r30),r1 10323 000093c8 0bfffe78 j L327_LF7 10324 000093cc 54000000 nop; not filled. 10325 000093d0 L343_LF7: 10326 000093d0 20020000 addi r2,r0,#0 10327 000093d4 23e1ffd0 addi r1,r31,#-48 10328 000093d8 302100ff andi r1,r1,#0x00ff 10329 000093dc 70210009 sleui r1,r1,#9 10330 000093e0 14200024 bnez r1,L349_LF7 10331 000093e4 54000000 nop; not filled. 10332 000093e8 23e1ff9f addi r1,r31,#-97 10333 000093ec 302100ff andi r1,r1,#0x00ff 10334 000093f0 70210005 sleui r1,r1,#5 10335 000093f4 14200010 bnez r1,L349_LF7 10336 000093f8 54000000 nop; not filled. 10337 000093fc 64610041 snei r1,r3,#65 10338 00009400 14200008 bnez r1,L348_LF7 10339 00009404 54000000 nop; not filled. 10340 00009408 L349_LF7: 10341 00009408 20020001 addi r2,r0,#1 10342 0000940c L348_LF7: 10343 0000940c 64410000 snei r1,r2,#0 10344 00009410 1020fe30 beqz r1,L327_LF7 10345 00009414 54000000 nop; not filled. 10346 00009418 8fc1ff24 lw r1,-220(r30) 10347 0000941c 80220001 lb r2,1(r1) 10348 00009420 20030000 addi r3,r0,#0 10349 00009424 2041ffd0 addi r1,r2,#-48 10350 00009428 302100ff andi r1,r1,#0x00ff 10351 0000942c 70210009 sleui r1,r1,#9 10352 00009430 14200028 bnez r1,L352_LF7 10353 00009434 54000000 nop; not filled. 10354 00009438 2041ff9f addi r1,r2,#-97 10355 0000943c 302100ff andi r1,r1,#0x00ff 10356 00009440 70210005 sleui r1,r1,#5 10357 00009444 14200014 bnez r1,L352_LF7 10358 00009448 54000000 nop; not filled. 10359 0000944c 304100ff andi r1,r2,#0x00ff 10360 00009450 64210041 snei r1,r1,#65 10361 00009454 14200008 bnez r1,L351_LF7 10362 00009458 54000000 nop; not filled. 10363 0000945c L352_LF7: 10364 0000945c 20030001 addi r3,r0,#1 10365 00009460 L351_LF7: 10366 00009460 64610000 snei r1,r3,#0 10367 00009464 1020fddc beqz r1,L327_LF7 10368 00009468 54000000 nop; not filled. 10369 0000946c 8fc1ff24 lw r1,-220(r30) 10370 00009470 90220000 lbu r2,(r1) 10371 00009474 00021820 add r3,r0,r2 10372 00009478 205fffd0 addi r31,r2,#-48 10373 0000947c 73e10009 sleui r1,r31,#9 10374 00009480 10200010 beqz r1,L354_LF7 10375 00009484 54000000 nop; not filled. 10376 00009488 001f2020 add r4,r0,r31 10377 0000948c 08000038 j L353_LF7 10378 00009490 54000000 nop; not filled. 10379 00009494 L354_LF7: 10380 00009494 2041ff9f addi r1,r2,#-97 10381 00009498 70210005 sleui r1,r1,#5 10382 0000949c 10200010 beqz r1,L356_LF7 10383 000094a0 54000000 nop; not filled. 10384 000094a4 2044ffa9 addi r4,r2,#-87 10385 000094a8 0800001c j L353_LF7 10386 000094ac 54000000 nop; not filled. 10387 000094b0 L356_LF7: 10388 000094b0 2061ffbf addi r1,r3,#-65 10389 000094b4 70210005 sleui r1,r1,#5 10390 000094b8 20040000 addi r4,r0,#0 10391 000094bc 10200008 beqz r1,L353_LF7 10392 000094c0 54000000 nop; not filled. 10393 000094c4 2064ffc9 addi r4,r3,#-55 10394 000094c8 L353_LF7: 10395 000094c8 8fc1ff24 lw r1,-220(r30) 10396 000094cc 90220001 lbu r2,1(r1) 10397 000094d0 00021820 add r3,r0,r2 10398 000094d4 205fffd0 addi r31,r2,#-48 10399 000094d8 73e10009 sleui r1,r31,#9 10400 000094dc 10200010 beqz r1,L361_LF7 10401 000094e0 54000000 nop; not filled. 10402 000094e4 001f1020 add r2,r0,r31 10403 000094e8 08000038 j L360_LF7 10404 000094ec 54000000 nop; not filled. 10405 000094f0 L361_LF7: 10406 000094f0 2041ff9f addi r1,r2,#-97 10407 000094f4 70210005 sleui r1,r1,#5 10408 000094f8 10200010 beqz r1,L363_LF7 10409 000094fc 54000000 nop; not filled. 10410 00009500 2042ffa9 addi r2,r2,#-87 10411 00009504 0800001c j L360_LF7 10412 00009508 54000000 nop; not filled. 10413 0000950c L363_LF7: 10414 0000950c 2061ffbf addi r1,r3,#-65 10415 00009510 70210005 sleui r1,r1,#5 10416 00009514 20020000 addi r2,r0,#0 10417 00009518 10200008 beqz r1,L360_LF7 10418 0000951c 54000000 nop; not filled. 10419 00009520 2062ffc9 addi r2,r3,#-55 10420 00009524 L360_LF7: 10421 00009524 50810004 slli r1,r4,#0x4 10422 00009528 00220820 add r1,r1,r2 10423 0000952c a0c10000 sb (r6),r1 10424 00009530 20c60001 addi r6,r6,#1 10425 00009534 20a50001 addi r5,r5,#1 10426 00009538 8fc1ff24 lw r1,-220(r30) 10427 0000953c 20210002 addi r1,r1,#2 10428 00009540 afc1ff24 sw -220(r30),r1 10429 00009544 8ce10000 lw r1,(r7) 10430 00009548 20210001 addi r1,r1,#1 10431 0000954c ace10000 sw (r7),r1 10432 00009550 0bfffe20 j L338_LF7 10433 00009554 54000000 nop; not filled. 10434 00009558 L328_LF7: 10435 00009558 23bdfff0 addi r29,r29,#-16 10436 0000955c afaa0000 sw (r29),r10 10437 00009560 8fc1ff24 lw r1,-220(r30) 10438 00009564 00290820 add r1,r1,r9 10439 00009568 23c3ff28 addi r3,r30,#-216 10440 0000956c 00230822 sub r1,r1,r3 10441 00009570 afa10004 sw 4(r29),r1 10442 00009574 200c0000 addi r12,r0,#0 10443 00009578 afac0008 sw 8(r29),r12 10444 0000957c 0fffafcc jal _FsSeek 10445 00009580 54000000 nop; not filled. 10446 00009584 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10447 00009588 24424038 addui r2,r2,(_debugstr)&0xffff 10448 0000958c afa20000 sw (r29),r2 10449 00009590 200c0066 addi r12,r0,#102 10450 00009594 afac0004 sw 4(r29),r12 10451 00009598 0fffcff0 jal _dindex 10452 0000959c 54000000 nop; not filled. 10453 000095a0 23bd0010 addi r29,r29,#16 10454 000095a4 64210000 snei r1,r1,#0 10455 000095a8 1420002c bnez r1,L369_LF7 10456 000095ac 54000000 nop; not filled. 10457 000095b0 23bdfff8 addi r29,r29,#-8 10458 000095b4 afa20000 sw (r29),r2 10459 000095b8 200c002b addi r12,r0,#43 10460 000095bc afac0004 sw 4(r29),r12 10461 000095c0 0fffcfc8 jal _dindex 10462 000095c4 54000000 nop; not filled. 10463 000095c8 23bd0008 addi r29,r29,#8 10464 000095cc 64210000 snei r1,r1,#0 10465 000095d0 10200034 beqz r1,L368_LF7 10466 000095d4 54000000 nop; not filled. 10467 000095d8 L369_LF7: 10468 000095d8 23bdfff0 addi r29,r29,#-16 10469 000095dc 3c0c0001 lhi r12,((LC42_LF7)>>16)&0xffff 10470 000095e0 258c3c70 addui r12,r12,(LC42_LF7)&0xffff 10471 000095e4 afac0000 sw (r29),r12 10472 000095e8 8fc1ff24 lw r1,-220(r30) 10473 000095ec 00290820 add r1,r1,r9 10474 000095f0 00230822 sub r1,r1,r3 10475 000095f4 afa10004 sw 4(r29),r1 10476 000095f8 afa50008 sw 8(r29),r5 10477 000095fc 0c003c24 jal _printf 10478 00009600 54000000 nop; not filled. 10479 00009604 23bd0010 addi r29,r29,#16 10480 00009608 L368_LF7: 10481 00009608 00050820 add r1,r0,r5 10482 0000960c L370_LF7: 10483 0000960c 8fa20000 lw r2,0(r29) 10484 00009610 8fa30004 lw r3,4(r29) 10485 00009614 8fa40008 lw r4,8(r29) 10486 00009618 8fa5000c lw r5,12(r29) 10487 0000961c 8fa60010 lw r6,16(r29) 10488 00009620 8fa70014 lw r7,20(r29) 10489 00009624 8fa80018 lw r8,24(r29) 10490 00009628 8fa9001c lw r9,28(r29) 10491 0000962c 8faa0020 lw r10,32(r29) 10492 00009630 8fab0024 lw r11,36(r29) 10493 00009634 8fac0028 lw r12,40(r29) 10494 00009638 8fdffff8 lw r31,-8(r30) 10495 0000963c 001ee820 add r29,r0,r30 10496 00009640 8fdefffc lw r30,-4(r30) 10497 00009644 4be00000 jr r31 10498 00009648 54000000 nop 10499 0000964c .endproc _ProcessGetFromFile 10500 0000964c .data 10501 00013c97 .align 2 10502 00013c98 _temppcb64_LF7: 10503 00013c98 .space 180 10504 00013d4c .align 2 10505 00013d4c LC43_LF7: 10506 00013d4c 476f7420 .ascii "Got %d arguments.\n\000" 10506 00013d50 25642061 10506 00013d54 7267756d 10506 00013d58 656e7473 10506 00013d5c 2e0a00 10507 00013d5f .align 2 10508 00013d60 LC44_LF7: 10509 00013d60 41766169 .ascii "Available memory: 0x%x -> 0x%x.\n\000" 10509 00013d64 6c61626c 10509 00013d68 65206d65 10509 00013d6c 6d6f7279 10509 00013d70 3a203078 10509 00013d74 2578202d 10509 00013d78 3e203078 10509 00013d7c 25782e0a 10509 00013d80 00 10510 00013d81 .align 2 10511 00013d84 LC45_LF7: 10512 00013d84 41726775 .ascii "Argument count is %d.\n\000" 10512 00013d88 6d656e74 10512 00013d8c 20636f75 10512 00013d90 6e742069 10512 00013d94 73202564 10512 00013d98 2e0a00 10513 00013d9b .align 2 10514 00013d9c LC46_LF7: 10515 00013d9c 41726775 .ascii "Argument %d is %s.\n\000" 10515 00013da0 6d656e74 10515 00013da4 20256420 10515 00013da8 69732025 10515 00013dac 732e0a00 10516 00013db0 .align 2 10517 00013db0 LC47_LF7: 10518 00013db0 436f6e76 .ascii "Converted %s to %d=%s\n\000" 10518 00013db4 65727465 10518 00013db8 64202573 10518 00013dbc 20746f20 10518 00013dc0 25643d25 10518 00013dc4 730a00 10519 00013dc7 _buf65_LF7: 10520 00013dc7 .space 200 10521 00013e8f .align 2 10522 00013e90 LC48_LF7: 10523 00013e90 25303878 .ascii "%08x: %02x%02x%02x%02x\n\000" 10523 00013e94 3a202530 10523 00013e98 32782530 10523 00013e9c 32782530 10523 00013ea0 32782530 10523 00013ea4 32780a00 10524 00013ea8 .align 2 10525 00013ea8 LC49_LF7: 10526 00013ea8 4f707469 .ascii "Option %s not recognized.\n\000" 10526 00013eac 6f6e2025 10526 00013eb0 73206e6f 10526 00013eb4 74207265 10526 00013eb8 636f676e 10526 00013ebc 697a6564 10526 00013ec0 2e0a00 10527 00013ec3 .align 2 10528 00013ec4 LC50_LF7: 10529 00013ec4 41626f75 .ascii "About to initialize queues.\n\000" 10529 00013ec8 7420746f 10529 00013ecc 20696e69 10529 00013ed0 7469616c 10529 00013ed4 697a6520 10529 00013ed8 71756575 10529 00013edc 65732e0a 10529 00013ee0 00 10530 00013ee1 .align 2 10531 00013ee4 LC51_LF7: 10532 00013ee4 41667465 .ascii "After initializing queues.\n\000" 10532 00013ee8 7220696e 10532 00013eec 69746961 10532 00013ef0 6c697a69 10532 00013ef4 6e672071 10532 00013ef8 75657565 10532 00013efc 732e0a00 10533 00013f00 .align 2 10534 00013f00 LC52_LF7: 10535 00013f00 41667465 .ascii "After initializing memory.\n\000" 10535 00013f04 7220696e 10535 00013f08 69746961 10535 00013f0c 6c697a69 10535 00013f10 6e67206d 10535 00013f14 656d6f72 10535 00013f18 792e0a00 10536 00013f1c .align 2 10537 00013f1c LC53_LF7: 10538 00013f1c 41667465 .ascii "After initializing processes.\n\000" 10538 00013f20 7220696e 10538 00013f24 69746961 10538 00013f28 6c697a69 10538 00013f2c 6e672070 10538 00013f30 726f6365 10538 00013f34 73736573 10538 00013f38 2e0a00 10539 00013f3b .align 2 10540 00013f3c LC54_LF7: 10541 00013f3c 41667465 .ascii "After initializing shared memory.\n\000" 10541 00013f40 7220696e 10541 00013f44 69746961 10541 00013f48 6c697a69 10541 00013f4c 6e672073 10541 00013f50 68617265 10541 00013f54 64206d65 10541 00013f58 6d6f7279 10541 00013f5c 2e0a00 10542 00013f5f .align 2 10543 00013f60 LC55_LF7: 10544 00013f60 41667465 .ascii "After initializing synchronization tools.\n\000" 10544 00013f64 7220696e 10544 00013f68 69746961 10544 00013f6c 6c697a69 10544 00013f70 6e672073 10544 00013f74 796e6368 10544 00013f78 726f6e69 10544 00013f7c 7a617469 10544 00013f80 6f6e2074 10544 00013f84 6f6f6c73 10544 00013f88 2e0a00 10545 00013f8b .align 2 10546 00013f8c LC56_LF7: 10547 00013f8c 41667465 .ascii "After initializing keyboard.\n\000" 10547 00013f90 7220696e 10547 00013f94 69746961 10547 00013f98 6c697a69 10547 00013f9c 6e67206b 10547 00013fa0 6579626f 10547 00013fa4 6172642e 10547 00013fa8 0a00 10548 00013faa .align 2 10549 00013fac LC57_LF7: 10550 00013fac 766d00 .ascii "vm\000" 10551 00013faf .align 2 10552 00013fb0 LC58_LF7: 10553 00013fb0 564d2044 .ascii "VM Descriptor is %d\n\000" 10553 00013fb4 65736372 10553 00013fb8 6970746f 10553 00013fbc 72206973 10553 00013fc0 2025640a 10553 00013fc4 00 10554 00013fc5 .align 2 10555 00013fc8 LC59_LF7: 10556 00013fc8 43726561 .ascii "Created processes - about to set timer quantum.\n\000" 10556 00013fcc 74656420 10556 00013fd0 70726f63 10556 00013fd4 65737365 10556 00013fd8 73202d20 10556 00013fdc 61626f75 10556 00013fe0 7420746f 10556 00013fe4 20736574 10556 00013fe8 2074696d 10556 00013fec 65722071 10556 00013ff0 75616e74 10556 00013ff4 756d2e0a 10556 00013ff8 00 10557 00013ff9 .align 2 10558 00013ffc LC60_LF7: 10559 00013ffc 53657420 .ascii "Set timer quantum to %d, about to run first process.\n\000" 10559 00014000 74696d65 10559 00014004 72207175 10559 00014008 616e7475 10559 0001400c 6d20746f 10559 00014010 2025642c 10559 00014014 2061626f 10559 00014018 75742074 10559 0001401c 6f207275 10559 00014020 6e206669 10559 00014024 72737420 10559 00014028 70726f63 10559 0001402c 6573732e 10559 00014030 0a00 10560 00014032 .text 10561 0000964c .align 2 10562 0000964c .proc _main 10563 0000964c .global _main 10564 0000964c _main: 10565 ; Function 'main'; 192 bytes of locals, 0 regs to save. 10566 0000964c afbefffc sw -4(r29),r30; push fp 10567 00009650 001df020 add r30,r0,r29; fp = sp 10568 00009654 afbffff8 sw -8(r29),r31; push ret addr 10569 00009658 2fbd00c8 subui r29,r29,#200; alloc local storage 10570 0000965c 8fce0000 lw r14,(r30) 10571 00009660 8fd40004 lw r20,4(r30) 10572 00009664 0c003b24 jal ___main 10573 00009668 54000000 nop; not filled. 10574 0000966c 20100000 addi r16,r0,#0 10575 00009670 20150000 addi r21,r0,#0 10576 00009674 afd5ff50 sw -176(r30),r21 10577 00009678 afd5ff54 sw -172(r30),r21 10578 0000967c afd5ff58 sw -168(r30),r21 10579 00009680 afd5ff5c sw -164(r30),r21 10580 00009684 afd5ff60 sw -160(r30),r21 10581 00009688 afd5ff64 sw -156(r30),r21 10582 0000968c afd5ff68 sw -152(r30),r21 10583 00009690 afd5ff6c sw -148(r30),r21 10584 00009694 afd5ff70 sw -144(r30),r21 10585 00009698 afd5ff74 sw -140(r30),r21 10586 0000969c afd5ff78 sw -136(r30),r21 10587 000096a0 afd5ff7c sw -132(r30),r21 10588 000096a4 3c010001 lhi r1,((_debugstr)>>16)&0xffff 10589 000096a8 24214038 addui r1,r1,(_debugstr)&0xffff 10590 000096ac 20150000 addi r21,r0,(#0x0)&0xff 10591 000096b0 a0350000 sb (r1),r21 10592 000096b4 0c000a6c jal _MyFuncRetZero 10593 000096b8 54000000 nop; not filled. 10594 000096bc 23bdfff8 addi r29,r29,#-8 10595 000096c0 3c150001 lhi r21,((LC43_LF7)>>16)&0xffff 10596 000096c4 26b53d4c addui r21,r21,(LC43_LF7)&0xffff 10597 000096c8 afb50000 sw (r29),r21 10598 000096cc afae0004 sw 4(r29),r14 10599 000096d0 0c003b50 jal _printf 10600 000096d4 54000000 nop; not filled. 10601 000096d8 0fffba88 jal _MemoryGetSize 10602 000096dc 54000000 nop; not filled. 10603 000096e0 23bdfff8 addi r29,r29,#-8 10604 000096e4 3c150001 lhi r21,((LC44_LF7)>>16)&0xffff 10605 000096e8 26b53d60 addui r21,r21,(LC44_LF7)&0xffff 10606 000096ec afb50000 sw (r29),r21 10607 000096f0 3c020001 lhi r2,((_lastosaddress)>>16)&0xffff 10608 000096f4 244275b4 addui r2,r2,(_lastosaddress)&0xffff 10609 000096f8 8c420000 lw r2,(r2) 10610 000096fc afa20004 sw 4(r29),r2 10611 00009700 afa10008 sw 8(r29),r1 10612 00009704 0c003b1c jal _printf 10613 00009708 54000000 nop; not filled. 10614 0000970c 3c150001 lhi r21,((LC45_LF7)>>16)&0xffff 10615 00009710 26b53d84 addui r21,r21,(LC45_LF7)&0xffff 10616 00009714 afb50000 sw (r29),r21 10617 00009718 afae0004 sw 4(r29),r14 10618 0000971c 0c003b04 jal _printf 10619 00009720 54000000 nop; not filled. 10620 00009724 20090000 addi r9,r0,#0 10621 00009728 23bd0010 addi r29,r29,#16 10622 0000972c 012e082a slt r1,r9,r14 10623 00009730 10200044 beqz r1,L377_LF7 10624 00009734 54000000 nop; not filled. 10625 00009738 00141020 add r2,r0,r20 10626 0000973c L379_LF7: 10627 0000973c 23bdfff0 addi r29,r29,#-16 10628 00009740 3c150001 lhi r21,((LC46_LF7)>>16)&0xffff 10629 00009744 26b53d9c addui r21,r21,(LC46_LF7)&0xffff 10630 00009748 afb50000 sw (r29),r21 10631 0000974c afa90004 sw 4(r29),r9 10632 00009750 8c550000 lw r21,(r2) 10633 00009754 afb50008 sw 8(r29),r21 10634 00009758 0c003ac8 jal _printf 10635 0000975c 54000000 nop; not filled. 10636 00009760 23bd0010 addi r29,r29,#16 10637 00009764 20420004 addi r2,r2,#4 10638 00009768 21290001 addi r9,r9,#1 10639 0000976c 012e082a slt r1,r9,r14 10640 00009770 1420ffc8 bnez r1,L379_LF7 10641 00009774 54000000 nop; not filled. 10642 00009778 L377_LF7: 10643 00009778 0fffb45c jal _FsModuleInit 10644 0000977c 54000000 nop; not filled. 10645 00009780 20090000 addi r9,r0,#0 10646 00009784 012e082a slt r1,r9,r14 10647 00009788 1020033c beqz r1,L382_LF7 10648 0000978c 54000000 nop; not filled. 10649 00009790 23ccff80 addi r12,r30,#-128 10650 00009794 23cdff38 addi r13,r30,#-200 10651 00009798 3c0f0001 lhi r15,((_buf65_LF7)>>16)&0xffff 10652 0000979c 25ef3dc7 addui r15,r15,(_buf65_LF7)&0xffff 10653 000097a0 21f20001 addi r18,r15,#1 10654 000097a4 21f10002 addi r17,r15,#2 10655 000097a8 00144020 add r8,r0,r20 10656 000097ac L384_LF7: 10657 000097ac 8d020000 lw r2,(r8) 10658 000097b0 90410000 lbu r1,(r2) 10659 000097b4 6021002d seqi r1,r1,#45 10660 000097b8 102002f8 beqz r1,L383_LF7 10661 000097bc 54000000 nop; not filled. 10662 000097c0 90420001 lbu r2,1(r2) 10663 000097c4 60410066 seqi r1,r2,#102 10664 000097c8 142000e0 bnez r1,L389_LF7 10665 000097cc 54000000 nop; not filled. 10666 000097d0 6c410066 sgti r1,r2,#102 10667 000097d4 14200018 bnez r1,L401_LF7 10668 000097d8 54000000 nop; not filled. 10669 000097dc 60410044 seqi r1,r2,#68 10670 000097e0 102002a0 beqz r1,L399_LF7 10671 000097e4 54000000 nop; not filled. 10672 000097e8 08000024 j L387_LF7 10673 000097ec 54000000 nop; not filled. 10674 000097f0 L401_LF7: 10675 000097f0 60410069 seqi r1,r2,#105 10676 000097f4 14200048 bnez r1,L388_LF7 10677 000097f8 54000000 nop; not filled. 10678 000097fc 60410075 seqi r1,r2,#117 10679 00009800 10200280 beqz r1,L399_LF7 10680 00009804 54000000 nop; not filled. 10681 00009808 08000260 j L398_LF7 10682 0000980c 54000000 nop; not filled. 10683 00009810 L387_LF7: 10684 00009810 23bdfff8 addi r29,r29,#-8 10685 00009814 3c150001 lhi r21,((_debugstr)>>16)&0xffff 10686 00009818 26b54038 addui r21,r21,(_debugstr)&0xffff 10687 0000981c afb50000 sw (r29),r21 10688 00009820 21080004 addi r8,r8,#4 10689 00009824 21290001 addi r9,r9,#1 10690 00009828 8d010000 lw r1,(r8) 10691 0000982c afa10004 sw 4(r29),r1 10692 00009830 0fffc898 jal _dstrcpy 10693 00009834 54000000 nop; not filled. 10694 00009838 08000268 j L436_LF7 10695 0000983c 54000000 nop; not filled. 10696 00009840 L388_LF7: 10697 00009840 23bdfff0 addi r29,r29,#-16 10698 00009844 21080004 addi r8,r8,#4 10699 00009848 21290001 addi r9,r9,#1 10700 0000984c 8d150000 lw r21,(r8) 10701 00009850 afb50000 sw (r29),r21 10702 00009854 20150000 addi r21,r0,#0 10703 00009858 afb50004 sw 4(r29),r21 10704 0000985c afb50008 sw 8(r29),r21 10705 00009860 0fffceb0 jal _dstrtol 10706 00009864 54000000 nop; not filled. 10707 00009868 00011820 add r3,r0,r1 10708 0000986c afa10000 sw (r29),r1 10709 00009870 afac0004 sw 4(r29),r12 10710 00009874 0fffcd90 jal _ditoa 10711 00009878 54000000 nop; not filled. 10712 0000987c 3c150001 lhi r21,((LC47_LF7)>>16)&0xffff 10713 00009880 26b53db0 addui r21,r21,(LC47_LF7)&0xffff 10714 00009884 afb50000 sw (r29),r21 10715 00009888 8d010000 lw r1,(r8) 10716 0000988c afa10004 sw 4(r29),r1 10717 00009890 afa30008 sw 8(r29),r3 10718 00009894 afac000c sw 12(r29),r12 10719 00009898 0c003988 jal _printf 10720 0000989c 54000000 nop; not filled. 10721 000098a0 23bd0010 addi r29,r29,#16 10722 000098a4 08000200 j L386_LF7 10723 000098a8 54000000 nop; not filled. 10724 000098ac L389_LF7: 10725 000098ac 20150000 addi r21,r0,#0 10726 000098b0 afd5ff38 sw -200(r30),r21 10727 000098b4 23bdffe8 addi r29,r29,#-24 10728 000098b8 21080004 addi r8,r8,#4 10729 000098bc 21290001 addi r9,r9,#1 10730 000098c0 8d150000 lw r21,(r8) 10731 000098c4 afb50000 sw (r29),r21 10732 000098c8 23c1ff4c addi r1,r30,#-180 10733 000098cc afa10004 sw 4(r29),r1 10734 000098d0 23c1ff48 addi r1,r30,#-184 10735 000098d4 afa10008 sw 8(r29),r1 10736 000098d8 23c1ff44 addi r1,r30,#-188 10737 000098dc afa1000c sw 12(r29),r1 10738 000098e0 23c1ff40 addi r1,r30,#-192 10739 000098e4 afa10010 sw 16(r29),r1 10740 000098e8 23c1ff3c addi r1,r30,#-196 10741 000098ec afa10014 sw 20(r29),r1 10742 000098f0 0ffff260 jal _ProcessGetCodeInfo 10743 000098f4 54000000 nop; not filled. 10744 000098f8 00015020 add r10,r0,r1 10745 000098fc 3c150001 lhi r21,((LC27_LF7)>>16)&0xffff 10746 00009900 26b53a6c addui r21,r21,(LC27_LF7)&0xffff 10747 00009904 afb50000 sw (r29),r21 10748 00009908 8d010000 lw r1,(r8) 10749 0000990c afa10004 sw 4(r29),r1 10750 00009910 8fd5ff4c lw r21,-180(r30) 10751 00009914 afb50008 sw 8(r29),r21 10752 00009918 0c003908 jal _printf 10753 0000991c 54000000 nop; not filled. 10754 00009920 3c150001 lhi r21,((LC28_LF7)>>16)&0xffff 10755 00009924 26b53a88 addui r21,r21,(LC28_LF7)&0xffff 10756 00009928 afb50000 sw (r29),r21 10757 0000992c 8d010000 lw r1,(r8) 10758 00009930 afa10004 sw 4(r29),r1 10759 00009934 8fd5ff48 lw r21,-184(r30) 10760 00009938 afb50008 sw 8(r29),r21 10761 0000993c 8fd5ff44 lw r21,-188(r30) 10762 00009940 afb5000c sw 12(r29),r21 10763 00009944 0c0038dc jal _printf 10764 00009948 54000000 nop; not filled. 10765 0000994c 3c150001 lhi r21,((LC29_LF7)>>16)&0xffff 10766 00009950 26b53ab0 addui r21,r21,(LC29_LF7)&0xffff 10767 00009954 afb50000 sw (r29),r21 10768 00009958 8d010000 lw r1,(r8) 10769 0000995c afa10004 sw 4(r29),r1 10770 00009960 8fd5ff40 lw r21,-192(r30) 10771 00009964 afb50008 sw 8(r29),r21 10772 00009968 8fd5ff3c lw r21,-196(r30) 10773 0000996c afb5000c sw 12(r29),r21 10774 00009970 0c0038b0 jal _printf 10775 00009974 54000000 nop; not filled. 10776 00009978 23bd0018 addi r29,r29,#24 10777 0000997c 3c0b0001 lhi r11,((_buf65_LF7+3)>>16)&0xffff 10778 00009980 256b3dca addui r11,r11,(_buf65_LF7+3)&0xffff 10779 00009984 L390_LF7: 10780 00009984 23bdfff0 addi r29,r29,#-16 10781 00009988 afaa0000 sw (r29),r10 10782 0000998c 3c150001 lhi r21,((_buf65_LF7)>>16)&0xffff 10783 00009990 26b53dc7 addui r21,r21,(_buf65_LF7)&0xffff 10784 00009994 afb50004 sw 4(r29),r21 10785 00009998 afad0008 sw 8(r29),r13 10786 0000999c 201500c8 addi r21,r0,#200 10787 000099a0 afb5000c sw 12(r29),r21 10788 000099a4 0ffff60c jal _ProcessGetFromFile 10789 000099a8 54000000 nop; not filled. 10790 000099ac 00011820 add r3,r0,r1 10791 000099b0 23bd0010 addi r29,r29,#16 10792 000099b4 6c610000 sgti r1,r3,#0 10793 000099b8 10200098 beqz r1,L391_LF7 10794 000099bc 54000000 nop; not filled. 10795 000099c0 20020000 addi r2,r0,#0 10796 000099c4 0043082a slt r1,r2,r3 10797 000099c8 1020ffb8 beqz r1,L390_LF7 10798 000099cc 54000000 nop; not filled. 10799 000099d0 000b3820 add r7,r0,r11 10800 000099d4 00113020 add r6,r0,r17 10801 000099d8 00122820 add r5,r0,r18 10802 000099dc 000f2020 add r4,r0,r15 10803 000099e0 L396_LF7: 10804 000099e0 23bdffe8 addi r29,r29,#-24 10805 000099e4 3c150001 lhi r21,((LC48_LF7)>>16)&0xffff 10806 000099e8 26b53e90 addui r21,r21,(LC48_LF7)&0xffff 10807 000099ec afb50000 sw (r29),r21 10808 000099f0 8fc1ff38 lw r1,-200(r30) 10809 000099f4 00220820 add r1,r1,r2 10810 000099f8 00230822 sub r1,r1,r3 10811 000099fc afa10004 sw 4(r29),r1 10812 00009a00 90810000 lbu r1,(r4) 10813 00009a04 afa10008 sw 8(r29),r1 10814 00009a08 90a10000 lbu r1,(r5) 10815 00009a0c afa1000c sw 12(r29),r1 10816 00009a10 90c10000 lbu r1,(r6) 10817 00009a14 afa10010 sw 16(r29),r1 10818 00009a18 90e10000 lbu r1,(r7) 10819 00009a1c afa10014 sw 20(r29),r1 10820 00009a20 0c003800 jal _printf 10821 00009a24 54000000 nop; not filled. 10822 00009a28 23bd0018 addi r29,r29,#24 10823 00009a2c 20e70004 addi r7,r7,#4 10824 00009a30 20c60004 addi r6,r6,#4 10825 00009a34 20a50004 addi r5,r5,#4 10826 00009a38 20840004 addi r4,r4,#4 10827 00009a3c 20420004 addi r2,r2,#4 10828 00009a40 0043082a slt r1,r2,r3 10829 00009a44 1420ff98 bnez r1,L396_LF7 10830 00009a48 54000000 nop; not filled. 10831 00009a4c 0bffff34 j L390_LF7 10832 00009a50 54000000 nop; not filled. 10833 00009a54 L391_LF7: 10834 00009a54 23bdfff8 addi r29,r29,#-8 10835 00009a58 afaa0000 sw (r29),r10 10836 00009a5c 0c003740 jal _close 10837 00009a60 54000000 nop; not filled. 10838 00009a64 0800003c j L436_LF7 10839 00009a68 54000000 nop; not filled. 10840 00009a6c L398_LF7: 10841 00009a6c 21080004 addi r8,r8,#4 10842 00009a70 21290001 addi r9,r9,#1 10843 00009a74 8d100000 lw r16,(r8) 10844 00009a78 00099820 add r19,r0,r9 10845 00009a7c 08000028 j L386_LF7 10846 00009a80 54000000 nop; not filled. 10847 00009a84 L399_LF7: 10848 00009a84 23bdfff8 addi r29,r29,#-8 10849 00009a88 3c150001 lhi r21,((LC49_LF7)>>16)&0xffff 10850 00009a8c 26b53ea8 addui r21,r21,(LC49_LF7)&0xffff 10851 00009a90 afb50000 sw (r29),r21 10852 00009a94 8d010000 lw r1,(r8) 10853 00009a98 afa10004 sw 4(r29),r1 10854 00009a9c 0c003784 jal _printf 10855 00009aa0 54000000 nop; not filled. 10856 00009aa4 L436_LF7: 10857 00009aa4 23bd0008 addi r29,r29,#8 10858 00009aa8 L386_LF7: 10859 00009aa8 66010000 snei r1,r16,#0 10860 00009aac 14200018 bnez r1,L382_LF7 10861 00009ab0 54000000 nop; not filled. 10862 00009ab4 L383_LF7: 10863 00009ab4 21080004 addi r8,r8,#4 10864 00009ab8 21290001 addi r9,r9,#1 10865 00009abc 012e082a slt r1,r9,r14 10866 00009ac0 1420fce8 bnez r1,L384_LF7 10867 00009ac4 54000000 nop; not filled. 10868 00009ac8 L382_LF7: 10869 00009ac8 23bdfff8 addi r29,r29,#-8 10870 00009acc 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10871 00009ad0 24424038 addui r2,r2,(_debugstr)&0xffff 10872 00009ad4 afa20000 sw (r29),r2 10873 00009ad8 20150069 addi r21,r0,#105 10874 00009adc afb50004 sw 4(r29),r21 10875 00009ae0 0fffcaa8 jal _dindex 10876 00009ae4 54000000 nop; not filled. 10877 00009ae8 23bd0008 addi r29,r29,#8 10878 00009aec 64210000 snei r1,r1,#0 10879 00009af0 1420002c bnez r1,L405_LF7 10880 00009af4 54000000 nop; not filled. 10881 00009af8 23bdfff8 addi r29,r29,#-8 10882 00009afc afa20000 sw (r29),r2 10883 00009b00 2015002b addi r21,r0,#43 10884 00009b04 afb50004 sw 4(r29),r21 10885 00009b08 0fffca80 jal _dindex 10886 00009b0c 54000000 nop; not filled. 10887 00009b10 23bd0008 addi r29,r29,#8 10888 00009b14 64210000 snei r1,r1,#0 10889 00009b18 10200020 beqz r1,L404_LF7 10890 00009b1c 54000000 nop; not filled. 10891 00009b20 L405_LF7: 10892 00009b20 23bdfff8 addi r29,r29,#-8 10893 00009b24 3c150001 lhi r21,((LC50_LF7)>>16)&0xffff 10894 00009b28 26b53ec4 addui r21,r21,(LC50_LF7)&0xffff 10895 00009b2c afb50000 sw (r29),r21 10896 00009b30 0c0036f0 jal _printf 10897 00009b34 54000000 nop; not filled. 10898 00009b38 23bd0008 addi r29,r29,#8 10899 00009b3c L404_LF7: 10900 00009b3c 0c000ca8 jal _QueueModuleInit 10901 00009b40 54000000 nop; not filled. 10902 00009b44 23bdfff8 addi r29,r29,#-8 10903 00009b48 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10904 00009b4c 24424038 addui r2,r2,(_debugstr)&0xffff 10905 00009b50 afa20000 sw (r29),r2 10906 00009b54 20150069 addi r21,r0,#105 10907 00009b58 afb50004 sw 4(r29),r21 10908 00009b5c 0fffca2c jal _dindex 10909 00009b60 54000000 nop; not filled. 10910 00009b64 23bd0008 addi r29,r29,#8 10911 00009b68 64210000 snei r1,r1,#0 10912 00009b6c 1420002c bnez r1,L407_LF7 10913 00009b70 54000000 nop; not filled. 10914 00009b74 23bdfff8 addi r29,r29,#-8 10915 00009b78 afa20000 sw (r29),r2 10916 00009b7c 2015002b addi r21,r0,#43 10917 00009b80 afb50004 sw 4(r29),r21 10918 00009b84 0fffca04 jal _dindex 10919 00009b88 54000000 nop; not filled. 10920 00009b8c 23bd0008 addi r29,r29,#8 10921 00009b90 64210000 snei r1,r1,#0 10922 00009b94 10200020 beqz r1,L406_LF7 10923 00009b98 54000000 nop; not filled. 10924 00009b9c L407_LF7: 10925 00009b9c 23bdfff8 addi r29,r29,#-8 10926 00009ba0 3c150001 lhi r21,((LC51_LF7)>>16)&0xffff 10927 00009ba4 26b53ee4 addui r21,r21,(LC51_LF7)&0xffff 10928 00009ba8 afb50000 sw (r29),r21 10929 00009bac 0c003674 jal _printf 10930 00009bb0 54000000 nop; not filled. 10931 00009bb4 23bd0008 addi r29,r29,#8 10932 00009bb8 L406_LF7: 10933 00009bb8 0fffb708 jal _MemoryModuleInit 10934 00009bbc 54000000 nop; not filled. 10935 00009bc0 23bdfff8 addi r29,r29,#-8 10936 00009bc4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10937 00009bc8 24424038 addui r2,r2,(_debugstr)&0xffff 10938 00009bcc afa20000 sw (r29),r2 10939 00009bd0 20150069 addi r21,r0,#105 10940 00009bd4 afb50004 sw 4(r29),r21 10941 00009bd8 0fffc9b0 jal _dindex 10942 00009bdc 54000000 nop; not filled. 10943 00009be0 23bd0008 addi r29,r29,#8 10944 00009be4 64210000 snei r1,r1,#0 10945 00009be8 1420002c bnez r1,L409_LF7 10946 00009bec 54000000 nop; not filled. 10947 00009bf0 23bdfff8 addi r29,r29,#-8 10948 00009bf4 afa20000 sw (r29),r2 10949 00009bf8 2015002b addi r21,r0,#43 10950 00009bfc afb50004 sw 4(r29),r21 10951 00009c00 0fffc988 jal _dindex 10952 00009c04 54000000 nop; not filled. 10953 00009c08 23bd0008 addi r29,r29,#8 10954 00009c0c 64210000 snei r1,r1,#0 10955 00009c10 10200020 beqz r1,L408_LF7 10956 00009c14 54000000 nop; not filled. 10957 00009c18 L409_LF7: 10958 00009c18 23bdfff8 addi r29,r29,#-8 10959 00009c1c 3c150001 lhi r21,((LC52_LF7)>>16)&0xffff 10960 00009c20 26b53f00 addui r21,r21,(LC52_LF7)&0xffff 10961 00009c24 afb50000 sw (r29),r21 10962 00009c28 0c0035f8 jal _printf 10963 00009c2c 54000000 nop; not filled. 10964 00009c30 23bd0008 addi r29,r29,#8 10965 00009c34 L408_LF7: 10966 00009c34 0fffd258 jal _ProcessModuleInit 10967 00009c38 54000000 nop; not filled. 10968 00009c3c 23bdfff8 addi r29,r29,#-8 10969 00009c40 3c020001 lhi r2,((_debugstr)>>16)&0xffff 10970 00009c44 24424038 addui r2,r2,(_debugstr)&0xffff 10971 00009c48 afa20000 sw (r29),r2 10972 00009c4c 20150069 addi r21,r0,#105 10973 00009c50 afb50004 sw 4(r29),r21 10974 00009c54 0fffc934 jal _dindex 10975 00009c58 54000000 nop; not filled. 10976 00009c5c 23bd0008 addi r29,r29,#8 10977 00009c60 64210000 snei r1,r1,#0 10978 00009c64 1420002c bnez r1,L411_LF7 10979 00009c68 54000000 nop; not filled. 10980 00009c6c 23bdfff8 addi r29,r29,#-8 10981 00009c70 afa20000 sw (r29),r2 10982 00009c74 2015002b addi r21,r0,#43 10983 00009c78 afb50004 sw 4(r29),r21 10984 00009c7c 0fffc90c jal _dindex 10985 00009c80 54000000 nop; not filled. 10986 00009c84 23bd0008 addi r29,r29,#8 10987 00009c88 64210000 snei r1,r1,#0 10988 00009c8c 10200020 beqz r1,L410_LF7 10989 00009c90 54000000 nop; not filled. 10990 00009c94 L411_LF7: 10991 00009c94 23bdfff8 addi r29,r29,#-8 10992 00009c98 3c150001 lhi r21,((LC53_LF7)>>16)&0xffff 10993 00009c9c 26b53f1c addui r21,r21,(LC53_LF7)&0xffff 10994 00009ca0 afb50000 sw (r29),r21 10995 00009ca4 0c00357c jal _printf 10996 00009ca8 54000000 nop; not filled. 10997 00009cac 23bd0008 addi r29,r29,#8 10998 00009cb0 L410_LF7: 10999 00009cb0 0fff7af0 jal _ShareModuleInit 11000 00009cb4 54000000 nop; not filled. 11001 00009cb8 23bdfff8 addi r29,r29,#-8 11002 00009cbc 3c020001 lhi r2,((_debugstr)>>16)&0xffff 11003 00009cc0 24424038 addui r2,r2,(_debugstr)&0xffff 11004 00009cc4 afa20000 sw (r29),r2 11005 00009cc8 20150069 addi r21,r0,#105 11006 00009ccc afb50004 sw 4(r29),r21 11007 00009cd0 0fffc8b8 jal _dindex 11008 00009cd4 54000000 nop; not filled. 11009 00009cd8 23bd0008 addi r29,r29,#8 11010 00009cdc 64210000 snei r1,r1,#0 11011 00009ce0 1420002c bnez r1,L413_LF7 11012 00009ce4 54000000 nop; not filled. 11013 00009ce8 23bdfff8 addi r29,r29,#-8 11014 00009cec afa20000 sw (r29),r2 11015 00009cf0 2015002b addi r21,r0,#43 11016 00009cf4 afb50004 sw 4(r29),r21 11017 00009cf8 0fffc890 jal _dindex 11018 00009cfc 54000000 nop; not filled. 11019 00009d00 23bd0008 addi r29,r29,#8 11020 00009d04 64210000 snei r1,r1,#0 11021 00009d08 10200020 beqz r1,L412_LF7 11022 00009d0c 54000000 nop; not filled. 11023 00009d10 L413_LF7: 11024 00009d10 23bdfff8 addi r29,r29,#-8 11025 00009d14 3c150001 lhi r21,((LC54_LF7)>>16)&0xffff 11026 00009d18 26b53f3c addui r21,r21,(LC54_LF7)&0xffff 11027 00009d1c afb50000 sw (r29),r21 11028 00009d20 0c003500 jal _printf 11029 00009d24 54000000 nop; not filled. 11030 00009d28 23bd0008 addi r29,r29,#8 11031 00009d2c L412_LF7: 11032 00009d2c 0fff8678 jal _SynchModuleInit 11033 00009d30 54000000 nop; not filled. 11034 00009d34 23bdfff8 addi r29,r29,#-8 11035 00009d38 3c020001 lhi r2,((_debugstr)>>16)&0xffff 11036 00009d3c 24424038 addui r2,r2,(_debugstr)&0xffff 11037 00009d40 afa20000 sw (r29),r2 11038 00009d44 20150069 addi r21,r0,#105 11039 00009d48 afb50004 sw 4(r29),r21 11040 00009d4c 0fffc83c jal _dindex 11041 00009d50 54000000 nop; not filled. 11042 00009d54 23bd0008 addi r29,r29,#8 11043 00009d58 64210000 snei r1,r1,#0 11044 00009d5c 1420002c bnez r1,L415_LF7 11045 00009d60 54000000 nop; not filled. 11046 00009d64 23bdfff8 addi r29,r29,#-8 11047 00009d68 afa20000 sw (r29),r2 11048 00009d6c 2015002b addi r21,r0,#43 11049 00009d70 afb50004 sw 4(r29),r21 11050 00009d74 0fffc814 jal _dindex 11051 00009d78 54000000 nop; not filled. 11052 00009d7c 23bd0008 addi r29,r29,#8 11053 00009d80 64210000 snei r1,r1,#0 11054 00009d84 10200020 beqz r1,L414_LF7 11055 00009d88 54000000 nop; not filled. 11056 00009d8c L415_LF7: 11057 00009d8c 23bdfff8 addi r29,r29,#-8 11058 00009d90 3c150001 lhi r21,((LC55_LF7)>>16)&0xffff 11059 00009d94 26b53f60 addui r21,r21,(LC55_LF7)&0xffff 11060 00009d98 afb50000 sw (r29),r21 11061 00009d9c 0c003484 jal _printf 11062 00009da0 54000000 nop; not filled. 11063 00009da4 23bd0008 addi r29,r29,#8 11064 00009da8 L414_LF7: 11065 00009da8 0c00126c jal _KbdModuleInit 11066 00009dac 54000000 nop; not filled. 11067 00009db0 23bdfff8 addi r29,r29,#-8 11068 00009db4 3c020001 lhi r2,((_debugstr)>>16)&0xffff 11069 00009db8 24424038 addui r2,r2,(_debugstr)&0xffff 11070 00009dbc afa20000 sw (r29),r2 11071 00009dc0 20150069 addi r21,r0,#105 11072 00009dc4 afb50004 sw 4(r29),r21 11073 00009dc8 0fffc7c0 jal _dindex 11074 00009dcc 54000000 nop; not filled. 11075 00009dd0 23bd0008 addi r29,r29,#8 11076 00009dd4 64210000 snei r1,r1,#0 11077 00009dd8 1420002c bnez r1,L417_LF7 11078 00009ddc 54000000 nop; not filled. 11079 00009de0 23bdfff8 addi r29,r29,#-8 11080 00009de4 afa20000 sw (r29),r2 11081 00009de8 2015002b addi r21,r0,#43 11082 00009dec afb50004 sw 4(r29),r21 11083 00009df0 0fffc798 jal _dindex 11084 00009df4 54000000 nop; not filled. 11085 00009df8 23bd0008 addi r29,r29,#8 11086 00009dfc 64210000 snei r1,r1,#0 11087 00009e00 10200020 beqz r1,L416_LF7 11088 00009e04 54000000 nop; not filled. 11089 00009e08 L417_LF7: 11090 00009e08 23bdfff8 addi r29,r29,#-8 11091 00009e0c 3c150001 lhi r21,((LC56_LF7)>>16)&0xffff 11092 00009e10 26b53f8c addui r21,r21,(LC56_LF7)&0xffff 11093 00009e14 afb50000 sw (r29),r21 11094 00009e18 0c003408 jal _printf 11095 00009e1c 54000000 nop; not filled. 11096 00009e20 23bd0008 addi r29,r29,#8 11097 00009e24 L416_LF7: 11098 00009e24 23c2ff80 addi r2,r30,#-128 11099 00009e28 23c3ffe3 addi r3,r30,#-29 11100 00009e2c L421_LF7: 11101 00009e2c 20150061 addi r21,r0,(#0x61)&0xff 11102 00009e30 a0550000 sb (r2),r21 11103 00009e34 20420001 addi r2,r2,#1 11104 00009e38 0043082c sle r1,r2,r3 11105 00009e3c 1420ffec bnez r1,L421_LF7 11106 00009e40 54000000 nop; not filled. 11107 00009e44 23bdfff8 addi r29,r29,#-8 11108 00009e48 3c150001 lhi r21,((LC57_LF7)>>16)&0xffff 11109 00009e4c 26b53fac addui r21,r21,(LC57_LF7)&0xffff 11110 00009e50 afb50000 sw (r29),r21 11111 00009e54 20150002 addi r21,r0,#2 11112 00009e58 afb50004 sw 4(r29),r21 11113 00009e5c 0fffa090 jal _FsOpen 11114 00009e60 54000000 nop; not filled. 11115 00009e64 00014820 add r9,r0,r1 11116 00009e68 3c020001 lhi r2,((_debugstr)>>16)&0xffff 11117 00009e6c 24424038 addui r2,r2,(_debugstr)&0xffff 11118 00009e70 afa20000 sw (r29),r2 11119 00009e74 20150069 addi r21,r0,#105 11120 00009e78 afb50004 sw 4(r29),r21 11121 00009e7c 0fffc70c jal _dindex 11122 00009e80 54000000 nop; not filled. 11123 00009e84 23bd0008 addi r29,r29,#8 11124 00009e88 64210000 snei r1,r1,#0 11125 00009e8c 1420002c bnez r1,L424_LF7 11126 00009e90 54000000 nop; not filled. 11127 00009e94 23bdfff8 addi r29,r29,#-8 11128 00009e98 afa20000 sw (r29),r2 11129 00009e9c 2015002b addi r21,r0,#43 11130 00009ea0 afb50004 sw 4(r29),r21 11131 00009ea4 0fffc6e4 jal _dindex 11132 00009ea8 54000000 nop; not filled. 11133 00009eac 23bd0008 addi r29,r29,#8 11134 00009eb0 64210000 snei r1,r1,#0 11135 00009eb4 10200024 beqz r1,L423_LF7 11136 00009eb8 54000000 nop; not filled. 11137 00009ebc L424_LF7: 11138 00009ebc 23bdfff8 addi r29,r29,#-8 11139 00009ec0 3c150001 lhi r21,((LC58_LF7)>>16)&0xffff 11140 00009ec4 26b53fb0 addui r21,r21,(LC58_LF7)&0xffff 11141 00009ec8 afb50000 sw (r29),r21 11142 00009ecc afa90004 sw 4(r29),r9 11143 00009ed0 0c003350 jal _printf 11144 00009ed4 54000000 nop; not filled. 11145 00009ed8 23bd0008 addi r29,r29,#8 11146 00009edc L423_LF7: 11147 00009edc 23bdfff0 addi r29,r29,#-16 11148 00009ee0 afa90000 sw (r29),r9 11149 00009ee4 20150000 addi r21,r0,#0 11150 00009ee8 afb50004 sw 4(r29),r21 11151 00009eec afb50008 sw 8(r29),r21 11152 00009ef0 0fffa658 jal _FsSeek 11153 00009ef4 54000000 nop; not filled. 11154 00009ef8 afa90000 sw (r29),r9 11155 00009efc 23c1ff80 addi r1,r30,#-128 11156 00009f00 afa10004 sw 4(r29),r1 11157 00009f04 20150050 addi r21,r0,#80 11158 00009f08 afb50008 sw 8(r29),r21 11159 00009f0c 0fffa540 jal _FsWrite 11160 00009f10 54000000 nop; not filled. 11161 00009f14 afa90000 sw (r29),r9 11162 00009f18 0fffa330 jal _FsClose 11163 00009f1c 54000000 nop; not filled. 11164 00009f20 23bd0010 addi r29,r29,#16 11165 00009f24 66010000 snei r1,r16,#0 11166 00009f28 102000d0 beqz r1,L425_LF7 11167 00009f2c 54000000 nop; not filled. 11168 00009f30 00134820 add r9,r0,r19 11169 00009f34 026e082a slt r1,r19,r14 11170 00009f38 10200044 beqz r1,L427_LF7 11171 00009f3c 54000000 nop; not filled. 11172 00009f40 23c4fff8 addi r4,r30,#-8 11173 00009f44 51210002 slli r1,r9,#0x2 11174 00009f48 00341820 add r3,r1,r20 11175 00009f4c L431_LF7: 11176 00009f4c 01331022 sub r2,r9,r19 11177 00009f50 7041000a slei r1,r2,#10 11178 00009f54 10200028 beqz r1,L427_LF7 11179 00009f58 54000000 nop; not filled. 11180 00009f5c 50410002 slli r1,r2,#0x2 11181 00009f60 00240820 add r1,r1,r4 11182 00009f64 8c750000 lw r21,(r3) 11183 00009f68 ac35ff58 sw -168(r1),r21 11184 00009f6c 20630004 addi r3,r3,#4 11185 00009f70 21290001 addi r9,r9,#1 11186 00009f74 012e082a slt r1,r9,r14 11187 00009f78 1420ffd0 bnez r1,L431_LF7 11188 00009f7c 54000000 nop; not filled. 11189 00009f80 L427_LF7: 11190 00009f80 23bdffc8 addi r29,r29,#-56 11191 00009f84 20150000 addi r21,r0,#0 11192 00009f88 afb50000 sw (r29),r21 11193 00009f8c afb50004 sw 4(r29),r21 11194 00009f90 8fd5ff50 lw r21,-176(r30) 11195 00009f94 afb50008 sw 8(r29),r21 11196 00009f98 8fd5ff54 lw r21,-172(r30) 11197 00009f9c afb5000c sw 12(r29),r21 11198 00009fa0 8fd5ff58 lw r21,-168(r30) 11199 00009fa4 afb50010 sw 16(r29),r21 11200 00009fa8 8fd5ff5c lw r21,-164(r30) 11201 00009fac afb50014 sw 20(r29),r21 11202 00009fb0 8fd5ff60 lw r21,-160(r30) 11203 00009fb4 afb50018 sw 24(r29),r21 11204 00009fb8 8fd5ff64 lw r21,-156(r30) 11205 00009fbc afb5001c sw 28(r29),r21 11206 00009fc0 8fd5ff68 lw r21,-152(r30) 11207 00009fc4 afb50020 sw 32(r29),r21 11208 00009fc8 8fd5ff6c lw r21,-148(r30) 11209 00009fcc afb50024 sw 36(r29),r21 11210 00009fd0 8fd5ff70 lw r21,-144(r30) 11211 00009fd4 afb50028 sw 40(r29),r21 11212 00009fd8 8fd5ff74 lw r21,-140(r30) 11213 00009fdc afb5002c sw 44(r29),r21 11214 00009fe0 8fd5ff78 lw r21,-136(r30) 11215 00009fe4 afb50030 sw 48(r29),r21 11216 00009fe8 8fd5ff7c lw r21,-132(r30) 11217 00009fec afb50034 sw 52(r29),r21 11218 00009ff0 0c000218 jal _process_create 11219 00009ff4 54000000 nop; not filled. 11220 00009ff8 23bd0038 addi r29,r29,#56 11221 00009ffc L425_LF7: 11222 00009ffc 0c00310c jal _SysprocCreateProcesses 11223 0000a000 54000000 nop; not filled. 11224 0000a004 23bdfff8 addi r29,r29,#-8 11225 0000a008 3c020001 lhi r2,((_debugstr)>>16)&0xffff 11226 0000a00c 24424038 addui r2,r2,(_debugstr)&0xffff 11227 0000a010 afa20000 sw (r29),r2 11228 0000a014 20150069 addi r21,r0,#105 11229 0000a018 afb50004 sw 4(r29),r21 11230 0000a01c 0fffc56c jal _dindex 11231 0000a020 54000000 nop; not filled. 11232 0000a024 23bd0008 addi r29,r29,#8 11233 0000a028 64210000 snei r1,r1,#0 11234 0000a02c 1420002c bnez r1,L433_LF7 11235 0000a030 54000000 nop; not filled. 11236 0000a034 23bdfff8 addi r29,r29,#-8 11237 0000a038 afa20000 sw (r29),r2 11238 0000a03c 2015002b addi r21,r0,#43 11239 0000a040 afb50004 sw 4(r29),r21 11240 0000a044 0fffc544 jal _dindex 11241 0000a048 54000000 nop; not filled. 11242 0000a04c 23bd0008 addi r29,r29,#8 11243 0000a050 64210000 snei r1,r1,#0 11244 0000a054 10200020 beqz r1,L432_LF7 11245 0000a058 54000000 nop; not filled. 11246 0000a05c L433_LF7: 11247 0000a05c 23bdfff8 addi r29,r29,#-8 11248 0000a060 3c150001 lhi r21,((LC59_LF7)>>16)&0xffff 11249 0000a064 26b53fc8 addui r21,r21,(LC59_LF7)&0xffff 11250 0000a068 afb50000 sw (r29),r21 11251 0000a06c 0c0031b4 jal _printf 11252 0000a070 54000000 nop; not filled. 11253 0000a074 23bd0008 addi r29,r29,#8 11254 0000a078 L432_LF7: 11255 0000a078 23bdfff8 addi r29,r29,#-8 11256 0000a07c 3c030001 lhi r3,((_processQuantum_LF7)>>16)&0xffff 11257 0000a080 246336b0 addui r3,r3,(_processQuantum_LF7)&0xffff 11258 0000a084 8c750000 lw r21,(r3) 11259 0000a088 afb50000 sw (r29),r21 11260 0000a08c 0c000ee4 jal _TimerSet 11261 0000a090 54000000 nop; not filled. 11262 0000a094 3c020001 lhi r2,((_debugstr)>>16)&0xffff 11263 0000a098 24424038 addui r2,r2,(_debugstr)&0xffff 11264 0000a09c afa20000 sw (r29),r2 11265 0000a0a0 20150069 addi r21,r0,#105 11266 0000a0a4 afb50004 sw 4(r29),r21 11267 0000a0a8 0fffc4e0 jal _dindex 11268 0000a0ac 54000000 nop; not filled. 11269 0000a0b0 23bd0008 addi r29,r29,#8 11270 0000a0b4 64210000 snei r1,r1,#0 11271 0000a0b8 1420002c bnez r1,L435_LF7 11272 0000a0bc 54000000 nop; not filled. 11273 0000a0c0 23bdfff8 addi r29,r29,#-8 11274 0000a0c4 afa20000 sw (r29),r2 11275 0000a0c8 2015002b addi r21,r0,#43 11276 0000a0cc afb50004 sw 4(r29),r21 11277 0000a0d0 0fffc4b8 jal _dindex 11278 0000a0d4 54000000 nop; not filled. 11279 0000a0d8 23bd0008 addi r29,r29,#8 11280 0000a0dc 64210000 snei r1,r1,#0 11281 0000a0e0 10200028 beqz r1,L434_LF7 11282 0000a0e4 54000000 nop; not filled. 11283 0000a0e8 L435_LF7: 11284 0000a0e8 23bdfff8 addi r29,r29,#-8 11285 0000a0ec 3c150001 lhi r21,((LC60_LF7)>>16)&0xffff 11286 0000a0f0 26b53ffc addui r21,r21,(LC60_LF7)&0xffff 11287 0000a0f4 afb50000 sw (r29),r21 11288 0000a0f8 8c610000 lw r1,(r3) 11289 0000a0fc afa10004 sw 4(r29),r1 11290 0000a100 0c003120 jal _printf 11291 0000a104 54000000 nop; not filled. 11292 0000a108 23bd0008 addi r29,r29,#8 11293 0000a10c L434_LF7: 11294 0000a10c 0fff7058 jal _intrreturn 11295 0000a110 54000000 nop; not filled. 11296 0000a114 0c0030f4 jal _exitsim 11297 0000a118 54000000 nop; not filled. 11298 0000a11c 0c0030f8 jal _exit 11299 0000a120 54000000 nop 11300 0000a124 .endproc _main 11301 0000a124 .data 11302 00014032 .align 2 11303 00014034 LC62_LF7: 11304 00014034 00000000 .word 0x00000000 11305 ;; 0.0000000e+00 11306 00014038 .text 11307 0000a124 .align 2 11308 0000a124 .proc _MyFuncRetZero 11309 0000a124 .global _MyFuncRetZero 11310 0000a124 _MyFuncRetZero: 11311 ; Function 'MyFuncRetZero'; 0 bytes of locals, 0 regs to save. 11312 0000a124 afbefffc sw -4(r29),r30; push fp 11313 0000a128 001df020 add r30,r0,r29; fp = sp 11314 0000a12c afbffff8 sw -8(r29),r31; push ret addr 11315 0000a130 2fbd0008 subui r29,r29,#8; alloc local storage 11316 0000a134 3c010001 lhi r1,((LC62_LF7)>>16)&0xffff 11317 0000a138 24214034 addui r1,r1,(LC62_LF7)&0xffff 11318 0000a13c 98200000 lf f0,(r1) 11319 0000a140 8fdffff8 lw r31,-8(r30) 11320 0000a144 001ee820 add r29,r0,r30 11321 0000a148 8fdefffc lw r30,-4(r30) 11322 0000a14c 4be00000 jr r31 11323 0000a150 54000000 nop 11324 0000a154 .endproc _MyFuncRetZero 11325 0000a154 .align 2 11326 0000a154 .proc _GetCurrentPid 11327 0000a154 .global _GetCurrentPid 11328 0000a154 _GetCurrentPid: 11329 ; Function 'GetCurrentPid'; 0 bytes of locals, 1 regs to save. 11330 0000a154 afbefffc sw -4(r29),r30; push fp 11331 0000a158 001df020 add r30,r0,r29; fp = sp 11332 0000a15c afbffff8 sw -8(r29),r31; push ret addr 11333 0000a160 2fbd0010 subui r29,r29,#16; alloc local storage 11334 0000a164 afa20000 sw 0(r29),r2 11335 0000a168 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 11336 0000a16c 24214100 addui r1,r1,(_currentPCB)&0xffff 11337 0000a170 8c210000 lw r1,(r1) 11338 0000a174 3c1f0001 lhi r31,((_pcbs_LF7)>>16)&0xffff 11339 0000a178 27ff4134 addui r31,r31,(_pcbs_LF7)&0xffff 11340 0000a17c 003f1022 sub r2,r1,r31 11341 0000a180 3c01a4fa lhi r1,#-23302 11342 0000a184 24214fa5 addui r1,r1,#20389 11343 0000a188 00400035 movi2fp f0,r2 11344 0000a18c 00200835 movi2fp f1,r1 11345 0000a190 0401000e mult f0,f0,f1 11346 0000a194 00000834 movfp2i r1,f0 11347 0000a198 5c210002 srai r1,r1,#0x2 11348 0000a19c 8fa20000 lw r2,0(r29) 11349 0000a1a0 8fdffff8 lw r31,-8(r30) 11350 0000a1a4 001ee820 add r29,r0,r30 11351 0000a1a8 8fdefffc lw r30,-4(r30) 11352 0000a1ac 4be00000 jr r31 11353 0000a1b0 54000000 nop 11354 0000a1b4 .endproc _GetCurrentPid 11355 0000a1b4 .align 2 11356 0000a1b4 .proc _findpid 11357 0000a1b4 .global _findpid 11358 0000a1b4 _findpid: 11359 ; Function 'findpid'; 0 bytes of locals, 1 regs to save. 11360 0000a1b4 afbefffc sw -4(r29),r30; push fp 11361 0000a1b8 001df020 add r30,r0,r29; fp = sp 11362 0000a1bc afbffff8 sw -8(r29),r31; push ret addr 11363 0000a1c0 2fbd0010 subui r29,r29,#16; alloc local storage 11364 0000a1c4 afa20000 sw 0(r29),r2 11365 0000a1c8 8fc10000 lw r1,(r30) 11366 0000a1cc 3c1f0001 lhi r31,((_pcbs_LF7)>>16)&0xffff 11367 0000a1d0 27ff4134 addui r31,r31,(_pcbs_LF7)&0xffff 11368 0000a1d4 003f1022 sub r2,r1,r31 11369 0000a1d8 3c01a4fa lhi r1,#-23302 11370 0000a1dc 24214fa5 addui r1,r1,#20389 11371 0000a1e0 00400035 movi2fp f0,r2 11372 0000a1e4 00200835 movi2fp f1,r1 11373 0000a1e8 0401000e mult f0,f0,f1 11374 0000a1ec 00000834 movfp2i r1,f0 11375 0000a1f0 5c210002 srai r1,r1,#0x2 11376 0000a1f4 8fa20000 lw r2,0(r29) 11377 0000a1f8 8fdffff8 lw r31,-8(r30) 11378 0000a1fc 001ee820 add r29,r0,r30 11379 0000a200 8fdefffc lw r30,-4(r30) 11380 0000a204 4be00000 jr r31 11381 0000a208 54000000 nop 11382 0000a20c .endproc _findpid 11383 0000a20c .align 2 11384 0000a20c .proc _process_create 11385 0000a20c .global _process_create 11386 0000a20c _process_create: 11387 ; Function 'process_create'; 1000 bytes of locals, 5 regs to save. 11388 0000a20c afbefffc sw -4(r29),r30; push fp 11389 0000a210 001df020 add r30,r0,r29; fp = sp 11390 0000a214 afbffff8 sw -8(r29),r31; push ret addr 11391 0000a218 2fbd0408 subui r29,r29,#1032; alloc local storage 11392 0000a21c afa20000 sw 0(r29),r2 11393 0000a220 afa30004 sw 4(r29),r3 11394 0000a224 afa40008 sw 8(r29),r4 11395 0000a228 afa5000c sw 12(r29),r5 11396 0000a22c afa60010 sw 16(r29),r6 11397 0000a230 23c20008 addi r2,r30,#8 11398 0000a234 20040000 addi r4,r0,#0 11399 0000a238 8c410000 lw r1,(r2) 11400 0000a23c 64210000 snei r1,r1,#0 11401 0000a240 1020005c beqz r1,L445_LF7 11402 0000a244 54000000 nop; not filled. 11403 0000a248 23c5fc10 addi r5,r30,#-1008 11404 0000a24c 0002f820 add r31,r0,r2 11405 0000a250 L447_LF7: 11406 0000a250 20020000 addi r2,r0,#0 11407 0000a254 00851820 add r3,r4,r5 11408 0000a258 L448_LF7: 11409 0000a258 8fe10000 lw r1,(r31) 11410 0000a25c 00220820 add r1,r1,r2 11411 0000a260 80210000 lb r1,(r1) 11412 0000a264 a0610000 sb (r3),r1 11413 0000a268 20420001 addi r2,r2,#1 11414 0000a26c 20630001 addi r3,r3,#1 11415 0000a270 20840001 addi r4,r4,#1 11416 0000a274 8fe10000 lw r1,(r31) 11417 0000a278 00410820 add r1,r2,r1 11418 0000a27c 9021ffff lbu r1,-1(r1) 11419 0000a280 64210000 snei r1,r1,#0 11420 0000a284 1420ffd0 bnez r1,L448_LF7 11421 0000a288 54000000 nop; not filled. 11422 0000a28c 23ff0004 addi r31,r31,#4 11423 0000a290 8fe10000 lw r1,(r31) 11424 0000a294 64210000 snei r1,r1,#0 11425 0000a298 1420ffb4 bnez r1,L447_LF7 11426 0000a29c 54000000 nop; not filled. 11427 0000a2a0 L445_LF7: 11428 0000a2a0 23c3fc10 addi r3,r30,#-1008 11429 0000a2a4 00641020 add r2,r3,r4 11430 0000a2a8 23c1fc11 addi r1,r30,#-1007 11431 0000a2ac 00240820 add r1,r1,r4 11432 0000a2b0 20060000 addi r6,r0,(#0x0)&0xff 11433 0000a2b4 a0260000 sb (r1),r6 11434 0000a2b8 a0460000 sb (r2),r6 11435 0000a2bc 23bdffe8 addi r29,r29,#-24 11436 0000a2c0 20060000 addi r6,r0,#0 11437 0000a2c4 afa60000 sw (r29),r6 11438 0000a2c8 afa30004 sw 4(r29),r3 11439 0000a2cc 8fc60000 lw r6,(r30) 11440 0000a2d0 afa60008 sw 8(r29),r6 11441 0000a2d4 8fc60004 lw r6,4(r30) 11442 0000a2d8 afa6000c sw 12(r29),r6 11443 0000a2dc 8fc60008 lw r6,8(r30) 11444 0000a2e0 afa60010 sw 16(r29),r6 11445 0000a2e4 20060001 addi r6,r0,#1 11446 0000a2e8 afa60014 sw 20(r29),r6 11447 0000a2ec 0fffdaac jal _ProcessFork 11448 0000a2f0 54000000 nop; not filled. 11449 0000a2f4 23bd0018 addi r29,r29,#24 11450 0000a2f8 8fa20000 lw r2,0(r29) 11451 0000a2fc 8fa30004 lw r3,4(r29) 11452 0000a300 8fa40008 lw r4,8(r29) 11453 0000a304 8fa5000c lw r5,12(r29) 11454 0000a308 8fa60010 lw r6,16(r29) 11455 0000a30c 8fdffff8 lw r31,-8(r30) 11456 0000a310 001ee820 add r29,r0,r30 11457 0000a314 8fdefffc lw r30,-4(r30) 11458 0000a318 4be00000 jr r31 11459 0000a31c 54000000 nop 11460 0000a320 .endproc _process_create 11461 0000a320 .data 11462 00014038 .global _debugstr 11463 00014038 _debugstr: 11464 00014038 .space 200 11465 00014100 .align 2 11466 00014100 .global _currentPCB 11467 00014100 _currentPCB: 11468 00014100 .space 4 11469 00014104 .align 2 11470 00014104 _freepcbs_LF7: 11471 00014104 .space 12 11472 00014110 .align 2 11473 00014110 _runQueue_LF7: 11474 00014110 .space 12 11475 0001411c .align 2 11476 0001411c _waitQueue_LF7: 11477 0001411c .space 12 11478 00014128 .align 2 11479 00014128 _zombieQueue_LF7: 11480 00014128 .space 12 11481 00014134 .align 2 11482 00014134 _pcbs_LF7: 11483 00014134 .space 5760 11484 000157b4 .text 11485 0000a320 .align 2 11486 0000a320 .proc _ProcessExit_LF7 11487 0000a320 _ProcessExit_LF7: 11488 ; Function 'ProcessExit'; 0 bytes of locals, 0 regs to save. 11489 0000a320 afbefffc sw -4(r29),r30; push fp 11490 0000a324 001df020 add r30,r0,r29; fp = sp 11491 0000a328 afbffff8 sw -8(r29),r31; push ret addr 11492 0000a32c 2fbd0008 subui r29,r29,#8; alloc local storage 11493 0000a330 0c002ee4 jal _exit 11494 0000a334 54000000 nop; not filled. 11495 0000a338 8fdffff8 lw r31,-8(r30) 11496 0000a33c 001ee820 add r29,r0,r30 11497 0000a340 8fdefffc lw r30,-4(r30) 11498 0000a344 4be00000 jr r31 11499 0000a348 54000000 nop 11500 0000a34c .endproc _ProcessExit_LF7 11501 ; Compiled by GCC 11503 0000a34c .align 2 11504 0000a34c .proc _isspace 11505 0000a34c .global _isspace 11506 0000a34c _isspace: 11507 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 11508 0000a34c afbefffc sw -4(r29),r30; push fp 11509 0000a350 001df020 add r30,r0,r29; fp = sp 11510 0000a354 afbffff8 sw -8(r29),r31; push ret addr 11511 0000a358 2fbd0010 subui r29,r29,#16; alloc local storage 11512 0000a35c afa20000 sw 0(r29),r2 11513 0000a360 83c20003 lb r2,3(r30) 11514 0000a364 201f0000 addi r31,r0,#0 11515 0000a368 304100ff andi r1,r2,#0x00ff 11516 0000a36c 60210020 seqi r1,r1,#32 11517 0000a370 14200018 bnez r1,L6_LF8 11518 0000a374 54000000 nop; not filled. 11519 0000a378 2041fff7 addi r1,r2,#-9 11520 0000a37c 302100ff andi r1,r1,#0x00ff 11521 0000a380 70210001 sleui r1,r1,#1 11522 0000a384 10200008 beqz r1,L5_LF8 11523 0000a388 54000000 nop; not filled. 11524 0000a38c L6_LF8: 11525 0000a38c 201f0001 addi r31,r0,#1 11526 0000a390 L5_LF8: 11527 0000a390 001f0820 add r1,r0,r31 11528 0000a394 8fa20000 lw r2,0(r29) 11529 0000a398 8fdffff8 lw r31,-8(r30) 11530 0000a39c 001ee820 add r29,r0,r30 11531 0000a3a0 8fdefffc lw r30,-4(r30) 11532 0000a3a4 4be00000 jr r31 11533 0000a3a8 54000000 nop 11534 0000a3ac .endproc _isspace 11535 0000a3ac .align 2 11536 0000a3ac .proc _isxdigit 11537 0000a3ac .global _isxdigit 11538 0000a3ac _isxdigit: 11539 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 11540 0000a3ac afbefffc sw -4(r29),r30; push fp 11541 0000a3b0 001df020 add r30,r0,r29; fp = sp 11542 0000a3b4 afbffff8 sw -8(r29),r31; push ret addr 11543 0000a3b8 2fbd0010 subui r29,r29,#16; alloc local storage 11544 0000a3bc afa20000 sw 0(r29),r2 11545 0000a3c0 83df0003 lb r31,3(r30) 11546 0000a3c4 20020000 addi r2,r0,#0 11547 0000a3c8 23e1ffd0 addi r1,r31,#-48 11548 0000a3cc 302100ff andi r1,r1,#0x00ff 11549 0000a3d0 70210009 sleui r1,r1,#9 11550 0000a3d4 14200028 bnez r1,L12_LF8 11551 0000a3d8 54000000 nop; not filled. 11552 0000a3dc 23e1ff9f addi r1,r31,#-97 11553 0000a3e0 302100ff andi r1,r1,#0x00ff 11554 0000a3e4 70210005 sleui r1,r1,#5 11555 0000a3e8 14200014 bnez r1,L12_LF8 11556 0000a3ec 54000000 nop; not filled. 11557 0000a3f0 33e100ff andi r1,r31,#0x00ff 11558 0000a3f4 64210041 snei r1,r1,#65 11559 0000a3f8 14200008 bnez r1,L11_LF8 11560 0000a3fc 54000000 nop; not filled. 11561 0000a400 L12_LF8: 11562 0000a400 20020001 addi r2,r0,#1 11563 0000a404 L11_LF8: 11564 0000a404 00020820 add r1,r0,r2 11565 0000a408 8fa20000 lw r2,0(r29) 11566 0000a40c 8fdffff8 lw r31,-8(r30) 11567 0000a410 001ee820 add r29,r0,r30 11568 0000a414 8fdefffc lw r30,-4(r30) 11569 0000a418 4be00000 jr r31 11570 0000a41c 54000000 nop 11571 0000a420 .endproc _isxdigit 11572 0000a420 .align 2 11573 0000a420 .proc _DisableIntrs 11574 0000a420 .global _DisableIntrs 11575 0000a420 _DisableIntrs: 11576 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 11577 0000a420 afbefffc sw -4(r29),r30; push fp 11578 0000a424 001df020 add r30,r0,r29; fp = sp 11579 0000a428 afbffff8 sw -8(r29),r31; push ret addr 11580 0000a42c 2fbd0010 subui r29,r29,#16; alloc local storage 11581 0000a430 afa20000 sw 0(r29),r2 11582 0000a434 23bdfff8 addi r29,r29,#-8 11583 0000a438 2002000f addi r2,r0,#15 11584 0000a43c afa20000 sw (r29),r2 11585 0000a440 0fff6e44 jal _SetIntrs 11586 0000a444 54000000 nop; not filled. 11587 0000a448 23bd0008 addi r29,r29,#8 11588 0000a44c 8fa20000 lw r2,0(r29) 11589 0000a450 8fdffff8 lw r31,-8(r30) 11590 0000a454 001ee820 add r29,r0,r30 11591 0000a458 8fdefffc lw r30,-4(r30) 11592 0000a45c 4be00000 jr r31 11593 0000a460 54000000 nop 11594 0000a464 .endproc _DisableIntrs 11595 0000a464 .align 2 11596 0000a464 .proc _EnableIntrs 11597 0000a464 .global _EnableIntrs 11598 0000a464 _EnableIntrs: 11599 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 11600 0000a464 afbefffc sw -4(r29),r30; push fp 11601 0000a468 001df020 add r30,r0,r29; fp = sp 11602 0000a46c afbffff8 sw -8(r29),r31; push ret addr 11603 0000a470 2fbd0010 subui r29,r29,#16; alloc local storage 11604 0000a474 afa20000 sw 0(r29),r2 11605 0000a478 23bdfff8 addi r29,r29,#-8 11606 0000a47c 20020000 addi r2,r0,#0 11607 0000a480 afa20000 sw (r29),r2 11608 0000a484 0fff6e00 jal _SetIntrs 11609 0000a488 54000000 nop; not filled. 11610 0000a48c 23bd0008 addi r29,r29,#8 11611 0000a490 8fa20000 lw r2,0(r29) 11612 0000a494 8fdffff8 lw r31,-8(r30) 11613 0000a498 001ee820 add r29,r0,r30 11614 0000a49c 8fdefffc lw r30,-4(r30) 11615 0000a4a0 4be00000 jr r31 11616 0000a4a4 54000000 nop 11617 0000a4a8 .endproc _EnableIntrs 11618 0000a4a8 .align 2 11619 0000a4a8 .proc _RestoreIntrs 11620 0000a4a8 .global _RestoreIntrs 11621 0000a4a8 _RestoreIntrs: 11622 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 11623 0000a4a8 afbefffc sw -4(r29),r30; push fp 11624 0000a4ac 001df020 add r30,r0,r29; fp = sp 11625 0000a4b0 afbffff8 sw -8(r29),r31; push ret addr 11626 0000a4b4 2fbd0010 subui r29,r29,#16; alloc local storage 11627 0000a4b8 afa20000 sw 0(r29),r2 11628 0000a4bc 23bdfff8 addi r29,r29,#-8 11629 0000a4c0 8fc20000 lw r2,(r30) 11630 0000a4c4 afa20000 sw (r29),r2 11631 0000a4c8 0fff6dbc jal _SetIntrs 11632 0000a4cc 54000000 nop; not filled. 11633 0000a4d0 23bd0008 addi r29,r29,#8 11634 0000a4d4 8fa20000 lw r2,0(r29) 11635 0000a4d8 8fdffff8 lw r31,-8(r30) 11636 0000a4dc 001ee820 add r29,r0,r30 11637 0000a4e0 8fdefffc lw r30,-4(r30) 11638 0000a4e4 4be00000 jr r31 11639 0000a4e8 54000000 nop 11640 0000a4ec .endproc _RestoreIntrs 11641 0000a4ec .align 2 11642 0000a4ec .proc _QueueLinkInit 11643 0000a4ec .global _QueueLinkInit 11644 0000a4ec _QueueLinkInit: 11645 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 11646 0000a4ec afbefffc sw -4(r29),r30; push fp 11647 0000a4f0 001df020 add r30,r0,r29; fp = sp 11648 0000a4f4 afbffff8 sw -8(r29),r31; push ret addr 11649 0000a4f8 2fbd0010 subui r29,r29,#16; alloc local storage 11650 0000a4fc afa20000 sw 0(r29),r2 11651 0000a500 8fc10000 lw r1,(r30) 11652 0000a504 8fc20004 lw r2,4(r30) 11653 0000a508 201f0000 addi r31,r0,#0 11654 0000a50c ac3f0000 sw (r1),r31 11655 0000a510 ac22000c sw 12(r1),r2 11656 0000a514 8fa20000 lw r2,0(r29) 11657 0000a518 8fdffff8 lw r31,-8(r30) 11658 0000a51c 001ee820 add r29,r0,r30 11659 0000a520 8fdefffc lw r30,-4(r30) 11660 0000a524 4be00000 jr r31 11661 0000a528 54000000 nop 11662 0000a52c .endproc _QueueLinkInit 11663 0000a52c .align 2 11664 0000a52c .proc _QueueNext 11665 0000a52c .global _QueueNext 11666 0000a52c _QueueNext: 11667 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 11668 0000a52c afbefffc sw -4(r29),r30; push fp 11669 0000a530 001df020 add r30,r0,r29; fp = sp 11670 0000a534 afbffff8 sw -8(r29),r31; push ret addr 11671 0000a538 2fbd0008 subui r29,r29,#8; alloc local storage 11672 0000a53c 8fc10000 lw r1,(r30) 11673 0000a540 8c210000 lw r1,(r1) 11674 0000a544 8fdffff8 lw r31,-8(r30) 11675 0000a548 001ee820 add r29,r0,r30 11676 0000a54c 8fdefffc lw r30,-4(r30) 11677 0000a550 4be00000 jr r31 11678 0000a554 54000000 nop 11679 0000a558 .endproc _QueueNext 11680 0000a558 .align 2 11681 0000a558 .proc _QueuePrev 11682 0000a558 .global _QueuePrev 11683 0000a558 _QueuePrev: 11684 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 11685 0000a558 afbefffc sw -4(r29),r30; push fp 11686 0000a55c 001df020 add r30,r0,r29; fp = sp 11687 0000a560 afbffff8 sw -8(r29),r31; push ret addr 11688 0000a564 2fbd0008 subui r29,r29,#8; alloc local storage 11689 0000a568 8fc10000 lw r1,(r30) 11690 0000a56c 8c210004 lw r1,4(r1) 11691 0000a570 8fdffff8 lw r31,-8(r30) 11692 0000a574 001ee820 add r29,r0,r30 11693 0000a578 8fdefffc lw r30,-4(r30) 11694 0000a57c 4be00000 jr r31 11695 0000a580 54000000 nop 11696 0000a584 .endproc _QueuePrev 11697 0000a584 .align 2 11698 0000a584 .proc _QueueFirst 11699 0000a584 .global _QueueFirst 11700 0000a584 _QueueFirst: 11701 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 11702 0000a584 afbefffc sw -4(r29),r30; push fp 11703 0000a588 001df020 add r30,r0,r29; fp = sp 11704 0000a58c afbffff8 sw -8(r29),r31; push ret addr 11705 0000a590 2fbd0008 subui r29,r29,#8; alloc local storage 11706 0000a594 8fc10000 lw r1,(r30) 11707 0000a598 8c210000 lw r1,(r1) 11708 0000a59c 8fdffff8 lw r31,-8(r30) 11709 0000a5a0 001ee820 add r29,r0,r30 11710 0000a5a4 8fdefffc lw r30,-4(r30) 11711 0000a5a8 4be00000 jr r31 11712 0000a5ac 54000000 nop 11713 0000a5b0 .endproc _QueueFirst 11714 0000a5b0 .align 2 11715 0000a5b0 .proc _QueueLast 11716 0000a5b0 .global _QueueLast 11717 0000a5b0 _QueueLast: 11718 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 11719 0000a5b0 afbefffc sw -4(r29),r30; push fp 11720 0000a5b4 001df020 add r30,r0,r29; fp = sp 11721 0000a5b8 afbffff8 sw -8(r29),r31; push ret addr 11722 0000a5bc 2fbd0008 subui r29,r29,#8; alloc local storage 11723 0000a5c0 8fc10000 lw r1,(r30) 11724 0000a5c4 8c210004 lw r1,4(r1) 11725 0000a5c8 8fdffff8 lw r31,-8(r30) 11726 0000a5cc 001ee820 add r29,r0,r30 11727 0000a5d0 8fdefffc lw r30,-4(r30) 11728 0000a5d4 4be00000 jr r31 11729 0000a5d8 54000000 nop 11730 0000a5dc .endproc _QueueLast 11731 0000a5dc .align 2 11732 0000a5dc .proc _QueueInsertAfter 11733 0000a5dc .global _QueueInsertAfter 11734 0000a5dc _QueueInsertAfter: 11735 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 11736 0000a5dc afbefffc sw -4(r29),r30; push fp 11737 0000a5e0 001df020 add r30,r0,r29; fp = sp 11738 0000a5e4 afbffff8 sw -8(r29),r31; push ret addr 11739 0000a5e8 2fbd0010 subui r29,r29,#16; alloc local storage 11740 0000a5ec afa20000 sw 0(r29),r2 11741 0000a5f0 afa30004 sw 4(r29),r3 11742 0000a5f4 8fc30000 lw r3,(r30) 11743 0000a5f8 8fc20004 lw r2,4(r30) 11744 0000a5fc 8fc10008 lw r1,8(r30) 11745 0000a600 ac230008 sw 8(r1),r3 11746 0000a604 ac220004 sw 4(r1),r2 11747 0000a608 8c5f0000 lw r31,(r2) 11748 0000a60c ac3f0000 sw (r1),r31 11749 0000a610 ac410000 sw (r2),r1 11750 0000a614 8c220000 lw r2,(r1) 11751 0000a618 ac410004 sw 4(r2),r1 11752 0000a61c 8c610008 lw r1,8(r3) 11753 0000a620 20210001 addi r1,r1,#1 11754 0000a624 ac610008 sw 8(r3),r1 11755 0000a628 8fa20000 lw r2,0(r29) 11756 0000a62c 8fa30004 lw r3,4(r29) 11757 0000a630 8fdffff8 lw r31,-8(r30) 11758 0000a634 001ee820 add r29,r0,r30 11759 0000a638 8fdefffc lw r30,-4(r30) 11760 0000a63c 4be00000 jr r31 11761 0000a640 54000000 nop 11762 0000a644 .endproc _QueueInsertAfter 11763 0000a644 .align 2 11764 0000a644 .proc _QueueInsertFirst 11765 0000a644 .global _QueueInsertFirst 11766 0000a644 _QueueInsertFirst: 11767 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 11768 0000a644 afbefffc sw -4(r29),r30; push fp 11769 0000a648 001df020 add r30,r0,r29; fp = sp 11770 0000a64c afbffff8 sw -8(r29),r31; push ret addr 11771 0000a650 2fbd0010 subui r29,r29,#16; alloc local storage 11772 0000a654 afa20000 sw 0(r29),r2 11773 0000a658 afa30004 sw 4(r29),r3 11774 0000a65c 8fc30000 lw r3,(r30) 11775 0000a660 8fc10004 lw r1,4(r30) 11776 0000a664 ac230008 sw 8(r1),r3 11777 0000a668 ac230004 sw 4(r1),r3 11778 0000a66c 8c7f0000 lw r31,(r3) 11779 0000a670 ac3f0000 sw (r1),r31 11780 0000a674 ac610000 sw (r3),r1 11781 0000a678 8c220000 lw r2,(r1) 11782 0000a67c ac410004 sw 4(r2),r1 11783 0000a680 8c610008 lw r1,8(r3) 11784 0000a684 20210001 addi r1,r1,#1 11785 0000a688 ac610008 sw 8(r3),r1 11786 0000a68c 8fa20000 lw r2,0(r29) 11787 0000a690 8fa30004 lw r3,4(r29) 11788 0000a694 8fdffff8 lw r31,-8(r30) 11789 0000a698 001ee820 add r29,r0,r30 11790 0000a69c 8fdefffc lw r30,-4(r30) 11791 0000a6a0 4be00000 jr r31 11792 0000a6a4 54000000 nop 11793 0000a6a8 .endproc _QueueInsertFirst 11794 0000a6a8 .align 2 11795 0000a6a8 .proc _QueueInsertLast 11796 0000a6a8 .global _QueueInsertLast 11797 0000a6a8 _QueueInsertLast: 11798 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 11799 0000a6a8 afbefffc sw -4(r29),r30; push fp 11800 0000a6ac 001df020 add r30,r0,r29; fp = sp 11801 0000a6b0 afbffff8 sw -8(r29),r31; push ret addr 11802 0000a6b4 2fbd0010 subui r29,r29,#16; alloc local storage 11803 0000a6b8 afa20000 sw 0(r29),r2 11804 0000a6bc afa30004 sw 4(r29),r3 11805 0000a6c0 8fc30000 lw r3,(r30) 11806 0000a6c4 8fc10004 lw r1,4(r30) 11807 0000a6c8 8c620004 lw r2,4(r3) 11808 0000a6cc ac230008 sw 8(r1),r3 11809 0000a6d0 ac220004 sw 4(r1),r2 11810 0000a6d4 8c5f0000 lw r31,(r2) 11811 0000a6d8 ac3f0000 sw (r1),r31 11812 0000a6dc ac410000 sw (r2),r1 11813 0000a6e0 8c220000 lw r2,(r1) 11814 0000a6e4 ac410004 sw 4(r2),r1 11815 0000a6e8 8c610008 lw r1,8(r3) 11816 0000a6ec 20210001 addi r1,r1,#1 11817 0000a6f0 ac610008 sw 8(r3),r1 11818 0000a6f4 8fa20000 lw r2,0(r29) 11819 0000a6f8 8fa30004 lw r3,4(r29) 11820 0000a6fc 8fdffff8 lw r31,-8(r30) 11821 0000a700 001ee820 add r29,r0,r30 11822 0000a704 8fdefffc lw r30,-4(r30) 11823 0000a708 4be00000 jr r31 11824 0000a70c 54000000 nop 11825 0000a710 .endproc _QueueInsertLast 11826 0000a710 .align 2 11827 0000a710 .proc _QueueRemove 11828 0000a710 .global _QueueRemove 11829 0000a710 _QueueRemove: 11830 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 11831 0000a710 afbefffc sw -4(r29),r30; push fp 11832 0000a714 001df020 add r30,r0,r29; fp = sp 11833 0000a718 afbffff8 sw -8(r29),r31; push ret addr 11834 0000a71c 2fbd0010 subui r29,r29,#16; alloc local storage 11835 0000a720 afa20000 sw 0(r29),r2 11836 0000a724 afa30004 sw 4(r29),r3 11837 0000a728 8fdf0000 lw r31,(r30) 11838 0000a72c 8fe10008 lw r1,8(r31) 11839 0000a730 8c210008 lw r1,8(r1) 11840 0000a734 6c210000 sgti r1,r1,#0 11841 0000a738 1020002c beqz r1,L44_LF8 11842 0000a73c 54000000 nop; not filled. 11843 0000a740 8fe10004 lw r1,4(r31) 11844 0000a744 8fe30000 lw r3,(r31) 11845 0000a748 ac230000 sw (r1),r3 11846 0000a74c 8fe10000 lw r1,(r31) 11847 0000a750 8fe30004 lw r3,4(r31) 11848 0000a754 ac230004 sw 4(r1),r3 11849 0000a758 8fe20008 lw r2,8(r31) 11850 0000a75c 8c410008 lw r1,8(r2) 11851 0000a760 2021ffff addi r1,r1,#-1 11852 0000a764 ac410008 sw 8(r2),r1 11853 0000a768 L44_LF8: 11854 0000a768 20030000 addi r3,r0,#0 11855 0000a76c afe30000 sw (r31),r3 11856 0000a770 8fa20000 lw r2,0(r29) 11857 0000a774 8fa30004 lw r3,4(r29) 11858 0000a778 8fdffff8 lw r31,-8(r30) 11859 0000a77c 001ee820 add r29,r0,r30 11860 0000a780 8fdefffc lw r30,-4(r30) 11861 0000a784 4be00000 jr r31 11862 0000a788 54000000 nop 11863 0000a78c .endproc _QueueRemove 11864 0000a78c .align 2 11865 0000a78c .proc _QueueLength 11866 0000a78c .global _QueueLength 11867 0000a78c _QueueLength: 11868 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 11869 0000a78c afbefffc sw -4(r29),r30; push fp 11870 0000a790 001df020 add r30,r0,r29; fp = sp 11871 0000a794 afbffff8 sw -8(r29),r31; push ret addr 11872 0000a798 2fbd0008 subui r29,r29,#8; alloc local storage 11873 0000a79c 8fc10000 lw r1,(r30) 11874 0000a7a0 8c210008 lw r1,8(r1) 11875 0000a7a4 8fdffff8 lw r31,-8(r30) 11876 0000a7a8 001ee820 add r29,r0,r30 11877 0000a7ac 8fdefffc lw r30,-4(r30) 11878 0000a7b0 4be00000 jr r31 11879 0000a7b4 54000000 nop 11880 0000a7b8 .endproc _QueueLength 11881 0000a7b8 .align 2 11882 0000a7b8 .proc _QueueEmpty 11883 0000a7b8 .global _QueueEmpty 11884 0000a7b8 _QueueEmpty: 11885 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 11886 0000a7b8 afbefffc sw -4(r29),r30; push fp 11887 0000a7bc 001df020 add r30,r0,r29; fp = sp 11888 0000a7c0 afbffff8 sw -8(r29),r31; push ret addr 11889 0000a7c4 2fbd0008 subui r29,r29,#8; alloc local storage 11890 0000a7c8 8fc10000 lw r1,(r30) 11891 0000a7cc 8c210008 lw r1,8(r1) 11892 0000a7d0 60210000 seqi r1,r1,#0 11893 0000a7d4 8fdffff8 lw r31,-8(r30) 11894 0000a7d8 001ee820 add r29,r0,r30 11895 0000a7dc 8fdefffc lw r30,-4(r30) 11896 0000a7e0 4be00000 jr r31 11897 0000a7e4 54000000 nop 11898 0000a7e8 .endproc _QueueEmpty 11899 0000a7e8 .data 11900 000157b4 .align 2 11901 000157b4 LC0_LF8: 11902 000157b4 496e6974 .ascii "Initializing queue link %d.\n\000" 11902 000157b8 69616c69 11902 000157bc 7a696e67 11902 000157c0 20717565 11902 000157c4 7565206c 11902 000157c8 696e6b20 11902 000157cc 25642e0a 11902 000157d0 00 11903 000157d1 .text 11904 0000a7e8 .align 2 11905 0000a7e8 .proc _QueueModuleInit 11906 0000a7e8 .global _QueueModuleInit 11907 0000a7e8 _QueueModuleInit: 11908 ; Function 'QueueModuleInit'; 0 bytes of locals, 4 regs to save. 11909 0000a7e8 afbefffc sw -4(r29),r30; push fp 11910 0000a7ec 001df020 add r30,r0,r29; fp = sp 11911 0000a7f0 afbffff8 sw -8(r29),r31; push ret addr 11912 0000a7f4 2fbd0018 subui r29,r29,#24; alloc local storage 11913 0000a7f8 afa20000 sw 0(r29),r2 11914 0000a7fc afa30004 sw 4(r29),r3 11915 0000a800 afa40008 sw 8(r29),r4 11916 0000a804 afa5000c sw 12(r29),r5 11917 0000a808 23bdfff8 addi r29,r29,#-8 11918 0000a80c 3c050001 lhi r5,((_freeLinks)>>16)&0xffff 11919 0000a810 24a55820 addui r5,r5,(_freeLinks)&0xffff 11920 0000a814 afa50000 sw (r29),r5 11921 0000a818 0c0000e0 jal _QueueInit 11922 0000a81c 54000000 nop; not filled. 11923 0000a820 20030000 addi r3,r0,#0 11924 0000a824 23bd0008 addi r29,r29,#8 11925 0000a828 3c040001 lhi r4,((_debugstr)>>16)&0xffff 11926 0000a82c 24844038 addui r4,r4,(_debugstr)&0xffff 11927 0000a830 3c020001 lhi r2,((_linkpool_LF8)>>16)&0xffff 11928 0000a834 2442582c addui r2,r2,(_linkpool_LF8)&0xffff 11929 0000a838 L63_LF8: 11930 0000a838 23bdfff8 addi r29,r29,#-8 11931 0000a83c afa40000 sw (r29),r4 11932 0000a840 20050069 addi r5,r0,#105 11933 0000a844 afa50004 sw 4(r29),r5 11934 0000a848 0fffbd40 jal _dindex 11935 0000a84c 54000000 nop; not filled. 11936 0000a850 23bd0008 addi r29,r29,#8 11937 0000a854 64210000 snei r1,r1,#0 11938 0000a858 1420002c bnez r1,L65_LF8 11939 0000a85c 54000000 nop; not filled. 11940 0000a860 23bdfff8 addi r29,r29,#-8 11941 0000a864 afa40000 sw (r29),r4 11942 0000a868 2005002b addi r5,r0,#43 11943 0000a86c afa50004 sw 4(r29),r5 11944 0000a870 0fffbd18 jal _dindex 11945 0000a874 54000000 nop; not filled. 11946 0000a878 23bd0008 addi r29,r29,#8 11947 0000a87c 64210000 snei r1,r1,#0 11948 0000a880 10200024 beqz r1,L64_LF8 11949 0000a884 54000000 nop; not filled. 11950 0000a888 L65_LF8: 11951 0000a888 23bdfff8 addi r29,r29,#-8 11952 0000a88c 3c050001 lhi r5,((LC0_LF8)>>16)&0xffff 11953 0000a890 24a557b4 addui r5,r5,(LC0_LF8)&0xffff 11954 0000a894 afa50000 sw (r29),r5 11955 0000a898 afa30004 sw 4(r29),r3 11956 0000a89c 0c002984 jal _printf 11957 0000a8a0 54000000 nop; not filled. 11958 0000a8a4 23bd0008 addi r29,r29,#8 11959 0000a8a8 L64_LF8: 11960 0000a8a8 20050000 addi r5,r0,#0 11961 0000a8ac ac450000 sw (r2),r5 11962 0000a8b0 23bdfff8 addi r29,r29,#-8 11963 0000a8b4 afa20000 sw (r29),r2 11964 0000a8b8 0c000078 jal _QueueFreeLink 11965 0000a8bc 54000000 nop; not filled. 11966 0000a8c0 23bd0008 addi r29,r29,#8 11967 0000a8c4 20420010 addi r2,r2,#16 11968 0000a8c8 20630001 addi r3,r3,#1 11969 0000a8cc 7061018f slei r1,r3,#399 11970 0000a8d0 1420ff64 bnez r1,L63_LF8 11971 0000a8d4 54000000 nop; not filled. 11972 0000a8d8 8fa20000 lw r2,0(r29) 11973 0000a8dc 8fa30004 lw r3,4(r29) 11974 0000a8e0 8fa40008 lw r4,8(r29) 11975 0000a8e4 8fa5000c lw r5,12(r29) 11976 0000a8e8 8fdffff8 lw r31,-8(r30) 11977 0000a8ec 001ee820 add r29,r0,r30 11978 0000a8f0 8fdefffc lw r30,-4(r30) 11979 0000a8f4 4be00000 jr r31 11980 0000a8f8 54000000 nop 11981 0000a8fc .endproc _QueueModuleInit 11982 0000a8fc .align 2 11983 0000a8fc .proc _QueueInit 11984 0000a8fc .global _QueueInit 11985 0000a8fc _QueueInit: 11986 ; Function 'QueueInit'; 0 bytes of locals, 0 regs to save. 11987 0000a8fc afbefffc sw -4(r29),r30; push fp 11988 0000a900 001df020 add r30,r0,r29; fp = sp 11989 0000a904 afbffff8 sw -8(r29),r31; push ret addr 11990 0000a908 2fbd0008 subui r29,r29,#8; alloc local storage 11991 0000a90c 8fc10000 lw r1,(r30) 11992 0000a910 ac210000 sw (r1),r1 11993 0000a914 ac210004 sw 4(r1),r1 11994 0000a918 201f0000 addi r31,r0,#0 11995 0000a91c ac3f0008 sw 8(r1),r31 11996 0000a920 8fdffff8 lw r31,-8(r30) 11997 0000a924 001ee820 add r29,r0,r30 11998 0000a928 8fdefffc lw r30,-4(r30) 11999 0000a92c 4be00000 jr r31 12000 0000a930 54000000 nop 12001 0000a934 .endproc _QueueInit 12002 0000a934 .data 12003 000157d1 .align 2 12004 000157d4 LC1_LF8: 12005 000157d4 25733a20 .ascii "%s: %s\n\000" 12005 000157d8 25730a00 12006 000157dc .align 2 12007 000157dc LC2_LF8: 12008 000157dc 51756575 .ascii "QueueFreeLink\000" 12008 000157e0 65467265 12008 000157e4 654c696e 12008 000157e8 6b00 12009 000157ea .align 2 12010 000157ec LC3_LF8: 12011 000157ec 4c696e6b .ascii "Link not empty\000" 12011 000157f0 206e6f74 12011 000157f4 20656d70 12011 000157f8 747900 12012 000157fb .text 12013 0000a934 .align 2 12014 0000a934 .proc _QueueFreeLink 12015 0000a934 .global _QueueFreeLink 12016 0000a934 _QueueFreeLink: 12017 ; Function 'QueueFreeLink'; 0 bytes of locals, 3 regs to save. 12018 0000a934 afbefffc sw -4(r29),r30; push fp 12019 0000a938 001df020 add r30,r0,r29; fp = sp 12020 0000a93c afbffff8 sw -8(r29),r31; push ret addr 12021 0000a940 2fbd0018 subui r29,r29,#24; alloc local storage 12022 0000a944 afa20000 sw 0(r29),r2 12023 0000a948 afa30004 sw 4(r29),r3 12024 0000a94c afa40008 sw 8(r29),r4 12025 0000a950 8fc30000 lw r3,(r30) 12026 0000a954 8c610000 lw r1,(r3) 12027 0000a958 64210000 snei r1,r1,#0 12028 0000a95c 10200038 beqz r1,L77_LF8 12029 0000a960 54000000 nop; not filled. 12030 0000a964 23bdfff0 addi r29,r29,#-16 12031 0000a968 3c040001 lhi r4,((LC1_LF8)>>16)&0xffff 12032 0000a96c 248457d4 addui r4,r4,(LC1_LF8)&0xffff 12033 0000a970 afa40000 sw (r29),r4 12034 0000a974 3c010001 lhi r1,((LC2_LF8)>>16)&0xffff 12035 0000a978 242157dc addui r1,r1,(LC2_LF8)&0xffff 12036 0000a97c afa10004 sw 4(r29),r1 12037 0000a980 3c040001 lhi r4,((LC3_LF8)>>16)&0xffff 12038 0000a984 248457ec addui r4,r4,(LC3_LF8)&0xffff 12039 0000a988 afa40008 sw 8(r29),r4 12040 0000a98c 0c002894 jal _printf 12041 0000a990 54000000 nop; not filled. 12042 0000a994 23bd0010 addi r29,r29,#16 12043 0000a998 L77_LF8: 12044 0000a998 3c020001 lhi r2,((_freeLinks)>>16)&0xffff 12045 0000a99c 24425820 addui r2,r2,(_freeLinks)&0xffff 12046 0000a9a0 8c410004 lw r1,4(r2) 12047 0000a9a4 ac620008 sw 8(r3),r2 12048 0000a9a8 ac610004 sw 4(r3),r1 12049 0000a9ac 8c240000 lw r4,(r1) 12050 0000a9b0 ac640000 sw (r3),r4 12051 0000a9b4 ac230000 sw (r1),r3 12052 0000a9b8 8c610000 lw r1,(r3) 12053 0000a9bc ac230004 sw 4(r1),r3 12054 0000a9c0 8c410008 lw r1,8(r2) 12055 0000a9c4 20210001 addi r1,r1,#1 12056 0000a9c8 ac410008 sw 8(r2),r1 12057 0000a9cc 8fa20000 lw r2,0(r29) 12058 0000a9d0 8fa30004 lw r3,4(r29) 12059 0000a9d4 8fa40008 lw r4,8(r29) 12060 0000a9d8 8fdffff8 lw r31,-8(r30) 12061 0000a9dc 001ee820 add r29,r0,r30 12062 0000a9e0 8fdefffc lw r30,-4(r30) 12063 0000a9e4 4be00000 jr r31 12064 0000a9e8 54000000 nop 12065 0000a9ec .endproc _QueueFreeLink 12066 0000a9ec .data 12067 000157fb .align 2 12068 000157fc LC4_LF8: 12069 000157fc 51756575 .ascii "QueueAllocLink\000" 12069 00015800 65416c6c 12069 00015804 6f634c69 12069 00015808 6e6b00 12070 0001580b .align 2 12071 0001580c LC5_LF8: 12072 0001580c 4c696e6b .ascii "Link not allocated!\000" 12072 00015810 206e6f74 12072 00015814 20616c6c 12072 00015818 6f636174 12072 0001581c 65642100 12073 00015820 .text 12074 0000a9ec .align 2 12075 0000a9ec .proc _QueueAllocLink 12076 0000a9ec .global _QueueAllocLink 12077 0000a9ec _QueueAllocLink: 12078 ; Function 'QueueAllocLink'; 0 bytes of locals, 3 regs to save. 12079 0000a9ec afbefffc sw -4(r29),r30; push fp 12080 0000a9f0 001df020 add r30,r0,r29; fp = sp 12081 0000a9f4 afbffff8 sw -8(r29),r31; push ret addr 12082 0000a9f8 2fbd0018 subui r29,r29,#24; alloc local storage 12083 0000a9fc afa20000 sw 0(r29),r2 12084 0000aa00 afa30004 sw 4(r29),r3 12085 0000aa04 afa40008 sw 8(r29),r4 12086 0000aa08 3c020001 lhi r2,((_freeLinks)>>16)&0xffff 12087 0000aa0c 24425820 addui r2,r2,(_freeLinks)&0xffff 12088 0000aa10 8c410008 lw r1,8(r2) 12089 0000aa14 60210000 seqi r1,r1,#0 12090 0000aa18 14200054 bnez r1,L92_LF8 12091 0000aa1c 54000000 nop; not filled. 12092 0000aa20 8c430000 lw r3,(r2) 12093 0000aa24 8c610008 lw r1,8(r3) 12094 0000aa28 8c210008 lw r1,8(r1) 12095 0000aa2c 6c210000 sgti r1,r1,#0 12096 0000aa30 1020002c beqz r1,L97_LF8 12097 0000aa34 54000000 nop; not filled. 12098 0000aa38 8c610004 lw r1,4(r3) 12099 0000aa3c 8c640000 lw r4,(r3) 12100 0000aa40 ac240000 sw (r1),r4 12101 0000aa44 8c610000 lw r1,(r3) 12102 0000aa48 8c640004 lw r4,4(r3) 12103 0000aa4c ac240004 sw 4(r1),r4 12104 0000aa50 8c620008 lw r2,8(r3) 12105 0000aa54 8c410008 lw r1,8(r2) 12106 0000aa58 2021ffff addi r1,r1,#-1 12107 0000aa5c ac410008 sw 8(r2),r1 12108 0000aa60 L97_LF8: 12109 0000aa60 20040000 addi r4,r0,#0 12110 0000aa64 ac640000 sw (r3),r4 12111 0000aa68 08000008 j L98_LF8 12112 0000aa6c 54000000 nop; not filled. 12113 0000aa70 L92_LF8: 12114 0000aa70 20030000 addi r3,r0,#0 12115 0000aa74 L98_LF8: 12116 0000aa74 64610000 snei r1,r3,#0 12117 0000aa78 14200038 bnez r1,L100_LF8 12118 0000aa7c 54000000 nop; not filled. 12119 0000aa80 23bdfff0 addi r29,r29,#-16 12120 0000aa84 3c040001 lhi r4,((LC1_LF8)>>16)&0xffff 12121 0000aa88 248457d4 addui r4,r4,(LC1_LF8)&0xffff 12122 0000aa8c afa40000 sw (r29),r4 12123 0000aa90 3c010001 lhi r1,((LC4_LF8)>>16)&0xffff 12124 0000aa94 242157fc addui r1,r1,(LC4_LF8)&0xffff 12125 0000aa98 afa10004 sw 4(r29),r1 12126 0000aa9c 3c040001 lhi r4,((LC5_LF8)>>16)&0xffff 12127 0000aaa0 2484580c addui r4,r4,(LC5_LF8)&0xffff 12128 0000aaa4 afa40008 sw 8(r29),r4 12129 0000aaa8 0c002778 jal _printf 12130 0000aaac 54000000 nop; not filled. 12131 0000aab0 23bd0010 addi r29,r29,#16 12132 0000aab4 L100_LF8: 12133 0000aab4 00030820 add r1,r0,r3 12134 0000aab8 8fa20000 lw r2,0(r29) 12135 0000aabc 8fa30004 lw r3,4(r29) 12136 0000aac0 8fa40008 lw r4,8(r29) 12137 0000aac4 8fdffff8 lw r31,-8(r30) 12138 0000aac8 001ee820 add r29,r0,r30 12139 0000aacc 8fdefffc lw r30,-4(r30) 12140 0000aad0 4be00000 jr r31 12141 0000aad4 54000000 nop 12142 0000aad8 .endproc _QueueAllocLink 12143 0000aad8 .data 12144 00015820 .align 2 12145 00015820 .global _freeLinks 12146 00015820 _freeLinks: 12147 00015820 .space 12 12148 0001582c .align 2 12149 0001582c _linkpool_LF8: 12150 0001582c .space 6400 12151 ; Compiled by GCC 12153 0001712c .align 2 12154 0001712c _rcsid_LF9: 12155 0001712c 3a207472 .ascii "$Id: traps.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" 12155 00017130 6170732e 12155 00017134 632c7620 12155 00017138 312e3120 12155 0001713c 32303030 12155 00017140 2f30392f 12155 00017144 32302030 12155 00017148 313a3530 12155 0001714c 3a313920 12155 00017150 656c6d20 12155 00017154 45787020 12155 00017158 656c6d20 12155 0001715c 303030 12156 0001715f .text 12157 0000aad8 .align 2 12158 0000aad8 .proc _isspace 12159 0000aad8 .global _isspace 12160 0000aad8 _isspace: 12161 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 12162 0000aad8 afbefffc sw -4(r29),r30; push fp 12163 0000aadc 001df020 add r30,r0,r29; fp = sp 12164 0000aae0 afbffff8 sw -8(r29),r31; push ret addr 12165 0000aae4 2fbd0010 subui r29,r29,#16; alloc local storage 12166 0000aae8 afa20000 sw 0(r29),r2 12167 0000aaec 83c20003 lb r2,3(r30) 12168 0000aaf0 201f0000 addi r31,r0,#0 12169 0000aaf4 304100ff andi r1,r2,#0x00ff 12170 0000aaf8 60210020 seqi r1,r1,#32 12171 0000aafc 14200018 bnez r1,L6_LF9 12172 0000ab00 54000000 nop; not filled. 12173 0000ab04 2041fff7 addi r1,r2,#-9 12174 0000ab08 302100ff andi r1,r1,#0x00ff 12175 0000ab0c 70210001 sleui r1,r1,#1 12176 0000ab10 10200008 beqz r1,L5_LF9 12177 0000ab14 54000000 nop; not filled. 12178 0000ab18 L6_LF9: 12179 0000ab18 201f0001 addi r31,r0,#1 12180 0000ab1c L5_LF9: 12181 0000ab1c 001f0820 add r1,r0,r31 12182 0000ab20 8fa20000 lw r2,0(r29) 12183 0000ab24 8fdffff8 lw r31,-8(r30) 12184 0000ab28 001ee820 add r29,r0,r30 12185 0000ab2c 8fdefffc lw r30,-4(r30) 12186 0000ab30 4be00000 jr r31 12187 0000ab34 54000000 nop 12188 0000ab38 .endproc _isspace 12189 0000ab38 .align 2 12190 0000ab38 .proc _isxdigit 12191 0000ab38 .global _isxdigit 12192 0000ab38 _isxdigit: 12193 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 12194 0000ab38 afbefffc sw -4(r29),r30; push fp 12195 0000ab3c 001df020 add r30,r0,r29; fp = sp 12196 0000ab40 afbffff8 sw -8(r29),r31; push ret addr 12197 0000ab44 2fbd0010 subui r29,r29,#16; alloc local storage 12198 0000ab48 afa20000 sw 0(r29),r2 12199 0000ab4c 83df0003 lb r31,3(r30) 12200 0000ab50 20020000 addi r2,r0,#0 12201 0000ab54 23e1ffd0 addi r1,r31,#-48 12202 0000ab58 302100ff andi r1,r1,#0x00ff 12203 0000ab5c 70210009 sleui r1,r1,#9 12204 0000ab60 14200028 bnez r1,L12_LF9 12205 0000ab64 54000000 nop; not filled. 12206 0000ab68 23e1ff9f addi r1,r31,#-97 12207 0000ab6c 302100ff andi r1,r1,#0x00ff 12208 0000ab70 70210005 sleui r1,r1,#5 12209 0000ab74 14200014 bnez r1,L12_LF9 12210 0000ab78 54000000 nop; not filled. 12211 0000ab7c 33e100ff andi r1,r31,#0x00ff 12212 0000ab80 64210041 snei r1,r1,#65 12213 0000ab84 14200008 bnez r1,L11_LF9 12214 0000ab88 54000000 nop; not filled. 12215 0000ab8c L12_LF9: 12216 0000ab8c 20020001 addi r2,r0,#1 12217 0000ab90 L11_LF9: 12218 0000ab90 00020820 add r1,r0,r2 12219 0000ab94 8fa20000 lw r2,0(r29) 12220 0000ab98 8fdffff8 lw r31,-8(r30) 12221 0000ab9c 001ee820 add r29,r0,r30 12222 0000aba0 8fdefffc lw r30,-4(r30) 12223 0000aba4 4be00000 jr r31 12224 0000aba8 54000000 nop 12225 0000abac .endproc _isxdigit 12226 0000abac .align 2 12227 0000abac .proc _DisableIntrs 12228 0000abac .global _DisableIntrs 12229 0000abac _DisableIntrs: 12230 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 12231 0000abac afbefffc sw -4(r29),r30; push fp 12232 0000abb0 001df020 add r30,r0,r29; fp = sp 12233 0000abb4 afbffff8 sw -8(r29),r31; push ret addr 12234 0000abb8 2fbd0010 subui r29,r29,#16; alloc local storage 12235 0000abbc afa20000 sw 0(r29),r2 12236 0000abc0 23bdfff8 addi r29,r29,#-8 12237 0000abc4 2002000f addi r2,r0,#15 12238 0000abc8 afa20000 sw (r29),r2 12239 0000abcc 0fff66b8 jal _SetIntrs 12240 0000abd0 54000000 nop; not filled. 12241 0000abd4 23bd0008 addi r29,r29,#8 12242 0000abd8 8fa20000 lw r2,0(r29) 12243 0000abdc 8fdffff8 lw r31,-8(r30) 12244 0000abe0 001ee820 add r29,r0,r30 12245 0000abe4 8fdefffc lw r30,-4(r30) 12246 0000abe8 4be00000 jr r31 12247 0000abec 54000000 nop 12248 0000abf0 .endproc _DisableIntrs 12249 0000abf0 .align 2 12250 0000abf0 .proc _EnableIntrs 12251 0000abf0 .global _EnableIntrs 12252 0000abf0 _EnableIntrs: 12253 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 12254 0000abf0 afbefffc sw -4(r29),r30; push fp 12255 0000abf4 001df020 add r30,r0,r29; fp = sp 12256 0000abf8 afbffff8 sw -8(r29),r31; push ret addr 12257 0000abfc 2fbd0010 subui r29,r29,#16; alloc local storage 12258 0000ac00 afa20000 sw 0(r29),r2 12259 0000ac04 23bdfff8 addi r29,r29,#-8 12260 0000ac08 20020000 addi r2,r0,#0 12261 0000ac0c afa20000 sw (r29),r2 12262 0000ac10 0fff6674 jal _SetIntrs 12263 0000ac14 54000000 nop; not filled. 12264 0000ac18 23bd0008 addi r29,r29,#8 12265 0000ac1c 8fa20000 lw r2,0(r29) 12266 0000ac20 8fdffff8 lw r31,-8(r30) 12267 0000ac24 001ee820 add r29,r0,r30 12268 0000ac28 8fdefffc lw r30,-4(r30) 12269 0000ac2c 4be00000 jr r31 12270 0000ac30 54000000 nop 12271 0000ac34 .endproc _EnableIntrs 12272 0000ac34 .align 2 12273 0000ac34 .proc _RestoreIntrs 12274 0000ac34 .global _RestoreIntrs 12275 0000ac34 _RestoreIntrs: 12276 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 12277 0000ac34 afbefffc sw -4(r29),r30; push fp 12278 0000ac38 001df020 add r30,r0,r29; fp = sp 12279 0000ac3c afbffff8 sw -8(r29),r31; push ret addr 12280 0000ac40 2fbd0010 subui r29,r29,#16; alloc local storage 12281 0000ac44 afa20000 sw 0(r29),r2 12282 0000ac48 23bdfff8 addi r29,r29,#-8 12283 0000ac4c 8fc20000 lw r2,(r30) 12284 0000ac50 afa20000 sw (r29),r2 12285 0000ac54 0fff6630 jal _SetIntrs 12286 0000ac58 54000000 nop; not filled. 12287 0000ac5c 23bd0008 addi r29,r29,#8 12288 0000ac60 8fa20000 lw r2,0(r29) 12289 0000ac64 8fdffff8 lw r31,-8(r30) 12290 0000ac68 001ee820 add r29,r0,r30 12291 0000ac6c 8fdefffc lw r30,-4(r30) 12292 0000ac70 4be00000 jr r31 12293 0000ac74 54000000 nop 12294 0000ac78 .endproc _RestoreIntrs 12295 0000ac78 .align 2 12296 0000ac78 .proc _QueueLinkInit 12297 0000ac78 .global _QueueLinkInit 12298 0000ac78 _QueueLinkInit: 12299 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 12300 0000ac78 afbefffc sw -4(r29),r30; push fp 12301 0000ac7c 001df020 add r30,r0,r29; fp = sp 12302 0000ac80 afbffff8 sw -8(r29),r31; push ret addr 12303 0000ac84 2fbd0010 subui r29,r29,#16; alloc local storage 12304 0000ac88 afa20000 sw 0(r29),r2 12305 0000ac8c 8fc10000 lw r1,(r30) 12306 0000ac90 8fc20004 lw r2,4(r30) 12307 0000ac94 201f0000 addi r31,r0,#0 12308 0000ac98 ac3f0000 sw (r1),r31 12309 0000ac9c ac22000c sw 12(r1),r2 12310 0000aca0 8fa20000 lw r2,0(r29) 12311 0000aca4 8fdffff8 lw r31,-8(r30) 12312 0000aca8 001ee820 add r29,r0,r30 12313 0000acac 8fdefffc lw r30,-4(r30) 12314 0000acb0 4be00000 jr r31 12315 0000acb4 54000000 nop 12316 0000acb8 .endproc _QueueLinkInit 12317 0000acb8 .align 2 12318 0000acb8 .proc _QueueNext 12319 0000acb8 .global _QueueNext 12320 0000acb8 _QueueNext: 12321 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 12322 0000acb8 afbefffc sw -4(r29),r30; push fp 12323 0000acbc 001df020 add r30,r0,r29; fp = sp 12324 0000acc0 afbffff8 sw -8(r29),r31; push ret addr 12325 0000acc4 2fbd0008 subui r29,r29,#8; alloc local storage 12326 0000acc8 8fc10000 lw r1,(r30) 12327 0000accc 8c210000 lw r1,(r1) 12328 0000acd0 8fdffff8 lw r31,-8(r30) 12329 0000acd4 001ee820 add r29,r0,r30 12330 0000acd8 8fdefffc lw r30,-4(r30) 12331 0000acdc 4be00000 jr r31 12332 0000ace0 54000000 nop 12333 0000ace4 .endproc _QueueNext 12334 0000ace4 .align 2 12335 0000ace4 .proc _QueuePrev 12336 0000ace4 .global _QueuePrev 12337 0000ace4 _QueuePrev: 12338 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 12339 0000ace4 afbefffc sw -4(r29),r30; push fp 12340 0000ace8 001df020 add r30,r0,r29; fp = sp 12341 0000acec afbffff8 sw -8(r29),r31; push ret addr 12342 0000acf0 2fbd0008 subui r29,r29,#8; alloc local storage 12343 0000acf4 8fc10000 lw r1,(r30) 12344 0000acf8 8c210004 lw r1,4(r1) 12345 0000acfc 8fdffff8 lw r31,-8(r30) 12346 0000ad00 001ee820 add r29,r0,r30 12347 0000ad04 8fdefffc lw r30,-4(r30) 12348 0000ad08 4be00000 jr r31 12349 0000ad0c 54000000 nop 12350 0000ad10 .endproc _QueuePrev 12351 0000ad10 .align 2 12352 0000ad10 .proc _QueueFirst 12353 0000ad10 .global _QueueFirst 12354 0000ad10 _QueueFirst: 12355 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 12356 0000ad10 afbefffc sw -4(r29),r30; push fp 12357 0000ad14 001df020 add r30,r0,r29; fp = sp 12358 0000ad18 afbffff8 sw -8(r29),r31; push ret addr 12359 0000ad1c 2fbd0008 subui r29,r29,#8; alloc local storage 12360 0000ad20 8fc10000 lw r1,(r30) 12361 0000ad24 8c210000 lw r1,(r1) 12362 0000ad28 8fdffff8 lw r31,-8(r30) 12363 0000ad2c 001ee820 add r29,r0,r30 12364 0000ad30 8fdefffc lw r30,-4(r30) 12365 0000ad34 4be00000 jr r31 12366 0000ad38 54000000 nop 12367 0000ad3c .endproc _QueueFirst 12368 0000ad3c .align 2 12369 0000ad3c .proc _QueueLast 12370 0000ad3c .global _QueueLast 12371 0000ad3c _QueueLast: 12372 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 12373 0000ad3c afbefffc sw -4(r29),r30; push fp 12374 0000ad40 001df020 add r30,r0,r29; fp = sp 12375 0000ad44 afbffff8 sw -8(r29),r31; push ret addr 12376 0000ad48 2fbd0008 subui r29,r29,#8; alloc local storage 12377 0000ad4c 8fc10000 lw r1,(r30) 12378 0000ad50 8c210004 lw r1,4(r1) 12379 0000ad54 8fdffff8 lw r31,-8(r30) 12380 0000ad58 001ee820 add r29,r0,r30 12381 0000ad5c 8fdefffc lw r30,-4(r30) 12382 0000ad60 4be00000 jr r31 12383 0000ad64 54000000 nop 12384 0000ad68 .endproc _QueueLast 12385 0000ad68 .align 2 12386 0000ad68 .proc _QueueInsertAfter 12387 0000ad68 .global _QueueInsertAfter 12388 0000ad68 _QueueInsertAfter: 12389 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 12390 0000ad68 afbefffc sw -4(r29),r30; push fp 12391 0000ad6c 001df020 add r30,r0,r29; fp = sp 12392 0000ad70 afbffff8 sw -8(r29),r31; push ret addr 12393 0000ad74 2fbd0010 subui r29,r29,#16; alloc local storage 12394 0000ad78 afa20000 sw 0(r29),r2 12395 0000ad7c afa30004 sw 4(r29),r3 12396 0000ad80 8fc30000 lw r3,(r30) 12397 0000ad84 8fc20004 lw r2,4(r30) 12398 0000ad88 8fc10008 lw r1,8(r30) 12399 0000ad8c ac230008 sw 8(r1),r3 12400 0000ad90 ac220004 sw 4(r1),r2 12401 0000ad94 8c5f0000 lw r31,(r2) 12402 0000ad98 ac3f0000 sw (r1),r31 12403 0000ad9c ac410000 sw (r2),r1 12404 0000ada0 8c220000 lw r2,(r1) 12405 0000ada4 ac410004 sw 4(r2),r1 12406 0000ada8 8c610008 lw r1,8(r3) 12407 0000adac 20210001 addi r1,r1,#1 12408 0000adb0 ac610008 sw 8(r3),r1 12409 0000adb4 8fa20000 lw r2,0(r29) 12410 0000adb8 8fa30004 lw r3,4(r29) 12411 0000adbc 8fdffff8 lw r31,-8(r30) 12412 0000adc0 001ee820 add r29,r0,r30 12413 0000adc4 8fdefffc lw r30,-4(r30) 12414 0000adc8 4be00000 jr r31 12415 0000adcc 54000000 nop 12416 0000add0 .endproc _QueueInsertAfter 12417 0000add0 .align 2 12418 0000add0 .proc _QueueInsertFirst 12419 0000add0 .global _QueueInsertFirst 12420 0000add0 _QueueInsertFirst: 12421 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 12422 0000add0 afbefffc sw -4(r29),r30; push fp 12423 0000add4 001df020 add r30,r0,r29; fp = sp 12424 0000add8 afbffff8 sw -8(r29),r31; push ret addr 12425 0000addc 2fbd0010 subui r29,r29,#16; alloc local storage 12426 0000ade0 afa20000 sw 0(r29),r2 12427 0000ade4 afa30004 sw 4(r29),r3 12428 0000ade8 8fc30000 lw r3,(r30) 12429 0000adec 8fc10004 lw r1,4(r30) 12430 0000adf0 ac230008 sw 8(r1),r3 12431 0000adf4 ac230004 sw 4(r1),r3 12432 0000adf8 8c7f0000 lw r31,(r3) 12433 0000adfc ac3f0000 sw (r1),r31 12434 0000ae00 ac610000 sw (r3),r1 12435 0000ae04 8c220000 lw r2,(r1) 12436 0000ae08 ac410004 sw 4(r2),r1 12437 0000ae0c 8c610008 lw r1,8(r3) 12438 0000ae10 20210001 addi r1,r1,#1 12439 0000ae14 ac610008 sw 8(r3),r1 12440 0000ae18 8fa20000 lw r2,0(r29) 12441 0000ae1c 8fa30004 lw r3,4(r29) 12442 0000ae20 8fdffff8 lw r31,-8(r30) 12443 0000ae24 001ee820 add r29,r0,r30 12444 0000ae28 8fdefffc lw r30,-4(r30) 12445 0000ae2c 4be00000 jr r31 12446 0000ae30 54000000 nop 12447 0000ae34 .endproc _QueueInsertFirst 12448 0000ae34 .align 2 12449 0000ae34 .proc _QueueInsertLast 12450 0000ae34 .global _QueueInsertLast 12451 0000ae34 _QueueInsertLast: 12452 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 12453 0000ae34 afbefffc sw -4(r29),r30; push fp 12454 0000ae38 001df020 add r30,r0,r29; fp = sp 12455 0000ae3c afbffff8 sw -8(r29),r31; push ret addr 12456 0000ae40 2fbd0010 subui r29,r29,#16; alloc local storage 12457 0000ae44 afa20000 sw 0(r29),r2 12458 0000ae48 afa30004 sw 4(r29),r3 12459 0000ae4c 8fc30000 lw r3,(r30) 12460 0000ae50 8fc10004 lw r1,4(r30) 12461 0000ae54 8c620004 lw r2,4(r3) 12462 0000ae58 ac230008 sw 8(r1),r3 12463 0000ae5c ac220004 sw 4(r1),r2 12464 0000ae60 8c5f0000 lw r31,(r2) 12465 0000ae64 ac3f0000 sw (r1),r31 12466 0000ae68 ac410000 sw (r2),r1 12467 0000ae6c 8c220000 lw r2,(r1) 12468 0000ae70 ac410004 sw 4(r2),r1 12469 0000ae74 8c610008 lw r1,8(r3) 12470 0000ae78 20210001 addi r1,r1,#1 12471 0000ae7c ac610008 sw 8(r3),r1 12472 0000ae80 8fa20000 lw r2,0(r29) 12473 0000ae84 8fa30004 lw r3,4(r29) 12474 0000ae88 8fdffff8 lw r31,-8(r30) 12475 0000ae8c 001ee820 add r29,r0,r30 12476 0000ae90 8fdefffc lw r30,-4(r30) 12477 0000ae94 4be00000 jr r31 12478 0000ae98 54000000 nop 12479 0000ae9c .endproc _QueueInsertLast 12480 0000ae9c .align 2 12481 0000ae9c .proc _QueueRemove 12482 0000ae9c .global _QueueRemove 12483 0000ae9c _QueueRemove: 12484 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 12485 0000ae9c afbefffc sw -4(r29),r30; push fp 12486 0000aea0 001df020 add r30,r0,r29; fp = sp 12487 0000aea4 afbffff8 sw -8(r29),r31; push ret addr 12488 0000aea8 2fbd0010 subui r29,r29,#16; alloc local storage 12489 0000aeac afa20000 sw 0(r29),r2 12490 0000aeb0 afa30004 sw 4(r29),r3 12491 0000aeb4 8fdf0000 lw r31,(r30) 12492 0000aeb8 8fe10008 lw r1,8(r31) 12493 0000aebc 8c210008 lw r1,8(r1) 12494 0000aec0 6c210000 sgti r1,r1,#0 12495 0000aec4 1020002c beqz r1,L44_LF9 12496 0000aec8 54000000 nop; not filled. 12497 0000aecc 8fe10004 lw r1,4(r31) 12498 0000aed0 8fe30000 lw r3,(r31) 12499 0000aed4 ac230000 sw (r1),r3 12500 0000aed8 8fe10000 lw r1,(r31) 12501 0000aedc 8fe30004 lw r3,4(r31) 12502 0000aee0 ac230004 sw 4(r1),r3 12503 0000aee4 8fe20008 lw r2,8(r31) 12504 0000aee8 8c410008 lw r1,8(r2) 12505 0000aeec 2021ffff addi r1,r1,#-1 12506 0000aef0 ac410008 sw 8(r2),r1 12507 0000aef4 L44_LF9: 12508 0000aef4 20030000 addi r3,r0,#0 12509 0000aef8 afe30000 sw (r31),r3 12510 0000aefc 8fa20000 lw r2,0(r29) 12511 0000af00 8fa30004 lw r3,4(r29) 12512 0000af04 8fdffff8 lw r31,-8(r30) 12513 0000af08 001ee820 add r29,r0,r30 12514 0000af0c 8fdefffc lw r30,-4(r30) 12515 0000af10 4be00000 jr r31 12516 0000af14 54000000 nop 12517 0000af18 .endproc _QueueRemove 12518 0000af18 .align 2 12519 0000af18 .proc _QueueLength 12520 0000af18 .global _QueueLength 12521 0000af18 _QueueLength: 12522 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 12523 0000af18 afbefffc sw -4(r29),r30; push fp 12524 0000af1c 001df020 add r30,r0,r29; fp = sp 12525 0000af20 afbffff8 sw -8(r29),r31; push ret addr 12526 0000af24 2fbd0008 subui r29,r29,#8; alloc local storage 12527 0000af28 8fc10000 lw r1,(r30) 12528 0000af2c 8c210008 lw r1,8(r1) 12529 0000af30 8fdffff8 lw r31,-8(r30) 12530 0000af34 001ee820 add r29,r0,r30 12531 0000af38 8fdefffc lw r30,-4(r30) 12532 0000af3c 4be00000 jr r31 12533 0000af40 54000000 nop 12534 0000af44 .endproc _QueueLength 12535 0000af44 .align 2 12536 0000af44 .proc _QueueEmpty 12537 0000af44 .global _QueueEmpty 12538 0000af44 _QueueEmpty: 12539 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 12540 0000af44 afbefffc sw -4(r29),r30; push fp 12541 0000af48 001df020 add r30,r0,r29; fp = sp 12542 0000af4c afbffff8 sw -8(r29),r31; push ret addr 12543 0000af50 2fbd0008 subui r29,r29,#8; alloc local storage 12544 0000af54 8fc10000 lw r1,(r30) 12545 0000af58 8c210008 lw r1,8(r1) 12546 0000af5c 60210000 seqi r1,r1,#0 12547 0000af60 8fdffff8 lw r31,-8(r30) 12548 0000af64 001ee820 add r29,r0,r30 12549 0000af68 8fdefffc lw r30,-4(r30) 12550 0000af6c 4be00000 jr r31 12551 0000af70 54000000 nop 12552 0000af74 .endproc _QueueEmpty 12553 0000af74 .global _MY_TIMER 12554 0000af74 .data 12555 0001715f .align 2 12556 00017160 _MY_TIMER: 12557 00017160 00000000 .word 0 12558 00017164 .text 12559 0000af74 .align 2 12560 0000af74 .proc _TimerSet 12561 0000af74 .global _TimerSet 12562 0000af74 _TimerSet: 12563 ; Function 'TimerSet'; 0 bytes of locals, 2 regs to save. 12564 0000af74 afbefffc sw -4(r29),r30; push fp 12565 0000af78 001df020 add r30,r0,r29; fp = sp 12566 0000af7c afbffff8 sw -8(r29),r31; push ret addr 12567 0000af80 2fbd0010 subui r29,r29,#16; alloc local storage 12568 0000af84 afa20000 sw 0(r29),r2 12569 0000af88 afa30004 sw 4(r29),r3 12570 0000af8c 8fc30000 lw r3,(r30) 12571 0000af90 3c020001 lhi r2,((_MY_TIMER)>>16)&0xffff 12572 0000af94 24427160 addui r2,r2,(_MY_TIMER)&0xffff 12573 0000af98 8c410000 lw r1,(r2) 12574 0000af9c 00230820 add r1,r1,r3 12575 0000afa0 ac410000 sw (r2),r1 12576 0000afa4 3c01fff0 lhi r1,#-16 12577 0000afa8 24210010 addui r1,r1,#16 12578 0000afac ac230000 sw (r1),r3 12579 0000afb0 8fa20000 lw r2,0(r29) 12580 0000afb4 8fa30004 lw r3,4(r29) 12581 0000afb8 8fdffff8 lw r31,-8(r30) 12582 0000afbc 001ee820 add r29,r0,r30 12583 0000afc0 8fdefffc lw r30,-4(r30) 12584 0000afc4 4be00000 jr r31 12585 0000afc8 54000000 nop 12586 0000afcc .endproc _TimerSet 12587 0000afcc .align 2 12588 0000afcc .proc _TimerGet 12589 0000afcc .global _TimerGet 12590 0000afcc _TimerGet: 12591 ; Function 'TimerGet'; 0 bytes of locals, 1 regs to save. 12592 0000afcc afbefffc sw -4(r29),r30; push fp 12593 0000afd0 001df020 add r30,r0,r29; fp = sp 12594 0000afd4 afbffff8 sw -8(r29),r31; push ret addr 12595 0000afd8 2fbd0010 subui r29,r29,#16; alloc local storage 12596 0000afdc afa20000 sw 0(r29),r2 12597 0000afe0 3c010001 lhi r1,((_MY_TIMER)>>16)&0xffff 12598 0000afe4 24217160 addui r1,r1,(_MY_TIMER)&0xffff 12599 0000afe8 8c220000 lw r2,(r1) 12600 0000afec 200103e8 addi r1,r0,#1000 12601 0000aff0 00400035 movi2fp f0,r2 12602 0000aff4 00200835 movi2fp f1,r1 12603 0000aff8 04010017 divu f0,f0,f1 12604 0000affc 00000834 movfp2i r1,f0 12605 0000b000 8fa20000 lw r2,0(r29) 12606 0000b004 8fdffff8 lw r31,-8(r30) 12607 0000b008 001ee820 add r29,r0,r30 12608 0000b00c 8fdefffc lw r30,-4(r30) 12609 0000b010 4be00000 jr r31 12610 0000b014 54000000 nop 12611 0000b018 .endproc _TimerGet 12612 0000b018 .align 2 12613 0000b018 .proc _KbdModuleInit 12614 0000b018 .global _KbdModuleInit 12615 0000b018 _KbdModuleInit: 12616 ; Function 'KbdModuleInit'; 0 bytes of locals, 0 regs to save. 12617 0000b018 afbefffc sw -4(r29),r30; push fp 12618 0000b01c 001df020 add r30,r0,r29; fp = sp 12619 0000b020 afbffff8 sw -8(r29),r31; push ret addr 12620 0000b024 2fbd0008 subui r29,r29,#8; alloc local storage 12621 0000b028 3c01fff0 lhi r1,#-16 12622 0000b02c 242101c0 addui r1,r1,#448 12623 0000b030 201f0001 addi r31,r0,#1 12624 0000b034 ac3f0000 sw (r1),r31 12625 0000b038 8fdffff8 lw r31,-8(r30) 12626 0000b03c 001ee820 add r29,r0,r30 12627 0000b040 8fdefffc lw r30,-4(r30) 12628 0000b044 4be00000 jr r31 12629 0000b048 54000000 nop 12630 0000b04c .endproc _KbdModuleInit 12631 0000b04c .data 12632 00017164 .align 2 12633 00017164 LC0_LF9: 12634 00017164 20496e76 .ascii " Invalid p_nice value! \n\000" 12634 00017168 616c6964 12634 0001716c 20705f6e 12634 00017170 69636520 12634 00017174 76616c75 12634 00017178 6521200a 12634 0001717c 00 12635 0001717d .align 2 12636 00017180 LC1_LF9: 12637 00017180 46617461 .ascii "Fatal: Cumulative length of all arguments > %d\n\000" 12637 00017184 6c3a2043 12637 00017188 756d756c 12637 0001718c 61746976 12637 00017190 65206c65 12637 00017194 6e677468 12637 00017198 206f6620 12637 0001719c 616c6c20 12637 000171a0 61726775 12637 000171a4 6d656e74 12637 000171a8 73203e20 12637 000171ac 25640a00 12638 000171b0 .align 2 12639 000171b0 LC2_LF9: 12640 000171b0 63616c6c .ascii "calling fork\n\000" 12640 000171b4 696e6720 12640 000171b8 666f726b 12640 000171bc 0a00 12641 000171be .text 12642 0000b04c .align 2 12643 0000b04c .proc _TrapProcessCreateHandler_LF9 12644 0000b04c _TrapProcessCreateHandler_LF9: 12645 ; Function 'TrapProcessCreateHandler'; 1640 bytes of locals, 13 regs to save. 12646 0000b04c afbefffc sw -4(r29),r30; push fp 12647 0000b050 001df020 add r30,r0,r29; fp = sp 12648 0000b054 afbffff8 sw -8(r29),r31; push ret addr 12649 0000b058 2fbd06a8 subui r29,r29,#1704; alloc local storage 12650 0000b05c afa20000 sw 0(r29),r2 12651 0000b060 afa30004 sw 4(r29),r3 12652 0000b064 afa40008 sw 8(r29),r4 12653 0000b068 afa5000c sw 12(r29),r5 12654 0000b06c afa60010 sw 16(r29),r6 12655 0000b070 afa70014 sw 20(r29),r7 12656 0000b074 afa80018 sw 24(r29),r8 12657 0000b078 afa9001c sw 28(r29),r9 12658 0000b07c afaa0020 sw 32(r29),r10 12659 0000b080 afab0024 sw 36(r29),r11 12660 0000b084 afac0028 sw 40(r29),r12 12661 0000b088 afad002c sw 44(r29),r13 12662 0000b08c afae0030 sw 48(r29),r14 12663 0000b090 8fc40000 lw r4,(r30) 12664 0000b094 8fc60004 lw r6,4(r30) 12665 0000b098 23c2fbf8 addi r2,r30,#-1032 12666 0000b09c 23c3fff7 addi r3,r30,#-9 12667 0000b0a0 L67_LF9: 12668 0000b0a0 200e0000 addi r14,r0,(#0x0)&0xff 12669 0000b0a4 a04e0000 sb (r2),r14 12670 0000b0a8 20420001 addi r2,r2,#1 12671 0000b0ac 0043082c sle r1,r2,r3 12672 0000b0b0 1420ffec bnez r1,L67_LF9 12673 0000b0b4 54000000 nop; not filled. 12674 0000b0b8 20050000 addi r5,r0,#0 12675 0000b0bc 64c10000 snei r1,r6,#0 12676 0000b0c0 142000a0 bnez r1,L69_LF9 12677 0000b0c4 54000000 nop; not filled. 12678 0000b0c8 23bdfff0 addi r29,r29,#-16 12679 0000b0cc 3c020001 lhi r2,((_currentPCB)>>16)&0xffff 12680 0000b0d0 24424100 addui r2,r2,(_currentPCB)&0xffff 12681 0000b0d4 8c4e0000 lw r14,(r2) 12682 0000b0d8 afae0000 sw (r29),r14 12683 0000b0dc afa40004 sw 4(r29),r4 12684 0000b0e0 23c1f990 addi r1,r30,#-1648 12685 0000b0e4 afa10008 sw 8(r29),r1 12686 0000b0e8 200e0200 addi r14,r0,#512 12687 0000b0ec afae000c sw 12(r29),r14 12688 0000b0f0 0fffabe8 jal _MemoryCopyUserToSystem 12689 0000b0f4 54000000 nop; not filled. 12690 0000b0f8 23bd0010 addi r29,r29,#16 12691 0000b0fc 23c4fb8f addi r4,r30,#-1137 12692 0000b100 23c3fb90 addi r3,r30,#-1136 12693 0000b104 L70_LF9: 12694 0000b104 23bdfff0 addi r29,r29,#-16 12695 0000b108 8c4e0000 lw r14,(r2) 12696 0000b10c afae0000 sw (r29),r14 12697 0000b110 8fc1f998 lw r1,-1640(r30) 12698 0000b114 00250820 add r1,r1,r5 12699 0000b118 afa10004 sw 4(r29),r1 12700 0000b11c afa30008 sw 8(r29),r3 12701 0000b120 200e0001 addi r14,r0,#1 12702 0000b124 afae000c sw 12(r29),r14 12703 0000b128 0fffabb0 jal _MemoryCopyUserToSystem 12704 0000b12c 54000000 nop; not filled. 12705 0000b130 20840001 addi r4,r4,#1 12706 0000b134 20630001 addi r3,r3,#1 12707 0000b138 20a50001 addi r5,r5,#1 12708 0000b13c 23bd0010 addi r29,r29,#16 12709 0000b140 70a10063 sleui r1,r5,#99 12710 0000b144 10200060 beqz r1,L75_LF9 12711 0000b148 54000000 nop; not filled. 12712 0000b14c 90810000 lbu r1,(r4) 12713 0000b150 64210000 snei r1,r1,#0 12714 0000b154 10200050 beqz r1,L75_LF9 12715 0000b158 54000000 nop; not filled. 12716 0000b15c 0bffffa4 j L70_LF9 12717 0000b160 54000000 nop; not filled. 12718 0000b164 L69_LF9: 12719 0000b164 23bdfff0 addi r29,r29,#-16 12720 0000b168 afa40000 sw (r29),r4 12721 0000b16c 23c1f990 addi r1,r30,#-1648 12722 0000b170 afa10004 sw 4(r29),r1 12723 0000b174 200e0200 addi r14,r0,#512 12724 0000b178 afae0008 sw 8(r29),r14 12725 0000b17c 0fffb79c jal _bcopy 12726 0000b180 54000000 nop; not filled. 12727 0000b184 8fcef998 lw r14,-1640(r30) 12728 0000b188 afae0000 sw (r29),r14 12729 0000b18c 23c1fb90 addi r1,r30,#-1136 12730 0000b190 afa10004 sw 4(r29),r1 12731 0000b194 200e0064 addi r14,r0,#100 12732 0000b198 afae0008 sw 8(r29),r14 12733 0000b19c 0fffaf90 jal _dstrncpy 12734 0000b1a0 54000000 nop; not filled. 12735 0000b1a4 23bd0010 addi r29,r29,#16 12736 0000b1a8 L75_LF9: 12737 0000b1a8 200e0000 addi r14,r0,(#0x0)&0xff 12738 0000b1ac a3cefbf3 sb -1037(r30),r14 12739 0000b1b0 20050000 addi r5,r0,#0 12740 0000b1b4 8fccf990 lw r12,-1648(r30) 12741 0000b1b8 8fcdf994 lw r13,-1644(r30) 12742 0000b1bc 21810014 addi r1,r12,#20 12743 0000b1c0 6c210027 sgtui r1,r1,#39 12744 0000b1c4 10200024 beqz r1,L76_LF9 12745 0000b1c8 54000000 nop; not filled. 12746 0000b1cc 23bdfff8 addi r29,r29,#-8 12747 0000b1d0 3c0e0001 lhi r14,((LC0_LF9)>>16)&0xffff 12748 0000b1d4 25ce7164 addui r14,r14,(LC0_LF9)&0xffff 12749 0000b1d8 afae0000 sw (r29),r14 12750 0000b1dc 0c002044 jal _printf 12751 0000b1e0 54000000 nop; not filled. 12752 0000b1e4 0c002030 jal _exit 12753 0000b1e8 54000000 nop; not filled. 12754 0000b1ec L76_LF9: 12755 0000b1ec 64c10000 snei r1,r6,#0 12756 0000b1f0 142000b0 bnez r1,L77_LF9 12757 0000b1f4 54000000 nop; not filled. 12758 0000b1f8 3c080001 lhi r8,((_currentPCB)>>16)&0xffff 12759 0000b1fc 25084100 addui r8,r8,(_currentPCB)&0xffff 12760 0000b200 23cbfbf8 addi r11,r30,#-1032 12761 0000b204 23cafbf7 addi r10,r30,#-1033 12762 0000b208 001e3020 add r6,r0,r30 12763 0000b20c 23c901f4 addi r9,r30,#500 12764 0000b210 L89_LF9: 12765 0000b210 8cc1f998 lw r1,-1640(r6) 12766 0000b214 64210000 snei r1,r1,#0 12767 0000b218 10200134 beqz r1,L90_LF9 12768 0000b21c 54000000 nop; not filled. 12769 0000b220 20020000 addi r2,r0,#0 12770 0000b224 00063820 add r7,r0,r6 12771 0000b228 00aa2020 add r4,r5,r10 12772 0000b22c 00ab1820 add r3,r5,r11 12773 0000b230 L84_LF9: 12774 0000b230 23bdfff0 addi r29,r29,#-16 12775 0000b234 8d0e0000 lw r14,(r8) 12776 0000b238 afae0000 sw (r29),r14 12777 0000b23c 8ce1f998 lw r1,-1640(r7) 12778 0000b240 00220820 add r1,r1,r2 12779 0000b244 afa10004 sw 4(r29),r1 12780 0000b248 afa30008 sw 8(r29),r3 12781 0000b24c 200e0001 addi r14,r0,#1 12782 0000b250 afae000c sw 12(r29),r14 12783 0000b254 0fffaa84 jal _MemoryCopyUserToSystem 12784 0000b258 54000000 nop; not filled. 12785 0000b25c 20840001 addi r4,r4,#1 12786 0000b260 20630001 addi r3,r3,#1 12787 0000b264 20a50001 addi r5,r5,#1 12788 0000b268 20420001 addi r2,r2,#1 12789 0000b26c 23bd0010 addi r29,r29,#16 12790 0000b270 70a103ff sleui r1,r5,#1023 12791 0000b274 10200014 beqz r1,L81_LF9 12792 0000b278 54000000 nop; not filled. 12793 0000b27c 90810000 lbu r1,(r4) 12794 0000b280 64210000 snei r1,r1,#0 12795 0000b284 1420ffa8 bnez r1,L84_LF9 12796 0000b288 54000000 nop; not filled. 12797 0000b28c L81_LF9: 12798 0000b28c 20c60004 addi r6,r6,#4 12799 0000b290 00c9082c sle r1,r6,r9 12800 0000b294 102000b8 beqz r1,L90_LF9 12801 0000b298 54000000 nop; not filled. 12802 0000b29c 0bffff70 j L89_LF9 12803 0000b2a0 54000000 nop; not filled. 12804 0000b2a4 L77_LF9: 12805 0000b2a4 23c5fbf8 addi r5,r30,#-1032 12806 0000b2a8 00053820 add r7,r0,r5 12807 0000b2ac 23c3fff8 addi r3,r30,#-8 12808 0000b2b0 23c60020 addi r6,r30,#32 12809 0000b2b4 L97_LF9: 12810 0000b2b4 2064f998 addi r4,r3,#-1640 12811 0000b2b8 8c820000 lw r2,(r4) 12812 0000b2bc 64410000 snei r1,r2,#0 12813 0000b2c0 1020008c beqz r1,L90_LF9 12814 0000b2c4 54000000 nop; not filled. 12815 0000b2c8 23bdfff8 addi r29,r29,#-8 12816 0000b2cc afa20000 sw (r29),r2 12817 0000b2d0 0fffb048 jal _dstrlen 12818 0000b2d4 54000000 nop; not filled. 12819 0000b2d8 00a11020 add r2,r5,r1 12820 0000b2dc 00470822 sub r1,r2,r7 12821 0000b2e0 23bd0008 addi r29,r29,#8 12822 0000b2e4 6c210400 sgti r1,r1,#1024 12823 0000b2e8 10200030 beqz r1,L96_LF9 12824 0000b2ec 54000000 nop; not filled. 12825 0000b2f0 23bdfff8 addi r29,r29,#-8 12826 0000b2f4 3c0e0001 lhi r14,((LC1_LF9)>>16)&0xffff 12827 0000b2f8 25ce7180 addui r14,r14,(LC1_LF9)&0xffff 12828 0000b2fc afae0000 sw (r29),r14 12829 0000b300 200e0400 addi r14,r0,#1024 12830 0000b304 afae0004 sw 4(r29),r14 12831 0000b308 0c001f18 jal _printf 12832 0000b30c 54000000 nop; not filled. 12833 0000b310 0c001ef8 jal _exitsim 12834 0000b314 54000000 nop; not filled. 12835 0000b318 23bd0008 addi r29,r29,#8 12836 0000b31c L96_LF9: 12837 0000b31c 23bdfff8 addi r29,r29,#-8 12838 0000b320 afa50000 sw (r29),r5 12839 0000b324 8c810000 lw r1,(r4) 12840 0000b328 afa10004 sw 4(r29),r1 12841 0000b32c 0fffad9c jal _dstrcpy 12842 0000b330 54000000 nop; not filled. 12843 0000b334 200e0000 addi r14,r0,(#0x0)&0xff 12844 0000b338 a04e0000 sb (r2),r14 12845 0000b33c 23bd0008 addi r29,r29,#8 12846 0000b340 20630004 addi r3,r3,#4 12847 0000b344 0066082c sle r1,r3,r6 12848 0000b348 1420ff68 bnez r1,L97_LF9 12849 0000b34c 54000000 nop; not filled. 12850 0000b350 L90_LF9: 12851 0000b350 200e0000 addi r14,r0,(#0x0)&0xff 12852 0000b354 a3cefff7 sb -9(r30),r14 12853 0000b358 23bdfff8 addi r29,r29,#-8 12854 0000b35c 3c0e0001 lhi r14,((LC2_LF9)>>16)&0xffff 12855 0000b360 25ce71b0 addui r14,r14,(LC2_LF9)&0xffff 12856 0000b364 afae0000 sw (r29),r14 12857 0000b368 0c001eb8 jal _printf 12858 0000b36c 54000000 nop; not filled. 12859 0000b370 23bdfff0 addi r29,r29,#-16 12860 0000b374 200e0000 addi r14,r0,#0 12861 0000b378 afae0000 sw (r29),r14 12862 0000b37c 23c1fbf8 addi r1,r30,#-1032 12863 0000b380 afa10004 sw 4(r29),r1 12864 0000b384 afac0008 sw 8(r29),r12 12865 0000b388 afad000c sw 12(r29),r13 12866 0000b38c 23c1fb90 addi r1,r30,#-1136 12867 0000b390 afa10010 sw 16(r29),r1 12868 0000b394 200e0001 addi r14,r0,#1 12869 0000b398 afae0014 sw 20(r29),r14 12870 0000b39c 0fffc9fc jal _ProcessFork 12871 0000b3a0 54000000 nop; not filled. 12872 0000b3a4 23bd0018 addi r29,r29,#24 12873 0000b3a8 8fa20000 lw r2,0(r29) 12874 0000b3ac 8fa30004 lw r3,4(r29) 12875 0000b3b0 8fa40008 lw r4,8(r29) 12876 0000b3b4 8fa5000c lw r5,12(r29) 12877 0000b3b8 8fa60010 lw r6,16(r29) 12878 0000b3bc 8fa70014 lw r7,20(r29) 12879 0000b3c0 8fa80018 lw r8,24(r29) 12880 0000b3c4 8fa9001c lw r9,28(r29) 12881 0000b3c8 8faa0020 lw r10,32(r29) 12882 0000b3cc 8fab0024 lw r11,36(r29) 12883 0000b3d0 8fac0028 lw r12,40(r29) 12884 0000b3d4 8fad002c lw r13,44(r29) 12885 0000b3d8 8fae0030 lw r14,48(r29) 12886 0000b3dc 8fdffff8 lw r31,-8(r30) 12887 0000b3e0 001ee820 add r29,r0,r30 12888 0000b3e4 8fdefffc lw r30,-4(r30) 12889 0000b3e8 4be00000 jr r31 12890 0000b3ec 54000000 nop 12891 0000b3f0 .endproc _TrapProcessCreateHandler_LF9 12892 0000b3f0 .align 2 12893 0000b3f0 .proc _TrapPrintfHandler_LF9 12894 0000b3f0 _TrapPrintfHandler_LF9: 12895 ; Function 'TrapPrintfHandler'; 160 bytes of locals, 10 regs to save. 12896 0000b3f0 afbefffc sw -4(r29),r30; push fp 12897 0000b3f4 001df020 add r30,r0,r29; fp = sp 12898 0000b3f8 afbffff8 sw -8(r29),r31; push ret addr 12899 0000b3fc 2fbd00d0 subui r29,r29,#208; alloc local storage 12900 0000b400 afa20000 sw 0(r29),r2 12901 0000b404 afa30004 sw 4(r29),r3 12902 0000b408 afa40008 sw 8(r29),r4 12903 0000b40c afa5000c sw 12(r29),r5 12904 0000b410 afa60010 sw 16(r29),r6 12905 0000b414 afa70014 sw 20(r29),r7 12906 0000b418 afa80018 sw 24(r29),r8 12907 0000b41c afa9001c sw 28(r29),r9 12908 0000b420 afaa0020 sw 32(r29),r10 12909 0000b424 afab0024 sw 36(r29),r11 12910 0000b428 8fc40000 lw r4,(r30) 12911 0000b42c 8fc10004 lw r1,4(r30) 12912 0000b430 20080000 addi r8,r0,#0 12913 0000b434 00081820 add r3,r0,r8 12914 0000b438 64210000 snei r1,r1,#0 12915 0000b43c 142000a0 bnez r1,L99_LF9 12916 0000b440 54000000 nop; not filled. 12917 0000b444 23bdfff0 addi r29,r29,#-16 12918 0000b448 3c020001 lhi r2,((_currentPCB)>>16)&0xffff 12919 0000b44c 24424100 addui r2,r2,(_currentPCB)&0xffff 12920 0000b450 8c4b0000 lw r11,(r2) 12921 0000b454 afab0000 sw (r29),r11 12922 0000b458 afa40004 sw 4(r29),r4 12923 0000b45c 23c1ff58 addi r1,r30,#-168 12924 0000b460 afa10008 sw 8(r29),r1 12925 0000b464 200b0028 addi r11,r0,#40 12926 0000b468 afab000c sw 12(r29),r11 12927 0000b46c 0fffa86c jal _MemoryCopyUserToSystem 12928 0000b470 54000000 nop; not filled. 12929 0000b474 23bd0010 addi r29,r29,#16 12930 0000b478 23c5ffa7 addi r5,r30,#-89 12931 0000b47c 23c4ffa8 addi r4,r30,#-88 12932 0000b480 L100_LF9: 12933 0000b480 23bdfff0 addi r29,r29,#-16 12934 0000b484 8c4b0000 lw r11,(r2) 12935 0000b488 afab0000 sw (r29),r11 12936 0000b48c 8fc1ff58 lw r1,-168(r30) 12937 0000b490 00230820 add r1,r1,r3 12938 0000b494 afa10004 sw 4(r29),r1 12939 0000b498 afa40008 sw 8(r29),r4 12940 0000b49c 200b0001 addi r11,r0,#1 12941 0000b4a0 afab000c sw 12(r29),r11 12942 0000b4a4 0fffa834 jal _MemoryCopyUserToSystem 12943 0000b4a8 54000000 nop; not filled. 12944 0000b4ac 20a50001 addi r5,r5,#1 12945 0000b4b0 20840001 addi r4,r4,#1 12946 0000b4b4 20630001 addi r3,r3,#1 12947 0000b4b8 23bd0010 addi r29,r29,#16 12948 0000b4bc 7061004f sleui r1,r3,#79 12949 0000b4c0 10200060 beqz r1,L105_LF9 12950 0000b4c4 54000000 nop; not filled. 12951 0000b4c8 90a10000 lbu r1,(r5) 12952 0000b4cc 64210000 snei r1,r1,#0 12953 0000b4d0 10200050 beqz r1,L105_LF9 12954 0000b4d4 54000000 nop; not filled. 12955 0000b4d8 0bffffa4 j L100_LF9 12956 0000b4dc 54000000 nop; not filled. 12957 0000b4e0 L99_LF9: 12958 0000b4e0 23bdfff0 addi r29,r29,#-16 12959 0000b4e4 afa40000 sw (r29),r4 12960 0000b4e8 23c1ff58 addi r1,r30,#-168 12961 0000b4ec afa10004 sw 4(r29),r1 12962 0000b4f0 200b0028 addi r11,r0,#40 12963 0000b4f4 afab0008 sw 8(r29),r11 12964 0000b4f8 0fffb420 jal _bcopy 12965 0000b4fc 54000000 nop; not filled. 12966 0000b500 8fcbff58 lw r11,-168(r30) 12967 0000b504 afab0000 sw (r29),r11 12968 0000b508 23c1ffa8 addi r1,r30,#-88 12969 0000b50c afa10004 sw 4(r29),r1 12970 0000b510 200b0050 addi r11,r0,#80 12971 0000b514 afab0008 sw 8(r29),r11 12972 0000b518 0fffac14 jal _dstrncpy 12973 0000b51c 54000000 nop; not filled. 12974 0000b520 23bd0010 addi r29,r29,#16 12975 0000b524 L105_LF9: 12976 0000b524 200b0000 addi r11,r0,(#0x0)&0xff 12977 0000b528 a3cbfff7 sb -9(r30),r11 12978 0000b52c 23c3ffa8 addi r3,r30,#-88 12979 0000b530 80620000 lb r2,(r3) 12980 0000b534 304100ff andi r1,r2,#0x00ff 12981 0000b538 64210000 snei r1,r1,#0 12982 0000b53c 102000f0 beqz r1,L107_LF9 12983 0000b540 54000000 nop; not filled. 12984 0000b544 23cafff8 addi r10,r30,#-8 12985 0000b548 23c9ff5c addi r9,r30,#-164 12986 0000b54c 51010002 slli r1,r8,#0x2 12987 0000b550 00293820 add r7,r1,r9 12988 0000b554 002a3020 add r6,r1,r10 12989 0000b558 L109_LF9: 12990 0000b558 304100ff andi r1,r2,#0x00ff 12991 0000b55c 60210025 seqi r1,r1,#37 12992 0000b560 102000b4 beqz r1,L108_LF9 12993 0000b564 54000000 nop; not filled. 12994 0000b568 90610001 lbu r1,1(r3) 12995 0000b56c 60210025 seqi r1,r1,#37 12996 0000b570 10200010 beqz r1,L111_LF9 12997 0000b574 54000000 nop; not filled. 12998 0000b578 20630001 addi r3,r3,#1 12999 0000b57c 08000098 j L108_LF9 13000 0000b580 54000000 nop; not filled. 13001 0000b584 L111_LF9: 13002 0000b584 8ceb0000 lw r11,(r7) 13003 0000b588 accbff88 sw -120(r6),r11 13004 0000b58c 51010002 slli r1,r8,#0x2 13005 0000b590 00292820 add r5,r1,r9 13006 0000b594 002a2020 add r4,r1,r10 13007 0000b598 L114_LF9: 13008 0000b598 20630001 addi r3,r3,#1 13009 0000b59c 807f0000 lb r31,(r3) 13010 0000b5a0 33e200ff andi r2,r31,#0x00ff 13011 0000b5a4 60410073 seqi r1,r2,#115 13012 0000b5a8 14200060 bnez r1,L113_LF9 13013 0000b5ac 54000000 nop; not filled. 13014 0000b5b0 6041006c seqi r1,r2,#108 13015 0000b5b4 1420ffe0 bnez r1,L114_LF9 13016 0000b5b8 54000000 nop; not filled. 13017 0000b5bc 23e1ff9a addi r1,r31,#-102 13018 0000b5c0 302100ff andi r1,r1,#0x00ff 13019 0000b5c4 70210001 sleui r1,r1,#1 13020 0000b5c8 14200010 bnez r1,L120_LF9 13021 0000b5cc 54000000 nop; not filled. 13022 0000b5d0 60410065 seqi r1,r2,#101 13023 0000b5d4 10200020 beqz r1,L119_LF9 13024 0000b5d8 54000000 nop; not filled. 13025 0000b5dc L120_LF9: 13026 0000b5dc 20e70004 addi r7,r7,#4 13027 0000b5e0 20c60004 addi r6,r6,#4 13028 0000b5e4 21080001 addi r8,r8,#1 13029 0000b5e8 8ca50004 lw r5,4(r5) 13030 0000b5ec ac85ff8c sw -116(r4),r5 13031 0000b5f0 08000018 j L113_LF9 13032 0000b5f4 54000000 nop; not filled. 13033 0000b5f8 L119_LF9: 13034 0000b5f8 23e1ff9f addi r1,r31,#-97 13035 0000b5fc 302100ff andi r1,r1,#0x00ff 13036 0000b600 70210019 sleui r1,r1,#25 13037 0000b604 1020ff90 beqz r1,L114_LF9 13038 0000b608 54000000 nop; not filled. 13039 0000b60c L113_LF9: 13040 0000b60c 20e70004 addi r7,r7,#4 13041 0000b610 20c60004 addi r6,r6,#4 13042 0000b614 21080001 addi r8,r8,#1 13043 0000b618 L108_LF9: 13044 0000b618 20630001 addi r3,r3,#1 13045 0000b61c 80620000 lb r2,(r3) 13046 0000b620 304100ff andi r1,r2,#0x00ff 13047 0000b624 64210000 snei r1,r1,#0 13048 0000b628 1420ff2c bnez r1,L109_LF9 13049 0000b62c 54000000 nop; not filled. 13050 0000b630 L107_LF9: 13051 0000b630 23bdffd8 addi r29,r29,#-40 13052 0000b634 23c1ffa8 addi r1,r30,#-88 13053 0000b638 afa10000 sw (r29),r1 13054 0000b63c 8fc1ff80 lw r1,-128(r30) 13055 0000b640 afa10004 sw 4(r29),r1 13056 0000b644 8fcbff84 lw r11,-124(r30) 13057 0000b648 afab0008 sw 8(r29),r11 13058 0000b64c 8fcbff88 lw r11,-120(r30) 13059 0000b650 afab000c sw 12(r29),r11 13060 0000b654 8fcbff8c lw r11,-116(r30) 13061 0000b658 afab0010 sw 16(r29),r11 13062 0000b65c 8fcbff90 lw r11,-112(r30) 13063 0000b660 afab0014 sw 20(r29),r11 13064 0000b664 8fcbff94 lw r11,-108(r30) 13065 0000b668 afab0018 sw 24(r29),r11 13066 0000b66c 8fcbff98 lw r11,-104(r30) 13067 0000b670 afab001c sw 28(r29),r11 13068 0000b674 8fcbff9c lw r11,-100(r30) 13069 0000b678 afab0020 sw 32(r29),r11 13070 0000b67c 0c001ba4 jal _printf 13071 0000b680 54000000 nop; not filled. 13072 0000b684 23bd0028 addi r29,r29,#40 13073 0000b688 8fa20000 lw r2,0(r29) 13074 0000b68c 8fa30004 lw r3,4(r29) 13075 0000b690 8fa40008 lw r4,8(r29) 13076 0000b694 8fa5000c lw r5,12(r29) 13077 0000b698 8fa60010 lw r6,16(r29) 13078 0000b69c 8fa70014 lw r7,20(r29) 13079 0000b6a0 8fa80018 lw r8,24(r29) 13080 0000b6a4 8fa9001c lw r9,28(r29) 13081 0000b6a8 8faa0020 lw r10,32(r29) 13082 0000b6ac 8fab0024 lw r11,36(r29) 13083 0000b6b0 8fdffff8 lw r31,-8(r30) 13084 0000b6b4 001ee820 add r29,r0,r30 13085 0000b6b8 8fdefffc lw r30,-4(r30) 13086 0000b6bc 4be00000 jr r31 13087 0000b6c0 54000000 nop 13088 0000b6c4 .endproc _TrapPrintfHandler_LF9 13089 0000b6c4 .data 13090 000171be .align 2 13091 000171c0 LC3_LF9: 13092 000171c0 496e7465 .ascii "Interrupt cause=0x%x iar=0x%x isr=0x%x args=0x%08x.\n\000" 13092 000171c4 72727570 13092 000171c8 74206361 13092 000171cc 7573653d 13092 000171d0 30782578 13092 000171d4 20696172 13092 000171d8 3d307825 13092 000171dc 78206973 13092 000171e0 723d3078 13092 000171e4 25782061 13092 000171e8 7267733d 13092 000171ec 30782530 13092 000171f0 38782e0a 13092 000171f4 00 13093 000171f5 .align 2 13094 000171f8 LC4_LF9: 13095 000171f8 476f7420 .ascii "Got a context switch trap!\n\000" 13095 000171fc 6120636f 13095 00017200 6e746578 13095 00017204 74207377 13095 00017208 69746368 13095 0001720c 20747261 13095 00017210 70210a00 13096 00017214 .align 2 13097 00017214 LC5_LF9: 13098 00017214 476f7420 .ascii "Got an exit trap!\n\000" 13098 00017218 616e2065 13098 0001721c 78697420 13098 00017220 74726170 13098 00017224 210a00 13099 00017227 .align 2 13100 00017228 LC6_LF9: 13101 00017228 476f7420 .ascii "Got a fork trap!\n\000" 13101 0001722c 6120666f 13101 00017230 726b2074 13101 00017234 72617021 13101 00017238 0a00 13102 0001723a .align 2 13103 0001723c LC7_LF9: 13104 0001723c 476f7420 .ascii "Got a process sleep trap!\n\000" 13104 00017240 61207072 13104 00017244 6f636573 13104 00017248 7320736c 13104 0001724c 65657020 13104 00017250 74726170 13104 00017254 210a00 13105 00017257 .align 2 13106 00017258 LC8_LF9: 13107 00017258 476f7420 .ascii "Got a printf trap!\n\000" 13107 0001725c 61207072 13107 00017260 696e7466 13107 00017264 20747261 13107 00017268 70210a00 13108 0001726c .align 2 13109 0001726c LC9_LF9: 13110 0001726c 476f7420 .ascii "Got an open with parameters (\'%s\',0x%x)\n\000" 13110 00017270 616e206f 13110 00017274 70656e20 13110 00017278 77697468 13110 0001727c 20706172 13110 00017280 616d6574 13110 00017284 65727320 13110 00017288 28272573 13110 0001728c 272c3078 13110 00017290 2578290a 13110 00017294 00 13111 00017295 .align 2 13112 00017298 LC10_LF9: 13113 00017298 476f7420 .ascii "Got an unrecognized trap (0x%x) - exiting!\n\000" 13113 0001729c 616e2075 13113 000172a0 6e726563 13113 000172a4 6f676e69 13113 000172a8 7a656420 13113 000172ac 74726170 13113 000172b0 20283078 13113 000172b4 25782920 13113 000172b8 2d206578 13113 000172bc 6974696e 13113 000172c0 67210a00 13114 000172c4 .align 2 13115 000172c4 LC11_LF9: 13116 000172c4 476f7420 .ascii "Got a timer interrupt!\n\000" 13116 000172c8 61207469 13116 000172cc 6d657220 13116 000172d0 696e7465 13116 000172d4 72727570 13116 000172d8 74210a00 13117 000172dc .align 2 13118 000172dc LC12_LF9: 13119 000172dc 476f7420 .ascii "Got a keyboard interrupt (char=0x%x(%c), nleft=%d)!\n\000" 13119 000172e0 61206b65 13119 000172e4 79626f61 13119 000172e8 72642069 13119 000172ec 6e746572 13119 000172f0 72757074 13119 000172f4 20286368 13119 000172f8 61723d30 13119 000172fc 78257828 13119 00017300 2563292c 13119 00017304 206e6c65 13119 00017308 66743d25 13119 0001730c 6429210a 13119 00017310 00 13120 00017311 .align 2 13121 00017314 LC13_LF9: 13122 00017314 45786974 .ascii "Exiting after illegal access at iar=0x%x, isr=0x%x\n\000" 13122 00017318 696e6720 13122 0001731c 61667465 13122 00017320 7220696c 13122 00017324 6c656761 13122 00017328 6c206163 13122 0001732c 63657373 13122 00017330 20617420 13122 00017334 6961723d 13122 00017338 30782578 13122 0001733c 2c206973 13122 00017340 723d3078 13122 00017344 25780a00 13123 00017348 .align 2 13124 00017348 LC14_LF9: 13125 00017348 45786974 .ascii "Exiting after illegal address at iar=0x%x, isr=0x%x\n\000" 13125 0001734c 696e6720 13125 00017350 61667465 13125 00017354 7220696c 13125 00017358 6c656761 13125 0001735c 6c206164 13125 00017360 64726573 13125 00017364 73206174 13125 00017368 20696172 13125 0001736c 3d307825 13125 00017370 782c2069 13125 00017374 73723d30 13125 00017378 7825780a 13125 0001737c 00 13126 0001737d .align 2 13127 00017380 LC15_LF9: 13128 00017380 45786974 .ascii "Exiting after illegal instruction at iar=0x%x, isr=0x%x\n\000" 13128 00017384 696e6720 13128 00017388 61667465 13128 0001738c 7220696c 13128 00017390 6c656761 13128 00017394 6c20696e 13128 00017398 73747275 13128 0001739c 6374696f 13128 000173a0 6e206174 13128 000173a4 20696172 13128 000173a8 3d307825 13128 000173ac 782c2069 13128 000173b0 73723d30 13128 000173b4 7825780a 13128 000173b8 00 13129 000173b9 .align 2 13130 000173bc LC16_LF9: 13131 000173bc 45786974 .ascii "Exiting after page fault at iar=0x%x, isr=0x%x\n\000" 13131 000173c0 696e6720 13131 000173c4 61667465 13131 000173c8 72207061 13131 000173cc 67652066 13131 000173d0 61756c74 13131 000173d4 20617420 13131 000173d8 6961723d 13131 000173dc 30782578 13131 000173e0 2c206973 13131 000173e4 723d3078 13131 000173e8 25780a00 13132 000173ec .align 2 13133 000173ec LC17_LF9: 13134 000173ec 476f7420 .ascii "Got an unrecognized system interrupt (0x%x) - exiting!\n\000" 13134 000173f0 616e2075 13134 000173f4 6e726563 13134 000173f8 6f676e69 13134 000173fc 7a656420 13134 00017400 73797374 13134 00017404 656d2069 13134 00017408 6e746572 13134 0001740c 72757074 13134 00017410 20283078 13134 00017414 25782920 13134 00017418 2d206578 13134 0001741c 6974696e 13134 00017420 67210a00 13135 00017424 .align 2 13136 00017424 LC18_LF9: 13137 00017424 41626f75 .ascii "About to return from dointerrupt.\n\000" 13137 00017428 7420746f 13137 0001742c 20726574 13137 00017430 75726e20 13137 00017434 66726f6d 13137 00017438 20646f69 13137 0001743c 6e746572 13137 00017440 72757074 13137 00017444 2e0a00 13138 00017447 .text 13139 0000b6c4 .align 2 13140 0000b6c4 .proc _dointerrupt 13141 0000b6c4 .global _dointerrupt 13142 0000b6c4 _dointerrupt: 13143 ; Function 'dointerrupt'; 56 bytes of locals, 6 regs to save. 13144 0000b6c4 afbefffc sw -4(r29),r30; push fp 13145 0000b6c8 001df020 add r30,r0,r29; fp = sp 13146 0000b6cc afbffff8 sw -8(r29),r31; push ret addr 13147 0000b6d0 2fbd0058 subui r29,r29,#88; alloc local storage 13148 0000b6d4 afa20000 sw 0(r29),r2 13149 0000b6d8 afa30004 sw 4(r29),r3 13150 0000b6dc afa40008 sw 8(r29),r4 13151 0000b6e0 afa5000c sw 12(r29),r5 13152 0000b6e4 afa60010 sw 16(r29),r6 13153 0000b6e8 afa70014 sw 20(r29),r7 13154 0000b6ec 8fc20000 lw r2,(r30) 13155 0000b6f0 8fc60004 lw r6,4(r30) 13156 0000b6f4 8fc40008 lw r4,8(r30) 13157 0000b6f8 8fc3000c lw r3,12(r30) 13158 0000b6fc 23bdfff8 addi r29,r29,#-8 13159 0000b700 3c050001 lhi r5,((_debugstr)>>16)&0xffff 13160 0000b704 24a54038 addui r5,r5,(_debugstr)&0xffff 13161 0000b708 afa50000 sw (r29),r5 13162 0000b70c 20070074 addi r7,r0,#116 13163 0000b710 afa70004 sw 4(r29),r7 13164 0000b714 0fffae74 jal _dindex 13165 0000b718 54000000 nop; not filled. 13166 0000b71c 23bd0008 addi r29,r29,#8 13167 0000b720 64210000 snei r1,r1,#0 13168 0000b724 1420002c bnez r1,L128_LF9 13169 0000b728 54000000 nop; not filled. 13170 0000b72c 23bdfff8 addi r29,r29,#-8 13171 0000b730 afa50000 sw (r29),r5 13172 0000b734 2007002b addi r7,r0,#43 13173 0000b738 afa70004 sw 4(r29),r7 13174 0000b73c 0fffae4c jal _dindex 13175 0000b740 54000000 nop; not filled. 13176 0000b744 23bd0008 addi r29,r29,#8 13177 0000b748 64210000 snei r1,r1,#0 13178 0000b74c 10200030 beqz r1,L127_LF9 13179 0000b750 54000000 nop; not filled. 13180 0000b754 L128_LF9: 13181 0000b754 23bdffe8 addi r29,r29,#-24 13182 0000b758 3c070001 lhi r7,((LC3_LF9)>>16)&0xffff 13183 0000b75c 24e771c0 addui r7,r7,(LC3_LF9)&0xffff 13184 0000b760 afa70000 sw (r29),r7 13185 0000b764 afa20004 sw 4(r29),r2 13186 0000b768 afa60008 sw 8(r29),r6 13187 0000b76c afa4000c sw 12(r29),r4 13188 0000b770 afa30010 sw 16(r29),r3 13189 0000b774 0c001aac jal _printf 13190 0000b778 54000000 nop; not filled. 13191 0000b77c 23bd0018 addi r29,r29,#24 13192 0000b780 L127_LF9: 13193 0000b780 3c070800 lhi r7,#2048 13194 0000b784 24e70000 addui r7,r7,#0 13195 0000b788 00470824 and r1,r2,r7 13196 0000b78c 64210000 snei r1,r1,#0 13197 0000b790 10200f0c beqz r1,L129_LF9 13198 0000b794 54000000 nop; not filled. 13199 0000b798 3c07f7ff lhi r7,#-2049 13200 0000b79c 24e7ffff addui r7,r7,#65535 13201 0000b7a0 00471024 and r2,r2,r7 13202 0000b7a4 60410433 seqi r1,r2,#1075 13203 0000b7a8 142010dc bnez r1,L223_LF9 13204 0000b7ac 54000000 nop; not filled. 13205 0000b7b0 6c410433 sgtui r1,r2,#1075 13206 0000b7b4 142000ec bnez r1,L215_LF9 13207 0000b7b8 54000000 nop; not filled. 13208 0000b7bc 60410213 seqi r1,r2,#531 13209 0000b7c0 1420046c bnez r1,L146_LF9 13210 0000b7c4 54000000 nop; not filled. 13211 0000b7c8 6c410213 sgtui r1,r2,#531 13212 0000b7cc 1420005c bnez r1,L216_LF9 13213 0000b7d0 54000000 nop; not filled. 13214 0000b7d4 60410210 seqi r1,r2,#528 13215 0000b7d8 142005d0 bnez r1,L154_LF9 13216 0000b7dc 54000000 nop; not filled. 13217 0000b7e0 6c410210 sgtui r1,r2,#528 13218 0000b7e4 14200024 bnez r1,L217_LF9 13219 0000b7e8 54000000 nop; not filled. 13220 0000b7ec 60410050 seqi r1,r2,#80 13221 0000b7f0 14200da8 bnez r1,L207_LF9 13222 0000b7f4 54000000 nop; not filled. 13223 0000b7f8 60410201 seqi r1,r2,#513 13224 0000b7fc 10200e8c beqz r1,L213_LF9 13225 0000b800 54000000 nop; not filled. 13226 0000b804 08000394 j L143_LF9 13227 0000b808 54000000 nop; not filled. 13228 0000b80c L217_LF9: 13229 0000b80c 60410211 seqi r1,r2,#529 13230 0000b810 142005f4 bnez r1,L157_LF9 13231 0000b814 54000000 nop; not filled. 13232 0000b818 60410212 seqi r1,r2,#530 13233 0000b81c 10200e6c beqz r1,L213_LF9 13234 0000b820 54000000 nop; not filled. 13235 0000b824 08000698 j L163_LF9 13236 0000b828 54000000 nop; not filled. 13237 0000b82c L216_LF9: 13238 0000b82c 60410400 seqi r1,r2,#1024 13239 0000b830 14200144 bnez r1,L131_LF9 13240 0000b834 54000000 nop; not filled. 13241 0000b838 6c410400 sgtui r1,r2,#1024 13242 0000b83c 14200024 bnez r1,L218_LF9 13243 0000b840 54000000 nop; not filled. 13244 0000b844 60410214 seqi r1,r2,#532 13245 0000b848 14200504 bnez r1,L151_LF9 13246 0000b84c 54000000 nop; not filled. 13247 0000b850 60410300 seqi r1,r2,#768 13248 0000b854 10200e34 beqz r1,L213_LF9 13249 0000b858 54000000 nop; not filled. 13250 0000b85c 08000184 j L134_LF9 13251 0000b860 54000000 nop; not filled. 13252 0000b864 L218_LF9: 13253 0000b864 60410430 seqi r1,r2,#1072 13254 0000b868 14200218 bnez r1,L137_LF9 13255 0000b86c 54000000 nop; not filled. 13256 0000b870 6c410430 sgtui r1,r2,#1072 13257 0000b874 14200018 bnez r1,L219_LF9 13258 0000b878 54000000 nop; not filled. 13259 0000b87c 60410410 seqi r1,r2,#1040 13260 0000b880 10200e08 beqz r1,L213_LF9 13261 0000b884 54000000 nop; not filled. 13262 0000b888 08000270 j L140_LF9 13263 0000b88c 54000000 nop; not filled. 13264 0000b890 L219_LF9: 13265 0000b890 60410432 seqi r1,r2,#1074 13266 0000b894 10200df4 beqz r1,L213_LF9 13267 0000b898 54000000 nop; not filled. 13268 0000b89c 0800067c j L166_LF9 13269 0000b8a0 54000000 nop; not filled. 13270 0000b8a4 L215_LF9: 13271 0000b8a4 60410454 seqi r1,r2,#1108 13272 0000b8a8 142009a8 bnez r1,L187_LF9 13273 0000b8ac 54000000 nop; not filled. 13274 0000b8b0 6c410454 sgtui r1,r2,#1108 13275 0000b8b4 1420005c bnez r1,L220_LF9 13276 0000b8b8 54000000 nop; not filled. 13277 0000b8bc 60410450 seqi r1,r2,#1104 13278 0000b8c0 14200764 bnez r1,L174_LF9 13279 0000b8c4 54000000 nop; not filled. 13280 0000b8c8 6c410450 sgtui r1,r2,#1104 13281 0000b8cc 14200024 bnez r1,L221_LF9 13282 0000b8d0 54000000 nop; not filled. 13283 0000b8d4 60410440 seqi r1,r2,#1088 13284 0000b8d8 14200660 bnez r1,L169_LF9 13285 0000b8dc 54000000 nop; not filled. 13286 0000b8e0 60410441 seqi r1,r2,#1089 13287 0000b8e4 10200da4 beqz r1,L213_LF9 13288 0000b8e8 54000000 nop; not filled. 13289 0000b8ec 08000688 j L170_LF9 13290 0000b8f0 54000000 nop; not filled. 13291 0000b8f4 L221_LF9: 13292 0000b8f4 60410452 seqi r1,r2,#1106 13293 0000b8f8 1420087c bnez r1,L182_LF9 13294 0000b8fc 54000000 nop; not filled. 13295 0000b900 6c410452 sgtui r1,r2,#1106 13296 0000b904 102007c8 beqz r1,L178_LF9 13297 0000b908 54000000 nop; not filled. 13298 0000b90c 08000910 j L186_LF9 13299 0000b910 54000000 nop; not filled. 13300 0000b914 L220_LF9: 13301 0000b914 60410457 seqi r1,r2,#1111 13302 0000b918 14200b30 bnez r1,L199_LF9 13303 0000b91c 54000000 nop; not filled. 13304 0000b920 6c410457 sgtui r1,r2,#1111 13305 0000b924 14200024 bnez r1,L222_LF9 13306 0000b928 54000000 nop; not filled. 13307 0000b92c 60410455 seqi r1,r2,#1109 13308 0000b930 142009c8 bnez r1,L191_LF9 13309 0000b934 54000000 nop; not filled. 13310 0000b938 60410456 seqi r1,r2,#1110 13311 0000b93c 10200d4c beqz r1,L213_LF9 13312 0000b940 54000000 nop; not filled. 13313 0000b944 08000a5c j L195_LF9 13314 0000b948 54000000 nop; not filled. 13315 0000b94c L222_LF9: 13316 0000b94c 60410459 seqi r1,r2,#1113 13317 0000b950 14200c90 bnez r1,L209_LF9 13318 0000b954 54000000 nop; not filled. 13319 0000b958 68410459 sltui r1,r2,#1113 13320 0000b95c 14200b94 bnez r1,L203_LF9 13321 0000b960 54000000 nop; not filled. 13322 0000b964 60410580 seqi r1,r2,#1408 13323 0000b968 10200d20 beqz r1,L213_LF9 13324 0000b96c 54000000 nop; not filled. 13325 0000b970 080004f0 j L160_LF9 13326 0000b974 54000000 nop; not filled. 13327 0000b978 L131_LF9: 13328 0000b978 23bdfff8 addi r29,r29,#-8 13329 0000b97c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 13330 0000b980 24424038 addui r2,r2,(_debugstr)&0xffff 13331 0000b984 afa20000 sw (r29),r2 13332 0000b988 20070074 addi r7,r0,#116 13333 0000b98c afa70004 sw 4(r29),r7 13334 0000b990 0fffabf8 jal _dindex 13335 0000b994 54000000 nop; not filled. 13336 0000b998 23bd0008 addi r29,r29,#8 13337 0000b99c 64210000 snei r1,r1,#0 13338 0000b9a0 1420002c bnez r1,L133_LF9 13339 0000b9a4 54000000 nop; not filled. 13340 0000b9a8 23bdfff8 addi r29,r29,#-8 13341 0000b9ac afa20000 sw (r29),r2 13342 0000b9b0 2007002b addi r7,r0,#43 13343 0000b9b4 afa70004 sw 4(r29),r7 13344 0000b9b8 0fffabd0 jal _dindex 13345 0000b9bc 54000000 nop; not filled. 13346 0000b9c0 23bd0008 addi r29,r29,#8 13347 0000b9c4 64210000 snei r1,r1,#0 13348 0000b9c8 10200dc0 beqz r1,L226_LF9 13349 0000b9cc 54000000 nop; not filled. 13350 0000b9d0 L133_LF9: 13351 0000b9d0 23bdfff8 addi r29,r29,#-8 13352 0000b9d4 3c070001 lhi r7,((LC4_LF9)>>16)&0xffff 13353 0000b9d8 24e771f8 addui r7,r7,(LC4_LF9)&0xffff 13354 0000b9dc 08000d9c j L256_LF9 13355 0000b9e0 54000000 nop; not filled. 13356 0000b9e4 L134_LF9: 13357 0000b9e4 23bdfff8 addi r29,r29,#-8 13358 0000b9e8 3c020001 lhi r2,((_debugstr)>>16)&0xffff 13359 0000b9ec 24424038 addui r2,r2,(_debugstr)&0xffff 13360 0000b9f0 afa20000 sw (r29),r2 13361 0000b9f4 20070074 addi r7,r0,#116 13362 0000b9f8 afa70004 sw 4(r29),r7 13363 0000b9fc 0fffab8c jal _dindex 13364 0000ba00 54000000 nop; not filled. 13365 0000ba04 23bd0008 addi r29,r29,#8 13366 0000ba08 64210000 snei r1,r1,#0 13367 0000ba0c 1420002c bnez r1,L136_LF9 13368 0000ba10 54000000 nop; not filled. 13369 0000ba14 23bdfff8 addi r29,r29,#-8 13370 0000ba18 afa20000 sw (r29),r2 13371 0000ba1c 2007002b addi r7,r0,#43 13372 0000ba20 afa70004 sw 4(r29),r7 13373 0000ba24 0fffab64 jal _dindex 13374 0000ba28 54000000 nop; not filled. 13375 0000ba2c 23bd0008 addi r29,r29,#8 13376 0000ba30 64210000 snei r1,r1,#0 13377 0000ba34 10200020 beqz r1,L135_LF9 13378 0000ba38 54000000 nop; not filled. 13379 0000ba3c L136_LF9: 13380 0000ba3c 23bdfff8 addi r29,r29,#-8 13381 0000ba40 3c070001 lhi r7,((LC5_LF9)>>16)&0xffff 13382 0000ba44 24e77214 addui r7,r7,(LC5_LF9)&0xffff 13383 0000ba48 afa70000 sw (r29),r7 13384 0000ba4c 0c0017d4 jal _printf 13385 0000ba50 54000000 nop; not filled. 13386 0000ba54 23bd0008 addi r29,r29,#8 13387 0000ba58 L135_LF9: 13388 0000ba58 23bdfff8 addi r29,r29,#-8 13389 0000ba5c 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13390 0000ba60 24214100 addui r1,r1,(_currentPCB)&0xffff 13391 0000ba64 8c210000 lw r1,(r1) 13392 0000ba68 afa10000 sw (r29),r1 13393 0000ba6c 0fffc068 jal _ProcessDestroy 13394 0000ba70 54000000 nop; not filled. 13395 0000ba74 0fffb868 jal _ProcessSchedule 13396 0000ba78 54000000 nop; not filled. 13397 0000ba7c 08000e04 j L243_LF9 13398 0000ba80 54000000 nop; not filled. 13399 0000ba84 L137_LF9: 13400 0000ba84 23bdfff8 addi r29,r29,#-8 13401 0000ba88 3c020001 lhi r2,((_debugstr)>>16)&0xffff 13402 0000ba8c 24424038 addui r2,r2,(_debugstr)&0xffff 13403 0000ba90 afa20000 sw (r29),r2 13404 0000ba94 20070074 addi r7,r0,#116 13405 0000ba98 afa70004 sw 4(r29),r7 13406 0000ba9c 0fffaaec jal _dindex 13407 0000baa0 54000000 nop; not filled. 13408 0000baa4 23bd0008 addi r29,r29,#8 13409 0000baa8 64210000 snei r1,r1,#0 13410 0000baac 1420002c bnez r1,L139_LF9 13411 0000bab0 54000000 nop; not filled. 13412 0000bab4 23bdfff8 addi r29,r29,#-8 13413 0000bab8 afa20000 sw (r29),r2 13414 0000babc 2007002b addi r7,r0,#43 13415 0000bac0 afa70004 sw 4(r29),r7 13416 0000bac4 0fffaac4 jal _dindex 13417 0000bac8 54000000 nop; not filled. 13418 0000bacc 23bd0008 addi r29,r29,#8 13419 0000bad0 64210000 snei r1,r1,#0 13420 0000bad4 10200db0 beqz r1,L223_LF9 13421 0000bad8 54000000 nop; not filled. 13422 0000badc L139_LF9: 13423 0000badc 23bdfff8 addi r29,r29,#-8 13424 0000bae0 3c070001 lhi r7,((LC6_LF9)>>16)&0xffff 13425 0000bae4 24e77228 addui r7,r7,(LC6_LF9)&0xffff 13426 0000bae8 afa70000 sw (r29),r7 13427 0000baec 0c001734 jal _printf 13428 0000baf0 54000000 nop; not filled. 13429 0000baf4 08000d8c j L243_LF9 13430 0000baf8 54000000 nop; not filled. 13431 0000bafc L140_LF9: 13432 0000bafc 23bdfff8 addi r29,r29,#-8 13433 0000bb00 3c020001 lhi r2,((_debugstr)>>16)&0xffff 13434 0000bb04 24424038 addui r2,r2,(_debugstr)&0xffff 13435 0000bb08 afa20000 sw (r29),r2 13436 0000bb0c 20070074 addi r7,r0,#116 13437 0000bb10 afa70004 sw 4(r29),r7 13438 0000bb14 0fffaa74 jal _dindex 13439 0000bb18 54000000 nop; not filled. 13440 0000bb1c 23bd0008 addi r29,r29,#8 13441 0000bb20 64210000 snei r1,r1,#0 13442 0000bb24 1420002c bnez r1,L142_LF9 13443 0000bb28 54000000 nop; not filled. 13444 0000bb2c 23bdfff8 addi r29,r29,#-8 13445 0000bb30 afa20000 sw (r29),r2 13446 0000bb34 2007002b addi r7,r0,#43 13447 0000bb38 afa70004 sw 4(r29),r7 13448 0000bb3c 0fffaa4c jal _dindex 13449 0000bb40 54000000 nop; not filled. 13450 0000bb44 23bd0008 addi r29,r29,#8 13451 0000bb48 64210000 snei r1,r1,#0 13452 0000bb4c 10200020 beqz r1,L141_LF9 13453 0000bb50 54000000 nop; not filled. 13454 0000bb54 L142_LF9: 13455 0000bb54 23bdfff8 addi r29,r29,#-8 13456 0000bb58 3c070001 lhi r7,((LC7_LF9)>>16)&0xffff 13457 0000bb5c 24e7723c addui r7,r7,(LC7_LF9)&0xffff 13458 0000bb60 afa70000 sw (r29),r7 13459 0000bb64 0c0016bc jal _printf 13460 0000bb68 54000000 nop; not filled. 13461 0000bb6c 23bd0008 addi r29,r29,#8 13462 0000bb70 L141_LF9: 13463 0000bb70 23bdfff8 addi r29,r29,#-8 13464 0000bb74 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13465 0000bb78 24214100 addui r1,r1,(_currentPCB)&0xffff 13466 0000bb7c 8c210000 lw r1,(r1) 13467 0000bb80 afa10000 sw (r29),r1 13468 0000bb84 0fffbc28 jal _ProcessSuspend 13469 0000bb88 54000000 nop; not filled. 13470 0000bb8c 0fffb750 jal _ProcessSchedule 13471 0000bb90 54000000 nop; not filled. 13472 0000bb94 08000cec j L243_LF9 13473 0000bb98 54000000 nop; not filled. 13474 0000bb9c L143_LF9: 13475 0000bb9c 23bdfff8 addi r29,r29,#-8 13476 0000bba0 3c020001 lhi r2,((_debugstr)>>16)&0xffff 13477 0000bba4 24424038 addui r2,r2,(_debugstr)&0xffff 13478 0000bba8 afa20000 sw (r29),r2 13479 0000bbac 20070074 addi r7,r0,#116 13480 0000bbb0 afa70004 sw 4(r29),r7 13481 0000bbb4 0fffa9d4 jal _dindex 13482 0000bbb8 54000000 nop; not filled. 13483 0000bbbc 23bd0008 addi r29,r29,#8 13484 0000bbc0 64210000 snei r1,r1,#0 13485 0000bbc4 1420002c bnez r1,L145_LF9 13486 0000bbc8 54000000 nop; not filled. 13487 0000bbcc 23bdfff8 addi r29,r29,#-8 13488 0000bbd0 afa20000 sw (r29),r2 13489 0000bbd4 2007002b addi r7,r0,#43 13490 0000bbd8 afa70004 sw 4(r29),r7 13491 0000bbdc 0fffa9ac jal _dindex 13492 0000bbe0 54000000 nop; not filled. 13493 0000bbe4 23bd0008 addi r29,r29,#8 13494 0000bbe8 64210000 snei r1,r1,#0 13495 0000bbec 10200020 beqz r1,L144_LF9 13496 0000bbf0 54000000 nop; not filled. 13497 0000bbf4 L145_LF9: 13498 0000bbf4 23bdfff8 addi r29,r29,#-8 13499 0000bbf8 3c070001 lhi r7,((LC8_LF9)>>16)&0xffff 13500 0000bbfc 24e77258 addui r7,r7,(LC8_LF9)&0xffff 13501 0000bc00 afa70000 sw (r29),r7 13502 0000bc04 0c00161c jal _printf 13503 0000bc08 54000000 nop; not filled. 13504 0000bc0c 23bd0008 addi r29,r29,#8 13505 0000bc10 L144_LF9: 13506 0000bc10 23bdfff8 addi r29,r29,#-8 13507 0000bc14 afa30000 sw (r29),r3 13508 0000bc18 30810040 andi r1,r4,#64 13509 0000bc1c afa10004 sw 4(r29),r1 13510 0000bc20 0ffff7cc jal _TrapPrintfHandler_LF9 13511 0000bc24 54000000 nop; not filled. 13512 0000bc28 08000c58 j L243_LF9 13513 0000bc2c 54000000 nop; not filled. 13514 0000bc30 L146_LF9: 13515 0000bc30 30810040 andi r1,r4,#64 13516 0000bc34 64210000 snei r1,r1,#0 13517 0000bc38 1020001c beqz r1,L147_LF9 13518 0000bc3c 54000000 nop; not filled. 13519 0000bc40 8c670000 lw r7,(r3) 13520 0000bc44 afc7ffe8 sw -24(r30),r7 13521 0000bc48 8c630004 lw r3,4(r3) 13522 0000bc4c afc3ffec sw -20(r30),r3 13523 0000bc50 0800006c j L148_LF9 13524 0000bc54 54000000 nop; not filled. 13525 0000bc58 L147_LF9: 13526 0000bc58 23bdfff0 addi r29,r29,#-16 13527 0000bc5c 3c020001 lhi r2,((_currentPCB)>>16)&0xffff 13528 0000bc60 24424100 addui r2,r2,(_currentPCB)&0xffff 13529 0000bc64 8c470000 lw r7,(r2) 13530 0000bc68 afa70000 sw (r29),r7 13531 0000bc6c afa30004 sw 4(r29),r3 13532 0000bc70 23c1ffe8 addi r1,r30,#-24 13533 0000bc74 afa10008 sw 8(r29),r1 13534 0000bc78 20070008 addi r7,r0,#8 13535 0000bc7c afa7000c sw 12(r29),r7 13536 0000bc80 0fffa058 jal _MemoryCopyUserToSystem 13537 0000bc84 54000000 nop; not filled. 13538 0000bc88 8c420000 lw r2,(r2) 13539 0000bc8c afa20000 sw (r29),r2 13540 0000bc90 8fc1ffe8 lw r1,-24(r30) 13541 0000bc94 afa10004 sw 4(r29),r1 13542 0000bc98 23c2ffc8 addi r2,r30,#-56 13543 0000bc9c afa20008 sw 8(r29),r2 13544 0000bca0 2007001f addi r7,r0,#31 13545 0000bca4 afa7000c sw 12(r29),r7 13546 0000bca8 0fffa030 jal _MemoryCopyUserToSystem 13547 0000bcac 54000000 nop; not filled. 13548 0000bcb0 20070000 addi r7,r0,(#0x0)&0xff 13549 0000bcb4 a3c7ffe7 sb -25(r30),r7 13550 0000bcb8 afc2ffe8 sw -24(r30),r2 13551 0000bcbc 23bd0010 addi r29,r29,#16 13552 0000bcc0 L148_LF9: 13553 0000bcc0 23bdfff8 addi r29,r29,#-8 13554 0000bcc4 20070000 addi r7,r0,#0 13555 0000bcc8 afa70000 sw (r29),r7 13556 0000bccc 0fff55b8 jal _SetIntrs 13557 0000bcd0 54000000 nop; not filled. 13558 0000bcd4 00011020 add r2,r0,r1 13559 0000bcd8 23bd0008 addi r29,r29,#8 13560 0000bcdc 23bdfff8 addi r29,r29,#-8 13561 0000bce0 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13562 0000bce4 24214100 addui r1,r1,(_currentPCB)&0xffff 13563 0000bce8 8c210000 lw r1,(r1) 13564 0000bcec afa10000 sw (r29),r1 13565 0000bcf0 8fc1ffec lw r1,-20(r30) 13566 0000bcf4 3c070001 lhi r7,#1 13567 0000bcf8 24e70000 addui r7,r7,#0 13568 0000bcfc 00270820 add r1,r1,r7 13569 0000bd00 afa10004 sw 4(r29),r1 13570 0000bd04 0fffb5a4 jal _ProcessSetResult 13571 0000bd08 54000000 nop; not filled. 13572 0000bd0c 23bdfff8 addi r29,r29,#-8 13573 0000bd10 3c070001 lhi r7,((LC9_LF9)>>16)&0xffff 13574 0000bd14 24e7726c addui r7,r7,(LC9_LF9)&0xffff 13575 0000bd18 afa70000 sw (r29),r7 13576 0000bd1c 8fc1ffe8 lw r1,-24(r30) 13577 0000bd20 afa10004 sw 4(r29),r1 13578 0000bd24 8fc7ffec lw r7,-20(r30) 13579 0000bd28 afa70008 sw 8(r29),r7 13580 0000bd2c 0c0014f4 jal _printf 13581 0000bd30 54000000 nop; not filled. 13582 0000bd34 23bd0010 addi r29,r29,#16 13583 0000bd38 23bdfff8 addi r29,r29,#-8 13584 0000bd3c afa20000 sw (r29),r2 13585 0000bd40 0fff5544 jal _SetIntrs 13586 0000bd44 54000000 nop; not filled. 13587 0000bd48 08000b38 j L243_LF9 13588 0000bd4c 54000000 nop; not filled. 13589 0000bd50 L151_LF9: 13590 0000bd50 23bdfff8 addi r29,r29,#-8 13591 0000bd54 20070000 addi r7,r0,#0 13592 0000bd58 afa70000 sw (r29),r7 13593 0000bd5c 0fff5528 jal _SetIntrs 13594 0000bd60 54000000 nop; not filled. 13595 0000bd64 00011020 add r2,r0,r1 13596 0000bd68 23bd0008 addi r29,r29,#8 13597 0000bd6c 23bdfff8 addi r29,r29,#-8 13598 0000bd70 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13599 0000bd74 24214100 addui r1,r1,(_currentPCB)&0xffff 13600 0000bd78 8c210000 lw r1,(r1) 13601 0000bd7c afa10000 sw (r29),r1 13602 0000bd80 2007ffff addi r7,r0,#-1 13603 0000bd84 afa70004 sw 4(r29),r7 13604 0000bd88 0fffb520 jal _ProcessSetResult 13605 0000bd8c 54000000 nop; not filled. 13606 0000bd90 23bd0008 addi r29,r29,#8 13607 0000bd94 23bdfff8 addi r29,r29,#-8 13608 0000bd98 afa20000 sw (r29),r2 13609 0000bd9c 0fff54e8 jal _SetIntrs 13610 0000bda0 54000000 nop; not filled. 13611 0000bda4 08000adc j L243_LF9 13612 0000bda8 54000000 nop; not filled. 13613 0000bdac L154_LF9: 13614 0000bdac 23bdfff8 addi r29,r29,#-8 13615 0000bdb0 20070000 addi r7,r0,#0 13616 0000bdb4 afa70000 sw (r29),r7 13617 0000bdb8 0fff54cc jal _SetIntrs 13618 0000bdbc 54000000 nop; not filled. 13619 0000bdc0 00011020 add r2,r0,r1 13620 0000bdc4 23bd0008 addi r29,r29,#8 13621 0000bdc8 23bdfff8 addi r29,r29,#-8 13622 0000bdcc 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13623 0000bdd0 24214100 addui r1,r1,(_currentPCB)&0xffff 13624 0000bdd4 8c210000 lw r1,(r1) 13625 0000bdd8 afa10000 sw (r29),r1 13626 0000bddc 2007ffff addi r7,r0,#-1 13627 0000bde0 afa70004 sw 4(r29),r7 13628 0000bde4 0fffb4c4 jal _ProcessSetResult 13629 0000bde8 54000000 nop; not filled. 13630 0000bdec 23bd0008 addi r29,r29,#8 13631 0000bdf0 23bdfff8 addi r29,r29,#-8 13632 0000bdf4 afa20000 sw (r29),r2 13633 0000bdf8 0fff548c jal _SetIntrs 13634 0000bdfc 54000000 nop; not filled. 13635 0000be00 08000a80 j L243_LF9 13636 0000be04 54000000 nop; not filled. 13637 0000be08 L157_LF9: 13638 0000be08 23bdfff8 addi r29,r29,#-8 13639 0000be0c 20070000 addi r7,r0,#0 13640 0000be10 afa70000 sw (r29),r7 13641 0000be14 0fff5470 jal _SetIntrs 13642 0000be18 54000000 nop; not filled. 13643 0000be1c 00011020 add r2,r0,r1 13644 0000be20 23bd0008 addi r29,r29,#8 13645 0000be24 23bdfff8 addi r29,r29,#-8 13646 0000be28 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13647 0000be2c 24214100 addui r1,r1,(_currentPCB)&0xffff 13648 0000be30 8c210000 lw r1,(r1) 13649 0000be34 afa10000 sw (r29),r1 13650 0000be38 2007ffff addi r7,r0,#-1 13651 0000be3c afa70004 sw 4(r29),r7 13652 0000be40 0fffb468 jal _ProcessSetResult 13653 0000be44 54000000 nop; not filled. 13654 0000be48 23bd0008 addi r29,r29,#8 13655 0000be4c 23bdfff8 addi r29,r29,#-8 13656 0000be50 afa20000 sw (r29),r2 13657 0000be54 0fff5430 jal _SetIntrs 13658 0000be58 54000000 nop; not filled. 13659 0000be5c 08000a24 j L243_LF9 13660 0000be60 54000000 nop; not filled. 13661 0000be64 L160_LF9: 13662 0000be64 23bdfff8 addi r29,r29,#-8 13663 0000be68 20070000 addi r7,r0,#0 13664 0000be6c afa70000 sw (r29),r7 13665 0000be70 0fff5414 jal _SetIntrs 13666 0000be74 54000000 nop; not filled. 13667 0000be78 00011020 add r2,r0,r1 13668 0000be7c 23bd0008 addi r29,r29,#8 13669 0000be80 23bdfff8 addi r29,r29,#-8 13670 0000be84 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13671 0000be88 24214100 addui r1,r1,(_currentPCB)&0xffff 13672 0000be8c 8c210000 lw r1,(r1) 13673 0000be90 afa10000 sw (r29),r1 13674 0000be94 2007ffff addi r7,r0,#-1 13675 0000be98 afa70004 sw 4(r29),r7 13676 0000be9c 0fffb40c jal _ProcessSetResult 13677 0000bea0 54000000 nop; not filled. 13678 0000bea4 23bd0008 addi r29,r29,#8 13679 0000bea8 23bdfff8 addi r29,r29,#-8 13680 0000beac afa20000 sw (r29),r2 13681 0000beb0 0fff53d4 jal _SetIntrs 13682 0000beb4 54000000 nop; not filled. 13683 0000beb8 080009c8 j L243_LF9 13684 0000bebc 54000000 nop; not filled. 13685 0000bec0 L163_LF9: 13686 0000bec0 23bdfff8 addi r29,r29,#-8 13687 0000bec4 20070000 addi r7,r0,#0 13688 0000bec8 afa70000 sw (r29),r7 13689 0000becc 0fff53b8 jal _SetIntrs 13690 0000bed0 54000000 nop; not filled. 13691 0000bed4 00011020 add r2,r0,r1 13692 0000bed8 23bd0008 addi r29,r29,#8 13693 0000bedc 23bdfff8 addi r29,r29,#-8 13694 0000bee0 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13695 0000bee4 24214100 addui r1,r1,(_currentPCB)&0xffff 13696 0000bee8 8c210000 lw r1,(r1) 13697 0000beec afa10000 sw (r29),r1 13698 0000bef0 2007ffff addi r7,r0,#-1 13699 0000bef4 afa70004 sw 4(r29),r7 13700 0000bef8 0fffb3b0 jal _ProcessSetResult 13701 0000befc 54000000 nop; not filled. 13702 0000bf00 23bd0008 addi r29,r29,#8 13703 0000bf04 23bdfff8 addi r29,r29,#-8 13704 0000bf08 afa20000 sw (r29),r2 13705 0000bf0c 0fff5378 jal _SetIntrs 13706 0000bf10 54000000 nop; not filled. 13707 0000bf14 0800096c j L243_LF9 13708 0000bf18 54000000 nop; not filled. 13709 0000bf1c L166_LF9: 13710 0000bf1c 23bdfff8 addi r29,r29,#-8 13711 0000bf20 afa30000 sw (r29),r3 13712 0000bf24 30810040 andi r1,r4,#64 13713 0000bf28 afa10004 sw 4(r29),r1 13714 0000bf2c 0ffff11c jal _TrapProcessCreateHandler_LF9 13715 0000bf30 54000000 nop; not filled. 13716 0000bf34 0800094c j L243_LF9 13717 0000bf38 54000000 nop; not filled. 13718 0000bf3c L169_LF9: 13719 0000bf3c 23bdfff8 addi r29,r29,#-8 13720 0000bf40 3c020001 lhi r2,((_currentPCB)>>16)&0xffff 13721 0000bf44 24424100 addui r2,r2,(_currentPCB)&0xffff 13722 0000bf48 8c470000 lw r7,(r2) 13723 0000bf4c afa70000 sw (r29),r7 13724 0000bf50 0fff59c4 jal _MemoryCreateSharedPage 13725 0000bf54 54000000 nop; not filled. 13726 0000bf58 0001f820 add r31,r0,r1 13727 0000bf5c 8c420000 lw r2,(r2) 13728 0000bf60 afa20000 sw (r29),r2 13729 0000bf64 afbf0004 sw 4(r29),r31 13730 0000bf68 0fffb340 jal _ProcessSetResult 13731 0000bf6c 54000000 nop; not filled. 13732 0000bf70 08000910 j L243_LF9 13733 0000bf74 54000000 nop; not filled. 13734 0000bf78 L170_LF9: 13735 0000bf78 30810040 andi r1,r4,#64 13736 0000bf7c 64210000 snei r1,r1,#0 13737 0000bf80 1420003c bnez r1,L172_LF9 13738 0000bf84 54000000 nop; not filled. 13739 0000bf88 23bdfff0 addi r29,r29,#-16 13740 0000bf8c 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13741 0000bf90 24214100 addui r1,r1,(_currentPCB)&0xffff 13742 0000bf94 8c210000 lw r1,(r1) 13743 0000bf98 afa10000 sw (r29),r1 13744 0000bf9c afa30004 sw 4(r29),r3 13745 0000bfa0 23c1ffc4 addi r1,r30,#-60 13746 0000bfa4 afa10008 sw 8(r29),r1 13747 0000bfa8 20070004 addi r7,r0,#4 13748 0000bfac afa7000c sw 12(r29),r7 13749 0000bfb0 0fff9d28 jal _MemoryCopyUserToSystem 13750 0000bfb4 54000000 nop; not filled. 13751 0000bfb8 08000024 j L244_LF9 13752 0000bfbc 54000000 nop; not filled. 13753 0000bfc0 L172_LF9: 13754 0000bfc0 23bdfff0 addi r29,r29,#-16 13755 0000bfc4 afa30000 sw (r29),r3 13756 0000bfc8 23c1ffc4 addi r1,r30,#-60 13757 0000bfcc afa10004 sw 4(r29),r1 13758 0000bfd0 20070004 addi r7,r0,#4 13759 0000bfd4 afa70008 sw 8(r29),r7 13760 0000bfd8 0fffa940 jal _bcopy 13761 0000bfdc 54000000 nop; not filled. 13762 0000bfe0 L244_LF9: 13763 0000bfe0 23bd0010 addi r29,r29,#16 13764 0000bfe4 8fdfffc4 lw r31,-60(r30) 13765 0000bfe8 23bdfff8 addi r29,r29,#-8 13766 0000bfec 3c020001 lhi r2,((_currentPCB)>>16)&0xffff 13767 0000bff0 24424100 addui r2,r2,(_currentPCB)&0xffff 13768 0000bff4 8c470000 lw r7,(r2) 13769 0000bff8 afa70000 sw (r29),r7 13770 0000bffc afbf0004 sw 4(r29),r31 13771 0000c000 0fff5ae4 jal _mmap 13772 0000c004 54000000 nop; not filled. 13773 0000c008 0001f820 add r31,r0,r1 13774 0000c00c 8c420000 lw r2,(r2) 13775 0000c010 afa20000 sw (r29),r2 13776 0000c014 afbf0004 sw 4(r29),r31 13777 0000c018 0fffb290 jal _ProcessSetResult 13778 0000c01c 54000000 nop; not filled. 13779 0000c020 08000860 j L243_LF9 13780 0000c024 54000000 nop; not filled. 13781 0000c028 L174_LF9: 13782 0000c028 30810040 andi r1,r4,#64 13783 0000c02c 64210000 snei r1,r1,#0 13784 0000c030 1420003c bnez r1,L176_LF9 13785 0000c034 54000000 nop; not filled. 13786 0000c038 23bdfff0 addi r29,r29,#-16 13787 0000c03c 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13788 0000c040 24214100 addui r1,r1,(_currentPCB)&0xffff 13789 0000c044 8c210000 lw r1,(r1) 13790 0000c048 afa10000 sw (r29),r1 13791 0000c04c afa30004 sw 4(r29),r3 13792 0000c050 23c1ffc4 addi r1,r30,#-60 13793 0000c054 afa10008 sw 8(r29),r1 13794 0000c058 20070004 addi r7,r0,#4 13795 0000c05c afa7000c sw 12(r29),r7 13796 0000c060 0fff9c78 jal _MemoryCopyUserToSystem 13797 0000c064 54000000 nop; not filled. 13798 0000c068 08000024 j L245_LF9 13799 0000c06c 54000000 nop; not filled. 13800 0000c070 L176_LF9: 13801 0000c070 23bdfff0 addi r29,r29,#-16 13802 0000c074 afa30000 sw (r29),r3 13803 0000c078 23c1ffc4 addi r1,r30,#-60 13804 0000c07c afa10004 sw 4(r29),r1 13805 0000c080 20070004 addi r7,r0,#4 13806 0000c084 afa70008 sw 8(r29),r7 13807 0000c088 0fffa890 jal _bcopy 13808 0000c08c 54000000 nop; not filled. 13809 0000c090 L245_LF9: 13810 0000c090 23bd0010 addi r29,r29,#16 13811 0000c094 23bdfff8 addi r29,r29,#-8 13812 0000c098 8fc7ffc4 lw r7,-60(r30) 13813 0000c09c afa70000 sw (r29),r7 13814 0000c0a0 0fff64f0 jal _SemCreate 13815 0000c0a4 54000000 nop; not filled. 13816 0000c0a8 00011020 add r2,r0,r1 13817 0000c0ac 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13818 0000c0b0 24214100 addui r1,r1,(_currentPCB)&0xffff 13819 0000c0b4 8c210000 lw r1,(r1) 13820 0000c0b8 afa10000 sw (r29),r1 13821 0000c0bc afa20004 sw 4(r29),r2 13822 0000c0c0 0fffb1e8 jal _ProcessSetResult 13823 0000c0c4 54000000 nop; not filled. 13824 0000c0c8 080007b8 j L243_LF9 13825 0000c0cc 54000000 nop; not filled. 13826 0000c0d0 L178_LF9: 13827 0000c0d0 30810040 andi r1,r4,#64 13828 0000c0d4 64210000 snei r1,r1,#0 13829 0000c0d8 1420003c bnez r1,L180_LF9 13830 0000c0dc 54000000 nop; not filled. 13831 0000c0e0 23bdfff0 addi r29,r29,#-16 13832 0000c0e4 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13833 0000c0e8 24214100 addui r1,r1,(_currentPCB)&0xffff 13834 0000c0ec 8c210000 lw r1,(r1) 13835 0000c0f0 afa10000 sw (r29),r1 13836 0000c0f4 afa30004 sw 4(r29),r3 13837 0000c0f8 23c1ffc4 addi r1,r30,#-60 13838 0000c0fc afa10008 sw 8(r29),r1 13839 0000c100 20070004 addi r7,r0,#4 13840 0000c104 afa7000c sw 12(r29),r7 13841 0000c108 0fff9bd0 jal _MemoryCopyUserToSystem 13842 0000c10c 54000000 nop; not filled. 13843 0000c110 08000024 j L246_LF9 13844 0000c114 54000000 nop; not filled. 13845 0000c118 L180_LF9: 13846 0000c118 23bdfff0 addi r29,r29,#-16 13847 0000c11c afa30000 sw (r29),r3 13848 0000c120 23c1ffc4 addi r1,r30,#-60 13849 0000c124 afa10004 sw 4(r29),r1 13850 0000c128 20070004 addi r7,r0,#4 13851 0000c12c afa70008 sw 8(r29),r7 13852 0000c130 0fffa7e8 jal _bcopy 13853 0000c134 54000000 nop; not filled. 13854 0000c138 L246_LF9: 13855 0000c138 23bd0010 addi r29,r29,#16 13856 0000c13c 23bdfff8 addi r29,r29,#-8 13857 0000c140 8fc7ffc4 lw r7,-60(r30) 13858 0000c144 afa70000 sw (r29),r7 13859 0000c148 0fff67cc jal _SemHandleWait 13860 0000c14c 54000000 nop; not filled. 13861 0000c150 0001f820 add r31,r0,r1 13862 0000c154 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13863 0000c158 24214100 addui r1,r1,(_currentPCB)&0xffff 13864 0000c15c 8c210000 lw r1,(r1) 13865 0000c160 afa10000 sw (r29),r1 13866 0000c164 afbf0004 sw 4(r29),r31 13867 0000c168 0fffb140 jal _ProcessSetResult 13868 0000c16c 54000000 nop; not filled. 13869 0000c170 08000710 j L243_LF9 13870 0000c174 54000000 nop; not filled. 13871 0000c178 L182_LF9: 13872 0000c178 30810040 andi r1,r4,#64 13873 0000c17c 64210000 snei r1,r1,#0 13874 0000c180 1420003c bnez r1,L184_LF9 13875 0000c184 54000000 nop; not filled. 13876 0000c188 23bdfff0 addi r29,r29,#-16 13877 0000c18c 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13878 0000c190 24214100 addui r1,r1,(_currentPCB)&0xffff 13879 0000c194 8c210000 lw r1,(r1) 13880 0000c198 afa10000 sw (r29),r1 13881 0000c19c afa30004 sw 4(r29),r3 13882 0000c1a0 23c1ffc4 addi r1,r30,#-60 13883 0000c1a4 afa10008 sw 8(r29),r1 13884 0000c1a8 20070004 addi r7,r0,#4 13885 0000c1ac afa7000c sw 12(r29),r7 13886 0000c1b0 0fff9b28 jal _MemoryCopyUserToSystem 13887 0000c1b4 54000000 nop; not filled. 13888 0000c1b8 08000024 j L247_LF9 13889 0000c1bc 54000000 nop; not filled. 13890 0000c1c0 L184_LF9: 13891 0000c1c0 23bdfff0 addi r29,r29,#-16 13892 0000c1c4 afa30000 sw (r29),r3 13893 0000c1c8 23c1ffc4 addi r1,r30,#-60 13894 0000c1cc afa10004 sw 4(r29),r1 13895 0000c1d0 20070004 addi r7,r0,#4 13896 0000c1d4 afa70008 sw 8(r29),r7 13897 0000c1d8 0fffa740 jal _bcopy 13898 0000c1dc 54000000 nop; not filled. 13899 0000c1e0 L247_LF9: 13900 0000c1e0 23bd0010 addi r29,r29,#16 13901 0000c1e4 23bdfff8 addi r29,r29,#-8 13902 0000c1e8 8fc7ffc4 lw r7,-60(r30) 13903 0000c1ec afa70000 sw (r29),r7 13904 0000c1f0 0fff69b0 jal _SemHandleSignal 13905 0000c1f4 54000000 nop; not filled. 13906 0000c1f8 0001f820 add r31,r0,r1 13907 0000c1fc 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13908 0000c200 24214100 addui r1,r1,(_currentPCB)&0xffff 13909 0000c204 8c210000 lw r1,(r1) 13910 0000c208 afa10000 sw (r29),r1 13911 0000c20c afbf0004 sw 4(r29),r31 13912 0000c210 0fffb098 jal _ProcessSetResult 13913 0000c214 54000000 nop; not filled. 13914 0000c218 08000668 j L243_LF9 13915 0000c21c 54000000 nop; not filled. 13916 0000c220 L186_LF9: 13917 0000c220 0fff6aa8 jal _LockCreate 13918 0000c224 54000000 nop; not filled. 13919 0000c228 00011020 add r2,r0,r1 13920 0000c22c 23bdfff8 addi r29,r29,#-8 13921 0000c230 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13922 0000c234 24214100 addui r1,r1,(_currentPCB)&0xffff 13923 0000c238 8c210000 lw r1,(r1) 13924 0000c23c afa10000 sw (r29),r1 13925 0000c240 afa20004 sw 4(r29),r2 13926 0000c244 0fffb064 jal _ProcessSetResult 13927 0000c248 54000000 nop; not filled. 13928 0000c24c 08000634 j L243_LF9 13929 0000c250 54000000 nop; not filled. 13930 0000c254 L187_LF9: 13931 0000c254 30810040 andi r1,r4,#64 13932 0000c258 64210000 snei r1,r1,#0 13933 0000c25c 1420003c bnez r1,L189_LF9 13934 0000c260 54000000 nop; not filled. 13935 0000c264 23bdfff0 addi r29,r29,#-16 13936 0000c268 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13937 0000c26c 24214100 addui r1,r1,(_currentPCB)&0xffff 13938 0000c270 8c210000 lw r1,(r1) 13939 0000c274 afa10000 sw (r29),r1 13940 0000c278 afa30004 sw 4(r29),r3 13941 0000c27c 23c1ffc4 addi r1,r30,#-60 13942 0000c280 afa10008 sw 8(r29),r1 13943 0000c284 20070004 addi r7,r0,#4 13944 0000c288 afa7000c sw 12(r29),r7 13945 0000c28c 0fff9a4c jal _MemoryCopyUserToSystem 13946 0000c290 54000000 nop; not filled. 13947 0000c294 08000024 j L248_LF9 13948 0000c298 54000000 nop; not filled. 13949 0000c29c L189_LF9: 13950 0000c29c 23bdfff0 addi r29,r29,#-16 13951 0000c2a0 afa30000 sw (r29),r3 13952 0000c2a4 23c1ffc4 addi r1,r30,#-60 13953 0000c2a8 afa10004 sw 4(r29),r1 13954 0000c2ac 20070004 addi r7,r0,#4 13955 0000c2b0 afa70008 sw 8(r29),r7 13956 0000c2b4 0fffa664 jal _bcopy 13957 0000c2b8 54000000 nop; not filled. 13958 0000c2bc L248_LF9: 13959 0000c2bc 23bd0010 addi r29,r29,#16 13960 0000c2c0 23bdfff8 addi r29,r29,#-8 13961 0000c2c4 8fc7ffc4 lw r7,-60(r30) 13962 0000c2c8 afa70000 sw (r29),r7 13963 0000c2cc 0fff6c14 jal _LockHandleAcquire 13964 0000c2d0 54000000 nop; not filled. 13965 0000c2d4 0001f820 add r31,r0,r1 13966 0000c2d8 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13967 0000c2dc 24214100 addui r1,r1,(_currentPCB)&0xffff 13968 0000c2e0 8c210000 lw r1,(r1) 13969 0000c2e4 afa10000 sw (r29),r1 13970 0000c2e8 afbf0004 sw 4(r29),r31 13971 0000c2ec 0fffafbc jal _ProcessSetResult 13972 0000c2f0 54000000 nop; not filled. 13973 0000c2f4 0800058c j L243_LF9 13974 0000c2f8 54000000 nop; not filled. 13975 0000c2fc L191_LF9: 13976 0000c2fc 30810040 andi r1,r4,#64 13977 0000c300 64210000 snei r1,r1,#0 13978 0000c304 1420003c bnez r1,L193_LF9 13979 0000c308 54000000 nop; not filled. 13980 0000c30c 23bdfff0 addi r29,r29,#-16 13981 0000c310 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 13982 0000c314 24214100 addui r1,r1,(_currentPCB)&0xffff 13983 0000c318 8c210000 lw r1,(r1) 13984 0000c31c afa10000 sw (r29),r1 13985 0000c320 afa30004 sw 4(r29),r3 13986 0000c324 23c1ffc4 addi r1,r30,#-60 13987 0000c328 afa10008 sw 8(r29),r1 13988 0000c32c 20070004 addi r7,r0,#4 13989 0000c330 afa7000c sw 12(r29),r7 13990 0000c334 0fff99a4 jal _MemoryCopyUserToSystem 13991 0000c338 54000000 nop; not filled. 13992 0000c33c 08000024 j L249_LF9 13993 0000c340 54000000 nop; not filled. 13994 0000c344 L193_LF9: 13995 0000c344 23bdfff0 addi r29,r29,#-16 13996 0000c348 afa30000 sw (r29),r3 13997 0000c34c 23c1ffc4 addi r1,r30,#-60 13998 0000c350 afa10004 sw 4(r29),r1 13999 0000c354 20070004 addi r7,r0,#4 14000 0000c358 afa70008 sw 8(r29),r7 14001 0000c35c 0fffa5bc jal _bcopy 14002 0000c360 54000000 nop; not filled. 14003 0000c364 L249_LF9: 14004 0000c364 23bd0010 addi r29,r29,#16 14005 0000c368 23bdfff8 addi r29,r29,#-8 14006 0000c36c 8fc7ffc4 lw r7,-60(r30) 14007 0000c370 afa70000 sw (r29),r7 14008 0000c374 0fff6d4c jal _LockHandleRelease 14009 0000c378 54000000 nop; not filled. 14010 0000c37c 0001f820 add r31,r0,r1 14011 0000c380 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14012 0000c384 24214100 addui r1,r1,(_currentPCB)&0xffff 14013 0000c388 8c210000 lw r1,(r1) 14014 0000c38c afa10000 sw (r29),r1 14015 0000c390 afbf0004 sw 4(r29),r31 14016 0000c394 0fffaf14 jal _ProcessSetResult 14017 0000c398 54000000 nop; not filled. 14018 0000c39c 080004e4 j L243_LF9 14019 0000c3a0 54000000 nop; not filled. 14020 0000c3a4 L195_LF9: 14021 0000c3a4 30810040 andi r1,r4,#64 14022 0000c3a8 64210000 snei r1,r1,#0 14023 0000c3ac 1420003c bnez r1,L197_LF9 14024 0000c3b0 54000000 nop; not filled. 14025 0000c3b4 23bdfff0 addi r29,r29,#-16 14026 0000c3b8 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14027 0000c3bc 24214100 addui r1,r1,(_currentPCB)&0xffff 14028 0000c3c0 8c210000 lw r1,(r1) 14029 0000c3c4 afa10000 sw (r29),r1 14030 0000c3c8 afa30004 sw 4(r29),r3 14031 0000c3cc 23c1ffc4 addi r1,r30,#-60 14032 0000c3d0 afa10008 sw 8(r29),r1 14033 0000c3d4 20070004 addi r7,r0,#4 14034 0000c3d8 afa7000c sw 12(r29),r7 14035 0000c3dc 0fff98fc jal _MemoryCopyUserToSystem 14036 0000c3e0 54000000 nop; not filled. 14037 0000c3e4 08000024 j L250_LF9 14038 0000c3e8 54000000 nop; not filled. 14039 0000c3ec L197_LF9: 14040 0000c3ec 23bdfff0 addi r29,r29,#-16 14041 0000c3f0 afa30000 sw (r29),r3 14042 0000c3f4 23c1ffc4 addi r1,r30,#-60 14043 0000c3f8 afa10004 sw 4(r29),r1 14044 0000c3fc 20070004 addi r7,r0,#4 14045 0000c400 afa70008 sw 8(r29),r7 14046 0000c404 0fffa514 jal _bcopy 14047 0000c408 54000000 nop; not filled. 14048 0000c40c L250_LF9: 14049 0000c40c 23bd0010 addi r29,r29,#16 14050 0000c410 23bdfff8 addi r29,r29,#-8 14051 0000c414 8fc7ffc4 lw r7,-60(r30) 14052 0000c418 afa70000 sw (r29),r7 14053 0000c41c 0fff6e58 jal _CondCreate 14054 0000c420 54000000 nop; not filled. 14055 0000c424 00011020 add r2,r0,r1 14056 0000c428 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14057 0000c42c 24214100 addui r1,r1,(_currentPCB)&0xffff 14058 0000c430 8c210000 lw r1,(r1) 14059 0000c434 afa10000 sw (r29),r1 14060 0000c438 afa20004 sw 4(r29),r2 14061 0000c43c 0fffae6c jal _ProcessSetResult 14062 0000c440 54000000 nop; not filled. 14063 0000c444 0800043c j L243_LF9 14064 0000c448 54000000 nop; not filled. 14065 0000c44c L199_LF9: 14066 0000c44c 30810040 andi r1,r4,#64 14067 0000c450 64210000 snei r1,r1,#0 14068 0000c454 1420003c bnez r1,L201_LF9 14069 0000c458 54000000 nop; not filled. 14070 0000c45c 23bdfff0 addi r29,r29,#-16 14071 0000c460 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14072 0000c464 24214100 addui r1,r1,(_currentPCB)&0xffff 14073 0000c468 8c210000 lw r1,(r1) 14074 0000c46c afa10000 sw (r29),r1 14075 0000c470 afa30004 sw 4(r29),r3 14076 0000c474 23c1ffc4 addi r1,r30,#-60 14077 0000c478 afa10008 sw 8(r29),r1 14078 0000c47c 20070004 addi r7,r0,#4 14079 0000c480 afa7000c sw 12(r29),r7 14080 0000c484 0fff9854 jal _MemoryCopyUserToSystem 14081 0000c488 54000000 nop; not filled. 14082 0000c48c 08000024 j L251_LF9 14083 0000c490 54000000 nop; not filled. 14084 0000c494 L201_LF9: 14085 0000c494 23bdfff0 addi r29,r29,#-16 14086 0000c498 afa30000 sw (r29),r3 14087 0000c49c 23c1ffc4 addi r1,r30,#-60 14088 0000c4a0 afa10004 sw 4(r29),r1 14089 0000c4a4 20070004 addi r7,r0,#4 14090 0000c4a8 afa70008 sw 8(r29),r7 14091 0000c4ac 0fffa46c jal _bcopy 14092 0000c4b0 54000000 nop; not filled. 14093 0000c4b4 L251_LF9: 14094 0000c4b4 23bd0010 addi r29,r29,#16 14095 0000c4b8 23bdfff8 addi r29,r29,#-8 14096 0000c4bc 8fc7ffc4 lw r7,-60(r30) 14097 0000c4c0 afa70000 sw (r29),r7 14098 0000c4c4 0fff7104 jal _CondHandleWait 14099 0000c4c8 54000000 nop; not filled. 14100 0000c4cc 00011020 add r2,r0,r1 14101 0000c4d0 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14102 0000c4d4 24214100 addui r1,r1,(_currentPCB)&0xffff 14103 0000c4d8 8c210000 lw r1,(r1) 14104 0000c4dc afa10000 sw (r29),r1 14105 0000c4e0 afa20004 sw 4(r29),r2 14106 0000c4e4 0fffadc4 jal _ProcessSetResult 14107 0000c4e8 54000000 nop; not filled. 14108 0000c4ec 08000394 j L243_LF9 14109 0000c4f0 54000000 nop; not filled. 14110 0000c4f4 L203_LF9: 14111 0000c4f4 30810040 andi r1,r4,#64 14112 0000c4f8 64210000 snei r1,r1,#0 14113 0000c4fc 1420003c bnez r1,L205_LF9 14114 0000c500 54000000 nop; not filled. 14115 0000c504 23bdfff0 addi r29,r29,#-16 14116 0000c508 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14117 0000c50c 24214100 addui r1,r1,(_currentPCB)&0xffff 14118 0000c510 8c210000 lw r1,(r1) 14119 0000c514 afa10000 sw (r29),r1 14120 0000c518 afa30004 sw 4(r29),r3 14121 0000c51c 23c1ffc4 addi r1,r30,#-60 14122 0000c520 afa10008 sw 8(r29),r1 14123 0000c524 20070004 addi r7,r0,#4 14124 0000c528 afa7000c sw 12(r29),r7 14125 0000c52c 0fff97ac jal _MemoryCopyUserToSystem 14126 0000c530 54000000 nop; not filled. 14127 0000c534 08000024 j L252_LF9 14128 0000c538 54000000 nop; not filled. 14129 0000c53c L205_LF9: 14130 0000c53c 23bdfff0 addi r29,r29,#-16 14131 0000c540 afa30000 sw (r29),r3 14132 0000c544 23c1ffc4 addi r1,r30,#-60 14133 0000c548 afa10004 sw 4(r29),r1 14134 0000c54c 20070004 addi r7,r0,#4 14135 0000c550 afa70008 sw 8(r29),r7 14136 0000c554 0fffa3c4 jal _bcopy 14137 0000c558 54000000 nop; not filled. 14138 0000c55c L252_LF9: 14139 0000c55c 23bd0010 addi r29,r29,#16 14140 0000c560 23bdfff8 addi r29,r29,#-8 14141 0000c564 8fc7ffc4 lw r7,-60(r30) 14142 0000c568 afa70000 sw (r29),r7 14143 0000c56c 0fff71cc jal _CondHandleSignal 14144 0000c570 54000000 nop; not filled. 14145 0000c574 00011020 add r2,r0,r1 14146 0000c578 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14147 0000c57c 24214100 addui r1,r1,(_currentPCB)&0xffff 14148 0000c580 8c210000 lw r1,(r1) 14149 0000c584 afa10000 sw (r29),r1 14150 0000c588 afa20004 sw 4(r29),r2 14151 0000c58c 0fffad1c jal _ProcessSetResult 14152 0000c590 54000000 nop; not filled. 14153 0000c594 080002ec j L243_LF9 14154 0000c598 54000000 nop; not filled. 14155 0000c59c L207_LF9: 14156 0000c59c 3c010001 lhi r1,((_MY_TIMER)>>16)&0xffff 14157 0000c5a0 24217160 addui r1,r1,(_MY_TIMER)&0xffff 14158 0000c5a4 8c220000 lw r2,(r1) 14159 0000c5a8 200103e8 addi r1,r0,#1000 14160 0000c5ac 00400035 movi2fp f0,r2 14161 0000c5b0 00200835 movi2fp f1,r1 14162 0000c5b4 04010017 divu f0,f0,f1 14163 0000c5b8 00001034 movfp2i r2,f0 14164 0000c5bc 23bdfff8 addi r29,r29,#-8 14165 0000c5c0 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14166 0000c5c4 24214100 addui r1,r1,(_currentPCB)&0xffff 14167 0000c5c8 8c210000 lw r1,(r1) 14168 0000c5cc afa10000 sw (r29),r1 14169 0000c5d0 afa20004 sw 4(r29),r2 14170 0000c5d4 0fffacd4 jal _ProcessSetResult 14171 0000c5d8 54000000 nop; not filled. 14172 0000c5dc 080002a4 j L243_LF9 14173 0000c5e0 54000000 nop; not filled. 14174 0000c5e4 L209_LF9: 14175 0000c5e4 30810040 andi r1,r4,#64 14176 0000c5e8 64210000 snei r1,r1,#0 14177 0000c5ec 1420003c bnez r1,L211_LF9 14178 0000c5f0 54000000 nop; not filled. 14179 0000c5f4 23bdfff0 addi r29,r29,#-16 14180 0000c5f8 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14181 0000c5fc 24214100 addui r1,r1,(_currentPCB)&0xffff 14182 0000c600 8c210000 lw r1,(r1) 14183 0000c604 afa10000 sw (r29),r1 14184 0000c608 afa30004 sw 4(r29),r3 14185 0000c60c 23c1ffc4 addi r1,r30,#-60 14186 0000c610 afa10008 sw 8(r29),r1 14187 0000c614 20070004 addi r7,r0,#4 14188 0000c618 afa7000c sw 12(r29),r7 14189 0000c61c 0fff96bc jal _MemoryCopyUserToSystem 14190 0000c620 54000000 nop; not filled. 14191 0000c624 08000024 j L253_LF9 14192 0000c628 54000000 nop; not filled. 14193 0000c62c L211_LF9: 14194 0000c62c 23bdfff0 addi r29,r29,#-16 14195 0000c630 afa30000 sw (r29),r3 14196 0000c634 23c1ffc4 addi r1,r30,#-60 14197 0000c638 afa10004 sw 4(r29),r1 14198 0000c63c 20070004 addi r7,r0,#4 14199 0000c640 afa70008 sw 8(r29),r7 14200 0000c644 0fffa2d4 jal _bcopy 14201 0000c648 54000000 nop; not filled. 14202 0000c64c L253_LF9: 14203 0000c64c 23bd0010 addi r29,r29,#16 14204 0000c650 23bdfff8 addi r29,r29,#-8 14205 0000c654 8fc7ffc4 lw r7,-60(r30) 14206 0000c658 afa70000 sw (r29),r7 14207 0000c65c 0fff72bc jal _CondHandleBroadcast 14208 0000c660 54000000 nop; not filled. 14209 0000c664 00011020 add r2,r0,r1 14210 0000c668 3c010001 lhi r1,((_currentPCB)>>16)&0xffff 14211 0000c66c 24214100 addui r1,r1,(_currentPCB)&0xffff 14212 0000c670 8c210000 lw r1,(r1) 14213 0000c674 afa10000 sw (r29),r1 14214 0000c678 afa20004 sw 4(r29),r2 14215 0000c67c 0fffac2c jal _ProcessSetResult 14216 0000c680 54000000 nop; not filled. 14217 0000c684 080001fc j L243_LF9 14218 0000c688 54000000 nop; not filled. 14219 0000c68c L213_LF9: 14220 0000c68c 23bdfff8 addi r29,r29,#-8 14221 0000c690 3c070001 lhi r7,((LC10_LF9)>>16)&0xffff 14222 0000c694 24e77298 addui r7,r7,(LC10_LF9)&0xffff 14223 0000c698 080001d0 j L254_LF9 14224 0000c69c 54000000 nop; not filled. 14225 0000c6a0 L129_LF9: 14226 0000c6a0 60410003 seqi r1,r2,#3 14227 0000c6a4 14200148 bnez r1,L233_LF9 14228 0000c6a8 54000000 nop; not filled. 14229 0000c6ac 6c410003 sgtui r1,r2,#3 14230 0000c6b0 14200024 bnez r1,L239_LF9 14231 0000c6b4 54000000 nop; not filled. 14232 0000c6b8 60410001 seqi r1,r2,#1 14233 0000c6bc 14200158 bnez r1,L235_LF9 14234 0000c6c0 54000000 nop; not filled. 14235 0000c6c4 60410002 seqi r1,r2,#2 14236 0000c6c8 10200194 beqz r1,L237_LF9 14237 0000c6cc 54000000 nop; not filled. 14238 0000c6d0 08000130 j L234_LF9 14239 0000c6d4 54000000 nop; not filled. 14240 0000c6d8 L239_LF9: 14241 0000c6d8 60410040 seqi r1,r2,#64 14242 0000c6dc 14200038 bnez r1,L225_LF9 14243 0000c6e0 54000000 nop; not filled. 14244 0000c6e4 6c410040 sgtui r1,r2,#64 14245 0000c6e8 14200018 bnez r1,L240_LF9 14246 0000c6ec 54000000 nop; not filled. 14247 0000c6f0 60410020 seqi r1,r2,#32 14248 0000c6f4 10200168 beqz r1,L237_LF9 14249 0000c6f8 54000000 nop; not filled. 14250 0000c6fc 0800012c j L236_LF9 14251 0000c700 54000000 nop; not filled. 14252 0000c704 L240_LF9: 14253 0000c704 60410048 seqi r1,r2,#72 14254 0000c708 10200154 beqz r1,L237_LF9 14255 0000c70c 54000000 nop; not filled. 14256 0000c710 08000088 j L228_LF9 14257 0000c714 54000000 nop; not filled. 14258 0000c718 L225_LF9: 14259 0000c718 23bdfff8 addi r29,r29,#-8 14260 0000c71c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 14261 0000c720 24424038 addui r2,r2,(_debugstr)&0xffff 14262 0000c724 afa20000 sw (r29),r2 14263 0000c728 20070074 addi r7,r0,#116 14264 0000c72c afa70004 sw 4(r29),r7 14265 0000c730 0fff9e58 jal _dindex 14266 0000c734 54000000 nop; not filled. 14267 0000c738 23bd0008 addi r29,r29,#8 14268 0000c73c 64210000 snei r1,r1,#0 14269 0000c740 1420002c bnez r1,L227_LF9 14270 0000c744 54000000 nop; not filled. 14271 0000c748 23bdfff8 addi r29,r29,#-8 14272 0000c74c afa20000 sw (r29),r2 14273 0000c750 2007002b addi r7,r0,#43 14274 0000c754 afa70004 sw 4(r29),r7 14275 0000c758 0fff9e30 jal _dindex 14276 0000c75c 54000000 nop; not filled. 14277 0000c760 23bd0008 addi r29,r29,#8 14278 0000c764 64210000 snei r1,r1,#0 14279 0000c768 10200020 beqz r1,L226_LF9 14280 0000c76c 54000000 nop; not filled. 14281 0000c770 L227_LF9: 14282 0000c770 23bdfff8 addi r29,r29,#-8 14283 0000c774 3c070001 lhi r7,((LC11_LF9)>>16)&0xffff 14284 0000c778 24e772c4 addui r7,r7,(LC11_LF9)&0xffff 14285 0000c77c L256_LF9: 14286 0000c77c afa70000 sw (r29),r7 14287 0000c780 0c000aa0 jal _printf 14288 0000c784 54000000 nop; not filled. 14289 0000c788 23bd0008 addi r29,r29,#8 14290 0000c78c L226_LF9: 14291 0000c78c 0fffab50 jal _ProcessSchedule 14292 0000c790 54000000 nop; not filled. 14293 0000c794 080000f0 j L223_LF9 14294 0000c798 54000000 nop; not filled. 14295 0000c79c L228_LF9: 14296 0000c79c 3c04fff0 lhi r4,#-16 14297 0000c7a0 248401a0 addui r4,r4,#416 14298 0000c7a4 3c03fff0 lhi r3,#-16 14299 0000c7a8 24630180 addui r3,r3,#384 14300 0000c7ac L229_LF9: 14301 0000c7ac 8c820000 lw r2,(r4) 14302 0000c7b0 8c610000 lw r1,(r3) 14303 0000c7b4 23bdfff0 addi r29,r29,#-16 14304 0000c7b8 3c070001 lhi r7,((LC12_LF9)>>16)&0xffff 14305 0000c7bc 24e772dc addui r7,r7,(LC12_LF9)&0xffff 14306 0000c7c0 afa70000 sw (r29),r7 14307 0000c7c4 afa10004 sw 4(r29),r1 14308 0000c7c8 afa10008 sw 8(r29),r1 14309 0000c7cc afa2000c sw 12(r29),r2 14310 0000c7d0 0c000a50 jal _printf 14311 0000c7d4 54000000 nop; not filled. 14312 0000c7d8 23bd0010 addi r29,r29,#16 14313 0000c7dc 6c410001 sgti r1,r2,#1 14314 0000c7e0 102000a4 beqz r1,L223_LF9 14315 0000c7e4 54000000 nop; not filled. 14316 0000c7e8 0bffffc0 j L229_LF9 14317 0000c7ec 54000000 nop; not filled. 14318 0000c7f0 L233_LF9: 14319 0000c7f0 23bdfff0 addi r29,r29,#-16 14320 0000c7f4 3c070001 lhi r7,((LC13_LF9)>>16)&0xffff 14321 0000c7f8 24e77314 addui r7,r7,(LC13_LF9)&0xffff 14322 0000c7fc 08000038 j L255_LF9 14323 0000c800 54000000 nop; not filled. 14324 0000c804 L234_LF9: 14325 0000c804 23bdfff0 addi r29,r29,#-16 14326 0000c808 3c070001 lhi r7,((LC14_LF9)>>16)&0xffff 14327 0000c80c 24e77348 addui r7,r7,(LC14_LF9)&0xffff 14328 0000c810 08000024 j L255_LF9 14329 0000c814 54000000 nop; not filled. 14330 0000c818 L235_LF9: 14331 0000c818 23bdfff0 addi r29,r29,#-16 14332 0000c81c 3c070001 lhi r7,((LC15_LF9)>>16)&0xffff 14333 0000c820 24e77380 addui r7,r7,(LC15_LF9)&0xffff 14334 0000c824 08000010 j L255_LF9 14335 0000c828 54000000 nop; not filled. 14336 0000c82c L236_LF9: 14337 0000c82c 23bdfff0 addi r29,r29,#-16 14338 0000c830 3c070001 lhi r7,((LC16_LF9)>>16)&0xffff 14339 0000c834 24e773bc addui r7,r7,(LC16_LF9)&0xffff 14340 0000c838 L255_LF9: 14341 0000c838 afa70000 sw (r29),r7 14342 0000c83c afa60004 sw 4(r29),r6 14343 0000c840 afa40008 sw 8(r29),r4 14344 0000c844 0c0009dc jal _printf 14345 0000c848 54000000 nop; not filled. 14346 0000c84c 0c0009bc jal _exitsim 14347 0000c850 54000000 nop; not filled. 14348 0000c854 23bd0010 addi r29,r29,#16 14349 0000c858 0800002c j L223_LF9 14350 0000c85c 54000000 nop; not filled. 14351 0000c860 L237_LF9: 14352 0000c860 23bdfff8 addi r29,r29,#-8 14353 0000c864 3c070001 lhi r7,((LC17_LF9)>>16)&0xffff 14354 0000c868 24e773ec addui r7,r7,(LC17_LF9)&0xffff 14355 0000c86c L254_LF9: 14356 0000c86c afa70000 sw (r29),r7 14357 0000c870 afa20004 sw 4(r29),r2 14358 0000c874 0c0009ac jal _printf 14359 0000c878 54000000 nop; not filled. 14360 0000c87c 0c00098c jal _exitsim 14361 0000c880 54000000 nop; not filled. 14362 0000c884 L243_LF9: 14363 0000c884 23bd0008 addi r29,r29,#8 14364 0000c888 L223_LF9: 14365 0000c888 23bdfff8 addi r29,r29,#-8 14366 0000c88c 3c020001 lhi r2,((_debugstr)>>16)&0xffff 14367 0000c890 24424038 addui r2,r2,(_debugstr)&0xffff 14368 0000c894 afa20000 sw (r29),r2 14369 0000c898 20070074 addi r7,r0,#116 14370 0000c89c afa70004 sw 4(r29),r7 14371 0000c8a0 0fff9ce8 jal _dindex 14372 0000c8a4 54000000 nop; not filled. 14373 0000c8a8 23bd0008 addi r29,r29,#8 14374 0000c8ac 64210000 snei r1,r1,#0 14375 0000c8b0 1420002c bnez r1,L242_LF9 14376 0000c8b4 54000000 nop; not filled. 14377 0000c8b8 23bdfff8 addi r29,r29,#-8 14378 0000c8bc afa20000 sw (r29),r2 14379 0000c8c0 2007002b addi r7,r0,#43 14380 0000c8c4 afa70004 sw 4(r29),r7 14381 0000c8c8 0fff9cc0 jal _dindex 14382 0000c8cc 54000000 nop; not filled. 14383 0000c8d0 23bd0008 addi r29,r29,#8 14384 0000c8d4 64210000 snei r1,r1,#0 14385 0000c8d8 10200020 beqz r1,L241_LF9 14386 0000c8dc 54000000 nop; not filled. 14387 0000c8e0 L242_LF9: 14388 0000c8e0 23bdfff8 addi r29,r29,#-8 14389 0000c8e4 3c070001 lhi r7,((LC18_LF9)>>16)&0xffff 14390 0000c8e8 24e77424 addui r7,r7,(LC18_LF9)&0xffff 14391 0000c8ec afa70000 sw (r29),r7 14392 0000c8f0 0c000930 jal _printf 14393 0000c8f4 54000000 nop; not filled. 14394 0000c8f8 23bd0008 addi r29,r29,#8 14395 0000c8fc L241_LF9: 14396 0000c8fc 0fff4868 jal _intrreturn 14397 0000c900 54000000 nop; not filled. 14398 0000c904 8fa20000 lw r2,0(r29) 14399 0000c908 8fa30004 lw r3,4(r29) 14400 0000c90c 8fa40008 lw r4,8(r29) 14401 0000c910 8fa5000c lw r5,12(r29) 14402 0000c914 8fa60010 lw r6,16(r29) 14403 0000c918 8fa70014 lw r7,20(r29) 14404 0000c91c 8fdffff8 lw r31,-8(r30) 14405 0000c920 001ee820 add r29,r0,r30 14406 0000c924 8fdefffc lw r30,-4(r30) 14407 0000c928 4be00000 jr r31 14408 0000c92c 54000000 nop 14409 0000c930 .endproc _dointerrupt 14410 ; Compiled by GCC 14412 0000c930 .align 2 14413 0000c930 .proc _isspace 14414 0000c930 .global _isspace 14415 0000c930 _isspace: 14416 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 14417 0000c930 afbefffc sw -4(r29),r30; push fp 14418 0000c934 001df020 add r30,r0,r29; fp = sp 14419 0000c938 afbffff8 sw -8(r29),r31; push ret addr 14420 0000c93c 2fbd0010 subui r29,r29,#16; alloc local storage 14421 0000c940 afa20000 sw 0(r29),r2 14422 0000c944 83c20003 lb r2,3(r30) 14423 0000c948 201f0000 addi r31,r0,#0 14424 0000c94c 304100ff andi r1,r2,#0x00ff 14425 0000c950 60210020 seqi r1,r1,#32 14426 0000c954 14200018 bnez r1,L6_LF10 14427 0000c958 54000000 nop; not filled. 14428 0000c95c 2041fff7 addi r1,r2,#-9 14429 0000c960 302100ff andi r1,r1,#0x00ff 14430 0000c964 70210001 sleui r1,r1,#1 14431 0000c968 10200008 beqz r1,L5_LF10 14432 0000c96c 54000000 nop; not filled. 14433 0000c970 L6_LF10: 14434 0000c970 201f0001 addi r31,r0,#1 14435 0000c974 L5_LF10: 14436 0000c974 001f0820 add r1,r0,r31 14437 0000c978 8fa20000 lw r2,0(r29) 14438 0000c97c 8fdffff8 lw r31,-8(r30) 14439 0000c980 001ee820 add r29,r0,r30 14440 0000c984 8fdefffc lw r30,-4(r30) 14441 0000c988 4be00000 jr r31 14442 0000c98c 54000000 nop 14443 0000c990 .endproc _isspace 14444 0000c990 .align 2 14445 0000c990 .proc _isxdigit 14446 0000c990 .global _isxdigit 14447 0000c990 _isxdigit: 14448 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 14449 0000c990 afbefffc sw -4(r29),r30; push fp 14450 0000c994 001df020 add r30,r0,r29; fp = sp 14451 0000c998 afbffff8 sw -8(r29),r31; push ret addr 14452 0000c99c 2fbd0010 subui r29,r29,#16; alloc local storage 14453 0000c9a0 afa20000 sw 0(r29),r2 14454 0000c9a4 83df0003 lb r31,3(r30) 14455 0000c9a8 20020000 addi r2,r0,#0 14456 0000c9ac 23e1ffd0 addi r1,r31,#-48 14457 0000c9b0 302100ff andi r1,r1,#0x00ff 14458 0000c9b4 70210009 sleui r1,r1,#9 14459 0000c9b8 14200028 bnez r1,L12_LF10 14460 0000c9bc 54000000 nop; not filled. 14461 0000c9c0 23e1ff9f addi r1,r31,#-97 14462 0000c9c4 302100ff andi r1,r1,#0x00ff 14463 0000c9c8 70210005 sleui r1,r1,#5 14464 0000c9cc 14200014 bnez r1,L12_LF10 14465 0000c9d0 54000000 nop; not filled. 14466 0000c9d4 33e100ff andi r1,r31,#0x00ff 14467 0000c9d8 64210041 snei r1,r1,#65 14468 0000c9dc 14200008 bnez r1,L11_LF10 14469 0000c9e0 54000000 nop; not filled. 14470 0000c9e4 L12_LF10: 14471 0000c9e4 20020001 addi r2,r0,#1 14472 0000c9e8 L11_LF10: 14473 0000c9e8 00020820 add r1,r0,r2 14474 0000c9ec 8fa20000 lw r2,0(r29) 14475 0000c9f0 8fdffff8 lw r31,-8(r30) 14476 0000c9f4 001ee820 add r29,r0,r30 14477 0000c9f8 8fdefffc lw r30,-4(r30) 14478 0000c9fc 4be00000 jr r31 14479 0000ca00 54000000 nop 14480 0000ca04 .endproc _isxdigit 14481 0000ca04 .align 2 14482 0000ca04 .proc _DisableIntrs 14483 0000ca04 .global _DisableIntrs 14484 0000ca04 _DisableIntrs: 14485 ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. 14486 0000ca04 afbefffc sw -4(r29),r30; push fp 14487 0000ca08 001df020 add r30,r0,r29; fp = sp 14488 0000ca0c afbffff8 sw -8(r29),r31; push ret addr 14489 0000ca10 2fbd0010 subui r29,r29,#16; alloc local storage 14490 0000ca14 afa20000 sw 0(r29),r2 14491 0000ca18 23bdfff8 addi r29,r29,#-8 14492 0000ca1c 2002000f addi r2,r0,#15 14493 0000ca20 afa20000 sw (r29),r2 14494 0000ca24 0fff4860 jal _SetIntrs 14495 0000ca28 54000000 nop; not filled. 14496 0000ca2c 23bd0008 addi r29,r29,#8 14497 0000ca30 8fa20000 lw r2,0(r29) 14498 0000ca34 8fdffff8 lw r31,-8(r30) 14499 0000ca38 001ee820 add r29,r0,r30 14500 0000ca3c 8fdefffc lw r30,-4(r30) 14501 0000ca40 4be00000 jr r31 14502 0000ca44 54000000 nop 14503 0000ca48 .endproc _DisableIntrs 14504 0000ca48 .align 2 14505 0000ca48 .proc _EnableIntrs 14506 0000ca48 .global _EnableIntrs 14507 0000ca48 _EnableIntrs: 14508 ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. 14509 0000ca48 afbefffc sw -4(r29),r30; push fp 14510 0000ca4c 001df020 add r30,r0,r29; fp = sp 14511 0000ca50 afbffff8 sw -8(r29),r31; push ret addr 14512 0000ca54 2fbd0010 subui r29,r29,#16; alloc local storage 14513 0000ca58 afa20000 sw 0(r29),r2 14514 0000ca5c 23bdfff8 addi r29,r29,#-8 14515 0000ca60 20020000 addi r2,r0,#0 14516 0000ca64 afa20000 sw (r29),r2 14517 0000ca68 0fff481c jal _SetIntrs 14518 0000ca6c 54000000 nop; not filled. 14519 0000ca70 23bd0008 addi r29,r29,#8 14520 0000ca74 8fa20000 lw r2,0(r29) 14521 0000ca78 8fdffff8 lw r31,-8(r30) 14522 0000ca7c 001ee820 add r29,r0,r30 14523 0000ca80 8fdefffc lw r30,-4(r30) 14524 0000ca84 4be00000 jr r31 14525 0000ca88 54000000 nop 14526 0000ca8c .endproc _EnableIntrs 14527 0000ca8c .align 2 14528 0000ca8c .proc _RestoreIntrs 14529 0000ca8c .global _RestoreIntrs 14530 0000ca8c _RestoreIntrs: 14531 ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. 14532 0000ca8c afbefffc sw -4(r29),r30; push fp 14533 0000ca90 001df020 add r30,r0,r29; fp = sp 14534 0000ca94 afbffff8 sw -8(r29),r31; push ret addr 14535 0000ca98 2fbd0010 subui r29,r29,#16; alloc local storage 14536 0000ca9c afa20000 sw 0(r29),r2 14537 0000caa0 23bdfff8 addi r29,r29,#-8 14538 0000caa4 8fc20000 lw r2,(r30) 14539 0000caa8 afa20000 sw (r29),r2 14540 0000caac 0fff47d8 jal _SetIntrs 14541 0000cab0 54000000 nop; not filled. 14542 0000cab4 23bd0008 addi r29,r29,#8 14543 0000cab8 8fa20000 lw r2,0(r29) 14544 0000cabc 8fdffff8 lw r31,-8(r30) 14545 0000cac0 001ee820 add r29,r0,r30 14546 0000cac4 8fdefffc lw r30,-4(r30) 14547 0000cac8 4be00000 jr r31 14548 0000cacc 54000000 nop 14549 0000cad0 .endproc _RestoreIntrs 14550 0000cad0 .align 2 14551 0000cad0 .proc _QueueLinkInit 14552 0000cad0 .global _QueueLinkInit 14553 0000cad0 _QueueLinkInit: 14554 ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. 14555 0000cad0 afbefffc sw -4(r29),r30; push fp 14556 0000cad4 001df020 add r30,r0,r29; fp = sp 14557 0000cad8 afbffff8 sw -8(r29),r31; push ret addr 14558 0000cadc 2fbd0010 subui r29,r29,#16; alloc local storage 14559 0000cae0 afa20000 sw 0(r29),r2 14560 0000cae4 8fc10000 lw r1,(r30) 14561 0000cae8 8fc20004 lw r2,4(r30) 14562 0000caec 201f0000 addi r31,r0,#0 14563 0000caf0 ac3f0000 sw (r1),r31 14564 0000caf4 ac22000c sw 12(r1),r2 14565 0000caf8 8fa20000 lw r2,0(r29) 14566 0000cafc 8fdffff8 lw r31,-8(r30) 14567 0000cb00 001ee820 add r29,r0,r30 14568 0000cb04 8fdefffc lw r30,-4(r30) 14569 0000cb08 4be00000 jr r31 14570 0000cb0c 54000000 nop 14571 0000cb10 .endproc _QueueLinkInit 14572 0000cb10 .align 2 14573 0000cb10 .proc _QueueNext 14574 0000cb10 .global _QueueNext 14575 0000cb10 _QueueNext: 14576 ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. 14577 0000cb10 afbefffc sw -4(r29),r30; push fp 14578 0000cb14 001df020 add r30,r0,r29; fp = sp 14579 0000cb18 afbffff8 sw -8(r29),r31; push ret addr 14580 0000cb1c 2fbd0008 subui r29,r29,#8; alloc local storage 14581 0000cb20 8fc10000 lw r1,(r30) 14582 0000cb24 8c210000 lw r1,(r1) 14583 0000cb28 8fdffff8 lw r31,-8(r30) 14584 0000cb2c 001ee820 add r29,r0,r30 14585 0000cb30 8fdefffc lw r30,-4(r30) 14586 0000cb34 4be00000 jr r31 14587 0000cb38 54000000 nop 14588 0000cb3c .endproc _QueueNext 14589 0000cb3c .align 2 14590 0000cb3c .proc _QueuePrev 14591 0000cb3c .global _QueuePrev 14592 0000cb3c _QueuePrev: 14593 ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. 14594 0000cb3c afbefffc sw -4(r29),r30; push fp 14595 0000cb40 001df020 add r30,r0,r29; fp = sp 14596 0000cb44 afbffff8 sw -8(r29),r31; push ret addr 14597 0000cb48 2fbd0008 subui r29,r29,#8; alloc local storage 14598 0000cb4c 8fc10000 lw r1,(r30) 14599 0000cb50 8c210004 lw r1,4(r1) 14600 0000cb54 8fdffff8 lw r31,-8(r30) 14601 0000cb58 001ee820 add r29,r0,r30 14602 0000cb5c 8fdefffc lw r30,-4(r30) 14603 0000cb60 4be00000 jr r31 14604 0000cb64 54000000 nop 14605 0000cb68 .endproc _QueuePrev 14606 0000cb68 .align 2 14607 0000cb68 .proc _QueueFirst 14608 0000cb68 .global _QueueFirst 14609 0000cb68 _QueueFirst: 14610 ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. 14611 0000cb68 afbefffc sw -4(r29),r30; push fp 14612 0000cb6c 001df020 add r30,r0,r29; fp = sp 14613 0000cb70 afbffff8 sw -8(r29),r31; push ret addr 14614 0000cb74 2fbd0008 subui r29,r29,#8; alloc local storage 14615 0000cb78 8fc10000 lw r1,(r30) 14616 0000cb7c 8c210000 lw r1,(r1) 14617 0000cb80 8fdffff8 lw r31,-8(r30) 14618 0000cb84 001ee820 add r29,r0,r30 14619 0000cb88 8fdefffc lw r30,-4(r30) 14620 0000cb8c 4be00000 jr r31 14621 0000cb90 54000000 nop 14622 0000cb94 .endproc _QueueFirst 14623 0000cb94 .align 2 14624 0000cb94 .proc _QueueLast 14625 0000cb94 .global _QueueLast 14626 0000cb94 _QueueLast: 14627 ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. 14628 0000cb94 afbefffc sw -4(r29),r30; push fp 14629 0000cb98 001df020 add r30,r0,r29; fp = sp 14630 0000cb9c afbffff8 sw -8(r29),r31; push ret addr 14631 0000cba0 2fbd0008 subui r29,r29,#8; alloc local storage 14632 0000cba4 8fc10000 lw r1,(r30) 14633 0000cba8 8c210004 lw r1,4(r1) 14634 0000cbac 8fdffff8 lw r31,-8(r30) 14635 0000cbb0 001ee820 add r29,r0,r30 14636 0000cbb4 8fdefffc lw r30,-4(r30) 14637 0000cbb8 4be00000 jr r31 14638 0000cbbc 54000000 nop 14639 0000cbc0 .endproc _QueueLast 14640 0000cbc0 .align 2 14641 0000cbc0 .proc _QueueInsertAfter 14642 0000cbc0 .global _QueueInsertAfter 14643 0000cbc0 _QueueInsertAfter: 14644 ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. 14645 0000cbc0 afbefffc sw -4(r29),r30; push fp 14646 0000cbc4 001df020 add r30,r0,r29; fp = sp 14647 0000cbc8 afbffff8 sw -8(r29),r31; push ret addr 14648 0000cbcc 2fbd0010 subui r29,r29,#16; alloc local storage 14649 0000cbd0 afa20000 sw 0(r29),r2 14650 0000cbd4 afa30004 sw 4(r29),r3 14651 0000cbd8 8fc30000 lw r3,(r30) 14652 0000cbdc 8fc20004 lw r2,4(r30) 14653 0000cbe0 8fc10008 lw r1,8(r30) 14654 0000cbe4 ac230008 sw 8(r1),r3 14655 0000cbe8 ac220004 sw 4(r1),r2 14656 0000cbec 8c5f0000 lw r31,(r2) 14657 0000cbf0 ac3f0000 sw (r1),r31 14658 0000cbf4 ac410000 sw (r2),r1 14659 0000cbf8 8c220000 lw r2,(r1) 14660 0000cbfc ac410004 sw 4(r2),r1 14661 0000cc00 8c610008 lw r1,8(r3) 14662 0000cc04 20210001 addi r1,r1,#1 14663 0000cc08 ac610008 sw 8(r3),r1 14664 0000cc0c 8fa20000 lw r2,0(r29) 14665 0000cc10 8fa30004 lw r3,4(r29) 14666 0000cc14 8fdffff8 lw r31,-8(r30) 14667 0000cc18 001ee820 add r29,r0,r30 14668 0000cc1c 8fdefffc lw r30,-4(r30) 14669 0000cc20 4be00000 jr r31 14670 0000cc24 54000000 nop 14671 0000cc28 .endproc _QueueInsertAfter 14672 0000cc28 .align 2 14673 0000cc28 .proc _QueueInsertFirst 14674 0000cc28 .global _QueueInsertFirst 14675 0000cc28 _QueueInsertFirst: 14676 ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. 14677 0000cc28 afbefffc sw -4(r29),r30; push fp 14678 0000cc2c 001df020 add r30,r0,r29; fp = sp 14679 0000cc30 afbffff8 sw -8(r29),r31; push ret addr 14680 0000cc34 2fbd0010 subui r29,r29,#16; alloc local storage 14681 0000cc38 afa20000 sw 0(r29),r2 14682 0000cc3c afa30004 sw 4(r29),r3 14683 0000cc40 8fc30000 lw r3,(r30) 14684 0000cc44 8fc10004 lw r1,4(r30) 14685 0000cc48 ac230008 sw 8(r1),r3 14686 0000cc4c ac230004 sw 4(r1),r3 14687 0000cc50 8c7f0000 lw r31,(r3) 14688 0000cc54 ac3f0000 sw (r1),r31 14689 0000cc58 ac610000 sw (r3),r1 14690 0000cc5c 8c220000 lw r2,(r1) 14691 0000cc60 ac410004 sw 4(r2),r1 14692 0000cc64 8c610008 lw r1,8(r3) 14693 0000cc68 20210001 addi r1,r1,#1 14694 0000cc6c ac610008 sw 8(r3),r1 14695 0000cc70 8fa20000 lw r2,0(r29) 14696 0000cc74 8fa30004 lw r3,4(r29) 14697 0000cc78 8fdffff8 lw r31,-8(r30) 14698 0000cc7c 001ee820 add r29,r0,r30 14699 0000cc80 8fdefffc lw r30,-4(r30) 14700 0000cc84 4be00000 jr r31 14701 0000cc88 54000000 nop 14702 0000cc8c .endproc _QueueInsertFirst 14703 0000cc8c .align 2 14704 0000cc8c .proc _QueueInsertLast 14705 0000cc8c .global _QueueInsertLast 14706 0000cc8c _QueueInsertLast: 14707 ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. 14708 0000cc8c afbefffc sw -4(r29),r30; push fp 14709 0000cc90 001df020 add r30,r0,r29; fp = sp 14710 0000cc94 afbffff8 sw -8(r29),r31; push ret addr 14711 0000cc98 2fbd0010 subui r29,r29,#16; alloc local storage 14712 0000cc9c afa20000 sw 0(r29),r2 14713 0000cca0 afa30004 sw 4(r29),r3 14714 0000cca4 8fc30000 lw r3,(r30) 14715 0000cca8 8fc10004 lw r1,4(r30) 14716 0000ccac 8c620004 lw r2,4(r3) 14717 0000ccb0 ac230008 sw 8(r1),r3 14718 0000ccb4 ac220004 sw 4(r1),r2 14719 0000ccb8 8c5f0000 lw r31,(r2) 14720 0000ccbc ac3f0000 sw (r1),r31 14721 0000ccc0 ac410000 sw (r2),r1 14722 0000ccc4 8c220000 lw r2,(r1) 14723 0000ccc8 ac410004 sw 4(r2),r1 14724 0000cccc 8c610008 lw r1,8(r3) 14725 0000ccd0 20210001 addi r1,r1,#1 14726 0000ccd4 ac610008 sw 8(r3),r1 14727 0000ccd8 8fa20000 lw r2,0(r29) 14728 0000ccdc 8fa30004 lw r3,4(r29) 14729 0000cce0 8fdffff8 lw r31,-8(r30) 14730 0000cce4 001ee820 add r29,r0,r30 14731 0000cce8 8fdefffc lw r30,-4(r30) 14732 0000ccec 4be00000 jr r31 14733 0000ccf0 54000000 nop 14734 0000ccf4 .endproc _QueueInsertLast 14735 0000ccf4 .align 2 14736 0000ccf4 .proc _QueueRemove 14737 0000ccf4 .global _QueueRemove 14738 0000ccf4 _QueueRemove: 14739 ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. 14740 0000ccf4 afbefffc sw -4(r29),r30; push fp 14741 0000ccf8 001df020 add r30,r0,r29; fp = sp 14742 0000ccfc afbffff8 sw -8(r29),r31; push ret addr 14743 0000cd00 2fbd0010 subui r29,r29,#16; alloc local storage 14744 0000cd04 afa20000 sw 0(r29),r2 14745 0000cd08 afa30004 sw 4(r29),r3 14746 0000cd0c 8fdf0000 lw r31,(r30) 14747 0000cd10 8fe10008 lw r1,8(r31) 14748 0000cd14 8c210008 lw r1,8(r1) 14749 0000cd18 6c210000 sgti r1,r1,#0 14750 0000cd1c 1020002c beqz r1,L44_LF10 14751 0000cd20 54000000 nop; not filled. 14752 0000cd24 8fe10004 lw r1,4(r31) 14753 0000cd28 8fe30000 lw r3,(r31) 14754 0000cd2c ac230000 sw (r1),r3 14755 0000cd30 8fe10000 lw r1,(r31) 14756 0000cd34 8fe30004 lw r3,4(r31) 14757 0000cd38 ac230004 sw 4(r1),r3 14758 0000cd3c 8fe20008 lw r2,8(r31) 14759 0000cd40 8c410008 lw r1,8(r2) 14760 0000cd44 2021ffff addi r1,r1,#-1 14761 0000cd48 ac410008 sw 8(r2),r1 14762 0000cd4c L44_LF10: 14763 0000cd4c 20030000 addi r3,r0,#0 14764 0000cd50 afe30000 sw (r31),r3 14765 0000cd54 8fa20000 lw r2,0(r29) 14766 0000cd58 8fa30004 lw r3,4(r29) 14767 0000cd5c 8fdffff8 lw r31,-8(r30) 14768 0000cd60 001ee820 add r29,r0,r30 14769 0000cd64 8fdefffc lw r30,-4(r30) 14770 0000cd68 4be00000 jr r31 14771 0000cd6c 54000000 nop 14772 0000cd70 .endproc _QueueRemove 14773 0000cd70 .align 2 14774 0000cd70 .proc _QueueLength 14775 0000cd70 .global _QueueLength 14776 0000cd70 _QueueLength: 14777 ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. 14778 0000cd70 afbefffc sw -4(r29),r30; push fp 14779 0000cd74 001df020 add r30,r0,r29; fp = sp 14780 0000cd78 afbffff8 sw -8(r29),r31; push ret addr 14781 0000cd7c 2fbd0008 subui r29,r29,#8; alloc local storage 14782 0000cd80 8fc10000 lw r1,(r30) 14783 0000cd84 8c210008 lw r1,8(r1) 14784 0000cd88 8fdffff8 lw r31,-8(r30) 14785 0000cd8c 001ee820 add r29,r0,r30 14786 0000cd90 8fdefffc lw r30,-4(r30) 14787 0000cd94 4be00000 jr r31 14788 0000cd98 54000000 nop 14789 0000cd9c .endproc _QueueLength 14790 0000cd9c .align 2 14791 0000cd9c .proc _QueueEmpty 14792 0000cd9c .global _QueueEmpty 14793 0000cd9c _QueueEmpty: 14794 ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. 14795 0000cd9c afbefffc sw -4(r29),r30; push fp 14796 0000cda0 001df020 add r30,r0,r29; fp = sp 14797 0000cda4 afbffff8 sw -8(r29),r31; push ret addr 14798 0000cda8 2fbd0008 subui r29,r29,#8; alloc local storage 14799 0000cdac 8fc10000 lw r1,(r30) 14800 0000cdb0 8c210008 lw r1,8(r1) 14801 0000cdb4 60210000 seqi r1,r1,#0 14802 0000cdb8 8fdffff8 lw r31,-8(r30) 14803 0000cdbc 001ee820 add r29,r0,r30 14804 0000cdc0 8fdefffc lw r30,-4(r30) 14805 0000cdc4 4be00000 jr r31 14806 0000cdc8 54000000 nop 14807 0000cdcc .endproc _QueueEmpty 14808 0000cdcc .data 14809 00017447 .align 2 14810 00017448 LC0_LF10: 14811 00017448 50726f63 .ascii "Process #\000" 14811 0001744c 65737320 14811 00017450 2300 14812 00017452 .align 2 14813 00017454 LC1_LF10: 14814 00017454 52756e6e .ascii "Running process %d (iteration %d)!\n\000" 14814 00017458 696e6720 14814 0001745c 70726f63 14814 00017460 65737320 14814 00017464 25642028 14814 00017468 69746572 14814 0001746c 6174696f 14814 00017470 6e202564 14814 00017474 29210a00 14815 00017478 .text 14816 0000cdcc .align 2 14817 0000cdcc .proc _doSomething_LF10 14818 0000cdcc _doSomething_LF10: 14819 ; Function 'doSomething'; 80 bytes of locals, 7 regs to save. 14820 0000cdcc afbefffc sw -4(r29),r30; push fp 14821 0000cdd0 001df020 add r30,r0,r29; fp = sp 14822 0000cdd4 afbffff8 sw -8(r29),r31; push ret addr 14823 0000cdd8 2fbd0078 subui r29,r29,#120; alloc local storage 14824 0000cddc afa20000 sw 0(r29),r2 14825 0000cde0 afa30004 sw 4(r29),r3 14826 0000cde4 afa40008 sw 8(r29),r4 14827 0000cde8 afa5000c sw 12(r29),r5 14828 0000cdec afa60010 sw 16(r29),r6 14829 0000cdf0 afa70014 sw 20(r29),r7 14830 0000cdf4 afa80018 sw 24(r29),r8 14831 0000cdf8 8fc60000 lw r6,(r30) 14832 0000cdfc 2001000a addi r1,r0,#10 14833 0000ce00 00c00035 movi2fp f0,r6 14834 0000ce04 00200835 movi2fp f1,r1 14835 0000ce08 0401000f div f0,f0,f1 14836 0000ce0c 00001034 movfp2i r2,f0 14837 0000ce10 50410002 slli r1,r2,#0x2 14838 0000ce14 00220820 add r1,r1,r2 14839 0000ce18 50210001 slli r1,r1,#0x1 14840 0000ce1c 00c13822 sub r7,r6,r1 14841 0000ce20 70c10063 slei r1,r6,#99 14842 0000ce24 102000e4 beqz r1,L52_LF10 14843 0000ce28 54000000 nop; not filled. 14844 0000ce2c 23bdfff8 addi r29,r29,#-8 14845 0000ce30 50e10002 slli r1,r7,#0x2 14846 0000ce34 00270820 add r1,r1,r7 14847 0000ce38 50210002 slli r1,r1,#0x2 14848 0000ce3c 3c080001 lhi r8,((_mysems_LF10)>>16)&0xffff 14849 0000ce40 250874ec addui r8,r8,(_mysems_LF10)&0xffff 14850 0000ce44 00280820 add r1,r1,r8 14851 0000ce48 afa10000 sw (r29),r1 14852 0000ce4c 20080001 addi r8,r0,#1 14853 0000ce50 afa80004 sw 4(r29),r8 14854 0000ce54 0fff56e8 jal _SemInit 14855 0000ce58 54000000 nop; not filled. 14856 0000ce5c 20030001 addi r3,r0,#1 14857 0000ce60 23bd0008 addi r29,r29,#8 14858 0000ce64 23c4ffd0 addi r4,r30,#-48 14859 0000ce68 23c5ffa8 addi r5,r30,#-88 14860 0000ce6c 00061020 add r2,r0,r6 14861 0000ce70 L56_LF10: 14862 0000ce70 23bdfff8 addi r29,r29,#-8 14863 0000ce74 afa40000 sw (r29),r4 14864 0000ce78 3c080001 lhi r8,((LC0_LF10)>>16)&0xffff 14865 0000ce7c 25087448 addui r8,r8,(LC0_LF10)&0xffff 14866 0000ce80 afa80004 sw 4(r29),r8 14867 0000ce84 0fff9244 jal _dstrcpy 14868 0000ce88 54000000 nop; not filled. 14869 0000ce8c afa30000 sw (r29),r3 14870 0000ce90 afa50004 sw 4(r29),r5 14871 0000ce94 0fff9770 jal _ditoa 14872 0000ce98 54000000 nop; not filled. 14873 0000ce9c afa40000 sw (r29),r4 14874 0000cea0 afa50004 sw 4(r29),r5 14875 0000cea4 0fff9314 jal _dstrcat 14876 0000cea8 54000000 nop; not filled. 14877 0000ceac 23bdfff0 addi r29,r29,#-16 14878 0000ceb0 3c080000 lhi r8,((_doSomething_LF10)>>16)&0xffff 14879 0000ceb4 2508cdcc addui r8,r8,(_doSomething_LF10)&0xffff 14880 0000ceb8 afa80000 sw (r29),r8 14881 0000cebc 50410005 slli r1,r2,#0x5 14882 0000cec0 00220822 sub r1,r1,r2 14883 0000cec4 50210002 slli r1,r1,#0x2 14884 0000cec8 00220820 add r1,r1,r2 14885 0000cecc 50210003 slli r1,r1,#0x3 14886 0000ced0 00260820 add r1,r1,r6 14887 0000ced4 afa10004 sw 4(r29),r1 14888 0000ced8 20080000 addi r8,r0,#0 14889 0000cedc afa80008 sw 8(r29),r8 14890 0000cee0 afa8000c sw 12(r29),r8 14891 0000cee4 afa40010 sw 16(r29),r4 14892 0000cee8 afa80014 sw 20(r29),r8 14893 0000ceec 0fffaeac jal _ProcessFork 14894 0000cef0 54000000 nop; not filled. 14895 0000cef4 23bd0018 addi r29,r29,#24 14896 0000cef8 00461020 add r2,r2,r6 14897 0000cefc 20630001 addi r3,r3,#1 14898 0000cf00 70610006 slei r1,r3,#6 14899 0000cf04 1420ff68 bnez r1,L56_LF10 14900 0000cf08 54000000 nop; not filled. 14901 0000cf0c L52_LF10: 14902 0000cf0c 23bdfff8 addi r29,r29,#-8 14903 0000cf10 50e10002 slli r1,r7,#0x2 14904 0000cf14 00270820 add r1,r1,r7 14905 0000cf18 50210002 slli r1,r1,#0x2 14906 0000cf1c 3c080001 lhi r8,((_mysems_LF10)>>16)&0xffff 14907 0000cf20 250874ec addui r8,r8,(_mysems_LF10)&0xffff 14908 0000cf24 00280820 add r1,r1,r8 14909 0000cf28 afa10000 sw (r29),r1 14910 0000cf2c 0fff576c jal _SemWait 14911 0000cf30 54000000 nop; not filled. 14912 0000cf34 20030000 addi r3,r0,#0 14913 0000cf38 23bd0008 addi r29,r29,#8 14914 0000cf3c 50c20001 slli r2,r6,#0x1 14915 0000cf40 0062082a slt r1,r3,r2 14916 0000cf44 10200070 beqz r1,L59_LF10 14917 0000cf48 54000000 nop; not filled. 14918 0000cf4c 200503e8 addi r5,r0,#1000 14919 0000cf50 00022020 add r4,r0,r2 14920 0000cf54 L61_LF10: 14921 0000cf54 00600035 movi2fp f0,r3 14922 0000cf58 00a00835 movi2fp f1,r5 14923 0000cf5c 0401000f div f0,f0,f1 14924 0000cf60 00001034 movfp2i r2,f0 14925 0000cf64 50410005 slli r1,r2,#0x5 14926 0000cf68 00220822 sub r1,r1,r2 14927 0000cf6c 50210002 slli r1,r1,#0x2 14928 0000cf70 00220820 add r1,r1,r2 14929 0000cf74 50210003 slli r1,r1,#0x3 14930 0000cf78 00610829 sne r1,r3,r1 14931 0000cf7c 14200028 bnez r1,L62_LF10 14932 0000cf80 54000000 nop; not filled. 14933 0000cf84 23bdfff0 addi r29,r29,#-16 14934 0000cf88 3c080001 lhi r8,((LC1_LF10)>>16)&0xffff 14935 0000cf8c 25087454 addui r8,r8,(LC1_LF10)&0xffff 14936 0000cf90 afa80000 sw (r29),r8 14937 0000cf94 afa60004 sw 4(r29),r6 14938 0000cf98 afa30008 sw 8(r29),r3 14939 0000cf9c 0c000284 jal _printf 14940 0000cfa0 54000000 nop; not filled. 14941 0000cfa4 23bd0010 addi r29,r29,#16 14942 0000cfa8 L62_LF10: 14943 0000cfa8 20630001 addi r3,r3,#1 14944 0000cfac 0064082a slt r1,r3,r4 14945 0000cfb0 1420ffa0 bnez r1,L61_LF10 14946 0000cfb4 54000000 nop; not filled. 14947 0000cfb8 L59_LF10: 14948 0000cfb8 23bdfff8 addi r29,r29,#-8 14949 0000cfbc 50e10002 slli r1,r7,#0x2 14950 0000cfc0 00270820 add r1,r1,r7 14951 0000cfc4 50210002 slli r1,r1,#0x2 14952 0000cfc8 3c080001 lhi r8,((_mysems_LF10)>>16)&0xffff 14953 0000cfcc 250874ec addui r8,r8,(_mysems_LF10)&0xffff 14954 0000cfd0 00280820 add r1,r1,r8 14955 0000cfd4 afa10000 sw (r29),r1 14956 0000cfd8 0fff59d0 jal _SemSignal 14957 0000cfdc 54000000 nop; not filled. 14958 0000cfe0 23bd0008 addi r29,r29,#8 14959 0000cfe4 8fa20000 lw r2,0(r29) 14960 0000cfe8 8fa30004 lw r3,4(r29) 14961 0000cfec 8fa40008 lw r4,8(r29) 14962 0000cff0 8fa5000c lw r5,12(r29) 14963 0000cff4 8fa60010 lw r6,16(r29) 14964 0000cff8 8fa70014 lw r7,20(r29) 14965 0000cffc 8fa80018 lw r8,24(r29) 14966 0000d000 8fdffff8 lw r31,-8(r30) 14967 0000d004 001ee820 add r29,r0,r30 14968 0000d008 8fdefffc lw r30,-4(r30) 14969 0000d00c 4be00000 jr r31 14970 0000d010 54000000 nop 14971 0000d014 .endproc _doSomething_LF10 14972 0000d014 .data 14973 00017478 .align 2 14974 00017478 LC2_LF10: 14975 00017478 63686173 .ascii "chasetail\000" 14975 0001747c 65746169 14975 00017480 6c00 14976 00017482 .align 2 14977 00017484 LC3_LF10: 14978 00017484 43686173 .ascii "Chasing tail %d.\n\000" 14978 00017488 696e6720 14978 0001748c 7461696c 14978 00017490 2025642e 14978 00017494 0a00 14979 00017496 .align 2 14980 00017498 LC4_LF10: 14981 00017498 4f70656e .ascii "Open of (%s,0x%x) returns 0x%x.\n\000" 14981 0001749c 206f6620 14981 000174a0 2825732c 14981 000174a4 30782578 14981 000174a8 29207265 14981 000174ac 7475726e 14981 000174b0 73203078 14981 000174b4 25782e0a 14981 000174b8 00 14982 000174b9 .align 2 14983 000174bc LC5_LF10: 14984 000174bc 43686173 .ascii "ChaseTail\000" 14984 000174c0 65546169 14984 000174c4 6c00 14985 000174c6 .text 14986 0000d014 .align 2 14987 0000d014 .proc _chaseTail_LF10 14988 0000d014 _chaseTail_LF10: 14989 ; Function 'chaseTail'; 0 bytes of locals, 4 regs to save. 14990 0000d014 afbefffc sw -4(r29),r30; push fp 14991 0000d018 001df020 add r30,r0,r29; fp = sp 14992 0000d01c afbffff8 sw -8(r29),r31; push ret addr 14993 0000d020 2fbd0018 subui r29,r29,#24; alloc local storage 14994 0000d024 afa20000 sw 0(r29),r2 14995 0000d028 afa30004 sw 4(r29),r3 14996 0000d02c afa40008 sw 8(r29),r4 14997 0000d030 afa5000c sw 12(r29),r5 14998 0000d034 8fc40000 lw r4,(r30) 14999 0000d038 3c030001 lhi r3,((LC2_LF10)>>16)&0xffff 15000 0000d03c 24637478 addui r3,r3,(LC2_LF10)&0xffff 15001 0000d040 23bdfff8 addi r29,r29,#-8 15002 0000d044 3c050001 lhi r5,((LC3_LF10)>>16)&0xffff 15003 0000d048 24a57484 addui r5,r5,(LC3_LF10)&0xffff 15004 0000d04c afa50000 sw (r29),r5 15005 0000d050 afa40004 sw 4(r29),r4 15006 0000d054 0c0001cc jal _printf 15007 0000d058 54000000 nop; not filled. 15008 0000d05c afa30000 sw (r29),r3 15009 0000d060 20822000 addi r2,r4,#8192 15010 0000d064 afa20004 sw 4(r29),r2 15011 0000d068 0c000164 jal _Open 15012 0000d06c 54000000 nop; not filled. 15013 0000d070 23bdfff8 addi r29,r29,#-8 15014 0000d074 3c050001 lhi r5,((LC4_LF10)>>16)&0xffff 15015 0000d078 24a57498 addui r5,r5,(LC4_LF10)&0xffff 15016 0000d07c afa50000 sw (r29),r5 15017 0000d080 afa30004 sw 4(r29),r3 15018 0000d084 afa20008 sw 8(r29),r2 15019 0000d088 afa1000c sw 12(r29),r1 15020 0000d08c 0c000194 jal _printf 15021 0000d090 54000000 nop; not filled. 15022 0000d094 23bd0010 addi r29,r29,#16 15023 0000d098 70810027 slei r1,r4,#39 15024 0000d09c 10200048 beqz r1,L67_LF10 15025 0000d0a0 54000000 nop; not filled. 15026 0000d0a4 23bdffe8 addi r29,r29,#-24 15027 0000d0a8 3c050000 lhi r5,((_chaseTail_LF10)>>16)&0xffff 15028 0000d0ac 24a5d014 addui r5,r5,(_chaseTail_LF10)&0xffff 15029 0000d0b0 afa50000 sw (r29),r5 15030 0000d0b4 20810001 addi r1,r4,#1 15031 0000d0b8 afa10004 sw 4(r29),r1 15032 0000d0bc 20050000 addi r5,r0,#0 15033 0000d0c0 afa50008 sw 8(r29),r5 15034 0000d0c4 afa5000c sw 12(r29),r5 15035 0000d0c8 3c050001 lhi r5,((LC5_LF10)>>16)&0xffff 15036 0000d0cc 24a574bc addui r5,r5,(LC5_LF10)&0xffff 15037 0000d0d0 afa50010 sw 16(r29),r5 15038 0000d0d4 20050000 addi r5,r0,#0 15039 0000d0d8 afa50014 sw 20(r29),r5 15040 0000d0dc 0fffacbc jal _ProcessFork 15041 0000d0e0 54000000 nop; not filled. 15042 0000d0e4 23bd0018 addi r29,r29,#24 15043 0000d0e8 L67_LF10: 15044 0000d0e8 8fa20000 lw r2,0(r29) 15045 0000d0ec 8fa30004 lw r3,4(r29) 15046 0000d0f0 8fa40008 lw r4,8(r29) 15047 0000d0f4 8fa5000c lw r5,12(r29) 15048 0000d0f8 8fdffff8 lw r31,-8(r30) 15049 0000d0fc 001ee820 add r29,r0,r30 15050 0000d100 8fdefffc lw r30,-4(r30) 15051 0000d104 4be00000 jr r31 15052 0000d108 54000000 nop 15053 0000d10c .endproc _chaseTail_LF10 15054 0000d10c .data 15055 000174c6 .align 2 15056 000174c8 LC6_LF10: 15057 000174c8 25642000 .ascii "%d \000" 15058 000174cc .align 2 15059 000174cc LC7_LF10: 15060 000174cc 52616e64 .ascii "Random number %02i is 0x%08x.\n\000" 15060 000174d0 6f6d206e 15060 000174d4 756d6265 15060 000174d8 72202530 15060 000174dc 32692069 15060 000174e0 73203078 15060 000174e4 25303878 15060 000174e8 2e0a00 15061 000174eb .text 15062 0000d10c .align 2 15063 0000d10c .proc _SysprocCreateProcesses 15064 0000d10c .global _SysprocCreateProcesses 15065 0000d10c _SysprocCreateProcesses: 15066 ; Function 'SysprocCreateProcesses'; 0 bytes of locals, 3 regs to save. 15067 0000d10c afbefffc sw -4(r29),r30; push fp 15068 0000d110 001df020 add r30,r0,r29; fp = sp 15069 0000d114 afbffff8 sw -8(r29),r31; push ret addr 15070 0000d118 2fbd0018 subui r29,r29,#24; alloc local storage 15071 0000d11c afa20000 sw 0(r29),r2 15072 0000d120 afa30004 sw 4(r29),r3 15073 0000d124 afa40008 sw 8(r29),r4 15074 0000d128 3c020001 lhi r2,((_mysems_LF10)>>16)&0xffff 15075 0000d12c 244274ec addui r2,r2,(_mysems_LF10)&0xffff 15076 0000d130 204300b4 addi r3,r2,#180 15077 0000d134 L90_LF10: 15078 0000d134 23bdfff8 addi r29,r29,#-8 15079 0000d138 afa20000 sw (r29),r2 15080 0000d13c 20040001 addi r4,r0,#1 15081 0000d140 afa40004 sw 4(r29),r4 15082 0000d144 0fff53f8 jal _SemInit 15083 0000d148 54000000 nop; not filled. 15084 0000d14c 23bd0008 addi r29,r29,#8 15085 0000d150 20420014 addi r2,r2,#20 15086 0000d154 0043082c sle r1,r2,r3 15087 0000d158 1420ffd8 bnez r1,L90_LF10 15088 0000d15c 54000000 nop; not filled. 15089 0000d160 8fa20000 lw r2,0(r29) 15090 0000d164 8fa30004 lw r3,4(r29) 15091 0000d168 8fa40008 lw r4,8(r29) 15092 0000d16c 8fdffff8 lw r31,-8(r30) 15093 0000d170 001ee820 add r29,r0,r30 15094 0000d174 8fdefffc lw r30,-4(r30) 15095 0000d178 4be00000 jr r31 15096 0000d17c 54000000 nop 15097 0000d180 .endproc _SysprocCreateProcesses 15098 0000d180 .data 15099 000174eb .align 2 15100 000174ec _mysems_LF10: 15101 000174ec .space 200 15102 ;;; This file just includes a single variable that contains the last address 15103 ;;; in the operating system. The rest of memory is available for use by 15104 ;;; processes. 15106 000175b4 .align 2 15107 000175b4 .global _lastosaddress 15108 000175b4 _lastosaddress: 15109 000175b4 000175bc .word _lastosaddress+8 15110 ;;; Ethan L. Miller, 1999. Released to the public domain 15111 ;;; 15112 ;;; Most of the traps are called in files from libtraps. 15114 000175b8 .text 15115 0000d180 .align 2 15116 0000d180 .proc _exit 15117 0000d180 .global _exit 15118 0000d180 _exit: 15119 0000d180 44000300 trap #0x300 15120 0000d184 4be00000 jr r31 15121 0000d188 54000000 nop 15122 0000d18c .endproc _exit 15124 ; for the benefit of gcc. 15125 0000d18c .proc ___main 15126 0000d18c .global ___main 15127 0000d18c ___main: 15128 0000d18c 4be00000 jr r31 15129 0000d190 54000000 nop 15130 0000d194 .endproc ___main 15131 ;;; 15132 ;;; Stub functions for DLX traps. 15133 ;;; 15134 ;;; Ethan L. Miller, 1999. Released to the public domain. 15135 ;;; 15136 ;;; There are two sets of traps here. The traps such as Open and Close 15137 ;;; (note the capital letters) are for use by user programs. The traps 15138 ;;; with names such as open and close (lower case) are for use by the OS. 15139 ;;; 15142 0000d194 .align 2 15143 0000d194 .proc _open 15144 0000d194 .global _open 15145 0000d194 _open: 15146 0000d194 44002013 trap #0x2013 15147 0000d198 4be00000 jr r31 15148 0000d19c 54000000 nop 15149 0000d1a0 .endproc _open 15151 0000d1a0 .proc _close 15152 0000d1a0 .global _close 15153 0000d1a0 _close: 15154 0000d1a0 44002014 trap #0x2014 15155 0000d1a4 4be00000 jr r31 15156 0000d1a8 54000000 nop 15157 0000d1ac .endproc _close 15159 0000d1ac .proc _read 15160 0000d1ac .global _read 15161 0000d1ac _read: 15162 0000d1ac 44002010 trap #0x2010 15163 0000d1b0 4be00000 jr r31 15164 0000d1b4 54000000 nop 15165 0000d1b8 .endproc _read 15167 0000d1b8 .proc _write 15168 0000d1b8 .global _write 15169 0000d1b8 _write: 15170 0000d1b8 44002011 trap #0x2011 15171 0000d1bc 4be00000 jr r31 15172 0000d1c0 54000000 nop 15173 0000d1c4 .endproc _write 15175 0000d1c4 .proc _lseek 15176 0000d1c4 .global _lseek 15177 0000d1c4 _lseek: 15178 0000d1c4 44002012 trap #0x2012 15179 0000d1c8 4be00000 jr r31 15180 0000d1cc 54000000 nop 15181 0000d1d0 .endproc _lseek 15183 ;;; The following are the traps to be used by user-level programs 15184 ;;; 15186 0000d1d0 .align 2 15187 0000d1d0 .proc _Open 15188 0000d1d0 .global _Open 15189 0000d1d0 _Open: 15190 0000d1d0 44000213 trap #0x213 15191 0000d1d4 4be00000 jr r31 15192 0000d1d8 54000000 nop 15193 0000d1dc .endproc _Open 15195 0000d1dc .proc _Close 15196 0000d1dc .global _Close 15197 0000d1dc _Close: 15198 0000d1dc 44000214 trap #0x214 15199 0000d1e0 4be00000 jr r31 15200 0000d1e4 54000000 nop 15201 0000d1e8 .endproc _Close 15203 0000d1e8 .proc _Read 15204 0000d1e8 .global _Read 15205 0000d1e8 _Read: 15206 0000d1e8 44000210 trap #0x210 15207 0000d1ec 4be00000 jr r31 15208 0000d1f0 54000000 nop 15209 0000d1f4 .endproc _Read 15211 0000d1f4 .proc _Write 15212 0000d1f4 .global _Write 15213 0000d1f4 _Write: 15214 0000d1f4 44000211 trap #0x211 15215 0000d1f8 4be00000 jr r31 15216 0000d1fc 54000000 nop 15217 0000d200 .endproc _Write 15219 0000d200 .proc _Lseek 15220 0000d200 .global _Lseek 15221 0000d200 _Lseek: 15222 0000d200 44000212 trap #0x212 15223 0000d204 4be00000 jr r31 15224 0000d208 54000000 nop 15225 0000d20c .endproc _Lseek 15227 ;;; 15228 ;;; Stub functions for DLX traps. 15229 ;;; 15230 ;;; Ethan L. Miller, 1999. Released to the public domain. 15231 ;;; 15232 ;;; There are two exit traps. The first, _exitsim, actually exits the 15233 ;;; simulator. The second, _exit, simply calls a regular trap in the 15234 ;;; DLX simulator, and would be suitable for a user program that wants 15235 ;;; to signal the OS that it's exiting. 15236 ;;; 15237 ;;; IMPORTANT: all code that's run "native" on the simulator - OS code and 15238 ;;; programs run without an OS - should call exitsim() rather than just 15239 ;;; falling through to exit. 15240 ;;; 15243 0000d20c .align 2 15244 0000d20c .proc _exitsim 15245 0000d20c .global _exitsim 15246 0000d20c _exitsim: 15247 0000d20c 44002f00 trap #0x2f00 15248 0000d210 4be00000 jr r31 15249 0000d214 54000000 nop 15250 0000d218 .endproc _exitsim 15252 0000d218 .proc _exit 15253 0000d218 .global _exit 15254 0000d218 _exit: 15255 0000d218 44000300 trap #0x300 15256 0000d21c 4be00000 jr r31 15257 0000d220 54000000 nop 15258 0000d224 .endproc _exit 15260 ; 15261 ; Stub functions for DLX traps. 15262 ; 15263 ; Aaron Sawdey 1996; released to the Public Domain. 15264 ; 15266 0000d224 .proc _printf 15267 0000d224 .global _printf 15268 0000d224 _printf: 15269 0000d224 44002001 trap #0x2001 15270 0000d228 4be00000 jr r31 15271 0000d22c 54000000 nop 15272 0000d230 .endproc _printf 15274 0000d230 .text 15275 0000d230 .global _etext 15276 0000d230 _etext: 15277 0000d230 .align 3 15278 0000d230 .data 15279 000175b8 .global _edata 15280 000175b8 _edata:

home/bshapir/cs314/project3/src/Makefile.depend

home/bshapir/cs314/project3/src/share_memory.o

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Entering ProcessModuleInit\n\000" .align 2 LC1: .ascii "Leaving ProcessModuleInit\n\000" .text .align 2 .proc _ShareModuleInit .global _ShareModuleInit _ShareModuleInit: ; Function 'ShareModuleInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#112 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L64 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L63 nop ; not filled. L64: addi r29,r29,#-8 lhi r5,((LC0)>>16)&0xffff addui r5,r5,(LC0)&0xffff sw (r29),r5 jal _printf nop ; not filled. addi r29,r29,#8 L63: lhi r2,((_spages)>>16)&0xffff addui r2,r2,(_spages)&0xffff addi r4,r2,#248 L68: addi r5,r0,#0 sw (r2),r5 add r31,r0,r2 add r3,r0,r2 L72: addi r1,r31,#4 addi r5,r0,#0 sw (r1),r5 add r31,r0,r1 sle r1,r31,r3 bnez r1,L72 nop ; not filled. addi r2,r2,#8 sle r1,r2,r4 bnez r1,L68 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#112 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L76 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L75 nop ; not filled. L76: addi r29,r29,#-8 lhi r5,((LC1)>>16)&0xffff addui r5,r5,(LC1)&0xffff sw (r29),r5 jal _printf nop ; not filled. addi r29,r29,#8 L75: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ShareModuleInit .data .align 2 LC2: .ascii "FATAL: couldn\'t allocate memory - no free pages!\n\000" .text .align 2 .proc _MemoryCreateSharedPage .global _MemoryCreateSharedPage _MemoryCreateSharedPage: ; Function 'MemoryCreateSharedPage'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r6,(r30) addi r29,r29,#-8 sw (r29),r6 jal _findpid nop ; not filled. add r5,r0,r1 srli r8,r5,#0x5 slli r1,r8,#0x5 sub r5,r5,r1 addi r29,r29,#8 addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop ; not filled. add r7,r0,r1 addi r29,r29,#8 lw r1,160(r6) seqi r1,r1,#16 bnez r1,L92 nop ; not filled. addi r3,r0,#0 lhi r9,((_spages)>>16)&0xffff addui r9,r9,(_spages)&0xffff add r2,r0,r9 L84: lw r1,(r2) snei r1,r1,#0 beqz r1,L82 nop ; not filled. addi r2,r2,#8 addi r3,r3,#1 slei r1,r3,#31 bnez r1,L84 nop ; not filled. L82: seqi r1,r3,#32 beqz r1,L87 nop ; not filled. L92: addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L91 nop ; not filled. L87: jal _MemoryAllocPage nop ; not filled. add r4,r0,r1 snei r1,r4,#0 bnez r1,L89 nop ; not filled. addi r29,r29,#-8 lhi r10,((LC2)>>16)&0xffff addui r10,r10,(LC2)&0xffff sw (r29),r10 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L89: slli r1,r3,#0x3 add r2,r1,r9 sw (r2),r4 slli r1,r8,#0x2 add r2,r1,r2 addi r1,r0,#1 sll r1,r1,r5 sw 4(r2),r1 addi r29,r29,#-8 sw (r29),r4 jal _MemorySetupPte nop ; not filled. lw r2,160(r6) slli r2,r2,#0x2 add r2,r2,r6 sw 96(r2),r1 lw r1,160(r6) addi r2,r1,#1 sw 160(r6),r2 lw r1,8(r6) addui r1,r1,#65164 sw 316(r1),r2 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r4 L91: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCreateSharedPage .align 2 .proc _mmap .global _mmap _mmap: ; Function 'mmap'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r6,(r30) lw r7,4(r30) snei r1,r7,#0 bnez r1,L94 nop ; not filled. addi r1,r0,#0 j L115 nop ; not filled. L94: lw r1,8(r6) addui r9,r1,#65164 addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop ; not filled. add r8,r0,r1 addi r29,r29,#8 addi r3,r0,#0 lhi r2,((_spages)>>16)&0xffff addui r2,r2,(_spages)&0xffff L99: lw r1,(r2) seq r1,r1,r7 bnez r1,L97 nop ; not filled. addi r2,r2,#8 addi r3,r3,#1 sleui r1,r3,#31 bnez r1,L99 nop ; not filled. L97: seqi r1,r3,#32 bnez r1,L116 nop ; not filled. slli r31,r7,#0x10 addi r5,r0,#0 lw r4,160(r6) slt r1,r5,r4 beqz r1,L105 nop ; not filled. add r2,r0,r6 L107: lw r1,96(r2) addi r10,r0,#-8 and r1,r1,r10 seq r1,r1,r31 bnez r1,L105 nop ; not filled. addi r2,r2,#4 addi r5,r5,#1 slt r1,r5,r4 bnez r1,L107 nop ; not filled. L105: lw r2,160(r6) seq r1,r5,r2 beqz r1,L110 nop ; not filled. slei r1,r2,#15 bnez r1,L111 nop ; not filled. L116: addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L115 nop ; not filled. L111: addi r29,r29,#-8 sw (r29),r7 jal _MemorySetupPte nop ; not filled. lw r2,160(r6) slli r2,r2,#0x2 add r2,r2,r6 sw 96(r2),r1 lw r1,160(r6) addi r1,r1,#1 sw 160(r6),r1 sw 316(r9),r1 addi r29,r29,#8 L110: addi r29,r29,#-8 sw (r29),r6 jal _findpid nop ; not filled. add r2,r0,r1 srli r4,r2,#0x5 slli r1,r4,#0x5 sub r2,r2,r1 slli r3,r3,#0x3 slli r1,r4,#0x2 add r1,r3,r1 lhi r10,((_spages+4)>>16)&0xffff addui r10,r10,(_spages+4)&0xffff add r3,r1,r10 addi r1,r0,#1 sll r2,r1,r2 lw r1,(r3) or r1,r1,r2 sw (r3),r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop ; not filled. addi r29,r29,#8 slli r1,r5,#0x10 L115: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _mmap .data .align 2 LC3: .ascii "FATAL: Attempted to free memory page 0\n\000" .text .align 2 .proc _MemoryFreeSharedPte .global _MemoryFreeSharedPte _MemoryFreeSharedPte: ; Function 'MemoryFreeSharedPte'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r8,(r30) lw r2,4(r30) addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop ; not filled. add r9,r0,r1 addi r29,r29,#8 slli r1,r2,#0x2 add r1,r1,r8 lhu r7,96(r1) snei r1,r7,#0 bnez r1,L119 nop ; not filled. addi r29,r29,#-8 lhi r10,((LC3)>>16)&0xffff addui r10,r10,(LC3)&0xffff sw (r29),r10 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L119: addi r4,r0,#0 lhi r5,((_spages)>>16)&0xffff addui r5,r5,(_spages)&0xffff add r2,r0,r5 L123: lw r1,(r2) seq r1,r1,r7 bnez r1,L121 nop ; not filled. addi r2,r2,#8 addi r4,r4,#1 slei r1,r4,#31 bnez r1,L123 nop ; not filled. L121: seqi r1,r4,#32 beqz r1,L126 nop ; not filled. addi r29,r29,#-8 sw (r29),r9 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#-1 j L141 nop ; not filled. L126: addi r29,r29,#-8 sw (r29),r8 jal _findpid nop ; not filled. add r2,r0,r1 srli r3,r1,#0x5 slli r1,r3,#0x5 sub r2,r2,r1 slli r1,r4,#0x3 add r4,r1,r5 slli r1,r3,#0x2 add r1,r1,r4 addi r3,r1,#4 addi r1,r0,#1 sll r1,r1,r2 addi r10,r0,#-1 xor r2,r1,r10 lw r1,(r3) and r1,r1,r2 sw (r3),r1 addi r29,r29,#8 addi r6,r0,#0 addi r5,r0,#0 L132: addi r3,r0,#1 addi r2,r0,#0 lw r31,4(r4) L136: and r1,r31,r3 snei r1,r1,#0 add r6,r6,r1 slli r3,r3,#0x1 addi r2,r2,#1 slei r1,r2,#31 bnez r1,L136 nop ; not filled. addi r4,r4,#4 addi r5,r5,#1 slei r1,r5,#0 bnez r1,L132 nop ; not filled. lw r1,160(r8) addi r2,r1,#-1 sw 160(r8),r2 lw r1,8(r8) addui r1,r1,#65164 sw 316(r1),r2 snei r1,r6,#0 bnez r1,L139 nop ; not filled. addi r29,r29,#-8 sw (r29),r7 jal _MemoryFreePage nop ; not filled. addi r29,r29,#8 L139: addi r29,r29,#-8 sw (r29),r9 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r6 L141: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreeSharedPte .data .align 2 _spages: .space 256

home/bshapir/cs314/project3/src/synch.working.h

// // synch.h // // Include file for synchronization stuff. The synchronization // primitives include: // Semaphore // Lock // Condition // // Semaphores are the only "native" synchronization primitive. // Condition variables and locks are implemented using semaphores. // #ifndef _synch_h_ #define _synch_h_ #include "queue.h" typedef struct Sem { Queue waiting; int count; } Sem; extern void SemInit (Sem *, int); extern void SemWait (Sem *); extern void SemSignal (Sem *); typedef struct Lock { Sem mutex; // Overall mutex for the Lock. Sem pri; // Semaphore on which "high-priority" processes wait int npri; // Number of high-priority processes waiting } Lock; typedef struct Cond { Lock *condLock; Sem condSem; // Semaphore on which condition variables wait int nwaiters; // Number of processes waiting for this condition } Cond; extern void LockInit (Lock *); extern void LockAcquire (Lock *); extern void LockRelease (Lock *); extern void CondInit (Cond *, Lock *); extern void CondWait (Cond *); extern void CondSignal (Cond *); extern void CondBroadcast (Cond *); #endif //_synch_h_

home/bshapir/cs314/project3/src/osend.o

;;; This file just includes a single variable that contains the last address ;;; in the operating system. The rest of memory is available for use by ;;; processes. .data .align 2 .global _lastosaddress _lastosaddress: .word _lastosaddress+8

home/bshapir/cs314/project3/src/share_memory.h

/*********************************************************************** * * share_memory.h * Copyright: Uday Savagaonkar (2002). All rights reserved. * Share memory API for dlxos * ***********************************************************************/ #ifndef _SHARE_MEMORY_H_ #define _SHARE_MEMORY_H_ #include "dlxos.h" #include "memory.h" #include "process.h" typedef struct shared_page { uint32 page; //The physical page corresponding to this block //This page is not shared if ==0 uint32 using[(PROCESS_MAX_PROCS+31)/32]; //List of process using this page } shared_page; #define MEMORY_MAX_SHARED_PAGES 32 //Maximum number of pages that can be //shared amongst different processes #define PROCESS_MAX_PAGES 16 //Maximum number of pages allowed in Level //1 page table void SharedInitModule(); //Turns on the shared memory module uint32 MemoryCreateSharedPage(PCB *pcb); //Creates a shared page in the memory void *mmap(PCB *pcb, uint32 handle); //Maps a shared page to the virtual address //space int MemoryFreeSharedPage(PCB *pcb, uint32 handle); //Releases a shared page. The page is not //actually deallocated untill all the process //release it. #endif _SHARE_MEMORY_H_

home/bshapir/cs314/project3/src/lab3-api.h

/***************************************************************** * * Various APIs for Lab 2 of OS469 * Copyright: Uday Savagaonkar, Jan 2002 * *****************************************************************/ #ifndef _LAB3_API_H_ #define _LAB3_API_H_ #define NULL (void *)0x0 #define INVALID_SEM -1 typedef unsigned int uint32; typedef int sem_t; typedef int lock_t; typedef int cond_t; typedef int mbox_t; //Related to processes uint32 getpid(); //trap 0x431 void process_create(int p_nice, int p_info, char *arg1, ...); //trap 0x432 //Related to shared memory uint32 shmget(); //trap 0x440 void *shmat(uint32 handle); //trap 0x441 //Related to semaphores sem_t sem_create(int count); //trap 0x450 int sem_wait(sem_t sem); //trap 0x451 int sem_signal(sem_t sem); //trap 0x452 lock_t lock_create(); //trap 0x453 int lock_acquire(lock_t lock); //trap 0x454 int lock_release(lock_t lock); //trap 0x455 cond_t cond_create(lock_t lock); //trap 0x456 int cond_wait(cond_t cond); //trap 0x457 int cond_signal(cond_t cond); //trap 0x458 int cond_broadcast(cond_t cond); //trap 0x459 int mbox_open(mbox_t); //TRAP 0x460 int mbox_close(mbox_t); //TRAP 0x461 int mbox_send(mbox_t,int,char*); //TRAP 0x462 int mbox_recv(mbox_t, int*, char*); //TRAP 0x463 int mbox_stat(mbox_t); //TRAP 0x464 #endif _LAB3_API_H_

home/bshapir/cs314/project3/src/filesys.c

// // filesys.c // // This file has handlers for the file systems supported by the DLX // operating system. These include both the basic, simulator-provided // file system and the more complex file system from the file system // assignment. static char rcsid[] = "$Id: filesys.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $"; #include "dlxos.h" #include "process.h" #include "filesys.h" // One entry for each type of file system. Currently, the file systems // are native Unix (0) and DLX (1). static Fs fs[2]; // One entry for each open file in the operating system. static FsOpenFile openfiles[FS_MAX_OPEN_FILES]; //---------------------------------------------------------------------- // // FdValid // // Return 1 if the file descriptor is valid, 0 otherwise. // //---------------------------------------------------------------------- static inline int FdValid (int fd) { return ((fd > 0) && (fd < FS_MAX_OPEN_FILES) && (openfiles[fd].flags != 0)); } //---------------------------------------------------------------------- // // FsFreeEntry // // Free an entry in the open files table. // //---------------------------------------------------------------------- static inline void FsFreeEntry (int x) { openfiles[x].flags = 0; } � //---------------------------------------------------------------------- // // FsOpen // // Open a file. The name of the file is passed, along with the file // mode (read or write). // // This function figures out which file system is desired using a // simple heuristic. Basically, if the file starts with "dlx:", it's // a DLX file system file. Otherwise, it's a UNIX file. // // Once the file system is figured out, this routine allocates a // file descriptor and calls the file-system specific open routine. // //---------------------------------------------------------------------- int FsOpen (const char *name, int mode) { int i, retval; dbprintf ('f', "Attepmting to open %s mode=%d.\n", name, mode); // Mask off all but the mode bits mode &= FS_MODE_RW; // ERROR if the caller hasn't specified a file mode. if (mode == 0) { return (-1); } for (i = 0; i < FS_MAX_OPEN_FILES; i++) { if (openfiles[i].flags == 0) { break; } } if (i >= FS_MAX_OPEN_FILES) { return (-1); } openfiles[i].flags = mode; // If file name starts with "dlx:", it's a DLX file system file. Pass // the remainder of the file name to FsDlxOpen. if (!dstrncmp (name, "dlx:", 4)) { name += 4; // Skip past the "dlx:" openfiles[i].fs = 1; } else { openfiles[i].fs = 0; } dbprintf ('f', "File %s opening in file system %d.\n",name,openfiles[i].fs); retval = fs[openfiles[i].fs].Open (i, name, mode); if (retval < 0) { // Open failed, so return error code FsFreeEntry (i); return (retval); } dbprintf ('f', "Opened %s in FS %d, mode=%d slot=%d.\n", name, openfiles[i].fs, mode, i); return (i); } //---------------------------------------------------------------------- // // FsClose // // Close an open file. Call the FS-specific routine, and then mark // the file table entry unused. // //---------------------------------------------------------------------- int FsClose (int fd) { int retval; if (!FdValid (fd)) { return (-1); } retval = fs[openfiles[fd].fs].Close (fd); FsFreeEntry (fd); return (retval); } � //---------------------------------------------------------------------- // // FsRead // // Read data from a file. // //---------------------------------------------------------------------- int FsRead (int fd, char *buf, int n) { if (!FdValid (fd)) { return (-1); } return (fs[openfiles[fd].fs].Read (fd, buf, n)); } //---------------------------------------------------------------------- // // FsWrite // // Write data to a file. // //---------------------------------------------------------------------- int FsWrite (int fd, char *buf, int n) { if (!FdValid (fd)) { return (-1); } return (fs[openfiles[fd].fs].Write (fd, buf, n)); } //---------------------------------------------------------------------- // // FsSeek // // Seek in a file. // //---------------------------------------------------------------------- int FsSeek (int fd, int offset, int whence) { if (!FdValid (fd)) { return (-1); } return (fs[openfiles[fd].fs].Seek (fd, offset, whence)); } //---------------------------------------------------------------------- // // FsDelete // // Delete a file. // //---------------------------------------------------------------------- int FsDelete (const char *name) { // If file name starts with "dlx:", it's a DLX file system file. Pass // the remainder of the file name to FsDlxDelete. if (!dstrncmp (name, "dlx:", 4)) { name += 4; // Skip past the "dlx:" return (fs[1].Delete (name)); } else { return (fs[0].Delete (name)); } } � //---------------------------------------------------------------------- // // FsUnixOpen // FsUnixRead // FsUnixWrite // FsUnixSeek // FsUnixClose // // Unix file I/O routines. These are pretty simple, and just call // the simulator traps directly using the file descriptor stored in // the open file table. // //---------------------------------------------------------------------- int FsUnixOpen (int x, const char *name, int mode) { dbprintf ('f', "Attempting to open file %s into desc %d, mode %d.\n", name, x, mode); if ((openfiles[x].u.Unix.fd = open (name, mode)) < 0) { return (openfiles[x].u.Unix.fd); } return (1); } int FsUnixRead (int x, char *buf, int n) { return (read (openfiles[x].u.Unix.fd, buf, n)); } int FsUnixWrite (int x, char *buf, int n) { return (write (openfiles[x].u.Unix.fd, buf, n)); } int FsUnixSeek (int x, int offset, int where) { return (lseek (openfiles[x].u.Unix.fd, offset, where)); } int FsUnixClose (int x) { int retval; retval = close (openfiles[x].u.Unix.fd); return (retval); } int FsUnixDelete (const char *name) { // Refuse to delete Unix files via the simulator. This is for safety // reasons. return (-1); } � //---------------------------------------------------------------------- // // FsDlxIo // // Perform a read or a write on a DLX file. // //---------------------------------------------------------------------- int FsDlxIo (int fd, char *buf, int n, int which) { // Your code to read or write a DLX file goes here. return (1); } //---------------------------------------------------------------------- // // FsDlxRead // FsDlxWrite // // This is just a stub that calls FsDlxIo to do either a read or a // write in the DLX file system. // //---------------------------------------------------------------------- int FsDlxRead (int fd, char *buf, int n) { return (FsDlxIo (fd, buf, n, 0)); } int FsDlxWrite (int fd, char *buf, int n) { return (FsDlxIo (fd, buf, n, 1)); } � //---------------------------------------------------------------------- // // FsDlxOpen // // Open a file in the DLX file system. Currently, this just means // to set current position to 0. However, it should also check to // make sure that the file exists. // //---------------------------------------------------------------------- int FsDlxOpen (int f, const char *name, int mode) { openfiles[f].u.Dlx.curpos = 0; // You may want to put additional code here (checking to see if the // file exists, etc.) return (1); } //---------------------------------------------------------------------- // // FsDlxSeek // // Seek in a DLX file. This just requires adjusting the current // position as recorded in the open files table. // //---------------------------------------------------------------------- int FsDlxSeek (int f, int offset, int whence) { switch (whence) { case FS_SEEK_SET: break; case FS_SEEK_CUR: break; case FS_SEEK_END: break; }; return (openfiles[f].u.Dlx.curpos); } //---------------------------------------------------------------------- // // FsDlxClose // // Close a DLX file system file. //---------------------------------------------------------------------- int FsDlxClose (int f) { // You may want to add code to this routine. return (1); } � //---------------------------------------------------------------------- // // FsDlxDelete // // Delete a file in the DLX file system. // //---------------------------------------------------------------------- int FsDlxDelete (const char *file) { // Your code goes here. return (1); } � //---------------------------------------------------------------------- // // FsModuleInit // // Initialize the file system module. This consists simply of marking // all the file slots as available. // //---------------------------------------------------------------------- void FsModuleInit () { int i; for (i = 0; i < FS_MAX_OPEN_FILES; i++) { openfiles[i].flags = 0; } fs[0].Open = FsUnixOpen; fs[0].Close = FsUnixClose; fs[0].Read = FsUnixRead; fs[0].Write = FsUnixWrite; fs[0].Seek = FsUnixSeek; fs[0].Delete = FsUnixDelete; fs[1].Open = FsDlxOpen; fs[1].Close = FsDlxClose; fs[1].Read = FsDlxRead; fs[1].Write = FsDlxWrite; fs[1].Seek = FsDlxSeek; fs[1].Delete = FsDlxDelete; }

home/bshapir/cs314/project3/src/queue.c

// // queue.c // // Variables for queues, and a routine to initialize the pool of links. // // #include "dlxos.h" #include "queue.h" Queue freeLinks; static Link linkpool[QUEUE_MAX_LINKS]; void QueueModuleInit () { int i; QueueInit (&freeLinks); for (i = 0; i < QUEUE_MAX_LINKS; i++) { dbprintf ('i', "Initializing queue link %d.\n", i); linkpool[i].next = NULL; QueueFreeLink (&(linkpool[i])); } } void QueueInit (Queue *q) { q->first = (Link *)q; q->last = (Link *)q; q->nitems = 0; } void QueueFreeLink (Link *l) { extern Queue freeLinks; // Make sure the link has already been freed! ASSERT ((l->next == NULL), "Link not empty"); QueueInsertLast (&freeLinks, l); } Link * QueueAllocLink () { extern Queue freeLinks; Link *l; if (! QueueEmpty (&freeLinks)) { l = QueueFirst (&freeLinks); QueueRemove (l); } else { l = NULL; } ASSERT ((l != NULL), "Link not allocated!"); return (l); }

home/bshapir/cs314/project3/src/userprog.o

; Compiled by GCC .data .align 2 LC0: .ascii "userprog.dlx.obj\000" .align 2 LC1: .ascii "%c%d\n\000" .align 2 LC2: .ascii "Usage: \000" .align 2 LC3: .ascii " number\n\000" .align 2 LC4: .ascii "argc = %d\n\000" .text .align 2 .proc _main .global _main _main: ; Function 'main'; 32 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage lw r2,(r30) lw r3,4(r30) jal ___main nop ; not filled. seqi r1,r2,#2 bnez r1,L3 nop ; not filled. seqi r1,r2,#3 beqz r1,L20 nop ; not filled. j L9 nop ; not filled. L3: addi r29,r29,#-16 lw r3,4(r3) sw (r29),r3 addi r6,r0,#0 sw 4(r29),r6 addi r6,r0,#10 sw 8(r29),r6 jal _dstrtol nop ; not filled. add r5,r0,r1 addi r6,r0,#1 sw (r29),r6 jal _sem_create nop ; not filled. sw (r29),r1 addi r4,r30,#-40 sw 4(r29),r4 jal _ditoa nop ; not filled. addi r3,r0,#0 addi r29,r29,#16 slt r1,r3,r5 beqz r1,L2 nop ; not filled. addi r2,r30,#-24 L7: addi r29,r29,#-8 sw (r29),r3 sw 4(r29),r2 jal _ditoa nop ; not filled. addi r29,r29,#-16 sw (r29),r3 addi r6,r0,#0 sw 4(r29),r6 lhi r6,((LC0)>>16)&0xffff addui r6,r6,(LC0)&0xffff sw 8(r29),r6 sw 12(r29),r2 sw 16(r29),r4 addi r6,r0,#0 sw 20(r29),r6 jal _process_create nop ; not filled. addi r29,r29,#24 addi r3,r3,#1 slt r1,r3,r5 beqz r1,L2 nop ; not filled. j L7 nop ; not filled. L9: addi r29,r29,#-16 lw r6,4(r3) sw (r29),r6 addi r6,r0,#0 sw 4(r29),r6 addi r6,r0,#10 sw 8(r29),r6 jal _dstrtol nop ; not filled. add r2,r0,r1 lw r3,8(r3) sw (r29),r3 addi r6,r0,#0 sw 4(r29),r6 addi r6,r0,#10 sw 8(r29),r6 jal _dstrtol nop ; not filled. add r4,r0,r1 addi r3,r0,#0 addi r29,r29,#16 addui r5,r0,#49999 addi r2,r2,#65 L13: addi r29,r29,#-8 sw (r29),r4 jal _sem_wait nop ; not filled. addi r31,r0,#0 addi r29,r29,#8 L16: addi r31,r31,#1 sle r1,r31,r5 bnez r1,L16 nop ; not filled. addi r29,r29,#-16 lhi r6,((LC1)>>16)&0xffff addui r6,r6,(LC1)&0xffff sw (r29),r6 sw 4(r29),r2 sw 8(r29),r3 jal _Printf nop ; not filled. sw (r29),r4 jal _sem_signal nop ; not filled. addi r29,r29,#16 addi r3,r3,#1 slei r1,r3,#99 beqz r1,L2 nop ; not filled. j L13 nop ; not filled. L20: addi r29,r29,#-8 lhi r6,((LC2)>>16)&0xffff addui r6,r6,(LC2)&0xffff sw (r29),r6 jal _Printf nop ; not filled. lw r3,(r3) sw (r29),r3 jal _Printf nop ; not filled. lhi r6,((LC3)>>16)&0xffff addui r6,r6,(LC3)&0xffff sw (r29),r6 jal _Printf nop ; not filled. lhi r6,((LC4)>>16)&0xffff addui r6,r6,(LC4)&0xffff sw (r29),r6 sw 4(r29),r2 jal _Printf nop ; not filled. jal _exit nop ; not filled. L2: jal _exit nop .endproc _main

home/bshapir/cs314/project3/src/dlxos.h

// // Routines used by the entire operating system. // #ifndef _dlxos_h_ #define _dlxos_h_ #include "misc.h" typedef unsigned int uint32; #define DLX_PROCESS_QUANTUM 100000 // in microseconds extern void SetTimer (int); extern char debugstr[]; #define ASSERT(cond,s) (cond ? 0 : printf ("%s: %s\n", __FUNCTION__,s)) // dbprintf() is a VERY useful macro. It gets used as follows: // dbprintf ('x', "This prints %d and %x\n", val1, val2); // This will print the expected string only if the debugging options contain // the letter 'x'. This allows users to turn on different debugging // statements at different times by using different letters. For example, // process debugging statements could use 'p', and memory 'm'. Specifying // a '+' in the debugging string will turn on all debugging printfs. #define dbprintf(flag, format, args...) \ if ((dindex(debugstr,flag)!=(char *)0) || \ (dindex(debugstr,'+')!=(char *)0)) { \ printf (format, ## args); \ } extern int CurrentIntrs (); extern int SetIntrs (int); extern void KbdModuleInit (); extern void intrreturn (); inline int DisableIntrs () { return (SetIntrs (0xf)); } inline int EnableIntrs () { return (SetIntrs (0x0)); } inline int RestoreIntrs (int intrs) { return (SetIntrs (intrs)); } #endif // _dlxos_h_

home/bshapir/cs314/project3/src/Makefile

# # This is a makefile for the DLX OS projects. # CC = gcc-dlx AS = dlxasm CFLAGS = -mtraps -O3 #INCS = $(wildcard *.h) #SRCS = $(wildcard *.c) #OBJS = $(addsuffix .o, $(basename $(wildcard *.c))) \ # $(addsuffix .o, $(basename $(wildcard *.s))) INCS = dlxos.h traps.h filesys.h memory.h misc.h process.h queue.h \ syscall.h share_memory.h SRCS = filesys.c memory.c misc.c process.c queue.c traps.c sysproc.c OBJS = $(addsuffix .o, $(basename $(SRCS))) all: os.dlx.obj userprog os.dlx.obj: os.dlx $(AS) -i _osinit -l os.lst os.dlx mv os.dlx.obj ../execs os.dlx: $(OBJS) dlxos.o trap_random.o osend.o share_memory.o synch.o $(CC) -mtraps -O3 dlxos.o trap_random.o share_memory.o synch.o $(OBJS) osend.o -o os.dlx share_memory.o: share_memory.api cp share_memory.api share_memory.o synch.o: synch.bin cp synch.bin synch.o osend.o: osend.s $(CC) -c osend.s trap_random.o: trap_random.s $(CC) -c trap_random.s dlxos.o: dlxos.s $(CC) -c dlxos.s usertraps.o: usertraps.s $(CC) -c usertraps.s userprog : userprog.o usertraps.o misc.o $(CC) -mtraps -O3 userprog.o usertraps.o misc.o -o userprog.dlx $(AS) -l userprog.lst userprog.dlx mv userprog.dlx.obj ../execs Makefile.depend: depend depend: $(SRCS) $(INCS) $(CC) -MM $(SRCS) > Makefile.depend clean: /bin/rm -f *.o *.dlx *.lst ../execs/*.obj Makefile.depend ../execs/vm include Makefile.depend

home/bshapir/cs314/project3/src/process.o

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 _processQuantum: .word 100000 .align 2 LC0: .ascii "Entering ProcessModuleInit\n\000" .align 2 LC1: .ascii "Initializing PCB %d @ 0x%x.\n\000" .align 2 LC2: .ascii "Leaving ProcessModuleInit\n\000" .text .align 2 .proc _ProcessModuleInit .global _ProcessModuleInit _ProcessModuleInit: ; Function 'ProcessModuleInit'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L53 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L52 nop ; not filled. L53: addi r29,r29,#-8 lhi r8,((LC0)>>16)&0xffff addui r8,r8,(LC0)&0xffff sw (r29),r8 jal _printf nop ; not filled. addi r29,r29,#8 L52: addi r29,r29,#-8 lhi r2,((_freepcbs)>>16)&0xffff addui r2,r2,(_freepcbs)&0xffff sw (r29),r2 jal _QueueInit nop ; not filled. lhi r8,((_runQueue)>>16)&0xffff addui r8,r8,(_runQueue)&0xffff sw (r29),r8 jal _QueueInit nop ; not filled. lhi r8,((_waitQueue)>>16)&0xffff addui r8,r8,(_waitQueue)&0xffff sw (r29),r8 jal _QueueInit nop ; not filled. lhi r8,((_zombieQueue)>>16)&0xffff addui r8,r8,(_zombieQueue)&0xffff sw (r29),r8 jal _QueueInit nop ; not filled. addi r4,r0,#0 addi r29,r29,#8 lhi r7,((_debugstr)>>16)&0xffff addui r7,r7,(_debugstr)&0xffff lhi r1,((_pcbs)>>16)&0xffff addui r1,r1,(_pcbs)&0xffff add r5,r0,r2 addi r2,r1,#164 add r3,r0,r1 add r6,r0,r3 L57: addi r29,r29,#-8 sw (r29),r7 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L59 nop ; not filled. addi r29,r29,#-8 sw (r29),r7 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L58 nop ; not filled. L59: addi r29,r29,#-16 lhi r8,((LC1)>>16)&0xffff addui r8,r8,(LC1)&0xffff sw (r29),r8 sw 4(r29),r4 sw 8(r29),r6 jal _printf nop ; not filled. addi r29,r29,#16 L58: addi r8,r0,#1 sw 12(r3),r8 addi r8,r0,#0 sw (r2),r8 sw 12(r2),r3 sw 8(r2),r5 sw 4(r2),r5 lw r8,(r5) sw (r2),r8 sw (r5),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r5) addi r1,r1,#1 sw 8(r5),r1 addi r2,r2,#180 addi r3,r3,#180 addi r6,r6,#180 addi r4,r4,#1 slei r1,r4,#31 bnez r1,L57 nop ; not filled. lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff addi r8,r0,#0 sw (r1),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64 nop ; not filled. L65: addi r29,r29,#-8 lhi r8,((LC2)>>16)&0xffff addui r8,r8,(LC2)&0xffff sw (r29),r8 jal _printf nop ; not filled. addi r29,r29,#8 L64: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessModuleInit .align 2 .proc _ProcessSetStatus .global _ProcessSetStatus _ProcessSetStatus: ; Function 'ProcessSetStatus'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,12(r3) addi r31,r0,#-64 and r1,r1,r31 or r1,r1,r2 sw 12(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSetStatus .align 2 .proc _ProcessFreeResources .global _ProcessFreeResources _ProcessFreeResources: ; Function 'ProcessFreeResources'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r4,(r30) lhi r3,((_freepcbs)>>16)&0xffff addui r3,r3,(_freepcbs)&0xffff addi r2,r4,#164 lw r1,4(r3) sw 172(r4),r3 sw 168(r4),r1 lw r5,(r1) sw (r2),r5 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r3,160(r4) addi r2,r0,#0 slt r1,r2,r3 beqz r1,L98 nop ; not filled. L90: addi r29,r29,#-8 sw (r29),r4 sw 4(r29),r2 jal _MemoryFreeSharedPte nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 slt r1,r2,r3 bnez r1,L90 nop ; not filled. addi r2,r0,#0 L98: lw r1,160(r4) slt r1,r2,r1 beqz r1,L93 nop ; not filled. add r3,r0,r4 L95: addi r29,r29,#-8 lw r5,96(r3) sw (r29),r5 jal _MemoryFreePte nop ; not filled. addi r29,r29,#8 addi r3,r3,#4 addi r2,r2,#1 lw r1,160(r4) slt r1,r2,r1 bnez r1,L95 nop ; not filled. L93: addi r29,r29,#-8 lhu r1,8(r4) sw (r29),r1 jal _MemoryFreePage nop ; not filled. addi r29,r29,#8 lw r1,12(r4) addi r5,r0,#-64 and r1,r1,r5 ori r1,r1,#1 sw 12(r4),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessFreeResources .align 2 .proc _ProcessSetResult .global _ProcessSetResult _ProcessSetResult: ; Function 'ProcessSetResult'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,4(r30) sw 44(r1),r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSetResult .data .align 2 LC3: .ascii "Now entering ProcessSchedule (cur=0x%x, %d ready)\n\000" .align 2 LC4: .ascii "No runnable processes - exiting!\n\000" .align 2 LC5: .ascii "About to switch to PCB 0x%x,flags=0x%x @ 0x%x\n\000" .align 2 LC6: .ascii "Freeing zombie PCB 0x%x.\n\000" .align 2 LC7: .ascii "Leaving ProcessSchedule (cur=0x%x)\n\000" .text .align 2 .proc _ProcessSchedule .global _ProcessSchedule _ProcessSchedule: ; Function 'ProcessSchedule'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L103 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L102 nop ; not filled. L103: lhi r1,((_runQueue)>>16)&0xffff addui r1,r1,(_runQueue)&0xffff lw r2,8(r1) addi r29,r29,#-16 lhi r8,((LC3)>>16)&0xffff addui r8,r8,(LC3)&0xffff sw (r29),r8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 sw 8(r29),r2 jal _printf nop ; not filled. addi r29,r29,#16 L102: lhi r5,((_runQueue)>>16)&0xffff addui r5,r5,(_runQueue)&0xffff lw r1,8(r5) seqi r1,r1,#0 beqz r1,L105 nop ; not filled. addi r29,r29,#-8 lhi r8,((LC4)>>16)&0xffff addui r8,r8,(LC4)&0xffff sw (r29),r8 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L105: lw r1,(r5) lw r4,12(r1) lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) seq r1,r4,r1 beqz r1,L109 nop ; not filled. addi r3,r4,#164 lw r1,172(r4) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L111 nop ; not filled. lw r1,168(r4) lw r8,(r3) sw (r1),r8 lw r1,(r3) lw r8,168(r4) sw 4(r1),r8 lw r2,172(r4) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L111: addi r8,r0,#0 sw (r3),r8 lw r1,4(r5) sw 172(r4),r5 sw 168(r4),r1 lw r8,(r1) sw (r3),r8 sw (r1),r3 lw r1,(r3) sw 4(r1),r3 lw r1,8(r5) addi r1,r1,#1 sw 8(r5),r1 L109: lhi r1,((_runQueue)>>16)&0xffff addui r1,r1,(_runQueue)&0xffff lw r1,(r1) lw r4,12(r1) lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff sw (r1),r4 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L117 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L116 nop ; not filled. L117: addi r29,r29,#-16 lhi r8,((LC5)>>16)&0xffff addui r8,r8,(LC5)&0xffff sw (r29),r8 sw 4(r29),r4 lw r8,12(r4) sw 8(r29),r8 lw r1,4(r4) lw r1,296(r1) sw 12(r29),r1 jal _printf nop ; not filled. addi r29,r29,#16 L116: lhi r7,((_zombieQueue)>>16)&0xffff addui r7,r7,(_zombieQueue)&0xffff lhi r6,((_debugstr)>>16)&0xffff addui r6,r6,(_debugstr)&0xffff lhi r5,((_freepcbs)>>16)&0xffff addui r5,r5,(_freepcbs)&0xffff L118: lw r1,8(r7) seqi r1,r1,#0 bnez r1,L119 nop ; not filled. lw r1,(r7) lw r4,12(r1) addi r29,r29,#-8 sw (r29),r6 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L125 nop ; not filled. addi r29,r29,#-8 sw (r29),r6 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L124 nop ; not filled. L125: addi r29,r29,#-8 lhi r8,((LC6)>>16)&0xffff addui r8,r8,(LC6)&0xffff sw (r29),r8 sw 4(r29),r4 jal _printf nop ; not filled. addi r29,r29,#8 L124: addi r31,r4,#164 lw r1,172(r4) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L127 nop ; not filled. lw r1,168(r4) lw r8,(r31) sw (r1),r8 lw r1,(r31) lw r8,168(r4) sw 4(r1),r8 lw r2,172(r4) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L127: addi r8,r0,#0 sw (r31),r8 lw r1,4(r5) sw 172(r4),r5 sw 168(r4),r1 lw r8,(r1) sw (r31),r8 sw (r1),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r5) addi r1,r1,#1 sw 8(r5),r1 lw r3,160(r4) addi r2,r0,#0 slt r1,r2,r3 beqz r1,L145 nop ; not filled. L135: addi r29,r29,#-8 sw (r29),r4 sw 4(r29),r2 jal _MemoryFreeSharedPte nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 slt r1,r2,r3 bnez r1,L135 nop ; not filled. addi r2,r0,#0 L145: lw r1,160(r4) slt r1,r2,r1 beqz r1,L138 nop ; not filled. add r3,r0,r4 L140: addi r29,r29,#-8 lw r8,96(r3) sw (r29),r8 jal _MemoryFreePte nop ; not filled. addi r29,r29,#8 addi r3,r3,#4 addi r2,r2,#1 lw r1,160(r4) slt r1,r2,r1 bnez r1,L140 nop ; not filled. L138: addi r29,r29,#-8 lhu r1,8(r4) sw (r29),r1 jal _MemoryFreePage nop ; not filled. addi r29,r29,#8 lw r1,12(r4) addi r8,r0,#-64 and r1,r1,r8 ori r1,r1,#1 sw 12(r4),r1 j L118 nop ; not filled. L119: addi r29,r29,#-8 lhi r1,((_processQuantum)>>16)&0xffff addui r1,r1,(_processQuantum)&0xffff lw r1,(r1) sw (r29),r1 jal _TimerSet nop ; not filled. lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L144 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L143 nop ; not filled. L144: addi r29,r29,#-8 lhi r8,((LC7)>>16)&0xffff addui r8,r8,(LC7)&0xffff sw (r29),r8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L143: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSchedule .data .align 2 LC8: .ascii "Suspending PCB 0x%x (%s).\n\000" .align 2 LC9: .ascii "%s: %s\n\000" .align 2 LC10: .ascii "ProcessSuspend\000" .align 2 LC11: .ascii "Trying to suspend a non-running process!\n\000" .text .align 2 .proc _ProcessSuspend .global _ProcessSuspend _ProcessSuspend: ; Function 'ProcessSuspend'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L148 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L147 nop ; not filled. L148: addi r29,r29,#-16 lhi r4,((LC8)>>16)&0xffff addui r4,r4,(LC8)&0xffff sw (r29),r4 sw 4(r29),r3 addi r1,r3,#16 sw 8(r29),r1 jal _printf nop ; not filled. addi r29,r29,#16 L147: lb r4,15(r3) srli r1,r4,#0x1 andi r1,r1,#1 bnez r1,L150 nop ; not filled. addi r29,r29,#-16 lhi r4,((LC9)>>16)&0xffff addui r4,r4,(LC9)&0xffff sw (r29),r4 lhi r1,((LC10)>>16)&0xffff addui r1,r1,(LC10)&0xffff sw 4(r29),r1 lhi r4,((LC11)>>16)&0xffff addui r4,r4,(LC11)&0xffff sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L150: lw r1,12(r3) addi r4,r0,#-64 and r1,r1,r4 ori r1,r1,#4 sw 12(r3),r1 addi r31,r3,#164 lw r1,172(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L153 nop ; not filled. lw r1,168(r3) lw r4,(r31) sw (r1),r4 lw r1,(r31) lw r4,168(r3) sw 4(r1),r4 lw r2,172(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L153: addi r4,r0,#0 sw (r31),r4 lhi r2,((_waitQueue)>>16)&0xffff addui r2,r2,(_waitQueue)&0xffff lw r1,4(r2) sw 172(r3),r2 sw 168(r3),r1 lw r4,(r1) sw (r31),r4 sw (r1),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSuspend .data .align 2 LC12: .ascii "Waking up PCB 0x%x.\n\000" .align 2 LC13: .ascii "ProcessWakeup\000" .align 2 LC14: .ascii "Trying to wake up a non-sleeping process!\n\000" .text .align 2 .proc _ProcessWakeup .global _ProcessWakeup _ProcessWakeup: ; Function 'ProcessWakeup'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L159 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L158 nop ; not filled. L159: addi r29,r29,#-8 lhi r4,((LC12)>>16)&0xffff addui r4,r4,(LC12)&0xffff sw (r29),r4 sw 4(r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L158: lb r4,15(r3) srli r1,r4,#0x2 andi r1,r1,#1 bnez r1,L161 nop ; not filled. addi r29,r29,#-16 lhi r4,((LC9)>>16)&0xffff addui r4,r4,(LC9)&0xffff sw (r29),r4 lhi r1,((LC13)>>16)&0xffff addui r1,r1,(LC13)&0xffff sw 4(r29),r1 lhi r4,((LC14)>>16)&0xffff addui r4,r4,(LC14)&0xffff sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L161: lw r1,12(r3) addi r4,r0,#-64 and r1,r1,r4 ori r1,r1,#2 sw 12(r3),r1 addi r31,r3,#164 lw r1,172(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L164 nop ; not filled. lw r1,168(r3) lw r4,(r31) sw (r1),r4 lw r1,(r31) lw r4,168(r3) sw 4(r1),r4 lw r2,172(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L164: addi r4,r0,#0 sw (r31),r4 lhi r2,((_runQueue)>>16)&0xffff addui r2,r2,(_runQueue)&0xffff lw r1,4(r2) sw 172(r3),r2 sw 168(r3),r1 lw r4,(r1) sw (r31),r4 sw (r1),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessWakeup .data .align 2 LC15: .ascii "Entering ProcessDestroy for 0x%x.\n\000" .align 2 LC16: .ascii "Leaving ProcessDestroy for 0x%x.\n\000" .text .align 2 .proc _ProcessDestroy .global _ProcessDestroy _ProcessDestroy: ; Function 'ProcessDestroy'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L170 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L169 nop ; not filled. L170: addi r29,r29,#-8 lhi r4,((LC15)>>16)&0xffff addui r4,r4,(LC15)&0xffff sw (r29),r4 sw 4(r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L169: lw r1,12(r3) addi r4,r0,#-64 and r1,r1,r4 ori r1,r1,#16 sw 12(r3),r1 addi r31,r3,#164 lw r1,172(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L173 nop ; not filled. lw r1,168(r3) lw r4,(r31) sw (r1),r4 lw r1,(r31) lw r4,168(r3) sw 4(r1),r4 lw r2,172(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L173: addi r4,r0,#0 sw (r31),r4 lhi r2,((_zombieQueue)>>16)&0xffff addui r2,r2,(_zombieQueue)&0xffff sw 172(r3),r2 sw 168(r3),r2 lw r4,(r2) sw (r31),r4 sw (r2),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L177 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L176 nop ; not filled. L177: addi r29,r29,#-8 lhi r4,((LC16)>>16)&0xffff addui r4,r4,(LC16)&0xffff sw (r29),r4 sw 4(r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L176: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessDestroy .data .align 2 _str52: .space 4 .align 2 _location53: .word 0 .text .align 2 .proc _get_argument .global _get_argument _get_argument: ; Function 'get_argument'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) snei r1,r2,#0 beqz r1,L190 nop ; not filled. lhi r1,((_str52)>>16)&0xffff addui r1,r1,(_str52)&0xffff sw (r1),r2 lhi r1,((_location53)>>16)&0xffff addui r1,r1,(_location53)&0xffff addi r5,r0,#0 sw (r1),r5 L190: lhi r31,((_location53)>>16)&0xffff addui r31,r31,(_location53)&0xffff lw r3,(r31) lhi r1,((_str52)>>16)&0xffff addui r1,r1,(_str52)&0xffff lw r2,(r1) add r1,r2,r3 lbu r1,(r1) snei r1,r1,#0 beqz r1,L192 nop ; not filled. sgti r1,r3,#98 beqz r1,L191 nop ; not filled. L192: addi r1,r0,#0 j L199 nop ; not filled. L200: addi r1,r31,#1 sw (r2),r1 j L194 nop ; not filled. L191: slei r1,r3,#99 beqz r1,L194 nop ; not filled. add r4,r0,r2 add r2,r0,r31 L196: lw r31,(r2) add r1,r4,r31 lbu r1,(r1) snei r1,r1,#0 beqz r1,L200 nop ; not filled. addi r1,r31,#1 sw (r2),r1 slei r1,r1,#99 bnez r1,L196 nop ; not filled. L194: add r1,r0,r3 L199: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _get_argument .data .align 2 LC17: .ascii "Old interrupt value was 0x%x.\n\000" .align 2 LC18: .ascii "Entering ProcessFork args=0x%x 0x%x %s %d\n\000" .align 2 LC19: .ascii "FATAL error: no free processes!\n\000" .align 2 LC20: .ascii "Got a link @ 0x%x\n\000" .align 2 LC21: .ascii "Before restore interrupt value is 0x%x.\n\000" .align 2 LC22: .ascii "New interrupt value is 0x%x.\n\000" .align 2 LC23: .ascii "aFATAL: couldn\'t allocate memory - no free pages!\n\000" .align 2 LC24: .ascii "bFATAL: couldn\'t allocate system stack - no free pages!\n\000" .align 2 LC25: .ascii "Setting up PCB @ 0x%x (sys stack=0x%x, mem=0x%x, size=0x%x)\n\000" .align 2 LC26: .ascii "About to load %s\n\000" .align 2 LC27: .ascii "File %s -> start=0x%08x\n\000" .align 2 LC28: .ascii "File %s -> code @ 0x%08x (size=0x%08x)\n\000" .align 2 LC29: .ascii "File %s -> data @ 0x%08x (size=0x%08x)\n\000" .align 2 LC30: .ascii "Placing %d bytes at vaddr %08x.\n\000" .align 2 LC31: .ascii "Setting currentPCB=0x%x, stackframe=0x%x\n\000" .align 2 LC32: .ascii "Leaving ProcessFork (%s)\n\000" .text .align 2 .proc _ProcessFork .global _ProcessFork _ProcessFork: ; Function 'ProcessFork'; 672 bytes of locals, 12 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#728 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 sw 44(r29),r13 lw r5,(r30) lw r10,4(r30) lw r12,16(r30) lw r4,20(r30) addi r13,r0,#0 sw -680(r30),r13 addi r29,r29,#-8 addi r13,r0,#15 sw (r29),r13 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#73 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L204 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L203 nop ; not filled. L204: addi r29,r29,#-8 lhi r13,((LC17)>>16)&0xffff addui r13,r13,(LC17)&0xffff sw (r29),r13 sw 4(r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L203: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L206 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L205 nop ; not filled. L206: addi r29,r29,#-24 lhi r13,((LC18)>>16)&0xffff addui r13,r13,(LC18)&0xffff sw (r29),r13 sw 4(r29),r5 sw 8(r29),r10 sw 12(r29),r12 sw 16(r29),r4 jal _printf nop ; not filled. addi r29,r29,#24 L205: lhi r2,((_freepcbs)>>16)&0xffff addui r2,r2,(_freepcbs)&0xffff lw r1,8(r2) seqi r1,r1,#0 beqz r1,L207 nop ; not filled. addi r29,r29,#-8 lhi r13,((LC19)>>16)&0xffff addui r13,r13,(LC19)&0xffff sw (r29),r13 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L207: lw r9,(r2) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L212 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L211 nop ; not filled. L212: addi r29,r29,#-8 lhi r13,((LC20)>>16)&0xffff addui r13,r13,(LC20)&0xffff sw (r29),r13 sw 4(r29),r9 jal _printf nop ; not filled. addi r29,r29,#8 L211: lw r1,8(r9) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L214 nop ; not filled. lw r1,4(r9) lw r13,(r9) sw (r1),r13 lw r1,(r9) lw r13,4(r9) sw 4(r1),r13 lw r2,8(r9) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L214: addi r13,r0,#0 sw (r9),r13 lw r6,12(r9) lw r1,12(r6) addi r13,r0,#-64 and r1,r1,r13 ori r1,r1,#2 sw 12(r6),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#73 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L217 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L216 nop ; not filled. L217: jal _CurrentIntrs nop ; not filled. addi r29,r29,#-8 lhi r13,((LC21)>>16)&0xffff addui r13,r13,(LC21)&0xffff sw (r29),r13 sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L216: addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#73 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L220 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L219 nop ; not filled. L220: jal _CurrentIntrs nop ; not filled. addi r29,r29,#-8 lhi r13,((LC22)>>16)&0xffff addui r13,r13,(LC22)&0xffff sw (r29),r13 sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L219: addi r29,r29,#-8 addi r1,r6,#16 sw (r29),r1 sw 4(r29),r12 jal _dstrcpy nop ; not filled. addi r13,r0,#1 sw 160(r6),r13 jal _MemoryAllocPage nop ; not filled. add r2,r0,r1 addi r29,r29,#8 snei r1,r2,#0 bnez r1,L221 nop ; not filled. addi r29,r29,#-8 lhi r13,((LC23)>>16)&0xffff addui r13,r13,(LC23)&0xffff sw (r29),r13 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L221: addi r29,r29,#-8 sw (r29),r2 jal _MemorySetupPte nop ; not filled. sw 96(r6),r1 jal _MemoryAllocPage nop ; not filled. add r2,r0,r1 addi r29,r29,#8 snei r1,r2,#0 bnez r1,L222 nop ; not filled. addi r29,r29,#-8 lhi r13,((LC24)>>16)&0xffff addui r13,r13,(LC24)&0xffff sw (r29),r13 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L222: slli r1,r2,#0x10 sw 8(r6),r1 ori r8,r1,#65164 sw 4(r6),r8 sw (r6),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L224 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L223 nop ; not filled. L224: addi r29,r29,#-24 lhi r13,((LC25)>>16)&0xffff addui r13,r13,(LC25)&0xffff sw (r29),r13 sw 4(r29),r6 lw r13,8(r6) sw 8(r29),r13 lw r13,96(r6) sw 12(r29),r13 lw r1,160(r6) slli r1,r1,#0x10 sw 16(r29),r1 jal _printf nop ; not filled. addi r29,r29,#24 L223: addi r13,r0,#0 sw 40(r8),r13 addi r1,r6,#96 sw 312(r8),r1 lw r13,160(r6) sw 316(r8),r13 lhi r1,#16 addui r1,r1,#16 sw 320(r8),r1 snei r1,r4,#0 beqz r1,L225 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L227 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L226 nop ; not filled. L227: addi r29,r29,#-8 lhi r13,((LC26)>>16)&0xffff addui r13,r13,(LC26)&0xffff sw (r29),r13 sw 4(r29),r12 jal _printf nop ; not filled. addi r29,r29,#8 L226: addi r29,r29,#-24 sw (r29),r12 addi r1,r30,#-660 sw 4(r29),r1 addi r1,r30,#-664 sw 8(r29),r1 addi r1,r30,#-668 sw 12(r29),r1 addi r1,r30,#-672 sw 16(r29),r1 addi r1,r30,#-676 sw 20(r29),r1 jal _ProcessGetCodeInfo nop ; not filled. add r5,r0,r1 addi r29,r29,#24 slti r1,r5,#0 beqz r1,L228 nop ; not filled. lhi r3,((_freepcbs)>>16)&0xffff addui r3,r3,(_freepcbs)&0xffff addi r2,r6,#164 lw r1,4(r3) sw 172(r6),r3 sw 168(r6),r1 lw r13,(r1) sw (r2),r13 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r3,160(r6) addi r2,r0,#0 slt r1,r2,r3 beqz r1,L293 nop ; not filled. L236: addi r29,r29,#-8 sw (r29),r6 sw 4(r29),r2 jal _MemoryFreeSharedPte nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 slt r1,r2,r3 bnez r1,L236 nop ; not filled. addi r2,r0,#0 L293: lw r1,160(r6) slt r1,r2,r1 beqz r1,L239 nop ; not filled. add r3,r0,r6 L241: addi r29,r29,#-8 lw r13,96(r3) sw (r29),r13 jal _MemoryFreePte nop ; not filled. addi r29,r29,#8 addi r3,r3,#4 addi r2,r2,#1 lw r1,160(r6) slt r1,r2,r1 bnez r1,L241 nop ; not filled. L239: addi r29,r29,#-8 lhu r1,8(r6) sw (r29),r1 jal _MemoryFreePage nop ; not filled. addi r29,r29,#8 lw r1,12(r6) addi r13,r0,#-64 and r1,r1,r13 ori r1,r1,#1 sw 12(r6),r1 addi r1,r0,#-1 j L290 nop ; not filled. L228: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L245 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L244 nop ; not filled. L245: addi r29,r29,#-16 lhi r13,((LC27)>>16)&0xffff addui r13,r13,(LC27)&0xffff sw (r29),r13 sw 4(r29),r12 lw r13,-660(r30) sw 8(r29),r13 jal _printf nop ; not filled. addi r29,r29,#16 L244: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L247 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L246 nop ; not filled. L247: addi r29,r29,#-16 lhi r13,((LC28)>>16)&0xffff addui r13,r13,(LC28)&0xffff sw (r29),r13 sw 4(r29),r12 lw r13,-664(r30) sw 8(r29),r13 lw r13,-668(r30) sw 12(r29),r13 jal _printf nop ; not filled. addi r29,r29,#16 L246: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L249 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L248 nop ; not filled. L249: addi r29,r29,#-16 lhi r13,((LC29)>>16)&0xffff addui r13,r13,(LC29)&0xffff sw (r29),r13 sw 4(r29),r12 lw r13,-672(r30) sw 8(r29),r13 lw r13,-676(r30) sw 12(r29),r13 jal _printf nop ; not filled. addi r29,r29,#16 L248: addi r3,r30,#-112 addi r7,r30,#-680 lhi r4,((_debugstr)>>16)&0xffff addui r4,r4,(_debugstr)&0xffff L250: addi r29,r29,#-16 sw (r29),r5 sw 4(r29),r3 sw 8(r29),r7 addi r13,r0,#100 sw 12(r29),r13 jal _ProcessGetFromFile nop ; not filled. add r2,r0,r1 addi r29,r29,#16 sgti r1,r2,#0 beqz r1,L251 nop ; not filled. addi r29,r29,#-8 sw (r29),r4 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L254 nop ; not filled. addi r29,r29,#-8 sw (r29),r4 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L253 nop ; not filled. L254: addi r29,r29,#-16 lhi r13,((LC30)>>16)&0xffff addui r13,r13,(LC30)&0xffff sw (r29),r13 sw 4(r29),r2 lw r1,-680(r30) sub r1,r1,r2 sw 8(r29),r1 jal _printf nop ; not filled. addi r29,r29,#16 L253: addi r29,r29,#-16 sw (r29),r6 sw 4(r29),r3 lw r1,-680(r30) sub r1,r1,r2 sw 8(r29),r1 sw 12(r29),r2 jal _MemoryCopySystemToUser nop ; not filled. addi r29,r29,#16 j L250 nop ; not filled. L251: addi r29,r29,#-8 sw (r29),r5 jal _FsClose nop ; not filled. addi r13,r0,#256 sw 300(r8),r13 addui r13,r0,#64512 sw 156(r8),r13 addi r29,r29,#-8 sw (r29),r6 sw 4(r29),r10 lw r13,156(r8) sw 8(r29),r13 addi r13,r0,#992 sw 12(r29),r13 jal _MemoryCopySystemToUser nop ; not filled. addi r29,r29,#16 snei r1,r10,#0 beqz r1,L256 nop ; not filled. lhi r1,((_str52)>>16)&0xffff addui r1,r1,(_str52)&0xffff sw (r1),r10 lhi r1,((_location53)>>16)&0xffff addui r1,r1,(_location53)&0xffff addi r13,r0,#0 sw (r1),r13 L256: lhi r3,((_location53)>>16)&0xffff addui r3,r3,(_location53)&0xffff lw r4,(r3) lhi r1,((_str52)>>16)&0xffff addui r1,r1,(_str52)&0xffff lw r2,(r1) add r1,r2,r4 lbu r1,(r1) snei r1,r1,#0 beqz r1,L258 nop ; not filled. sgti r1,r4,#98 beqz r1,L257 nop ; not filled. L258: addi r3,r0,#0 j L255 nop ; not filled. L291: addi r1,r2,#1 sw (r3),r1 j L260 nop ; not filled. L257: slei r1,r4,#99 beqz r1,L260 nop ; not filled. add r5,r0,r2 L262: lw r2,(r3) add r1,r5,r2 lbu r1,(r1) snei r1,r1,#0 beqz r1,L291 nop ; not filled. addi r1,r2,#1 sw (r3),r1 slei r1,r1,#99 bnez r1,L262 nop ; not filled. L260: add r3,r0,r4 L255: addui r2,r0,#64512 add r1,r3,r2 sw -648(r30),r1 addi r7,r0,#3 lhi r4,((_location53)>>16)&0xffff addui r4,r4,(_location53)&0xffff lhi r11,((_str52)>>16)&0xffff addui r11,r11,(_str52)&0xffff add r10,r0,r2 addi r5,r30,#4 L265: lw r31,(r4) lw r3,(r11) add r1,r3,r31 lbu r1,(r1) snei r1,r1,#0 beqz r1,L271 nop ; not filled. sgti r1,r31,#98 beqz r1,L270 nop ; not filled. L271: addi r3,r0,#0 j L268 nop ; not filled. L292: addi r1,r3,#1 sw (r4),r1 j L273 nop ; not filled. L270: slei r1,r31,#99 beqz r1,L273 nop ; not filled. add r2,r0,r3 L275: lw r3,(r4) add r1,r2,r3 lbu r1,(r1) snei r1,r1,#0 beqz r1,L292 nop ; not filled. addi r1,r3,#1 sw (r4),r1 slei r1,r1,#99 bnez r1,L275 nop ; not filled. L273: add r3,r0,r31 L268: add r1,r3,r10 sw -648(r5),r1 snei r1,r3,#0 beqz r1,L266 nop ; not filled. addi r5,r5,#4 addi r7,r7,#1 j L265 nop ; not filled. L266: addi r1,r7,#-2 sw -656(r30),r1 slli r1,r1,#0x2 sub r1,r10,r1 sw -652(r30),r1 addi r29,r29,#-16 sw (r29),r6 addi r1,r30,#-656 sw 4(r29),r1 slli r2,r7,#0x2 lw r1,156(r8) sub r1,r1,r2 sw 8(r29),r1 sw 12(r29),r2 jal _MemoryCopySystemToUser nop ; not filled. lw r1,156(r8) sub r1,r1,r2 sw 156(r8),r1 lw r13,-660(r30) sw 296(r8),r13 lw r1,12(r6) ori r1,r1,#512 sw 12(r6),r1 addi r29,r29,#16 j L279 nop ; not filled. L225: lhi r13,((_ProcessExit)>>16)&0xffff addui r13,r13,(_ProcessExit)&0xffff sw 164(r8),r13 lw r1,8(r6) addui r1,r1,#65504 sw 156(r8),r1 sw (r1),r10 sw 296(r8),r5 addi r13,r0,#320 sw 300(r8),r13 lw r1,12(r6) ori r1,r1,#256 sw 12(r6),r1 L279: addi r29,r29,#-8 addi r13,r0,#15 sw (r29),r13 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lhi r3,((_runQueue)>>16)&0xffff addui r3,r3,(_runQueue)&0xffff lw r2,4(r3) sw 8(r9),r3 sw 4(r9),r2 lw r13,(r2) sw (r9),r13 sw (r2),r9 lw r2,(r9) sw 4(r2),r9 lw r2,8(r3) addi r2,r2,#1 sw 8(r3),r2 addi r29,r29,#-8 sw (r29),r1 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) snei r1,r1,#0 bnez r1,L285 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L287 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L286 nop ; not filled. L287: addi r29,r29,#-16 lhi r13,((LC31)>>16)&0xffff addui r13,r13,(LC31)&0xffff sw (r29),r13 sw 4(r29),r6 lw r13,(r6) sw 8(r29),r13 jal _printf nop ; not filled. addi r29,r29,#16 L286: lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff sw (r1),r6 L285: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L289 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L288 nop ; not filled. L289: addi r29,r29,#-8 lhi r13,((LC32)>>16)&0xffff addui r13,r13,(LC32)&0xffff sw (r29),r13 sw 4(r29),r12 jal _printf nop ; not filled. addi r29,r29,#8 L288: lhi r13,((_pcbs)>>16)&0xffff addui r13,r13,(_pcbs)&0xffff sub r2,r6,r13 lhi r1,#-23302 addui r1,r1,#20389 movi2fp f0,r2 movi2fp f1,r1 mult f0,f0,f1 movfp2i r1,f0 srai r1,r1,#0x2 L290: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r13,44(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessFork .data .align 2 LC33: .ascii "ProcessGetCodeInfo: open of %s failed (%d).\n\000" .align 2 LC34: .ascii "File descriptor is now %d.\n\000" .align 2 LC35: .ascii "ProcessGetCodeInfo: read got %d (not %d) bytes from %s\n\000" .align 2 LC36: .ascii "start:\000" .align 2 LC37: .ascii "ProcessGetCodeInfo: %s missing start line (not a DLX executable?)\n\000" .text .align 2 .proc _ProcessGetCodeInfo .global _ProcessGetCodeInfo _ProcessGetCodeInfo: ; Function 'ProcessGetCodeInfo'; 112 bytes of locals, 11 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#168 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 lw r6,(r30) lw r7,4(r30) lw r8,8(r30) lw r9,12(r30) lw r10,16(r30) lw r11,20(r30) addi r29,r29,#-8 sw (r29),r6 addi r12,r0,#1 sw 4(r29),r12 jal _FsOpen nop ; not filled. add r3,r0,r1 addi r29,r29,#8 slti r1,r3,#0 beqz r1,L302 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L304 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L311 nop ; not filled. L304: addi r29,r29,#-16 lhi r12,((LC33)>>16)&0xffff addui r12,r12,(LC33)&0xffff sw (r29),r12 sw 4(r29),r6 sw 8(r29),r3 jal _printf nop ; not filled. addi r29,r29,#16 j L311 nop ; not filled. L302: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L306 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L305 nop ; not filled. L306: addi r29,r29,#-8 lhi r12,((LC34)>>16)&0xffff addui r12,r12,(LC34)&0xffff sw (r29),r12 sw 4(r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L305: addi r29,r29,#-16 sw (r29),r3 addi r4,r30,#-112 sw 4(r29),r4 addi r12,r0,#100 sw 8(r29),r12 jal _FsRead nop ; not filled. add r5,r0,r1 addi r29,r29,#16 snei r1,r5,#100 beqz r1,L307 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L309 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L308 nop ; not filled. L309: addi r29,r29,#-16 lhi r12,((LC35)>>16)&0xffff addui r12,r12,(LC35)&0xffff sw (r29),r12 sw 4(r29),r5 addi r12,r0,#100 sw 8(r29),r12 sw 12(r29),r6 jal _printf nop ; not filled. addi r29,r29,#16 L308: addi r29,r29,#-8 sw (r29),r3 jal _FsClose nop ; not filled. addi r1,r0,#-1 addi r29,r29,#8 j L301 nop ; not filled. L307: addi r29,r29,#-8 sw (r29),r4 lhi r1,((LC36)>>16)&0xffff addui r1,r1,(LC36)&0xffff sw 4(r29),r1 jal _dstrstr nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L310 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L312 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L311 nop ; not filled. L312: addi r29,r29,#-8 lhi r12,((LC37)>>16)&0xffff addui r12,r12,(LC37)&0xffff sw (r29),r12 sw 4(r29),r6 jal _printf nop ; not filled. addi r29,r29,#8 L311: addi r1,r0,#-1 j L301 nop ; not filled. L310: addi r29,r29,#-8 sw (r29),r4 addi r12,r0,#58 sw 4(r29),r12 jal _dindex nop ; not filled. addi r1,r1,#1 sw -116(r30),r1 addi r29,r29,#-8 sw (r29),r1 addi r2,r30,#-116 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. sw (r7),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. sw (r8),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. sw (r9),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. sw (r10),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. sw (r11),r1 sw (r29),r4 addi r12,r0,#10 sw 4(r29),r12 jal _dindex nop ; not filled. addi r2,r30,#-113 sub r1,r1,r2 sw (r29),r3 sw 4(r29),r1 addi r12,r0,#0 sw 8(r29),r12 jal _FsSeek nop ; not filled. add r1,r0,r3 addi r29,r29,#16 L301: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessGetCodeInfo .data .align 2 LC38: .ascii "Got %d bytes at offset %d ...\000" .align 2 LC39: .ascii " terminated at %d.\n\000" .align 2 LC40: .ascii "Buffer is \'%s\'\n\000" .align 2 LC41: .ascii "New address is 0x%x.\n\000" .align 2 LC42: .ascii "Seeking to %d and returning %d bytes!\n\000" .text .align 2 .proc _ProcessGetFromFile .global _ProcessGetFromFile _ProcessGetFromFile: ; Function 'ProcessGetFromFile'; 216 bytes of locals, 11 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#272 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 lw r10,(r30) lw r7,8(r30) lw r2,12(r30) lw r11,4(r30) addi r3,r30,#-216 sw -220(r30),r3 addi r29,r29,#-16 sw (r29),r10 addi r12,r0,#0 sw 4(r29),r12 addi r12,r0,#1 sw 8(r29),r12 jal _FsSeek nop ; not filled. add r9,r0,r1 slli r2,r2,#0x1 addi r29,r29,#16 sgtui r1,r2,#200 beqz r1,L315 nop ; not filled. addi r2,r0,#200 L315: addi r29,r29,#-16 sw (r29),r10 sw 4(r29),r3 sw 8(r29),r2 jal _FsRead nop ; not filled. add r5,r0,r1 addi r29,r29,#16 slei r1,r5,#0 beqz r1,L316 nop ; not filled. addi r1,r0,#0 j L370 nop ; not filled. L316: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L318 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L317 nop ; not filled. L318: addi r29,r29,#-16 lhi r12,((LC38)>>16)&0xffff addui r12,r12,(LC38)&0xffff sw (r29),r12 sw 4(r29),r5 sw 8(r29),r9 jal _printf nop ; not filled. addi r29,r29,#16 L317: addi r5,r5,#-1 addi r1,r30,#-216 add r2,r1,r5 j L373 nop ; not filled. L319: addi r2,r2,#-1 addi r5,r5,#-1 L373: lbu r1,(r2) snei r1,r1,#10 bnez r1,L319 nop ; not filled. addi r1,r30,#-215 add r1,r1,r5 addi r12,r0,(#0x5a)&0xff sb (r1),r12 addi r1,r30,#-214 add r1,r1,r5 addi r12,r0,(#0x0)&0xff sb (r1),r12 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L324 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L323 nop ; not filled. L324: addi r29,r29,#-8 lhi r12,((LC39)>>16)&0xffff addui r12,r12,(LC39)&0xffff sw (r29),r12 sw 4(r29),r5 jal _printf nop ; not filled. addi r29,r29,#8 L323: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L326 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L325 nop ; not filled. L326: addi r29,r29,#-8 lhi r12,((LC40)>>16)&0xffff addui r12,r12,(LC40)&0xffff sw (r29),r12 addi r1,r30,#-216 sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L325: addi r5,r0,#0 lhi r8,((_debugstr)>>16)&0xffff addui r8,r8,(_debugstr)&0xffff L327: addi r29,r29,#-8 lw r12,-220(r30) sw (r29),r12 addi r12,r0,#90 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L328 nop ; not filled. addi r29,r29,#-8 lw r12,-220(r30) sw (r29),r12 addi r12,r0,#58 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L328 nop ; not filled. lw r2,-220(r30) lbu r1,(r2) snei r1,r1,#58 beqz r1,L372 nop ; not filled. sgti r1,r5,#0 bnez r1,L328 nop ; not filled. addi r29,r29,#-16 sw (r29),r2 addi r1,r30,#-220 sw 4(r29),r1 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop ; not filled. sw (r7),r1 sw (r29),r8 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L334 nop ; not filled. addi r29,r29,#-8 sw (r29),r8 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L331 nop ; not filled. L334: addi r29,r29,#-8 lhi r12,((LC41)>>16)&0xffff addui r12,r12,(LC41)&0xffff sw (r29),r12 lw r1,(r7) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L331: lw r1,-220(r30) lbu r1,(r1) snei r1,r1,#58 bnez r1,L328 nop ; not filled. L372: lw r1,-220(r30) addi r1,r1,#1 sw -220(r30),r1 add r6,r5,r11 L338: lw r1,-220(r30) j L374 nop ; not filled. L341: lw r1,-220(r30) addi r1,r1,#1 sw -220(r30),r1 L374: lbu r31,(r1) seqi r1,r31,#32 bnez r1,L341 nop ; not filled. seqi r1,r31,#9 bnez r1,L341 nop ; not filled. lw r2,-220(r30) lb r31,(r2) andi r3,r31,#0x00ff seqi r1,r3,#10 beqz r1,L343 nop ; not filled. addi r1,r2,#1 sw -220(r30),r1 j L327 nop ; not filled. L343: addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L349 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L349 nop ; not filled. snei r1,r3,#65 bnez r1,L348 nop ; not filled. L349: addi r2,r0,#1 L348: snei r1,r2,#0 beqz r1,L327 nop ; not filled. lw r1,-220(r30) lb r2,1(r1) addi r3,r0,#0 addi r1,r2,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L352 nop ; not filled. addi r1,r2,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L352 nop ; not filled. andi r1,r2,#0x00ff snei r1,r1,#65 bnez r1,L351 nop ; not filled. L352: addi r3,r0,#1 L351: snei r1,r3,#0 beqz r1,L327 nop ; not filled. lw r1,-220(r30) lbu r2,(r1) add r3,r0,r2 addi r31,r2,#-48 sleui r1,r31,#9 beqz r1,L354 nop ; not filled. add r4,r0,r31 j L353 nop ; not filled. L354: addi r1,r2,#-97 sleui r1,r1,#5 beqz r1,L356 nop ; not filled. addi r4,r2,#-87 j L353 nop ; not filled. L356: addi r1,r3,#-65 sleui r1,r1,#5 addi r4,r0,#0 beqz r1,L353 nop ; not filled. addi r4,r3,#-55 L353: lw r1,-220(r30) lbu r2,1(r1) add r3,r0,r2 addi r31,r2,#-48 sleui r1,r31,#9 beqz r1,L361 nop ; not filled. add r2,r0,r31 j L360 nop ; not filled. L361: addi r1,r2,#-97 sleui r1,r1,#5 beqz r1,L363 nop ; not filled. addi r2,r2,#-87 j L360 nop ; not filled. L363: addi r1,r3,#-65 sleui r1,r1,#5 addi r2,r0,#0 beqz r1,L360 nop ; not filled. addi r2,r3,#-55 L360: slli r1,r4,#0x4 add r1,r1,r2 sb (r6),r1 addi r6,r6,#1 addi r5,r5,#1 lw r1,-220(r30) addi r1,r1,#2 sw -220(r30),r1 lw r1,(r7) addi r1,r1,#1 sw (r7),r1 j L338 nop ; not filled. L328: addi r29,r29,#-16 sw (r29),r10 lw r1,-220(r30) add r1,r1,r9 addi r3,r30,#-216 sub r1,r1,r3 sw 4(r29),r1 addi r12,r0,#0 sw 8(r29),r12 jal _FsSeek nop ; not filled. lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L369 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L368 nop ; not filled. L369: addi r29,r29,#-16 lhi r12,((LC42)>>16)&0xffff addui r12,r12,(LC42)&0xffff sw (r29),r12 lw r1,-220(r30) add r1,r1,r9 sub r1,r1,r3 sw 4(r29),r1 sw 8(r29),r5 jal _printf nop ; not filled. addi r29,r29,#16 L368: add r1,r0,r5 L370: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessGetFromFile .data .align 2 _temppcb64: .space 180 .align 2 LC43: .ascii "Got %d arguments.\n\000" .align 2 LC44: .ascii "Available memory: 0x%x -> 0x%x.\n\000" .align 2 LC45: .ascii "Argument count is %d.\n\000" .align 2 LC46: .ascii "Argument %d is %s.\n\000" .align 2 LC47: .ascii "Converted %s to %d=%s\n\000" _buf65: .space 200 .align 2 LC48: .ascii "%08x: %02x%02x%02x%02x\n\000" .align 2 LC49: .ascii "Option %s not recognized.\n\000" .align 2 LC50: .ascii "About to initialize queues.\n\000" .align 2 LC51: .ascii "After initializing queues.\n\000" .align 2 LC52: .ascii "After initializing memory.\n\000" .align 2 LC53: .ascii "After initializing processes.\n\000" .align 2 LC54: .ascii "After initializing shared memory.\n\000" .align 2 LC55: .ascii "After initializing synchronization tools.\n\000" .align 2 LC56: .ascii "After initializing keyboard.\n\000" .align 2 LC57: .ascii "vm\000" .align 2 LC58: .ascii "VM Descriptor is %d\n\000" .align 2 LC59: .ascii "Created processes - about to set timer quantum.\n\000" .align 2 LC60: .ascii "Set timer quantum to %d, about to run first process.\n\000" .text .align 2 .proc _main .global _main _main: ; Function 'main'; 192 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#200 ; alloc local storage lw r14,(r30) lw r20,4(r30) jal ___main nop ; not filled. addi r16,r0,#0 addi r21,r0,#0 sw -176(r30),r21 sw -172(r30),r21 sw -168(r30),r21 sw -164(r30),r21 sw -160(r30),r21 sw -156(r30),r21 sw -152(r30),r21 sw -148(r30),r21 sw -144(r30),r21 sw -140(r30),r21 sw -136(r30),r21 sw -132(r30),r21 lhi r1,((_debugstr)>>16)&0xffff addui r1,r1,(_debugstr)&0xffff addi r21,r0,(#0x0)&0xff sb (r1),r21 jal _MyFuncRetZero nop ; not filled. addi r29,r29,#-8 lhi r21,((LC43)>>16)&0xffff addui r21,r21,(LC43)&0xffff sw (r29),r21 sw 4(r29),r14 jal _printf nop ; not filled. jal _MemoryGetSize nop ; not filled. addi r29,r29,#-8 lhi r21,((LC44)>>16)&0xffff addui r21,r21,(LC44)&0xffff sw (r29),r21 lhi r2,((_lastosaddress)>>16)&0xffff addui r2,r2,(_lastosaddress)&0xffff lw r2,(r2) sw 4(r29),r2 sw 8(r29),r1 jal _printf nop ; not filled. lhi r21,((LC45)>>16)&0xffff addui r21,r21,(LC45)&0xffff sw (r29),r21 sw 4(r29),r14 jal _printf nop ; not filled. addi r9,r0,#0 addi r29,r29,#16 slt r1,r9,r14 beqz r1,L377 nop ; not filled. add r2,r0,r20 L379: addi r29,r29,#-16 lhi r21,((LC46)>>16)&0xffff addui r21,r21,(LC46)&0xffff sw (r29),r21 sw 4(r29),r9 lw r21,(r2) sw 8(r29),r21 jal _printf nop ; not filled. addi r29,r29,#16 addi r2,r2,#4 addi r9,r9,#1 slt r1,r9,r14 bnez r1,L379 nop ; not filled. L377: jal _FsModuleInit nop ; not filled. addi r9,r0,#0 slt r1,r9,r14 beqz r1,L382 nop ; not filled. addi r12,r30,#-128 addi r13,r30,#-200 lhi r15,((_buf65)>>16)&0xffff addui r15,r15,(_buf65)&0xffff addi r18,r15,#1 addi r17,r15,#2 add r8,r0,r20 L384: lw r2,(r8) lbu r1,(r2) seqi r1,r1,#45 beqz r1,L383 nop ; not filled. lbu r2,1(r2) seqi r1,r2,#102 bnez r1,L389 nop ; not filled. sgti r1,r2,#102 bnez r1,L401 nop ; not filled. seqi r1,r2,#68 beqz r1,L399 nop ; not filled. j L387 nop ; not filled. L401: seqi r1,r2,#105 bnez r1,L388 nop ; not filled. seqi r1,r2,#117 beqz r1,L399 nop ; not filled. j L398 nop ; not filled. L387: addi r29,r29,#-8 lhi r21,((_debugstr)>>16)&0xffff addui r21,r21,(_debugstr)&0xffff sw (r29),r21 addi r8,r8,#4 addi r9,r9,#1 lw r1,(r8) sw 4(r29),r1 jal _dstrcpy nop ; not filled. j L436 nop ; not filled. L388: addi r29,r29,#-16 addi r8,r8,#4 addi r9,r9,#1 lw r21,(r8) sw (r29),r21 addi r21,r0,#0 sw 4(r29),r21 sw 8(r29),r21 jal _dstrtol nop ; not filled. add r3,r0,r1 sw (r29),r1 sw 4(r29),r12 jal _ditoa nop ; not filled. lhi r21,((LC47)>>16)&0xffff addui r21,r21,(LC47)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 sw 8(r29),r3 sw 12(r29),r12 jal _printf nop ; not filled. addi r29,r29,#16 j L386 nop ; not filled. L389: addi r21,r0,#0 sw -200(r30),r21 addi r29,r29,#-24 addi r8,r8,#4 addi r9,r9,#1 lw r21,(r8) sw (r29),r21 addi r1,r30,#-180 sw 4(r29),r1 addi r1,r30,#-184 sw 8(r29),r1 addi r1,r30,#-188 sw 12(r29),r1 addi r1,r30,#-192 sw 16(r29),r1 addi r1,r30,#-196 sw 20(r29),r1 jal _ProcessGetCodeInfo nop ; not filled. add r10,r0,r1 lhi r21,((LC27)>>16)&0xffff addui r21,r21,(LC27)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 lw r21,-180(r30) sw 8(r29),r21 jal _printf nop ; not filled. lhi r21,((LC28)>>16)&0xffff addui r21,r21,(LC28)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 lw r21,-184(r30) sw 8(r29),r21 lw r21,-188(r30) sw 12(r29),r21 jal _printf nop ; not filled. lhi r21,((LC29)>>16)&0xffff addui r21,r21,(LC29)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 lw r21,-192(r30) sw 8(r29),r21 lw r21,-196(r30) sw 12(r29),r21 jal _printf nop ; not filled. addi r29,r29,#24 lhi r11,((_buf65+3)>>16)&0xffff addui r11,r11,(_buf65+3)&0xffff L390: addi r29,r29,#-16 sw (r29),r10 lhi r21,((_buf65)>>16)&0xffff addui r21,r21,(_buf65)&0xffff sw 4(r29),r21 sw 8(r29),r13 addi r21,r0,#200 sw 12(r29),r21 jal _ProcessGetFromFile nop ; not filled. add r3,r0,r1 addi r29,r29,#16 sgti r1,r3,#0 beqz r1,L391 nop ; not filled. addi r2,r0,#0 slt r1,r2,r3 beqz r1,L390 nop ; not filled. add r7,r0,r11 add r6,r0,r17 add r5,r0,r18 add r4,r0,r15 L396: addi r29,r29,#-24 lhi r21,((LC48)>>16)&0xffff addui r21,r21,(LC48)&0xffff sw (r29),r21 lw r1,-200(r30) add r1,r1,r2 sub r1,r1,r3 sw 4(r29),r1 lbu r1,(r4) sw 8(r29),r1 lbu r1,(r5) sw 12(r29),r1 lbu r1,(r6) sw 16(r29),r1 lbu r1,(r7) sw 20(r29),r1 jal _printf nop ; not filled. addi r29,r29,#24 addi r7,r7,#4 addi r6,r6,#4 addi r5,r5,#4 addi r4,r4,#4 addi r2,r2,#4 slt r1,r2,r3 bnez r1,L396 nop ; not filled. j L390 nop ; not filled. L391: addi r29,r29,#-8 sw (r29),r10 jal _close nop ; not filled. j L436 nop ; not filled. L398: addi r8,r8,#4 addi r9,r9,#1 lw r16,(r8) add r19,r0,r9 j L386 nop ; not filled. L399: addi r29,r29,#-8 lhi r21,((LC49)>>16)&0xffff addui r21,r21,(LC49)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 jal _printf nop ; not filled. L436: addi r29,r29,#8 L386: snei r1,r16,#0 bnez r1,L382 nop ; not filled. L383: addi r8,r8,#4 addi r9,r9,#1 slt r1,r9,r14 bnez r1,L384 nop ; not filled. L382: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L405 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L404 nop ; not filled. L405: addi r29,r29,#-8 lhi r21,((LC50)>>16)&0xffff addui r21,r21,(LC50)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L404: jal _QueueModuleInit nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L407 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L406 nop ; not filled. L407: addi r29,r29,#-8 lhi r21,((LC51)>>16)&0xffff addui r21,r21,(LC51)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L406: jal _MemoryModuleInit nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L409 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L408 nop ; not filled. L409: addi r29,r29,#-8 lhi r21,((LC52)>>16)&0xffff addui r21,r21,(LC52)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L408: jal _ProcessModuleInit nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L411 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L410 nop ; not filled. L411: addi r29,r29,#-8 lhi r21,((LC53)>>16)&0xffff addui r21,r21,(LC53)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L410: jal _ShareModuleInit nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L413 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L412 nop ; not filled. L413: addi r29,r29,#-8 lhi r21,((LC54)>>16)&0xffff addui r21,r21,(LC54)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L412: jal _SynchModuleInit nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L415 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L414 nop ; not filled. L415: addi r29,r29,#-8 lhi r21,((LC55)>>16)&0xffff addui r21,r21,(LC55)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L414: jal _KbdModuleInit nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L417 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L416 nop ; not filled. L417: addi r29,r29,#-8 lhi r21,((LC56)>>16)&0xffff addui r21,r21,(LC56)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L416: addi r2,r30,#-128 addi r3,r30,#-29 L421: addi r21,r0,(#0x61)&0xff sb (r2),r21 addi r2,r2,#1 sle r1,r2,r3 bnez r1,L421 nop ; not filled. addi r29,r29,#-8 lhi r21,((LC57)>>16)&0xffff addui r21,r21,(LC57)&0xffff sw (r29),r21 addi r21,r0,#2 sw 4(r29),r21 jal _FsOpen nop ; not filled. add r9,r0,r1 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L424 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L423 nop ; not filled. L424: addi r29,r29,#-8 lhi r21,((LC58)>>16)&0xffff addui r21,r21,(LC58)&0xffff sw (r29),r21 sw 4(r29),r9 jal _printf nop ; not filled. addi r29,r29,#8 L423: addi r29,r29,#-16 sw (r29),r9 addi r21,r0,#0 sw 4(r29),r21 sw 8(r29),r21 jal _FsSeek nop ; not filled. sw (r29),r9 addi r1,r30,#-128 sw 4(r29),r1 addi r21,r0,#80 sw 8(r29),r21 jal _FsWrite nop ; not filled. sw (r29),r9 jal _FsClose nop ; not filled. addi r29,r29,#16 snei r1,r16,#0 beqz r1,L425 nop ; not filled. add r9,r0,r19 slt r1,r19,r14 beqz r1,L427 nop ; not filled. addi r4,r30,#-8 slli r1,r9,#0x2 add r3,r1,r20 L431: sub r2,r9,r19 slei r1,r2,#10 beqz r1,L427 nop ; not filled. slli r1,r2,#0x2 add r1,r1,r4 lw r21,(r3) sw -168(r1),r21 addi r3,r3,#4 addi r9,r9,#1 slt r1,r9,r14 bnez r1,L431 nop ; not filled. L427: addi r29,r29,#-56 addi r21,r0,#0 sw (r29),r21 sw 4(r29),r21 lw r21,-176(r30) sw 8(r29),r21 lw r21,-172(r30) sw 12(r29),r21 lw r21,-168(r30) sw 16(r29),r21 lw r21,-164(r30) sw 20(r29),r21 lw r21,-160(r30) sw 24(r29),r21 lw r21,-156(r30) sw 28(r29),r21 lw r21,-152(r30) sw 32(r29),r21 lw r21,-148(r30) sw 36(r29),r21 lw r21,-144(r30) sw 40(r29),r21 lw r21,-140(r30) sw 44(r29),r21 lw r21,-136(r30) sw 48(r29),r21 lw r21,-132(r30) sw 52(r29),r21 jal _process_create nop ; not filled. addi r29,r29,#56 L425: jal _SysprocCreateProcesses nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L433 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L432 nop ; not filled. L433: addi r29,r29,#-8 lhi r21,((LC59)>>16)&0xffff addui r21,r21,(LC59)&0xffff sw (r29),r21 jal _printf nop ; not filled. addi r29,r29,#8 L432: addi r29,r29,#-8 lhi r3,((_processQuantum)>>16)&0xffff addui r3,r3,(_processQuantum)&0xffff lw r21,(r3) sw (r29),r21 jal _TimerSet nop ; not filled. lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L435 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L434 nop ; not filled. L435: addi r29,r29,#-8 lhi r21,((LC60)>>16)&0xffff addui r21,r21,(LC60)&0xffff sw (r29),r21 lw r1,(r3) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L434: jal _intrreturn nop ; not filled. jal _exitsim nop ; not filled. jal _exit nop .endproc _main .data .align 2 LC62: .word 0x00000000 ;; 0.0000000e+00 .text .align 2 .proc _MyFuncRetZero .global _MyFuncRetZero _MyFuncRetZero: ; Function 'MyFuncRetZero'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lhi r1,((LC62)>>16)&0xffff addui r1,r1,(LC62)&0xffff lf f0,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MyFuncRetZero .align 2 .proc _GetCurrentPid .global _GetCurrentPid _GetCurrentPid: ; Function 'GetCurrentPid'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) lhi r31,((_pcbs)>>16)&0xffff addui r31,r31,(_pcbs)&0xffff sub r2,r1,r31 lhi r1,#-23302 addui r1,r1,#20389 movi2fp f0,r2 movi2fp f1,r1 mult f0,f0,f1 movfp2i r1,f0 srai r1,r1,#0x2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _GetCurrentPid .align 2 .proc _findpid .global _findpid _findpid: ; Function 'findpid'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lhi r31,((_pcbs)>>16)&0xffff addui r31,r31,(_pcbs)&0xffff sub r2,r1,r31 lhi r1,#-23302 addui r1,r1,#20389 movi2fp f0,r2 movi2fp f1,r1 mult f0,f0,f1 movfp2i r1,f0 srai r1,r1,#0x2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _findpid .align 2 .proc _process_create .global _process_create _process_create: ; Function 'process_create'; 1000 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#1032 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 addi r2,r30,#8 addi r4,r0,#0 lw r1,(r2) snei r1,r1,#0 beqz r1,L445 nop ; not filled. addi r5,r30,#-1008 add r31,r0,r2 L447: addi r2,r0,#0 add r3,r4,r5 L448: lw r1,(r31) add r1,r1,r2 lb r1,(r1) sb (r3),r1 addi r2,r2,#1 addi r3,r3,#1 addi r4,r4,#1 lw r1,(r31) add r1,r2,r1 lbu r1,-1(r1) snei r1,r1,#0 bnez r1,L448 nop ; not filled. addi r31,r31,#4 lw r1,(r31) snei r1,r1,#0 bnez r1,L447 nop ; not filled. L445: addi r3,r30,#-1008 add r2,r3,r4 addi r1,r30,#-1007 add r1,r1,r4 addi r6,r0,(#0x0)&0xff sb (r1),r6 sb (r2),r6 addi r29,r29,#-24 addi r6,r0,#0 sw (r29),r6 sw 4(r29),r3 lw r6,(r30) sw 8(r29),r6 lw r6,4(r30) sw 12(r29),r6 lw r6,8(r30) sw 16(r29),r6 addi r6,r0,#1 sw 20(r29),r6 jal _ProcessFork nop ; not filled. addi r29,r29,#24 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _process_create .data .global _debugstr _debugstr: .space 200 .align 2 .global _currentPCB _currentPCB: .space 4 .align 2 _freepcbs: .space 12 .align 2 _runQueue: .space 12 .align 2 _waitQueue: .space 12 .align 2 _zombieQueue: .space 12 .align 2 _pcbs: .space 5760 .text .align 2 .proc _ProcessExit _ProcessExit: ; Function 'ProcessExit'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage jal _exit nop ; not filled. lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessExit

home/bshapir/cs314/project3/src/sysproc.o

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Process #\000" .align 2 LC1: .ascii "Running process %d (iteration %d)!\n\000" .text .align 2 .proc _doSomething _doSomething: ; Function 'doSomething'; 80 bytes of locals, 7 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#120 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r6,(r30) addi r1,r0,#10 movi2fp f0,r6 movi2fp f1,r1 div f0,f0,f1 movfp2i r2,f0 slli r1,r2,#0x2 add r1,r1,r2 slli r1,r1,#0x1 sub r7,r6,r1 slei r1,r6,#99 beqz r1,L52 nop ; not filled. addi r29,r29,#-8 slli r1,r7,#0x2 add r1,r1,r7 slli r1,r1,#0x2 lhi r8,((_mysems)>>16)&0xffff addui r8,r8,(_mysems)&0xffff add r1,r1,r8 sw (r29),r1 addi r8,r0,#1 sw 4(r29),r8 jal _SemInit nop ; not filled. addi r3,r0,#1 addi r29,r29,#8 addi r4,r30,#-48 addi r5,r30,#-88 add r2,r0,r6 L56: addi r29,r29,#-8 sw (r29),r4 lhi r8,((LC0)>>16)&0xffff addui r8,r8,(LC0)&0xffff sw 4(r29),r8 jal _dstrcpy nop ; not filled. sw (r29),r3 sw 4(r29),r5 jal _ditoa nop ; not filled. sw (r29),r4 sw 4(r29),r5 jal _dstrcat nop ; not filled. addi r29,r29,#-16 lhi r8,((_doSomething)>>16)&0xffff addui r8,r8,(_doSomething)&0xffff sw (r29),r8 slli r1,r2,#0x5 sub r1,r1,r2 slli r1,r1,#0x2 add r1,r1,r2 slli r1,r1,#0x3 add r1,r1,r6 sw 4(r29),r1 addi r8,r0,#0 sw 8(r29),r8 sw 12(r29),r8 sw 16(r29),r4 sw 20(r29),r8 jal _ProcessFork nop ; not filled. addi r29,r29,#24 add r2,r2,r6 addi r3,r3,#1 slei r1,r3,#6 bnez r1,L56 nop ; not filled. L52: addi r29,r29,#-8 slli r1,r7,#0x2 add r1,r1,r7 slli r1,r1,#0x2 lhi r8,((_mysems)>>16)&0xffff addui r8,r8,(_mysems)&0xffff add r1,r1,r8 sw (r29),r1 jal _SemWait nop ; not filled. addi r3,r0,#0 addi r29,r29,#8 slli r2,r6,#0x1 slt r1,r3,r2 beqz r1,L59 nop ; not filled. addi r5,r0,#1000 add r4,r0,r2 L61: movi2fp f0,r3 movi2fp f1,r5 div f0,f0,f1 movfp2i r2,f0 slli r1,r2,#0x5 sub r1,r1,r2 slli r1,r1,#0x2 add r1,r1,r2 slli r1,r1,#0x3 sne r1,r3,r1 bnez r1,L62 nop ; not filled. addi r29,r29,#-16 lhi r8,((LC1)>>16)&0xffff addui r8,r8,(LC1)&0xffff sw (r29),r8 sw 4(r29),r6 sw 8(r29),r3 jal _printf nop ; not filled. addi r29,r29,#16 L62: addi r3,r3,#1 slt r1,r3,r4 bnez r1,L61 nop ; not filled. L59: addi r29,r29,#-8 slli r1,r7,#0x2 add r1,r1,r7 slli r1,r1,#0x2 lhi r8,((_mysems)>>16)&0xffff addui r8,r8,(_mysems)&0xffff add r1,r1,r8 sw (r29),r1 jal _SemSignal nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _doSomething .data .align 2 LC2: .ascii "chasetail\000" .align 2 LC3: .ascii "Chasing tail %d.\n\000" .align 2 LC4: .ascii "Open of (%s,0x%x) returns 0x%x.\n\000" .align 2 LC5: .ascii "ChaseTail\000" .text .align 2 .proc _chaseTail _chaseTail: ; Function 'chaseTail'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r4,(r30) lhi r3,((LC2)>>16)&0xffff addui r3,r3,(LC2)&0xffff addi r29,r29,#-8 lhi r5,((LC3)>>16)&0xffff addui r5,r5,(LC3)&0xffff sw (r29),r5 sw 4(r29),r4 jal _printf nop ; not filled. sw (r29),r3 addi r2,r4,#8192 sw 4(r29),r2 jal _Open nop ; not filled. addi r29,r29,#-8 lhi r5,((LC4)>>16)&0xffff addui r5,r5,(LC4)&0xffff sw (r29),r5 sw 4(r29),r3 sw 8(r29),r2 sw 12(r29),r1 jal _printf nop ; not filled. addi r29,r29,#16 slei r1,r4,#39 beqz r1,L67 nop ; not filled. addi r29,r29,#-24 lhi r5,((_chaseTail)>>16)&0xffff addui r5,r5,(_chaseTail)&0xffff sw (r29),r5 addi r1,r4,#1 sw 4(r29),r1 addi r5,r0,#0 sw 8(r29),r5 sw 12(r29),r5 lhi r5,((LC5)>>16)&0xffff addui r5,r5,(LC5)&0xffff sw 16(r29),r5 addi r5,r0,#0 sw 20(r29),r5 jal _ProcessFork nop ; not filled. addi r29,r29,#24 L67: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _chaseTail .data .align 2 LC6: .ascii "%d \000" .align 2 LC7: .ascii "Random number %02i is 0x%08x.\n\000" .text .align 2 .proc _SysprocCreateProcesses .global _SysprocCreateProcesses _SysprocCreateProcesses: ; Function 'SysprocCreateProcesses'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lhi r2,((_mysems)>>16)&0xffff addui r2,r2,(_mysems)&0xffff addi r3,r2,#180 L90: addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#1 sw 4(r29),r4 jal _SemInit nop ; not filled. addi r29,r29,#8 addi r2,r2,#20 sle r1,r2,r3 bnez r1,L90 nop ; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SysprocCreateProcesses .data .align 2 _mysems: .space 200

home/bshapir/cs314/project3/src/share_memory.api

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Entering ProcessModuleInit\n\000" .align 2 LC1: .ascii "Leaving ProcessModuleInit\n\000" .text .align 2 .proc _ShareModuleInit .global _ShareModuleInit _ShareModuleInit: ; Function 'ShareModuleInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#112 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L64 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L63 nop ; not filled. L64: addi r29,r29,#-8 lhi r5,((LC0)>>16)&0xffff addui r5,r5,(LC0)&0xffff sw (r29),r5 jal _printf nop ; not filled. addi r29,r29,#8 L63: lhi r2,((_spages)>>16)&0xffff addui r2,r2,(_spages)&0xffff addi r4,r2,#248 L68: addi r5,r0,#0 sw (r2),r5 add r31,r0,r2 add r3,r0,r2 L72: addi r1,r31,#4 addi r5,r0,#0 sw (r1),r5 add r31,r0,r1 sle r1,r31,r3 bnez r1,L72 nop ; not filled. addi r2,r2,#8 sle r1,r2,r4 bnez r1,L68 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#112 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L76 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L75 nop ; not filled. L76: addi r29,r29,#-8 lhi r5,((LC1)>>16)&0xffff addui r5,r5,(LC1)&0xffff sw (r29),r5 jal _printf nop ; not filled. addi r29,r29,#8 L75: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ShareModuleInit .data .align 2 LC2: .ascii "FATAL: couldn\'t allocate memory - no free pages!\n\000" .text .align 2 .proc _MemoryCreateSharedPage .global _MemoryCreateSharedPage _MemoryCreateSharedPage: ; Function 'MemoryCreateSharedPage'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r6,(r30) addi r29,r29,#-8 sw (r29),r6 jal _findpid nop ; not filled. add r5,r0,r1 srli r8,r5,#0x5 slli r1,r8,#0x5 sub r5,r5,r1 addi r29,r29,#8 addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop ; not filled. add r7,r0,r1 addi r29,r29,#8 lw r1,160(r6) seqi r1,r1,#16 bnez r1,L92 nop ; not filled. addi r3,r0,#0 lhi r9,((_spages)>>16)&0xffff addui r9,r9,(_spages)&0xffff add r2,r0,r9 L84: lw r1,(r2) snei r1,r1,#0 beqz r1,L82 nop ; not filled. addi r2,r2,#8 addi r3,r3,#1 slei r1,r3,#31 bnez r1,L84 nop ; not filled. L82: seqi r1,r3,#32 beqz r1,L87 nop ; not filled. L92: addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L91 nop ; not filled. L87: jal _MemoryAllocPage nop ; not filled. add r4,r0,r1 snei r1,r4,#0 bnez r1,L89 nop ; not filled. addi r29,r29,#-8 lhi r10,((LC2)>>16)&0xffff addui r10,r10,(LC2)&0xffff sw (r29),r10 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L89: slli r1,r3,#0x3 add r2,r1,r9 sw (r2),r4 slli r1,r8,#0x2 add r2,r1,r2 addi r1,r0,#1 sll r1,r1,r5 sw 4(r2),r1 addi r29,r29,#-8 sw (r29),r4 jal _MemorySetupPte nop ; not filled. lw r2,160(r6) slli r2,r2,#0x2 add r2,r2,r6 sw 96(r2),r1 lw r1,160(r6) addi r2,r1,#1 sw 160(r6),r2 lw r1,8(r6) addui r1,r1,#65164 sw 316(r1),r2 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r4 L91: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCreateSharedPage .align 2 .proc _mmap .global _mmap _mmap: ; Function 'mmap'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r6,(r30) lw r7,4(r30) snei r1,r7,#0 bnez r1,L94 nop ; not filled. addi r1,r0,#0 j L115 nop ; not filled. L94: lw r1,8(r6) addui r9,r1,#65164 addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop ; not filled. add r8,r0,r1 addi r29,r29,#8 addi r3,r0,#0 lhi r2,((_spages)>>16)&0xffff addui r2,r2,(_spages)&0xffff L99: lw r1,(r2) seq r1,r1,r7 bnez r1,L97 nop ; not filled. addi r2,r2,#8 addi r3,r3,#1 sleui r1,r3,#31 bnez r1,L99 nop ; not filled. L97: seqi r1,r3,#32 bnez r1,L116 nop ; not filled. slli r31,r7,#0x10 addi r5,r0,#0 lw r4,160(r6) slt r1,r5,r4 beqz r1,L105 nop ; not filled. add r2,r0,r6 L107: lw r1,96(r2) addi r10,r0,#-8 and r1,r1,r10 seq r1,r1,r31 bnez r1,L105 nop ; not filled. addi r2,r2,#4 addi r5,r5,#1 slt r1,r5,r4 bnez r1,L107 nop ; not filled. L105: lw r2,160(r6) seq r1,r5,r2 beqz r1,L110 nop ; not filled. slei r1,r2,#15 bnez r1,L111 nop ; not filled. L116: addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L115 nop ; not filled. L111: addi r29,r29,#-8 sw (r29),r7 jal _MemorySetupPte nop ; not filled. lw r2,160(r6) slli r2,r2,#0x2 add r2,r2,r6 sw 96(r2),r1 lw r1,160(r6) addi r1,r1,#1 sw 160(r6),r1 sw 316(r9),r1 addi r29,r29,#8 L110: addi r29,r29,#-8 sw (r29),r6 jal _findpid nop ; not filled. add r2,r0,r1 srli r4,r2,#0x5 slli r1,r4,#0x5 sub r2,r2,r1 slli r3,r3,#0x3 slli r1,r4,#0x2 add r1,r3,r1 lhi r10,((_spages+4)>>16)&0xffff addui r10,r10,(_spages+4)&0xffff add r3,r1,r10 addi r1,r0,#1 sll r2,r1,r2 lw r1,(r3) or r1,r1,r2 sw (r3),r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop ; not filled. addi r29,r29,#8 slli r1,r5,#0x10 L115: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _mmap .data .align 2 LC3: .ascii "FATAL: Attempted to free memory page 0\n\000" .text .align 2 .proc _MemoryFreeSharedPte .global _MemoryFreeSharedPte _MemoryFreeSharedPte: ; Function 'MemoryFreeSharedPte'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r8,(r30) lw r2,4(r30) addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop ; not filled. add r9,r0,r1 addi r29,r29,#8 slli r1,r2,#0x2 add r1,r1,r8 lhu r7,96(r1) snei r1,r7,#0 bnez r1,L119 nop ; not filled. addi r29,r29,#-8 lhi r10,((LC3)>>16)&0xffff addui r10,r10,(LC3)&0xffff sw (r29),r10 jal _printf nop ; not filled. jal _exitsim nop ; not filled. addi r29,r29,#8 L119: addi r4,r0,#0 lhi r5,((_spages)>>16)&0xffff addui r5,r5,(_spages)&0xffff add r2,r0,r5 L123: lw r1,(r2) seq r1,r1,r7 bnez r1,L121 nop ; not filled. addi r2,r2,#8 addi r4,r4,#1 slei r1,r4,#31 bnez r1,L123 nop ; not filled. L121: seqi r1,r4,#32 beqz r1,L126 nop ; not filled. addi r29,r29,#-8 sw (r29),r9 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#-1 j L141 nop ; not filled. L126: addi r29,r29,#-8 sw (r29),r8 jal _findpid nop ; not filled. add r2,r0,r1 srli r3,r1,#0x5 slli r1,r3,#0x5 sub r2,r2,r1 slli r1,r4,#0x3 add r4,r1,r5 slli r1,r3,#0x2 add r1,r1,r4 addi r3,r1,#4 addi r1,r0,#1 sll r1,r1,r2 addi r10,r0,#-1 xor r2,r1,r10 lw r1,(r3) and r1,r1,r2 sw (r3),r1 addi r29,r29,#8 addi r6,r0,#0 addi r5,r0,#0 L132: addi r3,r0,#1 addi r2,r0,#0 lw r31,4(r4) L136: and r1,r31,r3 snei r1,r1,#0 add r6,r6,r1 slli r3,r3,#0x1 addi r2,r2,#1 slei r1,r2,#31 bnez r1,L136 nop ; not filled. addi r4,r4,#4 addi r5,r5,#1 slei r1,r5,#0 bnez r1,L132 nop ; not filled. lw r1,160(r8) addi r2,r1,#-1 sw 160(r8),r2 lw r1,8(r8) addui r1,r1,#65164 sw 316(r1),r2 snei r1,r6,#0 bnez r1,L139 nop ; not filled. addi r29,r29,#-8 sw (r29),r7 jal _MemoryFreePage nop ; not filled. addi r29,r29,#8 L139: addi r29,r29,#-8 sw (r29),r9 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r6 L141: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreeSharedPte .data .align 2 _spages: .space 256

home/bshapir/cs314/project3/src/misc.o

; Compiled by GCC
.text
.align 2
.proc _isspace
.global _isspace
_isspace:
; Function 'isspace'; 0 bytes of locals, 1 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
lb r2,3(r30)
addi r31,r0,#0
andi r1,r2,#0x00ff
seqi r1,r1,#32
bnez r1,L6
nop ; not filled.
addi r1,r2,#-9
andi r1,r1,#0x00ff
sleui r1,r1,#1
beqz r1,L5
nop ; not filled.
L6:
addi r31,r0,#1
L5:
add r1,r0,r31
lw r2,0(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _isspace
.align 2
.proc _isxdigit
.global _isxdigit
_isxdigit:
; Function 'isxdigit'; 0 bytes of locals, 1 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
lb r31,3(r30)
addi r2,r0,#0
addi r1,r31,#-48
andi r1,r1,#0x00ff
sleui r1,r1,#9
bnez r1,L12
nop ; not filled.
addi r1,r31,#-97
andi r1,r1,#0x00ff
sleui r1,r1,#5
bnez r1,L12
nop ; not filled.
andi r1,r31,#0x00ff
snei r1,r1,#65
bnez r1,L11
nop ; not filled.
L12:
addi r2,r0,#1
L11:
add r1,r0,r2
lw r2,0(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _isxdigit
.align 2
.proc _dstrcpy
.global _dstrcpy
_dstrcpy:
; Function 'dstrcpy'; 0 bytes of locals, 2 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
lw r31,(r30)
lw r2,4(r30)
add r3,r0,r31
L19:
lb r1,(r2)
sb (r31),r1
addi r2,r2,#1
addi r31,r31,#1
andi r1,r1,#0x00ff
snei r1,r1,#0
bnez r1,L19
nop ; not filled.
add r1,r0,r3
lw r2,0(r29)
lw r3,4(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrcpy
.align 2
.proc _dstrncpy
.global _dstrncpy
_dstrncpy:
; Function 'dstrncpy'; 0 bytes of locals, 3 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#24 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
lw r2,(r30)
lw r3,4(r30)
lw r31,8(r30)
add r4,r0,r2
j L37
nop ; not filled.
L34:
lb r1,(r3)
sb (r2),r1
addi r3,r3,#1
addi r2,r2,#1
andi r1,r1,#0x00ff
snei r1,r1,#0
beqz r1,L32
nop ; not filled.
L37:
add r1,r0,r31
addi r31,r31,#-1
slei r1,r1,#0
beqz r1,L34
nop ; not filled.
L32:
add r1,r0,r4
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrncpy
.align 2
.proc _dstrcat
.global _dstrcat
_dstrcat:
; Function 'dstrcat'; 0 bytes of locals, 2 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
lw r31,(r30)
add r3,r0,r31
lbu r1,(r3)
snei r1,r1,#0
beqz r1,L50
nop ; not filled.
L51:
addi r31,r31,#1
lbu r1,(r31)
snei r1,r1,#0
bnez r1,L51
nop ; not filled.
L50:
add r2,r0,r31
lw r31,4(r30)
L54:
lb r1,(r31)
sb (r2),r1
addi r31,r31,#1
addi r2,r2,#1
andi r1,r1,#0x00ff
snei r1,r1,#0
bnez r1,L54
nop ; not filled.
add r1,r0,r3
lw r2,0(r29)
lw r3,4(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrcat
.align 2
.proc _dstrncmp
.global _dstrncmp
_dstrncmp:
; Function 'dstrncmp'; 0 bytes of locals, 4 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#24 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
sw 12(r29),r5
lw r3,(r30)
lw r4,4(r30)
lw r5,8(r30)
addi r2,r0,#0
slt r1,r2,r5
beqz r1,L73
nop ; not filled.
L75:
lbu r31,(r4)
snei r1,r31,#0
beqz r1,L86
nop ; not filled.
lbu r1,(r3)
sne r1,r1,r31
bnez r1,L73
nop ; not filled.
addi r3,r3,#1
addi r4,r4,#1
addi r2,r2,#1
slt r1,r2,r5
bnez r1,L75
nop ; not filled.
L73:
seq r1,r2,r5
beqz r1,L80
nop ; not filled.
L86:
addi r1,r0,#0
j L84
nop ; not filled.
L80:
lbu r31,(r3)
lbu r3,(r4)
sub r1,r31,r3
sgei r1,r1,#0
addi r2,r0,#-1
beqz r1,L82
nop ; not filled.
sne r2,r31,r3
L82:
add r1,r0,r2
L84:
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r5,12(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrncmp
.align 2
.proc _dstrlen
.global _dstrlen
_dstrlen:
; Function 'dstrlen'; 0 bytes of locals, 1 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
lw r31,(r30)
addi r2,r0,#0
j L97
nop ; not filled.
L95:
addi r2,r2,#1
L97:
lbu r1,(r31)
addi r31,r31,#1
snei r1,r1,#0
bnez r1,L95
nop ; not filled.
add r1,r0,r2
lw r2,0(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrlen
.align 2
.proc _dstrstr
.global _dstrstr
_dstrstr:
; Function 'dstrstr'; 0 bytes of locals, 6 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#32 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
sw 12(r29),r5
sw 16(r29),r6
sw 20(r29),r7
lw r5,(r30)
lw r7,4(r30)
addi r3,r0,#0
lbu r1,(r7)
addi r2,r7,#1
snei r1,r1,#0
beqz r1,L125
nop ; not filled.
L126:
addi r3,r3,#1
lbu r1,(r2)
addi r2,r2,#1
snei r1,r1,#0
bnez r1,L126
nop ; not filled.
L125:
add r6,r0,r3
j L149
nop ; not filled.
L130:
add r3,r0,r5
add r4,r0,r7
addi r2,r0,#0
slt r1,r2,r6
beqz r1,L134
nop ; not filled.
L136:
lbu r31,(r4)
snei r1,r31,#0
beqz r1,L150
nop ; not filled.
lbu r1,(r3)
sne r1,r1,r31
bnez r1,L134
nop ; not filled.
addi r3,r3,#1
addi r4,r4,#1
addi r2,r2,#1
slt r1,r2,r6
bnez r1,L136
nop ; not filled.
L134:
seq r1,r2,r6
beqz r1,L141
nop ; not filled.
L150:
addi r1,r0,#0
j L132
nop ; not filled.
L141:
lbu r3,(r3)
lbu r2,(r4)
sub r1,r3,r2
sgei r1,r1,#0
addi r31,r0,#-1
beqz r1,L143
nop ; not filled.
sne r31,r3,r2
L143:
add r1,r0,r31
L132:
snei r1,r1,#0
bnez r1,L131
nop ; not filled.
add r1,r0,r5
j L146
nop ; not filled.
L131:
addi r5,r5,#1
L149:
lbu r1,(r5)
snei r1,r1,#0
bnez r1,L130
nop ; not filled.
addi r1,r0,#0
L146:
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r5,12(r29)
lw r6,16(r29)
lw r7,20(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrstr
.align 2
.proc _dmindex
.global _dmindex
_dmindex:
; Function 'dmindex'; 0 bytes of locals, 5 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#32 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
sw 12(r29),r5
sw 16(r29),r6
lw r4,(r30)
lw r6,4(r30)
lbu r1,(r4)
snei r1,r1,#0
beqz r1,L164
nop ; not filled.
add r5,r0,r1
L165:
add r2,r0,r6
lb r31,(r6)
andi r1,r31,#0x00ff
snei r1,r1,#0
beqz r1,L163
nop ; not filled.
lbu r3,(r4)
L169:
andi r1,r31,#0x00ff
seq r1,r3,r1
beqz r1,L168
nop ; not filled.
add r1,r0,r4
j L173
nop ; not filled.
L168:
addi r2,r2,#1
lb r31,(r2)
andi r1,r31,#0x00ff
snei r1,r1,#0
bnez r1,L169
nop ; not filled.
L163:
bnez r5,L165
nop ; not filled.
L164:
addi r1,r0,#0
L173:
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r5,12(r29)
lw r6,16(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dmindex
.align 2
.proc _dindex
.global _dindex
_dindex:
; Function 'dindex'; 0 bytes of locals, 2 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
lw r2,(r30)
lw r3,4(r30)
j L187
nop ; not filled.
L183:
andi r1,r31,#0x00ff
seq r1,r1,r3
beqz r1,L184
nop ; not filled.
add r1,r0,r2
j L186
nop ; not filled.
L184:
addi r2,r2,#1
L187:
lb r31,(r2)
andi r1,r31,#0x00ff
snei r1,r1,#0
bnez r1,L183
nop ; not filled.
addi r1,r0,#0
L186:
lw r2,0(r29)
lw r3,4(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dindex
.align 2
.proc _ditoa
.global _ditoa
_ditoa:
; Function 'ditoa'; 0 bytes of locals, 5 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#32 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
sw 12(r29),r5
sw 16(r29),r6
lw r3,(r30)
lw r4,4(r30)
slti r1,r3,#0
beqz r1,L203
nop ; not filled.
addi r6,r0,(#0x2d)&0xff
j L216
nop ; not filled.
L203:
snei r1,r3,#0
bnez r1,L205
nop ; not filled.
addi r6,r0,(#0x30)&0xff
L216:
sb (r4),r6
addi r4,r4,#1
j L204
nop ; not filled.
L205:
addi r31,r0,#1
sle r1,r31,r3
beqz r1,L208
nop ; not filled.
L209:
slli r1,r31,#0x2
add r1,r1,r31
slli r31,r1,#0x1
sle r1,r31,r3
bnez r1,L209
nop ; not filled.
L208:
addi r5,r0,#10
L212:
movi2fp f0,r31
movi2fp f1,r5
div f0,f0,f1
movfp2i r31,f0
movi2fp f0,r3
movi2fp f1,r31
div f0,f0,f1
movfp2i r2,f0
addi r1,r2,#48
sb (r4),r1
addi r4,r4,#1
movi2fp f0,r2
movi2fp f1,r31
mult f0,f0,f1
movfp2i r1,f0
sub r3,r3,r1
sgti r1,r31,#1
bnez r1,L212
nop ; not filled.
L204:
addi r6,r0,(#0x0)&0xff
sb (r4),r6
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r5,12(r29)
lw r6,16(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _ditoa
.align 2
.proc _dstrtol
.global _dstrtol
_dstrtol:
; Function 'dstrtol'; 0 bytes of locals, 5 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#32 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
sw 12(r29),r5
sw 16(r29),r6
lw r2,(r30)
lw r5,4(r30)
lw r4,8(r30)
addi r3,r0,#0
j L247
nop ; not filled.
L220:
addi r2,r2,#1
L247:
lb r31,(r2)
andi r1,r31,#0x00ff
seqi r1,r1,#32
bnez r1,L220
nop ; not filled.
addi r1,r31,#-9
andi r1,r1,#0x00ff
sleui r1,r1,#1
bnez r1,L220
nop ; not filled.
snei r1,r5,#0
beqz r1,L222
nop ; not filled.
sw (r5),r2
L222:
lbu r31,(r2)
snei r1,r31,#0
beqz r1,L248
nop ; not filled.
seqi r1,r31,#45
beqz r1,L224
nop ; not filled.
addi r6,r0,#-1
addi r2,r2,#1
j L225
nop ; not filled.
L224:
addi r6,r0,#1
L225:
snei r1,r4,#0
bnez r1,L226
nop ; not filled.
lbu r1,(r2)
seqi r1,r1,#48
beqz r1,L227
nop ; not filled.
addi r2,r2,#1
lbu r31,(r2)
seqi r1,r31,#120
bnez r1,L229
nop ; not filled.
seqi r1,r31,#88
beqz r1,L228
nop ; not filled.
L229:
addi r4,r0,#16
addi r2,r2,#1
j L226
nop ; not filled.
L228:
addi r4,r0,#8
j L226
nop ; not filled.
L227:
addi r4,r0,#10
L226:
addi r1,r4,#-1
sgtui r1,r1,#15
beqz r1,L233
nop ; not filled.
L248:
add r1,r0,r3
j L245
nop ; not filled.
L233:
lb r31,(r2)
addi r1,r31,#-48
andi r1,r1,#0x00ff
sleui r1,r1,#9
beqz r1,L236
nop ; not filled.
andi r1,r31,#0x00ff
addi r1,r1,#-48
j L237
nop ; not filled.
L236:
addi r1,r31,#-97
andi r1,r1,#0x00ff
sleui r1,r1,#25
beqz r1,L238
nop ; not filled.
andi r1,r31,#0x00ff
addi r1,r1,#-87
j L237
nop ; not filled.
L238:
addi r1,r31,#-65
andi r1,r1,#0x00ff
sleui r1,r1,#25
beqz r1,L240
nop ; not filled.
andi r1,r31,#0x00ff
addi r1,r1,#-55
j L237
nop ; not filled.
L240:
addi r1,r0,#1000
L237:
slt r31,r1,r4
beqz r31,L246
nop ; not filled.
movi2fp f0,r3
movi2fp f1,r4
mult f0,f0,f1
movfp2i r3,f0
add r3,r3,r1
addi r2,r2,#1
bnez r31,L233
nop ; not filled.
L246:
snei r1,r5,#0
beqz r1,L244
nop ; not filled.
sw (r5),r2
L244:
movi2fp f0,r3
movi2fp f1,r6
mult f0,f0,f1
movfp2i r1,f0
L245:
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r5,12(r29)
lw r6,16(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _dstrtol
.align 2
.proc _bcopy
.global _bcopy
_bcopy:
; Function 'bcopy'; 0 bytes of locals, 3 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#24 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
sw 8(r29),r4
lw r3,(r30)
lw r2,4(r30)
lw r31,8(r30)
j L259
nop ; not filled.
L257:
lb r4,(r3)
sb (r2),r4
addi r3,r3,#1
addi r2,r2,#1
L259:
add r1,r0,r31
addi r31,r31,#-1
sgti r1,r1,#0
bnez r1,L257
nop ; not filled.
lw r2,0(r29)
lw r3,4(r29)
lw r4,8(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _bcopy
.align 2
.proc _bzero
.global _bzero
_bzero:
; Function 'bzero'; 0 bytes of locals, 2 regs to save.
sw -4(r29),r30 ; push fp
add r30,r0,r29 ; fp = sp
sw -8(r29),r31 ; push ret addr
subui r29,r29,#16 ; alloc local storage
sw 0(r29),r2
sw 4(r29),r3
lw r2,(r30)
lw r31,4(r30)
j L270
nop ; not filled.
L268:
addi r3,r0,(#0x0)&0xff
sb (r2),r3
addi r2,r2,#1
L270:
add r1,r0,r31
addi r31,r31,#-1
sgti r1,r1,#0
bnez r1,L268
nop ; not filled.
lw r2,0(r29)
lw r3,4(r29)
lw r31,-8(r30)
add r29,r0,r30
lw r30,-4(r30)
jr r31
nop
.endproc _bzero

home/bshapir/cs314/project3/src/synch.o

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Entering SynchModuleInit\n\000" .align 2 LC1: .ascii "Leaving SynchModuleInit\n\000" .text .align 2 .proc _SynchModuleInit .global _SynchModuleInit _SynchModuleInit: ; Function 'SynchModuleInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r3,r0,#112 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L53 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r3,r0,#43 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L52 nop ; not filled. L53: addi r29,r29,#-8 lhi r3,((LC0)>>16)&0xffff addui r3,r3,(LC0)&0xffff sw (r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L52: lhi r31,((_sems)>>16)&0xffff addui r31,r31,(_sems)&0xffff addi r2,r31,#1260 L57: addi r3,r0,#0 sw 16(r31),r3 addi r31,r31,#20 sle r1,r31,r2 bnez r1,L57 nop ; not filled. lhi r31,((_locks)>>16)&0xffff addui r31,r31,(_locks)&0xffff addi r2,r31,#1764 L62: addi r3,r0,#0 sw 24(r31),r3 addi r3,r0,#-1 sw 20(r31),r3 addi r31,r31,#28 sle r1,r31,r2 bnez r1,L62 nop ; not filled. addi r2,r0,#0 lhi r31,((_conds)>>16)&0xffff addui r31,r31,(_conds)&0xffff L67: addi r3,r0,#0 sw 28(r31),r3 sw 24(r31),r3 addi r31,r31,#32 addi r2,r2,#1 slei r1,r2,#31 bnez r1,L67 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r3,r0,#112 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L70 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r3,r0,#43 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L69 nop ; not filled. L70: addi r29,r29,#-8 lhi r3,((LC1)>>16)&0xffff addui r3,r3,(LC1)&0xffff sw (r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L69: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SynchModuleInit .align 2 .proc _SemInit .global _SemInit _SemInit: ; Function 'SemInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. sw 12(r2),r3 addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemInit .align 2 .proc _SemCreate .global _SemCreate _SemCreate: ; Function 'SemCreate'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r3,r0,#0 lhi r31,((_sems)>>16)&0xffff addui r31,r31,(_sems)&0xffff L89: add r2,r0,r31 lw r1,16(r31) snei r1,r1,#0 beqz r1,L96 nop ; not filled. addi r31,r2,#20 addi r3,r3,#1 slei r1,r3,#63 bnez r1,L89 nop ; not filled. L87: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 seqi r1,r3,#64 bnez r1,L93 nop ; not filled. slli r1,r3,#0x2 add r1,r1,r3 slli r1,r1,#0x2 lhi r5,((_sems)>>16)&0xffff addui r5,r5,(_sems)&0xffff add r2,r1,r5 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. lw r5,(r30) sw 12(r2),r5 addi r29,r29,#8 add r1,r0,r3 j L95 nop ; not filled. L96: addi r5,r0,#1 sw 16(r31),r5 j L87 nop ; not filled. L93: addi r1,r0,#-1 L95: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemCreate .data .align 2 LC2: .ascii "Old interrupt value was 0x%x.\n\000" .align 2 LC3: .ascii "Proc 0x%x waiting on sem 0x%x, count=%d.\n\000" .align 2 LC4: .ascii "Suspending current proc (0x%x).\n\000" .text .align 2 .proc _SemWait .global _SemWait _SemWait: ; Function 'SemWait'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r4,(r30) addi r29,r29,#-8 addi r7,r0,#15 sw (r29),r7 jal _SetIntrs nop ; not filled. add r6,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#73 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L100 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L99 nop ; not filled. L100: addi r29,r29,#-8 lhi r7,((LC2)>>16)&0xffff addui r7,r7,(LC2)&0xffff sw (r29),r7 sw 4(r29),r6 jal _printf nop ; not filled. addi r29,r29,#8 L99: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#115 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L102 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L101 nop ; not filled. L102: addi r29,r29,#-16 lhi r7,((LC3)>>16)&0xffff addui r7,r7,(LC3)&0xffff sw (r29),r7 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 sw 8(r29),r4 lw r7,12(r4) sw 12(r29),r7 jal _printf nop ; not filled. addi r29,r29,#16 L101: lw r1,12(r4) addi r1,r1,#-1 sw 12(r4),r1 slti r1,r1,#0 beqz r1,L103 nop ; not filled. jal _QueueAllocLink nop ; not filled. add r2,r0,r1 lhi r5,((_currentPCB)>>16)&0xffff addui r5,r5,(_currentPCB)&0xffff lw r1,(r5) addi r7,r0,#0 sw (r2),r7 sw 12(r2),r1 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r7,r0,#115 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L106 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L105 nop ; not filled. L106: addi r29,r29,#-8 lhi r7,((LC4)>>16)&0xffff addui r7,r7,(LC4)&0xffff sw (r29),r7 lw r1,(r5) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L105: lw r1,4(r4) sw 8(r2),r4 sw 4(r2),r1 lw r7,(r1) sw (r2),r7 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r4) addi r1,r1,#1 sw 8(r4),r1 jal _ProcessSleep nop ; not filled. L103: addi r29,r29,#-8 sw (r29),r6 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemWait .align 2 .proc _SemHandleWait .global _SemHandleWait _SemHandleWait: ; Function 'SemHandleWait'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r31,(r30) sleui r1,r31,#63 beqz r1,L116 nop ; not filled. slli r1,r31,#0x2 add r1,r1,r31 slli r1,r1,#0x2 lhi r2,((_sems)>>16)&0xffff addui r2,r2,(_sems)&0xffff add r31,r1,r2 lw r1,16(r31) snei r1,r1,#0 beqz r1,L117 nop ; not filled. addi r29,r29,#-8 sw (r29),r31 jal _SemWait nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L115 nop ; not filled. L117: addi r1,r0,#1 j L115 nop ; not filled. L116: addi r1,r0,#1 L115: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemHandleWait .data .align 2 LC5: .ascii "Signalling on sem 0x%x, count=%d.\n\000" .align 2 LC6: .ascii "Waking up PCB 0x%x.\n\000" .text .align 2 .proc _SemSignal .global _SemSignal _SemSignal: ; Function 'SemSignal'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r5,r0,#115 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L123 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L122 nop ; not filled. L123: addi r29,r29,#-16 lhi r5,((LC5)>>16)&0xffff addui r5,r5,(LC5)&0xffff sw (r29),r5 sw 4(r29),r2 lw r5,12(r2) sw 8(r29),r5 jal _printf nop ; not filled. addi r29,r29,#16 L122: lw r1,12(r2) addi r1,r1,#1 sw 12(r2),r1 slei r1,r1,#0 beqz r1,L124 nop ; not filled. lw r3,(r2) lw r1,8(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L127 nop ; not filled. lw r1,4(r3) lw r5,(r3) sw (r1),r5 lw r1,(r3) lw r5,4(r3) sw 4(r1),r5 lw r2,8(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L127: addi r5,r0,#0 sw (r3),r5 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#115 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L129 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L128 nop ; not filled. L129: addi r29,r29,#-8 lhi r5,((LC6)>>16)&0xffff addui r5,r5,(LC6)&0xffff sw (r29),r5 lw r1,12(r3) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L128: addi r29,r29,#-8 lw r5,12(r3) sw (r29),r5 jal _ProcessWakeup nop ; not filled. sw (r29),r3 jal _QueueFreeLink nop ; not filled. addi r29,r29,#8 L124: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemSignal .align 2 .proc _SemHandleSignal .global _SemHandleSignal _SemHandleSignal: ; Function 'SemHandleSignal'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r31,(r30) sleui r1,r31,#63 beqz r1,L136 nop ; not filled. slli r1,r31,#0x2 add r1,r1,r31 slli r1,r1,#0x2 lhi r2,((_sems)>>16)&0xffff addui r2,r2,(_sems)&0xffff add r31,r1,r2 lw r1,16(r31) snei r1,r1,#0 beqz r1,L137 nop ; not filled. addi r29,r29,#-8 sw (r29),r31 jal _SemSignal nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L135 nop ; not filled. L137: addi r1,r0,#1 j L135 nop ; not filled. L136: addi r1,r0,#1 L135: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemHandleSignal .align 2 .proc _LockInit .global _LockInit _LockInit: ; Function 'LockInit'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) addi r29,r29,#-8 addi r4,r0,#15 sw (r29),r4 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. addi r4,r0,#1 sw 12(r2),r4 addi r29,r29,#8 addi r4,r0,#-1 sw 20(r2),r4 addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockInit .align 2 .proc _LockCreate .global _LockCreate _LockCreate: ; Function 'LockCreate'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r31,r0,r1 addi r29,r29,#8 addi r4,r0,#0 lhi r3,((_locks)>>16)&0xffff addui r3,r3,(_locks)&0xffff L153: add r2,r0,r3 lw r1,24(r3) snei r1,r1,#0 beqz r1,L163 nop ; not filled. addi r3,r2,#28 addi r4,r4,#1 slei r1,r4,#63 bnez r1,L153 nop ; not filled. L151: addi r29,r29,#-8 sw (r29),r31 jal _SetIntrs nop ; not filled. addi r29,r29,#8 seqi r1,r4,#64 bnez r1,L157 nop ; not filled. slli r1,r4,#0x3 sub r1,r1,r4 slli r1,r1,#0x2 lhi r5,((_locks)>>16)&0xffff addui r5,r5,(_locks)&0xffff add r2,r1,r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. addi r5,r0,#1 sw 12(r2),r5 addi r29,r29,#8 addi r5,r0,#-1 sw 20(r2),r5 addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r4 j L162 nop ; not filled. L163: addi r5,r0,#1 sw 24(r3),r5 j L151 nop ; not filled. L157: addi r1,r0,#-1 L162: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockCreate .align 2 .proc _LockAcquire .global _LockAcquire _LockAcquire: ; Function 'LockAcquire'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r4,((_currentPCB)>>16)&0xffff addui r4,r4,(_currentPCB)&0xffff lw r6,(r4) sw (r29),r6 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L170 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop ; not filled. lw r4,(r4) sw (r29),r4 jal _findpid nop ; not filled. sw 20(r3),r1 addi r29,r29,#8 L170: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockAcquire .align 2 .proc _LockHandleAcquire .global _LockHandleAcquire _LockHandleAcquire: ; Function 'LockHandleAcquire'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) sleui r1,r2,#63 beqz r1,L181 nop ; not filled. slli r1,r2,#0x3 sub r1,r1,r2 slli r1,r1,#0x2 lhi r6,((_locks)>>16)&0xffff addui r6,r6,(_locks)&0xffff add r3,r1,r6 lw r1,24(r3) snei r1,r1,#0 beqz r1,L181 nop ; not filled. addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r4,((_currentPCB)>>16)&0xffff addui r4,r4,(_currentPCB)&0xffff lw r6,(r4) sw (r29),r6 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L185 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop ; not filled. lw r4,(r4) sw (r29),r4 jal _findpid nop ; not filled. sw 20(r3),r1 addi r29,r29,#8 L185: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L188 nop ; not filled. L181: addi r1,r0,#1 L188: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockHandleAcquire .align 2 .proc _LockRelease .global _LockRelease _LockRelease: ; Function 'LockRelease'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r3,(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L195 nop ; not filled. addi r5,r0,#-1 sw 20(r3),r5 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 L195: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockRelease .align 2 .proc _LockHandleRelease .global _LockHandleRelease _LockHandleRelease: ; Function 'LockHandleRelease'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) sleui r1,r2,#63 beqz r1,L206 nop ; not filled. slli r1,r2,#0x3 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_locks)>>16)&0xffff addui r5,r5,(_locks)&0xffff add r3,r1,r5 lw r1,24(r3) snei r1,r1,#0 beqz r1,L206 nop ; not filled. addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L210 nop ; not filled. addi r5,r0,#-1 sw 20(r3),r5 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 L210: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L213 nop ; not filled. L206: addi r1,r0,#1 L213: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockHandleRelease .align 2 .proc _CondInit .global _CondInit _CondInit: ; Function 'CondInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop ; not filled. addi r5,r0,#0 sw 16(r2),r5 addi r29,r29,#8 sw (r2),r3 sw 24(r2),r5 addi r5,r0,#1 sw 28(r2),r5 addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondInit .align 2 .proc _CondCreate .global _CondCreate _CondCreate: ; Function 'CondCreate'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) sgtui r1,r3,#64 bnez r1,L233 nop ; not filled. slli r1,r3,#0x3 sub r1,r1,r3 slli r1,r1,#0x2 lhi r6,((_locks)>>16)&0xffff addui r6,r6,(_locks)&0xffff add r1,r1,r6 lw r1,24(r1) snei r1,r1,#1 beqz r1,L224 nop ; not filled. j L233 nop ; not filled. L239: addi r6,r0,#1 sw 28(r2),r6 j L227 nop ; not filled. L224: addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r5,r0,#0 lhi r2,((_conds)>>16)&0xffff addui r2,r2,(_conds)&0xffff L229: lw r1,28(r2) snei r1,r1,#0 beqz r1,L239 nop ; not filled. addi r2,r2,#32 addi r5,r5,#1 slei r1,r5,#31 bnez r1,L229 nop ; not filled. L227: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 seqi r1,r5,#32 bnez r1,L233 nop ; not filled. slli r2,r5,#0x5 lhi r6,((_conds)>>16)&0xffff addui r6,r6,(_conds)&0xffff add r2,r2,r6 slli r1,r3,#0x3 sub r1,r1,r3 slli r1,r1,#0x2 lhi r6,((_locks)>>16)&0xffff addui r6,r6,(_locks)&0xffff add r3,r1,r6 addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop ; not filled. addi r6,r0,#0 sw 16(r2),r6 addi r29,r29,#8 sw (r2),r3 sw 24(r2),r6 addi r6,r0,#1 sw 28(r2),r6 addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r5 j L238 nop ; not filled. L233: addi r1,r0,#-1 L238: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondCreate .align 2 .proc _CondWait .global _CondWait _CondWait: ; Function 'CondWait'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r4,(r30) addi r29,r29,#-8 addi r8,r0,#15 sw (r29),r8 jal _SetIntrs nop ; not filled. add r7,r0,r1 addi r29,r29,#8 lw r1,24(r4) addi r1,r1,#1 sw 24(r4),r1 lw r3,(r4) addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r6,((_currentPCB)>>16)&0xffff addui r6,r6,(_currentPCB)&0xffff lw r8,(r6) sw (r29),r8 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L244 nop ; not filled. addi r8,r0,#-1 sw 20(r3),r8 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 L244: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 addi r1,r4,#4 sw (r29),r1 jal _SemWait nop ; not filled. lw r3,(r4) addi r29,r29,#8 addi r29,r29,#-8 addi r8,r0,#15 sw (r29),r8 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lw r8,(r6) sw (r29),r8 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L248 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop ; not filled. lw r6,(r6) sw (r29),r6 jal _findpid nop ; not filled. sw 20(r3),r1 addi r29,r29,#8 L248: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondWait .align 2 .proc _CondHandleWait .global _CondHandleWait _CondHandleWait: ; Function 'CondHandleWait'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) sleui r1,r2,#31 beqz r1,L256 nop ; not filled. slli r1,r2,#0x5 lhi r4,((_conds)>>16)&0xffff addui r4,r4,(_conds)&0xffff add r3,r1,r4 lw r1,28(r3) snei r1,r1,#0 beqz r1,L257 nop ; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r2) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L257 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _CondWait nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L255 nop ; not filled. L257: addi r1,r0,#1 j L255 nop ; not filled. L256: addi r1,r0,#1 L255: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleWait .align 2 .proc _CondSignal .global _CondSignal _CondSignal: ; Function 'CondSignal'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) addi r29,r29,#-8 addi r4,r0,#15 sw (r29),r4 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 lw r31,24(r2) snei r1,r31,#0 beqz r1,L266 nop ; not filled. addi r1,r31,#-1 sw 24(r2),r1 addi r29,r29,#-8 addi r1,r2,#4 sw (r29),r1 jal _SemSignal nop ; not filled. addi r29,r29,#8 L266: addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondSignal .align 2 .proc _CondHandleSignal .global _CondHandleSignal _CondHandleSignal: ; Function 'CondHandleSignal'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) sleui r1,r2,#31 beqz r1,L277 nop ; not filled. slli r1,r2,#0x5 lhi r5,((_conds)>>16)&0xffff addui r5,r5,(_conds)&0xffff add r3,r1,r5 lw r1,28(r3) snei r1,r1,#0 beqz r1,L277 nop ; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r2) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L277 nop ; not filled. addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 lw r2,24(r3) snei r1,r2,#0 beqz r1,L282 nop ; not filled. addi r1,r2,#-1 sw 24(r3),r1 addi r29,r29,#-8 addi r1,r3,#4 sw (r29),r1 jal _SemSignal nop ; not filled. addi r29,r29,#8 L282: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L284 nop ; not filled. L277: addi r1,r0,#1 L284: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleSignal .align 2 .proc _CondBroadcast .global _CondBroadcast _CondBroadcast: ; Function 'CondBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r2,r0,#0 lw r1,24(r4) sltu r1,r2,r1 beqz r1,L296 nop ; not filled. addi r3,r4,#4 L298: addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 lw r1,24(r4) sltu r1,r2,r1 bnez r1,L298 nop ; not filled. L296: addi r6,r0,#0 sw 24(r4),r6 addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondBroadcast .align 2 .proc _CondHandleBroadcast .global _CondHandleBroadcast _CondHandleBroadcast: ; Function 'CondHandleBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) sleui r1,r2,#31 beqz r1,L302 nop ; not filled. slli r1,r2,#0x5 lhi r6,((_conds)>>16)&0xffff addui r6,r6,(_conds)&0xffff add r3,r1,r6 lw r1,28(r3) snei r1,r1,#0 beqz r1,L302 nop ; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r2) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L302 nop ; not filled. addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r2,r0,#0 lw r1,24(r3) sltu r1,r2,r1 beqz r1,L308 nop ; not filled. addi r4,r3,#4 L310: addi r29,r29,#-8 sw (r29),r4 jal _SemSignal nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 lw r1,24(r3) sltu r1,r2,r1 bnez r1,L310 nop ; not filled. L308: addi r6,r0,#0 sw 24(r3),r6 addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L313 nop ; not filled. L302: addi r1,r0,#1 L313: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleBroadcast .data .align 2 _sems: .space 1280 .align 2 _locks: .space 1792 .align 2 _conds: .space 1024

home/bshapir/cs314/project3/src/synch.working.s

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L38 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L38: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .align 2 .proc _SemInit .global _SemInit _SemInit: ; Function 'SemInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. sw 12(r2),r3 addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemInit .data .align 2 LC0: .ascii "Proc 0x%x waiting on sem 0x%x, count=%d.\n\000" .align 2 LC1: .ascii "Suspending current proc (0x%x).\n\000" .text .align 2 .proc _SemWait .global _SemWait _SemWait: ; Function 'SemWait'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) jal _DisableIntrs nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r6,r0,#115 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L49 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r6,r0,#43 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L48 nop ; not filled. L49: addi r29,r29,#-16 lhi r6,((LC0)>>16)&0xffff addui r6,r6,(LC0)&0xffff sw (r29),r6 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 sw 8(r29),r3 lw r6,12(r3) sw 12(r29),r6 jal _printf nop ; not filled. addi r29,r29,#16 L48: lw r1,12(r3) addi r1,r1,#-1 sw 12(r3),r1 slti r1,r1,#0 beqz r1,L50 nop ; not filled. jal _QueueAllocLink nop ; not filled. add r2,r0,r1 lhi r5,((_currentPCB)>>16)&0xffff addui r5,r5,(_currentPCB)&0xffff lw r1,(r5) addi r6,r0,#0 sw (r2),r6 sw 12(r2),r1 addi r29,r29,#-8 lhi r4,((_debugstr)>>16)&0xffff addui r4,r4,(_debugstr)&0xffff sw (r29),r4 addi r6,r0,#115 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L53 nop ; not filled. addi r29,r29,#-8 sw (r29),r4 addi r6,r0,#43 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L52 nop ; not filled. L53: addi r29,r29,#-8 lhi r6,((LC1)>>16)&0xffff addui r6,r6,(LC1)&0xffff sw (r29),r6 lw r1,(r5) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L52: lw r1,4(r3) sw 8(r2),r3 sw 4(r2),r1 lw r6,(r1) sw (r2),r6 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 jal _ProcessSleep nop ; not filled. L50: jal _EnableIntrs nop ; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemWait .data .align 2 LC2: .ascii "Signalling on sem 0x%x, count=%d.\n\000" .align 2 LC3: .ascii "Waking up PCB 0x%x.\n\000" .text .align 2 .proc _SemSignal .global _SemSignal _SemSignal: ; Function 'SemSignal'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) jal _DisableIntrs nop ; not filled. addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r4,r0,#115 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L59 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L58 nop ; not filled. L59: addi r29,r29,#-16 lhi r4,((LC2)>>16)&0xffff addui r4,r4,(LC2)&0xffff sw (r29),r4 sw 4(r29),r2 lw r4,12(r2) sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L58: lw r1,12(r2) addi r1,r1,#1 sw 12(r2),r1 slei r1,r1,#0 beqz r1,L60 nop ; not filled. lw r3,(r2) lw r1,8(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L63 nop ; not filled. lw r1,4(r3) lw r4,(r3) sw (r1),r4 lw r1,(r3) lw r4,4(r3) sw 4(r1),r4 lw r2,8(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L63: addi r4,r0,#0 sw (r3),r4 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#115 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64 nop ; not filled. L65: addi r29,r29,#-8 lhi r4,((LC3)>>16)&0xffff addui r4,r4,(LC3)&0xffff sw (r29),r4 lw r1,12(r3) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L64: addi r29,r29,#-8 lw r4,12(r3) sw (r29),r4 jal _ProcessWakeup nop ; not filled. sw (r29),r3 jal _QueueFreeLink nop ; not filled. addi r29,r29,#8 L60: jal _EnableIntrs nop ; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemSignal .align 2 .proc _LockInit .global _LockInit _LockInit: ; Function 'LockInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. addi r3,r0,#1 sw 12(r2),r3 addi r29,r29,#8 addi r1,r2,#16 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop ; not filled. addi r3,r0,#0 sw 28(r2),r3 addi r29,r29,#8 sw 32(r2),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockInit .align 2 .proc _LockAcquire .global _LockAcquire _LockAcquire: ; Function 'LockAcquire'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r29,r29,#-8 lw r1,(r30) sw (r29),r1 jal _SemWait nop ; not filled. addi r29,r29,#8 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockAcquire .align 2 .proc _LockRelease .global _LockRelease _LockRelease: ; Function 'LockRelease'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r31,(r30) lw r1,32(r31) sgti r1,r1,#0 beqz r1,L78 nop ; not filled. addi r29,r29,#-8 addi r1,r31,#16 sw (r29),r1 j L80 nop ; not filled. L78: addi r29,r29,#-8 sw (r29),r31 L80: jal _SemSignal nop ; not filled. addi r29,r29,#8 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockRelease .align 2 .proc _CondInit .global _CondInit _CondInit: ; Function 'CondInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) sw (r2),r3 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop ; not filled. addi r3,r0,#0 sw 16(r2),r3 addi r29,r29,#8 sw 20(r2),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondInit .align 2 .proc _CondWait .global _CondWait _CondWait: ; Function 'CondWait'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r2,(r30) lw r1,20(r2) addi r1,r1,#1 sw 20(r2),r1 lw r31,(r2) lw r1,32(r31) sgti r1,r1,#0 beqz r1,L89 nop ; not filled. addi r29,r29,#-8 addi r1,r31,#16 sw (r29),r1 j L91 nop ; not filled. L89: addi r29,r29,#-8 sw (r29),r31 L91: jal _SemSignal nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 addi r1,r2,#4 sw (r29),r1 jal _SemWait nop ; not filled. lw r1,(r2) addi r1,r1,#16 sw (r29),r1 jal _SemWait nop ; not filled. lw r2,(r2) lw r1,32(r2) addi r1,r1,#-1 sw 32(r2),r1 addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondWait .align 2 .proc _CondSignal .global _CondSignal _CondSignal: ; Function 'CondSignal'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r31,(r30) lw r2,20(r31) sgti r1,r2,#0 beqz r1,L95 nop ; not filled. addi r1,r2,#-1 sw 20(r31),r1 lw r2,(r31) lw r1,32(r2) addi r1,r1,#1 sw 32(r2),r1 addi r29,r29,#-8 addi r1,r31,#4 sw (r29),r1 jal _SemSignal nop ; not filled. addi r29,r29,#8 L95: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondSignal .align 2 .proc _CondBroadcast .global _CondBroadcast _CondBroadcast: ; Function 'CondBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) lw r5,20(r4) addi r3,r0,#0 slt r1,r3,r5 beqz r1,L106 nop ; not filled. addi r6,r4,#4 L108: lw r2,20(r4) sgti r1,r2,#0 beqz r1,L107 nop ; not filled. addi r1,r2,#-1 sw 20(r4),r1 lw r2,(r4) lw r1,32(r2) addi r1,r1,#1 sw 32(r2),r1 addi r29,r29,#-8 sw (r29),r6 jal _SemSignal nop ; not filled. addi r29,r29,#8 L107: addi r3,r3,#1 slt r1,r3,r5 bnez r1,L108 nop ; not filled. L106: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondBroadcast

home/bshapir/cs314/project3/src/traps.c

// // traps.c // // This file handles the low-level trap stuff for an operating system // running under DLX. static char rcsid[] = "$Id: traps.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $"; #include "dlx.h" #include "dlxos.h" #include "traps.h" #include "process.h" unsigned long MY_TIMER = 0; //---------------------------------------------------------------------- // // TimerSet // // Set the timer to go off after a particular number of microseconds. // The number of microseconds is passed to the routine. // //---------------------------------------------------------------------- void TimerSet (int us) { //MY_TIMER = *((int *)DLX_TIMER_ADDRESS); MY_TIMER += us; *((int *)DLX_TIMER_ADDRESS) = us; } int TimerGet(void) { return (MY_TIMER / 1000); } � //---------------------------------------------------------------------- // // KbdModuleInit // // Initialize the keyboard module. This involves turning on // interrupts for the keyboard. // //---------------------------------------------------------------------- void KbdModuleInit () { *((uint32 *)DLX_KBD_INTR) = 1; } //-------------------------------------------------------------------- // GetUintFromTrapArg(uint32 *trapArgs, int sysmode) //-------------------------------------------------------------------- static uint32 GetUintFromTrapArg(uint32 *trapArgs, int sysmode) { uint32 arg; if(!sysmode) { MemoryCopyUserToSystem (currentPCB, trapArgs, &arg, sizeof (arg)); } else { bcopy (trapArgs, &arg, sizeof (arg)); } return arg; } //-------------------------------------------------------------------- // GetIntFromTrapArg(uint32 *trapArgs, int sysmode) //-------------------------------------------------------------------- static int GetIntFromTrapArg(uint32 *trapArgs, int sysmode) { int arg; if(!sysmode) { MemoryCopyUserToSystem (currentPCB, trapArgs, &arg, sizeof (arg)); } else { bcopy (trapArgs, &arg, sizeof (arg)); } return arg; } //-------------------------------------------------------------------- // Here we support reading the arguments // Maximum 128 command-line arguments are allowed // Also the total length of the arguments including the terminating // '\0' should be less than or equal to 1024 //-------------------------------------------------------------------- static void TrapProcessCreateHandler(uint32 *trapArgs, int sysmode) { char allargs[SIZE_ARG_BUFF]; char name[100]; int i=0, j=0, k=0; uint32 args[MAX_ARGS]; int p_nice, p_info; char *destination; // The first argument is the name of the executable file i=0; for(i=0;i<SIZE_ARG_BUFF; i++) allargs[i] = 0; i=0; if(!sysmode) { //Get the arguments into the sytem space MemoryCopyUserToSystem (currentPCB, trapArgs, args, sizeof (args)); do { MemoryCopyUserToSystem (currentPCB,((char*)args[2])+i,name+i,1); i++; } while ((i < sizeof (name)) && (name[i-1] != '\0')); } else { bcopy (trapArgs, args, sizeof (args)); dstrncpy ((char *)args[2], name, sizeof (name)); } name[sizeof(name)-1] = '\0'; // null terminate the name i=0; p_nice = args[0]; p_info = args[1]; if (p_nice <-20 || p_nice >19) { printf(" Invalid p_nice value! \n"); exit(); } if(!sysmode) { if (p_nice <0) p_nice == 0; //Copy the rest of the arguments to the system space for(j=2; (j<MAX_ARGS)&&(args[j]!=0); j++) { k=0; do { MemoryCopyUserToSystem (currentPCB,((char*)args[j])+k,allargs+i,1); i++; k++; } while ((i<sizeof(allargs)) && (allargs[i-1]!='\0')); } } else { destination = &allargs[0]; for(j=0; (j<11)&&(args[j]!=0); j++) { k = dstrlen((char *)args[j]); //length of the argument if(&destination[k]-allargs>SIZE_ARG_BUFF) { printf("Fatal: Cumulative length of all arguments > %d\n", SIZE_ARG_BUFF); exitsim(); } dstrcpy(destination, (char *)args[j]); destination[k] = '\0'; } } allargs[sizeof(allargs)-1] = '\0'; // null terminate the name printf("calling fork\n"); ProcessFork(0, (uint32)allargs, p_nice,p_info,name, 1); } � //---------------------------------------------------------------------- // // TrapPrintfHandler // // Handle a printf trap.here. This printf code will correctly // handle integers but will not correctly handle strings (yet). // Also, note that the maximum format string length is 79 characters. // Exceeding this length will cause the format to be truncated. // //---------------------------------------------------------------------- static void TrapPrintfHandler (uint32 *trapArgs, int sysMode) { char formatstr[80]; int i = 0; uint32 printfArgs[10]; uint32 args[10]; int nargs = 0; char *c; // The first argument is the print format string. Copy it to system // space, truncating if necessary. i = 0; if (!sysMode) { // Get the arguments themselves into system space MemoryCopyUserToSystem (currentPCB, trapArgs, args, sizeof (args)); do { MemoryCopyUserToSystem (currentPCB,((char*)args[0])+i,formatstr+i,1); i++; } while ((i < sizeof (formatstr)) && (formatstr[i-1] != '\0')); } else { bcopy (trapArgs, args, sizeof (args)); dstrncpy ((char *)args[0], formatstr, sizeof (formatstr)); } formatstr[sizeof(formatstr)-1] = '\0'; // null terminate the fmt str for (c = formatstr; *c != '\0'; c++) { if (*c == '%') { // if this is a %%, skip past second % if (*(c+1) == '%') { c++; continue; } // Get the current argument off the stack printfArgs[nargs] = args[nargs+1]; // dbprintf ('t', "Argument %d at 0x%x is %d (0x%x).\n", nargs, // args[nargs], args[nargs]); while (1) { c++; if (*c == 's') { // Handle strings here. They don't work for user programs (yet...) break; } else if (*c == 'l') { continue; } else if ((*c == 'f') || (*c == 'g') || (*c == 'e')) { // If it's a floating point number, it'll be passed as // a double, so grab the second word also. nargs += 1; printfArgs[nargs] = args[nargs+1]; break; } else if ((*c >= 'a') && (*c <= 'z')) { // If it's another formatting character, it's not // a string, but we can leave the loop anyway. break; } } nargs += 1; } } printf (formatstr,printfArgs[0],printfArgs[1],printfArgs[2], printfArgs[3], printfArgs[4], printfArgs[5], printfArgs[6], printfArgs[7]); } static void Yield() { // Implement function Yield() here return; } //---------------------------------------------------------------------- // // doInterrupt // // Handle an interrupt or trap. // //---------------------------------------------------------------------- void dointerrupt (unsigned int cause, unsigned int iar, unsigned int isr, uint32 *trapArgs) { int result; int i; uint32 args[4]; int intrs; uint32 handle; int ihandle; dbprintf ('t',"Interrupt cause=0x%x iar=0x%x isr=0x%x args=0x%08x.\n", cause, iar, isr, trapArgs); // If the TRAP_INSTR bit is set, this was from a trap instruction. // If the bit isn't set, this was a system interrupt. if (cause & TRAP_TRAP_INSTR) { cause &= ~TRAP_TRAP_INSTR; switch (cause) { case TRAP_CONTEXT_SWITCH: dbprintf ('t', "Got a context switch trap!\n"); ProcessSchedule (); break; case TRAP_EXIT: dbprintf ('t', "Got an exit trap!\n"); ProcessDestroy (currentPCB); ProcessSchedule (); break; case TRAP_PROCESS_FORK: dbprintf ('t', "Got a fork trap!\n"); break; case TRAP_PROCESS_SLEEP: dbprintf ('t', "Got a process sleep trap!\n"); ProcessSuspend (currentPCB); ProcessSchedule (); break; case TRAP_PRINTF: // Call the trap printf handler and pass the arguments and a flag // indicating whether the trap was called from system mode. dbprintf ('t', "Got a printf trap!\n"); TrapPrintfHandler (trapArgs, isr & DLX_STATUS_SYSMODE); break; case TRAP_OPEN: // Get the arguments to the trap handler. If this is a user mode trap, // copy them from user space. if (isr & DLX_STATUS_SYSMODE) { args[0] = trapArgs[0]; args[1] = trapArgs[1]; } else { char filename[32]; // trapArgs points to the trap arguments in user space. There are // two of them, so copy them to to system space. The first argument // is a string, so it has to be copied to system space and the // argument replaced with a pointer to the string in system space. MemoryCopyUserToSystem (currentPCB, trapArgs, args, sizeof(args[0])*2); MemoryCopyUserToSystem (currentPCB, args[0], filename, 31); // Null-terminate the string in case it's longer than 31 characters. filename[31] = '\0'; // Set the argument to be the filename args[0] = (uint32)filename; } // Allow Open() calls to be interruptible! intrs = EnableIntrs (); ProcessSetResult (currentPCB, args[1] + 0x10000); printf ("Got an open with parameters ('%s',0x%x)\n", args[0], args[1]); RestoreIntrs (intrs); break; case TRAP_CLOSE: // Allow Close() calls to be interruptible! intrs = EnableIntrs (); ProcessSetResult (currentPCB, -1); RestoreIntrs (intrs); break; case TRAP_READ: // Allow Read() calls to be interruptible! intrs = EnableIntrs (); ProcessSetResult (currentPCB, -1); RestoreIntrs (intrs); break; case TRAP_WRITE: // Allow Write() calls to be interruptible! intrs = EnableIntrs (); ProcessSetResult (currentPCB, -1); RestoreIntrs (intrs); break; case TRAP_DELETE: intrs = EnableIntrs (); ProcessSetResult (currentPCB, -1); RestoreIntrs (intrs); break; case TRAP_SEEK: intrs = EnableIntrs (); ProcessSetResult (currentPCB, -1); RestoreIntrs (intrs); break; case TRAP_PROCESS_CREATE: TrapProcessCreateHandler(trapArgs, isr & DLX_STATUS_SYSMODE); break; case TRAP_PROCESS_YIELD: Yield(); //ProcessSetResult(currentPCB, -1); break; case TRAP_SHARE_CREATE_PAGE: handle = MemoryCreateSharedPage(currentPCB); ProcessSetResult(currentPCB, handle); break; case TRAP_SHARE_MAP_PAGE: handle = GetUintFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); handle = (uint32)mmap(currentPCB, handle); ProcessSetResult(currentPCB, handle); break; case TRAP_SEM_CREATE: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); ihandle = SemCreate(ihandle); ProcessSetResult(currentPCB, ihandle); //Return handle break; case TRAP_SEM_WAIT: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); handle = SemHandleWait(ihandle); ProcessSetResult(currentPCB, handle); //Return 1 or 0 break; case TRAP_SEM_SIGNAL: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); handle = SemHandleSignal(ihandle); ProcessSetResult(currentPCB, handle); //Return 1 or 0 break; case TRAP_LOCK_CREATE: ihandle = LockCreate(); ProcessSetResult(currentPCB, ihandle); //Return handle break; case TRAP_LOCK_ACQUIRE: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); handle = LockHandleAcquire(ihandle); ProcessSetResult(currentPCB, handle); //Return 1 or 0 break; case TRAP_LOCK_RELEASE: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); handle = LockHandleRelease(ihandle); ProcessSetResult(currentPCB, handle); //Return 1 or 0 break; case TRAP_COND_CREATE: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); ihandle = CondCreate(ihandle); ProcessSetResult(currentPCB, ihandle); //Return handle break; case TRAP_COND_WAIT: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); ihandle = CondHandleWait(ihandle); ProcessSetResult(currentPCB, ihandle); //Return 1 or 0 break; case TRAP_COND_SIGNAL: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); ihandle = CondHandleSignal(ihandle); ProcessSetResult(currentPCB, ihandle); //Return 1 or 0 break; case TRAP_TIMERGET: ihandle = TimerGet(); ProcessSetResult(currentPCB,ihandle); break; case TRAP_COND_BROADCAST: ihandle = GetIntFromTrapArg(trapArgs, isr & DLX_STATUS_SYSMODE); ihandle = CondHandleBroadcast(ihandle); ProcessSetResult(currentPCB, ihandle); //Return 1 or 0 break; default: printf ("Got an unrecognized trap (0x%x) - exiting!\n", cause); exitsim (); break; } } else { switch (cause) { case TRAP_TIMER: dbprintf ('t', "Got a timer interrupt!\n"); ProcessSchedule (); break; case TRAP_KBD: do { i = *((uint32 *)DLX_KBD_NCHARSIN); result = *((uint32 *)DLX_KBD_GETCHAR); printf ("Got a keyboard interrupt (char=0x%x(%c), nleft=%d)!\n", result, result, i); } while (i > 1); break; case TRAP_ACCESS: printf ("Exiting after illegal access at iar=0x%x, isr=0x%x\n", iar, isr); exitsim (); break; case TRAP_ADDRESS: printf ("Exiting after illegal address at iar=0x%x, isr=0x%x\n", iar, isr); exitsim (); break; case TRAP_ILLEGALINST: printf ("Exiting after illegal instruction at iar=0x%x, isr=0x%x\n", iar, isr); exitsim (); break; case TRAP_PAGEFAULT: printf ("Exiting after page fault at iar=0x%x, isr=0x%x\n", iar, isr); exitsim (); break; default: printf ("Got an unrecognized system interrupt (0x%x) - exiting!\n", cause); exitsim (); break; } } dbprintf ('t',"About to return from dointerrupt.\n"); // Note that this return may schedule a new process! intrreturn (); }

home/bshapir/cs314/project3/src/osend.s

;;; This file just includes a single variable that contains the last address ;;; in the operating system. The rest of memory is available for use by ;;; processes. .data .align 2 .global _lastosaddress _lastosaddress: .word _lastosaddress+8

home/bshapir/cs314/project3/src/dlxos.s

;;; ;;; Initialization code for programs running in the DLX simulator. ;;; Copyright (c) 1999 by Ethan Miller ;;; ;;; .text .align 2 ;;;---------------------------------------------------------------------- ;;; osinit ;;; ;;; This is the first function called by the simulator, even before main. ;;; Since it's called BEFORE any "real" routines, we can use any registers ;;; we want as long as we don't mess up the stack or frame pointers. ;;; ;;; This routine loads the interrupt vector to point to the interrupt ;;; handler later in this file. It should never return, because _main ;;; should call exitsim() or exit() rather than returning here. ;;; ;;; After initialization is done, this routine jumps to _main to start the ;;; C code portion of the operating system. ;;;---------------------------------------------------------------------- .proc _osinit .global _osinit _osinit: ;; Set up the interrupt handler lhi r1,(_intrhandler>>16)&0xffff addui r1,r1,_intrhandler&0xffff movi2s intrvec,r1 ;; Never returns because exitsim is called first j _main .endproc _osinit ;;;---------------------------------------------------------------------- ;;; intrhandler ;;; ;;; Called when an interrupt or trap is received by the CPU. It stores the ;;; current register set on the system stack. It then pushes the parameters ;;; to the C interrupt handler onto the stack: the ISR, IAR, and CAUSE ;;; registers along with the original stack pointer. The C interrupt ;;; handler can then copy arguments from the original stack, performing ;;; user -> system translations if necessary. ;;; ;;;---------------------------------------------------------------------- .proc _intrhandler .global _intrhandler _intrhandler: ;; We can use r31 as scratch space because its value was saved in ;; ir31. However, we must save the "real" value of r31 on the ;; stack. ;; Always store the registers on the system stack. This way, we don't ;; have to worry about translating things from user -> system. We ;; use r31 as the base register because its value was saved in ir31. ;; If this was a user process, load r29 with the current system ;; stack pointer. If it was a system process, just use the ;; current stack pointer. movs2i r31,isr andi r31,r31,0x40 bnez r31,intrSystem lhi r31,(_currentPCB>>16)&0xffff addui r31,r31,_currentPCB&0xffff lw r31,(r31) lw r31,4(r31) ;; Save the original (user) stack pointer sw -184(r31),r29 ; we haven't yet bumped SP, and 156-340 = -184 ;; Copy the system stack pointer into r29 (current stack pointer) ori r29,r31,0 beqz r0,intrSaveReg ; skip over the system part.... intrSystem: ;; Use the stack pointer we're already using ;; Save r29 because we won't save it later sw -184(r29),r29 ; we haven't yet bumped SP, and 156-340 = -184 intrSaveReg: ;; Adjust stack pointer for all the stuff we're going to push. This ;; is a bit more space than we need currently, but it leaves room ;; for more stuff if needed. subui r29,r29,#340 ;; Push all the stuff onto the stack sw 44(r29),r1 sw 48(r29),r2 sw 52(r29),r3 sw 56(r29),r4 sw 60(r29),r5 sw 64(r29),r6 sw 68(r29),r7 sw 72(r29),r8 sw 76(r29),r9 sw 80(r29),r10 sw 84(r29),r11 sw 88(r29),r12 sw 92(r29),r13 sw 96(r29),r14 sw 100(r29),r15 sw 104(r29),r16 sw 108(r29),r17 sw 112(r29),r18 sw 116(r29),r19 sw 120(r29),r20 sw 124(r29),r21 sw 128(r29),r22 sw 132(r29),r23 sw 136(r29),r24 sw 140(r29),r25 sw 144(r29),r26 sw 148(r29),r27 sw 152(r29),r28 ;; Skip r29 - stored earlier! sw 160(r29),r30 ;; Load the value of r31 from the special register and then save it movs2i r3,ir31 sw 164(r29),r3 ;; Store the floating-point registers sd 168(r29),f0 sd 176(r29),f2 sd 184(r29),f4 sd 192(r29),f6 sd 200(r29),f8 sd 208(r29),f10 sd 216(r29),f12 sd 224(r29),f14 sd 232(r29),f16 sd 240(r29),f18 sd 248(r29),f20 sd 256(r29),f22 sd 264(r29),f24 sd 272(r29),f26 sd 280(r29),f28 sd 288(r29),f30 ;; NOTE: we don't save the interrupt vector register because it ;; doesn't change from process to process. ;; NOTE: we don't save the status register because most of the flags ;; are the same from process to process if they're in the interrupt ;; handler. Of course, we DO save the ISR. movs2i r4,iar sw 296(r29),r4 movs2i r5,isr sw 300(r29),r5 movs2i r6,cause sw 304(r29),r6 movs2i r3,fault sw 308(r29),r3 movs2i r3,ptbase sw 312(r29),r3 movs2i r3,ptsize sw 316(r29),r3 movs2i r3,ptbits sw 320(r29),r3 ;; Push the interrupt information onto the stack sw 0(r29),r6 ; push CAUSE sw 4(r29),r4 ; push IAR sw 8(r29),r5 ; push ISR ;; Get the original stack pointer lw r1,156(r29) sw 12(r29),r1 ;; Save the previous interrupt stack frame address in the current frame lhi r1,(_currentPCB>>16)&0xffff addui r1,r1,_currentPCB&0xffff lw r1,(r1) lw r2,0(r1) sw 40(r29),r2 ;; Save this frame address in the PCB. This is used so the OS can ;; easily access the current interrupt save frame sw 0(r1), r29 ;; Call the "real" interrupt handler. This will possibly switch ;; contexts. This call never returns; instead, a separate routine ;; (_intrreturn) is called to return from interrupts after restoring ;; the current context. j _dointerrupt nop .endproc _intrhandler � ;;;---------------------------------------------------------------------- ;;; intrreturn ;;; ;;; Return from an interrupt or trap. This restores all of the previously ;;; saved registers and then returns to where the program left off. The ;;; current contents of the registers are destroyed. This routine uses ;;; the saved interrupt frame pointer, so the stack pointer need not ;;; be correct. Note, though, that the register contents from the previous ;;; process must have previously been saved - in other words, call this ;;; routine from a trap or interrupt handler. ;;;---------------------------------------------------------------------- .proc _intrreturn .global _intrreturn _intrreturn: ;; Disable interrupts - this routine must be atomic, and interrupts ;; may not be currently disabled. Don't worry about saving registers ;; because we're about to reload them anyway. jal _DisableIntrs ;; Get our interrupt stack frame location and load it into the stack ;; pointer. lhi r1,(_currentPCB>>16)&0xffff addui r1,r1,_currentPCB&0xffff lw r1,0(r1) lw r29,0(r1) ;; Get the previous interrupt stack frame location and make it the ;; current interrupt save frame. lw r2,40(r29) sw 0(r1), r2 ;; Reload the registers for the new process. We don't have to ;; load in the exact opposite order as long as we're careful to ;; get the right values back in. lw r3,296(r29) movi2s iar,r3 lw r3,300(r29) movi2s isr,r3 lw r3,304(r29) movi2s cause,r3 lw r3,308(r29) movi2s fault,r3 lw r3,312(r29) movi2s ptbase,r3 lw r3,316(r29) movi2s ptsize,r3 lw r3,320(r29) movi2s ptbits,r3 ;; Reload the floating point registers ld f0,168(r29) ld f2,176(r29) ld f4,184(r29) ld f6,192(r29) ld f8,200(r29) ld f10,208(r29) ld f12,216(r29) ld f14,224(r29) ld f16,232(r29) ld f18,240(r29) ld f20,248(r29) ld f22,256(r29) ld f24,264(r29) ld f26,272(r29) ld f28,280(r29) ld f30,288(r29) ;; Reload the integer registers. We don't reload r0 because it's ;; always 0. We won't reload r29 here because we're using it as ;; the stack pointer. The same goes for r1, which we'll use as ;; scratch so we can store r29. ;; Skip r1 - restored later lw r2,48(r29) lw r3,52(r29) lw r4,56(r29) lw r5,60(r29) lw r6,64(r29) lw r7,68(r29) lw r8,72(r29) lw r9,76(r29) lw r10,80(r29) lw r11,84(r29) lw r12,88(r29) lw r13,92(r29) lw r14,96(r29) lw r15,100(r29) lw r16,104(r29) lw r17,108(r29) lw r18,112(r29) lw r19,116(r29) lw r20,120(r29) lw r21,124(r29) lw r22,128(r29) lw r23,132(r29) lw r24,136(r29) lw r25,140(r29) lw r26,144(r29) lw r27,148(r29) lw r28,152(r29) ;; Skip r29 - restored later lw r30,160(r29) lw r31,164(r29) addui r29,r29,#340 ;; Save the current value of the stack pointer after adjusting it ;; Note that this will "destroy" the stack values below this interrupt ;; stack frame. This is exactly what we want! sw 4(r1),r29 ori r1,r29,#0 lw r29,-184(r1) ; 156-340 = -184 lw r1,-296(r1) ; 44-340 = -296 rfe .endproc _intrreturn � ;;;---------------------------------------------------------------------- ;;; SetIntrs ;;; ;;; This routine sets the interrupt level to the value passed (0 -> all ;;; interrupts enabled; 0xf -> all interrupts disabled). It returns the ;;; former value for the interrupt flags. ;;;---------------------------------------------------------------------- .proc _SetIntrs .global _SetIntrs _SetIntrs: subui r29,r29,#16 sw 12(r29),r2 ; save r2 lw r2,16(r29) ; Get the new interrupt level andi r2,r2,#0x0f ; Mask off interrupt levels movs2i r1,status sw 8(r29),r1 ; Store the old interrupt values andi r1,r1,#0xfff0 ; Mask off old interrupt level or r1,r2,r1 ; OR in new interrupt level movi2s status,r1 lw r1,8(r29) ; Get back the original interrupt level andi r1,r1,#0x0f ; Mask off all but interrupt levels lw r2,12(r29) ; restore r2 addui r29,r29,#16 ; restore stack pointer jr r31 nop .endproc _SetIntrs .proc _CurrentIntrs .global _CurrentIntrs _CurrentIntrs: movs2i r1,status andi r1,r1,#0xf jr r31 nop .endproc _CurrentIntrs ;;;---------------------------------------------------------------------- ;;; _ProcessSleep ;;; ;;; If a context switch from elsewhere in the kernel is desired, take a ;;; trap and call this routine from the trap handler. ;;;---------------------------------------------------------------------- .proc _ProcessSleep .global _ProcessSleep _ProcessSleep: trap #0x410 ; This is a process sleep trap nop jr r31 nop .endproc _ProcessSleep

home/bshapir/cs314/project3/src/os.dlx

; Linked by DLX-LD. ; MemSize 106496 ; Data size: 38336 ; Text size: 49712 ; Stack size: 8192 .text 0x1000 .data 0xe000 ;;; ;;; Initialization code for programs running in the DLX simulator. ;;; Copyright (c) 1999 by Ethan Miller ;;; ;;; .text .align 2 ;;;---------------------------------------------------------------------- ;;; osinit ;;; ;;; This is the first function called by the simulator, even before main. ;;; Since it's called BEFORE any "real" routines, we can use any registers ;;; we want as long as we don't mess up the stack or frame pointers. ;;; ;;; This routine loads the interrupt vector to point to the interrupt ;;; handler later in this file. It should never return, because _main ;;; should call exitsim() or exit() rather than returning here. ;;; ;;; After initialization is done, this routine jumps to _main to start the ;;; C code portion of the operating system. ;;;---------------------------------------------------------------------- .proc _osinit .global _osinit _osinit: ;; Set up the interrupt handler lhi r1,(_intrhandler>>16)&0xffff addui r1,r1,_intrhandler&0xffff movi2s intrvec,r1 ;; Never returns because exitsim is called first j _main .endproc _osinit ;;;---------------------------------------------------------------------- ;;; intrhandler ;;; ;;; Called when an interrupt or trap is received by the CPU. It stores the ;;; current register set on the system stack. It then pushes the parameters ;;; to the C interrupt handler onto the stack: the ISR, IAR, and CAUSE ;;; registers along with the original stack pointer. The C interrupt ;;; handler can then copy arguments from the original stack, performing ;;; user -> system translations if necessary. ;;; ;;;---------------------------------------------------------------------- .proc _intrhandler .global _intrhandler _intrhandler: ;; We can use r31 as scratch space because its value was saved in ;; ir31. However, we must save the "real" value of r31 on the ;; stack. ;; Always store the registers on the system stack. This way, we don't ;; have to worry about translating things from user -> system. We ;; use r31 as the base register because its value was saved in ir31. ;; If this was a user process, load r29 with the current system ;; stack pointer. If it was a system process, just use the ;; current stack pointer. movs2i r31,isr andi r31,r31,0x40 bnez r31,intrSystem_LF0 lhi r31,(_currentPCB>>16)&0xffff addui r31,r31,_currentPCB&0xffff lw r31,(r31) lw r31,4(r31) ;; Save the original (user) stack pointer sw -184(r31),r29; we haven't yet bumped SP, and 156-340 = -184 ;; Copy the system stack pointer into r29 (current stack pointer) ori r29,r31,0 beqz r0,intrSaveReg_LF0; skip over the system part.... intrSystem_LF0: ;; Use the stack pointer we're already using ;; Save r29 because we won't save it later sw -184(r29),r29; we haven't yet bumped SP, and 156-340 = -184 intrSaveReg_LF0: ;; Adjust stack pointer for all the stuff we're going to push. This ;; is a bit more space than we need currently, but it leaves room ;; for more stuff if needed. subui r29,r29,#340 ;; Push all the stuff onto the stack sw 44(r29),r1 sw 48(r29),r2 sw 52(r29),r3 sw 56(r29),r4 sw 60(r29),r5 sw 64(r29),r6 sw 68(r29),r7 sw 72(r29),r8 sw 76(r29),r9 sw 80(r29),r10 sw 84(r29),r11 sw 88(r29),r12 sw 92(r29),r13 sw 96(r29),r14 sw 100(r29),r15 sw 104(r29),r16 sw 108(r29),r17 sw 112(r29),r18 sw 116(r29),r19 sw 120(r29),r20 sw 124(r29),r21 sw 128(r29),r22 sw 132(r29),r23 sw 136(r29),r24 sw 140(r29),r25 sw 144(r29),r26 sw 148(r29),r27 sw 152(r29),r28 ;; Skip r29 - stored earlier! sw 160(r29),r30 ;; Load the value of r31 from the special register and then save it movs2i r3,ir31 sw 164(r29),r3 ;; Store the floating-point registers sd 168(r29),f0 sd 176(r29),f2 sd 184(r29),f4 sd 192(r29),f6 sd 200(r29),f8 sd 208(r29),f10 sd 216(r29),f12 sd 224(r29),f14 sd 232(r29),f16 sd 240(r29),f18 sd 248(r29),f20 sd 256(r29),f22 sd 264(r29),f24 sd 272(r29),f26 sd 280(r29),f28 sd 288(r29),f30 ;; NOTE: we don't save the interrupt vector register because it ;; doesn't change from process to process. ;; NOTE: we don't save the status register because most of the flags ;; are the same from process to process if they're in the interrupt ;; handler. Of course, we DO save the ISR. movs2i r4,iar sw 296(r29),r4 movs2i r5,isr sw 300(r29),r5 movs2i r6,cause sw 304(r29),r6 movs2i r3,fault sw 308(r29),r3 movs2i r3,ptbase sw 312(r29),r3 movs2i r3,ptsize sw 316(r29),r3 movs2i r3,ptbits sw 320(r29),r3 ;; Push the interrupt information onto the stack sw 0(r29),r6; push CAUSE sw 4(r29),r4; push IAR sw 8(r29),r5; push ISR ;; Get the original stack pointer lw r1,156(r29) sw 12(r29),r1 ;; Save the previous interrupt stack frame address in the current frame lhi r1,(_currentPCB>>16)&0xffff addui r1,r1,_currentPCB&0xffff lw r1,(r1) lw r2,0(r1) sw 40(r29),r2 ;; Save this frame address in the PCB. This is used so the OS can ;; easily access the current interrupt save frame sw 0(r1),r29 ;; Call the "real" interrupt handler. This will possibly switch ;; contexts. This call never returns; instead, a separate routine ;; (_intrreturn) is called to return from interrupts after restoring ;; the current context. j _dointerrupt nop .endproc _intrhandler ;;;---------------------------------------------------------------------- ;;; intrreturn ;;; ;;; Return from an interrupt or trap. This restores all of the previously ;;; saved registers and then returns to where the program left off. The ;;; current contents of the registers are destroyed. This routine uses ;;; the saved interrupt frame pointer, so the stack pointer need not ;;; be correct. Note, though, that the register contents from the previous ;;; process must have previously been saved - in other words, call this ;;; routine from a trap or interrupt handler. ;;;---------------------------------------------------------------------- .proc _intrreturn .global _intrreturn _intrreturn: ;; Disable interrupts - this routine must be atomic, and interrupts ;; may not be currently disabled. Don't worry about saving registers ;; because we're about to reload them anyway. jal _DisableIntrs ;; Get our interrupt stack frame location and load it into the stack ;; pointer. lhi r1,(_currentPCB>>16)&0xffff addui r1,r1,_currentPCB&0xffff lw r1,0(r1) lw r29,0(r1) ;; Get the previous interrupt stack frame location and make it the ;; current interrupt save frame. lw r2,40(r29) sw 0(r1),r2 ;; Reload the registers for the new process. We don't have to ;; load in the exact opposite order as long as we're careful to ;; get the right values back in. lw r3,296(r29) movi2s iar,r3 lw r3,300(r29) movi2s isr,r3 lw r3,304(r29) movi2s cause,r3 lw r3,308(r29) movi2s fault,r3 lw r3,312(r29) movi2s ptbase,r3 lw r3,316(r29) movi2s ptsize,r3 lw r3,320(r29) movi2s ptbits,r3 ;; Reload the floating point registers ld f0,168(r29) ld f2,176(r29) ld f4,184(r29) ld f6,192(r29) ld f8,200(r29) ld f10,208(r29) ld f12,216(r29) ld f14,224(r29) ld f16,232(r29) ld f18,240(r29) ld f20,248(r29) ld f22,256(r29) ld f24,264(r29) ld f26,272(r29) ld f28,280(r29) ld f30,288(r29) ;; Reload the integer registers. We don't reload r0 because it's ;; always 0. We won't reload r29 here because we're using it as ;; the stack pointer. The same goes for r1, which we'll use as ;; scratch so we can store r29. ;; Skip r1 - restored later lw r2,48(r29) lw r3,52(r29) lw r4,56(r29) lw r5,60(r29) lw r6,64(r29) lw r7,68(r29) lw r8,72(r29) lw r9,76(r29) lw r10,80(r29) lw r11,84(r29) lw r12,88(r29) lw r13,92(r29) lw r14,96(r29) lw r15,100(r29) lw r16,104(r29) lw r17,108(r29) lw r18,112(r29) lw r19,116(r29) lw r20,120(r29) lw r21,124(r29) lw r22,128(r29) lw r23,132(r29) lw r24,136(r29) lw r25,140(r29) lw r26,144(r29) lw r27,148(r29) lw r28,152(r29) ;; Skip r29 - restored later lw r30,160(r29) lw r31,164(r29) addui r29,r29,#340 ;; Save the current value of the stack pointer after adjusting it ;; Note that this will "destroy" the stack values below this interrupt ;; stack frame. This is exactly what we want! sw 4(r1),r29 ori r1,r29,#0 lw r29,-184(r1); 156-340 = -184 lw r1,-296(r1); 44-340 = -296 rfe .endproc _intrreturn ;;;---------------------------------------------------------------------- ;;; SetIntrs ;;; ;;; This routine sets the interrupt level to the value passed (0 -> all ;;; interrupts enabled; 0xf -> all interrupts disabled). It returns the ;;; former value for the interrupt flags. ;;;---------------------------------------------------------------------- .proc _SetIntrs .global _SetIntrs _SetIntrs: subui r29,r29,#16 sw 12(r29),r2; save r2 lw r2,16(r29); Get the new interrupt level andi r2,r2,#0x0f; Mask off interrupt levels movs2i r1,status sw 8(r29),r1; Store the old interrupt values andi r1,r1,#0xfff0; Mask off old interrupt level or r1,r2,r1; OR in new interrupt level movi2s status,r1 lw r1,8(r29); Get back the original interrupt level andi r1,r1,#0x0f; Mask off all but interrupt levels lw r2,12(r29); restore r2 addui r29,r29,#16; restore stack pointer jr r31 nop .endproc _SetIntrs .proc _CurrentIntrs .global _CurrentIntrs _CurrentIntrs: movs2i r1,status andi r1,r1,#0xf jr r31 nop .endproc _CurrentIntrs ;;;---------------------------------------------------------------------- ;;; _ProcessSleep ;;; ;;; If a context switch from elsewhere in the kernel is desired, take a ;;; trap and call this routine from the trap handler. ;;;---------------------------------------------------------------------- .proc _ProcessSleep .global _ProcessSleep _ProcessSleep: trap #0x410; This is a process sleep trap nop jr r31 nop .endproc _ProcessSleep ; ; Stub functions for DLX traps. ; ; Aaron Sawdey 1996; released to the Public Domain. ; .align 2 .proc _random .global _random _random: trap #0x2020 jr r31 nop .endproc _random .proc _srandom .global _srandom _srandom: trap #0x2021 jr r31 nop .endproc _srandom ; I know this is not the right place to put it, but what the heck .proc _timerget .global _timerget _timerget: trap #0x2002 jr r31 nop .endproc _timerget ; Compiled by GCC .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF2 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF2 nop; not filled. L6_LF2: addi r31,r0,#1 L5_LF2: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF2 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF2 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF2 nop; not filled. L12_LF2: addi r2,r0,#1 L11_LF2: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF2 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF2: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0_LF2: .ascii "Entering ProcessModuleInit\n\000" .align 2 LC1_LF2: .ascii "Leaving ProcessModuleInit\n\000" .text .align 2 .proc _ShareModuleInit .global _ShareModuleInit _ShareModuleInit: ; Function 'ShareModuleInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#112 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L64_LF2 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L63_LF2 nop; not filled. L64_LF2: addi r29,r29,#-8 lhi r5,((LC0_LF2)>>16)&0xffff addui r5,r5,(LC0_LF2)&0xffff sw (r29),r5 jal _printf nop; not filled. addi r29,r29,#8 L63_LF2: lhi r2,((_spages_LF2)>>16)&0xffff addui r2,r2,(_spages_LF2)&0xffff addi r4,r2,#248 L68_LF2: addi r5,r0,#0 sw (r2),r5 add r31,r0,r2 add r3,r0,r2 L72_LF2: addi r1,r31,#4 addi r5,r0,#0 sw (r1),r5 add r31,r0,r1 sle r1,r31,r3 bnez r1,L72_LF2 nop; not filled. addi r2,r2,#8 sle r1,r2,r4 bnez r1,L68_LF2 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#112 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L76_LF2 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L75_LF2 nop; not filled. L76_LF2: addi r29,r29,#-8 lhi r5,((LC1_LF2)>>16)&0xffff addui r5,r5,(LC1_LF2)&0xffff sw (r29),r5 jal _printf nop; not filled. addi r29,r29,#8 L75_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ShareModuleInit .data .align 2 LC2_LF2: .ascii "FATAL: couldn\'t allocate memory - no free pages!\n\000" .text .align 2 .proc _MemoryCreateSharedPage .global _MemoryCreateSharedPage _MemoryCreateSharedPage: ; Function 'MemoryCreateSharedPage'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#48; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r6,(r30) addi r29,r29,#-8 sw (r29),r6 jal _findpid nop; not filled. add r5,r0,r1 srli r8,r5,#0x5 slli r1,r8,#0x5 sub r5,r5,r1 addi r29,r29,#8 addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop; not filled. add r7,r0,r1 addi r29,r29,#8 lw r1,160(r6) seqi r1,r1,#16 bnez r1,L92_LF2 nop; not filled. addi r3,r0,#0 lhi r9,((_spages_LF2)>>16)&0xffff addui r9,r9,(_spages_LF2)&0xffff add r2,r0,r9 L84_LF2: lw r1,(r2) snei r1,r1,#0 beqz r1,L82_LF2 nop; not filled. addi r2,r2,#8 addi r3,r3,#1 slei r1,r3,#31 bnez r1,L84_LF2 nop; not filled. L82_LF2: seqi r1,r3,#32 beqz r1,L87_LF2 nop; not filled. L92_LF2: addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#0 j L91_LF2 nop; not filled. L87_LF2: jal _MemoryAllocPage nop; not filled. add r4,r0,r1 snei r1,r4,#0 bnez r1,L89_LF2 nop; not filled. addi r29,r29,#-8 lhi r10,((LC2_LF2)>>16)&0xffff addui r10,r10,(LC2_LF2)&0xffff sw (r29),r10 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L89_LF2: slli r1,r3,#0x3 add r2,r1,r9 sw (r2),r4 slli r1,r8,#0x2 add r2,r1,r2 addi r1,r0,#1 sll r1,r1,r5 sw 4(r2),r1 addi r29,r29,#-8 sw (r29),r4 jal _MemorySetupPte nop; not filled. lw r2,160(r6) slli r2,r2,#0x2 add r2,r2,r6 sw 96(r2),r1 lw r1,160(r6) addi r2,r1,#1 sw 160(r6),r2 lw r1,8(r6) addui r1,r1,#65164 sw 316(r1),r2 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop; not filled. addi r29,r29,#8 add r1,r0,r4 L91_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCreateSharedPage .align 2 .proc _mmap .global _mmap _mmap: ; Function 'mmap'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#48; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r6,(r30) lw r7,4(r30) snei r1,r7,#0 bnez r1,L94_LF2 nop; not filled. addi r1,r0,#0 j L115_LF2 nop; not filled. L94_LF2: lw r1,8(r6) addui r9,r1,#65164 addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop; not filled. add r8,r0,r1 addi r29,r29,#8 addi r3,r0,#0 lhi r2,((_spages_LF2)>>16)&0xffff addui r2,r2,(_spages_LF2)&0xffff L99_LF2: lw r1,(r2) seq r1,r1,r7 bnez r1,L97_LF2 nop; not filled. addi r2,r2,#8 addi r3,r3,#1 sleui r1,r3,#31 bnez r1,L99_LF2 nop; not filled. L97_LF2: seqi r1,r3,#32 bnez r1,L116_LF2 nop; not filled. slli r31,r7,#0x10 addi r5,r0,#0 lw r4,160(r6) slt r1,r5,r4 beqz r1,L105_LF2 nop; not filled. add r2,r0,r6 L107_LF2: lw r1,96(r2) addi r10,r0,#-8 and r1,r1,r10 seq r1,r1,r31 bnez r1,L105_LF2 nop; not filled. addi r2,r2,#4 addi r5,r5,#1 slt r1,r5,r4 bnez r1,L107_LF2 nop; not filled. L105_LF2: lw r2,160(r6) seq r1,r5,r2 beqz r1,L110_LF2 nop; not filled. slei r1,r2,#15 bnez r1,L111_LF2 nop; not filled. L116_LF2: addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#0 j L115_LF2 nop; not filled. L111_LF2: addi r29,r29,#-8 sw (r29),r7 jal _MemorySetupPte nop; not filled. lw r2,160(r6) slli r2,r2,#0x2 add r2,r2,r6 sw 96(r2),r1 lw r1,160(r6) addi r1,r1,#1 sw 160(r6),r1 sw 316(r9),r1 addi r29,r29,#8 L110_LF2: addi r29,r29,#-8 sw (r29),r6 jal _findpid nop; not filled. add r2,r0,r1 srli r4,r2,#0x5 slli r1,r4,#0x5 sub r2,r2,r1 slli r3,r3,#0x3 slli r1,r4,#0x2 add r1,r3,r1 lhi r10,((_spages_LF2+4)>>16)&0xffff addui r10,r10,(_spages_LF2+4)&0xffff add r3,r1,r10 addi r1,r0,#1 sll r2,r1,r2 lw r1,(r3) or r1,r1,r2 sw (r3),r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop; not filled. addi r29,r29,#8 slli r1,r5,#0x10 L115_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _mmap .data .align 2 LC3_LF2: .ascii "FATAL: Attempted to free memory page 0\n\000" .text .align 2 .proc _MemoryFreeSharedPte .global _MemoryFreeSharedPte _MemoryFreeSharedPte: ; Function 'MemoryFreeSharedPte'; 0 bytes of locals, 9 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#48; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 lw r8,(r30) lw r2,4(r30) addi r29,r29,#-8 addi r10,r0,#15 sw (r29),r10 jal _SetIntrs nop; not filled. add r9,r0,r1 addi r29,r29,#8 slli r1,r2,#0x2 add r1,r1,r8 lhu r7,96(r1) snei r1,r7,#0 bnez r1,L119_LF2 nop; not filled. addi r29,r29,#-8 lhi r10,((LC3_LF2)>>16)&0xffff addui r10,r10,(LC3_LF2)&0xffff sw (r29),r10 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L119_LF2: addi r4,r0,#0 lhi r5,((_spages_LF2)>>16)&0xffff addui r5,r5,(_spages_LF2)&0xffff add r2,r0,r5 L123_LF2: lw r1,(r2) seq r1,r1,r7 bnez r1,L121_LF2 nop; not filled. addi r2,r2,#8 addi r4,r4,#1 slei r1,r4,#31 bnez r1,L123_LF2 nop; not filled. L121_LF2: seqi r1,r4,#32 beqz r1,L126_LF2 nop; not filled. addi r29,r29,#-8 sw (r29),r9 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#-1 j L141_LF2 nop; not filled. L126_LF2: addi r29,r29,#-8 sw (r29),r8 jal _findpid nop; not filled. add r2,r0,r1 srli r3,r1,#0x5 slli r1,r3,#0x5 sub r2,r2,r1 slli r1,r4,#0x3 add r4,r1,r5 slli r1,r3,#0x2 add r1,r1,r4 addi r3,r1,#4 addi r1,r0,#1 sll r1,r1,r2 addi r10,r0,#-1 xor r2,r1,r10 lw r1,(r3) and r1,r1,r2 sw (r3),r1 addi r29,r29,#8 addi r6,r0,#0 addi r5,r0,#0 L132_LF2: addi r3,r0,#1 addi r2,r0,#0 lw r31,4(r4) L136_LF2: and r1,r31,r3 snei r1,r1,#0 add r6,r6,r1 slli r3,r3,#0x1 addi r2,r2,#1 slei r1,r2,#31 bnez r1,L136_LF2 nop; not filled. addi r4,r4,#4 addi r5,r5,#1 slei r1,r5,#0 bnez r1,L132_LF2 nop; not filled. lw r1,160(r8) addi r2,r1,#-1 sw 160(r8),r2 lw r1,8(r8) addui r1,r1,#65164 sw 316(r1),r2 snei r1,r6,#0 bnez r1,L139_LF2 nop; not filled. addi r29,r29,#-8 sw (r29),r7 jal _MemoryFreePage nop; not filled. addi r29,r29,#8 L139_LF2: addi r29,r29,#-8 sw (r29),r9 jal _SetIntrs nop; not filled. addi r29,r29,#8 add r1,r0,r6 L141_LF2: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreeSharedPte .data .align 2 _spages_LF2: .space 256 ; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF3 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF3 nop; not filled. L6_LF3: addi r31,r0,#1 L5_LF3: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF3 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF3 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF3 nop; not filled. L12_LF3: addi r2,r0,#1 L11_LF3: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF3 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF3: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0_LF3: .ascii "Entering SynchModuleInit\n\000" .align 2 LC1_LF3: .ascii "Leaving SynchModuleInit\n\000" .text .align 2 .proc _SynchModuleInit .global _SynchModuleInit _SynchModuleInit: ; Function 'SynchModuleInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r3,r0,#112 sw 4(r29),r3 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L53_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r3,r0,#43 sw 4(r29),r3 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L52_LF3 nop; not filled. L53_LF3: addi r29,r29,#-8 lhi r3,((LC0_LF3)>>16)&0xffff addui r3,r3,(LC0_LF3)&0xffff sw (r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L52_LF3: lhi r31,((_sems_LF3)>>16)&0xffff addui r31,r31,(_sems_LF3)&0xffff addi r2,r31,#1260 L57_LF3: addi r3,r0,#0 sw 16(r31),r3 addi r31,r31,#20 sle r1,r31,r2 bnez r1,L57_LF3 nop; not filled. lhi r31,((_locks_LF3)>>16)&0xffff addui r31,r31,(_locks_LF3)&0xffff addi r2,r31,#1764 L62_LF3: addi r3,r0,#0 sw 24(r31),r3 addi r3,r0,#-1 sw 20(r31),r3 addi r31,r31,#28 sle r1,r31,r2 bnez r1,L62_LF3 nop; not filled. addi r2,r0,#0 lhi r31,((_conds_LF3)>>16)&0xffff addui r31,r31,(_conds_LF3)&0xffff L67_LF3: addi r3,r0,#0 sw 28(r31),r3 sw 24(r31),r3 addi r31,r31,#32 addi r2,r2,#1 slei r1,r2,#31 bnez r1,L67_LF3 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r3,r0,#112 sw 4(r29),r3 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L70_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r3,r0,#43 sw 4(r29),r3 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L69_LF3 nop; not filled. L70_LF3: addi r29,r29,#-8 lhi r3,((LC1_LF3)>>16)&0xffff addui r3,r3,(LC1_LF3)&0xffff sw (r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L69_LF3: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SynchModuleInit .align 2 .proc _SemInit .global _SemInit _SemInit: ; Function 'SemInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop; not filled. sw 12(r2),r3 addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemInit .align 2 .proc _SemCreate .global _SemCreate _SemCreate: ; Function 'SemCreate'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r3,r0,#0 lhi r31,((_sems_LF3)>>16)&0xffff addui r31,r31,(_sems_LF3)&0xffff L89_LF3: add r2,r0,r31 lw r1,16(r31) snei r1,r1,#0 beqz r1,L96_LF3 nop; not filled. addi r31,r2,#20 addi r3,r3,#1 slei r1,r3,#63 bnez r1,L89_LF3 nop; not filled. L87_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 seqi r1,r3,#64 bnez r1,L93_LF3 nop; not filled. slli r1,r3,#0x2 add r1,r1,r3 slli r1,r1,#0x2 lhi r5,((_sems_LF3)>>16)&0xffff addui r5,r5,(_sems_LF3)&0xffff add r2,r1,r5 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop; not filled. lw r5,(r30) sw 12(r2),r5 addi r29,r29,#8 add r1,r0,r3 j L95_LF3 nop; not filled. L96_LF3: addi r5,r0,#1 sw 16(r31),r5 j L87_LF3 nop; not filled. L93_LF3: addi r1,r0,#-1 L95_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemCreate .data .align 2 LC2_LF3: .ascii "Old interrupt value was 0x%x.\n\000" .align 2 LC3_LF3: .ascii "Proc 0x%x waiting on sem 0x%x, count=%d.\n\000" .align 2 LC4_LF3: .ascii "Suspending current proc (0x%x).\n\000" .text .align 2 .proc _SemWait .global _SemWait _SemWait: ; Function 'SemWait'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r4,(r30) addi r29,r29,#-8 addi r7,r0,#15 sw (r29),r7 jal _SetIntrs nop; not filled. add r6,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#73 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L100_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L99_LF3 nop; not filled. L100_LF3: addi r29,r29,#-8 lhi r7,((LC2_LF3)>>16)&0xffff addui r7,r7,(LC2_LF3)&0xffff sw (r29),r7 sw 4(r29),r6 jal _printf nop; not filled. addi r29,r29,#8 L99_LF3: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#115 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L102_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L101_LF3 nop; not filled. L102_LF3: addi r29,r29,#-16 lhi r7,((LC3_LF3)>>16)&0xffff addui r7,r7,(LC3_LF3)&0xffff sw (r29),r7 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 sw 8(r29),r4 lw r7,12(r4) sw 12(r29),r7 jal _printf nop; not filled. addi r29,r29,#16 L101_LF3: lw r1,12(r4) addi r1,r1,#-1 sw 12(r4),r1 slti r1,r1,#0 beqz r1,L103_LF3 nop; not filled. jal _QueueAllocLink nop; not filled. add r2,r0,r1 lhi r5,((_currentPCB)>>16)&0xffff addui r5,r5,(_currentPCB)&0xffff lw r1,(r5) addi r7,r0,#0 sw (r2),r7 sw 12(r2),r1 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r7,r0,#115 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L106_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r3 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L105_LF3 nop; not filled. L106_LF3: addi r29,r29,#-8 lhi r7,((LC4_LF3)>>16)&0xffff addui r7,r7,(LC4_LF3)&0xffff sw (r29),r7 lw r1,(r5) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L105_LF3: lw r1,4(r4) sw 8(r2),r4 sw 4(r2),r1 lw r7,(r1) sw (r2),r7 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r4) addi r1,r1,#1 sw 8(r4),r1 jal _ProcessSleep nop; not filled. L103_LF3: addi r29,r29,#-8 sw (r29),r6 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemWait .align 2 .proc _SemHandleWait .global _SemHandleWait _SemHandleWait: ; Function 'SemHandleWait'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r31,(r30) sleui r1,r31,#63 beqz r1,L116_LF3 nop; not filled. slli r1,r31,#0x2 add r1,r1,r31 slli r1,r1,#0x2 lhi r2,((_sems_LF3)>>16)&0xffff addui r2,r2,(_sems_LF3)&0xffff add r31,r1,r2 lw r1,16(r31) snei r1,r1,#0 beqz r1,L117_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r31 jal _SemWait nop; not filled. addi r1,r0,#0 addi r29,r29,#8 j L115_LF3 nop; not filled. L117_LF3: addi r1,r0,#1 j L115_LF3 nop; not filled. L116_LF3: addi r1,r0,#1 L115_LF3: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemHandleWait .data .align 2 LC5_LF3: .ascii "Signalling on sem 0x%x, count=%d.\n\000" .align 2 LC6_LF3: .ascii "Waking up PCB 0x%x.\n\000" .text .align 2 .proc _SemSignal .global _SemSignal _SemSignal: ; Function 'SemSignal'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r5,r0,#115 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L123_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r3 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L122_LF3 nop; not filled. L123_LF3: addi r29,r29,#-16 lhi r5,((LC5_LF3)>>16)&0xffff addui r5,r5,(LC5_LF3)&0xffff sw (r29),r5 sw 4(r29),r2 lw r5,12(r2) sw 8(r29),r5 jal _printf nop; not filled. addi r29,r29,#16 L122_LF3: lw r1,12(r2) addi r1,r1,#1 sw 12(r2),r1 slei r1,r1,#0 beqz r1,L124_LF3 nop; not filled. lw r3,(r2) lw r1,8(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L127_LF3 nop; not filled. lw r1,4(r3) lw r5,(r3) sw (r1),r5 lw r1,(r3) lw r5,4(r3) sw 4(r1),r5 lw r2,8(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L127_LF3: addi r5,r0,#0 sw (r3),r5 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#115 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L129_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L128_LF3 nop; not filled. L129_LF3: addi r29,r29,#-8 lhi r5,((LC6_LF3)>>16)&0xffff addui r5,r5,(LC6_LF3)&0xffff sw (r29),r5 lw r1,12(r3) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L128_LF3: addi r29,r29,#-8 lw r5,12(r3) sw (r29),r5 jal _ProcessWakeup nop; not filled. sw (r29),r3 jal _QueueFreeLink nop; not filled. addi r29,r29,#8 L124_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemSignal .align 2 .proc _SemHandleSignal .global _SemHandleSignal _SemHandleSignal: ; Function 'SemHandleSignal'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r31,(r30) sleui r1,r31,#63 beqz r1,L136_LF3 nop; not filled. slli r1,r31,#0x2 add r1,r1,r31 slli r1,r1,#0x2 lhi r2,((_sems_LF3)>>16)&0xffff addui r2,r2,(_sems_LF3)&0xffff add r31,r1,r2 lw r1,16(r31) snei r1,r1,#0 beqz r1,L137_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r31 jal _SemSignal nop; not filled. addi r1,r0,#0 addi r29,r29,#8 j L135_LF3 nop; not filled. L137_LF3: addi r1,r0,#1 j L135_LF3 nop; not filled. L136_LF3: addi r1,r0,#1 L135_LF3: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemHandleSignal .align 2 .proc _LockInit .global _LockInit _LockInit: ; Function 'LockInit'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) addi r29,r29,#-8 addi r4,r0,#15 sw (r29),r4 jal _SetIntrs nop; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop; not filled. addi r4,r0,#1 sw 12(r2),r4 addi r29,r29,#8 addi r4,r0,#-1 sw 20(r2),r4 addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockInit .align 2 .proc _LockCreate .global _LockCreate _LockCreate: ; Function 'LockCreate'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r31,r0,r1 addi r29,r29,#8 addi r4,r0,#0 lhi r3,((_locks_LF3)>>16)&0xffff addui r3,r3,(_locks_LF3)&0xffff L153_LF3: add r2,r0,r3 lw r1,24(r3) snei r1,r1,#0 beqz r1,L163_LF3 nop; not filled. addi r3,r2,#28 addi r4,r4,#1 slei r1,r4,#63 bnez r1,L153_LF3 nop; not filled. L151_LF3: addi r29,r29,#-8 sw (r29),r31 jal _SetIntrs nop; not filled. addi r29,r29,#8 seqi r1,r4,#64 bnez r1,L157_LF3 nop; not filled. slli r1,r4,#0x3 sub r1,r1,r4 slli r1,r1,#0x2 lhi r5,((_locks_LF3)>>16)&0xffff addui r5,r5,(_locks_LF3)&0xffff add r2,r1,r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop; not filled. addi r5,r0,#1 sw 12(r2),r5 addi r29,r29,#8 addi r5,r0,#-1 sw 20(r2),r5 addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop; not filled. addi r29,r29,#8 add r1,r0,r4 j L162_LF3 nop; not filled. L163_LF3: addi r5,r0,#1 sw 24(r3),r5 j L151_LF3 nop; not filled. L157_LF3: addi r1,r0,#-1 L162_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockCreate .align 2 .proc _LockAcquire .global _LockAcquire _LockAcquire: ; Function 'LockAcquire'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r4,((_currentPCB)>>16)&0xffff addui r4,r4,(_currentPCB)&0xffff lw r6,(r4) sw (r29),r6 jal _findpid nop; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L170_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop; not filled. lw r4,(r4) sw (r29),r4 jal _findpid nop; not filled. sw 20(r3),r1 addi r29,r29,#8 L170_LF3: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockAcquire .align 2 .proc _LockHandleAcquire .global _LockHandleAcquire _LockHandleAcquire: ; Function 'LockHandleAcquire'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) sleui r1,r2,#63 beqz r1,L181_LF3 nop; not filled. slli r1,r2,#0x3 sub r1,r1,r2 slli r1,r1,#0x2 lhi r6,((_locks_LF3)>>16)&0xffff addui r6,r6,(_locks_LF3)&0xffff add r3,r1,r6 lw r1,24(r3) snei r1,r1,#0 beqz r1,L181_LF3 nop; not filled. addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r4,((_currentPCB)>>16)&0xffff addui r4,r4,(_currentPCB)&0xffff lw r6,(r4) sw (r29),r6 jal _findpid nop; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L185_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop; not filled. lw r4,(r4) sw (r29),r4 jal _findpid nop; not filled. sw 20(r3),r1 addi r29,r29,#8 L185_LF3: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#0 j L188_LF3 nop; not filled. L181_LF3: addi r1,r0,#1 L188_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockHandleAcquire .align 2 .proc _LockRelease .global _LockRelease _LockRelease: ; Function 'LockRelease'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r3,(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L195_LF3 nop; not filled. addi r5,r0,#-1 sw 20(r3),r5 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop; not filled. addi r29,r29,#8 L195_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockRelease .align 2 .proc _LockHandleRelease .global _LockHandleRelease _LockHandleRelease: ; Function 'LockHandleRelease'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) sleui r1,r2,#63 beqz r1,L206_LF3 nop; not filled. slli r1,r2,#0x3 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_locks_LF3)>>16)&0xffff addui r5,r5,(_locks_LF3)&0xffff add r3,r1,r5 lw r1,24(r3) snei r1,r1,#0 beqz r1,L206_LF3 nop; not filled. addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L210_LF3 nop; not filled. addi r5,r0,#-1 sw 20(r3),r5 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop; not filled. addi r29,r29,#8 L210_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#0 j L213_LF3 nop; not filled. L206_LF3: addi r1,r0,#1 L213_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockHandleRelease .align 2 .proc _CondInit .global _CondInit _CondInit: ; Function 'CondInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop; not filled. addi r5,r0,#0 sw 16(r2),r5 addi r29,r29,#8 sw (r2),r3 sw 24(r2),r5 addi r5,r0,#1 sw 28(r2),r5 addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondInit .align 2 .proc _CondCreate .global _CondCreate _CondCreate: ; Function 'CondCreate'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) sgtui r1,r3,#64 bnez r1,L233_LF3 nop; not filled. slli r1,r3,#0x3 sub r1,r1,r3 slli r1,r1,#0x2 lhi r6,((_locks_LF3)>>16)&0xffff addui r6,r6,(_locks_LF3)&0xffff add r1,r1,r6 lw r1,24(r1) snei r1,r1,#1 beqz r1,L224_LF3 nop; not filled. j L233_LF3 nop; not filled. L239_LF3: addi r6,r0,#1 sw 28(r2),r6 j L227_LF3 nop; not filled. L224_LF3: addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r5,r0,#0 lhi r2,((_conds_LF3)>>16)&0xffff addui r2,r2,(_conds_LF3)&0xffff L229_LF3: lw r1,28(r2) snei r1,r1,#0 beqz r1,L239_LF3 nop; not filled. addi r2,r2,#32 addi r5,r5,#1 slei r1,r5,#31 bnez r1,L229_LF3 nop; not filled. L227_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 seqi r1,r5,#32 bnez r1,L233_LF3 nop; not filled. slli r2,r5,#0x5 lhi r6,((_conds_LF3)>>16)&0xffff addui r6,r6,(_conds_LF3)&0xffff add r2,r2,r6 slli r1,r3,#0x3 sub r1,r1,r3 slli r1,r1,#0x2 lhi r6,((_locks_LF3)>>16)&0xffff addui r6,r6,(_locks_LF3)&0xffff add r3,r1,r6 addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop; not filled. addi r6,r0,#0 sw 16(r2),r6 addi r29,r29,#8 sw (r2),r3 sw 24(r2),r6 addi r6,r0,#1 sw 28(r2),r6 addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 add r1,r0,r5 j L238_LF3 nop; not filled. L233_LF3: addi r1,r0,#-1 L238_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondCreate .align 2 .proc _CondWait .global _CondWait _CondWait: ; Function 'CondWait'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r4,(r30) addi r29,r29,#-8 addi r8,r0,#15 sw (r29),r8 jal _SetIntrs nop; not filled. add r7,r0,r1 addi r29,r29,#8 lw r1,24(r4) addi r1,r1,#1 sw 24(r4),r1 lw r3,(r4) addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r6,((_currentPCB)>>16)&0xffff addui r6,r6,(_currentPCB)&0xffff lw r8,(r6) sw (r29),r8 jal _findpid nop; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L244_LF3 nop; not filled. addi r8,r0,#-1 sw 20(r3),r8 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop; not filled. addi r29,r29,#8 L244_LF3: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 addi r1,r4,#4 sw (r29),r1 jal _SemWait nop; not filled. lw r3,(r4) addi r29,r29,#8 addi r29,r29,#-8 addi r8,r0,#15 sw (r29),r8 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lw r8,(r6) sw (r29),r8 jal _findpid nop; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L248_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop; not filled. lw r6,(r6) sw (r29),r6 jal _findpid nop; not filled. sw 20(r3),r1 addi r29,r29,#8 L248_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondWait .align 2 .proc _CondHandleWait .global _CondHandleWait _CondHandleWait: ; Function 'CondHandleWait'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) sleui r1,r2,#31 beqz r1,L256_LF3 nop; not filled. slli r1,r2,#0x5 lhi r4,((_conds_LF3)>>16)&0xffff addui r4,r4,(_conds_LF3)&0xffff add r3,r1,r4 lw r1,28(r3) snei r1,r1,#0 beqz r1,L257_LF3 nop; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop; not filled. lw r2,20(r2) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L257_LF3 nop; not filled. addi r29,r29,#-8 sw (r29),r3 jal _CondWait nop; not filled. addi r1,r0,#0 addi r29,r29,#8 j L255_LF3 nop; not filled. L257_LF3: addi r1,r0,#1 j L255_LF3 nop; not filled. L256_LF3: addi r1,r0,#1 L255_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleWait .align 2 .proc _CondSignal .global _CondSignal _CondSignal: ; Function 'CondSignal'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) addi r29,r29,#-8 addi r4,r0,#15 sw (r29),r4 jal _SetIntrs nop; not filled. add r3,r0,r1 addi r29,r29,#8 lw r31,24(r2) snei r1,r31,#0 beqz r1,L266_LF3 nop; not filled. addi r1,r31,#-1 sw 24(r2),r1 addi r29,r29,#-8 addi r1,r2,#4 sw (r29),r1 jal _SemSignal nop; not filled. addi r29,r29,#8 L266_LF3: addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondSignal .align 2 .proc _CondHandleSignal .global _CondHandleSignal _CondHandleSignal: ; Function 'CondHandleSignal'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) sleui r1,r2,#31 beqz r1,L277_LF3 nop; not filled. slli r1,r2,#0x5 lhi r5,((_conds_LF3)>>16)&0xffff addui r5,r5,(_conds_LF3)&0xffff add r3,r1,r5 lw r1,28(r3) snei r1,r1,#0 beqz r1,L277_LF3 nop; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop; not filled. lw r2,20(r2) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L277_LF3 nop; not filled. addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop; not filled. add r4,r0,r1 addi r29,r29,#8 lw r2,24(r3) snei r1,r2,#0 beqz r1,L282_LF3 nop; not filled. addi r1,r2,#-1 sw 24(r3),r1 addi r29,r29,#-8 addi r1,r3,#4 sw (r29),r1 jal _SemSignal nop; not filled. addi r29,r29,#8 L282_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#0 j L284_LF3 nop; not filled. L277_LF3: addi r1,r0,#1 L284_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleSignal .align 2 .proc _CondBroadcast .global _CondBroadcast _CondBroadcast: ; Function 'CondBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop; not filled. add r5,r0,r1 addi r29,r29,#8 addi r2,r0,#0 lw r1,24(r4) sltu r1,r2,r1 beqz r1,L296_LF3 nop; not filled. addi r3,r4,#4 L298_LF3: addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop; not filled. addi r29,r29,#8 addi r2,r2,#1 lw r1,24(r4) sltu r1,r2,r1 bnez r1,L298_LF3 nop; not filled. L296_LF3: addi r6,r0,#0 sw 24(r4),r6 addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondBroadcast .align 2 .proc _CondHandleBroadcast .global _CondHandleBroadcast _CondHandleBroadcast: ; Function 'CondHandleBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) sleui r1,r2,#31 beqz r1,L302_LF3 nop; not filled. slli r1,r2,#0x5 lhi r6,((_conds_LF3)>>16)&0xffff addui r6,r6,(_conds_LF3)&0xffff add r3,r1,r6 lw r1,28(r3) snei r1,r1,#0 beqz r1,L302_LF3 nop; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop; not filled. lw r2,20(r2) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L302_LF3 nop; not filled. addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop; not filled. add r5,r0,r1 addi r29,r29,#8 addi r2,r0,#0 lw r1,24(r3) sltu r1,r2,r1 beqz r1,L308_LF3 nop; not filled. addi r4,r3,#4 L310_LF3: addi r29,r29,#-8 sw (r29),r4 jal _SemSignal nop; not filled. addi r29,r29,#8 addi r2,r2,#1 lw r1,24(r3) sltu r1,r2,r1 bnez r1,L310_LF3 nop; not filled. L308_LF3: addi r6,r0,#0 sw 24(r3),r6 addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r1,r0,#0 j L313_LF3 nop; not filled. L302_LF3: addi r1,r0,#1 L313_LF3: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleBroadcast .data .align 2 _sems_LF3: .space 1280 .align 2 _locks_LF3: .space 1792 .align 2 _conds_LF3: .space 1024 ; Compiled by GCC .align 2 _rcsid_LF4: .ascii "$Id: filesys.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF4 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF4 nop; not filled. L6_LF4: addi r31,r0,#1 L5_LF4: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF4 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF4 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF4 nop; not filled. L12_LF4: addi r2,r0,#1 L11_LF4: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF4 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF4: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0_LF4: .ascii "Attepmting to open %s mode=%d.\n\000" .align 2 LC1_LF4: .ascii "dlx:\000" .align 2 LC2_LF4: .ascii "File %s opening in file system %d.\n\000" .align 2 LC3_LF4: .ascii "Opened %s in FS %d, mode=%d slot=%d.\n\000" .text .align 2 .proc _FsOpen .global _FsOpen _FsOpen: ; Function 'FsOpen'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r4,(r30) lw r5,4(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#102 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L56_LF4 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L55_LF4 nop; not filled. L56_LF4: addi r29,r29,#-16 lhi r8,((LC0_LF4)>>16)&0xffff addui r8,r8,(LC0_LF4)&0xffff sw (r29),r8 sw 4(r29),r4 sw 8(r29),r5 jal _printf nop; not filled. addi r29,r29,#16 L55_LF4: andi r5,r5,#3 snei r1,r5,#0 beqz r1,L74_LF4 nop; not filled. addi r3,r0,#0 lhi r6,((_openfiles_LF4)>>16)&0xffff addui r6,r6,(_openfiles_LF4)&0xffff add r2,r0,r6 L61_LF4: lw r1,4(r2) snei r1,r1,#0 beqz r1,L59_LF4 nop; not filled. addi r2,r2,#268 addi r3,r3,#1 slei r1,r3,#31 bnez r1,L61_LF4 nop; not filled. L59_LF4: sgti r1,r3,#31 beqz r1,L64_LF4 nop; not filled. L74_LF4: addi r1,r0,#-1 j L73_LF4 nop; not filled. L64_LF4: slli r1,r3,#0x4 add r1,r1,r3 slli r1,r1,#0x2 sub r1,r1,r3 slli r1,r1,#0x2 add r2,r1,r6 sw 4(r2),r5 addi r29,r29,#-16 sw (r29),r4 lhi r1,((LC1_LF4)>>16)&0xffff addui r1,r1,(LC1_LF4)&0xffff sw 4(r29),r1 addi r8,r0,#4 sw 8(r29),r8 jal _dstrncmp nop; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L65_LF4 nop; not filled. addi r4,r4,#4 addi r8,r0,#1 j L75_LF4 nop; not filled. L65_LF4: addi r8,r0,#0 L75_LF4: sw (r2),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#102 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L68_LF4 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L67_LF4 nop; not filled. L68_LF4: addi r29,r29,#-16 lhi r8,((LC2_LF4)>>16)&0xffff addui r8,r8,(LC2_LF4)&0xffff sw (r29),r8 sw 4(r29),r4 slli r1,r3,#0x4 add r1,r1,r3 slli r1,r1,#0x2 sub r1,r1,r3 slli r1,r1,#0x2 lhi r8,((_openfiles_LF4)>>16)&0xffff addui r8,r8,(_openfiles_LF4)&0xffff add r1,r1,r8 lw r1,(r1) sw 8(r29),r1 jal _printf nop; not filled. addi r29,r29,#16 L67_LF4: addi r29,r29,#-16 slli r1,r3,#0x4 add r1,r1,r3 slli r1,r1,#0x2 sub r1,r1,r3 slli r6,r1,#0x2 lhi r8,((_openfiles_LF4)>>16)&0xffff addui r8,r8,(_openfiles_LF4)&0xffff add r7,r6,r8 lw r2,(r7) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r8,((_fs_LF4)>>16)&0xffff addui r8,r8,(_fs_LF4)&0xffff add r1,r1,r8 sw (r29),r3 sw 4(r29),r4 sw 8(r29),r5 lw r1,(r1) jalr r1 nop; not filled. add r2,r0,r1 addi r29,r29,#16 slti r1,r2,#0 beqz r1,L69_LF4 nop; not filled. lhi r8,((_openfiles_LF4)>>16)&0xffff addui r8,r8,(_openfiles_LF4)&0xffff add r1,r6,r8 addi r8,r0,#0 sw 4(r1),r8 add r1,r0,r2 j L73_LF4 nop; not filled. L69_LF4: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#102 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L72_LF4 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L71_LF4 nop; not filled. L72_LF4: addi r29,r29,#-24 lhi r8,((LC3_LF4)>>16)&0xffff addui r8,r8,(LC3_LF4)&0xffff sw (r29),r8 sw 4(r29),r4 lw r7,(r7) sw 8(r29),r7 sw 12(r29),r5 sw 16(r29),r3 jal _printf nop; not filled. addi r29,r29,#24 L71_LF4: add r1,r0,r3 L73_LF4: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsOpen .align 2 .proc _FsClose .global _FsClose _FsClose: ; Function 'FsClose'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L84_LF4 nop; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r4,((_openfiles_LF4)>>16)&0xffff addui r4,r4,(_openfiles_LF4)&0xffff add r1,r1,r4 lw r1,4(r1) snei r1,r1,#0 beqz r1,L84_LF4 nop; not filled. addi r2,r0,#1 L84_LF4: snei r1,r2,#0 beqz r1,L82_LF4 nop; not filled. addi r29,r29,#-8 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r3,r1,#0x2 lhi r4,((_openfiles_LF4)>>16)&0xffff addui r4,r4,(_openfiles_LF4)&0xffff add r1,r3,r4 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r4,((_fs_LF4)>>16)&0xffff addui r4,r4,(_fs_LF4)&0xffff add r1,r1,r4 sw (r29),r31 lw r1,16(r1) jalr r1 nop; not filled. addi r29,r29,#8 lhi r4,((_openfiles_LF4)>>16)&0xffff addui r4,r4,(_openfiles_LF4)&0xffff add r2,r3,r4 addi r4,r0,#0 sw 4(r2),r4 j L86_LF4 nop; not filled. L82_LF4: addi r1,r0,#-1 L86_LF4: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsClose .align 2 .proc _FsRead .global _FsRead _FsRead: ; Function 'FsRead'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L94_LF4 nop; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r1,4(r1) snei r1,r1,#0 beqz r1,L94_LF4 nop; not filled. addi r2,r0,#1 L94_LF4: snei r1,r2,#0 beqz r1,L92_LF4 nop; not filled. addi r29,r29,#-16 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r3,((_fs_LF4)>>16)&0xffff addui r3,r3,(_fs_LF4)&0xffff add r1,r1,r3 sw (r29),r31 lw r3,4(r30) sw 4(r29),r3 lw r3,8(r30) sw 8(r29),r3 lw r1,4(r1) jalr r1 nop; not filled. addi r29,r29,#16 j L91_LF4 nop; not filled. L92_LF4: addi r1,r0,#-1 L91_LF4: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsRead .align 2 .proc _FsWrite .global _FsWrite _FsWrite: ; Function 'FsWrite'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L103_LF4 nop; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r1,4(r1) snei r1,r1,#0 beqz r1,L103_LF4 nop; not filled. addi r2,r0,#1 L103_LF4: snei r1,r2,#0 beqz r1,L101_LF4 nop; not filled. addi r29,r29,#-16 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r3,((_fs_LF4)>>16)&0xffff addui r3,r3,(_fs_LF4)&0xffff add r1,r1,r3 sw (r29),r31 lw r3,4(r30) sw 4(r29),r3 lw r3,8(r30) sw 8(r29),r3 lw r1,8(r1) jalr r1 nop; not filled. addi r29,r29,#16 j L100_LF4 nop; not filled. L101_LF4: addi r1,r0,#-1 L100_LF4: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsWrite .align 2 .proc _FsSeek .global _FsSeek _FsSeek: ; Function 'FsSeek'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L112_LF4 nop; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r1,4(r1) snei r1,r1,#0 beqz r1,L112_LF4 nop; not filled. addi r2,r0,#1 L112_LF4: snei r1,r2,#0 beqz r1,L110_LF4 nop; not filled. addi r29,r29,#-16 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r3,((_fs_LF4)>>16)&0xffff addui r3,r3,(_fs_LF4)&0xffff add r1,r1,r3 sw (r29),r31 lw r3,4(r30) sw 4(r29),r3 lw r3,8(r30) sw 8(r29),r3 lw r1,12(r1) jalr r1 nop; not filled. addi r29,r29,#16 j L109_LF4 nop; not filled. L110_LF4: addi r1,r0,#-1 L109_LF4: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsSeek .align 2 .proc _FsDelete .global _FsDelete _FsDelete: ; Function 'FsDelete'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) addi r29,r29,#-16 sw (r29),r2 lhi r1,((LC1_LF4)>>16)&0xffff addui r1,r1,(LC1_LF4)&0xffff sw 4(r29),r1 addi r3,r0,#4 sw 8(r29),r3 jal _dstrncmp nop; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L118_LF4 nop; not filled. addi r2,r2,#4 addi r29,r29,#-8 lhi r1,((_fs_LF4+44)>>16)&0xffff addui r1,r1,(_fs_LF4+44)&0xffff j L120_LF4 nop; not filled. L118_LF4: addi r29,r29,#-8 lhi r1,((_fs_LF4+20)>>16)&0xffff addui r1,r1,(_fs_LF4+20)&0xffff L120_LF4: sw (r29),r2 lw r1,(r1) jalr r1 nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDelete .data .align 2 LC4_LF4: .ascii "Attempting to open file %s into desc %d, mode %d.\n\000" .text .align 2 .proc _FsUnixOpen .global _FsUnixOpen _FsUnixOpen: ; Function 'FsUnixOpen'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) lw r3,4(r30) lw r5,8(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r6,r0,#102 sw 4(r29),r6 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L127_LF4 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r6,r0,#43 sw 4(r29),r6 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L126_LF4 nop; not filled. L127_LF4: addi r29,r29,#-16 lhi r6,((LC4_LF4)>>16)&0xffff addui r6,r6,(LC4_LF4)&0xffff sw (r29),r6 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 jal _printf nop; not filled. addi r29,r29,#16 L126_LF4: addi r29,r29,#-8 sw (r29),r3 sw 4(r29),r5 jal _open nop; not filled. add r3,r0,r1 slli r1,r4,#0x4 add r1,r1,r4 slli r1,r1,#0x2 sub r1,r1,r4 slli r1,r1,#0x2 lhi r6,((_openfiles_LF4)>>16)&0xffff addui r6,r6,(_openfiles_LF4)&0xffff add r1,r1,r6 sw 264(r1),r3 addi r29,r29,#8 slti r2,r3,#0 add r1,r0,r3 bnez r2,L128_LF4 nop; not filled. addi r1,r0,#1 L128_LF4: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixOpen .align 2 .proc _FsUnixRead .global _FsUnixRead _FsUnixRead: ; Function 'FsUnixRead'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) lw r4,8(r30) addi r29,r29,#-16 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_openfiles_LF4)>>16)&0xffff addui r5,r5,(_openfiles_LF4)&0xffff add r1,r1,r5 lw r1,264(r1) sw (r29),r1 sw 4(r29),r3 sw 8(r29),r4 jal _read nop; not filled. addi r29,r29,#16 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixRead .align 2 .proc _FsUnixWrite .global _FsUnixWrite _FsUnixWrite: ; Function 'FsUnixWrite'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) lw r4,8(r30) addi r29,r29,#-16 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_openfiles_LF4)>>16)&0xffff addui r5,r5,(_openfiles_LF4)&0xffff add r1,r1,r5 lw r1,264(r1) sw (r29),r1 sw 4(r29),r3 sw 8(r29),r4 jal _write nop; not filled. addi r29,r29,#16 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixWrite .align 2 .proc _FsUnixSeek .global _FsUnixSeek _FsUnixSeek: ; Function 'FsUnixSeek'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) lw r4,8(r30) addi r29,r29,#-16 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_openfiles_LF4)>>16)&0xffff addui r5,r5,(_openfiles_LF4)&0xffff add r1,r1,r5 lw r1,264(r1) sw (r29),r1 sw 4(r29),r3 sw 8(r29),r4 jal _lseek nop; not filled. addi r29,r29,#16 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixSeek .align 2 .proc _FsUnixClose .global _FsUnixClose _FsUnixClose: ; Function 'FsUnixClose'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) addi r29,r29,#-8 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r3,((_openfiles_LF4)>>16)&0xffff addui r3,r3,(_openfiles_LF4)&0xffff add r1,r1,r3 lw r1,264(r1) sw (r29),r1 jal _close nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixClose .align 2 .proc _FsUnixDelete .global _FsUnixDelete _FsUnixDelete: ; Function 'FsUnixDelete'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r1,r0,#-1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixDelete .align 2 .proc _FsDlxIo .global _FsDlxIo _FsDlxIo: ; Function 'FsDlxIo'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxIo .align 2 .proc _FsDlxRead .global _FsDlxRead _FsDlxRead: ; Function 'FsDlxRead'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxRead .align 2 .proc _FsDlxWrite .global _FsDlxWrite _FsDlxWrite: ; Function 'FsDlxWrite'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxWrite .align 2 .proc _FsDlxOpen .global _FsDlxOpen _FsDlxOpen: ; Function 'FsDlxOpen'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) slli r2,r1,#0x4 add r2,r2,r1 slli r2,r2,#0x2 sub r1,r2,r1 slli r1,r1,#0x2 lhi r31,((_openfiles_LF4)>>16)&0xffff addui r31,r31,(_openfiles_LF4)&0xffff add r1,r1,r31 addi r31,r0,#0 sw 264(r1),r31 addi r1,r0,#1 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxOpen .align 2 .proc _FsDlxSeek .global _FsDlxSeek _FsDlxSeek: ; Function 'FsDlxSeek'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) slli r2,r1,#0x4 add r2,r2,r1 slli r2,r2,#0x2 sub r1,r2,r1 slli r1,r1,#0x2 lhi r31,((_openfiles_LF4)>>16)&0xffff addui r31,r31,(_openfiles_LF4)&0xffff add r1,r1,r31 lw r1,264(r1) lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxSeek .align 2 .proc _FsDlxClose .global _FsDlxClose _FsDlxClose: ; Function 'FsDlxClose'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxClose .align 2 .proc _FsDlxDelete .global _FsDlxDelete _FsDlxDelete: ; Function 'FsDlxDelete'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxDelete .align 2 .proc _FsModuleInit .global _FsModuleInit _FsModuleInit: ; Function 'FsModuleInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lhi r31,((_openfiles_LF4)>>16)&0xffff addui r31,r31,(_openfiles_LF4)&0xffff addi r2,r31,#8308 L182_LF4: addi r3,r0,#0 sw 4(r31),r3 addi r31,r31,#268 sle r1,r31,r2 bnez r1,L182_LF4 nop; not filled. lhi r1,((_fs_LF4)>>16)&0xffff addui r1,r1,(_fs_LF4)&0xffff lhi r3,((_FsUnixOpen)>>16)&0xffff addui r3,r3,(_FsUnixOpen)&0xffff sw (r1),r3 lhi r3,((_FsUnixClose)>>16)&0xffff addui r3,r3,(_FsUnixClose)&0xffff sw 16(r1),r3 lhi r3,((_FsUnixRead)>>16)&0xffff addui r3,r3,(_FsUnixRead)&0xffff sw 4(r1),r3 lhi r3,((_FsUnixWrite)>>16)&0xffff addui r3,r3,(_FsUnixWrite)&0xffff sw 8(r1),r3 lhi r3,((_FsUnixSeek)>>16)&0xffff addui r3,r3,(_FsUnixSeek)&0xffff sw 12(r1),r3 lhi r3,((_FsUnixDelete)>>16)&0xffff addui r3,r3,(_FsUnixDelete)&0xffff sw 20(r1),r3 lhi r3,((_FsDlxOpen)>>16)&0xffff addui r3,r3,(_FsDlxOpen)&0xffff sw 24(r1),r3 lhi r3,((_FsDlxClose)>>16)&0xffff addui r3,r3,(_FsDlxClose)&0xffff sw 40(r1),r3 lhi r3,((_FsDlxRead)>>16)&0xffff addui r3,r3,(_FsDlxRead)&0xffff sw 28(r1),r3 lhi r3,((_FsDlxWrite)>>16)&0xffff addui r3,r3,(_FsDlxWrite)&0xffff sw 32(r1),r3 lhi r3,((_FsDlxSeek)>>16)&0xffff addui r3,r3,(_FsDlxSeek)&0xffff sw 36(r1),r3 lhi r3,((_FsDlxDelete)>>16)&0xffff addui r3,r3,(_FsDlxDelete)&0xffff sw 44(r1),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsModuleInit .data .align 2 _fs_LF4: .space 48 .align 2 _openfiles_LF4: .space 8576 ; Compiled by GCC .align 2 _rcsid_LF5: .ascii "$Id: memory.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF5 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF5 nop; not filled. L6_LF5: addi r31,r0,#1 L5_LF5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF5 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF5 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF5 nop; not filled. L12_LF5: addi r2,r0,#1 L11_LF5: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF5 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF5: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 _negativeone_LF5: .word -1 .text .align 2 .proc _MemoryGetSize .global _MemoryGetSize _MemoryGetSize: ; Function 'MemoryGetSize'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lhi r1,#-1 addui r1,r1,#0 lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryGetSize .data .align 2 LC0_LF5: .ascii "Set freemap entry %d to 0x%x.\n\000" .text .align 2 .proc _MemorySetFreemap .global _MemorySetFreemap _MemorySetFreemap: ; Function 'MemorySetFreemap'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) lw r31,4(r30) add r2,r0,r3 sgei r1,r3,#0 bnez r1,L61_LF5 nop; not filled. addi r2,r3,#31 L61_LF5: srai r5,r2,#0x5 slli r1,r5,#0x5 sub r3,r3,r1 addi r1,r0,#1 sll r2,r1,r3 lhi r1,((_negativeone_LF5)>>16)&0xffff addui r1,r1,(_negativeone_LF5)&0xffff lw r1,(r1) xor r2,r2,r1 slli r1,r5,#0x2 lhi r6,((_freepages_LF5)>>16)&0xffff addui r6,r6,(_freepages_LF5)&0xffff add r4,r1,r6 lw r1,(r4) and r2,r1,r2 sll r1,r31,r3 or r1,r2,r1 sw (r4),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r6,r0,#109 sw 4(r29),r6 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r6,r0,#43 sw 4(r29),r6 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64_LF5 nop; not filled. L65_LF5: addi r29,r29,#-16 lhi r6,((LC0_LF5)>>16)&0xffff addui r6,r6,(LC0_LF5)&0xffff sw (r29),r6 sw 4(r29),r5 lw r4,(r4) sw 8(r29),r4 jal _printf nop; not filled. addi r29,r29,#16 L64_LF5: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemorySetFreemap .data .align 2 LC1_LF5: .ascii "Map has %d entries, memory size is 0x%x.\n\000" .align 2 LC2_LF5: .ascii "Free pages start with page # 0x%x.\n\000" .align 2 LC3_LF5: .ascii "Initialized %d free pages.\n\000" .text .align 2 .proc _MemoryModuleInit .global _MemoryModuleInit _MemoryModuleInit: ; Function 'MemoryModuleInit'; 0 bytes of locals, 10 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#48; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 lhi r1,#-1 addui r1,r1,#0 lw r2,(r1) sgei r1,r2,#0 bnez r1,L68_LF5 nop; not filled. addui r2,r2,#65535 L68_LF5: srai r8,r2,#0x10 lhi r3,((_pagestart_LF5)>>16)&0xffff addui r3,r3,(_pagestart_LF5)&0xffff lhi r1,((_lastosaddress)>>16)&0xffff addui r1,r1,(_lastosaddress)&0xffff lw r1,(r1) addui r2,r1,#65532 sgei r1,r2,#0 bnez r1,L69_LF5 nop; not filled. addui r2,r2,#65535 L69_LF5: srai r1,r2,#0x10 sw (r3),r1 lhi r3,((_freemapmax_LF5)>>16)&0xffff addui r3,r3,(_freemapmax_LF5)&0xffff addi r2,r8,#31 sgei r1,r2,#0 bnez r1,L70_LF5 nop; not filled. addi r2,r8,#62 L70_LF5: srai r1,r2,#0x5 sw (r3),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L72_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L71_LF5 nop; not filled. L72_LF5: addi r29,r29,#-16 lhi r11,((LC1_LF5)>>16)&0xffff addui r11,r11,(LC1_LF5)&0xffff sw (r29),r11 lw r1,(r3) sw 4(r29),r1 sw 8(r29),r8 jal _printf nop; not filled. addi r29,r29,#16 L71_LF5: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L74_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L73_LF5 nop; not filled. L74_LF5: addi r29,r29,#-8 lhi r11,((LC2_LF5)>>16)&0xffff addui r11,r11,(LC2_LF5)&0xffff sw (r29),r11 lhi r1,((_pagestart_LF5)>>16)&0xffff addui r1,r1,(_pagestart_LF5)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L73_LF5: addi r2,r0,#0 lhi r4,((_freemapmax_LF5)>>16)&0xffff addui r4,r4,(_freemapmax_LF5)&0xffff lw r1,(r4) slt r1,r2,r1 beqz r1,L76_LF5 nop; not filled. lhi r3,((_freepages_LF5)>>16)&0xffff addui r3,r3,(_freepages_LF5)&0xffff L78_LF5: addi r11,r0,#0 sw (r3),r11 addi r3,r3,#4 addi r2,r2,#1 lw r1,(r4) slt r1,r2,r1 bnez r1,L78_LF5 nop; not filled. L76_LF5: lhi r2,((_nfreepages_LF5)>>16)&0xffff addui r2,r2,(_nfreepages_LF5)&0xffff addi r11,r0,#0 sw (r2),r11 lhi r1,((_pagestart_LF5)>>16)&0xffff addui r1,r1,(_pagestart_LF5)&0xffff lw r4,(r1) slt r1,r4,r8 beqz r1,L81_LF5 nop; not filled. add r7,r0,r2 addi r10,r0,#1 lhi r9,((_negativeone_LF5)>>16)&0xffff addui r9,r9,(_negativeone_LF5)&0xffff L83_LF5: lw r1,(r7) addi r1,r1,#1 sw (r7),r1 add r2,r0,r4 sgei r1,r4,#0 bnez r1,L85_LF5 nop; not filled. addi r2,r4,#31 L85_LF5: srai r6,r2,#0x5 slli r1,r6,#0x5 sub r1,r4,r1 sll r3,r10,r1 lw r1,(r9) xor r2,r3,r1 slli r1,r6,#0x2 lhi r11,((_freepages_LF5)>>16)&0xffff addui r11,r11,(_freepages_LF5)&0xffff add r5,r1,r11 lw r1,(r5) and r1,r1,r2 or r1,r1,r3 sw (r5),r1 addi r29,r29,#-8 lhi r11,((_debugstr)>>16)&0xffff addui r11,r11,(_debugstr)&0xffff sw (r29),r11 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L89_LF5 nop; not filled. addi r29,r29,#-8 lhi r11,((_debugstr)>>16)&0xffff addui r11,r11,(_debugstr)&0xffff sw (r29),r11 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L82_LF5 nop; not filled. L89_LF5: addi r29,r29,#-16 lhi r11,((LC0_LF5)>>16)&0xffff addui r11,r11,(LC0_LF5)&0xffff sw (r29),r11 sw 4(r29),r6 lw r5,(r5) sw 8(r29),r5 jal _printf nop; not filled. addi r29,r29,#16 L82_LF5: addi r4,r4,#1 slt r1,r4,r8 bnez r1,L83_LF5 nop; not filled. L81_LF5: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L92_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L91_LF5 nop; not filled. L92_LF5: addi r29,r29,#-8 lhi r11,((LC3_LF5)>>16)&0xffff addui r11,r11,(LC3_LF5)&0xffff sw (r29),r11 lhi r1,((_nfreepages_LF5)>>16)&0xffff addui r1,r1,(_nfreepages_LF5)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L91_LF5: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryModuleInit .data .align 2 _mapnum42_LF5: .word 0 .align 2 LC4_LF5: .ascii "ERROR AT THIS POINT\n\000" .align 2 LC5_LF5: .ascii "Allocating memory, starting with page %d\n\000" .align 2 LC6_LF5: .ascii "Allocated memory, from map %d, page %d, map=0x%x.\n\000" .text .align 2 .proc _MemoryAllocPage .global _MemoryAllocPage _MemoryAllocPage: ; Function 'MemoryAllocPage'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lhi r1,((_nfreepages_LF5)>>16)&0xffff addui r1,r1,(_nfreepages_LF5)&0xffff lw r1,(r1) snei r1,r1,#0 bnez r1,L111_LF5 nop; not filled. addi r29,r29,#-8 lhi r7,((LC4_LF5)>>16)&0xffff addui r7,r7,(LC4_LF5)&0xffff sw (r29),r7 jal _printf nop; not filled. addi r1,r0,#0 addi r29,r29,#8 j L110_LF5 nop; not filled. L111_LF5: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L113_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L112_LF5 nop; not filled. L113_LF5: addi r29,r29,#-8 lhi r7,((LC5_LF5)>>16)&0xffff addui r7,r7,(LC5_LF5)&0xffff sw (r29),r7 lhi r1,((_mapnum42_LF5)>>16)&0xffff addui r1,r1,(_mapnum42_LF5)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L112_LF5: lhi r2,((_mapnum42_LF5)>>16)&0xffff addui r2,r2,(_mapnum42_LF5)&0xffff lw r1,(r2) lhi r4,((_freepages_LF5)>>16)&0xffff addui r4,r4,(_freepages_LF5)&0xffff slli r1,r1,#0x2 add r1,r1,r4 lw r1,(r1) snei r1,r1,#0 bnez r1,L115_LF5 nop; not filled. lhi r1,((_freemapmax_LF5)>>16)&0xffff addui r1,r1,(_freemapmax_LF5)&0xffff lw r3,(r1) L116_LF5: lw r1,(r2) addi r1,r1,#1 sw (r2),r1 sge r1,r1,r3 beqz r1,L114_LF5 nop; not filled. addi r7,r0,#0 sw (r2),r7 L114_LF5: lw r1,(r2) slli r1,r1,#0x2 add r1,r1,r4 lw r1,(r1) snei r1,r1,#0 beqz r1,L116_LF5 nop; not filled. L115_LF5: lhi r1,((_mapnum42_LF5)>>16)&0xffff addui r1,r1,(_mapnum42_LF5)&0xffff lw r1,(r1) slli r1,r1,#0x2 lhi r7,((_freepages_LF5)>>16)&0xffff addui r7,r7,(_freepages_LF5)&0xffff add r1,r1,r7 lw r3,(r1) addi r31,r0,#0 andi r1,r3,#1 bnez r1,L120_LF5 nop; not filled. addi r2,r0,#1 L121_LF5: addi r31,r31,#1 sll r1,r2,r31 and r1,r3,r1 snei r1,r1,#0 beqz r1,L121_LF5 nop; not filled. L120_LF5: addi r1,r0,#1 sll r2,r1,r31 lhi r1,((_negativeone_LF5)>>16)&0xffff addui r1,r1,(_negativeone_LF5)&0xffff lw r1,(r1) xor r4,r2,r1 lhi r5,((_mapnum42_LF5)>>16)&0xffff addui r5,r5,(_mapnum42_LF5)&0xffff lw r3,(r5) lhi r6,((_freepages_LF5)>>16)&0xffff addui r6,r6,(_freepages_LF5)&0xffff slli r1,r3,#0x2 add r2,r1,r6 lw r1,(r2) and r1,r1,r4 sw (r2),r1 slli r1,r3,#0x5 add r3,r1,r31 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L126_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L125_LF5 nop; not filled. L126_LF5: addi r29,r29,#-16 lhi r7,((LC6_LF5)>>16)&0xffff addui r7,r7,(LC6_LF5)&0xffff sw (r29),r7 lw r1,(r5) sw 4(r29),r1 sw 8(r29),r3 slli r1,r1,#0x2 add r1,r1,r6 lw r1,(r1) sw 12(r29),r1 jal _printf nop; not filled. addi r29,r29,#16 L125_LF5: lhi r1,((_nfreepages_LF5)>>16)&0xffff addui r1,r1,(_nfreepages_LF5)&0xffff lw r2,(r1) addi r2,r2,#-1 sw (r1),r2 add r1,r0,r3 L110_LF5: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryAllocPage .data .align 2 LC7_LF5: .ascii "Freed page 0x%x, %d remaining.\n\000" .text .align 2 .proc _MemoryFreePage .global _MemoryFreePage _MemoryFreePage: ; Function 'MemoryFreePage'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r6,(r30) addi r3,r0,#1 add r2,r0,r6 sgei r1,r6,#0 bnez r1,L129_LF5 nop; not filled. addi r2,r6,#31 L129_LF5: srai r5,r2,#0x5 slli r1,r5,#0x5 sub r1,r6,r1 sll r3,r3,r1 lhi r1,((_negativeone_LF5)>>16)&0xffff addui r1,r1,(_negativeone_LF5)&0xffff lw r1,(r1) xor r2,r3,r1 slli r1,r5,#0x2 lhi r7,((_freepages_LF5)>>16)&0xffff addui r7,r7,(_freepages_LF5)&0xffff add r4,r1,r7 lw r1,(r4) and r1,r1,r2 or r1,r1,r3 sw (r4),r1 addi r29,r29,#-8 lhi r7,((_debugstr)>>16)&0xffff addui r7,r7,(_debugstr)&0xffff sw (r29),r7 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L133_LF5 nop; not filled. addi r29,r29,#-8 lhi r7,((_debugstr)>>16)&0xffff addui r7,r7,(_debugstr)&0xffff sw (r29),r7 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L128_LF5 nop; not filled. L133_LF5: addi r29,r29,#-16 lhi r7,((LC0_LF5)>>16)&0xffff addui r7,r7,(LC0_LF5)&0xffff sw (r29),r7 sw 4(r29),r5 lw r4,(r4) sw 8(r29),r4 jal _printf nop; not filled. addi r29,r29,#16 L128_LF5: lhi r2,((_nfreepages_LF5)>>16)&0xffff addui r2,r2,(_nfreepages_LF5)&0xffff lw r1,(r2) addi r1,r1,#1 sw (r2),r1 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L135_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r3 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L134_LF5 nop; not filled. L135_LF5: addi r29,r29,#-16 lhi r7,((LC7_LF5)>>16)&0xffff addui r7,r7,(LC7_LF5)&0xffff sw (r29),r7 sw 4(r29),r6 lw r2,(r2) sw 8(r29),r2 jal _printf nop; not filled. addi r29,r29,#16 L134_LF5: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreePage .align 2 .proc _MemoryTranslateUserToSystem .global _MemoryTranslateUserToSystem _MemoryTranslateUserToSystem: ; Function 'MemoryTranslateUserToSystem'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) lw r1,4(r30) srli r31,r1,#0x10 andi r2,r1,#0xffff lw r1,160(r3) sgt r1,r31,r1 bnez r1,L139_LF5 nop; not filled. slli r1,r31,#0x2 add r1,r1,r3 lw r1,96(r1) addi r4,r0,#-8 and r1,r1,r4 add r1,r1,r2 j L140_LF5 nop; not filled. L139_LF5: addi r1,r0,#0 L140_LF5: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryTranslateUserToSystem .align 2 .proc _MemoryCopySystemToUser .global _MemoryCopySystemToUser _MemoryCopySystemToUser: ; Function 'MemoryCopySystemToUser'; 0 bytes of locals, 8 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 lw r7,(r30) lw r5,4(r30) lw r4,8(r30) lw r3,12(r30) addi r6,r0,#0 sgti r1,r3,#0 beqz r1,L167_LF5 nop; not filled. lhi r8,#1 addui r8,r8,#0 L168_LF5: srli r2,r4,#0x10 andi r31,r4,#0xffff lw r1,160(r7) sgt r1,r2,r1 beqz r1,L170_LF5 nop; not filled. addi r31,r0,#0 j L169_LF5 nop; not filled. L170_LF5: slli r1,r2,#0x2 add r1,r1,r7 lw r1,96(r1) addi r9,r0,#-8 and r1,r1,r9 add r31,r1,r31 L169_LF5: snei r1,r31,#0 beqz r1,L167_LF5 nop; not filled. andi r1,r31,#65535 sub r2,r8,r1 sgt r1,r2,r3 beqz r1,L172_LF5 nop; not filled. add r2,r0,r3 L172_LF5: addi r29,r29,#-16 sw (r29),r5 sw 4(r29),r31 sw 8(r29),r2 jal _bcopy nop; not filled. addi r29,r29,#16 sub r3,r3,r2 add r6,r6,r2 add r5,r5,r2 add r4,r4,r2 sgti r1,r3,#0 bnez r1,L168_LF5 nop; not filled. L167_LF5: add r1,r0,r6 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCopySystemToUser .align 2 .proc _MemoryCopyUserToSystem .global _MemoryCopyUserToSystem _MemoryCopyUserToSystem: ; Function 'MemoryCopyUserToSystem'; 0 bytes of locals, 8 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 lw r7,(r30) lw r5,8(r30) lw r4,4(r30) lw r3,12(r30) addi r6,r0,#0 sgti r1,r3,#0 beqz r1,L191_LF5 nop; not filled. lhi r8,#1 addui r8,r8,#0 L192_LF5: srli r2,r4,#0x10 andi r31,r4,#0xffff lw r1,160(r7) sgt r1,r2,r1 beqz r1,L194_LF5 nop; not filled. addi r31,r0,#0 j L193_LF5 nop; not filled. L194_LF5: slli r1,r2,#0x2 add r1,r1,r7 lw r1,96(r1) addi r9,r0,#-8 and r1,r1,r9 add r31,r1,r31 L193_LF5: snei r1,r31,#0 beqz r1,L191_LF5 nop; not filled. andi r1,r31,#65535 sub r2,r8,r1 sgt r1,r2,r3 beqz r1,L197_LF5 nop; not filled. add r2,r0,r3 L197_LF5: addi r29,r29,#-16 sw (r29),r31 sw 4(r29),r5 sw 8(r29),r2 jal _bcopy nop; not filled. addi r29,r29,#16 sub r3,r3,r2 add r6,r6,r2 add r5,r5,r2 add r4,r4,r2 sgti r1,r3,#0 bnez r1,L192_LF5 nop; not filled. L191_LF5: add r1,r0,r6 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCopyUserToSystem .align 2 .proc _MemorySetupPte .global _MemorySetupPte _MemorySetupPte: ; Function 'MemorySetupPte'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) slli r1,r1,#0x10 ori r1,r1,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemorySetupPte .align 2 .proc _MemoryFreePte .global _MemoryFreePte _MemoryFreePte: ; Function 'MemoryFreePte'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage addi r29,r29,#-8 lhu r1,(r30) sw (r29),r1 jal _MemoryFreePage nop; not filled. addi r29,r29,#8 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreePte .align 2 .proc _MemoryPteToPage .global _MemoryPteToPage _MemoryPteToPage: ; Function 'MemoryPteToPage'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) addi r31,r0,#-8 and r1,r1,r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryPteToPage .data .align 2 _invalidOps61_LF5: .word 13316 .align 2 LC8_LF5: .ascii "Operand for instruction %08x is 0x%x (reg=<%d,0x%x>)\n\000" .text .align 2 .proc _MemoryGetOperandAddress .global _MemoryGetOperandAddress _MemoryGetOperandAddress: ; Function 'MemoryGetOperandAddress'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r2,(r30) lw r5,4(r30) srli r1,r5,#0x1a addi r31,r1,#-32 sgtui r1,r31,#15 bnez r1,L214_LF5 nop; not filled. lhi r1,((_invalidOps61_LF5)>>16)&0xffff addui r1,r1,(_invalidOps61_LF5)&0xffff lw r1,(r1) srl r1,r1,r31 andi r1,r1,#1 beqz r1,L213_LF5 nop; not filled. L214_LF5: addi r1,r0,#-1 j L218_LF5 nop; not filled. L213_LF5: srli r1,r5,#0x15 andi r6,r1,#31 andi r31,r5,#0xffff srli r1,r31,#0xf beqz r1,L215_LF5 nop; not filled. lhi r7,#-1 addui r7,r7,#0 or r31,r31,r7 L215_LF5: lw r2,(r2) slli r1,r6,#0x2 add r1,r1,r2 lw r3,40(r1) add r4,r3,r31 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L217_LF5 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L216_LF5 nop; not filled. L217_LF5: addi r29,r29,#-24 lhi r7,((LC8_LF5)>>16)&0xffff addui r7,r7,(LC8_LF5)&0xffff sw (r29),r7 sw 4(r29),r5 sw 8(r29),r4 sw 12(r29),r6 sw 16(r29),r3 jal _printf nop; not filled. addi r29,r29,#24 L216_LF5: add r1,r0,r4 L218_LF5: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryGetOperandAddress .data .align 2 _pagestart_LF5: .space 4 .align 2 _freemapmax_LF5: .space 4 .align 2 _nfreepages_LF5: .space 4 .align 2 _freepages_LF5: .space 8192 ; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF6 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF6 nop; not filled. L6_LF6: addi r31,r0,#1 L5_LF6: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF6 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF6 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF6 nop; not filled. L12_LF6: addi r2,r0,#1 L11_LF6: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _dstrcpy .global _dstrcpy _dstrcpy: ; Function 'dstrcpy'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r2,4(r30) add r3,r0,r31 L19_LF6: lb r1,(r2) sb (r31),r1 addi r2,r2,#1 addi r31,r31,#1 andi r1,r1,#0x00ff snei r1,r1,#0 bnez r1,L19_LF6 nop; not filled. add r1,r0,r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrcpy .align 2 .proc _dstrncpy .global _dstrncpy _dstrncpy: ; Function 'dstrncpy'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) lw r3,4(r30) lw r31,8(r30) add r4,r0,r2 j L37_LF6 nop; not filled. L34_LF6: lb r1,(r3) sb (r2),r1 addi r3,r3,#1 addi r2,r2,#1 andi r1,r1,#0x00ff snei r1,r1,#0 beqz r1,L32_LF6 nop; not filled. L37_LF6: add r1,r0,r31 addi r31,r31,#-1 slei r1,r1,#0 beqz r1,L34_LF6 nop; not filled. L32_LF6: add r1,r0,r4 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrncpy .align 2 .proc _dstrcat .global _dstrcat _dstrcat: ; Function 'dstrcat'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) add r3,r0,r31 lbu r1,(r3) snei r1,r1,#0 beqz r1,L50_LF6 nop; not filled. L51_LF6: addi r31,r31,#1 lbu r1,(r31) snei r1,r1,#0 bnez r1,L51_LF6 nop; not filled. L50_LF6: add r2,r0,r31 lw r31,4(r30) L54_LF6: lb r1,(r31) sb (r2),r1 addi r31,r31,#1 addi r2,r2,#1 andi r1,r1,#0x00ff snei r1,r1,#0 bnez r1,L54_LF6 nop; not filled. add r1,r0,r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrcat .align 2 .proc _dstrncmp .global _dstrncmp _dstrncmp: ; Function 'dstrncmp'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r3,(r30) lw r4,4(r30) lw r5,8(r30) addi r2,r0,#0 slt r1,r2,r5 beqz r1,L73_LF6 nop; not filled. L75_LF6: lbu r31,(r4) snei r1,r31,#0 beqz r1,L86_LF6 nop; not filled. lbu r1,(r3) sne r1,r1,r31 bnez r1,L73_LF6 nop; not filled. addi r3,r3,#1 addi r4,r4,#1 addi r2,r2,#1 slt r1,r2,r5 bnez r1,L75_LF6 nop; not filled. L73_LF6: seq r1,r2,r5 beqz r1,L80_LF6 nop; not filled. L86_LF6: addi r1,r0,#0 j L84_LF6 nop; not filled. L80_LF6: lbu r31,(r3) lbu r3,(r4) sub r1,r31,r3 sgei r1,r1,#0 addi r2,r0,#-1 beqz r1,L82_LF6 nop; not filled. sne r2,r31,r3 L82_LF6: add r1,r0,r2 L84_LF6: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrncmp .align 2 .proc _dstrlen .global _dstrlen _dstrlen: ; Function 'dstrlen'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r31,(r30) addi r2,r0,#0 j L97_LF6 nop; not filled. L95_LF6: addi r2,r2,#1 L97_LF6: lbu r1,(r31) addi r31,r31,#1 snei r1,r1,#0 bnez r1,L95_LF6 nop; not filled. add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrlen .align 2 .proc _dstrstr .global _dstrstr _dstrstr: ; Function 'dstrstr'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r5,(r30) lw r7,4(r30) addi r3,r0,#0 lbu r1,(r7) addi r2,r7,#1 snei r1,r1,#0 beqz r1,L125_LF6 nop; not filled. L126_LF6: addi r3,r3,#1 lbu r1,(r2) addi r2,r2,#1 snei r1,r1,#0 bnez r1,L126_LF6 nop; not filled. L125_LF6: add r6,r0,r3 j L149_LF6 nop; not filled. L130_LF6: add r3,r0,r5 add r4,r0,r7 addi r2,r0,#0 slt r1,r2,r6 beqz r1,L134_LF6 nop; not filled. L136_LF6: lbu r31,(r4) snei r1,r31,#0 beqz r1,L150_LF6 nop; not filled. lbu r1,(r3) sne r1,r1,r31 bnez r1,L134_LF6 nop; not filled. addi r3,r3,#1 addi r4,r4,#1 addi r2,r2,#1 slt r1,r2,r6 bnez r1,L136_LF6 nop; not filled. L134_LF6: seq r1,r2,r6 beqz r1,L141_LF6 nop; not filled. L150_LF6: addi r1,r0,#0 j L132_LF6 nop; not filled. L141_LF6: lbu r3,(r3) lbu r2,(r4) sub r1,r3,r2 sgei r1,r1,#0 addi r31,r0,#-1 beqz r1,L143_LF6 nop; not filled. sne r31,r3,r2 L143_LF6: add r1,r0,r31 L132_LF6: snei r1,r1,#0 bnez r1,L131_LF6 nop; not filled. add r1,r0,r5 j L146_LF6 nop; not filled. L131_LF6: addi r5,r5,#1 L149_LF6: lbu r1,(r5) snei r1,r1,#0 bnez r1,L130_LF6 nop; not filled. addi r1,r0,#0 L146_LF6: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrstr .align 2 .proc _dmindex .global _dmindex _dmindex: ; Function 'dmindex'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) lw r6,4(r30) lbu r1,(r4) snei r1,r1,#0 beqz r1,L164_LF6 nop; not filled. add r5,r0,r1 L165_LF6: add r2,r0,r6 lb r31,(r6) andi r1,r31,#0x00ff snei r1,r1,#0 beqz r1,L163_LF6 nop; not filled. lbu r3,(r4) L169_LF6: andi r1,r31,#0x00ff seq r1,r3,r1 beqz r1,L168_LF6 nop; not filled. add r1,r0,r4 j L173_LF6 nop; not filled. L168_LF6: addi r2,r2,#1 lb r31,(r2) andi r1,r31,#0x00ff snei r1,r1,#0 bnez r1,L169_LF6 nop; not filled. L163_LF6: bnez r5,L165_LF6 nop; not filled. L164_LF6: addi r1,r0,#0 L173_LF6: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dmindex .align 2 .proc _dindex .global _dindex _dindex: ; Function 'dindex'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) j L187_LF6 nop; not filled. L183_LF6: andi r1,r31,#0x00ff seq r1,r1,r3 beqz r1,L184_LF6 nop; not filled. add r1,r0,r2 j L186_LF6 nop; not filled. L184_LF6: addi r2,r2,#1 L187_LF6: lb r31,(r2) andi r1,r31,#0x00ff snei r1,r1,#0 bnez r1,L183_LF6 nop; not filled. addi r1,r0,#0 L186_LF6: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dindex .align 2 .proc _ditoa .global _ditoa _ditoa: ; Function 'ditoa'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) lw r4,4(r30) slti r1,r3,#0 beqz r1,L203_LF6 nop; not filled. addi r6,r0,(#0x2d)&0xff j L216_LF6 nop; not filled. L203_LF6: snei r1,r3,#0 bnez r1,L205_LF6 nop; not filled. addi r6,r0,(#0x30)&0xff L216_LF6: sb (r4),r6 addi r4,r4,#1 j L204_LF6 nop; not filled. L205_LF6: addi r31,r0,#1 sle r1,r31,r3 beqz r1,L208_LF6 nop; not filled. L209_LF6: slli r1,r31,#0x2 add r1,r1,r31 slli r31,r1,#0x1 sle r1,r31,r3 bnez r1,L209_LF6 nop; not filled. L208_LF6: addi r5,r0,#10 L212_LF6: movi2fp f0,r31 movi2fp f1,r5 div f0,f0,f1 movfp2i r31,f0 movi2fp f0,r3 movi2fp f1,r31 div f0,f0,f1 movfp2i r2,f0 addi r1,r2,#48 sb (r4),r1 addi r4,r4,#1 movi2fp f0,r2 movi2fp f1,r31 mult f0,f0,f1 movfp2i r1,f0 sub r3,r3,r1 sgti r1,r31,#1 bnez r1,L212_LF6 nop; not filled. L204_LF6: addi r6,r0,(#0x0)&0xff sb (r4),r6 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ditoa .align 2 .proc _dstrtol .global _dstrtol _dstrtol: ; Function 'dstrtol'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#32; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) lw r5,4(r30) lw r4,8(r30) addi r3,r0,#0 j L247_LF6 nop; not filled. L220_LF6: addi r2,r2,#1 L247_LF6: lb r31,(r2) andi r1,r31,#0x00ff seqi r1,r1,#32 bnez r1,L220_LF6 nop; not filled. addi r1,r31,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 bnez r1,L220_LF6 nop; not filled. snei r1,r5,#0 beqz r1,L222_LF6 nop; not filled. sw (r5),r2 L222_LF6: lbu r31,(r2) snei r1,r31,#0 beqz r1,L248_LF6 nop; not filled. seqi r1,r31,#45 beqz r1,L224_LF6 nop; not filled. addi r6,r0,#-1 addi r2,r2,#1 j L225_LF6 nop; not filled. L224_LF6: addi r6,r0,#1 L225_LF6: snei r1,r4,#0 bnez r1,L226_LF6 nop; not filled. lbu r1,(r2) seqi r1,r1,#48 beqz r1,L227_LF6 nop; not filled. addi r2,r2,#1 lbu r31,(r2) seqi r1,r31,#120 bnez r1,L229_LF6 nop; not filled. seqi r1,r31,#88 beqz r1,L228_LF6 nop; not filled. L229_LF6: addi r4,r0,#16 addi r2,r2,#1 j L226_LF6 nop; not filled. L228_LF6: addi r4,r0,#8 j L226_LF6 nop; not filled. L227_LF6: addi r4,r0,#10 L226_LF6: addi r1,r4,#-1 sgtui r1,r1,#15 beqz r1,L233_LF6 nop; not filled. L248_LF6: add r1,r0,r3 j L245_LF6 nop; not filled. L233_LF6: lb r31,(r2) addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 beqz r1,L236_LF6 nop; not filled. andi r1,r31,#0x00ff addi r1,r1,#-48 j L237_LF6 nop; not filled. L236_LF6: addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#25 beqz r1,L238_LF6 nop; not filled. andi r1,r31,#0x00ff addi r1,r1,#-87 j L237_LF6 nop; not filled. L238_LF6: addi r1,r31,#-65 andi r1,r1,#0x00ff sleui r1,r1,#25 beqz r1,L240_LF6 nop; not filled. andi r1,r31,#0x00ff addi r1,r1,#-55 j L237_LF6 nop; not filled. L240_LF6: addi r1,r0,#1000 L237_LF6: slt r31,r1,r4 beqz r31,L246_LF6 nop; not filled. movi2fp f0,r3 movi2fp f1,r4 mult f0,f0,f1 movfp2i r3,f0 add r3,r3,r1 addi r2,r2,#1 bnez r31,L233_LF6 nop; not filled. L246_LF6: snei r1,r5,#0 beqz r1,L244_LF6 nop; not filled. sw (r5),r2 L244_LF6: movi2fp f0,r3 movi2fp f1,r6 mult f0,f0,f1 movfp2i r1,f0 L245_LF6: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dstrtol .align 2 .proc _bcopy .global _bcopy _bcopy: ; Function 'bcopy'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) lw r2,4(r30) lw r31,8(r30) j L259_LF6 nop; not filled. L257_LF6: lb r4,(r3) sb (r2),r4 addi r3,r3,#1 addi r2,r2,#1 L259_LF6: add r1,r0,r31 addi r31,r31,#-1 sgti r1,r1,#0 bnez r1,L257_LF6 nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _bcopy .align 2 .proc _bzero .global _bzero _bzero: ; Function 'bzero'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r31,4(r30) j L270_LF6 nop; not filled. L268_LF6: addi r3,r0,(#0x0)&0xff sb (r2),r3 addi r2,r2,#1 L270_LF6: add r1,r0,r31 addi r31,r31,#-1 sgti r1,r1,#0 bnez r1,L268_LF6 nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _bzero ; Compiled by GCC .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF7 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF7 nop; not filled. L6_LF7: addi r31,r0,#1 L5_LF7: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF7 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF7 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF7 nop; not filled. L12_LF7: addi r2,r0,#1 L11_LF7: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF7 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF7: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 _processQuantum_LF7: .word 100000 .align 2 LC0_LF7: .ascii "Entering ProcessModuleInit\n\000" .align 2 LC1_LF7: .ascii "Initializing PCB %d @ 0x%x.\n\000" .align 2 LC2_LF7: .ascii "Leaving ProcessModuleInit\n\000" .text .align 2 .proc _ProcessModuleInit .global _ProcessModuleInit _ProcessModuleInit: ; Function 'ProcessModuleInit'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L53_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L52_LF7 nop; not filled. L53_LF7: addi r29,r29,#-8 lhi r8,((LC0_LF7)>>16)&0xffff addui r8,r8,(LC0_LF7)&0xffff sw (r29),r8 jal _printf nop; not filled. addi r29,r29,#8 L52_LF7: addi r29,r29,#-8 lhi r2,((_freepcbs_LF7)>>16)&0xffff addui r2,r2,(_freepcbs_LF7)&0xffff sw (r29),r2 jal _QueueInit nop; not filled. lhi r8,((_runQueue_LF7)>>16)&0xffff addui r8,r8,(_runQueue_LF7)&0xffff sw (r29),r8 jal _QueueInit nop; not filled. lhi r8,((_waitQueue_LF7)>>16)&0xffff addui r8,r8,(_waitQueue_LF7)&0xffff sw (r29),r8 jal _QueueInit nop; not filled. lhi r8,((_zombieQueue_LF7)>>16)&0xffff addui r8,r8,(_zombieQueue_LF7)&0xffff sw (r29),r8 jal _QueueInit nop; not filled. addi r4,r0,#0 addi r29,r29,#8 lhi r7,((_debugstr)>>16)&0xffff addui r7,r7,(_debugstr)&0xffff lhi r1,((_pcbs_LF7)>>16)&0xffff addui r1,r1,(_pcbs_LF7)&0xffff add r5,r0,r2 addi r2,r1,#164 add r3,r0,r1 add r6,r0,r3 L57_LF7: addi r29,r29,#-8 sw (r29),r7 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L59_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r7 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L58_LF7 nop; not filled. L59_LF7: addi r29,r29,#-16 lhi r8,((LC1_LF7)>>16)&0xffff addui r8,r8,(LC1_LF7)&0xffff sw (r29),r8 sw 4(r29),r4 sw 8(r29),r6 jal _printf nop; not filled. addi r29,r29,#16 L58_LF7: addi r8,r0,#1 sw 12(r3),r8 addi r8,r0,#0 sw (r2),r8 sw 12(r2),r3 sw 8(r2),r5 sw 4(r2),r5 lw r8,(r5) sw (r2),r8 sw (r5),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r5) addi r1,r1,#1 sw 8(r5),r1 addi r2,r2,#180 addi r3,r3,#180 addi r6,r6,#180 addi r4,r4,#1 slei r1,r4,#31 bnez r1,L57_LF7 nop; not filled. lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff addi r8,r0,#0 sw (r1),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64_LF7 nop; not filled. L65_LF7: addi r29,r29,#-8 lhi r8,((LC2_LF7)>>16)&0xffff addui r8,r8,(LC2_LF7)&0xffff sw (r29),r8 jal _printf nop; not filled. addi r29,r29,#8 L64_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessModuleInit .align 2 .proc _ProcessSetStatus .global _ProcessSetStatus _ProcessSetStatus: ; Function 'ProcessSetStatus'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,12(r3) addi r31,r0,#-64 and r1,r1,r31 or r1,r1,r2 sw 12(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSetStatus .align 2 .proc _ProcessFreeResources .global _ProcessFreeResources _ProcessFreeResources: ; Function 'ProcessFreeResources'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r4,(r30) lhi r3,((_freepcbs_LF7)>>16)&0xffff addui r3,r3,(_freepcbs_LF7)&0xffff addi r2,r4,#164 lw r1,4(r3) sw 172(r4),r3 sw 168(r4),r1 lw r5,(r1) sw (r2),r5 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r3,160(r4) addi r2,r0,#0 slt r1,r2,r3 beqz r1,L98_LF7 nop; not filled. L90_LF7: addi r29,r29,#-8 sw (r29),r4 sw 4(r29),r2 jal _MemoryFreeSharedPte nop; not filled. addi r29,r29,#8 addi r2,r2,#1 slt r1,r2,r3 bnez r1,L90_LF7 nop; not filled. addi r2,r0,#0 L98_LF7: lw r1,160(r4) slt r1,r2,r1 beqz r1,L93_LF7 nop; not filled. add r3,r0,r4 L95_LF7: addi r29,r29,#-8 lw r5,96(r3) sw (r29),r5 jal _MemoryFreePte nop; not filled. addi r29,r29,#8 addi r3,r3,#4 addi r2,r2,#1 lw r1,160(r4) slt r1,r2,r1 bnez r1,L95_LF7 nop; not filled. L93_LF7: addi r29,r29,#-8 lhu r1,8(r4) sw (r29),r1 jal _MemoryFreePage nop; not filled. addi r29,r29,#8 lw r1,12(r4) addi r5,r0,#-64 and r1,r1,r5 ori r1,r1,#1 sw 12(r4),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessFreeResources .align 2 .proc _ProcessSetResult .global _ProcessSetResult _ProcessSetResult: ; Function 'ProcessSetResult'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,4(r30) sw 44(r1),r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSetResult .data .align 2 LC3_LF7: .ascii "Now entering ProcessSchedule (cur=0x%x, %d ready)\n\000" .align 2 LC4_LF7: .ascii "No runnable processes - exiting!\n\000" .align 2 LC5_LF7: .ascii "About to switch to PCB 0x%x,flags=0x%x @ 0x%x\n\000" .align 2 LC6_LF7: .ascii "Freeing zombie PCB 0x%x.\n\000" .align 2 LC7_LF7: .ascii "Leaving ProcessSchedule (cur=0x%x)\n\000" .text .align 2 .proc _ProcessSchedule .global _ProcessSchedule _ProcessSchedule: ; Function 'ProcessSchedule'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#40; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L103_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L102_LF7 nop; not filled. L103_LF7: lhi r1,((_runQueue_LF7)>>16)&0xffff addui r1,r1,(_runQueue_LF7)&0xffff lw r2,8(r1) addi r29,r29,#-16 lhi r8,((LC3_LF7)>>16)&0xffff addui r8,r8,(LC3_LF7)&0xffff sw (r29),r8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 sw 8(r29),r2 jal _printf nop; not filled. addi r29,r29,#16 L102_LF7: lhi r5,((_runQueue_LF7)>>16)&0xffff addui r5,r5,(_runQueue_LF7)&0xffff lw r1,8(r5) seqi r1,r1,#0 beqz r1,L105_LF7 nop; not filled. addi r29,r29,#-8 lhi r8,((LC4_LF7)>>16)&0xffff addui r8,r8,(LC4_LF7)&0xffff sw (r29),r8 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L105_LF7: lw r1,(r5) lw r4,12(r1) lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) seq r1,r4,r1 beqz r1,L109_LF7 nop; not filled. addi r3,r4,#164 lw r1,172(r4) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L111_LF7 nop; not filled. lw r1,168(r4) lw r8,(r3) sw (r1),r8 lw r1,(r3) lw r8,168(r4) sw 4(r1),r8 lw r2,172(r4) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L111_LF7: addi r8,r0,#0 sw (r3),r8 lw r1,4(r5) sw 172(r4),r5 sw 168(r4),r1 lw r8,(r1) sw (r3),r8 sw (r1),r3 lw r1,(r3) sw 4(r1),r3 lw r1,8(r5) addi r1,r1,#1 sw 8(r5),r1 L109_LF7: lhi r1,((_runQueue_LF7)>>16)&0xffff addui r1,r1,(_runQueue_LF7)&0xffff lw r1,(r1) lw r4,12(r1) lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff sw (r1),r4 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L117_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L116_LF7 nop; not filled. L117_LF7: addi r29,r29,#-16 lhi r8,((LC5_LF7)>>16)&0xffff addui r8,r8,(LC5_LF7)&0xffff sw (r29),r8 sw 4(r29),r4 lw r8,12(r4) sw 8(r29),r8 lw r1,4(r4) lw r1,296(r1) sw 12(r29),r1 jal _printf nop; not filled. addi r29,r29,#16 L116_LF7: lhi r7,((_zombieQueue_LF7)>>16)&0xffff addui r7,r7,(_zombieQueue_LF7)&0xffff lhi r6,((_debugstr)>>16)&0xffff addui r6,r6,(_debugstr)&0xffff lhi r5,((_freepcbs_LF7)>>16)&0xffff addui r5,r5,(_freepcbs_LF7)&0xffff L118_LF7: lw r1,8(r7) seqi r1,r1,#0 bnez r1,L119_LF7 nop; not filled. lw r1,(r7) lw r4,12(r1) addi r29,r29,#-8 sw (r29),r6 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L125_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r6 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L124_LF7 nop; not filled. L125_LF7: addi r29,r29,#-8 lhi r8,((LC6_LF7)>>16)&0xffff addui r8,r8,(LC6_LF7)&0xffff sw (r29),r8 sw 4(r29),r4 jal _printf nop; not filled. addi r29,r29,#8 L124_LF7: addi r31,r4,#164 lw r1,172(r4) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L127_LF7 nop; not filled. lw r1,168(r4) lw r8,(r31) sw (r1),r8 lw r1,(r31) lw r8,168(r4) sw 4(r1),r8 lw r2,172(r4) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L127_LF7: addi r8,r0,#0 sw (r31),r8 lw r1,4(r5) sw 172(r4),r5 sw 168(r4),r1 lw r8,(r1) sw (r31),r8 sw (r1),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r5) addi r1,r1,#1 sw 8(r5),r1 lw r3,160(r4) addi r2,r0,#0 slt r1,r2,r3 beqz r1,L145_LF7 nop; not filled. L135_LF7: addi r29,r29,#-8 sw (r29),r4 sw 4(r29),r2 jal _MemoryFreeSharedPte nop; not filled. addi r29,r29,#8 addi r2,r2,#1 slt r1,r2,r3 bnez r1,L135_LF7 nop; not filled. addi r2,r0,#0 L145_LF7: lw r1,160(r4) slt r1,r2,r1 beqz r1,L138_LF7 nop; not filled. add r3,r0,r4 L140_LF7: addi r29,r29,#-8 lw r8,96(r3) sw (r29),r8 jal _MemoryFreePte nop; not filled. addi r29,r29,#8 addi r3,r3,#4 addi r2,r2,#1 lw r1,160(r4) slt r1,r2,r1 bnez r1,L140_LF7 nop; not filled. L138_LF7: addi r29,r29,#-8 lhu r1,8(r4) sw (r29),r1 jal _MemoryFreePage nop; not filled. addi r29,r29,#8 lw r1,12(r4) addi r8,r0,#-64 and r1,r1,r8 ori r1,r1,#1 sw 12(r4),r1 j L118_LF7 nop; not filled. L119_LF7: addi r29,r29,#-8 lhi r1,((_processQuantum_LF7)>>16)&0xffff addui r1,r1,(_processQuantum_LF7)&0xffff lw r1,(r1) sw (r29),r1 jal _TimerSet nop; not filled. lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#112 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L144_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L143_LF7 nop; not filled. L144_LF7: addi r29,r29,#-8 lhi r8,((LC7_LF7)>>16)&0xffff addui r8,r8,(LC7_LF7)&0xffff sw (r29),r8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L143_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSchedule .data .align 2 LC8_LF7: .ascii "Suspending PCB 0x%x (%s).\n\000" .align 2 LC9_LF7: .ascii "%s: %s\n\000" .align 2 LC10_LF7: .ascii "ProcessSuspend\000" .align 2 LC11_LF7: .ascii "Trying to suspend a non-running process!\n\000" .text .align 2 .proc _ProcessSuspend .global _ProcessSuspend _ProcessSuspend: ; Function 'ProcessSuspend'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L148_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L147_LF7 nop; not filled. L148_LF7: addi r29,r29,#-16 lhi r4,((LC8_LF7)>>16)&0xffff addui r4,r4,(LC8_LF7)&0xffff sw (r29),r4 sw 4(r29),r3 addi r1,r3,#16 sw 8(r29),r1 jal _printf nop; not filled. addi r29,r29,#16 L147_LF7: lb r4,15(r3) srli r1,r4,#0x1 andi r1,r1,#1 bnez r1,L150_LF7 nop; not filled. addi r29,r29,#-16 lhi r4,((LC9_LF7)>>16)&0xffff addui r4,r4,(LC9_LF7)&0xffff sw (r29),r4 lhi r1,((LC10_LF7)>>16)&0xffff addui r1,r1,(LC10_LF7)&0xffff sw 4(r29),r1 lhi r4,((LC11_LF7)>>16)&0xffff addui r4,r4,(LC11_LF7)&0xffff sw 8(r29),r4 jal _printf nop; not filled. addi r29,r29,#16 L150_LF7: lw r1,12(r3) addi r4,r0,#-64 and r1,r1,r4 ori r1,r1,#4 sw 12(r3),r1 addi r31,r3,#164 lw r1,172(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L153_LF7 nop; not filled. lw r1,168(r3) lw r4,(r31) sw (r1),r4 lw r1,(r31) lw r4,168(r3) sw 4(r1),r4 lw r2,172(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L153_LF7: addi r4,r0,#0 sw (r31),r4 lhi r2,((_waitQueue_LF7)>>16)&0xffff addui r2,r2,(_waitQueue_LF7)&0xffff lw r1,4(r2) sw 172(r3),r2 sw 168(r3),r1 lw r4,(r1) sw (r31),r4 sw (r1),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessSuspend .data .align 2 LC12_LF7: .ascii "Waking up PCB 0x%x.\n\000" .align 2 LC13_LF7: .ascii "ProcessWakeup\000" .align 2 LC14_LF7: .ascii "Trying to wake up a non-sleeping process!\n\000" .text .align 2 .proc _ProcessWakeup .global _ProcessWakeup _ProcessWakeup: ; Function 'ProcessWakeup'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L159_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L158_LF7 nop; not filled. L159_LF7: addi r29,r29,#-8 lhi r4,((LC12_LF7)>>16)&0xffff addui r4,r4,(LC12_LF7)&0xffff sw (r29),r4 sw 4(r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L158_LF7: lb r4,15(r3) srli r1,r4,#0x2 andi r1,r1,#1 bnez r1,L161_LF7 nop; not filled. addi r29,r29,#-16 lhi r4,((LC9_LF7)>>16)&0xffff addui r4,r4,(LC9_LF7)&0xffff sw (r29),r4 lhi r1,((LC13_LF7)>>16)&0xffff addui r1,r1,(LC13_LF7)&0xffff sw 4(r29),r1 lhi r4,((LC14_LF7)>>16)&0xffff addui r4,r4,(LC14_LF7)&0xffff sw 8(r29),r4 jal _printf nop; not filled. addi r29,r29,#16 L161_LF7: lw r1,12(r3) addi r4,r0,#-64 and r1,r1,r4 ori r1,r1,#2 sw 12(r3),r1 addi r31,r3,#164 lw r1,172(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L164_LF7 nop; not filled. lw r1,168(r3) lw r4,(r31) sw (r1),r4 lw r1,(r31) lw r4,168(r3) sw 4(r1),r4 lw r2,172(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L164_LF7: addi r4,r0,#0 sw (r31),r4 lhi r2,((_runQueue_LF7)>>16)&0xffff addui r2,r2,(_runQueue_LF7)&0xffff lw r1,4(r2) sw 172(r3),r2 sw 168(r3),r1 lw r4,(r1) sw (r31),r4 sw (r1),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessWakeup .data .align 2 LC15_LF7: .ascii "Entering ProcessDestroy for 0x%x.\n\000" .align 2 LC16_LF7: .ascii "Leaving ProcessDestroy for 0x%x.\n\000" .text .align 2 .proc _ProcessDestroy .global _ProcessDestroy _ProcessDestroy: ; Function 'ProcessDestroy'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L170_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L169_LF7 nop; not filled. L170_LF7: addi r29,r29,#-8 lhi r4,((LC15_LF7)>>16)&0xffff addui r4,r4,(LC15_LF7)&0xffff sw (r29),r4 sw 4(r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L169_LF7: lw r1,12(r3) addi r4,r0,#-64 and r1,r1,r4 ori r1,r1,#16 sw 12(r3),r1 addi r31,r3,#164 lw r1,172(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L173_LF7 nop; not filled. lw r1,168(r3) lw r4,(r31) sw (r1),r4 lw r1,(r31) lw r4,168(r3) sw 4(r1),r4 lw r2,172(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L173_LF7: addi r4,r0,#0 sw (r31),r4 lhi r2,((_zombieQueue_LF7)>>16)&0xffff addui r2,r2,(_zombieQueue_LF7)&0xffff sw 172(r3),r2 sw 168(r3),r2 lw r4,(r2) sw (r31),r4 sw (r2),r31 lw r1,(r31) sw 4(r1),r31 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r4,r0,#112 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L177_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#43 sw 4(r29),r4 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L176_LF7 nop; not filled. L177_LF7: addi r29,r29,#-8 lhi r4,((LC16_LF7)>>16)&0xffff addui r4,r4,(LC16_LF7)&0xffff sw (r29),r4 sw 4(r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L176_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessDestroy .data .align 2 _str52_LF7: .space 4 .align 2 _location53_LF7: .word 0 .text .align 2 .proc _get_argument .global _get_argument _get_argument: ; Function 'get_argument'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) snei r1,r2,#0 beqz r1,L190_LF7 nop; not filled. lhi r1,((_str52_LF7)>>16)&0xffff addui r1,r1,(_str52_LF7)&0xffff sw (r1),r2 lhi r1,((_location53_LF7)>>16)&0xffff addui r1,r1,(_location53_LF7)&0xffff addi r5,r0,#0 sw (r1),r5 L190_LF7: lhi r31,((_location53_LF7)>>16)&0xffff addui r31,r31,(_location53_LF7)&0xffff lw r3,(r31) lhi r1,((_str52_LF7)>>16)&0xffff addui r1,r1,(_str52_LF7)&0xffff lw r2,(r1) add r1,r2,r3 lbu r1,(r1) snei r1,r1,#0 beqz r1,L192_LF7 nop; not filled. sgti r1,r3,#98 beqz r1,L191_LF7 nop; not filled. L192_LF7: addi r1,r0,#0 j L199_LF7 nop; not filled. L200_LF7: addi r1,r31,#1 sw (r2),r1 j L194_LF7 nop; not filled. L191_LF7: slei r1,r3,#99 beqz r1,L194_LF7 nop; not filled. add r4,r0,r2 add r2,r0,r31 L196_LF7: lw r31,(r2) add r1,r4,r31 lbu r1,(r1) snei r1,r1,#0 beqz r1,L200_LF7 nop; not filled. addi r1,r31,#1 sw (r2),r1 slei r1,r1,#99 bnez r1,L196_LF7 nop; not filled. L194_LF7: add r1,r0,r3 L199_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _get_argument .data .align 2 LC17_LF7: .ascii "Old interrupt value was 0x%x.\n\000" .align 2 LC18_LF7: .ascii "Entering ProcessFork args=0x%x 0x%x %s %d\n\000" .align 2 LC19_LF7: .ascii "FATAL error: no free processes!\n\000" .align 2 LC20_LF7: .ascii "Got a link @ 0x%x\n\000" .align 2 LC21_LF7: .ascii "Before restore interrupt value is 0x%x.\n\000" .align 2 LC22_LF7: .ascii "New interrupt value is 0x%x.\n\000" .align 2 LC23_LF7: .ascii "aFATAL: couldn\'t allocate memory - no free pages!\n\000" .align 2 LC24_LF7: .ascii "bFATAL: couldn\'t allocate system stack - no free pages!\n\000" .align 2 LC25_LF7: .ascii "Setting up PCB @ 0x%x (sys stack=0x%x, mem=0x%x, size=0x%x)\n\000" .align 2 LC26_LF7: .ascii "About to load %s\n\000" .align 2 LC27_LF7: .ascii "File %s -> start=0x%08x\n\000" .align 2 LC28_LF7: .ascii "File %s -> code @ 0x%08x (size=0x%08x)\n\000" .align 2 LC29_LF7: .ascii "File %s -> data @ 0x%08x (size=0x%08x)\n\000" .align 2 LC30_LF7: .ascii "Placing %d bytes at vaddr %08x.\n\000" .align 2 LC31_LF7: .ascii "Setting currentPCB=0x%x, stackframe=0x%x\n\000" .align 2 LC32_LF7: .ascii "Leaving ProcessFork (%s)\n\000" .text .align 2 .proc _ProcessFork .global _ProcessFork _ProcessFork: ; Function 'ProcessFork'; 672 bytes of locals, 12 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#728; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 sw 44(r29),r13 lw r5,(r30) lw r10,4(r30) lw r12,16(r30) lw r4,20(r30) addi r13,r0,#0 sw -680(r30),r13 addi r29,r29,#-8 addi r13,r0,#15 sw (r29),r13 jal _SetIntrs nop; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#73 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L204_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L203_LF7 nop; not filled. L204_LF7: addi r29,r29,#-8 lhi r13,((LC17_LF7)>>16)&0xffff addui r13,r13,(LC17_LF7)&0xffff sw (r29),r13 sw 4(r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L203_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L206_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L205_LF7 nop; not filled. L206_LF7: addi r29,r29,#-24 lhi r13,((LC18_LF7)>>16)&0xffff addui r13,r13,(LC18_LF7)&0xffff sw (r29),r13 sw 4(r29),r5 sw 8(r29),r10 sw 12(r29),r12 sw 16(r29),r4 jal _printf nop; not filled. addi r29,r29,#24 L205_LF7: lhi r2,((_freepcbs_LF7)>>16)&0xffff addui r2,r2,(_freepcbs_LF7)&0xffff lw r1,8(r2) seqi r1,r1,#0 beqz r1,L207_LF7 nop; not filled. addi r29,r29,#-8 lhi r13,((LC19_LF7)>>16)&0xffff addui r13,r13,(LC19_LF7)&0xffff sw (r29),r13 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L207_LF7: lw r9,(r2) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L212_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L211_LF7 nop; not filled. L212_LF7: addi r29,r29,#-8 lhi r13,((LC20_LF7)>>16)&0xffff addui r13,r13,(LC20_LF7)&0xffff sw (r29),r13 sw 4(r29),r9 jal _printf nop; not filled. addi r29,r29,#8 L211_LF7: lw r1,8(r9) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L214_LF7 nop; not filled. lw r1,4(r9) lw r13,(r9) sw (r1),r13 lw r1,(r9) lw r13,4(r9) sw 4(r1),r13 lw r2,8(r9) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L214_LF7: addi r13,r0,#0 sw (r9),r13 lw r6,12(r9) lw r1,12(r6) addi r13,r0,#-64 and r1,r1,r13 ori r1,r1,#2 sw 12(r6),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#73 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L217_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L216_LF7 nop; not filled. L217_LF7: jal _CurrentIntrs nop; not filled. addi r29,r29,#-8 lhi r13,((LC21_LF7)>>16)&0xffff addui r13,r13,(LC21_LF7)&0xffff sw (r29),r13 sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L216_LF7: addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#73 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L220_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L219_LF7 nop; not filled. L220_LF7: jal _CurrentIntrs nop; not filled. addi r29,r29,#-8 lhi r13,((LC22_LF7)>>16)&0xffff addui r13,r13,(LC22_LF7)&0xffff sw (r29),r13 sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L219_LF7: addi r29,r29,#-8 addi r1,r6,#16 sw (r29),r1 sw 4(r29),r12 jal _dstrcpy nop; not filled. addi r13,r0,#1 sw 160(r6),r13 jal _MemoryAllocPage nop; not filled. add r2,r0,r1 addi r29,r29,#8 snei r1,r2,#0 bnez r1,L221_LF7 nop; not filled. addi r29,r29,#-8 lhi r13,((LC23_LF7)>>16)&0xffff addui r13,r13,(LC23_LF7)&0xffff sw (r29),r13 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L221_LF7: addi r29,r29,#-8 sw (r29),r2 jal _MemorySetupPte nop; not filled. sw 96(r6),r1 jal _MemoryAllocPage nop; not filled. add r2,r0,r1 addi r29,r29,#8 snei r1,r2,#0 bnez r1,L222_LF7 nop; not filled. addi r29,r29,#-8 lhi r13,((LC24_LF7)>>16)&0xffff addui r13,r13,(LC24_LF7)&0xffff sw (r29),r13 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L222_LF7: slli r1,r2,#0x10 sw 8(r6),r1 ori r8,r1,#65164 sw 4(r6),r8 sw (r6),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L224_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L223_LF7 nop; not filled. L224_LF7: addi r29,r29,#-24 lhi r13,((LC25_LF7)>>16)&0xffff addui r13,r13,(LC25_LF7)&0xffff sw (r29),r13 sw 4(r29),r6 lw r13,8(r6) sw 8(r29),r13 lw r13,96(r6) sw 12(r29),r13 lw r1,160(r6) slli r1,r1,#0x10 sw 16(r29),r1 jal _printf nop; not filled. addi r29,r29,#24 L223_LF7: addi r13,r0,#0 sw 40(r8),r13 addi r1,r6,#96 sw 312(r8),r1 lw r13,160(r6) sw 316(r8),r13 lhi r1,#16 addui r1,r1,#16 sw 320(r8),r1 snei r1,r4,#0 beqz r1,L225_LF7 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L227_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L226_LF7 nop; not filled. L227_LF7: addi r29,r29,#-8 lhi r13,((LC26_LF7)>>16)&0xffff addui r13,r13,(LC26_LF7)&0xffff sw (r29),r13 sw 4(r29),r12 jal _printf nop; not filled. addi r29,r29,#8 L226_LF7: addi r29,r29,#-24 sw (r29),r12 addi r1,r30,#-660 sw 4(r29),r1 addi r1,r30,#-664 sw 8(r29),r1 addi r1,r30,#-668 sw 12(r29),r1 addi r1,r30,#-672 sw 16(r29),r1 addi r1,r30,#-676 sw 20(r29),r1 jal _ProcessGetCodeInfo nop; not filled. add r5,r0,r1 addi r29,r29,#24 slti r1,r5,#0 beqz r1,L228_LF7 nop; not filled. lhi r3,((_freepcbs_LF7)>>16)&0xffff addui r3,r3,(_freepcbs_LF7)&0xffff addi r2,r6,#164 lw r1,4(r3) sw 172(r6),r3 sw 168(r6),r1 lw r13,(r1) sw (r2),r13 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r3,160(r6) addi r2,r0,#0 slt r1,r2,r3 beqz r1,L293_LF7 nop; not filled. L236_LF7: addi r29,r29,#-8 sw (r29),r6 sw 4(r29),r2 jal _MemoryFreeSharedPte nop; not filled. addi r29,r29,#8 addi r2,r2,#1 slt r1,r2,r3 bnez r1,L236_LF7 nop; not filled. addi r2,r0,#0 L293_LF7: lw r1,160(r6) slt r1,r2,r1 beqz r1,L239_LF7 nop; not filled. add r3,r0,r6 L241_LF7: addi r29,r29,#-8 lw r13,96(r3) sw (r29),r13 jal _MemoryFreePte nop; not filled. addi r29,r29,#8 addi r3,r3,#4 addi r2,r2,#1 lw r1,160(r6) slt r1,r2,r1 bnez r1,L241_LF7 nop; not filled. L239_LF7: addi r29,r29,#-8 lhu r1,8(r6) sw (r29),r1 jal _MemoryFreePage nop; not filled. addi r29,r29,#8 lw r1,12(r6) addi r13,r0,#-64 and r1,r1,r13 ori r1,r1,#1 sw 12(r6),r1 addi r1,r0,#-1 j L290_LF7 nop; not filled. L228_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L245_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L244_LF7 nop; not filled. L245_LF7: addi r29,r29,#-16 lhi r13,((LC27_LF7)>>16)&0xffff addui r13,r13,(LC27_LF7)&0xffff sw (r29),r13 sw 4(r29),r12 lw r13,-660(r30) sw 8(r29),r13 jal _printf nop; not filled. addi r29,r29,#16 L244_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L247_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L246_LF7 nop; not filled. L247_LF7: addi r29,r29,#-16 lhi r13,((LC28_LF7)>>16)&0xffff addui r13,r13,(LC28_LF7)&0xffff sw (r29),r13 sw 4(r29),r12 lw r13,-664(r30) sw 8(r29),r13 lw r13,-668(r30) sw 12(r29),r13 jal _printf nop; not filled. addi r29,r29,#16 L246_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L249_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L248_LF7 nop; not filled. L249_LF7: addi r29,r29,#-16 lhi r13,((LC29_LF7)>>16)&0xffff addui r13,r13,(LC29_LF7)&0xffff sw (r29),r13 sw 4(r29),r12 lw r13,-672(r30) sw 8(r29),r13 lw r13,-676(r30) sw 12(r29),r13 jal _printf nop; not filled. addi r29,r29,#16 L248_LF7: addi r3,r30,#-112 addi r7,r30,#-680 lhi r4,((_debugstr)>>16)&0xffff addui r4,r4,(_debugstr)&0xffff L250_LF7: addi r29,r29,#-16 sw (r29),r5 sw 4(r29),r3 sw 8(r29),r7 addi r13,r0,#100 sw 12(r29),r13 jal _ProcessGetFromFile nop; not filled. add r2,r0,r1 addi r29,r29,#16 sgti r1,r2,#0 beqz r1,L251_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r4 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L254_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r4 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L253_LF7 nop; not filled. L254_LF7: addi r29,r29,#-16 lhi r13,((LC30_LF7)>>16)&0xffff addui r13,r13,(LC30_LF7)&0xffff sw (r29),r13 sw 4(r29),r2 lw r1,-680(r30) sub r1,r1,r2 sw 8(r29),r1 jal _printf nop; not filled. addi r29,r29,#16 L253_LF7: addi r29,r29,#-16 sw (r29),r6 sw 4(r29),r3 lw r1,-680(r30) sub r1,r1,r2 sw 8(r29),r1 sw 12(r29),r2 jal _MemoryCopySystemToUser nop; not filled. addi r29,r29,#16 j L250_LF7 nop; not filled. L251_LF7: addi r29,r29,#-8 sw (r29),r5 jal _FsClose nop; not filled. addi r13,r0,#256 sw 300(r8),r13 addui r13,r0,#64512 sw 156(r8),r13 addi r29,r29,#-8 sw (r29),r6 sw 4(r29),r10 lw r13,156(r8) sw 8(r29),r13 addi r13,r0,#992 sw 12(r29),r13 jal _MemoryCopySystemToUser nop; not filled. addi r29,r29,#16 snei r1,r10,#0 beqz r1,L256_LF7 nop; not filled. lhi r1,((_str52_LF7)>>16)&0xffff addui r1,r1,(_str52_LF7)&0xffff sw (r1),r10 lhi r1,((_location53_LF7)>>16)&0xffff addui r1,r1,(_location53_LF7)&0xffff addi r13,r0,#0 sw (r1),r13 L256_LF7: lhi r3,((_location53_LF7)>>16)&0xffff addui r3,r3,(_location53_LF7)&0xffff lw r4,(r3) lhi r1,((_str52_LF7)>>16)&0xffff addui r1,r1,(_str52_LF7)&0xffff lw r2,(r1) add r1,r2,r4 lbu r1,(r1) snei r1,r1,#0 beqz r1,L258_LF7 nop; not filled. sgti r1,r4,#98 beqz r1,L257_LF7 nop; not filled. L258_LF7: addi r3,r0,#0 j L255_LF7 nop; not filled. L291_LF7: addi r1,r2,#1 sw (r3),r1 j L260_LF7 nop; not filled. L257_LF7: slei r1,r4,#99 beqz r1,L260_LF7 nop; not filled. add r5,r0,r2 L262_LF7: lw r2,(r3) add r1,r5,r2 lbu r1,(r1) snei r1,r1,#0 beqz r1,L291_LF7 nop; not filled. addi r1,r2,#1 sw (r3),r1 slei r1,r1,#99 bnez r1,L262_LF7 nop; not filled. L260_LF7: add r3,r0,r4 L255_LF7: addui r2,r0,#64512 add r1,r3,r2 sw -648(r30),r1 addi r7,r0,#3 lhi r4,((_location53_LF7)>>16)&0xffff addui r4,r4,(_location53_LF7)&0xffff lhi r11,((_str52_LF7)>>16)&0xffff addui r11,r11,(_str52_LF7)&0xffff add r10,r0,r2 addi r5,r30,#4 L265_LF7: lw r31,(r4) lw r3,(r11) add r1,r3,r31 lbu r1,(r1) snei r1,r1,#0 beqz r1,L271_LF7 nop; not filled. sgti r1,r31,#98 beqz r1,L270_LF7 nop; not filled. L271_LF7: addi r3,r0,#0 j L268_LF7 nop; not filled. L292_LF7: addi r1,r3,#1 sw (r4),r1 j L273_LF7 nop; not filled. L270_LF7: slei r1,r31,#99 beqz r1,L273_LF7 nop; not filled. add r2,r0,r3 L275_LF7: lw r3,(r4) add r1,r2,r3 lbu r1,(r1) snei r1,r1,#0 beqz r1,L292_LF7 nop; not filled. addi r1,r3,#1 sw (r4),r1 slei r1,r1,#99 bnez r1,L275_LF7 nop; not filled. L273_LF7: add r3,r0,r31 L268_LF7: add r1,r3,r10 sw -648(r5),r1 snei r1,r3,#0 beqz r1,L266_LF7 nop; not filled. addi r5,r5,#4 addi r7,r7,#1 j L265_LF7 nop; not filled. L266_LF7: addi r1,r7,#-2 sw -656(r30),r1 slli r1,r1,#0x2 sub r1,r10,r1 sw -652(r30),r1 addi r29,r29,#-16 sw (r29),r6 addi r1,r30,#-656 sw 4(r29),r1 slli r2,r7,#0x2 lw r1,156(r8) sub r1,r1,r2 sw 8(r29),r1 sw 12(r29),r2 jal _MemoryCopySystemToUser nop; not filled. lw r1,156(r8) sub r1,r1,r2 sw 156(r8),r1 lw r13,-660(r30) sw 296(r8),r13 lw r1,12(r6) ori r1,r1,#512 sw 12(r6),r1 addi r29,r29,#16 j L279_LF7 nop; not filled. L225_LF7: lhi r13,((_ProcessExit_LF7)>>16)&0xffff addui r13,r13,(_ProcessExit_LF7)&0xffff sw 164(r8),r13 lw r1,8(r6) addui r1,r1,#65504 sw 156(r8),r1 sw (r1),r10 sw 296(r8),r5 addi r13,r0,#320 sw 300(r8),r13 lw r1,12(r6) ori r1,r1,#256 sw 12(r6),r1 L279_LF7: addi r29,r29,#-8 addi r13,r0,#15 sw (r29),r13 jal _SetIntrs nop; not filled. addi r29,r29,#8 lhi r3,((_runQueue_LF7)>>16)&0xffff addui r3,r3,(_runQueue_LF7)&0xffff lw r2,4(r3) sw 8(r9),r3 sw 4(r9),r2 lw r13,(r2) sw (r9),r13 sw (r2),r9 lw r2,(r9) sw 4(r2),r9 lw r2,8(r3) addi r2,r2,#1 sw 8(r3),r2 addi r29,r29,#-8 sw (r29),r1 jal _SetIntrs nop; not filled. addi r29,r29,#8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) snei r1,r1,#0 bnez r1,L285_LF7 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L287_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L286_LF7 nop; not filled. L287_LF7: addi r29,r29,#-16 lhi r13,((LC31_LF7)>>16)&0xffff addui r13,r13,(LC31_LF7)&0xffff sw (r29),r13 sw 4(r29),r6 lw r13,(r6) sw 8(r29),r13 jal _printf nop; not filled. addi r29,r29,#16 L286_LF7: lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff sw (r1),r6 L285_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r13,r0,#112 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L289_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r13,r0,#43 sw 4(r29),r13 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L288_LF7 nop; not filled. L289_LF7: addi r29,r29,#-8 lhi r13,((LC32_LF7)>>16)&0xffff addui r13,r13,(LC32_LF7)&0xffff sw (r29),r13 sw 4(r29),r12 jal _printf nop; not filled. addi r29,r29,#8 L288_LF7: lhi r13,((_pcbs_LF7)>>16)&0xffff addui r13,r13,(_pcbs_LF7)&0xffff sub r2,r6,r13 lhi r1,#-23302 addui r1,r1,#20389 movi2fp f0,r2 movi2fp f1,r1 mult f0,f0,f1 movfp2i r1,f0 srai r1,r1,#0x2 L290_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r13,44(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessFork .data .align 2 LC33_LF7: .ascii "ProcessGetCodeInfo: open of %s failed (%d).\n\000" .align 2 LC34_LF7: .ascii "File descriptor is now %d.\n\000" .align 2 LC35_LF7: .ascii "ProcessGetCodeInfo: read got %d (not %d) bytes from %s\n\000" .align 2 LC36_LF7: .ascii "start:\000" .align 2 LC37_LF7: .ascii "ProcessGetCodeInfo: %s missing start line (not a DLX executable?)\n\000" .text .align 2 .proc _ProcessGetCodeInfo .global _ProcessGetCodeInfo _ProcessGetCodeInfo: ; Function 'ProcessGetCodeInfo'; 112 bytes of locals, 11 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#168; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 lw r6,(r30) lw r7,4(r30) lw r8,8(r30) lw r9,12(r30) lw r10,16(r30) lw r11,20(r30) addi r29,r29,#-8 sw (r29),r6 addi r12,r0,#1 sw 4(r29),r12 jal _FsOpen nop; not filled. add r3,r0,r1 addi r29,r29,#8 slti r1,r3,#0 beqz r1,L302_LF7 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L304_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L311_LF7 nop; not filled. L304_LF7: addi r29,r29,#-16 lhi r12,((LC33_LF7)>>16)&0xffff addui r12,r12,(LC33_LF7)&0xffff sw (r29),r12 sw 4(r29),r6 sw 8(r29),r3 jal _printf nop; not filled. addi r29,r29,#16 j L311_LF7 nop; not filled. L302_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L306_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L305_LF7 nop; not filled. L306_LF7: addi r29,r29,#-8 lhi r12,((LC34_LF7)>>16)&0xffff addui r12,r12,(LC34_LF7)&0xffff sw (r29),r12 sw 4(r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L305_LF7: addi r29,r29,#-16 sw (r29),r3 addi r4,r30,#-112 sw 4(r29),r4 addi r12,r0,#100 sw 8(r29),r12 jal _FsRead nop; not filled. add r5,r0,r1 addi r29,r29,#16 snei r1,r5,#100 beqz r1,L307_LF7 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L309_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L308_LF7 nop; not filled. L309_LF7: addi r29,r29,#-16 lhi r12,((LC35_LF7)>>16)&0xffff addui r12,r12,(LC35_LF7)&0xffff sw (r29),r12 sw 4(r29),r5 addi r12,r0,#100 sw 8(r29),r12 sw 12(r29),r6 jal _printf nop; not filled. addi r29,r29,#16 L308_LF7: addi r29,r29,#-8 sw (r29),r3 jal _FsClose nop; not filled. addi r1,r0,#-1 addi r29,r29,#8 j L301_LF7 nop; not filled. L307_LF7: addi r29,r29,#-8 sw (r29),r4 lhi r1,((LC36_LF7)>>16)&0xffff addui r1,r1,(LC36_LF7)&0xffff sw 4(r29),r1 jal _dstrstr nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L310_LF7 nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L312_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L311_LF7 nop; not filled. L312_LF7: addi r29,r29,#-8 lhi r12,((LC37_LF7)>>16)&0xffff addui r12,r12,(LC37_LF7)&0xffff sw (r29),r12 sw 4(r29),r6 jal _printf nop; not filled. addi r29,r29,#8 L311_LF7: addi r1,r0,#-1 j L301_LF7 nop; not filled. L310_LF7: addi r29,r29,#-8 sw (r29),r4 addi r12,r0,#58 sw 4(r29),r12 jal _dindex nop; not filled. addi r1,r1,#1 sw -116(r30),r1 addi r29,r29,#-8 sw (r29),r1 addi r2,r30,#-116 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. sw (r7),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. sw (r8),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. sw (r9),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. sw (r10),r1 lw r12,-116(r30) sw (r29),r12 sw 4(r29),r2 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. sw (r11),r1 sw (r29),r4 addi r12,r0,#10 sw 4(r29),r12 jal _dindex nop; not filled. addi r2,r30,#-113 sub r1,r1,r2 sw (r29),r3 sw 4(r29),r1 addi r12,r0,#0 sw 8(r29),r12 jal _FsSeek nop; not filled. add r1,r0,r3 addi r29,r29,#16 L301_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessGetCodeInfo .data .align 2 LC38_LF7: .ascii "Got %d bytes at offset %d ...\000" .align 2 LC39_LF7: .ascii " terminated at %d.\n\000" .align 2 LC40_LF7: .ascii "Buffer is \'%s\'\n\000" .align 2 LC41_LF7: .ascii "New address is 0x%x.\n\000" .align 2 LC42_LF7: .ascii "Seeking to %d and returning %d bytes!\n\000" .text .align 2 .proc _ProcessGetFromFile .global _ProcessGetFromFile _ProcessGetFromFile: ; Function 'ProcessGetFromFile'; 216 bytes of locals, 11 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#272; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 lw r10,(r30) lw r7,8(r30) lw r2,12(r30) lw r11,4(r30) addi r3,r30,#-216 sw -220(r30),r3 addi r29,r29,#-16 sw (r29),r10 addi r12,r0,#0 sw 4(r29),r12 addi r12,r0,#1 sw 8(r29),r12 jal _FsSeek nop; not filled. add r9,r0,r1 slli r2,r2,#0x1 addi r29,r29,#16 sgtui r1,r2,#200 beqz r1,L315_LF7 nop; not filled. addi r2,r0,#200 L315_LF7: addi r29,r29,#-16 sw (r29),r10 sw 4(r29),r3 sw 8(r29),r2 jal _FsRead nop; not filled. add r5,r0,r1 addi r29,r29,#16 slei r1,r5,#0 beqz r1,L316_LF7 nop; not filled. addi r1,r0,#0 j L370_LF7 nop; not filled. L316_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L318_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L317_LF7 nop; not filled. L318_LF7: addi r29,r29,#-16 lhi r12,((LC38_LF7)>>16)&0xffff addui r12,r12,(LC38_LF7)&0xffff sw (r29),r12 sw 4(r29),r5 sw 8(r29),r9 jal _printf nop; not filled. addi r29,r29,#16 L317_LF7: addi r5,r5,#-1 addi r1,r30,#-216 add r2,r1,r5 j L373_LF7 nop; not filled. L319_LF7: addi r2,r2,#-1 addi r5,r5,#-1 L373_LF7: lbu r1,(r2) snei r1,r1,#10 bnez r1,L319_LF7 nop; not filled. addi r1,r30,#-215 add r1,r1,r5 addi r12,r0,(#0x5a)&0xff sb (r1),r12 addi r1,r30,#-214 add r1,r1,r5 addi r12,r0,(#0x0)&0xff sb (r1),r12 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L324_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L323_LF7 nop; not filled. L324_LF7: addi r29,r29,#-8 lhi r12,((LC39_LF7)>>16)&0xffff addui r12,r12,(LC39_LF7)&0xffff sw (r29),r12 sw 4(r29),r5 jal _printf nop; not filled. addi r29,r29,#8 L323_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L326_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L325_LF7 nop; not filled. L326_LF7: addi r29,r29,#-8 lhi r12,((LC40_LF7)>>16)&0xffff addui r12,r12,(LC40_LF7)&0xffff sw (r29),r12 addi r1,r30,#-216 sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L325_LF7: addi r5,r0,#0 lhi r8,((_debugstr)>>16)&0xffff addui r8,r8,(_debugstr)&0xffff L327_LF7: addi r29,r29,#-8 lw r12,-220(r30) sw (r29),r12 addi r12,r0,#90 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L328_LF7 nop; not filled. addi r29,r29,#-8 lw r12,-220(r30) sw (r29),r12 addi r12,r0,#58 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L328_LF7 nop; not filled. lw r2,-220(r30) lbu r1,(r2) snei r1,r1,#58 beqz r1,L372_LF7 nop; not filled. sgti r1,r5,#0 bnez r1,L328_LF7 nop; not filled. addi r29,r29,#-16 sw (r29),r2 addi r1,r30,#-220 sw 4(r29),r1 addi r12,r0,#16 sw 8(r29),r12 jal _dstrtol nop; not filled. sw (r7),r1 sw (r29),r8 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L334_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r8 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L331_LF7 nop; not filled. L334_LF7: addi r29,r29,#-8 lhi r12,((LC41_LF7)>>16)&0xffff addui r12,r12,(LC41_LF7)&0xffff sw (r29),r12 lw r1,(r7) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L331_LF7: lw r1,-220(r30) lbu r1,(r1) snei r1,r1,#58 bnez r1,L328_LF7 nop; not filled. L372_LF7: lw r1,-220(r30) addi r1,r1,#1 sw -220(r30),r1 add r6,r5,r11 L338_LF7: lw r1,-220(r30) j L374_LF7 nop; not filled. L341_LF7: lw r1,-220(r30) addi r1,r1,#1 sw -220(r30),r1 L374_LF7: lbu r31,(r1) seqi r1,r31,#32 bnez r1,L341_LF7 nop; not filled. seqi r1,r31,#9 bnez r1,L341_LF7 nop; not filled. lw r2,-220(r30) lb r31,(r2) andi r3,r31,#0x00ff seqi r1,r3,#10 beqz r1,L343_LF7 nop; not filled. addi r1,r2,#1 sw -220(r30),r1 j L327_LF7 nop; not filled. L343_LF7: addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L349_LF7 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L349_LF7 nop; not filled. snei r1,r3,#65 bnez r1,L348_LF7 nop; not filled. L349_LF7: addi r2,r0,#1 L348_LF7: snei r1,r2,#0 beqz r1,L327_LF7 nop; not filled. lw r1,-220(r30) lb r2,1(r1) addi r3,r0,#0 addi r1,r2,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L352_LF7 nop; not filled. addi r1,r2,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L352_LF7 nop; not filled. andi r1,r2,#0x00ff snei r1,r1,#65 bnez r1,L351_LF7 nop; not filled. L352_LF7: addi r3,r0,#1 L351_LF7: snei r1,r3,#0 beqz r1,L327_LF7 nop; not filled. lw r1,-220(r30) lbu r2,(r1) add r3,r0,r2 addi r31,r2,#-48 sleui r1,r31,#9 beqz r1,L354_LF7 nop; not filled. add r4,r0,r31 j L353_LF7 nop; not filled. L354_LF7: addi r1,r2,#-97 sleui r1,r1,#5 beqz r1,L356_LF7 nop; not filled. addi r4,r2,#-87 j L353_LF7 nop; not filled. L356_LF7: addi r1,r3,#-65 sleui r1,r1,#5 addi r4,r0,#0 beqz r1,L353_LF7 nop; not filled. addi r4,r3,#-55 L353_LF7: lw r1,-220(r30) lbu r2,1(r1) add r3,r0,r2 addi r31,r2,#-48 sleui r1,r31,#9 beqz r1,L361_LF7 nop; not filled. add r2,r0,r31 j L360_LF7 nop; not filled. L361_LF7: addi r1,r2,#-97 sleui r1,r1,#5 beqz r1,L363_LF7 nop; not filled. addi r2,r2,#-87 j L360_LF7 nop; not filled. L363_LF7: addi r1,r3,#-65 sleui r1,r1,#5 addi r2,r0,#0 beqz r1,L360_LF7 nop; not filled. addi r2,r3,#-55 L360_LF7: slli r1,r4,#0x4 add r1,r1,r2 sb (r6),r1 addi r6,r6,#1 addi r5,r5,#1 lw r1,-220(r30) addi r1,r1,#2 sw -220(r30),r1 lw r1,(r7) addi r1,r1,#1 sw (r7),r1 j L338_LF7 nop; not filled. L328_LF7: addi r29,r29,#-16 sw (r29),r10 lw r1,-220(r30) add r1,r1,r9 addi r3,r30,#-216 sub r1,r1,r3 sw 4(r29),r1 addi r12,r0,#0 sw 8(r29),r12 jal _FsSeek nop; not filled. lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r12,r0,#102 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L369_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r12,r0,#43 sw 4(r29),r12 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L368_LF7 nop; not filled. L369_LF7: addi r29,r29,#-16 lhi r12,((LC42_LF7)>>16)&0xffff addui r12,r12,(LC42_LF7)&0xffff sw (r29),r12 lw r1,-220(r30) add r1,r1,r9 sub r1,r1,r3 sw 4(r29),r1 sw 8(r29),r5 jal _printf nop; not filled. addi r29,r29,#16 L368_LF7: add r1,r0,r5 L370_LF7: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessGetFromFile .data .align 2 _temppcb64_LF7: .space 180 .align 2 LC43_LF7: .ascii "Got %d arguments.\n\000" .align 2 LC44_LF7: .ascii "Available memory: 0x%x -> 0x%x.\n\000" .align 2 LC45_LF7: .ascii "Argument count is %d.\n\000" .align 2 LC46_LF7: .ascii "Argument %d is %s.\n\000" .align 2 LC47_LF7: .ascii "Converted %s to %d=%s\n\000" _buf65_LF7: .space 200 .align 2 LC48_LF7: .ascii "%08x: %02x%02x%02x%02x\n\000" .align 2 LC49_LF7: .ascii "Option %s not recognized.\n\000" .align 2 LC50_LF7: .ascii "About to initialize queues.\n\000" .align 2 LC51_LF7: .ascii "After initializing queues.\n\000" .align 2 LC52_LF7: .ascii "After initializing memory.\n\000" .align 2 LC53_LF7: .ascii "After initializing processes.\n\000" .align 2 LC54_LF7: .ascii "After initializing shared memory.\n\000" .align 2 LC55_LF7: .ascii "After initializing synchronization tools.\n\000" .align 2 LC56_LF7: .ascii "After initializing keyboard.\n\000" .align 2 LC57_LF7: .ascii "vm\000" .align 2 LC58_LF7: .ascii "VM Descriptor is %d\n\000" .align 2 LC59_LF7: .ascii "Created processes - about to set timer quantum.\n\000" .align 2 LC60_LF7: .ascii "Set timer quantum to %d, about to run first process.\n\000" .text .align 2 .proc _main .global _main _main: ; Function 'main'; 192 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#200; alloc local storage lw r14,(r30) lw r20,4(r30) jal ___main nop; not filled. addi r16,r0,#0 addi r21,r0,#0 sw -176(r30),r21 sw -172(r30),r21 sw -168(r30),r21 sw -164(r30),r21 sw -160(r30),r21 sw -156(r30),r21 sw -152(r30),r21 sw -148(r30),r21 sw -144(r30),r21 sw -140(r30),r21 sw -136(r30),r21 sw -132(r30),r21 lhi r1,((_debugstr)>>16)&0xffff addui r1,r1,(_debugstr)&0xffff addi r21,r0,(#0x0)&0xff sb (r1),r21 jal _MyFuncRetZero nop; not filled. addi r29,r29,#-8 lhi r21,((LC43_LF7)>>16)&0xffff addui r21,r21,(LC43_LF7)&0xffff sw (r29),r21 sw 4(r29),r14 jal _printf nop; not filled. jal _MemoryGetSize nop; not filled. addi r29,r29,#-8 lhi r21,((LC44_LF7)>>16)&0xffff addui r21,r21,(LC44_LF7)&0xffff sw (r29),r21 lhi r2,((_lastosaddress)>>16)&0xffff addui r2,r2,(_lastosaddress)&0xffff lw r2,(r2) sw 4(r29),r2 sw 8(r29),r1 jal _printf nop; not filled. lhi r21,((LC45_LF7)>>16)&0xffff addui r21,r21,(LC45_LF7)&0xffff sw (r29),r21 sw 4(r29),r14 jal _printf nop; not filled. addi r9,r0,#0 addi r29,r29,#16 slt r1,r9,r14 beqz r1,L377_LF7 nop; not filled. add r2,r0,r20 L379_LF7: addi r29,r29,#-16 lhi r21,((LC46_LF7)>>16)&0xffff addui r21,r21,(LC46_LF7)&0xffff sw (r29),r21 sw 4(r29),r9 lw r21,(r2) sw 8(r29),r21 jal _printf nop; not filled. addi r29,r29,#16 addi r2,r2,#4 addi r9,r9,#1 slt r1,r9,r14 bnez r1,L379_LF7 nop; not filled. L377_LF7: jal _FsModuleInit nop; not filled. addi r9,r0,#0 slt r1,r9,r14 beqz r1,L382_LF7 nop; not filled. addi r12,r30,#-128 addi r13,r30,#-200 lhi r15,((_buf65_LF7)>>16)&0xffff addui r15,r15,(_buf65_LF7)&0xffff addi r18,r15,#1 addi r17,r15,#2 add r8,r0,r20 L384_LF7: lw r2,(r8) lbu r1,(r2) seqi r1,r1,#45 beqz r1,L383_LF7 nop; not filled. lbu r2,1(r2) seqi r1,r2,#102 bnez r1,L389_LF7 nop; not filled. sgti r1,r2,#102 bnez r1,L401_LF7 nop; not filled. seqi r1,r2,#68 beqz r1,L399_LF7 nop; not filled. j L387_LF7 nop; not filled. L401_LF7: seqi r1,r2,#105 bnez r1,L388_LF7 nop; not filled. seqi r1,r2,#117 beqz r1,L399_LF7 nop; not filled. j L398_LF7 nop; not filled. L387_LF7: addi r29,r29,#-8 lhi r21,((_debugstr)>>16)&0xffff addui r21,r21,(_debugstr)&0xffff sw (r29),r21 addi r8,r8,#4 addi r9,r9,#1 lw r1,(r8) sw 4(r29),r1 jal _dstrcpy nop; not filled. j L436_LF7 nop; not filled. L388_LF7: addi r29,r29,#-16 addi r8,r8,#4 addi r9,r9,#1 lw r21,(r8) sw (r29),r21 addi r21,r0,#0 sw 4(r29),r21 sw 8(r29),r21 jal _dstrtol nop; not filled. add r3,r0,r1 sw (r29),r1 sw 4(r29),r12 jal _ditoa nop; not filled. lhi r21,((LC47_LF7)>>16)&0xffff addui r21,r21,(LC47_LF7)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 sw 8(r29),r3 sw 12(r29),r12 jal _printf nop; not filled. addi r29,r29,#16 j L386_LF7 nop; not filled. L389_LF7: addi r21,r0,#0 sw -200(r30),r21 addi r29,r29,#-24 addi r8,r8,#4 addi r9,r9,#1 lw r21,(r8) sw (r29),r21 addi r1,r30,#-180 sw 4(r29),r1 addi r1,r30,#-184 sw 8(r29),r1 addi r1,r30,#-188 sw 12(r29),r1 addi r1,r30,#-192 sw 16(r29),r1 addi r1,r30,#-196 sw 20(r29),r1 jal _ProcessGetCodeInfo nop; not filled. add r10,r0,r1 lhi r21,((LC27_LF7)>>16)&0xffff addui r21,r21,(LC27_LF7)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 lw r21,-180(r30) sw 8(r29),r21 jal _printf nop; not filled. lhi r21,((LC28_LF7)>>16)&0xffff addui r21,r21,(LC28_LF7)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 lw r21,-184(r30) sw 8(r29),r21 lw r21,-188(r30) sw 12(r29),r21 jal _printf nop; not filled. lhi r21,((LC29_LF7)>>16)&0xffff addui r21,r21,(LC29_LF7)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 lw r21,-192(r30) sw 8(r29),r21 lw r21,-196(r30) sw 12(r29),r21 jal _printf nop; not filled. addi r29,r29,#24 lhi r11,((_buf65_LF7+3)>>16)&0xffff addui r11,r11,(_buf65_LF7+3)&0xffff L390_LF7: addi r29,r29,#-16 sw (r29),r10 lhi r21,((_buf65_LF7)>>16)&0xffff addui r21,r21,(_buf65_LF7)&0xffff sw 4(r29),r21 sw 8(r29),r13 addi r21,r0,#200 sw 12(r29),r21 jal _ProcessGetFromFile nop; not filled. add r3,r0,r1 addi r29,r29,#16 sgti r1,r3,#0 beqz r1,L391_LF7 nop; not filled. addi r2,r0,#0 slt r1,r2,r3 beqz r1,L390_LF7 nop; not filled. add r7,r0,r11 add r6,r0,r17 add r5,r0,r18 add r4,r0,r15 L396_LF7: addi r29,r29,#-24 lhi r21,((LC48_LF7)>>16)&0xffff addui r21,r21,(LC48_LF7)&0xffff sw (r29),r21 lw r1,-200(r30) add r1,r1,r2 sub r1,r1,r3 sw 4(r29),r1 lbu r1,(r4) sw 8(r29),r1 lbu r1,(r5) sw 12(r29),r1 lbu r1,(r6) sw 16(r29),r1 lbu r1,(r7) sw 20(r29),r1 jal _printf nop; not filled. addi r29,r29,#24 addi r7,r7,#4 addi r6,r6,#4 addi r5,r5,#4 addi r4,r4,#4 addi r2,r2,#4 slt r1,r2,r3 bnez r1,L396_LF7 nop; not filled. j L390_LF7 nop; not filled. L391_LF7: addi r29,r29,#-8 sw (r29),r10 jal _close nop; not filled. j L436_LF7 nop; not filled. L398_LF7: addi r8,r8,#4 addi r9,r9,#1 lw r16,(r8) add r19,r0,r9 j L386_LF7 nop; not filled. L399_LF7: addi r29,r29,#-8 lhi r21,((LC49_LF7)>>16)&0xffff addui r21,r21,(LC49_LF7)&0xffff sw (r29),r21 lw r1,(r8) sw 4(r29),r1 jal _printf nop; not filled. L436_LF7: addi r29,r29,#8 L386_LF7: snei r1,r16,#0 bnez r1,L382_LF7 nop; not filled. L383_LF7: addi r8,r8,#4 addi r9,r9,#1 slt r1,r9,r14 bnez r1,L384_LF7 nop; not filled. L382_LF7: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L405_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L404_LF7 nop; not filled. L405_LF7: addi r29,r29,#-8 lhi r21,((LC50_LF7)>>16)&0xffff addui r21,r21,(LC50_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L404_LF7: jal _QueueModuleInit nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L407_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L406_LF7 nop; not filled. L407_LF7: addi r29,r29,#-8 lhi r21,((LC51_LF7)>>16)&0xffff addui r21,r21,(LC51_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L406_LF7: jal _MemoryModuleInit nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L409_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L408_LF7 nop; not filled. L409_LF7: addi r29,r29,#-8 lhi r21,((LC52_LF7)>>16)&0xffff addui r21,r21,(LC52_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L408_LF7: jal _ProcessModuleInit nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L411_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L410_LF7 nop; not filled. L411_LF7: addi r29,r29,#-8 lhi r21,((LC53_LF7)>>16)&0xffff addui r21,r21,(LC53_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L410_LF7: jal _ShareModuleInit nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L413_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L412_LF7 nop; not filled. L413_LF7: addi r29,r29,#-8 lhi r21,((LC54_LF7)>>16)&0xffff addui r21,r21,(LC54_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L412_LF7: jal _SynchModuleInit nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L415_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L414_LF7 nop; not filled. L415_LF7: addi r29,r29,#-8 lhi r21,((LC55_LF7)>>16)&0xffff addui r21,r21,(LC55_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L414_LF7: jal _KbdModuleInit nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L417_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L416_LF7 nop; not filled. L417_LF7: addi r29,r29,#-8 lhi r21,((LC56_LF7)>>16)&0xffff addui r21,r21,(LC56_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L416_LF7: addi r2,r30,#-128 addi r3,r30,#-29 L421_LF7: addi r21,r0,(#0x61)&0xff sb (r2),r21 addi r2,r2,#1 sle r1,r2,r3 bnez r1,L421_LF7 nop; not filled. addi r29,r29,#-8 lhi r21,((LC57_LF7)>>16)&0xffff addui r21,r21,(LC57_LF7)&0xffff sw (r29),r21 addi r21,r0,#2 sw 4(r29),r21 jal _FsOpen nop; not filled. add r9,r0,r1 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L424_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L423_LF7 nop; not filled. L424_LF7: addi r29,r29,#-8 lhi r21,((LC58_LF7)>>16)&0xffff addui r21,r21,(LC58_LF7)&0xffff sw (r29),r21 sw 4(r29),r9 jal _printf nop; not filled. addi r29,r29,#8 L423_LF7: addi r29,r29,#-16 sw (r29),r9 addi r21,r0,#0 sw 4(r29),r21 sw 8(r29),r21 jal _FsSeek nop; not filled. sw (r29),r9 addi r1,r30,#-128 sw 4(r29),r1 addi r21,r0,#80 sw 8(r29),r21 jal _FsWrite nop; not filled. sw (r29),r9 jal _FsClose nop; not filled. addi r29,r29,#16 snei r1,r16,#0 beqz r1,L425_LF7 nop; not filled. add r9,r0,r19 slt r1,r19,r14 beqz r1,L427_LF7 nop; not filled. addi r4,r30,#-8 slli r1,r9,#0x2 add r3,r1,r20 L431_LF7: sub r2,r9,r19 slei r1,r2,#10 beqz r1,L427_LF7 nop; not filled. slli r1,r2,#0x2 add r1,r1,r4 lw r21,(r3) sw -168(r1),r21 addi r3,r3,#4 addi r9,r9,#1 slt r1,r9,r14 bnez r1,L431_LF7 nop; not filled. L427_LF7: addi r29,r29,#-56 addi r21,r0,#0 sw (r29),r21 sw 4(r29),r21 lw r21,-176(r30) sw 8(r29),r21 lw r21,-172(r30) sw 12(r29),r21 lw r21,-168(r30) sw 16(r29),r21 lw r21,-164(r30) sw 20(r29),r21 lw r21,-160(r30) sw 24(r29),r21 lw r21,-156(r30) sw 28(r29),r21 lw r21,-152(r30) sw 32(r29),r21 lw r21,-148(r30) sw 36(r29),r21 lw r21,-144(r30) sw 40(r29),r21 lw r21,-140(r30) sw 44(r29),r21 lw r21,-136(r30) sw 48(r29),r21 lw r21,-132(r30) sw 52(r29),r21 jal _process_create nop; not filled. addi r29,r29,#56 L425_LF7: jal _SysprocCreateProcesses nop; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L433_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L432_LF7 nop; not filled. L433_LF7: addi r29,r29,#-8 lhi r21,((LC59_LF7)>>16)&0xffff addui r21,r21,(LC59_LF7)&0xffff sw (r29),r21 jal _printf nop; not filled. addi r29,r29,#8 L432_LF7: addi r29,r29,#-8 lhi r3,((_processQuantum_LF7)>>16)&0xffff addui r3,r3,(_processQuantum_LF7)&0xffff lw r21,(r3) sw (r29),r21 jal _TimerSet nop; not filled. lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r21,r0,#105 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L435_LF7 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r21,r0,#43 sw 4(r29),r21 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L434_LF7 nop; not filled. L435_LF7: addi r29,r29,#-8 lhi r21,((LC60_LF7)>>16)&0xffff addui r21,r21,(LC60_LF7)&0xffff sw (r29),r21 lw r1,(r3) sw 4(r29),r1 jal _printf nop; not filled. addi r29,r29,#8 L434_LF7: jal _intrreturn nop; not filled. jal _exitsim nop; not filled. jal _exit nop .endproc _main .data .align 2 LC62_LF7: .word 0x00000000 ;; 0.0000000e+00 .text .align 2 .proc _MyFuncRetZero .global _MyFuncRetZero _MyFuncRetZero: ; Function 'MyFuncRetZero'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lhi r1,((LC62_LF7)>>16)&0xffff addui r1,r1,(LC62_LF7)&0xffff lf f0,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MyFuncRetZero .align 2 .proc _GetCurrentPid .global _GetCurrentPid _GetCurrentPid: ; Function 'GetCurrentPid'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) lhi r31,((_pcbs_LF7)>>16)&0xffff addui r31,r31,(_pcbs_LF7)&0xffff sub r2,r1,r31 lhi r1,#-23302 addui r1,r1,#20389 movi2fp f0,r2 movi2fp f1,r1 mult f0,f0,f1 movfp2i r1,f0 srai r1,r1,#0x2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _GetCurrentPid .align 2 .proc _findpid .global _findpid _findpid: ; Function 'findpid'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lhi r31,((_pcbs_LF7)>>16)&0xffff addui r31,r31,(_pcbs_LF7)&0xffff sub r2,r1,r31 lhi r1,#-23302 addui r1,r1,#20389 movi2fp f0,r2 movi2fp f1,r1 mult f0,f0,f1 movfp2i r1,f0 srai r1,r1,#0x2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _findpid .align 2 .proc _process_create .global _process_create _process_create: ; Function 'process_create'; 1000 bytes of locals, 5 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#1032; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 addi r2,r30,#8 addi r4,r0,#0 lw r1,(r2) snei r1,r1,#0 beqz r1,L445_LF7 nop; not filled. addi r5,r30,#-1008 add r31,r0,r2 L447_LF7: addi r2,r0,#0 add r3,r4,r5 L448_LF7: lw r1,(r31) add r1,r1,r2 lb r1,(r1) sb (r3),r1 addi r2,r2,#1 addi r3,r3,#1 addi r4,r4,#1 lw r1,(r31) add r1,r2,r1 lbu r1,-1(r1) snei r1,r1,#0 bnez r1,L448_LF7 nop; not filled. addi r31,r31,#4 lw r1,(r31) snei r1,r1,#0 bnez r1,L447_LF7 nop; not filled. L445_LF7: addi r3,r30,#-1008 add r2,r3,r4 addi r1,r30,#-1007 add r1,r1,r4 addi r6,r0,(#0x0)&0xff sb (r1),r6 sb (r2),r6 addi r29,r29,#-24 addi r6,r0,#0 sw (r29),r6 sw 4(r29),r3 lw r6,(r30) sw 8(r29),r6 lw r6,4(r30) sw 12(r29),r6 lw r6,8(r30) sw 16(r29),r6 addi r6,r0,#1 sw 20(r29),r6 jal _ProcessFork nop; not filled. addi r29,r29,#24 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _process_create .data .global _debugstr _debugstr: .space 200 .align 2 .global _currentPCB _currentPCB: .space 4 .align 2 _freepcbs_LF7: .space 12 .align 2 _runQueue_LF7: .space 12 .align 2 _waitQueue_LF7: .space 12 .align 2 _zombieQueue_LF7: .space 12 .align 2 _pcbs_LF7: .space 5760 .text .align 2 .proc _ProcessExit_LF7 _ProcessExit_LF7: ; Function 'ProcessExit'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage jal _exit nop; not filled. lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _ProcessExit_LF7 ; Compiled by GCC .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF8 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF8 nop; not filled. L6_LF8: addi r31,r0,#1 L5_LF8: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF8 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF8 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF8 nop; not filled. L12_LF8: addi r2,r0,#1 L11_LF8: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF8 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF8: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0_LF8: .ascii "Initializing queue link %d.\n\000" .text .align 2 .proc _QueueModuleInit .global _QueueModuleInit _QueueModuleInit: ; Function 'QueueModuleInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 lhi r5,((_freeLinks)>>16)&0xffff addui r5,r5,(_freeLinks)&0xffff sw (r29),r5 jal _QueueInit nop; not filled. addi r3,r0,#0 addi r29,r29,#8 lhi r4,((_debugstr)>>16)&0xffff addui r4,r4,(_debugstr)&0xffff lhi r2,((_linkpool_LF8)>>16)&0xffff addui r2,r2,(_linkpool_LF8)&0xffff L63_LF8: addi r29,r29,#-8 sw (r29),r4 addi r5,r0,#105 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65_LF8 nop; not filled. addi r29,r29,#-8 sw (r29),r4 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64_LF8 nop; not filled. L65_LF8: addi r29,r29,#-8 lhi r5,((LC0_LF8)>>16)&0xffff addui r5,r5,(LC0_LF8)&0xffff sw (r29),r5 sw 4(r29),r3 jal _printf nop; not filled. addi r29,r29,#8 L64_LF8: addi r5,r0,#0 sw (r2),r5 addi r29,r29,#-8 sw (r29),r2 jal _QueueFreeLink nop; not filled. addi r29,r29,#8 addi r2,r2,#16 addi r3,r3,#1 slei r1,r3,#399 bnez r1,L63_LF8 nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueModuleInit .align 2 .proc _QueueInit .global _QueueInit _QueueInit: ; Function 'QueueInit'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) sw (r1),r1 sw 4(r1),r1 addi r31,r0,#0 sw 8(r1),r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInit .data .align 2 LC1_LF8: .ascii "%s: %s\n\000" .align 2 LC2_LF8: .ascii "QueueFreeLink\000" .align 2 LC3_LF8: .ascii "Link not empty\000" .text .align 2 .proc _QueueFreeLink .global _QueueFreeLink _QueueFreeLink: ; Function 'QueueFreeLink'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) lw r1,(r3) snei r1,r1,#0 beqz r1,L77_LF8 nop; not filled. addi r29,r29,#-16 lhi r4,((LC1_LF8)>>16)&0xffff addui r4,r4,(LC1_LF8)&0xffff sw (r29),r4 lhi r1,((LC2_LF8)>>16)&0xffff addui r1,r1,(LC2_LF8)&0xffff sw 4(r29),r1 lhi r4,((LC3_LF8)>>16)&0xffff addui r4,r4,(LC3_LF8)&0xffff sw 8(r29),r4 jal _printf nop; not filled. addi r29,r29,#16 L77_LF8: lhi r2,((_freeLinks)>>16)&0xffff addui r2,r2,(_freeLinks)&0xffff lw r1,4(r2) sw 8(r3),r2 sw 4(r3),r1 lw r4,(r1) sw (r3),r4 sw (r1),r3 lw r1,(r3) sw 4(r1),r3 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFreeLink .data .align 2 LC4_LF8: .ascii "QueueAllocLink\000" .align 2 LC5_LF8: .ascii "Link not allocated!\000" .text .align 2 .proc _QueueAllocLink .global _QueueAllocLink _QueueAllocLink: ; Function 'QueueAllocLink'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lhi r2,((_freeLinks)>>16)&0xffff addui r2,r2,(_freeLinks)&0xffff lw r1,8(r2) seqi r1,r1,#0 bnez r1,L92_LF8 nop; not filled. lw r3,(r2) lw r1,8(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L97_LF8 nop; not filled. lw r1,4(r3) lw r4,(r3) sw (r1),r4 lw r1,(r3) lw r4,4(r3) sw 4(r1),r4 lw r2,8(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L97_LF8: addi r4,r0,#0 sw (r3),r4 j L98_LF8 nop; not filled. L92_LF8: addi r3,r0,#0 L98_LF8: snei r1,r3,#0 bnez r1,L100_LF8 nop; not filled. addi r29,r29,#-16 lhi r4,((LC1_LF8)>>16)&0xffff addui r4,r4,(LC1_LF8)&0xffff sw (r29),r4 lhi r1,((LC4_LF8)>>16)&0xffff addui r1,r1,(LC4_LF8)&0xffff sw 4(r29),r1 lhi r4,((LC5_LF8)>>16)&0xffff addui r4,r4,(LC5_LF8)&0xffff sw 8(r29),r4 jal _printf nop; not filled. addi r29,r29,#16 L100_LF8: add r1,r0,r3 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueAllocLink .data .align 2 .global _freeLinks _freeLinks: .space 12 .align 2 _linkpool_LF8: .space 6400 ; Compiled by GCC .align 2 _rcsid_LF9: .ascii "$Id: traps.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF9 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF9 nop; not filled. L6_LF9: addi r31,r0,#1 L5_LF9: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF9 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF9 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF9 nop; not filled. L12_LF9: addi r2,r0,#1 L11_LF9: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF9 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF9: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .global _MY_TIMER .data .align 2 _MY_TIMER: .word 0 .text .align 2 .proc _TimerSet .global _TimerSet _TimerSet: ; Function 'TimerSet'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lhi r2,((_MY_TIMER)>>16)&0xffff addui r2,r2,(_MY_TIMER)&0xffff lw r1,(r2) add r1,r1,r3 sw (r2),r1 lhi r1,#-16 addui r1,r1,#16 sw (r1),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TimerSet .align 2 .proc _TimerGet .global _TimerGet _TimerGet: ; Function 'TimerGet'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lhi r1,((_MY_TIMER)>>16)&0xffff addui r1,r1,(_MY_TIMER)&0xffff lw r2,(r1) addi r1,r0,#1000 movi2fp f0,r2 movi2fp f1,r1 divu f0,f0,f1 movfp2i r1,f0 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TimerGet .align 2 .proc _KbdModuleInit .global _KbdModuleInit _KbdModuleInit: ; Function 'KbdModuleInit'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lhi r1,#-16 addui r1,r1,#448 addi r31,r0,#1 sw (r1),r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _KbdModuleInit .data .align 2 LC0_LF9: .ascii " Invalid p_nice value! \n\000" .align 2 LC1_LF9: .ascii "Fatal: Cumulative length of all arguments > %d\n\000" .align 2 LC2_LF9: .ascii "calling fork\n\000" .text .align 2 .proc _TrapProcessCreateHandler_LF9 _TrapProcessCreateHandler_LF9: ; Function 'TrapProcessCreateHandler'; 1640 bytes of locals, 13 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#1704; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 sw 40(r29),r12 sw 44(r29),r13 sw 48(r29),r14 lw r4,(r30) lw r6,4(r30) addi r2,r30,#-1032 addi r3,r30,#-9 L67_LF9: addi r14,r0,(#0x0)&0xff sb (r2),r14 addi r2,r2,#1 sle r1,r2,r3 bnez r1,L67_LF9 nop; not filled. addi r5,r0,#0 snei r1,r6,#0 bnez r1,L69_LF9 nop; not filled. addi r29,r29,#-16 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r14,(r2) sw (r29),r14 sw 4(r29),r4 addi r1,r30,#-1648 sw 8(r29),r1 addi r14,r0,#512 sw 12(r29),r14 jal _MemoryCopyUserToSystem nop; not filled. addi r29,r29,#16 addi r4,r30,#-1137 addi r3,r30,#-1136 L70_LF9: addi r29,r29,#-16 lw r14,(r2) sw (r29),r14 lw r1,-1640(r30) add r1,r1,r5 sw 4(r29),r1 sw 8(r29),r3 addi r14,r0,#1 sw 12(r29),r14 jal _MemoryCopyUserToSystem nop; not filled. addi r4,r4,#1 addi r3,r3,#1 addi r5,r5,#1 addi r29,r29,#16 sleui r1,r5,#99 beqz r1,L75_LF9 nop; not filled. lbu r1,(r4) snei r1,r1,#0 beqz r1,L75_LF9 nop; not filled. j L70_LF9 nop; not filled. L69_LF9: addi r29,r29,#-16 sw (r29),r4 addi r1,r30,#-1648 sw 4(r29),r1 addi r14,r0,#512 sw 8(r29),r14 jal _bcopy nop; not filled. lw r14,-1640(r30) sw (r29),r14 addi r1,r30,#-1136 sw 4(r29),r1 addi r14,r0,#100 sw 8(r29),r14 jal _dstrncpy nop; not filled. addi r29,r29,#16 L75_LF9: addi r14,r0,(#0x0)&0xff sb -1037(r30),r14 addi r5,r0,#0 lw r12,-1648(r30) lw r13,-1644(r30) addi r1,r12,#20 sgtui r1,r1,#39 beqz r1,L76_LF9 nop; not filled. addi r29,r29,#-8 lhi r14,((LC0_LF9)>>16)&0xffff addui r14,r14,(LC0_LF9)&0xffff sw (r29),r14 jal _printf nop; not filled. jal _exit nop; not filled. L76_LF9: snei r1,r6,#0 bnez r1,L77_LF9 nop; not filled. lhi r8,((_currentPCB)>>16)&0xffff addui r8,r8,(_currentPCB)&0xffff addi r11,r30,#-1032 addi r10,r30,#-1033 add r6,r0,r30 addi r9,r30,#500 L89_LF9: lw r1,-1640(r6) snei r1,r1,#0 beqz r1,L90_LF9 nop; not filled. addi r2,r0,#0 add r7,r0,r6 add r4,r5,r10 add r3,r5,r11 L84_LF9: addi r29,r29,#-16 lw r14,(r8) sw (r29),r14 lw r1,-1640(r7) add r1,r1,r2 sw 4(r29),r1 sw 8(r29),r3 addi r14,r0,#1 sw 12(r29),r14 jal _MemoryCopyUserToSystem nop; not filled. addi r4,r4,#1 addi r3,r3,#1 addi r5,r5,#1 addi r2,r2,#1 addi r29,r29,#16 sleui r1,r5,#1023 beqz r1,L81_LF9 nop; not filled. lbu r1,(r4) snei r1,r1,#0 bnez r1,L84_LF9 nop; not filled. L81_LF9: addi r6,r6,#4 sle r1,r6,r9 beqz r1,L90_LF9 nop; not filled. j L89_LF9 nop; not filled. L77_LF9: addi r5,r30,#-1032 add r7,r0,r5 addi r3,r30,#-8 addi r6,r30,#32 L97_LF9: addi r4,r3,#-1640 lw r2,(r4) snei r1,r2,#0 beqz r1,L90_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 jal _dstrlen nop; not filled. add r2,r5,r1 sub r1,r2,r7 addi r29,r29,#8 sgti r1,r1,#1024 beqz r1,L96_LF9 nop; not filled. addi r29,r29,#-8 lhi r14,((LC1_LF9)>>16)&0xffff addui r14,r14,(LC1_LF9)&0xffff sw (r29),r14 addi r14,r0,#1024 sw 4(r29),r14 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#8 L96_LF9: addi r29,r29,#-8 sw (r29),r5 lw r1,(r4) sw 4(r29),r1 jal _dstrcpy nop; not filled. addi r14,r0,(#0x0)&0xff sb (r2),r14 addi r29,r29,#8 addi r3,r3,#4 sle r1,r3,r6 bnez r1,L97_LF9 nop; not filled. L90_LF9: addi r14,r0,(#0x0)&0xff sb -9(r30),r14 addi r29,r29,#-8 lhi r14,((LC2_LF9)>>16)&0xffff addui r14,r14,(LC2_LF9)&0xffff sw (r29),r14 jal _printf nop; not filled. addi r29,r29,#-16 addi r14,r0,#0 sw (r29),r14 addi r1,r30,#-1032 sw 4(r29),r1 sw 8(r29),r12 sw 12(r29),r13 addi r1,r30,#-1136 sw 16(r29),r1 addi r14,r0,#1 sw 20(r29),r14 jal _ProcessFork nop; not filled. addi r29,r29,#24 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r12,40(r29) lw r13,44(r29) lw r14,48(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TrapProcessCreateHandler_LF9 .align 2 .proc _TrapPrintfHandler_LF9 _TrapPrintfHandler_LF9: ; Function 'TrapPrintfHandler'; 160 bytes of locals, 10 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#208; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 lw r4,(r30) lw r1,4(r30) addi r8,r0,#0 add r3,r0,r8 snei r1,r1,#0 bnez r1,L99_LF9 nop; not filled. addi r29,r29,#-16 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r11,(r2) sw (r29),r11 sw 4(r29),r4 addi r1,r30,#-168 sw 8(r29),r1 addi r11,r0,#40 sw 12(r29),r11 jal _MemoryCopyUserToSystem nop; not filled. addi r29,r29,#16 addi r5,r30,#-89 addi r4,r30,#-88 L100_LF9: addi r29,r29,#-16 lw r11,(r2) sw (r29),r11 lw r1,-168(r30) add r1,r1,r3 sw 4(r29),r1 sw 8(r29),r4 addi r11,r0,#1 sw 12(r29),r11 jal _MemoryCopyUserToSystem nop; not filled. addi r5,r5,#1 addi r4,r4,#1 addi r3,r3,#1 addi r29,r29,#16 sleui r1,r3,#79 beqz r1,L105_LF9 nop; not filled. lbu r1,(r5) snei r1,r1,#0 beqz r1,L105_LF9 nop; not filled. j L100_LF9 nop; not filled. L99_LF9: addi r29,r29,#-16 sw (r29),r4 addi r1,r30,#-168 sw 4(r29),r1 addi r11,r0,#40 sw 8(r29),r11 jal _bcopy nop; not filled. lw r11,-168(r30) sw (r29),r11 addi r1,r30,#-88 sw 4(r29),r1 addi r11,r0,#80 sw 8(r29),r11 jal _dstrncpy nop; not filled. addi r29,r29,#16 L105_LF9: addi r11,r0,(#0x0)&0xff sb -9(r30),r11 addi r3,r30,#-88 lb r2,(r3) andi r1,r2,#0x00ff snei r1,r1,#0 beqz r1,L107_LF9 nop; not filled. addi r10,r30,#-8 addi r9,r30,#-164 slli r1,r8,#0x2 add r7,r1,r9 add r6,r1,r10 L109_LF9: andi r1,r2,#0x00ff seqi r1,r1,#37 beqz r1,L108_LF9 nop; not filled. lbu r1,1(r3) seqi r1,r1,#37 beqz r1,L111_LF9 nop; not filled. addi r3,r3,#1 j L108_LF9 nop; not filled. L111_LF9: lw r11,(r7) sw -120(r6),r11 slli r1,r8,#0x2 add r5,r1,r9 add r4,r1,r10 L114_LF9: addi r3,r3,#1 lb r31,(r3) andi r2,r31,#0x00ff seqi r1,r2,#115 bnez r1,L113_LF9 nop; not filled. seqi r1,r2,#108 bnez r1,L114_LF9 nop; not filled. addi r1,r31,#-102 andi r1,r1,#0x00ff sleui r1,r1,#1 bnez r1,L120_LF9 nop; not filled. seqi r1,r2,#101 beqz r1,L119_LF9 nop; not filled. L120_LF9: addi r7,r7,#4 addi r6,r6,#4 addi r8,r8,#1 lw r5,4(r5) sw -116(r4),r5 j L113_LF9 nop; not filled. L119_LF9: addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#25 beqz r1,L114_LF9 nop; not filled. L113_LF9: addi r7,r7,#4 addi r6,r6,#4 addi r8,r8,#1 L108_LF9: addi r3,r3,#1 lb r2,(r3) andi r1,r2,#0x00ff snei r1,r1,#0 bnez r1,L109_LF9 nop; not filled. L107_LF9: addi r29,r29,#-40 addi r1,r30,#-88 sw (r29),r1 lw r1,-128(r30) sw 4(r29),r1 lw r11,-124(r30) sw 8(r29),r11 lw r11,-120(r30) sw 12(r29),r11 lw r11,-116(r30) sw 16(r29),r11 lw r11,-112(r30) sw 20(r29),r11 lw r11,-108(r30) sw 24(r29),r11 lw r11,-104(r30) sw 28(r29),r11 lw r11,-100(r30) sw 32(r29),r11 jal _printf nop; not filled. addi r29,r29,#40 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _TrapPrintfHandler_LF9 .data .align 2 LC3_LF9: .ascii "Interrupt cause=0x%x iar=0x%x isr=0x%x args=0x%08x.\n\000" .align 2 LC4_LF9: .ascii "Got a context switch trap!\n\000" .align 2 LC5_LF9: .ascii "Got an exit trap!\n\000" .align 2 LC6_LF9: .ascii "Got a fork trap!\n\000" .align 2 LC7_LF9: .ascii "Got a process sleep trap!\n\000" .align 2 LC8_LF9: .ascii "Got a printf trap!\n\000" .align 2 LC9_LF9: .ascii "Got an open with parameters (\'%s\',0x%x)\n\000" .align 2 LC10_LF9: .ascii "Got an unrecognized trap (0x%x) - exiting!\n\000" .align 2 LC11_LF9: .ascii "Got a timer interrupt!\n\000" .align 2 LC12_LF9: .ascii "Got a keyboard interrupt (char=0x%x(%c), nleft=%d)!\n\000" .align 2 LC13_LF9: .ascii "Exiting after illegal access at iar=0x%x, isr=0x%x\n\000" .align 2 LC14_LF9: .ascii "Exiting after illegal address at iar=0x%x, isr=0x%x\n\000" .align 2 LC15_LF9: .ascii "Exiting after illegal instruction at iar=0x%x, isr=0x%x\n\000" .align 2 LC16_LF9: .ascii "Exiting after page fault at iar=0x%x, isr=0x%x\n\000" .align 2 LC17_LF9: .ascii "Got an unrecognized system interrupt (0x%x) - exiting!\n\000" .align 2 LC18_LF9: .ascii "About to return from dointerrupt.\n\000" .text .align 2 .proc _dointerrupt .global _dointerrupt _dointerrupt: ; Function 'dointerrupt'; 56 bytes of locals, 6 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#88; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r2,(r30) lw r6,4(r30) lw r4,8(r30) lw r3,12(r30) addi r29,r29,#-8 lhi r5,((_debugstr)>>16)&0xffff addui r5,r5,(_debugstr)&0xffff sw (r29),r5 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L128_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r5 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L127_LF9 nop; not filled. L128_LF9: addi r29,r29,#-24 lhi r7,((LC3_LF9)>>16)&0xffff addui r7,r7,(LC3_LF9)&0xffff sw (r29),r7 sw 4(r29),r2 sw 8(r29),r6 sw 12(r29),r4 sw 16(r29),r3 jal _printf nop; not filled. addi r29,r29,#24 L127_LF9: lhi r7,#2048 addui r7,r7,#0 and r1,r2,r7 snei r1,r1,#0 beqz r1,L129_LF9 nop; not filled. lhi r7,#-2049 addui r7,r7,#65535 and r2,r2,r7 seqi r1,r2,#1075 bnez r1,L223_LF9 nop; not filled. sgtui r1,r2,#1075 bnez r1,L215_LF9 nop; not filled. seqi r1,r2,#531 bnez r1,L146_LF9 nop; not filled. sgtui r1,r2,#531 bnez r1,L216_LF9 nop; not filled. seqi r1,r2,#528 bnez r1,L154_LF9 nop; not filled. sgtui r1,r2,#528 bnez r1,L217_LF9 nop; not filled. seqi r1,r2,#80 bnez r1,L207_LF9 nop; not filled. seqi r1,r2,#513 beqz r1,L213_LF9 nop; not filled. j L143_LF9 nop; not filled. L217_LF9: seqi r1,r2,#529 bnez r1,L157_LF9 nop; not filled. seqi r1,r2,#530 beqz r1,L213_LF9 nop; not filled. j L163_LF9 nop; not filled. L216_LF9: seqi r1,r2,#1024 bnez r1,L131_LF9 nop; not filled. sgtui r1,r2,#1024 bnez r1,L218_LF9 nop; not filled. seqi r1,r2,#532 bnez r1,L151_LF9 nop; not filled. seqi r1,r2,#768 beqz r1,L213_LF9 nop; not filled. j L134_LF9 nop; not filled. L218_LF9: seqi r1,r2,#1072 bnez r1,L137_LF9 nop; not filled. sgtui r1,r2,#1072 bnez r1,L219_LF9 nop; not filled. seqi r1,r2,#1040 beqz r1,L213_LF9 nop; not filled. j L140_LF9 nop; not filled. L219_LF9: seqi r1,r2,#1074 beqz r1,L213_LF9 nop; not filled. j L166_LF9 nop; not filled. L215_LF9: seqi r1,r2,#1108 bnez r1,L187_LF9 nop; not filled. sgtui r1,r2,#1108 bnez r1,L220_LF9 nop; not filled. seqi r1,r2,#1104 bnez r1,L174_LF9 nop; not filled. sgtui r1,r2,#1104 bnez r1,L221_LF9 nop; not filled. seqi r1,r2,#1088 bnez r1,L169_LF9 nop; not filled. seqi r1,r2,#1089 beqz r1,L213_LF9 nop; not filled. j L170_LF9 nop; not filled. L221_LF9: seqi r1,r2,#1106 bnez r1,L182_LF9 nop; not filled. sgtui r1,r2,#1106 beqz r1,L178_LF9 nop; not filled. j L186_LF9 nop; not filled. L220_LF9: seqi r1,r2,#1111 bnez r1,L199_LF9 nop; not filled. sgtui r1,r2,#1111 bnez r1,L222_LF9 nop; not filled. seqi r1,r2,#1109 bnez r1,L191_LF9 nop; not filled. seqi r1,r2,#1110 beqz r1,L213_LF9 nop; not filled. j L195_LF9 nop; not filled. L222_LF9: seqi r1,r2,#1113 bnez r1,L209_LF9 nop; not filled. sltui r1,r2,#1113 bnez r1,L203_LF9 nop; not filled. seqi r1,r2,#1408 beqz r1,L213_LF9 nop; not filled. j L160_LF9 nop; not filled. L131_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L133_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L226_LF9 nop; not filled. L133_LF9: addi r29,r29,#-8 lhi r7,((LC4_LF9)>>16)&0xffff addui r7,r7,(LC4_LF9)&0xffff j L256_LF9 nop; not filled. L134_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L136_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L135_LF9 nop; not filled. L136_LF9: addi r29,r29,#-8 lhi r7,((LC5_LF9)>>16)&0xffff addui r7,r7,(LC5_LF9)&0xffff sw (r29),r7 jal _printf nop; not filled. addi r29,r29,#8 L135_LF9: addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _ProcessDestroy nop; not filled. jal _ProcessSchedule nop; not filled. j L243_LF9 nop; not filled. L137_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L139_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L223_LF9 nop; not filled. L139_LF9: addi r29,r29,#-8 lhi r7,((LC6_LF9)>>16)&0xffff addui r7,r7,(LC6_LF9)&0xffff sw (r29),r7 jal _printf nop; not filled. j L243_LF9 nop; not filled. L140_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L142_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L141_LF9 nop; not filled. L142_LF9: addi r29,r29,#-8 lhi r7,((LC7_LF9)>>16)&0xffff addui r7,r7,(LC7_LF9)&0xffff sw (r29),r7 jal _printf nop; not filled. addi r29,r29,#8 L141_LF9: addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _ProcessSuspend nop; not filled. jal _ProcessSchedule nop; not filled. j L243_LF9 nop; not filled. L143_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L145_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L144_LF9 nop; not filled. L145_LF9: addi r29,r29,#-8 lhi r7,((LC8_LF9)>>16)&0xffff addui r7,r7,(LC8_LF9)&0xffff sw (r29),r7 jal _printf nop; not filled. addi r29,r29,#8 L144_LF9: addi r29,r29,#-8 sw (r29),r3 andi r1,r4,#64 sw 4(r29),r1 jal _TrapPrintfHandler_LF9 nop; not filled. j L243_LF9 nop; not filled. L146_LF9: andi r1,r4,#64 snei r1,r1,#0 beqz r1,L147_LF9 nop; not filled. lw r7,(r3) sw -24(r30),r7 lw r3,4(r3) sw -20(r30),r3 j L148_LF9 nop; not filled. L147_LF9: addi r29,r29,#-16 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r7,(r2) sw (r29),r7 sw 4(r29),r3 addi r1,r30,#-24 sw 8(r29),r1 addi r7,r0,#8 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. lw r2,(r2) sw (r29),r2 lw r1,-24(r30) sw 4(r29),r1 addi r2,r30,#-56 sw 8(r29),r2 addi r7,r0,#31 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. addi r7,r0,(#0x0)&0xff sb -25(r30),r7 sw -24(r30),r2 addi r29,r29,#16 L148_LF9: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 lw r1,-20(r30) lhi r7,#1 addui r7,r7,#0 add r1,r1,r7 sw 4(r29),r1 jal _ProcessSetResult nop; not filled. addi r29,r29,#-8 lhi r7,((LC9_LF9)>>16)&0xffff addui r7,r7,(LC9_LF9)&0xffff sw (r29),r7 lw r1,-24(r30) sw 4(r29),r1 lw r7,-20(r30) sw 8(r29),r7 jal _printf nop; not filled. addi r29,r29,#16 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop; not filled. j L243_LF9 nop; not filled. L151_LF9: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop; not filled. j L243_LF9 nop; not filled. L154_LF9: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop; not filled. j L243_LF9 nop; not filled. L157_LF9: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop; not filled. j L243_LF9 nop; not filled. L160_LF9: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop; not filled. j L243_LF9 nop; not filled. L163_LF9: addi r29,r29,#-8 addi r7,r0,#0 sw (r29),r7 jal _SetIntrs nop; not filled. add r2,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 addi r7,r0,#-1 sw 4(r29),r7 jal _ProcessSetResult nop; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _SetIntrs nop; not filled. j L243_LF9 nop; not filled. L166_LF9: addi r29,r29,#-8 sw (r29),r3 andi r1,r4,#64 sw 4(r29),r1 jal _TrapProcessCreateHandler_LF9 nop; not filled. j L243_LF9 nop; not filled. L169_LF9: addi r29,r29,#-8 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r7,(r2) sw (r29),r7 jal _MemoryCreateSharedPage nop; not filled. add r31,r0,r1 lw r2,(r2) sw (r29),r2 sw 4(r29),r31 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L170_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L172_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L244_LF9 nop; not filled. L172_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L244_LF9: addi r29,r29,#16 lw r31,-60(r30) addi r29,r29,#-8 lhi r2,((_currentPCB)>>16)&0xffff addui r2,r2,(_currentPCB)&0xffff lw r7,(r2) sw (r29),r7 sw 4(r29),r31 jal _mmap nop; not filled. add r31,r0,r1 lw r2,(r2) sw (r29),r2 sw 4(r29),r31 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L174_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L176_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L245_LF9 nop; not filled. L176_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L245_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _SemCreate nop; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L178_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L180_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L246_LF9 nop; not filled. L180_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L246_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _SemHandleWait nop; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L182_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L184_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L247_LF9 nop; not filled. L184_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L247_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _SemHandleSignal nop; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L186_LF9: jal _LockCreate nop; not filled. add r2,r0,r1 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L187_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L189_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L248_LF9 nop; not filled. L189_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L248_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _LockHandleAcquire nop; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L191_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L193_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L249_LF9 nop; not filled. L193_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L249_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _LockHandleRelease nop; not filled. add r31,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r31 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L195_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L197_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L250_LF9 nop; not filled. L197_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L250_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondCreate nop; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L199_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L201_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L251_LF9 nop; not filled. L201_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L251_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondHandleWait nop; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L203_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L205_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L252_LF9 nop; not filled. L205_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L252_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondHandleSignal nop; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L207_LF9: lhi r1,((_MY_TIMER)>>16)&0xffff addui r1,r1,(_MY_TIMER)&0xffff lw r2,(r1) addi r1,r0,#1000 movi2fp f0,r2 movi2fp f1,r1 divu f0,f0,f1 movfp2i r2,f0 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L209_LF9: andi r1,r4,#64 snei r1,r1,#0 bnez r1,L211_LF9 nop; not filled. addi r29,r29,#-16 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r3 addi r1,r30,#-60 sw 8(r29),r1 addi r7,r0,#4 sw 12(r29),r7 jal _MemoryCopyUserToSystem nop; not filled. j L253_LF9 nop; not filled. L211_LF9: addi r29,r29,#-16 sw (r29),r3 addi r1,r30,#-60 sw 4(r29),r1 addi r7,r0,#4 sw 8(r29),r7 jal _bcopy nop; not filled. L253_LF9: addi r29,r29,#16 addi r29,r29,#-8 lw r7,-60(r30) sw (r29),r7 jal _CondHandleBroadcast nop; not filled. add r2,r0,r1 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 sw 4(r29),r2 jal _ProcessSetResult nop; not filled. j L243_LF9 nop; not filled. L213_LF9: addi r29,r29,#-8 lhi r7,((LC10_LF9)>>16)&0xffff addui r7,r7,(LC10_LF9)&0xffff j L254_LF9 nop; not filled. L129_LF9: seqi r1,r2,#3 bnez r1,L233_LF9 nop; not filled. sgtui r1,r2,#3 bnez r1,L239_LF9 nop; not filled. seqi r1,r2,#1 bnez r1,L235_LF9 nop; not filled. seqi r1,r2,#2 beqz r1,L237_LF9 nop; not filled. j L234_LF9 nop; not filled. L239_LF9: seqi r1,r2,#64 bnez r1,L225_LF9 nop; not filled. sgtui r1,r2,#64 bnez r1,L240_LF9 nop; not filled. seqi r1,r2,#32 beqz r1,L237_LF9 nop; not filled. j L236_LF9 nop; not filled. L240_LF9: seqi r1,r2,#72 beqz r1,L237_LF9 nop; not filled. j L228_LF9 nop; not filled. L225_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L227_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L226_LF9 nop; not filled. L227_LF9: addi r29,r29,#-8 lhi r7,((LC11_LF9)>>16)&0xffff addui r7,r7,(LC11_LF9)&0xffff L256_LF9: sw (r29),r7 jal _printf nop; not filled. addi r29,r29,#8 L226_LF9: jal _ProcessSchedule nop; not filled. j L223_LF9 nop; not filled. L228_LF9: lhi r4,#-16 addui r4,r4,#416 lhi r3,#-16 addui r3,r3,#384 L229_LF9: lw r2,(r4) lw r1,(r3) addi r29,r29,#-16 lhi r7,((LC12_LF9)>>16)&0xffff addui r7,r7,(LC12_LF9)&0xffff sw (r29),r7 sw 4(r29),r1 sw 8(r29),r1 sw 12(r29),r2 jal _printf nop; not filled. addi r29,r29,#16 sgti r1,r2,#1 beqz r1,L223_LF9 nop; not filled. j L229_LF9 nop; not filled. L233_LF9: addi r29,r29,#-16 lhi r7,((LC13_LF9)>>16)&0xffff addui r7,r7,(LC13_LF9)&0xffff j L255_LF9 nop; not filled. L234_LF9: addi r29,r29,#-16 lhi r7,((LC14_LF9)>>16)&0xffff addui r7,r7,(LC14_LF9)&0xffff j L255_LF9 nop; not filled. L235_LF9: addi r29,r29,#-16 lhi r7,((LC15_LF9)>>16)&0xffff addui r7,r7,(LC15_LF9)&0xffff j L255_LF9 nop; not filled. L236_LF9: addi r29,r29,#-16 lhi r7,((LC16_LF9)>>16)&0xffff addui r7,r7,(LC16_LF9)&0xffff L255_LF9: sw (r29),r7 sw 4(r29),r6 sw 8(r29),r4 jal _printf nop; not filled. jal _exitsim nop; not filled. addi r29,r29,#16 j L223_LF9 nop; not filled. L237_LF9: addi r29,r29,#-8 lhi r7,((LC17_LF9)>>16)&0xffff addui r7,r7,(LC17_LF9)&0xffff L254_LF9: sw (r29),r7 sw 4(r29),r2 jal _printf nop; not filled. jal _exitsim nop; not filled. L243_LF9: addi r29,r29,#8 L223_LF9: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#116 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L242_LF9 nop; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L241_LF9 nop; not filled. L242_LF9: addi r29,r29,#-8 lhi r7,((LC18_LF9)>>16)&0xffff addui r7,r7,(LC18_LF9)&0xffff sw (r29),r7 jal _printf nop; not filled. addi r29,r29,#8 L241_LF9: jal _intrreturn nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _dointerrupt ; Compiled by GCC .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6_LF10 nop; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5_LF10 nop; not filled. L6_LF10: addi r31,r0,#1 L5_LF10: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12_LF10 nop; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12_LF10 nop; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11_LF10 nop; not filled. L12_LF10: addi r2,r0,#1 L11_LF10: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#16; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44_LF10 nop; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44_LF10: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#8; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0_LF10: .ascii "Process #\000" .align 2 LC1_LF10: .ascii "Running process %d (iteration %d)!\n\000" .text .align 2 .proc _doSomething_LF10 _doSomething_LF10: ; Function 'doSomething'; 80 bytes of locals, 7 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#120; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r6,(r30) addi r1,r0,#10 movi2fp f0,r6 movi2fp f1,r1 div f0,f0,f1 movfp2i r2,f0 slli r1,r2,#0x2 add r1,r1,r2 slli r1,r1,#0x1 sub r7,r6,r1 slei r1,r6,#99 beqz r1,L52_LF10 nop; not filled. addi r29,r29,#-8 slli r1,r7,#0x2 add r1,r1,r7 slli r1,r1,#0x2 lhi r8,((_mysems_LF10)>>16)&0xffff addui r8,r8,(_mysems_LF10)&0xffff add r1,r1,r8 sw (r29),r1 addi r8,r0,#1 sw 4(r29),r8 jal _SemInit nop; not filled. addi r3,r0,#1 addi r29,r29,#8 addi r4,r30,#-48 addi r5,r30,#-88 add r2,r0,r6 L56_LF10: addi r29,r29,#-8 sw (r29),r4 lhi r8,((LC0_LF10)>>16)&0xffff addui r8,r8,(LC0_LF10)&0xffff sw 4(r29),r8 jal _dstrcpy nop; not filled. sw (r29),r3 sw 4(r29),r5 jal _ditoa nop; not filled. sw (r29),r4 sw 4(r29),r5 jal _dstrcat nop; not filled. addi r29,r29,#-16 lhi r8,((_doSomething_LF10)>>16)&0xffff addui r8,r8,(_doSomething_LF10)&0xffff sw (r29),r8 slli r1,r2,#0x5 sub r1,r1,r2 slli r1,r1,#0x2 add r1,r1,r2 slli r1,r1,#0x3 add r1,r1,r6 sw 4(r29),r1 addi r8,r0,#0 sw 8(r29),r8 sw 12(r29),r8 sw 16(r29),r4 sw 20(r29),r8 jal _ProcessFork nop; not filled. addi r29,r29,#24 add r2,r2,r6 addi r3,r3,#1 slei r1,r3,#6 bnez r1,L56_LF10 nop; not filled. L52_LF10: addi r29,r29,#-8 slli r1,r7,#0x2 add r1,r1,r7 slli r1,r1,#0x2 lhi r8,((_mysems_LF10)>>16)&0xffff addui r8,r8,(_mysems_LF10)&0xffff add r1,r1,r8 sw (r29),r1 jal _SemWait nop; not filled. addi r3,r0,#0 addi r29,r29,#8 slli r2,r6,#0x1 slt r1,r3,r2 beqz r1,L59_LF10 nop; not filled. addi r5,r0,#1000 add r4,r0,r2 L61_LF10: movi2fp f0,r3 movi2fp f1,r5 div f0,f0,f1 movfp2i r2,f0 slli r1,r2,#0x5 sub r1,r1,r2 slli r1,r1,#0x2 add r1,r1,r2 slli r1,r1,#0x3 sne r1,r3,r1 bnez r1,L62_LF10 nop; not filled. addi r29,r29,#-16 lhi r8,((LC1_LF10)>>16)&0xffff addui r8,r8,(LC1_LF10)&0xffff sw (r29),r8 sw 4(r29),r6 sw 8(r29),r3 jal _printf nop; not filled. addi r29,r29,#16 L62_LF10: addi r3,r3,#1 slt r1,r3,r4 bnez r1,L61_LF10 nop; not filled. L59_LF10: addi r29,r29,#-8 slli r1,r7,#0x2 add r1,r1,r7 slli r1,r1,#0x2 lhi r8,((_mysems_LF10)>>16)&0xffff addui r8,r8,(_mysems_LF10)&0xffff add r1,r1,r8 sw (r29),r1 jal _SemSignal nop; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _doSomething_LF10 .data .align 2 LC2_LF10: .ascii "chasetail\000" .align 2 LC3_LF10: .ascii "Chasing tail %d.\n\000" .align 2 LC4_LF10: .ascii "Open of (%s,0x%x) returns 0x%x.\n\000" .align 2 LC5_LF10: .ascii "ChaseTail\000" .text .align 2 .proc _chaseTail_LF10 _chaseTail_LF10: ; Function 'chaseTail'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r4,(r30) lhi r3,((LC2_LF10)>>16)&0xffff addui r3,r3,(LC2_LF10)&0xffff addi r29,r29,#-8 lhi r5,((LC3_LF10)>>16)&0xffff addui r5,r5,(LC3_LF10)&0xffff sw (r29),r5 sw 4(r29),r4 jal _printf nop; not filled. sw (r29),r3 addi r2,r4,#8192 sw 4(r29),r2 jal _Open nop; not filled. addi r29,r29,#-8 lhi r5,((LC4_LF10)>>16)&0xffff addui r5,r5,(LC4_LF10)&0xffff sw (r29),r5 sw 4(r29),r3 sw 8(r29),r2 sw 12(r29),r1 jal _printf nop; not filled. addi r29,r29,#16 slei r1,r4,#39 beqz r1,L67_LF10 nop; not filled. addi r29,r29,#-24 lhi r5,((_chaseTail_LF10)>>16)&0xffff addui r5,r5,(_chaseTail_LF10)&0xffff sw (r29),r5 addi r1,r4,#1 sw 4(r29),r1 addi r5,r0,#0 sw 8(r29),r5 sw 12(r29),r5 lhi r5,((LC5_LF10)>>16)&0xffff addui r5,r5,(LC5_LF10)&0xffff sw 16(r29),r5 addi r5,r0,#0 sw 20(r29),r5 jal _ProcessFork nop; not filled. addi r29,r29,#24 L67_LF10: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _chaseTail_LF10 .data .align 2 LC6_LF10: .ascii "%d \000" .align 2 LC7_LF10: .ascii "Random number %02i is 0x%08x.\n\000" .text .align 2 .proc _SysprocCreateProcesses .global _SysprocCreateProcesses _SysprocCreateProcesses: ; Function 'SysprocCreateProcesses'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30; push fp add r30,r0,r29; fp = sp sw -8(r29),r31; push ret addr subui r29,r29,#24; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lhi r2,((_mysems_LF10)>>16)&0xffff addui r2,r2,(_mysems_LF10)&0xffff addi r3,r2,#180 L90_LF10: addi r29,r29,#-8 sw (r29),r2 addi r4,r0,#1 sw 4(r29),r4 jal _SemInit nop; not filled. addi r29,r29,#8 addi r2,r2,#20 sle r1,r2,r3 bnez r1,L90_LF10 nop; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SysprocCreateProcesses .data .align 2 _mysems_LF10: .space 200 ;;; This file just includes a single variable that contains the last address ;;; in the operating system. The rest of memory is available for use by ;;; processes. .align 2 .global _lastosaddress _lastosaddress: .word _lastosaddress+8 ;;; Ethan L. Miller, 1999. Released to the public domain ;;; ;;; Most of the traps are called in files from libtraps. .text .align 2 .proc _exit .global _exit _exit: trap #0x300 jr r31 nop .endproc _exit ; for the benefit of gcc. .proc ___main .global ___main ___main: jr r31 nop .endproc ___main ;;; ;;; Stub functions for DLX traps. ;;; ;;; Ethan L. Miller, 1999. Released to the public domain. ;;; ;;; There are two sets of traps here. The traps such as Open and Close ;;; (note the capital letters) are for use by user programs. The traps ;;; with names such as open and close (lower case) are for use by the OS. ;;; .align 2 .proc _open .global _open _open: trap #0x2013 jr r31 nop .endproc _open .proc _close .global _close _close: trap #0x2014 jr r31 nop .endproc _close .proc _read .global _read _read: trap #0x2010 jr r31 nop .endproc _read .proc _write .global _write _write: trap #0x2011 jr r31 nop .endproc _write .proc _lseek .global _lseek _lseek: trap #0x2012 jr r31 nop .endproc _lseek ;;; The following are the traps to be used by user-level programs ;;; .align 2 .proc _Open .global _Open _Open: trap #0x213 jr r31 nop .endproc _Open .proc _Close .global _Close _Close: trap #0x214 jr r31 nop .endproc _Close .proc _Read .global _Read _Read: trap #0x210 jr r31 nop .endproc _Read .proc _Write .global _Write _Write: trap #0x211 jr r31 nop .endproc _Write .proc _Lseek .global _Lseek _Lseek: trap #0x212 jr r31 nop .endproc _Lseek ;;; ;;; Stub functions for DLX traps. ;;; ;;; Ethan L. Miller, 1999. Released to the public domain. ;;; ;;; There are two exit traps. The first, _exitsim, actually exits the ;;; simulator. The second, _exit, simply calls a regular trap in the ;;; DLX simulator, and would be suitable for a user program that wants ;;; to signal the OS that it's exiting. ;;; ;;; IMPORTANT: all code that's run "native" on the simulator - OS code and ;;; programs run without an OS - should call exitsim() rather than just ;;; falling through to exit. ;;; .align 2 .proc _exitsim .global _exitsim _exitsim: trap #0x2f00 jr r31 nop .endproc _exitsim .proc _exit .global _exit _exit: trap #0x300 jr r31 nop .endproc _exit ; ; Stub functions for DLX traps. ; ; Aaron Sawdey 1996; released to the Public Domain. ; .proc _printf .global _printf _printf: trap #0x2001 jr r31 nop .endproc _printf .text .global _etext _etext: .align 3 .data .global _edata _edata:

home/bshapir/cs314/project3/src/misc.h

// // Routines used by the entire operating system. // #ifndef _misc_h_ #define _misc_h_ extern char* dstrcpy(char*, const char*); extern char* dstrncpy(char*, const char*, int n); extern const char *dstrstr (const char *, const char *); extern int dstrlen (const char *); extern int dstrncmp (const char *, const char *, int); extern int dstrtol(char*, char**, int); extern const char* dindex(const char*, int); extern const char* dmindex(const char*, const char *); inline int isspace (char c) { return ((c == ' ') || (c == '\t') || (c == '\n')); } inline int isxdigit (char c) { return (((c >= '0') && (c <= '9')) || ((c >= 'a') && (c <= 'f')) || ((c >= 'A') && (c <= 'A'))); } #endif // !_misc_h_

home/bshapir/cs314/project3/src/memory.o

; Compiled by GCC .data .align 2 _rcsid: .ascii "$Id: memory.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 _negativeone: .word -1 .text .align 2 .proc _MemoryGetSize .global _MemoryGetSize _MemoryGetSize: ; Function 'MemoryGetSize'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lhi r1,#-1 addui r1,r1,#0 lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryGetSize .data .align 2 LC0: .ascii "Set freemap entry %d to 0x%x.\n\000" .text .align 2 .proc _MemorySetFreemap .global _MemorySetFreemap _MemorySetFreemap: ; Function 'MemorySetFreemap'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) lw r31,4(r30) add r2,r0,r3 sgei r1,r3,#0 bnez r1,L61 nop ; not filled. addi r2,r3,#31 L61: srai r5,r2,#0x5 slli r1,r5,#0x5 sub r3,r3,r1 addi r1,r0,#1 sll r2,r1,r3 lhi r1,((_negativeone)>>16)&0xffff addui r1,r1,(_negativeone)&0xffff lw r1,(r1) xor r2,r2,r1 slli r1,r5,#0x2 lhi r6,((_freepages)>>16)&0xffff addui r6,r6,(_freepages)&0xffff add r4,r1,r6 lw r1,(r4) and r2,r1,r2 sll r1,r31,r3 or r1,r2,r1 sw (r4),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r6,r0,#109 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r6,r0,#43 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64 nop ; not filled. L65: addi r29,r29,#-16 lhi r6,((LC0)>>16)&0xffff addui r6,r6,(LC0)&0xffff sw (r29),r6 sw 4(r29),r5 lw r4,(r4) sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L64: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemorySetFreemap .data .align 2 LC1: .ascii "Map has %d entries, memory size is 0x%x.\n\000" .align 2 LC2: .ascii "Free pages start with page # 0x%x.\n\000" .align 2 LC3: .ascii "Initialized %d free pages.\n\000" .text .align 2 .proc _MemoryModuleInit .global _MemoryModuleInit _MemoryModuleInit: ; Function 'MemoryModuleInit'; 0 bytes of locals, 10 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#48 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 sw 32(r29),r10 sw 36(r29),r11 lhi r1,#-1 addui r1,r1,#0 lw r2,(r1) sgei r1,r2,#0 bnez r1,L68 nop ; not filled. addui r2,r2,#65535 L68: srai r8,r2,#0x10 lhi r3,((_pagestart)>>16)&0xffff addui r3,r3,(_pagestart)&0xffff lhi r1,((_lastosaddress)>>16)&0xffff addui r1,r1,(_lastosaddress)&0xffff lw r1,(r1) addui r2,r1,#65532 sgei r1,r2,#0 bnez r1,L69 nop ; not filled. addui r2,r2,#65535 L69: srai r1,r2,#0x10 sw (r3),r1 lhi r3,((_freemapmax)>>16)&0xffff addui r3,r3,(_freemapmax)&0xffff addi r2,r8,#31 sgei r1,r2,#0 bnez r1,L70 nop ; not filled. addi r2,r8,#62 L70: srai r1,r2,#0x5 sw (r3),r1 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L72 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L71 nop ; not filled. L72: addi r29,r29,#-16 lhi r11,((LC1)>>16)&0xffff addui r11,r11,(LC1)&0xffff sw (r29),r11 lw r1,(r3) sw 4(r29),r1 sw 8(r29),r8 jal _printf nop ; not filled. addi r29,r29,#16 L71: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L74 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L73 nop ; not filled. L74: addi r29,r29,#-8 lhi r11,((LC2)>>16)&0xffff addui r11,r11,(LC2)&0xffff sw (r29),r11 lhi r1,((_pagestart)>>16)&0xffff addui r1,r1,(_pagestart)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L73: addi r2,r0,#0 lhi r4,((_freemapmax)>>16)&0xffff addui r4,r4,(_freemapmax)&0xffff lw r1,(r4) slt r1,r2,r1 beqz r1,L76 nop ; not filled. lhi r3,((_freepages)>>16)&0xffff addui r3,r3,(_freepages)&0xffff L78: addi r11,r0,#0 sw (r3),r11 addi r3,r3,#4 addi r2,r2,#1 lw r1,(r4) slt r1,r2,r1 bnez r1,L78 nop ; not filled. L76: lhi r2,((_nfreepages)>>16)&0xffff addui r2,r2,(_nfreepages)&0xffff addi r11,r0,#0 sw (r2),r11 lhi r1,((_pagestart)>>16)&0xffff addui r1,r1,(_pagestart)&0xffff lw r4,(r1) slt r1,r4,r8 beqz r1,L81 nop ; not filled. add r7,r0,r2 addi r10,r0,#1 lhi r9,((_negativeone)>>16)&0xffff addui r9,r9,(_negativeone)&0xffff L83: lw r1,(r7) addi r1,r1,#1 sw (r7),r1 add r2,r0,r4 sgei r1,r4,#0 bnez r1,L85 nop ; not filled. addi r2,r4,#31 L85: srai r6,r2,#0x5 slli r1,r6,#0x5 sub r1,r4,r1 sll r3,r10,r1 lw r1,(r9) xor r2,r3,r1 slli r1,r6,#0x2 lhi r11,((_freepages)>>16)&0xffff addui r11,r11,(_freepages)&0xffff add r5,r1,r11 lw r1,(r5) and r1,r1,r2 or r1,r1,r3 sw (r5),r1 addi r29,r29,#-8 lhi r11,((_debugstr)>>16)&0xffff addui r11,r11,(_debugstr)&0xffff sw (r29),r11 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L89 nop ; not filled. addi r29,r29,#-8 lhi r11,((_debugstr)>>16)&0xffff addui r11,r11,(_debugstr)&0xffff sw (r29),r11 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L82 nop ; not filled. L89: addi r29,r29,#-16 lhi r11,((LC0)>>16)&0xffff addui r11,r11,(LC0)&0xffff sw (r29),r11 sw 4(r29),r6 lw r5,(r5) sw 8(r29),r5 jal _printf nop ; not filled. addi r29,r29,#16 L82: addi r4,r4,#1 slt r1,r4,r8 bnez r1,L83 nop ; not filled. L81: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r11,r0,#109 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L92 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r11,r0,#43 sw 4(r29),r11 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L91 nop ; not filled. L92: addi r29,r29,#-8 lhi r11,((LC3)>>16)&0xffff addui r11,r11,(LC3)&0xffff sw (r29),r11 lhi r1,((_nfreepages)>>16)&0xffff addui r1,r1,(_nfreepages)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L91: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r10,32(r29) lw r11,36(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryModuleInit .data .align 2 _mapnum42: .word 0 .align 2 LC4: .ascii "ERROR AT THIS POINT\n\000" .align 2 LC5: .ascii "Allocating memory, starting with page %d\n\000" .align 2 LC6: .ascii "Allocated memory, from map %d, page %d, map=0x%x.\n\000" .text .align 2 .proc _MemoryAllocPage .global _MemoryAllocPage _MemoryAllocPage: ; Function 'MemoryAllocPage'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lhi r1,((_nfreepages)>>16)&0xffff addui r1,r1,(_nfreepages)&0xffff lw r1,(r1) snei r1,r1,#0 bnez r1,L111 nop ; not filled. addi r29,r29,#-8 lhi r7,((LC4)>>16)&0xffff addui r7,r7,(LC4)&0xffff sw (r29),r7 jal _printf nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L110 nop ; not filled. L111: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L113 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L112 nop ; not filled. L113: addi r29,r29,#-8 lhi r7,((LC5)>>16)&0xffff addui r7,r7,(LC5)&0xffff sw (r29),r7 lhi r1,((_mapnum42)>>16)&0xffff addui r1,r1,(_mapnum42)&0xffff lw r1,(r1) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L112: lhi r2,((_mapnum42)>>16)&0xffff addui r2,r2,(_mapnum42)&0xffff lw r1,(r2) lhi r4,((_freepages)>>16)&0xffff addui r4,r4,(_freepages)&0xffff slli r1,r1,#0x2 add r1,r1,r4 lw r1,(r1) snei r1,r1,#0 bnez r1,L115 nop ; not filled. lhi r1,((_freemapmax)>>16)&0xffff addui r1,r1,(_freemapmax)&0xffff lw r3,(r1) L116: lw r1,(r2) addi r1,r1,#1 sw (r2),r1 sge r1,r1,r3 beqz r1,L114 nop ; not filled. addi r7,r0,#0 sw (r2),r7 L114: lw r1,(r2) slli r1,r1,#0x2 add r1,r1,r4 lw r1,(r1) snei r1,r1,#0 beqz r1,L116 nop ; not filled. L115: lhi r1,((_mapnum42)>>16)&0xffff addui r1,r1,(_mapnum42)&0xffff lw r1,(r1) slli r1,r1,#0x2 lhi r7,((_freepages)>>16)&0xffff addui r7,r7,(_freepages)&0xffff add r1,r1,r7 lw r3,(r1) addi r31,r0,#0 andi r1,r3,#1 bnez r1,L120 nop ; not filled. addi r2,r0,#1 L121: addi r31,r31,#1 sll r1,r2,r31 and r1,r3,r1 snei r1,r1,#0 beqz r1,L121 nop ; not filled. L120: addi r1,r0,#1 sll r2,r1,r31 lhi r1,((_negativeone)>>16)&0xffff addui r1,r1,(_negativeone)&0xffff lw r1,(r1) xor r4,r2,r1 lhi r5,((_mapnum42)>>16)&0xffff addui r5,r5,(_mapnum42)&0xffff lw r3,(r5) lhi r6,((_freepages)>>16)&0xffff addui r6,r6,(_freepages)&0xffff slli r1,r3,#0x2 add r2,r1,r6 lw r1,(r2) and r1,r1,r4 sw (r2),r1 slli r1,r3,#0x5 add r3,r1,r31 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L126 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L125 nop ; not filled. L126: addi r29,r29,#-16 lhi r7,((LC6)>>16)&0xffff addui r7,r7,(LC6)&0xffff sw (r29),r7 lw r1,(r5) sw 4(r29),r1 sw 8(r29),r3 slli r1,r1,#0x2 add r1,r1,r6 lw r1,(r1) sw 12(r29),r1 jal _printf nop ; not filled. addi r29,r29,#16 L125: lhi r1,((_nfreepages)>>16)&0xffff addui r1,r1,(_nfreepages)&0xffff lw r2,(r1) addi r2,r2,#-1 sw (r1),r2 add r1,r0,r3 L110: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryAllocPage .data .align 2 LC7: .ascii "Freed page 0x%x, %d remaining.\n\000" .text .align 2 .proc _MemoryFreePage .global _MemoryFreePage _MemoryFreePage: ; Function 'MemoryFreePage'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r6,(r30) addi r3,r0,#1 add r2,r0,r6 sgei r1,r6,#0 bnez r1,L129 nop ; not filled. addi r2,r6,#31 L129: srai r5,r2,#0x5 slli r1,r5,#0x5 sub r1,r6,r1 sll r3,r3,r1 lhi r1,((_negativeone)>>16)&0xffff addui r1,r1,(_negativeone)&0xffff lw r1,(r1) xor r2,r3,r1 slli r1,r5,#0x2 lhi r7,((_freepages)>>16)&0xffff addui r7,r7,(_freepages)&0xffff add r4,r1,r7 lw r1,(r4) and r1,r1,r2 or r1,r1,r3 sw (r4),r1 addi r29,r29,#-8 lhi r7,((_debugstr)>>16)&0xffff addui r7,r7,(_debugstr)&0xffff sw (r29),r7 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L133 nop ; not filled. addi r29,r29,#-8 lhi r7,((_debugstr)>>16)&0xffff addui r7,r7,(_debugstr)&0xffff sw (r29),r7 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L128 nop ; not filled. L133: addi r29,r29,#-16 lhi r7,((LC0)>>16)&0xffff addui r7,r7,(LC0)&0xffff sw (r29),r7 sw 4(r29),r5 lw r4,(r4) sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L128: lhi r2,((_nfreepages)>>16)&0xffff addui r2,r2,(_nfreepages)&0xffff lw r1,(r2) addi r1,r1,#1 sw (r2),r1 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L135 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L134 nop ; not filled. L135: addi r29,r29,#-16 lhi r7,((LC7)>>16)&0xffff addui r7,r7,(LC7)&0xffff sw (r29),r7 sw 4(r29),r6 lw r2,(r2) sw 8(r29),r2 jal _printf nop ; not filled. addi r29,r29,#16 L134: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreePage .align 2 .proc _MemoryTranslateUserToSystem .global _MemoryTranslateUserToSystem _MemoryTranslateUserToSystem: ; Function 'MemoryTranslateUserToSystem'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) lw r1,4(r30) srli r31,r1,#0x10 andi r2,r1,#0xffff lw r1,160(r3) sgt r1,r31,r1 bnez r1,L139 nop ; not filled. slli r1,r31,#0x2 add r1,r1,r3 lw r1,96(r1) addi r4,r0,#-8 and r1,r1,r4 add r1,r1,r2 j L140 nop ; not filled. L139: addi r1,r0,#0 L140: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryTranslateUserToSystem .align 2 .proc _MemoryCopySystemToUser .global _MemoryCopySystemToUser _MemoryCopySystemToUser: ; Function 'MemoryCopySystemToUser'; 0 bytes of locals, 8 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 lw r7,(r30) lw r5,4(r30) lw r4,8(r30) lw r3,12(r30) addi r6,r0,#0 sgti r1,r3,#0 beqz r1,L167 nop ; not filled. lhi r8,#1 addui r8,r8,#0 L168: srli r2,r4,#0x10 andi r31,r4,#0xffff lw r1,160(r7) sgt r1,r2,r1 beqz r1,L170 nop ; not filled. addi r31,r0,#0 j L169 nop ; not filled. L170: slli r1,r2,#0x2 add r1,r1,r7 lw r1,96(r1) addi r9,r0,#-8 and r1,r1,r9 add r31,r1,r31 L169: snei r1,r31,#0 beqz r1,L167 nop ; not filled. andi r1,r31,#65535 sub r2,r8,r1 sgt r1,r2,r3 beqz r1,L172 nop ; not filled. add r2,r0,r3 L172: addi r29,r29,#-16 sw (r29),r5 sw 4(r29),r31 sw 8(r29),r2 jal _bcopy nop ; not filled. addi r29,r29,#16 sub r3,r3,r2 add r6,r6,r2 add r5,r5,r2 add r4,r4,r2 sgti r1,r3,#0 bnez r1,L168 nop ; not filled. L167: add r1,r0,r6 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCopySystemToUser .align 2 .proc _MemoryCopyUserToSystem .global _MemoryCopyUserToSystem _MemoryCopyUserToSystem: ; Function 'MemoryCopyUserToSystem'; 0 bytes of locals, 8 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 sw 28(r29),r9 lw r7,(r30) lw r5,8(r30) lw r4,4(r30) lw r3,12(r30) addi r6,r0,#0 sgti r1,r3,#0 beqz r1,L191 nop ; not filled. lhi r8,#1 addui r8,r8,#0 L192: srli r2,r4,#0x10 andi r31,r4,#0xffff lw r1,160(r7) sgt r1,r2,r1 beqz r1,L194 nop ; not filled. addi r31,r0,#0 j L193 nop ; not filled. L194: slli r1,r2,#0x2 add r1,r1,r7 lw r1,96(r1) addi r9,r0,#-8 and r1,r1,r9 add r31,r1,r31 L193: snei r1,r31,#0 beqz r1,L191 nop ; not filled. andi r1,r31,#65535 sub r2,r8,r1 sgt r1,r2,r3 beqz r1,L197 nop ; not filled. add r2,r0,r3 L197: addi r29,r29,#-16 sw (r29),r31 sw 4(r29),r5 sw 8(r29),r2 jal _bcopy nop ; not filled. addi r29,r29,#16 sub r3,r3,r2 add r6,r6,r2 add r5,r5,r2 add r4,r4,r2 sgti r1,r3,#0 bnez r1,L192 nop ; not filled. L191: add r1,r0,r6 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r9,28(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryCopyUserToSystem .align 2 .proc _MemorySetupPte .global _MemorySetupPte _MemorySetupPte: ; Function 'MemorySetupPte'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) slli r1,r1,#0x10 ori r1,r1,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemorySetupPte .align 2 .proc _MemoryFreePte .global _MemoryFreePte _MemoryFreePte: ; Function 'MemoryFreePte'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r29,r29,#-8 lhu r1,(r30) sw (r29),r1 jal _MemoryFreePage nop ; not filled. addi r29,r29,#8 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryFreePte .align 2 .proc _MemoryPteToPage .global _MemoryPteToPage _MemoryPteToPage: ; Function 'MemoryPteToPage'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) addi r31,r0,#-8 and r1,r1,r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryPteToPage .data .align 2 _invalidOps61: .word 13316 .align 2 LC8: .ascii "Operand for instruction %08x is 0x%x (reg=<%d,0x%x>)\n\000" .text .align 2 .proc _MemoryGetOperandAddress .global _MemoryGetOperandAddress _MemoryGetOperandAddress: ; Function 'MemoryGetOperandAddress'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r2,(r30) lw r5,4(r30) srli r1,r5,#0x1a addi r31,r1,#-32 sgtui r1,r31,#15 bnez r1,L214 nop ; not filled. lhi r1,((_invalidOps61)>>16)&0xffff addui r1,r1,(_invalidOps61)&0xffff lw r1,(r1) srl r1,r1,r31 andi r1,r1,#1 beqz r1,L213 nop ; not filled. L214: addi r1,r0,#-1 j L218 nop ; not filled. L213: srli r1,r5,#0x15 andi r6,r1,#31 andi r31,r5,#0xffff srli r1,r31,#0xf beqz r1,L215 nop ; not filled. lhi r7,#-1 addui r7,r7,#0 or r31,r31,r7 L215: lw r2,(r2) slli r1,r6,#0x2 add r1,r1,r2 lw r3,40(r1) add r4,r3,r31 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#109 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L217 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L216 nop ; not filled. L217: addi r29,r29,#-24 lhi r7,((LC8)>>16)&0xffff addui r7,r7,(LC8)&0xffff sw (r29),r7 sw 4(r29),r5 sw 8(r29),r4 sw 12(r29),r6 sw 16(r29),r3 jal _printf nop ; not filled. addi r29,r29,#24 L216: add r1,r0,r4 L218: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _MemoryGetOperandAddress .data .align 2 _pagestart: .space 4 .align 2 _freemapmax: .space 4 .align 2 _nfreepages: .space 4 .align 2 _freepages: .space 8192

home/bshapir/cs314/project3/src/userprog.lst

line address contents 1 ; Linked by DLX-LD. 2 ; MemSize 20480 3 ; Data size: 59 4 ; Text size: 3420 5 ; Stack size: 8192 6 00000000 .text 0x1000 7 00001000 .data 0x2000 8 ; Compiled by GCC 10 00002000 .align 2 11 00002000 LC0_LF0: 12 00002000 75736572 .ascii "userprog.dlx.obj\000" 12 00002004 70726f67 12 00002008 2e646c78 12 0000200c 2e6f626a 12 00002010 00 13 00002011 .align 2 14 00002014 LC1_LF0: 15 00002014 25632564 .ascii "%c%d\n\000" 15 00002018 0a00 16 0000201a .align 2 17 0000201c LC2_LF0: 18 0000201c 55736167 .ascii "Usage: \000" 18 00002020 653a2000 19 00002024 .align 2 20 00002024 LC3_LF0: 21 00002024 206e756d .ascii " number\n\000" 21 00002028 6265720a 21 0000202c 00 22 0000202d .align 2 23 00002030 LC4_LF0: 24 00002030 61726763 .ascii "argc = %d\n\000" 24 00002034 203d2025 24 00002038 640a00 25 0000203b .text 26 00001000 .align 2 27 00001000 .proc _main 28 00001000 .global _main 29 00001000 _main: 30 ; Function 'main'; 32 bytes of locals, 0 regs to save. 31 00001000 afbefffc sw -4(r29),r30; push fp 32 00001004 001df020 add r30,r0,r29; fp = sp 33 00001008 afbffff8 sw -8(r29),r31; push ret addr 34 0000100c 2fbd0028 subui r29,r29,#40; alloc local storage 35 00001010 8fc20000 lw r2,(r30) 36 00001014 8fc30004 lw r3,4(r30) 37 00001018 0c000d38 jal ___main 38 0000101c 54000000 nop; not filled. 39 00001020 60410002 seqi r1,r2,#2 40 00001024 14200018 bnez r1,L3_LF0 41 00001028 54000000 nop; not filled. 42 0000102c 60410003 seqi r1,r2,#3 43 00001030 102001a0 beqz r1,L20_LF0 44 00001034 54000000 nop; not filled. 45 00001038 080000cc j L9_LF0 46 0000103c 54000000 nop; not filled. 47 00001040 L3_LF0: 48 00001040 23bdfff0 addi r29,r29,#-16 49 00001044 8c630004 lw r3,4(r3) 50 00001048 afa30000 sw (r29),r3 51 0000104c 20060000 addi r6,r0,#0 52 00001050 afa60004 sw 4(r29),r6 53 00001054 2006000a addi r6,r0,#10 54 00001058 afa60008 sw 8(r29),r6 55 0000105c 0c000a08 jal _dstrtol 56 00001060 54000000 nop; not filled. 57 00001064 00012820 add r5,r0,r1 58 00001068 20060001 addi r6,r0,#1 59 0000106c afa60000 sw (r29),r6 60 00001070 0c000248 jal _sem_create 61 00001074 54000000 nop; not filled. 62 00001078 afa10000 sw (r29),r1 63 0000107c 23c4ffd8 addi r4,r30,#-40 64 00001080 afa40004 sw 4(r29),r4 65 00001084 0c0008d4 jal _ditoa 66 00001088 54000000 nop; not filled. 67 0000108c 20030000 addi r3,r0,#0 68 00001090 23bd0010 addi r29,r29,#16 69 00001094 0065082a slt r1,r3,r5 70 00001098 10200194 beqz r1,L2_LF0 71 0000109c 54000000 nop; not filled. 72 000010a0 23c2ffe8 addi r2,r30,#-24 73 000010a4 L7_LF0: 74 000010a4 23bdfff8 addi r29,r29,#-8 75 000010a8 afa30000 sw (r29),r3 76 000010ac afa20004 sw 4(r29),r2 77 000010b0 0c0008a8 jal _ditoa 78 000010b4 54000000 nop; not filled. 79 000010b8 23bdfff0 addi r29,r29,#-16 80 000010bc afa30000 sw (r29),r3 81 000010c0 20060000 addi r6,r0,#0 82 000010c4 afa60004 sw 4(r29),r6 83 000010c8 3c060000 lhi r6,((LC0_LF0)>>16)&0xffff 84 000010cc 24c62000 addui r6,r6,(LC0_LF0)&0xffff 85 000010d0 afa60008 sw 8(r29),r6 86 000010d4 afa2000c sw 12(r29),r2 87 000010d8 afa40010 sw 16(r29),r4 88 000010dc 20060000 addi r6,r0,#0 89 000010e0 afa60014 sw 20(r29),r6 90 000010e4 0c0001b0 jal _process_create 91 000010e8 54000000 nop; not filled. 92 000010ec 23bd0018 addi r29,r29,#24 93 000010f0 20630001 addi r3,r3,#1 94 000010f4 0065082a slt r1,r3,r5 95 000010f8 10200134 beqz r1,L2_LF0 96 000010fc 54000000 nop; not filled. 97 00001100 0bffffa0 j L7_LF0 98 00001104 54000000 nop; not filled. 99 00001108 L9_LF0: 100 00001108 23bdfff0 addi r29,r29,#-16 101 0000110c 8c660004 lw r6,4(r3) 102 00001110 afa60000 sw (r29),r6 103 00001114 20060000 addi r6,r0,#0 104 00001118 afa60004 sw 4(r29),r6 105 0000111c 2006000a addi r6,r0,#10 106 00001120 afa60008 sw 8(r29),r6 107 00001124 0c000940 jal _dstrtol 108 00001128 54000000 nop; not filled. 109 0000112c 00011020 add r2,r0,r1 110 00001130 8c630008 lw r3,8(r3) 111 00001134 afa30000 sw (r29),r3 112 00001138 20060000 addi r6,r0,#0 113 0000113c afa60004 sw 4(r29),r6 114 00001140 2006000a addi r6,r0,#10 115 00001144 afa60008 sw 8(r29),r6 116 00001148 0c00091c jal _dstrtol 117 0000114c 54000000 nop; not filled. 118 00001150 00012020 add r4,r0,r1 119 00001154 20030000 addi r3,r0,#0 120 00001158 23bd0010 addi r29,r29,#16 121 0000115c 2405c34f addui r5,r0,#49999 122 00001160 20420041 addi r2,r2,#65 123 00001164 L13_LF0: 124 00001164 23bdfff8 addi r29,r29,#-8 125 00001168 afa40000 sw (r29),r4 126 0000116c 0c000158 jal _sem_wait 127 00001170 54000000 nop; not filled. 128 00001174 201f0000 addi r31,r0,#0 129 00001178 23bd0008 addi r29,r29,#8 130 0000117c L16_LF0: 131 0000117c 23ff0001 addi r31,r31,#1 132 00001180 03e5082c sle r1,r31,r5 133 00001184 1420fff4 bnez r1,L16_LF0 134 00001188 54000000 nop; not filled. 135 0000118c 23bdfff0 addi r29,r29,#-16 136 00001190 3c060000 lhi r6,((LC1_LF0)>>16)&0xffff 137 00001194 24c62014 addui r6,r6,(LC1_LF0)&0xffff 138 00001198 afa60000 sw (r29),r6 139 0000119c afa20004 sw 4(r29),r2 140 000011a0 afa30008 sw 8(r29),r3 141 000011a4 0c0000d8 jal _Printf 142 000011a8 54000000 nop; not filled. 143 000011ac afa40000 sw (r29),r4 144 000011b0 0c000120 jal _sem_signal 145 000011b4 54000000 nop; not filled. 146 000011b8 23bd0010 addi r29,r29,#16 147 000011bc 20630001 addi r3,r3,#1 148 000011c0 70610063 slei r1,r3,#99 149 000011c4 10200068 beqz r1,L2_LF0 150 000011c8 54000000 nop; not filled. 151 000011cc 0bffff94 j L13_LF0 152 000011d0 54000000 nop; not filled. 153 000011d4 L20_LF0: 154 000011d4 23bdfff8 addi r29,r29,#-8 155 000011d8 3c060000 lhi r6,((LC2_LF0)>>16)&0xffff 156 000011dc 24c6201c addui r6,r6,(LC2_LF0)&0xffff 157 000011e0 afa60000 sw (r29),r6 158 000011e4 0c000098 jal _Printf 159 000011e8 54000000 nop; not filled. 160 000011ec 8c630000 lw r3,(r3) 161 000011f0 afa30000 sw (r29),r3 162 000011f4 0c000088 jal _Printf 163 000011f8 54000000 nop; not filled. 164 000011fc 3c060000 lhi r6,((LC3_LF0)>>16)&0xffff 165 00001200 24c62024 addui r6,r6,(LC3_LF0)&0xffff 166 00001204 afa60000 sw (r29),r6 167 00001208 0c000074 jal _Printf 168 0000120c 54000000 nop; not filled. 169 00001210 3c060000 lhi r6,((LC4_LF0)>>16)&0xffff 170 00001214 24c62030 addui r6,r6,(LC4_LF0)&0xffff 171 00001218 afa60000 sw (r29),r6 172 0000121c afa20004 sw 4(r29),r2 173 00001220 0c00005c jal _Printf 174 00001224 54000000 nop; not filled. 175 00001228 0c000b1c jal _exit 176 0000122c 54000000 nop; not filled. 177 00001230 L2_LF0: 178 00001230 0c000b14 jal _exit 179 00001234 54000000 nop 180 00001238 .endproc _main 181 ;;; 182 ;;; Stub functions for DLX traps. 183 ;;; 184 ;;; Ethan L. Miller, 1999. Released to the public domain. 185 ;;; 186 ;;; The traps such as Open and Close 187 ;;; (note the capital letters) are for use by user programs. The traps 188 ;;; with names such as open and close (lower case) are for use by the OS. 189 ;;; 192 00001238 .align 2 194 ;;; The following are the traps to be used by user-level programs 195 ;;; 197 00001238 .align 2 198 00001238 .proc _Open 199 00001238 .global _Open 200 00001238 _Open: 201 ;;; Note that trap #0x213 actually causes a trap vector in the OS of 202 ;;; 0x1213. The same is true for other user traps. Thus, a user trap 203 ;;; with trap #0x240 will result in a trap vector of 0x1240 in the OS. 204 00001238 44000213 trap #0x213 205 0000123c 4be00000 jr r31 206 00001240 54000000 nop 207 00001244 .endproc _Open 209 00001244 .proc _Close 210 00001244 .global _Close 211 00001244 _Close: 212 00001244 44000214 trap #0x214 213 00001248 4be00000 jr r31 214 0000124c 54000000 nop 215 00001250 .endproc _Close 217 00001250 .proc _Read 218 00001250 .global _Read 219 00001250 _Read: 220 00001250 44000210 trap #0x210 221 00001254 4be00000 jr r31 222 00001258 54000000 nop 223 0000125c .endproc _Read 225 0000125c .proc _Write 226 0000125c .global _Write 227 0000125c _Write: 228 0000125c 44000211 trap #0x211 229 00001260 4be00000 jr r31 230 00001264 54000000 nop 231 00001268 .endproc _Write 233 00001268 .proc _Lseek 234 00001268 .global _Lseek 235 00001268 _Lseek: 236 00001268 44000212 trap #0x212 237 0000126c 4be00000 jr r31 238 00001270 54000000 nop 239 00001274 .endproc _Lseek 241 00001274 .proc _Putchar 242 00001274 .global _Putchar 243 00001274 _Putchar: 244 00001274 44000280 trap #0x280 245 00001278 4be00000 jr r31 246 0000127c 54000000 nop 247 00001280 .endproc _Putchar 249 00001280 .proc _Printf 250 00001280 .global _Printf 251 00001280 _Printf: 252 00001280 44000201 trap #0x201 253 00001284 4be00000 jr r31 254 00001288 54000000 nop 255 0000128c .endproc _Printf 257 0000128c .proc _getpid 258 0000128c .global _getpid 259 0000128c _getpid: 260 0000128c 44000431 trap #0x431 261 00001290 4be00000 jr r31 262 00001294 54000000 nop 263 00001298 .endproc _getpid 266 00001298 .proc _process_create 267 00001298 .global _process_create 268 00001298 _process_create: 269 00001298 44000432 trap #0x432 270 0000129c 4be00000 jr r31 271 000012a0 54000000 nop 272 000012a4 .endproc _process_create 274 000012a4 .proc _shmget 275 000012a4 .global _shmget 276 000012a4 _shmget: 277 000012a4 44000440 trap #0x440 278 000012a8 4be00000 jr r31 279 000012ac 54000000 nop 280 000012b0 .endproc _shmget 282 000012b0 .proc _shmat 283 000012b0 .global _shmat 284 000012b0 _shmat: 285 000012b0 44000441 trap #0x441 286 000012b4 4be00000 jr r31 287 000012b8 54000000 nop 288 000012bc .endproc _shmat 290 000012bc .proc _sem_create 291 000012bc .global _sem_create 292 000012bc _sem_create: 293 000012bc 44000450 trap #0x450 294 000012c0 4be00000 jr r31 295 000012c4 54000000 nop 296 000012c8 .endproc _sem_create 298 000012c8 .proc _sem_wait 299 000012c8 .global _sem_wait 300 000012c8 _sem_wait: 301 000012c8 44000451 trap #0x451 302 000012cc 4be00000 jr r31 303 000012d0 54000000 nop 304 000012d4 .endproc _sem_wait 306 000012d4 .proc _sem_signal 307 000012d4 .global _sem_signal 308 000012d4 _sem_signal: 309 000012d4 44000452 trap #0x452 310 000012d8 4be00000 jr r31 311 000012dc 54000000 nop 312 000012e0 .endproc _sem_signal 314 000012e0 .proc _lock_create 315 000012e0 .global _lock_create 316 000012e0 _lock_create: 317 000012e0 44000453 trap #0x453 318 000012e4 4be00000 jr r31 319 000012e8 54000000 nop 320 000012ec .endproc _lock_create 322 000012ec .proc _lock_acquire 323 000012ec .global _lock_acquire 324 000012ec _lock_acquire: 325 000012ec 44000454 trap #0x454 326 000012f0 4be00000 jr r31 327 000012f4 54000000 nop 328 000012f8 .endproc _lock_acquire 330 000012f8 .proc _lock_release 331 000012f8 .global _lock_release 332 000012f8 _lock_release: 333 000012f8 44000455 trap #0x455 334 000012fc 4be00000 jr r31 335 00001300 54000000 nop 336 00001304 .endproc _lock_release 338 00001304 .proc _cond_create 339 00001304 .global _cond_create 340 00001304 _cond_create: 341 00001304 44000456 trap #0x456 342 00001308 4be00000 jr r31 343 0000130c 54000000 nop 344 00001310 .endproc _cond_create 346 00001310 .proc _cond_wait 347 00001310 .global _cond_wait 348 00001310 _cond_wait: 349 00001310 44000457 trap #0x457 350 00001314 4be00000 jr r31 351 00001318 54000000 nop 352 0000131c .endproc _cond_wait 354 0000131c .proc _cond_signal 355 0000131c .global _cond_signal 356 0000131c _cond_signal: 357 0000131c 44000458 trap #0x458 358 00001320 4be00000 jr r31 359 00001324 54000000 nop 360 00001328 .endproc _cond_signal 362 00001328 .proc _cond_broadcast 363 00001328 .global _cond_broadcast 364 00001328 _cond_broadcast: 365 00001328 44000455 trap #0x455 366 0000132c 4be00000 jr r31 367 00001330 54000000 nop 368 00001334 .endproc _cond_broadcast 370 00001334 .proc _TimerGet 371 00001334 .global _TimerGet 372 00001334 _TimerGet: 373 00001334 44000050 trap #0x50 374 00001338 4be00000 jr r31 375 0000133c 54000000 nop 376 00001340 .endproc _TimerGet 378 00001340 .proc _yield 379 00001340 .global _yield 380 00001340 _yield: 381 00001340 44000433 trap #0x433 382 00001344 4be00000 jr r31 383 00001348 54000000 nop 384 0000134c .endproc _yield 385 ; Compiled by GCC 387 0000134c .align 2 388 0000134c .proc _isspace 389 0000134c .global _isspace 390 0000134c _isspace: 391 ; Function 'isspace'; 0 bytes of locals, 1 regs to save. 392 0000134c afbefffc sw -4(r29),r30; push fp 393 00001350 001df020 add r30,r0,r29; fp = sp 394 00001354 afbffff8 sw -8(r29),r31; push ret addr 395 00001358 2fbd0010 subui r29,r29,#16; alloc local storage 396 0000135c afa20000 sw 0(r29),r2 397 00001360 83c20003 lb r2,3(r30) 398 00001364 201f0000 addi r31,r0,#0 399 00001368 304100ff andi r1,r2,#0x00ff 400 0000136c 60210020 seqi r1,r1,#32 401 00001370 14200018 bnez r1,L6_LF2 402 00001374 54000000 nop; not filled. 403 00001378 2041fff7 addi r1,r2,#-9 404 0000137c 302100ff andi r1,r1,#0x00ff 405 00001380 70210001 sleui r1,r1,#1 406 00001384 10200008 beqz r1,L5_LF2 407 00001388 54000000 nop; not filled. 408 0000138c L6_LF2: 409 0000138c 201f0001 addi r31,r0,#1 410 00001390 L5_LF2: 411 00001390 001f0820 add r1,r0,r31 412 00001394 8fa20000 lw r2,0(r29) 413 00001398 8fdffff8 lw r31,-8(r30) 414 0000139c 001ee820 add r29,r0,r30 415 000013a0 8fdefffc lw r30,-4(r30) 416 000013a4 4be00000 jr r31 417 000013a8 54000000 nop 418 000013ac .endproc _isspace 419 000013ac .align 2 420 000013ac .proc _isxdigit 421 000013ac .global _isxdigit 422 000013ac _isxdigit: 423 ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. 424 000013ac afbefffc sw -4(r29),r30; push fp 425 000013b0 001df020 add r30,r0,r29; fp = sp 426 000013b4 afbffff8 sw -8(r29),r31; push ret addr 427 000013b8 2fbd0010 subui r29,r29,#16; alloc local storage 428 000013bc afa20000 sw 0(r29),r2 429 000013c0 83df0003 lb r31,3(r30) 430 000013c4 20020000 addi r2,r0,#0 431 000013c8 23e1ffd0 addi r1,r31,#-48 432 000013cc 302100ff andi r1,r1,#0x00ff 433 000013d0 70210009 sleui r1,r1,#9 434 000013d4 14200028 bnez r1,L12_LF2 435 000013d8 54000000 nop; not filled. 436 000013dc 23e1ff9f addi r1,r31,#-97 437 000013e0 302100ff andi r1,r1,#0x00ff 438 000013e4 70210005 sleui r1,r1,#5 439 000013e8 14200014 bnez r1,L12_LF2 440 000013ec 54000000 nop; not filled. 441 000013f0 33e100ff andi r1,r31,#0x00ff 442 000013f4 64210041 snei r1,r1,#65 443 000013f8 14200008 bnez r1,L11_LF2 444 000013fc 54000000 nop; not filled. 445 00001400 L12_LF2: 446 00001400 20020001 addi r2,r0,#1 447 00001404 L11_LF2: 448 00001404 00020820 add r1,r0,r2 449 00001408 8fa20000 lw r2,0(r29) 450 0000140c 8fdffff8 lw r31,-8(r30) 451 00001410 001ee820 add r29,r0,r30 452 00001414 8fdefffc lw r30,-4(r30) 453 00001418 4be00000 jr r31 454 0000141c 54000000 nop 455 00001420 .endproc _isxdigit 456 00001420 .align 2 457 00001420 .proc _dstrcpy 458 00001420 .global _dstrcpy 459 00001420 _dstrcpy: 460 ; Function 'dstrcpy'; 0 bytes of locals, 2 regs to save. 461 00001420 afbefffc sw -4(r29),r30; push fp 462 00001424 001df020 add r30,r0,r29; fp = sp 463 00001428 afbffff8 sw -8(r29),r31; push ret addr 464 0000142c 2fbd0010 subui r29,r29,#16; alloc local storage 465 00001430 afa20000 sw 0(r29),r2 466 00001434 afa30004 sw 4(r29),r3 467 00001438 8fdf0000 lw r31,(r30) 468 0000143c 8fc20004 lw r2,4(r30) 469 00001440 001f1820 add r3,r0,r31 470 00001444 L19_LF2: 471 00001444 80410000 lb r1,(r2) 472 00001448 a3e10000 sb (r31),r1 473 0000144c 20420001 addi r2,r2,#1 474 00001450 23ff0001 addi r31,r31,#1 475 00001454 302100ff andi r1,r1,#0x00ff 476 00001458 64210000 snei r1,r1,#0 477 0000145c 1420ffe4 bnez r1,L19_LF2 478 00001460 54000000 nop; not filled. 479 00001464 00030820 add r1,r0,r3 480 00001468 8fa20000 lw r2,0(r29) 481 0000146c 8fa30004 lw r3,4(r29) 482 00001470 8fdffff8 lw r31,-8(r30) 483 00001474 001ee820 add r29,r0,r30 484 00001478 8fdefffc lw r30,-4(r30) 485 0000147c 4be00000 jr r31 486 00001480 54000000 nop 487 00001484 .endproc _dstrcpy 488 00001484 .align 2 489 00001484 .proc _dstrncpy 490 00001484 .global _dstrncpy 491 00001484 _dstrncpy: 492 ; Function 'dstrncpy'; 0 bytes of locals, 3 regs to save. 493 00001484 afbefffc sw -4(r29),r30; push fp 494 00001488 001df020 add r30,r0,r29; fp = sp 495 0000148c afbffff8 sw -8(r29),r31; push ret addr 496 00001490 2fbd0018 subui r29,r29,#24; alloc local storage 497 00001494 afa20000 sw 0(r29),r2 498 00001498 afa30004 sw 4(r29),r3 499 0000149c afa40008 sw 8(r29),r4 500 000014a0 8fc20000 lw r2,(r30) 501 000014a4 8fc30004 lw r3,4(r30) 502 000014a8 8fdf0008 lw r31,8(r30) 503 000014ac 00022020 add r4,r0,r2 504 000014b0 08000024 j L37_LF2 505 000014b4 54000000 nop; not filled. 506 000014b8 L34_LF2: 507 000014b8 80610000 lb r1,(r3) 508 000014bc a0410000 sb (r2),r1 509 000014c0 20630001 addi r3,r3,#1 510 000014c4 20420001 addi r2,r2,#1 511 000014c8 302100ff andi r1,r1,#0x00ff 512 000014cc 64210000 snei r1,r1,#0 513 000014d0 10200018 beqz r1,L32_LF2 514 000014d4 54000000 nop; not filled. 515 000014d8 L37_LF2: 516 000014d8 001f0820 add r1,r0,r31 517 000014dc 23ffffff addi r31,r31,#-1 518 000014e0 70210000 slei r1,r1,#0 519 000014e4 1020ffd0 beqz r1,L34_LF2 520 000014e8 54000000 nop; not filled. 521 000014ec L32_LF2: 522 000014ec 00040820 add r1,r0,r4 523 000014f0 8fa20000 lw r2,0(r29) 524 000014f4 8fa30004 lw r3,4(r29) 525 000014f8 8fa40008 lw r4,8(r29) 526 000014fc 8fdffff8 lw r31,-8(r30) 527 00001500 001ee820 add r29,r0,r30 528 00001504 8fdefffc lw r30,-4(r30) 529 00001508 4be00000 jr r31 530 0000150c 54000000 nop 531 00001510 .endproc _dstrncpy 532 00001510 .align 2 533 00001510 .proc _dstrcat 534 00001510 .global _dstrcat 535 00001510 _dstrcat: 536 ; Function 'dstrcat'; 0 bytes of locals, 2 regs to save. 537 00001510 afbefffc sw -4(r29),r30; push fp 538 00001514 001df020 add r30,r0,r29; fp = sp 539 00001518 afbffff8 sw -8(r29),r31; push ret addr 540 0000151c 2fbd0010 subui r29,r29,#16; alloc local storage 541 00001520 afa20000 sw 0(r29),r2 542 00001524 afa30004 sw 4(r29),r3 543 00001528 8fdf0000 lw r31,(r30) 544 0000152c 001f1820 add r3,r0,r31 545 00001530 90610000 lbu r1,(r3) 546 00001534 64210000 snei r1,r1,#0 547 00001538 10200018 beqz r1,L50_LF2 548 0000153c 54000000 nop; not filled. 549 00001540 L51_LF2: 550 00001540 23ff0001 addi r31,r31,#1 551 00001544 93e10000 lbu r1,(r31) 552 00001548 64210000 snei r1,r1,#0 553 0000154c 1420fff0 bnez r1,L51_LF2 554 00001550 54000000 nop; not filled. 555 00001554 L50_LF2: 556 00001554 001f1020 add r2,r0,r31 557 00001558 8fdf0004 lw r31,4(r30) 558 0000155c L54_LF2: 559 0000155c 83e10000 lb r1,(r31) 560 00001560 a0410000 sb (r2),r1 561 00001564 23ff0001 addi r31,r31,#1 562 00001568 20420001 addi r2,r2,#1 563 0000156c 302100ff andi r1,r1,#0x00ff 564 00001570 64210000 snei r1,r1,#0 565 00001574 1420ffe4 bnez r1,L54_LF2 566 00001578 54000000 nop; not filled. 567 0000157c 00030820 add r1,r0,r3 568 00001580 8fa20000 lw r2,0(r29) 569 00001584 8fa30004 lw r3,4(r29) 570 00001588 8fdffff8 lw r31,-8(r30) 571 0000158c 001ee820 add r29,r0,r30 572 00001590 8fdefffc lw r30,-4(r30) 573 00001594 4be00000 jr r31 574 00001598 54000000 nop 575 0000159c .endproc _dstrcat 576 0000159c .align 2 577 0000159c .proc _dstrncmp 578 0000159c .global _dstrncmp 579 0000159c _dstrncmp: 580 ; Function 'dstrncmp'; 0 bytes of locals, 4 regs to save. 581 0000159c afbefffc sw -4(r29),r30; push fp 582 000015a0 001df020 add r30,r0,r29; fp = sp 583 000015a4 afbffff8 sw -8(r29),r31; push ret addr 584 000015a8 2fbd0018 subui r29,r29,#24; alloc local storage 585 000015ac afa20000 sw 0(r29),r2 586 000015b0 afa30004 sw 4(r29),r3 587 000015b4 afa40008 sw 8(r29),r4 588 000015b8 afa5000c sw 12(r29),r5 589 000015bc 8fc30000 lw r3,(r30) 590 000015c0 8fc40004 lw r4,4(r30) 591 000015c4 8fc50008 lw r5,8(r30) 592 000015c8 20020000 addi r2,r0,#0 593 000015cc 0045082a slt r1,r2,r5 594 000015d0 1020003c beqz r1,L73_LF2 595 000015d4 54000000 nop; not filled. 596 000015d8 L75_LF2: 597 000015d8 909f0000 lbu r31,(r4) 598 000015dc 67e10000 snei r1,r31,#0 599 000015e0 10200038 beqz r1,L86_LF2 600 000015e4 54000000 nop; not filled. 601 000015e8 90610000 lbu r1,(r3) 602 000015ec 003f0829 sne r1,r1,r31 603 000015f0 1420001c bnez r1,L73_LF2 604 000015f4 54000000 nop; not filled. 605 000015f8 20630001 addi r3,r3,#1 606 000015fc 20840001 addi r4,r4,#1 607 00001600 20420001 addi r2,r2,#1 608 00001604 0045082a slt r1,r2,r5 609 00001608 1420ffcc bnez r1,L75_LF2 610 0000160c 54000000 nop; not filled. 611 00001610 L73_LF2: 612 00001610 00450828 seq r1,r2,r5 613 00001614 10200010 beqz r1,L80_LF2 614 00001618 54000000 nop; not filled. 615 0000161c L86_LF2: 616 0000161c 20010000 addi r1,r0,#0 617 00001620 08000028 j L84_LF2 618 00001624 54000000 nop; not filled. 619 00001628 L80_LF2: 620 00001628 907f0000 lbu r31,(r3) 621 0000162c 90830000 lbu r3,(r4) 622 00001630 03e30822 sub r1,r31,r3 623 00001634 74210000 sgei r1,r1,#0 624 00001638 2002ffff addi r2,r0,#-1 625 0000163c 10200008 beqz r1,L82_LF2 626 00001640 54000000 nop; not filled. 627 00001644 03e31029 sne r2,r31,r3 628 00001648 L82_LF2: 629 00001648 00020820 add r1,r0,r2 630 0000164c L84_LF2: 631 0000164c 8fa20000 lw r2,0(r29) 632 00001650 8fa30004 lw r3,4(r29) 633 00001654 8fa40008 lw r4,8(r29) 634 00001658 8fa5000c lw r5,12(r29) 635 0000165c 8fdffff8 lw r31,-8(r30) 636 00001660 001ee820 add r29,r0,r30 637 00001664 8fdefffc lw r30,-4(r30) 638 00001668 4be00000 jr r31 639 0000166c 54000000 nop 640 00001670 .endproc _dstrncmp 641 00001670 .align 2 642 00001670 .proc _dstrlen 643 00001670 .global _dstrlen 644 00001670 _dstrlen: 645 ; Function 'dstrlen'; 0 bytes of locals, 1 regs to save. 646 00001670 afbefffc sw -4(r29),r30; push fp 647 00001674 001df020 add r30,r0,r29; fp = sp 648 00001678 afbffff8 sw -8(r29),r31; push ret addr 649 0000167c 2fbd0010 subui r29,r29,#16; alloc local storage 650 00001680 afa20000 sw 0(r29),r2 651 00001684 8fdf0000 lw r31,(r30) 652 00001688 20020000 addi r2,r0,#0 653 0000168c 08000008 j L97_LF2 654 00001690 54000000 nop; not filled. 655 00001694 L95_LF2: 656 00001694 20420001 addi r2,r2,#1 657 00001698 L97_LF2: 658 00001698 93e10000 lbu r1,(r31) 659 0000169c 23ff0001 addi r31,r31,#1 660 000016a0 64210000 snei r1,r1,#0 661 000016a4 1420ffec bnez r1,L95_LF2 662 000016a8 54000000 nop; not filled. 663 000016ac 00020820 add r1,r0,r2 664 000016b0 8fa20000 lw r2,0(r29) 665 000016b4 8fdffff8 lw r31,-8(r30) 666 000016b8 001ee820 add r29,r0,r30 667 000016bc 8fdefffc lw r30,-4(r30) 668 000016c0 4be00000 jr r31 669 000016c4 54000000 nop 670 000016c8 .endproc _dstrlen 671 000016c8 .align 2 672 000016c8 .proc _dstrstr 673 000016c8 .global _dstrstr 674 000016c8 _dstrstr: 675 ; Function 'dstrstr'; 0 bytes of locals, 6 regs to save. 676 000016c8 afbefffc sw -4(r29),r30; push fp 677 000016cc 001df020 add r30,r0,r29; fp = sp 678 000016d0 afbffff8 sw -8(r29),r31; push ret addr 679 000016d4 2fbd0020 subui r29,r29,#32; alloc local storage 680 000016d8 afa20000 sw 0(r29),r2 681 000016dc afa30004 sw 4(r29),r3 682 000016e0 afa40008 sw 8(r29),r4 683 000016e4 afa5000c sw 12(r29),r5 684 000016e8 afa60010 sw 16(r29),r6 685 000016ec afa70014 sw 20(r29),r7 686 000016f0 8fc50000 lw r5,(r30) 687 000016f4 8fc70004 lw r7,4(r30) 688 000016f8 20030000 addi r3,r0,#0 689 000016fc 90e10000 lbu r1,(r7) 690 00001700 20e20001 addi r2,r7,#1 691 00001704 64210000 snei r1,r1,#0 692 00001708 1020001c beqz r1,L125_LF2 693 0000170c 54000000 nop; not filled. 694 00001710 L126_LF2: 695 00001710 20630001 addi r3,r3,#1 696 00001714 90410000 lbu r1,(r2) 697 00001718 20420001 addi r2,r2,#1 698 0000171c 64210000 snei r1,r1,#0 699 00001720 1420ffec bnez r1,L126_LF2 700 00001724 54000000 nop; not filled. 701 00001728 L125_LF2: 702 00001728 00033020 add r6,r0,r3 703 0000172c 080000ac j L149_LF2 704 00001730 54000000 nop; not filled. 705 00001734 L130_LF2: 706 00001734 00051820 add r3,r0,r5 707 00001738 00072020 add r4,r0,r7 708 0000173c 20020000 addi r2,r0,#0 709 00001740 0046082a slt r1,r2,r6 710 00001744 1020003c beqz r1,L134_LF2 711 00001748 54000000 nop; not filled. 712 0000174c L136_LF2: 713 0000174c 909f0000 lbu r31,(r4) 714 00001750 67e10000 snei r1,r31,#0 715 00001754 10200038 beqz r1,L150_LF2 716 00001758 54000000 nop; not filled. 717 0000175c 90610000 lbu r1,(r3) 718 00001760 003f0829 sne r1,r1,r31 719 00001764 1420001c bnez r1,L134_LF2 720 00001768 54000000 nop; not filled. 721 0000176c 20630001 addi r3,r3,#1 722 00001770 20840001 addi r4,r4,#1 723 00001774 20420001 addi r2,r2,#1 724 00001778 0046082a slt r1,r2,r6 725 0000177c 1420ffcc bnez r1,L136_LF2 726 00001780 54000000 nop; not filled. 727 00001784 L134_LF2: 728 00001784 00460828 seq r1,r2,r6 729 00001788 10200010 beqz r1,L141_LF2 730 0000178c 54000000 nop; not filled. 731 00001790 L150_LF2: 732 00001790 20010000 addi r1,r0,#0 733 00001794 08000028 j L132_LF2 734 00001798 54000000 nop; not filled. 735 0000179c L141_LF2: 736 0000179c 90630000 lbu r3,(r3) 737 000017a0 90820000 lbu r2,(r4) 738 000017a4 00620822 sub r1,r3,r2 739 000017a8 74210000 sgei r1,r1,#0 740 000017ac 201fffff addi r31,r0,#-1 741 000017b0 10200008 beqz r1,L143_LF2 742 000017b4 54000000 nop; not filled. 743 000017b8 0062f829 sne r31,r3,r2 744 000017bc L143_LF2: 745 000017bc 001f0820 add r1,r0,r31 746 000017c0 L132_LF2: 747 000017c0 64210000 snei r1,r1,#0 748 000017c4 14200010 bnez r1,L131_LF2 749 000017c8 54000000 nop; not filled. 750 000017cc 00050820 add r1,r0,r5 751 000017d0 0800001c j L146_LF2 752 000017d4 54000000 nop; not filled. 753 000017d8 L131_LF2: 754 000017d8 20a50001 addi r5,r5,#1 755 000017dc L149_LF2: 756 000017dc 90a10000 lbu r1,(r5) 757 000017e0 64210000 snei r1,r1,#0 758 000017e4 1420ff4c bnez r1,L130_LF2 759 000017e8 54000000 nop; not filled. 760 000017ec 20010000 addi r1,r0,#0 761 000017f0 L146_LF2: 762 000017f0 8fa20000 lw r2,0(r29) 763 000017f4 8fa30004 lw r3,4(r29) 764 000017f8 8fa40008 lw r4,8(r29) 765 000017fc 8fa5000c lw r5,12(r29) 766 00001800 8fa60010 lw r6,16(r29) 767 00001804 8fa70014 lw r7,20(r29) 768 00001808 8fdffff8 lw r31,-8(r30) 769 0000180c 001ee820 add r29,r0,r30 770 00001810 8fdefffc lw r30,-4(r30) 771 00001814 4be00000 jr r31 772 00001818 54000000 nop 773 0000181c .endproc _dstrstr 774 0000181c .align 2 775 0000181c .proc _dmindex 776 0000181c .global _dmindex 777 0000181c _dmindex: 778 ; Function 'dmindex'; 0 bytes of locals, 5 regs to save. 779 0000181c afbefffc sw -4(r29),r30; push fp 780 00001820 001df020 add r30,r0,r29; fp = sp 781 00001824 afbffff8 sw -8(r29),r31; push ret addr 782 00001828 2fbd0020 subui r29,r29,#32; alloc local storage 783 0000182c afa20000 sw 0(r29),r2 784 00001830 afa30004 sw 4(r29),r3 785 00001834 afa40008 sw 8(r29),r4 786 00001838 afa5000c sw 12(r29),r5 787 0000183c afa60010 sw 16(r29),r6 788 00001840 8fc40000 lw r4,(r30) 789 00001844 8fc60004 lw r6,4(r30) 790 00001848 90810000 lbu r1,(r4) 791 0000184c 64210000 snei r1,r1,#0 792 00001850 10200060 beqz r1,L164_LF2 793 00001854 54000000 nop; not filled. 794 00001858 00012820 add r5,r0,r1 795 0000185c L165_LF2: 796 0000185c 00061020 add r2,r0,r6 797 00001860 80df0000 lb r31,(r6) 798 00001864 33e100ff andi r1,r31,#0x00ff 799 00001868 64210000 snei r1,r1,#0 800 0000186c 1020003c beqz r1,L163_LF2 801 00001870 54000000 nop; not filled. 802 00001874 90830000 lbu r3,(r4) 803 00001878 L169_LF2: 804 00001878 33e100ff andi r1,r31,#0x00ff 805 0000187c 00610828 seq r1,r3,r1 806 00001880 10200010 beqz r1,L168_LF2 807 00001884 54000000 nop; not filled. 808 00001888 00040820 add r1,r0,r4 809 0000188c 08000028 j L173_LF2 810 00001890 54000000 nop; not filled. 811 00001894 L168_LF2: 812 00001894 20420001 addi r2,r2,#1 813 00001898 805f0000 lb r31,(r2) 814 0000189c 33e100ff andi r1,r31,#0x00ff 815 000018a0 64210000 snei r1,r1,#0 816 000018a4 1420ffd0 bnez r1,L169_LF2 817 000018a8 54000000 nop; not filled. 818 000018ac L163_LF2: 819 000018ac 14a0ffac bnez r5,L165_LF2 820 000018b0 54000000 nop; not filled. 821 000018b4 L164_LF2: 822 000018b4 20010000 addi r1,r0,#0 823 000018b8 L173_LF2: 824 000018b8 8fa20000 lw r2,0(r29) 825 000018bc 8fa30004 lw r3,4(r29) 826 000018c0 8fa40008 lw r4,8(r29) 827 000018c4 8fa5000c lw r5,12(r29) 828 000018c8 8fa60010 lw r6,16(r29) 829 000018cc 8fdffff8 lw r31,-8(r30) 830 000018d0 001ee820 add r29,r0,r30 831 000018d4 8fdefffc lw r30,-4(r30) 832 000018d8 4be00000 jr r31 833 000018dc 54000000 nop 834 000018e0 .endproc _dmindex 835 000018e0 .align 2 836 000018e0 .proc _dindex 837 000018e0 .global _dindex 838 000018e0 _dindex: 839 ; Function 'dindex'; 0 bytes of locals, 2 regs to save. 840 000018e0 afbefffc sw -4(r29),r30; push fp 841 000018e4 001df020 add r30,r0,r29; fp = sp 842 000018e8 afbffff8 sw -8(r29),r31; push ret addr 843 000018ec 2fbd0010 subui r29,r29,#16; alloc local storage 844 000018f0 afa20000 sw 0(r29),r2 845 000018f4 afa30004 sw 4(r29),r3 846 000018f8 8fc20000 lw r2,(r30) 847 000018fc 8fc30004 lw r3,4(r30) 848 00001900 08000024 j L187_LF2 849 00001904 54000000 nop; not filled. 850 00001908 L183_LF2: 851 00001908 33e100ff andi r1,r31,#0x00ff 852 0000190c 00230828 seq r1,r1,r3 853 00001910 10200010 beqz r1,L184_LF2 854 00001914 54000000 nop; not filled. 855 00001918 00020820 add r1,r0,r2 856 0000191c 08000020 j L186_LF2 857 00001920 54000000 nop; not filled. 858 00001924 L184_LF2: 859 00001924 20420001 addi r2,r2,#1 860 00001928 L187_LF2: 861 00001928 805f0000 lb r31,(r2) 862 0000192c 33e100ff andi r1,r31,#0x00ff 863 00001930 64210000 snei r1,r1,#0 864 00001934 1420ffd0 bnez r1,L183_LF2 865 00001938 54000000 nop; not filled. 866 0000193c 20010000 addi r1,r0,#0 867 00001940 L186_LF2: 868 00001940 8fa20000 lw r2,0(r29) 869 00001944 8fa30004 lw r3,4(r29) 870 00001948 8fdffff8 lw r31,-8(r30) 871 0000194c 001ee820 add r29,r0,r30 872 00001950 8fdefffc lw r30,-4(r30) 873 00001954 4be00000 jr r31 874 00001958 54000000 nop 875 0000195c .endproc _dindex 876 0000195c .align 2 877 0000195c .proc _ditoa 878 0000195c .global _ditoa 879 0000195c _ditoa: 880 ; Function 'ditoa'; 0 bytes of locals, 5 regs to save. 881 0000195c afbefffc sw -4(r29),r30; push fp 882 00001960 001df020 add r30,r0,r29; fp = sp 883 00001964 afbffff8 sw -8(r29),r31; push ret addr 884 00001968 2fbd0020 subui r29,r29,#32; alloc local storage 885 0000196c afa20000 sw 0(r29),r2 886 00001970 afa30004 sw 4(r29),r3 887 00001974 afa40008 sw 8(r29),r4 888 00001978 afa5000c sw 12(r29),r5 889 0000197c afa60010 sw 16(r29),r6 890 00001980 8fc30000 lw r3,(r30) 891 00001984 8fc40004 lw r4,4(r30) 892 00001988 68610000 slti r1,r3,#0 893 0000198c 10200010 beqz r1,L203_LF2 894 00001990 54000000 nop; not filled. 895 00001994 2006002d addi r6,r0,(#0x2d)&0xff 896 00001998 08000014 j L216_LF2 897 0000199c 54000000 nop; not filled. 898 000019a0 L203_LF2: 899 000019a0 64610000 snei r1,r3,#0 900 000019a4 14200018 bnez r1,L205_LF2 901 000019a8 54000000 nop; not filled. 902 000019ac 20060030 addi r6,r0,(#0x30)&0xff 903 000019b0 L216_LF2: 904 000019b0 a0860000 sb (r4),r6 905 000019b4 20840001 addi r4,r4,#1 906 000019b8 0800007c j L204_LF2 907 000019bc 54000000 nop; not filled. 908 000019c0 L205_LF2: 909 000019c0 201f0001 addi r31,r0,#1 910 000019c4 03e3082c sle r1,r31,r3 911 000019c8 1020001c beqz r1,L208_LF2 912 000019cc 54000000 nop; not filled. 913 000019d0 L209_LF2: 914 000019d0 53e10002 slli r1,r31,#0x2 915 000019d4 003f0820 add r1,r1,r31 916 000019d8 503f0001 slli r31,r1,#0x1 917 000019dc 03e3082c sle r1,r31,r3 918 000019e0 1420ffec bnez r1,L209_LF2 919 000019e4 54000000 nop; not filled. 920 000019e8 L208_LF2: 921 000019e8 2005000a addi r5,r0,#10 922 000019ec L212_LF2: 923 000019ec 03e00035 movi2fp f0,r31 924 000019f0 00a00835 movi2fp f1,r5 925 000019f4 0401000f div f0,f0,f1 926 000019f8 0000f834 movfp2i r31,f0 927 000019fc 00600035 movi2fp f0,r3 928 00001a00 03e00835 movi2fp f1,r31 929 00001a04 0401000f div f0,f0,f1 930 00001a08 00001034 movfp2i r2,f0 931 00001a0c 20410030 addi r1,r2,#48 932 00001a10 a0810000 sb (r4),r1 933 00001a14 20840001 addi r4,r4,#1 934 00001a18 00400035 movi2fp f0,r2 935 00001a1c 03e00835 movi2fp f1,r31 936 00001a20 0401000e mult f0,f0,f1 937 00001a24 00000834 movfp2i r1,f0 938 00001a28 00611822 sub r3,r3,r1 939 00001a2c 6fe10001 sgti r1,r31,#1 940 00001a30 1420ffb8 bnez r1,L212_LF2 941 00001a34 54000000 nop; not filled. 942 00001a38 L204_LF2: 943 00001a38 20060000 addi r6,r0,(#0x0)&0xff 944 00001a3c a0860000 sb (r4),r6 945 00001a40 8fa20000 lw r2,0(r29) 946 00001a44 8fa30004 lw r3,4(r29) 947 00001a48 8fa40008 lw r4,8(r29) 948 00001a4c 8fa5000c lw r5,12(r29) 949 00001a50 8fa60010 lw r6,16(r29) 950 00001a54 8fdffff8 lw r31,-8(r30) 951 00001a58 001ee820 add r29,r0,r30 952 00001a5c 8fdefffc lw r30,-4(r30) 953 00001a60 4be00000 jr r31 954 00001a64 54000000 nop 955 00001a68 .endproc _ditoa 956 00001a68 .align 2 957 00001a68 .proc _dstrtol 958 00001a68 .global _dstrtol 959 00001a68 _dstrtol: 960 ; Function 'dstrtol'; 0 bytes of locals, 5 regs to save. 961 00001a68 afbefffc sw -4(r29),r30; push fp 962 00001a6c 001df020 add r30,r0,r29; fp = sp 963 00001a70 afbffff8 sw -8(r29),r31; push ret addr 964 00001a74 2fbd0020 subui r29,r29,#32; alloc local storage 965 00001a78 afa20000 sw 0(r29),r2 966 00001a7c afa30004 sw 4(r29),r3 967 00001a80 afa40008 sw 8(r29),r4 968 00001a84 afa5000c sw 12(r29),r5 969 00001a88 afa60010 sw 16(r29),r6 970 00001a8c 8fc20000 lw r2,(r30) 971 00001a90 8fc50004 lw r5,4(r30) 972 00001a94 8fc40008 lw r4,8(r30) 973 00001a98 20030000 addi r3,r0,#0 974 00001a9c 08000008 j L247_LF2 975 00001aa0 54000000 nop; not filled. 976 00001aa4 L220_LF2: 977 00001aa4 20420001 addi r2,r2,#1 978 00001aa8 L247_LF2: 979 00001aa8 805f0000 lb r31,(r2) 980 00001aac 33e100ff andi r1,r31,#0x00ff 981 00001ab0 60210020 seqi r1,r1,#32 982 00001ab4 1420ffec bnez r1,L220_LF2 983 00001ab8 54000000 nop; not filled. 984 00001abc 23e1fff7 addi r1,r31,#-9 985 00001ac0 302100ff andi r1,r1,#0x00ff 986 00001ac4 70210001 sleui r1,r1,#1 987 00001ac8 1420ffd8 bnez r1,L220_LF2 988 00001acc 54000000 nop; not filled. 989 00001ad0 64a10000 snei r1,r5,#0 990 00001ad4 10200008 beqz r1,L222_LF2 991 00001ad8 54000000 nop; not filled. 992 00001adc aca20000 sw (r5),r2 993 00001ae0 L222_LF2: 994 00001ae0 905f0000 lbu r31,(r2) 995 00001ae4 67e10000 snei r1,r31,#0 996 00001ae8 10200090 beqz r1,L248_LF2 997 00001aec 54000000 nop; not filled. 998 00001af0 63e1002d seqi r1,r31,#45 999 00001af4 10200014 beqz r1,L224_LF2 1000 00001af8 54000000 nop; not filled. 1001 00001afc 2006ffff addi r6,r0,#-1 1002 00001b00 20420001 addi r2,r2,#1 1003 00001b04 08000008 j L225_LF2 1004 00001b08 54000000 nop; not filled. 1005 00001b0c L224_LF2: 1006 00001b0c 20060001 addi r6,r0,#1 1007 00001b10 L225_LF2: 1008 00001b10 64810000 snei r1,r4,#0 1009 00001b14 14200054 bnez r1,L226_LF2 1010 00001b18 54000000 nop; not filled. 1011 00001b1c 90410000 lbu r1,(r2) 1012 00001b20 60210030 seqi r1,r1,#48 1013 00001b24 10200040 beqz r1,L227_LF2 1014 00001b28 54000000 nop; not filled. 1015 00001b2c 20420001 addi r2,r2,#1 1016 00001b30 905f0000 lbu r31,(r2) 1017 00001b34 63e10078 seqi r1,r31,#120 1018 00001b38 14200010 bnez r1,L229_LF2 1019 00001b3c 54000000 nop; not filled. 1020 00001b40 63e10058 seqi r1,r31,#88 1021 00001b44 10200014 beqz r1,L228_LF2 1022 00001b48 54000000 nop; not filled. 1023 00001b4c L229_LF2: 1024 00001b4c 20040010 addi r4,r0,#16 1025 00001b50 20420001 addi r2,r2,#1 1026 00001b54 08000014 j L226_LF2 1027 00001b58 54000000 nop; not filled. 1028 00001b5c L228_LF2: 1029 00001b5c 20040008 addi r4,r0,#8 1030 00001b60 08000008 j L226_LF2 1031 00001b64 54000000 nop; not filled. 1032 00001b68 L227_LF2: 1033 00001b68 2004000a addi r4,r0,#10 1034 00001b6c L226_LF2: 1035 00001b6c 2081ffff addi r1,r4,#-1 1036 00001b70 6c21000f sgtui r1,r1,#15 1037 00001b74 10200010 beqz r1,L233_LF2 1038 00001b78 54000000 nop; not filled. 1039 00001b7c L248_LF2: 1040 00001b7c 00030820 add r1,r0,r3 1041 00001b80 080000c4 j L245_LF2 1042 00001b84 54000000 nop; not filled. 1043 00001b88 L233_LF2: 1044 00001b88 805f0000 lb r31,(r2) 1045 00001b8c 23e1ffd0 addi r1,r31,#-48 1046 00001b90 302100ff andi r1,r1,#0x00ff 1047 00001b94 70210009 sleui r1,r1,#9 1048 00001b98 10200014 beqz r1,L236_LF2 1049 00001b9c 54000000 nop; not filled. 1050 00001ba0 33e100ff andi r1,r31,#0x00ff 1051 00001ba4 2021ffd0 addi r1,r1,#-48 1052 00001ba8 08000050 j L237_LF2 1053 00001bac 54000000 nop; not filled. 1054 00001bb0 L236_LF2: 1055 00001bb0 23e1ff9f addi r1,r31,#-97 1056 00001bb4 302100ff andi r1,r1,#0x00ff 1057 00001bb8 70210019 sleui r1,r1,#25 1058 00001bbc 10200014 beqz r1,L238_LF2 1059 00001bc0 54000000 nop; not filled. 1060 00001bc4 33e100ff andi r1,r31,#0x00ff 1061 00001bc8 2021ffa9 addi r1,r1,#-87 1062 00001bcc 0800002c j L237_LF2 1063 00001bd0 54000000 nop; not filled. 1064 00001bd4 L238_LF2: 1065 00001bd4 23e1ffbf addi r1,r31,#-65 1066 00001bd8 302100ff andi r1,r1,#0x00ff 1067 00001bdc 70210019 sleui r1,r1,#25 1068 00001be0 10200014 beqz r1,L240_LF2 1069 00001be4 54000000 nop; not filled. 1070 00001be8 33e100ff andi r1,r31,#0x00ff 1071 00001bec 2021ffc9 addi r1,r1,#-55 1072 00001bf0 08000008 j L237_LF2 1073 00001bf4 54000000 nop; not filled. 1074 00001bf8 L240_LF2: 1075 00001bf8 200103e8 addi r1,r0,#1000 1076 00001bfc L237_LF2: 1077 00001bfc 0024f82a slt r31,r1,r4 1078 00001c00 13e00024 beqz r31,L246_LF2 1079 00001c04 54000000 nop; not filled. 1080 00001c08 00600035 movi2fp f0,r3 1081 00001c0c 00800835 movi2fp f1,r4 1082 00001c10 0401000e mult f0,f0,f1 1083 00001c14 00001834 movfp2i r3,f0 1084 00001c18 00611820 add r3,r3,r1 1085 00001c1c 20420001 addi r2,r2,#1 1086 00001c20 17e0ff64 bnez r31,L233_LF2 1087 00001c24 54000000 nop; not filled. 1088 00001c28 L246_LF2: 1089 00001c28 64a10000 snei r1,r5,#0 1090 00001c2c 10200008 beqz r1,L244_LF2 1091 00001c30 54000000 nop; not filled. 1092 00001c34 aca20000 sw (r5),r2 1093 00001c38 L244_LF2: 1094 00001c38 00600035 movi2fp f0,r3 1095 00001c3c 00c00835 movi2fp f1,r6 1096 00001c40 0401000e mult f0,f0,f1 1097 00001c44 00000834 movfp2i r1,f0 1098 00001c48 L245_LF2: 1099 00001c48 8fa20000 lw r2,0(r29) 1100 00001c4c 8fa30004 lw r3,4(r29) 1101 00001c50 8fa40008 lw r4,8(r29) 1102 00001c54 8fa5000c lw r5,12(r29) 1103 00001c58 8fa60010 lw r6,16(r29) 1104 00001c5c 8fdffff8 lw r31,-8(r30) 1105 00001c60 001ee820 add r29,r0,r30 1106 00001c64 8fdefffc lw r30,-4(r30) 1107 00001c68 4be00000 jr r31 1108 00001c6c 54000000 nop 1109 00001c70 .endproc _dstrtol 1110 00001c70 .align 2 1111 00001c70 .proc _bcopy 1112 00001c70 .global _bcopy 1113 00001c70 _bcopy: 1114 ; Function 'bcopy'; 0 bytes of locals, 3 regs to save. 1115 00001c70 afbefffc sw -4(r29),r30; push fp 1116 00001c74 001df020 add r30,r0,r29; fp = sp 1117 00001c78 afbffff8 sw -8(r29),r31; push ret addr 1118 00001c7c 2fbd0018 subui r29,r29,#24; alloc local storage 1119 00001c80 afa20000 sw 0(r29),r2 1120 00001c84 afa30004 sw 4(r29),r3 1121 00001c88 afa40008 sw 8(r29),r4 1122 00001c8c 8fc30000 lw r3,(r30) 1123 00001c90 8fc20004 lw r2,4(r30) 1124 00001c94 8fdf0008 lw r31,8(r30) 1125 00001c98 08000014 j L259_LF2 1126 00001c9c 54000000 nop; not filled. 1127 00001ca0 L257_LF2: 1128 00001ca0 80640000 lb r4,(r3) 1129 00001ca4 a0440000 sb (r2),r4 1130 00001ca8 20630001 addi r3,r3,#1 1131 00001cac 20420001 addi r2,r2,#1 1132 00001cb0 L259_LF2: 1133 00001cb0 001f0820 add r1,r0,r31 1134 00001cb4 23ffffff addi r31,r31,#-1 1135 00001cb8 6c210000 sgti r1,r1,#0 1136 00001cbc 1420ffe0 bnez r1,L257_LF2 1137 00001cc0 54000000 nop; not filled. 1138 00001cc4 8fa20000 lw r2,0(r29) 1139 00001cc8 8fa30004 lw r3,4(r29) 1140 00001ccc 8fa40008 lw r4,8(r29) 1141 00001cd0 8fdffff8 lw r31,-8(r30) 1142 00001cd4 001ee820 add r29,r0,r30 1143 00001cd8 8fdefffc lw r30,-4(r30) 1144 00001cdc 4be00000 jr r31 1145 00001ce0 54000000 nop 1146 00001ce4 .endproc _bcopy 1147 00001ce4 .align 2 1148 00001ce4 .proc _bzero 1149 00001ce4 .global _bzero 1150 00001ce4 _bzero: 1151 ; Function 'bzero'; 0 bytes of locals, 2 regs to save. 1152 00001ce4 afbefffc sw -4(r29),r30; push fp 1153 00001ce8 001df020 add r30,r0,r29; fp = sp 1154 00001cec afbffff8 sw -8(r29),r31; push ret addr 1155 00001cf0 2fbd0010 subui r29,r29,#16; alloc local storage 1156 00001cf4 afa20000 sw 0(r29),r2 1157 00001cf8 afa30004 sw 4(r29),r3 1158 00001cfc 8fc20000 lw r2,(r30) 1159 00001d00 8fdf0004 lw r31,4(r30) 1160 00001d04 08000010 j L270_LF2 1161 00001d08 54000000 nop; not filled. 1162 00001d0c L268_LF2: 1163 00001d0c 20030000 addi r3,r0,(#0x0)&0xff 1164 00001d10 a0430000 sb (r2),r3 1165 00001d14 20420001 addi r2,r2,#1 1166 00001d18 L270_LF2: 1167 00001d18 001f0820 add r1,r0,r31 1168 00001d1c 23ffffff addi r31,r31,#-1 1169 00001d20 6c210000 sgti r1,r1,#0 1170 00001d24 1420ffe4 bnez r1,L268_LF2 1171 00001d28 54000000 nop; not filled. 1172 00001d2c 8fa20000 lw r2,0(r29) 1173 00001d30 8fa30004 lw r3,4(r29) 1174 00001d34 8fdffff8 lw r31,-8(r30) 1175 00001d38 001ee820 add r29,r0,r30 1176 00001d3c 8fdefffc lw r30,-4(r30) 1177 00001d40 4be00000 jr r31 1178 00001d44 54000000 nop 1179 00001d48 .endproc _bzero 1180 ;;; Ethan L. Miller, 1999. Released to the public domain 1181 ;;; 1182 ;;; Most of the traps are called in files from libtraps. 1185 00001d48 .align 2 1186 00001d48 .proc _exit 1187 00001d48 .global _exit 1188 00001d48 _exit: 1189 00001d48 44000300 trap #0x300 1190 00001d4c 4be00000 jr r31 1191 00001d50 54000000 nop 1192 00001d54 .endproc _exit 1194 ; for the benefit of gcc. 1195 00001d54 .proc ___main 1196 00001d54 .global ___main 1197 00001d54 ___main: 1198 00001d54 4be00000 jr r31 1199 00001d58 54000000 nop 1200 00001d5c .endproc ___main 1201 00001d5c .text 1202 00001d5c .global _etext 1203 00001d5c _etext: 1204 00001d5c .align 3 1205 00001d60 .data 1206 0000203b .global _edata 1207 0000203b _edata:

home/bshapir/cs314/project3/src/usertraps.o

;;; ;;; Stub functions for DLX traps. ;;; ;;; Ethan L. Miller, 1999. Released to the public domain. ;;; ;;; The traps such as Open and Close ;;; (note the capital letters) are for use by user programs. The traps ;;; with names such as open and close (lower case) are for use by the OS. ;;; .text .align 2 ;;; The following are the traps to be used by user-level programs ;;; .text .align 2 .proc _Open .global _Open _Open: ;;; Note that trap #0x213 actually causes a trap vector in the OS of ;;; 0x1213. The same is true for other user traps. Thus, a user trap ;;; with trap #0x240 will result in a trap vector of 0x1240 in the OS. trap #0x213 jr r31 nop .endproc _Open .proc _Close .global _Close _Close: trap #0x214 jr r31 nop .endproc _Close .proc _Read .global _Read _Read: trap #0x210 jr r31 nop .endproc _Read .proc _Write .global _Write _Write: trap #0x211 jr r31 nop .endproc _Write .proc _Lseek .global _Lseek _Lseek: trap #0x212 jr r31 nop .endproc _Lseek .proc _Putchar .global _Putchar _Putchar: trap #0x280 jr r31 nop .endproc _Putchar .proc _Printf .global _Printf _Printf: trap #0x201 jr r31 nop .endproc _Printf .proc _getpid .global _getpid _getpid: trap #0x431 jr r31 nop .endproc _getpid .proc _process_create .global _process_create _process_create: trap #0x432 jr r31 nop .endproc _process_create .proc _shmget .global _shmget _shmget: trap #0x440 jr r31 nop .endproc _shmget .proc _shmat .global _shmat _shmat: trap #0x441 jr r31 nop .endproc _shmat .proc _sem_create .global _sem_create _sem_create: trap #0x450 jr r31 nop .endproc _sem_create .proc _sem_wait .global _sem_wait _sem_wait: trap #0x451 jr r31 nop .endproc _sem_wait .proc _sem_signal .global _sem_signal _sem_signal: trap #0x452 jr r31 nop .endproc _sem_signal .proc _lock_create .global _lock_create _lock_create: trap #0x453 jr r31 nop .endproc _lock_create .proc _lock_acquire .global _lock_acquire _lock_acquire: trap #0x454 jr r31 nop .endproc _lock_acquire .proc _lock_release .global _lock_release _lock_release: trap #0x455 jr r31 nop .endproc _lock_release .proc _cond_create .global _cond_create _cond_create: trap #0x456 jr r31 nop .endproc _cond_create .proc _cond_wait .global _cond_wait _cond_wait: trap #0x457 jr r31 nop .endproc _cond_wait .proc _cond_signal .global _cond_signal _cond_signal: trap #0x458 jr r31 nop .endproc _cond_signal .proc _cond_broadcast .global _cond_broadcast _cond_broadcast: trap #0x455 jr r31 nop .endproc _cond_broadcast .proc _TimerGet .global _TimerGet _TimerGet: trap #0x50 jr r31 nop .endproc _TimerGet .proc _yield .global _yield _yield: trap #0x433 jr r31 nop .endproc _yield

home/bshapir/cs314/project3/src/trap_random.o

; ; Stub functions for DLX traps. ; ; Aaron Sawdey 1996; released to the Public Domain. ; .text .align 2 .proc _random .global _random _random: trap #0x2020 jr r31 nop .endproc _random .proc _srandom .global _srandom _srandom: trap #0x2021 jr r31 nop .endproc _srandom ; I know this is not the right place to put it, but what the heck .proc _timerget .global _timerget _timerget: trap #0x2002 jr r31 nop .endproc _timerget

home/bshapir/cs314/project3/src/filesys.h

// // filesys.h // // Includes for the file system. Includes the definition of the file // system interface structure. // // Copyright 1999 by Ethan L. Miller // University of Maryland Baltimore County // // $Id: filesys.h,v 1.1 2000/09/20 01:50:19 elm Exp elm $ // #ifndef _filesys_h_ #define _filesys_h_ #define FS_FS_BUILTIN 1 #define FS_FS_DLXOS 2 #define FS_MODE_READ 0x1 #define FS_MODE_WRITE 0x2 #define FS_MODE_RW (FS_MODE_READ | FS_MODE_WRITE) // If this flag is set, a new file is created if no file already exists. // This flag only works with the DLX file system. #define FS_MODE_CREATE 0x4 // IMPORTANT: These must match the underlying UNIX seek parameters. // These values are correct for Linux and should work elsewhere, but // be careful.... #define FS_SEEK_SET 0 #define FS_SEEK_CUR 1 #define FS_SEEK_END 2 #define FS_BUFFER_SIZE 256 #define FS_MAX_OPEN_FILES 32 typedef struct Fs { int (*Open)(int, const char *, int); int (*Read)(int, char *, int); int (*Write)(int, char *, int); int (*Seek)(int, int, int); int (*Close)(int); int (*Delete)(const char *); } Fs; typedef struct FsUnixInfo { int fd; // Unix file descriptor } FsUnixInfo; typedef struct FsDlxInfo { int curpos; // What's our current position in the file? } FsDlxInfo; typedef struct FsOpenFile { int fs; // which file system is this file in? int flags; char buffer[FS_BUFFER_SIZE]; union { FsUnixInfo Unix; FsDlxInfo Dlx; } u; } FsOpenFile; extern int FsOpen (const char *, int); extern int FsRead (int, char *, int); extern int FsWrite (int, char *, int); extern int FsSeek (int, int, int); extern int FsClose (int); extern int FsDelete (const char *); #endif // _filesys_h_

home/bshapir/cs314/project3/src/queue.h

// // queue.h // // Definitions for routines used to manage queues. The queues are // doubly-linked lists so it's easier to add and remove from them. // Also, the links themselves have pointers to objects so that objects // may be on more than one queue. // // not only that, it also seems like the queue is circular. // So do not use NULL check when traversing the queue. Use // nitems instead. #ifndef _queue_h_ #define _queue_h_ #ifndef NULL #define NULL ((void *)0) #endif #define QUEUE_MAX_LINKS 400 typedef struct Link { struct Link *next; struct Link *prev; struct Queue *queue; void *object; } Link; typedef struct Queue { struct Link *first; struct Link *last; int nitems; } Queue; inline void QueueLinkInit (Link *l, void *obj) { l->next = NULL; l->object = obj; } inline Link * QueueNext (Link *l) { return (l->next); } inline Link * QueuePrev (Link *l) { return (l->prev); } inline Link * QueueFirst (Queue *q) { return (q->first); } inline Link * QueueLast (Queue *q) { return (q->last); } inline void QueueInsertAfter (Queue *q, Link *after, Link *l) { l->queue = q; l->prev = after; l->next = after->next; after->next = l; l->next->prev = l; q->nitems += 1; } inline void QueueInsertFirst (Queue *q, Link *l) { QueueInsertAfter (q, (Link *)q, l); } inline void QueueInsertLast (Queue *q, Link *l) { QueueInsertAfter (q, QueueLast(q), l); } inline void QueueRemove (Link *l) { if (l->queue->nitems > 0) { l->prev->next = l->next; l->next->prev = l->prev; l->queue->nitems -= 1; } l->next = NULL; } inline int QueueLength (Queue *q) { return (q->nitems); } inline int QueueEmpty (Queue *q) { return (QueueLength (q) == 0); } extern void QueueModuleInit (); extern void QueueFreeLink (Link *l); extern Link *QueueAllocLink (); extern void QueueInit (Queue *q); #endif // _queue_h_

home/bshapir/cs314/project3/src/filesys.o

; Compiled by GCC .data .align 2 _rcsid: .ascii "$Id: filesys.c,v 1.1 2000/09/20 01:50:19 elm Exp elm $\000" .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Attepmting to open %s mode=%d.\n\000" .align 2 LC1: .ascii "dlx:\000" .align 2 LC2: .ascii "File %s opening in file system %d.\n\000" .align 2 LC3: .ascii "Opened %s in FS %d, mode=%d slot=%d.\n\000" .text .align 2 .proc _FsOpen .global _FsOpen _FsOpen: ; Function 'FsOpen'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r4,(r30) lw r5,4(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#102 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L56 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L55 nop ; not filled. L56: addi r29,r29,#-16 lhi r8,((LC0)>>16)&0xffff addui r8,r8,(LC0)&0xffff sw (r29),r8 sw 4(r29),r4 sw 8(r29),r5 jal _printf nop ; not filled. addi r29,r29,#16 L55: andi r5,r5,#3 snei r1,r5,#0 beqz r1,L74 nop ; not filled. addi r3,r0,#0 lhi r6,((_openfiles)>>16)&0xffff addui r6,r6,(_openfiles)&0xffff add r2,r0,r6 L61: lw r1,4(r2) snei r1,r1,#0 beqz r1,L59 nop ; not filled. addi r2,r2,#268 addi r3,r3,#1 slei r1,r3,#31 bnez r1,L61 nop ; not filled. L59: sgti r1,r3,#31 beqz r1,L64 nop ; not filled. L74: addi r1,r0,#-1 j L73 nop ; not filled. L64: slli r1,r3,#0x4 add r1,r1,r3 slli r1,r1,#0x2 sub r1,r1,r3 slli r1,r1,#0x2 add r2,r1,r6 sw 4(r2),r5 addi r29,r29,#-16 sw (r29),r4 lhi r1,((LC1)>>16)&0xffff addui r1,r1,(LC1)&0xffff sw 4(r29),r1 addi r8,r0,#4 sw 8(r29),r8 jal _dstrncmp nop ; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L65 nop ; not filled. addi r4,r4,#4 addi r8,r0,#1 j L75 nop ; not filled. L65: addi r8,r0,#0 L75: sw (r2),r8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#102 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L68 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L67 nop ; not filled. L68: addi r29,r29,#-16 lhi r8,((LC2)>>16)&0xffff addui r8,r8,(LC2)&0xffff sw (r29),r8 sw 4(r29),r4 slli r1,r3,#0x4 add r1,r1,r3 slli r1,r1,#0x2 sub r1,r1,r3 slli r1,r1,#0x2 lhi r8,((_openfiles)>>16)&0xffff addui r8,r8,(_openfiles)&0xffff add r1,r1,r8 lw r1,(r1) sw 8(r29),r1 jal _printf nop ; not filled. addi r29,r29,#16 L67: addi r29,r29,#-16 slli r1,r3,#0x4 add r1,r1,r3 slli r1,r1,#0x2 sub r1,r1,r3 slli r6,r1,#0x2 lhi r8,((_openfiles)>>16)&0xffff addui r8,r8,(_openfiles)&0xffff add r7,r6,r8 lw r2,(r7) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r8,((_fs)>>16)&0xffff addui r8,r8,(_fs)&0xffff add r1,r1,r8 sw (r29),r3 sw 4(r29),r4 sw 8(r29),r5 lw r1,(r1) jalr r1 nop ; not filled. add r2,r0,r1 addi r29,r29,#16 slti r1,r2,#0 beqz r1,L69 nop ; not filled. lhi r8,((_openfiles)>>16)&0xffff addui r8,r8,(_openfiles)&0xffff add r1,r6,r8 addi r8,r0,#0 sw 4(r1),r8 add r1,r0,r2 j L73 nop ; not filled. L69: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r8,r0,#102 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L72 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r8,r0,#43 sw 4(r29),r8 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L71 nop ; not filled. L72: addi r29,r29,#-24 lhi r8,((LC3)>>16)&0xffff addui r8,r8,(LC3)&0xffff sw (r29),r8 sw 4(r29),r4 lw r7,(r7) sw 8(r29),r7 sw 12(r29),r5 sw 16(r29),r3 jal _printf nop ; not filled. addi r29,r29,#24 L71: add r1,r0,r3 L73: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsOpen .align 2 .proc _FsClose .global _FsClose _FsClose: ; Function 'FsClose'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L84 nop ; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r4,((_openfiles)>>16)&0xffff addui r4,r4,(_openfiles)&0xffff add r1,r1,r4 lw r1,4(r1) snei r1,r1,#0 beqz r1,L84 nop ; not filled. addi r2,r0,#1 L84: snei r1,r2,#0 beqz r1,L82 nop ; not filled. addi r29,r29,#-8 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r3,r1,#0x2 lhi r4,((_openfiles)>>16)&0xffff addui r4,r4,(_openfiles)&0xffff add r1,r3,r4 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r4,((_fs)>>16)&0xffff addui r4,r4,(_fs)&0xffff add r1,r1,r4 sw (r29),r31 lw r1,16(r1) jalr r1 nop ; not filled. addi r29,r29,#8 lhi r4,((_openfiles)>>16)&0xffff addui r4,r4,(_openfiles)&0xffff add r2,r3,r4 addi r4,r0,#0 sw 4(r2),r4 j L86 nop ; not filled. L82: addi r1,r0,#-1 L86: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsClose .align 2 .proc _FsRead .global _FsRead _FsRead: ; Function 'FsRead'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L94 nop ; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r1,4(r1) snei r1,r1,#0 beqz r1,L94 nop ; not filled. addi r2,r0,#1 L94: snei r1,r2,#0 beqz r1,L92 nop ; not filled. addi r29,r29,#-16 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r3,((_fs)>>16)&0xffff addui r3,r3,(_fs)&0xffff add r1,r1,r3 sw (r29),r31 lw r3,4(r30) sw 4(r29),r3 lw r3,8(r30) sw 8(r29),r3 lw r1,4(r1) jalr r1 nop ; not filled. addi r29,r29,#16 j L91 nop ; not filled. L92: addi r1,r0,#-1 L91: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsRead .align 2 .proc _FsWrite .global _FsWrite _FsWrite: ; Function 'FsWrite'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L103 nop ; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r1,4(r1) snei r1,r1,#0 beqz r1,L103 nop ; not filled. addi r2,r0,#1 L103: snei r1,r2,#0 beqz r1,L101 nop ; not filled. addi r29,r29,#-16 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r3,((_fs)>>16)&0xffff addui r3,r3,(_fs)&0xffff add r1,r1,r3 sw (r29),r31 lw r3,4(r30) sw 4(r29),r3 lw r3,8(r30) sw 8(r29),r3 lw r1,8(r1) jalr r1 nop ; not filled. addi r29,r29,#16 j L100 nop ; not filled. L101: addi r1,r0,#-1 L100: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsWrite .align 2 .proc _FsSeek .global _FsSeek _FsSeek: ; Function 'FsSeek'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) addi r2,r0,#0 addi r1,r31,#-1 sleui r1,r1,#30 beqz r1,L112 nop ; not filled. slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r1,4(r1) snei r1,r1,#0 beqz r1,L112 nop ; not filled. addi r2,r0,#1 L112: snei r1,r2,#0 beqz r1,L110 nop ; not filled. addi r29,r29,#-16 slli r1,r31,#0x4 add r1,r1,r31 slli r1,r1,#0x2 sub r1,r1,r31 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r2,(r1) slli r1,r2,#0x1 add r1,r1,r2 slli r1,r1,#0x3 lhi r3,((_fs)>>16)&0xffff addui r3,r3,(_fs)&0xffff add r1,r1,r3 sw (r29),r31 lw r3,4(r30) sw 4(r29),r3 lw r3,8(r30) sw 8(r29),r3 lw r1,12(r1) jalr r1 nop ; not filled. addi r29,r29,#16 j L109 nop ; not filled. L110: addi r1,r0,#-1 L109: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsSeek .align 2 .proc _FsDelete .global _FsDelete _FsDelete: ; Function 'FsDelete'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) addi r29,r29,#-16 sw (r29),r2 lhi r1,((LC1)>>16)&0xffff addui r1,r1,(LC1)&0xffff sw 4(r29),r1 addi r3,r0,#4 sw 8(r29),r3 jal _dstrncmp nop ; not filled. addi r29,r29,#16 snei r1,r1,#0 bnez r1,L118 nop ; not filled. addi r2,r2,#4 addi r29,r29,#-8 lhi r1,((_fs+44)>>16)&0xffff addui r1,r1,(_fs+44)&0xffff j L120 nop ; not filled. L118: addi r29,r29,#-8 lhi r1,((_fs+20)>>16)&0xffff addui r1,r1,(_fs+20)&0xffff L120: sw (r29),r2 lw r1,(r1) jalr r1 nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDelete .data .align 2 LC4: .ascii "Attempting to open file %s into desc %d, mode %d.\n\000" .text .align 2 .proc _FsUnixOpen .global _FsUnixOpen _FsUnixOpen: ; Function 'FsUnixOpen'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) lw r3,4(r30) lw r5,8(r30) addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r6,r0,#102 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L127 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r6,r0,#43 sw 4(r29),r6 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L126 nop ; not filled. L127: addi r29,r29,#-16 lhi r6,((LC4)>>16)&0xffff addui r6,r6,(LC4)&0xffff sw (r29),r6 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 jal _printf nop ; not filled. addi r29,r29,#16 L126: addi r29,r29,#-8 sw (r29),r3 sw 4(r29),r5 jal _open nop ; not filled. add r3,r0,r1 slli r1,r4,#0x4 add r1,r1,r4 slli r1,r1,#0x2 sub r1,r1,r4 slli r1,r1,#0x2 lhi r6,((_openfiles)>>16)&0xffff addui r6,r6,(_openfiles)&0xffff add r1,r1,r6 sw 264(r1),r3 addi r29,r29,#8 slti r2,r3,#0 add r1,r0,r3 bnez r2,L128 nop ; not filled. addi r1,r0,#1 L128: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixOpen .align 2 .proc _FsUnixRead .global _FsUnixRead _FsUnixRead: ; Function 'FsUnixRead'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) lw r4,8(r30) addi r29,r29,#-16 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_openfiles)>>16)&0xffff addui r5,r5,(_openfiles)&0xffff add r1,r1,r5 lw r1,264(r1) sw (r29),r1 sw 4(r29),r3 sw 8(r29),r4 jal _read nop ; not filled. addi r29,r29,#16 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixRead .align 2 .proc _FsUnixWrite .global _FsUnixWrite _FsUnixWrite: ; Function 'FsUnixWrite'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) lw r4,8(r30) addi r29,r29,#-16 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_openfiles)>>16)&0xffff addui r5,r5,(_openfiles)&0xffff add r1,r1,r5 lw r1,264(r1) sw (r29),r1 sw 4(r29),r3 sw 8(r29),r4 jal _write nop ; not filled. addi r29,r29,#16 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixWrite .align 2 .proc _FsUnixSeek .global _FsUnixSeek _FsUnixSeek: ; Function 'FsUnixSeek'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) lw r4,8(r30) addi r29,r29,#-16 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_openfiles)>>16)&0xffff addui r5,r5,(_openfiles)&0xffff add r1,r1,r5 lw r1,264(r1) sw (r29),r1 sw 4(r29),r3 sw 8(r29),r4 jal _lseek nop ; not filled. addi r29,r29,#16 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixSeek .align 2 .proc _FsUnixClose .global _FsUnixClose _FsUnixClose: ; Function 'FsUnixClose'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) addi r29,r29,#-8 slli r1,r2,#0x4 add r1,r1,r2 slli r1,r1,#0x2 sub r1,r1,r2 slli r1,r1,#0x2 lhi r3,((_openfiles)>>16)&0xffff addui r3,r3,(_openfiles)&0xffff add r1,r1,r3 lw r1,264(r1) sw (r29),r1 jal _close nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixClose .align 2 .proc _FsUnixDelete .global _FsUnixDelete _FsUnixDelete: ; Function 'FsUnixDelete'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r1,r0,#-1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsUnixDelete .align 2 .proc _FsDlxIo .global _FsDlxIo _FsDlxIo: ; Function 'FsDlxIo'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxIo .align 2 .proc _FsDlxRead .global _FsDlxRead _FsDlxRead: ; Function 'FsDlxRead'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxRead .align 2 .proc _FsDlxWrite .global _FsDlxWrite _FsDlxWrite: ; Function 'FsDlxWrite'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxWrite .align 2 .proc _FsDlxOpen .global _FsDlxOpen _FsDlxOpen: ; Function 'FsDlxOpen'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) slli r2,r1,#0x4 add r2,r2,r1 slli r2,r2,#0x2 sub r1,r2,r1 slli r1,r1,#0x2 lhi r31,((_openfiles)>>16)&0xffff addui r31,r31,(_openfiles)&0xffff add r1,r1,r31 addi r31,r0,#0 sw 264(r1),r31 addi r1,r0,#1 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxOpen .align 2 .proc _FsDlxSeek .global _FsDlxSeek _FsDlxSeek: ; Function 'FsDlxSeek'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) slli r2,r1,#0x4 add r2,r2,r1 slli r2,r2,#0x2 sub r1,r2,r1 slli r1,r1,#0x2 lhi r31,((_openfiles)>>16)&0xffff addui r31,r31,(_openfiles)&0xffff add r1,r1,r31 lw r1,264(r1) lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxSeek .align 2 .proc _FsDlxClose .global _FsDlxClose _FsDlxClose: ; Function 'FsDlxClose'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxClose .align 2 .proc _FsDlxDelete .global _FsDlxDelete _FsDlxDelete: ; Function 'FsDlxDelete'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage addi r1,r0,#1 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsDlxDelete .align 2 .proc _FsModuleInit .global _FsModuleInit _FsModuleInit: ; Function 'FsModuleInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lhi r31,((_openfiles)>>16)&0xffff addui r31,r31,(_openfiles)&0xffff addi r2,r31,#8308 L182: addi r3,r0,#0 sw 4(r31),r3 addi r31,r31,#268 sle r1,r31,r2 bnez r1,L182 nop ; not filled. lhi r1,((_fs)>>16)&0xffff addui r1,r1,(_fs)&0xffff lhi r3,((_FsUnixOpen)>>16)&0xffff addui r3,r3,(_FsUnixOpen)&0xffff sw (r1),r3 lhi r3,((_FsUnixClose)>>16)&0xffff addui r3,r3,(_FsUnixClose)&0xffff sw 16(r1),r3 lhi r3,((_FsUnixRead)>>16)&0xffff addui r3,r3,(_FsUnixRead)&0xffff sw 4(r1),r3 lhi r3,((_FsUnixWrite)>>16)&0xffff addui r3,r3,(_FsUnixWrite)&0xffff sw 8(r1),r3 lhi r3,((_FsUnixSeek)>>16)&0xffff addui r3,r3,(_FsUnixSeek)&0xffff sw 12(r1),r3 lhi r3,((_FsUnixDelete)>>16)&0xffff addui r3,r3,(_FsUnixDelete)&0xffff sw 20(r1),r3 lhi r3,((_FsDlxOpen)>>16)&0xffff addui r3,r3,(_FsDlxOpen)&0xffff sw 24(r1),r3 lhi r3,((_FsDlxClose)>>16)&0xffff addui r3,r3,(_FsDlxClose)&0xffff sw 40(r1),r3 lhi r3,((_FsDlxRead)>>16)&0xffff addui r3,r3,(_FsDlxRead)&0xffff sw 28(r1),r3 lhi r3,((_FsDlxWrite)>>16)&0xffff addui r3,r3,(_FsDlxWrite)&0xffff sw 32(r1),r3 lhi r3,((_FsDlxSeek)>>16)&0xffff addui r3,r3,(_FsDlxSeek)&0xffff sw 36(r1),r3 lhi r3,((_FsDlxDelete)>>16)&0xffff addui r3,r3,(_FsDlxDelete)&0xffff sw 44(r1),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _FsModuleInit .data .align 2 _fs: .space 48 .align 2 _openfiles: .space 8576

home/bshapir/cs314/project3/src/queue.o

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Initializing queue link %d.\n\000" .text .align 2 .proc _QueueModuleInit .global _QueueModuleInit _QueueModuleInit: ; Function 'QueueModuleInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 lhi r5,((_freeLinks)>>16)&0xffff addui r5,r5,(_freeLinks)&0xffff sw (r29),r5 jal _QueueInit nop ; not filled. addi r3,r0,#0 addi r29,r29,#8 lhi r4,((_debugstr)>>16)&0xffff addui r4,r4,(_debugstr)&0xffff lhi r2,((_linkpool)>>16)&0xffff addui r2,r2,(_linkpool)&0xffff L63: addi r29,r29,#-8 sw (r29),r4 addi r5,r0,#105 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L65 nop ; not filled. addi r29,r29,#-8 sw (r29),r4 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L64 nop ; not filled. L65: addi r29,r29,#-8 lhi r5,((LC0)>>16)&0xffff addui r5,r5,(LC0)&0xffff sw (r29),r5 sw 4(r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L64: addi r5,r0,#0 sw (r2),r5 addi r29,r29,#-8 sw (r29),r2 jal _QueueFreeLink nop ; not filled. addi r29,r29,#8 addi r2,r2,#16 addi r3,r3,#1 slei r1,r3,#399 bnez r1,L63 nop ; not filled. lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueModuleInit .align 2 .proc _QueueInit .global _QueueInit _QueueInit: ; Function 'QueueInit'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) sw (r1),r1 sw 4(r1),r1 addi r31,r0,#0 sw 8(r1),r31 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInit .data .align 2 LC1: .ascii "%s: %s\n\000" .align 2 LC2: .ascii "QueueFreeLink\000" .align 2 LC3: .ascii "Link not empty\000" .text .align 2 .proc _QueueFreeLink .global _QueueFreeLink _QueueFreeLink: ; Function 'QueueFreeLink'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r3,(r30) lw r1,(r3) snei r1,r1,#0 beqz r1,L77 nop ; not filled. addi r29,r29,#-16 lhi r4,((LC1)>>16)&0xffff addui r4,r4,(LC1)&0xffff sw (r29),r4 lhi r1,((LC2)>>16)&0xffff addui r1,r1,(LC2)&0xffff sw 4(r29),r1 lhi r4,((LC3)>>16)&0xffff addui r4,r4,(LC3)&0xffff sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L77: lhi r2,((_freeLinks)>>16)&0xffff addui r2,r2,(_freeLinks)&0xffff lw r1,4(r2) sw 8(r3),r2 sw 4(r3),r1 lw r4,(r1) sw (r3),r4 sw (r1),r3 lw r1,(r3) sw 4(r1),r3 lw r1,8(r2) addi r1,r1,#1 sw 8(r2),r1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFreeLink .data .align 2 LC4: .ascii "QueueAllocLink\000" .align 2 LC5: .ascii "Link not allocated!\000" .text .align 2 .proc _QueueAllocLink .global _QueueAllocLink _QueueAllocLink: ; Function 'QueueAllocLink'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lhi r2,((_freeLinks)>>16)&0xffff addui r2,r2,(_freeLinks)&0xffff lw r1,8(r2) seqi r1,r1,#0 bnez r1,L92 nop ; not filled. lw r3,(r2) lw r1,8(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L97 nop ; not filled. lw r1,4(r3) lw r4,(r3) sw (r1),r4 lw r1,(r3) lw r4,4(r3) sw 4(r1),r4 lw r2,8(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L97: addi r4,r0,#0 sw (r3),r4 j L98 nop ; not filled. L92: addi r3,r0,#0 L98: snei r1,r3,#0 bnez r1,L100 nop ; not filled. addi r29,r29,#-16 lhi r4,((LC1)>>16)&0xffff addui r4,r4,(LC1)&0xffff sw (r29),r4 lhi r1,((LC4)>>16)&0xffff addui r1,r1,(LC4)&0xffff sw 4(r29),r1 lhi r4,((LC5)>>16)&0xffff addui r4,r4,(LC5)&0xffff sw 8(r29),r4 jal _printf nop ; not filled. addi r29,r29,#16 L100: add r1,r0,r3 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueAllocLink .data .align 2 .global _freeLinks _freeLinks: .space 12 .align 2 _linkpool: .space 6400

home/bshapir/cs314/project3/src/process.c

// // process.c // // This file defines routines for dealing with processes. This // includes the "main" routine for the OS, which creates a process // for the initial thread of execution. It also includes // code to create and delete processes, as well as context switch // code. Note, however, that the actual context switching is // done in assembly language elsewhere. #include "dlxos.h" #include "process.h" //#include "synch.h" #include "memory.h" #include "filesys.h" float MyFuncRetZero(); // Lab3: These two string are defined for you to print out your // timming analysis. Do not use your own strings. // Your printf statement should be printf(TIMESTRING1,data1...);... // note that we need to print the floating point value by itself, // otherwise it is not going to print right #define TIMESTRING1 "Process %d has run for" #define TIMESTRING2 " %.3f s\n" #define TIMESTRING3 "Process %d 's priority is %d \n" // Pointer to the current PCB. This is used by the assembly language // routines for context switches. PCB *currentPCB; // List of free PCBs. static Queue freepcbs; // List of processes that are ready to run (ie, not waiting for something // to happen). static Queue runQueue; // List of processes that are waiting for something to happen. There's no // reason why this must be a single list; there could be many lists for many // different conditions. static Queue waitQueue; // List of processes waiting to be deleted. See below for a description of // the reason that we need a separate queue for processes about to die. static Queue zombieQueue; // Static area for all process control blocks. This is necessary because // we can't use malloc() inside the OS. static PCB pcbs[PROCESS_MAX_PROCS]; // Default value for scheduler quantum. This could be set to any value. // In fact, it could even be dynamic, though that would require modifying // the timer trap handler.... static processQuantum = DLX_PROCESS_QUANTUM; // String listing debugging options to print out. char debugstr[200]; � //---------------------------------------------------------------------- // // ProcessModuleInit // // Initialize the process module. This involves initializing all // of the process control blocks to appropriate values (ie, free // and available). We also need to initialize all of the queues. // //---------------------------------------------------------------------- void ProcessModuleInit () { int i; dbprintf ('p', "Entering ProcessModuleInit\n"); QueueInit (&freepcbs); QueueInit (&runQueue); QueueInit (&waitQueue); QueueInit (&zombieQueue); for (i = 0; i < PROCESS_MAX_PROCS; i++) { dbprintf ('p', "Initializing PCB %d @ 0x%x.\n", i, &(pcbs[i])); pcbs[i].flags = PROCESS_STATUS_FREE; QueueLinkInit (&(pcbs[i].l), (void *)&pcbs[i]); QueueInsertFirst(&freepcbs, &(pcbs[i].l)); } currentPCB = NULL; dbprintf ('p', "Leaving ProcessModuleInit\n"); } � //---------------------------------------------------------------------- // // ProcessSetStatus // // Set the status of a process. // //---------------------------------------------------------------------- void ProcessSetStatus (PCB *pcb, int status) { pcb->flags &= ~PROCESS_STATUS_MASK; pcb->flags |= status; } //---------------------------------------------------------------------- // // ProcessFreeResources // // Free the resources associated with a process. This assumes the // process isn't currently on any queue. // //---------------------------------------------------------------------- void ProcessFreeResources (PCB *pcb) { int i; int npages; QueueInsertLast (&freepcbs, &pcb->l); // Free the process's memory. This is easy with a one-level page // table, but could get more complex with two-level page tables. npages = pcb->npages; for (i=0; i<npages; i++) { MemoryFreeSharedPte(pcb, i); // *MUST* be called before calling // MemoryFreePte. MemoryFreePte does not know // anything about shared pages, and hence it // might screw up big time } for (i = 0; i < pcb->npages; i++) { MemoryFreePte (pcb->pagetable[i]); } // Free the page allocated for the system stack MemoryFreePage (pcb->sysStackArea / MEMORY_PAGE_SIZE); ProcessSetStatus (pcb, PROCESS_STATUS_FREE); } //---------------------------------------------------------------------- // // ProcessSetResult // // Set the result returned to a process. This is done by storing // the value into the current register save area for r1. When the // context is restored, r1 will contain the return value. This // routine should only be called from a trap. Calling it at other // times (such as an interrupt handler) will cause unpredictable // results. // //---------------------------------------------------------------------- void ProcessSetResult (PCB * pcb, uint32 result) { pcb->currentSavedFrame[PROCESS_STACK_IREG+1] = result; } � //---------------------------------------------------------------------- // // ProcessSchedule // // Schedule the next process to run. If there are no processes to // run, exit. This means that there should be an idle loop process // if you want to allow the system to "run" when there's no real // work to be done. // // NOTE: the scheduler should only be called from a trap or interrupt // handler. This way, interrupts are disabled. Also, it must be // called consistently, and because it might be called from an interrupt // handler (the timer interrupt), it must ALWAYS be called from a trap // or interrupt handler. // // Note that this procedure doesn't actually START the next process. // It only changes the currentPCB and other variables so the next // return from interrupt will restore a different context from that // which was saved. // //---------------------------------------------------------------------- // void ProcessSchedule () { PCB *pcb; int i; dbprintf ('p', "Now entering ProcessSchedule (cur=0x%x, %d ready)\n", currentPCB, QueueLength (&runQueue)); // The OS exits if there's no runnable process. This is a feature, not a // bug. An easy solution to allowing no runnable "user" processes is to // have an "idle" process that's simply an infinite loop. if (QueueEmpty (&runQueue)) { printf ("No runnable processes - exiting!\n"); exitsim (); // NEVER RETURNS } // Move the front of the queue to the end, if it is the running process. pcb = (PCB *)((QueueFirst (&runQueue))->object); if (pcb == currentPCB) { QueueRemove (&pcb->l); QueueInsertLast (&runQueue, &pcb->l); } // Now, run the one at the head of the queue. pcb = (PCB *)((QueueFirst (&runQueue))->object); currentPCB = pcb; dbprintf ('p',"About to switch to PCB 0x%x,flags=0x%x @ 0x%x\n", pcb, pcb->flags, pcb->sysStackPtr[PROCESS_STACK_IAR]); // Clean up zombie processes here. This is done at interrupt time // because it can't be done while the process might still be running while (!QueueEmpty (&zombieQueue)) { pcb = (PCB *)(QueueFirst (&zombieQueue)->object); dbprintf ('p', "Freeing zombie PCB 0x%x.\n", pcb); QueueRemove (&pcb->l); ProcessFreeResources (pcb); } // Set the timer so this process gets at most a fixed quantum of time. TimerSet (processQuantum); dbprintf ('p', "Leaving ProcessSchedule (cur=0x%x)\n", currentPCB); } � //---------------------------------------------------------------------- // // ProcessSuspend // // Place a process in suspended animation until it's // awakened by Processwakeup. // // NOTE: This must only be called from an interrupt or trap. It // should be immediately followed by ProcessSchedule(). // //---------------------------------------------------------------------- void ProcessSuspend (PCB *suspend) { // Make sure it's already a runnable process. dbprintf ('p', "Suspending PCB 0x%x (%s).\n", suspend, suspend->name); ASSERT (suspend->flags & PROCESS_STATUS_RUNNABLE, "Trying to suspend a non-running process!\n"); ProcessSetStatus (suspend, PROCESS_STATUS_WAITING); QueueRemove (&suspend->l); QueueInsertLast (&waitQueue, &suspend->l); } //---------------------------------------------------------------------- // // ProcessWakeup // // Wake up a process from its slumber. This only involves putting // it on the run queue; it's not guaranteed to be the next one to // run. // // NOTE: This must only be called from an interrupt or trap. It // need not be followed immediately by ProcessSchedule() because // the currently running process is unaffected. // //---------------------------------------------------------------------- void ProcessWakeup (PCB *wakeup) { dbprintf ('p',"Waking up PCB 0x%x.\n", wakeup); // Make sure it's not yet a runnable process. ASSERT (wakeup->flags & PROCESS_STATUS_WAITING, "Trying to wake up a non-sleeping process!\n"); ProcessSetStatus (wakeup, PROCESS_STATUS_RUNNABLE); QueueRemove (&wakeup->l); QueueInsertLast (&runQueue, &wakeup->l); } � //---------------------------------------------------------------------- // // ProcessDestroy // // Destroy a process by setting its status to zombie and putting it // on the zombie queue. The next time the scheduler is called, this // process will be marked as free. We can't necessarily do it now // because we might be the currently running process. // // NOTE: This must only be called from an interrupt or trap. However, // it need not be followed immediately by a ProcessSchedule() because // the process can continue running. // //---------------------------------------------------------------------- void ProcessDestroy (PCB *pcb) { dbprintf('p', "Entering ProcessDestroy for 0x%x.\n", pcb); ProcessSetStatus (pcb, PROCESS_STATUS_ZOMBIE); QueueRemove (&pcb->l); QueueInsertFirst (&zombieQueue, &pcb->l); dbprintf('p', "Leaving ProcessDestroy for 0x%x.\n", pcb); } //---------------------------------------------------------------------- // // ProcessExit // // This routine is called to exit from a system process. It simply // calls an exit trap, which will be caught to exit the process. // //---------------------------------------------------------------------- static void ProcessExit () { exit (); } uint32 get_argument(char *string) { static char *str; static int location=0; int location2; if(string) { str=string; location = 0; } location2 = location; if(str[location]=='\0'||location>=99) return 0; for(;location<100;location++) { if(str[location]=='\0') { location++; break; } } return location2; } //---------------------------------------------------------------------- // // ProcessFork // // Create a new process and make it runnable. This involves the // following steps: // * Allocate resources for the process (PCB, memory, etc.) // * Initialize the resources // * Place the PCB on the runnable queue // // NOTE: This code has been tested for system processes, but not // for user processes. // //---------------------------------------------------------------------- int ProcessFork (VoidFunc func, uint32 param, int p_nice, int p_info,char *name, int isUser) { int i, j, fd, n; Link *l; int start, codeS, codeL, dataS, dataL; uint32 *stackframe; int newPage; PCB *pcb; int addr = 0; int intrs; unsigned char buf[100]; uint32 dum[MAX_ARGS+8], count, offset; char *str; intrs = DisableIntrs (); dbprintf ('I', "Old interrupt value was 0x%x.\n", intrs); dbprintf ('p', "Entering ProcessFork args=0x%x 0x%x %s %d\n", func, param, name, isUser); // Get a free PCB for the new process if (QueueEmpty (&freepcbs)) { printf ("FATAL error: no free processes!\n"); exitsim (); // NEVER RETURNS! } l = QueueFirst (&freepcbs); dbprintf ('p', "Got a link @ 0x%x\n", l); QueueRemove (l); pcb = (PCB *)(l->object); // This prevents someone else from grabbing this process ProcessSetStatus (pcb, PROCESS_STATUS_RUNNABLE); // At this point, the PCB is allocated and nobody else can get it. // However, it's not in the run queue, so it won't be run. Thus, we // can turn on interrupts here. dbprintf ('I', "Before restore interrupt value is 0x%x.\n", CurrentIntrs()); RestoreIntrs (intrs); dbprintf ('I', "New interrupt value is 0x%x.\n", CurrentIntrs()); // Copy the process name into the PCB. dstrcpy (pcb->name, name); //---------------------------------------------------------------------- // This section initializes the memory for this process //---------------------------------------------------------------------- // For now, we'll use one user page and a page for the system stack. // For system processes, though, all pages must be contiguous. // Of course, system processes probably need just a single page for // their stack, and don't need any code or data pages allocated for them. pcb->npages = 1; newPage = MemoryAllocPage (); if (newPage == 0) { printf ("aFATAL: couldn't allocate memory - no free pages!\n"); exitsim (); // NEVER RETURNS! } pcb->pagetable[0] = MemorySetupPte (newPage); newPage = MemoryAllocPage (); if (newPage == 0) { printf ("bFATAL: couldn't allocate system stack - no free pages!\n"); exitsim (); // NEVER RETURNS! } pcb->sysStackArea = newPage * MEMORY_PAGE_SIZE; //--------------------------------------- // Lab3: initialize pcb members for your scheduling algorithm here //-------------------------------------- //---------------------------------------------------------------------- // Stacks grow down from the top. The current system stack pointer has // to be set to the bottom of the interrupt stack frame, which is at the // high end (address-wise) of the system stack. stackframe = ((uint32 *)(pcb->sysStackArea + MEMORY_PAGE_SIZE)) - (PROCESS_STACK_FRAME_SIZE + 8); // The system stack pointer is set to the base of the current interrupt // stack frame. pcb->sysStackPtr = stackframe; // The current stack frame pointer is set to the same thing. pcb->currentSavedFrame = stackframe; dbprintf ('p', "Setting up PCB @ 0x%x (sys stack=0x%x, mem=0x%x, size=0x%x)\n", pcb, pcb->sysStackArea, pcb->pagetable[0], pcb->npages * MEMORY_PAGE_SIZE); //---------------------------------------------------------------------- // This section sets up the stack frame for the process. This is done // so that the frame looks to the interrupt handler like the process // was "suspended" right before it began execution. The standard // mechanism of swapping in the registers and returning to the place // where it was "interrupted" will then work. //---------------------------------------------------------------------- // The previous stack frame pointer is set to 0, meaning there is no // previous frame. stackframe[PROCESS_STACK_PREV_FRAME] = 0; // Set the base of the level 1 page table. If there's only one page // table level, this is it. For 2-level page tables, put the address // of the level 1 page table here. For 2-level page tables, we'll also // have to build up the necessary tables.... stackframe[PROCESS_STACK_PTBASE] = (uint32)&(pcb->pagetable[0]); // Set the size (maximum number of entries) of the level 1 page table. // In our case, it's just one page, but it could be larger. stackframe[PROCESS_STACK_PTSIZE] = pcb->npages; // Set the number of bits for both the level 1 and level 2 page tables. // This can be changed on a per-process basis if desired. For now, // though, it's fixed. stackframe[PROCESS_STACK_PTBITS] = (MEMORY_L1_PAGE_SIZE_BITS + (MEMORY_L2_PAGE_SIZE_BITS << 16)); if (isUser) { dbprintf ('p', "About to load %s\n", name); fd = ProcessGetCodeInfo (name, &start, &codeS, &codeL, &dataS, &dataL); if (fd < 0) { // Free newpage and pcb so we don't run out... ProcessFreeResources (pcb); return (-1); } dbprintf ('p', "File %s -> start=0x%08x\n", name, start); dbprintf ('p', "File %s -> code @ 0x%08x (size=0x%08x)\n", name, codeS, codeL); dbprintf ('p', "File %s -> data @ 0x%08x (size=0x%08x)\n", name, dataS, dataL); while ((n = ProcessGetFromFile (fd, buf, &addr, sizeof (buf))) > 0) { dbprintf ('p', "Placing %d bytes at vaddr %08x.\n", n, addr - n); // Copy the data to user memory. Note that the user memory needs to // have enough space so that this copy will succeed! MemoryCopySystemToUser (pcb, buf, addr - n, n); } FsClose (fd); stackframe[PROCESS_STACK_ISR] = PROCESS_INIT_ISR_USER; // Set the initial stack pointer correctly. Currently, it's just set // to the top of the (single) user address space allocated to this // process. str = (char *)param; stackframe[PROCESS_STACK_IREG+29] = MEMORY_PAGE_SIZE - SIZE_ARG_BUFF; // Copy the initial parameter to the top of stack MemoryCopySystemToUser (pcb, (char *)str, (char *)stackframe[PROCESS_STACK_IREG+29], SIZE_ARG_BUFF-32); offset = get_argument((char *)param); dum[2] = MEMORY_PAGE_SIZE - SIZE_ARG_BUFF + offset; for(count=3;;count++) { offset=get_argument(NULL); dum[count] = MEMORY_PAGE_SIZE - SIZE_ARG_BUFF + offset; if(offset==0) { break; } } dum[0] = count-2; dum[1] = MEMORY_PAGE_SIZE - SIZE_ARG_BUFF - (count-2)*4; MemoryCopySystemToUser (pcb, (char *)dum, (char *)(stackframe[PROCESS_STACK_IREG+29]-count*4), (count)*sizeof(uint32)); stackframe[PROCESS_STACK_IREG+29] -= 4*count; // Set the correct address at which to execute a user process. stackframe[PROCESS_STACK_IAR] = (uint32)start; pcb->flags |= PROCESS_TYPE_USER; } else { // Set r31 to ProcessExit(). This will only be called for a system // process; user processes do an exit() trap. stackframe[PROCESS_STACK_IREG+31] = (uint32)ProcessExit; // Set the stack register to the base of the system stack. stackframe[PROCESS_STACK_IREG+29]=pcb->sysStackArea + MEMORY_PAGE_SIZE-32; // Set the initial parameter properly by placing it on the stack frame // at the location pointed to by the "saved" stack pointer (r29). *((uint32 *)(stackframe[PROCESS_STACK_IREG+29])) = param; // Set up the initial address at which to execute. This is done by // placing the address into the IAR slot of the stack frame. stackframe[PROCESS_STACK_IAR] = (uint32)func; // Set the initial value for the interrupt status register stackframe[PROCESS_STACK_ISR] = PROCESS_INIT_ISR_SYS; // Mark this as a system process. pcb->flags |= PROCESS_TYPE_SYSTEM; } // Place the PCB onto the run queue. intrs = DisableIntrs (); QueueInsertLast (&runQueue, l); RestoreIntrs (intrs); // If this is the first process, make it the current one if (currentPCB == NULL) { dbprintf ('p', "Setting currentPCB=0x%x, stackframe=0x%x\n", pcb, pcb->currentSavedFrame); currentPCB = pcb; } dbprintf ('p', "Leaving ProcessFork (%s)\n", name); // Return the process number (found by subtracting the PCB number // from the base of the PCB array). return (pcb - pcbs); } � //---------------------------------------------------------------------- // // getxvalue // // Convert a hex digit into an actual value. // //---------------------------------------------------------------------- static inline int getxvalue (int x) { if ((x >= '0') && (x <= '9')) { return (x - '0'); } else if ((x >= 'a') && (x <= 'f')) { return (x + 10 - 'a'); } else if ((x >= 'A') && (x <= 'F')) { return (x + 10 - 'A'); } else { return (0); } } � //---------------------------------------------------------------------- // // ProcessGetCodeSizes // // Get the code sizes (stack & data) for a file. A file descriptor // for the named file is returned. This descriptor MUST be closed // (presumably by the caller) at some point. // //---------------------------------------------------------------------- int ProcessGetCodeInfo (const char *file, uint32 *startAddr, uint32 *codeStart, uint32 *codeSize, uint32 *dataStart, uint32 *dataSize) { int fd; int totalsize; char buf[100]; char *pos; // Open the file for reading. If it returns a negative number, the open // didn't work. if ((fd = FsOpen (file, FS_MODE_READ)) < 0) { dbprintf ('f', "ProcessGetCodeInfo: open of %s failed (%d).\n", file, fd); return (-1); } dbprintf ('f', "File descriptor is now %d.\n", fd); if ((totalsize = FsRead (fd, buf, sizeof (buf))) != sizeof (buf)) { dbprintf ('f', "ProcessGetCodeInfo: read got %d (not %d) bytes from %s\n", totalsize, sizeof (buf), file); FsClose (fd); return (-1); } if (dstrstr (buf, "start:") == NULL) { dbprintf ('f', "ProcessGetCodeInfo: %s missing start line (not a DLX executable?)\n", file); return (-1); } pos = (char *)dindex (buf, ':') + 1; // Get the start address and overall size *startAddr = dstrtol (pos, &pos, 16); totalsize = dstrtol (pos, &pos, 16); // Get code & data section start & sizes *codeStart = dstrtol (pos, &pos, 16); *codeSize = dstrtol (pos, &pos, 16); *dataStart = dstrtol (pos, &pos, 16); *dataSize = dstrtol (pos, &pos, 16); // Seek to start of first real line FsSeek (fd, 1 + dindex (buf, '\n') - buf, 0); return (fd); } � //---------------------------------------------------------------------- // // ProcessGetFromFile // // Inputs: // addr - points to an integer that contains the address of // the byte past that previously returned. If this is the // first call to this routine, *addr should be set to 0. // fd - File descriptor from which to read data. The file format // is the same as that used by the DLX simulator. // buf - points to a buffer that will receive data from the input // file. Note that the data is NOT 0-terminated, and may // include any number of 0 bytes. // max - maximum length of data to return. The routine collects data // until either the address changes or it has read max bytes. // // Returns the number of bytes actually stored into buf. In addition, // *addr is updated to point to the byte following the last byte in // the buffer. // // Load a file into memory. The file format consists of a // leading address, followed by a colon, followed by the data // to go at that address. If the address is omitted, the data // follows that from the previous line of the file. // //---------------------------------------------------------------------- int ProcessGetFromFile (int fd, unsigned char *buf, uint32 *addr, int max) { char localbuf[204]; int nbytes; int seekpos; unsigned char *pos = buf; char *lpos = localbuf; // Remember our position at the start of the routine so we can adjust // it later. seekpos = FsSeek (fd, 0, FS_SEEK_CUR); // The maximum number of characters we could read is limited to the // maximum buffer space available to the caller * 2 because each 2 // characters in the input file result in a single byte of program // info being read in. max = max * 2; // If the callers maximum is greater than the available buffer space, // limit the buffer space further. if (max > (sizeof(localbuf)-4)) { max = sizeof(localbuf)-4; } if ((nbytes = FsRead (fd, localbuf, max)) <= 0) { return (0); } // 'Z' is unused in load file, so use it to mark the end of the buffer // Back up until just after the last newline in the data we read. dbprintf ('f', "Got %d bytes at offset %d ...", nbytes, seekpos); while (localbuf[--nbytes] != '\n') { } localbuf[nbytes+1] = 'Z'; localbuf[nbytes+2] = '\0'; dbprintf ('f', " terminated at %d.\n", nbytes); dbprintf ('f', "Buffer is '%s'\n", localbuf); nbytes = 0; while (dindex (lpos, 'Z') != NULL) { if (dindex (lpos, ':') == NULL) { break; } if (*lpos != ':') { // If we're going to go to a new address, we break out of the // loop and return what we've got already. if (nbytes > 0) { break; } *addr = dstrtol (lpos, &lpos, 16); dbprintf ('f', "New address is 0x%x.\n", *addr); } if (*lpos != ':') { break; } lpos++; // skip past colon while (1) { while (((*lpos) == ' ') || (*lpos == '\t')) { lpos++; } if (*lpos == '\n') { lpos++; break; } else if (!(isxdigit (*lpos) && isxdigit (*(lpos+1)))) { // Exit loop if at least one digit isn't a hex digit. break; } pos[nbytes++] = (getxvalue(*lpos) * 16) + getxvalue(*(lpos+1)); lpos += 2; (*addr)++; } } // Seek to just past the last line we read. FsSeek (fd, seekpos + lpos - localbuf, FS_SEEK_SET); dbprintf ('f', "Seeking to %d and returning %d bytes!\n", seekpos + lpos - localbuf, nbytes); return (nbytes); } � //---------------------------------------------------------------------- // // main // // This routine is called when the OS starts up. It allocates a // PCB for the first process - the one corresponding to the initial // thread of execution. Note that the stack pointer is already // set correctly by _osinit (assembly language code) to point // to the stack for the 0th process. This stack isn't very big, // though, so it should be replaced by the system stack of the // currently running process. // //---------------------------------------------------------------------- main (int argc, char *argv[]) { int i, j; int n; char buf[120]; char *userprog = (char *)0; static PCB temppcb; uint32 addr; extern void SysprocCreateProcesses (); char *param[12]={NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; int base; debugstr[0] = '\0'; MyFuncRetZero(); printf ("Got %d arguments.\n", argc); printf ("Available memory: 0x%x -> 0x%x.\n", lastosaddress, MemoryGetSize ()); printf ("Argument count is %d.\n", argc); for (i = 0; i < argc; i++) { printf ("Argument %d is %s.\n", i, argv[i]); } // *((int *)0xfff00100) = 't'; FsModuleInit (); for (i = 0; i < argc; i++) { if (argv[i][0] == '-') { switch (argv[i][1]) { case 'D': dstrcpy (debugstr, argv[++i]); break; case 'i': n = dstrtol (argv[++i], (void *)0, 0); ditoa (n, buf); printf ("Converted %s to %d=%s\n", argv[i], n, buf); break; case 'f': { int start, codeS, codeL, dataS, dataL, fd, j; int addr = 0; static unsigned char buf[200]; fd = ProcessGetCodeInfo (argv[++i], &start, &codeS, &codeL, &dataS, &dataL); printf ("File %s -> start=0x%08x\n", argv[i], start); printf ("File %s -> code @ 0x%08x (size=0x%08x)\n", argv[i], codeS, codeL); printf ("File %s -> data @ 0x%08x (size=0x%08x)\n", argv[i], dataS, dataL); while ((n = ProcessGetFromFile (fd, buf, &addr, sizeof (buf))) > 0) { for (j = 0; j < n; j += 4) { printf ("%08x: %02x%02x%02x%02x\n", addr + j - n, buf[j], buf[j+1], buf[j+2], buf[j+3]); } } close (fd); break; } case 'u': userprog = argv[++i]; base = i; break; default: printf ("Option %s not recognized.\n", argv[i]); break; } if(userprog) break; } } dbprintf ('i', "About to initialize queues.\n"); QueueModuleInit (); dbprintf ('i', "After initializing queues.\n"); MemoryModuleInit (); dbprintf ('i', "After initializing memory.\n"); ProcessModuleInit (); dbprintf ('i', "After initializing processes.\n"); ShareModuleInit (); dbprintf ('i', "After initializing shared memory.\n"); SynchModuleInit (); dbprintf ('i', "After initializing synchronization tools.\n"); KbdModuleInit (); dbprintf ('i', "After initializing keyboard.\n"); for (i = 0; i < 100; i++) { buf[i] = 'a'; } i = FsOpen ("vm", FS_MODE_WRITE); dbprintf ('i', "VM Descriptor is %d\n", i); FsSeek (i, 0, FS_SEEK_SET); FsWrite (i, buf, 80); FsClose (i); if (userprog != (char *)0) { for(i=base;i<argc&&i-base<11; i++) { param[i-base] = argv[i]; } process_create(0,0,param[0], param[1], param[2], param[3], param[4], param[5], param[6], param[7], param[8], param[9], param[10], param[11]); // ProcessFork (0, (uint32)"Help Me man!", userprog, 1); } SysprocCreateProcesses (); dbprintf ('i', "Created processes - about to set timer quantum.\n"); TimerSet (processQuantum); dbprintf ('i', "Set timer quantum to %d, about to run first process.\n", processQuantum); intrreturn (); // Should never be called because the scheduler exits when there // are no runnable processes left. exitsim(); // NEVER RETURNS! } float MyFuncRetZero() { return 0; } unsigned GetCurrentPid() { return (unsigned)(currentPCB - pcbs); } unsigned findpid(PCB *pcb) { return (unsigned)(pcb - pcbs); } void process_create(int p_nice, int p_info, char *name, ...) { char **args; int i, j, k; char allargs[1000]; args = &name; k=0; for(i=0; args[i]!=NULL; i++) { j=0; do { allargs[k] = args[i][j]; j++; k++; } while(args[i][j-1]!='\0'); } allargs[k] = allargs[k+1] = 0; ProcessFork(0, (uint32)allargs, p_nice,p_info,name, 1); }

home/bshapir/cs314/project3/src/sysproc.c

// // sysproc.c // // This file defines system processes run by the OS. It also // includes a routine to initialize system processes. #include "process.h" //#include "synch.h" //---------------------------------------------------------------------- // // doSomething // // A useless little function that does some small stuff to test // process switching and the like. // //---------------------------------------------------------------------- typedef struct Sem { Queue waiting; int count; uint32 inuse; //indicates whether the semaphore is being //used by any process } Sem; static Sem mysems[10]; static void doSomething (int me) { int i; int j; int mygrp = me % 10; char buf[40]; char buf2[40]; if (me < 100) { SemInit (&(mysems[mygrp]), 1); for (i = 1; i <= 6; i++) { dstrcpy (buf, "Process #"); ditoa (i, buf2); dstrcat (buf, buf2); ProcessFork (&doSomething, i * me * 1000 + me,0,0, buf, 0); } } SemWait (&mysems[mygrp]); for (i = 0, j = 0; i < (me * 2); i++) { if ((i % 1000) == 0) { printf ("Running process %d (iteration %d)!\n", me, i); } j += (i & 3); } SemSignal (&mysems[mygrp]); } � //---------------------------------------------------------------------- // // chaseTail // // A little function that chases its tail, forking off other // processes before exiting. This can be used to test resource // allocation and reclamation. // //---------------------------------------------------------------------- static void chaseTail (int me) { char *str = "chasetail"; printf ("Chasing tail %d.\n", me); printf ("Open of (%s,0x%x) returns 0x%x.\n", str, me+0x2000, Open (str, me + 0x2000)); if (me < 40) { ProcessFork (&chaseTail, me + 1,0,0, "ChaseTail", 0); } } //---------------------------------------------------------------------- // // emptyLoop // // This is an empty loop. It's used to test running code. A similar // loop could be used as the "idle" process. // //---------------------------------------------------------------------- static void emptyLoop (int me) { int i; int limit = me * 50000; i = 0; while (1) { i += 1; if (i > limit) { i = 0; printf ("%d ", me); } } } � //---------------------------------------------------------------------- // // randomStuff // // This routine tests random number usage in DLXOS. // //---------------------------------------------------------------------- static void randomStuff (int seed) { int i,rn; extern int random(),srandom(); srandom (seed); for (i = 0; i < 40; i++) { rn = random (); printf ("Random number %02i is 0x%08x.\n", i, rn); } } //---------------------------------------------------------------------- // // SysprocCreateProcesses // // This is the routine that is called by main to create processes. // It must create at least one process, and there must always be // at least one runnable process. If there isn't, the OS will // exit. // //---------------------------------------------------------------------- void SysprocCreateProcesses () { int i; for (i = 0; i < 10; i++) { SemInit (&mysems[i], 1); } }

home/bshapir/cs314/project3/src/synch.bin

; Compiled by GCC .text .align 2 .proc _isspace .global _isspace _isspace: ; Function 'isspace'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r2,3(r30) addi r31,r0,#0 andi r1,r2,#0x00ff seqi r1,r1,#32 bnez r1,L6 nop ; not filled. addi r1,r2,#-9 andi r1,r1,#0x00ff sleui r1,r1,#1 beqz r1,L5 nop ; not filled. L6: addi r31,r0,#1 L5: add r1,r0,r31 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isspace .align 2 .proc _isxdigit .global _isxdigit _isxdigit: ; Function 'isxdigit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lb r31,3(r30) addi r2,r0,#0 addi r1,r31,#-48 andi r1,r1,#0x00ff sleui r1,r1,#9 bnez r1,L12 nop ; not filled. addi r1,r31,#-97 andi r1,r1,#0x00ff sleui r1,r1,#5 bnez r1,L12 nop ; not filled. andi r1,r31,#0x00ff snei r1,r1,#65 bnez r1,L11 nop ; not filled. L12: addi r2,r0,#1 L11: add r1,r0,r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _isxdigit .align 2 .proc _DisableIntrs .global _DisableIntrs _DisableIntrs: ; Function 'DisableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#15 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _DisableIntrs .align 2 .proc _EnableIntrs .global _EnableIntrs _EnableIntrs: ; Function 'EnableIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 addi r2,r0,#0 sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _EnableIntrs .align 2 .proc _RestoreIntrs .global _RestoreIntrs _RestoreIntrs: ; Function 'RestoreIntrs'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 addi r29,r29,#-8 lw r2,(r30) sw (r29),r2 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _RestoreIntrs .align 2 .proc _QueueLinkInit .global _QueueLinkInit _QueueLinkInit: ; Function 'QueueLinkInit'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r1,(r30) lw r2,4(r30) addi r31,r0,#0 sw (r1),r31 sw 12(r1),r2 lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLinkInit .align 2 .proc _QueueNext .global _QueueNext _QueueNext: ; Function 'QueueNext'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueNext .align 2 .proc _QueuePrev .global _QueuePrev _QueuePrev: ; Function 'QueuePrev'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueuePrev .align 2 .proc _QueueFirst .global _QueueFirst _QueueFirst: ; Function 'QueueFirst'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueFirst .align 2 .proc _QueueLast .global _QueueLast _QueueLast: ; Function 'QueueLast'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,4(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLast .align 2 .proc _QueueInsertAfter .global _QueueInsertAfter _QueueInsertAfter: ; Function 'QueueInsertAfter'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r2,4(r30) lw r1,8(r30) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertAfter .align 2 .proc _QueueInsertFirst .global _QueueInsertFirst _QueueInsertFirst: ; Function 'QueueInsertFirst'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) sw 8(r1),r3 sw 4(r1),r3 lw r31,(r3) sw (r1),r31 sw (r3),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertFirst .align 2 .proc _QueueInsertLast .global _QueueInsertLast _QueueInsertLast: ; Function 'QueueInsertLast'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r3,(r30) lw r1,4(r30) lw r2,4(r3) sw 8(r1),r3 sw 4(r1),r2 lw r31,(r2) sw (r1),r31 sw (r2),r1 lw r2,(r1) sw 4(r2),r1 lw r1,8(r3) addi r1,r1,#1 sw 8(r3),r1 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueInsertLast .align 2 .proc _QueueRemove .global _QueueRemove _QueueRemove: ; Function 'QueueRemove'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r31,(r30) lw r1,8(r31) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L44 nop ; not filled. lw r1,4(r31) lw r3,(r31) sw (r1),r3 lw r1,(r31) lw r3,4(r31) sw 4(r1),r3 lw r2,8(r31) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L44: addi r3,r0,#0 sw (r31),r3 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueRemove .align 2 .proc _QueueLength .global _QueueLength _QueueLength: ; Function 'QueueLength'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueLength .align 2 .proc _QueueEmpty .global _QueueEmpty _QueueEmpty: ; Function 'QueueEmpty'; 0 bytes of locals, 0 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#8 ; alloc local storage lw r1,(r30) lw r1,8(r1) seqi r1,r1,#0 lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _QueueEmpty .data .align 2 LC0: .ascii "Entering SynchModuleInit\n\000" .align 2 LC1: .ascii "Leaving SynchModuleInit\n\000" .text .align 2 .proc _SynchModuleInit .global _SynchModuleInit _SynchModuleInit: ; Function 'SynchModuleInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r3,r0,#112 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L53 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r3,r0,#43 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L52 nop ; not filled. L53: addi r29,r29,#-8 lhi r3,((LC0)>>16)&0xffff addui r3,r3,(LC0)&0xffff sw (r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L52: lhi r31,((_sems)>>16)&0xffff addui r31,r31,(_sems)&0xffff addi r2,r31,#1260 L57: addi r3,r0,#0 sw 16(r31),r3 addi r31,r31,#20 sle r1,r31,r2 bnez r1,L57 nop ; not filled. lhi r31,((_locks)>>16)&0xffff addui r31,r31,(_locks)&0xffff addi r2,r31,#1764 L62: addi r3,r0,#0 sw 24(r31),r3 addi r3,r0,#-1 sw 20(r31),r3 addi r31,r31,#28 sle r1,r31,r2 bnez r1,L62 nop ; not filled. addi r2,r0,#0 lhi r31,((_conds)>>16)&0xffff addui r31,r31,(_conds)&0xffff L67: addi r3,r0,#0 sw 28(r31),r3 sw 24(r31),r3 addi r31,r31,#32 addi r2,r2,#1 slei r1,r2,#31 bnez r1,L67 nop ; not filled. addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r3,r0,#112 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L70 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r3,r0,#43 sw 4(r29),r3 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L69 nop ; not filled. L70: addi r29,r29,#-8 lhi r3,((LC1)>>16)&0xffff addui r3,r3,(LC1)&0xffff sw (r29),r3 jal _printf nop ; not filled. addi r29,r29,#8 L69: lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SynchModuleInit .align 2 .proc _SemInit .global _SemInit _SemInit: ; Function 'SemInit'; 0 bytes of locals, 2 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. sw 12(r2),r3 addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemInit .align 2 .proc _SemCreate .global _SemCreate _SemCreate: ; Function 'SemCreate'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r3,r0,#0 lhi r31,((_sems)>>16)&0xffff addui r31,r31,(_sems)&0xffff L89: add r2,r0,r31 lw r1,16(r31) snei r1,r1,#0 beqz r1,L96 nop ; not filled. addi r31,r2,#20 addi r3,r3,#1 slei r1,r3,#63 bnez r1,L89 nop ; not filled. L87: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 seqi r1,r3,#64 bnez r1,L93 nop ; not filled. slli r1,r3,#0x2 add r1,r1,r3 slli r1,r1,#0x2 lhi r5,((_sems)>>16)&0xffff addui r5,r5,(_sems)&0xffff add r2,r1,r5 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. lw r5,(r30) sw 12(r2),r5 addi r29,r29,#8 add r1,r0,r3 j L95 nop ; not filled. L96: addi r5,r0,#1 sw 16(r31),r5 j L87 nop ; not filled. L93: addi r1,r0,#-1 L95: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemCreate .data .align 2 LC2: .ascii "Old interrupt value was 0x%x.\n\000" .align 2 LC3: .ascii "Proc 0x%x waiting on sem 0x%x, count=%d.\n\000" .align 2 LC4: .ascii "Suspending current proc (0x%x).\n\000" .text .align 2 .proc _SemWait .global _SemWait _SemWait: ; Function 'SemWait'; 0 bytes of locals, 6 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 lw r4,(r30) addi r29,r29,#-8 addi r7,r0,#15 sw (r29),r7 jal _SetIntrs nop ; not filled. add r6,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#73 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L100 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L99 nop ; not filled. L100: addi r29,r29,#-8 lhi r7,((LC2)>>16)&0xffff addui r7,r7,(LC2)&0xffff sw (r29),r7 sw 4(r29),r6 jal _printf nop ; not filled. addi r29,r29,#8 L99: addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r7,r0,#115 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L102 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L101 nop ; not filled. L102: addi r29,r29,#-16 lhi r7,((LC3)>>16)&0xffff addui r7,r7,(LC3)&0xffff sw (r29),r7 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw 4(r29),r1 sw 8(r29),r4 lw r7,12(r4) sw 12(r29),r7 jal _printf nop ; not filled. addi r29,r29,#16 L101: lw r1,12(r4) addi r1,r1,#-1 sw 12(r4),r1 slti r1,r1,#0 beqz r1,L103 nop ; not filled. jal _QueueAllocLink nop ; not filled. add r2,r0,r1 lhi r5,((_currentPCB)>>16)&0xffff addui r5,r5,(_currentPCB)&0xffff lw r1,(r5) addi r7,r0,#0 sw (r2),r7 sw 12(r2),r1 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r7,r0,#115 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L106 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 addi r7,r0,#43 sw 4(r29),r7 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L105 nop ; not filled. L106: addi r29,r29,#-8 lhi r7,((LC4)>>16)&0xffff addui r7,r7,(LC4)&0xffff sw (r29),r7 lw r1,(r5) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L105: lw r1,4(r4) sw 8(r2),r4 sw 4(r2),r1 lw r7,(r1) sw (r2),r7 sw (r1),r2 lw r1,(r2) sw 4(r1),r2 lw r1,8(r4) addi r1,r1,#1 sw 8(r4),r1 jal _ProcessSleep nop ; not filled. L103: addi r29,r29,#-8 sw (r29),r6 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemWait .align 2 .proc _SemHandleWait .global _SemHandleWait _SemHandleWait: ; Function 'SemHandleWait'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r31,(r30) sleui r1,r31,#63 beqz r1,L116 nop ; not filled. slli r1,r31,#0x2 add r1,r1,r31 slli r1,r1,#0x2 lhi r2,((_sems)>>16)&0xffff addui r2,r2,(_sems)&0xffff add r31,r1,r2 lw r1,16(r31) snei r1,r1,#0 beqz r1,L117 nop ; not filled. addi r29,r29,#-8 sw (r29),r31 jal _SemWait nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L115 nop ; not filled. L117: addi r1,r0,#1 j L115 nop ; not filled. L116: addi r1,r0,#1 L115: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemHandleWait .data .align 2 LC5: .ascii "Signalling on sem 0x%x, count=%d.\n\000" .align 2 LC6: .ascii "Waking up PCB 0x%x.\n\000" .text .align 2 .proc _SemSignal .global _SemSignal _SemSignal: ; Function 'SemSignal'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r3,((_debugstr)>>16)&0xffff addui r3,r3,(_debugstr)&0xffff sw (r29),r3 addi r5,r0,#115 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L123 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L122 nop ; not filled. L123: addi r29,r29,#-16 lhi r5,((LC5)>>16)&0xffff addui r5,r5,(LC5)&0xffff sw (r29),r5 sw 4(r29),r2 lw r5,12(r2) sw 8(r29),r5 jal _printf nop ; not filled. addi r29,r29,#16 L122: lw r1,12(r2) addi r1,r1,#1 sw 12(r2),r1 slei r1,r1,#0 beqz r1,L124 nop ; not filled. lw r3,(r2) lw r1,8(r3) lw r1,8(r1) sgti r1,r1,#0 beqz r1,L127 nop ; not filled. lw r1,4(r3) lw r5,(r3) sw (r1),r5 lw r1,(r3) lw r5,4(r3) sw 4(r1),r5 lw r2,8(r3) lw r1,8(r2) addi r1,r1,#-1 sw 8(r2),r1 L127: addi r5,r0,#0 sw (r3),r5 addi r29,r29,#-8 lhi r2,((_debugstr)>>16)&0xffff addui r2,r2,(_debugstr)&0xffff sw (r29),r2 addi r5,r0,#115 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 bnez r1,L129 nop ; not filled. addi r29,r29,#-8 sw (r29),r2 addi r5,r0,#43 sw 4(r29),r5 jal _dindex nop ; not filled. addi r29,r29,#8 snei r1,r1,#0 beqz r1,L128 nop ; not filled. L129: addi r29,r29,#-8 lhi r5,((LC6)>>16)&0xffff addui r5,r5,(LC6)&0xffff sw (r29),r5 lw r1,12(r3) sw 4(r29),r1 jal _printf nop ; not filled. addi r29,r29,#8 L128: addi r29,r29,#-8 lw r5,12(r3) sw (r29),r5 jal _ProcessWakeup nop ; not filled. sw (r29),r3 jal _QueueFreeLink nop ; not filled. addi r29,r29,#8 L124: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemSignal .align 2 .proc _SemHandleSignal .global _SemHandleSignal _SemHandleSignal: ; Function 'SemHandleSignal'; 0 bytes of locals, 1 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#16 ; alloc local storage sw 0(r29),r2 lw r31,(r30) sleui r1,r31,#63 beqz r1,L136 nop ; not filled. slli r1,r31,#0x2 add r1,r1,r31 slli r1,r1,#0x2 lhi r2,((_sems)>>16)&0xffff addui r2,r2,(_sems)&0xffff add r31,r1,r2 lw r1,16(r31) snei r1,r1,#0 beqz r1,L137 nop ; not filled. addi r29,r29,#-8 sw (r29),r31 jal _SemSignal nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L135 nop ; not filled. L137: addi r1,r0,#1 j L135 nop ; not filled. L136: addi r1,r0,#1 L135: lw r2,0(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _SemHandleSignal .align 2 .proc _LockInit .global _LockInit _LockInit: ; Function 'LockInit'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) addi r29,r29,#-8 addi r4,r0,#15 sw (r29),r4 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. addi r4,r0,#1 sw 12(r2),r4 addi r29,r29,#8 addi r4,r0,#-1 sw 20(r2),r4 addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockInit .align 2 .proc _LockCreate .global _LockCreate _LockCreate: ; Function 'LockCreate'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r31,r0,r1 addi r29,r29,#8 addi r4,r0,#0 lhi r3,((_locks)>>16)&0xffff addui r3,r3,(_locks)&0xffff L153: add r2,r0,r3 lw r1,24(r3) snei r1,r1,#0 beqz r1,L163 nop ; not filled. addi r3,r2,#28 addi r4,r4,#1 slei r1,r4,#63 bnez r1,L153 nop ; not filled. L151: addi r29,r29,#-8 sw (r29),r31 jal _SetIntrs nop ; not filled. addi r29,r29,#8 seqi r1,r4,#64 bnez r1,L157 nop ; not filled. slli r1,r4,#0x3 sub r1,r1,r4 slli r1,r1,#0x2 lhi r5,((_locks)>>16)&0xffff addui r5,r5,(_locks)&0xffff add r2,r1,r5 addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r2 jal _QueueInit nop ; not filled. addi r5,r0,#1 sw 12(r2),r5 addi r29,r29,#8 addi r5,r0,#-1 sw 20(r2),r5 addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r4 j L162 nop ; not filled. L163: addi r5,r0,#1 sw 24(r3),r5 j L151 nop ; not filled. L157: addi r1,r0,#-1 L162: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockCreate .align 2 .proc _LockAcquire .global _LockAcquire _LockAcquire: ; Function 'LockAcquire'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r4,((_currentPCB)>>16)&0xffff addui r4,r4,(_currentPCB)&0xffff lw r6,(r4) sw (r29),r6 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L170 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop ; not filled. lw r4,(r4) sw (r29),r4 jal _findpid nop ; not filled. sw 20(r3),r1 addi r29,r29,#8 L170: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockAcquire .align 2 .proc _LockHandleAcquire .global _LockHandleAcquire _LockHandleAcquire: ; Function 'LockHandleAcquire'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) sleui r1,r2,#63 beqz r1,L181 nop ; not filled. slli r1,r2,#0x3 sub r1,r1,r2 slli r1,r1,#0x2 lhi r6,((_locks)>>16)&0xffff addui r6,r6,(_locks)&0xffff add r3,r1,r6 lw r1,24(r3) snei r1,r1,#0 beqz r1,L181 nop ; not filled. addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r4,((_currentPCB)>>16)&0xffff addui r4,r4,(_currentPCB)&0xffff lw r6,(r4) sw (r29),r6 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L185 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop ; not filled. lw r4,(r4) sw (r29),r4 jal _findpid nop ; not filled. sw 20(r3),r1 addi r29,r29,#8 L185: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L188 nop ; not filled. L181: addi r1,r0,#1 L188: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockHandleAcquire .align 2 .proc _LockRelease .global _LockRelease _LockRelease: ; Function 'LockRelease'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r3,(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L195 nop ; not filled. addi r5,r0,#-1 sw 20(r3),r5 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 L195: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockRelease .align 2 .proc _LockHandleRelease .global _LockHandleRelease _LockHandleRelease: ; Function 'LockHandleRelease'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) sleui r1,r2,#63 beqz r1,L206 nop ; not filled. slli r1,r2,#0x3 sub r1,r1,r2 slli r1,r1,#0x2 lhi r5,((_locks)>>16)&0xffff addui r5,r5,(_locks)&0xffff add r3,r1,r5 lw r1,24(r3) snei r1,r1,#0 beqz r1,L206 nop ; not filled. addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L210 nop ; not filled. addi r5,r0,#-1 sw 20(r3),r5 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 L210: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L213 nop ; not filled. L206: addi r1,r0,#1 L213: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _LockHandleRelease .align 2 .proc _CondInit .global _CondInit _CondInit: ; Function 'CondInit'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) lw r3,4(r30) addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop ; not filled. addi r5,r0,#0 sw 16(r2),r5 addi r29,r29,#8 sw (r2),r3 sw 24(r2),r5 addi r5,r0,#1 sw 28(r2),r5 addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondInit .align 2 .proc _CondCreate .global _CondCreate _CondCreate: ; Function 'CondCreate'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r3,(r30) sgtui r1,r3,#64 bnez r1,L233 nop ; not filled. slli r1,r3,#0x3 sub r1,r1,r3 slli r1,r1,#0x2 lhi r6,((_locks)>>16)&0xffff addui r6,r6,(_locks)&0xffff add r1,r1,r6 lw r1,24(r1) snei r1,r1,#1 beqz r1,L224 nop ; not filled. j L233 nop ; not filled. L239: addi r6,r0,#1 sw 28(r2),r6 j L227 nop ; not filled. L224: addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r5,r0,#0 lhi r2,((_conds)>>16)&0xffff addui r2,r2,(_conds)&0xffff L229: lw r1,28(r2) snei r1,r1,#0 beqz r1,L239 nop ; not filled. addi r2,r2,#32 addi r5,r5,#1 slei r1,r5,#31 bnez r1,L229 nop ; not filled. L227: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 seqi r1,r5,#32 bnez r1,L233 nop ; not filled. slli r2,r5,#0x5 lhi r6,((_conds)>>16)&0xffff addui r6,r6,(_conds)&0xffff add r2,r2,r6 slli r1,r3,#0x3 sub r1,r1,r3 slli r1,r1,#0x2 lhi r6,((_locks)>>16)&0xffff addui r6,r6,(_locks)&0xffff add r3,r1,r6 addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r1,r2,#4 addi r29,r29,#-8 sw (r29),r1 jal _QueueInit nop ; not filled. addi r6,r0,#0 sw 16(r2),r6 addi r29,r29,#8 sw (r2),r3 sw 24(r2),r6 addi r6,r0,#1 sw 28(r2),r6 addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 add r1,r0,r5 j L238 nop ; not filled. L233: addi r1,r0,#-1 L238: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondCreate .align 2 .proc _CondWait .global _CondWait _CondWait: ; Function 'CondWait'; 0 bytes of locals, 7 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#40 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 sw 20(r29),r7 sw 24(r29),r8 lw r4,(r30) addi r29,r29,#-8 addi r8,r0,#15 sw (r29),r8 jal _SetIntrs nop ; not filled. add r7,r0,r1 addi r29,r29,#8 lw r1,24(r4) addi r1,r1,#1 sw 24(r4),r1 lw r3,(r4) addi r29,r29,#-8 sw (r29),r8 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lhi r6,((_currentPCB)>>16)&0xffff addui r6,r6,(_currentPCB)&0xffff lw r8,(r6) sw (r29),r8 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L244 nop ; not filled. addi r8,r0,#-1 sw 20(r3),r8 addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 L244: addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 addi r1,r4,#4 sw (r29),r1 jal _SemWait nop ; not filled. lw r3,(r4) addi r29,r29,#8 addi r29,r29,#-8 addi r8,r0,#15 sw (r29),r8 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 addi r29,r29,#-8 lw r8,(r6) sw (r29),r8 jal _findpid nop ; not filled. lw r2,20(r3) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L248 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _SemWait nop ; not filled. lw r6,(r6) sw (r29),r6 jal _findpid nop ; not filled. sw 20(r3),r1 addi r29,r29,#8 L248: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r29,r29,#-8 sw (r29),r7 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r7,20(r29) lw r8,24(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondWait .align 2 .proc _CondHandleWait .global _CondHandleWait _CondHandleWait: ; Function 'CondHandleWait'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) sleui r1,r2,#31 beqz r1,L256 nop ; not filled. slli r1,r2,#0x5 lhi r4,((_conds)>>16)&0xffff addui r4,r4,(_conds)&0xffff add r3,r1,r4 lw r1,28(r3) snei r1,r1,#0 beqz r1,L257 nop ; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r2) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L257 nop ; not filled. addi r29,r29,#-8 sw (r29),r3 jal _CondWait nop ; not filled. addi r1,r0,#0 addi r29,r29,#8 j L255 nop ; not filled. L257: addi r1,r0,#1 j L255 nop ; not filled. L256: addi r1,r0,#1 L255: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleWait .align 2 .proc _CondSignal .global _CondSignal _CondSignal: ; Function 'CondSignal'; 0 bytes of locals, 3 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 lw r2,(r30) addi r29,r29,#-8 addi r4,r0,#15 sw (r29),r4 jal _SetIntrs nop ; not filled. add r3,r0,r1 addi r29,r29,#8 lw r31,24(r2) snei r1,r31,#0 beqz r1,L266 nop ; not filled. addi r1,r31,#-1 sw 24(r2),r1 addi r29,r29,#-8 addi r1,r2,#4 sw (r29),r1 jal _SemSignal nop ; not filled. addi r29,r29,#8 L266: addi r29,r29,#-8 sw (r29),r3 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondSignal .align 2 .proc _CondHandleSignal .global _CondHandleSignal _CondHandleSignal: ; Function 'CondHandleSignal'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#24 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 lw r2,(r30) sleui r1,r2,#31 beqz r1,L277 nop ; not filled. slli r1,r2,#0x5 lhi r5,((_conds)>>16)&0xffff addui r5,r5,(_conds)&0xffff add r3,r1,r5 lw r1,28(r3) snei r1,r1,#0 beqz r1,L277 nop ; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r2) addi r29,r29,#8 seq r1,r2,r1 beqz r1,L277 nop ; not filled. addi r29,r29,#-8 addi r5,r0,#15 sw (r29),r5 jal _SetIntrs nop ; not filled. add r4,r0,r1 addi r29,r29,#8 lw r2,24(r3) snei r1,r2,#0 beqz r1,L282 nop ; not filled. addi r1,r2,#-1 sw 24(r3),r1 addi r29,r29,#-8 addi r1,r3,#4 sw (r29),r1 jal _SemSignal nop ; not filled. addi r29,r29,#8 L282: addi r29,r29,#-8 sw (r29),r4 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L284 nop ; not filled. L277: addi r1,r0,#1 L284: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleSignal .align 2 .proc _CondBroadcast .global _CondBroadcast _CondBroadcast: ; Function 'CondBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r4,(r30) addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r2,r0,#0 lw r1,24(r4) sltu r1,r2,r1 beqz r1,L296 nop ; not filled. addi r3,r4,#4 L298: addi r29,r29,#-8 sw (r29),r3 jal _SemSignal nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 lw r1,24(r4) sltu r1,r2,r1 bnez r1,L298 nop ; not filled. L296: addi r6,r0,#0 sw 24(r4),r6 addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondBroadcast .align 2 .proc _CondHandleBroadcast .global _CondHandleBroadcast _CondHandleBroadcast: ; Function 'CondHandleBroadcast'; 0 bytes of locals, 5 regs to save. sw -4(r29),r30 ; push fp add r30,r0,r29 ; fp = sp sw -8(r29),r31 ; push ret addr subui r29,r29,#32 ; alloc local storage sw 0(r29),r2 sw 4(r29),r3 sw 8(r29),r4 sw 12(r29),r5 sw 16(r29),r6 lw r2,(r30) sleui r1,r2,#31 beqz r1,L302 nop ; not filled. slli r1,r2,#0x5 lhi r6,((_conds)>>16)&0xffff addui r6,r6,(_conds)&0xffff add r3,r1,r6 lw r1,28(r3) snei r1,r1,#0 beqz r1,L302 nop ; not filled. lw r2,(r3) addi r29,r29,#-8 lhi r1,((_currentPCB)>>16)&0xffff addui r1,r1,(_currentPCB)&0xffff lw r1,(r1) sw (r29),r1 jal _findpid nop ; not filled. lw r2,20(r2) addi r29,r29,#8 sne r1,r2,r1 beqz r1,L302 nop ; not filled. addi r29,r29,#-8 addi r6,r0,#15 sw (r29),r6 jal _SetIntrs nop ; not filled. add r5,r0,r1 addi r29,r29,#8 addi r2,r0,#0 lw r1,24(r3) sltu r1,r2,r1 beqz r1,L308 nop ; not filled. addi r4,r3,#4 L310: addi r29,r29,#-8 sw (r29),r4 jal _SemSignal nop ; not filled. addi r29,r29,#8 addi r2,r2,#1 lw r1,24(r3) sltu r1,r2,r1 bnez r1,L310 nop ; not filled. L308: addi r6,r0,#0 sw 24(r3),r6 addi r29,r29,#-8 sw (r29),r5 jal _SetIntrs nop ; not filled. addi r29,r29,#8 addi r1,r0,#0 j L313 nop ; not filled. L302: addi r1,r0,#1 L313: lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r6,16(r29) lw r31,-8(r30) add r29,r0,r30 lw r30,-4(r30) jr r31 nop .endproc _CondHandleBroadcast .data .align 2 _sems: .space 1280 .align 2 _locks: .space 1792 .align 2 _conds: .space 1024

home/bshapir/cs314/project3/src/userprog.c

#include "lab2-api.h" //---------------------------------------------------------------------------- // You are free to modify this file (and other userprogs) to test your solution // Understand the scheduling algorithm well before you hack or you'll get nowhere. //---------------------------------------------------------------------------- main (int argc, char *argv[]) { int number, i,j,offset; uint32 handle; sem_t semaphore; char num_str[10], semaphore_str[10]; switch(argc) { case 2: number = dstrtol(argv[1], NULL, 10); //Printf("Setting number = %d\n", number); semaphore = sem_create(1); ditoa(semaphore, semaphore_str); //Convert the semaphore to a string for(i=0; i<number; i++) { ditoa(i, num_str); process_create(i,0,"userprog.dlx.obj", num_str,semaphore_str,NULL); } break; case 3: offset = dstrtol(argv[1], NULL, 10); //Get semaphore semaphore = dstrtol(argv[2], NULL, 10); //Get semaphore for(i=0;i<100;i++) { sem_wait(semaphore); for(j=0;j<50000;j++); Printf("%c%d\n",'A'+offset,i); sem_signal(semaphore); } break; default: Printf("Usage: "); Printf(argv[0]); Printf(" number\n"); Printf("argc = %d\n", argc); exit(); } }

home/bshapir/cs314/project3/src/memory.h

// // memory.h // // Definitions for dealing with memory. // // // $Id: memory.h,v 1.1 2000/09/20 01:50:19 elm Exp elm $ #ifndef _memory_h_ #define _memory_h_ // We can read this address in I/O space to figure out how much memory // is available on the system. #define DLX_MEMSIZE_ADDRESS 0xffff0000 // We currently support 64 KB pages. This is done as 64 KB pages in // the level 1 page table and no level 2 page table // These two constants should be set as follows: // L1_PAGE_SIZE_BITS -> amount mapped by a single entry in the L1 table // L2_PAGE_SIZE_BITS -> amount mapped by a single entry in the L2 table // // For example, if you have 4KB pages and each L2 page table has 512 entries, // you'd have 2MB per entry in a L1 table. That would mean L1_BITS=21 and // L2_BITS=12. #define MEMORY_L1_PAGE_SIZE_BITS 16 // each entry in L1 is 64 KB #define MEMORY_L2_PAGE_SIZE_BITS 16 // if L1 == L2, there's no L2 tables #define MEMORY_PAGE_SIZE (1 << MEMORY_L2_PAGE_SIZE_BITS) #define MEMORY_PAGE_MASK (MEMORY_PAGE_SIZE-1) #define MEMORY_MAX_PAGES 0x10000 // The PTE is valid if this bit is set in the PTE! #define MEMORY_PTE_VALID 0x00000001 // The page is dirty if this bit is set in the PTE #define MEMORY_PTE_DIRTY 0x00000002 // The page has been referenced if this bit is set in the PTE #define MEMORY_PTE_REFERENCED 0x00000004 #define MEMORY_PTE_MASK (~(MEMORY_PTE_VALID|MEMORY_PTE_DIRTY|MEMORY_PTE_REFERENCED)) extern int lastosaddress; // Defined in an assembly file extern int MemoryGetSize (); extern int MemoryAllocPage (); extern void MemoryFreePage (uint32 page); extern uint32 MemorySetupPte (uint32 page); extern void MemoryFreePte (uint32 pte); extern uint32 MemoryPteToPage (); extern void MemoryModuleInit (); extern uint32 MemoryTranslateUserToSystem (); extern int MemoryCopySystemToUser (); extern int MemoryCopyUserToSystem (); #endif // _memory_h_