summaryrefslogtreecommitdiffstats
path: root/src/VBox/Devices/EFI/Firmware/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.nasm
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Devices/EFI/Firmware/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.nasm')
-rw-r--r--src/VBox/Devices/EFI/Firmware/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.nasm47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/VBox/Devices/EFI/Firmware/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.nasm b/src/VBox/Devices/EFI/Firmware/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.nasm
new file mode 100644
index 00000000..b9d440a7
--- /dev/null
+++ b/src/VBox/Devices/EFI/Firmware/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.nasm
@@ -0,0 +1,47 @@
+;------------------------------------------------------------------------------
+;*
+;* Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+;* SPDX-License-Identifier: BSD-2-Clause-Patent
+;*
+;* CpuAsm.nasm
+;*
+;* Abstract:
+;*
+;------------------------------------------------------------------------------
+
+ SECTION .text
+
+;------------------------------------------------------------------------------
+; VOID
+; SetCodeSelector (
+; UINT16 Selector
+; );
+;------------------------------------------------------------------------------
+global ASM_PFX(SetCodeSelector)
+ASM_PFX(SetCodeSelector):
+ mov ecx, [esp+4]
+ sub esp, 0x10
+ lea eax, [setCodeSelectorLongJump]
+ mov [esp], eax
+ mov [esp+4], cx
+ jmp dword far [esp]
+setCodeSelectorLongJump:
+ add esp, 0x10
+ ret
+
+;------------------------------------------------------------------------------
+; VOID
+; SetDataSelectors (
+; UINT16 Selector
+; );
+;------------------------------------------------------------------------------
+global ASM_PFX(SetDataSelectors)
+ASM_PFX(SetDataSelectors):
+ mov ecx, [esp+4]
+o16 mov ss, cx
+o16 mov ds, cx
+o16 mov es, cx
+o16 mov fs, cx
+o16 mov gs, cx
+ ret
+