about summary refs log tree commit diff
path: root/sysdeps/sh/sh4
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-02-05 01:01:39 +0000
committerUlrich Drepper <drepper@redhat.com>2009-02-05 01:01:39 +0000
commit0899b8897c1bcec464c0e220dd118f293bab05eb (patch)
treea3c9ec843b443ac85b2b3bc23913385c498bd59b /sysdeps/sh/sh4
parent22cc3f7580c97122906e147addbc798e43081079 (diff)
downloadglibc-0899b8897c1bcec464c0e220dd118f293bab05eb.tar.gz
glibc-0899b8897c1bcec464c0e220dd118f293bab05eb.tar.xz
glibc-0899b8897c1bcec464c0e220dd118f293bab05eb.zip
* sysdeps/sh/sh4/dl-trampoline.S: Only set HAVE_FPU if __SH_FPU_ANY__
	is set.
	* sysdeps/sh/sh4/setjmp.S: Support SH4-NOFPU.
	* sysdeps/sh/sh4/__longjmp.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sh4/getcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sh4/setcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sh4/register-dump.h: Likewise.
Diffstat (limited to 'sysdeps/sh/sh4')
-rw-r--r--sysdeps/sh/sh4/__longjmp.S7
-rw-r--r--sysdeps/sh/sh4/dl-trampoline.S4
-rw-r--r--sysdeps/sh/sh4/setjmp.S4
3 files changed, 12 insertions, 3 deletions
diff --git a/sysdeps/sh/sh4/__longjmp.S b/sysdeps/sh/sh4/__longjmp.S
index 320a7d11f7..2fd137bcba 100644
--- a/sysdeps/sh/sh4/__longjmp.S
+++ b/sysdeps/sh/sh4/__longjmp.S
@@ -1,5 +1,5 @@
 /* longjmp for SH.
-   Copyright (C) 1999, 2000, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2005, 2006, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -52,6 +52,7 @@ ENTRY (__longjmp)
 	mov.l	@r4+, r15
 	lds.l	@r4+, pr
 #endif
+#ifdef __SH_FPU_ANY__
 	ldc.l	@r4+, gbr
 	lds.l	@r4+, fpscr
 	fmov.s	@r4+, fr12
@@ -59,4 +60,8 @@ ENTRY (__longjmp)
 	fmov.s	@r4+, fr14
 	rts
 	 fmov.s	@r4+, fr15
+#else
+	rts
+	 ldc.l	@r4+, gbr
+#endif  /* !__SH_FPU_ANY__ */
 END (__longjmp)
diff --git a/sysdeps/sh/sh4/dl-trampoline.S b/sysdeps/sh/sh4/dl-trampoline.S
index f9529851a1..bd9bb7e5bd 100644
--- a/sysdeps/sh/sh4/dl-trampoline.S
+++ b/sysdeps/sh/sh4/dl-trampoline.S
@@ -1,2 +1,4 @@
-#define HAVE_FPU
+#ifdef __SH_FPU_ANY__
+# define HAVE_FPU
+#endif
 #include <sysdeps/sh/dl-trampoline.S>
diff --git a/sysdeps/sh/sh4/setjmp.S b/sysdeps/sh/sh4/setjmp.S
index f9a4f0a8ce..03f0b08dcd 100644
--- a/sysdeps/sh/sh4/setjmp.S
+++ b/sysdeps/sh/sh4/setjmp.S
@@ -1,5 +1,5 @@
 /* setjmp for SH4.
-   Copyright (C) 1999, 2000, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2005, 2006, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -23,11 +23,13 @@
 ENTRY (__sigsetjmp)
 	/* Save registers */
 	add	#JB_SIZE, r4
+#ifdef __SH_FPU_ANY__
 	fmov.s	fr15, @-r4
 	fmov.s	fr14, @-r4
 	fmov.s	fr13, @-r4
 	fmov.s	fr12, @-r4
 	sts.l	fpscr, @-r4
+#endif /* __SH_FPU_ANY__ */
 	stc.l	gbr, @-r4
 #ifdef PTR_MANGLE
 	sts	pr, r2