This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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/ -fPIC -o java/lang/.libs/NoSuchFieldError.o
../../../../gcc-mline/libjava/java/lang/ In class `java.lang.Math':
../../../../gcc-mline/libjava/java/lang/ In method `java.lang.Math.max(float,float)':
../../../../gcc-mline/libjava/java/lang/ 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)))))
../../../../gcc-mline/libjava/java/lang/ 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:> 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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]