瀏覽代碼

Win32 x64 updates.

woollybah 11 年之前
父節點
當前提交
d328c72a02
共有 2 個文件被更改,包括 11 次插入2 次删除
  1. 2 2
      blitz.mod/blitz_app.c
  2. 9 0
      blitz.mod/blitz_gc.c

+ 2 - 2
blitz.mod/blitz_app.c

@@ -187,9 +187,9 @@ void bbStartup( int argc,char *argv[],void *dummy1,void *dummy2 ){
 	char *ebp;
 	OSVERSIONINFO os={ sizeof(os) };
 	
-	asm( "movl %%ebp,%0;":"=r"(ebp) );//::"%ebp" );
+	//asm( "movl %%ebp,%0;":"=r"(ebp) );//::"%ebp" );
 	
-	bbGCStackTop=ebp+28;
+	//bbGCStackTop=ebp+28;
 	
 	// BaH bbThreadStartup();
 	bbGCStartup();

+ 9 - 0
blitz.mod/blitz_gc.c

@@ -6,9 +6,14 @@
 #endif
 
 #ifdef _WIN32
+#ifdef __x86_64__
+extern void *__bss_end__;
+extern void *__data_start__;
+#else
 extern void *_bss_end__;
 extern void *_data_start__;
 #endif
+#endif
 
 #ifdef __linux
 extern void *__data_start;
@@ -27,8 +32,12 @@ void bbGCStartup( void *spTop ){
 	GC_set_no_dls(1);
 	GC_clear_roots();
 #ifdef _WIN32
+#ifdef __x86_64__
+	GC_add_roots(&__data_start__, &__bss_end__);
+#else
 	GC_add_roots(&_data_start__, &_bss_end__);
 #endif
+#endif
 
 #ifdef __APPLE__
 #ifndef __LP64__