summaryrefslogtreecommitdiff
path: root/mips/main.sail
diff options
context:
space:
mode:
authorRobert Norton2018-05-17 17:42:20 +0100
committerRobert Norton2018-05-17 17:42:20 +0100
commitb08f0e8538081d8efbbbd6431e739a0b83307678 (patch)
tree8bee68057ce9b570fcd74b89bf224d229f21572d /mips/main.sail
parent2c5bbd6f7fbfdf32bafab50e36a1bebcd7cd8dab (diff)
build fixes: add back tag effect skips required for mips. Move UART check in to correct place in main.sail. Remove add_atom and sub_atom from prelude as we get them from arith.sail.
Diffstat (limited to 'mips/main.sail')
-rw-r--r--mips/main.sail11
1 files changed, 7 insertions, 4 deletions
diff --git a/mips/main.sail b/mips/main.sail
index 45ced6d7..c444d2dc 100644
--- a/mips/main.sail
+++ b/mips/main.sail
@@ -9,6 +9,13 @@ function fetch_and_execute () = {
nextPC = if inBranchDelay then delayedPC else PC + 4;
cp2_next_pc();
instCount = instCount + 1;
+ if UART_WRITTEN then {
+ putchar(unsigned(UART_WDATA));
+ UART_WRITTEN = 0b0;
+ };
+ /* the following skips are required on mips to fake the tag effects otherwise type checker complains */
+ skip_rmemt();
+ skip_wmvt();
print_bits("PC: ", PC);
try {
let pc_pa = TranslatePC(PC);
@@ -30,10 +37,6 @@ function fetch_and_execute () = {
just continue from nextPC, which should have been set to the appropriate
exception vector (along with clearing branchPending etc.) . */
};
- if UART_WRITTEN then {
- putchar(unsigned(UART_WDATA));
- UART_WRITTEN = 0b0;
- }
}
val elf_entry = {