diff options
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 24 | ||||
-rw-r--r-- | gas/configure.tgt | 1 | ||||
-rw-r--r-- | ld/ChangeLog | 4 | ||||
-rw-r--r-- | ld/configure.tgt | 2 | ||||
-rw-r--r-- | ld/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/i386.exp | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/iamcu-4.d | 16 |
8 files changed, 58 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 ;; diff --git a/ld/ChangeLog b/ld/ChangeLog index bbb819b..4cd77f7 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,9 @@ 2015-05-11 H.J. Lu <hongjiu.lu@intel.com> + * configure.tgt: Support i[3-7]86-*-elfiamcu target. + +2015-05-11 H.J. Lu <hongjiu.lu@intel.com> + * Makefile.am (ALL_EMULATION_SOURCES): Add eelf_iamcu.c. (eelf_iamcu.c): New. * configure.tgt (targ_extra_emuls): Add elf_iamcu if elf_i386 is diff --git a/ld/configure.tgt b/ld/configure.tgt index e1f5be7..e4eacd4 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -304,6 +304,8 @@ x86_64-*-netbsd*) targ_emul=elf_x86_64 sed -e 's/netbsd/netbsdelf/'`;; esac ;; i[3-7]86-*-netware) targ_emul=i386nw ;; +i[3-7]86-*-elfiamcu) targ_emul=elf_iamcu + targ_extra_emuls=elf_i386 ;; i[3-7]86-*-elf*) targ_emul=elf_i386 targ_extra_emuls=elf_iamcu ;; x86_64-*-elf*) targ_emul=elf_x86_64 diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 52f09fb..89f695c 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2015-05-11 H.J. Lu <hongjiu.lu@intel.com> + * ld-i386/i386.exp (iamcu_tests): Run iamcu-4. + * ld-i386/iamcu-4.d: New file. + +2015-05-11 H.J. Lu <hongjiu.lu@intel.com> + * ld-i386/abs-iamcu.d: New file. * ld-i386/dummy.s: Likewise. * ld-i386/foo.s: Likewise. diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index 7309910..2e59522 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -248,6 +248,7 @@ proc iamcu_tests {} { run_dump_test "iamcu-1" run_dump_test "iamcu-2" run_dump_test "iamcu-3" + run_dump_test "iamcu-4" } iamcu_tests diff --git a/ld/testsuite/ld-i386/iamcu-4.d b/ld/testsuite/ld-i386/iamcu-4.d new file mode 100644 index 0000000..b43d048 --- /dev/null +++ b/ld/testsuite/ld-i386/iamcu-4.d @@ -0,0 +1,16 @@ +#source: dummy.s +#ld: tmpdir/startiamcu.o tmpdir/fooiamcu.o +#readelf: -h +#target: i?86-*-elfiamcu + +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 \(current\) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC \(Executable file\) + Machine: Intel MCU + Version: 0x1 +#pass |