From 4518486a771055e633aa050141d9721353d542d7 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Wed, 3 Apr 2019 21:59:22 +0200 Subject: ternary ops in AES and TEA --- test/monniaux/bitsliced-aes/bs.c | 4 ++-- test/monniaux/bitsliced-tea/bstea.h | 12 ++---------- test/monniaux/bitsliced-tea/bstea_wordsize.h | 2 +- 3 files changed, 5 insertions(+), 13 deletions(-) (limited to 'test') diff --git a/test/monniaux/bitsliced-aes/bs.c b/test/monniaux/bitsliced-aes/bs.c index 9a24643c..929fd24d 100644 --- a/test/monniaux/bitsliced-aes/bs.c +++ b/test/monniaux/bitsliced-aes/bs.c @@ -2,8 +2,8 @@ #include #include "bs.h" -#if defined(__K1C__) -#define TERNARY(x, v0, v1) __builtin_ternary_ulong((x), (v1), (v0)) +#if defined(__K1C__) && defined(__COMPCERT__) +#define TERNARY(x, v0, v1) __builtin_ternary_ulong((x)!=0, (v1), (v0)) #else #define TERNARY(x, v0, v1) ((x) ? (v1) : (v0)) #endif diff --git a/test/monniaux/bitsliced-tea/bstea.h b/test/monniaux/bitsliced-tea/bstea.h index fa767996..793f29ff 100644 --- a/test/monniaux/bitsliced-tea/bstea.h +++ b/test/monniaux/bitsliced-tea/bstea.h @@ -6,16 +6,8 @@ #include "bstea_wordsize.h" -static inline long compcert_ternary_signedl(long x, long v0, long v1) { - return ((-(x==0)) & v0) | ((-(x!=0)) & v1); -} - -static inline uint32_t compcert_ternary(uint32_t x, uint32_t v0, uint32_t v1) { - return compcert_ternary_signedl(x, v0, v1); -} - -#if defined(__K1C__) -#define TERNARY(x, v1, v0) compcert_ternary((x), (v0), (v1)) +#if defined(__K1C__) && defined(__COMPCERT__) +#define TERNARY(x, v1, v0) __builtin_ternary_ulong((x)!=0, (v1), (v0)) #else #define TERNARY(x, v1, v0) ((x) ? (v1) : (v0)) #endif diff --git a/test/monniaux/bitsliced-tea/bstea_wordsize.h b/test/monniaux/bitsliced-tea/bstea_wordsize.h index 5381e17c..b4e2e823 100644 --- a/test/monniaux/bitsliced-tea/bstea_wordsize.h +++ b/test/monniaux/bitsliced-tea/bstea_wordsize.h @@ -6,7 +6,7 @@ #if defined __x86_64__ || defined __amd64__ || defined __x86_64 || \ defined __amd64 || defined _M_X64 || defined __ia64__ || \ defined __ia64__ || defined __IA64__ || defined __ia64 || \ - defined _M_IA64 + defined _M_IA64 || defined __K1C__ # define __BSTEA_WORDSIZE 64 #else # define __BSTEA_WORDSIZE 32 -- cgit