diff options
Diffstat (limited to 'mdk-stage1/dietlibc/x86_64')
-rw-r--r-- | mdk-stage1/dietlibc/x86_64/msgctl.S | 3 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/x86_64/msgget.S | 3 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/x86_64/msgrcv.S | 3 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/x86_64/msgsnd.S | 3 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/x86_64/semctl.S | 3 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/x86_64/semget.S | 3 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/x86_64/semop.S | 3 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/x86_64/shmat.S | 3 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/x86_64/shmctl.S | 3 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/x86_64/shmdt.S | 3 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/x86_64/shmget.S | 3 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/x86_64/start.S | 25 |
12 files changed, 54 insertions, 4 deletions
diff --git a/mdk-stage1/dietlibc/x86_64/msgctl.S b/mdk-stage1/dietlibc/x86_64/msgctl.S new file mode 100644 index 000000000..d7caed2cc --- /dev/null +++ b/mdk-stage1/dietlibc/x86_64/msgctl.S @@ -0,0 +1,3 @@ +#include "syscalls.h" + +syscall(msgctl,msgctl) diff --git a/mdk-stage1/dietlibc/x86_64/msgget.S b/mdk-stage1/dietlibc/x86_64/msgget.S new file mode 100644 index 000000000..518d67ac4 --- /dev/null +++ b/mdk-stage1/dietlibc/x86_64/msgget.S @@ -0,0 +1,3 @@ +#include "syscalls.h" + +syscall(msgget,msgget) diff --git a/mdk-stage1/dietlibc/x86_64/msgrcv.S b/mdk-stage1/dietlibc/x86_64/msgrcv.S new file mode 100644 index 000000000..ab62e6c30 --- /dev/null +++ b/mdk-stage1/dietlibc/x86_64/msgrcv.S @@ -0,0 +1,3 @@ +#include "syscalls.h" + +syscall(msgrcv,msgrcv) diff --git a/mdk-stage1/dietlibc/x86_64/msgsnd.S b/mdk-stage1/dietlibc/x86_64/msgsnd.S new file mode 100644 index 000000000..890a996a2 --- /dev/null +++ b/mdk-stage1/dietlibc/x86_64/msgsnd.S @@ -0,0 +1,3 @@ +#include "syscalls.h" + +syscall(msgsnd,msgsnd) diff --git a/mdk-stage1/dietlibc/x86_64/semctl.S b/mdk-stage1/dietlibc/x86_64/semctl.S new file mode 100644 index 000000000..e215ed955 --- /dev/null +++ b/mdk-stage1/dietlibc/x86_64/semctl.S @@ -0,0 +1,3 @@ +#include "syscalls.h" + +syscall(semctl,semctl) diff --git a/mdk-stage1/dietlibc/x86_64/semget.S b/mdk-stage1/dietlibc/x86_64/semget.S new file mode 100644 index 000000000..67f488546 --- /dev/null +++ b/mdk-stage1/dietlibc/x86_64/semget.S @@ -0,0 +1,3 @@ +#include "syscalls.h" + +syscall(semget,semget) diff --git a/mdk-stage1/dietlibc/x86_64/semop.S b/mdk-stage1/dietlibc/x86_64/semop.S new file mode 100644 index 000000000..81b6fc606 --- /dev/null +++ b/mdk-stage1/dietlibc/x86_64/semop.S @@ -0,0 +1,3 @@ +#include "syscalls.h" + +syscall(semop,semop) diff --git a/mdk-stage1/dietlibc/x86_64/shmat.S b/mdk-stage1/dietlibc/x86_64/shmat.S new file mode 100644 index 000000000..51248173d --- /dev/null +++ b/mdk-stage1/dietlibc/x86_64/shmat.S @@ -0,0 +1,3 @@ +#include "syscalls.h" + +syscall(shmat,shmat) diff --git a/mdk-stage1/dietlibc/x86_64/shmctl.S b/mdk-stage1/dietlibc/x86_64/shmctl.S new file mode 100644 index 000000000..d56caace4 --- /dev/null +++ b/mdk-stage1/dietlibc/x86_64/shmctl.S @@ -0,0 +1,3 @@ +#include "syscalls.h" + +syscall(shmctl,shmctl) diff --git a/mdk-stage1/dietlibc/x86_64/shmdt.S b/mdk-stage1/dietlibc/x86_64/shmdt.S new file mode 100644 index 000000000..d9812a799 --- /dev/null +++ b/mdk-stage1/dietlibc/x86_64/shmdt.S @@ -0,0 +1,3 @@ +#include "syscalls.h" + +syscall(shmdt,shmdt) diff --git a/mdk-stage1/dietlibc/x86_64/shmget.S b/mdk-stage1/dietlibc/x86_64/shmget.S new file mode 100644 index 000000000..82914223f --- /dev/null +++ b/mdk-stage1/dietlibc/x86_64/shmget.S @@ -0,0 +1,3 @@ +#include "syscalls.h" + +syscall(shmget,shmget) diff --git a/mdk-stage1/dietlibc/x86_64/start.S b/mdk-stage1/dietlibc/x86_64/start.S index 328bbcfe3..5e8356350 100644 --- a/mdk-stage1/dietlibc/x86_64/start.S +++ b/mdk-stage1/dietlibc/x86_64/start.S @@ -3,19 +3,36 @@ .text .global _start _start: +#ifdef WANT_DYNAMIC + movq %rdx, %rcx /* %rcx = dynamic fini */ +#endif popq %rdi /* %rdi = argc */ movq %rsp,%rsi /* %rsi = argv */ pushq %rdi leaq 8(%rsi,%rdi,8),%rdx /* %rdx = envp = (8*rdi)+%rsi+8 */ - movq %rdx, environ +#ifdef __DYN_LIB + movq environ@GOTPCREL(%rip), %rax + movq %rdx, (%rax) +#else + movq %rdx, environ(%rip) +#endif #ifdef PROFILING - pushq $_etext - pushq $.text + pushq %rdi /* save reg args */ + pushq %rsi + pushq %rdx + pushq %rcx + + leaq _etext(%rip), %rsi /* highpc */ + leaq .text(%rip), %rdi /* lowpc */ call monitor - addq $0x16, %rsp + + popq %rcx /* restore reg args */ + popq %rdx + popq %rsi + popq %rdi #endif #ifdef WANT_DYNAMIC |