123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- ENTRY (memset)
- .set noreorder
- slti t1, a2, 8
- bne t1, zero, L(last8)
- move v0, a0
- beq a1, zero, L(ueven)
- andi a1, 0xff
- sll t0, a1, 8
- or a1, t0
- sll t0, a1, 16
- or a1, t0
- L(ueven):
- subu t0, zero, a0
- andi t0, 0x3
- beq t0, zero, L(chkw)
- subu a2, t0
- SWHI a1, 0(a0)
- addu a0, t0
- L(chkw):
- andi t0, a2, 0x7
- beq t0, a2, L(chkl)
- subu a3, a2, t0
- addu a3, a0
- move a2, t0
- L(loopw):
- addiu a0, 8
- sw a1, -8(a0)
- bne a0, a3, L(loopw)
- sw a1, -4(a0)
- L(chkl):
- andi t0, a2, 0x4
- beq t0, zero, L(last8)
- subu a2, t0
- sw a1, 0(a0)
- addiu a0, 4
- L(last8):
- blez a2, L(exit)
- addu a3, a2, a0
- L(lst8l):
- addiu a0, 1
- bne a0, a3, L(lst8l)
- sb a1, -1(a0)
- L(exit):
- j ra
- nop
- .set reorder
- END (memset)
- libc_hidden_builtin_def (memset)
|