mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-09 13:12:37 -05:00
Add ARMv4 16-bit(set, mod, clr) operations used on DM320.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29221 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
50c547c640
commit
8e8f700842
3 changed files with 67 additions and 0 deletions
|
|
@ -75,3 +75,61 @@ bitclr32:
|
|||
msr cpsr_c, r12
|
||||
bx lr
|
||||
.size bitclr32, .-bitclr32
|
||||
|
||||
/***************************************************************************
|
||||
* void bitmod16(volatile uint16_t *addr, uint16_t bits, uint16_t mask)
|
||||
*/
|
||||
.section .text, "ax", %progbits
|
||||
.align 2
|
||||
.global bitmod16
|
||||
.type bitmod16, %function
|
||||
bitmod16:
|
||||
mrs r12, cpsr
|
||||
orr r3, r12, #0xc0
|
||||
msr cpsr_c, r3
|
||||
ldrh r3, [r0]
|
||||
and r1, r1, r2 @ Only allow mod of bits in 'mask'
|
||||
bic r3, r3, r2 @ Clear mask bits
|
||||
orr r3, r3, r1 @ Set according to 'bits'
|
||||
strh r3, [r0]
|
||||
msr cpsr_c, r12
|
||||
bx lr
|
||||
.size bitmod16, .-bitmod16
|
||||
|
||||
/***************************************************************************
|
||||
* void bitset16(volatile uint16_t *addr, uint16_t mask)
|
||||
*/
|
||||
.section .text, "ax", %progbits
|
||||
.align 2
|
||||
.global bitset16
|
||||
.type bitset16, %function
|
||||
bitset16:
|
||||
mrs r12, cpsr
|
||||
orr r2, r12, #0xc0
|
||||
msr cpsr_c, r2
|
||||
ldrh r2, [r0]
|
||||
orr r2, r2, r1
|
||||
strh r2, [r0]
|
||||
msr cpsr_c, r12
|
||||
bx lr
|
||||
.size bitset16, .-bitset16
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
* void bitclr16(volatile uint16_t *addr, uint16_t mask)
|
||||
*/
|
||||
.section .text, "ax", %progbits
|
||||
.align 2
|
||||
.global bitclr16
|
||||
.type bitclr16, %function
|
||||
bitclr16:
|
||||
mrs r12, cpsr
|
||||
orr r2, r12, #0xc0
|
||||
msr cpsr_c, r2
|
||||
ldrh r2, [r0]
|
||||
bic r2, r2, r1
|
||||
strh r2, [r0]
|
||||
msr cpsr_c, r12
|
||||
bx lr
|
||||
.size bitclr16, .-bitclr16
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue