summaryrefslogtreecommitdiff
path: root/rtl/core/decode/mux.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2022-12-06 15:27:42 -0600
committerAlejandro Soto <alejandro@34project.org>2022-12-06 15:27:42 -0600
commitb1761b8eac5777c09723bbc8cd31cc05d8ec35ae (patch)
treea7a50591a1b5f9d7e26a7f6797a97d9ac213879a /rtl/core/decode/mux.sv
parent064b72ae4eb22336438288a9664a37c0dd07f4bc (diff)
Implement breakpoints
Diffstat (limited to '')
-rw-r--r--rtl/core/decode/mux.sv11
1 files changed, 11 insertions, 0 deletions
diff --git a/rtl/core/decode/mux.sv b/rtl/core/decode/mux.sv
index 3f613a4..f05b711 100644
--- a/rtl/core/decode/mux.sv
+++ b/rtl/core/decode/mux.sv
@@ -57,6 +57,7 @@ module core_decode_mux
mul,
psr,
coproc,
+ bkpt,
psr_saved,
psr_write,
psr_wr_flags,
@@ -71,6 +72,7 @@ module core_decode_mux
always_comb begin
mul = 0;
ldst = 0;
+ bkpt = 0;
branch = 0;
coproc = 0;
execute = 1;
@@ -230,6 +232,14 @@ module core_decode_mux
writeback = 1;
end
+`ifdef VERILATOR
+ // No es parte de ARM del todo, es un hack para soportar gdb
+ `INSN_GDB_SWBREAK: begin
+ bkpt = 1;
+ dec_data.uses_rn = 0;
+ end
+`endif
+
default:
undefined = 1;
endcase
@@ -252,6 +262,7 @@ module core_decode_mux
mul = 1'bx;
psr = 1'bx;
+ bkpt = 1'bx;
ldst = 1'bx;
branch = 1'bx;
coproc = 1'bx;