diff options
author | Rodger Combs <rodger.combs@gmail.com> | 2015-10-26 02:08:58 -0500 |
---|---|---|
committer | Rodger Combs <rodger.combs@gmail.com> | 2015-10-28 04:23:14 -0500 |
commit | 1e477a970fd57f83b210b3cbc77698891d6bdf78 (patch) | |
tree | ae0b4eb41184cba6f6d548a43b9c94faa7e15a21 /libavutil/x86 | |
parent | 057ce755b9370629bcc840c998d5344099e46183 (diff) | |
download | ffmpeg-1e477a970fd57f83b210b3cbc77698891d6bdf78.tar.gz |
lavu: add AESNI CPU flag
Diffstat (limited to 'libavutil/x86')
-rw-r--r-- | libavutil/x86/cpu.c | 2 | ||||
-rw-r--r-- | libavutil/x86/cpu.h | 3 | ||||
-rw-r--r-- | libavutil/x86/x86inc.asm | 13 |
3 files changed, 12 insertions, 6 deletions
diff --git a/libavutil/x86/cpu.c b/libavutil/x86/cpu.c index 7a5d4e6a3a..f57d72d0a7 100644 --- a/libavutil/x86/cpu.c +++ b/libavutil/x86/cpu.c @@ -126,6 +126,8 @@ int ff_get_cpu_flags_x86(void) rval |= AV_CPU_FLAG_SSE4; if (ecx & 0x00100000 ) rval |= AV_CPU_FLAG_SSE42; + if (ecx & 0x01000000 ) + rval |= AV_CPU_FLAG_AESNI; #if HAVE_AVX /* Check OXSAVE and AVX bits */ if ((ecx & 0x18000000) == 0x18000000) { diff --git a/libavutil/x86/cpu.h b/libavutil/x86/cpu.h index 1cea4198d0..dc102c6015 100644 --- a/libavutil/x86/cpu.h +++ b/libavutil/x86/cpu.h @@ -47,6 +47,7 @@ #define X86_FMA3(flags) CPUEXT(flags, FMA3) #define X86_FMA4(flags) CPUEXT(flags, FMA4) #define X86_AVX2(flags) CPUEXT(flags, AVX2) +#define X86_AESNI(flags) CPUEXT(flags, AESNI) #define EXTERNAL_AMD3DNOW(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, AMD3DNOW) #define EXTERNAL_AMD3DNOWEXT(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, AMD3DNOWEXT) @@ -69,6 +70,7 @@ #define EXTERNAL_FMA3(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, FMA3) #define EXTERNAL_FMA4(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, FMA4) #define EXTERNAL_AVX2(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, AVX2) +#define EXTERNAL_AESNI(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, AESNI) #define INLINE_AMD3DNOW(flags) CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOW) #define INLINE_AMD3DNOWEXT(flags) CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOWEXT) @@ -91,6 +93,7 @@ #define INLINE_FMA3(flags) CPUEXT_SUFFIX(flags, _INLINE, FMA3) #define INLINE_FMA4(flags) CPUEXT_SUFFIX(flags, _INLINE, FMA4) #define INLINE_AVX2(flags) CPUEXT_SUFFIX(flags, _INLINE, AVX2) +#define INLINE_AESNI(flags) CPUEXT_SUFFIX(flags, _INLINE, AESNI) void ff_cpu_cpuid(int index, int *eax, int *ebx, int *ecx, int *edx); void ff_cpu_xgetbv(int op, int *eax, int *edx); diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm index afcd6b84ac..69ec57ddc5 100644 --- a/libavutil/x86/x86inc.asm +++ b/libavutil/x86/x86inc.asm @@ -772,6 +772,7 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, %assign cpuflags_atom (1<<21) %assign cpuflags_bmi1 (1<<22)|cpuflags_lzcnt %assign cpuflags_bmi2 (1<<23)|cpuflags_bmi1 +%assign cpuflags_aesni (1<<24)|cpuflags_sse42 ; Returns a boolean value expressing whether or not the specified cpuflag is enabled. %define cpuflag(x) (((((cpuflags & (cpuflags_ %+ x)) ^ (cpuflags_ %+ x)) - 1) >> 31) & 1) @@ -1171,12 +1172,12 @@ AVX_INSTR addsd, sse2, 1, 0, 1 AVX_INSTR addss, sse, 1, 0, 1 AVX_INSTR addsubpd, sse3, 1, 0, 0 AVX_INSTR addsubps, sse3, 1, 0, 0 -AVX_INSTR aesdec, fnord, 0, 0, 0 -AVX_INSTR aesdeclast, fnord, 0, 0, 0 -AVX_INSTR aesenc, fnord, 0, 0, 0 -AVX_INSTR aesenclast, fnord, 0, 0, 0 -AVX_INSTR aesimc -AVX_INSTR aeskeygenassist +AVX_INSTR aesdec, aesni, 0, 0, 0 +AVX_INSTR aesdeclast, aesni, 0, 0, 0 +AVX_INSTR aesenc, aesni, 0, 0, 0 +AVX_INSTR aesenclast, aesni, 0, 0, 0 +AVX_INSTR aesimc, aesni +AVX_INSTR aeskeygenassist, aesni AVX_INSTR andnpd, sse2, 1, 0, 0 AVX_INSTR andnps, sse, 1, 0, 0 AVX_INSTR andpd, sse2, 1, 0, 1 |