Restructured project

This commit is contained in:
2017-09-21 20:29:23 +02:00
parent aa8c2138c6
commit 9a617dab57
55 changed files with 16145 additions and 166 deletions

View File

@@ -227,13 +227,13 @@ protected:
inline
llvm::Value* gen_reg_load(unsigned i, unsigned level=0){
if(level){
// if(level){
return this->builder->CreateLoad(get_reg_ptr(i), false);
} else {
if(!this->loaded_regs[i])
this->loaded_regs[i]=this->builder->CreateLoad(get_reg_ptr(i), false);
return this->loaded_regs[i];
}
// } else {
// if(!this->loaded_regs[i])
// this->loaded_regs[i]=this->builder->CreateLoad(get_reg_ptr(i), false);
// return this->loaded_regs[i];
// }
}
inline
@@ -523,7 +523,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("LUI x%1$d, 0x%2$05x");
ins_fmter % (uint64_t)fld_rd_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -556,7 +556,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("AUIPC x%1%, 0x%2$08x");
ins_fmter % (uint64_t)fld_rd_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -591,7 +591,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("JAL x%1$d, 0x%2$x");
ins_fmter % (uint64_t)fld_rd_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -629,7 +629,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("JALR x%1$d, x%2$d, 0x%3$x");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -670,7 +670,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("BEQ x%1$d, x%2$d, 0x%3$x");
ins_fmter % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -711,7 +711,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("BNE x%1$d, x%2$d, 0x%3$x");
ins_fmter % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -752,7 +752,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("BLT x%1$d, x%2$d, 0x%3$x");
ins_fmter % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -797,7 +797,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("BGE x%1$d, x%2$d, 0x%3$x");
ins_fmter % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -842,7 +842,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("BLTU x%1$d, x%2$d, 0x%3$x");
ins_fmter % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -883,7 +883,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("BGEU x%1$d, x%2$d, 0x%3$x");
ins_fmter % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -924,7 +924,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("LB x%1$d, %2%(x%3$d)");
ins_fmter % (uint64_t)fld_rd_val % (int64_t)fld_imm_val % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -964,7 +964,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("LH x%1$d, %2%(x%3$d)");
ins_fmter % (uint64_t)fld_rd_val % (int64_t)fld_imm_val % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1004,7 +1004,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("LW x%1$d, %2%(x%3$d)");
ins_fmter % (uint64_t)fld_rd_val % (int64_t)fld_imm_val % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1044,7 +1044,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("LBU x%1$d, %2%(x%3$d)");
ins_fmter % (uint64_t)fld_rd_val % (int64_t)fld_imm_val % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1084,7 +1084,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("LHU x%1$d, %2%(x%3$d)");
ins_fmter % (uint64_t)fld_rd_val % (int64_t)fld_imm_val % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1124,7 +1124,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SB x%1$d, %2%(x%3$d)");
ins_fmter % (uint64_t)fld_rs2_val % (int64_t)fld_imm_val % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1162,7 +1162,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SH x%1$d, %2%(x%3$d)");
ins_fmter % (uint64_t)fld_rs2_val % (int64_t)fld_imm_val % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1200,7 +1200,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SW x%1$d, %2%(x%3$d)");
ins_fmter % (uint64_t)fld_rs2_val % (int64_t)fld_imm_val % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1238,7 +1238,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("ADDI x%1$d, x%2$d, %3%");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1274,7 +1274,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SLTI x%1$d, x%2$d, %3%");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1319,7 +1319,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SLTIU x%1$d, x%2$d, %3%");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1365,7 +1365,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("XORI x%1$d, x%2$d, %3%");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1401,7 +1401,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("ORI x%1$d, x%2$d, %3%");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1437,7 +1437,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("ANDI x%1$d, x%2$d, %3%");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1473,7 +1473,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SLLI x%1$d, x%2$d, %3%");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_shamt_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1509,7 +1509,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SRLI x%1$d, x%2$d, %3%");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_shamt_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1545,7 +1545,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SRAI x%1$d, x%2$d, %3%");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_shamt_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1581,7 +1581,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("ADD x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1617,7 +1617,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SUB x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1653,7 +1653,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SLL x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1691,7 +1691,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SLT x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1736,7 +1736,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SLTU x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1783,7 +1783,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("XOR x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1819,7 +1819,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SRL x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1857,7 +1857,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SRA x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1895,7 +1895,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("OR x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -1931,7 +1931,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("AND x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2235,7 +2235,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("CSRRW x%1$d, %2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_csr_val % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2282,7 +2282,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("CSRRS x%1$d, %2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_csr_val % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2327,7 +2327,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("CSRRC x%1$d, %2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_csr_val % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2372,7 +2372,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("CSRRWI x%1$d, %2$d, 0x%3$x");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_csr_val % (uint64_t)fld_zimm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2414,7 +2414,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("CSRRSI x%1$d, %2$d, 0x%3$x");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_csr_val % (uint64_t)fld_zimm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2461,7 +2461,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("CSRRCI x%1$d, %2$d, 0x%3$x");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_csr_val % (uint64_t)fld_zimm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2508,7 +2508,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("MUL x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2554,7 +2554,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("MULH x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2602,7 +2602,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("MULHSU x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2650,7 +2650,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("MULHU x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2698,7 +2698,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("DIV x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2762,7 +2762,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("DIVU x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2826,7 +2826,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("REM x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2890,7 +2890,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("REMU x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -2955,7 +2955,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("LR.W x%1$d, x%2$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3003,7 +3003,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("SC.W x%1$d, x%2$d, x%3$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3068,7 +3068,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("AMOSWAP.W x%1$d, x%2$d, x%3$d (aqu=%4$d,rel=%5$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (uint64_t)fld_aq_val % (uint64_t)fld_rl_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3113,7 +3113,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("AMOADD.W x%1$d, x%2$d, x%3$d (aqu=%4$d,rel=%5$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (uint64_t)fld_aq_val % (uint64_t)fld_rl_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3162,7 +3162,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("AMOXOR.W x%1$d, x%2$d, x%3$d (aqu=%4$d,rel=%5$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (uint64_t)fld_aq_val % (uint64_t)fld_rl_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3211,7 +3211,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("AMOAND.W x%1$d, x%2$d, x%3$d (aqu=%4$d,rel=%5$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (uint64_t)fld_aq_val % (uint64_t)fld_rl_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3260,7 +3260,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("AMOOR.W x%1$d, x%2$d, x%3$d (aqu=%4$d,rel=%5$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (uint64_t)fld_aq_val % (uint64_t)fld_rl_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3309,7 +3309,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("AMOMIN.W x%1$d, x%2$d, x%3$d (aqu=%4$d,rel=%5$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (uint64_t)fld_aq_val % (uint64_t)fld_rl_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3367,7 +3367,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("AMOMAX.W x%1$d, x%2$d, x%3$d (aqu=%4$d,rel=%5$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (uint64_t)fld_aq_val % (uint64_t)fld_rl_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3425,7 +3425,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("AMOMINU.W x%1$d, x%2$d, x%3$d (aqu=%4$d,rel=%5$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (uint64_t)fld_aq_val % (uint64_t)fld_rl_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3479,7 +3479,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("AMOMAXU.W x%1$d, x%2$d, x%3$d (aqu=%4$d,rel=%5$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (uint64_t)fld_aq_val % (uint64_t)fld_rl_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3534,7 +3534,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.ADDI4SPN x%1$d, 0x%2$05x");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_nzuimm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3573,7 +3573,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.LW x(8+%1$d), x(8+%2$d), 0x%3$05x");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs1_val % (uint64_t)fld_uimm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3610,7 +3610,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.SW x(8+%1$d), x(8+%2$d), 0x%3$05x");
ins_fmter % (uint64_t)fld_rs1_val % (uint64_t)fld_rs2_val % (uint64_t)fld_uimm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3648,7 +3648,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.NOP ");
ins_fmter ;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3678,7 +3678,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.ADDI x%1$d, 0x%2$05x");
ins_fmter % (uint64_t)fld_rs1_val % (int64_t)fld_nzimm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3713,7 +3713,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.JAL 0x%1$05x");
ins_fmter % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3749,7 +3749,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.LI x%1$d, 0x%2$05x");
ins_fmter % (uint64_t)fld_rd_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3783,7 +3783,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.LUI x%1$d, 0x%2$05x");
ins_fmter % (uint64_t)fld_rd_val % (int64_t)fld_nzimm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3822,7 +3822,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.ADDI16SP 0x%1$05x");
ins_fmter % (int64_t)fld_nzimm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3858,7 +3858,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.SRLI x(8+%1$d), %2$d");
ins_fmter % (uint64_t)fld_rs1_val % (uint64_t)fld_shamt_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3895,7 +3895,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.SRAI x(8+%1$d), %2$d");
ins_fmter % (uint64_t)fld_rs1_val % (uint64_t)fld_shamt_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3932,7 +3932,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.ANDI x(8+%1$d), 0x%2$05x");
ins_fmter % (uint64_t)fld_rs1_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -3966,7 +3966,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.SUB x(8+%1$d), x(8+%2$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4001,7 +4001,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.XOR x(8+%1$d), x(8+%2$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4036,7 +4036,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.OR x(8+%1$d), x(8+%2$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4071,7 +4071,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.AND x(8+%1$d), x(8+%2$d)");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4105,7 +4105,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.J 0x%1$05x");
ins_fmter % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4136,7 +4136,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.BEQZ x(8+%1$d), 0x%2$05x");
ins_fmter % (uint64_t)fld_rs1d_val % (int64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4177,7 +4177,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.BNEZ x(8+%1$d),, 0x%2$05x");
ins_fmter % (uint64_t)fld_rs1d_val % (uint64_t)fld_imm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4218,7 +4218,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.SLLI x%1$d, %2$d");
ins_fmter % (uint64_t)fld_rs1_val % (uint64_t)fld_shamt_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4286,7 +4286,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.LWSP x%1$d, sp, 0x%2$05x");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_uimm_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4321,7 +4321,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.MV x%1$d, x%2$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4351,7 +4351,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.JR x%1$d");
ins_fmter % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4406,7 +4406,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.ADD x%1$d, x%2$d");
ins_fmter % (uint64_t)fld_rd_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4438,7 +4438,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.JALR x%1$d");
ins_fmter % (uint64_t)fld_rs1_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4472,7 +4472,7 @@ private:
/* generate console output when executing the command */
boost::format ins_fmter("C.SWSP x2+0x%1$05x, x%2$d");
ins_fmter % (uint64_t)fld_uimm_val % (uint64_t)fld_rs2_val;
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t%%v");
boost::format fmter("0x%1$016x\t\t%2$-40s\t\t");
fmter % pc.val % ins_fmter.str();
std::vector<llvm::Value*> args {
this->core_ptr,
@@ -4591,7 +4591,7 @@ void vm_impl<ARCH>::gen_leave_behavior(llvm::BasicBlock* leave_blk){
template<typename ARCH>
void vm_impl<ARCH>::gen_raise_trap(uint16_t trap_id, uint16_t cause){
auto* TRAP_val = this->gen_const(traits<ARCH>::XLEN, 0x80<<24| (cause<<16) | trap_id );
auto* TRAP_val = this->gen_const(32, 0x80<<24| (cause<<16) | trap_id );
this->builder->CreateStore(TRAP_val, get_reg_ptr(traits<ARCH>::TRAP_STATE), true);
}

File diff suppressed because it is too large Load Diff