jmp_with_stack is a hack which makes no sense on archs which pass args
in registers. Replace it (for amd64) with something more disciplined:
call_on_new_stack_0_0 and call_on_new_stack_0_1.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3401 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/ume.h b/coregrind/ume.h
index 25509d6..e91f030 100644
--- a/coregrind/ume.h
+++ b/coregrind/ume.h
@@ -54,6 +54,27 @@
__attribute__((noreturn))
void jmp_with_stack(void (*eip)(void), Addr sp);
+
+/* Call f(), but first switch stacks, using 'stack' as the new stack,
+ and use 'retaddr' as f's return-to address. Also, clear all the
+ integer registers before entering f. */
+extern
+__attribute__((noreturn))
+void call_on_new_stack_0_0 ( Addr stack,
+ Addr retaddr,
+ void (*f)(void) );
+
+/* Call f(arg1), but first switch stacks, using 'stack' as the new
+ stack, and use 'retaddr' as f's return-to address. Also, clear all
+ the integer registers before entering f.*/
+extern
+__attribute__((noreturn))
+void call_on_new_stack_0_1 ( Addr stack,
+ Addr retaddr,
+ void (*f)(Word),
+ Word arg1 );
+
+
/*------------------------------------------------------------*/
/*--- Loading ELF files ---*/
/*------------------------------------------------------------*/