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