aboutsummaryrefslogtreecommitdiff
path: root/tccrun.c
diff options
context:
space:
mode:
authorThomas Preud'homme <thomas.preudhomme@celest.fr>2010-09-10 21:09:07 +0200
committerThomas Preud'homme <thomas.preudhomme@celest.fr>2010-09-10 21:09:07 +0200
commit776364f395d786c4c27e1f7a49cbba38951d9820 (patch)
tree18b44c7021f8b96a055a2e6c65d7da779f7cbe89 /tccrun.c
parent2887f40f760b7d406422258bbdd6e8dc25696c59 (diff)
downloadtinycc-776364f395d786c4c27e1f7a49cbba38951d9820.tar.gz
tinycc-776364f395d786c4c27e1f7a49cbba38951d9820.tar.bz2
Add support for __FreeBSD_kernel__ kernel
Add support for kfreebsd-i386 and kfreebsd-amd64 Debian arch with thanks to Pierre Chifflier <chifflier@cpe.fr>.
Diffstat (limited to 'tccrun.c')
-rw-r--r--tccrun.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/tccrun.c b/tccrun.c
index e24d95e..c45aeb6 100644
--- a/tccrun.c
+++ b/tccrun.c
@@ -438,7 +438,7 @@ static int rt_get_caller_pc(unsigned long *paddr, ucontext_t *uc, int level)
int i;
if (level == 0) {
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
*paddr = uc->uc_mcontext.mc_eip;
#elif defined(__dietlibc__)
*paddr = uc->uc_mcontext.eip;
@@ -447,7 +447,7 @@ static int rt_get_caller_pc(unsigned long *paddr, ucontext_t *uc, int level)
#endif
return 0;
} else {
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
fp = uc->uc_mcontext.mc_ebp;
#elif defined(__dietlibc__)
fp = uc->uc_mcontext.ebp;
@@ -477,14 +477,14 @@ static int rt_get_caller_pc(unsigned long *paddr,
if (level == 0) {
/* XXX: only support linux */
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
*paddr = uc->uc_mcontext.mc_rip;
#else
*paddr = uc->uc_mcontext.gregs[REG_RIP];
#endif
return 0;
} else {
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
fp = uc->uc_mcontext.mc_rbp;
#else
fp = uc->uc_mcontext.gregs[REG_RBP];