This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
mainline broken for powerpc-unknown-linux-gnu (Java -msoft-float)
- From: Janis Johnson <janis187 at us dot ibm dot com>
- To: gcc at gcc dot gnu dot org, aoliva at redhat dot com
- Date: Fri, 18 Apr 2003 10:16:51 -0700
- Subject: mainline broken for powerpc-unknown-linux-gnu (Java -msoft-float)
This patch breaks Java for -msoft-float on powerpc-unknown-linux-gnu:
2003-04-16 Alexandre Oliva <aoliva at redhat dot com>
* reload1.c (reload_cse_noop_set_p): Return false if mode of
SET_DEST is not the same as that returned by...
* cselib.h (cselib_reg_set_mode): ... new function.
* cselib.c (cselib_reg_set_mode): Define it.
(REG_VALUES): Document semantics of first element as set mode.
(cselib_subst_to_values): Skip first element if ELT is NULL.
(cselib_lookup): Likewise. Insert past the first element.
(cselib_invalidate_regno): NULLify first element.
(cselib_record_set): Set first element.
Here's the failure when building libjava:
/work/janis/gnu/gcc_mline/gcc-obj-native32/gcc/gcj -B/work/janis/gnu/gcc_mline/gcc-obj-native32/powerpc-linux/nof/libjava/ -B/work/janis/gnu/gcc_mline/gcc-obj-native32/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/work/janis/gnu/gcc_mline/gcc-obj-native32/powerpc-linux/nof/libjava -g -O2 -msoft-float -fPIC -mstrict-align -MD -MT java/lang/NoSuchFieldError.lo -MF java/lang/NoSuchFieldError.d -c ../../../../gcc-mline/libjava/java/lang/NoSuchFieldError.java -fPIC -o java/lang/.libs/NoSuchFieldError.o
../../../../gcc-mline/libjava/java/lang/Math.java: In class `java.lang.Math':
../../../../gcc-mline/libjava/java/lang/Math.java: In method `java.lang.Math.max(float,float)':
../../../../gcc-mline/libjava/java/lang/Math.java:270: error: insn does not satisfy its constraints:
(insn 77 104 81 8 0x4015ab80 (set (reg:SF 66 ctr [orig:118 <result> ] [118])
(reg:SF 66 ctr [orig:130 a ] [130])) 320 {*movsf_softfloat} (insn_list:REG_DEP_OUTPUT 23 (insn_list 71 (insn_list 75 (insn_list:REG_DEP_ANTI 64 (nil)))))
(nil))
../../../../gcc-mline/libjava/java/lang/Math.java:270: internal compiler error: in reload_cse_simplify_operands, at reload1.c:8351
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
The Java code being compiled here is:
public static float max(float a, float b)
{
// this check for NaN, from JLS 15.21.1, saves a method call
if (a != a)
return a;
// no need to check if b is NaN; > will work correctly
// recall that -0.0 == 0.0, but [+-]0.0 - [+-]0.0 behaves special
if (a == 0 && b == 0)
return a - -b;
return (a > b) ? a : b;
}
Let me know if you'd like more information.
Janis