Win64 patch 6/9 (winebuild)

Ge van Geldorp ge at gse.nl
Mon Jul 10 01:58:59 CDT 2006


Changelog:
  Ge van Geldorp <ge at gse.nl>
  - Save registers which might contain parameters for the function to be called

 tools/winebuild/import.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c
index 3dcab2d..c06512a 100644
--- a/tools/winebuild/import.c
+++ b/tools/winebuild/import.c
@@ -932,10 +932,20 @@ static void output_delayed_import_thunks
         break;
     case CPU_x86_64:
         fprintf( outfile, "\tpushq %%rdi\n" );
+        fprintf( outfile, "\tpushq %%rsi\n" );
+        fprintf( outfile, "\tpushq %%rdx\n" );
+        fprintf( outfile, "\tpushq %%rcx\n" );
+        fprintf( outfile, "\tpushq %%r8\n" );
+        fprintf( outfile, "\tpushq %%r9\n" );
         fprintf( outfile, "\tsubq $8,%%rsp\n" );
         fprintf( outfile, "\tmovq %%r11,%%rdi\n" );
         fprintf( outfile, "\tcall %s\n", asm_name("__wine_spec_delay_load") );
         fprintf( outfile, "\taddq $8,%%rsp\n" );
+        fprintf( outfile, "\tpopq %%r9\n" );
+        fprintf( outfile, "\tpopq %%r8\n" );
+        fprintf( outfile, "\tpopq %%rcx\n" );
+        fprintf( outfile, "\tpopq %%rdx\n" );
+        fprintf( outfile, "\tpopq %%rsi\n" );
         fprintf( outfile, "\tpopq %%rdi\n" );
         fprintf( outfile, "\tjmp *%%rax\n" );
         break;
-- 
1.4.0




More information about the wine-patches mailing list