721c721
< format BasicOperate{
---
> format FpBasic{
768c768
< 0x46: fsubd({{Frd.df = Frs1.df - Frs2.df;}});
---
> 0x46: fsubd({{Frd.df = Frs1.df - Frs2.df; }});
779c779
< Frd.df = (double)static_cast<int64_t>(Frs2s.sf);
---
> Frd.sdw = static_cast<int64_t>(Frs2s.sf);
782c782
< Frd.df = (double)static_cast<int64_t>(Frs2.df);
---
> Frd.sdw = static_cast<int64_t>(Frs2.df);
786c786
< Frds.sf = static_cast<float>((int64_t)Frs2.df);
---
> Frds.sf = static_cast<float>(Frs2.sdw);
789c789
< Frd.df = static_cast<double>((int64_t)Frs2.df);
---
> Frd.df = static_cast<double>(Frs2.sdw);
793c793
< Frds.sf = static_cast<float>((int32_t)Frs2s.sf);
---
> Frds.sf = static_cast<float>(Frs2s.sw);
798c798
< Frd.df = static_cast<double>((int32_t)Frs2s.sf);
---
> Frd.df = static_cast<double>(Frs2s.sw);
806c806,810
< Frds.sf = (float)static_cast<int32_t>(Frs2s.sf);
---
> Frds.sw = static_cast<int32_t>(Frs2s.sf);
> float t = Frds.sw;
> if (t != Frs2s.sf)
> Fsr = insertBits(Fsr, 4,0, 0x01);
> Fsr |= Fsr<4:0> << 5;
809c813,817
< Frds.sf = (float)static_cast<int32_t>(Frs2.df);
---
> Frds.sw = static_cast<int32_t>(Frs2.df);
> double t = Frds.sw;
> if (t != Frs2.df)
> Fsr = insertBits(Fsr, 4,0, 0x01);
> Fsr |= Fsr<4:0> << 5;
816c824
< format BasicOperate{
---
> format FpBasic{
834c842
< if(isnan(Frs1s) || isnan(Frs2s))
---
> if(isnan(Frs1) || isnan(Frs2))
836c844
< else if(Frs1s < Frs2s)
---
> else if(Frs1 < Frs2)
838c846
< else if(Frs1s > Frs2s)
---
> else if(Frs1 > Frs2)
863c871
< if(isnan(Frs1s) || isnan(Frs2s))
---
> if(isnan(Frs1) || isnan(Frs2))
865c873
< if(Frs1s < Frs2s)
---
> if(Frs1 < Frs2)
867c875
< else if(Frs1s > Frs2s)
---
> else if(Frs1 > Frs2)
963,964c971,972
< 0x60: BasicOperate::fzero({{Frd.df = 0;}});
< 0x61: BasicOperate::fzeros({{Frds.sf = 0;}});
---
> 0x60: FpBasic::fzero({{Frd.df = 0;}});
> 0x61: FpBasic::fzeros({{Frds.sf = 0;}});
969c977
< 0x66: BasicOperate::fnot2({{
---
> 0x66: FpBasic::fnot2({{
972c980
< 0x67: BasicOperate::fnot2s({{
---
> 0x67: FpBasic::fnot2s({{
977c985
< 0x6A: BasicOperate::fnot1({{
---
> 0x6A: FpBasic::fnot1({{
980c988
< 0x6B: BasicOperate::fnot1s({{
---
> 0x6B: FpBasic::fnot1s({{
991,992c999,1000
< 0x74: BasicOperate::fsrc1({{Frd.udw = Frs1.udw;}});
< 0x75: BasicOperate::fsrc1s({{Frds.uw = Frs1s.uw;}});
---
> 0x74: FpBasic::fsrc1({{Frd.udw = Frs1.udw;}});
> 0x75: FpBasic::fsrc1s({{Frds.uw = Frs1s.uw;}});
995,996c1003,1004
< 0x78: BasicOperate::fsrc2({{Frd.udw = Frs2.udw;}});
< 0x79: BasicOperate::fsrc2s({{Frds.uw = Frs2s.uw;}});
---
> 0x78: FpBasic::fsrc2({{Frd.udw = Frs2.udw;}});
> 0x79: FpBasic::fsrc2s({{Frds.uw = Frs2s.uw;}});
1001,1002c1009,1010
< 0x7E: BasicOperate::fone({{Frd.udw = std::numeric_limits<uint64_t>::max();}});
< 0x7F: BasicOperate::fones({{Frds.uw = std::numeric_limits<uint32_t>::max();}});
---
> 0x7E: FpBasic::fone({{Frd.udw = std::numeric_limits<uint64_t>::max();}});
> 0x7F: FpBasic::fones({{Frds.uw = std::numeric_limits<uint32_t>::max();}});
1239c1247
< 0x21: decode X {
---
> 0x21: decode RD {
1241a1250
> default: FailUnimpl::ldfsrOther();
1246,1248c1255,1260
< 0x25: decode X {
< 0x0: Store::stfsr({{Mem.uw = Fsr<31:0>;}});
< 0x1: Store::stxfsr({{Mem.udw = Fsr;}});
---
> 0x25: decode RD {
> 0x0: Store::stfsr({{Mem.uw = Fsr<31:0>;
> Fsr = insertBits(Fsr,16,14,0);}});
> 0x1: Store::stxfsr({{Mem.udw = Fsr;
> Fsr = insertBits(Fsr,16,14,0);}});
> default: FailUnimpl::stfsrOther();