663c663,664
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> VfpSavedState state = prepFpState(fpscr.rMode);
667c668,669
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
677,678c679,680
< IntDoubleUnion cDest;
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> VfpSavedState state = prepFpState(fpscr.rMode);
680,684c682,687
< cDest.fp = (uint64_t)FpOp1P0.uw;
< __asm__ __volatile__("" :: "m" (cDest.fp));
< Fpscr = setVfpFpscr(Fpscr, state);
< FpDestP0.uw = cDest.bits;
< FpDestP1.uw = cDest.bits >> 32;
---
> double cDest = (uint64_t)FpOp1P0.uw;
> __asm__ __volatile__("" :: "m" (cDest));
> finishVfp(fpscr, state);
> Fpscr = fpscr;
> FpDestP0.uw = dblLow(cDest);
> FpDestP1.uw = dblHi(cDest);
694c697,698
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> VfpSavedState state = prepFpState(fpscr.rMode);
698c702,703
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
708,709c713,714
< IntDoubleUnion cDest;
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> VfpSavedState state = prepFpState(fpscr.rMode);
711,715c716,721
< cDest.fp = FpOp1P0.sw;
< __asm__ __volatile__("" :: "m" (cDest.fp));
< Fpscr = setVfpFpscr(Fpscr, state);
< FpDestP0.uw = cDest.bits;
< FpDestP1.uw = cDest.bits >> 32;
---
> double cDest = FpOp1P0.sw;
> __asm__ __volatile__("" :: "m" (cDest));
> finishVfp(fpscr, state);
> Fpscr = fpscr;
> FpDestP0.uw = dblLow(cDest);
> FpDestP1.uw = dblHi(cDest);
725,726c731,733
< vfpFlushToZero(Fpscr, FpOp1);
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> VfpSavedState state = prepFpState(fpscr.rMode);
> vfpFlushToZero(fpscr, FpOp1);
730c737,738
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
740,745c748,753
< IntDoubleUnion cOp1;
< cOp1.bits = ((uint64_t)FpOp1P0.uw | ((uint64_t)FpOp1P1.uw << 32));
< vfpFlushToZero(Fpscr, cOp1.fp);
< VfpSavedState state = prepVfpFpscr(Fpscr);
< __asm__ __volatile__("" : "=m" (cOp1.fp) : "m" (cOp1.fp));
< uint64_t result = vfpFpDToFixed(cOp1.fp, false, false, 0, false);
---
> FPSCR fpscr = Fpscr;
> double cOp1 = dbl(FpOp1P0.uw, FpOp1P1.uw);
> vfpFlushToZero(fpscr, cOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
> __asm__ __volatile__("" : "=m" (cOp1) : "m" (cOp1));
> uint64_t result = vfpFpDToFixed(cOp1, false, false, 0, false);
747c755,756
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
758,759c767,769
< vfpFlushToZero(Fpscr, FpOp1);
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> VfpSavedState state = prepFpState(fpscr.rMode);
> vfpFlushToZero(fpscr, FpOp1);
763c773,774
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
773,778c784,789
< IntDoubleUnion cOp1;
< cOp1.bits = ((uint64_t)FpOp1P0.uw | ((uint64_t)FpOp1P1.uw << 32));
< vfpFlushToZero(Fpscr, cOp1.fp);
< VfpSavedState state = prepVfpFpscr(Fpscr);
< __asm__ __volatile__("" : "=m" (cOp1.fp) : "m" (cOp1.fp));
< int64_t result = vfpFpDToFixed(cOp1.fp, true, false, 0, false);
---
> FPSCR fpscr = Fpscr;
> double cOp1 = dbl(FpOp1P0.uw, FpOp1P1.uw);
> vfpFlushToZero(fpscr, cOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
> __asm__ __volatile__("" : "=m" (cOp1) : "m" (cOp1));
> int64_t result = vfpFpDToFixed(cOp1, true, false, 0, false);
780c791,792
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
791,792c803,805
< vfpFlushToZero(Fpscr, FpOp1);
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> vfpFlushToZero(fpscr, FpOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
797c810,811
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
807,810c821,824
< IntDoubleUnion cOp1;
< cOp1.bits = ((uint64_t)FpOp1P0.uw | ((uint64_t)FpOp1P1.uw << 32));
< vfpFlushToZero(Fpscr, cOp1.fp);
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> double cOp1 = dbl(FpOp1P0.uw, FpOp1P1.uw);
> vfpFlushToZero(fpscr, cOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
812,813c826,827
< __asm__ __volatile__("" : "=m" (cOp1.fp) : "m" (cOp1.fp));
< uint64_t result = vfpFpDToFixed(cOp1.fp, false, false, 0);
---
> __asm__ __volatile__("" : "=m" (cOp1) : "m" (cOp1));
> uint64_t result = vfpFpDToFixed(cOp1, false, false, 0);
815c829,830
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
826,827c841,843
< vfpFlushToZero(Fpscr, FpOp1);
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> vfpFlushToZero(fpscr, FpOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
832c848,849
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
842,845c859,862
< IntDoubleUnion cOp1;
< cOp1.bits = ((uint64_t)FpOp1P0.uw | ((uint64_t)FpOp1P1.uw << 32));
< vfpFlushToZero(Fpscr, cOp1.fp);
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> double cOp1 = dbl(FpOp1P0.uw, FpOp1P1.uw);
> vfpFlushToZero(fpscr, cOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
847,848c864,865
< __asm__ __volatile__("" : "=m" (cOp1.fp) : "m" (cOp1.fp));
< int64_t result = vfpFpDToFixed(cOp1.fp, true, false, 0);
---
> __asm__ __volatile__("" : "=m" (cOp1) : "m" (cOp1));
> int64_t result = vfpFpDToFixed(cOp1, true, false, 0);
850c867,868
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
861,863c879,881
< IntDoubleUnion cDest;
< vfpFlushToZero(Fpscr, FpOp1);
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> vfpFlushToZero(fpscr, FpOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
865,869c883,888
< cDest.fp = fixFpSFpDDest(Fpscr, FpOp1);
< __asm__ __volatile__("" :: "m" (cDest.fp));
< Fpscr = setVfpFpscr(Fpscr, state);
< FpDestP0.uw = cDest.bits;
< FpDestP1.uw = cDest.bits >> 32;
---
> double cDest = fixFpSFpDDest(Fpscr, FpOp1);
> __asm__ __volatile__("" :: "m" (cDest));
> finishVfp(fpscr, state);
> Fpscr = fpscr;
> FpDestP0.uw = dblLow(cDest);
> FpDestP1.uw = dblHi(cDest);
879,884c898,903
< IntDoubleUnion cOp1;
< cOp1.bits = ((uint64_t)FpOp1P0.uw | ((uint64_t)FpOp1P1.uw << 32));
< vfpFlushToZero(Fpscr, cOp1.fp);
< VfpSavedState state = prepVfpFpscr(Fpscr);
< __asm__ __volatile__("" : "=m" (cOp1.fp) : "m" (cOp1.fp));
< FpDest = fixFpDFpSDest(Fpscr, cOp1.fp);
---
> FPSCR fpscr = Fpscr;
> double cOp1 = dbl(FpOp1P0.uw, FpOp1P1.uw);
> vfpFlushToZero(fpscr, cOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
> __asm__ __volatile__("" : "=m" (cOp1) : "m" (cOp1));
> FpDest = fixFpDFpSDest(Fpscr, cOp1);
886c905,906
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
896d915
< vfpFlushToZero(Fpscr, FpDest, FpOp1);
897a917
> vfpFlushToZero(fpscr, FpDest, FpOp1);
924,927c944,945
< IntDoubleUnion cOp1, cDest;
< cDest.bits = ((uint64_t)FpDestP0.uw | ((uint64_t)FpDestP1.uw << 32));
< cOp1.bits = ((uint64_t)FpOp1P0.uw | ((uint64_t)FpOp1P1.uw << 32));
< vfpFlushToZero(Fpscr, cDest.fp, cOp1.fp);
---
> double cOp1 = dbl(FpOp1P0.uw, FpOp1P1.uw);
> double cDest = dbl(FpDestP0.uw, FpDestP1.uw);
929c947,948
< if (cDest.fp == cOp1.fp) {
---
> vfpFlushToZero(fpscr, cDest, cOp1);
> if (cDest == cOp1) {
931c950
< } else if (cDest.fp < cOp1.fp) {
---
> } else if (cDest < cOp1) {
933c952
< } else if (cDest.fp > cOp1.fp) {
---
> } else if (cDest > cOp1) {
937,940c956,959
< const bool nan1 = std::isnan(cDest.fp);
< const bool signal1 = nan1 && ((cDest.bits & qnan) != qnan);
< const bool nan2 = std::isnan(cOp1.fp);
< const bool signal2 = nan2 && ((cOp1.bits & qnan) != qnan);
---
> const bool nan1 = std::isnan(cDest);
> const bool signal1 = nan1 && ((fpToBits(cDest) & qnan) != qnan);
> const bool nan2 = std::isnan(cOp1);
> const bool signal2 = nan2 && ((fpToBits(cOp1) & qnan) != qnan);
955d973
< vfpFlushToZero(Fpscr, FpDest);
956a975
> vfpFlushToZero(fpscr, FpDest);
983d1001
< IntDoubleUnion cDest;
986,987c1004
< cDest.bits = ((uint64_t)FpDestP0.uw | ((uint64_t)FpDestP1.uw << 32));
< vfpFlushToZero(Fpscr, cDest.fp);
---
> double cDest = dbl(FpDestP0.uw, FpDestP1.uw);
989c1006,1007
< if (cDest.fp == imm) {
---
> vfpFlushToZero(fpscr, cDest);
> if (cDest == imm) {
991c1009
< } else if (cDest.fp < imm) {
---
> } else if (cDest < imm) {
993c1011
< } else if (cDest.fp > imm) {
---
> } else if (cDest > imm) {
997,998c1015,1016
< const bool nan = std::isnan(cDest.fp);
< const bool signal = nan && ((cDest.bits & qnan) != qnan);
---
> const bool nan = std::isnan(cDest);
> const bool signal = nan && ((fpToBits(cDest) & qnan) != qnan);
1013d1030
< vfpFlushToZero(Fpscr, FpDest, FpOp1);
1014a1032
> vfpFlushToZero(fpscr, FpDest, FpOp1);
1035,1038c1053,1054
< IntDoubleUnion cOp1, cDest;
< cDest.bits = ((uint64_t)FpDestP0.uw | ((uint64_t)FpDestP1.uw << 32));
< cOp1.bits = ((uint64_t)FpOp1P0.uw | ((uint64_t)FpOp1P1.uw << 32));
< vfpFlushToZero(Fpscr, cDest.fp, cOp1.fp);
---
> double cOp1 = dbl(FpOp1P0.uw, FpOp1P1.uw);
> double cDest = dbl(FpDestP0.uw, FpDestP1.uw);
1040c1056,1057
< if (cDest.fp == cOp1.fp) {
---
> vfpFlushToZero(fpscr, cDest, cOp1);
> if (cDest == cOp1) {
1042c1059
< } else if (cDest.fp < cOp1.fp) {
---
> } else if (cDest < cOp1) {
1044c1061
< } else if (cDest.fp > cOp1.fp) {
---
> } else if (cDest > cOp1) {
1060d1076
< vfpFlushToZero(Fpscr, FpDest);
1061a1078
> vfpFlushToZero(fpscr, FpDest);
1082,1084c1099
< IntDoubleUnion cDest;
< cDest.bits = ((uint64_t)FpDestP0.uw | ((uint64_t)FpDestP1.uw << 32));
< vfpFlushToZero(Fpscr, cDest.fp);
---
> double cDest = dbl(FpDestP0.uw, FpDestP1.uw);
1086c1101,1102
< if (cDest.fp == imm) {
---
> vfpFlushToZero(fpscr, cDest);
> if (cDest == imm) {
1088c1104
< } else if (cDest.fp < imm) {
---
> } else if (cDest < imm) {
1090c1106
< } else if (cDest.fp > imm) {
---
> } else if (cDest > imm) {
1113,1114c1129,1131
< vfpFlushToZero(Fpscr, FpOp1);
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> vfpFlushToZero(fpscr, FpOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
1118c1135,1136
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
1128,1133c1146,1151
< IntDoubleUnion cOp1;
< cOp1.bits = ((uint64_t)FpOp1P0.uw | ((uint64_t)FpOp1P1.uw << 32));
< vfpFlushToZero(Fpscr, cOp1.fp);
< VfpSavedState state = prepVfpFpscr(Fpscr);
< __asm__ __volatile__("" : "=m" (cOp1.fp) : "m" (cOp1.fp));
< uint64_t mid = vfpFpDToFixed(cOp1.fp, true, false, imm);
---
> FPSCR fpscr = Fpscr;
> double cOp1 = dbl(FpOp1P0.uw, FpOp1P1.uw);
> vfpFlushToZero(fpscr, cOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
> __asm__ __volatile__("" : "=m" (cOp1) : "m" (cOp1));
> uint64_t mid = vfpFpDToFixed(cOp1, true, false, imm);
1135c1153,1154
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
1147,1148c1166,1168
< vfpFlushToZero(Fpscr, FpOp1);
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> vfpFlushToZero(fpscr, FpOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
1152c1172,1173
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
1162,1167c1183,1188
< IntDoubleUnion cOp1;
< cOp1.bits = ((uint64_t)FpOp1P0.uw | ((uint64_t)FpOp1P1.uw << 32));
< vfpFlushToZero(Fpscr, cOp1.fp);
< VfpSavedState state = prepVfpFpscr(Fpscr);
< __asm__ __volatile__("" : "=m" (cOp1.fp) : "m" (cOp1.fp));
< uint64_t mid = vfpFpDToFixed(cOp1.fp, false, false, imm);
---
> FPSCR fpscr = Fpscr;
> double cOp1 = dbl(FpOp1P0.uw, FpOp1P1.uw);
> vfpFlushToZero(fpscr, cOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
> __asm__ __volatile__("" : "=m" (cOp1) : "m" (cOp1));
> uint64_t mid = vfpFpDToFixed(cOp1, false, false, imm);
1169c1190,1191
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
1181c1203,1204
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> VfpSavedState state = prepFpState(fpscr.rMode);
1185c1208,1209
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
1195c1219
< IntDoubleUnion cDest;
---
> FPSCR fpscr = Fpscr;
1197c1221
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> VfpSavedState state = prepFpState(fpscr.rMode);
1199,1203c1223,1228
< cDest.fp = vfpSFixedToFpD(Fpscr, mid, false, imm);
< __asm__ __volatile__("" :: "m" (cDest.fp));
< Fpscr = setVfpFpscr(Fpscr, state);
< FpDestP0.uw = cDest.bits;
< FpDestP1.uw = cDest.bits >> 32;
---
> double cDest = vfpSFixedToFpD(Fpscr, mid, false, imm);
> __asm__ __volatile__("" :: "m" (cDest));
> finishVfp(fpscr, state);
> Fpscr = fpscr;
> FpDestP0.uw = dblLow(cDest);
> FpDestP1.uw = dblHi(cDest);
1213c1238,1239
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> VfpSavedState state = prepFpState(fpscr.rMode);
1217c1243,1244
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
1227c1254
< IntDoubleUnion cDest;
---
> FPSCR fpscr = Fpscr;
1229c1256
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> VfpSavedState state = prepFpState(fpscr.rMode);
1231,1235c1258,1263
< cDest.fp = vfpUFixedToFpD(Fpscr, mid, false, imm);
< __asm__ __volatile__("" :: "m" (cDest.fp));
< Fpscr = setVfpFpscr(Fpscr, state);
< FpDestP0.uw = cDest.bits;
< FpDestP1.uw = cDest.bits >> 32;
---
> double cDest = vfpUFixedToFpD(Fpscr, mid, false, imm);
> __asm__ __volatile__("" :: "m" (cDest));
> finishVfp(fpscr, state);
> Fpscr = fpscr;
> FpDestP0.uw = dblLow(cDest);
> FpDestP1.uw = dblHi(cDest);
1245,1246c1273,1275
< vfpFlushToZero(Fpscr, FpOp1);
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> vfpFlushToZero(fpscr, FpOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
1250c1279,1280
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
1261,1266c1291,1296
< IntDoubleUnion cOp1;
< cOp1.bits = ((uint64_t)FpOp1P0.uw | ((uint64_t)FpOp1P1.uw << 32));
< vfpFlushToZero(Fpscr, cOp1.fp);
< VfpSavedState state = prepVfpFpscr(Fpscr);
< __asm__ __volatile__("" : "=m" (cOp1.fp) : "m" (cOp1.fp));
< uint64_t result = vfpFpDToFixed(cOp1.fp, true, true, imm);
---
> FPSCR fpscr = Fpscr;
> double cOp1 = dbl(FpOp1P0.uw, FpOp1P1.uw);
> vfpFlushToZero(fpscr, cOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
> __asm__ __volatile__("" : "=m" (cOp1) : "m" (cOp1));
> uint64_t result = vfpFpDToFixed(cOp1, true, true, imm);
1268c1298,1299
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
1281,1282c1312,1314
< vfpFlushToZero(Fpscr, FpOp1);
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> vfpFlushToZero(fpscr, FpOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
1286c1318,1319
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
1297,1302c1330,1335
< IntDoubleUnion cOp1;
< cOp1.bits = ((uint64_t)FpOp1P0.uw | ((uint64_t)FpOp1P1.uw << 32));
< vfpFlushToZero(Fpscr, cOp1.fp);
< VfpSavedState state = prepVfpFpscr(Fpscr);
< __asm__ __volatile__("" : "=m" (cOp1.fp) : "m" (cOp1.fp));
< uint64_t mid = vfpFpDToFixed(cOp1.fp, false, true, imm);
---
> FPSCR fpscr = Fpscr;
> double cOp1 = dbl(FpOp1P0.uw, FpOp1P1.uw);
> vfpFlushToZero(fpscr, cOp1);
> VfpSavedState state = prepFpState(fpscr.rMode);
> __asm__ __volatile__("" : "=m" (cOp1) : "m" (cOp1));
> uint64_t mid = vfpFpDToFixed(cOp1, false, true, imm);
1304c1337,1338
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
1317c1351,1352
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> VfpSavedState state = prepFpState(fpscr.rMode);
1321c1356,1357
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
1332c1368
< IntDoubleUnion cDest;
---
> FPSCR fpscr = Fpscr;
1334c1370
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> VfpSavedState state = prepFpState(fpscr.rMode);
1336,1340c1372,1377
< cDest.fp = vfpSFixedToFpD(Fpscr, mid, true, imm);
< __asm__ __volatile__("" :: "m" (cDest.fp));
< Fpscr = setVfpFpscr(Fpscr, state);
< FpDestP0.uw = cDest.bits;
< FpDestP1.uw = cDest.bits >> 32;
---
> double cDest = vfpSFixedToFpD(Fpscr, mid, true, imm);
> __asm__ __volatile__("" :: "m" (cDest));
> finishVfp(fpscr, state);
> Fpscr = fpscr;
> FpDestP0.uw = dblLow(cDest);
> FpDestP1.uw = dblHi(cDest);
1351c1388,1389
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> FPSCR fpscr = Fpscr;
> VfpSavedState state = prepFpState(fpscr.rMode);
1355c1393,1394
< Fpscr = setVfpFpscr(Fpscr, state);
---
> finishVfp(fpscr, state);
> Fpscr = fpscr;
1366c1405
< IntDoubleUnion cDest;
---
> FPSCR fpscr = Fpscr;
1368c1407
< VfpSavedState state = prepVfpFpscr(Fpscr);
---
> VfpSavedState state = prepFpState(fpscr.rMode);
1370,1374c1409,1414
< cDest.fp = vfpUFixedToFpD(Fpscr, mid, true, imm);
< __asm__ __volatile__("" :: "m" (cDest.fp));
< Fpscr = setVfpFpscr(Fpscr, state);
< FpDestP0.uw = cDest.bits;
< FpDestP1.uw = cDest.bits >> 32;
---
> double cDest = vfpUFixedToFpD(Fpscr, mid, true, imm);
> __asm__ __volatile__("" :: "m" (cDest));
> finishVfp(fpscr, state);
> Fpscr = fpscr;
> FpDestP0.uw = dblLow(cDest);
> FpDestP1.uw = dblHi(cDest);