285c285
< FpDest.uw = insertBits(FpDest.uw, imm * 8, imm * 8 + 7, Op1.ub);
---
> FpDest.uw = insertBits(FpDest.uw, imm * 8 + 7, imm * 8, Op1.ub);
295c295
< FpDest.uw = insertBits(FpDest.uw, imm * 16, imm * 16 + 15, Op1.uh);
---
> FpDest.uw = insertBits(FpDest.uw, imm * 16 + 15, imm * 16, Op1.uh);
315c315,316
< Dest = bits(FpOp1.uw, imm * 8, imm * 8 + 7);
---
> assert(imm < 4);
> Dest = bits(FpOp1.uw, imm * 8 + 7, imm * 8);
325c326,327
< Dest = bits(FpOp1.uw, imm * 16, imm * 16 + 15);
---
> assert(imm < 2);
> Dest = bits(FpOp1.uw, imm * 16 + 15, imm * 16);
335c337,338
< Dest = sext<8>(bits(FpOp1.uw, imm * 8, imm * 8 + 7));
---
> assert(imm < 4);
> Dest = sext<8>(bits(FpOp1.uw, imm * 8 + 7, imm * 8));
345c348,349
< Dest = sext<16>(bits(FpOp1.uw, imm * 16, imm * 16 + 15));
---
> assert(imm < 2);
> Dest = sext<16>(bits(FpOp1.uw, imm * 16 + 15, imm * 16));
399c403
< "%(func)s, fpscr.fz, fpscr.rMode)"
---
> "%(func)s, fpscr.fz, fpscr.dn, fpscr.rMode)"
411c415
< %(func)s, fpscr.fz, fpscr.rMode);
---
> %(func)s, fpscr.fz, fpscr.dn, fpscr.rMode);
502,503c506,508
< fpMulS, fpscr.fz, fpscr.rMode);
< FpDest = binaryOp(fpscr, FpDest, mid, fpAddS, fpscr.fz, fpscr.rMode);
---
> fpMulS, fpscr.fz, fpscr.dn, fpscr.rMode);
> FpDest = binaryOp(fpscr, FpDest, mid, fpAddS,
> fpscr.fz, fpscr.dn, fpscr.rMode);
517c522
< fpMulD, fpscr.fz, fpscr.rMode);
---
> fpMulD, fpscr.fz, fpscr.dn, fpscr.rMode);
519c524,525
< mid, fpAddD, fpscr.fz, fpscr.rMode);
---
> mid, fpAddD, fpscr.fz,
> fpscr.dn, fpscr.rMode);
534,535c540,542
< fpMulS, fpscr.fz, fpscr.rMode);
< FpDest = binaryOp(fpscr, FpDest, -mid, fpAddS, fpscr.fz, fpscr.rMode);
---
> fpMulS, fpscr.fz, fpscr.dn, fpscr.rMode);
> FpDest = binaryOp(fpscr, FpDest, -mid, fpAddS,
> fpscr.fz, fpscr.dn, fpscr.rMode);
549c556
< fpMulD, fpscr.fz, fpscr.rMode);
---
> fpMulD, fpscr.fz, fpscr.dn, fpscr.rMode);
551c558,559
< -mid, fpAddD, fpscr.fz, fpscr.rMode);
---
> -mid, fpAddD, fpscr.fz,
> fpscr.dn, fpscr.rMode);
566,567c574,576
< fpMulS, fpscr.fz, fpscr.rMode);
< FpDest = binaryOp(fpscr, -FpDest, -mid, fpAddS, fpscr.fz, fpscr.rMode);
---
> fpMulS, fpscr.fz, fpscr.dn, fpscr.rMode);
> FpDest = binaryOp(fpscr, -FpDest, -mid, fpAddS,
> fpscr.fz, fpscr.dn, fpscr.rMode);
581c590
< fpMulD, fpscr.fz, fpscr.rMode);
---
> fpMulD, fpscr.fz, fpscr.dn, fpscr.rMode);
583c592,593
< -mid, fpAddD, fpscr.fz, fpscr.rMode);
---
> -mid, fpAddD, fpscr.fz,
> fpscr.dn, fpscr.rMode);
598,599c608,610
< fpMulS, fpscr.fz, fpscr.rMode);
< FpDest = binaryOp(fpscr, -FpDest, mid, fpAddS, fpscr.fz, fpscr.rMode);
---
> fpMulS, fpscr.fz, fpscr.dn, fpscr.rMode);
> FpDest = binaryOp(fpscr, -FpDest, mid, fpAddS,
> fpscr.fz, fpscr.dn, fpscr.rMode);
613c624
< fpMulD, fpscr.fz, fpscr.rMode);
---
> fpMulD, fpscr.fz, fpscr.dn, fpscr.rMode);
615c626,627
< mid, fpAddD, fpscr.fz, fpscr.rMode);
---
> mid, fpAddD, fpscr.fz,
> fpscr.dn, fpscr.rMode);
629c641,642
< FpDest = -binaryOp(fpscr, FpOp1, FpOp2, fpMulS, fpscr.fz, fpscr.rMode);
---
> FpDest = -binaryOp(fpscr, FpOp1, FpOp2, fpMulS,
> fpscr.fz, fpscr.dn, fpscr.rMode);
643c656,657
< fpMulD, fpscr.fz, fpscr.rMode);
---
> fpMulD, fpscr.fz, fpscr.dn,
> fpscr.rMode);
668c682
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
684c698
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
702c716
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
718c732
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
737c751
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
755c769
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
773c787
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
791c805
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
810c824
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
829c843
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
848c862
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
867c881
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
885c899
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
905c919
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
920c934,935
< FpDest = vcvtFpHFpS(fpscr, FpOp1, true);
---
> FpDest = vcvtFpHFpS(fpscr, fpscr.dn, fpscr.ahp,
> bits(fpToBits(FpOp1), 31, 16));
922c937
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
936c951,952
< FpDest = vcvtFpHFpS(fpscr, FpOp1, false);
---
> FpDest = vcvtFpHFpS(fpscr, fpscr.dn, fpscr.ahp,
> bits(fpToBits(FpOp1), 15, 0));
938c954
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
952,956c968,974
< __asm__ __volatile__("" : "=m" (FpOp1), "=m" (FpDest)
< : "m" (FpOp1), "m" (FpDest));
< FpDest = vcvtFpSFpH(fpscr, FpOp1, FpDest, true);
< __asm__ __volatile__("" :: "m" (FpDest));
< finishVfp(fpscr, state);
---
> __asm__ __volatile__("" : "=m" (FpOp1), "=m" (FpDest.uw)
> : "m" (FpOp1), "m" (FpDest.uw));
> FpDest.uw = insertBits(FpDest.uw, 31, 16,,
> vcvtFpSFpH(fpscr, fpscr.fz, fpscr.dn,
> fpscr.rMode, fpscr.ahp, FpOp1));
> __asm__ __volatile__("" :: "m" (FpDest.uw));
> finishVfp(fpscr, state, fpscr.fz);
970,974c988,994
< __asm__ __volatile__("" : "=m" (FpOp1), "=m" (FpDest)
< : "m" (FpOp1), "m" (FpDest));
< FpDest = vcvtFpSFpH(fpscr, FpOp1, FpDest, false);
< __asm__ __volatile__("" :: "m" (FpDest));
< finishVfp(fpscr, state);
---
> __asm__ __volatile__("" : "=m" (FpOp1), "=m" (FpDest.uw)
> : "m" (FpOp1), "m" (FpDest.uw));
> FpDest.uw = insertBits(FpDest.uw, 15, 0,
> vcvtFpSFpH(fpscr, fpscr.fz, fpscr.dn,
> fpscr.rMode, fpscr.ahp, FpOp1));
> __asm__ __volatile__("" :: "m" (FpDest.uw));
> finishVfp(fpscr, state, fpscr.fz);
1204c1224
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1222c1242
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1241c1261
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1259c1279
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1275c1295
< FpDest = vfpSFixedToFpS(Fpscr, FpOp1.sw, false, imm);
---
> FpDest = vfpSFixedToFpS(fpscr.fz, fpscr.dn, FpOp1.sw, false, imm);
1277c1297
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1292c1312
< double cDest = vfpSFixedToFpD(Fpscr, mid, false, imm);
---
> double cDest = vfpSFixedToFpD(fpscr.fz, fpscr.dn, mid, false, imm);
1294c1314
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1310c1330
< FpDest = vfpUFixedToFpS(Fpscr, FpOp1.uw, false, imm);
---
> FpDest = vfpUFixedToFpS(fpscr.fz, fpscr.dn, FpOp1.uw, false, imm);
1312c1332
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1327c1347
< double cDest = vfpUFixedToFpD(Fpscr, mid, false, imm);
---
> double cDest = vfpUFixedToFpD(fpscr.fz, fpscr.dn, mid, false, imm);
1329c1349
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1348c1368
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1367c1387
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1387c1407
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1406c1426
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1423c1443
< FpDest = vfpSFixedToFpS(Fpscr, FpOp1.sh, true, imm);
---
> FpDest = vfpSFixedToFpS(fpscr.fz, fpscr.dn, FpOp1.sh, true, imm);
1425c1445
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1441c1461
< double cDest = vfpSFixedToFpD(Fpscr, mid, true, imm);
---
> double cDest = vfpSFixedToFpD(fpscr.fz, fpscr.dn, mid, true, imm);
1443c1463
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1460c1480
< FpDest = vfpUFixedToFpS(Fpscr, FpOp1.uh, true, imm);
---
> FpDest = vfpUFixedToFpS(fpscr.fz, fpscr.dn, FpOp1.uh, true, imm);
1462c1482
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);
1478c1498
< double cDest = vfpUFixedToFpD(Fpscr, mid, true, imm);
---
> double cDest = vfpUFixedToFpD(fpscr.fz, fpscr.dn, mid, true, imm);
1480c1500
< finishVfp(fpscr, state);
---
> finishVfp(fpscr, state, fpscr.fz);