From 97f99d1196db7d2fe1a2fe2f57eb82aafa4afe8c Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor <ian@airs.com> Date: Fri, 24 Sep 1993 17:47:04 +0000 Subject: * config/tc-mips.c (md_begin): Set BFD architecture and machine based on MIPS ISA level. --- gas/config/tc-mips.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 30ef6c4..31899ea 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) -- cgit v1.1