about summary refs log tree commit diff
path: root/sysdeps/mach/i386/sysdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/mach/i386/sysdep.h')
-rw-r--r--sysdeps/mach/i386/sysdep.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/sysdeps/mach/i386/sysdep.h b/sysdeps/mach/i386/sysdep.h
index 692310b320..5b4246e016 100644
--- a/sysdeps/mach/i386/sysdep.h
+++ b/sysdeps/mach/i386/sysdep.h
@@ -44,6 +44,11 @@ Cambridge, MA 02139, USA.  */
 		  "g" (ptr), "m" (*(long int *) (fn)) : "%esp"); 	      \
   } while (0)
 
+#define RETURN_TO(sp, pc, retval) \
+  asm volatile ("movl %0, %%esp; jmp %*%1 # %2" \
+		: : "g" (sp), "r" (pc), "a" (retval))
+
+
 #define STACK_GROWTH_DOWN
 
 #include_next <sysdep.h>