summaryrefslogtreecommitdiff
path: root/src/arch/arm/v7/fetch.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2015-12-16 23:46:51 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2015-12-16 23:46:51 (GMT)
commit8ff010a34762737016624a68f593d0e6736d4349 (patch)
treeefcf9b65483ba94dd93d6c6a7227706424160c10 /src/arch/arm/v7/fetch.c
parente4b56188b664e6b986733d456e6a0ea9b2da6d53 (diff)
Tracked the ARM/Thumb areas in a clever way with levels.
Diffstat (limited to 'src/arch/arm/v7/fetch.c')
-rw-r--r--src/arch/arm/v7/fetch.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/arch/arm/v7/fetch.c b/src/arch/arm/v7/fetch.c
index da83d15..33a9e92 100644
--- a/src/arch/arm/v7/fetch.c
+++ b/src/arch/arm/v7/fetch.c
@@ -99,7 +99,7 @@ void help_fetching_with_instruction_b_with_orig(GArchInstruction *instr, GArchPr
target = pc + offset;
//g_armv7_context_define_encoding(context, target, iset);
- g_armv7_context_push_drop_point_ext(context, target, iset);
+ g_proc_context_push_drop_point(G_PROC_CONTEXT(context), 3, target, iset);
}
@@ -168,7 +168,7 @@ void help_fetching_with_instruction_bl_with_orig(GArchInstruction *instr, GArchP
target = pc + offset;
//g_armv7_context_define_encoding(context, target, iset);
- g_armv7_context_push_drop_point_ext(context, target, iset);
+ g_proc_context_push_drop_point(G_PROC_CONTEXT(context), 3, target, iset);
}
@@ -227,7 +227,7 @@ void help_fetching_with_instruction_blx_with_dest(GArchInstruction *instr, GArch
target = pc + offset;
//g_armv7_context_define_encoding(context, target, iset);
- g_armv7_context_push_drop_point_ext(context, target, iset);
+ g_proc_context_push_drop_point(G_PROC_CONTEXT(context), 3, target, iset);
}
@@ -280,12 +280,12 @@ void help_fetching_with_instruction_bx_with_orig(GArchInstruction *instr, GArchP
case AV7IS_ARM:
pc += 8;
//g_armv7_context_define_encoding(context,
- g_armv7_context_push_drop_point_ext(context, pc, AV7IS_THUMB);
+ g_proc_context_push_drop_point(G_PROC_CONTEXT(context), 3, pc, AV7IS_THUMB);
break;
case AV7IS_THUMB:
pc += 4;
//g_armv7_context_define_encoding(context,
- g_armv7_context_push_drop_point_ext(context, pc, AV7IS_ARM);
+ g_proc_context_push_drop_point(G_PROC_CONTEXT(context), 3, pc, AV7IS_ARM);
break;
default:
assert(0);
@@ -342,7 +342,7 @@ void help_fetching_with_instruction_cb_n_z(GArchInstruction *instr, GArchProcess
target = pc + offset;
//g_armv7_context_define_encoding(context, target, AV7IS_THUMB);
- g_armv7_context_push_drop_point_ext(context, target, AV7IS_THUMB);
+ g_proc_context_push_drop_point(G_PROC_CONTEXT(context), 3, target, AV7IS_THUMB);
}
@@ -506,9 +506,9 @@ void help_fetching_with_instruction_ldr_literal_with_orig(GArchInstruction *inst
/// FIXME ?!
- if (target < 0x8000) return;
+ //if (target < 0x8000) return;
- if (target > 0x6966c) return;
+ //if (target > 0x6966c) return;
new = g_imm_operand_new_from_value(MDS_32_BITS_UNSIGNED, target);
@@ -523,8 +523,9 @@ void help_fetching_with_instruction_ldr_literal_with_orig(GArchInstruction *inst
//target = pc + offset;
+
//g_armv7_context_define_encoding(context, target, AV7IS_THUMB);
- g_armv7_context_push_drop_point_ext(context, target, iset);
+ g_proc_context_push_drop_point(G_PROC_CONTEXT(context), 0/*FIXME*/, target);
//exit(0);