Merged in rest of Native Client changes, untested
[mono.git] / libgc / include / private / pthread_stop_world.h
index 054c7a0eacd7c14d6c0cd40e6082c4a1d547afb4..bd72739f580bb71c87c71ab39671a8f5ee6a01c2 100644 (file)
@@ -7,6 +7,15 @@ struct thread_stop_info {
                                /* last successfully handled a suspend  */
                                /* signal.                              */
     ptr_t stack_ptr;           /* Valid only when stopped.             */
+#ifdef NACL
+/* Grab NACL_GC_REG_STORAGE_SIZE pointers off the stack when going into */
+/* a syscall.  20 is more than we need, but it's an overestimate in case*/
+/* the instrumented function uses any callee saved registers, they may  */
+/* be pushed to the stack much earlier.  Also, on amd64 'push' puts 8   */
+/* bytes on the stack even though our pointers are 4 bytes.             */
+#define NACL_GC_REG_STORAGE_SIZE 20
+    ptr_t reg_storage[NACL_GC_REG_STORAGE_SIZE];
+#endif
 };
     
 #endif