From 22b91690bc7aacb918c3dc81cc26ef05dc881fa0 Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Sat, 12 Dec 2020 06:43:58 +0000 Subject: [PATCH] aarch64: move to C trampoline --- arch/aarch64/defs.h | 3 +++ arch/aarch64/startcontext.S | 22 ---------------------- arch/aarch64/trampoline.c | 2 ++ 3 files changed, 5 insertions(+), 22 deletions(-) delete mode 100644 arch/aarch64/startcontext.S create mode 100644 arch/aarch64/trampoline.c diff --git a/arch/aarch64/defs.h b/arch/aarch64/defs.h index 4d6ef24..469e69a 100644 --- a/arch/aarch64/defs.h +++ b/arch/aarch64/defs.h @@ -18,6 +18,9 @@ # define ESR_MAGIC 0x45535201 #endif +#define FETCH_LINKPTR(dest) \ + asm("mov x0, %0" : "=rm" ((dest))) + #include "common-defs.h" #endif diff --git a/arch/aarch64/startcontext.S b/arch/aarch64/startcontext.S deleted file mode 100644 index f75e8f3..0000000 --- a/arch/aarch64/startcontext.S +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2018 Ariadne Conill - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * This software is provided 'as is' and without any warranty, express or - * implied. In no event shall the authors be liable for any damages arising - * from the use of this software. - */ - -#include "defs.h" - -FUNC(libucontext_trampoline) - /* get the proper context into position and test for NULL */ - mov x0, x19 - cbnz x0, libucontext_setcontext - - /* something went wrong, exit */ - b exit -END(libucontext_trampoline) diff --git a/arch/aarch64/trampoline.c b/arch/aarch64/trampoline.c new file mode 100644 index 0000000..83eb453 --- /dev/null +++ b/arch/aarch64/trampoline.c @@ -0,0 +1,2 @@ +#include "defs.h" +#include "common-trampoline.c"