aboutsummaryrefslogtreecommitdiffstats
path: root/src/block/aes_ssse3
diff options
context:
space:
mode:
authorlloyd <[email protected]>2010-08-09 19:56:27 +0000
committerlloyd <[email protected]>2010-08-09 19:56:27 +0000
commit8b8b3f783d6106485e979a73b95ece07365703a0 (patch)
tree993b5be359c439faed80ea58784c7844ccd9ba17 /src/block/aes_ssse3
parentb741408407984fe65e038bc3c8ea92763e02aabc (diff)
Only enable aes_ssse3 when compiling with GCC or Clang. For some dumbass
reasons, Intel C++ rejects const __m128i foo = _mm_set_epi64x(...) though it will accept if you use one of the _mm_set1 variants. And Visual C++ doesn't know about _mm_set_epi64x() in 32-bit mode for similarly dumb reasons - it works fine compiling for 64 bit but for whatever reason they don't offer this function when compiling as 32 bit. Unfortunately there isn't a good way to specify it's OK with a particular compiler with one arch but not another, so just disable it globally for the time being. The workaround for VC++ is probably to use _mm_set_epi32 and break up the input values into 32 bit chunks. ICC is a lost cause I fear.
Diffstat (limited to 'src/block/aes_ssse3')
-rw-r--r--src/block/aes_ssse3/info.txt7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/block/aes_ssse3/info.txt b/src/block/aes_ssse3/info.txt
index 40e7e42f6..fb6eb83c6 100644
--- a/src/block/aes_ssse3/info.txt
+++ b/src/block/aes_ssse3/info.txt
@@ -7,3 +7,10 @@ need_isa ssse3
<requires>
simd_engine
</requires>
+
+# Intel C++ can't deal with syntax for defining constants :(
+# Visual C++ works in 64-bit mode but not 32-bit
+<cc>
+gcc
+clang
+</cc>