Commit aa2046c4 by Richard Henderson Committed by Richard Henderson

jcf-parse.c (get_constant): Decode from IEEE no matter what the target format.

        * jcf-parse.c (get_constant): Decode from IEEE no matter
        what the target format.

From-SVN: r57389
parent 3dc85dfb
2002-09-21 Richard Henderson <rth@redhat.com>
* jcf-parse.c (get_constant): Decode from IEEE no matter
what the target format.
2002-09-20 Kazu Hirata <kazu@cs.umass.edu>
* ChangeLog: Follow spelling conventions.
......
......@@ -292,41 +292,33 @@ get_constant (jcf, index)
}
case CONSTANT_Float:
/* ??? Even more ideal would be to import the number using the
IEEE decode routines, then use whatever format the target
actually uses. This would enable Java on VAX to kind work. */
if (TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT)
{
jint num = JPOOL_INT(jcf, index);
long buf = num;
REAL_VALUE_TYPE d;
real_from_target (&d, &buf, SFmode);
value = build_real (float_type_node, d);
break;
}
else
goto bad;
{
jint num = JPOOL_INT(jcf, index);
long buf = num;
REAL_VALUE_TYPE d;
real_from_target_fmt (&d, &buf, &ieee_single_format);
value = build_real (float_type_node, d);
break;
}
case CONSTANT_Double:
if (TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT)
{
long buf[2], lo, hi;
REAL_VALUE_TYPE d;
{
long buf[2], lo, hi;
REAL_VALUE_TYPE d;
hi = JPOOL_UINT (jcf, index);
lo = JPOOL_UINT (jcf, index+1);
hi = JPOOL_UINT (jcf, index);
lo = JPOOL_UINT (jcf, index+1);
if (FLOAT_WORDS_BIG_ENDIAN)
buf[0] = hi, buf[1] = lo;
else
buf[0] = lo, buf[1] = hi;
if (FLOAT_WORDS_BIG_ENDIAN)
buf[0] = hi, buf[1] = lo;
else
buf[0] = lo, buf[1] = hi;
real_from_target (&d, buf, DFmode);
value = build_real (double_type_node, d);
break;
}
else
goto bad;
real_from_target_fmt (&d, &buf, &ieee_double_format);
value = build_real (double_type_node, d);
break;
}
case CONSTANT_String:
{
......
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