summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tapset/return.stp20
1 files changed, 20 insertions, 0 deletions
diff --git a/tapset/return.stp b/tapset/return.stp
new file mode 100644
index 00000000..c6d0f48c
--- /dev/null
+++ b/tapset/return.stp
@@ -0,0 +1,20 @@
+function retval:long() %{
+
+ if (CONTEXT && CONTEXT->regs) {
+#if defined (__i386__)
+ THIS->__retvalue = CONTEXT->regs->eax;
+#elif defined (__x86_64__)
+ THIS->__retvalue = CONTEXT->regs->rax;
+#elif defined (__powerpc64__)
+ THIS->__retvalue = CONTEXT->regs->gpr[3];
+#elif defined (__ia64__)
+ THIS->__retvalue = CONTEXT->regs->r8;
+#elif defined (__sparc64__)
+ THIS->__retvalue = CONTEXT->regs->u_regs[UREG_RETPC];
+#else
+ THIS->__retvalue = -1;
+#endif
+ }
+ else
+ THIS->__retvalue = -1;
+%}