diff --git a/src/codegen_backend.c b/src/codegen_backend.c index 0f76cbe..106b896 100644 --- a/src/codegen_backend.c +++ b/src/codegen_backend.c @@ -793,6 +793,7 @@ void codegen_block_end() void codegen_block_end_recompile(codeblock_t *block) { codegen_timing_block_end(); + codegen_accumulate(ACCREG_cycles, -codegen_block_cycles); if (block->flags & CODEBLOCK_IN_DIRTY_LIST) block_dirty_list_remove(block); diff --git a/src/codegen_timing_k6.c b/src/codegen_timing_k6.c index 8499cfa..518a565 100644 --- a/src/codegen_timing_k6.c +++ b/src/codegen_timing_k6.c @@ -2339,7 +2339,11 @@ void codegen_timing_k6_opcode(uint8_t opcode, uint32_t fetchdat, int op_32, uint void codegen_timing_k6_block_end() { if (decode_buffer.nr_uops) + { + int old_last_complete_timestamp = last_complete_timestamp; decode_flush(); + codegen_block_cycles += (last_complete_timestamp - old_last_complete_timestamp); + } } int codegen_timing_k6_jump_cycles()