From: Jonghyun Park Date: Tue, 6 Dec 2016 01:01:57 +0000 (+0900) Subject: [x86/Linux] Port gmsasm.asm (dotnet/coreclr#8456) X-Git-Tag: submit/tizen/20210909.063632~11030^2~8712 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9eeb47d990cffd2fb4c8063a4f724bbb725d1d33;p=platform%2Fupstream%2Fdotnet%2Fruntime.git [x86/Linux] Port gmsasm.asm (dotnet/coreclr#8456) Commit migrated from https://github.com/dotnet/coreclr/commit/ea8387f07031f42708e419a5629c53d7fbf384d7 --- diff --git a/src/coreclr/src/vm/CMakeLists.txt b/src/coreclr/src/vm/CMakeLists.txt index 02e44d3..1fb0e41 100644 --- a/src/coreclr/src/vm/CMakeLists.txt +++ b/src/coreclr/src/vm/CMakeLists.txt @@ -375,6 +375,10 @@ else(WIN32) ${ARCH_SOURCES_DIR}/umthunkstub.S ${ARCH_SOURCES_DIR}/virtualcallstubamd64.S ) + elseif(CLR_CMAKE_TARGET_ARCH_I386) + set(VM_SOURCES_WKS_ARCH_ASM + ${ARCH_SOURCES_DIR}/gmsasm.S + ) elseif(CLR_CMAKE_TARGET_ARCH_ARM) set(VM_SOURCES_WKS_ARCH_ASM ${ARCH_SOURCES_DIR}/asmhelpers.S diff --git a/src/coreclr/src/vm/i386/gmsasm.S b/src/coreclr/src/vm/i386/gmsasm.S new file mode 100644 index 0000000..1e43fd2 --- /dev/null +++ b/src/coreclr/src/vm/i386/gmsasm.S @@ -0,0 +1,28 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +.intel_syntax noprefix +#include "unixasmmacros.inc" +#include "asmconstants.h" + +// int __fastcall LazyMachStateCaptureState(struct LazyMachState *pState); +LEAF_ENTRY LazyMachStateCaptureState, _TEXT + // marks that this is not yet valid + mov dword ptr [ecx+MachState__pRetAddr], 0 + + // remember register values + mov [ecx+MachState__edi], edi + mov [ecx+MachState__esi], esi + mov [ecx+MachState__ebx], ebx + mov [ecx+LazyMachState_captureEbp], ebp + mov [ecx+LazyMachState_captureEsp], esp + + // capture return address + mov eax, [esp] + mov dword ptr [ecx+LazyMachState_captureEip], eax + + // return 0 + xor eax, eax + ret +LEAF_END LazyMachStateCaptureState, _TEXT