123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- ENTRY (memset)
- .set noreorder
- slti ta1, a2, 16
- bne ta1, zero, L(last16)
- move v0, a0
- beq a1, zero, L(ueven)
- andi a1, 0xff
- dsll ta0, a1, 8
- or a1, ta0
- dsll ta0, a1, 16
- or a1, ta0
- dsll ta0, a1, 32
- or a1, ta0
- L(ueven):
- PTR_SUBU ta0, zero, a0
- andi ta0, 0x7
- beq ta0, zero, L(chkw)
- PTR_SUBU a2, ta0
- SDHI a1, 0(a0)
- PTR_ADDU a0, ta0
- L(chkw):
- andi ta0, a2, 0xf
- beq ta0, a2, L(chkl)
- PTR_SUBU a3, a2, ta0
- PTR_ADDU a3, a0
- move a2, ta0
- L(loopw):
- PTR_ADDIU a0, 16
- sd a1, -16(a0)
- bne a0, a3, L(loopw)
- sd a1, -8(a0)
- L(chkl):
- andi ta0, a2, 0x8
- beq ta0, zero, L(last16)
- PTR_SUBU a2, ta0
- sd a1, 0(a0)
- PTR_ADDIU a0, 8
- L(last16):
- blez a2, L(exit)
- PTR_ADDU a3, a2, a0
- L(lst16l):
- PTR_ADDIU a0, 1
- bne a0, a3, L(lst16l)
- sb a1, -1(a0)
- L(exit):
- j ra
- nop
- .set reorder
- END (memset)
- 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_def(memset)
|