提交 91d4493c 编写于 作者: J JinYue

PreDecode: fix cross-line false hit condition

上级 a15116bd
......@@ -208,7 +208,7 @@ class PreDecode(implicit p: Parameters) extends XSModule with HasPdConst{
val (hasFalseHit, hasJump) = (ParallelOR(falseHit), ParallelOR(jumpOH))
val endRange = ((Fill(PredictWidth, 1.U(1.W)) >> (~getBasicBlockIdx(realEndPC, pcStart))) | (Fill(PredictWidth, oversize)))
val takeRange = Fill(PredictWidth, !ParallelOR(takens)) | Fill(PredictWidth, 1.U(1.W)) >> (~PriorityEncoder(takens))
val fixCross = ((pcStart + (FetchWidth * 4).U) > nextLinePC) && !isDoubleLine
val fixCross = ((pcStart + (FetchWidth * 4).U) > nextLinePC || (pcStart + (FetchWidth * 4).U) === nextLinePC) && !isDoubleLine
val boundPC = Mux(fixCross, nextLinePC - 2.U ,pcStart + (FetchWidth * 4).U)
instRange := VecInit((0 until PredictWidth).map(i => endRange(i) && takeRange(i)))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册