Add armv4t assembly macros for division by 10^x, x=[1,9]
This commit is contained in:
parent
cf77d1041d
commit
bd1efb0bf9
@ -15,6 +15,54 @@
|
||||
lsrs \rd, $3
|
||||
.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
|
||||
* temporary register rt
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user