summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--snappy-internal.h6
-rw-r--r--snappy.cc3
2 files changed, 6 insertions, 3 deletions
diff --git a/snappy-internal.h b/snappy-internal.h
index e552ea0..0923f39 100644
--- a/snappy-internal.h
+++ b/snappy-internal.h
@@ -246,7 +246,8 @@ static inline std::pair<size_t, bool> FindMatchLength(const char* s1,
asm("testl %k2, %k2\n\t"
"cmovzq %1, %0\n\t"
: "+r"(a2)
- : "r"(a3), "r"(xorval));
+ : "r"(a3), "r"(xorval)
+ : "cc");
#endif
*data = a2 >> (shift & (3 * 8));
return std::pair<size_t, bool>(matched_bytes, true);
@@ -277,7 +278,8 @@ static inline std::pair<size_t, bool> FindMatchLength(const char* s1,
asm("testl %k2, %k2\n\t"
"cmovzq %1, %0\n\t"
: "+r"(a2)
- : "r"(a3), "r"(xorval));
+ : "r"(a3), "r"(xorval)
+ : "cc");
#endif
*data = a2 >> (shift & (3 * 8));
matched += matched_bytes;
diff --git a/snappy.cc b/snappy.cc
index 57d7319..c830fb9 100644
--- a/snappy.cc
+++ b/snappy.cc
@@ -1107,7 +1107,8 @@ inline size_t AdvanceToNextTagX86Optimized(const uint8_t** ip_p, size_t* tag) {
// TODO clang misses the fact that the (c & 3) already correctly
// sets the zero flag.
asm("and $3, %k[tag_type]\n\t"
- : [tag_type] "+r"(tag_type), "=@ccz"(is_literal));
+ : [tag_type] "+r"(tag_type), "=@ccz"(is_literal)
+ :: "cc");
#else
tag_type &= 3;
is_literal = (tag_type == 0);