mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-01-05 05:58:19 +01:00
jit_state: Split off CPSR.{E,T}
This allows us to improve code-emission for PopRSBHint. We also improve code emission other terminals at the same time.
This commit is contained in:
parent
3cca3bbd0b
commit
311361b409
5 changed files with 67 additions and 72 deletions
|
|
@ -52,6 +52,9 @@ u32 JitState::Cpsr() const {
|
|||
cpsr |= Common::Bit<23>(CPSR_ge) ? 1 << 18 : 0;
|
||||
cpsr |= Common::Bit<15>(CPSR_ge) ? 1 << 17 : 0;
|
||||
cpsr |= Common::Bit<7>(CPSR_ge) ? 1 << 16 : 0;
|
||||
// E flag, T flag
|
||||
cpsr |= Common::Bit<1>(CPSR_et) ? 1 << 9 : 0;
|
||||
cpsr |= Common::Bit<0>(CPSR_et) ? 1 << 5 : 0;
|
||||
// Other flags
|
||||
cpsr |= CPSR_other;
|
||||
|
||||
|
|
@ -65,8 +68,12 @@ void JitState::SetCpsr(u32 cpsr) {
|
|||
CPSR_ge |= Common::Bit<18>(cpsr) ? 0x00FF0000 : 0;
|
||||
CPSR_ge |= Common::Bit<17>(cpsr) ? 0x0000FF00 : 0;
|
||||
CPSR_ge |= Common::Bit<16>(cpsr) ? 0x000000FF : 0;
|
||||
// E flag, T flag
|
||||
CPSR_et = 0;
|
||||
CPSR_et |= Common::Bit<9>(cpsr) ? 2 : 0;
|
||||
CPSR_et |= Common::Bit<5>(cpsr) ? 1 : 0;
|
||||
// Other flags
|
||||
CPSR_other = cpsr & 0xFFF0FFFF;
|
||||
CPSR_other = cpsr & 0xFFF0FDDF;
|
||||
}
|
||||
|
||||
void JitState::ResetRSB() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue