summaryrefslogtreecommitdiff
path: root/chromium/v8/src/execution/ppc/simulator-ppc.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/v8/src/execution/ppc/simulator-ppc.h')
-rw-r--r--chromium/v8/src/execution/ppc/simulator-ppc.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/chromium/v8/src/execution/ppc/simulator-ppc.h b/chromium/v8/src/execution/ppc/simulator-ppc.h
index bacd844be05..2dea5c00ca2 100644
--- a/chromium/v8/src/execution/ppc/simulator-ppc.h
+++ b/chromium/v8/src/execution/ppc/simulator-ppc.h
@@ -321,6 +321,18 @@ class Simulator : public SimulatorBase {
}
}
+ // Byte Reverse.
+ static inline __uint128_t __builtin_bswap128(__uint128_t v) {
+ union {
+ uint64_t u64[2];
+ __uint128_t u128;
+ } res, val;
+ val.u128 = v;
+ res.u64[0] = __builtin_bswap64(val.u64[1]);
+ res.u64[1] = __builtin_bswap64(val.u64[0]);
+ return res.u128;
+ }
+
#define RW_VAR_LIST(V) \
V(QWU, unsigned __int128) \
V(QW, __int128) \