https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65342

--- Comment #8 from Iain Sandoe <iains at gcc dot gnu.org> ---
BTW, is:

(define_insn "movdi_low_st"
  [(set (mem:DI (lo_sum:DI (match_operand:DI 1 "gpc_reg_operand" "b,b,b")
                           (match_operand 2 "" "Y,,")))
    (match_operand:DI 0 "gpc_reg_operand" "r,r,*!d"))]
  "TARGET_MACHO && TARGET_64BIT"
  "*
{
  switch (which_alternative)
    {
      case 0:
    return \"std %0,lo16(%2)(%1)\";
      case 1:
    {
      output_asm_insn (\"la %1,lo16(%2)(%1)\", operands);

^^^^^
permitted? (i.e. modifying %1, which is an input operand)
      return (\"std %0,0(%1)\");
    }
      case 2:
    return \"stfd %0,lo16(%2)(%1)\";
      default:
    gcc_unreachable ();
    }
}"
  [(set_attr "type" "store")
   (set_attr "length" "4")])

Reply via email to