fixed compiler errors

This commit is contained in:
Blaise Tine 2024-09-23 03:05:46 -07:00
parent 923d2bb94c
commit a80be895ba
9 changed files with 50 additions and 48 deletions

View file

@ -9,7 +9,7 @@ SYN_DIR := $(HW_DIR)/syn/altera/opae
SRC_DIR := $(VORTEX_HOME)/runtime/opae
CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic -Wfatal-errors
CXXFLAGS += -std=c++17 -Wall -Wextra -pedantic -Wfatal-errors
CXXFLAGS += -I$(INC_DIR) -I$(COMMON_DIR) -I$(ROOT_DIR)/hw -I$(DESTDIR) -I$(SIM_DIR)/common
CXXFLAGS += -DXLEN_$(XLEN)

View file

@ -4,7 +4,7 @@ DESTDIR ?= $(CURDIR)/..
SRC_DIR := $(VORTEX_HOME)/runtime/rtlsim
CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic -Wfatal-errors
CXXFLAGS += -std=c++17 -Wall -Wextra -pedantic -Wfatal-errors
CXXFLAGS += -I$(INC_DIR) -I$(COMMON_DIR) -I$(ROOT_DIR)/hw -I$(SIM_DIR)/rtlsim -I$(COMMON_DIR) -I$(SIM_DIR)/common
CXXFLAGS += -DXLEN_$(XLEN)

View file

@ -4,7 +4,7 @@ DESTDIR ?= $(CURDIR)/..
SRC_DIR := $(VORTEX_HOME)/runtime/simx
CXXFLAGS += -std=c++11 -Wall -Wextra -Wfatal-errors
CXXFLAGS += -std=c++17 -Wall -Wextra -Wfatal-errors
CXXFLAGS += -fPIC -Wno-maybe-uninitialized
CXXFLAGS += -I$(INC_DIR) -I../common -I$(ROOT_DIR)/hw -I$(SIM_DIR)/simx -I$(COMMON_DIR) -I$(SIM_DIR)/common
CXXFLAGS += $(CONFIGS)

View file

@ -4,7 +4,7 @@ DESTDIR ?= $(CURDIR)/..
SRC_DIR := $(VORTEX_HOME)/runtime/stub
CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic -Wfatal-errors
CXXFLAGS += -std=c++17 -Wall -Wextra -pedantic -Wfatal-errors
CXXFLAGS += -I$(INC_DIR) -I$(COMMON_DIR) -I$(ROOT_DIR)/hw -I$(SIM_DIR)/common
CXXFLAGS += -fPIC

View file

@ -6,7 +6,7 @@ DESTDIR ?= $(CURDIR)/..
SRC_DIR := $(VORTEX_HOME)/runtime/xrt
CXXFLAGS += -std=c++14 -Wall -Wextra -Wfatal-errors
CXXFLAGS += -std=c++17 -Wall -Wextra -Wfatal-errors
CXXFLAGS += -I$(INC_DIR) -I$(COMMON_DIR) -I$(ROOT_DIR)/hw -I$(XILINX_XRT)/include -I$(SIM_DIR)/common
CXXFLAGS += -DXLEN_$(XLEN)
CXXFLAGS += -fPIC

View file

