mirror of
https://github.com/kanjitalk755/macemu.git
synced 2024-12-20 15:29:48 +00:00
Optimize gen_mov_32_REG_im(0) case
This commit is contained in:
parent
82808234fa
commit
9c6b42b014
@ -90,6 +90,9 @@ DEFINE_OP(mov_32_T1_A0, T1 = A0);
|
|||||||
DEFINE_OP(mov_32_A0_im, A0 = PARAM1);
|
DEFINE_OP(mov_32_A0_im, A0 = PARAM1);
|
||||||
DEFINE_OP(mov_32_A0_T0, A0 = T0);
|
DEFINE_OP(mov_32_A0_T0, A0 = T0);
|
||||||
DEFINE_OP(mov_32_A0_T1, A0 = T1);
|
DEFINE_OP(mov_32_A0_T1, A0 = T1);
|
||||||
|
DEFINE_OP(mov_32_T0_0, T0 = 0);
|
||||||
|
DEFINE_OP(mov_32_T1_0, T1 = 0);
|
||||||
|
DEFINE_OP(mov_32_A0_0, A0 = 0);
|
||||||
|
|
||||||
void OPPROTO op_mov_ad_A0_im(void)
|
void OPPROTO op_mov_ad_A0_im(void)
|
||||||
{
|
{
|
||||||
|
@ -96,13 +96,13 @@ public:
|
|||||||
#define DEFINE_ALIAS(NAME, N) DEFINE_ALIAS_##N(NAME)
|
#define DEFINE_ALIAS(NAME, N) DEFINE_ALIAS_##N(NAME)
|
||||||
|
|
||||||
// Register moves
|
// Register moves
|
||||||
DEFINE_ALIAS(mov_32_T0_im,1);
|
void gen_mov_32_T0_im(int32 value);
|
||||||
DEFINE_ALIAS(mov_32_T0_T1,0);
|
DEFINE_ALIAS(mov_32_T0_T1,0);
|
||||||
DEFINE_ALIAS(mov_32_T0_A0,0);
|
DEFINE_ALIAS(mov_32_T0_A0,0);
|
||||||
DEFINE_ALIAS(mov_32_T1_im,1);
|
void gen_mov_32_T1_im(int32 value);
|
||||||
DEFINE_ALIAS(mov_32_T1_T0,0);
|
DEFINE_ALIAS(mov_32_T1_T0,0);
|
||||||
DEFINE_ALIAS(mov_32_T1_A0,0);
|
DEFINE_ALIAS(mov_32_T1_A0,0);
|
||||||
DEFINE_ALIAS(mov_32_A0_im,1);
|
void gen_mov_32_A0_im(int32 value);
|
||||||
DEFINE_ALIAS(mov_32_A0_T0,0);
|
DEFINE_ALIAS(mov_32_A0_T0,0);
|
||||||
DEFINE_ALIAS(mov_32_A0_T1,0);
|
DEFINE_ALIAS(mov_32_A0_T1,0);
|
||||||
DEFINE_ALIAS(mov_ad_A0_im,1);
|
DEFINE_ALIAS(mov_ad_A0_im,1);
|
||||||
@ -271,6 +271,22 @@ basic_dyngen::gen_end() const
|
|||||||
return !full_translation_cache();
|
return !full_translation_cache();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define DEFINE_OP(REG) \
|
||||||
|
inline void \
|
||||||
|
basic_dyngen::gen_mov_32_##REG##_im(int32 value) \
|
||||||
|
{ \
|
||||||
|
if (value == 0) \
|
||||||
|
gen_op_mov_32_##REG##_0(); \
|
||||||
|
else \
|
||||||
|
gen_op_mov_32_##REG##_im(value); \
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINE_OP(T0);
|
||||||
|
DEFINE_OP(T1);
|
||||||
|
DEFINE_OP(A0);
|
||||||
|
|
||||||
|
#undef DEFINE_OP
|
||||||
|
|
||||||
#define DEFINE_OP(OP,REG) \
|
#define DEFINE_OP(OP,REG) \
|
||||||
inline void \
|
inline void \
|
||||||
basic_dyngen::gen_##OP##_32_##REG##_im(int32 value) \
|
basic_dyngen::gen_##OP##_32_##REG##_im(int32 value) \
|
||||||
|
Loading…
Reference in New Issue
Block a user