lib/systems: add SH4 (SuperH) cross-compilation target

Add sh4 CPU type (32-bit, little-endian, family "sh"), isSh4 predicate,
"sh4-linux" system double, cross-compilation example (sh4-unknown-linux-gnu),
linuxArch mapping to "sh", and test entry.
This commit is contained in:
Ben Siraphob
2026-04-19 08:10:34 -07:00
parent 95a37fc4ee
commit 0fcb031c25
6 changed files with 20 additions and 0 deletions

View File

@@ -300,6 +300,8 @@ let
"powerpc"
else if final.isRiscV then
"riscv"
else if final.isSh4 then
"sh"
else if final.isS390 then
"s390"
else if final.isLoongArch64 then

View File

@@ -40,6 +40,7 @@ let
"i686-linux"
"loongarch64-linux"
"m68k-linux"
"sh4-linux"
"microblaze-linux"
"microblazeel-linux"
"mips-linux"
@@ -145,6 +146,7 @@ in
or1k = filterDoubles predicates.isOr1k;
m68k = filterDoubles predicates.isM68k;
arc = filterDoubles predicates.isArc;
sh4 = filterDoubles predicates.isSh4;
s390 = filterDoubles predicates.isS390;
s390x = filterDoubles predicates.isS390x;
loongarch64 = filterDoubles predicates.isLoongArch64;

View File

@@ -243,6 +243,10 @@ rec {
config = "arc-unknown-linux-gnu";
};
sh4 = {
config = "sh4-unknown-linux-gnu";
};
s390 = {
config = "s390-unknown-linux-gnu";
};

View File

@@ -234,6 +234,11 @@ rec {
family = "arc";
};
};
isSh4 = {
cpu = {
family = "sh";
};
};
isS390 = {
cpu = {
family = "s390";

View File

@@ -284,6 +284,12 @@ rec {
family = "m68k";
};
sh4 = {
bits = 32;
significantByte = littleEndian;
family = "sh";
};
powerpc = {
bits = 32;
significantByte = bigEndian;

View File

@@ -171,6 +171,7 @@ lib.runTests (
"i686-linux"
"loongarch64-linux"
"m68k-linux"
"sh4-linux"
"microblaze-linux"
"microblazeel-linux"
"mips-linux"