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                                    ---*/
 /*------------------------------------------------------------*/