1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
--- a/fpcsrc/rtl/arm/mathu.inc 2012/03/29 20:50:09 20660
+++ b/fpcsrc/rtl/arm/mathu.inc 2012/07/23 07:26:57 21952
@@ -281,22 +281,22 @@
Result:=[];
cw:=VFP_GetCW;
- if (cw and _VFP_ENABLE_IM)<>0 then
+ if (cw and _VFP_ENABLE_IM)=0 then
include(Result,exInvalidOp);
- if (cw and _VFP_ENABLE_DM)<>0 then
+ if (cw and _VFP_ENABLE_DM)=0 then
include(Result,exDenormalized);
- if (cw and _VFP_ENABLE_ZM)<>0 then
+ if (cw and _VFP_ENABLE_ZM)=0 then
include(Result,exZeroDivide);
- if (cw and _VFP_ENABLE_OM)<>0 then
+ if (cw and _VFP_ENABLE_OM)=0 then
include(Result,exOverflow);
- if (cw and _VFP_ENABLE_UM)<>0 then
+ if (cw and _VFP_ENABLE_UM)=0 then
include(Result,exUnderflow);
- if (cw and _VFP_ENABLE_PM)<>0 then
+ if (cw and _VFP_ENABLE_PM)=0 then
include(Result,exPrecision);
end;
@@ -308,22 +308,22 @@
cw:=VFP_GetCW and not(_VFP_ENABLE_ALL);
{$ifndef darwin}
- if exInvalidOp in Mask then
+ if not(exInvalidOp in Mask) then
cw:=cw or _VFP_ENABLE_IM;
- if exDenormalized in Mask then
+ if not(exDenormalized in Mask) then
cw:=cw or _VFP_ENABLE_DM;
- if exZeroDivide in Mask then
+ if not(exZeroDivide in Mask) then
cw:=cw or _VFP_ENABLE_ZM;
- if exOverflow in Mask then
+ if not(exOverflow in Mask) then
cw:=cw or _VFP_ENABLE_OM;
- if exUnderflow in Mask then
+ if not(exUnderflow in Mask) then
cw:=cw or _VFP_ENABLE_UM;
- if exPrecision in Mask then
+ if not(exPrecision in Mask) then
cw:=cw or _VFP_ENABLE_PM;
{$endif}
VFP_SetCW(cw);
|