[v3,1/2] Update x86: Call ix86_access_stack_p only for larger alignment
Commit Message
commit f511bf93f947199a9f9099fee87b7052e5515fb9
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sun Mar 29 14:30:28 2026 -0700
x86: Call ix86_access_stack_p only for larger alignment
incorrectly uses GET_MODE_ALIGNMENT as memory alignment since memory
alignment can be different from mode alignment as in
(set (reg:OI 20 xmm0 [orig:112 s ] [112])
(mem/c:OI (plus:DI (reg/f:DI 7 sp)
(const_int -32 [0xffffffffffffffe0])) [3 s+0 S32 A128]))
MEM_ALIGN should be used instead.
PR target/124759
* config/i386/i386.cc (ix86_need_alignment_p_1): Replace
GET_MODE_ALIGNMENT with MEM_ALIGN.
From a5efa661321fcbed8ac3b1c894b1a29e36e3ba8b Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Tue, 7 Apr 2026 18:12:27 +0800
Subject: [PATCH v3 1/2] Update x86: Call ix86_access_stack_p only for larger
alignment
commit f511bf93f947199a9f9099fee87b7052e5515fb9
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sun Mar 29 14:30:28 2026 -0700
x86: Call ix86_access_stack_p only for larger alignment
incorrectly uses GET_MODE_ALIGNMENT as memory alignment since memory
alignment can be different from mode alignment as in
(set (reg:OI 20 xmm0 [orig:112 s ] [112])
(mem/c:OI (plus:DI (reg/f:DI 7 sp)
(const_int -32 [0xffffffffffffffe0])) [3 s+0 S32 A128]))
MEM_ALIGN should be used instead.
PR target/124759
* config/i386/i386.cc (ix86_need_alignment_p_1): Replace
GET_MODE_ALIGNMENT with MEM_ALIGN.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
---
gcc/config/i386/i386.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
@@ -8789,7 +8789,7 @@ ix86_need_alignment_p_1 (rtx set, unsigned int alignment)
rtx dest = SET_DEST (set);
if (MEM_P (dest))
- return GET_MODE_ALIGNMENT (GET_MODE (dest)) > alignment;
+ return MEM_ALIGN (dest) > alignment;
const_rtx src = SET_SRC (set);
@@ -8799,7 +8799,7 @@ ix86_need_alignment_p_1 (rtx set, unsigned int alignment)
auto op = *iter;
if (MEM_P (op))
- return GET_MODE_ALIGNMENT (GET_MODE (op)) > alignment;
+ return MEM_ALIGN (op) > alignment;
}
return false;
--
2.53.0