[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.
This commit is contained in:
Thomas Schwinge
2012-03-21 08:58:40 +00:00
parent adcadaab4a
commit 32b9ff0d14
4 changed files with 31 additions and 12 deletions

View File

@ -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> 2012-03-20 Nick Clifton <nickc@redhat.com>
* config/tc-arm.c (do_vmrs): Accept priviledged mode VFP system * config/tc-arm.c (do_vmrs): Accept priviledged mode VFP system

View File

@ -1,6 +1,6 @@
/* tc-sh.c -- Assemble code for the Renesas / SuperH SH /* tc-sh.c -- Assemble code for the Renesas / SuperH SH
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 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. Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler. 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; r_type = BFD_RELOC_32;
break; break;
#ifdef HAVE_SH64
case 8: case 8:
r_type = BFD_RELOC_64; r_type = BFD_RELOC_64;
break; break;
#endif
default: default:
goto error; 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. */ the other symbol. We have to adjust the relocation type here. */
if (fixP->fx_pcrel) 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) switch (fixP->fx_r_type)
{ {
default: default:
@ -4166,6 +4169,12 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
buf[highbyte] |= (val >> 8) & 0xf; buf[highbyte] |= (val >> 8) & 0xf;
break; 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:
case BFD_RELOC_32_PCREL: case BFD_RELOC_32_PCREL:
apply_full_field_fix (fixP, buf, val, 4); apply_full_field_fix (fixP, buf, val, 4);

View File

@ -1,5 +1,5 @@
@c Copyright 1991, 1992, 1993, 1994, 1995, 1997, 2001, 2003, 2004, @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 This is part of the GAS manual.
@c For copying conditions, see the file as.texinfo. @c For copying conditions, see the file as.texinfo.
@page @page
@ -210,13 +210,16 @@ conventional architectures at the same frequency.
@cindex machine directives, SH @cindex machine directives, SH
@cindex @code{uaword} directive, SH @cindex @code{uaword} directive, SH
@cindex @code{ualong} directive, SH @cindex @code{ualong} directive, SH
@cindex @code{uaquad} directive, SH
@table @code @table @code
@item uaword @item uaword
@itemx ualong @itemx ualong
@code{@value{AS}} will issue a warning when a misaligned @code{.word} or @itemx uaquad
@code{.long} directive is used. You may use @code{.uaword} or @code{@value{AS}} will issue a warning when a misaligned @code{.word},
@code{.ualong} to indicate that the value is intentionally misaligned. @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 @end table
@node SH Opcodes @node SH Opcodes

View File

@ -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 This is part of the GAS manual.
@c For copying conditions, see the file as.texinfo. @c For copying conditions, see the file as.texinfo.
@page @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 this directive unless you specified an ABI on the command line, and the
ABIs specified must match. ABIs specified must match.
@item .uaquad
Like .uaword and .ualong, this allows you to specify an intentionally
unaligned quadword (64 bit word).
@end table @end table
@node SH64 Opcodes @node SH64 Opcodes