From afcca79d7b87dafc8eceb1498cdc86686eb74f2d Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Sat, 12 Dec 2020 06:40:27 +0000 Subject: [PATCH] arm: move to C trampoline --- arch/arm/defs.h | 3 +++ arch/arm/startcontext.S | 23 ----------------------- arch/arm/trampoline.c | 2 ++ 3 files changed, 5 insertions(+), 23 deletions(-) delete mode 100644 arch/arm/startcontext.S create mode 100644 arch/arm/trampoline.c diff --git a/arch/arm/defs.h b/arch/arm/defs.h index 27a94a7..0834d9e 100644 --- a/arch/arm/defs.h +++ b/arch/arm/defs.h @@ -5,6 +5,9 @@ #define TYPE(__proc) +#define FETCH_LINKPTR(dest) \ + asm("movs r0, %0" : "=rm" ((dest))) + #include "common-defs.h" #endif diff --git a/arch/arm/startcontext.S b/arch/arm/startcontext.S deleted file mode 100644 index 3b6108c..0000000 --- a/arch/arm/startcontext.S +++ /dev/null @@ -1,23 +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. - */ - -.globl libucontext_trampoline; -.fnstart -.cantunwind - nop -libucontext_trampoline: - /* get the proper context into position and test for NULL */ - movs r0, r4 - bne libucontext_setcontext@plt - - /* we are returning into a null context, it seems, so maybe we should exit */ - b exit@plt diff --git a/arch/arm/trampoline.c b/arch/arm/trampoline.c new file mode 100644 index 0000000..83eb453 --- /dev/null +++ b/arch/arm/trampoline.c @@ -0,0 +1,2 @@ +#include "defs.h" +#include "common-trampoline.c"