summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhunt <hunt>2005-06-15 23:55:55 +0000
committerhunt <hunt>2005-06-15 23:55:55 +0000
commit3acf7c2c759a40dc0bc88f9c5ae5ed208b77e2a4 (patch)
treec4c6926e5fa11331f0241494e3ab1b69741a824a
parentcc637c9ef930cd8af20f3163fc251a6507df59fb (diff)
downloadsystemtap-steved-3acf7c2c759a40dc0bc88f9c5ae5ed208b77e2a4.tar.gz
systemtap-steved-3acf7c2c759a40dc0bc88f9c5ae5ed208b77e2a4.tar.xz
systemtap-steved-3acf7c2c759a40dc0bc88f9c5ae5ed208b77e2a4.zip
2005-06-15 Martin Hunt <hunt@redhat.com>
* current.c (_stp_ret_addr): Fix computation for i386.
-rw-r--r--runtime/ChangeLog4
-rw-r--r--runtime/current.c9
2 files changed, 11 insertions, 2 deletions
diff --git a/runtime/ChangeLog b/runtime/ChangeLog
index e00e43f0..b40ae666 100644
--- a/runtime/ChangeLog
+++ b/runtime/ChangeLog
@@ -1,3 +1,7 @@
+2005-06-15 Martin Hunt <hunt@redhat.com>
+
+ * current.c (_stp_ret_addr): Fix computation for i386.
+
2005-06-14 Martin Hunt <hunt@redhat.com>
* README: Removed old docs and replaced with simple build
diff --git a/runtime/current.c b/runtime/current.c
index 4485ef2c..82ab400e 100644
--- a/runtime/current.c
+++ b/runtime/current.c
@@ -21,12 +21,17 @@
unsigned long _stp_ret_addr (struct pt_regs *regs)
{
- unsigned long *ra = (unsigned long *)REG_SP(regs);
-
+#ifdef __x86_64__
+ unsigned long *ra = (unsigned long *)regs->rsp;
if (ra)
return *ra;
else
return 0;
+#elif defined (__i386__)
+ return regs->esp;
+#else
+ #error Unimplemented architecture
+#endif
}
#ifdef __x86_64__