Add armv4t assembly macros for division by 10^x, x=[1,9]
This commit is contained in:
parent
f41a10939c
commit
b00a52ea9b
@ -15,6 +15,54 @@
|
|||||||
lsrs \rd, $3
|
lsrs \rd, $3
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
.macro udiv100 rd, rx, rt
|
||||||
|
ldr \rt, =0x51EB851F
|
||||||
|
umull \rt, \rd, \rx, \rt
|
||||||
|
lsrs \rd, $5
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro udiv1000 rd, rx, rt
|
||||||
|
ldr \rt, =0x10624DD3
|
||||||
|
umull \rt, \rd, \rx, \rt
|
||||||
|
lsrs \rd, $6
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro udiv10000 rd, rx, rt
|
||||||
|
ldr \rt, =0xD1B71759
|
||||||
|
umull \rt, \rd, \rx, \rt
|
||||||
|
lsrs \rd, $13
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro udiv100000 rd, rx, rt
|
||||||
|
ldr \rt, =0x29f17
|
||||||
|
umull \rt, \rd, \rx, \rt
|
||||||
|
lsrs \rd, $2
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro udiv1000000 rd, rx, rt
|
||||||
|
ldr \rt, =0x431BDE83
|
||||||
|
umull \rt, \rd, \rx, \rt
|
||||||
|
lsrs \rd, $18
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro udiv10000000 rd, rx, rt
|
||||||
|
ldr \rt, =0x6B5FCA6B
|
||||||
|
umull \rt, \rd, \rx, \rt
|
||||||
|
lsrs \rd, $22
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro udiv100000000 rd, rx, rt
|
||||||
|
ldr \rt, =0x55E63B89
|
||||||
|
umull \rt, \rd, \rx, \rt
|
||||||
|
lsrs \rd, $25
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro udiv1000000000 rd, rx, rt
|
||||||
|
ldr \rt, =0x44b82fa1
|
||||||
|
umull \rt, \rd, \rx, \rt
|
||||||
|
lsrs \rd, $28
|
||||||
|
.endm
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Calculates rx % 10 and places the result in rd. Clobbers the value of
|
* Calculates rx % 10 and places the result in rd. Clobbers the value of
|
||||||
* temporary register rt
|
* temporary register rt
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user