Fix BranchPlugin.jumpInterface priority to avoid conflicts with other instructions on DYNAMIC_TARGET missprediction
This commit is contained in:
parent
b3215e8beb
commit
2dac7dae32
|
@ -139,7 +139,10 @@ class BranchPlugin(earlyBranch : Boolean,
|
||||||
}
|
}
|
||||||
|
|
||||||
val pcManagerService = pipeline.service(classOf[JumpService])
|
val pcManagerService = pipeline.service(classOf[JumpService])
|
||||||
jumpInterface = pcManagerService.createJumpInterface(branchStage)
|
|
||||||
|
//Priority -1, as DYNAMIC_TARGET misspredicted on non branch instruction should lose against other instructions
|
||||||
|
//legitim branches, as MRET for instance
|
||||||
|
jumpInterface = pcManagerService.createJumpInterface(branchStage, priority = -10)
|
||||||
|
|
||||||
|
|
||||||
if (catchAddressMisalignedForReal) {
|
if (catchAddressMisalignedForReal) {
|
||||||
|
|
|
@ -716,7 +716,7 @@ class TestIndividualFeatures extends MultithreadedFunSuite {
|
||||||
|
|
||||||
//Test RTL
|
//Test RTL
|
||||||
val debug = true
|
val debug = true
|
||||||
val stdCmd = (s"make run REGRESSION_PATH=../../src/test/cpp/regression VEXRISCV_FILE=VexRiscv.v WITH_USER_IO=no REDO=10 TRACE=${if(debug) "yes" else "no"} TRACE_START=1000000000000l STOP_ON_ERROR=no FLOW_INFO=no STOP_ON_ERROR=no DHRYSTONE=yes COREMARK=${coremarkRegression} THREAD_COUNT=1 ") + s" SEED=${testSeed} "
|
val stdCmd = (s"make run REGRESSION_PATH=../../src/test/cpp/regression VEXRISCV_FILE=VexRiscv.v WITH_USER_IO=no REDO=10 TRACE=${if(debug) "yes" else "no"} TRACE_START=1000000000000l FLOW_INFO=no STOP_ON_ERROR=no DHRYSTONE=yes COREMARK=${coremarkRegression} THREAD_COUNT=1 ") + s" SEED=${testSeed} "
|
||||||
val testCmd = stdCmd + (positionsToApply).map(_.testParam).mkString(" ")
|
val testCmd = stdCmd + (positionsToApply).map(_.testParam).mkString(" ")
|
||||||
println(testCmd)
|
println(testCmd)
|
||||||
val str = doCmd(testCmd)
|
val str = doCmd(testCmd)
|
||||||
|
|
Loading…
Reference in New Issue