CVS commit: src/lib/libc/arch/arm/gen

2018-11-21 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Wed Nov 21 21:01:41 UTC 2018

Modified Files:
src/lib/libc/arch/arm/gen: swapcontext.S

Log Message:
Fix a comment


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/lib/libc/arch/arm/gen/swapcontext.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/swapcontext.S
diff -u src/lib/libc/arch/arm/gen/swapcontext.S:1.14 src/lib/libc/arch/arm/gen/swapcontext.S:1.15
--- src/lib/libc/arch/arm/gen/swapcontext.S:1.14	Sat Nov 30 20:20:42 2013
+++ src/lib/libc/arch/arm/gen/swapcontext.S	Wed Nov 21 21:01:41 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: swapcontext.S,v 1.14 2013/11/30 20:20:42 joerg Exp $	*/
+/*	$NetBSD: swapcontext.S,v 1.15 2018/11/21 21:01:41 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
 #include "assym.h"
 
 #if defined(LIBC_SCCS) && !defined(lint)
-RCSID("$NetBSD: swapcontext.S,v 1.14 2013/11/30 20:20:42 joerg Exp $")
+RCSID("$NetBSD: swapcontext.S,v 1.15 2018/11/21 21:01:41 skrll Exp $")
 #endif /* LIBC_SCCS && !lint */
 
 ENTRY(swapcontext)
