diff options
author | Gavin Romig-Koch <gavin@redhat.com> | 1997-02-11 13:26:34 +0000 |
---|---|---|
committer | Gavin Romig-Koch <gavin@redhat.com> | 1997-02-11 13:26:34 +0000 |
commit | 276c2d7dc8a0057901123776b5ae26fe48ce69e2 (patch) | |
tree | f92c4a48e0f2f6b8df840f40d6a5ec752bb6d076 /gas | |
parent | a7f081a5be64456cdd268ceb515db7c94737c2b2 (diff) | |
download | gdb-276c2d7dc8a0057901123776b5ae26fe48ce69e2.zip gdb-276c2d7dc8a0057901123776b5ae26fe48ce69e2.tar.gz gdb-276c2d7dc8a0057901123776b5ae26fe48ce69e2.tar.bz2 |
Add r5900
Diffstat (limited to 'gas')
-rw-r--r-- | gas/.Sanitize | 28 | ||||
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/.Sanitize | 30 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 56 |
4 files changed, 118 insertions, 2 deletions
diff --git a/gas/.Sanitize b/gas/.Sanitize index eedc78e..f493f45 100644 --- a/gas/.Sanitize +++ b/gas/.Sanitize @@ -219,6 +219,34 @@ else done fi +r5900_files="ChangeLog" +if ( echo $* | grep keep\-r5900 > /dev/null ) ; then + for i in $r5900_files ; do + if test ! -d $i && (grep sanitize-r5900 $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Keeping r5900 stuff in $i + fi + fi + done +else + for i in $r5900_files ; do + if test ! -d $i && (grep sanitize-r5900 $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Removing traces of \"r5900\" from $i... + fi + cp $i new + sed '/start\-sanitize\-r5900/,/end-\sanitize\-r5900/d' < $i > new + if [ -n "${safe}" -a ! -f .Recover/$i ] ; then + if [ -n "${verbose}" ] ; then + echo Caching $i in .Recover... + fi + mv $i .Recover + fi + mv new $i + fi + done +fi + tic80_files="ChangeLog configure.in configure" if ( echo $* | grep keep\-tic80 > /dev/null ) ; then for i in $tic80_files ; do diff --git a/gas/ChangeLog b/gas/ChangeLog index 51d922a..968d433 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +start-sanitize-r5900 +Fri Feb 7 11:11:06 1997 Gavin Koch <gavin@cygnus.com> + + * config/tc-mips.c: added r5900. + +end-sanitize-r5900 Mon Feb 10 22:06:00 1997 Dawn Perchik (dawn@cygnus.com) * itbl-ops.c, itbl-lex.l, itbl-parse.y, itbl-ops.h, diff --git a/gas/config/.Sanitize b/gas/config/.Sanitize index c33246c..65a123a 100644 --- a/gas/config/.Sanitize +++ b/gas/config/.Sanitize @@ -183,4 +183,34 @@ Things-to-lose: Do-last: +r5900_files="tc-mips.c" + +if ( echo $* | grep keep\-r5900 > /dev/null ) ; then + for i in $r5900_files ; do + if test ! -d $i && (grep sanitize-r5900 $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Keeping r5900 stuff in $i + fi + fi + done +else + for i in * ; do + if test ! -d $i && (grep sanitize-r5900 $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Removing traces of \"r5900\" from $i... + fi + cp $i new + sed '/start\-sanitize\-r5900/,/end-\sanitize\-r5900/d' < $i > new + if [ -n "${safe}" -a ! -f .Recover/$i ] ; then + if [ -n "${verbose}" ] ; then + echo Caching $i in .Recover... + fi + mv $i .Recover + fi + mv new $i + fi + done +fi + + # End of file. diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index edb2e13..4b3c955 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -148,6 +148,11 @@ static int mips_4010 = -1; /* Whether the 4100 MADD16 and DMADD16 are permitted. */ static int mips_4100 = -1; +/* start-sanitize-r5900 */ +/* Whether Toshiba r5900 instructions are permitted. */ +static int mips_5900 = -1; +/* end-sanitize-r5900 */ + /* Whether the processor uses hardware interlocks, and thus does not require nops to be inserted. */ static int interlocks = -1; @@ -780,6 +785,18 @@ md_begin () if (mips_cpu == -1) mips_cpu = 5000; } + /* start-sanitize-r5900 */ + else if (strcmp (cpu, "r5900") == 0 + || strcmp (cpu, "mips64vr5900") == 0 + || strcmp (cpu, "mips64vr5900el") == 0) + { + mips_isa = 3; + if (mips_cpu == -1) + mips_cpu = 5900; + if (mips_5900 = -1) + mips_5900 = 1; + } + /* end-sanitize-r5900 */ else if (strcmp (cpu, "r8000") == 0 || strcmp (cpu, "mips4") == 0) { @@ -827,6 +844,11 @@ md_begin () if (mips_4100 < 0) mips_4100 = 0; + /* start-sanitize-r5900 */ + if (mips_5900 < 0) + mips_5900 = 0; + /* end-sanitize-r5900 */ + if (mips_4010 || mips_4100 || mips_cpu == 4300) interlocks = 1; else @@ -2111,7 +2133,12 @@ macro_build (place, counter, ep, name, fmt, va_alist) || ((insn.insn_mo->pinfo & INSN_ISA) == INSN_4010 && ! mips_4010) || ((insn.insn_mo->pinfo & INSN_ISA) == INSN_4100 - && ! mips_4100)) + && ! mips_4100) + /* start-sanitize-r5900 */ + || ((insn.insn_mo->pinfo & INSN_ISA) == INSN_5900 + && ! mips_5900) + /* end-sanitize-r5900 */ + ) { ++insn.insn_mo; assert (insn.insn_mo->name); @@ -6110,7 +6137,12 @@ mips_ip (str, ip) || ((insn->pinfo & INSN_ISA) == INSN_4010 && ! mips_4010) || ((insn->pinfo & INSN_ISA) == INSN_4100 - && ! mips_4100)) + && ! mips_4100) + /* start-sanitize-r5900 */ + || ((insn->pinfo & INSN_ISA) == INSN_5900 + && ! mips_5900) + /* end-sanitize-r5900 */ + ) { if (insn + 1 < &mips_opcodes[NUMOPCODES] && strcmp (insn->name, insn[1].name) == 0) @@ -7708,6 +7740,12 @@ struct option md_longopts[] = { {"mips16", no_argument, NULL, OPTION_MIPS16}, #define OPTION_NO_MIPS16 (OPTION_MD_BASE + 23) {"no-mips16", no_argument, NULL, OPTION_NO_MIPS16}, + /* start-sanitize-5900 */ +#define OPTION_M5900 (OPTION_MD_BASE + 24) + {"m5900", no_argument, NULL, OPTION_M5900}, +#define OPTION_NO_M5900 (OPTION_MD_BASE + 25) + {"no-m5900", no_argument, NULL, OPTION_NO_M5900}, + /* end-sanitize-5900 */ #define OPTION_CALL_SHARED (OPTION_MD_BASE + 7) #define OPTION_NON_SHARED (OPTION_MD_BASE + 8) @@ -7877,6 +7915,10 @@ md_parse_option (c, arg) || strcmp (p, "5k") == 0 || strcmp (p, "5K") == 0) mips_cpu = 5000; + /* start-sanitize-r5900 */ + else if (strcmp (p, "5900") == 0) + mips_cpu = 5900; + /* end-sanitize-r5900 */ break; case '6': @@ -7938,6 +7980,16 @@ md_parse_option (c, arg) mips_4100 = 0; break; + /* start-sanitize-r5900 */ + case OPTION_M5900: + mips_5900 = 1; + break; + + case OPTION_NO_M5900: + mips_5900 = 0; + break; + /* end-sanitize-r5900 */ + case OPTION_MIPS16: mips16 = 1; mips_no_prev_insn (); |