Module Name: src
Committed By: mrg
Date: Fri Nov 29 08:02:28 UTC 2013
Modified Files:
src/external/lgpl3/gmp/dist/mpn/arm: aorscnd_n.asm aorslsh1_n.asm
bdiv_dbm1c.asm com.asm copyd.asm copyi.asm logops_n.asm lshift.asm
lshiftc.asm mod_34lsub1.asm mode1o.asm rsh1aors_n.asm rshift.asm
udiv.asm
src/external/lgpl3/gmp/dist/mpn/generic: get_d.c
Log Message:
port forward our changes:
- allow working on thumb-missing platforms
- fix some minor issues
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 \
src/external/lgpl3/gmp/dist/mpn/arm/aorscnd_n.asm \
src/external/lgpl3/gmp/dist/mpn/arm/aorslsh1_n.asm \
src/external/lgpl3/gmp/dist/mpn/arm/bdiv_dbm1c.asm \
src/external/lgpl3/gmp/dist/mpn/arm/com.asm \
src/external/lgpl3/gmp/dist/mpn/arm/logops_n.asm \
src/external/lgpl3/gmp/dist/mpn/arm/lshift.asm \
src/external/lgpl3/gmp/dist/mpn/arm/lshiftc.asm \
src/external/lgpl3/gmp/dist/mpn/arm/mod_34lsub1.asm \
src/external/lgpl3/gmp/dist/mpn/arm/mode1o.asm \
src/external/lgpl3/gmp/dist/mpn/arm/rsh1aors_n.asm \
src/external/lgpl3/gmp/dist/mpn/arm/rshift.asm
cvs rdiff -u -r1.1.1.2 -r1.2 src/external/lgpl3/gmp/dist/mpn/arm/copyd.asm \
src/external/lgpl3/gmp/dist/mpn/arm/copyi.asm
cvs rdiff -u -r1.3 -r1.4 src/external/lgpl3/gmp/dist/mpn/arm/udiv.asm
cvs rdiff -u -r1.3 -r1.4 src/external/lgpl3/gmp/dist/mpn/generic/get_d.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/lgpl3/gmp/dist/mpn/arm/aorscnd_n.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/aorscnd_n.asm:1.1.1.1 src/external/lgpl3/gmp/dist/mpn/arm/aorscnd_n.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/aorscnd_n.asm:1.1.1.1 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/aorscnd_n.asm Fri Nov 29 08:02:28 2013
@@ -117,5 +117,8 @@ L(top): ldm vp!, {r4,r5,r6,r7}
L(end): RETVAL
pop {r4-r11}
- bx r14
+ifdef(`ARM_THUMB_MODE',
+` bx r14
+',` mov pc, r14
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/aorslsh1_n.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/aorslsh1_n.asm:1.1.1.1 src/external/lgpl3/gmp/dist/mpn/arm/aorslsh1_n.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/aorslsh1_n.asm:1.1.1.1 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/aorslsh1_n.asm Fri Nov 29 08:02:28 2013
@@ -151,5 +151,8 @@ L(rt1): mov r14, r12
REVCY(r12)
L(rt0): RETVAL( r14)
pop {r4-r10r11, r14}
- bx r14
+ifdef(`ARM_THUMB_MODE',
+` bx r14
+',` mov pc, r14
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/bdiv_dbm1c.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/bdiv_dbm1c.asm:1.1.1.1 src/external/lgpl3/gmp/dist/mpn/arm/bdiv_dbm1c.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/bdiv_dbm1c.asm:1.1.1.1 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/bdiv_dbm1c.asm Fri Nov 29 08:02:28 2013
@@ -97,5 +97,8 @@ L(wd1): subs r5, r5, r8
str r5, [qp]
sbc r0, r5, r12
pop {r4, r5, r6, r7, r8}
- bx lr
+ifdef(`ARM_THUMB_MODE',
+` bx lr
+',` mov pc, lr
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/com.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/com.asm:1.1.1.1 src/external/lgpl3/gmp/dist/mpn/arm/com.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/com.asm:1.1.1.1 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/com.asm Fri Nov 29 08:02:28 2013
@@ -59,5 +59,9 @@ L(top): ldmia up!, { r3, r8, r9, r12 } C
bne L(top)
ldmfd sp!, { r7, r8, r9 } C restore regs from stack
-L(rtn): bx lr
+L(rtn):
+ifdef(`ARM_THUMB_MODE',
+` bx lr
+',` mov pc, lr
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/logops_n.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/logops_n.asm:1.1.1.1 src/external/lgpl3/gmp/dist/mpn/arm/logops_n.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/logops_n.asm:1.1.1.1 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/logops_n.asm Fri Nov 29 08:02:28 2013
@@ -123,5 +123,8 @@ L(mid): sub n, n, #4
pop { r4, r5, r6, r7 } C popping r8-r10 here strangely fails
L(rtn): pop { r8, r9, r10 }
- bx r14
+ifdef(`ARM_THUMB_MODE',
+` bx r14
+',` mov pc, r14
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/lshift.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/lshift.asm:1.1.1.1 src/external/lgpl3/gmp/dist/mpn/arm/lshift.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/lshift.asm:1.1.1.1 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/lshift.asm Fri Nov 29 08:02:28 2013
@@ -72,5 +72,8 @@ L(end): orr r7, r7, r6, lsr tnc
L(1): str r7, [rp, #-4]
lsr r0, r4, tnc
pop {r4, r6, r7, r8}
- bx r14
+ifdef(`ARM_THUMB_MODE',
+` bx r14
+',` mov pc, r14
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/lshiftc.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/lshiftc.asm:1.1.1.1 src/external/lgpl3/gmp/dist/mpn/arm/lshiftc.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/lshiftc.asm:1.1.1.1 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/lshiftc.asm Fri Nov 29 08:02:28 2013
@@ -79,5 +79,8 @@ L(1): mvn r6, #0
str r7, [rp, #-4]
lsr r0, r4, tnc
pop {r4, r6, r7, r8}
- bx r14
+ifdef(`ARM_THUMB_MODE',
+` bx r14
+',` mov pc, r14
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/mod_34lsub1.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/mod_34lsub1.asm:1.1.1.1 src/external/lgpl3/gmp/dist/mpn/arm/mod_34lsub1.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/mod_34lsub1.asm:1.1.1.1 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/mod_34lsub1.asm Fri Nov 29 08:02:28 2013
@@ -94,7 +94,10 @@ L(sum2):
add r0, r0, r12, lsr #8
pop { r4, r5, r6, r7 }
- bx lr
+ifdef(`ARM_THUMB_MODE',
+` bx lr
+',` mov pc, lr
+')
L(le2): cmn n, #1
bne L(1)
@@ -105,5 +108,8 @@ L(1): ldr r2, [ap]
bic r0, r2, #0xff000000
add r0, r0, r2, lsr #24
pop { r4, r5, r6, r7 }
- bx lr
+ifdef(`ARM_THUMB_MODE',
+` bx lr
+',` mov pc, lr
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/mode1o.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/mode1o.asm:1.1.1.1 src/external/lgpl3/gmp/dist/mpn/arm/mode1o.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/mode1o.asm:1.1.1.1 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/mode1o.asm Fri Nov 29 08:02:28 2013
@@ -68,5 +68,8 @@ L(end): sbcs cy, r5, cy
addcc r0, r0, #1
ldmfd sp!, {r4, r5}
- bx r14
+ifdef(`ARM_THUMB_MODE',
+` bx r14
+',` mov pc, r14
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/rsh1aors_n.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/rsh1aors_n.asm:1.1.1.1 src/external/lgpl3/gmp/dist/mpn/arm/rsh1aors_n.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/rsh1aors_n.asm:1.1.1.1 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/rsh1aors_n.asm Fri Nov 29 08:02:28 2013
@@ -108,5 +108,8 @@ L(e1): RSTCY( r12, r1)
str r4, [rp, #0]
mov r0, r11
pop {r4-r11}
- bx r14
+ifdef(`ARM_THUMB_MODE',
+` bx r14
+',` mov pc, r14
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/rshift.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/rshift.asm:1.1.1.1 src/external/lgpl3/gmp/dist/mpn/arm/rshift.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/rshift.asm:1.1.1.1 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/rshift.asm Fri Nov 29 08:02:28 2013
@@ -70,5 +70,8 @@ L(end): orr r7, r7, r6, lsl tnc
L(1): str r7, [rp], #4
lsl r0, r4, tnc
pop {r4, r6, r7, r8}
- bx r14
+ifdef(`ARM_THUMB_MODE',
+` bx r14
+',` mov pc, r14
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/copyd.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/copyd.asm:1.1.1.2 src/external/lgpl3/gmp/dist/mpn/arm/copyd.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/copyd.asm:1.1.1.2 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/copyd.asm Fri Nov 29 08:02:28 2013
@@ -57,5 +57,9 @@ L(top): ldmda up!, { r3, r8, r9, r12 } C
bne L(top)
ldmfd sp!, { r7, r8, r9 } C restore regs from stack
-L(rtn): bx lr
+L(rtn):
+ifdef(`ARM_THUMB_MODE',
+` bx lr
+',` mov pc, lr
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/copyi.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/copyi.asm:1.1.1.2 src/external/lgpl3/gmp/dist/mpn/arm/copyi.asm:1.2
--- src/external/lgpl3/gmp/dist/mpn/arm/copyi.asm:1.1.1.2 Fri Nov 29 07:49:48 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/copyi.asm Fri Nov 29 08:02:28 2013
@@ -52,5 +52,9 @@ L(top): ldmia up!, { r3, r8, r9, r12 } C
bne L(top)
ldmfd sp!, { r7, r8, r9 } C restore regs from stack
-L(rtn): bx lr
+L(rtn):
+ifdef(`ARM_THUMB_MODE',
+` bx lr
+',` mov pc, lr
+')
EPILOGUE()
Index: src/external/lgpl3/gmp/dist/mpn/arm/udiv.asm
diff -u src/external/lgpl3/gmp/dist/mpn/arm/udiv.asm:1.3 src/external/lgpl3/gmp/dist/mpn/arm/udiv.asm:1.4
--- src/external/lgpl3/gmp/dist/mpn/arm/udiv.asm:1.3 Fri Nov 29 07:57:11 2013
+++ src/external/lgpl3/gmp/dist/mpn/arm/udiv.asm Fri Nov 29 08:02:28 2013
@@ -50,7 +50,10 @@ L(oop): divstep(n1,n0,d)
str n1, [rem_ptr] C store remainder
adc r0, n0, n0 C quotient: add last carry from divstep
- bx lr
+ifdef(`ARM_THUMB_MODE',
+` bx lr
+',` mov pc, lr
+')
L(_large_divisor):
stmfd sp!, { r8, lr }
Index: src/external/lgpl3/gmp/dist/mpn/generic/get_d.c
diff -u src/external/lgpl3/gmp/dist/mpn/generic/get_d.c:1.3 src/external/lgpl3/gmp/dist/mpn/generic/get_d.c:1.4
--- src/external/lgpl3/gmp/dist/mpn/generic/get_d.c:1.3 Fri Nov 29 07:57:11 2013
+++ src/external/lgpl3/gmp/dist/mpn/generic/get_d.c Fri Nov 29 08:02:28 2013
@@ -209,7 +209,7 @@ mpn_get_d (mp_srcptr up, mp_size_t size,
x <<= GMP_NAIL_BITS;
mhi |= x >> nbits >> 11;
- mlo = x << GMP_LIMB_BITS - nbits - 11;
+ mlo = x << (GMP_LIMB_BITS - nbits - 11);
nbits = nbits + 11 - GMP_NAIL_BITS;
}
else