Fix for reformat problems with e_padlock.c
Reviewed-by: Andy Polyakov <appro@openssl.org> (cherry picked from commit d3b7cac41b957704932a0cdbc74d4d48ed507cd0)
This commit is contained in:
parent
90a5adffc7
commit
925bfca5d3
@ -533,34 +533,96 @@ PADLOCK_XCRYPT_ASM(padlock_xcrypt_ecb, 0xc8)
|
|||||||
static int __fastcall padlock_xstore(void *outp, unsigned int code)
|
static int __fastcall padlock_xstore(void *outp, unsigned int code)
|
||||||
{
|
{
|
||||||
_asm mov edi,ecx
|
_asm mov edi,ecx
|
||||||
_asm _emit 0x0f _asm _emit 0xa7 _asm _emit 0xc0}
|
_asm _emit 0x0f _asm _emit 0xa7 _asm _emit 0xc0
|
||||||
|
}
|
||||||
|
|
||||||
static void __fastcall padlock_reload_key(void)
|
static void __fastcall padlock_reload_key(void)
|
||||||
{
|
{
|
||||||
_asm pushfd _asm popfd}
|
_asm pushfd
|
||||||
|
_asm popfd
|
||||||
|
}
|
||||||
|
|
||||||
static void __fastcall padlock_verify_context(void *cdata)
|
static void __fastcall padlock_verify_context(void *cdata)
|
||||||
{
|
{
|
||||||
_asm {
|
_asm {
|
||||||
pushfd bt DWORD PTR[esp], 30 jnc skip cmp ecx,
|
pushfd
|
||||||
padlock_saved_context je skip popfd sub esp,
|
bt DWORD PTR[esp],30
|
||||||
4 skip:add esp, 4 mov padlock_saved_context,
|
jnc skip
|
||||||
ecx}} static int padlock_available(void)
|
cmp ecx,padlock_saved_context
|
||||||
|
je skip
|
||||||
|
popfd
|
||||||
|
sub esp,4
|
||||||
|
skip: add esp,4
|
||||||
|
mov padlock_saved_context,ecx
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
padlock_available(void)
|
||||||
{
|
{
|
||||||
_asm {
|
_asm {
|
||||||
pushfd pop eax mov ecx, eax xor eax,
|
pushfd
|
||||||
1 << 21 push eax popfd pushfd pop eax xor eax, ecx bt eax,
|
pop eax
|
||||||
21 jnc noluck mov eax, 0 cpuid xor eax, eax cmp ebx,
|
mov ecx,eax
|
||||||
'tneC' jne noluck cmp edx, 'Hrua' jne noluck cmp ecx,
|
xor eax,1<<21
|
||||||
'slua' jne noluck mov eax, 0xC0000000 cpuid mov edx,
|
push eax
|
||||||
eax xor eax, eax cmp edx, 0xC0000001 jb noluck mov eax,
|
popfd
|
||||||
0xC0000001 cpuid xor eax, eax bt edx, 6 jnc skip_a bt edx,
|
pushfd
|
||||||
7 jnc skip_a mov padlock_use_ace, 1 inc eax skip_a:bt edx,
|
pop eax
|
||||||
2 jnc skip_r bt edx, 3 jnc skip_r mov padlock_use_rng,
|
xor eax,ecx
|
||||||
1 inc eax skip_r:noluck:}} static void __fastcall
|
bt eax,21
|
||||||
padlock_bswapl(void *key)
|
jnc noluck
|
||||||
|
mov eax,0
|
||||||
|
cpuid
|
||||||
|
xor eax,eax
|
||||||
|
cmp ebx,'tneC'
|
||||||
|
jne noluck
|
||||||
|
cmp edx,'Hrua'
|
||||||
|
jne noluck
|
||||||
|
cmp ecx,'slua'
|
||||||
|
jne noluck
|
||||||
|
mov eax,0xC0000000
|
||||||
|
cpuid
|
||||||
|
mov edx,eax
|
||||||
|
xor eax,eax
|
||||||
|
cmp edx,0xC0000001
|
||||||
|
jb noluck
|
||||||
|
mov eax,0xC0000001
|
||||||
|
cpuid
|
||||||
|
xor eax,eax
|
||||||
|
bt edx,6
|
||||||
|
jnc skip_a
|
||||||
|
bt edx,7
|
||||||
|
jnc skip_a
|
||||||
|
mov padlock_use_ace,1
|
||||||
|
inc eax
|
||||||
|
skip_a: bt edx,2
|
||||||
|
jnc skip_r
|
||||||
|
bt edx,3
|
||||||
|
jnc skip_r
|
||||||
|
mov padlock_use_rng,1
|
||||||
|
inc eax
|
||||||
|
skip_r:
|
||||||
|
noluck:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __fastcall padlock_bswapl(void *key)
|
||||||
{
|
{
|
||||||
_asm {
|
_asm {
|
||||||
pushfd cld mov esi, ecx mov edi, ecx mov ecx, 60 up:lodsd
|
pushfd
|
||||||
bswap eax stosd loop up popfd}}
|
cld
|
||||||
|
mov esi,ecx
|
||||||
|
mov edi,ecx
|
||||||
|
mov ecx,60
|
||||||
|
up: lodsd
|
||||||
|
bswap eax
|
||||||
|
stosd
|
||||||
|
loop up
|
||||||
|
popfd
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* MS actually specifies status of Direction Flag and compiler even manages
|
* MS actually specifies status of Direction Flag and compiler even manages
|
||||||
* to compile following as 'rep movsd' all by itself...
|
* to compile following as 'rep movsd' all by itself...
|
||||||
|
Loading…
x
Reference in New Issue
Block a user