16bit read/write little endian
This commit is contained in:
parent
9d1d6a34d2
commit
0643631aa1
2 changed files with 37 additions and 0 deletions
|
@ -117,3 +117,36 @@ clear_bss:
|
|||
3: /* jumping to board_init */
|
||||
brai board_init
|
||||
1: bri 1b
|
||||
|
||||
/*
|
||||
* Read 16bit little endian
|
||||
*/
|
||||
.text
|
||||
.global in16
|
||||
.ent in16
|
||||
.align 2
|
||||
in16: lhu r3, r0, r5
|
||||
bslli r4, r3, 8
|
||||
bsrli r3, r3, 8
|
||||
andi r4, r4, 0xffff
|
||||
or r3, r3, r4
|
||||
rtsd r15, 8
|
||||
sext16 r3, r3
|
||||
.end in16
|
||||
|
||||
/*
|
||||
* Write 16bit little endian
|
||||
* first parameter(r5) - address, second(r6) - short value
|
||||
*/
|
||||
.text
|
||||
.global out16
|
||||
.ent out16
|
||||
.align 2
|
||||
out16: bslli r3, r6, 8
|
||||
bsrli r6, r6, 8
|
||||
andi r3, r3, 0xffff
|
||||
or r3, r3, r6
|
||||
sh r3, r0, r5
|
||||
rtsd r15, 8
|
||||
or r0, r0, r0
|
||||
.end out16
|
||||
|
|
|
@ -402,6 +402,10 @@ void ppcDcbi(unsigned long value);
|
|||
void ppcSync(void);
|
||||
void ppcDcbz(unsigned long value);
|
||||
#endif
|
||||
#if defined (CONFIG_MICROBLAZE)
|
||||
unsigned short in16(unsigned int);
|
||||
void out16(unsigned int, unsigned short value);
|
||||
#endif
|
||||
|
||||
#if defined (CONFIG_MPC83XX)
|
||||
void ppcDWload(unsigned int *addr, unsigned int *ret);
|
||||
|
|
Loading…
Reference in a new issue