https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65697
--- Comment #52 from Andrew Macleod <amacleod at redhat dot com> --- (In reply to mwahab from comment #51) > The mips backend was the only one that stood out as needing some care, > because the way it uses the memory models (e.g. in function > mips_process_sync_loop) is a little different from the backends. > Yeah, it looks a bit wonky, but doesn't need anything special when I looked closer. That 11 and 10 are special overrides on a couple of patterns, the rest are just normal memory model values from a specified operand. Although I did miss a conversion there that has no real effect, but should be put in place... I'll add it to my patches. *** mips.c 2015-05-06 12:15:04.145423200 -0400 --- BAK/mips.c 2015-05-06 12:12:57.265671466 -0400 *************** mips_process_sync_loop (rtx_insn *insn, *** 13111,13117 **** model = MEMMODEL_ACQUIRE; break; default: ! model = memmodel_from_int (INTVAL (operands[memmodel_attr])); } mips_multi_start (); --- 13111,13117 ---- model = MEMMODEL_ACQUIRE; break; default: ! model = (enum memmodel) INTVAL (operands[memmodel_attr]); } mips_multi_start ();