This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[m68k 02/13] Cleanup pseudo branch obcodes


Hi,

This continues the previous patch and cleans up the remaining jump
opcodes. jcc and jbcc are both gas pseudo opcodes (and no real motorola
opcodes), so this uses now the officially documented variant.
This also removes the last uses of USE_GAS, after the last rounds of
target deprications only support for gas should be left now AFAICT  (only
m68k-*-aout* and m68k*-*-openbsd* don't define USE_GAS). If we want to
support other assembler, this needs to be added back properly.


2007-01-30  Roman Zippel <zippel@linux-m68k.org>

	* config/m68k/m68k.c (override_options): remove USE_GAS
	* config/m68k/m68k.c/config/m68k/m68k.md: replace all jbcc
	  alternatives with just jcc

---
 gcc/config/m68k/m68k.c  |   98 ++++++--------------------
 gcc/config/m68k/m68k.md |  178 +++++++++---------------------------------------
 2 files changed, 60 insertions(+), 216 deletions(-)

Index: egcs/gcc/config/m68k/m68k.c
===================================================================
--- egcs.orig/gcc/config/m68k/m68k.c
+++ egcs/gcc/config/m68k/m68k.c
@@ -543,13 +543,8 @@ override_options (void)
 
   if (!flag_pic)
     {
-#if MOTOROLA && !defined (USE_GAS)
-      m68k_symbolic_call = "jsr %a0";
-      m68k_symbolic_jump = "jmp %a0";
-#else
       m68k_symbolic_call = "jbsr %a0";
       m68k_symbolic_jump = "jra %a0";
-#endif
     }
   else if (TARGET_ID_SHARED_LIBRARY)
     /* All addresses must be loaded from the GOT.  */
@@ -558,18 +553,13 @@ override_options (void)
     {
       if (TARGET_PCREL)
 	{
-	  m68k_symbolic_call = "bsr.l %c0";
-	  m68k_symbolic_jump = "bra.l %c0";
+	  m68k_symbolic_call = "bsr%.l %c0";
+	  m68k_symbolic_jump = "bra%.l %c0";
 	}
       else
 	{
-#if defined(USE_GAS)
-	  m68k_symbolic_call = "bsr.l %p0";
-	  m68k_symbolic_jump = "bra.l %p0";
-#else
-	  m68k_symbolic_call = "bsr %p0";
-	  m68k_symbolic_jump = "bra %p0";
-#endif
+	  m68k_symbolic_call = "bsr%.l %p0";
+	  m68k_symbolic_jump = "bra%.l %p0";
 	}
       /* Turn off function cse if we are doing PIC.  We always want
 	 function call to be done as `bsr foo@PLTPC'.  */
@@ -1386,73 +1376,43 @@ output_dbcc_and_branch (rtx *operands)
   switch (GET_CODE (operands[3]))
     {
       case EQ:
-	output_asm_insn (MOTOROLA
-			 ? "dbeq %0,%l1\n\tjbeq %l2"
-			 : "dbeq %0,%l1\n\tjeq %l2",
-			 operands);
+	output_asm_insn ("dbeq %0,%l1\n\tjeq %l2", operands);
 	break;
 
       case NE:
-	output_asm_insn (MOTOROLA
-			 ? "dbne %0,%l1\n\tjbne %l2"
-			 : "dbne %0,%l1\n\tjne %l2",
-			 operands);
+	output_asm_insn ("dbne %0,%l1\n\tjne %l2", operands);
 	break;
 
       case GT:
-	output_asm_insn (MOTOROLA
-			 ? "dbgt %0,%l1\n\tjbgt %l2"
-			 : "dbgt %0,%l1\n\tjgt %l2",
-			 operands);
+	output_asm_insn ("dbgt %0,%l1\n\tjgt %l2", operands);
 	break;
 
       case GTU:
-	output_asm_insn (MOTOROLA
-			 ? "dbhi %0,%l1\n\tjbhi %l2"
-			 : "dbhi %0,%l1\n\tjhi %l2",
-			 operands);
+	output_asm_insn ("dbhi %0,%l1\n\tjhi %l2", operands);
 	break;
 
       case LT:
-	output_asm_insn (MOTOROLA
-			 ? "dblt %0,%l1\n\tjblt %l2"
-			 : "dblt %0,%l1\n\tjlt %l2",
-			 operands);
+	output_asm_insn ("dblt %0,%l1\n\tjlt %l2", operands);
 	break;
 
       case LTU:
-	output_asm_insn (MOTOROLA
-			 ? "dbcs %0,%l1\n\tjbcs %l2"
-			 : "dbcs %0,%l1\n\tjcs %l2",
-			 operands);
+	output_asm_insn ("dbcs %0,%l1\n\tjcs %l2", operands);
 	break;
 
       case GE:
-	output_asm_insn (MOTOROLA
-			 ? "dbge %0,%l1\n\tjbge %l2"
-			 : "dbge %0,%l1\n\tjge %l2",
-			 operands);
+	output_asm_insn ("dbge %0,%l1\n\tjge %l2", operands);
 	break;
 
       case GEU:
-	output_asm_insn (MOTOROLA
-			 ? "dbcc %0,%l1\n\tjbcc %l2"
-			 : "dbcc %0,%l1\n\tjcc %l2",
-			 operands);
+	output_asm_insn ("dbcc %0,%l1\n\tjcc %l2", operands);
 	break;
 
       case LE:
-	output_asm_insn (MOTOROLA
-			 ? "dble %0,%l1\n\tjble %l2"
-			 : "dble %0,%l1\n\tjle %l2",
-			 operands);
+	output_asm_insn ("dble %0,%l1\n\tjle %l2", operands);
 	break;
 
       case LEU:
-	output_asm_insn (MOTOROLA
-			 ? "dbls %0,%l1\n\tjbls %l2"
-			 : "dbls %0,%l1\n\tjls %l2",
-			 operands);
+	output_asm_insn ("dbls %0,%l1\n\tjls %l2", operands);
 	break;
 
       default:
@@ -1464,10 +1424,7 @@ output_dbcc_and_branch (rtx *operands)
   switch (GET_MODE (operands[0]))
     {
       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",
-			 operands);
+        output_asm_insn ("clr%.w %0\n\tsubq%.l #1,%0\n\tjpl %l1", operands);
         break;
 
       case HImode:
@@ -1513,12 +1470,7 @@ output_scc_di (rtx op, rtx operand1, rtx
     }
   loperands[4] = gen_label_rtx ();
   if (operand2 != const0_rtx)
-    {
-      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);
-    }
+    output_asm_insn ("cmp%.l %2,%0\n\tjne %l4\n\tcmp%.l %3,%1", loperands);
   else
     {
       if (TARGET_68020 || TARGET_COLDFIRE || ! ADDRESS_REG_P (loperands[0]))
@@ -1526,7 +1478,7 @@ output_scc_di (rtx op, rtx operand1, rtx
       else
 	output_asm_insn ("cmp%.w #0,%0", loperands);
 
-      output_asm_insn (MOTOROLA ? "jbne %l4" : "jne %l4", loperands);
+      output_asm_insn ("jne %l4", loperands);
 
       if (TARGET_68020 || TARGET_COLDFIRE || ! ADDRESS_REG_P (loperands[1]))
 	output_asm_insn ("tst%.l %1", loperands);
@@ -1552,8 +1504,7 @@ output_scc_di (rtx op, rtx operand1, rtx
 
       case GT:
         loperands[6] = gen_label_rtx ();
-        output_asm_insn (MOTOROLA ? "shi %5\n\tjbra %l6" : "shi %5\n\tjra %l6",
-			 loperands);
+        output_asm_insn ("shi %5\n\tjra %l6", loperands);
         (*targetm.asm_out.internal_label) (asm_out_file, "L",
 					   CODE_LABEL_NUMBER (loperands[4]));
         output_asm_insn ("sgt %5", loperands);
@@ -1569,8 +1520,7 @@ output_scc_di (rtx op, rtx operand1, rtx
 
       case LT:
         loperands[6] = gen_label_rtx ();
-        output_asm_insn (MOTOROLA ? "scs %5\n\tjbra %l6" : "scs %5\n\tjra %l6",
-			 loperands);
+        output_asm_insn ("scs %5\n\tjra %l6", loperands);
         (*targetm.asm_out.internal_label) (asm_out_file, "L",
 					   CODE_LABEL_NUMBER (loperands[4]));
         output_asm_insn ("slt %5", loperands);
@@ -1586,8 +1536,7 @@ output_scc_di (rtx op, rtx operand1, rtx
 
       case GE:
         loperands[6] = gen_label_rtx ();
-        output_asm_insn (MOTOROLA ? "scc %5\n\tjbra %l6" : "scc %5\n\tjra %l6",
-			 loperands);
+        output_asm_insn ("scc %5\n\tjra %l6", loperands);
         (*targetm.asm_out.internal_label) (asm_out_file, "L",
 					   CODE_LABEL_NUMBER (loperands[4]));
         output_asm_insn ("sge %5", loperands);
@@ -1603,8 +1552,7 @@ output_scc_di (rtx op, rtx operand1, rtx
 
       case LE:
         loperands[6] = gen_label_rtx ();
-        output_asm_insn (MOTOROLA ? "sls %5\n\tjbra %l6" : "sls %5\n\tjra %l6",
-			 loperands);
+        output_asm_insn ("sls %5\n\tjra %l6", loperands);
         (*targetm.asm_out.internal_label) (asm_out_file, "L",
 					   CODE_LABEL_NUMBER (loperands[4]));
         output_asm_insn ("sle %5", loperands);
@@ -3786,8 +3734,8 @@ m68k_output_mi_thunk (FILE *file, tree t
   xops[0] = XEXP (xops[0], 0);
 
   fmt = m68k_symbolic_jump;
-  if (m68k_symbolic_jump == NULL)
-    fmt = "move.l %%a1@GOT(%%a5), %%a1\n\tjmp (%%a1)";
+  if (fmt == NULL)
+    fmt = "move.l %%a1@GOT(%%a5),%%a1\n\tjmp (%%a1)";
 
   output_asm_insn (fmt, xops);
 }
Index: egcs/gcc/config/m68k/m68k.md
===================================================================
--- egcs.orig/gcc/config/m68k/m68k.md
+++ egcs/gcc/config/m68k/m68k.md
@@ -2045,7 +2045,7 @@
         operands[2] = gen_rtx_MEM (SImode, XEXP (XEXP (operands[0], 0), 0));
     }
   output_asm_insn ("move%.l %1,%0", operands);
-  output_asm_insn (MOTOROLA ? "jbpl %l3" : "jpl %l3", operands);
+  output_asm_insn ("jpl %l3", operands);
   output_asm_insn ("addq%.l #1,%2", operands);
   (*targetm.asm_out.internal_label) (asm_out_file, "L",
 				CODE_LABEL_NUMBER (operands[3]));
@@ -5576,19 +5576,14 @@
 {
   CC_STATUS_INIT;
   if (which_alternative == 1)
-    {
-      if (MOTOROLA)
-	return "move%.l %0,%2\;or%.l %0,%2\;jbeq %l1";
-      else
-	return "move%.l %0,%2\;or%.l %0,%2\;jeq %l1";
-    }
+    return "move%.l %0,%2\;or%.l %0,%2\;jeq %l1";
   if ((cc_prev_status.value1
       && rtx_equal_p (cc_prev_status.value1, operands[0]))
     || (cc_prev_status.value2
       && rtx_equal_p (cc_prev_status.value2, operands[0])))
     {
       cc_status = cc_prev_status;
-      return MOTOROLA ? "jbeq %l1" : "jeq %l1";
+      return "jeq %l1";
     }
   if (GET_CODE (operands[0]) == REG)
     operands[3] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1);
@@ -5599,40 +5594,17 @@
       if (reg_overlap_mentioned_p (operands[2], operands[0]))
 	{
 	  if (reg_overlap_mentioned_p (operands[2], operands[3]))
-	    {
-	      if (MOTOROLA)
-		return "or%.l %0,%2\;jbeq %l1";
-	      else
-		return "or%.l %0,%2\;jeq %l1";
-	    }
+	    return "or%.l %0,%2\;jeq %l1";
 	  else
-	    {
-	      if (MOTOROLA)
-		return "or%.l %3,%2\;jbeq %l1";
-	      else
-		return "or%.l %3,%2\;jeq %l1";
-	    }
+	    return "or%.l %3,%2\;jeq %l1";
 	}
-      if (MOTOROLA)
-	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";
     }
   operands[4] = gen_label_rtx();
   if (TARGET_68020 || TARGET_COLDFIRE)
-    {
-      if (MOTOROLA)
-	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);
   else
-    {
-      if (MOTOROLA)
-	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]));
   return "";
@@ -5653,7 +5625,7 @@
       && rtx_equal_p (cc_prev_status.value2, operands[0])))
     {
       cc_status = cc_prev_status;
-      return MOTOROLA ? "jbne %l1" : "jne %l1";
+      return "jne %l1";
     }
   CC_STATUS_INIT;
   if (GET_CODE (operands[0]) == REG)
@@ -5665,39 +5637,16 @@
       if (reg_overlap_mentioned_p (operands[2], operands[0]))
 	{
 	  if (reg_overlap_mentioned_p (operands[2], operands[3]))
-	    {
-	      if (MOTOROLA)
-		return "or%.l %0,%2\;jbne %l1";
-	      else
-		return "or%.l %0,%2\;jne %l1";
-	    }
+	    return "or%.l %0,%2\;jne %l1";
 	  else
-	    {
-	      if (MOTOROLA)
-		return "or%.l %3,%2\;jbne %l1";
-	      else
-		return "or%.l %3,%2\;jne %l1";
-	    }
+	    return "or%.l %3,%2\;jne %l1";
 	}
-      if (MOTOROLA)
-	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";
     }
   if (TARGET_68020 || TARGET_COLDFIRE)
-    {
-      if (MOTOROLA)
-	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";
   else
-    {
-      if (MOTOROLA)
-	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";
 })
 
 (define_insn "bge0_di"
@@ -5714,14 +5663,7 @@
       && rtx_equal_p (cc_prev_status.value2, operands[0])))
     {
       cc_status = cc_prev_status;
-      if (cc_status.flags & CC_REVERSED)
-	{
-	  return MOTOROLA ? "jble %l1" : "jle %l1";
-	}
-      else
-	{
-	  return MOTOROLA ? "jbpl %l1" : "jpl %l1";
-	}
+      return cc_status.flags & CC_REVERSED ? "jle %l1" : "jpl %l1";
     }
   CC_STATUS_INIT;
   if (TARGET_68020 || TARGET_COLDFIRE || ! ADDRESS_REG_P (operands[0]))
