From a3ec6c1ccfe613cca886f6bff5feb0ec9c3710d9 Mon Sep 17 00:00:00 2001 From: Samuel Neves Date: Fri, 26 Jun 2020 18:39:17 +0100 Subject: [PATCH] enable CET on asm --- c/blake3_avx2_x86-64_unix.S | 7 +++++++ c/blake3_avx512_x86-64_unix.S | 10 +++++++++- c/blake3_sse41_x86-64_unix.S | 9 +++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/c/blake3_avx2_x86-64_unix.S b/c/blake3_avx2_x86-64_unix.S index fa6f61d..d9019e6 100644 --- a/c/blake3_avx2_x86-64_unix.S +++ b/c/blake3_avx2_x86-64_unix.S @@ -1,3 +1,9 @@ +#if defined(__ELF__) && defined(__CET__) && __has_include() +#include +#else +#define _CET_ENDBR +#endif + .intel_syntax noprefix .global _blake3_hash_many_avx2 .global blake3_hash_many_avx2 @@ -9,6 +15,7 @@ .p2align 6 _blake3_hash_many_avx2: blake3_hash_many_avx2: + _CET_ENDBR push r15 push r14 push r13 diff --git a/c/blake3_avx512_x86-64_unix.S b/c/blake3_avx512_x86-64_unix.S index 25612cb..b3c9684 100644 --- a/c/blake3_avx512_x86-64_unix.S +++ b/c/blake3_avx512_x86-64_unix.S @@ -1,5 +1,10 @@ -.intel_syntax noprefix +#if defined(__ELF__) && defined(__CET__) && __has_include() +#include +#else +#define _CET_ENDBR +#endif +.intel_syntax noprefix .global _blake3_hash_many_avx512 .global blake3_hash_many_avx512 .global blake3_compress_in_place_avx512 @@ -15,6 +20,7 @@ .p2align 6 _blake3_hash_many_avx512: blake3_hash_many_avx512: + _CET_ENDBR push r15 push r14 push r13 @@ -2372,6 +2378,7 @@ blake3_hash_many_avx512: .p2align 6 _blake3_compress_in_place_avx512: blake3_compress_in_place_avx512: + _CET_ENDBR vmovdqu xmm0, xmmword ptr [rdi] vmovdqu xmm1, xmmword ptr [rdi+0x10] movzx eax, r8b @@ -2454,6 +2461,7 @@ blake3_compress_in_place_avx512: .p2align 6 _blake3_compress_xof_avx512: blake3_compress_xof_avx512: + _CET_ENDBR vmovdqu xmm0, xmmword ptr [rdi] vmovdqu xmm1, xmmword ptr [rdi+0x10] movzx eax, r8b diff --git a/c/blake3_sse41_x86-64_unix.S b/c/blake3_sse41_x86-64_unix.S index 268c91b..6773edf 100644 --- a/c/blake3_sse41_x86-64_unix.S +++ b/c/blake3_sse41_x86-64_unix.S @@ -1,3 +1,9 @@ +#if defined(__ELF__) && defined(__CET__) && __has_include() +#include +#else +#define _CET_ENDBR +#endif + .intel_syntax noprefix .global blake3_hash_many_sse41 .global _blake3_hash_many_sse41 @@ -13,6 +19,7 @@ .p2align 6 _blake3_hash_many_sse41: blake3_hash_many_sse41: + _CET_ENDBR push r15 push r14 push r13 @@ -1774,6 +1781,7 @@ blake3_hash_many_sse41: .p2align 6 blake3_compress_in_place_sse41: _blake3_compress_in_place_sse41: + _CET_ENDBR movups xmm0, xmmword ptr [rdi] movups xmm1, xmmword ptr [rdi+0x10] movaps xmm2, xmmword ptr [BLAKE3_IV+rip] @@ -1874,6 +1882,7 @@ _blake3_compress_in_place_sse41: .p2align 6 blake3_compress_xof_sse41: _blake3_compress_xof_sse41: + _CET_ENDBR movups xmm0, xmmword ptr [rdi] movups xmm1, xmmword ptr [rdi+0x10] movaps xmm2, xmmword ptr [BLAKE3_IV+rip]