From dc12032bca08554cf0a72d224e44f755f7789ff3 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 16 Apr 2018 15:31:36 +0930 Subject: Remove m68k-aout and m68k-coff support include/ * aout/host.h: Remove m68k-aout and m68k-coff support. * aout/hp300hpux.h: Delete. * coff/apollo.h: Delete. * coff/aux-coff.h: Delete. * coff/m68k.h: Delete. bfd/ * Makefile.am: Remove m68k-aout and m68k-coff support. * aoutf1.h: Likewise. * aoutx.h: Likewise. * archive.c: Likewise. * bfd-in.h: Likewise. * bfd.c: Likewise. * coffcode.h: Likewise. * coffswap.h: Likewise. * config.bfd: Likewise. * configure.ac: Likewise. * configure.host: Likewise. * doc/bfd.texinfo: Likewise. * doc/bfdint.texi: Likewise. * freebsd.h: Likewise. * gen-aout.c: Likewise. * hpux-core.c: Likewise. * libaout.h: Likewise. * libbfd-in.h: Likewise. * pdp11.c: Likewise. * peicode.h: Likewise. * riscix.c: Likewise. * targets.c: Likewise. * aout0.c: Delete. * coff-apollo.c: Delete. * coff-aux.c: Delete. * coff-m68k.c: Delete. * coff-svm68k.c: Delete. * coff-u68k.c: Delete. * hosts/delta68.h: Delete. * hosts/hp300bsd.h: Delete. * hosts/m68kaux.h: Delete. * hosts/news.h: Delete. * hp300bsd.c: Delete. * hp300hpux.c: Delete. * liboasys.h: Delete. * m68k4knetbsd.c: Delete. * m68klinux.c: Delete. * m68knetbsd.c: Delete. * oasys.c: Delete. * versados.c: Delete. * Makefile.in: Regenerate. * bfd-in2.h: Regenerate. * configure: Regenerate. * libbfd.h: Regenerate. * po/SRC-POTFILES.in: Regenerate. binutils/ * testsuite/binutils-all/copy-2.d: Remove m68k-aout and m68k-coff support. * testsuite/binutils-all/copy-3.d: Likewise. * testsuite/binutils-all/objcopy.exp: Likewise. * testsuite/lib/binutils-common.exp: Likewise. gas/ * Makefile.am: Remove m68k-aout and m68k-coff support. * config/tc-m68k.c: Likewise. * config/tc-m68k.h: Likewise. * configure.ac: Likewise. * configure.tgt: Likewise. * testsuite/gas/all/weakref1u.d: Likewise. * testsuite/gas/m68k/all.exp: Likewise. * testsuite/gas/m68k/br-isaa.d: Likewise. * testsuite/gas/m68k/br-isab.d: Likewise. * testsuite/gas/m68k/br-isac.d: Likewise. * config/te-psos.h: Delete. * config/te-sun3.h: Delete. * testsuite/gas/m68k-coff/gas.exp: Delete. * testsuite/gas/m68k-coff/p2389.s: Delete. * testsuite/gas/m68k-coff/p2389a.s: Delete. * testsuite/gas/m68k-coff/p2430.s: Delete. * testsuite/gas/m68k-coff/p2430a.s: Delete. * testsuite/gas/m68k-coff/t1.s: Delete. * testsuite/gas/m68k/p3041.d: Delete. * testsuite/gas/m68k/p3041.s: Delete. * testsuite/gas/m68k/p3041data.d: Delete. * testsuite/gas/m68k/p3041data.s: Delete. * testsuite/gas/m68k/p3041pcrel.d: Delete. * testsuite/gas/m68k/p3041pcrel.s: Delete. * testsuite/gas/m68k/t2.d: Delete. * Makefile.in: Regenerate. * config.in: Regenerate. * configure: Regenerate. * po/POTFILES.in: Regenerate. ld/ * Makefile.am: Remove m68k-aout and m68k-coff support. * configure.tgt: Likewise. * emultempl/m68kelf.em: Likewise. * ld.texinfo: Likewise. * mri.c: Likewise. * emulparams/delta68.sh: Delete. * emulparams/hp300bsd.sh: Delete. * emulparams/hp3hpux.sh: Delete. * emulparams/m68k4knbsd.sh: Delete. * emulparams/m68kaout.sh: Delete. * emulparams/m68kaux.sh: Delete. * emulparams/m68kcoff.sh: Delete. * emulparams/m68klinux.sh: Delete. * emulparams/m68knbsd.sh: Delete. * emulparams/m68kpsos.sh: Delete. * emulparams/sun3.sh: Delete. * emultempl/m68kcoff.em: Delete. * scripttempl/delta68.sc: Delete. * scripttempl/m68kaux.sc: Delete. * scripttempl/m68kcoff.sc: Delete. * scripttempl/psos.sc: Delete. * testsuite/ld-versados/t1-1.ro: Delete. * testsuite/ld-versados/t1-2.ro: Delete. * testsuite/ld-versados/t1.ld: Delete. * testsuite/ld-versados/t1.ook: Delete. * testsuite/ld-versados/t2-1.ro: Delete. * testsuite/ld-versados/t2-2.ro: Delete. * testsuite/ld-versados/t2-3.ro: Delete. * testsuite/ld-versados/t2.ld: Delete. * testsuite/ld-versados/t2.ook: Delete. * testsuite/ld-versados/versados.exp: Delete. * Makefile.in: Regenerate. * po/BLD-POTFILES.in: Regenerate. --- gas/ChangeLog | 32 ++++++++ gas/Makefile.am | 2 - gas/Makefile.in | 2 - gas/config.in | 3 - gas/config/tc-m68k.c | 151 +---------------------------------- gas/config/tc-m68k.h | 55 +------------ gas/config/te-psos.h | 35 -------- gas/config/te-sun3.h | 48 ----------- gas/configure | 3 - gas/configure.ac | 1 - gas/configure.tgt | 4 - gas/po/POTFILES.in | 2 - gas/testsuite/gas/all/weakref1u.d | 2 +- gas/testsuite/gas/m68k-coff/gas.exp | 31 ------- gas/testsuite/gas/m68k-coff/p2389.s | 19 ----- gas/testsuite/gas/m68k-coff/p2389a.s | 3 - gas/testsuite/gas/m68k-coff/p2430.s | 6 -- gas/testsuite/gas/m68k-coff/p2430a.s | 4 - gas/testsuite/gas/m68k-coff/t1.s | 36 --------- gas/testsuite/gas/m68k/all.exp | 16 +--- gas/testsuite/gas/m68k/br-isaa.d | 1 - gas/testsuite/gas/m68k/br-isab.d | 1 - gas/testsuite/gas/m68k/br-isac.d | 1 - gas/testsuite/gas/m68k/p3041.d | 36 --------- gas/testsuite/gas/m68k/p3041.s | 27 ------- gas/testsuite/gas/m68k/p3041data.d | 28 ------- gas/testsuite/gas/m68k/p3041data.s | 27 ------- gas/testsuite/gas/m68k/p3041pcrel.d | 38 --------- gas/testsuite/gas/m68k/p3041pcrel.s | 28 ------- gas/testsuite/gas/m68k/t2.d | 8 -- 30 files changed, 38 insertions(+), 612 deletions(-) delete mode 100644 gas/config/te-psos.h delete mode 100644 gas/config/te-sun3.h delete mode 100644 gas/testsuite/gas/m68k-coff/gas.exp delete mode 100644 gas/testsuite/gas/m68k-coff/p2389.s delete mode 100644 gas/testsuite/gas/m68k-coff/p2389a.s delete mode 100644 gas/testsuite/gas/m68k-coff/p2430.s delete mode 100644 gas/testsuite/gas/m68k-coff/p2430a.s delete mode 100644 gas/testsuite/gas/m68k-coff/t1.s delete mode 100644 gas/testsuite/gas/m68k/p3041.d delete mode 100644 gas/testsuite/gas/m68k/p3041.s delete mode 100644 gas/testsuite/gas/m68k/p3041data.d delete mode 100644 gas/testsuite/gas/m68k/p3041data.s delete mode 100644 gas/testsuite/gas/m68k/p3041pcrel.d delete mode 100644 gas/testsuite/gas/m68k/p3041pcrel.s delete mode 100644 gas/testsuite/gas/m68k/t2.d (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index 2816772..20e9114 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,37 @@ 2018-04-16 Alan Modra + * Makefile.am: Remove m68k-aout and m68k-coff support. + * config/tc-m68k.c: Likewise. + * config/tc-m68k.h: Likewise. + * configure.ac: Likewise. + * configure.tgt: Likewise. + * testsuite/gas/all/weakref1u.d: Likewise. + * testsuite/gas/m68k/all.exp: Likewise. + * testsuite/gas/m68k/br-isaa.d: Likewise. + * testsuite/gas/m68k/br-isab.d: Likewise. + * testsuite/gas/m68k/br-isac.d: Likewise. + * config/te-psos.h: Delete. + * config/te-sun3.h: Delete. + * testsuite/gas/m68k-coff/gas.exp: Delete. + * testsuite/gas/m68k-coff/p2389.s: Delete. + * testsuite/gas/m68k-coff/p2389a.s: Delete. + * testsuite/gas/m68k-coff/p2430.s: Delete. + * testsuite/gas/m68k-coff/p2430a.s: Delete. + * testsuite/gas/m68k-coff/t1.s: Delete. + * testsuite/gas/m68k/p3041.d: Delete. + * testsuite/gas/m68k/p3041.s: Delete. + * testsuite/gas/m68k/p3041data.d: Delete. + * testsuite/gas/m68k/p3041data.s: Delete. + * testsuite/gas/m68k/p3041pcrel.d: Delete. + * testsuite/gas/m68k/p3041pcrel.s: Delete. + * testsuite/gas/m68k/t2.d: Delete. + * Makefile.in: Regenerate. + * config.in: Regenerate. + * configure: Regenerate. + * po/POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + * Makefile.am: Remove sh5 and sh64 support. * config/tc-sh.c: Likewise. * configure.tgt: Likewise. diff --git a/gas/Makefile.am b/gas/Makefile.am index 5411cef..a3354bd 100644 --- a/gas/Makefile.am +++ b/gas/Makefile.am @@ -325,11 +325,9 @@ TARG_ENV_HFILES = \ config/te-nbsd532.h \ config/te-pc532mach.h \ config/te-pe.h \ - config/te-psos.h \ config/te-riscix.h \ config/te-solaris.h \ config/te-sparcaout.h \ - config/te-sun3.h \ config/te-svr4.h \ config/te-symbian.h \ config/te-tmips.h \ diff --git a/gas/Makefile.in b/gas/Makefile.in index 4460a39..bf176cc 100644 --- a/gas/Makefile.in +++ b/gas/Makefile.in @@ -621,11 +621,9 @@ TARG_ENV_HFILES = \ config/te-nbsd532.h \ config/te-pc532mach.h \ config/te-pe.h \ - config/te-psos.h \ config/te-riscix.h \ config/te-solaris.h \ config/te-sparcaout.h \ - config/te-sun3.h \ config/te-svr4.h \ config/te-symbian.h \ config/te-tmips.h \ diff --git a/gas/config.in b/gas/config.in index 779208b..fff48d9 100644 --- a/gas/config.in +++ b/gas/config.in @@ -181,9 +181,6 @@ */ #undef LT_OBJDIR -/* Using m68k COFF? */ -#undef M68KCOFF - /* Default CPU for MIPS targets. */ #undef MIPS_CPU_STRING_DEFAULT diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c index d73d154..223d8ae 100644 --- a/gas/config/tc-m68k.c +++ b/gas/config/tc-m68k.c @@ -27,18 +27,9 @@ #include "opcode/m68k.h" #include "m68k-parse.h" - -#if defined (OBJ_ELF) #include "elf/m68k.h" -#endif - -#ifdef M68KCOFF -#include "obj-coff.h" -#endif -#ifdef OBJ_ELF static void m68k_elf_cons (int); -#endif /* This string holds the chars that always start a comment. If the pre-processor is disabled, these aren't very useful. The macro @@ -384,11 +375,9 @@ struct m68k_it significance of some values (in the branch instruction, for example). */ int pcrel_fix; -#ifdef OBJ_ELF /* Whether this expression needs special pic relocation, and if so, which. */ enum pic_relocation pic_reloc; -#endif } reloc[5]; /* Five is enough??? */ }; @@ -449,9 +438,7 @@ add_fix (int width, struct m68k_exp *exp, int pc_rel, int pc_fix) the_ins.reloc[the_ins.nrel].exp = exp->exp; the_ins.reloc[the_ins.nrel].wid = width; the_ins.reloc[the_ins.nrel].pcrel_fix = pc_fix; -#ifdef OBJ_ELF the_ins.reloc[the_ins.nrel].pic_reloc = exp->pic_reloc; -#endif the_ins.reloc[the_ins.nrel++].pcrel = pc_rel; } @@ -894,13 +881,9 @@ const pseudo_typeS md_pseudo_table[] = {"even", s_even, 0}, {"skip", s_space, 0}, {"proc", s_proc, 0}, -#if defined (TE_SUN3) || defined (OBJ_ELF) {"align", s_align_bytes, 0}, -#endif -#ifdef OBJ_ELF {"swbeg", s_ignore, 0}, {"long", m68k_elf_cons, 4}, -#endif {"extend", float_cons, 'x'}, {"ldouble", float_cons, 'x'}, @@ -967,15 +950,7 @@ const pseudo_typeS mote_pseudo_table[] = {"dsb", s_space, 1}, {"xdef", s_globl, 0}, -#ifdef OBJ_ELF {"align", s_align_bytes, 0}, -#else - {"align", s_align_ptwo, 0}, -#endif -#ifdef M68KCOFF - {"sect", obj_coff_section, 0}, - {"section", obj_coff_section, 0}, -#endif {0, 0, 0} }; @@ -1000,7 +975,6 @@ static char alt_notend_table[256]; || (*s == ':' \ && alt_notend_table[(unsigned char) s[1]]))) -#ifdef OBJ_ELF /* Return zero if the reference to SYMBOL from within the same segment may be relaxed. */ @@ -1226,16 +1200,6 @@ tc_m68k_fix_adjustable (fixS *fixP) } } -#else /* !OBJ_ELF */ - -#define get_reloc_code(SIZE,PCREL,OTHER) NO_RELOC - -/* PR gas/3041 Weak symbols are not relaxable - because they must be treated as extern. */ -#define relaxable_symbol(symbol) (!(S_IS_WEAK (symbol))) - -#endif /* OBJ_ELF */ - arelent * tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) { @@ -1338,39 +1302,6 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; -#ifndef OBJ_ELF - if (OUTPUT_FLAVOR == bfd_target_aout_flavour - && fixp->fx_addsy - && S_IS_WEAK (fixp->fx_addsy) - && ! bfd_is_und_section (S_GET_SEGMENT (fixp->fx_addsy))) - { - /* PR gas/3041 References to weak symbols must be treated as extern - in order to be overridable by the linker, even if they are defined - in the same object file. So the original addend must be written - "as is" into the output section without further processing. - The addend value must be hacked here in order to force - bfd_install_relocation() to write the original value into the - output section. - 1) MD_APPLY_SYM_VALUE() is set to 1 for m68k/a.out, so the symbol - value has already been added to the addend in fixup_segment(). We - have to remove it. - 2) bfd_install_relocation() will incorrectly treat this symbol as - resolved, so it will write the symbol value plus its addend and - section VMA. As a workaround we can tweak the addend value here in - order to get the original value in the section after the call to - bfd_install_relocation(). */ - reloc->addend = fixp->fx_addnumber - /* Fix because of MD_APPLY_SYM_VALUE() */ - - S_GET_VALUE (fixp->fx_addsy) - /* Fix for bfd_install_relocation() */ - - (S_GET_VALUE (fixp->fx_addsy) - + S_GET_SEGMENT (fixp->fx_addsy)->vma); - } - else if (fixp->fx_pcrel) - reloc->addend = fixp->fx_addnumber; - else - reloc->addend = 0; -#else if (!fixp->fx_pcrel) reloc->addend = fixp->fx_addnumber; else @@ -1378,7 +1309,6 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) + fixp->fx_pcrel_adjust + fixp->fx_addnumber + md_pcrel_from (fixp)); -#endif reloc->howto = bfd_reloc_type_lookup (stdoutput, code); gas_assert (reloc->howto != 0); @@ -2670,12 +2600,9 @@ m68k_ip (char *instring) if (opP->reg == PC) { if (opP->disp.size == SIZE_LONG -#ifdef OBJ_ELF /* If the displacement needs pic relocation it cannot be relaxed. */ - || opP->disp.pic_reloc != pic_none -#endif - ) + || opP->disp.pic_reloc != pic_none) { addword (0x0170); add_fix ('l', &opP->disp, 1, 2); @@ -2840,12 +2767,9 @@ m68k_ip (char *instring) && opP->reg == PC && isvar (&opP->disp) && subs (&opP->disp) == NULL -#ifdef OBJ_ELF /* If the displacement needs pic relocation it cannot be relaxed. */ - && opP->disp.pic_reloc == pic_none -#endif - ) + && opP->disp.pic_reloc == pic_none) { /* The code in md_convert_frag_1 needs to be able to adjust nextword. Call frag_grow @@ -2989,11 +2913,9 @@ m68k_ip (char *instring) if (isvar (&opP->disp) && !subs (&opP->disp) && adds (&opP->disp) -#ifdef OBJ_ELF /* If the displacement needs pic relocation it cannot be relaxed. */ && opP->disp.pic_reloc == pic_none -#endif && !flag_long_jumps && !strchr ("~%&$?", s[0])) { @@ -3160,12 +3082,9 @@ m68k_ip (char *instring) var_branch: if (subs (&opP->disp) /* We can't relax it. */ -#ifdef OBJ_ELF /* If the displacement needs pic relocation it cannot be relaxed. */ - || opP->disp.pic_reloc != pic_none -#endif - || 0) + || opP->disp.pic_reloc != pic_none) { if (!have_disp) as_warn (_("Can't use long branches on this architecture")); @@ -4394,10 +4313,8 @@ md_assemble (char *str) current_label = NULL; } -#ifdef OBJ_ELF /* Tie dwarf2 debug info to the address at the start of the insn. */ dwarf2_emit_insn (0); -#endif if (the_ins.nfrag == 0) { @@ -4772,11 +4689,9 @@ md_begin (void) init_regtable (); -#ifdef OBJ_ELF record_alignment (text_section, 2); record_alignment (data_section, 2); record_alignment (bss_section, 2); -#endif } @@ -4795,9 +4710,7 @@ m68k_frob_label (symbolS *sym) labels = n; current_label = n; -#ifdef OBJ_ELF dwarf2_emit_label (sym); -#endif } /* This is called when a value that is not an instruction is emitted. */ @@ -4907,7 +4820,6 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0) fixP->fx_done = 1; -#ifdef OBJ_ELF if (fixP->fx_addsy) { memset (buf, 0, fixP->fx_size); @@ -4944,15 +4856,6 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) return; } -#elif defined(OBJ_AOUT) - /* PR gas/3041 Do not fix frags referencing a weak symbol. */ - if (fixP->fx_addsy && S_IS_WEAK (fixP->fx_addsy)) - { - memset (buf, 0, fixP->fx_size); - fixP->fx_addnumber = val; /* Remember value for emit_reloc. */ - return; - } -#endif if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) @@ -5405,36 +5308,6 @@ md_estimate_size_before_relax (fragS *fragP, segT segment) return md_relax_table[fragP->fr_subtype].rlx_length; } -#if defined(OBJ_AOUT) -/* the bit-field entries in the relocation_info struct plays hell - with the byte-order problems of cross-assembly. So as a hack, - I added this mach. dependent ri twiddler. Ugly, but it gets - you there. -KWK */ -/* on m68k: first 4 bytes are normal unsigned long, next three bytes - are symbolnum, most sig. byte first. Last byte is broken up with - bit 7 as pcrel, bits 6 & 5 as length, bit 4 as pcrel, and the lower - nibble as nuthin. (on Sun 3 at least) */ -/* Translate the internal relocation information into target-specific - format. */ -#ifdef comment -void -md_ri_to_chars (char *the_bytes, struct reloc_info_generic *ri) -{ - /* This is easy. */ - md_number_to_chars (the_bytes, ri->r_address, 4); - /* Now the fun stuff. */ - the_bytes[4] = (ri->r_symbolnum >> 16) & 0x0ff; - the_bytes[5] = (ri->r_symbolnum >> 8) & 0x0ff; - the_bytes[6] = ri->r_symbolnum & 0x0ff; - the_bytes[7] = (((ri->r_pcrel << 7) & 0x80) - | ((ri->r_length << 5) & 0x60) - | ((ri->r_extern << 4) & 0x10)); -} - -#endif - -#endif /* OBJ_AOUT */ - #ifndef WORKING_DOT_WORD int md_short_jump_size = 4; int md_long_jump_size = 6; @@ -7509,11 +7382,7 @@ m68k_set_extension (char const *name, int allow_m, int silent) Invocation line includes a switch not recognized by the base assembler. */ -#ifdef OBJ_ELF const char *md_shortopts = "lSA:m:kQ:V"; -#else -const char *md_shortopts = "lSA:m:k"; -#endif struct option md_longopts[] = { #define OPTION_PIC (OPTION_MD_BASE) @@ -7877,18 +7746,6 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED) valueT md_section_align (segT segment ATTRIBUTE_UNUSED, valueT size) { -#ifdef OBJ_AOUT - /* For a.out, force the section size to be aligned. If we don't do - this, BFD will align it for us, but it will not write out the - final bytes of the section. This may be a bug in BFD, but it is - easier to fix it here since that is how the other a.out targets - work. */ - int align; - - align = bfd_get_section_alignment (stdoutput, segment); - size = ((size + (1 << align) - 1) & (-((valueT) 1 << align))); -#endif - return size; } @@ -7907,7 +7764,6 @@ md_pcrel_from (fixS *fixP) return fixP->fx_where + fixP->fx_frag->fr_address - adjust; } -#ifdef OBJ_ELF void m68k_elf_final_processing (void) { @@ -8095,7 +7951,6 @@ m68k_elf_cons (int nbytes /* 4=.long */) input_line_pointer--; demand_empty_rest_of_line (); } -#endif int tc_m68k_regname_to_dw2regnum (const char *regname) diff --git a/gas/config/tc-m68k.h b/gas/config/tc-m68k.h index 42f6984..61ec7af 100644 --- a/gas/config/tc-m68k.h +++ b/gas/config/tc-m68k.h @@ -24,41 +24,7 @@ struct fix; #define TARGET_BYTES_BIG_ENDIAN 1 -#ifdef OBJ_AOUT -#ifdef TE_SUN3 -#define TARGET_FORMAT "a.out-sunos-big" -#endif -#ifdef TE_NetBSD -#define TARGET_FORMAT "a.out-m68k-netbsd" -#endif -#ifdef TE_LINUX -#define TARGET_FORMAT "a.out-m68k-linux" -#endif -#ifndef TARGET_FORMAT -#define TARGET_FORMAT "a.out-zero-big" -#endif -#endif - -#ifdef OBJ_ELF #define TARGET_FORMAT "elf32-m68k" -#endif - -#ifdef TE_APOLLO -#define COFF_MAGIC APOLLOM68KMAGIC -#define COFF_AOUTHDR_MAGIC APOLLO_COFF_VERSION_NUMBER -#undef OBJ_COFF_OMIT_OPTIONAL_HEADER -#endif - -#ifdef TE_AUX -#define TARGET_FORMAT "coff-m68k-aux" -#endif -#ifdef TE_DELTA -#define TARGET_FORMAT "coff-m68k-sysv" -#endif - -#ifndef COFF_MAGIC -#define COFF_MAGIC MC68MAGIC -#endif #define TARGET_ARCH bfd_arch_m68k #define tc_comment_chars m68k_comment_chars @@ -74,23 +40,8 @@ extern const char *m68k_comment_chars; #define REGISTER_PREFIX '%' #endif -#if !defined (REGISTER_PREFIX_OPTIONAL) -#if defined (M68KCOFF) || defined (OBJ_ELF) +#ifndef REGISTER_PREFIX_OPTIONAL #define REGISTER_PREFIX_OPTIONAL 0 -#else /* ! (COFF || ELF) */ -#define REGISTER_PREFIX_OPTIONAL 1 -#endif /* ! (COFF || ELF) */ -#endif /* not def REGISTER_PREFIX and not def OPTIONAL_REGISTER_PREFIX */ - -#ifdef TE_DELTA -/* On the Delta, `%' can occur within a label name, but not as the - initial character. */ -#define LEX_PCT LEX_NAME -/* On the Delta, `~' can start a label name, but is converted to '.'. */ -#define LEX_TILDE LEX_BEGIN_NAME -#define tc_canonicalize_symbol_name(s) ((*(s) == '~' ? *(s) = '.' : '.'), s) -/* On the Delta, dots are not required before pseudo-ops. */ -#define NO_PSEUDO_DOT 1 #endif extern void m68k_mri_mode_change (int); @@ -124,7 +75,6 @@ while (0) #define RELAX_RELOC_PC16 BFD_RELOC_16_PCREL #define RELAX_RELOC_PC32 BFD_RELOC_32_PCREL -#ifdef OBJ_ELF #define tc_fix_adjustable(X) tc_m68k_fix_adjustable(X) extern int tc_m68k_fix_adjustable (struct fix *); @@ -139,7 +89,6 @@ extern int tc_m68k_fix_adjustable (struct fix *); #define elf_tc_final_processing m68k_elf_final_processing extern void m68k_elf_final_processing (void); -#endif #define DIFF_EXPR_OK @@ -148,8 +97,6 @@ extern int m68k_parse_long_option (char *); #define md_operand(x) -#define TARGET_ARCH bfd_arch_m68k - extern struct relax_type md_relax_table[]; #define TC_GENERIC_RELAX_TABLE md_relax_table diff --git a/gas/config/te-psos.h b/gas/config/te-psos.h deleted file mode 100644 index 9b7feba..0000000 --- a/gas/config/te-psos.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. - - This file is part of GAS, the GNU Assembler. - - GAS is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 3, - or (at your option) any later version. - - GAS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GAS; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -/* This file is te-psos.h for embedded systems running pSOS. - Contributed by Martin Anantharaman (martin@mail.imech.uni-duisburg.de). */ - -#define TE_PSOS - -/* Added these, because if we don't know what we're targeting we may - need an assembler version of libgcc, and that will use local - labels. */ -#define LOCAL_LABELS_DOLLAR 1 -#define LOCAL_LABELS_FB 1 - -/* This makes GAS more versatile and blocks some ELF'isms in - tc-m68k.h. */ -#define REGISTER_PREFIX_OPTIONAL 1 - -#include "obj-format.h" diff --git a/gas/config/te-sun3.h b/gas/config/te-sun3.h deleted file mode 100644 index 19f35da..0000000 --- a/gas/config/te-sun3.h +++ /dev/null @@ -1,48 +0,0 @@ -/* te-sun3.h -- Sun-3 target environment declarations. - Copyright (C) 1987-2018 Free Software Foundation, Inc. - - This file is part of GAS, the GNU Assembler. - - GAS is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GAS is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GAS; see the file COPYING. If not, write to - the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -/* This header file contains the #defines specific - to SUN computer SUN 3 series computers. (The only kind - we have around here, unfortunately.) - - Rumor has it that this file will work on the Sun-2 if the assembler - is called with -m68010 This is not tested. */ - -#define TE_SUN3 1 - -#define LOCAL_LABELS_DOLLAR 1 -#define LOCAL_LABELS_FB 1 - -/* Could also be : - #define S_LOCAL_NAME(s) (S_GET_NAME(s)[0] == '.' && - S_GET_NAME(s)[1] == 'L' || - S_GET_NAME(s)[1] == '.') - */ - -#include "obj-format.h" - -/* - * Local Variables: - * comment-column: 0 - * fill-column: 131 - * End: - */ - -/* end of te-sun3.h */ diff --git a/gas/configure b/gas/configure index 53fa7a6..cd48cee 100755 --- a/gas/configure +++ b/gas/configure @@ -12763,9 +12763,6 @@ case ${obj_format} in i386) $as_echo "#define I386COFF 1" >>confdefs.h ;; - m68k) -$as_echo "#define M68KCOFF 1" >>confdefs.h - ;; x86_64) $as_echo "#define I386COFF 1" >>confdefs.h ;; diff --git a/gas/configure.ac b/gas/configure.ac index a3f3bf1..1e9bc35 100644 --- a/gas/configure.ac +++ b/gas/configure.ac @@ -684,7 +684,6 @@ case ${obj_format} in coff) case ${target_cpu_type} in i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;; - m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;; x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;; esac ;; diff --git a/gas/configure.tgt b/gas/configure.tgt index 2992825..c0412fa 100644 --- a/gas/configure.tgt +++ b/gas/configure.tgt @@ -309,16 +309,12 @@ case ${generic_target} in m68hc11-*-* | m6811-*-*) fmt=elf ;; m68hc12-*-* | m6812-*-*) fmt=elf ;; - m68k-*-aout) fmt=aout bfd_gas=yes ;; m68k-*-elf*) fmt=elf ;; m68k-*-sysv4*) fmt=elf em=svr4 ;; m68k-*-linux-*) fmt=elf em=linux ;; m68k-*-uclinux*) fmt=elf em=uclinux ;; m68k-*-gnu*) fmt=elf ;; m68k-*-netbsdelf*) fmt=elf em=nbsd ;; - m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;; - m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;; - m68k-*-psos*) fmt=elf em=psos;; mep-*-elf) fmt=elf ;; diff --git a/gas/po/POTFILES.in b/gas/po/POTFILES.in index 2290383..5ee1ff7 100644 --- a/gas/po/POTFILES.in +++ b/gas/po/POTFILES.in @@ -200,11 +200,9 @@ config/te-nbsd.h config/te-nbsd532.h config/te-pc532mach.h config/te-pe.h -config/te-psos.h config/te-riscix.h config/te-solaris.h config/te-sparcaout.h -config/te-sun3.h config/te-svr4.h config/te-symbian.h config/te-tmips.h diff --git a/gas/testsuite/gas/all/weakref1u.d b/gas/testsuite/gas/all/weakref1u.d index 179567f..e8a38bd 100644 --- a/gas/testsuite/gas/all/weakref1u.d +++ b/gas/testsuite/gas/all/weakref1u.d @@ -3,7 +3,7 @@ #source: weakref1.s # aout turns undefined into *ABS* symbols. # see weakref1.d for comments on the other not-targets -#not-target: *-*-*aout m68k-*-netbsd m68k-*-openbsd* ns32k-*-netbsd alpha*-*-osf* *-*-ecoff +#not-target: *-*-*aout ns32k-*-netbsd alpha*-*-osf* *-*-ecoff # the rest of this file is generated with the following script: # # script begin diff --git a/gas/testsuite/gas/m68k-coff/gas.exp b/gas/testsuite/gas/m68k-coff/gas.exp deleted file mode 100644 index 5ba48e0..0000000 --- a/gas/testsuite/gas/m68k-coff/gas.exp +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. - -# -# Some m68k-coff tests -# -if [istarget m68*-*-coff] then { - gas_test "p2430.s" "" $stdoptlist "local branch not in text section" - - gas_test "p2430a.s" "" $stdoptlist "local branch not in text section" - - gas_test "t1.s" "" $stdoptlist "multiple .file directives" - - gas_test "p2389.s" "" $stdoptlist "bss fill" - - setup_xfail m68*-*-coff - gas_test_error "p2389a.s" "" "detect bss fill with non-zero data" -} diff --git a/gas/testsuite/gas/m68k-coff/p2389.s b/gas/testsuite/gas/m68k-coff/p2389.s deleted file mode 100644 index 3fa93e9..0000000 --- a/gas/testsuite/gas/m68k-coff/p2389.s +++ /dev/null @@ -1,19 +0,0 @@ -# I reached a point where the file looks -# clean and complies with gas syntax, but it core dumps gas. Here's a -# little gdb info: -# -# Program terminated with signal 11, Segmentation fault. -# #0 0x6323c in memcpy () -# (gdb) bt -# #0 0x6323c in memcpy () -# #1 0xf2b0 in fill_section (abfd=0xeaee8, filehdr=0x8a7f4, -# file_cursor=0xf7fff654) at obj-format.c:534 -# #2 0x112a8 in write_object_file () at obj-format.c:1786 -# #3 0x13ef8 in main (argc=5, argv=0xf7fff7bc) at ../../p3/gas/as.c:310 -# (gdb) -# -# gas did manage to create the .o file at this point. - - .bss - -_ASIC_INT_TBL: .space 32,0 | keep interrupt routines here diff --git a/gas/testsuite/gas/m68k-coff/p2389a.s b/gas/testsuite/gas/m68k-coff/p2389a.s deleted file mode 100644 index 76b2765..0000000 --- a/gas/testsuite/gas/m68k-coff/p2389a.s +++ /dev/null @@ -1,3 +0,0 @@ - .bss - -_ASIC_INT_TBL: .space 32,1 | keep interrupt routines here diff --git a/gas/testsuite/gas/m68k-coff/p2430.s b/gas/testsuite/gas/m68k-coff/p2430.s deleted file mode 100644 index 49723d9..0000000 --- a/gas/testsuite/gas/m68k-coff/p2430.s +++ /dev/null @@ -1,6 +0,0 @@ -# This differs from p2430a.s (the customer's actual source file) only -# in whitespace and comments. Strangely, this file gave no problems... - - .sect foo -tag: - bra tag diff --git a/gas/testsuite/gas/m68k-coff/p2430a.s b/gas/testsuite/gas/m68k-coff/p2430a.s deleted file mode 100644 index 601fb11..0000000 --- a/gas/testsuite/gas/m68k-coff/p2430a.s +++ /dev/null @@ -1,4 +0,0 @@ - .sect foo - -tag: - bra tag diff --git a/gas/testsuite/gas/m68k-coff/t1.s b/gas/testsuite/gas/m68k-coff/t1.s deleted file mode 100644 index cc015f2..0000000 --- a/gas/testsuite/gas/m68k-coff/t1.s +++ /dev/null @@ -1,36 +0,0 @@ -# 1 "libgcc1.S" -# 42 "libxyz1.S" -# 259 "libgcc1.S" - .text - .proc -|#PROC# 04 - .globl __mulsi3 - __mulsi3 : -|#PROLOGUE# 0 - link %a6 ,#0 - addl #-LF14, %sp - moveml #LS14, %sp @ -|#PROLOGUE# 1 - movew %a6 @(0x8), %d0 - muluw %a6 @(0xe), %d0 - movew %a6 @(0xa), %d1 - muluw %a6 @(0xc), %d1 - addw %d1 , %d0 - lsll #8, %d0 - lsll #8, %d0 - movew %a6 @(0xa), %d1 - muluw %a6 @(0xe), %d1 - addl %d1 , %d0 - jra LE14 -LE14: -|#PROLOGUE# 2 - moveml %sp @, #LS14 - unlk %a6 -|#PROLOGUE# 3 - rts - LF14 = 4 - LS14 = 0x0002 - LFF14 = 0 -# 354 "libgcc1.S" - LSS14 = 0x0 - LV14 = 0 diff --git a/gas/testsuite/gas/m68k/all.exp b/gas/testsuite/gas/m68k/all.exp index 98128f3..0bc6ec2 100644 --- a/gas/testsuite/gas/m68k/all.exp +++ b/gas/testsuite/gas/m68k/all.exp @@ -31,9 +31,6 @@ if [istarget "m6812-*-*"] then { } if { [istarget m68*-*-*] || [istarget fido*-*-*] } then { gas_test "t2.s" "" "" "cross-section branch" - if [istarget m68*-motorola-sysv] then { - run_dump_test t2 - } gas_test "pic1.s" "" "" "PIC generation" @@ -41,9 +38,6 @@ if { [istarget m68*-*-*] || [istarget fido*-*-*] } then { gas_test_error "p2410.s" "" "out-of-range 'bras'" - # Reloc types etc. need changing for aout and coff to pass. - setup_xfail "*-*" - clear_xfail "*-*-*elf*" "*-*-sysv4*" "*-*-rtems*" "*-*-*linux*" "*-*-*gnu*" "*-*-psos*" run_dump_test pcrel # Since fido is basically CPU32, it does not support those @@ -76,9 +70,7 @@ if { [istarget m68*-*-*] || [istarget fido*-*-*] } then { run_dump_test mcf-fpu run_dump_test mcf-trap run_dump_test mcf-wdebug - if { [istarget *-*-elf] || [istarget *-*-linux*] } then { - run_dump_test arch-cpu-1 - } + run_dump_test arch-cpu-1 run_dump_test cpu32 run_dump_test br-isaa @@ -93,12 +85,6 @@ if { [istarget m68*-*-*] || [istarget fido*-*-*] } then { gas_test_error "p13050-1.s" "-march=isab" "moveb (d8,An,Xi),(d16,An) unsupported on isab" run_dump_test p13050-2 - if { [istarget *-*-*aout] || [istarget *-*-netbsd] || [istarget *-*-openbsd*] } then { - run_dump_test p3041 - run_dump_test p3041data - run_dump_test p3041pcrel - } - set testname "68000 operands" gas_run "operands.s" "-m68000" "2>err.out" if ![string match "child process exited abnormally" $comp_output] then { diff --git a/gas/testsuite/gas/m68k/br-isaa.d b/gas/testsuite/gas/m68k/br-isaa.d index 9e680f1..cccb484 100644 --- a/gas/testsuite/gas/m68k/br-isaa.d +++ b/gas/testsuite/gas/m68k/br-isaa.d @@ -1,7 +1,6 @@ #name: br-isaa.d #objdump: -dr #as: -march=isaa -pcrel -#not-target: *-*-*aout m68k-*-netbsd m68k-*-openbsd* .*: file format .* diff --git a/gas/testsuite/gas/m68k/br-isab.d b/gas/testsuite/gas/m68k/br-isab.d index 94110e6..bcac0d2 100644 --- a/gas/testsuite/gas/m68k/br-isab.d +++ b/gas/testsuite/gas/m68k/br-isab.d @@ -1,7 +1,6 @@ #name: br-isab.d #objdump: -dr #as: -march=isab -pcrel -#not-target: *-*-*aout m68k-*-netbsd m68k-*-openbsd* .*: file format .* diff --git a/gas/testsuite/gas/m68k/br-isac.d b/gas/testsuite/gas/m68k/br-isac.d index 0af5d41..c876abb 100644 --- a/gas/testsuite/gas/m68k/br-isac.d +++ b/gas/testsuite/gas/m68k/br-isac.d @@ -1,7 +1,6 @@ #name: br-isac.d #objdump: -dr #as: -march=isac -pcrel -#not-target: *-*-*aout m68k-*-netbsd m68k-*-openbsd* .*: file format .* diff --git a/gas/testsuite/gas/m68k/p3041.d b/gas/testsuite/gas/m68k/p3041.d deleted file mode 100644 index f05648e..0000000 --- a/gas/testsuite/gas/m68k/p3041.d +++ /dev/null @@ -1,36 +0,0 @@ -#name: PR 3041 -#objdump: -tdr - -.*: file format .* - -SYMBOL TABLE: -00000036 w \.text 0000 00 0f mytext -0000003e w \.data 0000 00 10 mydata -0000004a w \.bss 0000 00 11 mybss - -Disassembly of section \.text: - -00000000 <.*>: - 0: 41f9 0000 0000 lea 0 <.*>,%a0 - 2: 32 mytext - 6: 41f9 0000 0002 lea 2 <.*>,%a0 - 8: 32 mytext - c: 41f9 ffff fffc lea fffffffc <.*>,%a0 - e: 32 mytext - 12: 41f9 0000 0000 lea 0 <.*>,%a0 - 14: 32 mydata - 18: 41f9 0000 0003 lea 3 <.*>,%a0 - 1a: 32 mydata - 1e: 41f9 ffff ffff lea ffffffff <.*>,%a0 - 20: 32 mydata - 24: 41f9 0000 0000 lea 0 <.*>,%a0 - 26: 32 mybss - 2a: 41f9 0000 0001 lea 1 <.*>,%a0 - 2c: 32 mybss - 30: 41f9 ffff fffe lea fffffffe <.*>,%a0 - 32: 32 mybss - -00000036 : - 36: 4e71 nop - 38: 4e71 nop - 3a: 4e71 nop diff --git a/gas/testsuite/gas/m68k/p3041.s b/gas/testsuite/gas/m68k/p3041.s deleted file mode 100644 index 4114216..0000000 --- a/gas/testsuite/gas/m68k/p3041.s +++ /dev/null @@ -1,27 +0,0 @@ - lea mytext,%a0 - lea mytext+2,%a0 - lea mytext-4,%a0 - lea mydata,%a0 - lea mydata+3,%a0 - lea mydata-1,%a0 - lea mybss,%a0 - lea mybss+1,%a0 - lea mybss-2,%a0 - .weak mytext -mytext: - nop - nop - nop - - .data - .word 0x8081 - .weak mydata -mydata: - .word 0x8283 - .word 0x8485 - - .bss - .skip 6 - .weak mybss -mybss: - .skip 2 diff --git a/gas/testsuite/gas/m68k/p3041data.d b/gas/testsuite/gas/m68k/p3041data.d deleted file mode 100644 index 91b2895..0000000 --- a/gas/testsuite/gas/m68k/p3041data.d +++ /dev/null @@ -1,28 +0,0 @@ -#name: PR 3041 data -#objdump: -trs - -.*: file format .* - -SYMBOL TABLE: -00000006 w \.text 0000 00 0f mytext -00000014 w \.data 0000 00 10 mydata -00000040 w \.bss 0000 00 11 mybss - -RELOCATION RECORDS FOR \[\.data\]: -OFFSET TYPE VALUE -00000004 32 mytext -00000008 32 mytext -0000000c 32 mytext -00000010 32 mydata -00000014 32 mydata -00000018 32 mydata -0000001c 32 mybss -00000020 32 mybss -00000024 32 mybss - -Contents of section .text: - 0000 4e714e71 4e714e71 .* -Contents of section .data: - 0008 12345678 00000000 00000001 fffffffd .* - 0018 00000000 00000003 fffffffe 00000000 .* - 0028 00000002 ffffffff .* diff --git a/gas/testsuite/gas/m68k/p3041data.s b/gas/testsuite/gas/m68k/p3041data.s deleted file mode 100644 index 73cbc39..0000000 --- a/gas/testsuite/gas/m68k/p3041data.s +++ /dev/null @@ -1,27 +0,0 @@ - .text - nop - nop - nop - .weak mytext -mytext: - nop - - .data - .long 0x12345678 - .long mytext - .long mytext+1 - .weak mydata -mydata: - .long mytext-3 - .long mydata - .long mydata+3 - .long mydata-2 - .long mybss - .long mybss+2 - .long mybss-1 - - .bss - .skip 16 - .weak mybss -mybss: - .word 1 diff --git a/gas/testsuite/gas/m68k/p3041pcrel.d b/gas/testsuite/gas/m68k/p3041pcrel.d deleted file mode 100644 index 91168cc..0000000 --- a/gas/testsuite/gas/m68k/p3041pcrel.d +++ /dev/null @@ -1,38 +0,0 @@ -#name: PR 3041 pcrel -#as: -m68000 -#objdump: -tdr - -.*: file format .* - -SYMBOL TABLE: -00000024 w \.text 0000 00 0f mytext -0000002e w \.data 0000 00 10 mydata -0000003a w \.bss 0000 00 11 mybss - -Disassembly of section \.text: - -00000000 <.*>: - 0: 41fa fffe lea %pc@\(0 <.*>\),%a0 - 2: DISP16 mytext - 4: 41fa fffc lea %pc@\(2 <.*>\),%a0 - 6: DISP16 mytext - 8: 41fa fff2 lea %pc@\(fffffffc <.*>\),%a0 - a: DISP16 mytext - c: 41fa fff2 lea %pc@\(0 <.*>\),%a0 - e: DISP16 mydata - 10: 41fa fff1 lea %pc@\(3 <.*>\),%a0 - 12: DISP16 mydata - 14: 41fa ffe9 lea %pc@\(ffffffff <.*>\),%a0 - 16: DISP16 mydata - 18: 41fa ffe6 lea %pc@\(0 <.*>\),%a0 - 1a: DISP16 mybss - 1c: 41fa ffe3 lea %pc@\(1 <.*>\),%a0 - 1e: DISP16 mybss - 20: 41fa ffdc lea %pc@\(fffffffe <.*>\),%a0 - 22: DISP16 mybss - -00000024 : - 24: 4e71 nop - 26: 4e71 nop - 28: 4e71 nop - 2a: 4e71 nop diff --git a/gas/testsuite/gas/m68k/p3041pcrel.s b/gas/testsuite/gas/m68k/p3041pcrel.s deleted file mode 100644 index 59d61ea..0000000 --- a/gas/testsuite/gas/m68k/p3041pcrel.s +++ /dev/null @@ -1,28 +0,0 @@ - lea mytext(%pc),%a0 - lea mytext+2(%pc),%a0 - lea mytext-4(%pc),%a0 - lea mydata(%pc),%a0 - lea mydata+3(%pc),%a0 - lea mydata-1(%pc),%a0 - lea mybss(%pc),%a0 - lea mybss+1(%pc),%a0 - lea mybss-2(%pc),%a0 - .weak mytext -mytext: - nop - nop - nop - nop - - .data - .word 0x8081 - .weak mydata -mydata: - .word 0x8283 - .word 0x8485 - - .bss - .skip 6 - .weak mybss -mybss: - .skip 2 diff --git a/gas/testsuite/gas/m68k/t2.d b/gas/testsuite/gas/m68k/t2.d deleted file mode 100644 index 65109c8..0000000 --- a/gas/testsuite/gas/m68k/t2.d +++ /dev/null @@ -1,8 +0,0 @@ -#PROG: nm -#name: presence of section symbols - -00000012 b .bss -0000000e d .data -00000000 t .text -0000000e d loop1 -00000000 t loop2 -- cgit v1.1