aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVladimir N. Makarov <vmakarov@cygnus.com>1999-03-01 08:53:02 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>1999-03-01 08:53:02 +0000
commita653b93fbd262fcb9394aa4a291424ffefcfab57 (patch)
tree153be2cb7910b9b62d1a6a678fc77a6ce25e6293 /gcc
parentd45c91d3a22dd26e830ecd6eae7ae9977b1d6513 (diff)
downloadgcc-a653b93fbd262fcb9394aa4a291424ffefcfab57.zip
gcc-a653b93fbd262fcb9394aa4a291424ffefcfab57.tar.gz
gcc-a653b93fbd262fcb9394aa4a291424ffefcfab57.tar.bz2
h8300.c (print_operand): Use 16 bit addressing when the data in 8-bit area and can not be addressed by 8-bit.
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/h8300/h8300.c13
2 files changed, 12 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 139e734..bdcf394 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index 4dc4895..fac3cbf 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -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;