]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
pdp11.c (pdp11_assemble_integer): Mask byte values to 8 bits.
authorPaul Koning <ni1d@arrl.net>
Tue, 9 Nov 2010 01:07:14 +0000 (20:07 -0500)
committerPaul Koning <pkoning@gcc.gnu.org>
Tue, 9 Nov 2010 01:07:14 +0000 (20:07 -0500)
* config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
to 8 bits.

From-SVN: r166466

gcc/ChangeLog
gcc/config/pdp11/pdp11.c

index 49378ae057dc9099d8dfa4d4430958efad17ef6b..8bd5348c97cbe343334a3d80bed75b9b1de928d3 100644 (file)
@@ -1,3 +1,8 @@
+2010-11-08  Paul Koning  <ni1d@arrl.net>
+
+       * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
+       to 8 bits.
+
 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        PR target/46378
index 31e85c7e6f83ce963df80dfde0d993818e9584ea..a9c758b454860bba86a6043610c3bdbcbc2518b7 100644 (file)
@@ -1002,7 +1002,10 @@ pdp11_assemble_integer (rtx x, unsigned int size, int aligned_p)
       {
       case 1:
        fprintf (asm_out_file, "\t.byte\t");
-       output_addr_const_pdp11 (asm_out_file, x);
+       output_addr_const_pdp11 (asm_out_file, 
+                                GEN_INT (trunc_int_for_mode (INTVAL (x),
+                                                             QImode) & 0xff));
+;
        fprintf (asm_out_file, " /* char */\n");
        return true;
 
@@ -1739,9 +1742,7 @@ output_addr_const_pdp11 (FILE *file, rtx x)
       break;
 
     case CONST_INT:
-      /* Should we check for constants which are too big?  Maybe cutting
-        them off to 16 bits is OK?  */
-      fprintf (file, "%#ho", (unsigned short) INTVAL (x));
+      fprintf (file, "%#o", (int) trunc_int_for_mode (INTVAL (x), HImode) & 0xffff);
       break;
 
     case CONST: