summaryrefslogtreecommitdiff
path: root/src/ldso/x32
diff options
context:
space:
mode:
authorrofl0r <retnyg@gmx.net>2014-01-07 22:43:34 +0100
committerrofl0r <retnyg@gmx.net>2014-02-23 11:07:18 +0100
commit323272db175204b951f119dae4bd99ef05e20f13 (patch)
tree70329156d5189294b1e9e7f9c7c326924ad62e35 /src/ldso/x32
parent0f169cbb79c39a5b15f7a27d9283cdeb6e122b8f (diff)
downloadmusl-323272db175204b951f119dae4bd99ef05e20f13.tar.gz
import vanilla x86_64 code as x32
Diffstat (limited to 'src/ldso/x32')
-rw-r--r--src/ldso/x32/dlsym.s6
-rw-r--r--src/ldso/x32/start.s16
2 files changed, 22 insertions, 0 deletions
diff --git a/src/ldso/x32/dlsym.s b/src/ldso/x32/dlsym.s
new file mode 100644
index 00000000..3c16616a
--- /dev/null
+++ b/src/ldso/x32/dlsym.s
@@ -0,0 +1,6 @@
+.text
+.global dlsym
+.type dlsym,@function
+dlsym:
+ mov (%rsp),%rdx
+ jmp __dlsym
diff --git a/src/ldso/x32/start.s b/src/ldso/x32/start.s
new file mode 100644
index 00000000..80c1d08d
--- /dev/null
+++ b/src/ldso/x32/start.s
@@ -0,0 +1,16 @@
+.text
+.global _start
+_start:
+ mov (%rsp),%rdi
+ lea 8(%rsp),%rsi
+ call __dynlink
+ pop %rdi
+1: dec %edi
+ pop %rsi
+ cmp $-1,%rsi
+ jz 1b
+ inc %edi
+ push %rsi
+ push %rdi
+ xor %edx,%edx
+ jmp *%rax