Sfoglia il codice sorgente

Win32 x64 updates.

woollybah 11 anni fa
parent
commit
d328c72a02
2 ha cambiato i file con 11 aggiunte e 2 eliminazioni
  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__