aboutsummaryrefslogtreecommitdiff
path: root/sim/mips/mips.igen
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2000-07-04 02:32:58 +0000
committerAndrew Cagney <cagney@redhat.com>2000-07-04 02:32:58 +0000
commit80ee11fa0eaf9538ab98032364ccab58eb54a4b8 (patch)
tree1924d4f875da9cafaa58f76d922a2cdc27c1f8e9 /sim/mips/mips.igen
parent70bcb1452f241edac96dc697f430b5fa3cb9a5dd (diff)
downloadfsf-binutils-gdb-80ee11fa0eaf9538ab98032364ccab58eb54a4b8.zip
fsf-binutils-gdb-80ee11fa0eaf9538ab98032364ccab58eb54a4b8.tar.gz
fsf-binutils-gdb-80ee11fa0eaf9538ab98032364ccab58eb54a4b8.tar.bz2
Fix MOVN.fmt and MOVZ.fmt, need to test GPR[RT].
Diffstat (limited to 'sim/mips/mips.igen')
-rw-r--r--sim/mips/mips.igen23
1 files changed, 9 insertions, 14 deletions
diff --git a/sim/mips/mips.igen b/sim/mips/mips.igen
index 23908a9..f8263f4 100644
--- a/sim/mips/mips.igen
+++ b/sim/mips/mips.igen
@@ -3283,16 +3283,14 @@
010001,10,3.FMT,5.RT,5.FS,5.FD,010011:COP1:32::MOVN.fmt
+"movn.%s<FMT> f<FD>, f<FS>, r<RT>"
*mipsIV:
*vr5000:
{
- unsigned32 instruction = instruction_0;
- int destreg = ((instruction >> 6) & 0x0000001F);
- int fs = ((instruction >> 11) & 0x0000001F);
- int format = ((instruction >> 21) & 0x00000007);
- {
- StoreFPR(destreg,format,ValueFPR(fs,format));
- }
+ if (GPR[RT] != 0)
+ StoreFPR (FD, FMT, ValueFPR (FS, FMT));
+ else
+ StoreFPR (FD, FMT, ValueFPR (FD, FMT));
}
@@ -3308,13 +3306,10 @@
*mipsIV:
*vr5000:
{
- unsigned32 instruction = instruction_0;
- int destreg = ((instruction >> 6) & 0x0000001F);
- int fs = ((instruction >> 11) & 0x0000001F);
- int format = ((instruction >> 21) & 0x00000007);
- {
- StoreFPR(destreg,format,ValueFPR(fs,format));
- }
+ if (GPR[RT] == 0)
+ StoreFPR (FD, FMT, ValueFPR (FS, FMT));
+ else
+ StoreFPR (FD, FMT, ValueFPR (FD, FMT));
}