* config/tc-mips.c (md_begin): Set BFD architecture and machine
based on MIPS ISA level.
This commit is contained in:
parent
0a27542138
commit
97f99d1196
@ -286,6 +286,7 @@ static bfd_reloc_code_real_type offset_reloc;
|
|||||||
void
|
void
|
||||||
md_begin ()
|
md_begin ()
|
||||||
{
|
{
|
||||||
|
boolean ok;
|
||||||
register const char *retval = NULL;
|
register const char *retval = NULL;
|
||||||
register unsigned int i = 0;
|
register unsigned int i = 0;
|
||||||
|
|
||||||
@ -304,6 +305,21 @@ md_begin ()
|
|||||||
mips_isa = 1;
|
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)
|
if ((op_hash = hash_new ()) == NULL)
|
||||||
{
|
{
|
||||||
as_fatal ("Virtual memory exhausted");
|
as_fatal ("Virtual memory exhausted");
|
||||||
@ -726,6 +742,9 @@ append_insn (ip, address_expr, reloc_type)
|
|||||||
& (INSN_UNCOND_BRANCH_DELAY
|
& (INSN_UNCOND_BRANCH_DELAY
|
||||||
| INSN_COND_BRANCH_DELAY
|
| INSN_COND_BRANCH_DELAY
|
||||||
| INSN_COND_BRANCH_LIKELY))
|
| 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
|
/* If the branch reads a register that the previous
|
||||||
instruction sets, we can not swap. */
|
instruction sets, we can not swap. */
|
||||||
|| ((prev_insn.insn_mo->pinfo & INSN_WRITE_GPR_T)
|
|| ((prev_insn.insn_mo->pinfo & INSN_WRITE_GPR_T)
|
||||||
|
Loading…
Reference in New Issue
Block a user