mirror of
https://github.com/RRZE-HPC/OSACA.git
synced 2026-01-05 02:30:08 +01:00
- Enhanced RISC-V parser to support reloc_type and symbol in ImmediateOperand. - Added missing attributes (reloc_type, symbol) to ImmediateOperand and updated __eq__ for backward compatibility. - Fixed all flake8 (E501, E265, F401, F841) and Black formatting issues across the codebase. - Improved docstrings and split long lines for better readability. - Fixed test failures related to ImmediateOperand instantiation and attribute errors. - Ensured all tests pass, including edge cases for RISC-V, x86, and AArch64. - Updated .gitignore and documentation as needed. - Renamed example files for consistency (rv6 -> rv64).
56 lines
1.3 KiB
Python
56 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
|
|
from osaca.parser.operand import Operand
|
|
|
|
|
|
class IdentifierOperand(Operand):
|
|
def __init__(
|
|
self, name=None, offset=None, relocation=None, source=False, destination=False
|
|
):
|
|
super().__init__(source, destination)
|
|
self._name = name
|
|
self._offset = offset
|
|
self._relocation = relocation
|
|
|
|
@property
|
|
def name(self):
|
|
return self._name
|
|
|
|
@name.setter
|
|
def name(self, name):
|
|
self._name = name
|
|
|
|
@property
|
|
def offset(self):
|
|
return self._offset
|
|
|
|
@property
|
|
def relocation(self):
|
|
return self._relocation
|
|
|
|
@offset.setter
|
|
def offset(self, offset):
|
|
self._offset = offset
|
|
|
|
@relocation.setter
|
|
def relocation(self, relocation):
|
|
self._relocation = relocation
|
|
|
|
def __str__(self):
|
|
return (
|
|
f"Identifier(name={self._name}, offset={self._offset}, "
|
|
f"relocation={self._relocation})"
|
|
)
|
|
|
|
def __repr__(self):
|
|
return self.__str__()
|
|
|
|
def __eq__(self, other):
|
|
if isinstance(other, IdentifierOperand):
|
|
return (
|
|
self._name == other._name
|
|
and self._offset == other._offset
|
|
and self._relocation == other._relocation
|
|
)
|
|
return False
|