diff options
Diffstat (limited to 'miasm2/arch/mips32')
| -rw-r--r-- | miasm2/arch/mips32/arch.py | 1 | ||||
| -rw-r--r-- | miasm2/arch/mips32/sem.py | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/miasm2/arch/mips32/arch.py b/miasm2/arch/mips32/arch.py index 8a49c4f8..b3bbc3ff 100644 --- a/miasm2/arch/mips32/arch.py +++ b/miasm2/arch/mips32/arch.py @@ -688,6 +688,7 @@ mips32op("ext", [bs('011111'), rs, rt, esize, epos, bs('000000')], [rt, rs, mips32op("ins", [bs('011111'), rs, rt, eposh, epos, bs('000100')], [rt, rs, epos, eposh]) mips32op("seb", [bs('011111'), bs('00000'), rt, rd, bs('10000'), bs('100000')], [rd, rt]) +mips32op("seh", [bs('011111'), bs('00000'), rt, rd, bs('11000'), bs('100000')], [rd, rt]) mips32op("wsbh", [bs('011111'), bs('00000'), rt, rd, bs('00010'), bs('100000')], [rd, rt]) mips32op("di", [bs('010000'), bs('01011'), rt, bs('01100'), bs('00000'), bs('0'), bs('00'), bs('000')]) diff --git a/miasm2/arch/mips32/sem.py b/miasm2/arch/mips32/sem.py index e83d9b48..365444d7 100644 --- a/miasm2/arch/mips32/sem.py +++ b/miasm2/arch/mips32/sem.py @@ -225,6 +225,11 @@ def seb(ir, instr, a, b): e.append(ExprAff(a, b[:8].signExtend(32))) return e, [] +def seh(ir, instr, a, b): + e = [] + e.append(ExprAff(a, b[:16].signExtend(32))) + return e, [] + def bltz(ir, instr, a, b): e = [] n = ExprId(ir.get_next_break_label(instr)) @@ -475,6 +480,7 @@ mnemo_func = { "xori" : l_xor, "xor" : l_xor, "seb" : seb, + "seh" : seh, "bltz" : bltz, "blez" : blez, "wsbh" : wsbh, |