summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2016-04-19cheri: be sure to use unsigned comparison in CUnsealRobert Norton
2016-04-19use unsigned for register offset and signed for immediate offset when ↵Robert Norton
computing capability relative address. This is a little counter-intuitive but seems to be what is written in the spec. and passes more tests. Will consult with mroe to check logic here and possibly extract into a function for clarity.
2016-04-19force link to prevent make from failingShaked Flur
2016-04-18cheri: use signed() rather than casting to int as advised by kathy. This has ↵Robert Norton
the advantage of actually doing what I want.
2016-04-18Fix bug where constraints were not getting simplified enough to checkKathy Gray
2016-04-18cheri: explicitly specify vector for comparison in cincoffset to work around ↵Robert Norton
unexpected sail behaviour with implicit cast form literal 0.
2016-04-18cheri: swap use of MEMr_tagged and MEMr_tagged_reserved in CLC which were ↵Robert Norton
swapped.
2016-04-18cheri: fix encoding of CSCC which was short one bit (kathy investigating why ↵Robert Norton
this didn't cause an error).
2016-04-18cheri: add support for ll/sc of data via capability instructions.Robert Norton
2016-04-18More fixes to interp with regards to warnings and debugging infoKathy Gray
2016-04-18cheri: fix inverted tag check for cptrcmp.Robert Norton
2016-04-15add cheri test for tagged memory.Robert Norton
2016-04-15signed comparison between nats is not sensible. cast to bit vector instead.Robert Norton
2016-04-15cseal: perform arithmetic using nats to avoid signed comparison. Should ↵Robert Norton
maybe do this in readCapReg
2016-04-15cheri: explicitly zero extend regno when writing to cap cause because ↵Robert Norton
implicit cast does not work as expected (appends zeros at bottom).
2016-04-14cheri: implement ll/sc of capabilities using placeholder functions to ↵Robert Norton
emulate atomic tag access.
2016-04-14cheri: use correct destination register for loads via capability.Robert Norton
2016-04-14add cheri make target analagous to mipsRobert Norton
2016-04-13Copy run_with_elf to make run_with_elf_cheri and revert run_with_elf to mips ↵Robert Norton
version. Temporary 'solution' to building mips and cheri builds until proper factorising can take place.
2016-04-13add tagr and tagw in mips_extras (will need to change these to make tag ↵Robert Norton
writes atomic)
2016-04-13Further CHERI implementation. Rename cursor to offset in line with ISA. ↵Robert Norton
Implement reserved cap. perms (bits 8 and 9) because a test uses them even though they have no defined meaning (historically they did I think).
2016-04-13Put in a cast into sltiKathy Gray
Note to self: consider removing this cast after fixing overload resolution
2016-04-13cheri supporting run with elfKathy Gray