Commit Graph

91 Commits

Author SHA1 Message Date
Jacek Caban ea5e89a545 winebuild: Make mingw a separated platform from msvc.
Based on winegcc.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-26 09:02:04 +01:00
Alexandre Julliard b636f9816f krnl386: Move the 16-bit stack out of the WOW32Reserved field.
Based on a patch by Sebastian Lackner.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-26 21:31:53 +01:00
Alexandre Julliard 2746797ad5 winebuild: Support building krnl386.exe in PE format.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 10:55:25 +02:00
Alexandre Julliard 7b494f13e7 winebuild: Store wine_ldt_copy pointer in the NE header at load time.
Avoids having to import libwine from 16-bit modules.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-17 20:01:01 +02:00
Alexandre Julliard 075e561f5c winebuild: Don't change %fs and %gs when calling 16-bit register functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-17 20:00:59 +02:00
Alexandre Julliard 96c77a8cf6 winebuild: Stop building the DPMI event check routine.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-05 17:16:13 +01:00
Alexandre Julliard e3a236e6ce winebuild: Remove 32-bit register function support.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-26 10:43:09 +02:00
Alexandre Julliard 9e59362ae3 ntdll: Move the plaform-specific thread data to the SystemReserved2 TEB field.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-19 19:13:30 +02:00
Qian Hong 604c4dba80 ntdll: Correctly document the offset of ntdll_thread_data.
This is a follow up of 16ddc62405.
2015-04-21 14:30:45 +09:00
Sebastian Lackner 4c8b3f63be winebuild: Conditionally use different code for restoring the context structure.
Fixes a regression introduced by 44fbc018ed.
2015-03-03 18:12:30 +09:00
Sebastian Lackner 44fbc018ed winebuild: Do not access memory below ESP when restoring thread contexts.
Based on a patch by John Reiser.
2015-02-27 15:05:54 +09:00
Frédéric Delanoy 355a0aef8b winebuild: Avoid dead code in BuildCallFrom16Core (Coverity). 2011-11-28 16:40:47 +01:00
Alexandre Julliard bea2be5cce winebuild: Get rid of support for register entry points on x86_64. 2011-01-27 14:12:41 +01:00
Alexandre Julliard 5c2db41cdc winebuild: Add cfi annotations to the relay functions for i386. 2010-04-12 12:33:19 +02:00
Alexandre Julliard e550e8a100 winebuild: Add a wrapper function to output cfi directives. 2010-04-11 12:49:00 +02:00
Alexandre Julliard 539da1b073 winebuild: Output the 16-bit asm relay functions as needed and get rid of --relay16 mode. 2010-01-16 15:58:48 +01:00
Alexandre Julliard 10e4a55b6c winebuild: Output the asm relay functions as needed and get rid of --relay32 mode. 2010-01-16 15:50:27 +01:00
Alexandre Julliard 102dd9e92f winebuild: Rename __wine_call_from_32_regs for consistency with 64-bit. 2010-01-16 15:41:48 +01:00
Alexandre Julliard 873e027e01 winebuild: Add unwind annotations to all the generated functions for x86_64. 2009-06-16 14:26:51 +02:00
Alexandre Julliard e00b4582a1 winebuild: Properly restore %rax and %rbx in call_from_regs on x86_64. 2009-06-10 13:22:04 +02:00
Alexandre Julliard 880d00fb43 winebuild: Use iretq on x86_64 to restore more system registers and flags. 2009-05-01 18:03:23 +02:00
Alexandre Julliard b374e7e36e winebuild: Don't include any Windows header to avoid data types dependencies. 2009-04-09 20:58:43 +02:00
Alexandre Julliard 89f6bc2ef4 winebuild: Hardcode the stack frame offsets instead of using the data structures. 2009-04-09 20:30:10 +02:00
Alexandre Julliard d71284f0b4 winebuild: Hardcode the i386 register context offsets instead of using the data structure. 2009-04-09 20:01:56 +02:00
Alexandre Julliard 465ddc51dc winebuild: Implement register entry points for x86_64. 2009-01-06 17:01:44 +01:00
Alexandre Julliard e31188d9da winebuild: Improve the calling sequence for register functions.
Pass parameters on the stack instead of retrieving them from the code
stream; this ensures that the code contains only valid instructions.
2009-01-06 12:51:18 +01:00
Alexandre Julliard 8a87aaa9d9 winebuild: Generate the __wine_call_from_32_regs function along with the 16-bit kernel routines. 2008-12-27 19:50:25 +01:00
Alexandre Julliard 5625c6079e Get rid of the global thread.h header. 2008-03-01 11:57:00 +01:00
Austin English 90f89fa74d tools: Spelling fixes. 2008-01-18 12:52:09 +01:00
Alexandre Julliard 44c9758d05 ntdll: Move private data to make room in the TEB for the activation context data. 2007-07-19 16:56:10 +02:00
Alexandre Julliard 715804999e winebuild: Added output() function to properly deal with write errors. 2006-08-11 20:41:29 +02:00
Alexandre Julliard d489a0a312 winebuild: Get rid of the data16 prefix, it shouldn't be needed anymore and causes warnings. 2006-06-19 21:16:50 +02:00
Alexandre Julliard fb15dabdcd winebuild: Fix a few printf format warnings by casting size_t. 2006-06-13 14:14:59 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Marcus Meissner 1ed3ca0883 winebuild: Output a .note.GNU-stack section to allow nonexecutable stack. 2006-01-21 19:23:36 +01:00
Alexandre Julliard 76ece8530a winebuild: Moved offset definitions to relay.c since they are only
needed there.
Hardcoded a couple of TEB offsets to support cross-compilation.
2006-01-20 19:45:57 +01:00
Alexandre Julliard 4ce433d826 ntdll: Move the %gs register to the ntdll_thread_regs structure. 2006-01-20 16:54:11 +01:00
Alexandre Julliard 8651ceb18e ntdll: Make __wine_call_from_32_restore_regs take a context pointer.
Changed exception raise functions to call it explicitly.
2005-12-19 09:59:50 +01:00
Alexandre Julliard c367dc4f2e Enforce 16-byte stack alignment when returning from 16-bit code and
when calling a register function.
2005-11-28 17:38:40 +01:00
Alexandre Julliard 2aae74dff0 Factor out a couple of useful helper functions. 2005-09-21 11:50:04 +00:00
Alexandre Julliard c5c6968e96 Fixed stack offset of %eax register. 2005-09-20 11:38:29 +00:00
Alexandre Julliard 96508ad686 Moved return value handling to the individual relay thunks so that we
only need one version of wine_call_from_16.
Patch the wine_call_from_16 address along with the cs value directly
in the 16-bit code segment to avoid the need for special magic in the
import thunks.
2005-09-18 12:25:22 +00:00
Alexandre Julliard 89024a63d3 Make the users of wine_call_from_32_regs save %eax so that we don't
need a special hack in the import thunk.
Added a get_pc_thunk_eax function to simplify the code a bit.
2005-09-18 11:13:54 +00:00
Alexandre Julliard 13baa7b364 Added a common function to declare global symbols, and make them
hidden on platforms that support it.
2005-09-15 18:48:39 +00:00
Alexandre Julliard 7c91993eba Don't depend on ELF features for PIC code.
A couple of optimizations.
2005-07-05 21:06:00 +00:00
Alexandre Julliard 2b33634018 Intercept functions for 16-bit relay debugging by patching the
CALLFROM16 table instead of having the wine_call_from_16 functions
call out the relay functions explicitly.
2005-07-05 12:52:07 +00:00
Alexandre Julliard e56d9deac4 Added vararg argument type so that the relay code can distinguish from
a normal cdecl function.
Don't rely on the relay thunk preserving the stack pointer.
2005-07-05 11:50:40 +00:00
Alexandre Julliard 1a0f2863db Moved all 16-bit relay code to the text section.
Changed a few symbol names for better consistency.
2005-07-03 11:28:44 +00:00
Alexandre Julliard 71914125ce Moved most of the implementation of CALL32_CBClient(Ex) to the C
code.
2005-07-01 16:24:32 +00:00
Alexandre Julliard 445fb59802 Replaced all uses of the __ASM_NAME macro by the asm_name function to
allow run-time determination of the correct format.
2005-06-27 18:59:54 +00:00