mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-01 15:59:45 -04:00
Merge remote-tracking branch 'origin/main' into randomizer
# Conflicts: # src/f_op/f_op_actor_mng.cpp
This commit is contained in:
@@ -1575,6 +1575,12 @@ struct J3DAlphaComp {
|
||||
u8 getRef1() const { return mRef1; }
|
||||
|
||||
void load() const {
|
||||
#ifdef AVOID_UB
|
||||
if (mID > 255) {
|
||||
J3DGDSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
J3DGDSetAlphaCompare((GXCompare)getComp0(), mRef0, (GXAlphaOp)getOp(), (GXCompare)getComp1(), mRef1);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,20 +13,33 @@ inline denormal_state denormals_enable()
|
||||
}
|
||||
inline void denormals_restore(denormal_state saved) { _mm_setcsr(saved); }
|
||||
|
||||
#elif defined(__aarch64__) || defined(_M_ARM64)
|
||||
#elif defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC)
|
||||
|
||||
#include <cstdint>
|
||||
#if defined(_MSC_VER) && !defined(__clang__) && (defined(_M_ARM64) || defined(_M_ARM64EC))
|
||||
#include <intrin.h>
|
||||
#endif
|
||||
using denormal_state = uint64_t;
|
||||
inline denormal_state denormals_enable()
|
||||
{
|
||||
#if defined(_MSC_VER) && !defined(__clang__) && (defined(_M_ARM64) || defined(_M_ARM64EC))
|
||||
denormal_state saved = static_cast<denormal_state>(_ReadStatusReg(ARM64_FPCR));
|
||||
_WriteStatusReg(ARM64_FPCR, static_cast<__int64>(saved | (1ULL << 24))); // FZ
|
||||
return saved;
|
||||
#else
|
||||
denormal_state saved;
|
||||
asm volatile("mrs %0, fpcr" : "=r"(saved));
|
||||
asm volatile("msr fpcr, %0" :: "r"(saved | (1ULL << 24))); // FZ
|
||||
return saved;
|
||||
#endif
|
||||
}
|
||||
inline void denormals_restore(denormal_state saved)
|
||||
{
|
||||
#if defined(_MSC_VER) && !defined(__clang__) && (defined(_M_ARM64) || defined(_M_ARM64EC))
|
||||
_WriteStatusReg(ARM64_FPCR, static_cast<__int64>(saved));
|
||||
#else
|
||||
asm volatile("msr fpcr, %0" :: "r"(saved));
|
||||
#endif
|
||||
}
|
||||
|
||||
#elif defined(__arm__) || defined(_M_ARM)
|
||||
|
||||
Reference in New Issue
Block a user