From e301d99a8df8ed185ffe71dabe915ab55d6fb885 Mon Sep 17 00:00:00 2001 From: Galen Williamson Date: Fri, 4 Apr 2025 22:01:15 -0400 Subject: [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 --- python/lowlevelil.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'python/lowlevelil.py') 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.``. + :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>{}(a, b)`` + :return: The expression ``muls.dp.{}(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.``. + :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>{}(a, b)`` + :return: The expression ``mulu.dp.{}(a, b)`` :rtype: ExpressionIndex """ return self.expr(LowLevelILOperation.LLIL_MULU_DP, a, b, size=size, flags=flags, source_location=loc) -- cgit v1.3.1