Add Elbrus 2000 architecture (#19024)

* Add Elbrus 2000 architecture

* Add e2k to niminst

* Update compiler/installer.ini

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
This commit is contained in:
Danil Yarantsev
2021-10-21 18:01:48 +03:00
committed by GitHub
parent 1a45da9150
commit 5e2b9341f3
5 changed files with 13 additions and 3 deletions

View File

@@ -197,7 +197,8 @@ type
cpuNone, cpuI386, cpuM68k, cpuAlpha, cpuPowerpc, cpuPowerpc64,
cpuPowerpc64el, cpuSparc, cpuVm, cpuHppa, cpuIa64, cpuAmd64, cpuMips,
cpuMipsel, cpuArm, cpuArm64, cpuJS, cpuNimVM, cpuAVR, cpuMSP430,
cpuSparc64, cpuMips64, cpuMips64el, cpuRiscV32, cpuRiscV64, cpuEsp, cpuWasm32
cpuSparc64, cpuMips64, cpuMips64el, cpuRiscV32, cpuRiscV64, cpuEsp, cpuWasm32,
cpuE2k
type
TInfoCPU* = tuple[name: string, intSize: int, endian: Endianness,
@@ -232,7 +233,8 @@ const
(name: "riscv32", intSize: 32, endian: littleEndian, floatSize: 64, bit: 32),
(name: "riscv64", intSize: 64, endian: littleEndian, floatSize: 64, bit: 64),
(name: "esp", intSize: 32, endian: littleEndian, floatSize: 64, bit: 32),
(name: "wasm32", intSize: 32, endian: littleEndian, floatSize: 64, bit: 32)]
(name: "wasm32", intSize: 32, endian: littleEndian, floatSize: 64, bit: 32),
(name: "e2k", intSize: 64, endian: littleEndian, floatSize: 64, bit: 64)]
type
Target* = object

View File

@@ -35,7 +35,8 @@ type
msp430, ## TI MSP430 microcontroller
riscv32, ## RISC-V 32-bit processor
riscv64, ## RISC-V 64-bit processor
wasm32 ## WASM, 32-bit
wasm32, ## WASM, 32-bit
e2k ## MCST Elbrus 2000
OsPlatform* {.pure.} = enum ## the OS this program will run on.
none, dos, windows, os2, linux, morphos, skyos, solaris,
@@ -93,5 +94,6 @@ const
elif defined(riscv32): CpuPlatform.riscv32
elif defined(riscv64): CpuPlatform.riscv64
elif defined(wasm32): CpuPlatform.wasm32
elif defined(e2k): CpuPlatform.e2k
else: CpuPlatform.none
## the CPU this program will run on.

View File

@@ -74,6 +74,7 @@ _nim() {
'*--cpu=arm64[compile for ARM64 architecture]' \
'*--cpu=avr[compile for AVR architecture]' \
'*--cpu=esp[compile for ESP architecture]' \
'*--cpu=e2k[compile for Elbrus 2000 architecture]' \
'*--cpu=hppa[compile for HPPA architecture]' \
'*--cpu=i386[compile for i386 architecture]' \
'*--cpu=ia64[compile for ia64 architecture]' \

View File

@@ -227,6 +227,8 @@ case $ucpu in
mycpu="arm" ;;
*riscv64|riscv* )
mycpu="riscv64" ;;
*e2k* )
mycpu="e2k" ;;
*)
echo 2>&1 "Error: unknown processor: $ucpu"
exit 1

View File

@@ -166,6 +166,9 @@ endif
ifeq ($(ucpu),riscv64)
mycpu = riscv64
endif
ifeq ($(ucpu),e2k)
mycpu = e2k
endif
ifndef mycpu
$(error unknown CPU architecture: $(ucpu) See makefile.nimf)
endif