GP-5877: Fix Patch Instruction action in some Harvard architectures.

This commit is contained in:
Dan 2025-07-28 15:48:40 +00:00
parent 6f339247ef
commit 39c0a83c0c
6 changed files with 114 additions and 7 deletions

View file

@ -19,6 +19,7 @@ data/languages/toy64-long8.cspec||GHIDRA||||END|
data/languages/toy64.cspec||GHIDRA||||END|
data/languages/toy64_be.slaspec||GHIDRA||||END|
data/languages/toy64_be_harvard.slaspec||GHIDRA||||END|
data/languages/toy64_be_harvard_rev.slaspec||GHIDRA||||END|
data/languages/toy64_le.slaspec||GHIDRA||||END|
data/languages/toyInstructions.sinc||GHIDRA||||END|
data/languages/toyPosStack.cspec||GHIDRA||||END|

View file

@ -79,6 +79,17 @@
<description>Toy (test) processor 64-bit big-endian Harvard</description>
<compiler name="default" spec="toy64.cspec" id="default"/>
</language>
<language processor="Toy"
endian="big"
size="64"
variant="harvard_rev"
version="1.0"
slafile="toy64_be_harvard_rev.sla"
processorspec="toy_harvard.pspec"
id="Toy:BE:64:harvard_rev">
<description>Toy (test) processor 64-bit big-endian Harvard</description>
<compiler name="default" spec="toy64.cspec" id="default"/>
</language>
<language processor="Toy"
endian="little"
size="64"

View file

@ -8,8 +8,10 @@
@define ALIGN "1"
@endif
@ifndef ALREADY_ENDIAN_ALIGN
define endian=$(ENDIAN);
define alignment=$(ALIGN);
@endif
define space ram type=ram_space size=$(SIZE) wordsize=$(WORDSIZE) default;

View file

@ -0,0 +1,16 @@
@define ENDIAN "big"
@define SIZE "8"
@define WORDSIZE "1"
@define ALIGN "1"
@define INSTR_PHASE "" # not used by basic toy language
@define DATA_SPACE "data"
@define ALREADY_ENDIAN_ALIGN
define endian=$(ENDIAN);
define alignment=$(ALIGN);
define space data type=ram_space size=$(SIZE) wordsize=$(WORDSIZE);
@include "toy.sinc"
@include "toyInstructions.sinc"