Hello Richard, s390 and s390x can't bootstrap with the following patch, because the new assertion introduced with the fixup_eh_region_note function is triggered.
http://gcc.gnu.org/ml/gcc-cvs/2005-08/msg01022.html 2005-08-31 Richard Henderson <[EMAIL PROTECTED]> PR rtl-opt/23601 * reload1.c (reload): Set MEM_NOTRAP_P in spill slots. (fixup_eh_region_note): New. (reload_as_needed): Call it. (fixup_abnormal_edges): Allow all throwing insns to be deleted; don't call find_many_sub_basic_blocks; call verify_flow_info. * function.c (assign_stack_local_1): Set MEM_NOTRAP_P. (keep_stack_depressed): Likewise. (assign_stack_temp_for_type): Likewise; use adjust_address_nv. Before reload we have the following insn containing two MEMs which may trigger a trap: (insn 31 29 49 5 (set (mem/s/j:SI (plus:SI (reg/v/f:SI 47 [ env ]) (const_int 4 [0x4])) [0 <variable>.ex+0 S4 A32]) (mem/f:SI (plus:SI (plus:SI (reg:SI 55) (reg:SI 56)) (const_int 4092 [0xffc])) [0 S4 A32])) 52 {*movsi_esa} (insn_list:REG_DEP_TRUE 29 (nil)) (expr_list:REG_DEAD (reg:SI 55) (expr_list:REG_DEAD (reg:SI 56) (expr_list:REG_DEAD (reg/v/f:SI 47 [ env ]) (expr_list:REG_EH_REGION (const_int 2 [0x2]) (nil)))))) Reload adds a new insn reloading one of the MEMs resulting in two insns which may trap: (insn 75 29 31 5 (set (reg:SI 2 %r2) (mem/f:SI (plus:SI (plus:SI (reg:SI 2 %r2 [55]) (reg:SI 1 %r1 [56])) (const_int 4092 [0xffc])) [0 S4 A32])) -1 (nil) (expr_list:REG_EH_REGION (const_int 2 [0x2]) (nil))) (insn 31 75 49 5 (set (mem/s/j:SI (plus:SI (reg/v/f:SI 12 %r12 [orig:47 env ] [47]) (const_int 4 [0x4])) [0 <variable>.ex+0 S4 A32]) (reg:SI 2 %r2)) 52 {*movsi_esa} (insn_list:REG_DEP_TRUE 29 (nil)) (expr_list:REG_DEAD (reg:SI 2 %r2 [55]) (expr_list:REG_DEAD (reg:SI 1 %r1 [56]) (expr_list:REG_DEAD (reg/v/f:SI 12 %r12 [orig:47 env ] [47]) (expr_list:REG_EH_REGION (const_int 2 [0x2]) (nil)))))) Hence the trap_count in fixup_eh_region_note is set to 2 which triggers the assertion at the end of that function. So it seems the assertion is too strict here. The problem occurs when libjava/jni.cc is compiled. If you need a testcase I will try to reduce the huge preprocessed file as far as possible. Bye, -Andreas-