summaryrefslogtreecommitdiff
path: root/mips
AgeCommit message (Collapse)Author
2016-05-04check for PC alignment on instruction fetch.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-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-27cheri: add translation and bounds checking of PC via PCC. Slightly clunky ↵Robert Norton
implementation for now and exceptions not properly handled.
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-13add tagr and tagw in mips_extras (will need to change these to make tag ↵Robert Norton
writes atomic)
2016-04-13Put in a cast into sltiKathy Gray
Note to self: consider removing this cast after fixing overload resolution
2016-03-07Split mips.sail into three file and make use of the new -o option in ↵Robert Norton
preparation for adding cheri support in separate files.
2016-02-23Several fixesKathy Gray
Improve printing for asl to sail readability; Add -o option for selecting the name of file generation; Add additional initial check module for turning generated ast nodes into ready-to-type-check ast nodes
2016-02-11mips.sail: add cast to bit to work around type error recently introduced by ↵Robert Norton
overloading of '^^'
2016-02-10mips.sail: make unimplemented/non-existent throw a reserved instruction ↵Robert Norton
exception as per ISA.
2016-02-10mips.sail: add mfc0 support for some cp0 registers even though they aren't ↵Robert Norton
properly implemented as this allows tests to fail gracefully rather than crashing.
2016-02-10mips.sail: use exit whenever SignalException is called.Robert Norton
2016-02-04Cast to int in DIV instructions to avoid weird undefined results from vector ↵Robert Norton
quot and mod. mod still not quite doing what we want in signed case.
2016-02-04mips.sail: don't set HI and LO to undefined on MUL but just leave them as ↵Robert Norton
they were, allowing us to pass another test.
2016-02-03mips: finish implementing address translation on instruction fetch and ↵Robert Norton
remove temporary hack in TranslateAddr.
2016-02-03mips: add support for LLAddr, a debug register used for ll/sc. Also add ↵Robert Norton
missing psuedo-registers in run_with_elf.
2016-02-03mips_extras.lem: fix typo in spelling of MEM_sync.Robert Norton
2016-02-02mips.sail: workaround for sail bugRobert Norton
2016-02-02mips.sail: add an 'inBranchDelay' register so that SignalException can set ↵Robert Norton
correct state on exception. branchPending does not work because it is cleared before executing the branch delay.
2016-02-02mips.sail: TranslateAddress hack maps all xkphys addresses to 0x9... regionRobert Norton
2016-02-01mips.sail: fix mfc0 of config register.Robert Norton
2016-02-01mips.sail: fix decode of trap instructions.Robert Norton
2016-02-01mips.sail: workaround oddness in comparison in MOVN and MOVZ. sail bug?Robert Norton
2016-02-01mips.sail: add support for BadVaddr CP0 register.Robert Norton
2016-02-01mips.sail: fix decoding of BEQL instruction.Robert Norton
2016-02-01mips.sail: fix compilation error in mfc0 causeRobert Norton
2016-01-29mips.sail: further filling out CP0 behaviour getting exceptions to sort of ↵Robert Norton
work (NB hack in TranslateAddress until interpreter translates instuction fetches)
2016-01-29mips.sail: it turns out that all sail comparisons are signed contrary to ↵Robert Norton
manual so emulate unsigned comparisons by prepending a zero bit, as in mips spec.
2016-01-28Add test for sltu. Fixed decode function which was returning wrong ast node ↵Robert Norton
but test still does not pass, apparently because sail is doing signed comparison for <
2016-01-28mips.sail: start to fill out TranslateAddress. Change type so that it can be ↵Robert Norton
used by ml to translate fetch address.
2016-01-28mips.sail: fix infamous lwr and ldr (now pass tests).Robert Norton
2016-01-28mips.sail: fix back-to-front operands of DSLLV.Robert Norton
2016-01-28mips.sail: fix incorrect decode of DSLLVRobert Norton
2016-01-28mips.sail: split store cases by word width as sail needs to know which bit ↵Robert Norton
of word to store (probably a bug that it does not complain at runtime).
2016-01-27mips.sail: branches are relative to delay slot PC, not branch! Support ↵Robert Norton
config registers in mfc0.
2016-01-27mips.sail: produce undefined result for division by zero instead of crashing.Robert Norton
2016-01-27actually commit the new mips fileKathy Gray
2016-01-27mips.sail: further support for CP0 registers needed to run tests.Robert Norton
2016-01-26mips.sail: beginning of mfc0 implementation.Robert Norton
2016-01-26mips.sail: fix bugs in DSRL32 and DSRLVRobert Norton
2016-01-26mips.sail: work around sail bug in equality comparing bit vector to integerRobert Norton
2016-01-26mips.sail: 32-bit load linked should sign extend result.Robert Norton
2016-01-26mips: fix encoding of DSRAV.Robert Norton
2016-01-25mips.sail: modify overflow check to do exactly what is described in the ↵Robert Norton
spec. as the overflow flag provided by +_s builtin doesn't seem to do what we want.
2016-01-22mips: revert accidental removal of overflow check from daddi. It is broken ↵Robert Norton
but this is not the fix...
2016-01-22mips: fix PC update logic so branches might work.Robert Norton