Skip to content

Commit 2a63251

Browse files
committed
CHB:ARM: fix disassembly bug
1 parent 2b8bc80 commit 2a63251

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

CodeHawk/CHB/bchlib/bCHVersion.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ end
9595

9696

9797
let version = new version_info_t
98-
~version:"0.6.0_20241005"
99-
~date:"2024-10-05"
98+
~version:"0.6.0_20241031"
99+
~date:"2024-10-31"
100100
~licensee: None
101101
~maxfilesize: None
102102
()

CodeHawk/CHB/bchlibarm32/bCHARMAssemblyInstructions.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ object (self)
381381
method private set_jumptable (jumptable: jumptable_int) =
382382
let saddr = jumptable#get_start_address in
383383
let eaddr = jumptable#get_end_address in
384-
let len = saddr#value - eaddr#value in
384+
let len = eaddr#value - saddr#value in
385385
if len > 0 then
386386
let startinstr =
387387
make_arm_assembly_instruction

CodeHawk/CHB/bchlibarm32/bCHDisassembleARMInstruction.ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1045,7 +1045,8 @@ let parse_data_proc_imm_type
10451045
let rd = r15 WR in
10461046
let imm32 = arm_expand_imm (b 11 8) (b 7 0) in
10471047
(try
1048-
let imm = mk_arm_absolute_target_op iaddr imm32 RD in
1048+
let base = iaddr#add_int 8 in
1049+
let imm = mk_arm_absolute_target_op base imm32 RD in
10491050
(* ADR<c> <Rd>, <label> *)
10501051
Adr (c, rd, imm)
10511052
with

CodeHawk/CHT/CHB_tests/bchlibarm32_tests/txbchlibarm32/bCHDisassembleARMInstructionTest.ml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ open BCHDisassembleARMInstruction
4848

4949

5050
let testname = "bCHDisassembleARMInstructionTest"
51-
let lastupdated = "2024-01-02"
51+
let lastupdated = "2024-10-31"
5252

5353

5454
let make_dw (s: string) = TR.tget_ok (string_to_doubleword s)
@@ -163,6 +163,8 @@ let arm_basic () =
163163

164164
let arm_pc_relative () =
165165
let tests = [
166+
("ADR-A1", "0xa01021d8", "80104fe2", "ADR R1, 0xa0102160");
167+
("ADR-A2", "0xa0354fc4", "14108fe2", "ADR R1, 0xa0354fe0");
166168
("B", "0x116f8", "060000ea", "B 0x11718");
167169
("BCS", "0x118d4", "9d00002a", "BCS 0x11b50");
168170
("BEQ", "0x10764", "f5ffff0a", "BEQ 0x10740");

0 commit comments

Comments
 (0)