[m68k] Remove SGS assembler support

Bernardo Innocenti bernie@develer.com
Sun Feb 8 21:18:00 GMT 2004


Andreas Schwab wrote:
> Bernardo Innocenti <bernie@develer.com> writes:
> 
> 
>>This cleanup opened the opportunity to remove immediate prefix handling
>>from print_operand().  I assume no code outside GCC is using %#, which
>>isn't published in our user documentation.
> 
> longlong.h is also part of GMP, so you can't remove %#.  Anyway,
> supporting it doesn't significantly add complexity to bother, IMHO.

Agreed.  I've restored %# in longlong.h and in m68k.c:print_operand().
I've kept the %# removal in m68k.md and in other places because it
slightly improves visibility.

I'd also like to remove register prefix handling (%/ and the stuff you've
taken care of earlier).  To my surprise, I've discovered that we still
have one live target that doesn't use register prefixes: m68k-aout.

I wonder which weird assembler they use: gas always used '%' afaik.
Do you know anyone still using this target?  I'm afraid we're too
late to obsolete m68k-aout at this time :-(


2004-02-08  Bernardo Innocenti  <bernie@develer.com>

	* config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
	code to support SGS assembler.  Reformat adjacent code where possible.
	* config/m68k/m68k.c (switch_table_difference_label_flag): Remove definition.
	* config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support for '%#'.
	* config/m68k/linux.h, config/m68k/m68k.c,
	* config/m68k/math-68881.h: Replace `%#' with `#' in inline asm macros and
	asm_printf() format strings.
	* config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
	* config/m68k/linux.h: Update copyright.
	* config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.

diff -u -p -u -p -r1.39 linux.h
--- gcc-3.5.orig/gcc/config/m68k/linux.h	29 Nov 2003 03:08:11 -0000	1.39
+++ gcc-3.5/gcc/config/m68k/linux.h	8 Feb 2004 01:32:41 -0000
@@ -1,6 +1,7 @@
 /* Definitions for Motorola 68k running Linux-based GNU systems with
    ELF format.
-   Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004
+   Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -27,7 +28,7 @@ Boston, MA 02111-1307, USA.  */
 
 /* for 68k machines this only needs to be TRUE for the 68000 */
 
-#undef STRICT_ALIGNMENT     
+#undef STRICT_ALIGNMENT
 #define STRICT_ALIGNMENT 0
 
 #undef SUBTARGET_SWITCHES
@@ -72,13 +73,13 @@ Boston, MA 02111-1307, USA.  */
 
 #undef SIZE_TYPE
 #define SIZE_TYPE "unsigned int"
- 
+
 #undef PTRDIFF_TYPE
 #define PTRDIFF_TYPE "int"
-  
+
 #undef WCHAR_TYPE
 #define WCHAR_TYPE "long int"
-   
+
 #undef WCHAR_TYPE_SIZE
 #define WCHAR_TYPE_SIZE BITS_PER_WORD
 
@@ -229,7 +230,7 @@ Boston, MA 02111-1307, USA.  */
    the precise function being called is known, FUNC is its
    FUNCTION_DECL; otherwise, FUNC is 0.  For m68k/SVR4 generate the
    result in d0, a0, or fp0 as appropriate.  */
-   
+
 #undef FUNCTION_VALUE
 #define FUNCTION_VALUE(VALTYPE, FUNC)					\
   (TREE_CODE (VALTYPE) == REAL_TYPE && TARGET_68881			\
@@ -287,7 +288,7 @@ do {									\
    scope  - the scope of the flush (see the cpush insn)
    cache  - which cache to flush (see the cpush insn)
    len    - a factor relating to the number of flushes to perform:
-   	    len/16 lines, or len/4096 pages.  */
+	    len/16 lines, or len/4096 pages.  */
 
 #define CLEAR_INSN_CACHE(BEG, END)					\
 {									\
@@ -295,10 +296,10 @@ do {									\
   unsigned long _end = (unsigned long) (END);				\
   register unsigned long _len __asm ("%d4") = (_end - _beg + 32);	\
   __asm __volatile							\
-    ("move%.l %#123, %/d0\n\t"	/* system call nr */			\
-     "move%.l %#1, %/d2\n\t"	/* clear lines */			\
-     "move%.l %#3, %/d3\n\t"	/* insn+data caches */			\
-     "trap %#0"								\
+    ("move%.l #123, %/d0\n\t"	/* system call nr */			\
+     "move%.l #1, %/d2\n\t"	/* clear lines */			\
+     "move%.l #3, %/d3\n\t"	/* insn+data caches */			\
+     "trap #0"								\
      : /* no outputs */							\
      : "d" (_beg), "d" (_len)						\
      : "%d0", "%d2", "%d3");						\
diff -u -p -u -p -r1.125 m68k.c
--- gcc-3.5.orig/gcc/config/m68k/m68k.c	4 Feb 2004 20:01:00 -0000	1.125
+++ gcc-3.5/gcc/config/m68k/m68k.c	8 Feb 2004 01:32:57 -0000
@@ -91,10 +91,6 @@ struct m68k_frame
 /* Current frame information calculated by m68k_compute_frame_layout().  */
 static struct m68k_frame current_frame;
 
-/* This flag is used to communicate between movhi and ASM_OUTPUT_CASE_END,
-   if SGS_SWITCH_TABLE.  */
-int switch_table_difference_label_flag;
-
 static rtx find_addr_reg (rtx);
 static const char *singlemove_string (rtx *);
 static void m68k_output_function_prologue (FILE *, HOST_WIDE_INT);
@@ -517,7 +513,7 @@ m68k_output_function_prologue (FILE *str
       if (dwarf2out_do_frame ())
 	{
 	  char *l;
-          l = (char *) dwarf2out_cfi_label ();   
+          l = (char *) dwarf2out_cfi_label ();
 	  cfa_offset += 4;
 	  dwarf2out_reg_save (l, FRAME_POINTER_REGNUM, -cfa_offset);
 	  dwarf2out_def_cfa (l, FRAME_POINTER_REGNUM, cfa_offset);
@@ -1128,8 +1124,8 @@ output_dbcc_and_branch (rtx *operands)
     {
       case SImode:
         output_asm_insn (MOTOROLA ?
-			   "clr%.w %0\n\tsubq%.l %#1,%0\n\tjbpl %l1" :
-			   "clr%.w %0\n\tsubq%.l %#1,%0\n\tjpl %l1",
+			   "clr%.w %0\n\tsubq%.l #1,%0\n\tjbpl %l1" :
+			   "clr%.w %0\n\tsubq%.l #1,%0\n\tjpl %l1",
 			 operands);
         break;
 
@@ -1177,18 +1173,10 @@ output_scc_di(rtx op, rtx operand1, rtx 
   loperands[4] = gen_label_rtx();
   if (operand2 != const0_rtx)
     {
-      if (MOTOROLA)
-#ifdef SGS_CMP_ORDER
-        output_asm_insn ("cmp%.l %0,%2\n\tjbne %l4\n\tcmp%.l %1,%3", loperands);
-#else
-        output_asm_insn ("cmp%.l %2,%0\n\tjbne %l4\n\tcmp%.l %3,%1", loperands);
-#endif
-      else
-#ifdef SGS_CMP_ORDER
-        output_asm_insn ("cmp%.l %0,%2\n\tjne %l4\n\tcmp%.l %1,%3", loperands);
-#else
-        output_asm_insn ("cmp%.l %2,%0\n\tjne %l4\n\tcmp%.l %3,%1", loperands);
-#endif
+      output_asm_insn (MOTOROLA ?
+	  "cmp%.l %2,%0\n\tjbne %l4\n\tcmp%.l %3,%1" :
+          "cmp%.l %2,%0\n\tjne %l4\n\tcmp%.l %3,%1",
+	loperands);
     }
   else
     {
@@ -1196,11 +1184,7 @@ output_scc_di(rtx op, rtx operand1, rtx 
 	output_asm_insn ("tst%.l %0", loperands);
       else
 	{
-#ifdef SGS_CMP_ORDER
-	  output_asm_insn ("cmp%.w %0,%#0", loperands);
-#else
-	  output_asm_insn ("cmp%.w %#0,%0", loperands);
-#endif
+	  output_asm_insn ("cmp%.w #0,%0", loperands);
 	}
 
       output_asm_insn (MOTOROLA ? "jbne %l4" : "jne %l4", loperands);
@@ -1208,17 +1192,11 @@ output_scc_di(rtx op, rtx operand1, rtx 
       if (TARGET_68020 || TARGET_COLDFIRE || ! ADDRESS_REG_P (loperands[1]))
 	output_asm_insn ("tst%.l %1", loperands);
       else
-	{
-#ifdef SGS_CMP_ORDER
-	  output_asm_insn ("cmp%.w %1,%#0", loperands);
-#else
-	  output_asm_insn ("cmp%.w %#0,%1", loperands);
-#endif
-	}
+	output_asm_insn ("cmp%.w #0,%1", loperands);
     }
 
   loperands[5] = dest;
-  
+
   switch (op_code)
     {
       case EQ:
@@ -1694,7 +1672,7 @@ output_move_const_into_data_reg (rtx *op
       return "moveq %1,%0\n\tnot%.w %0";
     case NEGW :
       CC_STATUS_INIT;
-      return "moveq %#-128,%0\n\tneg%.w %0";
+      return "moveq #-128,%0\n\tneg%.w %0";
     case SWAP :
       {
 	unsigned u = i;
@@ -1796,23 +1774,12 @@ output_move_himode (rtx *operands)
       && GET_CODE (XEXP (XEXP (operands[1], 0), 0)) != PLUS)
     {
       rtx labelref = XEXP (XEXP (operands[1], 0), 1);
-#if MOTOROLA && !defined (SGS_SWITCH_TABLES)
-#ifdef SGS
-      asm_fprintf (asm_out_file, "\tset %LLI%d,.+2\n",
-		   CODE_LABEL_NUMBER (XEXP (labelref, 0)));
-#else /* not SGS */
-      asm_fprintf (asm_out_file, "\t.set %LLI%d,.+2\n",
-		   CODE_LABEL_NUMBER (XEXP (labelref, 0)));
-#endif /* not SGS */
-#else /* SGS_SWITCH_TABLES or not MOTOROLA */
-      (*targetm.asm_out.internal_label) (asm_out_file, "LI",
-				 CODE_LABEL_NUMBER (XEXP (labelref, 0)));
-#ifdef SGS_SWITCH_TABLES
-      /* Set flag saying we need to define the symbol
-	 LD%n (with value L%n-LI%n) at the end of the switch table.  */
-      switch_table_difference_label_flag = 1;
-#endif /* SGS_SWITCH_TABLES */
-#endif /* SGS_SWITCH_TABLES or not MOTOROLA */
+      if (MOTOROLA)
+	asm_fprintf (asm_out_file, "\t.set %LLI%d,.+2\n",
+		     CODE_LABEL_NUMBER (XEXP (labelref, 0)));
+      else
+	(*targetm.asm_out.internal_label) (asm_out_file, "LI",
+		     CODE_LABEL_NUMBER (XEXP (labelref, 0)));
     }
   return "move%.w %1,%0";
 }
@@ -1841,7 +1808,7 @@ output_move_qimode (rtx *operands)
       if (!reg_mentioned_p (stack_pointer_rtx, operands[1]))
 	{
 	  xoperands[3] = stack_pointer_rtx;
-	  output_asm_insn ("subq%.l %#2,%3\n\tmove%.b %1,%2", xoperands);
+	  output_asm_insn ("subq%.l #2,%3\n\tmove%.b %1,%2", xoperands);
 	}
       else
 	output_asm_insn ("move%.b %1,%-\n\tmove%.b %@,%2", xoperands);
@@ -1983,9 +1950,9 @@ output_move_double (rtx *operands)
     {
       operands[0] = XEXP (XEXP (operands[0], 0), 0);
       if (size == 12)
-        output_asm_insn ("sub%.l %#12,%0", operands);
+        output_asm_insn ("sub%.l #12,%0", operands);
       else
-        output_asm_insn ("subq%.l %#8,%0", operands);
+        output_asm_insn ("subq%.l #8,%0", operands);
       if (GET_MODE (operands[1]) == XFmode)
 	operands[0] = gen_rtx_MEM (XFmode, operands[0]);
       else if (GET_MODE (operands[0]) == DFmode)
@@ -1998,9 +1965,9 @@ output_move_double (rtx *operands)
     {
       operands[1] = XEXP (XEXP (operands[1], 0), 0);
       if (size == 12)
-        output_asm_insn ("sub%.l %#12,%1", operands);
+        output_asm_insn ("sub%.l #12,%1", operands);
       else
-        output_asm_insn ("subq%.l %#8,%1", operands);
+        output_asm_insn ("subq%.l #8,%1", operands);
       if (GET_MODE (operands[1]) == XFmode)
 	operands[1] = gen_rtx_MEM (XFmode, operands[1]);
       else if (GET_MODE (operands[1]) == DFmode)
@@ -2194,16 +2161,16 @@ compadr:
       if (addreg0)
 	{
 	  if (size == 12)
-	    output_asm_insn ("addq%.l %#8,%0", &addreg0);
+	    output_asm_insn ("addq%.l #8,%0", &addreg0);
 	  else
-	    output_asm_insn ("addq%.l %#4,%0", &addreg0);
+	    output_asm_insn ("addq%.l #4,%0", &addreg0);
 	}
       if (addreg1)
 	{
 	  if (size == 12)
-	    output_asm_insn ("addq%.l %#8,%0", &addreg1);
+	    output_asm_insn ("addq%.l #8,%0", &addreg1);
 	  else
-	    output_asm_insn ("addq%.l %#4,%0", &addreg1);
+	    output_asm_insn ("addq%.l #4,%0", &addreg1);
 	}
 
       /* Do that word.  */
@@ -2211,17 +2178,17 @@ compadr:
 
       /* Undo the adds we just did.  */
       if (addreg0)
-	output_asm_insn ("subq%.l %#4,%0", &addreg0);
+	output_asm_insn ("subq%.l #4,%0", &addreg0);
       if (addreg1)
-	output_asm_insn ("subq%.l %#4,%0", &addreg1);
+	output_asm_insn ("subq%.l #4,%0", &addreg1);
 
       if (size == 12)
 	{
 	  output_asm_insn (singlemove_string (middlehalf), middlehalf);
 	  if (addreg0)
-	    output_asm_insn ("subq%.l %#4,%0", &addreg0);
+	    output_asm_insn ("subq%.l #4,%0", &addreg0);
 	  if (addreg1)
-	    output_asm_insn ("subq%.l %#4,%0", &addreg1);
+	    output_asm_insn ("subq%.l #4,%0", &addreg1);
 	}
 
       /* Do low-numbered word.  */
@@ -2236,18 +2203,18 @@ compadr:
   if (size == 12)
     {
       if (addreg0)
-	output_asm_insn ("addq%.l %#4,%0", &addreg0);
+	output_asm_insn ("addq%.l #4,%0", &addreg0);
       if (addreg1)
-	output_asm_insn ("addq%.l %#4,%0", &addreg1);
+	output_asm_insn ("addq%.l #4,%0", &addreg1);
 
       output_asm_insn (singlemove_string (middlehalf), middlehalf);
     }
 
   /* Make any unoffsettable addresses point at high-numbered word.  */
   if (addreg0)
-    output_asm_insn ("addq%.l %#4,%0", &addreg0);
+    output_asm_insn ("addq%.l #4,%0", &addreg0);
   if (addreg1)
-    output_asm_insn ("addq%.l %#4,%0", &addreg1);
+    output_asm_insn ("addq%.l #4,%0", &addreg1);
 
   /* Do that word.  */
   output_asm_insn (singlemove_string (latehalf), latehalf);
@@ -2256,16 +2223,16 @@ compadr:
   if (addreg0)
     {
       if (size == 12)
-        output_asm_insn ("subq%.l %#8,%0", &addreg0);
+        output_asm_insn ("subq%.l #8,%0", &addreg0);
       else
-        output_asm_insn ("subq%.l %#4,%0", &addreg0);
+        output_asm_insn ("subq%.l #4,%0", &addreg0);
     }
   if (addreg1)
     {
       if (size == 12)
-        output_asm_insn ("subq%.l %#8,%0", &addreg1);
+        output_asm_insn ("subq%.l #8,%0", &addreg1);
       else
-        output_asm_insn ("subq%.l %#4,%0", &addreg1);
+        output_asm_insn ("subq%.l #4,%0", &addreg1);
     }
 
   return "";
@@ -2315,27 +2282,9 @@ output_addsi3 (rtx *operands)
       if (GET_CODE (operands[2]) == CONST_INT
 	  && (INTVAL (operands[2]) < -32768 || INTVAL (operands[2]) > 32767))
         return "move%.l %2,%0\n\tadd%.l %1,%0";
-#ifdef SGS
       if (GET_CODE (operands[2]) == REG)
-	return "lea 0(%1,%2.l),%0";
-      else
-	return "lea %c2(%1),%0";
-#else /* !SGS */
-      if (MOTOROLA)
-	{
-	  if (GET_CODE (operands[2]) == REG)
-	   return "lea (%1,%2.l),%0";
-	  else
-	   return "lea (%c2,%1),%0";
-	}
-      else /* !MOTOROLA (MIT syntax) */
-	{
-	  if (GET_CODE (operands[2]) == REG)
-	    return "lea %1@(0,%2:l),%0";
-	  else
-	    return "lea %1@(%c2),%0";
-	}
-#endif /* !SGS */
+	return MOTOROLA ? "lea (%1,%2.l),%0" : "lea %1@(0,%2:l),%0";
+      return MOTOROLA ? "lea (%c2,%1),%0" : "lea %1@(%c2),%0";
     }
   if (GET_CODE (operands[2]) == CONST_INT)
     {
@@ -2357,13 +2306,13 @@ output_addsi3 (rtx *operands)
 	      && INTVAL (operands[2]) <= 16)
 	    {
 	      operands[2] = GEN_INT (INTVAL (operands[2]) - 8);
-	      return "addq%.l %#8,%0\n\taddq%.l %2,%0";
+	      return "addq%.l #8,%0\n\taddq%.l %2,%0";
 	    }
 	  if (INTVAL (operands[2]) < -8
 	      && INTVAL (operands[2]) >= -16)
 	    {
 	      operands[2] = GEN_INT (- INTVAL (operands[2]) - 8);
-	      return "subq%.l %#8,%0\n\tsubq%.l %2,%0";
+	      return "subq%.l #8,%0\n\tsubq%.l %2,%0";
 	    }
 	}
       if (ADDRESS_REG_P (operands[0])
@@ -2497,7 +2446,7 @@ output_move_const_double (rtx *operands)
     {
       static char buf[40];
 
-      sprintf (buf, "fmovecr %%#0x%x,%%0", code & 0xff);
+      sprintf (buf, "fmovecr #0x%x,%%0", code & 0xff);
       return buf;
     }
   return "fmove%.d %1,%0";
@@ -2512,7 +2461,7 @@ output_move_const_single (rtx *operands)
     {
       static char buf[40];
 
-      sprintf (buf, "fmovecr %%#0x%x,%%0", code & 0xff);
+      sprintf (buf, "fmovecr #0x%x,%%0", code & 0xff);
       return buf;
     }
   return "fmove%.s %f1,%0";
@@ -2707,7 +2652,7 @@ print_operand (FILE *file, rtx op, int l
     {
       /* This is only for direct addresses with TARGET_PCREL */
       if (GET_CODE (op) != MEM || GET_CODE (XEXP (op, 0)) != SYMBOL_REF
-          || !TARGET_PCREL) 
+          || !TARGET_PCREL)
 	abort ();
       output_addr_const (file, XEXP (op, 0));
     }
@@ -2792,20 +2737,13 @@ print_operand (FILE *file, rtx op, int l
    offset is output in word mode (eg movel a5@(_foo:w), a0).  When generating
    -fPIC code the offset is output in long mode (eg movel a5@(_foo:l), a0) */
 
-#ifndef ASM_OUTPUT_CASE_FETCH
-# if MOTOROLA
-#  ifdef SGS
-#   define ASM_OUTPUT_CASE_FETCH(file, labelno, regname)\
-	asm_fprintf (file, "%LLD%d(%Rpc,%s.", labelno, regname)
-#  else /* !SGS */
-#   define ASM_OUTPUT_CASE_FETCH(file, labelno, regname)\
-	asm_fprintf (file, "%LL%d-%LLI%d.b(%Rpc,%s.", labelno, labelno, regname)
-#  endif /* !SGS */
-# else /* !MOTOROLA */
+#if MOTOROLA
 #  define ASM_OUTPUT_CASE_FETCH(file, labelno, regname)\
+	asm_fprintf (file, "%LL%d-%LLI%d.b(%Rpc,%s.", labelno, labelno, regname)
+#else /* !MOTOROLA */
+# define ASM_OUTPUT_CASE_FETCH(file, labelno, regname)\
 	asm_fprintf (file, "%Rpc@(%LL%d-%LLI%d-2:b,%s:", labelno, labelno, regname)
-# endif /* !MOTOROLA */
-#endif /* ASM_OUTPUT_CASE_FETCH */
+#endif /* !MOTOROLA */
 
 void
 print_operand_address (FILE *file, rtx addr)
@@ -3021,7 +2959,7 @@ print_operand_address (FILE *file, rtx a
 	    break;
 	  }
 	else if (reg1 != 0 && GET_CODE (addr) == LABEL_REF
-		 && ! (flag_pic && reg1 == pic_offset_table_rtx))	
+		 && ! (flag_pic && reg1 == pic_offset_table_rtx))
 	  {
 	    ASM_OUTPUT_CASE_FETCH (file,
 			 CODE_LABEL_NUMBER (XEXP (addr, 0)),
@@ -3035,15 +2973,7 @@ print_operand_address (FILE *file, rtx a
 	    && INTVAL (addr) < 0x8000
 	    && INTVAL (addr) >= -0x8000)
 	  {
-	    if (MOTOROLA)
-#ifdef SGS
-	      /* Many SGS assemblers croak on size specifiers for constants.  */
-	      fprintf (file, "%d", (int) INTVAL (addr));
-#else
-	      fprintf (file, "%d.w", (int) INTVAL (addr));
-#endif
-	    else /* !MOTOROLA */
-	      fprintf (file, "%d:w", (int) INTVAL (addr));
+	    fprintf (file, MOTOROLA ? "%d.w" : "%d:w", (int) INTVAL (addr));
 	  }
 	else if (GET_CODE (addr) == CONST_INT)
 	  {
diff -u -p -u -p -r1.105 m68k.h
--- gcc-3.5.orig/gcc/config/m68k/m68k.h	6 Feb 2004 06:18:31 -0000	1.105
+++ gcc-3.5/gcc/config/m68k/m68k.h	8 Feb 2004 01:33:15 -0000
@@ -1613,8 +1613,6 @@ do { if (cc_prev_status.flags & CC_IN_68
        sp@+, (sp)+ or (%sp)+ depending on the style of syntax.
    '@' for a reference to the top word on the stack:
        sp@, (sp) or (%sp) depending on the style of syntax.
-   '#' for an immediate operand prefix (# in MIT and Motorola syntax
-       but & in SGS syntax).
    '!' for the fpcr register (used in some float-to-fixed conversions).
    '$' for the letter `s' in an op code, but only on the 68040.
    '&' for the letter `d' in an op code, but only on the 68040.
@@ -1629,9 +1627,8 @@ do { if (cc_prev_status.flags & CC_IN_68
        or print pair of registers as rx:ry.  */
 
 #define PRINT_OPERAND_PUNCT_VALID_P(CODE)				\
-  ((CODE) == '.' || (CODE) == '#' || (CODE) == '-'			\
-   || (CODE) == '+' || (CODE) == '@' || (CODE) == '!'			\
-   || (CODE) == '$' || (CODE) == '&' || (CODE) == '/')
+  ((CODE) == '.' || (CODE) == '-' || (CODE) == '+' || (CODE) == '@'	\
+   || (CODE) == '!' || (CODE) == '$' || (CODE) == '&' || (CODE) == '/')
 
 /* A C compound statement to output to stdio stream STREAM the
    assembler syntax for an instruction operand X.  X is an RTL
diff -u -p -u -p -r1.73 m68k.md
--- gcc-3.5.orig/gcc/config/m68k/m68k.md	1 Feb 2004 21:21:39 -0000	1.73
+++ gcc-3.5/gcc/config/m68k/m68k.md	8 Feb 2004 01:33:53 -0000
@@ -69,7 +69,6 @@
 
 ;;- Assembler specs:
 ;;- "%."    size separator ("." or "")			move%.l d0,d1
-;;- "%#"    immediate separator ("#" or "")		move%.l %#0,d0
 ;;- "%-"    push operand "sp@-"				move%.l d0,%-
 ;;- "%+"    pop operand "sp@+"				move%.l d0,%+
 ;;- "%@"    top of stack "sp@"				move%.l d0,%@
@@ -201,11 +200,7 @@
   /* If you think that the 68020 does not support tstl a0,
      reread page B-167 of the 68020 manual more carefully.  */
   /* On an address reg, cmpw may replace cmpl.  */
-#ifdef SGS_CMP_ORDER
-  return "cmp%.w %0,%#0";
-#else
-  return "cmp%.w %#0,%0";
-#endif
+  return "cmp%.w #0,%0";
 })
 
 ;; This can't use an address register, because comparisons
@@ -330,36 +325,19 @@
   "!TARGET_COLDFIRE"
 {
   if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
-#ifdef SGS_CMP_ORDER
-    return "cmpm%.l %0,%1";
-#else
     return "cmpm%.l %1,%0";
-#endif
   if (REG_P (operands[1])
       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
-    { cc_status.flags |= CC_REVERSED;
-#ifdef SGS_CMP_ORDER
-      return "cmp%.l %d1,%d0";
-#else
+    {
+      cc_status.flags |= CC_REVERSED;
       return "cmp%.l %d0,%d1";
-#endif
     }
   if (ADDRESS_REG_P (operands[0])
       && GET_CODE (operands[1]) == CONST_INT
       && INTVAL (operands[1]) < 0x8000
       && INTVAL (operands[1]) >= -0x8000)
-    {
-#ifdef SGS_CMP_ORDER
-      return "cmp%.w %0,%1";
-#else
-      return "cmp%.w %1,%0";
-#endif
-    }
-#ifdef SGS_CMP_ORDER
-  return "cmp%.l %d0,%d1";
-#else
+    return "cmp%.w %1,%0";
   return "cmp%.l %d1,%d0";
-#endif
 })
 
 (define_insn ""
@@ -370,18 +348,11 @@
 {
   if (REG_P (operands[1])
       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
-    { cc_status.flags |= CC_REVERSED;
-#ifdef SGS_CMP_ORDER
-      return "cmp%.l %d1,%d0";
-#else
+    {
+      cc_status.flags |= CC_REVERSED;
       return "cmp%.l %d0,%d1";
-#endif
     }
-#ifdef SGS_CMP_ORDER
-  return "cmp%.l %d0,%d1";
-#else
   return "cmp%.l %d1,%d0";
-#endif
 })
 
 (define_expand "cmphi"
@@ -398,25 +369,14 @@
   "!TARGET_COLDFIRE"
 {
   if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
-#ifdef SGS_CMP_ORDER
-    return "cmpm%.w %0,%1";
-#else
     return "cmpm%.w %1,%0";
-#endif
   if ((REG_P (operands[1]) && !ADDRESS_REG_P (operands[1]))
       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
-    { cc_status.flags |= CC_REVERSED;
-#ifdef SGS_CMP_ORDER
-      return "cmp%.w %d1,%d0";
-#else
+    {
+      cc_status.flags |= CC_REVERSED;
       return "cmp%.w %d0,%d1";
-#endif
     }
-#ifdef SGS_CMP_ORDER
-  return "cmp%.w %d0,%d1";
-#else
   return "cmp%.w %d1,%d0";
-#endif
 })
 
 (define_expand "cmpqi"
@@ -433,25 +393,14 @@
   "!TARGET_COLDFIRE"
 {
   if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
-#ifdef SGS_CMP_ORDER
-    return "cmpm%.b %0,%1";
-#else
     return "cmpm%.b %1,%0";
-#endif
   if (REG_P (operands[1])
       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
-    { cc_status.flags |= CC_REVERSED;
-#ifdef SGS_CMP_ORDER
-      return "cmp%.b %d1,%d0";
-#else
+    {
+      cc_status.flags |= CC_REVERSED;
       return "cmp%.b %d0,%d1";
-#endif
     }
-#ifdef SGS_CMP_ORDER
-  return "cmp%.b %d0,%d1";
-#else
   return "cmp%.b %d1,%d0";
-#endif
 })
 
 (define_expand "cmpdf"
@@ -471,17 +420,6 @@
   "TARGET_68881"
 {
   cc_status.flags = CC_IN_68881;
-#ifdef SGS_CMP_ORDER
-  if (REG_P (operands[0]))
-    {
-      if (REG_P (operands[1]))
-	return "fcmp%.x %0,%1";
-      else
-        return "fcmp%.d %0,%f1";
-    }
-  cc_status.flags |= CC_REVERSED;
-  return "fcmp%.d %1,%f0";
-#else
   if (REG_P (operands[0]))
     {
       if (REG_P (operands[1]))
@@ -491,7 +429,6 @@
     }
   cc_status.flags |= CC_REVERSED;
   return "fcmp%.d %f0,%1";
-#endif
 })
 
 (define_expand "cmpsf"
@@ -511,17 +448,6 @@
   "TARGET_68881"
 {
   cc_status.flags = CC_IN_68881;
-#ifdef SGS_CMP_ORDER
-  if (FP_REG_P (operands[0]))
-    {
-      if (FP_REG_P (operands[1]))
-	return "fcmp%.x %0,%1";
-      else
-        return "fcmp%.s %0,%f1";
-    }
-  cc_status.flags |= CC_REVERSED;
-  return "fcmp%.s %1,%f0";
-#else
   if (FP_REG_P (operands[0]))
     {
       if (FP_REG_P (operands[1]))
@@ -531,7 +457,6 @@
     }
   cc_status.flags |= CC_REVERSED;
   return "fcmp%.s %f0,%1";
-#endif
 })
 
 ;; Recognizers for btst instructions.
@@ -691,18 +616,11 @@
       if (!TARGET_68040 && !TARGET_68060)
 	return "sub%.l %0,%0";
       else
-	return MOTOROLA ?
-#ifdef SGS
-	  /* Many SGS assemblers croak on size specifiers for constants.  */
-	  "lea 0,%0" :
-#else
-	  "lea 0.w,%0" :
-#endif
-	  "lea 0:w,%0";
+	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";
+    return "moveq #0,%0";
   return "clr%.l %0";
 })
 
@@ -893,19 +811,12 @@
 	  if (!TARGET_68040 && !TARGET_68060)
 	    return "sub%.l %0,%0";
 	  else
-	    return MOTOROLA ?
-#ifdef SGS
-	      /* Many SGS assemblers croak on size specifiers for constants.  */
-	      "lea 0,%0" :
-#else
-	      "lea 0.w,%0" :
-#endif
-	      "lea 0:w,%0";
+	    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";
+	  return "moveq #0,%0";
 	}
       return "clr%.l %0";
     }
@@ -1225,7 +1136,7 @@
 {
   CC_STATUS_INIT;
   operands[2] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1);
-  return "moveq %#0,%0\;moveq %#0,%2\;move%.b %1,%2";
+  return "moveq #0,%0\;moveq #0,%2\;move%.b %1,%2";
 })
 
 (define_insn "zero_extendhidi2"
@@ -1235,7 +1146,7 @@
 {
   CC_STATUS_INIT;
   operands[2] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1);
-  return "moveq %#0,%0\;moveq %#0,%2\;move%.w %1,%2";
+  return "moveq #0,%0\;moveq #0,%2\;move%.w %1,%2";
 })
 
 ;; this is the canonical form for (lshiftrt:DI x 32)
@@ -1341,9 +1252,9 @@
     {
       if (GET_CODE (operands[1]) == REG
 	  && REGNO (operands[0]) == REGNO (operands[1]))
-	return "and%.l %#0xFFFF,%0";
+	return "and%.l #0xFFFF,%0";
       if (reg_mentioned_p (operands[0], operands[1]))
-        return "move%.w %1,%0\;and%.l %#0xFFFF,%0";
+        return "move%.w %1,%0\;and%.l #0xFFFF,%0";
       return "clr%.l %0\;move%.w %1,%0";
     }
   else if (GET_CODE (operands[0]) == MEM
@@ -1369,10 +1280,10 @@
     {
       if (GET_CODE (operands[1]) == REG
 	  && REGNO (operands[0]) == REGNO (operands[1]))
-	return (!TARGET_COLDFIRE ? "and%.w %#0xFF,%0" : "and%.l %#0xFF,%0");
+	return (!TARGET_COLDFIRE ? "and%.w #0xFF,%0" : "and%.l #0xFF,%0");
       if (reg_mentioned_p (operands[0], operands[1]))
-	return (!TARGET_COLDFIRE ? "move%.b %1,%0\;and%.w %#0xFF,%0" 
-			     : "move%.b %1,%0\;and%.l %#0xFF,%0");
+	return (!TARGET_COLDFIRE ? "move%.b %1,%0\;and%.w #0xFF,%0" 
+			     : "move%.b %1,%0\;and%.l #0xFF,%0");
       return "clr%.w %0\;move%.b %1,%0";
     }
   else if (GET_CODE (operands[0]) == MEM
@@ -1409,9 +1320,9 @@
     {
       if (GET_CODE (operands[1]) == REG
 	  && REGNO (operands[0]) == REGNO (operands[1]))
-	return "and%.l %#0xFF,%0";
+	return "and%.l #0xFF,%0";
       if (reg_mentioned_p (operands[0], operands[1]))
-        return "move%.b %1,%0\;and%.l %#0xFF,%0";
+        return "move%.b %1,%0\;and%.l #0xFF,%0";
       return "clr%.l %0\;move%.b %1,%0";
     }
   else if (GET_CODE (operands[0]) == MEM
@@ -1419,11 +1330,7 @@
     {
       operands[0] = XEXP (XEXP (operands[0], 0), 0);
       return MOTOROLA ?
-#ifdef SGS
-	"clr%.l -(%0)\;move%.b %1,3(%0)" :
-#else
 	"clr%.l -(%0)\;move%.b %1,(3,%0)" :
-#endif
 	"clrl %0@-\;moveb %1,%0@(3)";
     }
   else if (GET_CODE (operands[0]) == MEM
@@ -1431,11 +1338,7 @@
     {
       operands[0] = XEXP (XEXP (operands[0], 0), 0);
       return MOTOROLA ?
-#ifdef SGS
-	"clr%.l (%0)+\;move%.b %1,-1(%0)" :
-#else
 	"clr%.l (%0)+\;move%.b %1,(-1,%0)" :
-#endif
 	"clrl %0@+\;moveb %1,%0@(-1)";
     }
   else
@@ -1678,7 +1581,7 @@
   "TARGET_68881 && TARGET_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,%!";
+  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,%!";
 })
 
 (define_insn "fix_truncdfhi2"
@@ -1689,7 +1592,7 @@
   "TARGET_68881 && TARGET_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,%!";
+  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,%!";
 })
 
 (define_insn "fix_truncdfqi2"
@@ -1700,7 +1603,7 @@
   "TARGET_68881 && TARGET_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,%!";
+  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,%!";
 })
 
 ;; Convert a float to a float whose value is an integer.
@@ -1952,7 +1855,7 @@
     }
   output_asm_insn ("move%.l %1,%0", operands);
   output_asm_insn (MOTOROLA ? "jbpl %l3" : "jpl %l3", operands);
-  output_asm_insn ("addq%.l %#1,%2", operands);
+  output_asm_insn ("addq%.l #1,%2", operands);
   (*targetm.asm_out.internal_label) (asm_out_file, "L",
 				CODE_LABEL_NUMBER (operands[3]));
   return "";
@@ -2027,13 +1930,13 @@
 	      && INTVAL (operands[2]) <= 16)
 	    {
 	      operands[2] = GEN_INT (INTVAL (operands[2]) - 8);
-	      return "addq%.w %#8,%0\;addq%.w %2,%0";
+	      return "addq%.w #8,%0\;addq%.w %2,%0";
 	    }
 	  if (INTVAL (operands[2]) < -8
 	      && INTVAL (operands[2]) >= -16)
 	    {
 	      operands[2] = GEN_INT (- INTVAL (operands[2]) - 8);
-	      return "subq%.w %#8,%0\;subq%.w %2,%0";
+	      return "subq%.w #8,%0\;subq%.w %2,%0";
 	    }
 	}
       if (ADDRESS_REG_P (operands[0]) && !TARGET_68040)
@@ -2082,13 +1985,13 @@
 	      && INTVAL (operands[1]) <= 16)
 	    {
 	      operands[1] = GEN_INT (INTVAL (operands[1]) - 8);
-	      return "addq%.w %#8,%0\;addq%.w %1,%0";
+	      return "addq%.w #8,%0\;addq%.w %1,%0";
 	    }
 	  if (INTVAL (operands[1]) < -8
 	      && INTVAL (operands[1]) >= -16)
 	    {
 	      operands[1] = GEN_INT (- INTVAL (operands[1]) - 8);
-	      return "subq%.w %#8,%0\;subq%.w %1,%0";
+	      return "subq%.w #8,%0\;subq%.w %1,%0";
 	    }
 	}
       if (ADDRESS_REG_P (operands[0]) && !TARGET_68040)
@@ -2131,13 +2034,13 @@
 	      && INTVAL (operands[1]) <= 16)
 	    {
 	      operands[1] = GEN_INT (INTVAL (operands[1]) - 8);
-	      return "addq%.w %#8,%0\;addq%.w %1,%0";
+	      return "addq%.w #8,%0\;addq%.w %1,%0";
 	    }
 	  if (INTVAL (operands[1]) < -8
 	      && INTVAL (operands[1]) >= -16)
 	    {
 	      operands[1] = GEN_INT (- INTVAL (operands[1]) - 8);
-	      return "subq%.w %#8,%0\;subq%.w %1,%0";
+	      return "subq%.w #8,%0\;subq%.w %1,%0";
 	    }
 	}
       if (ADDRESS_REG_P (operands[0]) && !TARGET_68040)
@@ -3083,8 +2986,8 @@
   "!TARGET_COLDFIRE || TARGET_CF_HWDIV"
 {
   output_asm_insn (MOTOROLA ?
-    "and%.l %#0xFFFF,%0\;divu%.w %2,%0" :
-    "and%.l %#0xFFFF,%0\;divu %2,%0",
+    "and%.l #0xFFFF,%0\;divu%.w %2,%0" :
+    "and%.l #0xFFFF,%0\;divu %2,%0",
     operands);
   if (!find_reg_note(insn, REG_UNUSED, operands[3]))
     {
@@ -3281,7 +3184,7 @@
 	  case -1 :
 	    /* FIXME : a scratch register would be welcome here if operand[0]
 	       is not a register */
-	    output_asm_insn ("move%.l %#-1,%0", operands);
+	    output_asm_insn ("move%.l #-1,%0", operands);
 	    break;
 	  default :
 	    {
@@ -3303,7 +3206,7 @@
 	  case -1 :
 	    /* FIXME : a scratch register would be welcome here if operand[0]
 	       is not a register */
-	    output_asm_insn ("move%.l %#-1,%0", operands);
+	    output_asm_insn ("move%.l #-1,%0", operands);
 	    break;
 	  default :
 	    {
@@ -4019,7 +3922,7 @@
   if (INTVAL (operands[2]) == 1)
     return "add%.l %1,%1\;addx%.l %0,%0";
   else if (INTVAL (operands[2]) == 8)
-    return "rol%.l %#8,%1\;rol%.l %#8,%0\;move%.b %1,%0\;clr%.b %1";
+    return "rol%.l #8,%1\;rol%.l #8,%0\;move%.b %1,%0\;clr%.b %1";
   else if (INTVAL (operands[2]) == 16)
     return "swap %1\;swap %0\;move%.w %1,%0\;clr%.w %1";
   else if (INTVAL (operands[2]) == 48)
@@ -4033,7 +3936,7 @@
       operands[2] = GEN_INT (INTVAL (operands[2]) - 32);
       output_asm_insn (INTVAL (operands[2]) <= 8 ? "asl%.l %2,%1" :
 			"moveq %2,%0\;asl%.l %0,%1", operands);
-      return "mov%.l %1,%0\;moveq %#0,%1";
+      return "mov%.l %1,%0\;moveq #0,%1";
     }
 })
 
@@ -4215,9 +4118,9 @@
     return "add%.l %0,%0\;subx%.l %0,%0\;move%.l %0,%1";
   CC_STATUS_INIT;
   if (INTVAL (operands[2]) == 1)
-    return "asr%.l %#1,%0\;roxr%.l %#1,%1";
+    return "asr%.l #1,%0\;roxr%.l #1,%1";
   else if (INTVAL (operands[2]) == 8)
-    return "move%.b %0,%1\;asr%.l %#8,%0\;ror%.l %#8,%1";
+    return "move%.b %0,%1\;asr%.l #8,%0\;ror%.l #8,%1";
   else if (INTVAL (operands[2]) == 16)
     return "move%.w %0,%1\;swap %0\;ext%.l %0\;swap %1";
   else if (INTVAL (operands[2]) == 48)
@@ -4225,9 +4128,9 @@
   else if (INTVAL (operands[2]) == 31)
     return "add%.l %1,%1\;addx%.l %0,%0\;move%.l %0,%1\;subx%.l %0,%0";
   else if (INTVAL (operands[2]) == 2)
-    return "asr%.l %#1,%0\;roxr%.l %#1,%1\;asr%.l %#1,%0\;roxr%.l %#1,%1";
+    return "asr%.l #1,%0\;roxr%.l #1,%1\;asr%.l #1,%0\;roxr%.l #1,%1";
   else if (INTVAL (operands[2]) == 3)
-    return "asr%.l %#1,%0\;roxr%.l %#1,%1\;asr%.l %#1,%0\;roxr%.l %#1,%1\;asr%.l %#1,%0\;roxr%.l %#1,%1";
+    return "asr%.l #1,%0\;roxr%.l #1,%1\;asr%.l #1,%0\;roxr%.l #1,%1\;asr%.l #1,%0\;roxr%.l #1,%1";
   else /* 32 < INTVAL (operands[2]) <= 63 */
     {
       operands[2] = GEN_INT (INTVAL (operands[2]) - 32);
@@ -4381,23 +4284,23 @@
     return "add%.l %0,%0\;clr%.l %0\;clr%.l %1\;addx%.l %1,%1";
   CC_STATUS_INIT;
   if (INTVAL (operands[2]) == 1)
-    return "lsr%.l %#1,%0\;roxr%.l %#1,%1";
+    return "lsr%.l #1,%0\;roxr%.l #1,%1";
   else if (INTVAL (operands[2]) == 8)
-    return "move%.b %0,%1\;lsr%.l %#8,%0\;ror%.l %#8,%1";
+    return "move%.b %0,%1\;lsr%.l #8,%0\;ror%.l #8,%1";
   else if (INTVAL (operands[2]) == 16)
     return "move%.w %0,%1\;clr%.w %0\;swap %1\;swap %0";
   else if (INTVAL (operands[2]) == 48)
     return "move%.l %0,%1\;clr%.w %1\;clr%.l %0\;swap %1";
   else if (INTVAL (operands[2]) == 2)
-    return "lsr%.l %#1,%0\;roxr%.l %#1,%1\;lsr%.l %#1,%0\;roxr%.l %#1,%1";
+    return "lsr%.l #1,%0\;roxr%.l #1,%1\;lsr%.l #1,%0\;roxr%.l #1,%1";
   else if (INTVAL (operands[2]) == 3)
-    return "lsr%.l %#1,%0\;roxr%.l %#1,%1\;lsr%.l %#1,%0\;roxr%.l %#1,%1\;lsr%.l %#1,%0\;roxr%.l %#1,%1";
+    return "lsr%.l #1,%0\;roxr%.l #1,%1\;lsr%.l #1,%0\;roxr%.l #1,%1\;lsr%.l #1,%0\;roxr%.l #1,%1";
   else /* 32 < INTVAL (operands[2]) <= 63 */
     {
       operands[2] = GEN_INT (INTVAL (operands[2]) - 32);
       output_asm_insn (INTVAL (operands[2]) <= 8 ? "lsr%.l %2,%0" :
 			"moveq %2,%1\;lsr%.l %1,%0", operands);
-      return "mov%.l %0,%1\;moveq %#0,%0";
+      return "mov%.l %0,%1\;moveq #0,%0";
     }
 })
 
@@ -5527,13 +5430,9 @@
   else
     {
       if (MOTOROLA)
-#ifdef SGS_CMP_ORDER
-	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);
-#endif
+	output_asm_insn ("cmp%.w #0,%0\;jbne %l4\;cmp%.w #0,%3\;jbeq %l1", operands);
       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);
     }
   (*targetm.asm_out.internal_label) (asm_out_file, "L",
 				CODE_LABEL_NUMBER (operands[4]));
@@ -5596,13 +5495,9 @@
   else
     {
       if (MOTOROLA)
-#ifdef SGS_CMP_ORDER
-	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";
-#endif
+	return "cmp%.w #0,%0\;jbne %l1\;cmp%.w #0,%3\;jbne %l1";
       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";
     }
 })
 
@@ -5635,13 +5530,8 @@
   else
     {
       /* On an address reg, cmpw may replace cmpl.  */
-#ifdef SGS_CMP_ORDER
-      output_asm_insn("cmp%.w %0,%#0", operands);
-#else
-      output_asm_insn("cmp%.w %#0,%0", operands);
-#endif
+      output_asm_insn("cmp%.w #0,%0", operands);
     }
-
   return MOTOROLA ? "jbpl %l1" : "jpl %l1";
 })
 
@@ -5674,11 +5564,7 @@
   else
     {
       /* On an address reg, cmpw may replace cmpl.  */
-#ifdef SGS_CMP_ORDER
-      output_asm_insn("cmp%.w %0,%#0", operands);
-#else
-      output_asm_insn("cmp%.w %#0,%0", operands);
-#endif
+      output_asm_insn("cmp%.w #0,%0", operands);
     }
 
   return MOTOROLA ? "jbmi %l1" : "jmi %l1";
@@ -6163,45 +6049,17 @@
 #ifdef ASM_RETURN_CASE_JUMP
   ASM_RETURN_CASE_JUMP;
 #else
-#ifdef SGS
-#ifdef ASM_OUTPUT_CASE_LABEL
-  if (TARGET_COLDFIRE) 
-    {
-      if (ADDRESS_REG_P (operands[0]))
-	return "jmp 6(%%pc,%0.l)";
-      else
-	return "ext%.l %0\;jmp 6(%%pc,%0.l)";
-    }
-  else
-    return "jmp 6(%%pc,%0.w)";
-#else
-  if (TARGET_COLDFIRE)
-    {
-      if (ADDRESS_REG_P (operands[0]))
-	return "jmp 2(%%pc,%0.l)";
-      else
-	return "extl %0\;jmp 2(%%pc,%0.l)";
-    }
-  else
-    return "jmp 2(%%pc,%0.w)";
-#endif
-#else /* not SGS */
   if (TARGET_COLDFIRE)
     {
       if (ADDRESS_REG_P (operands[0]))
-	{
-	  return MOTOROLA ? "jmp (2,pc,%0.l)" : "jmp pc@(2,%0:l)";
-	}
+	return MOTOROLA ? "jmp (2,pc,%0.l)" : "jmp pc@(2,%0:l)";
       else if (MOTOROLA)
 	return "ext%.l %0\;jmp (2,pc,%0.l)";
       else
 	return "extl %0\;jmp pc@(2,%0:l)";
     }
   else
-    {
-      return MOTOROLA ? "jmp (2,pc,%0.w)" : "jmp pc@(2,%0:w)";
-    }
-#endif
+    return MOTOROLA ? "jmp (2,pc,%0.w)" : "jmp pc@(2,%0:w)";
 #endif
 })
 
@@ -6222,20 +6080,12 @@
   if (DATA_REG_P (operands[0]))
     return "dbra %0,%l1";
   if (GET_CODE (operands[0]) == MEM)
-    {
-      if (MOTOROLA)
-	return "subq%.w %#1,%0\;jbcc %l1";
-      else
-	return "subqw %#1,%0\;jcc %l1";
-    }
-  if (MOTOROLA)
-#ifdef SGS_CMP_ORDER
-    return "subq%.w %#1,%0\;cmp%.w %0,%#-1\;jbne %l1";
-#else /* not SGS_CMP_ORDER */
-    return "subq%.w %#1,%0\;cmp%.w %#-1,%0\;jbne %l1";
-#endif
-  else
-    return "subqw %#1,%0\;cmpw %#-1,%0\;jne %l1";
+    return MOTOROLA ?
+      "subq%.w #1,%0\;jbcc %l1" :
+      "subqw #1,%0\;jcc %l1";
+  return MOTOROLA ?
+    "subq%.w #1,%0\;cmp%.w #-1,%0\;jbne %l1" :
+    "subqw #1,%0\;cmpw #-1,%0\;jne %l1";
 })
 
 (define_insn ""
@@ -6251,26 +6101,17 @@
   "!TARGET_COLDFIRE"
 {
   CC_STATUS_INIT;
-  if (MOTOROLA)
-    {
-      if (DATA_REG_P (operands[0]))
-        return "dbra %0,%l1\;clr%.w %0\;subq%.l %#1,%0\;jbcc %l1";
-      if (GET_CODE (operands[0]) == MEM)
-        return "subq%.l %#1,%0\;jbcc %l1";
-#ifdef SGS_CMP_ORDER
-      return "subq.l %#1,%0\;cmp.l %0,%#-1\;jbne %l1";
-#else /* not SGS_CMP_ORDER */
-      return "subq.l %#1,%0\;cmp.l %#-1,%0\;jbne %l1";
-#endif /* not SGS_CMP_ORDER */
-    }
-  else
-    {
-      if (DATA_REG_P (operands[0]))
-        return "dbra %0,%l1\;clr%.w %0\;subql %#1,%0\;jcc %l1";
-      if (GET_CODE (operands[0]) == MEM)
-        return "subql %#1,%0\;jcc %l1";
-      return "subql %#1,%0\;cmpl %#-1,%0\;jne %l1";
-    }
+  if (DATA_REG_P (operands[0]))
+    return MOTOROLA ?
+      "dbra %0,%l1\;clr%.w %0\;subq%.l #1,%0\;jbcc %l1" :
+      "dbra %0,%l1\;clr%.w %0\;subq%.l #1,%0\;jcc %l1";
+  if (GET_CODE (operands[0]) == MEM)
+    return MOTOROLA ?
+      "subq%.l #1,%0\;jbcc %l1" :
+      "subq%.l #1,%0\;jcc %l1";
+  return MOTOROLA ?
+    "subq.l #1,%0\;cmp.l #-1,%0\;jbne %l1" :
+    "subql #1,%0\;cmpl #-1,%0\;jne %l1";
 })
 
 ;; Two dbra patterns that use REG_NOTES info generated by strength_reduce.
@@ -6289,26 +6130,15 @@
   "!TARGET_COLDFIRE && find_reg_note (insn, REG_NONNEG, 0)"
 {
   CC_STATUS_INIT;
-  if (MOTOROLA)
-    {
-      if (DATA_REG_P (operands[0]))
-        return "dbra %0,%l1";
-      if (GET_CODE (operands[0]) == MEM)
-        return "subq%.w %#1,%0\;jbcc %l1";
-#ifdef SGS_CMP_ORDER
-      return "subq.w %#1,%0\;cmp.w %0,%#-1\;jbne %l1";
-#else /* not SGS_CMP_ORDER */
-      return "subq.w %#1,%0\;cmp.w %#-1,%0\;jbne %l1";
-#endif /* not SGS_CMP_ORDER */
-    }
-  else
-    {
-      if (DATA_REG_P (operands[0]))
-        return "dbra %0,%l1";
-      if (GET_CODE (operands[0]) == MEM)
-        return "subqw %#1,%0\;jcc %l1";
-      return "subqw %#1,%0\;cmpw %#-1,%0\;jne %l1";
-    }
+  if (DATA_REG_P (operands[0]))
+    return "dbra %0,%l1";
+  if (GET_CODE (operands[0]) == MEM)
+    return MOTOROLA ?
+      "subq%.w #1,%0\;jbcc %l1" :
+      "subq%.w #1,%0\;jcc %l1";
+  return MOTOROLA ?
+    "subq.w #1,%0\;cmp.w #-1,%0\;jbne %l1" :
+    "subqw #1,%0\;cmpw #-1,%0\;jne %l1";
 })
 
 (define_expand "decrement_and_branch_until_zero"
@@ -6339,26 +6169,17 @@
   "!TARGET_COLDFIRE && find_reg_note (insn, REG_NONNEG, 0)"
 {
   CC_STATUS_INIT;
-  if (MOTOROLA)
-    {
-      if (DATA_REG_P (operands[0]))
-        return "dbra %0,%l1\;clr%.w %0\;subq%.l %#1,%0\;jbcc %l1";
-      if (GET_CODE (operands[0]) == MEM)
-        return "subq%.l %#1,%0\;jbcc %l1";
-#ifdef SGS_CMP_ORDER
-      return "subq.l %#1,%0\;cmp.l %0,%#-1\;jbne %l1";
-#else /* not SGS_CMP_ORDER */
-      return "subq.l %#1,%0\;cmp.l %#-1,%0\;jbne %l1";
-#endif /* not SGS_CMP_ORDER */
-    }
-  else
-    {
-      if (DATA_REG_P (operands[0]))
-        return "dbra %0,%l1\;clr%.w %0\;subql %#1,%0\;jcc %l1";
-      if (GET_CODE (operands[0]) == MEM)
-        return "subql %#1,%0\;jcc %l1";
-      return "subql %#1,%0\;cmpl %#-1,%0\;jne %l1";
-    }
+  if (DATA_REG_P (operands[0]))
+    return MOTOROLA ?
+      "dbra %0,%l1\;clr%.w %0\;subq%.l #1,%0\;jbcc %l1" :
+      "dbra %0,%l1\;clr%.w %0\;subql #1,%0\;jcc %l1";
+  if (GET_CODE (operands[0]) == MEM)
+    return MOTOROLA ?
+      "subq%.l #1,%0\;jbcc %l1" :
+      "subql #1,%0\;jcc %l1";
+  return MOTOROLA ?
+    "subq.l #1,%0\;cmp.l #-1,%0\;jbne %l1" :
+    "subql #1,%0\;cmpl #-1,%0\;jne %l1";
 })
 
 
@@ -6556,25 +6377,13 @@
       && GET_CODE (XEXP (operands[1], 0)) != PLUS)
     {
       rtx labelref = XEXP (operands[1], 1);
-#if MOTOROLA && !defined (SGS_SWITCH_TABLES)
-#ifdef SGS
-      asm_fprintf (asm_out_file, "\\tset %LLI%d,.+2\\n",
-		   CODE_LABEL_NUMBER (XEXP (labelref, 0)));
-#else /* not SGS */
-      asm_fprintf (asm_out_file, "\\t.set %LLI%d,.+2\\n",
-	           CODE_LABEL_NUMBER (XEXP (labelref, 0)));
-#endif /* not SGS */
-#else /* SGS_SWITCH_TABLES or not MOTOROLA */
-      (*targetm.asm_out.internal_label) (asm_out_file, "LI",
-				 CODE_LABEL_NUMBER (XEXP (labelref, 0)));
-#ifdef SGS_SWITCH_TABLES
-      /* Set flag saying we need to define the symbol
-	 LD%n (with value L%n-LI%n) at the end of the switch table.  */
-      switch_table_difference_label_flag = 1;
-#endif /* SGS_SWITCH_TABLES */
-#endif /* SGS_SWITCH_TABLES or not MOTOROLA */
+      if (MOTOROLA)
+        asm_fprintf (asm_out_file, "\\t.set %LLI%d,.+2\\n",
+		     CODE_LABEL_NUMBER (XEXP (labelref, 0)));
+      else
+        (*targetm.asm_out.internal_label) (asm_out_file, "LI",
+		     CODE_LABEL_NUMBER (XEXP (labelref, 0)));
     }
