diff --git a/Ghidra/Processors/MIPS/data/languages/mips.sinc b/Ghidra/Processors/MIPS/data/languages/mips.sinc index 18c86524bb..261a92bec4 100644 --- a/Ghidra/Processors/MIPS/data/languages/mips.sinc +++ b/Ghidra/Processors/MIPS/data/languages/mips.sinc @@ -539,8 +539,9 @@ define token instr(32) pcrel = (19,20) pcrel2 = (18,20) cc = (18,20) - immed1625 = (16,25) signed - immed1623 = (16,23) signed + immed1625 = (16,25) + simmed1625 = (16,25) signed + simmed1623 = (16,23) signed rt32 = (16,20) rt = (16,20) rtmtdsp = (16,20) @@ -617,7 +618,7 @@ define token instr(32) spec2 = (9,10) svrs_s1 = (10,10) spec3 = (8,10) - simmed9 = (7,15) + simmed9 = (7,15) signed zero2 = (7,10) code = (6,15) fdD = (6,10) @@ -650,7 +651,7 @@ define token instr(32) immed = (0,15) simmed = (0,15) signed simmseq = (6,15) signed - simmed11 = (0,10) + simmed11 = (0,10) signed ; attach variables [ rs rt rd base index baser6 ] [ diff --git a/Ghidra/Processors/MIPS/data/languages/mips_dsp.sinc b/Ghidra/Processors/MIPS/data/languages/mips_dsp.sinc index e4c183515c..86218e87ec 100644 --- a/Ghidra/Processors/MIPS/data/languages/mips_dsp.sinc +++ b/Ghidra/Processors/MIPS/data/languages/mips_dsp.sinc @@ -989,22 +989,22 @@ define pcodeop SUBUH.QB; RD = DSPControl & immed1625:$(REGSIZE); } -:rddsp RD is $(AMODE) & prime=0x1f & immed1625=0x1f & RD & fct2=0x12 & fct=0x38 { +:rddsp RD is $(AMODE) & prime=0x1f & simmed1625=0x1f & RD & fct2=0x12 & fct=0x38 { RD = DSPControl; } # REPL.PH Purpose: Replicate Immediate Integer into all Vector Element Positions -:repl.ph RD, immed1625 is $(AMODE) & prime=0x1f & immed1625 & RD & fct2=0xa & fct=0x12 { - val:2 = immed1625; +:repl.ph RD, simmed1625 is $(AMODE) & prime=0x1f & simmed1625 & RD & fct2=0xa & fct=0x12 { + val:2 = simmed1625; repl:$(REGSIZE) = sext(val) << 16 | zext(val); RD = repl; } # REPL.QB Purpose: Replicate Immediate Integer into all Vector Element Positions -:repl.qb RD, immed1623 is $(AMODE) & prime=0x1f & zero2425=0x0 & immed1623 & RD & fct2=0x2 & fct=0x12 { - byte:1 = immed1623; +:repl.qb RD, simmed1623 is $(AMODE) & prime=0x1f & zero2425=0x0 & simmed1623 & RD & fct2=0x2 & fct=0x12 { + byte:1 = simmed1623; RD = sext((byte << 24) | (byte << 16) | (byte << 8) | (byte)); }