未验证 提交 76e67900 编写于 作者: L ljw 提交者: GitHub

Merge pull request #483 from RISCVERS/fix-div-redirect

div: don't accept new request when it's cancelled
...@@ -41,7 +41,7 @@ class Radix2Divider(len: Int) extends AbstractDivider(len) { ...@@ -41,7 +41,7 @@ class Radix2Divider(len: Int) extends AbstractDivider(len) {
val uopReg = RegEnable(uop, newReq) val uopReg = RegEnable(uop, newReq)
val cnt = Counter(len) val cnt = Counter(len)
when (newReq) { when (newReq && !io.in.bits.uop.roqIdx.needFlush(io.redirectIn)) {
state := s_log2 state := s_log2
} .elsewhen (state === s_log2) { } .elsewhen (state === s_log2) {
// `canSkipShift` is calculated as following: // `canSkipShift` is calculated as following:
......
...@@ -37,7 +37,9 @@ class SRT4Divider(len: Int) extends AbstractDivider(len) { ...@@ -37,7 +37,9 @@ class SRT4Divider(len: Int) extends AbstractDivider(len) {
switch(state){ switch(state){
is(s_idle){ is(s_idle){
when(io.in.fire()){ state := Mux(divZero, s_finish, s_lzd) } when (io.in.fire() && !io.in.bits.uop.roqIdx.needFlush(io.redirectIn)) {
state := Mux(divZero, s_finish, s_lzd)
}
} }
is(s_lzd){ // leading zero detection is(s_lzd){ // leading zero detection
state := s_normlize state := s_normlize
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册