Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/ -f no-diagnostics-show-caret -fdiagnostics-color=never -O2 -c -o pr56228.o /tes t/gnu/gcc/gcc/gcc/testsuite/gcc.dg/pr56228.c (timeout = 300) spawn /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/ -fno-diagnostics -show-caret -fdiagnostics-color=never -O2 -c -o pr56228.o /test/gnu/gcc/gcc/gcc/ testsuite/gcc.dg/pr56228.c /test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/pr56228.c: In function 'foo': /test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/pr56228.c:17:1: error: unable to find a r egister to spill in class 'R1_REGS' /test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/pr56228.c:17:1: error: this is the insn: (call_insn 12 11 13 2 (parallel [ (call (mem:SI (reg/f:DI 76) [0 *fnb_2 S4 A32]) (const_int 64 [0x40])) (clobber (reg:DI 1 %r1)) (clobber (reg:DI 2 %r2)) (clobber (reg:DI 4 %r4)) (use (reg:DI 27 %r27)) (use (reg/f:DI 29 %r29)) (use (const_int 1 [0x1])) ]) /test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/pr56228.c:15 262 {call_reg_64b it} (expr_list:REG_DEAD (reg/f:DI 76) (expr_list:REG_DEAD (reg/f:DI 29 %r29) (expr_list:REG_CALL_DECL (nil) (nil)))) (nil)) /test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/pr56228.c:17: confused by earlier errors, bailing out compiler exited with status 1 pa.md has the following code which attempts to ensure the call address is in a register: op = force_reg (word_mode, op); emit_call_insn (gen_call_reg_64bit (op, nb, r4)); However, optimization has removed the forced copy and a reload is needed. This fails because the reload needs %r1 and the pattern clobbers %r1. Maybe the clobber can be removed from the pattern as the call itself doesn't use %r1 although it is a CALL_USED_REGISTERS register.
Author: danglin Date: Mon Aug 3 17:26:19 2015 New Revision: 226522 URL: https://gcc.gnu.org/viewcvs?rev=226522&root=gcc&view=rev Log: PR target/67060 * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber. Adjust splits to match new pattern. Modified: trunk/gcc/ChangeLog trunk/gcc/config/pa/pa.md
Author: danglin Date: Mon Aug 3 17:29:22 2015 New Revision: 226523 URL: https://gcc.gnu.org/viewcvs?rev=226523&root=gcc&view=rev Log: PR target/67060 * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber. Adjust splits to match new pattern. Modified: branches/gcc-5-branch/gcc/ChangeLog branches/gcc-5-branch/gcc/config/pa/pa.md
Author: danglin Date: Mon Aug 3 17:32:08 2015 New Revision: 226524 URL: https://gcc.gnu.org/viewcvs?rev=226524&root=gcc&view=rev Log: PR target/67060 * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber. Adjust splits to match new pattern. Modified: branches/gcc-4_9-branch/gcc/ChangeLog branches/gcc-4_9-branch/gcc/config/pa/pa.md
Fixed.