diff options
author | Benjamin Kaduk <bkaduk@akamai.com> | 2017-02-28 16:32:51 -0600 |
---|---|---|
committer | Rich Salz <rsalz@openssl.org> | 2017-02-28 20:14:31 -0500 |
commit | 06611d0a1623a1ce06275b6cdd7a270d9704bf37 (patch) | |
tree | 43c146b11c54a761d4d0044c4d773fe148cefa96 /crypto/x86cpuid.pl | |
parent | 5c6c4c5c333c8ac469e53521cf747ff527b8813a (diff) | |
download | openssl-06611d0a1623a1ce06275b6cdd7a270d9704bf37.zip openssl-06611d0a1623a1ce06275b6cdd7a270d9704bf37.tar.gz openssl-06611d0a1623a1ce06275b6cdd7a270d9704bf37.tar.bz2 |
Remove OPENSSL_indirect_call()
It's undocumented and unused in the tree. The idea seems to have
never gained much traction, and can be removed without breaking
ABI compatibility.
Reviewed-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2800)
Diffstat (limited to 'crypto/x86cpuid.pl')
-rw-r--r-- | crypto/x86cpuid.pl | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/crypto/x86cpuid.pl b/crypto/x86cpuid.pl index 176e8e3..d3e7ade 100644 --- a/crypto/x86cpuid.pl +++ b/crypto/x86cpuid.pl @@ -292,45 +292,6 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); } &ret (); &function_end_B("OPENSSL_atomic_add"); -# This function can become handy under Win32 in situations when -# we don't know which calling convention, __stdcall or __cdecl(*), -# indirect callee is using. In C it can be deployed as -# -#ifdef OPENSSL_CPUID_OBJ -# type OPENSSL_indirect_call(void *f,...); -# ... -# OPENSSL_indirect_call(func,[up to $max arguments]); -#endif -# -# (*) it's designed to work even for __fastcall if number of -# arguments is 1 or 2! -&function_begin_B("OPENSSL_indirect_call"); - { - my ($max,$i)=(7,); # $max has to be chosen as 4*n-1 - # in order to preserve eventual - # stack alignment - &push ("ebp"); - &mov ("ebp","esp"); - &sub ("esp",$max*4); - &mov ("ecx",&DWP(12,"ebp")); - &mov (&DWP(0,"esp"),"ecx"); - &mov ("edx",&DWP(16,"ebp")); - &mov (&DWP(4,"esp"),"edx"); - for($i=2;$i<$max;$i++) - { - # Some copies will be redundant/bogus... - &mov ("eax",&DWP(12+$i*4,"ebp")); - &mov (&DWP(0+$i*4,"esp"),"eax"); - } - &call_ptr (&DWP(8,"ebp"));# make the call... - &mov ("esp","ebp"); # ... and just restore the stack pointer - # without paying attention to what we called, - # (__cdecl *func) or (__stdcall *one). - &pop ("ebp"); - &ret (); - } -&function_end_B("OPENSSL_indirect_call"); - &function_begin_B("OPENSSL_cleanse"); &mov ("edx",&wparam(0)); &mov ("ecx",&wparam(1)); |