summaryrefslogtreecommitdiff
path: root/python/lowlevelil.py
diff options
context:
space:
mode:
authorGalen Williamson <galen@vector35.com>2025-04-04 22:01:15 -0400
committerGalen Williamson <galen@vector35.com>2025-04-08 15:40:49 -0400
commite301d99a8df8ed185ffe71dabe915ab55d6fb885 (patch)
tree599a48c86f8425b02362e9910b70dd12b954b128 /python/lowlevelil.py
parentb0b223e9f2379c5d6622dcc082692aa94235cd96 (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.py12
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)