From: grischka Date: Mon, 4 Feb 2013 16:24:03 +0000 (+0100) Subject: tccrun.c: unify rt_get_caller_pc prototype X-Git-Tag: release_0_9_26~31 X-Git-Url: https://repo.or.cz/w/tinycc.git/commitdiff_plain/4b539aa67de9788ed30b50c95136dcfe8e5d935d tccrun.c: unify rt_get_caller_pc prototype --- diff --git a/tccrun.c b/tccrun.c index a2cc82f3..e28529b5 100644 --- a/tccrun.c +++ b/tccrun.c @@ -461,10 +461,10 @@ static void set_exception_handler(void) #define REG_EBP EBP #endif -/* return the PC at frame level 'level'. Return non zero if not found */ +/* return the PC at frame level 'level'. Return negative if not found */ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) { - unsigned long fp; + addr_t fp; int i; if (level == 0) { @@ -492,9 +492,9 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) /* XXX: check address validity with program info */ if (fp <= 0x1000 || fp >= 0xc0000000) return -1; - fp = ((unsigned long *)fp)[0]; + fp = ((addr_t *)fp)[0]; } - *paddr = ((unsigned long *)fp)[1]; + *paddr = ((addr_t *)fp)[1]; return 0; } } @@ -502,11 +502,10 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) /* ------------------------------------------------------------- */ #elif defined(__x86_64__) -/* return the PC at frame level 'level'. Return non zero if not found */ -static int rt_get_caller_pc(unsigned long *paddr, - ucontext_t *uc, int level) +/* return the PC at frame level 'level'. Return negative if not found */ +static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) { - unsigned long fp; + addr_t fp; int i; if (level == 0) { @@ -531,9 +530,9 @@ static int rt_get_caller_pc(unsigned long *paddr, /* XXX: check address validity with program info */ if (fp <= 0x1000) return -1; - fp = ((unsigned long *)fp)[0]; + fp = ((addr_t *)fp)[0]; } - *paddr = ((unsigned long *)fp)[1]; + *paddr = ((addr_t *)fp)[1]; return 0; } } @@ -542,10 +541,9 @@ static int rt_get_caller_pc(unsigned long *paddr, #elif defined(__arm__) /* return the PC at frame level 'level'. Return negative if not found */ -static int rt_get_caller_pc(unsigned long *paddr, - ucontext_t *uc, int level) +static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) { - uint32_t fp, sp; + addr_t fp, sp; int i; if (level == 0) { @@ -569,15 +567,15 @@ static int rt_get_caller_pc(unsigned long *paddr, if (fp < sp + 12 || fp & 3) return -1; for(i = 1; i < level; i++) { - sp = ((uint32_t *)fp)[-2]; + sp = ((addr_t *)fp)[-2]; if (sp < fp || sp - fp > 16 || sp & 3) return -1; - fp = ((uint32_t *)fp)[-3]; + fp = ((addr_t *)fp)[-3]; if (fp <= sp || fp - sp < 12 || fp & 3) return -1; } /* XXX: check address validity with program info */ - *paddr = ((uint32_t *)fp)[-1]; + *paddr = ((addr_t *)fp)[-1]; return 0; } } @@ -586,8 +584,7 @@ static int rt_get_caller_pc(unsigned long *paddr, #else #warning add arch specific rt_get_caller_pc() -static int rt_get_caller_pc(unsigned long *paddr, - ucontext_t *uc, int level) +static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) { return -1; }