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) {
uint32_t mask = instr.getVattrMask();
if (mask & vattr_vlswidth)
@ -432,6 +433,7 @@ inline void print_vec_attr(std::ostream &os, const Instr &instr) {
if (mask & vattr_vediv)
os << ", ediv:" << instr.getVediv();
}
#endif
namespace vortex {
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->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 : reg_file) {
#ifndef NDEBUG
@ -82,6 +76,9 @@ void Emulator::warp_t::clear(uint64_t startup_addr) {
#endif
}
}
this->vtype = {0, 0, 0, 0, 0};
this->vl = 0;
this->vlmax = 0;
#endif
}

View file

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

View file

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