Patchwork gcc/powerpc: don't use FPU opcodes in libgcc on __NO_FPRS__

login
register
mail settings
Submitter Sebastian Siewior
Date June 17, 2010, 6:09 p.m.
Message ID <20100617180933.GC32180@Chamillionaire.breakpoint.cc>
Download mbox | patch
Permalink /patch/56075/
State New
Headers show

Comments

Sebastian Siewior - June 17, 2010, 6:09 p.m.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 gcc/ChangeLog                    |    6 ++++++
 gcc/config/rs6000/crtresfpr.asm  |    2 ++
 gcc/config/rs6000/crtresxfpr.asm |    2 ++
 gcc/config/rs6000/crtsavfpr.asm  |    3 ++-
 4 files changed, 12 insertions(+), 1 deletions(-)
Sebastian Siewior - June 29, 2010, 2:22 p.m.
* Sebastian Andrzej Siewior | 2010-06-17 20:09:33 [+0200]:

http://gcc.gnu.org/ml/gcc-patches/2010-06/msg01802.html

>+	* config/rs6000/crtresfpr.asm: Put __NO_FPRS__ around FPU opcodes
>+	* config/rs6000/crtresxfpr.asm: Likewies.
>+	* config/rs6000/crtsavfpr.asm: Likewies.

Nobody nacked this so far. If this is okay, could someone please commit
it as I can't.

Sebastian

Patch

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2f8c80c..05840b2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@ 
+2010-06-17  Sebastian Andrzej Siewior  <bigeasy@linutronix.de>
+
+	* config/rs6000/crtresfpr.asm: Put __NO_FPRS__ around FPU opcodes
+	* config/rs6000/crtresxfpr.asm: Likewies.
+	* config/rs6000/crtsavfpr.asm: Likewies.
+
 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
 
 	* tree.h (vec_member): Declare.
diff --git a/gcc/config/rs6000/crtresfpr.asm b/gcc/config/rs6000/crtresfpr.asm
index 9fb228c..a4f85d7 100644
--- a/gcc/config/rs6000/crtresfpr.asm
+++ b/gcc/config/rs6000/crtresfpr.asm
@@ -33,6 +33,7 @@ 
 
 /* On PowerPC64 Linux, these functions are provided by the linker.  */
 #ifndef __powerpc64__
+#ifndef __NO_FPRS__
 
 /* Routines for restoring floating point registers, called by the compiler.  */
 /* Called with r11 pointing to the stack header word of the caller of the */
@@ -79,3 +80,4 @@  FUNC_END(_restfpr_14)
 CFI_ENDPROC
 
 #endif
+#endif
diff --git a/gcc/config/rs6000/crtresxfpr.asm b/gcc/config/rs6000/crtresxfpr.asm
index 633f2db..ae251bf 100644
--- a/gcc/config/rs6000/crtresxfpr.asm
+++ b/gcc/config/rs6000/crtresxfpr.asm
@@ -33,6 +33,7 @@ 
 
 /* On PowerPC64 Linux, these functions are provided by the linker.  */
 #ifndef __powerpc64__
+#ifndef __NO_FPRS__
 
 /* Routines for restoring floating point registers, called by the compiler.  */
 /* Called with r11 pointing to the stack header word of the caller of the */
@@ -124,3 +125,4 @@  FUNC_END(_restfpr_14_x)
 CFI_ENDPROC
 
 #endif
+#endif
diff --git a/gcc/config/rs6000/crtsavfpr.asm b/gcc/config/rs6000/crtsavfpr.asm
index 3cdb250..b041ae9 100644
--- a/gcc/config/rs6000/crtsavfpr.asm
+++ b/gcc/config/rs6000/crtsavfpr.asm
@@ -33,7 +33,7 @@ 
 
 /* On PowerPC64 Linux, these functions are provided by the linker.  */
 #ifndef __powerpc64__
-
+#ifndef __NO_FPRS__
 /* Routines for saving floating point registers, called by the compiler.  */
 /* Called with r11 pointing to the stack header word of the caller of the */
 /* function, just beyond the end of the floating point save area.  */
@@ -79,3 +79,4 @@  FUNC_END(_savefpr_14)
 CFI_ENDPROC
 
 #endif
+#endif