Added RISC-V.

This commit is contained in:
Branimir Karadžić
2016-03-25 22:38:28 -07:00
parent 4a92a18ddd
commit 31cbd50aaf
4 changed files with 45 additions and 13 deletions

View File

@@ -22,7 +22,8 @@
|| defined(__NetBSD__) \ || defined(__NetBSD__) \
|| defined(__OpenBSD__) \ || defined(__OpenBSD__) \
|| defined(__FreeBSD__) \ || defined(__FreeBSD__) \
|| defined(__native_client__) || defined(__native_client__) \
|| defined(__riscv)
# define UNITTEST_POSIX # define UNITTEST_POSIX
#endif #endif

View File

@@ -28,11 +28,12 @@
#define BX_PLATFORM_XBOX360 0 #define BX_PLATFORM_XBOX360 0
#define BX_PLATFORM_XBOXONE 0 #define BX_PLATFORM_XBOXONE 0
#define BX_CPU_ARM 0 #define BX_CPU_ARM 0
#define BX_CPU_JIT 0 #define BX_CPU_JIT 0
#define BX_CPU_MIPS 0 #define BX_CPU_MIPS 0
#define BX_CPU_PPC 0 #define BX_CPU_PPC 0
#define BX_CPU_X86 0 #define BX_CPU_RISCV 0
#define BX_CPU_X86 0
#define BX_ARCH_32BIT 0 #define BX_ARCH_32BIT 0
#define BX_ARCH_64BIT 0 #define BX_ARCH_64BIT 0
@@ -84,6 +85,12 @@
# undef BX_CPU_PPC # undef BX_CPU_PPC
# define BX_CPU_PPC 1 # define BX_CPU_PPC 1
# define BX_CACHE_LINE_SIZE 128 # define BX_CACHE_LINE_SIZE 128
#elif defined(__riscv) || \
defined(__riscv__) || \
defined(RISCVEL)
# undef BX_CPU_RISCV
# define BX_CPU_RISCV 1
# define BX_CACHE_LINE_SIZE 64
#elif defined(_M_IX86) || \ #elif defined(_M_IX86) || \
defined(_M_X64) || \ defined(_M_X64) || \
defined(__i386__) || \ defined(__i386__) || \
@@ -103,7 +110,8 @@
defined(__64BIT__) || \ defined(__64BIT__) || \
defined(__mips64) || \ defined(__mips64) || \
defined(__powerpc64__) || \ defined(__powerpc64__) || \
defined(__ppc64__) defined(__ppc64__) || \
defined(__LP64__)
# undef BX_ARCH_64BIT # undef BX_ARCH_64BIT
# define BX_ARCH_64BIT 64 # define BX_ARCH_64BIT 64
#else #else
@@ -171,10 +179,12 @@
// RaspberryPi compiler defines __linux__ // RaspberryPi compiler defines __linux__
# undef BX_PLATFORM_RPI # undef BX_PLATFORM_RPI
# define BX_PLATFORM_RPI 1 # define BX_PLATFORM_RPI 1
#elif defined(__linux__) #elif defined(__linux__) \
|| defined(__riscv__)
# undef BX_PLATFORM_LINUX # undef BX_PLATFORM_LINUX
# define BX_PLATFORM_LINUX 1 # define BX_PLATFORM_LINUX 1
#elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) || defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) #elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) \
|| defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__)
# undef BX_PLATFORM_IOS # undef BX_PLATFORM_IOS
# define BX_PLATFORM_IOS 1 # define BX_PLATFORM_IOS 1
#elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) #elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
@@ -183,7 +193,7 @@
# define BX_PLATFORM_OSX __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ # define BX_PLATFORM_OSX __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
# else # else
# define BX_PLATFORM_OSX 1 # define BX_PLATFORM_OSX 1
# endif // defined(MAC_OS_X_VERSION_MAX_ALLOWED) # endif // defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
#elif defined(__EMSCRIPTEN__) #elif defined(__EMSCRIPTEN__)
# undef BX_PLATFORM_EMSCRIPTEN # undef BX_PLATFORM_EMSCRIPTEN
# define BX_PLATFORM_EMSCRIPTEN 1 # define BX_PLATFORM_EMSCRIPTEN 1
@@ -283,12 +293,14 @@
#if BX_CPU_ARM #if BX_CPU_ARM
# define BX_CPU_NAME "ARM" # define BX_CPU_NAME "ARM"
#elif BX_CPU_JIT
# define BX_CPU_NAME "JIT-VM"
#elif BX_CPU_MIPS #elif BX_CPU_MIPS
# define BX_CPU_NAME "MIPS" # define BX_CPU_NAME "MIPS"
#elif BX_CPU_PPC #elif BX_CPU_PPC
# define BX_CPU_NAME "PowerPC" # define BX_CPU_NAME "PowerPC"
#elif BX_CPU_JIT #elif BX_CPU_RISCV
# define BX_CPU_NAME "JIT-VM" # define BX_CPU_NAME "RISC-V"
#elif BX_CPU_X86 #elif BX_CPU_X86
# define BX_CPU_NAME "x86" # define BX_CPU_NAME "x86"
#endif // BX_CPU_ #endif // BX_CPU_

