summaryrefslogtreecommitdiff
path: root/rtl/linux
diff options
context:
space:
mode:
authorflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-10-15 19:52:57 +0000
committerflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-10-15 19:52:57 +0000
commita7f75eb5676662ac6ddafcc0d69610c7f4963148 (patch)
treeaf0d8a39712c3640f96b645a3d9e6a6bba84a3da /rtl/linux
parentf42e8f227f98af73015796cd138a9caf8dbe5e42 (diff)
downloadfpc-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.inc4
-rw-r--r--rtl/linux/x86_64/sighnd.inc5
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,