-
   return "lea %a1,%0";
 })
 
@@ -6623,7 +6432,7 @@
       else if (TARGET_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);
+	  output_asm_insn ("addq%.w #8,%0\;addq%.w %1,%0", xoperands);
 	}
       else if (INTVAL (xoperands[1]) <= 0x7FFF)
         {
@@ -6667,7 +6476,7 @@
       else if (TARGET_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);
+	  output_asm_insn ("addq%.w #8,%0\;addq%.w %1,%0", xoperands);
 	}
       else if (INTVAL (xoperands[1]) <= 0x7FFF)
         {
@@ -6704,9 +6513,9 @@
     = gen_rtx_MEM (QImode, plus_constant (stack_pointer_rtx, 3));
   xoperands[3] = stack_pointer_rtx;
   if (!TARGET_COLDFIRE)
-    output_asm_insn ("subq%.w %#4,%3\;move%.b %1,%2", xoperands);
+    output_asm_insn ("subq%.w #4,%3\;move%.b %1,%2", xoperands);
   else
-    output_asm_insn ("subq%.l %#4,%3\;move%.b %1,%2", xoperands);
+    output_asm_insn ("subq%.l #4,%3\;move%.b %1,%2", xoperands);
   return "";
 })
 
@@ -6869,17 +6678,6 @@
   "TARGET_68881"
 {
   cc_status.flags = CC_IN_68881;
-#ifdef SGS_CMP_ORDER
-  if (REG_P (operands[0]))
-    {
-      if (REG_P (operands[1]))
-	return "fcmp%.x %0,%1";
-      else
-        return "fcmp%.x %0,%f1";
-    }
-  cc_status.flags |= CC_REVERSED;
-  return "fcmp%.x %1,%f0";
-#else
   if (REG_P (operands[0]))
     {
       if (REG_P (operands[1]))
@@ -6889,7 +6687,6 @@
     }
   cc_status.flags |= CC_REVERSED;
   return "fcmp%.x %f0,%1";
-#endif
 })
 
 (define_insn "extendsfxf2"
@@ -7311,7 +7108,7 @@
 (define_insn "trap"
   [(trap_if (const_int -1) (const_int 7))]
   ""
-  "trap %#7")
+  "trap #7")
 
 (define_insn "conditional_trap"
   [(trap_if (match_operator 0 "valid_dbcc_comparison_p"
diff -u -p -u -p -r1.25 m68kelf.h
--- gcc-3.5.orig/gcc/config/m68k/m68kelf.h	29 Jan 2004 01:56:28 -0000	1.25
+++ gcc-3.5/gcc/config/m68k/m68kelf.h	8 Feb 2004 01:33:53 -0000
@@ -203,19 +203,6 @@ do {								\
   putc ('\n', (FILE));						\
 } while (0)
 
-/* SVR4 m68k assembler is bitching on the syntax `2.b'.
-   So use the "LLDnnn-LLnnn" format.  Define LLDnnn after the table.  */
-
-#undef ASM_OUTPUT_CASE_END
-#define ASM_OUTPUT_CASE_END(FILE,NUM,TABLE)				\
-do {									\
-  if (switch_table_difference_label_flag)				\
-    asm_fprintf ((FILE), "%s%LLD%d,%LL%d\n", SET_ASM_OP, (NUM), (NUM));	\
-  switch_table_difference_label_flag = 0;				\
-} while (0)
-
-extern int switch_table_difference_label_flag;
-
 #undef ASM_OUTPUT_COMMON
 #undef ASM_OUTPUT_LOCAL
 #define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED)  \
diff -u -p -u -p -r1.1 math-68881.h
--- gcc-3.5.orig/gcc/config/m68k/math-68881.h	1 Jan 2002 23:21:01 -0000	1.1
+++ gcc-3.5/gcc/config/m68k/math-68881.h	8 Feb 2004 01:33:57 -0000
@@ -57,7 +57,7 @@
 ({									\
   double huge_val;							\
 									\
-  __asm ("fmove%.d %#0x7ff0000000000000,%0"	/* Infinity */		\
+  __asm ("fmove%.d #0x7ff0000000000000,%0"	/* Infinity */		\
 	 : "=f" (huge_val)						\
 	 : /* no inputs */);						\
   huge_val;								\
@@ -135,10 +135,10 @@ atan2 (double y, double x)
 {
   double pi, pi_over_2;
 
-  __asm ("fmovecr%.x %#0,%0"		/* extended precision pi */
+  __asm ("fmovecr%.x #0,%0"		/* extended precision pi */
 	 : "=f" (pi)
 	 : /* no inputs */ );
-  __asm ("fscale%.b %#-1,%0"		/* no loss of accuracy */
+  __asm ("fscale%.b #-1,%0"		/* no loss of accuracy */
 	 : "=f" (pi_over_2)
 	 : "0" (pi));
   if (x > 0)
@@ -178,7 +178,7 @@ atan2 (double y, double x)
 	      double value;
 
 	      errno = EDOM;
-	      __asm ("fmove%.d %#0x7fffffffffffffff,%0" 	/* quiet NaN */
+	      __asm ("fmove%.d #0x7fffffffffffffff,%0"	/* quiet NaN */
 		     : "=f" (value)
 		     : /* no inputs */);
 	      return value;
@@ -317,7 +317,7 @@ pow (double x, double y)
 	  double value;
 
 	  errno = EDOM;
-	  __asm ("fmove%.d %#0x7fffffffffffffff,%0"		/* quiet NaN */
+	  __asm ("fmove%.d #0x7fffffffffffffff,%0"		/* quiet NaN */
 		 : "=f" (value)
 		 : /* no inputs */);
 	  return value;
@@ -333,7 +333,7 @@ pow (double x, double y)
       if (y == temp)
         {
 	  int i = (int) y;
-	  
+
 	  if ((i & 1) == 0)			/* even */
 	    return exp (y * log (-x));
 	  else
@@ -344,7 +344,7 @@ pow (double x, double y)
 	  double value;
 
 	  errno = EDOM;
-	  __asm ("fmove%.d %#0x7fffffffffffffff,%0"		/* quiet NaN */
+	  __asm ("fmove%.d #0x7fffffffffffffff,%0"		/* quiet NaN */
 		 : "=f" (value)
 		 : /* no inputs */);
 	  return value;
@@ -497,7 +497,7 @@ frexp (double x, int *exp)
   double mantissa;
 
   __asm ("fgetexp%.x %1,%0"
-	 : "=f" (float_exponent) 	/* integer-valued float */
+	 : "=f" (float_exponent)	/* integer-valued float */
 	 : "f" (x));
   int_exponent = (int) float_exponent;
   __asm ("fgetman%.x %1,%0"
@@ -505,7 +505,7 @@ frexp (double x, int *exp)
 	 : "f" (x));
   if (mantissa != 0)
     {
-      __asm ("fscale%.b %#-1,%0"
+      __asm ("fscale%.b #-1,%0"
 	     : "=f" (mantissa)		/* mantissa /= 2.0 */
 	     : "0" (mantissa));
       int_exponent += 1;


-- 
  // Bernardo Innocenti - Develer S.r.l., R&D dept.
\X/  http://www.develer.com/




More information about the Gcc-patches mailing list