Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
This commit is contained in:
61
arch/h8300/lib/memset.S
Normal file
61
arch/h8300/lib/memset.S
Normal file
@@ -0,0 +1,61 @@
|
||||
/* memset.S */
|
||||
|
||||
#include <asm/linkage.h>
|
||||
|
||||
#if defined(__H8300H__)
|
||||
.h8300h
|
||||
#endif
|
||||
#if defined(__H8300S__)
|
||||
.h8300s
|
||||
#endif
|
||||
.text
|
||||
|
||||
.global SYMBOL_NAME(memset)
|
||||
|
||||
;;void *memset(*ptr, int c, size_t count)
|
||||
;; ptr = er0
|
||||
;; c = er1(r1l)
|
||||
;; count = er2
|
||||
SYMBOL_NAME_LABEL(memset)
|
||||
btst #0,r0l
|
||||
beq 2f
|
||||
|
||||
;; odd address
|
||||
1:
|
||||
mov.b r1l,@er0
|
||||
adds #1,er0
|
||||
dec.l #1,er2
|
||||
beq 6f
|
||||
|
||||
;; even address
|
||||
2:
|
||||
mov.l er2,er3
|
||||
cmp.l #4,er2
|
||||
blo 4f
|
||||
;; count>=4 -> count/4
|
||||
#if defined(__H8300H__)
|
||||
shlr.l er2
|
||||
shlr.l er2
|
||||
#endif
|
||||
#if defined(__H8300S__)
|
||||
shlr.l #2,er2
|
||||
#endif
|
||||
;; byte -> long
|
||||
mov.b r1l,r1h
|
||||
mov.w r1,e1
|
||||
3:
|
||||
mov.l er1,@er0
|
||||
adds #4,er0
|
||||
dec.l #1,er2
|
||||
bne 3b
|
||||
4:
|
||||
;; count % 4
|
||||
and.b #3,r3l
|
||||
beq 6f
|
||||
5:
|
||||
mov.b r1l,@er0
|
||||
adds #1,er0
|
||||
dec.b r3l
|
||||
bne 5b
|
||||
6:
|
||||
rts
|
Reference in New Issue
Block a user