@@ -70,7 +70,7 @@ ENTRY(swapcontext)
 #endif
 #if !defined(__thumb__)
 	str	sp, [r0, #_UC_REGS_SP]	/* Adjust saved SP. */
-	str	lr, [r0, #_UC_REGS_PC]	/* Adjust saved SP. */
+	str	lr, [r0, #_UC_REGS_PC]	/* Adjust saved PC. */
 #else
 	mov	r2, sp
 	str	r2, [r0, #_UC_REGS_SP]	/* Adjust saved SP. */



CVS commit: src/lib/libc/arch/arm/gen

2014-01-17 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Fri Jan 17 22:20:04 UTC 2014

Removed Files:
src/lib/libc/arch/arm/gen: fabs.c

Log Message:
GC


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r0 src/lib/libc/arch/arm/gen/fabs.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libc/arch/arm/gen

2013-12-25 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Wed Dec 25 22:05:12 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: Makefile.inc

Log Message:
Explicitly enable FPU support.


To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 src/lib/libc/arch/arm/gen/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/Makefile.inc
diff -u src/lib/libc/arch/arm/gen/Makefile.inc:1.25 src/lib/libc/arch/arm/gen/Makefile.inc:1.26
--- src/lib/libc/arch/arm/gen/Makefile.inc:1.25	Wed Aug 21 03:09:39 2013
+++ src/lib/libc/arch/arm/gen/Makefile.inc	Wed Dec 25 22:05:12 2013
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.25 2013/08/21 03:09:39 matt Exp $
+# $NetBSD: Makefile.inc,v 1.26 2013/12/25 22:05:12 joerg Exp $
 
 SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divide.S divsi3.S \
 	fabs.c flt_rounds.c udivsi3.S
@@ -20,6 +20,9 @@ SRCS+=	__aeabi_idiv0.c __aeabi_ldiv0.c
 SRCS+=	modsi3.S umodsi3.S
 .endif
 
+AFLAGS._setjmp.S=	-mfpu=vfp
+AFLAGS.setjmp.S=	-mfpu=vfp
+
 SRCS+=	nanf.c
 
 SRCS+=	setjmp.S



CVS commit: src/lib/libc/arch/arm/gen

2013-10-21 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Mon Oct 21 08:28:14 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: _setjmp.S

Log Message:
Fix bug introduced in revision 1.13 which meant longjmp would never
work on EABI where VFP didn't exist.

Hi gimpy!


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/lib/libc/arch/arm/gen/_setjmp.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/_setjmp.S
diff -u src/lib/libc/arch/arm/gen/_setjmp.S:1.14 src/lib/libc/arch/arm/gen/_setjmp.S:1.15
--- src/lib/libc/arch/arm/gen/_setjmp.S:1.14	Thu Sep 12 15:36:15 2013
+++ src/lib/libc/arch/arm/gen/_setjmp.S	Mon Oct 21 08:28:14 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: _setjmp.S,v 1.14 2013/09/12 15:36:15 joerg Exp $	*/
+/*	$NetBSD: _setjmp.S,v 1.15 2013/10/21 08:28:14 skrll Exp $	*/
 
 /*
  * Copyright (c) 1997 Mark Brinicombe
@@ -135,6 +135,7 @@ ENTRY(_longjmp)
 	vldmia	r3, {d8-d15}
 	ldr	r3, [r0, #(_JB_REG_FPSCR * 4)]
 	vmsr	fpscr, r3
+1:
 #endif /* __ARM_EABI__  (_ARM_ARCH_T2 || !__thumb__) */
 
 	adds	r0, r0, #(_JB_REG_R4 * 4)



CVS commit: src/lib/libc/arch/arm/gen

2013-09-04 Thread Hisashi T Fujinaka
Module Name:src
Committed By:   htodd
Date:   Wed Sep  4 22:38:09 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: swapcontext.S

Log Message:
Fix build by matching .cfi/#if.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/lib/libc/arch/arm/gen/swapcontext.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/swapcontext.S
diff -u src/lib/libc/arch/arm/gen/swapcontext.S:1.11 src/lib/libc/arch/arm/gen/swapcontext.S:1.12
--- src/lib/libc/arch/arm/gen/swapcontext.S:1.11	Wed Sep  4 21:17:15 2013
+++ src/lib/libc/arch/arm/gen/swapcontext.S	Wed Sep  4 22:38:09 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: swapcontext.S,v 1.11 2013/09/04 21:17:15 matt Exp $	*/
+/*	$NetBSD: swapcontext.S,v 1.12 2013/09/04 22:38:09 htodd Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
 #include assym.h
 
 #if defined(LIBC_SCCS)  !defined(lint)
-RCSID($NetBSD: swapcontext.S,v 1.11 2013/09/04 21:17:15 matt Exp $)
+RCSID($NetBSD: swapcontext.S,v 1.12 2013/09/04 22:38:09 htodd Exp $)
 #endif /* LIBC_SCCS  !lint */
 
 ENTRY(swapcontext)
@@ -52,7 +52,7 @@ ENTRY(swapcontext)
 #endif
 	bl	PIC_SYM(_C_LABEL(_getcontext), PLT)  /* getcontext(oucp) */
 	cmp	r0, #0
-#if !defined(__thumb__)
+#if !defined(__thumb__)  defined(__UNWIND_TABLES__)
 	pop	{r0-r2, lr}
 	.cfi_def_cfa_offset 0
 	RETc(ne)



CVS commit: src/lib/libc/arch/arm/gen

2013-09-04 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Wed Sep  4 23:08:29 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: swapcontext.S

Log Message:
Fix the .cfi correctly.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/lib/libc/arch/arm/gen/swapcontext.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/swapcontext.S
diff -u src/lib/libc/arch/arm/gen/swapcontext.S:1.12 src/lib/libc/arch/arm/gen/swapcontext.S:1.13
--- src/lib/libc/arch/arm/gen/swapcontext.S:1.12	Wed Sep  4 22:38:09 2013
+++ src/lib/libc/arch/arm/gen/swapcontext.S	Wed Sep  4 23:08:29 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: swapcontext.S,v 1.12 2013/09/04 22:38:09 htodd Exp $	*/
+/*	$NetBSD: swapcontext.S,v 1.13 2013/09/04 23:08:29 matt Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
 #include assym.h
 
 #if defined(LIBC_SCCS)  !defined(lint)
-RCSID($NetBSD: swapcontext.S,v 1.12 2013/09/04 22:38:09 htodd Exp $)
+RCSID($NetBSD: swapcontext.S,v 1.13 2013/09/04 23:08:29 matt Exp $)
 #endif /* LIBC_SCCS  !lint */
 
 ENTRY(swapcontext)
@@ -52,9 +52,11 @@ ENTRY(swapcontext)
 #endif
 	bl	PIC_SYM(_C_LABEL(_getcontext), PLT)  /* getcontext(oucp) */
 	cmp	r0, #0
-#if !defined(__thumb__)  defined(__UNWIND_TABLES__)
+#if !defined(__thumb__)
 	pop	{r0-r2, lr}
+#if defined(__ARM_EABI__)  defined(__UNWIND_TABLES__)
 	.cfi_def_cfa_offset 0
+#endif
 	RETc(ne)
 #else
 	pop	{r0-r3}



CVS commit: src/lib/libc/arch/arm/gen

2013-08-20 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Wed Aug 21 03:09:39 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: Makefile.inc

Log Message:
divide.S need -marm


To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/lib/libc/arch/arm/gen/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/Makefile.inc
diff -u src/lib/libc/arch/arm/gen/Makefile.inc:1.24 src/lib/libc/arch/arm/gen/Makefile.inc:1.25
--- src/lib/libc/arch/arm/gen/Makefile.inc:1.24	Thu Jun 20 17:53:01 2013
+++ src/lib/libc/arch/arm/gen/Makefile.inc	Wed Aug 21 03:09:39 2013
@@ -1,8 +1,10 @@
-# $NetBSD: Makefile.inc,v 1.24 2013/06/20 17:53:01 msaitoh Exp $
+# $NetBSD: Makefile.inc,v 1.25 2013/08/21 03:09:39 matt Exp $
 
 SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divide.S divsi3.S \
 	fabs.c flt_rounds.c udivsi3.S
 
+CPUFLAGS.divide.S+=		-marm
+
 # Common ieee754 constants and functions
 SRCS+=	infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
 SRCS+=	fpclassifyf_ieee754.c fpclassifyd_ieee754.c



CVS commit: src/lib/libc/arch/arm/gen

2013-08-16 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sat Aug 17 01:07:45 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: alloca.S

Log Message:
Thumbify  add END


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/lib/libc/arch/arm/gen/alloca.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/alloca.S
diff -u src/lib/libc/arch/arm/gen/alloca.S:1.4 src/lib/libc/arch/arm/gen/alloca.S:1.5
--- src/lib/libc/arch/arm/gen/alloca.S:1.4	Sat Aug 21 11:20:10 2004
+++ src/lib/libc/arch/arm/gen/alloca.S	Sat Aug 17 01:07:45 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: alloca.S,v 1.4 2004/08/21 11:20:10 rearnsha Exp $	*/
+/*	$NetBSD: alloca.S,v 1.5 2013/08/17 01:07:45 matt Exp $	*/
 
 /*
  * Copyright (c) 1995 Mark Brinicombe
@@ -37,8 +37,17 @@
 #include machine/asm.h
 
 ENTRY(alloca)
-	add	r0, r0, #0x0007	/* round up to next 8 byte alignment */
-	bic	r0, r0, #0x0007
-	sub	sp, sp, r0		/* Adjust the stack pointer */
-	mov	r0, sp			/* r0 = base of new space */
+	adds	r0, r0, #7	/* round up to next 8 byte alignment */
+#if !defined(__thumb__) || defined(_ARM_ARCH_T2)
+	bics	r0, r0, #7
+	sub	sp, sp, r0	/* Adjust the stack pointer */
+	mov	r0, sp		/* r0 = base of new space */
+#else
+	lsrs	r0, r0, #3
+	lsls	r0, r0, #3
+	mov	r1, sp
+	subs	r0, r1, r0	/* Adjust the stack pointer */
+	mov	sp, r0		/* r0 = base of new space */
+#endif
 	RET
+END(alloca)



CVS commit: src/lib/libc/arch/arm/gen

2013-06-20 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Jun 20 07:18:40 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: Makefile.inc

Log Message:
modsi3/umodsi3 is not needed for earm since __aeabi_*divmod takes care of it.


To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 src/lib/libc/arch/arm/gen/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/Makefile.inc
diff -u src/lib/libc/arch/arm/gen/Makefile.inc:1.22 src/lib/libc/arch/arm/gen/Makefile.inc:1.23
--- src/lib/libc/arch/arm/gen/Makefile.inc:1.22	Tue Apr 30 01:42:04 2013
+++ src/lib/libc/arch/arm/gen/Makefile.inc	Thu Jun 20 07:18:40 2013
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile.inc,v 1.22 2013/04/30 01:42:04 matt Exp $
+# $NetBSD: Makefile.inc,v 1.23 2013/06/20 07:18:40 matt Exp $
 
-SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divsi3.S \
-	fabs.c flt_rounds.c modsi3.S umodsi3.S divide.S divsi3.S udivsi3.S
+SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divide.S divsi3.S \
+	fabs.c flt_rounds.c udivsi3.S
 
 # Common ieee754 constants and functions
 SRCS+=	infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
@@ -14,6 +14,8 @@ SRCS+=	signbitf_ieee754.c signbitd_ieee7
 .if !empty(LIBC_MACHINE_ARCH:Mearm*)
 SRCS+=	__aeabi_fcmpun.c __aeabi_dcmpun.c
 SRCS+=	__aeabi_idiv0.c __aeabi_ldiv0.c
+.else
+SRCS+=	modsi3.s umodsi3.S
 .endif
 
 SRCS+=	nanf.c



CVS commit: src/lib/libc/arch/arm/gen

2013-06-20 Thread SAITOH Masanobu
Module Name:src
Committed By:   msaitoh
Date:   Thu Jun 20 17:53:01 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: Makefile.inc

Log Message:
Fix compile error.


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/lib/libc/arch/arm/gen/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/Makefile.inc
diff -u src/lib/libc/arch/arm/gen/Makefile.inc:1.23 src/lib/libc/arch/arm/gen/Makefile.inc:1.24
--- src/lib/libc/arch/arm/gen/Makefile.inc:1.23	Thu Jun 20 07:18:40 2013
+++ src/lib/libc/arch/arm/gen/Makefile.inc	Thu Jun 20 17:53:01 2013
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.23 2013/06/20 07:18:40 matt Exp $
+# $NetBSD: Makefile.inc,v 1.24 2013/06/20 17:53:01 msaitoh Exp $
 
 SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divide.S divsi3.S \
 	fabs.c flt_rounds.c udivsi3.S
@@ -15,7 +15,7 @@ SRCS+=	signbitf_ieee754.c signbitd_ieee7
 SRCS+=	__aeabi_fcmpun.c __aeabi_dcmpun.c
 SRCS+=	__aeabi_idiv0.c __aeabi_ldiv0.c
 .else
-SRCS+=	modsi3.s umodsi3.S
+SRCS+=	modsi3.S umodsi3.S
 .endif
 
 SRCS+=	nanf.c



CVS commit: src/lib/libc/arch/arm/gen

2013-04-19 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Fri Apr 19 13:14:11 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: _setjmp.S setjmp.S

Log Message:
Actually fail if the magic number is found to be wrong in  __longjmp.

Avoid overwriting the {,_}longjmp return value in __ARM_EABI__

ok matt@


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/lib/libc/arch/arm/gen/_setjmp.S
cvs rdiff -u -r1.12 -r1.13 src/lib/libc/arch/arm/gen/setjmp.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/_setjmp.S
diff -u src/lib/libc/arch/arm/gen/_setjmp.S:1.10 src/lib/libc/arch/arm/gen/_setjmp.S:1.11
--- src/lib/libc/arch/arm/gen/_setjmp.S:1.10	Tue Jan 29 19:23:09 2013
+++ src/lib/libc/arch/arm/gen/_setjmp.S	Fri Apr 19 13:14:10 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: _setjmp.S,v 1.10 2013/01/29 19:23:09 matt Exp $	*/
+/*	$NetBSD: _setjmp.S,v 1.11 2013/04/19 13:14:10 skrll Exp $	*/
 
 /*
  * Copyright (c) 1997 Mark Brinicombe
@@ -107,10 +107,10 @@ ENTRY(_longjmp)
 #ifdef __ARM_EABI__
 	teq	r3, r2/* did magic change? */
 	beq	1f/*   no, don't restore VFP */
-	add	r1, r0, #(_JB_REG_D8 * 4)
-	vldmia	r1, {d8-d15}
-	ldr	r1, [r0, #(_JB_REG_FPSCR * 4)]
-	vmsr	fpscr, r1
+	add	ip, r0, #(_JB_REG_D8 * 4)
+	vldmia	ip, {d8-d15}
+	ldr	ip, [r0, #(_JB_REG_FPSCR * 4)]
+	vmsr	fpscr, ip
 1:
 #endif /* __ARM_EABI__ */
 

Index: src/lib/libc/arch/arm/gen/setjmp.S
diff -u src/lib/libc/arch/arm/gen/setjmp.S:1.12 src/lib/libc/arch/arm/gen/setjmp.S:1.13
--- src/lib/libc/arch/arm/gen/setjmp.S:1.12	Tue Jan 29 19:23:09 2013
+++ src/lib/libc/arch/arm/gen/setjmp.S	Fri Apr 19 13:14:10 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: setjmp.S,v 1.12 2013/01/29 19:23:09 matt Exp $	*/
+/*	$NetBSD: setjmp.S,v 1.13 2013/04/19 13:14:10 skrll Exp $	*/
 
 /*
  * Copyright (c) 1997 Mark Brinicombe
@@ -105,6 +105,7 @@ ENTRY(__longjmp14)
 	ldr	ip, .Lsetjmp_magic
 	bic	r3, r2, #(_JB_MAGIC_SETJMP ^ _JB_MAGIC_SETJMP_VFP)
 	teq	r3, ip
+	bne	.Lbotch
 
 	/* Restore the signal mask. */
 	stmfd	sp!, {r0-r2, r14}
@@ -118,10 +119,10 @@ ENTRY(__longjmp14)
 	tst	r2, #(_JB_MAGIC_SETJMP ^ _JB_MAGIC_SETJMP_VFP)
 		/* is this a VFP magic? */
 	beq	1f/*   no, don't restore VFP */
-	add	r1, r0, #(_JB_REG_D8 * 4)
-	vldmia	r1, {d8-d15}
-	ldr	r1, [r0, #(_JB_REG_FPSCR * 4)]
-	vmsr	fpscr, r1
+	add	ip, r0, #(_JB_REG_D8 * 4)
+	vldmia	ip, {d8-d15}
+	ldr	ip, [r0, #(_JB_REG_FPSCR * 4)]
+	vmsr	fpscr, ip
 1:
 #endif /* __ARM_EABI__ */
 



CVS commit: src/lib/libc/arch/arm/gen

2013-04-19 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Fri Apr 19 13:45:46 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: _setjmp.S setjmp.S

Log Message:
A small optimization


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/lib/libc/arch/arm/gen/_setjmp.S
cvs rdiff -u -r1.13 -r1.14 src/lib/libc/arch/arm/gen/setjmp.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/_setjmp.S
diff -u src/lib/libc/arch/arm/gen/_setjmp.S:1.11 src/lib/libc/arch/arm/gen/_setjmp.S:1.12
--- src/lib/libc/arch/arm/gen/_setjmp.S:1.11	Fri Apr 19 13:14:10 2013
+++ src/lib/libc/arch/arm/gen/_setjmp.S	Fri Apr 19 13:45:45 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: _setjmp.S,v 1.11 2013/04/19 13:14:10 skrll Exp $	*/
+/*	$NetBSD: _setjmp.S,v 1.12 2013/04/19 13:45:45 matt Exp $	*/
 
 /*
  * Copyright (c) 1997 Mark Brinicombe
@@ -124,8 +124,7 @@ ENTRY(_longjmp)
 	beq	botch
 
 	/* Set return value */
-	mov	r0, r1
-	teq	r0, #0x
+	movs	r0, r1
 	moveq	r0, #0x0001
 	RET
 

Index: src/lib/libc/arch/arm/gen/setjmp.S
diff -u src/lib/libc/arch/arm/gen/setjmp.S:1.13 src/lib/libc/arch/arm/gen/setjmp.S:1.14
--- src/lib/libc/arch/arm/gen/setjmp.S:1.13	Fri Apr 19 13:14:10 2013
+++ src/lib/libc/arch/arm/gen/setjmp.S	Fri Apr 19 13:45:45 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: setjmp.S,v 1.13 2013/04/19 13:14:10 skrll Exp $	*/
+/*	$NetBSD: setjmp.S,v 1.14 2013/04/19 13:45:45 matt Exp $	*/
 
 /*
  * Copyright (c) 1997 Mark Brinicombe
@@ -136,9 +136,7 @@ ENTRY(__longjmp14)
 	beq	.Lbotch
 
 	/* Set return value */
-
-	mov	r0, r1
-	teq	r0, #0x
+	movs	r0, r1
 	moveq	r0, #0x0001
 	RET
 



CVS commit: src/lib/libc/arch/arm/gen

2013-01-29 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Tue Jan 29 19:23:09 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: _setjmp.S setjmp.S

Log Message:
AAPCS (EABI) requires that VFP D8-D15 are always saved, regardless whether
the soft float or hard float ABI is being used.  However, if there isn't a
FPU that can't be done.  So only save/restore them if a FPU is present. When
libc initializes, it does a sysctl to determine if there is a FPU and stores
the result which _setjmp/setjmp uses.  If there was a FPU, the magic in the
jmp_buf is changed to reflect that the VFP registers were saved.  longjmp uses
the magic to determine if it needs to restore the VFP registers.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/lib/libc/arch/arm/gen/_setjmp.S
cvs rdiff -u -r1.11 -r1.12 src/lib/libc/arch/arm/gen/setjmp.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/_setjmp.S
diff -u src/lib/libc/arch/arm/gen/_setjmp.S:1.9 src/lib/libc/arch/arm/gen/_setjmp.S:1.10
--- src/lib/libc/arch/arm/gen/_setjmp.S:1.9	Fri Jan 25 08:52:16 2013
+++ src/lib/libc/arch/arm/gen/_setjmp.S	Tue Jan 29 19:23:09 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: _setjmp.S,v 1.9 2013/01/25 08:52:16 matt Exp $	*/
+/*	$NetBSD: _setjmp.S,v 1.10 2013/01/29 19:23:09 matt Exp $	*/
 
 /*
  * Copyright (c) 1997 Mark Brinicombe
@@ -36,6 +36,10 @@
 #error FPA is not supported anymore
 #endif
 
+#ifdef __ARM_EABI__
+	.fpu	vfp
+#endif
+
 #include machine/asm.h
 #include machine/setjmp.h
 
@@ -49,19 +53,33 @@
  * The previous signal state is NOT restored.
  *
  * Note: r0 is the return value
- *   r1-r3 are scratch registers in functions
+ *   r1-r3,ip are scratch registers in functions
  */
 
 ENTRY(_setjmp)
 	ldr	r1, .L_setjmp_magic
-	str	r1, [r0]
 
-#ifdef __ARM_PCS_VFP
-	add	r1, r0, #(_JB_REG_D8 * 4)
-	vstmia	r1, {d8-d15}
-	vmrs	r1, fpscr
-	str	r1, [r0, #(_JB_REG_FPSCR * 4)]
-#endif /* __ARM_PCS_VFP */
+#ifdef __ARM_EABI__
+	ldr	r2, .Lfpu_present
+#ifdef PIC
+	GOT_INIT(r3, .L_setjmp_got, .L_setjmp_gotinit)
+	ldr	r2, [r2, r3]
+#else
+	ldr	r2, [r2]
+#endif
+	teq	r2, #0		/* do we have a FPU? */
+	beq	1f		/*   no, don't save VFP registers */
+
+	orr	r1, r1, #(_JB_MAGIC__SETJMP ^ _JB_MAGIC__SETJMP_VFP)
+/* change magic to VFP magic */
+	add	r2, r0, #(_JB_REG_D8 * 4)
+	vstmia	r2, {d8-d15}
+	vmrs	r2, fpscr
+	str	r2, [r0, #(_JB_REG_FPSCR * 4)]
+1:
+#endif /* __ARM_EABI__ */
+
+	str	r1, [r0]
 
 	add	r0, r0, #(_JB_REG_R4 * 4)
 	/* Store integer registers */
@@ -71,24 +89,30 @@ ENTRY(_setjmp)
 RET
 
 .L_setjmp_magic:
-#ifdef __ARM_PCS_VFP
-	.word	_JB_MAGIC__SETJMP_VFP
-#else
 	.word	_JB_MAGIC__SETJMP
-#endif
+#ifdef __ARM_EABI__
+	GOT_INITSYM(.L_setjmp_got, .L_setjmp_gotinit)
+.Lfpu_present:
+	.word	PIC_SYM(_libc_arm_fpu_present, GOTOFF)
+#endif /* __ARM_EABI__ */
 
 ENTRY(_longjmp)
-	ldr	r2, .L_setjmp_magic
-	ldr	r3, [r0]
-	teq	r2, r3
-	bne	botch
-
-#ifdef __ARM_PCS_VFP
+	ldr	r2, [r0]			/* get magic from jmp_buf */
+	bic	r3, r2, #(_JB_MAGIC__SETJMP ^ _JB_MAGIC__SETJMP_VFP)
+		/* ignore VFP-ness of magic */
+	ldr	ip, .L_setjmp_magic		/* load magic */
+	teq	ip, r3/* magic correct? */
+	bne	botch/*   no, botch */
+
+#ifdef __ARM_EABI__
+	teq	r3, r2/* did magic change? */
+	beq	1f/*   no, don't restore VFP */
 	add	r1, r0, #(_JB_REG_D8 * 4)
 	vldmia	r1, {d8-d15}
 	ldr	r1, [r0, #(_JB_REG_FPSCR * 4)]
 	vmsr	fpscr, r1
-#endif /* __ARM_PCS_VFP */
+1:
+#endif /* __ARM_EABI__ */
 
 	add	r0, r0, #(_JB_REG_R4 * 4)
	/* Restore integer registers */

Index: src/lib/libc/arch/arm/gen/setjmp.S
diff -u src/lib/libc/arch/arm/gen/setjmp.S:1.11 src/lib/libc/arch/arm/gen/setjmp.S:1.12
--- src/lib/libc/arch/arm/gen/setjmp.S:1.11	Fri Jan 25 08:52:16 2013
+++ src/lib/libc/arch/arm/gen/setjmp.S	Tue Jan 29 19:23:09 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: setjmp.S,v 1.11 2013/01/25 08:52:16 matt Exp $	*/
+/*	$NetBSD: setjmp.S,v 1.12 2013/01/29 19:23:09 matt Exp $	*/
 
 /*
  * Copyright (c) 1997 Mark Brinicombe
@@ -36,6 +36,10 @@
 #error FPA is not supported anymore
 #endif
 
+#ifdef __ARM_EABI__
+	.fpu	vfp
+#endif
+
 #include machine/asm.h
 #include machine/setjmp.h
 
@@ -59,14 +63,28 @@ ENTRY(__setjmp14)
 	ldmfd	sp!, {r0-r2, r14}
 
 	ldr	r1, .Lsetjmp_magic
-	str	r1, [r0]
 
-#ifdef __ARM_PCS_VFP
-	add	r1, r0, #(_JB_REG_D8 * 4)
-	vstmia	r1, {d8-d15}
-	vmrs	r1, fpscr
-	str	r1, [r0, #(_JB_REG_FPSCR * 4)]
-#endif /* __ARM_PCS_VFP */
+#ifdef __ARM_EABI__
+	ldr	r2, .Lfpu_present
+#ifdef PIC
+	GOT_INIT(r3, .Lsetjmp_got, .Lsetjmp_gotinit)
+	ldr	r2, [r2, r3]
+#else
+	ldr	r2, [r2]
+#endif
+	teq	r2, #0		/* do we have a FPU? */
+	beq	1f		/*   no, don't save VFP registers */
+
+	orr	r1, r1, #(_JB_MAGIC_SETJMP ^ _JB_MAGIC_SETJMP_VFP)
+/* change magic to VFP magic */
+	add	r2, r0, #(_JB_REG_D8 * 4)
+	vstmia	r2, {d8-d15}
+	vmrs	r2, fpscr
+	str	r2, [r0, #(_JB_REG_FPSCR * 4)]
+1:
+#endif /* __ARM_EABI__ */
+
+	str	r1, [r0]		/* 

CVS commit: src/lib/libc/arch/arm/gen

2013-01-25 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Fri Jan 25 08:52:16 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: _setjmp.S setjmp.S

Log Message:
Use __ARM_PCS_VFP to determine whether the VFP is being used.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libc/arch/arm/gen/_setjmp.S
cvs rdiff -u -r1.10 -r1.11 src/lib/libc/arch/arm/gen/setjmp.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/_setjmp.S
diff -u src/lib/libc/arch/arm/gen/_setjmp.S:1.8 src/lib/libc/arch/arm/gen/_setjmp.S:1.9
--- src/lib/libc/arch/arm/gen/_setjmp.S:1.8	Fri Jan 11 13:55:25 2013
+++ src/lib/libc/arch/arm/gen/_setjmp.S	Fri Jan 25 08:52:16 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: _setjmp.S,v 1.8 2013/01/11 13:55:25 matt Exp $	*/
+/*	$NetBSD: _setjmp.S,v 1.9 2013/01/25 08:52:16 matt Exp $	*/
 
 /*
  * Copyright (c) 1997 Mark Brinicombe
@@ -32,7 +32,7 @@
  * SUCH DAMAGE.
  */
 
-#if !defined(__SOFTFP__)  !defined(__VFP_FP__)
+#if !defined(__SOFTFP__)  !defined(__VFP_FP__)  !defined(__ARM_PCS)
 #error FPA is not supported anymore
 #endif
 
@@ -56,12 +56,12 @@ ENTRY(_setjmp)
 	ldr	r1, .L_setjmp_magic
 	str	r1, [r0]
 
-#ifndef __SOFTFP__
+#ifdef __ARM_PCS_VFP
 	add	r1, r0, #(_JB_REG_D8 * 4)
 	vstmia	r1, {d8-d15}
 	vmrs	r1, fpscr
 	str	r1, [r0, #(_JB_REG_FPSCR * 4)]
-#endif
+#endif /* __ARM_PCS_VFP */
 
 	add	r0, r0, #(_JB_REG_R4 * 4)
 	/* Store integer registers */
@@ -71,10 +71,10 @@ ENTRY(_setjmp)
 RET
 
 .L_setjmp_magic:
-#ifdef __SOFTFP__
-	.word	_JB_MAGIC__SETJMP
-#else
+#ifdef __ARM_PCS_VFP
 	.word	_JB_MAGIC__SETJMP_VFP
+#else
+	.word	_JB_MAGIC__SETJMP
 #endif
 
 ENTRY(_longjmp)
@@ -83,12 +83,12 @@ ENTRY(_longjmp)
 	teq	r2, r3
 	bne	botch
 
-#ifndef __SOFTFP__
+#ifdef __ARM_PCS_VFP
 	add	r1, r0, #(_JB_REG_D8 * 4)
 	vldmia	r1, {d8-d15}
 	ldr	r1, [r0, #(_JB_REG_FPSCR * 4)]
 	vmsr	fpscr, r1
-#endif
+#endif /* __ARM_PCS_VFP */
 
 	add	r0, r0, #(_JB_REG_R4 * 4)
	/* Restore integer registers */

Index: src/lib/libc/arch/arm/gen/setjmp.S
diff -u src/lib/libc/arch/arm/gen/setjmp.S:1.10 src/lib/libc/arch/arm/gen/setjmp.S:1.11
--- src/lib/libc/arch/arm/gen/setjmp.S:1.10	Fri Jan 11 13:55:25 2013
+++ src/lib/libc/arch/arm/gen/setjmp.S	Fri Jan 25 08:52:16 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: setjmp.S,v 1.10 2013/01/11 13:55:25 matt Exp $	*/
+/*	$NetBSD: setjmp.S,v 1.11 2013/01/25 08:52:16 matt Exp $	*/
 
 /*
  * Copyright (c) 1997 Mark Brinicombe
@@ -32,7 +32,7 @@
  * SUCH DAMAGE.
  */
 
-#if !defined(__SOFTFP__)  !defined(__VFP_FP__)
+#if !defined(__SOFTFP__)  !defined(__VFP_FP__)  !defined(__ARM_PCS)
 #error FPA is not supported anymore
 #endif
 
@@ -61,12 +61,12 @@ ENTRY(__setjmp14)
 	ldr	r1, .Lsetjmp_magic
 	str	r1, [r0]
 
-#ifndef __SOFTFP__
+#ifdef __ARM_PCS_VFP
 	add	r1, r0, #(_JB_REG_D8 * 4)
 	vstmia	r1, {d8-d15}
 	vmrs	r1, fpscr
 	str	r1, [r0, #(_JB_REG_FPSCR * 4)]
-#endif /* !__SOFTFP__ */
+#endif /* __ARM_PCS_VFP */
 
 	/* Store integer registers */
 	add	r0, r0, #(_JB_REG_R4 * 4)
@@ -75,10 +75,10 @@ ENTRY(__setjmp14)
 RET
 
 .Lsetjmp_magic:
-#ifdef __SOFTFP__
-	.word	_JB_MAGIC_SETJMP
-#else
+#ifdef __ARM_PCS_VFP
 	.word	_JB_MAGIC_SETJMP_VFP
+#else
+	.word	_JB_MAGIC_SETJMP
 #endif
 
 
@@ -96,12 +96,12 @@ ENTRY(__longjmp14)
 	bl	PIC_SYM(_C_LABEL(__sigprocmask14), PLT)
 	ldmfd	sp!, {r0-r2, r14}
 
-#ifndef __SOFTFP__
+#ifdef __ARM_PCS_VFP
 	add	r1, r0, #(_JB_REG_D8 * 4)
 	vldmia	r1, {d8-d15}
 	ldr	r1, [r0, #(_JB_REG_FPSCR * 4)]
 	vmsr	fpscr, r1
-#endif /* !__SOFTFP__ */
+#endif /* __ARM_PCS_VFP */
 
 	add	r0, r0, #(_JB_REG_R4 * 4)
 	/* Restore integer registers */



CVS commit: src/lib/libc/arch/arm/gen

2013-01-25 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sat Jan 26 07:04:23 UTC 2013

Added Files:
src/lib/libc/arch/arm/gen: __aeabi_dcmpun.c __aeabi_fcmpun.c

Log Message:
Add __aeabi_[fd]cmpun for IEEE unordered compares (requires by ARM RTABI).


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/lib/libc/arch/arm/gen/__aeabi_dcmpun.c \
src/lib/libc/arch/arm/gen/__aeabi_fcmpun.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: src/lib/libc/arch/arm/gen/__aeabi_dcmpun.c
diff -u /dev/null src/lib/libc/arch/arm/gen/__aeabi_dcmpun.c:1.1
--- /dev/null	Sat Jan 26 07:04:23 2013
+++ src/lib/libc/arch/arm/gen/__aeabi_dcmpun.c	Sat Jan 26 07:04:22 2013
@@ -0,0 +1,54 @@
+/*-
+ * Copyright (c) 2013 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Matt Thomas of 3am Software Foundry.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include sys/cdefs.h
+#if defined(LIBC_SCCS)  !defined(lint)
+__RCSID($NetBSD: __aeabi_dcmpun.c,v 1.1 2013/01/26 07:04:22 matt Exp $);
+#endif /* LIBC_SCCS and not lint */
+
+#include arm/aeabi.h
+#include arm/ieee.h
+
+#include math.h
+
+/*
+ * result (1, 0) denotes (?, =) [2], use for C99 isunordered()
+ */
+
+int
+__aeabi_dcmpun(double x, double y)
+{
+	const union ieee_double_u ux = { .dblu_d = x };
+	const union ieee_double_u uy = { .dblu_d = y };
+
+	return (ux.dblu_dbl.dbl_exp == DBL_EXP_INFNAN
+		 (ux.dblu_dbl.dbl_frach|ux.dblu_dbl.dbl_fracl) != 0)
+	|| (uy.dblu_dbl.dbl_exp == DBL_EXP_INFNAN
+		 (uy.dblu_dbl.dbl_frach|uy.dblu_dbl.dbl_fracl) != 0);
+}
Index: src/lib/libc/arch/arm/gen/__aeabi_fcmpun.c
diff -u /dev/null src/lib/libc/arch/arm/gen/__aeabi_fcmpun.c:1.1
--- /dev/null	Sat Jan 26 07:04:23 2013
+++ src/lib/libc/arch/arm/gen/__aeabi_fcmpun.c	Sat Jan 26 07:04:22 2013
@@ -0,0 +1,54 @@
+/*-
+ * Copyright (c) 2013 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Matt Thomas of 3am Software Foundry.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include sys/cdefs.h
+#if defined(LIBC_SCCS)  !defined(lint)
+__RCSID($NetBSD: __aeabi_fcmpun.c,v 1.1 2013/01/26 07:04:22 matt Exp $);
+#endif /* LIBC_SCCS and not lint */
+
+#include arm/aeabi.h
+#include arm/ieee.h
+

CVS commit: src/lib/libc/arch/arm/gen

2012-11-27 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Wed Nov 28 02:18:25 UTC 2012

Modified Files:
src/lib/libc/arch/arm/gen: swapcontext.S

Log Message:
Add missing registers.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libc/arch/arm/gen/swapcontext.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/swapcontext.S
diff -u src/lib/libc/arch/arm/gen/swapcontext.S:1.8 src/lib/libc/arch/arm/gen/swapcontext.S:1.9
--- src/lib/libc/arch/arm/gen/swapcontext.S:1.8	Thu Sep 27 11:20:20 2012
+++ src/lib/libc/arch/arm/gen/swapcontext.S	Wed Nov 28 02:18:24 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: swapcontext.S,v 1.8 2012/09/27 11:20:20 skrll Exp $	*/
+/*	$NetBSD: swapcontext.S,v 1.9 2012/11/28 02:18:24 matt Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -33,15 +33,15 @@
 #include assym.h
 
 #if defined(LIBC_SCCS)  !defined(lint)
-RCSID($NetBSD: swapcontext.S,v 1.8 2012/09/27 11:20:20 skrll Exp $)
+RCSID($NetBSD: swapcontext.S,v 1.9 2012/11/28 02:18:24 matt Exp $)
 #endif /* LIBC_SCCS  !lint */
 
 ENTRY(swapcontext)
 	stmfd	sp!, {r0-r1, lr}	/* Must save oucp, ucp, lr. */
-	sub	sp, #4
+	sub	sp, sp, #4
 	bl	PIC_SYM(_C_LABEL(_getcontext), PLT)  /* getcontext(oucp) */
 	cmp	r0, #0
-	add	sp, #4
+	add	sp, sp, #4
 	ldmfd	sp!, {r0-r1, lr}
 	RETc(ne)
 	str	sp, [r0, #_UC_REGS_SP]	/* Adjust saved SP. */



CVS commit: src/lib/libc/arch/arm/gen

2012-10-30 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Oct 30 12:42:37 UTC 2012

Modified Files:
src/lib/libc/arch/arm/gen: Makefile.inc

Log Message:
add new files to fix static linking


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/lib/libc/arch/arm/gen/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/Makefile.inc
diff -u src/lib/libc/arch/arm/gen/Makefile.inc:1.19 src/lib/libc/arch/arm/gen/Makefile.inc:1.20
--- src/lib/libc/arch/arm/gen/Makefile.inc:1.19	Tue Oct  9 22:15:03 2012
+++ src/lib/libc/arch/arm/gen/Makefile.inc	Tue Oct 30 08:42:37 2012
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile.inc,v 1.19 2012/10/10 02:15:03 christos Exp $
+# $NetBSD: Makefile.inc,v 1.20 2012/10/30 12:42:37 christos Exp $
 
 SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divsi3.S \
-	fabs.c flt_rounds.c modsi3.S umodsi3.S
+	fabs.c flt_rounds.c modsi3.S umodsi3.S divide.S divsi3.S udivsi3.S
 
 # Common ieee754 constants and functions
 SRCS+=	infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c



CVS commit: src/lib/libc/arch/arm/gen

2012-10-09 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Wed Oct 10 02:15:03 UTC 2012

Modified Files:
src/lib/libc/arch/arm/gen: Makefile.inc

Log Message:
add split files


To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 src/lib/libc/arch/arm/gen/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/Makefile.inc
diff -u src/lib/libc/arch/arm/gen/Makefile.inc:1.18 src/lib/libc/arch/arm/gen/Makefile.inc:1.19
--- src/lib/libc/arch/arm/gen/Makefile.inc:1.18	Mon Jul 30 08:57:54 2012
+++ src/lib/libc/arch/arm/gen/Makefile.inc	Tue Oct  9 22:15:03 2012
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile.inc,v 1.18 2012/07/30 12:57:54 skrll Exp $
+# $NetBSD: Makefile.inc,v 1.19 2012/10/10 02:15:03 christos Exp $
 
 SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divsi3.S \
-	fabs.c flt_rounds.c
+	fabs.c flt_rounds.c modsi3.S umodsi3.S
 
 # Common ieee754 constants and functions
 SRCS+=	infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c



CVS commit: src/lib/libc/arch/arm/gen

2012-09-27 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Thu Sep 27 09:53:53 UTC 2012

Modified Files:
src/lib/libc/arch/arm/gen: swapcontext.S

Log Message:
Fixup the stack pointer in the ucontext returned by getcontext.

This fixes the following tests

lib/libc/sys/t_swapcontext.c
lib/libpthread/t_swapcontext.c


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libc/arch/arm/gen/swapcontext.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/swapcontext.S
diff -u src/lib/libc/arch/arm/gen/swapcontext.S:1.6 src/lib/libc/arch/arm/gen/swapcontext.S:1.7
--- src/lib/libc/arch/arm/gen/swapcontext.S:1.6	Sun Aug  5 05:10:38 2012
+++ src/lib/libc/arch/arm/gen/swapcontext.S	Thu Sep 27 09:53:53 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: swapcontext.S,v 1.6 2012/08/05 05:10:38 skrll Exp $	*/
+/*	$NetBSD: swapcontext.S,v 1.7 2012/09/27 09:53:53 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
 #include SYS.h
 
 #if defined(LIBC_SCCS)  !defined(lint)
-RCSID($NetBSD: swapcontext.S,v 1.6 2012/08/05 05:10:38 skrll Exp $)
+RCSID($NetBSD: swapcontext.S,v 1.7 2012/09/27 09:53:53 skrll Exp $)
 #endif /* LIBC_SCCS  !lint */
 
 ENTRY(swapcontext)
@@ -43,6 +43,7 @@ ENTRY(swapcontext)
 	add	sp, #4
 	ldmfd	sp!, {r0-r1, lr}
 	RETc(ne)
+	str	sp, [r0, #(36 + 13*4)]	/* Adjust saved SP. */
 	str	lr, [r0, #(36 + 15*4)]	/* Adjust saved PC. */
 #ifdef SOFTFLOAT
 	/* Ahem. */



CVS commit: src/lib/libc/arch/arm/gen

2012-08-04 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Sun Aug  5 05:10:38 UTC 2012

Modified Files:
src/lib/libc/arch/arm/gen: swapcontext.S

Log Message:
Ensure stack alignment. looks fine matt@


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libc/arch/arm/gen/swapcontext.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/swapcontext.S
diff -u src/lib/libc/arch/arm/gen/swapcontext.S:1.5 src/lib/libc/arch/arm/gen/swapcontext.S:1.6
--- src/lib/libc/arch/arm/gen/swapcontext.S:1.5	Mon Apr 28 20:22:55 2008
+++ src/lib/libc/arch/arm/gen/swapcontext.S	Sun Aug  5 05:10:38 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: swapcontext.S,v 1.5 2008/04/28 20:22:55 martin Exp $	*/
+/*	$NetBSD: swapcontext.S,v 1.6 2012/08/05 05:10:38 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -32,13 +32,15 @@
 #include SYS.h
 
 #if defined(LIBC_SCCS)  !defined(lint)
-RCSID($NetBSD: swapcontext.S,v 1.5 2008/04/28 20:22:55 martin Exp $)
+RCSID($NetBSD: swapcontext.S,v 1.6 2012/08/05 05:10:38 skrll Exp $)
 #endif /* LIBC_SCCS  !lint */
 
 ENTRY(swapcontext)
 	stmfd	sp!, {r0-r1, lr}	/* Must save oucp, ucp, lr. */
+	sub	sp, #4
 	bl	PIC_SYM(_C_LABEL(_getcontext), PLT)  /* getcontext(oucp) */
 	cmp	r0, #0
+	add	sp, #4
 	ldmfd	sp!, {r0-r1, lr}
 	RETc(ne)
 	str	lr, [r0, #(36 + 15*4)]	/* Adjust saved PC. */



CVS commit: src/lib/libc/arch/arm/gen

2012-08-01 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Wed Aug  1 06:02:13 UTC 2012

Modified Files:
src/lib/libc/arch/arm/gen: _setjmp.S setjmp.S

Log Message:
Add #error cases in case someone tries to compile hardfloat VFP libraries.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libc/arch/arm/gen/_setjmp.S
cvs rdiff -u -r1.8 -r1.9 src/lib/libc/arch/arm/gen/setjmp.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/_setjmp.S
diff -u src/lib/libc/arch/arm/gen/_setjmp.S:1.6 src/lib/libc/arch/arm/gen/_setjmp.S:1.7
--- src/lib/libc/arch/arm/gen/_setjmp.S:1.6	Sat Aug 21 11:20:10 2004
+++ src/lib/libc/arch/arm/gen/_setjmp.S	Wed Aug  1 06:02:13 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: _setjmp.S,v 1.6 2004/08/21 11:20:10 rearnsha Exp $	*/
+/*	$NetBSD: _setjmp.S,v 1.7 2012/08/01 06:02:13 matt Exp $	*/
 
 /*
  * Copyright (c) 1997 Mark Brinicombe
@@ -53,6 +53,8 @@ ENTRY(_setjmp)
 	str	r1, [r0], #4
 #ifdef SOFTFLOAT
 	add	r0, r0, #52
+#elif defined(__VFP_FP__)
+#error _setjmp VFP support missing
 #else
 	/* Store fp registers */
 	sfm	f4, 4, [r0], #48
@@ -77,6 +79,8 @@ ENTRY(_longjmp)
 
 #ifdef SOFTFLOAT
 	add	r0, r0, #52
+#elif defined(__VFP_FP__)
+#error _longjmp VFP support missing
 #else
 	/* Restore fp registers */
 	lfm	f4, 4, [r0], #48

Index: src/lib/libc/arch/arm/gen/setjmp.S
diff -u src/lib/libc/arch/arm/gen/setjmp.S:1.8 src/lib/libc/arch/arm/gen/setjmp.S:1.9
--- src/lib/libc/arch/arm/gen/setjmp.S:1.8	Sun Oct 16 17:26:24 2005
+++ src/lib/libc/arch/arm/gen/setjmp.S	Wed Aug  1 06:02:13 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: setjmp.S,v 1.8 2005/10/16 17:26:24 christos Exp $	*/
+/*	$NetBSD: setjmp.S,v 1.9 2012/08/01 06:02:13 matt Exp $	*/
 
 /*
  * Copyright (c) 1997 Mark Brinicombe
@@ -59,6 +59,8 @@ ENTRY(__setjmp14)
 
 #ifdef SOFTFLOAT
 	add	r0, r0, #52
+#elif defined(__VFP_FP__)
+#error __setjmp14 VFP support missing
 #else
 	/* Store fp registers */
 	sfm	f4, 4, [r0], #48
@@ -92,6 +94,8 @@ ENTRY(__longjmp14)
 	add	r0, r0, #4
 #ifdef SOFTFLOAT
 	add	r0, r0, #52
+#elif defined(__VFP_FP__)
+#error __longjmp14 VFP support missing
 #else
 	/* Restore fp registers */
 	lfm	f4, 4, [r0], #48



CVS commit: src/lib/libc/arch/arm/gen

2012-07-30 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Mon Jul 30 12:57:55 UTC 2012

Modified Files:
src/lib/libc/arch/arm/gen: Makefile.inc

Log Message:
Backout previous. ld.so requires the division routines so this needs
more thought.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/lib/libc/arch/arm/gen/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/Makefile.inc
diff -u src/lib/libc/arch/arm/gen/Makefile.inc:1.17 src/lib/libc/arch/arm/gen/Makefile.inc:1.18
--- src/lib/libc/arch/arm/gen/Makefile.inc:1.17	Wed Jul 11 18:24:27 2012
+++ src/lib/libc/arch/arm/gen/Makefile.inc	Mon Jul 30 12:57:54 2012
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile.inc,v 1.17 2012/07/11 18:24:27 reinoud Exp $
+# $NetBSD: Makefile.inc,v 1.18 2012/07/30 12:57:54 skrll Exp $
 
-SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c \
+SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divsi3.S \
 	fabs.c flt_rounds.c
 
 # Common ieee754 constants and functions



CVS commit: src/lib/libc/arch/arm/gen

2012-07-11 Thread Reinoud Zandijk
Module Name:src
Committed By:   reinoud
Date:   Wed Jul 11 18:24:27 UTC 2012

Modified Files:
src/lib/libc/arch/arm/gen: Makefile.inc

Log Message:
On the libc/libgcc clashes cleanup that removed divsi3.o from libc, ARM/evbarm
was forgotten. This patch fixes it making static binaries possible again!


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/lib/libc/arch/arm/gen/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/Makefile.inc
diff -u src/lib/libc/arch/arm/gen/Makefile.inc:1.16 src/lib/libc/arch/arm/gen/Makefile.inc:1.17
--- src/lib/libc/arch/arm/gen/Makefile.inc:1.16	Sun Dec  6 07:12:17 2009
+++ src/lib/libc/arch/arm/gen/Makefile.inc	Wed Jul 11 18:24:27 2012
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile.inc,v 1.16 2009/12/06 07:12:17 uebayasi Exp $
+# $NetBSD: Makefile.inc,v 1.17 2012/07/11 18:24:27 reinoud Exp $
 
-SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divsi3.S \
+SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c \
 	fabs.c flt_rounds.c
 
 # Common ieee754 constants and functions



CVS commit: src/lib/libc/arch/arm/gen

2012-03-21 Thread Hiroyuki Bessho
Module Name:src
Committed By:   bsh
Date:   Wed Mar 21 09:05:36 UTC 2012

Modified Files:
src/lib/libc/arch/arm/gen: _lwp.c

Log Message:
shut up lint(1)


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libc/arch/arm/gen/_lwp.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/_lwp.c
diff -u src/lib/libc/arch/arm/gen/_lwp.c:1.5 src/lib/libc/arch/arm/gen/_lwp.c:1.6
--- src/lib/libc/arch/arm/gen/_lwp.c:1.5	Thu Feb 24 04:28:41 2011
+++ src/lib/libc/arch/arm/gen/_lwp.c	Wed Mar 21 09:05:35 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: _lwp.c,v 1.5 2011/02/24 04:28:41 joerg Exp $	*/
+/*	$NetBSD: _lwp.c,v 1.6 2012/03/21 09:05:35 bsh Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -37,7 +37,7 @@
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: _lwp.c,v 1.5 2011/02/24 04:28:41 joerg Exp $);
+__RCSID($NetBSD: _lwp.c,v 1.6 2012/03/21 09:05:35 bsh Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 #include namespace.h
@@ -58,16 +58,22 @@ _lwp_makecontext(ucontext_t *u, void (*s
 	u-uc_stack.ss_sp = stack_base;
 	u-uc_stack.ss_size = stack_size;
 
+	/* LINTED - alignment is fixed below. */
 	sp = (void **) (stack_base + stack_size);
 
 	/*
 	 * Note: We make sure the stack is 8-byte aligned, here.
 	 */
 
+	/* LINTED - doesn't lose any bits by this conversion */
 	u-uc_mcontext.__gregs[_REG_R0] = (__greg_t) arg;
+	/* LINTED - doesn't lose any bits by this conversion */
 	u-uc_mcontext.__gregs[_REG_SP] = ((__greg_t) sp)  ~7;
+	/* LINTED - doesn't lose any bits by this conversion */
 	u-uc_mcontext.__gregs[_REG_LR] = (__greg_t) _lwp_exit;
+	/* LINTED - doesn't lose any bits by this conversion */
 	u-uc_mcontext.__gregs[_REG_PC] = (__greg_t) start;
+	/* LINTED - unsinged long and unsigned int are same size */
 	u-uc_mcontext._mc_tlsbase = (uintptr_t)private;
 	u-uc_flags |= _UC_TLSBASE;
 }



CVS commit: src/lib/libc/arch/arm/gen

2012-03-21 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Wed Mar 21 14:03:06 UTC 2012

Modified Files:
src/lib/libc/arch/arm/gen: _lwp.c makecontext.c

Log Message:
no need for linted annotations


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libc/arch/arm/gen/_lwp.c
cvs rdiff -u -r1.3 -r1.4 src/lib/libc/arch/arm/gen/makecontext.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/_lwp.c
diff -u src/lib/libc/arch/arm/gen/_lwp.c:1.6 src/lib/libc/arch/arm/gen/_lwp.c:1.7
--- src/lib/libc/arch/arm/gen/_lwp.c:1.6	Wed Mar 21 05:05:35 2012
+++ src/lib/libc/arch/arm/gen/_lwp.c	Wed Mar 21 10:03:06 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: _lwp.c,v 1.6 2012/03/21 09:05:35 bsh Exp $	*/
+/*	$NetBSD: _lwp.c,v 1.7 2012/03/21 14:03:06 christos Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -37,7 +37,7 @@
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: _lwp.c,v 1.6 2012/03/21 09:05:35 bsh Exp $);
+__RCSID($NetBSD: _lwp.c,v 1.7 2012/03/21 14:03:06 christos Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 #include namespace.h
@@ -58,22 +58,15 @@ _lwp_makecontext(ucontext_t *u, void (*s
 	u-uc_stack.ss_sp = stack_base;
 	u-uc_stack.ss_size = stack_size;
 
-	/* LINTED - alignment is fixed below. */
-	sp = (void **) (stack_base + stack_size);
-
+	sp = (void *) (stack_base + stack_size);
 	/*
 	 * Note: We make sure the stack is 8-byte aligned, here.
 	 */
 
-	/* LINTED - doesn't lose any bits by this conversion */
-	u-uc_mcontext.__gregs[_REG_R0] = (__greg_t) arg;
-	/* LINTED - doesn't lose any bits by this conversion */
-	u-uc_mcontext.__gregs[_REG_SP] = ((__greg_t) sp)  ~7;
-	/* LINTED - doesn't lose any bits by this conversion */
-	u-uc_mcontext.__gregs[_REG_LR] = (__greg_t) _lwp_exit;
-	/* LINTED - doesn't lose any bits by this conversion */
-	u-uc_mcontext.__gregs[_REG_PC] = (__greg_t) start;
-	/* LINTED - unsinged long and unsigned int are same size */
-	u-uc_mcontext._mc_tlsbase = (uintptr_t)private;
+	u-uc_mcontext.__gregs[_REG_R0] = (__greg_t)(uintptr_t)arg;
+	u-uc_mcontext.__gregs[_REG_SP] = ((__greg_t)(uintptr_t)sp)  ~7;
+	u-uc_mcontext.__gregs[_REG_LR] = (__greg_t)(uintptr_t)_lwp_exit;
+	u-uc_mcontext.__gregs[_REG_PC] = (__greg_t)(uintptr_t)start;
+	u-uc_mcontext._mc_tlsbase = (__greg_t)(uintptr_t)private;
 	u-uc_flags |= _UC_TLSBASE;
 }

Index: src/lib/libc/arch/arm/gen/makecontext.c
diff -u src/lib/libc/arch/arm/gen/makecontext.c:1.3 src/lib/libc/arch/arm/gen/makecontext.c:1.4
--- src/lib/libc/arch/arm/gen/makecontext.c:1.3	Mon Apr 28 16:22:55 2008
+++ src/lib/libc/arch/arm/gen/makecontext.c	Wed Mar 21 10:03:06 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: makecontext.c,v 1.3 2008/04/28 20:22:55 martin Exp $	*/
+/*	$NetBSD: makecontext.c,v 1.4 2012/03/21 14:03:06 christos Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: makecontext.c,v 1.3 2008/04/28 20:22:55 martin Exp $);
+__RCSID($NetBSD: makecontext.c,v 1.4 2012/03/21 14:03:06 christos Exp $);
 #endif
 
 #include stddef.h
@@ -55,12 +55,12 @@ makecontext(ucontext_t *ucp, void (*func
 	/* Allocate necessary stack space for arguments exceeding r0-3. */
 	if (argc  4)
 		sp -= argc - 4;
-	gr[_REG_SP] = (__greg_t)sp;
+	gr[_REG_SP] = (__greg_t)(uintptr_t)sp;
 	/* Wipe out frame pointer. */
 	gr[_REG_FP] = 0;
 	/* Arrange for return via the trampoline code. */
-	gr[_REG_LR] = (__greg_t)_resumecontext;
-	gr[_REG_PC] = (__greg_t)func;
+	gr[_REG_LR] = (__greg_t)(uintptr_t)_resumecontext;
+	gr[_REG_PC] = (__greg_t)(uintptr_t)func;
 
 	va_start(ap, argc);
 	/* Pass up to four arguments in r0-3. */



CVS commit: src/lib/libc/arch/arm/gen

2012-03-21 Thread Havard Eidnes
Module Name:src
Committed By:   he
Date:   Wed Mar 21 20:04:57 UTC 2012

Modified Files:
src/lib/libc/arch/arm/gen: flt_rounds.c

Log Message:
Use c89 function declaration.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/lib/libc/arch/arm/gen/flt_rounds.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/gen/flt_rounds.c
diff -u src/lib/libc/arch/arm/gen/flt_rounds.c:1.3 src/lib/libc/arch/arm/gen/flt_rounds.c:1.4
--- src/lib/libc/arch/arm/gen/flt_rounds.c:1.3	Sat Feb 25 00:58:35 2006
+++ src/lib/libc/arch/arm/gen/flt_rounds.c	Wed Mar 21 20:04:57 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: flt_rounds.c,v 1.3 2006/02/25 00:58:35 wiz Exp $	*/
+/*	$NetBSD: flt_rounds.c,v 1.4 2012/03/21 20:04:57 he Exp $	*/
 
 /*
  * Copyright (c) 1996 Mark Brinicombe
@@ -33,7 +33,7 @@
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: flt_rounds.c,v 1.3 2006/02/25 00:58:35 wiz Exp $);
+__RCSID($NetBSD: flt_rounds.c,v 1.4 2012/03/21 20:04:57 he Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 #include sys/types.h
@@ -75,7 +75,7 @@ static const int map[] = {
 int __flt_rounds(void);
 
 int
-__flt_rounds()
+__flt_rounds(void)
 {
 	return(map[fpgetround()]);
 }