diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fc98fb42afb..b3914bedd9a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2012-01-25 Richard Sandiford <rdsandiford@googlemail.com> + + * config/mips/mips.c: Don't process ASM_OPERANDS. + 2012-01-25 Georg-Johann Lay <avr@gjlay.de> PR target/49868 diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 4a64ff234ca..e4231a59c49 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -3101,7 +3101,10 @@ mips_small_data_pattern_1 (rtx *loc, void *data) { enum mips_symbol_context context; - if (GET_CODE (*loc) == LO_SUM) + /* Ignore things like "g" constraints in asms. We make no particular + guarantee about which symbolic constants are acceptable as asm operands + versus which must be forced into a GPR. */ + if (GET_CODE (*loc) == LO_SUM || GET_CODE (*loc) == ASM_OPERANDS) return -1; if (MEM_P (*loc)) |