summaryrefslogtreecommitdiff
path: root/src/vm/i386/gmsasm.asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/i386/gmsasm.asm')
-rw-r--r--src/vm/i386/gmsasm.asm37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/vm/i386/gmsasm.asm b/src/vm/i386/gmsasm.asm
new file mode 100644
index 0000000000..6b6044b50d
--- /dev/null
+++ b/src/vm/i386/gmsasm.asm
@@ -0,0 +1,37 @@
+; 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.
+
+; ==++==
+;
+
+;
+; ==--==
+;
+; *** NOTE: If you make changes to this file, propagate the changes to
+; gmsasm.s in this directory
+
+ .586
+ .model flat
+
+include asmconstants.inc
+
+ option casemap:none
+ .code
+
+; int __fastcall LazyMachStateCaptureState(struct LazyMachState *pState);
+@LazyMachStateCaptureState@4 proc public
+ mov [ecx+MachState__pRetAddr], 0 ; marks that this is not yet valid
+ mov [ecx+MachState__edi], edi ; remember register values
+ mov [ecx+MachState__esi], esi
+ mov [ecx+MachState__ebx], ebx
+ mov [ecx+LazyMachState_captureEbp], ebp
+ mov [ecx+LazyMachState_captureEsp], esp
+
+ mov eax, [esp] ; capture return address
+ mov [ecx+LazyMachState_captureEip], eax
+ xor eax, eax
+ retn
+@LazyMachStateCaptureState@4 endp
+
+end