]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
pdp11.c (output_addr_const_pdp11): Output negative values with sign rather than as...
authorPaul Koning <pkoning@gcc.gnu.org>
Tue, 7 Dec 2010 19:55:07 +0000 (14:55 -0500)
committerPaul Koning <pkoning@gcc.gnu.org>
Tue, 7 Dec 2010 19:55:07 +0000 (14:55 -0500)
* config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
values with sign rather than as unsigned.

From-SVN: r167566

gcc/config/pdp11/pdp11.c

index 2617d30853fddd31cce3788d4d0a51d8b377f39c..bb220f0ac2f8e2c084b4b4294fb23111946c4f5e 100644 (file)
@@ -1881,7 +1881,8 @@ void
 output_addr_const_pdp11 (FILE *file, rtx x)
 {
   char buf[256];
-
+  int i;
+  
  restart:
   switch (GET_CODE (x))
     {
@@ -1905,7 +1906,13 @@ output_addr_const_pdp11 (FILE *file, rtx x)
       break;
 
     case CONST_INT:
-      fprintf (file, "%#o", (int) INTVAL (x) & 0xffff);
+      i = INTVAL (x);
+      if (i < 0)
+       {
+         i = -i;
+         fprintf (file, "-");
+       }
+      fprintf (file, "%#o", i & 0xffff);
       break;
 
     case CONST:
@@ -1953,16 +1960,10 @@ output_addr_const_pdp11 (FILE *file, rtx x)
        goto restart;
 
       output_addr_const_pdp11 (file, XEXP (x, 0));
-      fprintf (file, "-");
-      if (GET_CODE (XEXP (x, 1)) == CONST_INT
-         && INTVAL (XEXP (x, 1)) < 0)
-       {
-         fprintf (file, targetm.asm_out.open_paren);
-         output_addr_const_pdp11 (file, XEXP (x, 1));
-         fprintf (file, targetm.asm_out.close_paren);
-       }
-      else
-       output_addr_const_pdp11 (file, XEXP (x, 1));
+      if (GET_CODE (XEXP (x, 1)) != CONST_INT
+         || INTVAL (XEXP (x, 1)) >= 0)
+       fprintf (file, "-");
+      output_addr_const_pdp11 (file, XEXP (x, 1));
       break;
 
     case ZERO_EXTEND: