;;- be emulated in software by the OS. It is faster to avoid these
;;- instructions and issue a library call rather than trapping into
;;- the kernel. The affected instructions are fintrz and fscale. The
-;;- TARGET_68040 flag turns the use of the opcodes off.
+;;- TUNE_68040 flag turns the use of the opcodes off.
;;- The '040 also implements a set of new floating-point instructions
;;- which specify the rounding precision in the opcode. This finally
;;- instructions and issue a library call rather than trapping into
;;- the kernel. The affected instructions are: divs.l <ea>,Dr:Dq;
;;- divu.l <ea>,Dr:Dq; muls.l <ea>,Dr:Dq; mulu.l <ea>,Dr:Dq; and
-;;- fscale. The TARGET_68060 flag turns the use of the opcodes off.
+;;- fscale. The TUNE_68060 flag turns the use of the opcodes off.
;;- Some of these insn's are composites of several m68000 op codes.
;;- The assembler (or final @@??) insures that the appropriate one is
if (ADDRESS_REG_P (operands[0]))
{
/* On the '040, 'subl an,an' takes 2 clocks while lea takes only 1 */
- if (!TARGET_68040 && !TARGET_68060)
+ if (!TUNE_68040 && !TUNE_68060)
return "sub%.l %0,%0";
else
return MOTOROLA ? "lea 0.w,%0" : "lea 0:w,%0";
}
/* moveq is faster on the 68000. */
- if (DATA_REG_P (operands[0]) && (!TARGET_68020 && !TARGET_COLDFIRE))
+ if (DATA_REG_P (operands[0]) && TUNE_68000_10)
return "moveq #0,%0";
return "clr%.l %0";
})
if (ADDRESS_REG_P (operands[0]))
{
/* On the '040, 'subl an,an' takes 2 clocks while lea takes only 1 */
- if (!TARGET_68040 && !TARGET_68060)
+ if (!TUNE_68040 && !TUNE_68060)
return "sub%.l %0,%0";
else
return MOTOROLA ? "lea 0.w,%0" : "lea 0:w,%0";
}
/* moveq is faster on the 68000. */
- if (DATA_REG_P (operands[0]) && !(TARGET_68020 || TARGET_COLDFIRE))
- {
- return "moveq #0,%0";
- }
+ if (DATA_REG_P (operands[0]) && TUNE_68000_10)
+ return "moveq #0,%0";
return "clr%.l %0";
}
return "move%.l %1,%0";
(fix:SI (fix:DF (match_operand:DF 1 "register_operand" "f"))))
(clobber (match_scratch:SI 2 "=d"))
(clobber (match_scratch:SI 3 "=d"))]
- "TARGET_68881 && TARGET_68040"
+ "TARGET_68881 && TUNE_68040"
{
CC_STATUS_INIT;
return "fmovem%.l %!,%2\;moveq #16,%3\;or%.l %2,%3\;and%.w #-33,%3\;fmovem%.l %3,%!\;fmove%.l %1,%0\;fmovem%.l %2,%!";
(fix:HI (fix:DF (match_operand:DF 1 "register_operand" "f"))))
(clobber (match_scratch:SI 2 "=d"))
(clobber (match_scratch:SI 3 "=d"))]
- "TARGET_68881 && TARGET_68040"
+ "TARGET_68881 && TUNE_68040"
{
CC_STATUS_INIT;
return "fmovem%.l %!,%2\;moveq #16,%3\;or%.l %2,%3\;and%.w #-33,%3\;fmovem%.l %3,%!\;fmove%.w %1,%0\;fmovem%.l %2,%!";
(fix:QI (fix:DF (match_operand:DF 1 "register_operand" "f"))))
(clobber (match_scratch:SI 2 "=d"))
(clobber (match_scratch:SI 3 "=d"))]
- "TARGET_68881 && TARGET_68040"
+ "TARGET_68881 && TUNE_68040"
{
CC_STATUS_INIT;
return "fmovem%.l %!,%2\;moveq #16,%3\;or%.l %2,%3\;and%.w #-33,%3\;fmovem%.l %3,%!\;fmove%.b %1,%0\;fmovem%.l %2,%!";
(define_expand "ftrunc<mode>2"
[(set (match_operand:FP 0 "nonimmediate_operand" "")
(fix:FP (match_operand:FP 1 "general_operand" "")))]
- "TARGET_HARD_FLOAT && !TARGET_68040"
+ "TARGET_HARD_FLOAT && !TUNE_68040"
"")
(define_insn "ftrunc<mode>2_68881"
[(set (match_operand:FP 0 "nonimmediate_operand" "=f")
(fix:FP (match_operand:FP 1 "general_operand" "f<FP:dreg>m")))]
- "TARGET_68881 && !TARGET_68040"
+ "TARGET_68881 && !TUNE_68040"
{
if (FP_REG_P (operands[1]))
return "fintrz%.x %f1,%0";
/* On the CPU32 it is faster to use two addqw instructions to
add a small integer (8 < N <= 16) to a register.
Likewise for subqw. */
- if (TARGET_CPU32 && REG_P (operands[0]))
+ if (TUNE_CPU32 && REG_P (operands[0]))
{
if (INTVAL (operands[2]) > 8
&& INTVAL (operands[2]) <= 16)
return "subq%.w #8,%0\;subq%.w %2,%0";
}
}
- if (ADDRESS_REG_P (operands[0]) && !TARGET_68040)
+ if (ADDRESS_REG_P (operands[0]) && !TUNE_68040)
return MOTOROLA ? "lea (%c2,%0),%0" : "lea %0@(%c2),%0";
}
return "add%.w %2,%0";
/* On the CPU32 it is faster to use two addqw instructions to
add a small integer (8 < N <= 16) to a register.
Likewise for subqw. */
- if (TARGET_CPU32 && REG_P (operands[0]))
+ if (TUNE_CPU32 && REG_P (operands[0]))
{
if (INTVAL (operands[1]) > 8
&& INTVAL (operands[1]) <= 16)
return "subq%.w #8,%0\;subq%.w %1,%0";
}
}
- if (ADDRESS_REG_P (operands[0]) && !TARGET_68040)
+ if (ADDRESS_REG_P (operands[0]) && !TUNE_68040)
return MOTOROLA ? "lea (%c1,%0),%0" : "lea %0@(%c1),%0";
}
return "add%.w %1,%0";
/* On the CPU32 it is faster to use two addqw instructions to
add a small integer (8 < N <= 16) to a register.
Likewise for subqw. */
- if (TARGET_CPU32 && REG_P (operands[0]))
+ if (TUNE_CPU32 && REG_P (operands[0]))
{
if (INTVAL (operands[1]) > 8
&& INTVAL (operands[1]) <= 16)
return "subq%.w #8,%0\;subq%.w %1,%0";
}
}
- if (ADDRESS_REG_P (operands[0]) && !TARGET_68040)
+ if (ADDRESS_REG_P (operands[0]) && !TUNE_68040)
return MOTOROLA ? "lea (%c1,%0),%0" : "lea %0@(%c1),%0";
}
return "add%.w %1,%0";
(truncate:SI (lshiftrt:DI (mult:DI (zero_extend:DI (match_dup 1))
(zero_extend:DI (match_dup 2)))
(const_int 32))))])]
- "TARGET_68020 && !TARGET_68060 && !TARGET_COLDFIRE"
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
"")
(define_insn ""
(truncate:SI (lshiftrt:DI (mult:DI (zero_extend:DI (match_dup 1))
(zero_extend:DI (match_dup 2)))
(const_int 32))))]
- "TARGET_68020 && !TARGET_68060 && !TARGET_COLDFIRE"
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
"mulu%.l %2,%3:%0")
; Match immediate case. For 2.4 only match things < 2^31.
(truncate:SI (lshiftrt:DI (mult:DI (zero_extend:DI (match_dup 1))
(match_dup 2))
(const_int 32))))]
- "TARGET_68020 && !TARGET_68060 && !TARGET_COLDFIRE
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE
&& (unsigned) INTVAL (operands[2]) <= 0x7fffffff"
"mulu%.l %2,%3:%0")
(truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (match_dup 1))
(sign_extend:DI (match_dup 2)))
(const_int 32))))])]
- "TARGET_68020 && !TARGET_68060 && !TARGET_COLDFIRE"
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
"")
(define_insn ""
(truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (match_dup 1))
(sign_extend:DI (match_dup 2)))
(const_int 32))))]
- "TARGET_68020 && !TARGET_68060 && !TARGET_COLDFIRE"
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
"muls%.l %2,%3:%0")
(define_insn ""
(truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (match_dup 1))
(match_dup 2))
(const_int 32))))]
- "TARGET_68020 && !TARGET_68060 && !TARGET_COLDFIRE"
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
"muls%.l %2,%3:%0")
(define_expand "umulsi3_highpart"
(zero_extend:DI (match_operand:SI 2 "general_operand" "")))
(const_int 32))))
(clobber (match_dup 3))])]
- "TARGET_68020 && !TARGET_68060 && !TARGET_COLDFIRE"
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
{
operands[3] = gen_reg_rtx (SImode);
(zero_extend:DI (match_operand:SI 3 "nonimmediate_operand" "dm")))
(const_int 32))))
(clobber (match_operand:SI 1 "register_operand" "=d"))]
- "TARGET_68020 && !TARGET_68060 && !TARGET_COLDFIRE"
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
"mulu%.l %3,%0:%1")
(define_insn "const_umulsi3_highpart"
(match_operand:DI 3 "const_uint32_operand" "n"))
(const_int 32))))
(clobber (match_operand:SI 1 "register_operand" "=d"))]
- "TARGET_68020 && !TARGET_68060 && !TARGET_COLDFIRE"
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
"mulu%.l %3,%0:%1")
(define_expand "smulsi3_highpart"
(sign_extend:DI (match_operand:SI 2 "general_operand" "")))
(const_int 32))))
(clobber (match_dup 3))])]
- "TARGET_68020 && !TARGET_68060 && !TARGET_COLDFIRE"
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
{
operands[3] = gen_reg_rtx (SImode);
if (GET_CODE (operands[2]) == CONST_INT)
(sign_extend:DI (match_operand:SI 3 "nonimmediate_operand" "dm")))
(const_int 32))))
(clobber (match_operand:SI 1 "register_operand" "=d"))]
- "TARGET_68020 && !TARGET_68060 && !TARGET_COLDFIRE"
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
"muls%.l %3,%0:%1")
(define_insn "const_smulsi3_highpart"
(match_operand:DI 3 "const_sint32_operand" "n"))
(const_int 32))))
(clobber (match_operand:SI 1 "register_operand" "=d"))]
- "TARGET_68020 && !TARGET_68060 && !TARGET_COLDFIRE"
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
"muls%.l %3,%0:%1")
(define_expand "mul<mode>3"
"TARGET_68881"
{
if (GET_CODE (operands[2]) == CONST_DOUBLE
- && floating_exact_log2 (operands[2]) && !TARGET_68040 && !TARGET_68060)
+ && floating_exact_log2 (operands[2]) && !TUNE_68040 && !TUNE_68060)
{
int i = floating_exact_log2 (operands[2]);
operands[2] = GEN_INT (i);
[(set (match_operand:SI 0 "register_operand" "=d")
(ashift:SI (match_operand:SI 1 "register_operand" "0")
(const_int 16)))]
- "!TARGET_68060"
+ "!TUNE_68060"
{
CC_STATUS_INIT;
return "swap %0\;clr%.w %0";
[(set (match_operand:SI 0 "register_operand" "=d")
(ashift:SI (match_operand:SI 1 "register_operand" "0")
(match_operand:SI 2 "const_int_operand" "n")))]
- "(! TARGET_68020 && !TARGET_COLDFIRE
- && INTVAL (operands[2]) > 16 && INTVAL (operands[2]) <= 24)"
+ "TUNE_68000_10
+ && INTVAL (operands[2]) > 16
+ && INTVAL (operands[2]) <= 24"
{
CC_STATUS_INIT;
[(set (match_operand:SI 0 "register_operand" "=d")
(ashiftrt:SI (match_operand:SI 1 "register_operand" "0")
(const_int 16)))]
- "!TARGET_68060"
+ "!TUNE_68060"
"swap %0\;ext%.l %0")
;; On the 68000, this makes faster code in a special case.
[(set (match_operand:SI 0 "register_operand" "=d")
(ashiftrt:SI (match_operand:SI 1 "register_operand" "0")
(match_operand:SI 2 "const_int_operand" "n")))]
- "(! TARGET_68020 && !TARGET_COLDFIRE
- && INTVAL (operands[2]) > 16 && INTVAL (operands[2]) <= 24)"
+ "TUNE_68000_10
+ && INTVAL (operands[2]) > 16
+ && INTVAL (operands[2]) <= 24"
{
operands[2] = GEN_INT (INTVAL (operands[2]) - 16);
return "swap %0\;asr%.w %2,%0\;ext%.l %0";
[(set (match_operand:SI 0 "register_operand" "=d")
(lshiftrt:SI (match_operand:SI 1 "register_operand" "0")
(const_int 16)))]
- "!TARGET_68060"
+ "!TUNE_68060"
{
CC_STATUS_INIT;
return "clr%.w %0\;swap %0";
[(set (match_operand:SI 0 "register_operand" "=d")
(lshiftrt:SI (match_operand:SI 1 "register_operand" "0")
(match_operand:SI 2 "const_int_operand" "n")))]
- "(! TARGET_68020 && !TARGET_COLDFIRE
- && INTVAL (operands[2]) > 16 && INTVAL (operands[2]) <= 24)"
+ "TUNE_68000_10
+ && INTVAL (operands[2]) > 16
+ && INTVAL (operands[2]) <= 24"
{
/* I think lsr%.w sets the CC properly. */
operands[2] = GEN_INT (INTVAL (operands[2]) - 16);
(eq:QI (cc0) (const_int 0)))]
""
{
- if ((TARGET_68060 || TARGET_COLDFIRE_FPU)
+ if ((TUNE_68060 || TARGET_COLDFIRE_FPU)
&& m68k_last_compare_had_fp_operands)
{
m68k_last_compare_had_fp_operands = 0;
(ne:QI (cc0) (const_int 0)))]
""
{
- if ((TARGET_68060 || TARGET_COLDFIRE_FPU)
+ if ((TUNE_68060 || TARGET_COLDFIRE_FPU)
&& m68k_last_compare_had_fp_operands)
{
m68k_last_compare_had_fp_operands = 0;
(gt:QI (cc0) (const_int 0)))]
""
{
- if ((TARGET_68060 || TARGET_COLDFIRE_FPU)
+ if ((TUNE_68060 || TARGET_COLDFIRE_FPU)
&& m68k_last_compare_had_fp_operands)
{
m68k_last_compare_had_fp_operands = 0;
(lt:QI (cc0) (const_int 0)))]
""
{
- if ((TARGET_68060 || TARGET_COLDFIRE_FPU)
+ if ((TUNE_68060 || TARGET_COLDFIRE_FPU)
&& m68k_last_compare_had_fp_operands)
{
m68k_last_compare_had_fp_operands = 0;
(ge:QI (cc0) (const_int 0)))]
""
{
- if ((TARGET_68060 || TARGET_COLDFIRE_FPU)
+ if ((TUNE_68060 || TARGET_COLDFIRE_FPU)
&& m68k_last_compare_had_fp_operands)
{
m68k_last_compare_had_fp_operands = 0;
(le:QI (cc0) (const_int 0)))]
""
{
- if ((TARGET_68060 || TARGET_COLDFIRE_FPU)
+ if ((TUNE_68060 || TARGET_COLDFIRE_FPU)
&& m68k_last_compare_had_fp_operands)
{
m68k_last_compare_had_fp_operands = 0;
(define_expand "sordered"
[(set (match_operand:QI 0 "register_operand" "")
(ordered:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
gcc_assert (m68k_last_compare_had_fp_operands);
m68k_last_compare_had_fp_operands = 0;
(define_insn "*sordered_1"
[(set (match_operand:QI 0 "register_operand" "=d")
(ordered:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
cc_status = cc_prev_status;
return "fsor %0";
(define_expand "sunordered"
[(set (match_operand:QI 0 "register_operand" "")
(unordered:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
gcc_assert (m68k_last_compare_had_fp_operands);
m68k_last_compare_had_fp_operands = 0;
(define_insn "*sunordered_1"
[(set (match_operand:QI 0 "register_operand" "=d")
(unordered:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
cc_status = cc_prev_status;
return "fsun %0";
(define_expand "suneq"
[(set (match_operand:QI 0 "register_operand" "")
(uneq:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
gcc_assert (m68k_last_compare_had_fp_operands);
m68k_last_compare_had_fp_operands = 0;
(define_insn "*suneq_1"
[(set (match_operand:QI 0 "register_operand" "=d")
(uneq:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
cc_status = cc_prev_status;
return "fsueq %0";
(define_expand "sunge"
[(set (match_operand:QI 0 "register_operand" "")
(unge:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
gcc_assert (m68k_last_compare_had_fp_operands);
m68k_last_compare_had_fp_operands = 0;
(define_insn "*sunge_1"
[(set (match_operand:QI 0 "register_operand" "=d")
(unge:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
cc_status = cc_prev_status;
return "fsuge %0";
(define_expand "sungt"
[(set (match_operand:QI 0 "register_operand" "")
(ungt:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
gcc_assert (m68k_last_compare_had_fp_operands);
m68k_last_compare_had_fp_operands = 0;
(define_insn "*sungt_1"
[(set (match_operand:QI 0 "register_operand" "=d")
(ungt:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
cc_status = cc_prev_status;
return "fsugt %0";
(define_expand "sunle"
[(set (match_operand:QI 0 "register_operand" "")
(unle:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
gcc_assert (m68k_last_compare_had_fp_operands);
m68k_last_compare_had_fp_operands = 0;
(define_insn "*sunle_1"
[(set (match_operand:QI 0 "register_operand" "=d")
(unle:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
cc_status = cc_prev_status;
return "fsule %0";
(define_expand "sunlt"
[(set (match_operand:QI 0 "register_operand" "")
(unlt:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
gcc_assert (m68k_last_compare_had_fp_operands);
m68k_last_compare_had_fp_operands = 0;
(define_insn "*sunlt_1"
[(set (match_operand:QI 0 "register_operand" "=d")
(unlt:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
cc_status = cc_prev_status;
return "fsult %0";
(define_expand "sltgt"
[(set (match_operand:QI 0 "register_operand" "")
(ltgt:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
gcc_assert (m68k_last_compare_had_fp_operands);
m68k_last_compare_had_fp_operands = 0;
(define_insn "*sltgt_1"
[(set (match_operand:QI 0 "register_operand" "=d")
(ltgt:QI (cc0) (const_int 0)))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
cc_status = cc_prev_status;
return "fsogl %0";
(define_insn "*fsogt_1"
[(set (match_operand:QI 0 "register_operand" "=d")
(not:QI (unle:QI (cc0) (const_int 0))))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
cc_status = cc_prev_status;
return "fsogt %0";
(define_insn "*fsoge_1"
[(set (match_operand:QI 0 "register_operand" "=d")
(not:QI (unlt:QI (cc0) (const_int 0))))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
cc_status = cc_prev_status;
return "fsoge %0";
(define_insn "*fsolt_1"
[(set (match_operand:QI 0 "register_operand" "=d")
(not:QI (unge:QI (cc0) (const_int 0))))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
cc_status = cc_prev_status;
return "fsolt %0";
(define_insn "*fsole_1"
[(set (match_operand:QI 0 "register_operand" "=d")
(not:QI (ungt:QI (cc0) (const_int 0))))]
- "TARGET_68881 && !TARGET_68060"
+ "TARGET_68881 && !TUNE_68060"
{
cc_status = cc_prev_status;
return "fsole %0";
else
output_asm_insn ("addq%.l %1,%0", xoperands);
}
- else if (TARGET_CPU32 && INTVAL (xoperands[1]) <= 16)
+ else if (TUNE_CPU32 && INTVAL (xoperands[1]) <= 16)
{
xoperands[1] = GEN_INT (INTVAL (xoperands[1]) - 8);
output_asm_insn ("addq%.w #8,%0\;addq%.w %1,%0", xoperands);
}
else if (INTVAL (xoperands[1]) <= 0x7FFF)
{
- if (TARGET_68040)
+ if (TUNE_68040)
output_asm_insn ("add%.w %1,%0", xoperands);
else if (MOTOROLA)
output_asm_insn ("lea (%c1,%0),%0", xoperands);
else
output_asm_insn ("addq%.l %1,%0", xoperands);
}
- else if (TARGET_CPU32 && INTVAL (xoperands[1]) <= 16)
+ else if (TUNE_CPU32 && INTVAL (xoperands[1]) <= 16)
{
xoperands[1] = GEN_INT (INTVAL (xoperands[1]) - 8);
output_asm_insn ("addq%.w #8,%0\;addq%.w %1,%0", xoperands);
}
else if (INTVAL (xoperands[1]) <= 0x7FFF)
{
- if (TARGET_68040)
+ if (TUNE_68040)
output_asm_insn ("add%.w %1,%0", xoperands);
else if (MOTOROLA)
output_asm_insn ("lea (%c1,%0),%0", xoperands);