diff --git a/arch/x64/arch-switch.hh b/arch/x64/arch-switch.hh
index 18b407e3d40209c2376badbad180a57dd084e5d2..6bdfce5f9bf3d9be910efbd038c68480875bccbe 100644
--- a/arch/x64/arch-switch.hh
+++ b/arch/x64/arch-switch.hh
@@ -15,8 +15,6 @@
 extern "C" {
 void thread_main(void);
 void thread_main_c(sched::thread* t);
-void stack_trampoline(sched::thread* t, void (*func)(sched::thread*),
-                      void** stacktop);
 }
 
 namespace sched {
diff --git a/arch/x64/entry.S b/arch/x64/entry.S
index fe05f39d3f7874a04286dae8ebc7ba4f544e7517..b6f5abec4337d9618083a793e39386c8f9e93655 100644
--- a/arch/x64/entry.S
+++ b/arch/x64/entry.S
@@ -159,19 +159,3 @@ call_signal_handler_thunk:
         iretq
         .cfi_endproc
 
-.global stack_trampoline
-stack_trampoline:  # %rsi=arg, %rdi=func, %rdx=stack
-        .type stack_trampoline, @function
-	.cfi_startproc simple
-	.cfi_def_cfa %rsp, 0
-	# align the stack at 16 bytes for sse
-	andq $-16, %rdx
-	sub $8, %rdx
-	mov %rsp, -8(%rdx)
-	lea -8(%rdx), %rsp
-	.cfi_rel_offset %rsp, 0
-	call *%rsi
-	pop %rsp
-	.cfi_restore %rsp
-	ret
-	.cfi_endproc