Initial support for OpenRISC 1000 (or1k)

This commit is contained in:
Samuel Dionne-Riel 2020-11-09 15:06:44 -05:00
parent 32fdf2118c
commit 6d8327ea96
5 changed files with 12 additions and 0 deletions

View File

@ -35,6 +35,7 @@ let
"msp430-none" "msp430-none"
"riscv64-none" "riscv32-none" "riscv64-none" "riscv32-none"
"vc4-none" "vc4-none"
"or1k-none"
"js-ghcjs" "js-ghcjs"
@ -58,6 +59,7 @@ in {
mips = filterDoubles predicates.isMips; mips = filterDoubles predicates.isMips;
riscv = filterDoubles predicates.isRiscV; riscv = filterDoubles predicates.isRiscV;
vc4 = filterDoubles predicates.isVc4; vc4 = filterDoubles predicates.isVc4;
or1k = filterDoubles predicates.isOr1k;
js = filterDoubles predicates.isJavaScript; js = filterDoubles predicates.isJavaScript;
bigEndian = filterDoubles predicates.isBigEndian; bigEndian = filterDoubles predicates.isBigEndian;

View File

@ -124,6 +124,12 @@ rec {
platform = {}; platform = {};
}; };
or1k = {
config = "or1k-elf";
libc = "newlib";
platform = {};
};
arm-embedded = { arm-embedded = {
config = "arm-none-eabi"; config = "arm-none-eabi";
libc = "newlib"; libc = "newlib";

View File

@ -24,6 +24,7 @@ rec {
isVc4 = { cpu = { family = "vc4"; }; }; isVc4 = { cpu = { family = "vc4"; }; };
isAvr = { cpu = { family = "avr"; }; }; isAvr = { cpu = { family = "avr"; }; };
isAlpha = { cpu = { family = "alpha"; }; }; isAlpha = { cpu = { family = "alpha"; }; };
isOr1k = { cpu = { family = "or1k"; }; };
isJavaScript = { cpu = cpuTypes.js; }; isJavaScript = { cpu = cpuTypes.js; };
is32bit = { cpu = { bits = 32; }; }; is32bit = { cpu = { bits = 32; }; };

View File

@ -114,6 +114,8 @@ rec {
vc4 = { bits = 32; significantByte = littleEndian; family = "vc4"; }; vc4 = { bits = 32; significantByte = littleEndian; family = "vc4"; };
or1k = { bits = 32; significantByte = bigEndian; family = "or1k"; };
js = { bits = 32; significantByte = littleEndian; family = "js"; }; js = { bits = 32; significantByte = littleEndian; family = "js"; };
}; };

View File

@ -185,6 +185,7 @@ stdenv.mkDerivation {
else if targetPlatform.isAvr then "avr" else if targetPlatform.isAvr then "avr"
else if targetPlatform.isAlpha then "alpha" else if targetPlatform.isAlpha then "alpha"
else if targetPlatform.isVc4 then "vc4" else if targetPlatform.isVc4 then "vc4"
else if targetPlatform.isOr1k then "or1k"
else throw "unknown emulation for platform: ${targetPlatform.config}"; else throw "unknown emulation for platform: ${targetPlatform.config}";
in if targetPlatform.useLLVM or false then "" in if targetPlatform.useLLVM or false then ""
else targetPlatform.platform.bfdEmulation or (fmt + sep + arch); else targetPlatform.platform.bfdEmulation or (fmt + sep + arch);