]> git.proxmox.com Git - mirror_edk2.git/blame - CryptoPkg/Library/IntrinsicLib/Ia32/MathRShiftU64.nasm
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / CryptoPkg / Library / IntrinsicLib / Ia32 / MathRShiftU64.nasm
CommitLineData
cbe09e31
LG
1;------------------------------------------------------------------------------\r
2;\r
3; Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
2009f6b4 4; SPDX-License-Identifier: BSD-2-Clause-Patent\r
cbe09e31
LG
5;\r
6; Module Name:\r
7;\r
8; MathRShiftU64.nasm\r
9;\r
10; Abstract:\r
11;\r
12; 64-bit Math Worker Function.\r
13; Shifts a 64-bit unsigned value right by a certain number of bits.\r
14;\r
15;------------------------------------------------------------------------------\r
16\r
17 SECTION .text\r
18\r
19;------------------------------------------------------------------------------\r
20;\r
21; void __cdecl __ashrdi3 (void)\r
22;\r
23;------------------------------------------------------------------------------\r
24global ASM_PFX(__ashrdi3)\r
25ASM_PFX(__ashrdi3):\r
26 cmp cl,0x40\r
27 jnc _Exit\r
28 cmp cl,0x20\r
29 jnc More32\r
30 shrd eax,edx,cl\r
31 shr edx,cl\r
32 ret\r
33More32:\r
34 mov eax,edx\r
35 xor edx,edx\r
36 and cl,0x1f\r
37 shr eax,cl\r
38 ret\r
39_Exit:\r
40 xor eax,eax\r
41 xor edx,edx\r
42 ret\r
43\r