diff --git a/Ghidra/Processors/Xtensa/data/languages/xtensaArch.sinc b/Ghidra/Processors/Xtensa/data/languages/xtensaArch.sinc index 526f5bc590..da9608a9e7 100644 --- a/Ghidra/Processors/Xtensa/data/languages/xtensaArch.sinc +++ b/Ghidra/Processors/Xtensa/data/languages/xtensaArch.sinc @@ -250,184 +250,3 @@ define token narrowinsn(16) ; @endif - -attach variables [ sr ] [ -# 0x...0 0x...4 0x...8 0x...c - LBEG LEND LCOUNT SAR # 0x0_ - BR LITBASE _ _ # 0x1_ - _ _ _ _ # 0x2_ - SCOMPARE1 _ _ _ # 0x3_ - ACCLO ACCHI _ _ # 0x4_ - _ _ _ _ # 0x5_ - _ _ _ _ # 0x6_ - _ _ _ _ # 0x7_ - M0 M1 M2 M3 # 0x8_ - _ _ _ _ # 0x9_ - _ _ _ _ # 0xa_ - _ _ _ _ # 0xb_ - _ _ _ _ # 0xc_ - _ _ _ _ # 0xd_ - _ _ _ _ # 0xe_ - _ _ _ _ # 0xf_ -# 0x...0 0x...4 0x...8 0x...c - _ _ _ _ # 0x10_ - _ _ _ _ # 0x11_ - WindowBase WindowStart _ _ # 0x12_ - _ _ _ _ # 0x13_ - _ _ _ PTEVADDR # 0x14_ - _ _ _ _ # 0x15_ - _ MMID RASID ITLBCFG # 0x16_ - DTLBCFG _ _ _ # 0x17_ - IBREAKENABLE MEMCTL CACHEATTR ATOMCTL # 0x18_ - _ _ _ _ # 0x19_ - DDR _ MEPC MEPS # 0x1a_ - MESAVE MESR MECR MEVADDR # 0x1b_ - _ _ _ _ # 0x1c_ - _ _ _ _ # 0x1d_ - _ _ _ _ # 0x1e_ - _ _ _ _ # 0x1f_ -# 0x...0 0x...4 0x...8 0x...c - IBREAKA0 IBREAKA1 _ _ # 0x20_ - _ _ _ _ # 0x21_ - _ _ _ _ # 0x22_ - _ _ _ _ # 0x23_ - DBREAKA0 DBREAKA1 _ _ # 0x24_ - _ _ _ _ # 0x25_ - _ _ _ _ # 0x26_ - _ _ _ _ # 0x27_ - DBREAKC0 DBREAKC1 _ _ # 0x28_ - _ _ _ _ # 0x29_ - _ _ _ _ # 0x2a_ - _ _ _ _ # 0x2b_ - _ EPC1 EPC2 EPC3 # 0x2c_ - EPC4 EPC5 EPC6 EPC7 # 0x2d_ - _ _ _ _ # 0x2e_ - _ _ _ _ # 0x2f_ -# 0x...0 0x...4 0x...8 0x...c - DEPC _ EPS2 EPS3 # 0x30_ - EPS4 EPS5 EPS6 EPS7 # 0x31_ - _ _ _ _ # 0x32_ - _ _ _ _ # 0x33_ - _ EXCSAVE1 EXCSAVE2 EXCSAVE3 # 0x34_ - EXCSAVE4 EXCSAVE5 EXCSAVE6 EXCSAVE7 # 0x35_ - _ _ _ _ # 0x36_ - _ _ _ _ # 0x37_ - CPENABLE INTERRUPT INTSET INTCLEAR # 0x38_ - INTENABLE _ PS VECBASE # 0x39_ - EXCCAUSE DEBUGCAUSE CCOUNT PRID # 0x3a_ - ICOUNT ICOUNTLEVEL EXCVADDR _ # 0x3b_ - CCOMPARE0 CCOMPARE1 CCOMPARE2 _ # 0x3c_ - MISC0 MISC1 MISC2 MISC3 # 0x3d_ - _ _ _ _ # 0x3e_ - _ _ _ _ # 0x3f_ -# 0x...0 0x...4 0x...8 0x...c -]; - -attach variables [ ar as at n_ar n_as n_at ] [ - a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 -]; - -attach variables [ fr fs ft ] [ - f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 -]; - -attach variables [ br bs bt ] [ - b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 -]; - -# Various 32-bit pointers relative to PC. Any operands that are split across non-consecutive -# bits are named foo_LL.LM_ML.MM, where LL is the least significant bits of the least -# singificant operand half, LM the most significant bits of the least significant operand half, etc. - -attach variables [ mw_12_13 ] [ - M0 M1 M2 M3 -]; - -attach variables [ m2m3_6_6 ] [ - M2 M3 -]; - -attach variables [ m0m1_14_14 ] [ - M0 M1 -]; - - -#implemented pcodeops -define pcodeop breakpoint; -define pcodeop dhi; -define pcodeop dhu; -define pcodeop dhwb; -define pcodeop dhwbi; -define pcodeop dii; -define pcodeop diu; -define pcodeop diwb; -define pcodeop diwbi; -define pcodeop dpfl; -define pcodeop dpfr; -define pcodeop dpfro; -define pcodeop dpfw; -define pcodeop dpfwo; -define pcodeop dsync; -define pcodeop esync; -define pcodeop excw; -define pcodeop extw; -define pcodeop idtlb; -define pcodeop ihi; -define pcodeop ihu; -define pcodeop iii; -define pcodeop iitlb; -define pcodeop iiu; -define pcodeop ill; -define pcodeop ipf; -define pcodeop ipfl; -define pcodeop isync; -define pcodeop acquire; -define pcodeop ldct; -define pcodeop lict; -define pcodeop licw; -define pcodeop memw; -define pcodeop nsa; -define pcodeop nsau; -define pcodeop pdtlb; -define pcodeop pitlb; -define pcodeop rdtlb0; -define pcodeop rdtlb1; -define pcodeop rer; -define pcodeop restore4; -define pcodeop restore8; -define pcodeop restore12; -define pcodeop rfdd; -define pcodeop rfde; -define pcodeop rfdo; -define pcodeop rfe; -define pcodeop rfi; -define pcodeop rfme; -define pcodeop rfue; -define pcodeop rfwo; -define pcodeop rfwu; -define pcodeop ritlb0; -define pcodeop ritlb1; -define pcodeop rsil; -define pcodeop rsr; -define pcodeop rsync; -define pcodeop rur; -define pcodeop s32c1i; -define pcodeop release; -define pcodeop restoreRegWindow; -define pcodeop rotateRegWindow; -define pcodeop sdct; -define pcodeop sict; -define pcodeop sicw; -define pcodeop simcall; -define pcodeop syscall; -define pcodeop swap4; -define pcodeop swap8; -define pcodeop swap12; -define pcodeop waiti; -define pcodeop wdtlb; -define pcodeop wer; -define pcodeop witlb; -define pcodeop wsr; -define pcodeop wur; -define pcodeop xsr; - diff --git a/Ghidra/Processors/Xtensa/data/languages/xtensaMain.sinc b/Ghidra/Processors/Xtensa/data/languages/xtensaMain.sinc index dd13ae72fb..55a1e2e25d 100644 --- a/Ghidra/Processors/Xtensa/data/languages/xtensaMain.sinc +++ b/Ghidra/Processors/Xtensa/data/languages/xtensaMain.sinc @@ -1,3 +1,185 @@ + +attach variables [ sr ] [ +# 0x...0 0x...4 0x...8 0x...c + LBEG LEND LCOUNT SAR # 0x0_ + BR LITBASE _ _ # 0x1_ + _ _ _ _ # 0x2_ + SCOMPARE1 _ _ _ # 0x3_ + ACCLO ACCHI _ _ # 0x4_ + _ _ _ _ # 0x5_ + _ _ _ _ # 0x6_ + _ _ _ _ # 0x7_ + M0 M1 M2 M3 # 0x8_ + _ _ _ _ # 0x9_ + _ _ _ _ # 0xa_ + _ _ _ _ # 0xb_ + _ _ _ _ # 0xc_ + _ _ _ _ # 0xd_ + _ _ _ _ # 0xe_ + _ _ _ _ # 0xf_ +# 0x...0 0x...4 0x...8 0x...c + _ _ _ _ # 0x10_ + _ _ _ _ # 0x11_ + WindowBase WindowStart _ _ # 0x12_ + _ _ _ _ # 0x13_ + _ _ _ PTEVADDR # 0x14_ + _ _ _ _ # 0x15_ + _ MMID RASID ITLBCFG # 0x16_ + DTLBCFG _ _ _ # 0x17_ + IBREAKENABLE MEMCTL CACHEATTR ATOMCTL # 0x18_ + _ _ _ _ # 0x19_ + DDR _ MEPC MEPS # 0x1a_ + MESAVE MESR MECR MEVADDR # 0x1b_ + _ _ _ _ # 0x1c_ + _ _ _ _ # 0x1d_ + _ _ _ _ # 0x1e_ + _ _ _ _ # 0x1f_ +# 0x...0 0x...4 0x...8 0x...c + IBREAKA0 IBREAKA1 _ _ # 0x20_ + _ _ _ _ # 0x21_ + _ _ _ _ # 0x22_ + _ _ _ _ # 0x23_ + DBREAKA0 DBREAKA1 _ _ # 0x24_ + _ _ _ _ # 0x25_ + _ _ _ _ # 0x26_ + _ _ _ _ # 0x27_ + DBREAKC0 DBREAKC1 _ _ # 0x28_ + _ _ _ _ # 0x29_ + _ _ _ _ # 0x2a_ + _ _ _ _ # 0x2b_ + _ EPC1 EPC2 EPC3 # 0x2c_ + EPC4 EPC5 EPC6 EPC7 # 0x2d_ + _ _ _ _ # 0x2e_ + _ _ _ _ # 0x2f_ +# 0x...0 0x...4 0x...8 0x...c + DEPC _ EPS2 EPS3 # 0x30_ + EPS4 EPS5 EPS6 EPS7 # 0x31_ + _ _ _ _ # 0x32_ + _ _ _ _ # 0x33_ + _ EXCSAVE1 EXCSAVE2 EXCSAVE3 # 0x34_ + EXCSAVE4 EXCSAVE5 EXCSAVE6 EXCSAVE7 # 0x35_ + _ _ _ _ # 0x36_ + _ _ _ _ # 0x37_ + CPENABLE INTERRUPT INTSET INTCLEAR # 0x38_ + INTENABLE _ PS VECBASE # 0x39_ + EXCCAUSE DEBUGCAUSE CCOUNT PRID # 0x3a_ + ICOUNT ICOUNTLEVEL EXCVADDR _ # 0x3b_ + CCOMPARE0 CCOMPARE1 CCOMPARE2 _ # 0x3c_ + MISC0 MISC1 MISC2 MISC3 # 0x3d_ + _ _ _ _ # 0x3e_ + _ _ _ _ # 0x3f_ +# 0x...0 0x...4 0x...8 0x...c +]; + +attach variables [ ar as at n_ar n_as n_at ] [ + a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 +]; + +attach variables [ fr fs ft ] [ + f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 +]; + +attach variables [ br bs bt ] [ + b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 +]; + +# Various 32-bit pointers relative to PC. Any operands that are split across non-consecutive +# bits are named foo_LL.LM_ML.MM, where LL is the least significant bits of the least +# singificant operand half, LM the most significant bits of the least significant operand half, etc. + +attach variables [ mw_12_13 ] [ + M0 M1 M2 M3 +]; + +attach variables [ m2m3_6_6 ] [ + M2 M3 +]; + +attach variables [ m0m1_14_14 ] [ + M0 M1 +]; + + +#implemented pcodeops +define pcodeop breakpoint; +define pcodeop dhi; +define pcodeop dhu; +define pcodeop dhwb; +define pcodeop dhwbi; +define pcodeop dii; +define pcodeop diu; +define pcodeop diwb; +define pcodeop diwbi; +define pcodeop dpfl; +define pcodeop dpfr; +define pcodeop dpfro; +define pcodeop dpfw; +define pcodeop dpfwo; +define pcodeop dsync; +define pcodeop esync; +define pcodeop excw; +define pcodeop extw; +define pcodeop idtlb; +define pcodeop ihi; +define pcodeop ihu; +define pcodeop iii; +define pcodeop iitlb; +define pcodeop iiu; +define pcodeop ill; +define pcodeop ipf; +define pcodeop ipfl; +define pcodeop isync; +define pcodeop acquire; +define pcodeop ldct; +define pcodeop lict; +define pcodeop licw; +define pcodeop memw; +define pcodeop nsa; +define pcodeop nsau; +define pcodeop pdtlb; +define pcodeop pitlb; +define pcodeop rdtlb0; +define pcodeop rdtlb1; +define pcodeop rer; +define pcodeop restore4; +define pcodeop restore8; +define pcodeop restore12; +define pcodeop rfdd; +define pcodeop rfde; +define pcodeop rfdo; +define pcodeop rfe; +define pcodeop rfi; +define pcodeop rfme; +define pcodeop rfue; +define pcodeop rfwo; +define pcodeop rfwu; +define pcodeop ritlb0; +define pcodeop ritlb1; +define pcodeop rsil; +define pcodeop rsr; +define pcodeop rsync; +define pcodeop rur; +define pcodeop s32c1i; +define pcodeop release; +define pcodeop restoreRegWindow; +define pcodeop rotateRegWindow; +define pcodeop sdct; +define pcodeop sict; +define pcodeop sicw; +define pcodeop simcall; +define pcodeop syscall; +define pcodeop swap4; +define pcodeop swap8; +define pcodeop swap12; +define pcodeop waiti; +define pcodeop wdtlb; +define pcodeop wer; +define pcodeop witlb; +define pcodeop wsr; +define pcodeop wur; +define pcodeop xsr; + + # Various 32-bit pointers relative to PC. Any operands that are split across non-consecutive # bits are named foo_LL_LM_ML_MM, where LL is the least significant bits of the least # singificant operand half, LM the most significant bits of the least significant operand half, etc.