Commit 0b0d4c5b by Jeff Sturm Committed by Jeff Sturm

jcf-parse.c (get_constant): Don't swap lo/hi for big endian targets when…

jcf-parse.c (get_constant): Don't swap lo/hi for big endian targets when HOST_BITS_PER_WIDE_INT >= 64.

	* jcf-parse.c (get_constant): Don't swap lo/hi for big
	endian targets when HOST_BITS_PER_WIDE_INT >= 64.

Co-Authored-By: Martin Kahlert <martin.kahlert@infineon.com>

From-SVN: r48786
parent a84b4898
2001-01-10 Jeff Sturm <jsturm@one-point.com>
Martin Kahlert <martin.kahlert@infineon.com>
* jcf-parse.c (get_constant): Don't swap lo/hi for big
endian targets when HOST_BITS_PER_WIDE_INT >= 64.
2002-01-03 Graham Stott <grahams@redhat.com> 2002-01-03 Graham Stott <grahams@redhat.com>
* class.c (compile_resource_file): Update copyright date. * class.c (compile_resource_file): Update copyright date.
......
...@@ -326,7 +326,15 @@ get_constant (jcf, index) ...@@ -326,7 +326,15 @@ get_constant (jcf, index)
lshift_double (num[0], 0, 32, 64, &lo, &hi, 0); lshift_double (num[0], 0, 32, 64, &lo, &hi, 0);
num[0] = JPOOL_INT (jcf, index+1); num[0] = JPOOL_INT (jcf, index+1);
add_double (lo, hi, num[0], 0, &lo, &hi); add_double (lo, hi, num[0], 0, &lo, &hi);
if (FLOAT_WORDS_BIG_ENDIAN)
/* Since ereal_from_double expects an array of HOST_WIDE_INT
in the target's format, we swap the elements for big endian
targets, unless HOST_WIDE_INT is sufficiently large to
contain a target double, in which case the 2nd element
is ignored.
FIXME: Is this always right for cross targets? */
if (FLOAT_WORDS_BIG_ENDIAN && sizeof(num[0]) < 8)
{ {
num[0] = hi; num[0] = hi;
num[1] = lo; num[1] = lo;
......
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