/******************************************************************* * BuildRelays32 * * Build all the 32-bit relay callbacks */ void BuildRelays32( FILE *outfile ) { /* File header */ fprintf( outfile, "/* File generated automatically. Do not edit! */\n\n" ); fprintf( outfile, "\t.text\n" ); #ifdef USE_STABS if (output_file_name) { char buffer[1024]; getcwd(buffer, sizeof(buffer)); fprintf( outfile, "\t.file\t\"%s\"\n", output_file_name ); /* * The stabs help the internal debugger as they are an indication that it * is sensible to step into a thunk/trampoline. */ fprintf( outfile, ".stabs \"%s/\",100,0,0,Code_Start\n", buffer); fprintf( outfile, ".stabs \"%s\",100,0,0,Code_Start\n", output_file_name ); fprintf( outfile, "Code_Start:\n\n" ); } #endif /* 32-bit register entry point */ BuildCallFrom32Regs( outfile ); #ifdef USE_STABS fprintf( outfile, "\t.stabs \"\",100,0,0,.Letext\n"); fprintf( outfile, ".Letext:\n"); #endif }
/******************************************************************* * BuildRelays32 * * Build all the 32-bit relay callbacks */ void BuildRelays32(void) { if (target_cpu != CPU_x86) { output( "/* File not used with this architecture. Do not edit! */\n\n" ); return; } /* File header */ output( "/* File generated automatically. Do not edit! */\n\n" ); output( "\t.text\n" ); output( "%s:\n\n", asm_name("__wine_spec_thunk_text_32") ); /* 32-bit register entry point */ BuildCallFrom32Regs(); output_function_size( "__wine_spec_thunk_text_32" ); output_gnu_stack_note(); }