add_importlibs(kernel32 ntdll)
add_pch(kernel32 ${CMAKE_CURRENT_SOURCE_DIR}/k32.h ${SOURCE})
-add_dependencies(kernel32 errcodes)
+add_dependencies(kernel32 errcodes asm)
add_cab_target(kernel32 1)
add_importlib_target(kernel32.spec)
* PROGRAMMER: Alex Ionescu (alex@relsoft.net)
*/
-.globl BaseThreadStartupThunk
-.globl BaseProcessStartThunk
-.intel_syntax noprefix
+#include <asm.inc>
+
+
+PUBLIC BaseThreadStartupThunk
+PUBLIC BaseProcessStartThunk
BaseThreadStartupThunk:
push 0 /* Return RIP */
jmp BaseProcessStartup
+END
/* EOF */
* KJK::Hyperion <noog@libero.it>
*/
-#include <ndk/asm.h>
+#include <asm.inc>
+#include <ks386.inc>
-.globl _SwitchToFiber@4
-.intel_syntax noprefix
+.code
+PUBLIC _SwitchToFiber@4
_SwitchToFiber@4:
/* Get the TEB */
mov edx, fs:[TEB_SELF]
mov [eax+FIBER_CONTEXT_EIP], ebx
/* Check if we're to save FPU State */
- cmp dword ptr [eax+FIBER_CONTEXT_FLAGS], CONTEXT_FULL | CONTEXT_FLOATING_POINT
+ cmp dword ptr [eax+FIBER_CONTEXT_FLAGS], CONTEXT_FULL OR CONTEXT_FLOATING_POINT
jnz NoFpuStateSave
/* Save the FPU State (Status and Control)*/
mov [edx+TEB_ACTIVATION_CONTEXT_STACK_POINTER], esi
/* Restore FPU State */
- cmp dword ptr [eax+FIBER_CONTEXT_FLAGS], CONTEXT_FULL | CONTEXT_FLOATING_POINT
+ cmp dword ptr [eax+FIBER_CONTEXT_FLAGS], CONTEXT_FULL OR CONTEXT_FLOATING_POINT
jnz NoFpuStateRestore
/* Check if the Status Word Changed */
StatusWordChanged:
/* Load the new one */
- mov word ptr [ecx+FIBER_CONTEXT_FLOAT_SAVE_TAG_WORD], 0xFFFF
+ mov word ptr [ecx+FIBER_CONTEXT_FLOAT_SAVE_TAG_WORD], HEX(0FFFF)
fldenv [ecx+FIBER_CONTEXT_FLOAT_SAVE_CONTROL_WORD]
ControlWordEqual:
mov [edx+TEB_FLS_DATA], eax
/* Jump to new fiber */
- jmp [ecx+FIBER_CONTEXT_EIP]
+ jmp dword ptr [ecx+FIBER_CONTEXT_EIP]
+END
/* EOF */
* PROGRAMMER: Alex Ionescu (alex@relsoft.net)
*/
-.globl _BaseThreadStartupThunk@0
-.globl _BaseProcessStartThunk@0
-.intel_syntax noprefix
+#include <asm.inc>
+
+.code
+
+EXTERN _BaseThreadStartup@8:PROC
+EXTERN _BaseProcessStartup@4:PROC
+
+PUBLIC _BaseThreadStartupThunk@0
+PUBLIC _BaseProcessStartThunk@0
_BaseThreadStartupThunk@0:
push 0 /* Return EIP */
jmp _BaseProcessStartup@4
+END
/* EOF */