fix generation of non-exception code
This commit is contained in:
parent
1c90fe765d
commit
5d481eb79d
|
@ -303,9 +303,8 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co
|
||||||
case arch::traits<ARCH>::opcode_e::${instr.name}: {
|
case arch::traits<ARCH>::opcode_e::${instr.name}: {
|
||||||
<%instr.fields.eachLine{%>${it}
|
<%instr.fields.eachLine{%>${it}
|
||||||
<%}%>if(this->disass_enabled){
|
<%}%>if(this->disass_enabled){
|
||||||
/* generate console output when executing the command */
|
/* generate console output when executing the command */<%instr.disass.eachLine{%>
|
||||||
<%instr.disass.eachLine{%>${it}
|
${it}<%}%>
|
||||||
<%}%>
|
|
||||||
}
|
}
|
||||||
// used registers<%instr.usedVariables.each{ k,v->
|
// used registers<%instr.usedVariables.each{ k,v->
|
||||||
if(v.isArray) {%>
|
if(v.isArray) {%>
|
||||||
|
@ -313,11 +312,8 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co
|
||||||
auto* ${k} = reinterpret_cast<uint${nativeTypeSize(v.type.size)}_t*>(this->regs_base_ptr+arch::traits<ARCH>::reg_byte_offsets[arch::traits<ARCH>::${k}]);
|
auto* ${k} = reinterpret_cast<uint${nativeTypeSize(v.type.size)}_t*>(this->regs_base_ptr+arch::traits<ARCH>::reg_byte_offsets[arch::traits<ARCH>::${k}]);
|
||||||
<%}}%>// calculate next pc value
|
<%}}%>// calculate next pc value
|
||||||
*NEXT_PC = *PC + ${instr.length/8};
|
*NEXT_PC = *PC + ${instr.length/8};
|
||||||
// execute instruction
|
// execute instruction<%instr.behavior.eachLine{%>
|
||||||
try {
|
${it}<%}%>
|
||||||
<%instr.behavior.eachLine{%>${it}
|
|
||||||
<%}%>
|
|
||||||
} catch(...){}
|
|
||||||
TRAP_${instr.name}:break;
|
TRAP_${instr.name}:break;
|
||||||
}// @suppress("No break at end of case")<%}%>
|
}// @suppress("No break at end of case")<%}%>
|
||||||
default: {
|
default: {
|
||||||
|
|
Loading…
Reference in New Issue