1diff -rNU3 dist.orig/Makefile.in dist.nbsd/Makefile.in
2--- dist.orig/Makefile.in	2013-09-30 12:18:35.000000000 +0200
3+++ dist.nbsd/Makefile.in	2013-11-29 08:57:10.000000000 +0100
4@@ -1166,7 +1166,8 @@
5 uninstall: uninstall-recursive
6
7 install-am: all-am
8-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
9+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am
10+	@$(MAKE) $(AM_MAKEFLAGS) install-data-am
11
12 installcheck: installcheck-recursive
13 install-strip:
14diff -rNU3 dist.orig/acinclude.m4 dist.nbsd/acinclude.m4
15--- dist.orig/acinclude.m4	2013-09-30 12:18:28.000000000 +0200
16+++ dist.nbsd/acinclude.m4	2013-11-29 08:57:10.000000000 +0100
17@@ -33,6 +33,9 @@
18 define(IA64_PATTERN,
19 [[ia64*-*-* | itanium-*-* | itanium2-*-*]])
20
21+define(M5407_PATTERN,
22+[[m5407-*-*]])
23+
24 dnl  Need to be careful not to match m6811, m6812, m68hc11 and m68hc12, all
25 dnl  of which config.sub accepts.  (Though none of which are likely to work
26 dnl  with GMP.)
27diff -rNU3 dist.orig/config.guess dist.nbsd/config.guess
28--- dist.orig/config.guess	2013-09-30 12:18:28.000000000 +0200
29+++ dist.nbsd/config.guess	2013-11-29 08:57:10.000000000 +0100
30@@ -945,8 +945,8 @@
31
32 # -------------------------------------------------------------------------
33 # Use an exact cpu, if possible
34-
35-if test -n "$exact_cpu"; then
36+# Disabled for NetBSD cross builds
37+if false && test -n "$exact_cpu"; then
38   echo "$exact_cpu$guess_rest"
39 else
40   echo "$guess_full"
41diff -rNU3 dist.orig/configfsf.guess dist.nbsd/configfsf.guess
42--- dist.orig/configfsf.guess	2013-09-30 12:18:28.000000000 +0200
43+++ dist.nbsd/configfsf.guess	2014-06-23 19:18:43.000000000 +0200
44@@ -158,14 +158,28 @@
45 	case "${UNAME_MACHINE_ARCH}" in
46 	    armeb) machine=armeb-unknown ;;
47 	    arm*) machine=arm-unknown ;;
48+	    coldfire) machine=m5407-unknown ;;
49+	    earm*eb*) machine=armeb-unknown ;;
50+	    earm*) machine=arm-unknown ;;
51 	    sh3el) machine=shl-unknown ;;
52 	    sh3eb) machine=sh-unknown ;;
53 	    sh5el) machine=sh5le-unknown ;;
54 	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
55 	esac
56 	# The Operating System including object format, if it has switched
57-	# to ELF recently, or will in the future.
58+	# to ELF recently, or will in the future and ABI.
59 	case "${UNAME_MACHINE_ARCH}" in
60+	    coldfire) os=netbsdelf ;;
61+	    earm*)
62+		eval $set_cc_for_build
63+		if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
64+			| grep -q __ARM_PCS_VFP
65+		then
66+		    os=netbsdelf-eabi
67+		else
68+		    os=netbsdelf-eabihf
69+		fi
70+		;;
71 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
72 		eval $set_cc_for_build
73 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
74diff -rNU3 dist.orig/configfsf.sub dist.nbsd/configfsf.sub
75--- dist.orig/configfsf.sub	2013-09-30 12:18:28.000000000 +0200
76+++ dist.nbsd/configfsf.sub	2013-11-29 08:57:10.000000000 +0100
77@@ -124,7 +124,7 @@
78 case $maybe_os in
79   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
80   linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
81-  knetbsd*-gnu* | netbsd*-gnu* | \
82+  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-*eabi* | \
83   kopensolaris*-gnu* | \
84   storm-chaos* | os2-emx* | rtmk-nova*)
85     os=-$maybe_os
86@@ -334,7 +334,8 @@
87 		basic_machine=$basic_machine-unknown
88 		os=-none
89 		;;
90-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
91+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | m5407 \
92+	| v70 | w65 | z8k)
93 		;;
94 	ms1)
95 		basic_machine=mt-unknown
96@@ -390,6 +391,7 @@
97 	| le32-* | le64-* \
98 	| lm32-* \
99 	| m32c-* | m32r-* | m32rle-* \
100+	| m5200-* | m5407-* \
101 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
102 	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
103 	| microblaze-* | microblazeel-* \
104diff -rNU3 dist.orig/configure dist.nbsd/configure
105--- dist.orig/configure	2013-09-30 12:18:33.000000000 +0200
106+++ dist.nbsd/configure	2014-06-24 14:54:56.000000000 +0200
107@@ -4377,6 +4377,16 @@
108     ;;
109
110
111+  # Motorola Coldfire
112+  #
113+  m5407-*-*)
114+
115+    gcc_cflags="$gcc_cflags $fomit_frame_pointer"
116+    gcc_cflags_optlist="arch"
117+    gcc_cflags_arch="-m5407"
118+  ;;
119+
120+
121   # Motorola 68k
122   #
123   m68k-*-* | m68[0-9][0-9][0-9]-*-*)
124diff -rNU3 dist.orig/configure.ac dist.nbsd/configure.ac
125--- dist.orig/configure.ac	2013-09-30 12:18:28.000000000 +0200
126+++ dist.nbsd/configure.ac	2013-11-29 08:49:47.000000000 +0100
127@@ -25,7 +25,7 @@
128 AC_COPYRIGHT(GMP_COPYRIGHT)
129 AH_TOP(/*GMP_COPYRIGHT*/)
130
131-AC_REVISION($Revision$)
132+AC_REVISION($Revision: 1.1.1.1 $)
133 AC_PREREQ(2.59)
134 AC_INIT(GNU MP, GMP_VERSION, [gmp-bugs@gmplib.org, see http://gmplib.org/manual/Reporting-Bugs.html], gmp)
135 AC_CONFIG_SRCDIR(gmp-impl.h)
136diff -rNU3 dist.orig/gmp-h.in dist.nbsd/gmp-h.in
137--- dist.orig/gmp-h.in	2013-09-30 12:18:28.000000000 +0200
138+++ dist.nbsd/gmp-h.in	2013-11-29 08:57:10.000000000 +0100
139@@ -359,11 +359,9 @@
140     GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
141     inline semantics, unless -fgnu89-inline is used.  */
142 #ifdef __GNUC__
143-#if (defined __GNUC_STDC_INLINE__) || (__GNUC__ == 4 && __GNUC_MINOR__ == 2) \
144-  || (defined __GNUC_GNU_INLINE__ && defined __cplusplus)
145+#if (defined __GNUC_STDC_INLINE__) || \
146+    (__GNUC__ == 4 && __GNUC_MINOR__ >= 2) || (__GNUC__ > 4)
147 #define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__))
148-#else
149-#define __GMP_EXTERN_INLINE      extern __inline__
150 #endif
151 #define __GMP_INLINE_PROTOTYPES  1
152 #endif
153@@ -1610,6 +1608,10 @@
154 #define mpn_zero __MPN(zero)
155 __GMP_DECLSPEC void mpn_zero (mp_ptr, mp_size_t);
156
157+#define mpn_udiv_w_sdiv __MPN(udiv_w_sdiv)
158+__GMP_DECLSPEC mp_limb_t mpn_udiv_w_sdiv (mp_limb_t *, mp_limb_t, mp_limb_t, mp_limb_t);
159+
160+
161 /**************** mpz inlines ****************/
162
163 /* The following are provided as inlines where possible, but always exist as
164diff -rNU3 dist.orig/gmp-impl.h dist.nbsd/gmp-impl.h
165--- dist.orig/gmp-impl.h	2013-09-30 12:18:28.000000000 +0200
166+++ dist.nbsd/gmp-impl.h	2013-11-29 08:57:10.000000000 +0100
167@@ -196,7 +196,9 @@
168 #     if defined (_AIX) || defined (_IBMR2)
169  #pragma alloca
170 #     else
171-       char *alloca ();
172+#      if !defined (__NetBSD__)
173+        char *alloca ();
174+#      endif
175 #     endif
176 #    endif
177 #   endif
178diff -rNU3 dist.orig/longlong.h dist.nbsd/longlong.h
179--- dist.orig/longlong.h	2013-09-30 12:18:28.000000000 +0200
180+++ dist.nbsd/longlong.h	2014-03-25 16:28:15.000000000 +0100
181@@ -1209,7 +1209,7 @@
182 #endif /* __m88000__ */
183
184 #if defined (__mips) && W_TYPE_SIZE == 32
185-#if __GMP_GNUC_PREREQ (4,4)
186+#if __GMP_GNUC_PREREQ (4,4) || defined(__clang__)
187 #define umul_ppmm(w1, w0, u, v) \
188   do {									\
189     UDItype __ll = (UDItype)(u) * (v);					\
190@@ -1231,7 +1231,7 @@
191 #endif /* __mips */
192
193 #if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
194-#if __GMP_GNUC_PREREQ (4,4)
195+#if __GMP_GNUC_PREREQ (4,4) || defined(__clang__)
196 #define umul_ppmm(w1, w0, u, v) \
197   do {									\
198     typedef unsigned int __ll_UTItype __attribute__((mode(TI)));	\
199@@ -1347,7 +1347,7 @@
200   __asm__ ("cntlzw %0,%1" : "=r" (count) : "r" (x))
201 #define COUNT_LEADING_ZEROS_0 32
202 #if HAVE_HOST_CPU_FAMILY_powerpc
203-#if __GMP_GNUC_PREREQ (4,4)
204+#if __GMP_GNUC_PREREQ (4,4) || defined(__clang__)
205 #define umul_ppmm(w1, w0, u, v) \
206   do {									\
207     UDItype __ll = (UDItype)(u) * (v);					\
208diff -rNU3 dist.orig/mpn/Makefile.in dist.nbsd/mpn/Makefile.in
209--- dist.orig/mpn/Makefile.in	2013-09-30 12:18:34.000000000 +0200
210+++ dist.nbsd/mpn/Makefile.in	2013-11-29 08:57:10.000000000 +0100
211@@ -631,7 +631,7 @@
212 	$(CCAS) $(COMPILE_FLAGS) tmp-$*.s -o $@
213 	$(RM_TMP) tmp-$*.s
214 .S.lo:
215-	$(LIBTOOL) --mode=compile --tag=CC $(top_srcdir)/mpn/cpp-ccas --cpp="$(CPP) $(PREPROCESS_FLAGS)" $(CCAS) $(COMPILE_FLAGS) `test -f '$<' || echo '$(srcdir)/'`$<
216+	$(LIBTOOL) --mode=compile --tag=CC $(SHELL) $(top_srcdir)/mpn/cpp-ccas --cpp="$(CPP) $(PREPROCESS_FLAGS)" $(CCAS) $(COMPILE_FLAGS) `test -f '$<' || echo '$(srcdir)/'`$<
217
218 # .asm assembler, preprocessed with m4.
219 #
220@@ -659,7 +659,7 @@
221 	$(CCAS) $(COMPILE_FLAGS) tmp-$*.s -o $@
222 	$(RM_TMP) tmp-$*.s
223 .asm.lo:
224-	$(LIBTOOL) --mode=compile --tag=CC $(top_srcdir)/mpn/m4-ccas --m4="$(M4)" $(CCAS) $(COMPILE_FLAGS) `test -f '$<' || echo '$(srcdir)/'`$<
225+	$(LIBTOOL) --mode=compile --tag=CC $(SHELL) $(top_srcdir)/mpn/m4-ccas --m4="$(M4)" $(CCAS) $(COMPILE_FLAGS) `test -f '$<' || echo '$(srcdir)/'`$<
226
227 # Tell versions [3.59,3.63) of GNU make to not export all variables.
228 # Otherwise a system limit (for SysV at least) may be exceeded.
229diff -rNU3 dist.orig/mpn/arm/aorscnd_n.asm dist.nbsd/mpn/arm/aorscnd_n.asm
230--- dist.orig/mpn/arm/aorscnd_n.asm	2013-09-30 12:18:28.000000000 +0200
231+++ dist.nbsd/mpn/arm/aorscnd_n.asm	2013-11-29 09:02:28.000000000 +0100
232@@ -117,5 +117,8 @@
233
234 L(end):	RETVAL
235 	pop	{r4-r11}
236-	bx	r14
237+ifdef(`ARM_THUMB_MODE',
238+`	bx	r14
239+',`	mov	pc, r14
240+')
241 EPILOGUE()
242diff -rNU3 dist.orig/mpn/arm/aorslsh1_n.asm dist.nbsd/mpn/arm/aorslsh1_n.asm
243--- dist.orig/mpn/arm/aorslsh1_n.asm	2013-09-30 12:18:28.000000000 +0200
244+++ dist.nbsd/mpn/arm/aorslsh1_n.asm	2013-11-29 09:02:28.000000000 +0100
245@@ -151,5 +151,8 @@
246 	REVCY(r12)
247 L(rt0):	RETVAL(	r14)
248 	pop	{r4-r10r11, r14}
249-	bx	r14
250+ifdef(`ARM_THUMB_MODE',
251+`	bx	r14
252+',`	mov	pc, r14
253+')
254 EPILOGUE()
255diff -rNU3 dist.orig/mpn/arm/bdiv_dbm1c.asm dist.nbsd/mpn/arm/bdiv_dbm1c.asm
256--- dist.orig/mpn/arm/bdiv_dbm1c.asm	2013-09-30 12:18:28.000000000 +0200
257+++ dist.nbsd/mpn/arm/bdiv_dbm1c.asm	2013-11-29 09:02:28.000000000 +0100
258@@ -97,5 +97,8 @@
259 	str	r5, [qp]
260 	sbc	r0, r5, r12
261 	pop	{r4, r5, r6, r7, r8}
262-	bx	lr
263+ifdef(`ARM_THUMB_MODE',
264+`	bx	lr
265+',`	mov	pc, lr
266+')
267 EPILOGUE()
268diff -rNU3 dist.orig/mpn/arm/com.asm dist.nbsd/mpn/arm/com.asm
269--- dist.orig/mpn/arm/com.asm	2013-09-30 12:18:28.000000000 +0200
270+++ dist.nbsd/mpn/arm/com.asm	2013-11-29 09:02:28.000000000 +0100
271@@ -59,5 +59,9 @@
272 	bne	L(top)
273
274 	ldmfd	sp!, { r7, r8, r9 }		C restore regs from stack
275-L(rtn):	bx	lr
276+L(rtn):
277+ifdef(`ARM_THUMB_MODE',
278+`	bx	lr
279+',`	mov	pc, lr
280+')
281 EPILOGUE()
282diff -rNU3 dist.orig/mpn/arm/copyd.asm dist.nbsd/mpn/arm/copyd.asm
283--- dist.orig/mpn/arm/copyd.asm	2013-09-30 12:18:28.000000000 +0200
284+++ dist.nbsd/mpn/arm/copyd.asm	2013-11-29 09:02:28.000000000 +0100
285@@ -57,5 +57,9 @@
286 	bne	L(top)
287
288 	ldmfd	sp!, { r7, r8, r9 }		C restore regs from stack
289-L(rtn):	bx	lr
290+L(rtn):
291+ifdef(`ARM_THUMB_MODE',
292+`	bx	lr
293+',`	mov	pc, lr
294+')
295 EPILOGUE()
296diff -rNU3 dist.orig/mpn/arm/copyi.asm dist.nbsd/mpn/arm/copyi.asm
297--- dist.orig/mpn/arm/copyi.asm	2013-09-30 12:18:28.000000000 +0200
298+++ dist.nbsd/mpn/arm/copyi.asm	2013-11-29 09:02:28.000000000 +0100
299@@ -52,5 +52,9 @@
300 	bne	L(top)
301
302 	ldmfd	sp!, { r7, r8, r9 }		C restore regs from stack
303-L(rtn):	bx	lr
304+L(rtn):
305+ifdef(`ARM_THUMB_MODE',
306+`	bx	lr
307+',`	mov	pc, lr
308+')
309 EPILOGUE()
310diff -rNU3 dist.orig/mpn/arm/invert_limb.asm dist.nbsd/mpn/arm/invert_limb.asm
311--- dist.orig/mpn/arm/invert_limb.asm	2013-09-30 12:18:28.000000000 +0200
312+++ dist.nbsd/mpn/arm/invert_limb.asm	2013-11-29 08:57:11.000000000 +0100
313@@ -41,7 +41,10 @@
314 	adds	r1, r12, r0
315 	adc	r3, r3, r0
316 	rsb	r0, r3, r2
317-	bx	lr
318+ifdef(`ARM_THUMB_MODE',
319+`	bx	lr
320+',`	mov	pc, lr
321+')
322 EPILOGUE()
323
324 	.section .rodata
325diff -rNU3 dist.orig/mpn/arm/logops_n.asm dist.nbsd/mpn/arm/logops_n.asm
326--- dist.orig/mpn/arm/logops_n.asm	2013-09-30 12:18:28.000000000 +0200
327+++ dist.nbsd/mpn/arm/logops_n.asm	2013-11-29 09:02:28.000000000 +0100
328@@ -123,5 +123,8 @@
329 	pop	{ r4, r5, r6, r7 }	C popping r8-r10 here strangely fails
330
331 L(rtn):	pop	{ r8, r9, r10 }
332-	bx	r14
333+ifdef(`ARM_THUMB_MODE',
334+`	bx	r14
335+',`	mov	pc, r14
336+')
337 EPILOGUE()
338diff -rNU3 dist.orig/mpn/arm/lshift.asm dist.nbsd/mpn/arm/lshift.asm
339--- dist.orig/mpn/arm/lshift.asm	2013-09-30 12:18:28.000000000 +0200
340+++ dist.nbsd/mpn/arm/lshift.asm	2013-11-29 09:02:28.000000000 +0100
341@@ -72,5 +72,8 @@
342 L(1):	str	r7, [rp, #-4]
343 	lsr	r0, r4, tnc
344 	pop	{r4, r6, r7, r8}
345-	bx	r14
346+ifdef(`ARM_THUMB_MODE',
347+`	bx	r14
348+',`	mov	pc, r14
349+')
350 EPILOGUE()
351diff -rNU3 dist.orig/mpn/arm/lshiftc.asm dist.nbsd/mpn/arm/lshiftc.asm
352--- dist.orig/mpn/arm/lshiftc.asm	2013-09-30 12:18:28.000000000 +0200
353+++ dist.nbsd/mpn/arm/lshiftc.asm	2013-11-29 09:02:28.000000000 +0100
354@@ -79,5 +79,8 @@
355 	str	r7, [rp, #-4]
356 	lsr	r0, r4, tnc
357 	pop	{r4, r6, r7, r8}
358-	bx	r14
359+ifdef(`ARM_THUMB_MODE',
360+`	bx	r14
361+',`	mov	pc, r14
362+')
363 EPILOGUE()
364diff -rNU3 dist.orig/mpn/arm/mod_34lsub1.asm dist.nbsd/mpn/arm/mod_34lsub1.asm
365--- dist.orig/mpn/arm/mod_34lsub1.asm	2013-09-30 12:18:28.000000000 +0200
366+++ dist.nbsd/mpn/arm/mod_34lsub1.asm	2013-11-29 09:02:28.000000000 +0100
367@@ -94,7 +94,10 @@
368 	add	r0, r0, r12, lsr #8
369
370 	pop	{ r4, r5, r6, r7 }
371-	bx	lr
372+ifdef(`ARM_THUMB_MODE',
373+`	bx	lr
374+',`	mov	pc, lr
375+')
376
377 L(le2):	cmn	n, #1
378 	bne	L(1)
379@@ -105,5 +108,8 @@
380 	bic	r0, r2, #0xff000000
381 	add	r0, r0, r2, lsr #24
382 	pop	{ r4, r5, r6, r7 }
383-	bx	lr
384+ifdef(`ARM_THUMB_MODE',
385+`	bx	lr
386+',`	mov	pc, lr
387+')
388 EPILOGUE()
389diff -rNU3 dist.orig/mpn/arm/mode1o.asm dist.nbsd/mpn/arm/mode1o.asm
390--- dist.orig/mpn/arm/mode1o.asm	2013-09-30 12:18:28.000000000 +0200
391+++ dist.nbsd/mpn/arm/mode1o.asm	2013-11-29 09:02:28.000000000 +0100
392@@ -68,5 +68,8 @@
393 	addcc	r0, r0, #1
394
395 	ldmfd	sp!, {r4, r5}
396-	bx	r14
397+ifdef(`ARM_THUMB_MODE',
398+`	bx	r14
399+',`	mov	pc, r14
400+')
401 EPILOGUE()
402diff -rNU3 dist.orig/mpn/arm/rsh1aors_n.asm dist.nbsd/mpn/arm/rsh1aors_n.asm
403--- dist.orig/mpn/arm/rsh1aors_n.asm	2013-09-30 12:18:28.000000000 +0200
404+++ dist.nbsd/mpn/arm/rsh1aors_n.asm	2013-11-29 09:02:28.000000000 +0100
405@@ -108,5 +108,8 @@
406 	str	r4, [rp, #0]
407 	mov	r0, r11
408 	pop	{r4-r11}
409-	bx	r14
410+ifdef(`ARM_THUMB_MODE',
411+`	bx	r14
412+',`	mov	pc, r14
413+')
414 EPILOGUE()
415diff -rNU3 dist.orig/mpn/arm/rshift.asm dist.nbsd/mpn/arm/rshift.asm
416--- dist.orig/mpn/arm/rshift.asm	2013-09-30 12:18:28.000000000 +0200
417+++ dist.nbsd/mpn/arm/rshift.asm	2013-11-29 09:02:28.000000000 +0100
418@@ -70,5 +70,8 @@
419 L(1):	str	r7, [rp], #4
420 	lsl	r0, r4, tnc
421 	pop	{r4, r6, r7, r8}
422-	bx	r14
423+ifdef(`ARM_THUMB_MODE',
424+`	bx	r14
425+',`	mov	pc, r14
426+')
427 EPILOGUE()
428diff -rNU3 dist.orig/mpn/arm/udiv.asm dist.nbsd/mpn/arm/udiv.asm
429--- dist.orig/mpn/arm/udiv.asm	2013-09-30 12:18:28.000000000 +0200
430+++ dist.nbsd/mpn/arm/udiv.asm	2013-11-29 09:02:28.000000000 +0100
431@@ -50,7 +50,10 @@
432
433 	str	n1, [rem_ptr]		C store remainder
434 	adc	r0, n0, n0		C quotient: add last carry from divstep
435-	bx	lr
436+ifdef(`ARM_THUMB_MODE',
437+`	bx	lr
438+',`	mov	pc, lr
439+')
440
441 L(_large_divisor):
442 	stmfd	sp!, { r8, lr }
443diff -rNU3 dist.orig/mpn/generic/div_qr_2.c dist.nbsd/mpn/generic/div_qr_2.c
444--- dist.orig/mpn/generic/div_qr_2.c	2013-09-30 12:18:29.000000000 +0200
445+++ dist.nbsd/mpn/generic/div_qr_2.c	2013-12-01 10:29:06.000000000 +0100
446@@ -130,10 +130,11 @@
447     umul_ppmm (_q1d,_q0, n2, di0);					\
448     add_sssaaaa (_q3,_q2,_q1, _q2,_q1, _q2a,_q1d);			\
449 									\
450-    add_ssaaaa (r1, r0, n3, n2, 0, 1); /* FIXME: combine as in x86_64 asm */ \
451+    add_ssaaaa (r1, r0, n3, n2, CNST_LIMB(0), CNST_LIMB(1));		\
452+    				  /* FIXME: combine as in x86_64 asm */	\
453 									\
454     /* [q3,q2,q1,q0] += [n3,n3,n1,n0] */				\
455-    add_csaac (_c, _q0, _q0, n0, 0);					\
456+    add_csaac (_c, _q0, _q0, n0, CNST_LIMB(0));				\
457     add_csaac (_c, _q1, _q1, n1, _c);					\
458     add_csaac (_c, _q2, _q2, r0, _c);					\
459     _q3 = _q3 + r1 + _c;						\
460@@ -145,14 +146,14 @@
461 									\
462     _mask = -(mp_limb_t) (r1 >= _q1 & (r1 > _q1 | r0 >= _q0));  /* (r1,r0) >= (q1,q0) */  \
463     add_ssaaaa (r1, r0, r1, r0, d1 & _mask, d0 & _mask);		\
464-    sub_ddmmss (_q3, _q2, _q3, _q2, 0, -_mask);				\
465+    sub_ddmmss (_q3, _q2, _q3, _q2, CNST_LIMB(0), -_mask);		\
466 									\
467     if (UNLIKELY (r1 >= d1))						\
468       {									\
469 	if (r1 > d1 || r0 >= d0)					\
470 	  {								\
471 	    sub_ddmmss (r1, r0, r1, r0, d1, d0);			\
472-	    add_ssaaaa (_q3, _q2, _q3, _q2, 0, 1);			\
473+	    add_ssaaaa (_q3, _q2, _q3, _q2, CNST_LIMB(0), CNST_LIMB(1));\
474 	  }								\
475       }									\
476     (q1) = _q3;								\
477diff -rNU3 dist.orig/mpn/generic/divrem_2.c dist.nbsd/mpn/generic/divrem_2.c
478--- dist.orig/mpn/generic/divrem_2.c	2013-09-30 12:18:29.000000000 +0200
479+++ dist.nbsd/mpn/generic/divrem_2.c	2013-12-01 10:29:06.000000000 +0100
480@@ -98,7 +98,7 @@
481       for (i = qxn - 1; i >= 0; i--)
482 	{
483 	  mp_limb_t q;
484-	  udiv_qr_3by2 (q, r1, r0, r1, r0, 0, d1, d0, di.inv32);
485+	  udiv_qr_3by2 (q, r1, r0, r1, r0, CNST_LIMB(0), d1, d0, di.inv32);
486 	  qp[i] = q;
487 	}
488     }
489diff -rNU3 dist.orig/mpn/generic/get_d.c dist.nbsd/mpn/generic/get_d.c
490--- dist.orig/mpn/generic/get_d.c	2013-09-30 12:18:29.000000000 +0200
491+++ dist.nbsd/mpn/generic/get_d.c	2013-11-29 09:02:28.000000000 +0100
492@@ -209,7 +209,7 @@
493 	      x <<= GMP_NAIL_BITS;
494 	      mhi |= x >> nbits >> 11;
495
496-	      mlo = x << GMP_LIMB_BITS - nbits - 11;
497+	      mlo = x << (GMP_LIMB_BITS - nbits - 11);
498 	      nbits = nbits + 11 - GMP_NAIL_BITS;
499 	    }
500 	  else
501diff -rNU3 dist.orig/mpn/generic/mod_1_1.c dist.nbsd/mpn/generic/mod_1_1.c
502--- dist.orig/mpn/generic/mod_1_1.c	2013-09-30 12:18:29.000000000 +0200
503+++ dist.nbsd/mpn/generic/mod_1_1.c	2013-12-01 10:29:06.000000000 +0100
504@@ -160,7 +160,7 @@
505    *   B2modb = - b * bi;
506    *   ASSERT (B2modb <= b);    // NB: equality iff b = B/2
507    */
508-  udiv_rnnd_preinv (B2modb, B1modb, 0, b, bi);
509+  udiv_rnnd_preinv (B2modb, B1modb, CNST_LIMB(0), b, bi);
510   cps[3] = B2modb >> cnt;
511 }
512
513diff -rNU3 dist.orig/mpn/generic/mod_1_2.c dist.nbsd/mpn/generic/mod_1_2.c
514--- dist.orig/mpn/generic/mod_1_2.c	2013-09-30 12:18:29.000000000 +0200
515+++ dist.nbsd/mpn/generic/mod_1_2.c	2013-12-01 10:29:06.000000000 +0100
516@@ -51,10 +51,10 @@
517   ASSERT (B1modb <= b);		/* NB: not fully reduced mod b */
518   cps[2] = B1modb >> cnt;
519
520-  udiv_rnnd_preinv (B2modb, B1modb, 0, b, bi);
521+  udiv_rnnd_preinv (B2modb, B1modb, CNST_LIMB(0), b, bi);
522   cps[3] = B2modb >> cnt;
523
524-  udiv_rnnd_preinv (B3modb, B2modb, 0, b, bi);
525+  udiv_rnnd_preinv (B3modb, B2modb, CNST_LIMB(0), b, bi);
526   cps[4] = B3modb >> cnt;
527
528 #if WANT_ASSERT
529diff -rNU3 dist.orig/mpn/generic/mod_1_3.c dist.nbsd/mpn/generic/mod_1_3.c
530--- dist.orig/mpn/generic/mod_1_3.c	2013-09-30 12:18:29.000000000 +0200
531+++ dist.nbsd/mpn/generic/mod_1_3.c	2013-12-01 10:29:06.000000000 +0100
532@@ -51,13 +51,13 @@
533   ASSERT (B1modb <= b);		/* NB: not fully reduced mod b */
534   cps[2] = B1modb >> cnt;
535
536-  udiv_rnnd_preinv (B2modb, B1modb, 0, b, bi);
537+  udiv_rnnd_preinv (B2modb, B1modb, CNST_LIMB(0), b, bi);
538   cps[3] = B2modb >> cnt;
539
540-  udiv_rnnd_preinv (B3modb, B2modb, 0, b, bi);
541+  udiv_rnnd_preinv (B3modb, B2modb, CNST_LIMB(0), b, bi);
542   cps[4] = B3modb >> cnt;
543
544-  udiv_rnnd_preinv (B4modb, B3modb, 0, b, bi);
545+  udiv_rnnd_preinv (B4modb, B3modb, CNST_LIMB(0), b, bi);
546   cps[5] = B4modb >> cnt;
547
548 #if WANT_ASSERT
549diff -rNU3 dist.orig/mpn/generic/mod_1_4.c dist.nbsd/mpn/generic/mod_1_4.c
550--- dist.orig/mpn/generic/mod_1_4.c	2013-09-30 12:18:29.000000000 +0200
551+++ dist.nbsd/mpn/generic/mod_1_4.c	2013-12-01 10:29:06.000000000 +0100
552@@ -51,16 +51,16 @@
553   ASSERT (B1modb <= b);		/* NB: not fully reduced mod b */
554   cps[2] = B1modb >> cnt;
555
556-  udiv_rnnd_preinv (B2modb, B1modb, 0, b, bi);
557+  udiv_rnnd_preinv (B2modb, B1modb, CNST_LIMB(0), b, bi);
558   cps[3] = B2modb >> cnt;
559
560-  udiv_rnnd_preinv (B3modb, B2modb, 0, b, bi);
561+  udiv_rnnd_preinv (B3modb, B2modb, CNST_LIMB(0), b, bi);
562   cps[4] = B3modb >> cnt;
563
564-  udiv_rnnd_preinv (B4modb, B3modb, 0, b, bi);
565+  udiv_rnnd_preinv (B4modb, B3modb, CNST_LIMB(0), b, bi);
566   cps[5] = B4modb >> cnt;
567
568-  udiv_rnnd_preinv (B5modb, B4modb, 0, b, bi);
569+  udiv_rnnd_preinv (B5modb, B4modb, CNST_LIMB(0), b, bi);
570   cps[6] = B5modb >> cnt;
571
572 #if WANT_ASSERT
573diff -rNU3 dist.orig/mpn/generic/toom_interpolate_7pts.c dist.nbsd/mpn/generic/toom_interpolate_7pts.c
574--- dist.orig/mpn/generic/toom_interpolate_7pts.c	2013-09-30 12:18:29.000000000 +0200
575+++ dist.nbsd/mpn/generic/toom_interpolate_7pts.c	2013-11-30 20:05:25.000000000 +0100
576@@ -33,7 +33,7 @@
577   ((((GMP_NUMB_MAX / 9) << (6 - GMP_NUMB_BITS % 6)) * 8 & GMP_NUMB_MAX) | 0x39)
578
579 #define BINVERT_15 \
580-  ((((GMP_NUMB_MAX >> (GMP_NUMB_BITS % 4)) / 15) * 14 * 16 & GMP_NUMB_MAX) + 15))
581+  ((((GMP_NUMB_MAX >> (GMP_NUMB_BITS % 4)) / 15) * 14 * 16 & GMP_NUMB_MAX) + 15)
582
583 /* For the various mpn_divexact_byN here, fall back to using either
584    mpn_pi1_bdiv_q_1 or mpn_divexact_1.  The former has less overhead and is
585diff -rNU3 dist.orig/mpn/powerpc32/elf.m4 dist.nbsd/mpn/powerpc32/elf.m4
586--- dist.orig/mpn/powerpc32/elf.m4	2013-09-30 12:18:29.000000000 +0200
587+++ dist.nbsd/mpn/powerpc32/elf.m4	2013-12-02 14:16:49.000000000 +0100
588@@ -41,9 +41,11 @@
589 m4_assert_numargs(2)
590 `ifdef(`PIC',`
591 	mflr	r0
592-	bl	_GLOBAL_OFFSET_TABLE_@local-4
593-	mflr	$1
594+	bcl	20,31,1f
595+1:	mflr	$1
596 	mtlr	r0
597+	addis	$1,$1,_GLOBAL_OFFSET_TABLE_-1b@ha
598+	addi	$1,$1,_GLOBAL_OFFSET_TABLE_-1b@l
599 	lwz	$1, $2@got($1)
600 ',`
601 	lis	$1, $2@ha
602diff -rNU3 dist.orig/tests/rand/findlc.c dist.nbsd/tests/rand/findlc.c
603--- dist.orig/tests/rand/findlc.c	2013-09-30 12:18:29.000000000 +0200
604+++ dist.nbsd/tests/rand/findlc.c	2013-11-29 08:49:48.000000000 +0100
605@@ -27,7 +27,7 @@
606 #define RCSID(msg) \
607 static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
608
609-RCSID("$Id$");
610+RCSID("$Id: findlc.c,v 1.1.1.2 2013/11/29 07:49:48 mrg Exp $");
611
612 int g_debug = 0;
613
614