aboutsummaryrefslogtreecommitdiff
path: root/gcc/read-rtl.c
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2020-12-05 18:26:24 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2020-12-05 18:26:24 +0000
commit8c18e22afb061329766be3532a06a85ccc492d9c (patch)
tree255969031c87a1ff0e309ee58c6db5a7a0dda8e8 /gcc/read-rtl.c
parentdfb21f37fde4f9e11e9b3b6b6ea6dc9d5fbed644 (diff)
downloadgcc-8c18e22afb061329766be3532a06a85ccc492d9c.zip
gcc-8c18e22afb061329766be3532a06a85ccc492d9c.tar.gz
gcc-8c18e22afb061329766be3532a06a85ccc492d9c.tar.bz2
VAX: Correct fatal issues with the `ffs' builtin
The `builtins.md' machine description fragment is not included anywhere and is therefore dead code, which has become bitrotten due to non-use. If actually enabled, it does not build due to the use of an unknown `t' constraint: .../gcc/config/vax/builtins.md:42:1: error: undefined machine-specific constraint at this point: "t" .../gcc/config/vax/builtins.md:42:1: note: in operand 1 which came from commit becb93d02cc1 ("builtins.md (ffssi2_internal): Correct constraint."), which was not applied as posted and reviewed; `T' was meant to be used instead. Once this has been fixed this code still fails building: .../gcc/config/vax/builtins.md: In function 'rtx_def* gen_ffssi2(rtx, rtx)': .../gcc/config/vax/builtins.md:35:19: error: 'gen_bne' was not declared in this scope; did you mean 'gen_use'? 35 | emit_jump_insn (gen_bne (label)); | ^~~~~~~ | gen_use make[2]: *** [Makefile:1122: insn-emit.o] Error 1 Finally the FFS machine instruction sets the Z condition code according to the comparison of the value held in the source operand against zero rather than the value held in the target operand. If the source operand is found hold zero, then the target operand is set to the width of the source operand, 32 for SImode (FFS supports arbitrary widths). Correct the build issues then and update RTL to match the operation of the machine instruction. A test case will be added separately. gcc/ * config/vax/builtins.md (ffssi2): Make preparation statements actually buildable. (ffssi2_internal): Fix input constraints; make the RTL pattern match reality for `cc0'.
Diffstat (limited to 'gcc/read-rtl.c')
0 files changed, 0 insertions, 0 deletions