summaryrefslogtreecommitdiff
path: root/devel
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2015-11-13 10:42:23 +0000
committerwiz <wiz@pkgsrc.org>2015-11-13 10:42:23 +0000
commit96734dc98d80dd4b87c3c58e7c801bdc8bcb3225 (patch)
tree7b0436d10af6ace6c9c65066264d9d4029dbad90 /devel
parentf52d6b1ee6e1d212595addb906e12617463cd1d5 (diff)
downloadpkgsrc-96734dc98d80dd4b87c3c58e7c801bdc8bcb3225.tar.gz
Split a patch into standard patches.
date: 2015-04-03 09:41:26 +0200; author: mrg; state: Exp; commitid: HjchnsCySB9wh7gy; port some changes from netbsd gmp and adapt them to the gmp 6.x. this allows devel/gmp to build on armv4.
Diffstat (limited to 'devel')
-rw-r--r--devel/gmp/distinfo20
-rw-r--r--devel/gmp/patches/patch-mpn-arm-netbsd.diff339
-rw-r--r--devel/gmp/patches/patch-mpn_arm_aorslsh1__n.asm14
-rw-r--r--devel/gmp/patches/patch-mpn_arm_bdiv__dbm1c.asm14
-rw-r--r--devel/gmp/patches/patch-mpn_arm_cnd__aors__n.asm14
-rw-r--r--devel/gmp/patches/patch-mpn_arm_com.asm15
-rw-r--r--devel/gmp/patches/patch-mpn_arm_copyd.asm15
-rw-r--r--devel/gmp/patches/patch-mpn_arm_copyi.asm15
-rw-r--r--devel/gmp/patches/patch-mpn_arm_dive__1.asm28
-rw-r--r--devel/gmp/patches/patch-mpn_arm_invert__limb.asm16
-rw-r--r--devel/gmp/patches/patch-mpn_arm_logops__n.asm14
-rw-r--r--devel/gmp/patches/patch-mpn_arm_lshift.asm14
-rw-r--r--devel/gmp/patches/patch-mpn_arm_lshiftc.asm14
-rw-r--r--devel/gmp/patches/patch-mpn_arm_mod__34lsub1.asm26
-rw-r--r--devel/gmp/patches/patch-mpn_arm_mode1o.asm14
-rw-r--r--devel/gmp/patches/patch-mpn_arm_rsh1aors__n.asm14
-rw-r--r--devel/gmp/patches/patch-mpn_arm_rshift.asm14
-rw-r--r--devel/gmp/patches/patch-mpn_arm_sec__tabselect.asm26
-rw-r--r--devel/gmp/patches/patch-mpn_arm_udiv.asm16
19 files changed, 301 insertions, 341 deletions
diff --git a/devel/gmp/distinfo b/devel/gmp/distinfo
index e0602eb2fc4..b6da39a9897 100644
--- a/devel/gmp/distinfo
+++ b/devel/gmp/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.48 2015/11/03 03:27:29 agc Exp $
+$NetBSD: distinfo,v 1.49 2015/11/13 10:42:23 wiz Exp $
SHA1 (gmp-6.0.0a.tar.bz2) = 360802e3541a3da08ab4b55268c80f799939fddc
RMD160 (gmp-6.0.0a.tar.bz2) = 2322e21e2042c974dcfaca2da18ae22d43a23ec4
@@ -7,5 +7,21 @@ 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-netbsd.diff) = 00ead78b6966e9863b4acacbaeced9a67815f90b
+SHA1 (patch-mpn_arm_aorslsh1__n.asm) = 2c12b798eba26a3c4429792e1a88f91638261255
+SHA1 (patch-mpn_arm_bdiv__dbm1c.asm) = 8fcc50684c6baae02abeadb56feeb2340fc39731
+SHA1 (patch-mpn_arm_cnd__aors__n.asm) = 3d15898f923524122c09f63773bd9a35820a6016
+SHA1 (patch-mpn_arm_com.asm) = fb6dde3cecb4d082a63b8f7cc5e2c2aa877da27c
+SHA1 (patch-mpn_arm_copyd.asm) = 93f4e677b8cf4b85ff2dd21db7fca475930d623f
+SHA1 (patch-mpn_arm_copyi.asm) = 6d385726860fcb88d516dca3faa95edeb82fb79d
+SHA1 (patch-mpn_arm_dive__1.asm) = cb3425948ba7e69eb4bdb9b150a83881a6011aa3
+SHA1 (patch-mpn_arm_invert__limb.asm) = f8eb28f094864b02ebd709745a19b496b63ca437
+SHA1 (patch-mpn_arm_logops__n.asm) = fbd73182a6f53b452cf385494080579e3ab17d81
+SHA1 (patch-mpn_arm_lshift.asm) = d076210156c4dbcbe3b46803c0aaf966954a3058
+SHA1 (patch-mpn_arm_lshiftc.asm) = 95692c226ff057294d2aa9cf409559b605f444e4
+SHA1 (patch-mpn_arm_mod__34lsub1.asm) = 30a31a9d999097568cc8bc83a9565ee2f30657e0
+SHA1 (patch-mpn_arm_mode1o.asm) = 9fb7a224489ea56b433ab5e869c9402138210a30
+SHA1 (patch-mpn_arm_rsh1aors__n.asm) = 2c20729fdccd16f8418e0cf4e9b583848dd00b18
+SHA1 (patch-mpn_arm_rshift.asm) = fdc9b43d50a7c621b201098a01c440277c1ae43a
+SHA1 (patch-mpn_arm_sec__tabselect.asm) = 9f317285b87262d98e557bb7c4c9df21d51fa655
+SHA1 (patch-mpn_arm_udiv.asm) = 4f0cc8d7f578c41c11a73c7abb91ab955ec30019
SHA1 (patch-mpn_x86__64_k8_redc_1.asm) = 896a8fcfe9f7370f5628403b93e10a5f52e38944
diff --git a/devel/gmp/patches/patch-mpn-arm-netbsd.diff b/devel/gmp/patches/patch-mpn-arm-netbsd.diff
deleted file mode 100644
index da99a79db6f..00000000000
--- a/devel/gmp/patches/patch-mpn-arm-netbsd.diff
+++ /dev/null
@@ -1,339 +0,0 @@
-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()
diff --git a/devel/gmp/patches/patch-mpn_arm_aorslsh1__n.asm b/devel/gmp/patches/patch-mpn_arm_aorslsh1__n.asm
new file mode 100644
index 00000000000..b7d68e5ea9d
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_aorslsh1__n.asm
@@ -0,0 +1,14 @@
+$NetBSD: patch-mpn_arm_aorslsh1__n.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/aorslsh1_n.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/aorslsh1_n.asm
+@@ -163,5 +163,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()
diff --git a/devel/gmp/patches/patch-mpn_arm_bdiv__dbm1c.asm b/devel/gmp/patches/patch-mpn_arm_bdiv__dbm1c.asm
new file mode 100644
index 00000000000..97c41d24df4
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_bdiv__dbm1c.asm
@@ -0,0 +1,14 @@
+$NetBSD: patch-mpn_arm_bdiv__dbm1c.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/bdiv_dbm1c.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/bdiv_dbm1c.asm
+@@ -109,5 +109,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()
diff --git a/devel/gmp/patches/patch-mpn_arm_cnd__aors__n.asm b/devel/gmp/patches/patch-mpn_arm_cnd__aors__n.asm
new file mode 100644
index 00000000000..f91e53476c7
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_cnd__aors__n.asm
@@ -0,0 +1,14 @@
+$NetBSD: patch-mpn_arm_cnd__aors__n.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/cnd_aors_n.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/cnd_aors_n.asm
+@@ -130,5 +130,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()
diff --git a/devel/gmp/patches/patch-mpn_arm_com.asm b/devel/gmp/patches/patch-mpn_arm_com.asm
new file mode 100644
index 00000000000..d9990e698de
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_com.asm
@@ -0,0 +1,15 @@
+$NetBSD: patch-mpn_arm_com.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/com.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/com.asm
+@@ -71,5 +71,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()
diff --git a/devel/gmp/patches/patch-mpn_arm_copyd.asm b/devel/gmp/patches/patch-mpn_arm_copyd.asm
new file mode 100644
index 00000000000..d37652b70ad
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_copyd.asm
@@ -0,0 +1,15 @@
+$NetBSD: patch-mpn_arm_copyd.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/copyd.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/copyd.asm
+@@ -80,5 +80,9 @@ L(top): subs n, n, #4
+
+ 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()
diff --git a/devel/gmp/patches/patch-mpn_arm_copyi.asm b/devel/gmp/patches/patch-mpn_arm_copyi.asm
new file mode 100644
index 00000000000..5d25c81174b
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_copyi.asm
@@ -0,0 +1,15 @@
+$NetBSD: patch-mpn_arm_copyi.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/copyi.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/copyi.asm
+@@ -75,5 +75,9 @@ L(top): subs n, n, #4
+
+ 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()
diff --git a/devel/gmp/patches/patch-mpn_arm_dive__1.asm b/devel/gmp/patches/patch-mpn_arm_dive__1.asm
new file mode 100644
index 00000000000..0d7764a4183
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_dive__1.asm
@@ -0,0 +1,28 @@
+$NetBSD: patch-mpn_arm_dive__1.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/dive_1.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/dive_1.asm
+@@ -112,7 +112,10 @@ L(end): sbc cy, r5, cy
+ 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 @@ L(edu): sbc cy, r5, cy
+ mul r9, r4, cy
+ str r9, [rp]
+ pop {r4-r9}
+- bx r14
++ifdef(`ARM_THUMB_MODE',
++` bx r14
++',` mov pc, r14
++')
+ EPILOGUE()
+
+ .section .rodata
diff --git a/devel/gmp/patches/patch-mpn_arm_invert__limb.asm b/devel/gmp/patches/patch-mpn_arm_invert__limb.asm
new file mode 100644
index 00000000000..17c815ca0c8
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_invert__limb.asm
@@ -0,0 +1,16 @@
+$NetBSD: patch-mpn_arm_invert__limb.asm,v 1.5 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/invert_limb.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/invert_limb.asm
+@@ -52,7 +52,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
diff --git a/devel/gmp/patches/patch-mpn_arm_logops__n.asm b/devel/gmp/patches/patch-mpn_arm_logops__n.asm
new file mode 100644
index 00000000000..580e1e57ff0
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_logops__n.asm
@@ -0,0 +1,14 @@
+$NetBSD: patch-mpn_arm_logops__n.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/logops_n.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/logops_n.asm
+@@ -135,5 +135,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()
diff --git a/devel/gmp/patches/patch-mpn_arm_lshift.asm b/devel/gmp/patches/patch-mpn_arm_lshift.asm
new file mode 100644
index 00000000000..3feb536b88f
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_lshift.asm
@@ -0,0 +1,14 @@
+$NetBSD: patch-mpn_arm_lshift.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/lshift.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/lshift.asm
+@@ -84,5 +84,8 @@ L(end): orr r7, r7, r6, lsr tnc
+ 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()
diff --git a/devel/gmp/patches/patch-mpn_arm_lshiftc.asm b/devel/gmp/patches/patch-mpn_arm_lshiftc.asm
new file mode 100644
index 00000000000..0a0b0a3600e
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_lshiftc.asm
@@ -0,0 +1,14 @@
+$NetBSD: patch-mpn_arm_lshiftc.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/lshiftc.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/lshiftc.asm
+@@ -91,5 +91,8 @@ L(1): mvn r6, #0
+ 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()
diff --git a/devel/gmp/patches/patch-mpn_arm_mod__34lsub1.asm b/devel/gmp/patches/patch-mpn_arm_mod__34lsub1.asm
new file mode 100644
index 00000000000..ce730ebcc4c
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_mod__34lsub1.asm
@@ -0,0 +1,26 @@
+$NetBSD: patch-mpn_arm_mod__34lsub1.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/mod_34lsub1.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/mod_34lsub1.asm
+@@ -106,7 +106,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)
+@@ -117,5 +120,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()
diff --git a/devel/gmp/patches/patch-mpn_arm_mode1o.asm b/devel/gmp/patches/patch-mpn_arm_mode1o.asm
new file mode 100644
index 00000000000..1fb03f25e68
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_mode1o.asm
@@ -0,0 +1,14 @@
+$NetBSD: patch-mpn_arm_mode1o.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/mode1o.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/mode1o.asm
+@@ -88,5 +88,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()
diff --git a/devel/gmp/patches/patch-mpn_arm_rsh1aors__n.asm b/devel/gmp/patches/patch-mpn_arm_rsh1aors__n.asm
new file mode 100644
index 00000000000..e2df18d3a3c
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_rsh1aors__n.asm
@@ -0,0 +1,14 @@
+$NetBSD: patch-mpn_arm_rsh1aors__n.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/rsh1aors_n.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/rsh1aors_n.asm
+@@ -120,5 +120,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()
diff --git a/devel/gmp/patches/patch-mpn_arm_rshift.asm b/devel/gmp/patches/patch-mpn_arm_rshift.asm
new file mode 100644
index 00000000000..eba89733564
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_rshift.asm
@@ -0,0 +1,14 @@
+$NetBSD: patch-mpn_arm_rshift.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/rshift.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/rshift.asm
+@@ -82,5 +82,8 @@ L(end): orr r7, r7, r6, lsl tnc
+ 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()
diff --git a/devel/gmp/patches/patch-mpn_arm_sec__tabselect.asm b/devel/gmp/patches/patch-mpn_arm_sec__tabselect.asm
new file mode 100644
index 00000000000..71654ef51b8
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_sec__tabselect.asm
@@ -0,0 +1,26 @@
+$NetBSD: patch-mpn_arm_sec__tabselect.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/sec_tabselect.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/sec_tabselect.asm
+@@ -109,7 +109,10 @@ L(tp2): subs c, c, #1
+ 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 @@ L(tp1): subs c, c, #1
+ bge L(tp1)
+ str r8, [rp]
+ L(n1): pop {r4-r11, r14}
+- bx lr
++ifdef(`ARM_THUMB_MODE',
++` bx lr
++',` mov pc, lr
++')
+ EPILOGUE()
diff --git a/devel/gmp/patches/patch-mpn_arm_udiv.asm b/devel/gmp/patches/patch-mpn_arm_udiv.asm
new file mode 100644
index 00000000000..376ed77cb47
--- /dev/null
+++ b/devel/gmp/patches/patch-mpn_arm_udiv.asm
@@ -0,0 +1,16 @@
+$NetBSD: patch-mpn_arm_udiv.asm,v 1.1 2015/11/13 10:42:23 wiz Exp $
+
+--- mpn/arm/udiv.asm.orig 2014-03-25 14:37:55.000000000 +0000
++++ mpn/arm/udiv.asm
+@@ -61,7 +61,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 }