Skip to content

Commit

Permalink
Add Elbrus 2000 architecture (nim-lang#19024)
Browse files Browse the repository at this point in the history
* Add Elbrus 2000 architecture

* Add e2k to niminst

* Update compiler/installer.ini

Co-authored-by: Andreas Rumpf <[email protected]>
  • Loading branch information
2 people authored and PMunch committed Mar 28, 2022
1 parent 78e57a4 commit 38c1b44
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 3 deletions.
6 changes: 4 additions & 2 deletions compiler/platform.nim
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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
Expand Down
4 changes: 3 additions & 1 deletion lib/system/platforms.nim
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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.
1 change: 1 addition & 0 deletions tools/nim.zsh-completion
Original file line number Diff line number Diff line change
Expand Up @@ -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]' \
Expand Down
2 changes: 2 additions & 0 deletions tools/niminst/buildsh.nimf
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions tools/niminst/makefile.nimf
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 38c1b44

Please sign in to comment.