Files
kaizen/src/backend/core/jit/helpers.hpp
2024-05-21 09:30:13 +01:00

23 lines
592 B
C++

#include <CpuDefinitions.hpp>
namespace n64 {
static inline bool SpecialEndsBlock(u32 instr) {
u8 mask = instr & 0x3F;
switch (mask) {
case JR: case JALR: case SYSCALL: case BREAK:
case TGE: case TGEU: case TLT: case TLTU:
case TEQ: case TNE: return true;
default: return false;
}
}
static inline bool InstrEndsBlock(u32 instr) {
u8 mask = (instr >> 26) & 0x3f;
switch (mask) {
case SPECIAL: return SpecialEndsBlock(instr);
case REGIMM: case J: case JAL: case BEQ:
case BNE: case BLEZ: case BGTZ: case BEQL:
case BNEL: case BLEZL: case BGTZL: return true:
}
}
}