aboutsummaryrefslogtreecommitdiffstats
path: root/picorv32.v
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2016-04-10 17:15:17 +0200
committerClifford Wolf <clifford@clifford.at>2016-04-10 17:15:17 +0200
commit2cab981862b0ff4b362363de865151955ebedf01 (patch)
tree046e33c98c2a45a59c9a7f6b234a0980c74b3f6f /picorv32.v
parent094783dcf892d99a7d845c88be744768ac1133eb (diff)
downloadpicorv32-2cab981862b0ff4b362363de865151955ebedf01.tar.gz
picorv32-2cab981862b0ff4b362363de865151955ebedf01.zip
Fixed signed division by zero handling
Diffstat (limited to 'picorv32.v')
-rw-r--r--picorv32.v2
1 files changed, 1 insertions, 1 deletions
diff --git a/picorv32.v b/picorv32.v
index d163754..229cd08 100644
--- a/picorv32.v
+++ b/picorv32.v
@@ -1638,7 +1638,7 @@ module picorv32_pcpi_div (
running <= 1;
dividend <= (instr_div || instr_rem) && pcpi_rs1[31] ? -pcpi_rs1 : pcpi_rs1;
divisor <= ((instr_div || instr_rem) && pcpi_rs2[31] ? -pcpi_rs2 : pcpi_rs2) << 31;
- outsign <= (instr_div && (pcpi_rs1[31] != pcpi_rs2[31])) || (instr_rem && pcpi_rs1[31]);
+ outsign <= (instr_div && (pcpi_rs1[31] != pcpi_rs2[31]) && |pcpi_rs2) || (instr_rem && pcpi_rs1[31]);
quotient <= 0;
quotient_msk <= 1 << 31;
end else