diff options
author | Thiemo Seufer <ths@networkno.de> | 2004-01-21 23:25:38 +0000 |
---|---|---|
committer | Thiemo Seufer <ths@networkno.de> | 2004-01-21 23:25:38 +0000 |
commit | 048cdf861a99623019e47ad0681c076219771f88 (patch) | |
tree | 1b8afcc050df2e7ba056465a5477172675f36d2d | |
parent | a49d618c8c921275558d42aed7185f4d1c670b2f (diff) | |
download | gdb-048cdf861a99623019e47ad0681c076219771f88.zip gdb-048cdf861a99623019e47ad0681c076219771f88.tar.gz gdb-048cdf861a99623019e47ad0681c076219771f88.tar.bz2 |
* config/tc-mips.c (append_insn): Don't do r3900 interlock
optimization for -mtune=r3900, as this will break on other CPUs.
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 10 |
2 files changed, 10 insertions, 5 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index c855fcc..438ea36 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2004-01-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * config/tc-mips.c (append_insn): Don't do r3900 interlock + optimization for -mtune=r3900, as this will break on other CPUs. + 2004-01-11 Tom Rix <tcrix@worldnet.att.net> * config/tc-m68hc11.c (build_indexed_byte): movb and movw cannot diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 55c2482..e0aa61e 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -1708,7 +1708,7 @@ append_insn (char *place, struct mips_cl_insn *ip, expressionS *address_expr, though the tx39's divide insns still do require the delay. */ if (! (hilo_interlocks - || (mips_tune == CPU_R3900 && (pinfo & INSN_MULT))) + || (mips_opts.arch == CPU_R3900 && (pinfo & INSN_MULT))) && (mips_optimize == 0 || (pinfo & INSN_WRITE_LO))) nops += 2; @@ -1730,7 +1730,7 @@ append_insn (char *place, struct mips_cl_insn *ip, expressionS *address_expr, insert a NOP. Some newer processors have interlocks. Also the note tx39's multiply above. */ if (! (hilo_interlocks - || (mips_tune == CPU_R3900 && (pinfo & INSN_MULT))) + || (mips_opts.arch == CPU_R3900 && (pinfo & INSN_MULT))) && (mips_optimize == 0 || (pinfo & INSN_WRITE_HI))) nops += 2; @@ -1768,11 +1768,11 @@ append_insn (char *place, struct mips_cl_insn *ip, expressionS *address_expr, || ((prev_prev_insn.insn_mo->pinfo & INSN_READ_LO) && (pinfo & INSN_WRITE_LO) && ! (hilo_interlocks - || (mips_tune == CPU_R3900 && (pinfo & INSN_MULT)))) + || (mips_opts.arch == CPU_R3900 && (pinfo & INSN_MULT)))) || ((prev_prev_insn.insn_mo->pinfo & INSN_READ_HI) && (pinfo & INSN_WRITE_HI) && ! (hilo_interlocks - || (mips_tune == CPU_R3900 && (pinfo & INSN_MULT))))) + || (mips_opts.arch == CPU_R3900 && (pinfo & INSN_MULT))))) prev_prev_nop = 1; else prev_prev_nop = 0; @@ -2297,7 +2297,7 @@ append_insn (char *place, struct mips_cl_insn *ip, expressionS *address_expr, | INSN_WRITE_COND_CODE)) && ! cop_interlocks) || (! (hilo_interlocks - || (mips_tune == CPU_R3900 && (pinfo & INSN_MULT))) + || (mips_opts.arch == CPU_R3900 && (pinfo & INSN_MULT))) && (prev_pinfo & (INSN_READ_LO | INSN_READ_HI))) |