summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@gnu.org>2012-03-21 08:58:40 +0000
committerThomas Schwinge <tschwinge@gnu.org>2012-03-21 08:58:40 +0000
commitef4579720821a3927946f72e1313c68ee1cf81d6 (patch)
treec777689dee746293f842e14fdcd8c386f8a36089
parent2dd45d3d997c33e7595c68569581b461b8bff9cb (diff)
downloadbinutils-redhat-ef4579720821a3927946f72e1313c68ee1cf81d6.tar.gz
gas/
[SH] Support the .uaquad and .8byte directives also for non-sh64 configurations. * config/tc-sh.c (sh_cons_fix_new, md_apply_fix) [!HAVE_SH64]: Handle BFD_RELOC_64. * doc/c-sh64.texi (SH64 Machine Directives): Move .uaquad description... * doc/c-sh.texi (SH Machine Directives): ... here.
-rw-r--r--gas/ChangeLog11
-rw-r--r--gas/config/tc-sh.c15
-rw-r--r--gas/doc/c-sh.texi11
-rw-r--r--gas/doc/c-sh64.texi6
4 files changed, 31 insertions, 12 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index b6fe7e3f87..8402be4a7f 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,14 @@
+2012-03-21 Thomas Schwinge <thomas@codesourcery.com>
+
+ [SH] Support the .uaquad and .8byte directives also for non-sh64
+ configurations.
+
+ * config/tc-sh.c (sh_cons_fix_new, md_apply_fix) [!HAVE_SH64]: Handle
+ BFD_RELOC_64.
+ * doc/c-sh64.texi (SH64 Machine Directives): Move .uaquad
+ description...
+ * doc/c-sh.texi (SH Machine Directives): ... here.
+
2012-03-20 Nick Clifton <nickc@redhat.com>
* config/tc-arm.c (do_vmrs): Accept priviledged mode VFP system
diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c
index 15a4128380..4db1a09136 100644
--- a/gas/config/tc-sh.c
+++ b/gas/config/tc-sh.c
@@ -1,6 +1,6 @@
/* tc-sh.c -- Assemble code for the Renesas / SuperH SH
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+ 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012
Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -789,11 +789,9 @@ sh_cons_fix_new (fragS *frag, int off, int size, expressionS *exp)
r_type = BFD_RELOC_32;
break;
-#ifdef HAVE_SH64
case 8:
r_type = BFD_RELOC_64;
break;
-#endif
default:
goto error;
@@ -3968,6 +3966,11 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
the other symbol. We have to adjust the relocation type here. */
if (fixP->fx_pcrel)
{
+#ifndef HAVE_SH64
+ /* Safeguard; this must not occur for non-sh64 configurations. */
+ gas_assert (fixP->fx_r_type != BFD_RELOC_64);
+#endif
+
switch (fixP->fx_r_type)
{
default:
@@ -4166,6 +4169,12 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
buf[highbyte] |= (val >> 8) & 0xf;
break;
+#ifndef HAVE_SH64
+ case BFD_RELOC_64:
+ apply_full_field_fix (fixP, buf, *valP, 8);
+ break;
+#endif
+
case BFD_RELOC_32:
case BFD_RELOC_32_PCREL:
apply_full_field_fix (fixP, buf, val, 4);
diff --git a/gas/doc/c-sh.texi b/gas/doc/c-sh.texi
index 438ac5fd5e..aff68307c3 100644
--- a/gas/doc/c-sh.texi
+++ b/gas/doc/c-sh.texi
@@ -1,5 +1,5 @@
@c Copyright 1991, 1992, 1993, 1994, 1995, 1997, 2001, 2003, 2004,
-@c 2005, 2008, 2010, 2011 Free Software Foundation, Inc.
+@c 2005, 2008, 2010, 2011, 2012 Free Software Foundation, Inc.
@c This is part of the GAS manual.
@c For copying conditions, see the file as.texinfo.
@page
@@ -210,13 +210,16 @@ conventional architectures at the same frequency.
@cindex machine directives, SH
@cindex @code{uaword} directive, SH
@cindex @code{ualong} directive, SH
+@cindex @code{uaquad} directive, SH
@table @code
@item uaword
@itemx ualong
-@code{@value{AS}} will issue a warning when a misaligned @code{.word} or
-@code{.long} directive is used. You may use @code{.uaword} or
-@code{.ualong} to indicate that the value is intentionally misaligned.
+@itemx uaquad
+@code{@value{AS}} will issue a warning when a misaligned @code{.word},
+@code{.long}, or @code{.quad} directive is used. You may use
+@code{.uaword}, @code{.ualong}, or @code{.uaquad} to indicate that the
+value is intentionally misaligned.
@end table
@node SH Opcodes
diff --git a/gas/doc/c-sh64.texi b/gas/doc/c-sh64.texi
index 8138c1ffa1..cc52cbc6ed 100644
--- a/gas/doc/c-sh64.texi
+++ b/gas/doc/c-sh64.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 2002, 2003, 2008, 2011 Free Software Foundation, Inc.
+@c Copyright (C) 2002, 2003, 2008, 2011, 2012 Free Software Foundation, Inc.
@c This is part of the GAS manual.
@c For copying conditions, see the file as.texinfo.
@page
@@ -188,10 +188,6 @@ Specify the ABI for the following instructions. Note that you cannot use
this directive unless you specified an ABI on the command line, and the
ABIs specified must match.
-@item .uaquad
-Like .uaword and .ualong, this allows you to specify an intentionally
-unaligned quadword (64 bit word).
-
@end table
@node SH64 Opcodes