@ -16,60 +16,62 @@
#include <cstdint>
#include <assert.h>
constexpr uint32_t count_leading_zeros(uint32_t value) {
return value ? __builtin_clz(value) : 32;
template <typename T>
constexpr uint32_t count_leading_zeros(T value) {
static_assert(std::is_integral<T>::value, "invalid data type");
if constexpr (sizeof(T) > 4) {
return value ? __builtin_clzll(value) : 64;
} else {
return value ? __builtin_clz(value) : 32;
}
}
constexpr uint32_t count_leading_zeros(uint64_t value) {
return value ? __builtin_clzll(value) : 64;
template <typename T>
constexpr uint32_t count_trailing_zeros(T value) {
static_assert(std::is_integral<T>::value, "invalid data type");
if constexpr (sizeof(T) > 4) {
return value ? __builtin_ctzll(value) : 64;
} else {
return value ? __builtin_ctz(value) : 32;
}
}
constexpr uint32_t count_trailing_zeros(uint32_t value) {
return value ? __builtin_ctz(value) : 32;
}
constexpr uint32_t count_trailing_zeros(uint64_t value) {
return value ? __builtin_ctzll(value) : 64;
}
constexpr bool ispow2(uint32_t value) {
template <typename T>
constexpr bool ispow2(T value) {
static_assert(std::is_integral<T>::value, "invalid data type");
return value && !(value & (value - 1));
}
constexpr bool ispow2(uint64_t value) {
return value && !(value & (value - 1));
template <typename T>
constexpr uint32_t log2ceil(T value) {
static_assert(std::is_integral<T>::value, "invalid data type");
return (sizeof(T) * 8) - count_leading_zeros(value - 1);
}
constexpr uint32_t log2ceil(uint32_t value) {
return 32 - count_leading_zeros(value - 1);
}
constexpr uint32_t log2ceil(uint64_t value) {
return 64 - count_leading_zeros(value - 1);
}
inline unsigned log2up(uint32_t value) {
template <typename T>
inline unsigned log2up(T value) {
static_assert(std::is_integral<T>::value, "invalid data type");
return std::max<uint32_t>(1, log2ceil(value));
}
inline unsigned log2up(uint64_t value) {
return std::max<uint32_t>(1, log2ceil(value));
template <typename T>
constexpr unsigned log2floor(T value) {
static_assert(std::is_integral<T>::value, "invalid data type");
if constexpr (sizeof(T) > 4) {
return 63 - count_leading_zeros(value);
} else {
return 31 - count_leading_zeros(value);
}
}
constexpr unsigned log2floor(uint32_t value) {
return 31 - count_leading_zeros(value);
}
constexpr unsigned log2floor(uint64_t value) {
return 63 - count_leading_zeros(value);
}
constexpr unsigned ceil2(uint32_t value) {
return 32 - count_leading_zeros(value);
}
constexpr unsigned ceil2(uint64_t value) {
return 64 - count_leading_zeros(value);
template <typename T>
constexpr unsigned ceil2(T value) {
static_assert(std::is_integral<T>::value, "invalid data type");
if constexpr (sizeof(T) > 4) {
return 64 - count_leading_zeros(value);
} else {
return 32 - count_leading_zeros(value);
}
}
inline uint64_t bit_clr(uint64_t bits, uint32_t index) {

View file

@ -40,7 +40,7 @@ VX_LDFLAGS += -Wl,-Bstatic,--gc-sections,-T$(VORTEX_HOME)/kernel/scripts/link$(X
VX_BINTOOL += OBJCOPY=$(LLVM_VORTEX)/bin/llvm-objcopy $(VORTEX_HOME)/kernel/scripts/vxbin.py
CXXFLAGS += -std=c++11 -Wall -Wextra -Wfatal-errors
CXXFLAGS += -std=c++17 -Wall -Wextra -Wfatal-errors
CXXFLAGS += -Wno-deprecated-declarations -Wno-unused-parameter -Wno-narrowing
CXXFLAGS += -pthread
CXXFLAGS += -I$(POCL_PATH)/include

View file

@ -50,7 +50,7 @@ VX_LIBS += $(LIBCRT_VORTEX)/lib/baremetal/libclang_rt.builtins-riscv$(XLEN).a
VX_LDFLAGS += -Wl,-Bstatic,--gc-sections,-T,$(VORTEX_HOME)/kernel/scripts/link$(XLEN).ld,--defsym=STARTUP_ADDR=$(STARTUP_ADDR) $(VORTEX_KN_PATH)/libvortex.a $(VX_LIBS)
CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic -Wfatal-errors
CXXFLAGS += -std=c++17 -Wall -Wextra -pedantic -Wfatal-errors
CXXFLAGS += -I$(VORTEX_HOME)/runtime/include -I$(ROOT_DIR)/hw
LDFLAGS += -L$(VORTEX_RT_PATH) -lvortex

View file

@ -1,7 +1,7 @@
ROOT_DIR := $(realpath ../../..)
CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic -Wfatal-errors
CXXFLAGS += -std=c++17 -Wall -Wextra -pedantic -Wfatal-errors
CXXFLAGS += -I$(VORTEX_HOME)/sim/common
# Debugging