[Committed] Correct zeroextendqihi2 insn length regression on xstormy16.

My recent tweak to the zeroextendqihi2 pattern on xstormy16 incorrectly
handled the case where the operand was a MEM.  MEM operands use a longer
encoding than REG operands, and the incorrect instruction length resulted
in assembler errors (as reported by Jeff Law).  This patch restores the
original length resolving this regression.  Sorry for the inconvenience.
Committed as obvious, after testing that a cross-compiler to xstormy16-elf
builds from x86_64-pc-linux-gnu, and that gcc.c-torture/execute/memset-2.c
no longer causes "operand out of range" issues in gas.  Committed as
obvious.

2023-04-25  Roger Sayle  <roger@nextmovesoftware.com>

gcc/ChangeLog
	* config/stormy16/stormy16.md (zero_extendqihi2): Restore/fix
	length attribute for the first (memory operand) alternative.
This commit is contained in:
Roger Sayle 2023-04-25 12:04:52 +01:00
parent 85279b0bdd
commit dee5cef280

View file

@ -286,7 +286,7 @@
shl %0,#8 | shr %0,#8"
[(set_attr "psw_operand" "nop,nop,0")
(set_attr_alternative "length"
[(const_int 2)
[(const_int 4)
(const_int 2)
(const_int 4)])])