mcst-linux-kernel/patches-2024.06.26/hadoop-3.2.2/0002-define-e2k-bswap.patch

45 lines
1.3 KiB
Diff

Subject: define bswap for e2k
Bug: 111656
Tags: e2k
diff -Naur a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src/lib/primitives.h b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src/lib/primitives.h
--- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src/lib/primitives.h 2021-11-22 16:38:22.531971037 +0300
+++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src/lib/primitives.h 2021-11-22 16:39:15.485304318 +0300
@@ -28,6 +28,9 @@
#include <stdint.h>
#include <assert.h>
#include <string>
+#ifdef __e2k__
+#include <e2kintrin.h>
+#endif
#ifdef __GNUC__
#define likely(x) __builtin_expect((x),1)
@@ -99,6 +102,8 @@
inline uint32_t bswap(uint32_t val) {
#ifdef __aarch64__
__asm__("rev %w[dst], %w[src]" : [dst]"=r"(val) : [src]"r"(val));
+#elif __e2k__
+ __builtin_bswap64(val);
#else
__asm__("bswap %0" : "=r" (val) : "0" (val));
#endif
@@ -112,6 +117,9 @@
#ifdef __X64
__asm__("bswapq %0" : "=r" (val) : "0" (val));
#else
+#ifdef __e2k__
+ __builtin_bswap64(val);
+#else
uint64_t lower = val & 0xffffffffU;
uint32_t higher = (val >> 32) & 0xffffffffU;
@@ -123,6 +131,7 @@
#endif
#endif
+#endif
return val;
}