summaryrefslogtreecommitdiff
path: root/src/thread/s390x/__tls_get_offset.s
diff options
context:
space:
mode:
authorVladimir Azarov <avm@intermediate-node.net>2024-10-01 15:47:05 +0200
committerVladimir Azarov <avm@intermediate-node.net>2024-10-01 15:47:05 +0200
commit4abab5ad6c8465a7528ccdd5f49367da05f78bbd (patch)
treeebf009bf1376a5a223a915bc27cbbd791a1316bc /src/thread/s390x/__tls_get_offset.s
Initial version
Diffstat (limited to 'src/thread/s390x/__tls_get_offset.s')
-rw-r--r--src/thread/s390x/__tls_get_offset.s17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/thread/s390x/__tls_get_offset.s b/src/thread/s390x/__tls_get_offset.s
new file mode 100644
index 0000000..8ee92de
--- /dev/null
+++ b/src/thread/s390x/__tls_get_offset.s
@@ -0,0 +1,17 @@
+ .global __tls_get_offset
+ .type __tls_get_offset,%function
+__tls_get_offset:
+ stmg %r14, %r15, 112(%r15)
+ aghi %r15, -160
+
+ la %r2, 0(%r2, %r12)
+ brasl %r14, __tls_get_addr
+
+ ear %r1, %a0
+ sllg %r1, %r1, 32
+ ear %r1, %a1
+
+ sgr %r2, %r1
+
+ lmg %r14, %r15, 272(%r15)
+ br %r14