updates to make 64bit compiling
This commit is contained in:
parent
071d9cc8eb
commit
9909769c0a
@ -1 +1 @@
|
|||||||
Subproject commit e0807b8cddb07c2eb91dfe0b230d3121897b7a96
|
Subproject commit 853d1c33ecab1a7096bed7c3f94893d0a27437f3
|
@ -3,6 +3,12 @@ project(coremark C)
|
|||||||
set(TARGET coremark)
|
set(TARGET coremark)
|
||||||
#set(CMAKE_BUILD_TYPE Release)
|
#set(CMAKE_BUILD_TYPE Release)
|
||||||
|
|
||||||
|
option(HAVE_NO_INIT_FINI "Enable NO_INIT_FINI" OFF)
|
||||||
|
|
||||||
|
if(HAVE_NO_INIT_FINI)
|
||||||
|
#if HAVE_NO_INIT_FINI is ON
|
||||||
|
add_definitions(-DHAVE_NO_INIT_FINI)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# Source files
|
# Source files
|
||||||
@ -21,7 +27,8 @@ set(SOURCES
|
|||||||
# Create executable
|
# Create executable
|
||||||
add_executable(coremark ${SOURCES})
|
add_executable(coremark ${SOURCES})
|
||||||
target_include_directories(${TARGET} PRIVATE ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_CURRENT_LIST_DIR}/cm)
|
target_include_directories(${TARGET} PRIVATE ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_CURRENT_LIST_DIR}/cm)
|
||||||
target_compile_options(${TARGET} PRIVATE -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast -fno-common -funroll-loops -finline-functions -falign-functions=16 -falign-jumps=4 -falign-loops=4 -finline-limit=1000 -fno-if-conversion2 -fselective-scheduling -fno-crossjumping -freorder-blocks-and-partition -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast -fno-common -funroll-loops -finline-functions -falign-functions=16 -falign-jumps=4 -falign-loops=4 -finline-limit=1000 -fno-if-conversion2 -fselective-scheduling -fno-crossjumping -freorder-blocks-and-partition )
|
target_compile_options(${TARGET} PRIVATE -mcmodel=medany)
|
||||||
|
target_compile_options(${TARGET} PRIVATE -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast -fno-builtin-strnlen -fno-common -funroll-loops -finline-functions -falign-functions=16 -falign-jumps=4 -falign-loops=4 -finline-limit=1000 -fno-if-conversion2 -fselective-scheduling -fno-crossjumping -freorder-blocks-and-partition -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast -fno-common -funroll-loops -finline-functions -falign-functions=16 -falign-jumps=4 -falign-loops=4 -finline-limit=1000 -fno-if-conversion2 -fselective-scheduling -fno-crossjumping -freorder-blocks-and-partition )
|
||||||
target_compile_definitions(${TARGET} PRIVATE PERFORMANCE_RUN=1 CLOCKS_PER_SEC=10000000 FLAGS_STR="" PERFORMANCE_RUN=1 CLOCKS_PER_SEC=10000000 ITERATIONS=600)
|
target_compile_definitions(${TARGET} PRIVATE PERFORMANCE_RUN=1 CLOCKS_PER_SEC=10000000 FLAGS_STR="" PERFORMANCE_RUN=1 CLOCKS_PER_SEC=10000000 ITERATIONS=600)
|
||||||
|
|
||||||
set(BOARD "iss" CACHE STRING "Target board")
|
set(BOARD "iss" CACHE STRING "Target board")
|
||||||
|
@ -10,14 +10,57 @@
|
|||||||
},
|
},
|
||||||
"configurePresets": [
|
"configurePresets": [
|
||||||
{
|
{
|
||||||
"name": "dbg",
|
"name": "debug",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "Debug",
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv32imc.cmake"
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv32imc.cmake"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "rel",
|
"name": "debug_moon",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
|
"BOARD": "moonlight",
|
||||||
|
"HAVE_NO_INIT_FINI": "ON",
|
||||||
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv32imc.cmake"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "debug_tgc",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
|
"BOARD": "tgc_vp",
|
||||||
|
"HAVE_NO_INIT_FINI": "ON",
|
||||||
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv32imc.cmake"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "debug_64",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv64gc.cmake"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "debug_64_moon",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
|
"BOARD": "moonlight",
|
||||||
|
"HAVE_NO_INIT_FINI": "ON",
|
||||||
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv64gc.cmake"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "debug_64_tgc",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
|
"BOARD": "tgc_vp",
|
||||||
|
"HAVE_NO_INIT_FINI": "ON",
|
||||||
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv64gc.cmake"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "release",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "Release",
|
"CMAKE_BUILD_TYPE": "Release",
|
||||||
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv32imc.cmake"
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv32imc.cmake"
|
||||||
|
@ -2,9 +2,18 @@ cmake_minimum_required(VERSION 3.21)
|
|||||||
project(dhrystone C)
|
project(dhrystone C)
|
||||||
set(TARGET dhrystone)
|
set(TARGET dhrystone)
|
||||||
|
|
||||||
|
option(HAVE_NO_INIT_FINI "Enable NO_INIT_FINI" OFF)
|
||||||
|
|
||||||
|
if(HAVE_NO_INIT_FINI)
|
||||||
|
#if HAVE_NO_INIT_FINI is ON
|
||||||
|
add_definitions(-DHAVE_NO_INIT_FINI)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(ITERATIONS 50000) # 20000 for TGC
|
set(ITERATIONS 50000) # 20000 for TGC
|
||||||
|
|
||||||
add_executable(${TARGET} dhry_1.c dhry_2.c dhry_stubs.c)
|
add_executable(${TARGET} dhry_1.c dhry_2.c dhry_stubs.c)
|
||||||
|
target_compile_options(${TARGET} PRIVATE -mcmodel=medany)
|
||||||
|
#target_compile_options(${TARGET} PRIVATE -mcmodel=medany -fPIC)
|
||||||
target_include_directories(${TARGET} PRIVATE ${CMAKE_CURRENT_LIST_DIR})
|
target_include_directories(${TARGET} PRIVATE ${CMAKE_CURRENT_LIST_DIR})
|
||||||
target_compile_options(${TARGET} PRIVATE -fno-inline -fno-builtin-printf -fno-common -Wno-implicit -funroll-loops -fpeel-loops -fgcse-sm -fgcse-las)
|
target_compile_options(${TARGET} PRIVATE -fno-inline -fno-builtin-printf -fno-common -Wno-implicit -funroll-loops -fpeel-loops -fgcse-sm -fgcse-las)
|
||||||
target_compile_definitions(${TARGET} PRIVATE ITERATIONS=${ITERATIONS} HZ=32768 TIME NO_INIT)
|
target_compile_definitions(${TARGET} PRIVATE ITERATIONS=${ITERATIONS} HZ=32768 TIME NO_INIT)
|
||||||
@ -13,6 +22,8 @@ set(BOARD "iss" CACHE STRING "Target board")
|
|||||||
add_subdirectory(../../bare-metal-bsp bsp)
|
add_subdirectory(../../bare-metal-bsp bsp)
|
||||||
target_link_libraries(${TARGET} PRIVATE bsp)
|
target_link_libraries(${TARGET} PRIVATE bsp)
|
||||||
target_link_options(${TARGET} PRIVATE LINKER:--wrap=scanf)
|
target_link_options(${TARGET} PRIVATE LINKER:--wrap=scanf)
|
||||||
|
#target_link_options(${TARGET} PRIVATE LINKER:--wrap=scanf -Wl,--no-gc-sections)
|
||||||
|
|
||||||
target_link_options(${TARGET} PRIVATE -Wl,-Map=${TARGET}.map)
|
target_link_options(${TARGET} PRIVATE -Wl,-Map=${TARGET}.map)
|
||||||
include(CMakePrintHelpers)
|
include(CMakePrintHelpers)
|
||||||
cmake_print_properties(TARGETS ${TARGET} PROPERTIES COMPILE_DEFINITIONS COMPILE_OPTIONS LINK_OPTIONS INTERFACE_LINK_OPTIONS)
|
cmake_print_properties(TARGETS ${TARGET} PROPERTIES COMPILE_DEFINITIONS COMPILE_OPTIONS LINK_OPTIONS INTERFACE_LINK_OPTIONS)
|
||||||
|
@ -10,14 +10,57 @@
|
|||||||
},
|
},
|
||||||
"configurePresets": [
|
"configurePresets": [
|
||||||
{
|
{
|
||||||
"name": "dbg",
|
"name": "debug",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "Debug",
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv32imc.cmake"
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv32imc.cmake"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "rel",
|
"name": "debug_moon",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
|
"BOARD": "moonlight",
|
||||||
|
"HAVE_NO_INIT_FINI": "ON",
|
||||||
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv32imc.cmake"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "debug_tgc",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
|
"BOARD": "tgc_vp",
|
||||||
|
"HAVE_NO_INIT_FINI": "ON",
|
||||||
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv32imc.cmake"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "debug_64",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv64gc.cmake"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "debug_64_moon",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
|
"BOARD": "moonlight",
|
||||||
|
"HAVE_NO_INIT_FINI": "ON",
|
||||||
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv64gc.cmake"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "debug_64_tgc",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
|
"BOARD": "tgc_vp",
|
||||||
|
"HAVE_NO_INIT_FINI": "ON",
|
||||||
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv64gc.cmake"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "release",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "Release",
|
"CMAKE_BUILD_TYPE": "Release",
|
||||||
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv32imc.cmake"
|
"CMAKE_TOOLCHAIN_FILE": "../../bare-metal-bsp/cmake/rv32imc.cmake"
|
||||||
|
@ -15,11 +15,12 @@ int factorial(int i) {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
extern volatile uintptr_t tohost;
|
||||||
|
|
||||||
void write_tohost(char* string) {
|
void write_tohost(char *string) {
|
||||||
volatile uint64_t payload[4] = {64, 0, (uintptr_t)string,
|
volatile uint64_t payload[4] = {64, 0, (uintptr_t)string,
|
||||||
(strlen(string) + 1)};
|
(strlen(string) + 1)};
|
||||||
tohost = (uintptr_t)payload;
|
tohost = (uintptr_t)payload;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user