summaryrefslogtreecommitdiff
path: root/src/arch/arm/v7
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2015-07-09 23:05:13 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2015-07-09 23:05:13 (GMT)
commit2be3bca7ff0f8ab40615fdbf72c149cd6439b0ac (patch)
tree0fc1bfc767eead1f33d41be737635d67b9ce5a84 /src/arch/arm/v7
parent66326b95195516864fc7721419250c4fef3f8f4b (diff)
Tried to use virtual addresses as often as possible.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@545 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/arm/v7')
-rw-r--r--src/arch/arm/v7/fetch.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/arch/arm/v7/fetch.c b/src/arch/arm/v7/fetch.c
index 18d61f0..246d136 100644
--- a/src/arch/arm/v7/fetch.c
+++ b/src/arch/arm/v7/fetch.c
@@ -139,7 +139,18 @@ void help_fetching_with_instruction_bl_with_orig(GArchInstruction *instr, GArchP
assert(get_mrange_length(range) == 4);
- pc += 4;
+ switch (iset)
+ {
+ case AV7IS_ARM:
+ pc += 8;
+ break;
+ case AV7IS_THUMB:
+ pc += 4;
+ break;
+ default:
+ assert(0);
+ break;
+ }
op = g_arch_instruction_get_operand(instr, 0);