Stefan Dösinger writes:
>Unfortunately I need support for the swap suffix in as, so using the system 
>binaries is not an option. Is the only thing I can do to find the source of 
>the as version, backport the swap suffix and hope for the best?

Another option might be a hack like this:

        (define_insn "vswapmov"
          [(set (match_operand:SI 0 "register_operand" "=r")
                (match_operand:SI 1 "register_operand" "r"))
           (unspec_volatile [(const_int 0)] UNSPECV_VSWAPMOV)]
          ""
        {
        #ifdef HAVE_AS_IX86_SWAP
          return "movl.s\t{%1, %0|%0, %1}";
        #else
          if (true_regnum(operand[0]) == DI_REG
              && true_regnum(operand[1]) == DI_REG)
                return ASM_BYTE "0x8B, 0xFF";
          if (true_regnum(operand[0]) == BP_REG
              && true_regnum(operand[1]) == SP_REG)
                return ASM_BYTE "0x8B, 0xEC";
          gcc_unreachable();
        #endif
        }
          [(set_attr "length" "2")
           (set_attr "length_immediate" "0")
           (set_attr "modrm" "0")])

It's not pretty but you won't be dependent on binutils.

                                Ross Ridge

Reply via email to