Skip to content

Commit 513d595

Browse files
committed
Eliminate arch / register mutual dependency
1 parent 24bc6ed commit 513d595

File tree

2 files changed

+4
-9
lines changed

2 files changed

+4
-9
lines changed

qiling/arch/register.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,9 @@ def bit(self, reg: Union[str, int]) -> int:
109109
"""Get register size in bits.
110110
"""
111111

112+
if type(reg) is str:
113+
reg = self.register_mapping[reg]
114+
112115
return self.ql.arch.get_reg_bit(reg)
113116

114117

@@ -146,9 +149,5 @@ def arch_sp(self, value: int) -> None:
146149
return self.ql.uc.reg_write(self.uc_sp, value)
147150

148151

149-
def get_uc_reg(self, reg_name: str) -> int:
150-
return self.register_mapping[reg_name]
151-
152-
153152
def create_reverse_mapping(self):
154153
self.reverse_mapping = {v:k for k, v in self.register_mapping.items()}

qiling/arch/x86.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#
55

66
from struct import pack
7-
from typing import Union
87

98
from unicorn import Uc, UC_ARCH_X86, UC_MODE_16, UC_MODE_32, UC_MODE_64
109
from capstone import Cs, CS_ARCH_X86, CS_MODE_16, CS_MODE_32, CS_MODE_64
@@ -18,10 +17,7 @@
1817
class QlArchIntel(QlArch):
1918

2019
# TODO: generalize this
21-
def get_reg_bit(self, register: Union[str, int]) -> int:
22-
if type(register) is str:
23-
register = self.ql.reg.get_uc_reg(register)
24-
20+
def get_reg_bit(self, register: int) -> int:
2521
# all regs in reg_map_misc are 16 bits except of eflags
2622
if register == UC_X86_REG_EFLAGS:
2723
return self.ql.archbit

0 commit comments

Comments
 (0)