- fix timings broken in r4561;
This commit is contained in:
mtabachenko 2013-04-14 08:45:43 +00:00
parent c482d90d8a
commit 440c666545
1 changed files with 13 additions and 7 deletions

View File

@ -700,7 +700,7 @@ static void emit_MMU_aluMemCycles(int alu_cycles, GpVar mem_cycles, int populati
if(REG_POS(i,12)==15) \ if(REG_POS(i,12)==15) \
{ \ { \
S_DST_R15; \ S_DST_R15; \
bb_constant_cycles += 2; \ c.add(bb_total_cycles, 2); \
return 1; \ return 1; \
} \ } \
SET_NZCV(!symmetric); \ SET_NZCV(!symmetric); \
@ -712,7 +712,7 @@ static void emit_MMU_aluMemCycles(int alu_cycles, GpVar mem_cycles, int populati
GpVar tmp = c.newGpVar(kX86VarTypeGpd); \ GpVar tmp = c.newGpVar(kX86VarTypeGpd); \
c.mov(tmp, reg_ptr(15)); \ c.mov(tmp, reg_ptr(15)); \
c.mov(cpu_ptr(next_instruction), tmp); \ c.mov(cpu_ptr(next_instruction), tmp); \
bb_constant_cycles += 2; \ c.add(bb_total_cycles, 2); \
} \ } \
} \ } \
return 1; return 1;
@ -728,7 +728,7 @@ static void emit_MMU_aluMemCycles(int alu_cycles, GpVar mem_cycles, int populati
if(REG_POS(i,12)==15) \ if(REG_POS(i,12)==15) \
{ \ { \
S_DST_R15; \ S_DST_R15; \
bb_constant_cycles += 2; \ c.add(bb_total_cycles, 2); \
return 1; \ return 1; \
} \ } \
SET_NZCV(1); \ SET_NZCV(1); \
@ -739,7 +739,7 @@ static void emit_MMU_aluMemCycles(int alu_cycles, GpVar mem_cycles, int populati
{ \ { \
GpVar tmp = c.newGpVar(kX86VarTypeGpd); \ GpVar tmp = c.newGpVar(kX86VarTypeGpd); \
c.mov(cpu_ptr(next_instruction), lhs); \ c.mov(cpu_ptr(next_instruction), lhs); \
bb_constant_cycles += 2; \ c.add(bb_total_cycles, 2); \
} \ } \
} \ } \
return 1; return 1;
@ -763,7 +763,7 @@ static void emit_MMU_aluMemCycles(int alu_cycles, GpVar mem_cycles, int populati
if(REG_POS(i,12)==15) \ if(REG_POS(i,12)==15) \
{ \ { \
S_DST_R15; \ S_DST_R15; \
bb_constant_cycles += 2; \ c.add(bb_total_cycles, 2); \
return 1; \ return 1; \
} \ } \
SET_NZC; \ SET_NZC; \
@ -1097,7 +1097,7 @@ static int OP_MOV_IMM_VAL(const u32 i) { OP_MOV(IMM_VAL); }
if(REG_POS(i,12)==15) \ if(REG_POS(i,12)==15) \
{ \ { \
S_DST_R15; \ S_DST_R15; \
bb_constant_cycles += 2; \ c.add(bb_total_cycles, 2); \
return 1; \ return 1; \
} \ } \
if(!rhs_is_imm) \ if(!rhs_is_imm) \
@ -4116,8 +4116,14 @@ static u32 compile_basicblock()
if(cycles == 0) if(cycles == 0)
{ {
JIT_COMMENT("variable cycles"); JIT_COMMENT("variable cycles");
c.lea(bb_total_cycles, ptr(bb_total_cycles.r64(), bb_cycles.r64(), kScaleNone)); c.lea(bb_total_cycles, ptr(bb_total_cycles.r64(), bb_cycles.r64(), kScaleNone, -1));
} }
else
if (cycles > 1)
{
JIT_COMMENT("cycles (%d)", cycles);
c.lea(bb_total_cycles, ptr(bb_total_cycles.r64(), -1));
}
c.bind(skip); c.bind(skip);
} }
else else