aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNigel Tao <nigeltao@golang.org>2021-06-28 10:12:04 +1000
committerNigel Tao <nigeltao@golang.org>2021-06-28 10:12:04 +1000
commitf3caaea659695bb087c06c8a10247060b6dfba71 (patch)
tree42a5636473f0b7be1c1763467738c8fed0de1bfb
parentbb778715e5c49aac7f03bb8782907d61c93c0e29 (diff)
downloadwuffs-mirror-release-c-f3caaea659695bb087c06c8a10247060b6dfba71.tar.gz
Run script/sync.sh
-rw-r--r--release/c/wuffs-v0.3.c72
-rw-r--r--sync.txt8
2 files changed, 67 insertions, 13 deletions
diff --git a/release/c/wuffs-v0.3.c b/release/c/wuffs-v0.3.c
index 2b69393..ed138c9 100644
--- a/release/c/wuffs-v0.3.c
+++ b/release/c/wuffs-v0.3.c
@@ -82,15 +82,15 @@ extern "C" {
// each major.minor branch, the commit count should increase monotonically.
//
// WUFFS_VERSION was overridden by "wuffs gen -version" based on revision
-// f6945c061289cfbc6f6e415b0fd77b70f6cd46f2 committed on 2021-06-25.
+// b9a10d051a05c5749d54e2db8d0bd1848dd57181 committed on 2021-06-28.
#define WUFFS_VERSION 0x000030000
#define WUFFS_VERSION_MAJOR 0
#define WUFFS_VERSION_MINOR 3
#define WUFFS_VERSION_PATCH 0
-#define WUFFS_VERSION_PRE_RELEASE_LABEL "beta.3"
-#define WUFFS_VERSION_BUILD_METADATA_COMMIT_COUNT 3051
-#define WUFFS_VERSION_BUILD_METADATA_COMMIT_DATE 20210625
-#define WUFFS_VERSION_STRING "0.3.0-beta.3+3051.20210625"
+#define WUFFS_VERSION_PRE_RELEASE_LABEL "beta.4"
+#define WUFFS_VERSION_BUILD_METADATA_COMMIT_COUNT 3058
+#define WUFFS_VERSION_BUILD_METADATA_COMMIT_DATE 20210628
+#define WUFFS_VERSION_STRING "0.3.0-beta.4+3058.20210628"
// ---------------- Configuration
@@ -805,6 +805,56 @@ wuffs_base__u64__max(uint64_t x, uint64_t y) {
// --------
+static inline uint8_t //
+wuffs_base__u8__rotate_left(uint8_t x, uint32_t n) {
+ n &= 7;
+ return ((uint8_t)(x << n)) | ((uint8_t)(x >> (8 - n)));
+}
+
+static inline uint8_t //
+wuffs_base__u8__rotate_right(uint8_t x, uint32_t n) {
+ n &= 7;
+ return ((uint8_t)(x >> n)) | ((uint8_t)(x << (8 - n)));
+}
+
+static inline uint16_t //
+wuffs_base__u16__rotate_left(uint16_t x, uint32_t n) {
+ n &= 15;
+ return ((uint16_t)(x << n)) | ((uint16_t)(x >> (16 - n)));
+}
+
+static inline uint16_t //
+wuffs_base__u16__rotate_right(uint16_t x, uint32_t n) {
+ n &= 15;
+ return ((uint16_t)(x >> n)) | ((uint16_t)(x << (16 - n)));
+}
+
+static inline uint32_t //
+wuffs_base__u32__rotate_left(uint32_t x, uint32_t n) {
+ n &= 31;
+ return ((uint32_t)(x << n)) | ((uint32_t)(x >> (32 - n)));
+}
+
+static inline uint32_t //
+wuffs_base__u32__rotate_right(uint32_t x, uint32_t n) {
+ n &= 31;
+ return ((uint32_t)(x >> n)) | ((uint32_t)(x << (32 - n)));
+}
+
+static inline uint64_t //
+wuffs_base__u64__rotate_left(uint64_t x, uint32_t n) {
+ n &= 63;
+ return ((uint64_t)(x << n)) | ((uint64_t)(x >> (64 - n)));
+}
+
+static inline uint64_t //
+wuffs_base__u64__rotate_right(uint64_t x, uint32_t n) {
+ n &= 63;
+ return ((uint64_t)(x >> n)) | ((uint64_t)(x << (64 - n)));
+}
+
+// --------
+
// Saturating arithmetic (sat_add, sat_sub) branchless bit-twiddling algorithms
// are per https://locklessinc.com/articles/sat_arithmetic/
//
@@ -10062,14 +10112,18 @@ extern "C" {
// Denote intentional fallthroughs for -Wimplicit-fallthrough.
//
-// The order matters here. Clang also defines "__GNUC__".
-#if defined(__clang__) && defined(__cplusplus) && (__cplusplus >= 201103L)
-#define WUFFS_BASE__FALLTHROUGH [[clang::fallthrough]]
-#elif !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 7)
+// The two #if lines are deliberately separate. Combining the two conditions
+// into a single "#if foo && bar" line would not be portable. See
+// https://gcc.gnu.org/onlinedocs/cpp/_005f_005fhas_005fattribute.html
+#if defined(__has_attribute)
+#if __has_attribute(fallthrough)
#define WUFFS_BASE__FALLTHROUGH __attribute__((fallthrough))
#else
#define WUFFS_BASE__FALLTHROUGH
#endif
+#else
+#define WUFFS_BASE__FALLTHROUGH
+#endif
// Use switch cases for coroutine suspension points, similar to the technique
// in https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html
diff --git a/sync.txt b/sync.txt
index d1dcf12..0e0b5e6 100644
--- a/sync.txt
+++ b/sync.txt
@@ -1,8 +1,8 @@
-script/sync.sh ran on 2021-06-25
-Sibling directory (../wuffs) git revision is b2b8961126502d2ab00daa20d19a976964c012a3
+script/sync.sh ran on 2021-06-28
+Sibling directory (../wuffs) git revision is 6bfaf0f008ae0f54e05f23d14256f4a7d35146f2
Manifest (sha256sum values, filenames, versions):
bb28889a02c5d89edf6544ded21495462d1f998f8ffa5d095f53ca5db29e2937 release/c/README.md
3b6a0c78f663bb495d1972fbb2a87c717d70fbac5ea8cc1a50cb9afaa4b03f92 release/c/wuffs-v0.2.c
#define WUFFS_VERSION_STRING "0.2.0+2078.20191219"
-6984ecf235815c9c921527cc956f137ae542cc7a75e606645e206feddeb40dfd release/c/wuffs-v0.3.c
- #define WUFFS_VERSION_STRING "0.3.0-beta.3+3051.20210625"
+f30a747983cb8e00f8e906bf605af7e69d4c77cb2c02c7f2680a8f80b4e21f77 release/c/wuffs-v0.3.c
+ #define WUFFS_VERSION_STRING "0.3.0-beta.4+3058.20210628"