Commit df6cacf6 authored by Maciej Suminski's avatar Maciej Suminski

Windows build fix.

parent fdf9898e
......@@ -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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment