diff options
author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-09-02 11:08:33 +0000 |
---|---|---|
committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-09-02 11:08:33 +0000 |
commit | 628277461faf5027a8ffb2859d9617d6579dac45 (patch) | |
tree | 4fb03a64a51c367e3a9eece89bc83f8f0d928f66 | |
parent | c7e8f2d8fcaf2cf6d42f7bbe34fd73848ae0e562 (diff) | |
download | gcc-628277461faf5027a8ffb2859d9617d6579dac45.tar.gz |
* config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
Improve insn output code.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190861 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/config/i386/sync.md | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/config/i386/sync.md b/gcc/config/i386/sync.md index 50bedcf0dff..44cb5d4c070 100644 --- a/gcc/config/i386/sync.md +++ b/gcc/config/i386/sync.md @@ -421,14 +421,13 @@ "TARGET_CMPXCHG<doublemodesuffix>B" { bool swap = REGNO (operands[5]) != BX_REG; + const char *xchg = "xchg{<imodesuffix>}\t%%<regprefix>bx, %5"; if (swap) - output_asm_insn ("xchg{<imodesuffix>}\t%%<regprefix>bx, %5", operands); - + output_asm_insn (xchg, operands); output_asm_insn ("lock{%;} %K7cmpxchg<doublemodesuffix>b\t%2", operands); - if (swap) - output_asm_insn ("xchg{<imodesuffix>}\t%%<regprefix>bx, %5", operands); + output_asm_insn (xchg, operands); return ""; }) |