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
Alexandre Julliard
803c8d9693
Beginnings of an infrastructure to allow specifying the target CPU and
...
platform at run-time.
2005-06-27 11:23:24 +00:00
Wolfgang Thaller
32984a640e
Use __ASM_NAME and HAVE_ASM_DOT_SIZE in a few places in winebuild
...
where they have been missing (needed for Darwin/x86).
2005-06-20 13:38:39 +00:00
Alexandre Julliard
27e868e9ad
Generate proper PIC code for CALL32_CBClient.
2005-06-16 15:57:36 +00:00
Alexandre Julliard
efcc2b83d8
Store a relative pointer for registry entry points to avoid some text
...
relocations.
2005-06-16 11:04:41 +00:00
Alexandre Julliard
827a69f8ca
Avoid referencing stackframe.h from outside kernel32.
2005-05-16 14:20:16 +00:00
Marcus Meissner
9b626b7bed
Use correct movw instead of movl when handling segment registers.
2005-04-13 11:17:00 +00:00
Eric Pouech
d3f8f78c3a
- added size information about most of the generated thunks (import,
...
16/32 relay...)
- marked the wine thunks by inserting specific symbols (to be managed
by wine's dbghelp)
- removed the stabs generation:
+ mostly used by winedbg, and the previous item will replace it for
dbghelp
+ still broken for gdb anyway
- enhanced const correctness
2004-05-18 21:27:44 +00:00
Dmitry Timoshkov
d16829846d
Add a few missing __ASM_NAME macros.
2004-03-27 20:44:41 +00:00
Jukka Heinonen
54a8a25b5e
DPMI programs now handle pending events.
2004-03-16 01:15:11 +00:00
Alexandre Julliard
4cb001967a
Switch back to the main process stack before calling exception
...
handlers.
2003-10-28 00:30:55 +00:00
Alexandre Julliard
67d9f38059
Added __wine_set_signal_fs function to avoid sharing the
...
SYSLEVEL_Win16CurrentTeb variable between kernel and ntdll.
On the kernel side, replaced SYSLEVEL_Win16CurrentTeb by
CallTo16_TebSelector stored directly in the asm relay code to avoid a
run-time relocation.
2003-10-08 22:59:22 +00:00
Daniel Marmier
9bb19ac2d2
Fixed warnings with gcc option "-Wwrite-strings".
2003-10-03 03:35:20 +00:00
Alexandre Julliard
b91e9cb3e6
Renamed a few more TEB fields.
2003-08-28 03:44:41 +00:00
Alexandre Julliard
a5b961c2b0
Moved selector fixup for the relay code to the callto16 exception
...
handler.
Make sure to only use pop instructions to modify segment registers in
the relay code to simplify the selector fixup.
2003-08-25 23:48:30 +00:00
Alexandre Julliard
3be5d62b29
Moved 16-bit calls initialization and exception handling to kernel32.
...
Store the call_to_16 return address on the stack from the C code so
that we don't need two variants of call_to_16_regs.
2003-08-25 00:56:37 +00:00
Alexandre Julliard
3a5b7cf105
Extended WOWCallback16Ex to support register functions too. This
...
allows simplifying the wine_call_to_16 assembly code by moving part of
it to C code, and getting rid of the extra kernel exports.
2003-08-23 23:30:51 +00:00
Alexandre Julliard
78675ba234
Store %gs in the TEB on every call to 16-bit code, and don't restore
...
it from the TEB for signals that did not happen in 16-bit code.
2003-03-25 00:36:16 +00:00
Alexandre Julliard
551797bc57
Properly save/restore %gs register across 16-bit calls.
2003-02-27 21:11:13 +00:00