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
This commit is contained in:
parent
a84b4898c1
commit
0b0d4c5b3a
2 changed files with 15 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
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>
|
||||
|
||||
* class.c (compile_resource_file): Update copyright date.
|
||||
|
|
|
@ -326,7 +326,15 @@ get_constant (jcf, index)
|
|||
lshift_double (num[0], 0, 32, 64, &lo, &hi, 0);
|
||||
num[0] = JPOOL_INT (jcf, index+1);
|
||||
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[1] = lo;
|
||||
|
|
Loading…
Add table
Reference in a new issue