summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/platform.nim6
-rw-r--r--lib/system/platforms.nim4
-rw-r--r--tools/nim.zsh-completion1
-rw-r--r--tools/niminst/buildsh.nimf2
-rw-r--r--tools/niminst/makefile.nimf3
5 files changed, 13 insertions, 3 deletions
diff --git a/compiler/platform.nim b/compiler/platform.nim
index 1bc00b629..18d43f006 100644
--- a/compiler/platform.nim
+++ b/compiler/platform.nim
@@ -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
diff --git a/lib/system/platforms.nim b/lib/system/platforms.nim
index bd6541b6a..5bca8cb1c 100644
--- a/lib/system/platforms.nim
+++ b/lib/system/platforms.nim
@@ -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.
diff --git a/tools/nim.zsh-completion b/tools/nim.zsh-completion
index f7aeb72c6..07a221e9c 100644
--- a/tools/nim.zsh-completion
+++ b/tools/nim.zsh-completion
@@ -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]' \
diff --git a/tools/niminst/buildsh.nimf b/tools/niminst/buildsh.nimf
index 5f68a6a17..b81ac731f 100644
--- a/tools/niminst/buildsh.nimf
+++ b/tools/niminst/buildsh.nimf
@@ -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
diff --git a/tools/niminst/makefile.nimf b/tools/niminst/makefile.nimf
index 69e87b837..c4f2f0e79 100644
--- a/tools/niminst/makefile.nimf
+++ b/tools/niminst/makefile.nimf
@@ -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