Remove LockFS from the functions that don't require locking

This commit is contained in:
Luke Usher 2019-08-16 20:15:38 +01:00
parent 688238c40b
commit 548eeba924
1 changed files with 1 additions and 33 deletions

View File

@ -212,13 +212,11 @@ __declspec(naked) void EmuFS_CmpEsiFs00()
// Note : eax must be preserved here, hence the push/pop
__asm
{
call LockFS
call EmuFS_RefreshKPCR
push eax
mov eax, fs : [TIB_ArbitraryDataSlot]
cmp esi, [eax]
pop eax
call UnlockFS
ret
}
}
@ -227,11 +225,9 @@ __declspec(naked) void EmuFS_MovEaxFs00()
{
__asm
{
call LockFS
call EmuFS_RefreshKPCR
mov eax, fs : [TIB_ArbitraryDataSlot]
mov eax, [eax]
call UnlockFS
ret
}
}
@ -240,11 +236,9 @@ __declspec(naked) void EmuFS_MovEaxFs20()
{
__asm
{
call LockFS
call EmuFS_RefreshKPCR
mov eax, fs : [TIB_ArbitraryDataSlot]
mov eax, [eax + 20h]
call UnlockFS
ret
}
}
@ -253,11 +247,9 @@ __declspec(naked) void EmuFS_MovEaxFs28()
{
__asm
{
call LockFS
call EmuFS_RefreshKPCR
mov eax, fs : [TIB_ArbitraryDataSlot]
mov eax, [eax + 28h]
call UnlockFS
ret
}
}
@ -266,11 +258,9 @@ __declspec(naked) void EmuFS_MovEaxFs58()
{
__asm
{
call LockFS;
call EmuFS_RefreshKPCR
mov eax, fs : [TIB_ArbitraryDataSlot]
mov eax, [eax + 58h]
call UnlockFS
ret
}
}
@ -279,11 +269,9 @@ __declspec(naked) void EmuFS_MovEbxFs00()
{
__asm
{
call LockFS
call EmuFS_RefreshKPCR
mov ebx, fs : [TIB_ArbitraryDataSlot]
mov ebx, [ebx]
call UnlockFS
ret
}
}
@ -292,11 +280,9 @@ __declspec(naked) void EmuFS_MovEcxFs00()
{
__asm
{
call LockFS
call EmuFS_RefreshKPCR
mov ecx, fs : [TIB_ArbitraryDataSlot]
mov ecx, [ecx]
call UnlockFS
ret
}
}
@ -305,11 +291,9 @@ __declspec(naked) void EmuFS_MovEcxFs04()
{
__asm
{
call LockFS
call EmuFS_RefreshKPCR
mov ecx, fs : [TIB_ArbitraryDataSlot]
mov ecx, [ecx + 04h]
call UnlockFS
ret
}
}
@ -318,11 +302,9 @@ __declspec(naked) void EmuFS_MovEdiFs00()
{
__asm
{
call LockFS
call EmuFS_RefreshKPCR
mov edi, fs : [TIB_ArbitraryDataSlot]
mov edi, [edi]
call UnlockFS
ret
}
}
@ -331,11 +313,9 @@ __declspec(naked) void EmuFS_MovEdiFs04()
{
__asm
{
call LockFS
call EmuFS_RefreshKPCR
mov edi, fs : [TIB_ArbitraryDataSlot]
mov edi, [edi + 04h]
call UnlockFS
ret
}
}
@ -344,11 +324,9 @@ __declspec(naked) void EmuFS_MovEsiFs00()
{
__asm
{
call LockFS
call EmuFS_RefreshKPCR
mov esi, fs : [TIB_ArbitraryDataSlot]
mov esi, [esi]
call UnlockFS
ret
}
}
@ -358,11 +336,9 @@ __declspec(naked) void EmuFS_MovzxEaxBytePtrFs24()
// Note : Inlined KeGetCurrentIrql()
__asm
{
call LockFS
call EmuFS_RefreshKPCR
mov eax, fs : [TIB_ArbitraryDataSlot]
movzx eax, byte ptr[eax + 24h]
call UnlockFS
ret
}
}
@ -372,13 +348,11 @@ __declspec(naked) void EmuFS_MovFs00Eax()
// Note : ebx must be preserved here, hence the push/pop
__asm
{
call LockFS
call EmuFS_RefreshKPCR
push ebx
mov ebx, fs : [TIB_ArbitraryDataSlot]
mov [ebx], eax
pop ebx
call UnlockFS
ret
}
}
@ -388,13 +362,11 @@ __declspec(naked) void EmuFS_MovFs00Ebx()
// Note : eax must be preserved here, hence the push/pop
__asm
{
call LockFS
call EmuFS_RefreshKPCR
push eax
mov eax, fs : [TIB_ArbitraryDataSlot]
mov [eax], ebx
pop eax
call UnlockFS
ret
}
}
@ -404,13 +376,11 @@ __declspec(naked) void EmuFS_MovFs00Ecx()
// Note : eax must be preserved here, hence the push/pop
__asm
{
call LockFS
call EmuFS_RefreshKPCR
push eax
mov eax, fs : [TIB_ArbitraryDataSlot]
mov [eax], ecx
pop eax
call UnlockFS
ret
}
}
@ -421,14 +391,12 @@ __declspec(naked) void EmuFS_MovFs00Esp()
__asm
{
pushfd
call LockFS
call EmuFS_RefreshKPCR
push eax
mov eax, fs : [TIB_ArbitraryDataSlot]
mov [eax], esp
add [eax], 12 // account for esp changes from pushed registers and return address
pop eax
call UnlockFS
pop eax
popfd
ret
}