reprospect.test.sass.instruction.address module

class reprospect.test.sass.instruction.address.AddressMatcher(*, arch: NVIDIAArch, memory: MemorySpace = MemorySpace.GENERIC, reg: str | None = None, offset: str | None = None, desc_ureg: str | None = None, stride: StrideModifier | None = None)View on GitHub

Bases: object

Matcher for an address.

__init__(*, arch: NVIDIAArch, memory: MemorySpace = MemorySpace.GENERIC, reg: str | None = None, offset: str | None = None, desc_ureg: str | None = None, stride: StrideModifier | None = None) None

Method generated by attrs for class AddressMatcher.

arch: NVIDIAArch
classmethod build_desc_reg64_address(*, arch: NVIDIAArch, reg: str | None = None, offset: str | None = None, desc_ureg: str | None = None, captured: bool = False) strView on GitHub

Address operand with cache policy descriptor, such as:

desc[UR0][R0.64+0x10]
classmethod build_generic_or_global_address(*, arch: NVIDIAArch, reg: str | None = None, offset: str | None = None, desc_ureg: str | None = None, captured: bool = False) strView on GitHub

Generic or global memory address operand.

classmethod build_local_address(*, arch: NVIDIAArch, reg: str | None = None, offset: str | None = None, captured: bool = False) strView on GitHub

Local memory address operand.

classmethod build_pattern(*, arch: NVIDIAArch, memory: MemorySpace = MemorySpace.GENERIC, reg: str | None = None, offset: str | None = None, desc_ureg: str | None = None, stride: StrideModifier | None = None, captured: bool = False) strView on GitHub
classmethod build_pattern_desc_ureg(*, desc_ureg: str | None = None, captured: bool = True) strView on GitHub
classmethod build_pattern_offset(*, arch: NVIDIAArch, offset: str | None = None, captured: bool = True) strView on GitHub
classmethod build_pattern_reg(*, arch: NVIDIAArch, reg: str | None = None, captured: bool = True) strView on GitHub
classmethod build_pattern_stride(*, stride: StrideModifier | None = None, captured: bool = True) strView on GitHub
classmethod build_reg64_address(*, arch: NVIDIAArch, reg: str | None = None, offset: str | None = None, captured: bool = False) strView on GitHub

Address operand with .64 modifier appended to the register, such as:

[R1.64]
[R2.64+0x10]
[R14.64+UR6]
classmethod build_reg_address(*, arch: NVIDIAArch, reg: str | None = None, offset: str | None = None, captured: bool = False) strView on GitHub

Basic address operand, such as:

[R4]
[R2+0x10]
classmethod build_reg_stride_address(*, arch: NVIDIAArch, reg: str | None = None, offset: str | None = None, stride: StrideModifier | None = None, captured: bool = False) strView on GitHub

Address operand with stride modifier, such as:

[R49.X16]
[R2.X8+0x10]

As of reprospect.tools.architecture.NVIDIAFamily.HOPPER, it may be:

[R32+UR10+0x1c0]
classmethod build_shared_address(*, arch: NVIDIAArch, reg: str | None = None, offset: str | None = None, stride: StrideModifier | None = None, captured: bool = False) strView on GitHub

Shared memory address operand.

desc_ureg: str | None
match(address: str) GenericOrGlobalAddressMatch | SharedAddressMatch | LocalAddressMatch | NoneView on GitHub
memory: MemorySpace
offset: str | None
pattern: Pattern[str]
reg: str | None
stride: StrideModifier | None
class reprospect.test.sass.instruction.address.GenericOrGlobalAddressMatch(reg: str, offset: str | None = None, desc_ureg: str | None = None)View on GitHub

Bases: object

Generic or global address operand, such as:

desc[UR42][R8+0xf1]
__init__(reg: str, offset: str | None = None, desc_ureg: str | None = None) None
desc_ureg: str | None

reprospect.tools.sass.decode.RegisterType.UGPR from cache policy descriptor.

offset: str | None
classmethod parse(bits: Match[str]) GenericOrGlobalAddressMatchView on GitHub
reg: str
class reprospect.test.sass.instruction.address.LocalAddressMatch(reg: str, offset: str | None = None)View on GitHub

Bases: object

Local address operand, such as:

[R47]
__init__(reg: str, offset: str | None = None) None
offset: str | None
classmethod parse(bits: Match[str]) SelfView on GitHub
reg: str
reprospect.test.sass.instruction.address.MODIFIER_STRIDE: Final[str] = 'X(?:4|8|16)'

Stride modifier.

class reprospect.test.sass.instruction.address.SharedAddressMatch(reg: str | None = None, offset: str | None = None, stride: StrideModifier | None = None)View on GitHub

Bases: object

Shared address operand, such as:

[R25.X8+0x800]
[0x10]
__init__(reg: str | None = None, offset: str | None = None, stride: StrideModifier | None = None) None
offset: str | None
classmethod parse(bits: Match[str]) SharedAddressMatchView on GitHub
reg: str | None
stride: StrideModifier | None
class reprospect.test.sass.instruction.address.StrideModifier(*values)View on GitHub

Bases: StrEnum

Stride modifier.

X16 = 'X16'
X4 = 'X4'
X8 = 'X8'
__str__()

Return str(self).