aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-07-19 09:08:39 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-07-19 09:08:39 -0400
commit6231ef8299b7ddc59134042ad9456b7a23f6563c (patch)
tree893069663b7eb026e95895b3e1147daac311ad8c /gcc
parent40e6003c2502c35e3957c482398f1e23e70b3337 (diff)
downloadgcc-6231ef8299b7ddc59134042ad9456b7a23f6563c.zip
gcc-6231ef8299b7ddc59134042ad9456b7a23f6563c.tar.gz
gcc-6231ef8299b7ddc59134042ad9456b7a23f6563c.tar.bz2
(negdi2): Undo last change: don't apply neg to address regs.
From-SVN: r12526
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m68k/m68k.md5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 9fb0c8c..c847501 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -3796,7 +3796,10 @@
operands[1] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
else
operands[1] = adj_offsettable_operand (operands[0], 4);
- return \"neg%.l %1\;negx%.l %0\";
+ if (ADDRESS_REG_P (operands[0]))
+ return \"exg %/d0,%1\;neg%.l %/d0\;exg %/d0,%1\;exg %/d0,%0\;negx%.l %/d0\;exg %/d0,%0\";
+ else
+ return \"neg%.l %1\;negx%.l %0\";
} ")
(define_insn "negsi2"