aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorGavin Romig-Koch <gavin@redhat.com>1999-11-01 19:29:55 +0000
committerGavin Romig-Koch <gavin@redhat.com>1999-11-01 19:29:55 +0000
commit2bd7f1f332946c3baeef11111d1dfb1994ce9942 (patch)
tree4a2d3dec575bdd40004c21aeb955f15b5747646c /gas
parentc58c5ee7b57bdfbc8305a7676bb7791ba4e12248 (diff)
downloadgdb-2bd7f1f332946c3baeef11111d1dfb1994ce9942.zip
gdb-2bd7f1f332946c3baeef11111d1dfb1994ce9942.tar.gz
gdb-2bd7f1f332946c3baeef11111d1dfb1994ce9942.tar.bz2
For include/opcode:
* mips.h (OPCODE_IS_MEMBER): New. For gas: * config/tc-mips.c (macro_build): Use OPCODE_IS_MEMBER. (mips_ip): Use OPCODE_IS_MEMBER. For opcodes: * mips-dis.c (_print_insn_mips): Use OPCODE_IS_MEMBER.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-mips.c65
2 files changed, 14 insertions, 56 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index bd67830..d3aa148 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+1999-11-01 Gavin Romig-Koch <gavin@cygnus.com>
+
+ * config/tc-mips.c (macro_build): Use OPCODE_IS_MEMBER.
+ (mips_ip): Use OPCODE_IS_MEMBER.
+
Wed Oct 27 16:50:44 1999 Don Lindsay <dlindsay@cygnus.com>
* config/tc-arm.c (reg_required_here): Improve comments.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index f98a332..d2fdca7 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -2424,7 +2424,6 @@ macro_build (place, counter, ep, name, fmt, va_alist)
struct mips_cl_insn insn;
bfd_reloc_code_real_type r;
va_list args;
- int insn_isa;
#ifdef USE_STDARG
va_start (args, fmt);
@@ -2458,31 +2457,9 @@ macro_build (place, counter, ep, name, fmt, va_alist)
/* Search until we get a match for NAME. */
while (1)
{
- insn_isa = 0;
-
- if ((insn.insn_mo->membership & INSN_ISA) == INSN_ISA1)
- insn_isa = 1;
- else if ((insn.insn_mo->membership & INSN_ISA) == INSN_ISA2)
- insn_isa = 2;
- else if ((insn.insn_mo->membership & INSN_ISA) == INSN_ISA3)
- insn_isa = 3;
- else if ((insn.insn_mo->membership & INSN_ISA) == INSN_ISA4)
- insn_isa = 4;
-
if (strcmp (fmt, insn.insn_mo->args) == 0
&& insn.insn_mo->pinfo != INSN_MACRO
- && ((insn_isa != 0
- && insn_isa <= mips_opts.isa)
- || (mips_cpu == 4650
- && (insn.insn_mo->membership & INSN_4650) != 0)
- || (mips_cpu == 4010
- && (insn.insn_mo->membership & INSN_4010) != 0)
- || ((mips_cpu == 4100
- || mips_cpu == 4111
- )
- && (insn.insn_mo->membership & INSN_4100) != 0)
- || (mips_cpu == 3900
- && (insn.insn_mo->membership & INSN_3900) != 0))
+ && OPCODE_IS_MEMBER (insn.insn_mo, mips_opts.isa, mips_cpu)
&& (mips_cpu != 4650 || (insn.insn_mo->pinfo & FP_D) == 0))
break;
@@ -7028,37 +7005,15 @@ mips_ip (str, ip)
argsStart = s;
for (;;)
{
- int insn_isa;
boolean ok;
assert (strcmp (insn->name, str) == 0);
- insn_isa = 0;
- if ((insn->membership & INSN_ISA) == INSN_ISA1)
- insn_isa = 1;
- else if ((insn->membership & INSN_ISA) == INSN_ISA2)
- insn_isa = 2;
- else if ((insn->membership & INSN_ISA) == INSN_ISA3)
- insn_isa = 3;
- else if ((insn->membership & INSN_ISA) == INSN_ISA4)
- insn_isa = 4;
-
- if (insn_isa != 0
- && insn_isa <= mips_opts.isa)
- ok = true;
- else if (insn->pinfo == INSN_MACRO)
- ok = false;
- else if ((mips_cpu == 4650 && (insn->membership & INSN_4650) != 0)
- || (mips_cpu == 4010 && (insn->membership & INSN_4010) != 0)
- || ((mips_cpu == 4100
- || mips_cpu == 4111
- )
- && (insn->membership & INSN_4100) != 0)
- || (mips_cpu == 3900 && (insn->membership & INSN_3900) != 0))
+ if (OPCODE_IS_MEMBER (insn, mips_opts.isa, mips_cpu))
ok = true;
- else
+ else
ok = false;
-
+
if (insn->pinfo != INSN_MACRO)
{
if (mips_cpu == 4650 && (insn->pinfo & FP_D) != 0)
@@ -7073,18 +7028,16 @@ mips_ip (str, ip)
++insn;
continue;
}
-
- if (insn_isa == 0
- || insn_isa <= mips_opts.isa)
- insn_error = _("opcode not supported on this processor");
else
{
static char buf[100];
-
- sprintf (buf, _("opcode requires -mips%d or greater"), insn_isa);
+ sprintf (buf,
+ _("opcode not supported on this processor: %d (MIPS%d)"),
+ mips_cpu, mips_opts.isa);
+
insn_error = buf;
+ return;
}
- return;
}
ip->insn_mo = insn;