]> git.proxmox.com Git - mirror_edk2.git/blob - UefiCpuPkg/CpuDxe/X64/CpuAsm.asm
c71b06a81e898be6c19f2bd23465418e01d7c724
[mirror_edk2.git] / UefiCpuPkg / CpuDxe / X64 / CpuAsm.asm
1 TITLE CpuAsm.asm:
2 ;------------------------------------------------------------------------------
3 ;*
4 ;* Copyright (c) 2008 - 2013, Intel Corporation. All rights reserved.<BR>
5 ;* This program and the accompanying materials
6 ;* are licensed and made available under the terms and conditions of the BSD License
7 ;* which accompanies this distribution. The full text of the license may be found at
8 ;* http://opensource.org/licenses/bsd-license.php
9 ;*
10 ;* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 ;* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 ;*
13 ;* CpuAsm.asm
14 ;*
15 ;* Abstract:
16 ;*
17 ;------------------------------------------------------------------------------
18
19 .code
20
21 ;------------------------------------------------------------------------------
22 ; VOID
23 ; SetCodeSelector (
24 ; UINT16 Selector
25 ; );
26 ;------------------------------------------------------------------------------
27 SetCodeSelector PROC PUBLIC
28 sub rsp, 0x10
29 lea rax, setCodeSelectorLongJump
30 mov [rsp], rax
31 mov [rsp+4], cx
32 jmp fword ptr [rsp]
33 setCodeSelectorLongJump:
34 add rsp, 0x10
35 ret
36 SetCodeSelector ENDP
37
38 ;------------------------------------------------------------------------------
39 ; VOID
40 ; SetDataSelectors (
41 ; UINT16 Selector
42 ; );
43 ;------------------------------------------------------------------------------
44 SetDataSelectors PROC PUBLIC
45 mov ss, cx
46 mov ds, cx
47 mov es, cx
48 mov fs, cx
49 mov gs, cx
50 ret
51 SetDataSelectors ENDP
52
53 END
54