summaryrefslogtreecommitdiff
path: root/cheri
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-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-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-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-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-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-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-18cheri: fix inverted tag check for cptrcmp.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-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-03-09cheri sail: introduce functions for casting from cap. register to cap. ↵Robert Norton
struct and use cap structs for easier syntax to ensure atomic writes of cap regs.
2016-03-08add beginnings of cheri sail for kathy to do some debugging.Robert Norton