diff options
author | florian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-10-15 19:52:57 +0000 |
---|---|---|
committer | florian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-10-15 19:52:57 +0000 |
commit | a7f75eb5676662ac6ddafcc0d69610c7f4963148 (patch) | |
tree | af0d8a39712c3640f96b645a3d9e6a6bba84a3da /rtl/linux | |
parent | f42e8f227f98af73015796cd138a9caf8dbe5e42 (diff) | |
download | fpc-a7f75eb5676662ac6ddafcc0d69610c7f4963148.tar.gz |
* denormalized value floating point exception has to result in an rte 206, resolves part of #37926
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47114 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/linux')
-rw-r--r-- | rtl/linux/i386/sighnd.inc | 4 | ||||
-rw-r--r-- | rtl/linux/x86_64/sighnd.inc | 5 |
2 files changed, 4 insertions, 5 deletions
diff --git a/rtl/linux/i386/sighnd.inc b/rtl/linux/i386/sighnd.inc index 377750a366..ebf9888b0c 100644 --- a/rtl/linux/i386/sighnd.inc +++ b/rtl/linux/i386/sighnd.inc @@ -60,7 +60,7 @@ begin else if (FpuState and FPU_Underflow)<>0 then res:=206 else if (FpuState and FPU_Denormal)<>0 then - res:=216 + res:=206 else res:=207; {'Coprocessor Error'} end; @@ -80,7 +80,7 @@ begin else if (MMState and MM_Underflow)<>0 then res:=206 else if (MMState and MM_Denormal)<>0 then - res:=216 + res:=206 else res:=207; {'Coprocessor Error'} end; diff --git a/rtl/linux/x86_64/sighnd.inc b/rtl/linux/x86_64/sighnd.inc index 1f104c150f..2d84b39f5f 100644 --- a/rtl/linux/x86_64/sighnd.inc +++ b/rtl/linux/x86_64/sighnd.inc @@ -76,7 +76,7 @@ procedure SignalToRunerror(sig : longint; SigInfo: PSigInfo; SigContext: PSigCon else if (FpuState and FPU_Underflow)<>0 then res:=206 else if (FpuState and FPU_Denormal)<>0 then - res:=216 + res:=206 else if (FpuState and (FPU_StackOverflow or FPU_StackUnderflow or FPU_Invalid))<>0 Then res:=207 else @@ -100,7 +100,7 @@ procedure SignalToRunerror(sig : longint; SigInfo: PSigInfo; SigContext: PSigCon else if (MMState and MM_Underflow)<>0 then res:=206 else if (MMState and MM_Denormal)<>0 then - res:=216 + res:=206 else res:=207; {'Coprocessor Error'} @@ -122,7 +122,6 @@ procedure SignalToRunerror(sig : longint; SigInfo: PSigInfo; SigContext: PSigCon { clear top } swd:=swd and not($3700); end; - SysResetFPU; end; end; SIGILL, |