Skip to content

Commit bfee3b7

Browse files
authored
Merge pull request #5 from gerph/fix-disassembly-accessor-reads
Fix live-register access after accessor refactor
2 parents 9a7d0dc + b13c5b8 commit bfee3b7

2 files changed

Lines changed: 11 additions & 11 deletions

File tree

riscos_disassemble/arm/disassemble.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ def psr_name(self, psr, mask):
357357

358358
# Logic taken from BTSDump/arm.c
359359
if psr is None:
360-
psr = self.get_pstate()
360+
psr = self.access.get_pstate()
361361
is26bit = (psr & (1<<4)) == 0
362362
mode = psr & 15
363363
mode_name = self.psr_modes[mode]
@@ -482,19 +482,19 @@ def _operand_registers(self, operand, shift=None, maybe_presentable=False):
482482
if operand.type == self._const.ARM_OP_REG:
483483
regnum = self.inv_reg_map.get(operand.reg, None)
484484
if regnum is not None:
485-
accumulator.append('R%i = &%08x' % (regnum, self.get_reg(regnum)))
485+
accumulator.append('R%i = &%08x' % (regnum, self.access.get_reg(regnum)))
486486
if operand.type == self._const.ARM_OP_MEM:
487487
# Base
488488
base = None
489489
regnum = self.inv_reg_map.get(operand.mem.base, None)
490490
if regnum is not None:
491-
base = self.get_reg(regnum)
491+
base = self.access.get_reg(regnum)
492492
accumulator.append('R%i = &%08x' % (regnum, base))
493493

494494
# Index
495495
regnum = self.inv_reg_map.get(operand.mem.index, None)
496496
if regnum is not None:
497-
accumulator.append('R%i = &%08x' % (regnum, self.get_reg(regnum)))
497+
accumulator.append('R%i = &%08x' % (regnum, self.access.get_reg(regnum)))
498498
else:
499499
# There's no index, so we'll check if there's a presentable value string at that position
500500
if base is not None and maybe_presentable and self.config.show_referenced_pointers:
@@ -514,7 +514,7 @@ def _operand_registers(self, operand, shift=None, maybe_presentable=False):
514514
# This is a shift by a register, so we can include its value in the result
515515
regnum = self.inv_reg_map.get(operand.shift.value, None)
516516
if regnum is not None:
517-
accumulator.append('R%i = &%08x' % (regnum, self.get_reg(regnum)))
517+
accumulator.append('R%i = &%08x' % (regnum, self.access.get_reg(regnum)))
518518

519519
return accumulator
520520

@@ -875,7 +875,7 @@ def disassemble_instruction(self, address, inst,
875875
if swic in (0x6f, 0x71):
876876
rn = 10 if swi & 255 == 0x6f else 12
877877
if live_registers:
878-
real_swi = self.get_reg(rn)
878+
real_swi = self.access.get_reg(rn)
879879
comment = 'R%s = &%x' % (rn, real_swi)
880880
callaswi_name = self.access.decode_swi(real_swi)
881881
if callaswi_name:
@@ -976,7 +976,7 @@ def disassemble_instruction(self, address, inst,
976976
regnum = self.inv_reg_map.get(i.operands[2].reg, None)
977977
if regnum is not None:
978978
if live_registers:
979-
comment = 'Table dispatch index #%s' % (self.get_reg(regnum),)
979+
comment = 'Table dispatch index #%s' % (self.access.get_reg(regnum),)
980980
else:
981981
comment = 'Table dispatch index R%s' % (regnum,)
982982
else:

riscos_disassemble/arm64/disassemble.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ def _capstone_reg_assignment(self, regmap):
377377
@return: String describing its current value
378378
"""
379379
regnum = regmap[1]
380-
value = self.get_reg(regnum & 31)
380+
value = self.access.get_reg(regnum & 31)
381381
value = value & regmap[2]
382382
return "%s = %s" % (regmap[0], self._value_description(value))
383383

@@ -390,7 +390,7 @@ def _capstone_reg_value(self, regmap):
390390
@return: Value of the register
391391
"""
392392
regnum = regmap[1]
393-
value = self.get_reg(regnum & 31)
393+
value = self.access.get_reg(regnum & 31)
394394
value = value & regmap[2]
395395
return value
396396

@@ -500,7 +500,7 @@ def disassemble_instruction(self, address, inst,
500500
# This is a RISC OS system SWI
501501

502502
# Look up the SWI number, if we can.
503-
swi = self.get_reg(10)
503+
swi = self.access.get_reg(10)
504504

505505
# Special cases for some SWIs
506506
swic = swi & ~0x20000
@@ -517,7 +517,7 @@ def disassemble_instruction(self, address, inst,
517517
elif swic == 2:
518518
# OS_Write0
519519
if live_memory and live_registers:
520-
r0 = self.get_reg(0)
520+
r0 = self.access.get_reg(0)
521521
string = self.access.get_memory_string(r0)
522522
if string:
523523
string = "\"%s\"" % (string.decode('latin-1').encode('ascii', 'backslashreplace'),)

0 commit comments

Comments
 (0)