mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-06 02:20:34 +08:00
re PR target/87598 (Rejects "%a0" with constant)
PR target/87598 * config/aarch64/aarch64.c (aarch64_print_address_internal): Don't call output_operand_lossage on VOIDmode CONST_INTs. After output_operand_lossage do return false. * gcc.target/aarch64/asm-5.c: New test. From-SVN: r266852
This commit is contained in:
parent
c0d105c63d
commit
31460ed2cb
@ -1,3 +1,10 @@
|
||||
2018-12-06 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/87598
|
||||
* config/aarch64/aarch64.c (aarch64_print_address_internal): Don't
|
||||
call output_operand_lossage on VOIDmode CONST_INTs. After
|
||||
output_operand_lossage do return false.
|
||||
|
||||
2018-12-06 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* df-problems.c (df_rd_local_compute): Use bitmap_release.
|
||||
|
@ -7635,8 +7635,13 @@ aarch64_print_address_internal (FILE *f, machine_mode mode, rtx x,
|
||||
unsigned int size;
|
||||
|
||||
/* Check all addresses are Pmode - including ILP32. */
|
||||
if (GET_MODE (x) != Pmode)
|
||||
output_operand_lossage ("invalid address mode");
|
||||
if (GET_MODE (x) != Pmode
|
||||
&& (!CONST_INT_P (x)
|
||||
|| trunc_int_for_mode (INTVAL (x), Pmode) != INTVAL (x)))
|
||||
{
|
||||
output_operand_lossage ("invalid address mode");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (aarch64_classify_address (&addr, x, mode, true, type))
|
||||
switch (addr.type)
|
||||
|
@ -1,5 +1,8 @@
|
||||
2018-12-06 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/87598
|
||||
* gcc.target/aarch64/asm-5.c: New test.
|
||||
|
||||
PR tree-optimization/85726
|
||||
* gcc.dg/tree-ssa/pr85726-1.c: New test.
|
||||
* gcc.dg/tree-ssa/pr85726-2.c: New test.
|
||||
|
8
gcc/testsuite/gcc.target/aarch64/asm-5.c
Normal file
8
gcc/testsuite/gcc.target/aarch64/asm-5.c
Normal file
@ -0,0 +1,8 @@
|
||||
/* PR target/87598 */
|
||||
/* { dg-do compile } */
|
||||
|
||||
void
|
||||
foo (void)
|
||||
{
|
||||
__asm__ ("# %a0" : : "i" (0));
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user