@@ -5731,7 +5673,7 @@
       /* On an address reg, cmpw may replace cmpl.  */
       output_asm_insn("cmp%.w #0,%0", operands);
     }
-  return MOTOROLA ? "jbpl %l1" : "jpl %l1";
+  return "jpl %l1";
 })
 
 (define_insn "blt0_di"
@@ -5748,14 +5690,7 @@
       && rtx_equal_p (cc_prev_status.value2, operands[0])))
     {
       cc_status = cc_prev_status;
-      if (cc_status.flags & CC_REVERSED)
-	{
-	  return MOTOROLA ? "jbgt %l1" : "jgt %l1";
-	}
-      else
-	{
-	  return MOTOROLA ? "jbmi %l1" : "jmi %l1";
-	}
+      return cc_status.flags & CC_REVERSED ? "jgt %l1" : "jmi %l1";
     }
   CC_STATUS_INIT;
   if (TARGET_68020 || TARGET_COLDFIRE || ! ADDRESS_REG_P (operands[0]))
@@ -5765,8 +5700,7 @@
       /* On an address reg, cmpw may replace cmpl.  */
       output_asm_insn("cmp%.w #0,%0", operands);
     }
-
-  return MOTOROLA ? "jbmi %l1" : "jmi %l1";
+  return "jmi %l1";
 })
 
 (define_insn "beq"
@@ -5809,9 +5743,7 @@
 		      (label_ref (match_operand 0 "" ""))
 		      (pc)))]
   ""
