summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-05-13do something a bit more interesting with WAIT.Robert Norton
2016-05-13fixes to make counter interrupt work: don't attempt to read register fields ↵Robert Norton
during instruction fetch as this is apparently broken, writing to fields also a bit dodgy. Finally only raise exception if exl and erl are not set.
2016-05-13don't write 33-bit value to hwrena (suprised that this type checked).Robert Norton
2016-05-12allow writing hwrena 29 (UserLocal)Robert Norton
2016-05-12Implement count/compare registers for timer interrupts and rdhwr instruction.Robert Norton
2016-05-12rename ephemeral/non_ephemeral to global/local in accordance with current usage.Robert Norton
2016-05-12update/add some commentsRobert Norton
2016-05-12remove redundant wrapper function 'TranslateOrExit' and rename uses.Robert Norton
2016-05-12Enforce kernel only access to kernel address space. Doesn't really make any ↵Robert Norton
difference as without TLB we cannot run any non-kernel mode code anyway.
2016-05-11Fix XXX missing register accessible check in ClearRegs, also only do ↵Robert Norton
CP2Usable check if for cap. regsets.
2016-05-10Initialise CP0Status BEV bit.Robert Norton
2016-05-10Clear LLbit on ERET regardless of ERL value.Robert Norton
2016-05-10Implement mfc0/mtc0 ErrorEPC.Robert Norton
2016-05-10calculate signed modulus using quot as ocaml and mips disagree about what ↵Robert Norton
the result should be (specifically for x mod y, x<0 & y<0).
2016-05-09explicitly give result value for slti to workaround probable sail bug ↵Robert Norton
producing '?'
2016-05-09fix mips build by copying across run_with_elf_cheri.ml and removing cheri parts.Robert Norton
2016-05-09work around problem with <_s using signedRobert Norton
2016-05-09Reverse the list of events to respect their orderKathy Gray
2016-05-09commit test which fails due to not writing C31.offset in TranslateAddress.Robert Norton
2016-05-09Add more debugging information for vector concatenationKathy Gray
2016-05-06rewrite fde_loop to make it easier to understand and fix some tests. still ↵Robert Norton
requires some clean up (currently one huge function).
2016-05-05Factor out get_opcodeRobert Norton
2016-05-04Correct register field/slice reading for decreasing reads for ↵Kathy Gray
decode/translate_address/exhaustive. (Was previously correct for full register reads)
2016-05-04fix incorrect exception code used on clc alignment check.Robert Norton
2016-05-04check for PC alignment on instruction fetch.Robert Norton
2016-05-03List registers required to handle exception during instruction fetch. ↵Robert Norton
Attempt to get correct behaviour wrt nextpC on instruction fetch exception (prob. still wrong).
2016-05-03actually read next_pc twice when handling a translate_address exceptionKathy Gray
2016-05-03write all or part of fields out of translate_address (instead of just all)Kathy Gray
fix bug in interp_to_value_helper
2016-05-03cheri: check value of co-processor enable bit before all cheri instructions.Robert Norton
2016-05-03fix cheri and mips sail following change to type of TranslateAddress -- can ↵Robert Norton
now write registers hence call SignalException instead of returning option<err> .
2016-05-03Change decode and translate_address to support writing register events ↵Kathy Gray
(although decode isn't pushed through yet). Note: this will break all builds
2016-05-03immediate offset of load/store via capability is scaled by word size (ISA ↵Robert Norton
change).
2016-04-29implement cgetpccsetoffset (new instruction)Robert Norton
2016-04-29new encoding for cgetpcc (ISA change).Robert Norton
2016-04-29implement 'big immediates' for CSC and CLC (ISA change).Robert Norton
2016-04-29use the correct exception vector for ccall/creturn.Robert Norton
2016-04-28implement (hopefully) correct exception behaviour wrt PCC/EPCC. Required ↵Robert Norton
shuffling function names and adding a hook in ERET.
2016-04-27mips: fix error caused by TranslateAddress having wrong name.Robert Norton
2016-04-27slightly simplify set_next_instruction_address -- no need to read convert ↵Robert Norton
then reconvert delayedPC
2016-04-27expand supported patterns for most_significantKathy Gray
2016-04-27Make run_with_elf compile againKathy Gray
2016-04-27cheri: add translation and bounds checking of PC via PCC. Slightly clunky ↵Robert Norton
implementation for now and exceptions not properly handled.
2016-04-26Add more cases for translate_address to support enumsKathy Gray
2016-04-26print error case on translate addressKathy Gray
2016-04-25make pretty printer keep up with parser changesKathy Gray
2016-04-25Make interpreter able to read registers during translate address and decode.Kathy Gray
This is not yet connected to any model and not yet tested. Also, reduce the number of parentheses needed by the parser. Namely, register declarations should no longer need parens around the types and let expressions should need fewer instances of parens around the expression (i.e. let a = exp ).
2016-04-22Add address calculation wrapper to constrain and translate standard mips ↵Robert Norton
loads/stores via c0 under cheri. Length checks for unaligned loads/stores are not correct and there seems to be no tests...
2016-04-21Introduce wrapper function around MEMw* so that we can clear tags on ↵Robert Norton
non-capability writes on cheri.
2016-04-19cheri: zero all tags when loading memory from elf so that we don't get ↵Robert Norton
undefined unless we actually access memory which is uninitialised.
2016-04-19Make value treatment on memory write calls uniform for function call vs ↵Kathy Gray
assignment expression