[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>
* 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
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);

View file

@ -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

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 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