aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-sparc.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2000-08-16 17:52:37 +0000
committerJakub Jelinek <jakub@redhat.com>2000-08-16 17:52:37 +0000
commitc2158c24331a0217a9abbcff41a7a80734d92c46 (patch)
tree2e6aec83957c659fe6eb79636f7895969906a7e0 /gas/config/tc-sparc.c
parent70485b5c189916d86cca419c60229858f00d6799 (diff)
downloadgdb-c2158c24331a0217a9abbcff41a7a80734d92c46.zip
gdb-c2158c24331a0217a9abbcff41a7a80734d92c46.tar.gz
gdb-c2158c24331a0217a9abbcff41a7a80734d92c46.tar.bz2
* config/tc-sparc.c: Kill all warnings.
(md_parse_option): Set -32/-64 for -xarch=, allow all -A archs in -xarch= as well. (md_show_usage): Update usage text.
Diffstat (limited to 'gas/config/tc-sparc.c')
-rw-r--r--gas/config/tc-sparc.c76
1 files changed, 51 insertions, 25 deletions
diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index a2fe524..d42fc49 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -337,16 +337,19 @@ sparc_target_format ()
*
* -Av6, -Av7, -Av8, -Asparclite, -Asparclet
* Standard 32 bit architectures.
- * -Av8plus, -Av8plusa
- * Sparc64 in a 32 bit world.
* -Av9, -Av9a
* Sparc64 in either a 32 or 64 bit world (-32/-64 says which).
* This used to only mean 64 bits, but properly specifying it
* complicated gcc's ASM_SPECs, so now opcode selection is
* specified orthogonally to word size (except when specifying
* the default, but that is an internal implementation detail).
+ * -Av8plus, -Av8plusa
+ * Same as -Av9{,a}.
* -xarch=v8plus, -xarch=v8plusa
- * Same as -Av8plus{,a}, for compatibility with Sun's assembler.
+ * Same as -Av8plus{,a} -32, for compatibility with Sun's
+ * assembler.
+ * -xarch=v9, -xarch=v9a
+ * Same as -Av9{,a} -64, for compatibility with Sun's assembler.
*
* Select the architecture and possibly the file format.
* Instructions or features not supported by the selected
@@ -449,13 +452,12 @@ md_parse_option (c, arg)
break;
case OPTION_XARCH:
- /* This is for compatibility with Sun's assembler. */
- if (strcmp (arg, "v8plus") != 0
- && strcmp (arg, "v8plusa") != 0)
- {
- as_bad (_("invalid architecture -xarch=%s"), arg);
- return 0;
- }
+#ifdef OBJ_ELF
+ if (strncmp (arg, "v9", 2) != 0)
+ md_parse_option (OPTION_32, NULL);
+ else
+ md_parse_option (OPTION_64, NULL);
+#endif
/* Fall through. */
case 'A':
@@ -467,7 +469,10 @@ md_parse_option (c, arg)
if (sa == NULL
|| ! sa->user_option_p)
{
- as_bad (_("invalid architecture -A%s"), arg);
+ if (c == OPTION_XARCH)
+ as_bad (_("invalid architecture -xarch=%s"), arg);
+ else
+ as_bad (_("invalid architecture -A%s"), arg);
return 0;
}
@@ -605,6 +610,7 @@ md_show_usage (stream)
FILE *stream;
{
const struct sparc_arch *arch;
+ int column;
/* We don't get a chance to initialize anything before we're called,
so handle that now. */
@@ -612,15 +618,35 @@ md_show_usage (stream)
init_default_arch ();
fprintf (stream, _("SPARC options:\n"));
+ column = 0;
for (arch = &sparc_arch_table[0]; arch->name; arch++)
{
+ if (!arch->user_option_p)
+ continue;
if (arch != &sparc_arch_table[0])
fprintf (stream, " | ");
- if (arch->user_option_p)
- fprintf (stream, "-A%s", arch->name);
+ if (column + strlen(arch->name) > 70)
+ {
+ column = 0;
+ fputc ('\n', stream);
+ }
+ column += 5 + 2 + strlen(arch->name);
+ fprintf (stream, "-A%s", arch->name);
}
- fprintf (stream, _("\n-xarch=v8plus | -xarch=v8plusa\n"));
- fprintf (stream, _("\
+ for (arch = &sparc_arch_table[0]; arch->name; arch++)
+ {
+ if (!arch->user_option_p)
+ continue;
+ fprintf (stream, " | ");
+ if (column + strlen(arch->name) > 65)
+ {
+ column = 0;
+ fputc ('\n', stream);
+ }
+ column += 5 + 7 + strlen(arch->name);
+ fprintf (stream, "-xarch=%s", arch->name);
+ }
+ fprintf (stream, _("\n\
specify variant of SPARC architecture\n\
-bump warn when assembler switches architectures\n\
-sparc ignored\n\
@@ -2110,7 +2136,7 @@ sparc_ip (str, pinsn)
{ "l44", 3, BFD_RELOC_SPARC_L44, 1, 0 },
{ "uhi", 3, BFD_RELOC_SPARC_HH22, 1, 0 },
{ "ulo", 3, BFD_RELOC_SPARC_HM10, 1, 0 },
- { NULL }
+ { NULL, 0, 0, 0, 0 }
};
const struct ops *o;
@@ -3375,7 +3401,7 @@ tc_gen_reloc (section, fixp)
symbolS *
md_undefined_symbol (name)
- char *name;
+ char *name ATTRIBUTE_UNUSED;
{
return 0;
}
@@ -3384,7 +3410,7 @@ md_undefined_symbol (name)
valueT
md_section_align (segment, size)
- segT segment;
+ segT segment ATTRIBUTE_UNUSED;
valueT size;
{
#ifndef OBJ_ELF
@@ -3447,7 +3473,7 @@ static int max_alignment = 15;
static void
s_reserve (ignore)
- int ignore;
+ int ignore ATTRIBUTE_UNUSED;
{
char *name;
char *p;
@@ -3592,7 +3618,7 @@ s_reserve (ignore)
static void
s_common (ignore)
- int ignore;
+ int ignore ATTRIBUTE_UNUSED;
{
char *name;
char c;
@@ -3773,7 +3799,7 @@ s_common (ignore)
static void
s_empty (ignore)
- int ignore;
+ int ignore ATTRIBUTE_UNUSED;
{
/* The easy way to implement is to just forget about the last
instruction. */
@@ -3782,7 +3808,7 @@ s_empty (ignore)
static void
s_seg (ignore)
- int ignore;
+ int ignore ATTRIBUTE_UNUSED;
{
if (strncmp (input_line_pointer, "\"text\"", 6) == 0)
@@ -3825,7 +3851,7 @@ s_data1 ()
static void
s_proc (ignore)
- int ignore;
+ int ignore ATTRIBUTE_UNUSED;
{
while (!is_end_of_line[(unsigned char) *input_line_pointer])
{
@@ -3858,7 +3884,7 @@ s_uacons (bytes)
static void
s_ncons (bytes)
- int bytes;
+ int bytes ATTRIBUTE_UNUSED;
{
cons (sparc_arch_size == 32 ? 4 : 8);
}
@@ -3873,7 +3899,7 @@ s_ncons (bytes)
static void
s_register (ignore)
- int ignore;
+ int ignore ATTRIBUTE_UNUSED;
{
char c;
int reg;