summaryrefslogtreecommitdiff
path: root/src/arch/processor.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/processor.c')
-rw-r--r--src/arch/processor.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/arch/processor.c b/src/arch/processor.c
index fc9f773..1afb576 100644
--- a/src/arch/processor.c
+++ b/src/arch/processor.c
@@ -52,8 +52,11 @@ asm_instr *decode_instruction(const asm_processor *proc, const uint8_t *data, of
{
asm_instr *result; /* Représentation à renvoyer */
+ off_t old_pos; /* Sauvegarde de la position */
+ old_pos = *pos;
+
result = proc->fetch_instr(proc, data, pos, len, offset);
@@ -63,6 +66,8 @@ asm_instr *decode_instruction(const asm_processor *proc, const uint8_t *data, of
if (result == NULL)
{
+ *pos = old_pos;
+
printf("err while decoding opcode 0x%0hhx at 0x%08llx\n", data[*pos], offset);
result = create_db_instruction(data, pos, len);
}