h8300.c (print_operand): Use 16 bit addressing when the data in 8-bit area and can...
authorVladimir N. Makarov <vmakarov@cygnus.com>
Mon, 1 Mar 1999 08:53:02 +0000 (08:53 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Mon, 1 Mar 1999 08:53:02 +0000 (08:53 +0000)
Mon Mar  1 11:46:25 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
* config/h8300/h8300.c (print_operand):  Use 16 bit addressing
when the data in 8-bit area and can not be addressed by 8-bit.

From-SVN: r25513

gcc/ChangeLog
gcc/config/h8300/h8300.c

index 139e73445ac3a4bc57b86e370183633ed62214ca..bdcf394ac73a49c9042bd2ddd6c93007bcc008d1 100644 (file)
@@ -1,3 +1,8 @@
+Mon Mar  1 11:46:25 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
+
+       * config/h8300/h8300.c (print_operand):  Use 16 bit addressing
+       when the data in 8-bit area and can not be addressed by 8-bit.
+
 Sun Feb 28 16:40:00 1999  Richard Henderson  <rth@cygnus.com>
 
        * flow.c (create_basic_block): Disregard integrated bb notes.
index 4dc48958268f467fc749052bae61b2b10c82830d..fac3cbf1acc720a6da8391ac9ec4af7a0a29fe37 100644 (file)
@@ -1414,13 +1414,14 @@ print_operand (file, x, code)
          fprintf (file, "@");
          output_address (XEXP (x, 0));
 
-         /* If this is an 'R' operand (reference into the 8-bit area),
-            then specify a symbolic address as "foo:8".  */
-         if (code == 'R'
-             && GET_CODE (XEXP (x, 0)) == SYMBOL_REF
+         /* If this is an 'R' operand (reference into the 8-bit
+            area), then specify a symbolic address as "foo:8",
+            otherwise if operand is still in eight bit section, use
+            "foo:16".  */
+         if (GET_CODE (XEXP (x, 0)) == SYMBOL_REF
              && SYMBOL_REF_FLAG (XEXP (x, 0)))
-           fprintf (file, ":8");
-         if (GET_CODE (XEXP (x, 0)) == SYMBOL_REF
+           fprintf (file, (code == 'R' ? ":8" : ":16"));
+         else if (GET_CODE (XEXP (x, 0)) == SYMBOL_REF
              && TINY_DATA_NAME_P (XSTR (XEXP (x, 0), 0)))
            fprintf (file, ":16");
          break;