-{
-  return MOTOROLA ? "jbhi %l0" : "jhi %l0";
-})
+  "jhi %l0")
 
 (define_insn "blt"
   [(set (pc)
@@ -5831,9 +5763,7 @@
 		      (label_ref (match_operand 0 "" ""))
 		      (pc)))]
   ""
-{
-  return MOTOROLA ? "jbcs %l0" : "jcs %l0";
-})
+  "jcs %l0")
 
 (define_insn "bge"
   [(set (pc)
@@ -5853,9 +5783,7 @@
 		      (label_ref (match_operand 0 "" ""))
 		      (pc)))]
   ""
-{
-  return MOTOROLA ? "jbcc %l0" : "jcc %l0";
-})
+  "jcc %l0")
 
 (define_insn "ble"
   [(set (pc)
@@ -5875,9 +5803,7 @@
 		      (label_ref (match_operand 0 "" ""))
 		      (pc)))]
   ""
-{
-  return MOTOROLA ? "jbls %l0" : "jls %l0";
-})
+  "jls %l0")
 
 (define_insn "bordered"
   [(set (pc)
@@ -6009,9 +5935,7 @@
 		      (pc)
 		      (label_ref (match_operand 0 "" ""))))]
   ""
-{
-  return MOTOROLA ? "jbls %l0" : "jls %l0";
-})
+  "jls %l0")
 
 (define_insn ""
   [(set (pc)
@@ -6031,9 +5955,7 @@
 		      (pc)
 		      (label_ref (match_operand 0 "" ""))))]
   ""
-{
-  return MOTOROLA ? "jbcc %l0" : "jcc %l0";
-})
+  "jcc %l0")
 
 (define_insn ""
   [(set (pc)
@@ -6053,9 +5975,7 @@
 		      (pc)
 		      (label_ref (match_operand 0 "" ""))))]
   ""
-{
-  return MOTOROLA ? "jbcs %l0" : "jcs %l0";
-})
+  "jcs %l0")
 
 (define_insn ""
   [(set (pc)
@@ -6075,9 +5995,7 @@
 		      (pc)
 		      (label_ref (match_operand 0 "" ""))))]
   ""
-{
-  return MOTOROLA ? "jbhi %l0" : "jhi %l0";
-})
+  "jhi %l0")
 
 (define_insn "*bordered_rev"
   [(set (pc)
@@ -6172,9 +6090,7 @@
   [(set (pc)
 	(label_ref (match_operand 0 "" "")))]
   ""
-{
-  return MOTOROLA ? "jbra %l0" : "jra %l0";
-})
+  "jra %l0")
 
 (define_expand "tablejump"
   [(parallel [(set (pc) (match_operand 0 "" ""))
@@ -6238,12 +6154,8 @@
   if (DATA_REG_P (operands[0]))
     return "dbra %0,%l1";
   if (GET_CODE (operands[0]) == MEM)
-    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";
+    return "subq%.w #1,%0\;jcc %l1";
+  return "subq%.w #1,%0\;cmp%.w #-1,%0\;jne %l1";
 })
 
 (define_insn ""
@@ -6260,16 +6172,10 @@
 {
   CC_STATUS_INIT;
   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";
+    return "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";
+    return "subq%.l #1,%0\;jcc %l1";
+  return "subq%.l #1,%0\;cmp%.l #-1,%0\;jne %l1";
 })
 
 ;; Two dbra patterns that use REG_NOTES info generated by strength_reduce.
@@ -6291,12 +6197,8 @@
   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";
+    return "subq%.w #1,%0\;jcc %l1";
+  return "subq%.w #1,%0\;cmp%.w #-1,%0\;jne %l1";
 })
 
 (define_expand "decrement_and_branch_until_zero"
@@ -6328,16 +6230,10 @@
 {
   CC_STATUS_INIT;
   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";
+    return "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" :
-      "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";
+    return "subq%.l #1,%0\;jcc %l1";
+  return "subq%.l #1,%0\;cmp%.l #-1,%0\;jne %l1";
 })
 
 ;; Call subroutine with no return value.

--


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]