Commit 3717da94 by Jason Thorpe Committed by Jason Thorpe

real.c: Avoid parse error if FLOAT_WORDS_BIG_ENDIAN is not a compile-time constant for...

* real.c: Avoid parse error if FLOAT_WORDS_BIG_ENDIAN is
not a compile-time constant for the non-IBM case.
* config/arm/arm-protos.h (arm_float_words_big_endian): New
prototype.
* config/arm/arm.c (arm_float_words_big_endian): New function.
(TARGET_CPU_CPP_BUILTINS): Define __VFP_FP__ if TARGET_VFP
and not TARGET_HARD_FLOAT.
(ARM_FLAG_VFP, TARGET_VFP): Define.
(FLOAT_WORDS_BIG_ENDIAN): Use arm_float_words_big_endian.

From-SVN: r56854
parent df4c36e6
2002-09-05 Jason Thorpe <thorpej@wasabisystems.com>
* real.c: Avoid parse error if FLOAT_WORDS_BIG_ENDIAN is
not a compile-time constant for the non-IBM case.
* config/arm/arm-protos.h (arm_float_words_big_endian): New
prototype.
* config/arm/arm.c (arm_float_words_big_endian): New function.
(TARGET_CPU_CPP_BUILTINS): Define __VFP_FP__ if TARGET_VFP
and not TARGET_HARD_FLOAT.
(ARM_FLAG_VFP, TARGET_VFP): Define.
(FLOAT_WORDS_BIG_ENDIAN): Use arm_float_words_big_endian.
2002-09-05 David Edelsohn <edelsohn@gnu.org>
* doc/install.texi: Correct text of s390-*-linux* and s390x-*-linux*
......
......@@ -153,6 +153,8 @@ extern void common_section PARAMS ((void));
#endif /* RTX_CODE */
extern int arm_float_words_big_endian PARAMS ((void));
/* Thumb functions. */
extern void arm_init_expanders PARAMS ((void));
extern int thumb_far_jump_used_p PARAMS ((int));
......
......@@ -1845,6 +1845,27 @@ arm_return_in_memory (type)
return 1;
}
/* Indicate whether or not words of a double are in big-endian order. */
int
arm_float_words_big_endian ()
{
/* For FPA, float words are always big-endian. For VFP, floats words
follow the memory system mode. */
if (TARGET_HARD_FLOAT)
{
/* FIXME: TARGET_HARD_FLOAT currently implies FPA. */
return 1;
}
if (TARGET_VFP)
return (TARGET_BIG_END ? 1 : 0);
return 1;
}
/* Initialize a variable CUM of type CUMULATIVE_ARGS
for a call to a function whose data type is FNTYPE.
For a library call, FNTYPE is NULL. */
......
......@@ -141,10 +141,12 @@ unknown arithmetic type
#define VAX_HALFWORD_ORDER 1
#endif
#else
#if defined(IBM) && !REAL_WORDS_BIG_ENDIAN
#if defined(IBM)
#if !REAL_WORDS_BIG_ENDIAN
#error "Little-endian representations are not supported for IBM."
#endif
#endif
#endif
#if defined(DEC) && !defined (TARGET_G_FLOAT)
#define TARGET_G_FLOAT 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment