diff --git a/gen_input/templates/asmjit/CORENAME.cpp.gtl b/gen_input/templates/asmjit/CORENAME.cpp.gtl index 3b5486f..e33b818 100644 --- a/gen_input/templates/asmjit/CORENAME.cpp.gtl +++ b/gen_input/templates/asmjit/CORENAME.cpp.gtl @@ -117,7 +117,36 @@ protected: return (from & mask) | ((from & sign_mask) ? ~mask : 0); } <%functions.each{ it.eachLine { %> - ${it}<%}%> + ${it}<%} +} +if(fcsr != null) {%> + x86_reg_t NaNBox16(jit_holder& jh , x86_reg_t NaNBox16_val){ + x86::Compiler& cc = jh.cc; + if(static_cast(traits::FLEN) == 16) + return gen_ext(cc, NaNBox16_val, traits::FLEN, false); + else { + auto box = gen_operation(cc, bnot, (gen_ext(cc, 0, traits::FLEN, false))); + return gen_ext(cc, (gen_operation(jh.cc, bor, gen_ext(jh.cc, gen_operation(jh.cc, shl, box, 16), traits::FLEN, false), gen_ext(jh.cc, NaNBox16_val, traits::FLEN, false))), traits::FLEN, false); + } + } + x86_reg_t NaNBox32(jit_holder& jh , x86_reg_t NaNBox32_val){ + x86::Compiler& cc = jh.cc; + if(static_cast(traits::FLEN) == 32) + return gen_ext(cc, NaNBox32_val, traits::FLEN, false); + else { + auto box = gen_operation(cc, bnot, (gen_ext(cc, 0, /* we need to shift for 32 so need larger dt*/ 64, false))); + return gen_ext(cc, (gen_operation(jh.cc, bor, gen_ext(jh.cc, gen_operation(jh.cc, shl, box, 32), traits::FLEN, false), gen_ext(jh.cc, NaNBox32_val, traits::FLEN, false))), traits::FLEN, false); + } + } + x86_reg_t NaNBox64(jit_holder& jh , x86_reg_t NaNBox64_val){ + x86::Compiler& cc = jh.cc; + if(static_cast(traits::FLEN) == 64) + return gen_ext(cc, NaNBox64_val, traits::FLEN, false); + else { + auto box = gen_operation(cc, bnot, (gen_ext(cc, 0, /* we need to shift for 32 so need larger dt*/ 128, false))); + return gen_ext(cc, (gen_operation(jh.cc, bor, gen_ext(jh.cc, gen_operation(jh.cc, shl, box, 64), traits::FLEN, false), gen_ext(jh.cc, NaNBox64_val, traits::FLEN, false))), traits::FLEN, false); + } + } <%}%> private: /**************************************************************************** @@ -226,8 +255,6 @@ continuation_e vm_impl::gen_single_inst_behavior(virt_addr_t &pc, jit_hold code_word_t instr = 0; phys_addr_t paddr(pc); auto *const data = (uint8_t *)&instr; - if(this->core.has_mmu()) - paddr = this->core.virt2phys(pc); auto res = this->core.read(paddr, 4, data); if (res != iss::Ok) return ILLEGAL_FETCH; diff --git a/gen_input/templates/llvm/CORENAME.cpp.gtl b/gen_input/templates/llvm/CORENAME.cpp.gtl index c7f61dd..2a6b4e5 100644 --- a/gen_input/templates/llvm/CORENAME.cpp.gtl +++ b/gen_input/templates/llvm/CORENAME.cpp.gtl @@ -136,7 +136,28 @@ protected: return (from & mask) | ((from & sign_mask) ? ~mask : 0); } <%functions.each{ it.eachLine { %> - ${it}<%}%> + ${it}<%} +} +if(fcsr != null) {%> + Value* NaNBox16(BasicBlock* bb, Value* NaNBox16_val){ + if(static_cast(traits::FLEN) == 16) + return this->gen_ext(NaNBox16_val, traits::FLEN, false); + auto box = this->builder.CreateNot((this->gen_ext(0, 32, false))); + return this->gen_ext((this->builder.CreateOr(this->builder.CreateShl(this->gen_ext(box, traits::FLEN), 16), this->gen_ext(NaNBox16_val, traits::FLEN))), traits::FLEN, false); + } + Value* NaNBox32(BasicBlock* bb, Value* NaNBox32_val){ + if(static_cast(traits::FLEN) == 32) + return this->gen_ext(NaNBox32_val, traits::FLEN, false); + auto box = this->builder.CreateNot((this->gen_ext(0, 64, false))); + return this->gen_ext((this->builder.CreateOr(this->builder.CreateShl(this->gen_ext(box, traits::FLEN), 32), this->gen_ext(NaNBox32_val, traits::FLEN))), traits::FLEN, false); + } + Value* NaNBox64(BasicBlock* bb, Value* NaNBox64_val){ + if(static_cast(traits::FLEN) == 64) + return this->gen_ext(NaNBox64_val, traits::FLEN, false); + auto box = this->builder.CreateNot((this->gen_ext(0, 128, false))); + return this->gen_ext((this->builder.CreateOr(this->builder.CreateShl(this->gen_ext(box, traits::FLEN), 64), this->gen_ext(NaNBox64_val, traits::FLEN))), traits::FLEN, false); + } + <%}%> private: /**************************************************************************** @@ -251,8 +272,6 @@ vm_impl::gen_single_inst_behavior(virt_addr_t &pc, BasicBlock *this_block) // const typename traits::addr_t upper_bits = ~traits::PGMASK; phys_addr_t paddr(pc); auto *const data = (uint8_t *)&instr; - if(this->core.has_mmu()) - paddr = this->core.virt2phys(pc); auto res = this->core.read(paddr, 4, data); if (res != iss::Ok) return std::make_tuple(ILLEGAL_FETCH, nullptr); diff --git a/gen_input/templates/tcc/CORENAME.cpp.gtl b/gen_input/templates/tcc/CORENAME.cpp.gtl index c4ff028..391cc50 100644 --- a/gen_input/templates/tcc/CORENAME.cpp.gtl +++ b/gen_input/templates/tcc/CORENAME.cpp.gtl @@ -139,7 +139,33 @@ if(fcsr != null) {%> } <%functions.each{ it.eachLine { %> - ${it}<%}%> + ${it}<%} +} +if(fcsr != null) {%> + value NaNBox16(tu_builder& tu, value NaNBox16_val){ + if(static_cast(traits::FLEN) == 16) + return tu.ext(NaNBox16_val, traits::FLEN, false); + else { + auto box = tu.assignment(tu.logical_neg((tu.ext(0, 32, false))), traits::FLEN) ; + return tu.ext((tu.bitwise_or(tu.shl(box, 16), NaNBox16_val)), traits::FLEN, false); + } + } + value NaNBox32(tu_builder& tu, value NaNBox32_val){ + if(static_cast(traits::FLEN) == 32) + return tu.ext(NaNBox32_val, traits::FLEN, false); + else { + auto box = tu.assignment(tu.logical_neg((tu.ext(0, 64, false))), traits::FLEN) ; + return tu.ext((tu.bitwise_or(tu.shl(box, 32), NaNBox32_val)), traits::FLEN, false); + } + } + value NaNBox64(tu_builder& tu, value NaNBox64_val){ + if(static_cast(traits::FLEN) == 32) + return tu.ext(NaNBox64_val, traits::FLEN, false); + else { + auto box = tu.assignment(tu.logical_neg((tu.ext(0, 128, false))), traits::FLEN) ; + return tu.ext((tu.bitwise_or(tu.shl(box, 64), NaNBox64_val)), traits::FLEN, false); + } + } <%}%> private: /**************************************************************************** @@ -181,6 +207,8 @@ private: this->gen_set_tval(tu, instr); <%instr.behavior.eachLine{%>${it} <%}%> + tu("(*icount)++;"); + tu("(*instret)++;"); tu.close_scope(); vm_base::gen_sync(tu, POST_SYNC,${idx}); gen_trap_check(tu); @@ -232,8 +260,6 @@ vm_impl::gen_single_inst_behavior(virt_addr_t &pc, tu_builder& tu) { enum {TRAP_ID=1<<16}; code_word_t instr = 0; phys_addr_t paddr(pc); - if(this->core.has_mmu()) - paddr = this->core.virt2phys(pc); auto res = this->core.read(paddr, 4, reinterpret_cast(&instr)); if (res != iss::Ok) return ILLEGAL_FETCH; @@ -278,34 +304,74 @@ template void vm_impl::add_prologue(tu_builder& tu){ os << tu.add_reg_ptr("trap_state", arch::traits::TRAP_STATE, this->regs_base_ptr); os << tu.add_reg_ptr("pending_trap", arch::traits::PENDING_TRAP, this->regs_base_ptr); os << tu.add_reg_ptr("cycle", arch::traits::CYCLE, this->regs_base_ptr); -<%if(fcsr != null) {%> +<%if(fcsr != null) { + def flen = constants.find { it.name == 'FLEN' }?.value ?: 0 + %> os << "uint32_t (*fget_flags)()=" << (uintptr_t)&fget_flags << ";\\n"; + + os << "uint16_t (*fadd_h)(uint16_t v1, uint16_t v2, uint8_t mode)=" << (uintptr_t)&fadd_h << ";\\n"; + os << "uint16_t (*fsub_h)(uint16_t v1, uint16_t v2, uint8_t mode)=" << (uintptr_t)&fsub_h << ";\\n"; + os << "uint16_t (*fmul_h)(uint16_t v1, uint16_t v2, uint8_t mode)=" << (uintptr_t)&fmul_h << ";\\n"; + os << "uint16_t (*fdiv_h)(uint16_t v1, uint16_t v2, uint8_t mode)=" << (uintptr_t)&fdiv_h << ";\\n"; + os << "uint16_t (*fsqrt_h)(uint16_t v1, uint8_t mode)=" << (uintptr_t)&fsqrt_h << ";\\n"; + os << "uint16_t (*fcmp_h)(uint16_t v1, uint16_t v2, uint16_t op)=" << (uintptr_t)&fcmp_h << ";\\n"; + os << "uint16_t (*fmadd_h)(uint16_t v1, uint16_t v2, uint16_t v3, uint16_t op, uint8_t mode)=" << (uintptr_t)&fmadd_h << ";\\n"; + os << "uint16_t (*fsel_h)(uint16_t v1, uint16_t v2, uint16_t op)=" << (uintptr_t)&fsel_h << ";\\n"; + os << "uint16_t (*fclass_h)(uint16_t v1)=" << (uintptr_t)&fclass_h << ";\\n"; + os << "uint16_t (*unbox_h)(uint8_t FLEN, uint64_t v)=" << (uintptr_t)&unbox_h << ";\\n"; + + os << "uint32_t (*f16toi32)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&f16toi32 << ";\\n"; + os << "uint32_t (*f16toui32)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&f16toui32 << ";\\n"; + os << "uint16_t (*i32tof16)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&i32tof16 << ";\\n"; + os << "uint16_t (*ui32tof16)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&ui32tof16 << ";\\n"; + os << "uint64_t (*f16toi64)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&f16toi64 <<";\\n"; + os << "uint64_t (*f16toui64)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&f16toui64 <<";\\n"; + os << "uint16_t (*i64tof16)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&i64tof16 <<";\\n"; + os << "uint16_t (*ui64tof16)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&ui64tof16 <<";\\n"; + os << "uint32_t (*fadd_s)(uint32_t v1, uint32_t v2, uint8_t mode)=" << (uintptr_t)&fadd_s << ";\\n"; os << "uint32_t (*fsub_s)(uint32_t v1, uint32_t v2, uint8_t mode)=" << (uintptr_t)&fsub_s << ";\\n"; os << "uint32_t (*fmul_s)(uint32_t v1, uint32_t v2, uint8_t mode)=" << (uintptr_t)&fmul_s << ";\\n"; os << "uint32_t (*fdiv_s)(uint32_t v1, uint32_t v2, uint8_t mode)=" << (uintptr_t)&fdiv_s << ";\\n"; os << "uint32_t (*fsqrt_s)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&fsqrt_s << ";\\n"; os << "uint32_t (*fcmp_s)(uint32_t v1, uint32_t v2, uint32_t op)=" << (uintptr_t)&fcmp_s << ";\\n"; - os << "uint32_t (*fcvt_s)(uint32_t v1, uint32_t op, uint8_t mode)=" << (uintptr_t)&fcvt_s << ";\\n"; os << "uint32_t (*fmadd_s)(uint32_t v1, uint32_t v2, uint32_t v3, uint32_t op, uint8_t mode)=" << (uintptr_t)&fmadd_s << ";\\n"; os << "uint32_t (*fsel_s)(uint32_t v1, uint32_t v2, uint32_t op)=" << (uintptr_t)&fsel_s << ";\\n"; os << "uint32_t (*fclass_s)( uint32_t v1 )=" << (uintptr_t)&fclass_s << ";\\n"; - os << "uint32_t (*fconv_d2f)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&fconv_d2f << ";\\n"; - os << "uint64_t (*fconv_f2d)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&fconv_f2d << ";\\n"; + + os << "uint32_t (*f32toi32)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&f32toi32 << ";\\n"; + os << "uint32_t (*f32toui32)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&f32toui32 << ";\\n"; + os << "uint32_t (*i32tof32)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&i32tof32 << ";\\n"; + os << "uint32_t (*ui32tof32)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&ui32tof32 << ";\\n"; + os << "uint64_t (*f32toi64)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&f32toi64 <<";\\n"; + os << "uint64_t (*f32toui64)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&f32toui64 <<";\\n"; + os << "uint32_t (*i64tof32)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&i64tof32 <<";\\n"; + os << "uint32_t (*ui64tof32)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&ui64tof32 <<";\\n"; + <%if(flen > 32) {%> + os << "uint32_t (*unbox_s)(uint8_t FLEN, uint64_t v)=" << (uintptr_t)&unbox_s << ";\\n"; + os << "uint64_t (*fadd_d)(uint64_t v1, uint64_t v2, uint8_t mode)=" << (uintptr_t)&fadd_d << ";\\n"; os << "uint64_t (*fsub_d)(uint64_t v1, uint64_t v2, uint8_t mode)=" << (uintptr_t)&fsub_d << ";\\n"; os << "uint64_t (*fmul_d)(uint64_t v1, uint64_t v2, uint8_t mode)=" << (uintptr_t)&fmul_d << ";\\n"; os << "uint64_t (*fdiv_d)(uint64_t v1, uint64_t v2, uint8_t mode)=" << (uintptr_t)&fdiv_d << ";\\n"; os << "uint64_t (*fsqrt_d)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&fsqrt_d << ";\\n"; os << "uint64_t (*fcmp_d)(uint64_t v1, uint64_t v2, uint32_t op)=" << (uintptr_t)&fcmp_d << ";\\n"; - os << "uint64_t (*fcvt_d)(uint64_t v1, uint32_t op, uint8_t mode)=" << (uintptr_t)&fcvt_d << ";\\n"; os << "uint64_t (*fmadd_d)(uint64_t v1, uint64_t v2, uint64_t v3, uint32_t op, uint8_t mode)=" << (uintptr_t)&fmadd_d << ";\\n"; os << "uint64_t (*fsel_d)(uint64_t v1, uint64_t v2, uint32_t op)=" << (uintptr_t)&fsel_d << ";\\n"; os << "uint64_t (*fclass_d)(uint64_t v1 )=" << (uintptr_t)&fclass_d << ";\\n"; - os << "uint64_t (*fcvt_32_64)(uint32_t v1, uint32_t op, uint8_t mode)=" << (uintptr_t)&fcvt_32_64 << ";\\n"; - os << "uint32_t (*fcvt_64_32)(uint64_t v1, uint32_t op, uint8_t mode)=" << (uintptr_t)&fcvt_64_32 << ";\\n"; - os << "uint32_t (*unbox_s)(uint64_t v)=" << (uintptr_t)&unbox_s << ";\\n"; - <%}%> + + os << "uint32_t (*f64tof32)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&f64tof32 << ";\\n"; + os << "uint64_t (*f32tof64)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&f32tof64 << ";\\n"; + os << "uint64_t (*f64toi64)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&f64toi64 <<";\\n"; + os << "uint64_t (*f64toui64)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&f64toui64 <<";\\n"; + os << "uint64_t (*i64tof64)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&i64tof64 <<";\\n"; + os << "uint64_t (*ui64tof64)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&ui64tof64 <<";\\n"; + os << "uint64_t (*i32tof64)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&i32tof64 <<";\\n"; + os << "uint64_t (*ui32tof64)(uint32_t v1, uint8_t mode)=" << (uintptr_t)&ui32tof64 <<";\\n"; + os << "uint32_t (*f64toi32)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&f64toi32 <<";\\n"; + os << "uint32_t (*f64toui32)(uint64_t v1, uint8_t mode)=" << (uintptr_t)&f64toui32 <<";\\n"; + <%} + }%> tu.add_prologue(os.str()); } diff --git a/src/vm/asmjit/vm_tgc5c.cpp b/src/vm/asmjit/vm_tgc5c.cpp index 5c1cb72..8f7bdcb 100644 --- a/src/vm/asmjit/vm_tgc5c.cpp +++ b/src/vm/asmjit/vm_tgc5c.cpp @@ -338,7 +338,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -385,7 +385,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -433,7 +433,7 @@ private: /*generate behavior*/ mov(jh.cc, get_ptr_for(jh, traits::LAST_BRANCH), static_cast(NO_JUMP)); if(rd>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto new_pc = (uint32_t)(PC+(int32_t)sext<21>(imm)); @@ -492,7 +492,7 @@ private: /*generate behavior*/ mov(jh.cc, get_ptr_for(jh, traits::LAST_BRANCH), static_cast(NO_JUMP)); if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto addr_mask = (uint32_t)- 2; @@ -565,7 +565,7 @@ private: /*generate behavior*/ mov(jh.cc, get_ptr_for(jh, traits::LAST_BRANCH), static_cast(NO_JUMP)); if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -629,7 +629,7 @@ private: /*generate behavior*/ mov(jh.cc, get_ptr_for(jh, traits::LAST_BRANCH), static_cast(NO_JUMP)); if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -693,7 +693,7 @@ private: /*generate behavior*/ mov(jh.cc, get_ptr_for(jh, traits::LAST_BRANCH), static_cast(NO_JUMP)); if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -759,7 +759,7 @@ private: /*generate behavior*/ mov(jh.cc, get_ptr_for(jh, traits::LAST_BRANCH), static_cast(NO_JUMP)); if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -825,7 +825,7 @@ private: /*generate behavior*/ mov(jh.cc, get_ptr_for(jh, traits::LAST_BRANCH), static_cast(NO_JUMP)); if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -889,7 +889,7 @@ private: /*generate behavior*/ mov(jh.cc, get_ptr_for(jh, traits::LAST_BRANCH), static_cast(NO_JUMP)); if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -952,7 +952,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address = gen_ext(cc, @@ -1006,7 +1006,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address = gen_ext(cc, @@ -1060,7 +1060,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address = gen_ext(cc, @@ -1114,7 +1114,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address = gen_ext(cc, @@ -1167,7 +1167,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address = gen_ext(cc, @@ -1220,7 +1220,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto store_address = gen_ext(cc, @@ -1269,7 +1269,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto store_address = gen_ext(cc, @@ -1318,7 +1318,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto store_address = gen_ext(cc, @@ -1367,7 +1367,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -1417,23 +1417,23 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ - auto label_then11 = cc.newLabel(); - auto label_merge11 = cc.newLabel(); - auto tmp_reg11 = get_reg(cc, 8, false); + auto label_then1 = cc.newLabel(); + auto label_merge1 = cc.newLabel(); + auto tmp_reg1 = get_reg(cc, 8, false); cmp(cc, gen_ext(cc, load_reg_from_mem(jh, traits::X0 + rs1), 32, true), (int16_t)sext<12>(imm)); - cc.jl(label_then11); - mov(cc, tmp_reg11,0); - cc.jmp(label_merge11); - cc.bind(label_then11); - mov(cc, tmp_reg11, 1); - cc.bind(label_merge11); + cc.jl(label_then1); + mov(cc, tmp_reg1,0); + cc.jmp(label_merge1); + cc.bind(label_then1); + mov(cc, tmp_reg1, 1); + cc.bind(label_merge1); mov(cc, get_ptr_for(jh, traits::X0+ rd), - gen_ext(cc, tmp_reg11 + gen_ext(cc, tmp_reg1 , 32, false) ); } @@ -1478,22 +1478,22 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ - auto label_then12 = cc.newLabel(); - auto label_merge12 = cc.newLabel(); - auto tmp_reg12 = get_reg(cc, 8, false); + auto label_then2 = cc.newLabel(); + auto label_merge2 = cc.newLabel(); + auto tmp_reg2 = get_reg(cc, 8, false); cmp(cc, load_reg_from_mem(jh, traits::X0 + rs1), (uint32_t)((int16_t)sext<12>(imm))); - cc.jb(label_then12); - mov(cc, tmp_reg12,0); - cc.jmp(label_merge12); - cc.bind(label_then12); - mov(cc, tmp_reg12, 1); - cc.bind(label_merge12); + cc.jb(label_then2); + mov(cc, tmp_reg2,0); + cc.jmp(label_merge2); + cc.bind(label_then2); + mov(cc, tmp_reg2, 1); + cc.bind(label_merge2); mov(cc, get_ptr_for(jh, traits::X0+ rd), - gen_ext(cc, tmp_reg12 + gen_ext(cc, tmp_reg2 , 32, false) ); } @@ -1538,7 +1538,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -1587,7 +1587,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -1636,7 +1636,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -1685,7 +1685,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -1734,7 +1734,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -1783,7 +1783,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -1834,7 +1834,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -1884,7 +1884,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -1934,7 +1934,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -1984,24 +1984,24 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ - auto label_then13 = cc.newLabel(); - auto label_merge13 = cc.newLabel(); - auto tmp_reg13 = get_reg(cc, 8, false); + auto label_then3 = cc.newLabel(); + auto label_merge3 = cc.newLabel(); + auto tmp_reg3 = get_reg(cc, 8, false); cmp(cc, gen_ext(cc, load_reg_from_mem(jh, traits::X0 + rs1), 32, true), gen_ext(cc, load_reg_from_mem(jh, traits::X0 + rs2), 32, true)); - cc.jl(label_then13); - mov(cc, tmp_reg13,0); - cc.jmp(label_merge13); - cc.bind(label_then13); - mov(cc, tmp_reg13, 1); - cc.bind(label_merge13); + cc.jl(label_then3); + mov(cc, tmp_reg3,0); + cc.jmp(label_merge3); + cc.bind(label_then3); + mov(cc, tmp_reg3, 1); + cc.bind(label_merge3); mov(cc, get_ptr_for(jh, traits::X0+ rd), - gen_ext(cc, tmp_reg13 + gen_ext(cc, tmp_reg3 , 32, false) ); } @@ -2046,22 +2046,22 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ - auto label_then14 = cc.newLabel(); - auto label_merge14 = cc.newLabel(); - auto tmp_reg14 = get_reg(cc, 8, false); + auto label_then4 = cc.newLabel(); + auto label_merge4 = cc.newLabel(); + auto tmp_reg4 = get_reg(cc, 8, false); cmp(cc, load_reg_from_mem(jh, traits::X0 + rs1), load_reg_from_mem(jh, traits::X0 + rs2)); - cc.jb(label_then14); - mov(cc, tmp_reg14,0); - cc.jmp(label_merge14); - cc.bind(label_then14); - mov(cc, tmp_reg14, 1); - cc.bind(label_merge14); + cc.jb(label_then4); + mov(cc, tmp_reg4,0); + cc.jmp(label_merge4); + cc.bind(label_then4); + mov(cc, tmp_reg4, 1); + cc.bind(label_merge4); mov(cc, get_ptr_for(jh, traits::X0+ rd), - gen_ext(cc, tmp_reg14 + gen_ext(cc, tmp_reg4 , 32, false) ); } @@ -2106,7 +2106,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -2155,7 +2155,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -2205,7 +2205,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -2257,7 +2257,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -2306,7 +2306,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -2503,10 +2503,10 @@ private: gen_instr_prologue(jh); cc.comment("//behavior:"); /*generate behavior*/ - InvokeNode* call_wait_15; + InvokeNode* call_wait_5; jh.cc.comment("//call_wait"); - jh.cc.invoke(&call_wait_15, &wait, FuncSignature::build()); - setArg(call_wait_15, 0, 1); + jh.cc.invoke(&call_wait_5, &wait, FuncSignature::build()); + setArg(call_wait_5, 0, 1); auto returnValue = CONT; gen_sync(jh, POST_SYNC, 41); @@ -2547,7 +2547,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrs1 = load_reg_from_mem(jh, traits::X0 + rs1); @@ -2601,7 +2601,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd = gen_read_mem(jh, traits::CSR, csr, 4); @@ -2655,7 +2655,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd = gen_read_mem(jh, traits::CSR, csr, 4); @@ -2709,7 +2709,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd = gen_read_mem(jh, traits::CSR, csr, 4); @@ -2759,7 +2759,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd = gen_read_mem(jh, traits::CSR, csr, 4); @@ -2812,7 +2812,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd = gen_read_mem(jh, traits::CSR, csr, 4); @@ -2905,7 +2905,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto res = gen_operation(cc, smul, gen_ext(cc, @@ -2958,7 +2958,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto res = gen_operation(cc, smul, gen_ext(cc, @@ -3012,7 +3012,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto res = gen_operation(cc, sumul, gen_ext(cc, @@ -3065,7 +3065,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto res = gen_operation(cc, umul, load_reg_from_mem(jh, traits::X0 + rs1), load_reg_from_mem(jh, traits::X0 + rs2)) @@ -3117,7 +3117,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto dividend = gen_ext(cc, @@ -3206,7 +3206,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -3273,7 +3273,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -3366,7 +3366,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -3438,7 +3438,7 @@ private: ), 32, false)); } else{ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } auto returnValue = CONT; @@ -3569,7 +3569,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rs1!=0){ @@ -3697,7 +3697,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -3744,7 +3744,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(imm==0||rd>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } if(rd!=0){ mov(cc, get_ptr_for(jh, traits::X0+ rd), @@ -3794,7 +3794,7 @@ private: ), 32, true)); } else{ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } auto returnValue = CONT; @@ -3832,7 +3832,7 @@ private: gen_instr_prologue(jh); cc.comment("//behavior:"); /*generate behavior*/ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); auto returnValue = CONT; gen_sync(jh, POST_SYNC, 66); @@ -4317,7 +4317,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rs1!=0){ @@ -4365,7 +4365,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rd==0){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto offs = gen_ext(cc, @@ -4415,7 +4415,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -4546,7 +4546,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rd>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0){ @@ -4595,7 +4595,7 @@ private: /*generate behavior*/ mov(jh.cc, get_ptr_for(jh, traits::LAST_BRANCH), static_cast(NO_JUMP)); if(rs1>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto addr_mask = (uint32_t)- 2; @@ -4682,7 +4682,7 @@ private: cc.comment("//behavior:"); /*generate behavior*/ if(rs2>=static_cast(traits::RFS)){ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto offs = gen_ext(cc, @@ -4726,7 +4726,7 @@ private: gen_instr_prologue(jh); cc.comment("//behavior:"); /*generate behavior*/ - gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + gen_raise(jh, 0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); auto returnValue = CONT; gen_sync(jh, POST_SYNC, 86); @@ -4924,4 +4924,4 @@ volatile std::array dummy = { }; } } -// clang-format on +// clang-format on \ No newline at end of file diff --git a/src/vm/fp_functions.h b/src/vm/fp_functions.h index 1cf749d..2148651 100644 --- a/src/vm/fp_functions.h +++ b/src/vm/fp_functions.h @@ -49,7 +49,6 @@ uint16_t fsqrt_h(uint16_t v1, uint8_t mode); uint16_t fcmp_h(uint16_t v1, uint16_t v2, uint16_t op); uint16_t fmadd_h(uint16_t v1, uint16_t v2, uint16_t v3, uint16_t op, uint8_t mode); uint16_t fsel_h(uint16_t v1, uint16_t v2, uint16_t op); -uint16_t fsqrt_h(uint16_t v1, uint8_t mode); uint16_t fclass_h(uint16_t v1); uint16_t frsqrt7_h(uint16_t v); uint16_t frec7_h(uint16_t v, uint8_t mode); diff --git a/src/vm/llvm/fp_impl.cpp b/src/vm/llvm/fp_impl.cpp index ca7e331..ef0889f 100644 --- a/src/vm/llvm/fp_impl.cpp +++ b/src/vm/llvm/fp_impl.cpp @@ -72,32 +72,68 @@ using namespace ::llvm; void add_fp_functions_2_module(Module* mod, uint32_t flen, uint32_t xlen) { if(flen) { FDECL(fget_flags, INT_TYPE(32)); + + FDECL(fadd_h, INT_TYPE(16), INT_TYPE(16), INT_TYPE(16), INT_TYPE(8)); + FDECL(fsub_h, INT_TYPE(16), INT_TYPE(16), INT_TYPE(16), INT_TYPE(8)); + FDECL(fmul_h, INT_TYPE(16), INT_TYPE(16), INT_TYPE(16), INT_TYPE(8)); + FDECL(fdiv_h, INT_TYPE(16), INT_TYPE(16), INT_TYPE(16), INT_TYPE(8)); + FDECL(fsqrt_h, INT_TYPE(16), INT_TYPE(16), INT_TYPE(8)); + FDECL(fcmp_h, INT_TYPE(16), INT_TYPE(16), INT_TYPE(16), INT_TYPE(16)); + FDECL(fmadd_h, INT_TYPE(16), INT_TYPE(16), INT_TYPE(16), INT_TYPE(16), INT_TYPE(16), INT_TYPE(8)); + FDECL(fsel_h, INT_TYPE(16), INT_TYPE(16), INT_TYPE(16), INT_TYPE(16)); + FDECL(fclass_h, INT_TYPE(16), INT_TYPE(16)); + FDECL(unbox_h, INT_TYPE(16), INT_TYPE(32), INT_TYPE(64)); // technically the first arg is only 8 bits + + FDECL(f16toi32, INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)) + FDECL(f16toui32, INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)) + FDECL(i32tof16, INT_TYPE(16), INT_TYPE(32), INT_TYPE(8)) + FDECL(ui32tof16, INT_TYPE(16), INT_TYPE(32), INT_TYPE(8)) + FDECL(f16toi64, INT_TYPE(64), INT_TYPE(32), INT_TYPE(8)) + FDECL(f16toui64, INT_TYPE(64), INT_TYPE(32), INT_TYPE(8)) + FDECL(i64tof16, INT_TYPE(16), INT_TYPE(64), INT_TYPE(8)) + FDECL(ui64tof16, INT_TYPE(16), INT_TYPE(64), INT_TYPE(8)) + FDECL(fadd_s, INT_TYPE(32), INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)); FDECL(fsub_s, INT_TYPE(32), INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)); FDECL(fmul_s, INT_TYPE(32), INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)); FDECL(fdiv_s, INT_TYPE(32), INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)); FDECL(fsqrt_s, INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)); FDECL(fcmp_s, INT_TYPE(32), INT_TYPE(32), INT_TYPE(32), INT_TYPE(32)); - FDECL(fcvt_s, INT_TYPE(32), INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)); FDECL(fmadd_s, INT_TYPE(32), INT_TYPE(32), INT_TYPE(32), INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)); FDECL(fsel_s, INT_TYPE(32), INT_TYPE(32), INT_TYPE(32), INT_TYPE(32)); FDECL(fclass_s, INT_TYPE(32), INT_TYPE(32)); - FDECL(fcvt_32_64, INT_TYPE(64), INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)); - FDECL(fcvt_64_32, INT_TYPE(32), INT_TYPE(64), INT_TYPE(32), INT_TYPE(8)); + + FDECL(f32toi32, INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)); + FDECL(f32toui32, INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)); + FDECL(i32tof32, INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)); + FDECL(ui32tof32, INT_TYPE(32), INT_TYPE(32), INT_TYPE(8)); + FDECL(f32toi64, INT_TYPE(64), INT_TYPE(32), INT_TYPE(8)); + FDECL(f32toui64, INT_TYPE(64), INT_TYPE(32), INT_TYPE(8)); + FDECL(i64tof32, INT_TYPE(32), INT_TYPE(64), INT_TYPE(8)); + FDECL(ui64tof32, INT_TYPE(32), INT_TYPE(64), INT_TYPE(8)); if(flen > 32) { - FDECL(fconv_d2f, INT_TYPE(32), INT_TYPE(64), INT_TYPE(8)); - FDECL(fconv_f2d, INT_TYPE(64), INT_TYPE(32), INT_TYPE(8)); + FDECL(unbox_s, INT_TYPE(32), INT_TYPE(32), INT_TYPE(64)); // technically the first arg is only 8 bits + FDECL(fadd_d, INT_TYPE(64), INT_TYPE(64), INT_TYPE(64), INT_TYPE(8)); FDECL(fsub_d, INT_TYPE(64), INT_TYPE(64), INT_TYPE(64), INT_TYPE(8)); FDECL(fmul_d, INT_TYPE(64), INT_TYPE(64), INT_TYPE(64), INT_TYPE(8)); FDECL(fdiv_d, INT_TYPE(64), INT_TYPE(64), INT_TYPE(64), INT_TYPE(8)); FDECL(fsqrt_d, INT_TYPE(64), INT_TYPE(64), INT_TYPE(8)); FDECL(fcmp_d, INT_TYPE(64), INT_TYPE(64), INT_TYPE(64), INT_TYPE(32)); - FDECL(fcvt_d, INT_TYPE(64), INT_TYPE(64), INT_TYPE(32), INT_TYPE(8)); FDECL(fmadd_d, INT_TYPE(64), INT_TYPE(64), INT_TYPE(64), INT_TYPE(64), INT_TYPE(32), INT_TYPE(8)); FDECL(fsel_d, INT_TYPE(64), INT_TYPE(64), INT_TYPE(64), INT_TYPE(32)); FDECL(fclass_d, INT_TYPE(64), INT_TYPE(64)); - FDECL(unbox_s, INT_TYPE(32), INT_TYPE(64)); + + FDECL(f64tof32, INT_TYPE(32), INT_TYPE(64), INT_TYPE(8)); + FDECL(f32tof64, INT_TYPE(64), INT_TYPE(32), INT_TYPE(8)); + FDECL(f64toi64, INT_TYPE(64), INT_TYPE(64), INT_TYPE(8)); + FDECL(f64toui64, INT_TYPE(64), INT_TYPE(64), INT_TYPE(8)); + FDECL(i64tof64, INT_TYPE(64), INT_TYPE(64), INT_TYPE(8)); + FDECL(ui64tof64, INT_TYPE(64), INT_TYPE(64), INT_TYPE(8)); + FDECL(i32tof64, INT_TYPE(64), INT_TYPE(32), INT_TYPE(8)); + FDECL(ui32tof64, INT_TYPE(64), INT_TYPE(32), INT_TYPE(8)); + FDECL(f64toi32, INT_TYPE(32), INT_TYPE(64), INT_TYPE(8)); + FDECL(f64toui32, INT_TYPE(32), INT_TYPE(64), INT_TYPE(8)); } } } diff --git a/src/vm/llvm/vm_tgc5c.cpp b/src/vm/llvm/vm_tgc5c.cpp index ef76949..3253990 100644 --- a/src/vm/llvm/vm_tgc5c.cpp +++ b/src/vm/llvm/vm_tgc5c.cpp @@ -353,7 +353,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -399,7 +399,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -446,7 +446,7 @@ private: /*generate behavior*/ this->builder.CreateStore(this->gen_const(32U, static_cast(NO_JUMP)), get_reg_ptr(traits::LAST_BRANCH), false); if(rd>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto new_pc =(uint32_t)(PC+(int32_t)sext<21>(imm)); @@ -503,7 +503,7 @@ private: /*generate behavior*/ this->builder.CreateStore(this->gen_const(32U, static_cast(NO_JUMP)), get_reg_ptr(traits::LAST_BRANCH), false); if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto addr_mask =(uint32_t)- 2; @@ -584,7 +584,7 @@ private: /*generate behavior*/ this->builder.CreateStore(this->gen_const(32U, static_cast(NO_JUMP)), get_reg_ptr(traits::LAST_BRANCH), false); if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -649,7 +649,7 @@ private: /*generate behavior*/ this->builder.CreateStore(this->gen_const(32U, static_cast(NO_JUMP)), get_reg_ptr(traits::LAST_BRANCH), false); if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -714,7 +714,7 @@ private: /*generate behavior*/ this->builder.CreateStore(this->gen_const(32U, static_cast(NO_JUMP)), get_reg_ptr(traits::LAST_BRANCH), false); if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -783,7 +783,7 @@ private: /*generate behavior*/ this->builder.CreateStore(this->gen_const(32U, static_cast(NO_JUMP)), get_reg_ptr(traits::LAST_BRANCH), false); if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -852,7 +852,7 @@ private: /*generate behavior*/ this->builder.CreateStore(this->gen_const(32U, static_cast(NO_JUMP)), get_reg_ptr(traits::LAST_BRANCH), false); if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -917,7 +917,7 @@ private: /*generate behavior*/ this->builder.CreateStore(this->gen_const(32U, static_cast(NO_JUMP)), get_reg_ptr(traits::LAST_BRANCH), false); if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -981,7 +981,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address =this->gen_ext( @@ -1039,7 +1039,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address =this->gen_ext( @@ -1097,7 +1097,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address =this->gen_ext( @@ -1155,7 +1155,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address =this->gen_ext( @@ -1211,7 +1211,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address =this->gen_ext( @@ -1267,7 +1267,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto store_address =this->gen_ext( @@ -1320,7 +1320,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto store_address =this->gen_ext( @@ -1373,7 +1373,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rs2>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto store_address =this->gen_ext( @@ -1426,7 +1426,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1478,7 +1478,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1532,7 +1532,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1585,7 +1585,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1635,7 +1635,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1685,7 +1685,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1735,7 +1735,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1785,7 +1785,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1835,7 +1835,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1887,7 +1887,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1939,7 +1939,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1991,7 +1991,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -2044,7 +2044,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -2099,7 +2099,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -2152,7 +2152,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -2202,7 +2202,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -2255,7 +2255,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -2311,7 +2311,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -2361,7 +2361,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -2553,10 +2553,10 @@ private: this->gen_instr_prologue(); /*generate behavior*/ - std::vector wait_231_args{ + std::vector wait_57_args{ this->gen_ext(this->gen_const(8,1), 32) }; - this->builder.CreateCall(this->mod->getFunction("wait"), wait_231_args); + this->builder.CreateCall(this->mod->getFunction("wait"), wait_57_args); bb = BasicBlock::Create(this->mod->getContext(), "entry", this->func, this->leave_blk); auto returnValue = std::make_tuple(CONT,bb); @@ -2595,7 +2595,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrs1 =this->gen_reg_load(traits::X0+ rs1); @@ -2651,7 +2651,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd =this->gen_read_mem(traits::CSR, csr, 4); @@ -2708,7 +2708,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd =this->gen_read_mem(traits::CSR, csr, 4); @@ -2765,7 +2765,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd =this->gen_read_mem(traits::CSR, csr, 4); @@ -2816,7 +2816,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd =this->gen_read_mem(traits::CSR, csr, 4); @@ -2872,7 +2872,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd =this->gen_read_mem(traits::CSR, csr, 4); @@ -2968,7 +2968,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto res =this->builder.CreateMul( @@ -3023,7 +3023,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto res =this->builder.CreateMul( @@ -3081,7 +3081,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto res =this->builder.CreateMul( @@ -3138,7 +3138,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto res =this->builder.CreateMul( @@ -3194,7 +3194,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto dividend =this->gen_ext( @@ -3298,7 +3298,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -3371,7 +3371,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -3479,7 +3479,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rs1>=static_cast(traits::RFS)||rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ { @@ -3561,7 +3561,7 @@ private: get_reg_ptr(rd+8 + traits::X0), false); } else{ - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } bb = BasicBlock::Create(this->mod->getContext(), "entry", this->func, this->leave_blk); auto returnValue = std::make_tuple(CONT,bb); @@ -3698,7 +3698,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rs1!=0) { @@ -3825,7 +3825,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -3871,7 +3871,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(imm==0||rd>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } if(rd!=0) { this->builder.CreateStore( @@ -3924,7 +3924,7 @@ private: get_reg_ptr(2 + traits::X0), false); } else{ - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } bb = BasicBlock::Create(this->mod->getContext(), "entry", this->func, this->leave_blk); auto returnValue = std::make_tuple(CONT,bb); @@ -3960,7 +3960,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); bb = BasicBlock::Create(this->mod->getContext(), "entry", this->func, this->leave_blk); auto returnValue = std::make_tuple(CONT,bb); @@ -4459,7 +4459,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rs1!=0) { @@ -4508,7 +4508,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)||rd==0) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto offs =this->gen_ext( @@ -4562,7 +4562,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -4689,7 +4689,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rd>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -4740,7 +4740,7 @@ private: /*generate behavior*/ this->builder.CreateStore(this->gen_const(32U, static_cast(NO_JUMP)), get_reg_ptr(traits::LAST_BRANCH), false); if(rs1>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto addr_mask =(uint32_t)- 2; @@ -4826,7 +4826,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ if(rs2>=static_cast(traits::RFS)) { - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto offs =this->gen_ext( @@ -4874,7 +4874,7 @@ private: this->gen_instr_prologue(); /*generate behavior*/ - this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(0, static_cast(traits::RV_CAUSE_ILLEGAL_INSTRUCTION)); bb = BasicBlock::Create(this->mod->getContext(), "entry", this->func, this->leave_blk); auto returnValue = std::make_tuple(CONT,bb); diff --git a/src/vm/tcc/vm_tgc5c.cpp b/src/vm/tcc/vm_tgc5c.cpp index 45669de..8846647 100644 --- a/src/vm/tcc/vm_tgc5c.cpp +++ b/src/vm/tcc/vm_tgc5c.cpp @@ -348,7 +348,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -384,7 +384,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -421,7 +421,7 @@ private: this->gen_set_tval(tu, instr); tu.store(traits::LAST_BRANCH, tu.constant(static_cast(NO_JUMP),32)); if(rd>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto new_pc = (uint32_t)(PC+(int32_t)sext<21>(imm)); @@ -468,7 +468,7 @@ private: this->gen_set_tval(tu, instr); tu.store(traits::LAST_BRANCH, tu.constant(static_cast(NO_JUMP),32)); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto addr_mask = (uint32_t)- 2; @@ -526,7 +526,7 @@ private: this->gen_set_tval(tu, instr); tu.store(traits::LAST_BRANCH, tu.constant(static_cast(NO_JUMP),32)); if(rs2>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ tu.open_if(tu.icmp(ICmpInst::ICMP_EQ, @@ -576,7 +576,7 @@ private: this->gen_set_tval(tu, instr); tu.store(traits::LAST_BRANCH, tu.constant(static_cast(NO_JUMP),32)); if(rs2>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ tu.open_if(tu.icmp(ICmpInst::ICMP_NE, @@ -626,7 +626,7 @@ private: this->gen_set_tval(tu, instr); tu.store(traits::LAST_BRANCH, tu.constant(static_cast(NO_JUMP),32)); if(rs2>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ tu.open_if(tu.icmp(ICmpInst::ICMP_SLT, @@ -676,7 +676,7 @@ private: this->gen_set_tval(tu, instr); tu.store(traits::LAST_BRANCH, tu.constant(static_cast(NO_JUMP),32)); if(rs2>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ tu.open_if(tu.icmp(ICmpInst::ICMP_SGE, @@ -726,7 +726,7 @@ private: this->gen_set_tval(tu, instr); tu.store(traits::LAST_BRANCH, tu.constant(static_cast(NO_JUMP),32)); if(rs2>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ tu.open_if(tu.icmp(ICmpInst::ICMP_ULT, @@ -776,7 +776,7 @@ private: this->gen_set_tval(tu, instr); tu.store(traits::LAST_BRANCH, tu.constant(static_cast(NO_JUMP),32)); if(rs2>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ tu.open_if(tu.icmp(ICmpInst::ICMP_UGE, @@ -825,7 +825,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address = tu.assignment(tu.ext((tu.add( @@ -866,7 +866,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address = tu.assignment(tu.ext((tu.add( @@ -907,7 +907,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address = tu.assignment(tu.ext((tu.add( @@ -948,7 +948,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address = tu.assignment(tu.ext((tu.add( @@ -989,7 +989,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto load_address = tu.assignment(tu.ext((tu.add( @@ -1030,7 +1030,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rs2>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto store_address = tu.assignment(tu.ext((tu.add( @@ -1068,7 +1068,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rs2>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto store_address = tu.assignment(tu.ext((tu.add( @@ -1106,7 +1106,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rs2>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto store_address = tu.assignment(tu.ext((tu.add( @@ -1144,7 +1144,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1183,7 +1183,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1222,7 +1222,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1261,7 +1261,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1300,7 +1300,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1339,7 +1339,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1378,7 +1378,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1417,7 +1417,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1456,7 +1456,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1495,7 +1495,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1534,7 +1534,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1573,7 +1573,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1614,7 +1614,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1653,7 +1653,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1692,7 +1692,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1731,7 +1731,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1772,7 +1772,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1813,7 +1813,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -1852,7 +1852,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -2030,7 +2030,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrs1 = tu.assignment(tu.load(rs1 + traits::X0, 0),32); @@ -2072,7 +2072,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd = tu.assignment(tu.read_mem(traits::CSR, csr, 32),32); @@ -2116,7 +2116,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd = tu.assignment(tu.read_mem(traits::CSR, csr, 32),32); @@ -2160,7 +2160,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd = tu.assignment(tu.read_mem(traits::CSR, csr, 32),32); @@ -2199,7 +2199,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd = tu.assignment(tu.read_mem(traits::CSR, csr, 32),32); @@ -2242,7 +2242,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto xrd = tu.assignment(tu.read_mem(traits::CSR, csr, 32),32); @@ -2315,7 +2315,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto res = tu.assignment(tu.mul( @@ -2355,7 +2355,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto res = tu.assignment(tu.mul( @@ -2397,7 +2397,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto res = tu.assignment(tu.mul( @@ -2439,7 +2439,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto res = tu.assignment(tu.mul( @@ -2481,7 +2481,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto dividend = tu.assignment(tu.ext(tu.load(rs1 + traits::X0, 0),32,true),32); @@ -2546,7 +2546,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ tu.open_if(tu.icmp(ICmpInst::ICMP_NE, @@ -2597,7 +2597,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ tu.open_if(tu.icmp(ICmpInst::ICMP_NE, @@ -2665,7 +2665,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rs1>=static_cast(traits:: RFS)||rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ tu.open_if(tu.icmp(ICmpInst::ICMP_NE, @@ -2720,7 +2720,7 @@ private: tu.constant(imm,16))),32,false)); } else{ - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } auto returnValue = CONT; @@ -2817,7 +2817,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rs1!=0) { @@ -2913,7 +2913,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -2949,7 +2949,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(imm==0||rd>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } if(rd!=0) { tu.store(rd + traits::X0, tu.constant((uint32_t)((int32_t)sext<18>(imm)),32)); @@ -2987,7 +2987,7 @@ private: tu.constant((int16_t)sext<10>(nzimm),16))),32,false)); } else{ - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } auto returnValue = CONT; @@ -3015,7 +3015,7 @@ private: tu("(*cycle)++;"); tu.open_scope(); this->gen_set_tval(tu, instr); - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); auto returnValue = CONT; tu.close_scope(); @@ -3376,7 +3376,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rs1!=0) { @@ -3414,7 +3414,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)||rd==0) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto offs = tu.assignment(tu.ext((tu.add( @@ -3451,7 +3451,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -3551,7 +3551,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rd>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ if(rd!=0) { @@ -3589,7 +3589,7 @@ private: this->gen_set_tval(tu, instr); tu.store(traits::LAST_BRANCH, tu.constant(static_cast(NO_JUMP),32)); if(rs1>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto addr_mask = (uint32_t)- 2; @@ -3656,7 +3656,7 @@ private: tu.open_scope(); this->gen_set_tval(tu, instr); if(rs2>=static_cast(traits:: RFS)) { - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); } else{ auto offs = tu.assignment(tu.ext((tu.add( @@ -3689,7 +3689,7 @@ private: tu("(*cycle)++;"); tu.open_scope(); this->gen_set_tval(tu, instr); - this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); + this->gen_raise_trap(tu, 0, static_cast(traits:: RV_CAUSE_ILLEGAL_INSTRUCTION)); auto returnValue = CONT; tu.close_scope(); @@ -3831,4 +3831,4 @@ volatile std::array dummy = { }; } } -// clang-format on +// clang-format on \ No newline at end of file