From 33f286000db35fe50639c237caa736deea304585 Mon Sep 17 00:00:00 2001 From: johannst Date: Tue, 22 Sep 2020 23:48:09 +0200 Subject: split classes into separate files, add arch specific subdir --- lib/thread_create.s | 67 ----------------------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 lib/thread_create.s (limited to 'lib/thread_create.s') diff --git a/lib/thread_create.s b/lib/thread_create.s deleted file mode 100644 index 2aeb758..0000000 --- a/lib/thread_create.s +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright (c) 2020 Johannes Stoelp - -# SysV AMD64 ABI -# int/ptr args : rdi, rsi, rdx, rcx, r8, r9 -# int/ptr ret : rax - - .intel_syntax noprefix - .section .text, "ax", @progbits - - - # extern "C" void thread_create(); - .global thread_create - .type thread_create, @function -thread_create: - .cfi_startproc - mov rdi, qword ptr [rsp+0x8] - mov rsi, qword ptr [rsp] - - call rsi - - # FIXME: no return from thread after user fn finished. -1: - jmp 1b - .cfi_endproc - .size thread_create, .-thread_create - - - # extern "C" void yield(const void* new_stack, void* const* old_stack); - # ^^^^^^^^^ ^^^^^^^^^ - # rdi rsi - .global yield - .type yield, @function -yield: - .cfi_startproc - // prologue - push rbp - mov rbp, rsp - - // push callee saved registers - push rbx - push rbp - push r12 - push r13 - push r14 - push r15 - - // arg0: rdi holds new stack - // arg1: rsi holds addr to location current stack must be saved - mov [rsi], rsp # save current stack ptr - mov rsp, rdi # switch to new stack ptr - - // pop callee saved registers - pop r15 - pop r14 - pop r13 - pop r12 - pop rbp - pop rbx - - // epilogue - mov rsp, rbp - pop rbp - - ret - .cfi_endproc - .size yield, .-yield - -- cgit v1.2.3