This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PING]: RFA: Fix bootstrap/44335
- From: Joern Rennecke <amylaar at spamcop dot net>
- To: gcc-patches at gcc dot gnu dot org
- Date: Mon, 12 Jul 2010 00:55:57 -0400
- Subject: [PING]: RFA: Fix bootstrap/44335
----- Forwarded message from amylaar@spamcop.net -----
Date: Thu, 01 Jul 2010 16:34:21 -0400
From: Joern Rennecke <amylaar@spamcop.net>
Reply-To: Joern Rennecke <amylaar@spamcop.net>
Subject: RFA: Fix bootstrap/44335
To: gcc-patches@gcc.gnu.org
Tested building all-gcc configured with --enable-werror-always on
i686-pc-linux-gnu X arm-eabi with gcc (GCC) 4.6.0 20100630 (experimental).
Currently boostrapping / regtesting on i686-pc-linux-gnu.
----- End forwarded message -----
As expected, there bootstrapping went fine and there were no new regressions.
2010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
PR bootstrap/44335
gcc:
* targhooks.c (targhook_words_big_endian): New function.
(targhook_float_words_big_endian): Likewise.
* targhooks.h (targhook_words_big_endian): Declare.
(targhook_float_words_big_endian): Likewise.
* target.def (words_big_endian, float_words_big_endian): New hooks.
gcc/java:
* jfc-parse.c (target.h): Include.
(handle_const): Use targetm.words_big_endian and
targetm.float_words_big_endian.
(get_constant): Use targetm.float_words_big_endian.
Index: targhooks.c
===================================================================
--- targhooks.c (revision 161664)
+++ targhooks.c (working copy)
@@ -418,6 +418,19 @@ default_scalar_mode_supported_p (enum ma
}
}
+/* Make some target macros useable by target-independent code. */
+bool
+targhook_words_big_endian (void)
+{
+ return !!WORDS_BIG_ENDIAN;
+}
+
+bool
+targhook_float_words_big_endian (void)
+{
+ return !!FLOAT_WORDS_BIG_ENDIAN;
+}
+
/* True if the target supports decimal floating point. */
bool
Index: targhooks.h
===================================================================
--- targhooks.h (revision 161664)
+++ targhooks.h (working copy)
@@ -68,6 +68,8 @@ extern void default_print_operand_addres
extern bool default_print_operand_punct_valid_p (unsigned char);
extern bool default_scalar_mode_supported_p (enum machine_mode);
+extern bool targhook_words_big_endian (void);
+extern bool targhook_float_words_big_endian (void);
extern bool default_decimal_float_supported_p (void);
extern bool default_fixed_point_supported_p (void);
Index: java/jcf-parse.c
===================================================================
--- java/jcf-parse.c (revision 161664)
+++ java/jcf-parse.c (working copy)
@@ -42,6 +42,7 @@ The Free Software Foundation is independ
#include "cgraph.h"
#include "vecprim.h"
#include "bitmap.h"
+#include "target.h"
#ifdef HAVE_LOCALE_H
#include <locale.h>
@@ -557,12 +558,12 @@ handle_constant (JCF *jcf, int index, en
case CONSTANT_Long:
index = handle_long_constant (jcf, cpool, CONSTANT_Long, index,
- WORDS_BIG_ENDIAN);
+ targetm.words_big_endian ());
break;
case CONSTANT_Double:
index = handle_long_constant (jcf, cpool, CONSTANT_Double, index,
- FLOAT_WORDS_BIG_ENDIAN);
+ targetm.float_words_big_endian ());
break;
case CONSTANT_Float:
@@ -1073,7 +1074,7 @@ get_constant (JCF *jcf, int index)
hi = JPOOL_UINT (jcf, index);
lo = JPOOL_UINT (jcf, index+1);
- if (FLOAT_WORDS_BIG_ENDIAN)
+ if (targetm.float_words_big_endian ())
buf[0] = hi, buf[1] = lo;
else
buf[0] = lo, buf[1] = hi;
Index: target.def
===================================================================
--- target.def (revision 161664)
+++ target.def (working copy)
@@ -967,6 +967,22 @@ DEFHOOK
bool, (const_tree record_type),
hook_bool_const_tree_false)
+/* For now this is only an interface to FLOAT_WORDS_BIG_ENDIAN for
+ target-independent code like the front ends, need performance testing
+ before switching completely to the target hook. */
+DEFHOOK_UNDOC
+(words_big_endian,
+ "",
+ bool, (void),
+ targhook_words_big_endian)
+
+/* Likewise. */
+DEFHOOK_UNDOC
+(float_words_big_endian,
+ "",
+ bool, (void),
+ targhook_float_words_big_endian)
+
/* True if the target supports decimal floating point. */
DEFHOOK
(decimal_float_supported_p,