Extended register file to 64 bits
This commit is contained in:
@@ -21,7 +21,9 @@ VPATH := $(sort $(dir $(SRCS)))
|
|||||||
|
|
||||||
# Debugigng
|
# Debugigng
|
||||||
ifdef DEBUG
|
ifdef DEBUG
|
||||||
CXXFLAGS += -g -O0 -DDEBUG_LEVEL=$(DEBUG)
|
# CXXFLAGS += -g -O0 -DDEBUG_LEVEL=$(DEBUG)
|
||||||
|
# simx64
|
||||||
|
CXXFLAGS += -g -O0 -DDEBUG_LEVEL=4
|
||||||
else
|
else
|
||||||
CXXFLAGS += -O2 -DNDEBUG
|
CXXFLAGS += -O2 -DNDEBUG
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifndef DEBUG_LEVEL
|
#ifndef DEBUG_LEVEL
|
||||||
#define DEBUG_LEVEL 3
|
#define DEBUG_LEVEL 4
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DEBUG_HEADER << "DEBUG "
|
#define DEBUG_HEADER << "DEBUG "
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
using namespace vortex;
|
using namespace vortex;
|
||||||
|
|
||||||
static bool HasDivergentThreads(const ThreadMask &thread_mask,
|
static bool HasDivergentThreads(const ThreadMask &thread_mask,
|
||||||
const std::vector<std::vector<Word>> ®_file,
|
const std::vector<std::vector<DoubleWord>> ®_file,
|
||||||
unsigned reg) {
|
unsigned reg) {
|
||||||
bool cond;
|
bool cond;
|
||||||
size_t thread_idx = 0;
|
size_t thread_idx = 0;
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ namespace vortex {
|
|||||||
typedef uint8_t Byte;
|
typedef uint8_t Byte;
|
||||||
typedef uint32_t Word;
|
typedef uint32_t Word;
|
||||||
typedef int32_t WordI;
|
typedef int32_t WordI;
|
||||||
|
// simx64
|
||||||
|
typedef uint64_t DoubleWord;
|
||||||
|
|
||||||
typedef uint32_t Addr;
|
typedef uint32_t Addr;
|
||||||
typedef uint32_t Size;
|
typedef uint32_t Size;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ using namespace vortex;
|
|||||||
Warp::Warp(Core *core, Word id)
|
Warp::Warp(Core *core, Word id)
|
||||||
: id_(id)
|
: id_(id)
|
||||||
, core_(core) {
|
, core_(core) {
|
||||||
iRegFile_.resize(core_->arch().num_threads(), std::vector<Word>(core_->arch().num_regs(), 0));
|
iRegFile_.resize(core_->arch().num_threads(), std::vector<DoubleWord>(core_->arch().num_regs(), 0));
|
||||||
fRegFile_.resize(core_->arch().num_threads(), std::vector<Word>(core_->arch().num_regs(), 0));
|
fRegFile_.resize(core_->arch().num_threads(), std::vector<Word>(core_->arch().num_regs(), 0));
|
||||||
vRegFile_.resize(core_->arch().num_regs(), std::vector<Byte>(core_->arch().vsize(), 0));
|
vRegFile_.resize(core_->arch().num_regs(), std::vector<Byte>(core_->arch().vsize(), 0));
|
||||||
this->clear();
|
this->clear();
|
||||||
|
|||||||
@@ -98,7 +98,8 @@ private:
|
|||||||
Word PC_;
|
Word PC_;
|
||||||
ThreadMask tmask_;
|
ThreadMask tmask_;
|
||||||
|
|
||||||
std::vector<std::vector<Word>> iRegFile_;
|
// simx64
|
||||||
|
std::vector<std::vector<DoubleWord>> iRegFile_;
|
||||||
std::vector<std::vector<Word>> fRegFile_;
|
std::vector<std::vector<Word>> fRegFile_;
|
||||||
std::vector<std::vector<Byte>> vRegFile_;
|
std::vector<std::vector<Byte>> vRegFile_;
|
||||||
std::stack<DomStackEntry> domStack_;
|
std::stack<DomStackEntry> domStack_;
|
||||||
|
|||||||
Reference in New Issue
Block a user