aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog11
-rw-r--r--gas/config/tc-mips.c35
2 files changed, 45 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index a519011..a109ce0 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,14 @@
+start-sanitize-tx49
+Wed Nov 12 10:06:27 1997 Gavin Koch <gavin@cygnus.com>
+
+ * config/tc-mips.c (mips_4900): Added.
+ (hilo_interlocks): Added mips_4900.
+ (md_begin): Set default for mips_4900.
+ (macro_build,mips_ip): Test for INSN_4900 if mips_4900.
+ (md_longopts): Add "m4900" and "no-m4900".
+ (md_parse_option): Handle above options.
+
+end-sanitize-tx49
Tue Nov 11 19:25:05 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
* app.c (do_scrub_chars): If d10v, re-insert a space before
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 2a9c39b..c39e11ee 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -216,6 +216,11 @@ static int mips_5900 = -1;
/* Whether Toshiba r3900 instructions are permitted. */
static int mips_3900 = -1;
+/* start-sanitize-tx49 */
+/* Whether Toshiba r4900 instructions are permitted. */
+static int mips_4900 = -1;
+
+/* end-sanitize-tx49 */
/* start-sanitize-tx19 */
/* The tx19 (r1900) is a mips16 decoder with a tx39(r3900) behind it.
The tx19 related options and configuration bits are handled by
@@ -227,7 +232,7 @@ static int mips_3900 = -1;
require nops to be inserted. */
#define hilo_interlocks (mips_4010 || mips_cpu == 4300 || mips_3900 \
/* start-sanitize-tx49 */ \
- || mips_cpu == 4900 \
+ || mips_cpu == 4900 || mips_4900 \
/* end-sanitize-tx49 */ \
/* start-sanitize-vr5400 */ \
|| mips_cpu == 5400 \
@@ -973,7 +978,11 @@ md_begin ()
if (mips_3900 < 0)
mips_3900 = (mips_cpu == 3900);
+ /* start-sanitize-tx49 */
+ if (mips_4900 < 0)
+ mips_4900 = (mips_cpu == 4900);
+ /* end-sanitize-tx49 */
/* End of TARGET_CPU processing, get rid of malloced memory
if necessary. */
@@ -2413,6 +2422,10 @@ macro_build (place, counter, ep, name, fmt, va_alist)
&& (insn.insn_mo->membership & INSN_4010) != 0)
|| (mips_4100
&& (insn.insn_mo->membership & INSN_4100) != 0)
+ /* start-sanitize-tx49 */
+ || (mips_4900
+ && (insn.insn_mo->membership & INSN_4900) != 0)
+ /* end-sanitize-tx49 */
/* start-sanitize-r5900 */
|| (mips_5900
&& (insn.insn_mo->membership & INSN_5900) != 0)
@@ -6757,6 +6770,9 @@ mips_ip (str, ip)
else if ((mips_4650 && (insn->membership & INSN_4650) != 0)
|| (mips_4010 && (insn->membership & INSN_4010) != 0)
|| (mips_4100 && (insn->membership & INSN_4100) != 0)
+ /* start-sanitize-tx49 */
+ || (mips_4900 && (insn->membership & INSN_4900) != 0)
+ /* end-sanitize-tx49 */
/* start-sanitize-r5900 */
|| (mips_5900 && (insn->membership & INSN_5900) != 0)
/* end-sanitize-r5900 */
@@ -8570,6 +8586,13 @@ struct option md_longopts[] = {
{"no-m5400", no_argument, NULL, OPTION_NO_M5400},
/* end-sanitize-vr5400 */
+ /* start-sanitize-tx49 */
+#define OPTION_M4900 (OPTION_MD_BASE + 30)
+ {"m4900", no_argument, NULL, OPTION_M4900},
+#define OPTION_NO_M4900 (OPTION_MD_BASE + 31)
+ {"no-m4900", no_argument, NULL, OPTION_NO_M4900},
+
+ /* end-sanitize-tx49 */
#define OPTION_CALL_SHARED (OPTION_MD_BASE + 7)
#define OPTION_NON_SHARED (OPTION_MD_BASE + 8)
#define OPTION_XGOT (OPTION_MD_BASE + 19)
@@ -8831,6 +8854,16 @@ md_parse_option (c, arg)
mips_3900 = 0;
break;
+ /* start-sanitize-tx49 */
+ case OPTION_M4900:
+ mips_4900 = 1;
+ break;
+
+ case OPTION_NO_M4900:
+ mips_4900 = 0;
+ break;
+
+ /* end-sanitize-tx49 */
case OPTION_MIPS16:
mips_opts.mips16 = 1;
mips_no_prev_insn (false);