From: Martin Perner Date: Fri, 17 Dec 2010 23:48:39 +0000 (+0100) Subject: [sim] corrected address calc for branch, again X-Git-Tag: bootrom_v1~66 X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=calu.git;a=commitdiff_plain;h=afd6dc0769ab252ff1932b5b92fee4f8b551a41e [sim] corrected address calc for branch, again --- diff --git a/3c_disasm/instr/branch.cpp b/3c_disasm/instr/branch.cpp index b797762..f1f9138 100644 --- a/3c_disasm/instr/branch.cpp +++ b/3c_disasm/instr/branch.cpp @@ -78,7 +78,7 @@ void Cbranch::evalInstr() dynamic_bitset<> immb = argbits; immb.resize(16); - this->m_imm = this->generate16ImmSign(immb.to_ulong()); + this->m_imm = this->generate16ImmSign(immb.to_ulong())*4; } @@ -96,7 +96,7 @@ void Cbranch::execInstr() } /* fall through */ case 0: - this->m_cpu->setNextPC(pc+(this->m_imm*4)); + this->m_cpu->setNextPC(pc+(this->m_imm)); break; case 2: case 3: