From 1dc123a7c0279e94f7ac8ca39b1a05d4be51c543 Mon Sep 17 00:00:00 2001 From: fuzzball Date: Thu, 21 Aug 2025 17:53:33 +0900 Subject: [PATCH 1/2] Assign xchd to group2 --- Ghidra/Processors/8051/data/languages/8051_main.sinc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ghidra/Processors/8051/data/languages/8051_main.sinc b/Ghidra/Processors/8051/data/languages/8051_main.sinc index d3d40e01c05..e5bcfdb5a34 100644 --- a/Ghidra/Processors/8051/data/languages/8051_main.sinc +++ b/Ghidra/Processors/8051/data/languages/8051_main.sinc @@ -906,7 +906,7 @@ pc:3 = 0; pop24(pc); return[pc]; :XCH Areg,Ri is $(GROUP2) & ophi=12 & rifill=3 & Ri & Areg { tmp : 1 = ACC; ACC = Ri; Ri = tmp; } # TODO: This instruction appears to be in both GROUP2 & GROUP3 (always available) -:XCHD Areg,Ri is ophi=13 & Areg & rifill=3 & Ri { tmp : 1 = ACC & 0xf; ACC = (ACC&0xf0) | (Ri&0xf); Ri = (Ri&0xf0) | tmp; } +:XCHD Areg,Ri is $(GROUP2) & ophi=13 & Areg & rifill=3 & Ri { tmp : 1 = ACC & 0xf; ACC = (ACC&0xf0) | (Ri&0xf); Ri = (Ri&0xf0) | tmp; } :XRL Areg,rn is $(GROUP2) & ophi=6 & rnfill=1 & rn & Areg { ACC = ACC ^ rn; } :XRL Areg,Direct is $(GROUP1) & ophi=6 & oplo=5 & Areg; Direct { ACC = ACC ^ Direct; } From e2363068f79735f78a9a7d6b3194c5fc7f5e0b00 Mon Sep 17 00:00:00 2001 From: fuzzball Date: Sat, 23 Aug 2025 12:32:56 +0900 Subject: [PATCH 2/2] Remove comments --- Ghidra/Processors/8051/data/languages/8051_main.sinc | 1 - 1 file changed, 1 deletion(-) diff --git a/Ghidra/Processors/8051/data/languages/8051_main.sinc b/Ghidra/Processors/8051/data/languages/8051_main.sinc index e5bcfdb5a34..83e3ad5c64b 100644 --- a/Ghidra/Processors/8051/data/languages/8051_main.sinc +++ b/Ghidra/Processors/8051/data/languages/8051_main.sinc @@ -905,7 +905,6 @@ pc:3 = 0; pop24(pc); return[pc]; :XCH Areg,Direct is $(GROUP1) & ophi=12 & oplo=5 & Areg; Direct { tmp : 1 = ACC; ACC = Direct; Direct = tmp; } :XCH Areg,Ri is $(GROUP2) & ophi=12 & rifill=3 & Ri & Areg { tmp : 1 = ACC; ACC = Ri; Ri = tmp; } -# TODO: This instruction appears to be in both GROUP2 & GROUP3 (always available) :XCHD Areg,Ri is $(GROUP2) & ophi=13 & Areg & rifill=3 & Ri { tmp : 1 = ACC & 0xf; ACC = (ACC&0xf0) | (Ri&0xf); Ri = (Ri&0xf0) | tmp; } :XRL Areg,rn is $(GROUP2) & ophi=6 & rnfill=1 & rn & Areg { ACC = ACC ^ rn; }