From dee5cef280d6c6da92b56cc0dc2158761c266992 Mon Sep 17 00:00:00 2001 From: Roger Sayle Date: Tue, 25 Apr 2023 12:04:52 +0100 Subject: [PATCH] [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 gcc/ChangeLog * config/stormy16/stormy16.md (zero_extendqihi2): Restore/fix length attribute for the first (memory operand) alternative. --- gcc/config/stormy16/stormy16.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/stormy16/stormy16.md b/gcc/config/stormy16/stormy16.md index fd525881881d..9d92492c748d 100644 --- a/gcc/config/stormy16/stormy16.md +++ b/gcc/config/stormy16/stormy16.md @@ -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)])]) -- 2.47.3