Windows build fix.
This commit is contained in:
parent
fdf9898eb2
commit
df6cacf64b
|
@ -5,16 +5,17 @@
|
|||
|
||||
|
||||
#if __i386__
|
||||
#include "jump_i386_sysv_elf_gas.S"
|
||||
#include "make_i386_sysv_elf_gas.S"
|
||||
|
||||
#ifdef __WIN32__
|
||||
#include "jump_i386_pe_gas.S"
|
||||
#include "make_i386_pe_gas.S"
|
||||
#endif
|
||||
#ifdef __WIN32__
|
||||
#include "jump_i386_pe_gas.S"
|
||||
#include "make_i386_pe_gas.S"
|
||||
#else
|
||||
#include "jump_i386_sysv_elf_gas.S"
|
||||
#include "make_i386_sysv_elf_gas.S"
|
||||
#endif
|
||||
|
||||
#elif __x86_64__
|
||||
#include "jump_x86_64_sysv_elf_gas.S"
|
||||
#include "make_x86_64_sysv_elf_gas.S"
|
||||
#include "jump_x86_64_sysv_elf_gas.S"
|
||||
#include "make_x86_64_sysv_elf_gas.S"
|
||||
#endif
|
||||
|
||||
|
|
|
@ -4,54 +4,53 @@
|
|||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
.global _jump_fcontext
|
||||
.text
|
||||
.globl jump_fcontext
|
||||
.align 2
|
||||
.type jump_fcontext,@function
|
||||
|
||||
jump_fcontext:
|
||||
mov 0x4(%esp),%ecx
|
||||
mov %edi,(%ecx)
|
||||
mov %esi,0x4(%ecx)
|
||||
mov %ebx,0x8(%ecx)
|
||||
mov %ebp,0xc(%ecx)
|
||||
mov %fs:0x18,%edx
|
||||
mov (%edx),%eax
|
||||
mov %eax,0x24(%ecx)
|
||||
mov 0x4(%edx),%eax
|
||||
mov %eax,0x18(%ecx)
|
||||
mov 0x8(%edx),%eax
|
||||
mov %eax,0x20(%ecx)
|
||||
mov 0x10(%edx),%eax
|
||||
mov %eax,0x28(%ecx)
|
||||
lea 0x4(%esp),%eax
|
||||
mov %eax,0x10(%ecx)
|
||||
mov (%esp),%eax
|
||||
mov %eax,0x14(%ecx)
|
||||
mov 0x8(%esp),%edx
|
||||
mov (%edx),%edi
|
||||
mov 0x4(%edx),%esi
|
||||
mov 0x8(%edx),%ebx
|
||||
mov 0xc(%edx),%ebp
|
||||
mov 0x10(%esp),%eax
|
||||
test %eax,%eax
|
||||
je jump_fcontext+0x5f
|
||||
stmxcsr 0x2c(%ecx)
|
||||
fnstcw 0x30(%ecx)
|
||||
ldmxcsr 0x2c(%edx)
|
||||
fldcw 0x30(%edx)
|
||||
mov %edx,%ecx
|
||||
mov %fs:0x18,%edx
|
||||
mov 0x24(%ecx),%eax
|
||||
mov %eax,(%edx)
|
||||
mov 0x18(%ecx),%eax
|
||||
mov %eax,0x4(%edx)
|
||||
mov 0x20(%ecx),%eax
|
||||
mov %eax,0x8(%edx)
|
||||
mov 0x28(%ecx),%eax
|
||||
mov %eax,0x10(%edx)
|
||||
mov 0xc(%esp),%eax
|
||||
mov 0x10(%ecx),%esp
|
||||
mov %eax,0x4(%esp)
|
||||
mov 0x14(%ecx),%ecx
|
||||
jmp *%ecx
|
||||
_jump_fcontext:
|
||||
mov 0x4(%esp),%ecx
|
||||
mov %edi,(%ecx)
|
||||
mov %esi,0x4(%ecx)
|
||||
mov %ebx,0x8(%ecx)
|
||||
mov %ebp,0xc(%ecx)
|
||||
mov %fs:0x18,%edx
|
||||
mov (%edx),%eax
|
||||
mov %eax,0x24(%ecx)
|
||||
mov 0x4(%edx),%eax
|
||||
mov %eax,0x18(%ecx)
|
||||
mov 0x8(%edx),%eax
|
||||
mov %eax,0x20(%ecx)
|
||||
mov 0x10(%edx),%eax
|
||||
mov %eax,0x28(%ecx)
|
||||
lea 0x4(%esp),%eax
|
||||
mov %eax,0x10(%ecx)
|
||||
mov (%esp),%eax
|
||||
mov %eax,0x14(%ecx)
|
||||
mov 0x8(%esp),%edx
|
||||
mov (%edx),%edi
|
||||
mov 0x4(%edx),%esi
|
||||
mov 0x8(%edx),%ebx
|
||||
mov 0xc(%edx),%ebp
|
||||
mov 0x10(%esp),%eax
|
||||
test %eax,%eax
|
||||
je _jump_fcontext+0x5f
|
||||
stmxcsr 0x2c(%ecx)
|
||||
fnstcw 0x30(%ecx)
|
||||
ldmxcsr 0x2c(%edx)
|
||||
fldcw 0x30(%edx)
|
||||
mov %edx,%ecx
|
||||
mov %fs:0x18,%edx
|
||||
mov 0x24(%ecx),%eax
|
||||
mov %eax,(%edx)
|
||||
mov 0x18(%ecx),%eax
|
||||
mov %eax,0x4(%edx)
|
||||
mov 0x20(%ecx),%eax
|
||||
mov %eax,0x8(%edx)
|
||||
mov 0x28(%ecx),%eax
|
||||
mov %eax,0x10(%edx)
|
||||
mov 0xc(%esp),%eax
|
||||
mov 0x10(%ecx),%esp
|
||||
mov %eax,0x4(%esp)
|
||||
mov 0x14(%ecx),%ecx
|
||||
jmp *%ecx
|
||||
|
|
|
@ -4,12 +4,11 @@
|
|||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
.global _make_fcontext
|
||||
.text
|
||||
.globl make_fcontext
|
||||
.align 2
|
||||
.type make_fcontext,@function
|
||||
|
||||
make_fcontext:
|
||||
_make_fcontext:
|
||||
mov 0x4(%esp),%eax
|
||||
lea -0x34(%eax),%eax
|
||||
and $0xfffffff0,%eax
|
||||
|
@ -31,10 +30,10 @@ make_fcontext:
|
|||
mov %fs:0x18,%ecx
|
||||
mov (%ecx),%edx
|
||||
inc %edx
|
||||
je make_fcontext+0x4c // <_make_fcontext+0x4c>
|
||||
je _make_fcontext+0x4c // <_make_fcontext+0x4c>
|
||||
dec %edx
|
||||
xchg %edx,%ecx
|
||||
jmp make_fcontext+0x42 // <_make_fcontext+0x42>
|
||||
jmp _make_fcontext+0x42 // <_make_fcontext+0x42>
|
||||
mov 0x4(%ecx),%ecx
|
||||
mov 0x10(%eax),%edx
|
||||
mov %ecx,0x18(%edx)
|
||||
|
@ -45,10 +44,7 @@ make_fcontext:
|
|||
ret
|
||||
|
||||
finish:
|
||||
xor %eax,%eax
|
||||
mov %eax,(%esp)
|
||||
call finish+0xa
|
||||
hlt
|
||||
|
||||
.size make_fcontext,.-make_fcontext
|
||||
|
||||
xor %eax,%eax
|
||||
mov %eax,(%esp)
|
||||
call finish+0xa
|
||||
hlt
|
||||
|
|
Loading…
Reference in New Issue