diff options
author | Andrew Cagney <cagney@redhat.com> | 2000-07-04 02:32:58 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2000-07-04 02:32:58 +0000 |
commit | 80ee11fa0eaf9538ab98032364ccab58eb54a4b8 (patch) | |
tree | 1924d4f875da9cafaa58f76d922a2cdc27c1f8e9 /sim | |
parent | 70bcb1452f241edac96dc697f430b5fa3cb9a5dd (diff) | |
download | binutils-80ee11fa0eaf9538ab98032364ccab58eb54a4b8.zip binutils-80ee11fa0eaf9538ab98032364ccab58eb54a4b8.tar.gz binutils-80ee11fa0eaf9538ab98032364ccab58eb54a4b8.tar.bz2 |
Fix MOVN.fmt and MOVZ.fmt, need to test GPR[RT].
Diffstat (limited to 'sim')
-rw-r--r-- | sim/mips/ChangeLog | 5 | ||||
-rw-r--r-- | sim/mips/mips.igen | 23 |
2 files changed, 14 insertions, 14 deletions
diff --git a/sim/mips/ChangeLog b/sim/mips/ChangeLog index ef2e85a..86a37ed 100644 --- a/sim/mips/ChangeLog +++ b/sim/mips/ChangeLog @@ -1,3 +1,8 @@ +Mon Jul 3 11:13:20 2000 Andrew Cagney <cagney@b1.cygnus.com> + + From Jason Eckhardt: + * mips.igen (MOVZ.fmt, MOVN.fmt): Move conditional on GPR[RT]. + Tue Jun 13 20:52:07 2000 Andrew Cagney <cagney@b1.cygnus.com> * mips.igen (MxC1, DMxC1): Fix printf formatting. 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)); } |