summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-03-08 22:07:07 +0000
committerflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-03-08 22:07:07 +0000
commit0225f661caa6332ab5e00ed22afec30da78cda12 (patch)
tree0c33e15b5008e2541c8d4f3ee9f2a2eed306ca86
parent7583ad7e90f541acbcbc1457abd3ab30cf2657aa (diff)
downloadfpc-0225f661caa6332ab5e00ed22afec30da78cda12.tar.gz
+ RiscV: set threadvarblocksize
* sanity check if threadvarblocksize is really set git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48925 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--rtl/unix/cthreads.pp18
1 files changed, 18 insertions, 0 deletions
diff --git a/rtl/unix/cthreads.pp b/rtl/unix/cthreads.pp
index fe7ce7cfc9..0590b2515f 100644
--- a/rtl/unix/cthreads.pp
+++ b/rtl/unix/cthreads.pp
@@ -116,41 +116,59 @@ Type PINTRTLEvent = ^TINTRTLEvent;
procedure CInitThreadvar(var offset : dword;size : dword);
begin
{$ifdef cpusparc}
+ {$define threadvarblocksize_set}
threadvarblocksize:=align(threadvarblocksize,16);
{$endif cpusparc}
{$ifdef cpusparc64}
+ {$define threadvarblocksize_set}
threadvarblocksize:=align(threadvarblocksize,16);
{$endif cpusparc64}
{$ifdef cpupowerpc}
+ {$define threadvarblocksize_set}
threadvarblocksize:=align(threadvarblocksize,8);
{$endif cpupowerc}
{$ifdef cpui386}
+ {$define threadvarblocksize_set}
threadvarblocksize:=align(threadvarblocksize,8);
{$endif cpui386}
{$ifdef cpuarm}
+ {$define threadvarblocksize_set}
threadvarblocksize:=align(threadvarblocksize,4);
{$endif cpuarm}
{$ifdef cpum68k}
+ {$define threadvarblocksize_set}
threadvarblocksize:=align(threadvarblocksize,2);
{$endif cpum68k}
{$ifdef cpux86_64}
+ {$define threadvarblocksize_set}
threadvarblocksize:=align(threadvarblocksize,16);
{$endif cpux86_64}
{$ifdef cpupowerpc64}
+ {$define threadvarblocksize_set}
threadvarblocksize:=align(threadvarblocksize,16);
{$endif cpupowerpc64}
{$ifdef cpuaarch64}
+ {$define threadvarblocksize_set}
threadvarblocksize:=align(threadvarblocksize,16);
{$endif cpuaarch64}
+ {$ifdef cpuriscv}
+ {$define threadvarblocksize_set}
+ threadvarblocksize:=align(threadvarblocksize,16);
+ {$endif cpuriscv}
+
+ {$ifndef threadvarblocksize_set}
+ {$error threadvarblocksize must be set! }
+ {$endif threadvarblocksize_set}
+
offset:=threadvarblocksize;
inc(threadvarblocksize,size);