From b14ef0e24bcb70d70360690130b2bf2a0c8f8d33 Mon Sep 17 00:00:00 2001 From: Edmund Grimley Evans Date: Fri, 13 Feb 2015 18:58:31 +0000 Subject: Add arm64 (AArch64) as a target architecture. --- tccrun.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'tccrun.c') diff --git a/tccrun.c b/tccrun.c index 13c2012..264322b 100644 --- a/tccrun.c +++ b/tccrun.c @@ -604,6 +604,27 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) } } +/* ------------------------------------------------------------- */ +#elif defined(__aarch64__) + +static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) +{ + if (level < 0) + return -1; + else if (level == 0) { + *paddr = uc->uc_mcontext.pc; + return 0; + } + else { + addr_t *fp = (addr_t *)uc->uc_mcontext.regs[29]; + int i; + for (i = 1; i < level; i++) + fp = (addr_t *)fp[0]; + *paddr = fp[1]; + return 0; + } +} + /* ------------------------------------------------------------- */ #else -- cgit v1.3.1