Message ID | AANLkTikFFLWBv=kpjR_JeOzU9QN347FHUUV9OfY=7_Vq@mail.gmail.com |
---|---|
State | New |
Headers | show |
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index b090e7f..90b6104 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -11614,6 +11614,13 @@ ix86_decompose_address (rtx addr, struct ix86_address * out) int retval = 1; enum ix86_address_seg seg = SEG_DEFAULT; + /* Support 32bit address in x32 mode. */ + if (TARGET_X32 + && GET_CODE (addr) == ZERO_EXTEND + && GET_MODE (addr) == Pmode + && GET_CODE (XEXP (addr, 0)) == PLUS) + addr = XEXP (addr, 0); + if (REG_P (addr) || GET_CODE (addr) == SUBREG) base = addr;