re PR target/89290 (ICE in change_address_1, at emit-rtl.c:2286)

PR target/89290
	* config/i386/predicates.md (x86_64_immediate_operand): Allow
	TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
	-mcmodel=large.

	* gcc.target/i386/pr89290.c: New test.

From-SVN: r268837
This commit is contained in:
Jakub Jelinek 2019-02-13 09:45:37 +01:00 committed by Jakub Jelinek
parent 5522686e52
commit 3e7f831c2a
4 changed files with 32 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2019-02-13 Jakub Jelinek <jakub@redhat.com>
PR target/89290
* config/i386/predicates.md (x86_64_immediate_operand): Allow
TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
-mcmodel=large.
2019-02-13 Martin Liska <mliska@suse.cz>
PR lto/88858

View File

@ -182,7 +182,7 @@
rtx op1 = XEXP (XEXP (op, 0), 0);
rtx op2 = XEXP (XEXP (op, 0), 1);
if (ix86_cmodel == CM_LARGE)
if (ix86_cmodel == CM_LARGE && GET_CODE (op1) != UNSPEC)
return false;
if (!CONST_INT_P (op2))
return false;

View File

@ -1,3 +1,8 @@
2019-02-13 Jakub Jelinek <jakub@redhat.com>
PR target/89290
* gcc.target/i386/pr89290.c: New test.
2019-01-23 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
* gcc.target/powerpc/crypto-builtin-1.c

View File

@ -0,0 +1,19 @@
/* PR target/89290 */
/* { dg-do compile { target { tls && lp64 } } } */
/* { dg-options "-O0 -mcmodel=large" } */
struct S { long int a, b; } e;
__thread struct S s;
__thread struct S t[2];
void
foo (void)
{
s = e;
}
void
bar (void)
{
t[1] = e;
}