Add additiona; test programs

This commit is contained in:
Jeffrey Walton 2020-07-27 11:55:24 -04:00
parent abd8b7a991
commit 1432ae0819
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
4 changed files with 119 additions and 0 deletions

View File

@ -614,3 +614,6 @@ TestPrograms/test_x86_sse3.cxx
TestPrograms/test_x86_sse41.cxx
TestPrograms/test_x86_sse42.cxx
TestPrograms/test_x86_ssse3.cxx
TestPrograms/test_x86_via_aes.cxx
TestPrograms/test_x86_via_rng.cxx
TestPrograms/test_x86_via_sha.cxx

View File

@ -0,0 +1,39 @@
// TODO: cut-in xcrypt-ecb
#include <cstdlib>
int main(int argc, char* argv[])
{
unsigned int msr=0;
unsigned int divisor=2;
unsigned int buffer;
__asm__ __volatile__
(
#if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
"mov %1, %%rdi ;\n"
"movl %2, %%edx ;\n"
#else
"mov %1, %%edi ;\n"
"movl %2, %%edx ;\n"
#endif
// xstore-rng
".byte 0x0f, 0xa7, 0xc0 ;\n"
#if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
"andq %%rax, 0x1f ;\n"
"movl %%eax, %0 ;\n"
#else
"andl %%eax, 0x1f ;\n"
"movl %%eax, %0 ;\n"
#endif
: "=g" (msr) : "g" (buffer), "g" (divisor)
#if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
: "rax", "rdx", "rdi", "cc"
#else
: "eax", "edx", "edi", "cc"
#endif
);
return 0;
}

View File

@ -0,0 +1,38 @@
#include <cstdlib>
int main(int argc, char* argv[])
{
unsigned int msr=0;
unsigned int divisor=2;
unsigned int buffer;
__asm__ __volatile__
(
#if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
"mov %1, %%rdi ;\n"
"movl %2, %%edx ;\n"
#else
"mov %1, %%edi ;\n"
"movl %2, %%edx ;\n"
#endif
// xstore-rng
".byte 0x0f, 0xa7, 0xc0 ;\n"
#if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
"andq %%rax, 0x1f ;\n"
"movl %%eax, %0 ;\n"
#else
"andl %%eax, 0x1f ;\n"
"movl %%eax, %0 ;\n"
#endif
: "=g" (msr) : "g" (buffer), "g" (divisor)
#if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
: "rax", "rdx", "rdi", "cc"
#else
: "eax", "edx", "edi", "cc"
#endif
);
return 0;
}

View File

@ -0,0 +1,39 @@
// TODO: cut-in xsha1
#include <cstdlib>
int main(int argc, char* argv[])
{
unsigned int msr=0;
unsigned int divisor=2;
unsigned int buffer;
__asm__ __volatile__
(
#if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
"mov %1, %%rdi ;\n"
"movl %2, %%edx ;\n"
#else
"mov %1, %%edi ;\n"
"movl %2, %%edx ;\n"
#endif
// xstore-rng
".byte 0x0f, 0xa7, 0xc0 ;\n"
#if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
"andq %%rax, 0x1f ;\n"
"movl %%eax, %0 ;\n"
#else
"andl %%eax, 0x1f ;\n"
"movl %%eax, %0 ;\n"
#endif
: "=g" (msr) : "g" (buffer), "g" (divisor)
#if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
: "rax", "rdx", "rdi", "cc"
#else
: "eax", "edx", "edi", "cc"
#endif
);
return 0;
}