diff options
| author | Galen Williamson <galen@vector35.com> | 2025-04-04 22:01:15 -0400 |
|---|---|---|
| committer | Galen Williamson <galen@vector35.com> | 2025-04-08 15:40:49 -0400 |
| commit | e301d99a8df8ed185ffe71dabe915ab55d6fb885 (patch) | |
| tree | 599a48c86f8425b02362e9910b70dd12b954b128 /python/lowlevelil.py | |
| parent | b0b223e9f2379c5d6622dcc082692aa94235cd96 (diff) | |
[aarch64] lift all LD[1-4]R? and ST[1-4] opcodes, lift ST/LDCLR, ST/LDEOR, ST/LDSET, and their variants
Also fixes all outstanding issues in arm64test.py, including intrinsics, dc, at, and tlbi
Diffstat (limited to 'python/lowlevelil.py')
| -rw-r--r-- | python/lowlevelil.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/python/lowlevelil.py b/python/lowlevelil.py index e1128b26..09786cd9 100644 --- a/python/lowlevelil.py +++ b/python/lowlevelil.py @@ -4797,15 +4797,17 @@ class LowLevelILFunction: loc: Optional['ILSourceLocation'] = None ) -> ExpressionIndex: """ - ``mult_double_prec_signed`` multiplies signed with double precision expression ``a`` by expression ``b``, + ``mult_double_prec_signed`` multiplies signed with double (2*size bytes) precision expression ``a`` by expression ``b``, each ``size`` bytes and potentially setting flags ``flags`` and returning an expression of ``2*size`` bytes. + .. note:: The output expression is ``2*size`` bytes in size, but will be rendered as ``muls.dp.<size>``. + :param int size: the size of the input operands, in bytes :param ExpressionIndex a: LHS expression :param ExpressionIndex b: RHS expression :param str flags: optional, flags to set :param ILSourceLocation loc: location of returned expression - :return: The expression ``muls.dp.<2*size>{<flags>}(a, b)`` + :return: The expression ``muls.dp.<size>{<flags>}(a, b)`` :rtype: ExpressionIndex """ return self.expr(LowLevelILOperation.LLIL_MULS_DP, a, b, size=size, flags=flags, source_location=loc) @@ -4815,15 +4817,17 @@ class LowLevelILFunction: loc: Optional['ILSourceLocation'] = None ) -> ExpressionIndex: """ - ``mult_double_prec_unsigned`` multiplies unsigned with double precision expression ``a`` by expression ``b``, + ``mult_double_prec_unsigned`` multiplies unsigned with double (2*size bytes) precision expression ``a`` by expression ``b``, each ``size`` bytes and potentially setting flags ``flags`` and returning an expression of ``2*size`` bytes. + .. note:: The output expression is ``2*size`` bytes in size, but will be rendered as ``mulu.dp.<size>``. + :param int size: the size of the input operands, in bytes :param ExpressionIndex a: LHS expression :param ExpressionIndex b: RHS expression :param str flags: optional, flags to set :param ILSourceLocation loc: location of returned expression - :return: The expression ``mulu.dp.<2*size>{<flags>}(a, b)`` + :return: The expression ``mulu.dp.<size>{<flags>}(a, b)`` :rtype: ExpressionIndex """ return self.expr(LowLevelILOperation.LLIL_MULU_DP, a, b, size=size, flags=flags, source_location=loc) |
