re PR target/60568 (lto1: internal compiler error: in insn_min_length, at config/i386/i386.md:1599)

PR target/60568
	* config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
	into CONST, put pic register as first operand of PLUS.  Use
	gen_const_mem for both 32-bit and 64-bit PIC got loads.

From-SVN: r208706
This commit is contained in:
Jakub Jelinek 2014-03-20 17:05:41 +01:00 committed by Jakub Jelinek
parent e2f98c017c
commit d02b6ac744
2 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2014-03-20 Jakub Jelinek <jakub@redhat.com>
PR target/60568
* config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
into CONST, put pic register as first operand of PLUS. Use
gen_const_mem for both 32-bit and 64-bit PIC got loads.
2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.

View File

@ -38753,7 +38753,7 @@ x86_output_mi_thunk (FILE *file,
{
tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, fnaddr), UNSPEC_GOTPCREL);
tmp = gen_rtx_CONST (Pmode, tmp);
fnaddr = gen_rtx_MEM (Pmode, tmp);
fnaddr = gen_const_mem (Pmode, tmp);
}
}
else
@ -38773,8 +38773,9 @@ x86_output_mi_thunk (FILE *file,
output_set_got (tmp, NULL_RTX);
fnaddr = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, fnaddr), UNSPEC_GOT);
fnaddr = gen_rtx_PLUS (Pmode, fnaddr, tmp);
fnaddr = gen_rtx_MEM (Pmode, fnaddr);
fnaddr = gen_rtx_CONST (Pmode, fnaddr);
fnaddr = gen_rtx_PLUS (Pmode, tmp, fnaddr);
fnaddr = gen_const_mem (Pmode, fnaddr);
}
}