diff --git a/src/dynarmic/src/dynarmic/backend/arm64/devirtualize.h b/src/dynarmic/src/dynarmic/backend/arm64/devirtualize.h index d06098d077..faa349a750 100644 --- a/src/dynarmic/src/dynarmic/backend/arm64/devirtualize.h +++ b/src/dynarmic/src/dynarmic/backend/arm64/devirtualize.h @@ -42,8 +42,8 @@ DevirtualizedCall DevirtualizeDefault(mcl::class_type* this_) { u64 fn_ptr = mfp_struct.ptr; u64 this_ptr = std::bit_cast(this_) + (mfp_struct.adj >> 1); if (mfp_struct.adj & 1) { - u64 vtable = std::bit_cast_pointee(this_ptr); - fn_ptr = std::bit_cast_pointee(vtable + fn_ptr); + u64 vtable = *reinterpret_cast(this_ptr); + fn_ptr = *reinterpret_cast(vtable + fn_ptr); } return DevirtualizedCall{fn_ptr, this_ptr}; } diff --git a/src/dynarmic/src/dynarmic/backend/x64/devirtualize.h b/src/dynarmic/src/dynarmic/backend/x64/devirtualize.h index 6e5d4d4869..9a0736ff87 100644 --- a/src/dynarmic/src/dynarmic/backend/x64/devirtualize.h +++ b/src/dynarmic/src/dynarmic/backend/x64/devirtualize.h @@ -61,8 +61,8 @@ ArgCallback DevirtualizeItanium(mcl::class_type* this_) { u64 fn_ptr = mfp_struct.ptr; u64 this_ptr = reinterpret_cast(this_) + mfp_struct.adj; if (mfp_struct.ptr & 1) { - u64 vtable = std::bit_cast_pointee(this_ptr); - fn_ptr = std::bit_cast_pointee(vtable + fn_ptr - 1); + u64 vtable = *reinterpret_cast(this_ptr); + fn_ptr = *reinterpret_cast(vtable + fn_ptr - 1); } return ArgCallback{fn_ptr, this_ptr}; }