MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / ILRegister

Class ILRegister

python/lowlevelil.py:95–130  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

93
94@dataclass(frozen=True)
95class ILRegister:
96 arch: 'architecture.Architecture'
97 index: 'architecture.RegisterIndex'
98
99 def __repr__(self):
100 return f"<ILRegister: {self.name}>"
101
102 def __str__(self):
103 return self.name
104
105 def __int__(self):
106 return self.index
107
108 def __eq__(self, other: Union[str, 'ILRegister']):
109 if isinstance(other, str) and other in self.arch.regs:
110 index = self.arch.regs[architecture.RegisterName(other)].index
111 assert index is not None
112 other = ILRegister(self.arch, index)
113 elif not isinstance(other, self.__class__):
114 return NotImplemented
115 return (self.arch, self.index) == (other.arch, other.index)
116
117 @property
118 def info(self) -> 'architecture.RegisterInfo':
119 return self.arch.regs[self.name]
120
121 @property
122 def temp(self) -> bool:
123 return (self.index & 0x80000000) != 0
124
125 @property
126 def name(self) -> 'architecture.RegisterName':
127 if self.temp:
128 return architecture.RegisterName(f"temp{self.index & 0x7fffffff}")
129 else:
130 return architecture.RegisterName(self.arch.get_reg_name(self.index))
131
132
133@dataclass(frozen=True)

Callers 9

__eq__Method · 0.85
_get_regMethod · 0.85
_get_reg_ssaMethod · 0.85
_get_reg_or_flag_listMethod · 0.85
_get_reg_ssa_listMethod · 0.85
regsMethod · 0.85
ssa_regsMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected