The testcase for PR 51933 was failing on mipsisa64-elf because md_reorg changed a symbolic small-data asm operand into a LO_SUM.
Tested on mipsisa64-elf and applied. Richard gcc/ * config/mips/mips.c: Don't process ASM_OPERANDS. Index: gcc/config/mips/mips.c =================================================================== --- gcc/config/mips/mips.c 2012-01-25 18:53:22.000000000 +0000 +++ gcc/config/mips/mips.c 2012-01-25 18:53:59.000000000 +0000 @@ -3101,7 +3101,10 @@ mips_small_data_pattern_1 (rtx *loc, voi { 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))