* config/tc-m68hc11.c (elf_flags): Set default ABI to gcc default
authorStephane Carrez <stcarrez@nerim.fr>
Sun, 1 Dec 2002 10:20:06 +0000 (10:20 +0000)
committerStephane Carrez <stcarrez@nerim.fr>
Sun, 1 Dec 2002 10:20:06 +0000 (10:20 +0000)
(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.

gas/ChangeLog
gas/config/tc-m68hc11.c
gas/doc/as.texinfo

index 34d6970..f233231 100644 (file)
@@ -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 ...
index 38d45fe..34dbf6b 100644 (file)
@@ -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;
index bcefd62..b398734 100644 (file)
@@ -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