diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2018-04-19 13:53:25 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-04-19 13:53:25 +0200 |
| commit | cc6b1ae498d6a4b876c14e274f852be76a7be080 (patch) | |
| tree | c91e75be39da1b2a12122bbe954fe62f9730db9e | |
| parent | 46abbce25653c99f2d73270b4f3eb3ec50bd36b4 (diff) | |
| parent | 398e7b72bded9e022ed39d32f38199fe079f082d (diff) | |
| download | miasm-cc6b1ae498d6a4b876c14e274f852be76a7be080.tar.gz miasm-cc6b1ae498d6a4b876c14e274f852be76a7be080.zip | |
Merge pull request #720 from su-vikas/master
Added support to parse sxtb, sxth, sxtx, uxtw, uxth, uxtx, uxtb
| -rw-r--r-- | miasm2/arch/aarch64/sem.py | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/miasm2/arch/aarch64/sem.py b/miasm2/arch/aarch64/sem.py index 2799df7a..88b0d0a7 100644 --- a/miasm2/arch/aarch64/sem.py +++ b/miasm2/arch/aarch64/sem.py @@ -124,9 +124,32 @@ def extend_arg(dst, arg): return arg op, (reg, shift) = arg.op, arg.args - if op == 'SXTW': + if op == "SXTB": + base = reg[:8].signExtend(dst.size) + op = "<<" + elif op == "SXTH": + base = reg[:16].signExtend(dst.size) + op = "<<" + elif op == 'SXTW': + base = reg[:32].signExtend(dst.size) + op = "<<" + elif op == "SXTX": base = reg.signExtend(dst.size) op = "<<" + + elif op == "UXTB": + base = reg[:8].zeroExtend(dst.size) + op = "<<" + elif op == "UXTH": + base = reg[:16].zeroExtend(dst.size) + op = "<<" + elif op == 'UXTW': + base = reg[:32].zeroExtend(dst.size) + op = "<<" + elif op == "UXTX": + base = reg.zeroExtend(dst.size) + op = "<<" + elif op in ['<<', '>>', '<<a', 'a>>', '<<<', '>>>']: base = reg.zeroExtend(dst.size) else: |