minor update
Some checks failed
CI / setup (push) Has been cancelled
CI / build (32) (push) Has been cancelled
CI / build (64) (push) Has been cancelled
CI / tests (cache, 32) (push) Has been cancelled
CI / tests (cache, 64) (push) Has been cancelled
CI / tests (config1, 32) (push) Has been cancelled
CI / tests (config1, 64) (push) Has been cancelled
CI / tests (config2, 32) (push) Has been cancelled
CI / tests (config2, 64) (push) Has been cancelled
CI / tests (debug, 32) (push) Has been cancelled
CI / tests (debug, 64) (push) Has been cancelled
CI / tests (opencl, 32) (push) Has been cancelled
CI / tests (opencl, 64) (push) Has been cancelled
CI / tests (regression, 32) (push) Has been cancelled
CI / tests (regression, 64) (push) Has been cancelled
CI / tests (scope, 32) (push) Has been cancelled
CI / tests (scope, 64) (push) Has been cancelled
CI / tests (stress, 32) (push) Has been cancelled
CI / tests (stress, 64) (push) Has been cancelled
CI / tests (synthesis, 32) (push) Has been cancelled
CI / tests (synthesis, 64) (push) Has been cancelled
CI / tests (vector, 32) (push) Has been cancelled
CI / tests (vector, 64) (push) Has been cancelled
CI / tests (vm, 32) (push) Has been cancelled
CI / tests (vm, 64) (push) Has been cancelled
CI / complete (push) Has been cancelled

This commit is contained in:
tinebp 2025-01-22 04:56:49 -08:00
parent 9dc1d3f688
commit e80ee2c819
4 changed files with 20 additions and 19 deletions

View file

@ -405,6 +405,7 @@ static const char* op_string(const Instr &instr) {
} }
} }
#ifdef EXT_V_ENABLE
inline void print_vec_attr(std::ostream &os, const Instr &instr) { inline void print_vec_attr(std::ostream &os, const Instr &instr) {
uint32_t mask = instr.getVattrMask(); uint32_t mask = instr.getVattrMask();
if (mask & vattr_vlswidth) if (mask & vattr_vlswidth)
@ -432,6 +433,7 @@ inline void print_vec_attr(std::ostream &os, const Instr &instr) {
if (mask & vattr_vediv) if (mask & vattr_vediv)
os << ", ediv:" << instr.getVediv(); os << ", ediv:" << instr.getVediv();
} }
#endif
namespace vortex { namespace vortex {
std::ostream &operator<<(std::ostream &os, const Instr &instr) { std::ostream &operator<<(std::ostream &os, const Instr &instr) {

View file

@ -45,12 +45,6 @@ void Emulator::warp_t::clear(uint64_t startup_addr) {
this->uuid = 0; this->uuid = 0;
this->fcsr = 0; this->fcsr = 0;
#ifdef EXT_V_ENABLE
this->vtype = {0, 0, 0, 0, 0};
this->vl = 0;
this->vlmax = 0;
#endif
for (auto& reg_file : this->ireg_file) { for (auto& reg_file : this->ireg_file) {
for (auto& reg : reg_file) { for (auto& reg : reg_file) {
#ifndef NDEBUG #ifndef NDEBUG
@ -82,6 +76,9 @@ void Emulator::warp_t::clear(uint64_t startup_addr) {
#endif #endif
} }
} }
this->vtype = {0, 0, 0, 0, 0};
this->vl = 0;
this->vlmax = 0;
#endif #endif
} }

View file

@ -109,12 +109,14 @@ private:
ThreadMask tmask; ThreadMask tmask;
std::vector<std::vector<Word>> ireg_file; std::vector<std::vector<Word>> ireg_file;
std::vector<std::vector<uint64_t>>freg_file; std::vector<std::vector<uint64_t>>freg_file;
std::vector<std::vector<Byte>> vreg_file;
std::stack<ipdom_entry_t> ipdom_stack; std::stack<ipdom_entry_t> ipdom_stack;
Byte fcsr; Byte fcsr;
#ifdef EXT_V_ENABLE
std::vector<std::vector<Byte>> vreg_file;
vtype_t vtype; vtype_t vtype;
uint32_t vl; uint32_t vl;
Word vlmax; Word vlmax;
#endif
uint32_t uuid; uint32_t uuid;
}; };

View file

@ -113,18 +113,18 @@ enum DecodeConstants {
}; };
enum VectorAttrMask { enum VectorAttrMask {
vattr_vlswidth = (1 << 3), vattr_vlswidth = (1 << 0),
vattr_vmop = (1 << 4), vattr_vmop = (1 << 1),
vattr_vumop = (1 << 5), vattr_vumop = (1 << 2),
vattr_vnf = (1 << 6), vattr_vnf = (1 << 3),
vattr_vmask = (1 << 7), vattr_vmask = (1 << 4),
vattr_vs3 = (1 << 8), vattr_vs3 = (1 << 5),
vattr_zimm = (1 << 9), vattr_zimm = (1 << 6),
vattr_vlmul = (1 << 10), vattr_vlmul = (1 << 7),
vattr_vsew = (1 << 11), vattr_vsew = (1 << 8),
vattr_vta = (1 << 12), vattr_vta = (1 << 9),
vattr_vma = (1 << 13), vattr_vma = (1 << 10),
vattr_vediv = (1 << 14) vattr_vediv = (1 << 11)
}; };
class Instr { class Instr {