re PR bootstrap/44335 (gcc-4.6-20100529 java bootstrap failure on arm-linux-gnueabi)
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_constant): Use targetm.words_big_endian and targetm.float_words_big_endian. (get_constant): Use targetm.float_words_big_endian. From-SVN: r166238
This commit is contained in:
parent
43236c265b
commit
2e681adf5d
@ -1,3 +1,12 @@
|
||||
2010-11-03 Joern Rennecke <joern.rennecke@embecosm.com>
|
||||
|
||||
PR bootstrap/44335
|
||||
* 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.
|
||||
|
||||
2010-11-03 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/46165
|
||||
|
@ -1,3 +1,11 @@
|
||||
2010-11-03 Joern Rennecke <joern.rennecke@embecosm.com>
|
||||
|
||||
PR bootstrap/44335
|
||||
* jfc-parse.c (target.h): Include.
|
||||
(handle_constant): Use targetm.words_big_endian and
|
||||
targetm.float_words_big_endian.
|
||||
(get_constant): Use targetm.float_words_big_endian.
|
||||
|
||||
2010-10-13 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* lang.c (java_eh_personality): Update call to
|
||||
|
@ -43,6 +43,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
|
||||
#include "cgraph.h"
|
||||
#include "vecprim.h"
|
||||
#include "bitmap.h"
|
||||
#include "target.h"
|
||||
|
||||
#ifdef HAVE_LOCALE_H
|
||||
#include <locale.h>
|
||||
@ -555,12 +556,12 @@ handle_constant (JCF *jcf, int index, enum cpool_tag purpose)
|
||||
|
||||
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:
|
||||
@ -1071,7 +1072,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;
|
||||
|
@ -1141,6 +1141,22 @@ DEFHOOK
|
||||
bool, (const_tree record_type),
|
||||
hook_bool_const_tree_false)
|
||||
|
||||
/* For now this is only an interface to 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 for FLOAT_WORDS_BIG_ENDIAN. */
|
||||
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,
|
||||
|
@ -425,6 +425,19 @@ default_scalar_mode_supported_p (enum machine_mode mode)
|
||||
}
|
||||
}
|
||||
|
||||
/* 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
|
||||
|
@ -68,6 +68,8 @@ extern bool default_print_operand_punct_valid_p (unsigned char);
|
||||
extern bool default_asm_output_addr_const_extra (FILE *, rtx);
|
||||
|
||||
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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user