TianoCore EDK2
master
Loading...
Searching...
No Matches
MathLShiftS64.c
Go to the documentation of this file.
1
11
/*
12
* Shifts a 64-bit signed value left by a particular number of bits.
13
*/
14
__declspec(naked)
void
__cdecl
15
_allshl (
16
void
17
)
18
{
19
_asm {
20
;
21
; Handle shifting of 64 or more bits (
return
0)
22
;
23
24
cmp cl, 64
25
jae
short
ReturnZero
26
27
;
28
; Handle shifting of between 0 and 31 bits
29
;
30
cmp cl, 32
31
jae
short
More32
32
shld edx, eax, cl
33
shl eax, cl
34
ret
35
36
;
37
; Handle shifting of between 32 and 63 bits
38
;
39
More32:
40
mov edx, eax
41
xor eax, eax
42
and cl, 31
43
shl edx, cl
44
ret
45
46
ReturnZero:
47
xor eax,eax
48
xor edx,edx
49
ret
50
}
51
}
CryptoPkg
Library
IntrinsicLib
Ia32
MathLShiftS64.c
Generated on Fri Nov 15 2024 18:01:05 for TianoCore EDK2 by
1.9.6