aboutsummaryrefslogtreecommitdiff
path: root/src/dynarmic/tests
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2025-10-17 22:12:58 +0200
committercrueter <crueter@eden-emu.dev>2025-10-17 22:12:58 +0200
commit3e8fe622a7d1dc8ff9d3a34d975b556b8fd35a94 (patch)
tree374efb4578d3d99aef4564b1d6e13973aa8e9ac3 /src/dynarmic/tests
parent1c90b099d3eb7991462b82dae340c3f8743e1755 (diff)
[compat] Solaris build fixes for openssl, catch2; NetBSD build fixes (#2752)
Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2752 Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/dynarmic/tests')
-rw-r--r--src/dynarmic/tests/native/testenv.h40
1 files changed, 28 insertions, 12 deletions
diff --git a/src/dynarmic/tests/native/testenv.h b/src/dynarmic/tests/native/testenv.h
index 7a3d14eea0..f7a8622ed8 100644
--- a/src/dynarmic/tests/native/testenv.h
+++ b/src/dynarmic/tests/native/testenv.h
@@ -1,9 +1,25 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
#pragma once
#include <catch2/catch_test_macros.hpp>
#ifdef __AVX__
#include <immintrin.h>
#endif
+
+// NetBSD apparently still needs these... ugh
+#ifdef __cpp_lib_bit_cast
+#include <bit>
+template <typename To, typename From> constexpr inline To BitCast(const From& from) {
+ return std::bit_cast<To>(from);
+}
+#else
+template <typename To, typename From> constexpr inline To BitCast(const From& from) {
+ return __builtin_bit_cast(To, from);
+}
+#endif
+
template<typename F>
void CheckedRun(F&& fn) {
#ifdef __AVX__
@@ -32,18 +48,18 @@ void CheckedRun(F&& fn) {
, "+x"(xmm8), "+x"(xmm9), "+x"(xmm10), "+x"(xmm11)
:
);
- CHECK(std::bit_cast<std::uint64_t>(xmm0[0]) == 0);
- CHECK(std::bit_cast<std::uint64_t>(xmm1[0]) == 1);
- CHECK(std::bit_cast<std::uint64_t>(xmm2[0]) == 2);
- CHECK(std::bit_cast<std::uint64_t>(xmm3[0]) == 3);
- CHECK(std::bit_cast<std::uint64_t>(xmm4[0]) == 4);
- CHECK(std::bit_cast<std::uint64_t>(xmm5[0]) == 5);
- CHECK(std::bit_cast<std::uint64_t>(xmm6[0]) == 6);
- CHECK(std::bit_cast<std::uint64_t>(xmm7[0]) == 7);
- CHECK(std::bit_cast<std::uint64_t>(xmm8[0]) == 8);
- CHECK(std::bit_cast<std::uint64_t>(xmm9[0]) == 9);
- CHECK(std::bit_cast<std::uint64_t>(xmm10[0]) == 10);
- CHECK(std::bit_cast<std::uint64_t>(xmm11[0]) == 11);
+ CHECK(BitCast<std::uint64_t>(xmm0[0]) == 0);
+ CHECK(BitCast<std::uint64_t>(xmm1[0]) == 1);
+ CHECK(BitCast<std::uint64_t>(xmm2[0]) == 2);
+ CHECK(BitCast<std::uint64_t>(xmm3[0]) == 3);
+ CHECK(BitCast<std::uint64_t>(xmm4[0]) == 4);
+ CHECK(BitCast<std::uint64_t>(xmm5[0]) == 5);
+ CHECK(BitCast<std::uint64_t>(xmm6[0]) == 6);
+ CHECK(BitCast<std::uint64_t>(xmm7[0]) == 7);
+ CHECK(BitCast<std::uint64_t>(xmm8[0]) == 8);
+ CHECK(BitCast<std::uint64_t>(xmm9[0]) == 9);
+ CHECK(BitCast<std::uint64_t>(xmm10[0]) == 10);
+ CHECK(BitCast<std::uint64_t>(xmm11[0]) == 11);
#else
fn();
#endif