From ecdfe19579643be75796ecdd9ca018c7408eb500 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Fri, 19 Nov 2010 23:40:01 +0000 Subject: [PATCH] [KERNEL32] Switch to new asm syntax Add dependency to asm svn path=/branches/cmake-bringup/; revision=49648 --- dll/win32/kernel32/CMakeLists.txt | 2 +- dll/win32/kernel32/thread/amd64/fiber.S | 8 +++++--- dll/win32/kernel32/thread/amd64/thread.S | 9 ++++++--- dll/win32/kernel32/thread/i386/fiber.S | 16 +++++++++------- dll/win32/kernel32/thread/i386/thread.S | 13 ++++++++++--- 5 files changed, 31 insertions(+), 17 deletions(-) diff --git a/dll/win32/kernel32/CMakeLists.txt b/dll/win32/kernel32/CMakeLists.txt index bba175e393e..11fe02d56ae 100644 --- a/dll/win32/kernel32/CMakeLists.txt +++ b/dll/win32/kernel32/CMakeLists.txt @@ -119,6 +119,6 @@ target_link_libraries(kernel32 ${PSEH_LIB}) 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) diff --git a/dll/win32/kernel32/thread/amd64/fiber.S b/dll/win32/kernel32/thread/amd64/fiber.S index 984447abe11..09ea635d23c 100644 --- a/dll/win32/kernel32/thread/amd64/fiber.S +++ b/dll/win32/kernel32/thread/amd64/fiber.S @@ -7,11 +7,13 @@ * KJK::Hyperion */ -#include +#include -.globl SwitchToFiber -.intel_syntax noprefix + +PUBLIC SwitchToFiber SwitchToFiber: /* FIXME: TODO */ ret 4 + +END diff --git a/dll/win32/kernel32/thread/amd64/thread.S b/dll/win32/kernel32/thread/amd64/thread.S index 2c0c2260cb8..71ed562f816 100644 --- a/dll/win32/kernel32/thread/amd64/thread.S +++ b/dll/win32/kernel32/thread/amd64/thread.S @@ -6,9 +6,11 @@ * PROGRAMMER: Alex Ionescu (alex@relsoft.net) */ -.globl BaseThreadStartupThunk -.globl BaseProcessStartThunk -.intel_syntax noprefix +#include + + +PUBLIC BaseThreadStartupThunk +PUBLIC BaseProcessStartThunk BaseThreadStartupThunk: @@ -29,4 +31,5 @@ BaseProcessStartThunk: push 0 /* Return RIP */ jmp BaseProcessStartup +END /* EOF */ diff --git a/dll/win32/kernel32/thread/i386/fiber.S b/dll/win32/kernel32/thread/i386/fiber.S index 57358ffeed4..bf88c468487 100644 --- a/dll/win32/kernel32/thread/i386/fiber.S +++ b/dll/win32/kernel32/thread/i386/fiber.S @@ -7,11 +7,12 @@ * KJK::Hyperion */ -#include +#include +#include -.globl _SwitchToFiber@4 -.intel_syntax noprefix +.code +PUBLIC _SwitchToFiber@4 _SwitchToFiber@4: /* Get the TEB */ mov edx, fs:[TEB_SELF] @@ -30,7 +31,7 @@ _SwitchToFiber@4: 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)*/ @@ -80,7 +81,7 @@ NoFpuStateSave: 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 */ @@ -96,7 +97,7 @@ NoFpuStateSave: 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: @@ -120,6 +121,7 @@ NoFpuStateRestore: mov [edx+TEB_FLS_DATA], eax /* Jump to new fiber */ - jmp [ecx+FIBER_CONTEXT_EIP] + jmp dword ptr [ecx+FIBER_CONTEXT_EIP] +END /* EOF */ diff --git a/dll/win32/kernel32/thread/i386/thread.S b/dll/win32/kernel32/thread/i386/thread.S index 5dea1ee7400..a07bcb2e60e 100644 --- a/dll/win32/kernel32/thread/i386/thread.S +++ b/dll/win32/kernel32/thread/i386/thread.S @@ -6,9 +6,15 @@ * PROGRAMMER: Alex Ionescu (alex@relsoft.net) */ -.globl _BaseThreadStartupThunk@0 -.globl _BaseProcessStartThunk@0 -.intel_syntax noprefix +#include + +.code + +EXTERN _BaseThreadStartup@8:PROC +EXTERN _BaseProcessStartup@4:PROC + +PUBLIC _BaseThreadStartupThunk@0 +PUBLIC _BaseProcessStartThunk@0 _BaseThreadStartupThunk@0: @@ -29,4 +35,5 @@ _BaseProcessStartThunk@0: push 0 /* Return EIP */ jmp _BaseProcessStartup@4 +END /* EOF */ -- 2.17.1