``shift_left`` shifts left expression ``a`` by expression ``b`` from expression ``a`` potentially setting flags ``flags`` and returning an expression of ``size`` bytes. :param int size: the size of the result in bytes :param ExpressionIndex a: LHS expression :param ExpressionIndex b: RHS
( self, size: int, a: ExpressionIndex, b: ExpressionIndex, flags: Optional['architecture.FlagType'] = None, loc: Optional['ILSourceLocation'] = None )
| 4647 | return self.expr(LowLevelILOperation.LLIL_XOR, a, b, size=size, flags=flags, source_location=loc) |
| 4648 | |
| 4649 | def shift_left( |
| 4650 | self, size: int, a: ExpressionIndex, b: ExpressionIndex, flags: Optional['architecture.FlagType'] = None, |
| 4651 | loc: Optional['ILSourceLocation'] = None |
| 4652 | ) -> ExpressionIndex: |
| 4653 | """ |
| 4654 | ``shift_left`` shifts left expression ``a`` by expression ``b`` from expression ``a`` potentially setting flags ``flags`` |
| 4655 | and returning an expression of ``size`` bytes. |
| 4656 | |
| 4657 | :param int size: the size of the result in bytes |
| 4658 | :param ExpressionIndex a: LHS expression |
| 4659 | :param ExpressionIndex b: RHS expression |
| 4660 | :param str flags: optional, flags to set |
| 4661 | :param ILSourceLocation loc: location of returned expression |
| 4662 | :return: The expression ``lsl.<size>{<flags>}(a, b)`` |
| 4663 | :rtype: ExpressionIndex |
| 4664 | """ |
| 4665 | return self.expr(LowLevelILOperation.LLIL_LSL, a, b, size=size, flags=flags, source_location=loc) |
| 4666 | |
| 4667 | def logical_shift_right( |
| 4668 | self, size: int, a: ExpressionIndex, b: ExpressionIndex, flags: Optional['architecture.FlagType'] = None, |
no test coverage detected