summaryrefslogtreecommitdiff
path: root/rtl/arm
diff options
context:
space:
mode:
authorflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2018-11-07 22:02:58 +0000
committerflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2018-11-07 22:02:58 +0000
commit7b60950dcf223e810f0c95631dd4d0b9bd3f6e3a (patch)
treed1909ab747d59e907fc8c40f6032cc5985b2b6a7 /rtl/arm
parent23984c15fba0028f811b7e26d13a9798b91f9656 (diff)
downloadfpc-7b60950dcf223e810f0c95631dd4d0b9bd3f6e3a.tar.gz
+ initial work for tls-based threadvar support on arm-linux
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40267 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/arm')
-rw-r--r--rtl/arm/arm.inc9
1 files changed, 9 insertions, 0 deletions
diff --git a/rtl/arm/arm.inc b/rtl/arm/arm.inc
index 3ff4e744ec..672968d449 100644
--- a/rtl/arm/arm.inc
+++ b/rtl/arm/arm.inc
@@ -96,6 +96,15 @@ begin
end;
{$endif wince}
+{$ifdef linux}
+function fpc_read_tp : pointer; [public, alias: 'fpc_read_tp'];assembler; nostackframe;
+asm
+ // Helper is located at 0xffff0fe0
+ mvn r0,#0x0000f000 // mov r0, #0xffff0fff
+ sub pc,r0,#0x1f // Jump to helper
+end;
+{$endif linux}
+
{****************************************************************************
stack frame related stuff
****************************************************************************}