summaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorStephane Carrez <stcarrez@nerim.fr>2002-12-01 10:20:06 +0000
committerStephane Carrez <stcarrez@nerim.fr>2002-12-01 10:20:06 +0000
commit7896e751a04074e543387dc2ece970fa592be906 (patch)
treeac3cd8341e2edfe38339f5207cbcd5ac8b23961d /gas
parentc7f1d21ac394568a61ecd9cdb7b585245a85730f (diff)
downloadbinutils-redhat-7896e751a04074e543387dc2ece970fa592be906.tar.gz
* config/tc-m68hc11.c (elf_flags): Set default ABI to gcc default
(32-bit int, 64-bit double). (md_longopts): New options -mshort, -mlong, -mshort-double and -mlong-double to control the ABI. (md_show_usage): Update. (md_parse_option): Handle new options. * doc/as.texinfo (Overview): Document new options for HC11/HC12.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog10
-rw-r--r--gas/config/tc-m68hc11.c34
-rw-r--r--gas/doc/as.texinfo14
3 files changed, 57 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 34d697069a..f233231a72 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,13 @@
+2002-12-01 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/tc-m68hc11.c (elf_flags): Set default ABI to gcc default
+ (32-bit int, 64-bit double).
+ (md_longopts): New options -mshort, -mlong, -mshort-double and
+ -mlong-double to control the ABI.
+ (md_show_usage): Update.
+ (md_parse_option): Handle new options.
+ * doc/as.texinfo (Overview): Document new options for HC11/HC12.
+
2002-12-01 Nathan Sidwell <nathan@codesourcery.com>
* symbols.c (report_op_error): New function, broken out of ...
diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c
index 38d45fe999..34dbf6b41f 100644
--- a/gas/config/tc-m68hc11.c
+++ b/gas/config/tc-m68hc11.c
@@ -242,7 +242,7 @@ static int num_opcodes;
static struct m68hc11_opcode *m68hc11_sorted_opcodes;
/* ELF flags to set in the output file header. */
-static int elf_flags = 0;
+static int elf_flags = E_M68HC11_F64;
/* These are the machine dependent pseudo-ops. These are included so
the assembler can work on the output from the SUN C compiler, which
@@ -305,6 +305,18 @@ struct option md_longopts[] = {
#define OPTION_GENERATE_EXAMPLE (OPTION_MD_BASE + 5)
{"generate-example", no_argument, NULL, OPTION_GENERATE_EXAMPLE},
+#define OPTION_MSHORT (OPTION_MD_BASE + 6)
+ {"mshort", no_argument, NULL, OPTION_MSHORT},
+
+#define OPTION_MLONG (OPTION_MD_BASE + 7)
+ {"mlong", no_argument, NULL, OPTION_MLONG},
+
+#define OPTION_MSHORT_DOUBLE (OPTION_MD_BASE + 8)
+ {"mshort-double", no_argument, NULL, OPTION_MSHORT_DOUBLE},
+
+#define OPTION_MLONG_DOUBLE (OPTION_MD_BASE + 9)
+ {"mlong-double", no_argument, NULL, OPTION_MLONG_DOUBLE},
+
{NULL, no_argument, NULL, 0}
};
size_t md_longopts_size = sizeof (md_longopts);
@@ -356,6 +368,10 @@ md_show_usage (stream)
fprintf (stream, _("\
Motorola 68HC11/68HC12 options:\n\
-m68hc11 | -m68hc12 specify the processor [default %s]\n\
+ -mshort use 16-bit int ABI (default)\n\
+ -mlong use 32-bit int ABI\n\
+ -mshort-double use 32-bit double ABI\n\
+ -mlong-double use 64-bit double ABI (default)\n\
--force-long-branchs always turn relative branchs into absolute ones\n\
-S,--short-branchs do not turn relative branchs into absolute ones\n\
when the offset is out of range\n\
@@ -457,6 +473,22 @@ md_parse_option (c, arg)
flag_print_opcodes = 2;
break;
+ case OPTION_MSHORT:
+ elf_flags &= ~E_M68HC11_I32;
+ break;
+
+ case OPTION_MLONG:
+ elf_flags |= E_M68HC11_I32;
+ break;
+
+ case OPTION_MSHORT_DOUBLE:
+ elf_flags &= ~E_M68HC11_F64;
+ break;
+
+ case OPTION_MLONG_DOUBLE:
+ elf_flags |= E_M68HC11_F64;
+ break;
+
case 'm':
if (strcasecmp (arg, "68hc11") == 0)
current_architecture = cpu6811;
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo
index bcefd62657..b3987343d0 100644
--- a/gas/doc/as.texinfo
+++ b/gas/doc/as.texinfo
@@ -363,6 +363,8 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
@emph{Target M68HC11 options:}
[@b{-m68hc11}|@b{-m68hc12}]
+ [@b{-mshort}|@b{-mlong}]
+ [@b{-mshort-double}|@b{-mlong-double}]
[@b{--force-long-branchs}] [@b{--short-branchs}]
[@b{--strict-direct-mode}] [@b{--print-insn-syntax}]
[@b{--print-opcodes}] [@b{--generate-example}]
@@ -802,6 +804,18 @@ Motorola 68HC11 or 68HC12 series.
Specify what processor is the target. The default is
defined by the configuration option when building the assembler.
+@item -mshort
+Specify to use the 16-bit integer ABI.
+
+@item -mlong
+Specify to use the 32-bit integer ABI.
+
+@item -mshort-double
+Specify to use the 32-bit double ABI.
+
+@item -mlong-double
+Specify to use the 64-bit double ABI.
+
@item --force-long-branchs
Relative branches are turned into absolute ones. This concerns
conditional branches, unconditional branches and branches to a