diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-11-02 21:19:36 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-11-02 21:19:36 +0000 |
commit | 0dbd1c7442aeabc3e63daf6f70f8fb136f0cf38e (patch) | |
tree | 46fe768360493f03f7282d07762e7b26c292aabd /gcc/config/m68k/m68k.md | |
parent | 638d2d6c66cb82345c84b92a46ebf9445c56204c (diff) | |
download | gcc-0dbd1c7442aeabc3e63daf6f70f8fb136f0cf38e.tar.gz |
Update mainline egcs to gcc2 snapshot 971021.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16278 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68k/m68k.md')
-rw-r--r-- | gcc/config/m68k/m68k.md | 80 |
1 files changed, 50 insertions, 30 deletions
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index 3a54b6d19c0..ddcac6555be 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -5813,28 +5813,34 @@ else operands[3] = adj_offsettable_operand (operands[0], 4); if (! ADDRESS_REG_P (operands[0])) + { #ifdef MOTOROLA - return \"move%.l %0,%2\;or%.l %3,%2\;jbeq %l1\"; + return \"move%.l %0,%2\;or%.l %3,%2\;jbeq %l1\"; #else - return \"move%.l %0,%2\;or%.l %3,%2\;jeq %l1\"; + return \"move%.l %0,%2\;or%.l %3,%2\;jeq %l1\"; #endif + } operands[4] = gen_label_rtx(); if (TARGET_68020 || TARGET_5200) + { #ifdef MOTOROLA - output_asm_insn (\"tst%.l %0\;jbne %l4\;tst%.l %3\;jbeq %l1\", operands); + output_asm_insn (\"tst%.l %0\;jbne %l4\;tst%.l %3\;jbeq %l1\", operands); #else - output_asm_insn (\"tst%.l %0\;jne %l4\;tst%.l %3\;jeq %l1\", operands); + output_asm_insn (\"tst%.l %0\;jne %l4\;tst%.l %3\;jeq %l1\", operands); #endif + } else + { #ifdef MOTOROLA #ifdef SGS_CMP_ORDER - output_asm_insn (\"cmp%.w %0,%#0\;jbne %l4\;cmp%.w %3,%#0\;jbeq %l1\", operands); + output_asm_insn (\"cmp%.w %0,%#0\;jbne %l4\;cmp%.w %3,%#0\;jbeq %l1\", operands); #else - output_asm_insn (\"cmp%.w %#0,%0\;jbne %l4\;cmp%.w %#0,%3\;jbeq %l1\", operands); + output_asm_insn (\"cmp%.w %#0,%0\;jbne %l4\;cmp%.w %#0,%3\;jbeq %l1\", operands); #endif #else - output_asm_insn (\"cmp%.w %#0,%0\;jne %l4\;cmp%.w %#0,%3\;jeq %l1\", operands); + output_asm_insn (\"cmp%.w %#0,%0\;jne %l4\;cmp%.w %#0,%3\;jeq %l1\", operands); #endif + } ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\", CODE_LABEL_NUMBER (operands[4])); return \"\"; @@ -5868,27 +5874,33 @@ else operands[3] = adj_offsettable_operand (operands[0], 4); if (!ADDRESS_REG_P (operands[0])) + { #ifdef MOTOROLA - return \"move%.l %0,%2\;or%.l %3,%2\;jbne %l1\"; + return \"move%.l %0,%2\;or%.l %3,%2\;jbne %l1\"; #else - return \"move%.l %0,%2\;or%.l %3,%2\;jne %l1\"; + return \"move%.l %0,%2\;or%.l %3,%2\;jne %l1\"; #endif + } if (TARGET_68020 || TARGET_5200) + { #ifdef MOTOROLA - return \"tst%.l %0\;jbne %l1\;tst%.l %3\;jbne %l1\"; + return \"tst%.l %0\;jbne %l1\;tst%.l %3\;jbne %l1\"; #else - return \"tst%.l %0\;jne %l1\;tst%.l %3\;jne %l1\"; + return \"tst%.l %0\;jne %l1\;tst%.l %3\;jne %l1\"; #endif + } else + { #ifdef MOTOROLA #ifdef SGS_CMP_ORDER - return \"cmp%.w %0,%#0\;jbne %l1\;cmp%.w %3,%#0\;jbne %l1\"; + return \"cmp%.w %0,%#0\;jbne %l1\;cmp%.w %3,%#0\;jbne %l1\"; #else - return \"cmp%.w %#0,%0\;jbne %l1\;cmp%.w %#0,%3\;jbne %l1\"; + return \"cmp%.w %#0,%0\;jbne %l1\;cmp%.w %#0,%3\;jbne %l1\"; #endif #else - return \"cmp%.w %#0,%0\;jne %l1\;cmp%.w %#0,%3\;jne %l1\"; + return \"cmp%.w %#0,%0\;jne %l1\;cmp%.w %#0,%3\;jne %l1\"; #endif + } } ") (define_insn "bge0_di" @@ -5927,17 +5939,19 @@ if (TARGET_68020 || TARGET_5200 || ! ADDRESS_REG_P (operands[0])) output_asm_insn(\"tst%.l %0\", operands); else - /* On an address reg, cmpw may replace cmpl. */ + { + /* On an address reg, cmpw may replace cmpl. */ #ifdef SGS_CMP_ORDER - output_asm_insn(\"cmp%.w %0,%#0\", operands); + output_asm_insn(\"cmp%.w %0,%#0\", operands); #else - output_asm_insn(\"cmp%.w %#0,%0\", operands); + output_asm_insn(\"cmp%.w %#0,%0\", operands); #endif + } #ifdef MOTOROLA - return \"jbpl %l1\"; + return \"jbpl %l1\"; #else - return \"jpl %l1\"; + return \"jpl %l1\"; #endif } ") @@ -5977,12 +5991,14 @@ if (TARGET_68020 || TARGET_5200 || ! ADDRESS_REG_P (operands[0])) output_asm_insn(\"tst%.l %0\", operands); else - /* On an address reg, cmpw may replace cmpl. */ + { + /* On an address reg, cmpw may replace cmpl. */ #ifdef SGS_CMP_ORDER - output_asm_insn(\"cmp%.w %0,%#0\", operands); + output_asm_insn(\"cmp%.w %0,%#0\", operands); #else - output_asm_insn(\"cmp%.w %#0,%0\", operands); + output_asm_insn(\"cmp%.w %#0,%0\", operands); #endif + } #ifdef MOTOROLA return \"jbmi %l1\"; @@ -6732,21 +6748,23 @@ "* if (GET_CODE (operands[1]) == MEM && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF) + { #ifdef MOTOROLA #ifdef HPUX_ASM - return \"bsr.l %1\"; + return \"bsr.l %1\"; #else #ifdef USE_GAS - return \"bsr.l %1@PLTPC\"; + return \"bsr.l %1@PLTPC\"; #else - return \"bsr %1@PLTPC\"; + return \"bsr %1@PLTPC\"; #endif #endif #else - /* The ',a1' is a dummy argument telling the Sun assembler we want PIC - GAS just plain ignores it. */ - return \"jbsr %1,a1\"; + /* The ',a1' is a dummy argument telling the Sun assembler we want PIC + GAS just plain ignores it. */ + return \"jbsr %1,a1\"; #endif + } return \"jsr %1\"; ") @@ -6971,11 +6989,13 @@ if (TARGET_68040) output_asm_insn (\"add%.w %1,%0\", xoperands); else + { #ifdef MOTOROLA - output_asm_insn (\"lea (%c1,%0),%0\", xoperands); + output_asm_insn (\"lea (%c1,%0),%0\", xoperands); #else - output_asm_insn (\"lea %0@(%c1),%0\", xoperands); + output_asm_insn (\"lea %0@(%c1),%0\", xoperands); #endif + } } else output_asm_insn (\"add%.l %1,%0\", xoperands); |