From b068e29df753192bdcec5b1e41401bdc21812136 Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Mon, 16 Apr 2012 00:39:24 +0200 Subject: [PATCH 7/9] x86_64: Implement GET_CALLER_FP TCC always uses %rbp frames, so we can use that one. --- lib/bcheck.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/lib/bcheck.c b/lib/bcheck.c index 9996649..48d7606 100644 --- a/lib/bcheck.c +++ b/lib/bcheck.c @@ -216,6 +216,14 @@ BOUND_PTR_INDIR(16) __asm__ __volatile__ ("movl %%ebp,%0" :"=g" (fp1));\ fp = fp1[0];\ } +#elif defined(__x86_64__) +/* TCC always creates %rbp frames also on x86_64, so use them. */ +#define GET_CALLER_FP(fp)\ +{\ + unsigned long *fp1;\ + __asm__ __volatile__ ("movq %%rbp,%0" :"=g" (fp1));\ + fp = fp1[0];\ +} #else #error put code to extract the calling frame pointer #endif -- 1.7.3.4