[Bug c/93719] New: Unable to find a register to spill
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93719 Bug ID: 93719 Summary: Unable to find a register to spill Product: gcc Version: 9.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: etchedpixels at gmail dot com Target Milestone: --- Created attachment 47831 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47831&action=edit pdp11-aout-gcc -E capture of the problem file pdp11-aout-gcc -fno-strict-aliasing -fomit-frame-pointer -fno-builtin -msoft-float -Wall -Os -I../../../Library/include -I../../../Library/include/pdp11 -c -o ac.o ac.c ac.c: In function ‘logout’: ac.c:214:1: error: unable to find a register to spill in class ‘GENERAL_REGS’ 214 | } | ^ ac.c:214:1: error: this is the insn: (insn 60 59 61 16 (set (mem:DI (plus:HI (reg/v/f:HI 23 [ terminals.15_1 ]) (const_int 40 [0x28])) [1 tp_43->t_time+0 S8 A16]) (minus:DI (reg:DI 29 [ iftmp.16_11 ]) (mem:DI (plus:HI (reg/v/f:HI 23 [ terminals.15_1 ]) (const_int 40 [0x28])) [1 tp_43->t_time+0 S8 A16]))) "ac.c":207:8 77 {subdi3} (expr_list:REG_DEAD (reg:DI 29 [ iftmp.16_11 ]) (nil))) ac.c:214: confused by earlier errors, bailing out gcc -S of source attached
[Bug target/84437] New: long long casting breaks PDP-11 with -m10 model option (includes trivial reproducer)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84437 Bug ID: 84437 Summary: long long casting breaks PDP-11 with -m10 model option (includes trivial reproducer) Product: gcc Version: 7.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: etchedpixels at gmail dot com Target Milestone: --- long long x(int y) { return y; } pdp11-aout-gcc -m10 -S /tmp/3.c /tmp/3.c: In function ‘x’: /tmp/3.c:4:1: error: unrecognizable insn: } ^ (insn 7 6 8 2 (set (reg:HI 24) (ashift:HI (reg:HI 23) (const_int -15 [0xfff1]))) "/tmp/3.c":3 -1 (nil)) /tmp/3.c:4:1: internal compiler error: in extract_insn, at recog.c:2311 0x8d8b48 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../gcc-7.3.0/gcc/rtl-error.c:108 0x8d8b79 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) ../../gcc-7.3.0/gcc/rtl-error.c:116 0x8ae40f extract_insn(rtx_insn*) ../../gcc-7.3.0/gcc/recog.c:2311 0x6fe3f3 instantiate_virtual_regs_in_insn ../../gcc-7.3.0/gcc/function.c:1589 0x6fe3f3 instantiate_virtual_regs ../../gcc-7.3.0/gcc/function.c:1957 0x6fe3f3 execute ../../gcc-7.3.0/gcc/function.c:2006
[Bug target/84438] New: Another code pattern that breaks PDP11 with -m10: including reproducer code
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84438 Bug ID: 84438 Summary: Another code pattern that breaks PDP11 with -m10: including reproducer code Product: gcc Version: 7.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: etchedpixels at gmail dot com Target Milestone: --- Created attachment 43447 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43447&action=edit Example showing the bug The attached function blows up the compiler with -m10 (gcc 7.3.0 pdp11-aout host is linux 64bit) tmp/5.c: In function ‘div10quickm’: /tmp/5.c:18:1: error: unrecognizable insn: } ^ (insn 11 10 12 2 (set (reg:SI 23 [ _2 ]) (ashift:SI (reg:SI 23 [ _2 ]) (const_int -1 [0x]))) "/tmp/5.c":7 -1 (expr_list:REG_EQUAL (lshiftrt:SI (reg:SI 37) (const_int 2 [0x2])) (nil))) /tmp/5.c:18:1: internal compiler error: in extract_insn, at recog.c:2311 0x8d8b48 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../gcc-7.3.0/gcc/rtl-error.c:108 0x8d8b79 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) ../../gcc-7.3.0/gcc/rtl-error.c:116 0x8ae40f extract_insn(rtx_insn*) ../../gcc-7.3.0/gcc/recog.c:2311 0x6fe3f3 instantiate_virtual_regs_in_insn ../../gcc-7.3.0/gcc/function.c:1589 0x6fe3f3 instantiate_virtual_regs ../../gcc-7.3.0/gcc/function.c:1957 0x6fe3f3 execute ../../gcc-7.3.0/gcc/function.c:2006