diff options
author | Joseph Myers <joseph@codesourcery.com> | 2010-10-29 00:15:59 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2010-10-29 00:15:59 +0000 |
commit | b55936237013f0250bf301a57ae4849b786198bf (patch) | |
tree | 4dc536ebbb5b72224ab756cd174c72d5bb83044b /gas/config/tc-tic6x.c | |
parent | b2ee48aae63b41c815f428803815942a49ad0dbf (diff) | |
download | gdb-b55936237013f0250bf301a57ae4849b786198bf.zip gdb-b55936237013f0250bf301a57ae4849b786198bf.tar.gz gdb-b55936237013f0250bf301a57ae4849b786198bf.tar.bz2 |
bfd:
2010-10-29 Bernd Schmidt <bernds@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* elf32-tic6x.c (elf32_tic6x_merge_attributes): Check for mismatch
of DSBT attributes.
binutils:
2010-10-29 Bernd Schmidt <bernds@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* readelf.c (display_tic6x_attribute): Handle Tag_ABI_DSBT.
gas:
2010-10-29 Bernd Schmidt <bernds@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* config/tc-tic6x.c (OPTION_MDSBT, OPTION_MNO_DSBT): New enum
values.
(md_longopts): Add mdsbt and mno-dsbt.
(tic6x_dsbt): New static variable.
(md_parse_option): Handle OPTION_MDSBT and OPTION_MNO_DSBT.
(md_show_usage): Output help text for -mdsbt and -mno-dsbt.
(TAG): Add comma at the end.
(tic6x_set_attributes): Set Tag_ABI_DSBT.
* doc/as.texinfo: Document -mdsbt and -mno-dsbt.
* doc/c-tic6x.texi (TIC6X Options): Likewise.
(TIC6X Directives): Mention Tag_ABI_DSBT.
gas/testsuite:
2010-10-29 Bernd Schmidt <bernds@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* gas/tic6x/attr-dsbt-directive-1.d,
gas/tic6x/attr-dsbt-directive-1.s,
gas/tic6x/attr-dsbt-directive-2.d,
gas/tic6x/attr-dsbt-directive-2.s,
gas/tic6x/attr-dsbt-opts-mdsbt.d,
gas/tic6x/attr-dsbt-opts-mno-dsbt.d: New tests.
include/elf:
2010-10-29 Bernd Schmidt <bernds@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* tic6x-attrs.h (Tag_ABI_DSBT): New.
ld/testsuite:
2010-10-29 Bernd Schmidt <bernds@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* ld-tic6x/attr-dsbt-0.s, ld-tic6x/attr-dsbt-00.d,
ld-tic6x/attr-dsbt-01.d, ld-tic6x/attr-dsbt-1.s,
ld-tic6x/attr-dsbt-10.d, ld-tic6x/attr-dsbt-11.d: New tests.
Diffstat (limited to 'gas/config/tc-tic6x.c')
-rw-r--r-- | gas/config/tc-tic6x.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/gas/config/tc-tic6x.c b/gas/config/tc-tic6x.c index 832491d..2f51466 100644 --- a/gas/config/tc-tic6x.c +++ b/gas/config/tc-tic6x.c @@ -50,6 +50,8 @@ enum OPTION_MNO_ATOMIC, OPTION_MBIG_ENDIAN, OPTION_MLITTLE_ENDIAN, + OPTION_MDSBT, + OPTION_MNO_DSBT, OPTION_MGENERATE_REL }; @@ -60,6 +62,8 @@ struct option md_longopts[] = { "mno-atomic", no_argument, NULL, OPTION_MNO_ATOMIC }, { "mbig-endian", no_argument, NULL, OPTION_MBIG_ENDIAN }, { "mlittle-endian", no_argument, NULL, OPTION_MLITTLE_ENDIAN }, + { "mdsbt", no_argument, NULL, OPTION_MDSBT }, + { "mno-dsbt", no_argument, NULL, OPTION_MNO_DSBT }, { "mgenerate-rel", no_argument, NULL, OPTION_MGENERATE_REL }, { NULL, no_argument, NULL, 0 } }; @@ -113,6 +117,9 @@ static bfd_boolean tic6x_compact_insns; /* Whether to generate RELA relocations. */ static bfd_boolean tic6x_generate_rela = TRUE; +/* Whether the code uses DSBT addressing. */ +static bfd_boolean tic6x_dsbt; + /* Table of supported architecture variants. */ typedef struct { @@ -191,6 +198,14 @@ md_parse_option (int c, char *arg) target_big_endian = 0; break; + case OPTION_MDSBT: + tic6x_dsbt = 1; + break; + + case OPTION_MNO_DSBT: + tic6x_dsbt = 0; + break; + case OPTION_MGENERATE_REL: tic6x_generate_rela = FALSE; break; @@ -213,6 +228,8 @@ md_show_usage (FILE *stream ATTRIBUTE_UNUSED) fprintf (stream, _(" -mno-atomic disable atomic operation instructions\n")); fprintf (stream, _(" -mbig-endian generate big-endian code\n")); fprintf (stream, _(" -mlittle-endian generate little-endian code\n")); + fprintf (stream, _(" -mdsbt code uses DSBT addressing\n")); + fprintf (stream, _(" -mno-dsbt code does not use DSBT addressing\n")); /* -mgenerate-rel is only for testsuite use and is deliberately undocumented. */ @@ -341,7 +358,7 @@ typedef struct static const tic6x_attribute_table tic6x_attributes[] = { -#define TAG(tag, value) { #tag, tag } +#define TAG(tag, value) { #tag, tag }, #include "elf/tic6x-attrs.h" #undef TAG }; @@ -3897,6 +3914,7 @@ tic6x_set_attributes (void) tic6x_arch_attribute = C6XABI_Tag_ISA_C674X; tic6x_set_attribute_int (Tag_ISA, tic6x_arch_attribute); + tic6x_set_attribute_int (Tag_ABI_DSBT, tic6x_dsbt); } /* Do machine-dependent manipulations of the frag chains after all |