aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-05-11 12:01:57 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-05-11 12:06:33 -0700
commit5197d474361b4748e0339ae60e6dc9975f2313df (patch)
treea86f19e173d2f1b4d1af9d6d6aff8bd624a53352 /gas
parent7e0a81123db953de03f6482f7c10f306407d348e (diff)
downloadbinutils-5197d474361b4748e0339ae60e6dc9975f2313df.zip
binutils-5197d474361b4748e0339ae60e6dc9975f2313df.tar.gz
binutils-5197d474361b4748e0339ae60e6dc9975f2313df.tar.bz2
Default e_machine to EM_IAMCU for i?86-*-elfiamcu
This patch sets the default ELF output format of assembler and linker to EM_IAMCU when binutils is configured to i?86-*-elfiamcu target. gas/ * configure.tgt (arch): Set to iamcu for i386-*-elfiamcu target. * config/tc-i386.c (i386_mach): Support iamcu. (i386_target_format): Likewise. ld/ * configure.tgt: Support i[3-7]86-*-elfiamcu target. ld/testsuite/ * ld-i386/i386.exp (iamcu_tests): Run iamcu-4. * ld-i386/iamcu-4.d: New file.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-i386.c24
-rw-r--r--gas/configure.tgt1
3 files changed, 30 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index ce9c733..7010e64 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,11 @@
2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
+ * configure.tgt (arch): Set to iamcu for i386-*-elfiamcu target.
+ * config/tc-i386.c (i386_mach): Support iamcu.
+ (i386_target_format): Likewise.
+
+2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
+
* config/tc-i386.c (cpu_arch): Add iamcu.
(i386_align_code): Handle PROCESSOR_IAMCU.
(i386_arch): Likewise.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 8a6da64..db263ee 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -2468,7 +2468,8 @@ i386_mach (void)
else
return bfd_mach_x64_32;
}
- else if (!strcmp (default_arch, "i386"))
+ else if (!strcmp (default_arch, "i386")
+ || !strcmp (default_arch, "iamcu"))
{
if (cpu_arch_isa == PROCESSOR_IAMCU)
{
@@ -10071,6 +10072,27 @@ i386_target_format (void)
}
else if (!strcmp (default_arch, "i386"))
update_code_flag (CODE_32BIT, 1);
+ else if (!strcmp (default_arch, "iamcu"))
+ {
+ update_code_flag (CODE_32BIT, 1);
+ if (cpu_arch_isa == PROCESSOR_UNKNOWN)
+ {
+ static const i386_cpu_flags iamcu_flags = CPU_IAMCU_FLAGS;
+ cpu_arch_name = "iamcu";
+ cpu_sub_arch_name = NULL;
+ cpu_arch_flags = iamcu_flags;
+ cpu_arch_isa = PROCESSOR_IAMCU;
+ cpu_arch_isa_flags = iamcu_flags;
+ if (!cpu_arch_tune_set)
+ {
+ cpu_arch_tune = cpu_arch_isa;
+ cpu_arch_tune_flags = cpu_arch_isa_flags;
+ }
+ }
+ else
+ as_fatal (_("Intel MCU doesn't support `%s' architecture"),
+ cpu_arch_name);
+ }
else
as_fatal (_("unknown architecture"));
diff --git a/gas/configure.tgt b/gas/configure.tgt
index 09ee275..d14bcdf 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -215,6 +215,7 @@ case ${generic_target} in
i386-*-beospe*) fmt=coff em=pe ;;
i386-*-beos*) fmt=elf ;;
i386-*-coff) fmt=coff ;;
+ i386-*-elfiamcu) fmt=elf arch=iamcu ;;
i386-*-elf*) fmt=elf ;;
i386-*-kaos*) fmt=elf ;;
i386-*-bsd*) fmt=aout em=386bsd ;;