; ; Bzero ; ; Aaron Sawdey 1996; released to the Public Domain. ; .text .proc _bzero .global _bzero _bzero: ; Function 'bzero'; 0 bytes of locals, 4 regs to save. sw -4(r29),r30 ; push sp 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,4(r30) lw r4,(r30) andi r2,r4,#0x3 addi r1,r0,#4 sub r1,r1,r2 j LbcopyL76 ;; filled delay slot: andi r2,r1,#0x3 LbcopyL67: add r1,r0,r3 sgti r1,r1,#0 beqz r1,LbcopyL64 ;; filled delay slot: addi r3,r3,#-1 addi r5,r0,(#0x0)&0xff sb (r4),r5 addi r4,r4,#1 LbcopyL76: add r1,r0,r2 sgti r1,r1,#0 bnez r1,LbcopyL67 ;; filled delay slot: addi r2,r2,#-1 LbcopyL64: sgti r1,r3,#3 beqz r1,LbcopyL69 ;; filled delay slot: add r2,r0,r4 addi r5,r0,#0 LbcopyL78: sw (r2),r5 addi r3,r3,#-4 sgti r1,r3,#3 bnez r1,LbcopyL78 ;; filled delay slot: addi r2,r2,#4 LbcopyL69: j LbcopyL77 ;; filled delay slot: add r4,r0,r2 LbcopyL74: addi r5,r0,(#0x0)&0xff sb (r4),r5 addi r4,r4,#1 LbcopyL77: add r1,r0,r3 sgti r1,r1,#0 bnez r1,LbcopyL74 ;; filled delay slot: addi r3,r3,#-1 lw r2,0(r29) lw r3,4(r29) lw r4,8(r29) lw r5,12(r29) lw r31,-8(r30) add r29,r0,r30 jr r31 lw r30,-4(r30) .endproc _bzero