aboutsummaryrefslogtreecommitdiff
path: root/src/ARMJIT_x64/ARMJIT_Compiler.h
diff options
context:
space:
mode:
authorRSDuck <rsduck@users.noreply.github.com>2019-08-25 12:28:48 +0200
committerRSDuck <rsduck@users.noreply.github.com>2020-06-16 11:55:44 +0200
commitf378458c104f1879f30610dfe4010e4772218787 (patch)
treeabac6775cf402756d516c6ac9479b69580b7f4c8 /src/ARMJIT_x64/ARMJIT_Compiler.h
parent316378092ac1791f4ada3b6b81b2681eab14d58d (diff)
optimise away unneeded flag sets
- especially useful for thumb code and larger max block sizes - can still be improved upon
Diffstat (limited to 'src/ARMJIT_x64/ARMJIT_Compiler.h')
-rw-r--r--src/ARMJIT_x64/ARMJIT_Compiler.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/ARMJIT_x64/ARMJIT_Compiler.h b/src/ARMJIT_x64/ARMJIT_Compiler.h
index 3151cbc..8861884 100644
--- a/src/ARMJIT_x64/ARMJIT_Compiler.h
+++ b/src/ARMJIT_x64/ARMJIT_Compiler.h
@@ -29,6 +29,8 @@ public:
void LoadReg(int reg, Gen::X64Reg nativeReg);
void SaveReg(int reg, Gen::X64Reg nativeReg);
+ bool CanCompile(bool thumb, u16 kind);
+
typedef void (Compiler::*CompileFunc)();
void Comp_JumpTo(Gen::X64Reg addr, bool restoreCPSR = false);
@@ -64,7 +66,6 @@ public:
void A_Comp_BranchImm();
void A_Comp_BranchXchangeReg();
-
void T_Comp_ShiftImm();
void T_Comp_AddSub_();
void T_Comp_ALU_Imm8();
@@ -121,6 +122,9 @@ public:
void LoadCPSR();
void SaveCPSR();
+ bool FlagsNZRequired()
+ { return CurInstr.SetFlags & 0xC; }
+
Gen::FixupBranch CheckCondition(u32 cond);
Gen::OpArg MapReg(int reg)