View File

@@ -37,6 +37,7 @@ function toolchain(_buildDir, _libDir)
{ "ps4", "PS4" }, { "ps4", "PS4" },
{ "qnx-arm", "QNX/Blackberry - ARM" }, { "qnx-arm", "QNX/Blackberry - ARM" },
{ "rpi", "RaspberryPi" }, { "rpi", "RaspberryPi" },
{ "riscv", "RISC-V" },
}, },
} }
@@ -336,6 +337,13 @@ function toolchain(_buildDir, _libDir)
elseif "rpi" == _OPTIONS["gcc"] then elseif "rpi" == _OPTIONS["gcc"] then
location (path.join(_buildDir, "projects", _ACTION .. "-rpi")) location (path.join(_buildDir, "projects", _ACTION .. "-rpi"))
elseif "riscv" == _OPTIONS["gcc"] then
premake.gcc.cc = "/opt/riscv/bin/riscv64-unknown-elf-gcc"
premake.gcc.cxx = "/opt/riscv/bin/riscv64-unknown-elf-g++"
premake.gcc.ar = "/opt/riscv/bin/riscv64-unknown-elf-ar"
location (path.join(_buildDir, "projects", _ACTION .. "-riscv"))
end end
elseif _ACTION == "vs2012" or _ACTION == "vs2013" or _ACTION == "vs2015" then elseif _ACTION == "vs2012" or _ACTION == "vs2013" or _ACTION == "vs2015" then
@@ -1128,6 +1136,17 @@ function toolchain(_buildDir, _libDir)
"-Wl,--gc-sections", "-Wl,--gc-sections",
} }
configuration { "riscv" }
targetdir (path.join(_buildDir, "riscv/bin"))
objdir (path.join(_buildDir, "riscv/obj"))
buildoptions {
"-Wunused-value",
"-Wundef",
}
buildoptions_cpp {
"-std=c++0x",
}
configuration {} -- reset configuration configuration {} -- reset configuration
return true return true

View File

@@ -15,7 +15,7 @@ project "UnitTest++"
"../3rdparty/UnitTest++/src/*.h", "../3rdparty/UnitTest++/src/*.h",
} }
configuration { "linux or osx or android-* or *nacl* or ps4" } configuration { "linux or osx or android-* or *nacl* or ps4 or rpi or riscv" }
files { files {
"../3rdparty/UnitTest++/src/Posix/**.cpp", "../3rdparty/UnitTest++/src/Posix/**.cpp",
"../3rdparty/UnitTest++/src/Posix/**.h", "../3rdparty/UnitTest++/src/Posix/**.h",