From: Ian Lance Taylor Date: Fri, 24 Sep 1993 17:47:04 +0000 (+0000) Subject: * config/tc-mips.c (md_begin): Set BFD architecture and machine X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=97f99d1196db7d2fe1a2fe2f57eb82aafa4afe8c;p=binutils-gdb.git * config/tc-mips.c (md_begin): Set BFD architecture and machine based on MIPS ISA level. --- diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 30ef6c4a6e4..31899ea0295 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -286,6 +286,7 @@ static bfd_reloc_code_real_type offset_reloc; void md_begin () { + boolean ok; register const char *retval = NULL; register unsigned int i = 0; @@ -304,6 +305,21 @@ md_begin () mips_isa = 1; } + switch (mips_isa) + { + case 1: + ok = bfd_set_arch_mach (stdoutput, bfd_arch_mips, 3000); + break; + case 2: + ok = bfd_set_arch_mach (stdoutput, bfd_arch_mips, 6000); + break; + case 3: + ok = bfd_set_arch_mach (stdoutput, bfd_arch_mips, 4000); + break; + } + if (! ok) + as_warn ("Could not set architecture and machine"); + if ((op_hash = hash_new ()) == NULL) { as_fatal ("Virtual memory exhausted"); @@ -726,6 +742,9 @@ append_insn (ip, address_expr, reloc_type) & (INSN_UNCOND_BRANCH_DELAY | INSN_COND_BRANCH_DELAY | INSN_COND_BRANCH_LIKELY)) + /* We can not swap with a trap instruction, since it + might change the PC. */ + || (prev_insn.insn_mo->pinfo & INSN_TRAP) /* If the branch reads a register that the previous instruction sets, we can not swap. */ || ((prev_insn.insn_mo->pinfo & INSN_WRITE_GPR_T)