From a22ea9ad0815615ce00663c20b3e6d83fe6396fe Mon Sep 17 00:00:00 2001 From: kevinrs Date: Sat, 24 Sep 2005 00:01:01 +0000 Subject: Arch agnostic function to get at return vals until $retval built-in is working. --- tapset/return.stp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 tapset/return.stp 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; +%} -- cgit