port some changes from netbsd gmp and adapt them to the gmp 6.x.
this allows devel/gmp to build on armv4.
This commit is contained in:
parent
f61838cd80
commit
03de68df2c
3 changed files with 341 additions and 15 deletions
|
@ -1,4 +1,4 @@
|
|||
$NetBSD: distinfo,v 1.46 2014/04/18 10:49:01 adam Exp $
|
||||
$NetBSD: distinfo,v 1.47 2015/04/03 07:41:26 mrg Exp $
|
||||
|
||||
SHA1 (gmp-6.0.0a.tar.bz2) = 360802e3541a3da08ab4b55268c80f799939fddc
|
||||
RMD160 (gmp-6.0.0a.tar.bz2) = 2322e21e2042c974dcfaca2da18ae22d43a23ec4
|
||||
|
@ -6,5 +6,5 @@ Size (gmp-6.0.0a.tar.bz2) = 2319400 bytes
|
|||
SHA1 (patch-aa) = dec275cbd5886a70f7cf0def1dedf01e7e4a49e9
|
||||
SHA1 (patch-ab) = 829812822a72a4926ea4cf6e8ffafdcd13a0f76c
|
||||
SHA1 (patch-ac) = 6f7de0a285bec2c2645479d3090dc0276580f3d8
|
||||
SHA1 (patch-mpn_arm_invert__limb.asm) = 0d4c4af299b846834bb13277844df364824d3a09
|
||||
SHA1 (patch-mpn-arm-netbsd.diff) = 00ead78b6966e9863b4acacbaeced9a67815f90b
|
||||
SHA1 (patch-mpn_x86__64_k8_redc_1.asm) = 896a8fcfe9f7370f5628403b93e10a5f52e38944
|
||||
|
|
339
devel/gmp/patches/patch-mpn-arm-netbsd.diff
Normal file
339
devel/gmp/patches/patch-mpn-arm-netbsd.diff
Normal file
|
@ -0,0 +1,339 @@
|
|||
Index: mpn/arm/aorslsh1_n.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/aorslsh1_n.asm,v
|
||||
retrieving revision 1.1.1.1
|
||||
retrieving revision 1.2
|
||||
diff -p -u -r1.1.1.1 -r1.2
|
||||
--- mpn/arm/aorslsh1_n.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1
|
||||
+++ mpn/arm/aorslsh1_n.asm 29 Nov 2013 08:02:28 -0000 1.2
|
||||
@@ -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: mpn/arm/bdiv_dbm1c.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/bdiv_dbm1c.asm,v
|
||||
retrieving revision 1.1.1.1
|
||||
retrieving revision 1.2
|
||||
diff -p -u -r1.1.1.1 -r1.2
|
||||
--- mpn/arm/bdiv_dbm1c.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1
|
||||
+++ mpn/arm/bdiv_dbm1c.asm 29 Nov 2013 08:02:28 -0000 1.2
|
||||
@@ -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: mpn/arm/com.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/com.asm,v
|
||||
retrieving revision 1.1.1.1
|
||||
retrieving revision 1.2
|
||||
diff -p -u -r1.1.1.1 -r1.2
|
||||
--- mpn/arm/com.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1
|
||||
+++ mpn/arm/com.asm 29 Nov 2013 08:02:28 -0000 1.2
|
||||
@@ -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: mpn/arm/copyd.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/copyd.asm,v
|
||||
retrieving revision 1.1.1.2
|
||||
retrieving revision 1.2
|
||||
diff -p -u -r1.1.1.2 -r1.2
|
||||
--- mpn/arm/copyd.asm 29 Nov 2013 07:49:48 -0000 1.1.1.2
|
||||
+++ mpn/arm/copyd.asm 29 Nov 2013 08:02:28 -0000 1.2
|
||||
@@ -80,5 +80,9 @@
|
||||
|
||||
L(end): stmda rp, { r3,r4,r5,r12 }
|
||||
pop { r4-r5 }
|
||||
-L(rtn): bx lr
|
||||
+L(rtn):
|
||||
+ifdef(`ARM_THUMB_MODE',
|
||||
+` bx lr
|
||||
+',` mov pc, lr
|
||||
+')
|
||||
EPILOGUE()
|
||||
Index: mpn/arm/copyi.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/copyi.asm,v
|
||||
retrieving revision 1.1.1.2
|
||||
retrieving revision 1.2
|
||||
diff -p -u -r1.1.1.2 -r1.2
|
||||
--- mpn/arm/copyi.asm 29 Nov 2013 07:49:48 -0000 1.1.1.2
|
||||
+++ mpn/arm/copyi.asm 29 Nov 2013 08:02:28 -0000 1.2
|
||||
@@ -75,5 +75,9 @@
|
||||
|
||||
L(end): stm rp, { r3,r4,r5,r12 }
|
||||
pop { r4-r5 }
|
||||
-L(rtn): bx lr
|
||||
+L(rtn):
|
||||
+ifdef(`ARM_THUMB_MODE',
|
||||
+` bx lr
|
||||
+',` mov pc, lr
|
||||
+')
|
||||
EPILOGUE()
|
||||
Index: mpn/arm/invert_limb.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/invert_limb.asm,v
|
||||
retrieving revision 1.1.1.2
|
||||
retrieving revision 1.3
|
||||
diff -p -u -r1.1.1.2 -r1.3
|
||||
--- mpn/arm/invert_limb.asm 29 Nov 2013 07:49:48 -0000 1.1.1.2
|
||||
+++ mpn/arm/invert_limb.asm 29 Nov 2013 07:57:11 -0000 1.3
|
||||
@@ -41,7 +41,10 @@ PROLOGUE(mpn_invert_limb)
|
||||
adds r1, r12, r0
|
||||
adc r3, r3, r0
|
||||
rsb r0, r3, r2
|
||||
- bx lr
|
||||
+ifdef(`ARM_THUMB_MODE',
|
||||
+` bx lr
|
||||
+',` mov pc, lr
|
||||
+')
|
||||
EPILOGUE()
|
||||
|
||||
.section .rodata
|
||||
Index: mpn/arm/logops_n.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/logops_n.asm,v
|
||||
retrieving revision 1.1.1.1
|
||||
retrieving revision 1.2
|
||||
diff -p -u -r1.1.1.1 -r1.2
|
||||
--- mpn/arm/logops_n.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1
|
||||
+++ mpn/arm/logops_n.asm 29 Nov 2013 08:02:28 -0000 1.2
|
||||
@@ -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: mpn/arm/lshift.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/lshift.asm,v
|
||||
retrieving revision 1.1.1.1
|
||||
retrieving revision 1.2
|
||||
diff -p -u -r1.1.1.1 -r1.2
|
||||
--- mpn/arm/lshift.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1
|
||||
+++ mpn/arm/lshift.asm 29 Nov 2013 08:02:28 -0000 1.2
|
||||
@@ -84,5 +84,8 @@
|
||||
L(1): str r7, [rp, #-4]
|
||||
mov r0, r4, lsr tnc
|
||||
pop {r4, r6, r7, r8}
|
||||
- bx r14
|
||||
+ifdef(`ARM_THUMB_MODE',
|
||||
+` bx r14
|
||||
+',` mov pc, r14
|
||||
+')
|
||||
EPILOGUE()
|
||||
Index: mpn/arm/lshiftc.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/lshiftc.asm,v
|
||||
retrieving revision 1.1.1.1
|
||||
retrieving revision 1.2
|
||||
diff -p -u -r1.1.1.1 -r1.2
|
||||
--- mpn/arm/lshiftc.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1
|
||||
+++ mpn/arm/lshiftc.asm 29 Nov 2013 08:02:28 -0000 1.2
|
||||
@@ -91,5 +91,8 @@
|
||||
str r7, [rp, #-4]
|
||||
mov r0, r4, lsr tnc
|
||||
pop {r4, r6, r7, r8}
|
||||
- bx r14
|
||||
+ifdef(`ARM_THUMB_MODE',
|
||||
+` bx r14
|
||||
+',` mov pc, r14
|
||||
+')
|
||||
EPILOGUE()
|
||||
Index: mpn/arm/mod_34lsub1.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/mod_34lsub1.asm,v
|
||||
retrieving revision 1.1.1.1
|
||||
retrieving revision 1.2
|
||||
diff -p -u -r1.1.1.1 -r1.2
|
||||
--- mpn/arm/mod_34lsub1.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1
|
||||
+++ mpn/arm/mod_34lsub1.asm 29 Nov 2013 08:02:28 -0000 1.2
|
||||
@@ -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: mpn/arm/mode1o.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/mode1o.asm,v
|
||||
retrieving revision 1.1.1.1
|
||||
retrieving revision 1.2
|
||||
diff -p -u -r1.1.1.1 -r1.2
|
||||
--- mpn/arm/mode1o.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1
|
||||
+++ mpn/arm/mode1o.asm 29 Nov 2013 08:02:28 -0000 1.2
|
||||
@@ -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: mpn/arm/rsh1aors_n.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/rsh1aors_n.asm,v
|
||||
retrieving revision 1.1.1.1
|
||||
retrieving revision 1.2
|
||||
diff -p -u -r1.1.1.1 -r1.2
|
||||
--- mpn/arm/rsh1aors_n.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1
|
||||
+++ mpn/arm/rsh1aors_n.asm 29 Nov 2013 08:02:28 -0000 1.2
|
||||
@@ -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: mpn/arm/rshift.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/rshift.asm,v
|
||||
retrieving revision 1.1.1.1
|
||||
retrieving revision 1.2
|
||||
diff -p -u -r1.1.1.1 -r1.2
|
||||
--- mpn/arm/rshift.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1
|
||||
+++ mpn/arm/rshift.asm 29 Nov 2013 08:02:28 -0000 1.2
|
||||
@@ -82,5 +82,8 @@
|
||||
L(1): str r7, [rp]
|
||||
mov r0, r4, lsl tnc
|
||||
pop {r4, r6, r7, r8}
|
||||
- bx r14
|
||||
+ifdef(`ARM_THUMB_MODE',
|
||||
+` bx r14
|
||||
+',` mov pc, r14
|
||||
+')
|
||||
EPILOGUE()
|
||||
Index: mpn/arm/udiv.asm
|
||||
===================================================================
|
||||
RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/udiv.asm,v
|
||||
retrieving revision 1.1.1.2
|
||||
retrieving revision 1.4
|
||||
diff -p -u -r1.1.1.2 -r1.4
|
||||
--- mpn/arm/udiv.asm 29 Nov 2013 07:49:48 -0000 1.1.1.2
|
||||
+++ mpn/arm/udiv.asm 29 Nov 2013 08:02:28 -0000 1.4
|
||||
@@ -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: mpn/arm/cnd_aors_n.asm
|
||||
===================================================================
|
||||
--- mpn/arm/cnd_aors_n.asm.orig 2014-03-25 07:37:55.000000000 -0700
|
||||
+++ mpn/arm/cnd_aors_n.asm 2015-04-01 23:38:37.000000000 -0700
|
||||
@@ -130,5 +130,8 @@
|
||||
|
||||
L(end): RETVAL
|
||||
pop {r4-r11}
|
||||
- bx r14
|
||||
+ifdef(`ARM_THUMB_MODE',
|
||||
+` bx r14
|
||||
+',` mov pc, r14
|
||||
+')
|
||||
EPILOGUE()
|
||||
Index: mpn/arm/dive_1.asm
|
||||
===================================================================
|
||||
--- mpn/arm/dive_1.asm.orig 2014-03-25 07:37:55.000000000 -0700
|
||||
+++ mpn/arm/dive_1.asm 2015-04-02 00:00:58.000000000 -0700
|
||||
@@ -112,7 +112,10 @@
|
||||
mul r9, r4, cy
|
||||
str r9, [rp]
|
||||
pop {r4-r9}
|
||||
- bx r14
|
||||
+ifdef(`ARM_THUMB_MODE',
|
||||
+` bx r14
|
||||
+',` mov pc, r14
|
||||
+')
|
||||
|
||||
L(unnorm):
|
||||
rsb tnc, cnt, #32
|
||||
@@ -136,7 +139,10 @@
|
||||
mul r9, r4, cy
|
||||
str r9, [rp]
|
||||
pop {r4-r9}
|
||||
- bx r14
|
||||
+ifdef(`ARM_THUMB_MODE',
|
||||
+` bx r14
|
||||
+',` mov pc, r14
|
||||
+')
|
||||
EPILOGUE()
|
||||
|
||||
.section .rodata
|
||||
Index: mpn/arm/sec_tabselect.asm
|
||||
===================================================================
|
||||
--- mpn/arm/sec_tabselect.asm.orig 2014-03-25 07:37:55.000000000 -0700
|
||||
+++ mpn/arm/sec_tabselect.asm 2015-04-02 00:51:31.000000000 -0700
|
||||
@@ -109,7 +109,10 @@
|
||||
bge L(tp2)
|
||||
stmia rp, {r8,r9}
|
||||
pop {r4-r11, r14}
|
||||
- bx lr
|
||||
+ifdef(`ARM_THUMB_MODE',
|
||||
+` bx lr
|
||||
+',` mov pc, lr
|
||||
+')
|
||||
|
||||
L(n2): cmp j, #-2
|
||||
bne L(n1)
|
||||
@@ -127,5 +130,8 @@
|
||||
bge L(tp1)
|
||||
str r8, [rp]
|
||||
L(n1): pop {r4-r11, r14}
|
||||
- bx lr
|
||||
+ifdef(`ARM_THUMB_MODE',
|
||||
+` bx lr
|
||||
+',` mov pc, lr
|
||||
+')
|
||||
EPILOGUE()
|
|
@ -1,13 +0,0 @@
|
|||
$NetBSD: patch-mpn_arm_invert__limb.asm,v 1.3 2013/01/31 20:30:26 adam Exp $
|
||||
|
||||
--- mpn/arm/invert_limb.asm.orig 2012-12-18 19:05:09.000000000 +0000
|
||||
+++ mpn/arm/invert_limb.asm
|
||||
@@ -41,7 +41,7 @@ PROLOGUE(mpn_invert_limb)
|
||||
adds r1, r12, r0
|
||||
adc r3, r3, r0
|
||||
rsb r0, r3, r2
|
||||
- bx lr
|
||||
+ mov pc,lr
|
||||
EPILOGUE()
|
||||
|
||||
.section .rodata
|
Loading…
Reference in a new issue