提交 1176b4b4 编写于 作者: Z zoujr

Predecode: Fixed the bug that Predecode did not compare jal offset when predicting taken

上级 2f30d658
......@@ -185,9 +185,9 @@ class PreDecode(implicit p: Parameters) extends XSModule with HasPdConst{
//An not-CFI instruction is predicted taken
val notCFIFault = (validStart(i) && i.U === bbOffset && io.out.pd(i).notCFI && bbTaken)
//A jal instruction is predicted not taken
val jalFault = (validStart(i) && !bbTaken && io.out.pd(i).isJal)
val jalFault = (validStart(i) && !bbTaken && io.out.pd(i).isJal) || (validStart(i) && bbTaken && i.U < bbOffset && io.out.pd(i).isJal)
//A ret instruction is predicted not taken
val retFault = (validStart(i) && !bbTaken && io.out.pd(i).isRet)
val retFault = (validStart(i) && !bbTaken && io.out.pd(i).isRet) || (validStart(i) && bbTaken && i.U < bbOffset && io.out.pd(i).isRet)
//An invalid instruction is predicted taken
val invalidInsFault = (!validStart(i) && i.U === bbOffset && bbTaken)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册