diff options
Diffstat (limited to 'cheri')
1601 files changed, 1 insertions, 10799 deletions
diff --git a/cheri/.gitignore b/cheri/.gitignore deleted file mode 100644 index f7f98624..00000000 --- a/cheri/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -cheri.lem -cheri_types.lem -cheriScript.sml -cheri_typesScript.sml -mips_extrasScript.sml
\ No newline at end of file diff --git a/cheri/Holmakefile b/cheri/Holmakefile deleted file mode 100644 index d64fc3fd..00000000 --- a/cheri/Holmakefile +++ /dev/null @@ -1,11 +0,0 @@ -LEMDIR=../../lem/hol-lib - -INCLUDES = $(LEMDIR) ../lib/hol - -all: cheriTheory.uo -.PHONY: all - -ifdef POLY -BASE_HEAP = ../lib/hol/sail-heap - -endif diff --git a/cheri/LOOKING_FOR_SOMETHING.txt b/cheri/LOOKING_FOR_SOMETHING.txt new file mode 100644 index 00000000..7cd539a3 --- /dev/null +++ b/cheri/LOOKING_FOR_SOMETHING.txt @@ -0,0 +1 @@ +The cheri spec. now lives at https://github.com/CTSRD-CHERI/sail-cheri-mips . diff --git a/cheri/Makefile b/cheri/Makefile deleted file mode 100644 index 3d02bfad..00000000 --- a/cheri/Makefile +++ /dev/null @@ -1,137 +0,0 @@ -THIS_MAKEFILE := $(realpath $(lastword $(MAKEFILE_LIST))) -SAIL_DIR:=$(realpath $(dir $(THIS_MAKEFILE))..) -export SAIL_DIR -SAIL_LIB_DIR:=$(SAIL_DIR)/lib -MIPS_SAIL_DIR:=$(SAIL_DIR)/mips -CHERI_SAIL_DIR:=$(SAIL_DIR)/cheri -SAIL:=$(SAIL_DIR)/sail -SAIL_LIB_HEADERS:= - -MIPS_PRE:=$(MIPS_SAIL_DIR)/prelude.sail $(MIPS_SAIL_DIR)/mips_prelude.sail -MIPS_TLB:=$(MIPS_SAIL_DIR)/mips_tlb.sail -MIPS_TLB_STUB:=$(MIPS_SAIL_DIR)/mips_tlb_stub.sail -MIPS_INSTS:=$(MIPS_SAIL_DIR)/mips_insts.sail -MIPS_EPILOGUE:=$(MIPS_SAIL_DIR)/mips_ri.sail $(MIPS_SAIL_DIR)/mips_epilogue.sail -CHERI_PRE:=$(CHERI_SAIL_DIR)/cheri_types.sail $(CHERI_SAIL_DIR)/cheri_prelude_256.sail $(CHERI_SAIL_DIR)/cheri_prelude_common.sail -CHERI128_PRE:=$(CHERI_SAIL_DIR)/cheri_types.sail $(CHERI_SAIL_DIR)/cheri_prelude_128.sail $(CHERI_SAIL_DIR)/cheri_prelude_common.sail -CHERI_INSTS:=$(CHERI_SAIL_DIR)/cheri_insts.sail - -CHERI_SAILS:=$(SAIL_LIB_HEADERS) $(MIPS_PRE) $(MIPS_TLB) $(CHERI_PRE) $(MIPS_INSTS) $(CHERI_INSTS) $(MIPS_EPILOGUE) -CHERI_MONO_SAILS:=$(SAIL_LIB_HEADERS) $(MIPS_PRE) $(SAIL_LIB_DIR)/mono_rewrites.sail $(MIPS_TLB) $(CHERI_PRE) $(MIPS_INSTS) $(CHERI_INSTS) $(MIPS_EPILOGUE) -CHERI_NO_TLB_SAILS:=$(SAIL_LIB_HEADERS) $(MIPS_PRE) $(MIPS_TLB_STUB) $(CHERI_PRE) $(MIPS_INSTS) $(CHERI_INSTS) $(MIPS_EPILOGUE) -CHERI128_SAILS:=$(SAIL_LIB_HEADERS) $(MIPS_PRE) $(MIPS_TLB) $(CHERI128_PRE) $(MIPS_INSTS) $(CHERI_INSTS) $(MIPS_EPILOGUE) -CHERI128_NO_TLB_SAILS:=$(SAIL_LIB_HEADERS) $(MIPS_PRE) $(MIPS_TLB_STUB) $(CHERI128_PRE) $(MIPS_INSTS) $(CHERI_INSTS) $(MIPS_EPILOGUE) -CHERI_MAIN:=$(MIPS_SAIL_DIR)/main.sail - -cheri: $(CHERI_SAILS) $(CHERI_MAIN) - $(SAIL) -ocaml -o $@ $^ - -cheri_coverage: $(CHERI_SAILS) $(CHERI_MAIN) - $(SAIL) -ocaml-coverage -ocaml -o $@ $^ - -cheri_trace: $(CHERI_SAILS) $(CHERI_MAIN) - $(SAIL) -ocaml_trace -o $@ $^ - -coverage_report: bisect*.out - bisect-ppx-report -I _sbuild/_build -html $@ $^ - -cheri.c: $(CHERI_SAILS) $(CHERI_MAIN) - $(SAIL) -memo_z3 -O -c $^ 1> $@ - -C_OPT=-O2 -GCOV_FLAGS= -cheri_c: cheri.c ../lib/sail.h Makefile - gcc $(C_OPT) $(GCOV_FLAGS) $< ../lib/*.c -lgmp -lz -I ../lib/ -o $@ - -# Note that for coverage purposes O1 appears optimal. O0 means lots of obviously dead code but O2 risks reducing granularity too much. -cheri_c_gcov: C_OPT=-O1 -cheri_c_gcov: GCOV_FLAGS=-fprofile-arcs -ftest-coverage -cheri_c_gcov: cheri_c - -gcovr: - gcovr -r . --html --html-detail -o index.html - -latex_128: $(MIPS_SAIL_DIR)/prelude.sail $(CHERI_SAIL_DIR)/cheri_types.sail $(CHERI_SAIL_DIR)/cheri_prelude_128.sail - rm -rf sail_latexcc - $(SAIL) -latex -latex_prefix sailcc -o sail_latexcc $^ - -latex_256: $(CHERI_SAILS) - rm -rf sail_latex - $(SAIL) -latex $^ - -latex: latex_128 latex_256 - -# to install latex in the right place - specific to PS checkouts -CHERI_ARCH_PATH=/home/pes20/repos/ctsrd/reports/cheri-architecture -install_latex: - rm -rf $(CHERI_ARCH_PATH)/sail_latex/*.tex - cp sail_latex/*.tex $(CHERI_ARCH_PATH)/sail_latex - rm -rf $(CHERI_ARCH_PATH)/sail_latexcc/*.tex - cp sail_latexcc/*.tex $(CHERI_ARCH_PATH)/sail_latexcc - -cheri128: $(CHERI128_SAILS) $(CHERI_MAIN) - $(SAIL) -ocaml -o $@ $^ - -cheri128_trace: $(CHERI128_SAILS) $(CHERI_MAIN) - $(SAIL) -ocaml_trace -o $@ $^ - -cheri128.c: $(CHERI128_SAILS) $(CHERI_MAIN) - $(SAIL) -memo_z3 -O -c $^ 1> $@ - -cheri128_c: cheri128.c ../lib/sail.h Makefile - gcc $(C_OPT) $(GCOV_FLAGS) $< ../lib/*.c -lgmp -lz -I ../lib/ -o $@ - -# Note that for coverage purposes O1 appears optimal. O0 means lots of obviously dead code but O2 risks reducing granularity too much. -cheri128_c_gcov: C_OPT=-O1 -cheri128_c_gcov: GCOV_FLAGS=-fprofile-arcs -ftest-coverage -cheri128_c_gcov: cheri128_c - -LOC_FILES:=$(CHERI_SAILS) $(CHERI_MAIN) -include ../etc/loc.mk - -# TODO Using bit lists for now in Lem generation; for machine words, -# monomorphisation is needed due to some variable length bitvectors, e.g. in -# CLoad as of commit b34c3fb, in the TLB translation, and in compressed -# capability functions - -cheri_no_tlb.lem: $(CHERI_NO_TLB_SAILS) - $(SAIL) -lem -o cheri_no_tlb -lem_lib Mips_extras -undefined_gen -memo_z3 $^ -cheri_no_tlb_types.lem: cheri_no_tlb.lem - -cheri.lem: $(CHERI_MONO_SAILS) $(CHERI_MAIN) - $(SAIL) -lem -o cheri -auto_mono -mono_rewrites -lem_mwords -lem_lib Mips_extras -undefined_gen -memo_z3 $^ -cheri_types.lem: cheri.lem - -cheri128_no_tlb.lem: $(CHERI128_NO_TLB_SAILS) - $(SAIL) -lem -o cheri128_no_tlb -lem_lib Mips_extras -undefined_gen -memo_z3 $^ -cheri128_no_tlb_types.lem: cheri128_no_tlb.lem - -cheri128.lem: $(CHERI128_SAILS) - $(SAIL) -lem -o cheri128 -lem_lib Mips_extras -undefined_gen -memo_z3 $^ -cheri128_types.lem: cheri128.lem - -C%.thy: c%.lem c%_types.lem $(MIPS_SAIL_DIR)/mips_extras.lem - lem -isa -outdir . -lib Sail=$(SAIL_DIR)/src/gen_lib -lib Sail=$(SAIL_DIR)/src/lem_interp $^ - sed -i 's/datatype ast/datatype (plugins only: size) ast/' C$*_types.thy - -%Script.sml: %.lem %_types.lem $(MIPS_SAIL_DIR)/mips_extras.lem - lem -hol -outdir . -lib $(SAIL_DIR)/lib/hol -i $(SAIL_DIR)/lib/hol/sail2_prompt_monad.lem -i $(SAIL_DIR)/lib/hol/sail2_prompt.lem -lib $(SAIL_DIR)/src/gen_lib -lib $(SAIL_DIR)/src/lem_interp $^ - -%Theory.uo: %Script.sml - Holmake $@ - -cheri.v cheri_types.v: $(CHERI_SAILS) - $(SAIL) -coq -o cheri -coq_lib mips_extras -undefined_gen -memo_z3 -dcoq_undef_axioms $^ - -CHERI_COQ = cheri_types.v mips_extras.v cheri.v -COQ_LIBS = -R ../../bbv/theories bbv -R ../lib/coq Sail - -%.vo: %.v - coqc $(COQ_LIBS) $< -cheri.vo: cheri_types.vo mips_extras.vo - -clean: - rm -rf cheri cheri_trace cheri_coverage cheri128 cheri128_trace _sbuild inst_*.sail cheri.c sail_latex sail_latexcc coverage_report - rm -f cheriScript.sml cheri_typesScript.sml mips_extrasScript.sml - rm -f cheri.v cheri_types.v $(CHERI_COQ:%.v=%.vo) $(CHERI_COQ:%.v=%.glob) $(CHERI_COQ:%.v=.%.aux) - -Holmake cleanAll diff --git a/cheri/ROOT b/cheri/ROOT deleted file mode 100644 index 244413d5..00000000 --- a/cheri/ROOT +++ /dev/null @@ -1,4 +0,0 @@ -session "Sail-CHERI" = "Sail" + - options [document = false] - theories - Cheri_lemmas diff --git a/cheri/cheri_insts.sail b/cheri/cheri_insts.sail deleted file mode 100644 index f1038ed6..00000000 --- a/cheri/cheri_insts.sail +++ /dev/null @@ -1,1353 +0,0 @@ -/*========================================================================*/ -/* */ -/* Copyright (c) 2015-2017 Robert M. Norton */ -/* Copyright (c) 2015-2017 Kathyrn Gray */ -/* All rights reserved. */ -/* */ -/* This software was developed by the University of Cambridge Computer */ -/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */ -/* (REMS) project, funded by EPSRC grant EP/K008528/1. */ -/* */ -/* Redistribution and use in source and binary forms, with or without */ -/* modification, are permitted provided that the following conditions */ -/* are met: */ -/* 1. Redistributions of source code must retain the above copyright */ -/* notice, this list of conditions and the following disclaimer. */ -/* 2. Redistributions in binary form must reproduce the above copyright */ -/* notice, this list of conditions and the following disclaimer in */ -/* the documentation and/or other materials provided with the */ -/* distribution. */ -/* */ -/* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' */ -/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */ -/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */ -/* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR */ -/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ -/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */ -/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF */ -/* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND */ -/* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */ -/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */ -/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF */ -/* SUCH DAMAGE. */ -/*========================================================================*/ - -/* Old encodings */ -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000000 @ 0b000) = Some(CGetPerm(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000000 @ 0b001) = Some(CGetType(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000000 @ 0b010) = Some(CGetBase(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000000 @ 0b011) = Some(CGetLen(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000000 @ 0b101) = Some(CGetTag(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000000 @ 0b110) = Some(CGetSealed(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ 0b00000 @ 0b00000000 @ 0b100) = Some(CGetCause(rd)) - -function clause decode (0b010010 @ 0b00110 @ 0b000000000000000000000) = Some(CReturn()) - -function clause decode (0b010010 @ 0b01101 @ rd : regno @ cb : regno @ 0b00000000 @ 0b010) = Some(CGetOffset(rd, cb)) /* NB encoding does not follow pattern */ -function clause decode (0b010010 @ 0b00100 @ 0b00000 @ 0b00000 @ rt : regno @ 0b000 @ 0b100) = Some(CSetCause(rt)) -function clause decode (0b010010 @ 0b00100 @ cd : regno @ cb : regno @ rt : regno @ 0b000 @ 0b000) = Some(CAndPerm(cd, cb, rt)) -function clause decode (0b010010 @ 0b01100 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b000) = Some(CToPtr(rd, cb, ct)) - -function clause decode (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b000) = Some(CPtrCmp(rd, cb, ct, CEQ)) -function clause decode (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b001) = Some(CPtrCmp(rd, cb, ct, CNE)) -function clause decode (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b010) = Some(CPtrCmp(rd, cb, ct, CLT)) -function clause decode (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b011) = Some(CPtrCmp(rd, cb, ct, CLE)) -function clause decode (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b100) = Some(CPtrCmp(rd, cb, ct, CLTU)) -function clause decode (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b101) = Some(CPtrCmp(rd, cb, ct, CLEU)) -function clause decode (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b110) = Some(CPtrCmp(rd, cb, ct, CEXEQ)) -function clause decode (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b111) = Some(CPtrCmp(rd, cb, ct, CNEXEQ)) -function clause decode (0b010010 @ 0b01101 @ cd : regno @ cb : regno @ rt : regno @ 0b000 @ 0b000) = Some(CIncOffset(cd, cb, rt)) -function clause decode (0b010010 @ 0b01101 @ cd : regno @ cb : regno @ rt : regno @ 0b000 @ 0b001) = Some(CSetOffset(cd, cb, rt)) -function clause decode (0b010010 @ 0b00001 @ cd : regno @ cb : regno @ rt : regno @ 0b000000) = Some(CSetBounds(cd, cb, rt)) - -function clause decode (0b010010 @ 0b00100 @ cd : regno @ cb : regno @ 0b00000 @ 0b000@ 0b101) = Some(CClearTag(cd, cb)) -function clause decode (0b010010 @ 0b00100 @ cd : regno @ cb : regno @ rt : regno @ 0b000@ 0b111) = Some(CFromPtr(cd, cb, rt)) -function clause decode (0b010010 @ 0b01011 @ cs : regno @ 0b00000 @ rt : regno @ 0b000@ 0b000) = Some(CCheckPerm(cs, rt)) -function clause decode (0b010010 @ 0b01011 @ cs : regno @ cb : regno @ 0b00000 @ 0b000@ 0b001) = Some(CCheckType(cs, cb)) -function clause decode (0b010010 @ 0b00010 @ cd : regno @ cs : regno @ ct : regno @ 0b000@ 0b000) = Some(CSeal(cd, cs, ct)) -function clause decode (0b010010 @ 0b00011 @ cd : regno @ cs : regno @ ct : regno @ 0b000@ 0b000) = Some(CUnseal(cd, cs, ct)) -function clause decode (0b010010 @ 0b00111 @ cd : regno @ cb : regno @ 0b00000 @ 0b000000) = Some(CJALR(cd, cb, true)) /* CJALR */ -function clause decode (0b010010 @ 0b01000 @ 0b00000 @ cb : regno @ 0b00000 @ 0b000000) = Some(CJALR(0b00000, cb, false)) /* CJR */ - - -/* -New encodings as per CHERI ISA Appendix B.2. - -NB: Must be careful about order of matching because unused register -fields are re-used as additional function codes. -*/ - -/* One arg */ -function clause decode (0b010010 @ 0b00000 @ rd : regno @ 0b00001 @ 0b11111 @ 0b111111) = Some(CGetCause(rd)) -function clause decode (0b010010 @ 0b00000 @ rs : regno @ 0b00010 @ 0b11111 @ 0b111111) = Some(CSetCause(rs)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ 0b00000 @ 0b11111 @ 0b111111) = Some(CGetPCC(cd)) -function clause decode (0b010010 @ 0b00000 @ cb : regno @ 0b00011 @ 0b11111 @ 0b111111) = Some(CJALR(0b00000, cb, false)) /* CJR */ - -/* Two arg */ -function clause decode (0b010010 @ 0b00000 @ cs : regno @ rt : regno @ 0b01000 @ 0b111111) = Some(CCheckPerm(cs, rt)) -function clause decode (0b010010 @ 0b00000 @ cs : regno @ cb : regno @ 0b01001 @ 0b111111) = Some(CCheckType(cs, cb)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cb : regno @ 0b01011 @ 0b111111) = Some(CClearTag(cd, cb)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ 0b01010 @ 0b111111) = Some(CMOVX(cd, cs, 0b00000, false)) /* CMOVE */ -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cb : regno @ 0b01100 @ 0b111111) = Some(CJALR(cd, cb, true)) /* CJALR */ - -/* Capability Inspection */ -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000 @ 0b111111) = Some(CGetPerm(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00001 @ 0b111111) = Some(CGetType(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00010 @ 0b111111) = Some(CGetBase(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00011 @ 0b111111) = Some(CGetLen(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00100 @ 0b111111) = Some(CGetTag(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00101 @ 0b111111) = Some(CGetSealed(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00110 @ 0b111111) = Some(CGetOffset(rd, cb)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ rs : regno @ 0b00111 @ 0b111111) = Some(CGetPCCSetOffset(cd, rs)) - -function clause decode (0b010010 @ 0b00000 @ cd : regno @ sel : regno @ 0b01101 @ 0b111111) = Some(CReadHwr(cd, sel)) -function clause decode (0b010010 @ 0b00000 @ cb : regno @ sel : regno @ 0b01110 @ 0b111111) = Some(CWriteHwr(cb, sel)) - -function clause decode (0b010010 @ 0b00000 @ cb : regno @ sel : regno @ 0b01111 @ 0b111111) = Some(CGetAddr(cb, sel)) - -/* Three operand */ - -/* Capability Modification */ -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ ct : regno @ 0b001011) = Some(CSeal(cd, cs, ct)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ ct : regno @ 0b001100) = Some(CUnseal(cd, cs, ct)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ rt : regno @ 0b001101) = Some(CAndPerm(cd, cs, rt)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ rt : regno @ 0b001111) = Some(CSetOffset(cd, cs, rt)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ rt : regno @ 0b001000) = Some(CSetBounds(cd, cs, rt)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ rt : regno @ 0b001001) = Some(CSetBoundsExact(cd, cs, rt)) - - -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cb : regno @ rt : regno @ 0b010001) = Some(CIncOffset(cd, cb, rt)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cb : regno @ ct : regno @ 0b011101) = Some(CBuildCap(cd, cb, ct)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cb : regno @ ct : regno @ 0b011110) = Some(CCopyType(cd, cb, ct)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ ct : regno @ 0b011111) = Some(CCSeal(cd, cs, ct)) - -/* Pointer Arithmetic */ -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ ct : regno @ 0b010010) = Some(CToPtr(rd, cb, ct)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cb : regno @ rs : regno @ 0b010011) = Some(CFromPtr(cd, cb, rs)) -function clause decode (0b010010 @ 0b00000 @ rt : regno @ cb : regno @ cs : regno @ 0b001010) = Some(CSub(rt, cb, cs)) -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ rs : regno @ 0b011011) = Some(CMOVX(cd, cs, rs, false)) /* CMOVZ */ -function clause decode (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ rs : regno @ 0b011100) = Some(CMOVX(cd, cs, rs, true)) /* CMOVN */ - -/* Pointer Comparison */ -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b010100) = Some(CPtrCmp(rd, cb, cs, CEQ)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b010101) = Some(CPtrCmp(rd, cb, cs, CNE)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b010110) = Some(CPtrCmp(rd, cb, cs, CLT)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b010111) = Some(CPtrCmp(rd, cb, cs, CLE)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b011000) = Some(CPtrCmp(rd, cb, cs, CLTU)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b011001) = Some(CPtrCmp(rd, cb, cs, CLEU)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b011010) = Some(CPtrCmp(rd, cb, cs, CEXEQ)) -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b100001) = Some(CPtrCmp(rd, cb, cs, CNEXEQ)) - -function clause decode (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ ct : regno @ 0b100000) = Some(CTestSubset(rd, cb, ct)) - -function clause decode (0b010010 @ 0b01001 @ cd : regno @ imm : bits(16)) = Some(CBX(cd, imm, true)) /* CBTU */ -function clause decode (0b010010 @ 0b01010 @ cd : regno @ imm : bits(16)) = Some(CBX(cd, imm, false)) /* CBTS */ -function clause decode (0b010010 @ 0b10001 @ cd : regno @ imm : bits(16)) = Some(CBZ(cd, imm, false)) /* CBEZ */ -function clause decode (0b010010 @ 0b10010 @ cd : regno @ imm : bits(16)) = Some(CBZ(cd, imm, true)) /* CBNZ */ - -function clause decode (0b010010 @ 0b00101 @ 0b00000 @ 0b00000 @ 0b11111111111) = Some(CReturn()) -function clause decode (0b010010 @ 0b00101 @ cs : regno @ cb : regno @ selector : bits(11)) = Some(CCall(cs, cb, selector)) - -function clause decode (0b010010 @ 0b01111 @ 0b00000 @ imm : bits(16)) = Some(ClearRegs(GPLo, imm)) -function clause decode (0b010010 @ 0b01111 @ 0b00001 @ imm : bits(16)) = Some(ClearRegs(GPHi, imm)) -function clause decode (0b010010 @ 0b01111 @ 0b00010 @ imm : bits(16)) = Some(ClearRegs(CLo, imm)) -function clause decode (0b010010 @ 0b01111 @ 0b00011 @ imm : bits(16)) = Some(ClearRegs(CHi, imm)) - -function clause decode (0b010010 @ 0b10011 @ cd : regno @ cb : regno @ imm : bits(11)) = Some(CIncOffsetImmediate(cd, cb, imm)) -function clause decode (0b010010 @ 0b10100 @ cd : regno @ cb : regno @ imm : bits(11)) = Some(CSetBoundsImmediate(cd, cb, imm)) - -function clause decode (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : bits(8) @ 0b0 @ 0b00) = Some(CLoad(rd, cb, rt, offset, false, B, false)) /* CLBU */ -function clause decode (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : bits(8) @ 0b1 @ 0b00) = Some(CLoad(rd, cb, rt, offset, true, B, false)) /* CLB */ -function clause decode (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : bits(8) @ 0b0 @ 0b01) = Some(CLoad(rd, cb, rt, offset, false, H, false)) /* CLHU */ -function clause decode (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : bits(8) @ 0b1 @ 0b01) = Some(CLoad(rd, cb, rt, offset, true, H, false)) /* CLH */ -function clause decode (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : bits(8) @ 0b0 @ 0b10) = Some(CLoad(rd, cb, rt, offset, false, W, false)) /* CLWU */ -function clause decode (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : bits(8) @ 0b1 @ 0b10) = Some(CLoad(rd, cb, rt, offset, true, W, false)) /* CLW */ -function clause decode (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : bits(8) @ 0b0 @ 0b11) = Some(CLoad(rd, cb, rt, offset, false, D, false)) /* CLD */ - -function clause decode (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b0 @ 0b00) = Some(CLoad(rd, cb, 0b00000, 0b00000000, false, B, true)) /* CLLBU */ -function clause decode (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b1 @ 0b00) = Some(CLoad(rd, cb, 0b00000, 0b00000000, true, B, true)) /* CLLB */ -function clause decode (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b0 @ 0b01) = Some(CLoad(rd, cb, 0b00000, 0b00000000, false, H, true)) /* CLLHU */ -function clause decode (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b1 @ 0b01) = Some(CLoad(rd, cb, 0b00000, 0b00000000, true, H, true)) /* CLLH */ -function clause decode (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b0 @ 0b10) = Some(CLoad(rd, cb, 0b00000, 0b00000000, false, W, true)) /* CLLWU */ -function clause decode (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b1 @ 0b10) = Some(CLoad(rd, cb, 0b00000, 0b00000000, true, W, true)) /* CLLW */ -function clause decode (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b0 @ 0b11) = Some(CLoad(rd, cb, 0b00000, 0b00000000, false, D, true)) /* CLLD */ - -function clause decode (0b111010 @ rs : regno @ cb : regno@ rt : regno @ offset : bits(8) @ 0b0 @ 0b00) = Some(CStore(rs, cb, rt, 0b00000, offset, B, false)) /* CSB */ -function clause decode (0b111010 @ rs : regno @ cb : regno@ rt : regno @ offset : bits(8) @ 0b0 @ 0b01) = Some(CStore(rs, cb, rt, 0b00000, offset, H, false)) /* CSH */ -function clause decode (0b111010 @ rs : regno @ cb : regno@ rt : regno @ offset : bits(8) @ 0b0 @ 0b10) = Some(CStore(rs, cb, rt, 0b00000, offset, W, false)) /* CSW */ -function clause decode (0b111010 @ rs : regno @ cb : regno@ rt : regno @ offset : bits(8) @ 0b0 @ 0b11) = Some(CStore(rs, cb, rt, 0b00000, offset, D, false)) /* CSD */ - -function clause decode (0b010010 @ 0b10000 @ rs : regno @ cb : regno @ rd : regno @ 0b0000 @ 0b00) = Some(CStore(rs, cb, 0b00000, rd, 0b00000000, B, true)) /* CSCB */ -function clause decode (0b010010 @ 0b10000 @ rs : regno @ cb : regno @ rd : regno @ 0b0000 @ 0b01) = Some(CStore(rs, cb, 0b00000, rd, 0b00000000, H, true)) /* CSCH */ -function clause decode (0b010010 @ 0b10000 @ rs : regno @ cb : regno @ rd : regno @ 0b0000 @ 0b10) = Some(CStore(rs, cb, 0b00000, rd, 0b00000000, W, true)) /* CSCW */ -function clause decode (0b010010 @ 0b10000 @ rs : regno @ cb : regno @ rd : regno @ 0b0000 @ 0b11) = Some(CStore(rs, cb, 0b00000, rd, 0b00000000, D, true)) /* CSCD */ - -function clause decode (0b111110 @ cs : regno @ cb : regno@ rt : regno @ offset : bits(11)) = Some(CSC(cs, cb, rt, 0b00000, offset, false)) -function clause decode (0b010010 @ 0b10000 @ cs : regno @ cb : regno@ rd : regno @ 0b00 @ 0b0111) = Some(CSC(cs, cb, 0b00000, rd, 0b00000000000, true)) /* CSCC */ - -function clause decode (0b110110 @ cd : regno @ cb : regno @ rt : regno @ offset : bits(11)) = Some(CLC(cd, cb, rt, sign_extend(offset), false)) /* CLC */ -function clause decode (0b010010 @ 0b10000 @ cd : regno @ cb : regno@ 0b0000000 @ 0b1111) = Some(CLC(cd, cb, 0b00000, 0x0000, true)) /* CLLC */ -function clause decode (0b011101 @ cd : regno @ cb : regno @ offset : bits(16)) = Some(CLC(cd, cb, 0b00000, offset, false)) /* CLCBI */ - -function clause decode (0b010010 @ 0b00100 @ rt : regno @ 0x0006) = Some(C2Dump(rt)) - -/* Operations that extract parts of a capability into GPR */ - -union clause ast = CGetPerm : (regno, regno) -union clause ast = CGetType : (regno, regno) -union clause ast = CGetBase : (regno, regno) -union clause ast = CGetLen : (regno, regno) -union clause ast = CGetTag : (regno, regno) -union clause ast = CGetSealed : (regno, regno) -union clause ast = CGetOffset : (regno, regno) -union clause ast = CGetAddr : (regno, regno) - -function clause execute (CGetPerm(rd, cb)) = -{ - checkCP2usable(); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = readCapReg(cb) in - wGPR(rd) = zero_extend(getCapPerms(capVal)); -} - -function clause execute (CGetType(rd, cb)) = -{ - checkCP2usable(); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = readCapReg(cb) in - wGPR(rd) = if (capVal.sealed) - then zero_extend(capVal.otype) - else (bitone ^^ 64) -} - -function clause execute (CGetBase(rd, cb)) = -{ - checkCP2usable(); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = readCapReg(cb) in - wGPR(rd) = to_bits(64, getCapBase(capVal)); -} - -function clause execute (CGetOffset(rd, cb)) = -{ - checkCP2usable(); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = readCapReg(cb) in - wGPR(rd) = to_bits(64, getCapOffset(capVal)); -} - -function clause execute (CGetLen(rd, cb)) = -{ - checkCP2usable(); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = readCapReg(cb) in - let len65 = getCapLength(capVal) in - wGPR(rd) = to_bits(64, if len65 > MAX_U64 then MAX_U64 else len65); -} - -function clause execute (CGetTag(rd, cb)) = -{ - checkCP2usable(); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = readCapReg(cb) in - wGPR(rd) = zero_extend(capVal.tag); -} - -function clause execute (CGetSealed(rd, cb)) = -{ - checkCP2usable(); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = readCapReg(cb) in - wGPR(rd) = zero_extend(capVal.sealed); -} - -function clause execute (CGetAddr(rd, cb)) = -{ - checkCP2usable(); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = readCapReg(cb) in - wGPR(rd) = to_bits(64, getCapCursor(capVal)); -} - -union clause ast = CGetPCC : regno -function clause execute (CGetPCC(cd)) = -{ - checkCP2usable(); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else - let pcc = (capRegToCapStruct(PCC)) in - let (success, pcc2) = setCapOffset(pcc, PC) in - {assert (success, ""); /* guaranteed to be in-bounds */ - writeCapReg(cd, pcc2)}; -} - - -union clause ast = CGetPCCSetOffset : (regno, regno) -function clause execute (CGetPCCSetOffset(cd, rs)) = -{ - checkCP2usable(); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else - let pcc = (capRegToCapStruct(PCC)) in - let rs_val = rGPR(rs) in - let (success, newPCC) = setCapOffset(pcc, rs_val) in - if (success) then - writeCapReg(cd, newPCC) - else - writeCapReg(cd, int_to_cap(rs_val)); -} -/* Get and Set CP2 cause register */ - -union clause ast = CGetCause : regno -function clause execute (CGetCause(rd)) = -{ - checkCP2usable(); - if not (pcc_access_system_regs ()) then - raise_c2_exception_noreg(CapEx_AccessSystemRegsViolation) - else - wGPR(rd) = zero_extend(CapCause.bits()) -} - -union clause ast = CSetCause : regno -function clause execute (CSetCause(rt)) = -{ - checkCP2usable(); - if not (pcc_access_system_regs ()) then - raise_c2_exception_noreg(CapEx_AccessSystemRegsViolation) - else - { - let rt_val = rGPR(rt); - CapCause->ExcCode() = rt_val[15..8]; - CapCause->RegNum() = rt_val[7..0]; - } -} - -union clause ast = CReadHwr : (regno, regno) -function clause execute (CReadHwr(cd, sel)) = -{ - checkCP2usable(); - let (needSup, needAccessSys) : (bool, bool) = match unsigned(sel) { - 0 => (false, false), /* DDC -- no access control */ - 1 => (false, false), /* CTLSU -- no access control */ - 8 => (false, true), /* CTLSP -- privileged TLS */ - 22 => (true, false), /* KR1C */ - 23 => (true, false), /* KR2C */ - 29 => (true, true), /* KCC */ - 30 => (true, true), /* KDC */ - 31 => (true, true), /* EPCC */ - _ => SignalException(ResI) - }; - if register_inaccessible(cd) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if needAccessSys & not(pcc_access_system_regs()) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, sel) - else if needSup & not(grantsAccess(getAccessLevel(), Supervisor)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, sel) - else { - capVal : CapStruct = match unsigned(sel) { - 0 => capRegToCapStruct(DDC), - 1 => capRegToCapStruct(CTLSU), - 8 => capRegToCapStruct(CTLSP), - 22 => capRegToCapStruct(KR1C), - 23 => capRegToCapStruct(KR2C), - 29 => capRegToCapStruct(KCC), - 30 => capRegToCapStruct(KDC), - 31 => capRegToCapStruct(EPCC), - _ => {assert(false, "should be unreachable code"); undefined} - }; - writeCapReg(cd, capVal); - }; -} - -union clause ast = CWriteHwr : (regno, regno) -function clause execute (CWriteHwr(cb, sel)) = -{ - checkCP2usable(); - let (needSup, needAccessSys) : (bool, bool) = match unsigned(sel) { - 0 => (false, false), /* DDC -- no access control */ - 1 => (false, false), /* CTLSU -- no access control */ - 8 => (false, true), /* CTLSP -- privileged TLS */ - 22 => (true, false), /* KR1C */ - 23 => (true, false), /* KR2C */ - 29 => (true, true), /* KCC */ - 30 => (true, true), /* KDC */ - 31 => (true, true), /* EPCC */ - _ => SignalException(ResI) - }; - if register_inaccessible(cb) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if needAccessSys & not(pcc_access_system_regs()) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, sel) - else if needSup & not(grantsAccess(getAccessLevel(), Supervisor)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, sel) - else { - capVal = readCapReg(cb); - match unsigned(sel) { - 0 => DDC = capStructToCapReg(capVal), - 1 => CTLSU = capStructToCapReg(capVal), - 8 => CTLSP = capStructToCapReg(capVal), - 22 => KR1C = capStructToCapReg(capVal), - 23 => KR2C = capStructToCapReg(capVal), - 29 => KCC = capStructToCapReg(capVal), - 30 => KDC = capStructToCapReg(capVal), - 31 => EPCC = capStructToCapReg(capVal), - _ => assert(false, "should be unreachable code") - }; - }; -} - -union clause ast = CAndPerm : (regno, regno, regno) -function clause execute(CAndPerm(cd, cb, rt)) = -{ - checkCP2usable(); - let cb_val = readCapReg(cb); - let rt_val = rGPR(rt); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else - let perms = getCapPerms(cb_val) in - let newCap = setCapPerms(cb_val, (perms & rt_val[30..0])) in - writeCapReg(cd, newCap); -} - - - -union clause ast = CToPtr : (regno, regno, regno) -function clause execute(CToPtr(rd, cb, ct)) = -{ - checkCP2usable(); - let ct_val = readCapRegDDC(ct); - let cb_val = readCapReg(cb); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if (register_inaccessible(ct)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, ct) - else if not (ct_val.tag) then - raise_c2_exception(CapEx_TagViolation, ct) - else if (cb_val.tag) & (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else - { - let cbBase = getCapBase(cb_val) in - let cbTop = getCapTop(cb_val) in - let ctBase = getCapBase(ct_val) in - let ctTop = getCapTop(ct_val) in - wGPR(rd) = if (not (cb_val.tag)) | - (cbBase < ctBase) | - (cbTop > ctTop) then - zeros() - else - to_bits(64, getCapCursor(cb_val) - ctBase) - } -} - - - -union clause ast = CSub : (regno, regno, regno) -function clause execute(CSub(rd, cb, ct)) = -{ - checkCP2usable(); - let ct_val = readCapReg(ct); - let cb_val = readCapReg(cb); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if (register_inaccessible(ct)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, ct) - else - { - wGPR(rd) = to_bits(64, getCapCursor(cb_val) - getCapCursor(ct_val)) - } -} - -union clause ast = CPtrCmp : (regno, regno, regno, CPtrCmpOp) -function clause execute(CPtrCmp(rd, cb, ct, op)) = -{ - checkCP2usable(); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if (register_inaccessible(ct)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, ct) - else - { - let cb_val = readCapReg(cb); - let ct_val = readCapReg(ct); - equal = false; - ltu = false; - lts = false; - if (cb_val.tag != ct_val.tag) then - { - if not (cb_val.tag) then - { - ltu = true; - lts = true; - } - } - else - { - cursor1 = getCapCursor(cb_val); - cursor2 = getCapCursor(ct_val); - equal = (cursor1 == cursor2); - ltu = (cursor1 < cursor2); - lts = to_bits(64, cursor1) <_s to_bits(64, cursor2); - }; - let cmp : bool = match op { - CEQ => equal, - CNE => not (equal), - CLT => lts, - CLE => lts | equal, - CLTU => ltu, - CLEU => ltu | equal, - CEXEQ => cb_val == ct_val, - CNEXEQ => cb_val != ct_val - }; - wGPR(rd) = zero_extend (cmp) - } -} - -union clause ast = CIncOffset : (regno, regno, regno) -function clause execute (CIncOffset(cd, cb, rt)) = -{ - checkCP2usable(); - cb_val = readCapReg(cb); - rt_val = rGPR(rt); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if ((cb_val.tag) & (cb_val.sealed) & (rt_val != 0x0000000000000000)) then - raise_c2_exception(CapEx_SealViolation, cb) - else - let (success, newCap) = incCapOffset(cb_val, rt_val) in - if (success) then - writeCapReg(cd, newCap) - else - writeCapReg(cd, int_to_cap(to_bits(64, getCapBase(cb_val)) + rt_val)) -} - -union clause ast = CIncOffsetImmediate : (regno, regno, bits(11)) -function clause execute (CIncOffsetImmediate(cd, cb, imm)) = -{ - checkCP2usable(); - let cb_val = readCapReg(cb); - let imm64 : bits(64) = sign_extend(imm) in - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if ((cb_val.tag) & (cb_val.sealed)) then - raise_c2_exception(CapEx_SealViolation, cb) - else - let (success, newCap) = incCapOffset(cb_val, imm64) in - if (success) then - writeCapReg(cd, newCap) - else - writeCapReg(cd, int_to_cap(to_bits(64, getCapBase(cb_val)) + imm64)) -} - -union clause ast = CSetOffset : (regno, regno, regno) -function clause execute (CSetOffset(cd, cb, rt)) = -{ - checkCP2usable(); - let cb_val = readCapReg(cb); - let rt_val = rGPR(rt); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if ((cb_val.tag) & (cb_val.sealed)) then - raise_c2_exception(CapEx_SealViolation, cb) - else - let (success, newCap) = setCapOffset(cb_val, rt_val) in - if (success) then - writeCapReg(cd, newCap) - else - writeCapReg(cd, int_to_cap(to_bits(64, getCapBase(cb_val)) + rt_val)) -} - -union clause ast = CSetBounds : (regno, regno, regno) -function clause execute (CSetBounds(cd, cb, rt)) = -{ - checkCP2usable(); - let cb_val = readCapReg(cb); - let rt_val = unsigned(rGPR(rt)); - cursor = getCapCursor(cb_val); - base = getCapBase(cb_val); - top = getCapTop(cb_val); - newTop = cursor + rt_val; - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if (cursor < base) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if (newTop > top) then - raise_c2_exception(CapEx_LengthViolation, cb) - else - let (_, newCap) = setCapBounds(cb_val, to_bits(64, cursor), to_bits(65, newTop)) in - writeCapReg(cd, newCap) /* ignore exact */ -} - -union clause ast = CSetBoundsImmediate : (regno, regno, bits(11)) -function clause execute (CSetBoundsImmediate(cd, cb, imm)) = -{ - checkCP2usable(); - cb_val = readCapReg(cb); - immU = unsigned(imm); - cursor = getCapCursor(cb_val); - base = getCapBase(cb_val); - top = getCapTop(cb_val); - newTop = cursor + immU; - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if (cursor < base) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if (newTop > top) then - raise_c2_exception(CapEx_LengthViolation, cb) - else - let (_, newCap) = setCapBounds(cb_val, to_bits(64, cursor), to_bits(65, newTop)) in - writeCapReg(cd, newCap) /* ignore exact */ -} - -union clause ast = CSetBoundsExact : (regno, regno, regno) -function clause execute (CSetBoundsExact(cd, cb, rt)) = -{ - checkCP2usable(); - cb_val = readCapReg(cb); - rt_val = unsigned(rGPR(rt)); - cursor = getCapCursor(cb_val); - base = getCapBase(cb_val); - top = getCapTop(cb_val); - newTop = cursor + rt_val; - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if (cursor < base) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if (newTop > top) then - raise_c2_exception(CapEx_LengthViolation, cb) - else - let (exact, newCap) = setCapBounds(cb_val, to_bits(64, cursor), to_bits(65, newTop)) in - if not (exact) then - raise_c2_exception(CapEx_InexactBounds, cb) - else - writeCapReg(cd, newCap) -} - -union clause ast = CClearTag : (regno, regno) -function clause execute (CClearTag(cd, cb)) = -{ - checkCP2usable(); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else - { - cb_val = readCapReg(cb); - writeCapReg(cd, {cb_val with tag=false}); - } -} - -union clause ast = CMOVX : (regno,regno,regno,bool) -function clause execute (CMOVX(cd, cb, rt, ismovn)) = -{ - checkCP2usable(); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if ((rGPR(rt) == zeros()) ^ ismovn) then - writeCapReg(cd) = readCapReg(cb); -} - -union clause ast = ClearRegs : (ClearRegSet, bits(16)) -function clause execute (ClearRegs(regset, m)) = -{ - if ((regset == CLo) | (regset == CHi)) then - checkCP2usable(); - if (regset == CHi) then - foreach (i from 0 to 15) - let r = to_bits(5, i+16) in - if (m[i] & register_inaccessible(r)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, r); - foreach (i from 0 to 15) - if (m[i]) then - match regset { - GPLo => wGPR(to_bits(5, i)) = zeros(), - GPHi => wGPR(to_bits(5, i+16)) = zeros(), - CLo => if i == 0 then - DDC = capStructToCapReg(null_cap) - else - writeCapReg(to_bits(5, i)) = null_cap, - CHi => writeCapReg(to_bits(5, i+16)) = null_cap - } -} - -union clause ast = CFromPtr : (regno, regno, regno) -function clause execute (CFromPtr(cd, cb, rt)) = -{ - checkCP2usable(); - cb_val = readCapRegDDC(cb); - rt_val = rGPR(rt); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if (rt_val == 0x0000000000000000) then - writeCapReg(cd, null_cap) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else - let (success, newCap) = setCapOffset(cb_val, rt_val) in - if (success) then - writeCapReg(cd, newCap) - else - writeCapReg(cd, int_to_cap(to_bits(64, getCapBase(cb_val)) + rt_val)) -} - -union clause ast = CBuildCap : (regno, regno, regno) -function clause execute (CBuildCap(cd, cb, ct)) = -{ - checkCP2usable(); - cb_val = readCapRegDDC(cb); - ct_val = readCapReg(ct); - cb_base = getCapBase(cb_val); - ct_base = getCapBase(ct_val); - cb_top = getCapTop(cb_val); - ct_top = getCapTop(ct_val); - cb_perms = getCapPerms(cb_val); - ct_perms = getCapPerms(ct_val); - ct_offset = getCapOffset(ct_val); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if (register_inaccessible(ct)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, ct) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if ct_base < cb_base then - raise_c2_exception(CapEx_LengthViolation, cb) - else if ct_top > cb_top then - raise_c2_exception(CapEx_LengthViolation, cb) - else if ct_base > ct_top then /* check for length < 0 - possible because ct might be untagged */ - raise_c2_exception(CapEx_LengthViolation, ct) - else if (ct_perms & cb_perms) != ct_perms then - raise_c2_exception(CapEx_UserDefViolation, cb) - else - let (exact, cd1) = setCapBounds(cb_val, to_bits(64, ct_base), to_bits(65, ct_top)) in - let (representable, cd2) = setCapOffset(cd1, to_bits(64, ct_offset)) in - let cd3 = setCapPerms(cd2, ct_perms) in - { - assert(exact, ""); /* base and top came from ct originally so will be exact */ - assert(representable, ""); /* similarly offset should be representable XXX except for fastRepCheck */ - writeCapReg(cd, cd3); - } -} - -union clause ast = CCopyType : (regno, regno, regno) -function clause execute (CCopyType(cd, cb, ct)) = -{ - checkCP2usable(); - cb_val = readCapReg(cb); - ct_val = readCapReg(ct); - cb_base = getCapBase(cb_val); - cb_top = getCapTop(cb_val); - ct_otype = unsigned(ct_val.otype); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if (register_inaccessible(ct)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, ct) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if (ct_val.sealed) then { - if ct_otype < cb_base then - raise_c2_exception(CapEx_LengthViolation, cb) - else if ct_otype >= cb_top then - raise_c2_exception(CapEx_LengthViolation, cb) - else - let (success, cap) = setCapOffset(cb_val, to_bits(64, ct_otype - cb_base)) in { - assert(success, ""); /* offset is in bounds so must succeed */ - writeCapReg(cd, cap); - } - } else - writeCapReg(cd, int_to_cap(bitone ^^ 64)) -} - -union clause ast = CCheckPerm : (regno, regno) -function clause execute (CCheckPerm(cs, rt)) = -{ - checkCP2usable(); - cs_val = readCapReg(cs); - cs_perms : bits(64) = zero_extend(getCapPerms(cs_val)); - rt_perms = rGPR(rt); - if (register_inaccessible(cs)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cs) - else if not (cs_val.tag) then - raise_c2_exception(CapEx_TagViolation, cs) - else if ((cs_perms & rt_perms) != rt_perms) then - raise_c2_exception(CapEx_UserDefViolation, cs) -} - -union clause ast = CCheckType : (regno, regno) -function clause execute (CCheckType(cs, cb)) = -{ - checkCP2usable(); - cs_val = readCapReg(cs); - cb_val = readCapReg(cb); - if (register_inaccessible(cs)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cs) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if not (cs_val.tag) then - raise_c2_exception(CapEx_TagViolation, cs) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if not (cs_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cs) - else if not (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if ((cs_val.otype) != (cb_val.otype)) then - raise_c2_exception(CapEx_TypeViolation, cs) -} - -union clause ast = CTestSubset : (regno, regno, regno) -function clause execute (CTestSubset(rd, cb, ct)) = -{ - checkCP2usable(); - cb_val = readCapRegDDC(cb); - ct_val = readCapReg(ct); - ct_top = getCapTop(ct_val); - ct_base = getCapBase(ct_val); - ct_perms = getCapPerms(ct_val); - cb_top = getCapTop(cb_val); - cb_base = getCapBase(cb_val); - cb_perms = getCapPerms(cb_val); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if (register_inaccessible(ct)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, ct) - else { - result : bits(1) = if (cb_val.tag != ct_val.tag) then - 0b0 - else if (ct_base < cb_base) then - 0b0 - else if (ct_top > cb_top) then - 0b0 - else if ((ct_perms & cb_perms) != ct_perms) then - 0b0 - else - 0b1; - wGPR(rd) = zero_extend(result); - } -} - -union clause ast = CSeal : (regno, regno, regno) -function clause execute (CSeal(cd, cs, ct)) = -{ - checkCP2usable(); - cs_val = readCapReg(cs); - ct_val = readCapReg(ct); - ct_cursor = getCapCursor(ct_val); - ct_top = getCapTop(ct_val); - ct_base = getCapBase(ct_val); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cs)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cs) - else if (register_inaccessible(ct)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, ct) - else if not (cs_val.tag) then - raise_c2_exception(CapEx_TagViolation, cs) - else if not (ct_val.tag) then - raise_c2_exception(CapEx_TagViolation, ct) - else if (cs_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cs) - else if (ct_val.sealed) then - raise_c2_exception(CapEx_SealViolation, ct) - else if not (ct_val.permit_seal) then - raise_c2_exception(CapEx_PermitSealViolation, ct) - else if (ct_cursor < ct_base) then - raise_c2_exception(CapEx_LengthViolation, ct) - else if (ct_cursor >= ct_top) then - raise_c2_exception(CapEx_LengthViolation, ct) - else if (ct_cursor > max_otype) then - raise_c2_exception(CapEx_LengthViolation, ct) - else - let (success, newCap) = sealCap(cs_val, to_bits(24, ct_cursor)) in - if not (success) then - raise_c2_exception(CapEx_InexactBounds, cs) - else - writeCapReg(cd, newCap) -} - -union clause ast = CCSeal : (regno, regno, regno) -function clause execute (CCSeal(cd, cs, ct)) = -{ - checkCP2usable(); - cs_val = readCapReg(cs); - ct_val = readCapReg(ct); - ct_cursor = getCapCursor(ct_val); - ct_top = getCapTop(ct_val); - ct_base = getCapBase(ct_val); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cs)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cs) - else if (register_inaccessible(ct)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, ct) - else if not (cs_val.tag) then - raise_c2_exception(CapEx_TagViolation, cs) - else if (not (ct_val.tag)) | (getCapCursor(ct_val) == unsigned(bitone ^^ 64)) then - writeCapReg(cd, cs_val) - else if (cs_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cs) - else if (ct_val.sealed) then - raise_c2_exception(CapEx_SealViolation, ct) - else if not (ct_val.permit_seal) then - raise_c2_exception(CapEx_PermitSealViolation, ct) - else if (ct_cursor < ct_base) then - raise_c2_exception(CapEx_LengthViolation, ct) - else if (ct_cursor >= ct_top) then - raise_c2_exception(CapEx_LengthViolation, ct) - else if (ct_cursor > max_otype) then - raise_c2_exception(CapEx_LengthViolation, ct) - else - let (success, newCap) = sealCap(cs_val, to_bits(24, ct_cursor)) in - if not (success) then - raise_c2_exception(CapEx_InexactBounds, cs) - else - writeCapReg(cd, newCap) -} - -union clause ast = CUnseal : (regno, regno, regno) -function clause execute (CUnseal(cd, cs, ct)) = -{ - checkCP2usable(); - cs_val = readCapReg(cs); - ct_val = readCapReg(ct); - ct_cursor = getCapCursor(ct_val); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cs)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cs) - else if (register_inaccessible(ct)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, ct) - else if not (cs_val.tag) then - raise_c2_exception(CapEx_TagViolation, cs) - else if not (ct_val.tag) then - raise_c2_exception(CapEx_TagViolation, ct) - else if not (cs_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cs) - else if (ct_val.sealed) then - raise_c2_exception(CapEx_SealViolation, ct) - else if (ct_cursor != unsigned(cs_val.otype)) then - raise_c2_exception(CapEx_TypeViolation, ct) - else if not (ct_val.permit_unseal) then - raise_c2_exception(CapEx_PermitUnsealViolation, ct) - else if (ct_cursor < getCapBase(ct_val)) then - raise_c2_exception(CapEx_LengthViolation, ct) - else if (ct_cursor >= getCapTop(ct_val)) then - raise_c2_exception(CapEx_LengthViolation, ct) - else - writeCapReg(cd, {cs_val with - sealed=false, - otype=zeros(), - global=(cs_val.global & ct_val.global) - }) -} - -union clause ast = CCall : (regno, regno, bits(11)) -function clause execute (CCall(cs, cb, 0b00000000000)) = /* selector=0 */ -{ - /* Partial implementation of CCall with checks in hardware, but raising a trap to perform trusted stack manipulation */ - checkCP2usable(); - cs_val = readCapReg(cs); - cb_val = readCapReg(cb); - cs_cursor = getCapCursor(cs_val); - if (register_inaccessible(cs)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cs) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if not (cs_val.tag) then - raise_c2_exception(CapEx_TagViolation, cs) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if not (cs_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cs) - else if not (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if ((cs_val.otype) != (cb_val.otype)) then - raise_c2_exception(CapEx_TypeViolation, cs) - else if not (cs_val.permit_execute) then - raise_c2_exception(CapEx_PermitExecuteViolation, cs) - else if (cb_val.permit_execute) then - raise_c2_exception(CapEx_PermitExecuteViolation, cb) - else if (cs_cursor < getCapBase(cs_val)) then - raise_c2_exception(CapEx_LengthViolation, cs) - else if (cs_cursor >= getCapTop(cs_val)) then - raise_c2_exception(CapEx_LengthViolation, cs) - else - raise_c2_exception(CapEx_CallTrap, cs); -} - -function clause execute (CCall(cs, cb, 0b00000000001)) = /* selector=1 */ -{ - /* Jump-like implementation of CCall that unseals arguments */ - checkCP2usable(); - cs_val = readCapReg(cs); - cb_val = readCapReg(cb); - cs_cursor = getCapCursor(cs_val); - if (register_inaccessible(cs)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cs) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if not (cs_val.tag) then - raise_c2_exception(CapEx_TagViolation, cs) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if not (cs_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cs) - else if not (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if ((cs_val.otype) != (cb_val.otype)) then - raise_c2_exception(CapEx_TypeViolation, cs) - else if not (cs_val.permit_ccall) then - raise_c2_exception(CapEx_PermitCCallViolation, cs) - else if not (cb_val.permit_ccall) then - raise_c2_exception(CapEx_PermitCCallViolation, cb) - else if not (cs_val.permit_execute) then - raise_c2_exception(CapEx_PermitExecuteViolation, cs) - else if (cb_val.permit_execute) then - raise_c2_exception(CapEx_PermitExecuteViolation, cb) - else if (cs_cursor < getCapBase(cs_val)) then - raise_c2_exception(CapEx_LengthViolation, cs) - else if (cs_cursor >= getCapTop(cs_val)) then - raise_c2_exception(CapEx_LengthViolation, cs) - else - { - execute_branch_pcc({cs_val with - sealed=false, - otype=zeros() - }); - inCCallDelay = 0b1; - C26 = capStructToCapReg({cb_val with - sealed=false, - otype=zeros() - }); - } -} - -union clause ast = CReturn : unit -function clause execute (CReturn()) = -{ - checkCP2usable(); - raise_c2_exception_noreg(CapEx_ReturnTrap) -} - -union clause ast = CBX : (regno, bits(16), bool) -function clause execute (CBX(cb, imm, notset)) = -{ - checkCP2usable(); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if (((readCapReg(cb)).tag) ^ notset) then - { - let offset : bits(64) = (sign_extend(imm @ 0b00) + 4) in - execute_branch(PC + offset); - } -} - -union clause ast = CBZ : (regno, bits(16), bool) -function clause execute (CBZ(cb, imm, notzero)) = -{ - checkCP2usable(); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if (((readCapReg(cb)) == null_cap) ^ notzero) then - { - let offset : bits(64) = (sign_extend(imm @ 0b00) + 4) in - execute_branch(PC + offset); - } -} - -union clause ast = CJALR : (regno, regno, bool) -function clause execute(CJALR(cd, cb, link)) = -{ - checkCP2usable(); - cb_val = readCapReg(cb); - cb_ptr = getCapCursor(cb_val); - cb_top = getCapTop(cb_val); - cb_base= getCapBase(cb_val); - if (link & register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if not (cb_val.permit_execute) then - raise_c2_exception(CapEx_PermitExecuteViolation, cb) - else if (cb_ptr < cb_base) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if ((cb_ptr + 4) > cb_top) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if ((cb_ptr % 4) != 0) then - SignalException(AdEL) - else - { - if (link) then - let pcc = capRegToCapStruct(PCC) in - let (success, linkCap) = setCapOffset(pcc, PC+8) in - if (success) then - writeCapReg(cd, linkCap) - else - assert(false, ""); - execute_branch_pcc(cb_val); - } -} - -union clause ast = CLoad : (regno, regno, regno, bits(8), bool, WordType, bool) -function clause execute (CLoad(rd, cb, rt, offset, signext, width, linked)) = -{ - checkCP2usable(); - cb_val = readCapRegDDC(cb); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if not (cb_val.permit_load) then - raise_c2_exception(CapEx_PermitLoadViolation, cb) - else - { - let 'size = wordWidthBytes(width); - let cursor = getCapCursor(cb_val); - let vAddr = (cursor + unsigned(rGPR(rt)) + size*signed(offset)) % pow2(64); - let vAddr64 = to_bits(64, vAddr); - if ((vAddr + size) > getCapTop(cb_val)) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if (vAddr < getCapBase(cb_val)) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if not (isAddressAligned(vAddr64, width)) then - SignalExceptionBadAddr(AdEL, vAddr64) - else - { - pAddr = (TLBTranslate(vAddr64, LoadData)); - memResult : bits(64) = if (linked) then - { - CP0LLBit = 0b1; - CP0LLAddr = pAddr; - extendLoad(MEMr_reserve_wrapper(pAddr, size), signext) - } - else - extendLoad(MEMr_wrapper(pAddr, size), signext); - wGPR(rd) = memResult; - } - } -} - -union clause ast = CStore : (regno, regno, regno, regno, bits(8), WordType, bool) - -function clause execute (CStore(rs, cb, rt, rd, offset, width, conditional)) = -{ - checkCP2usable(); - cb_val = readCapRegDDC(cb); - if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if not (cb_val.permit_store) then - raise_c2_exception(CapEx_PermitStoreViolation, cb) - else - { - size = wordWidthBytes(width); - cursor = getCapCursor(cb_val); - vAddr = (cursor + unsigned(rGPR(rt)) + size * signed(offset)) % pow2(64); - vAddr64= to_bits(64, vAddr); - if ((vAddr + size) > getCapTop(cb_val)) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if (vAddr < getCapBase(cb_val)) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if not (isAddressAligned(vAddr64, width)) then - SignalExceptionBadAddr(AdES, vAddr64) - else - { - pAddr = (TLBTranslate(vAddr64, StoreData)); - rs_val = rGPR(rs); - if (conditional) then - { - success : bool = if (CP0LLBit[0]) then - match width - { - B => MEMw_conditional_wrapper(pAddr, 1, rs_val[7..0]), - H => MEMw_conditional_wrapper(pAddr, 2, rs_val[15..0]), - W => MEMw_conditional_wrapper(pAddr, 4, rs_val[31..0]), - D => MEMw_conditional_wrapper(pAddr, 8, rs_val) - } - else - false; - wGPR(rd) = zero_extend(success); - } - else - match width - { - B => MEMw_wrapper(pAddr, 1) = rs_val[7..0], - H => MEMw_wrapper(pAddr, 2) = rs_val[15..0], - W => MEMw_wrapper(pAddr, 4) = rs_val[31..0], - D => MEMw_wrapper(pAddr, 8) = rs_val - } - } - } -} - -union clause ast = CSC : (regno, regno, regno, regno, bits(11), bool) -function clause execute (CSC(cs, cb, rt, rd, offset, conditional)) = -{ - checkCP2usable(); - cs_val = readCapReg(cs); - cb_val = readCapRegDDC(cb); - if (register_inaccessible(cs)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cs) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if not (cb_val.permit_store) then - raise_c2_exception(CapEx_PermitStoreViolation, cb) - else if not (cb_val.permit_store_cap) then - raise_c2_exception(CapEx_PermitStoreCapViolation, cb) - else if not (cb_val.permit_store_local_cap) & (cs_val.tag) & not (cs_val.global) then - raise_c2_exception(CapEx_PermitStoreLocalCapViolation, cb) - else - { - cursor = getCapCursor(cb_val); - vAddr = (cursor + unsigned(rGPR(rt)) + 16 * signed(offset)) % pow2(64); - vAddr64= to_bits(64, vAddr); - if ((vAddr + cap_size) > getCapTop(cb_val)) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if (vAddr < getCapBase(cb_val)) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if ((vAddr % cap_size) != 0) then - SignalExceptionBadAddr(AdES, vAddr64) - else - { - let (pAddr, noStoreCap) = TLBTranslateC(vAddr64, StoreData) in - if (cs_val.tag & noStoreCap) then - raise_c2_exception(CapEx_TLBNoStoreCap, cs) - else if (conditional) then - { - success = if (CP0LLBit[0]) then - MEMw_tagged_conditional(pAddr, cs_val.tag, capStructToMemBits(cs_val)) - else - false; - wGPR(rd) = zero_extend(success); - } - else - MEMw_tagged(pAddr, cs_val.tag, capStructToMemBits(cs_val)); - } - } -} - -union clause ast = CLC : (regno, regno, regno, bits(16), bool) -function clause execute (CLC(cd, cb, rt, offset, linked)) = -{ - checkCP2usable(); - cb_val = readCapRegDDC(cb); - if (register_inaccessible(cd)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cd) - else if (register_inaccessible(cb)) then - raise_c2_exception(CapEx_AccessSystemRegsViolation, cb) - else if not (cb_val.tag) then - raise_c2_exception(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - raise_c2_exception(CapEx_SealViolation, cb) - else if not (cb_val.permit_load) then - raise_c2_exception(CapEx_PermitLoadViolation, cb) - else - { - cursor = getCapCursor(cb_val); - vAddr = (cursor + unsigned(rGPR(rt)) + 16 * signed(offset)) % pow2(64); - vAddr64= to_bits(64, vAddr); - if ((vAddr + cap_size) > getCapTop(cb_val)) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if (vAddr < getCapBase(cb_val)) then - raise_c2_exception(CapEx_LengthViolation, cb) - else if ((vAddr % cap_size) != 0) then - SignalExceptionBadAddr(AdEL, vAddr64) - else - { - let (pAddr, suppressTag) = TLBTranslateC(vAddr64, LoadData) in - let 'cd = unsigned(cd) in - if (linked) then - { - CP0LLBit = 0b1; - CP0LLAddr = pAddr; - let (tag, mem) = MEMr_tagged_reserve(pAddr) in - (*CapRegs[cd]) = memBitsToCapBits(tag & (cb_val.permit_load_cap) & (not (suppressTag)), mem); - } - else - { - let (tag, mem) = MEMr_tagged(pAddr) in - (*CapRegs[cd]) = memBitsToCapBits(tag & (cb_val.permit_load_cap) & (not (suppressTag)), mem); - } - } - } -} - -union clause ast = C2Dump : regno -function clause execute (C2Dump (rt)) = - () /* Currently a NOP */ diff --git a/cheri/cheri_prelude_128.sail b/cheri/cheri_prelude_128.sail deleted file mode 100644 index da761c91..00000000 --- a/cheri/cheri_prelude_128.sail +++ /dev/null @@ -1,331 +0,0 @@ -/*========================================================================*/ -/* */ -/* Copyright (c) 2015-2017 Robert M. Norton */ -/* Copyright (c) 2015-2017 Kathyrn Gray */ -/* All rights reserved. */ -/* */ -/* This software was developed by the University of Cambridge Computer */ -/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */ -/* (REMS) project, funded by EPSRC grant EP/K008528/1. */ -/* */ -/* Redistribution and use in source and binary forms, with or without */ -/* modification, are permitted provided that the following conditions */ -/* are met: */ -/* 1. Redistributions of source code must retain the above copyright */ -/* notice, this list of conditions and the following disclaimer. */ -/* 2. Redistributions in binary form must reproduce the above copyright */ -/* notice, this list of conditions and the following disclaimer in */ -/* the documentation and/or other materials provided with the */ -/* distribution. */ -/* */ -/* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' */ -/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */ -/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */ -/* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR */ -/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ -/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */ -/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF */ -/* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND */ -/* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */ -/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */ -/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF */ -/* SUCH DAMAGE. */ -/*========================================================================*/ - -/* 128 bit cap + tag */ -type CapReg = bits(129) - -struct CapStruct = { - tag : bool , - uperms : bits(4) , - access_system_regs : bool , - permit_unseal : bool , - permit_ccall : bool , - permit_seal : bool , - permit_store_local_cap : bool , - permit_store_cap : bool , - permit_load_cap : bool , - permit_store : bool , - permit_load : bool , - permit_execute : bool , - global : bool , - reserved : bits(2) , - E : bits(6) , - sealed : bool , - B : bits(20), - T : bits(20), - otype : bits(24), - address : bits(64) -} - -let null_cap : CapStruct = struct { - tag = false, - uperms = zeros(), - access_system_regs = false, - permit_unseal = false, - permit_ccall = false, - permit_seal = false, - permit_store_local_cap = false, - permit_store_cap = false, - permit_load_cap = false, - permit_store = false, - permit_load = false, - permit_execute = false, - global = false, - reserved = zeros(), - E = 0b110000, /* 48, encoded as 0 in memory due to xor */ - sealed = false, - B = zeros(), - T = 0x10000, - otype = zeros(), - address = zeros() -} - -let default_cap : CapStruct = struct { - tag = true, - uperms = ones(), - access_system_regs = true, - permit_unseal = true, - permit_ccall = true, - permit_seal = true, - permit_store_local_cap = true, - permit_store_cap = true, - permit_load_cap = true, - permit_store = true, - permit_load = true, - permit_execute = true, - global = true, - reserved = zeros(), - E = 0b110000, /* 48, encoded as 0 in memory due to xor */ - sealed = false, - B = zeros(), - T = 0x10000, - otype = zeros(), - address = zeros() -} - -let 'cap_size = 16 - -function capRegToCapStruct(c) : CapReg -> CapStruct = - let s : bool = c[104] in - let Bc : bits(20) = if s then c[103..96] @ 0x000 else c[103..84] in - let Tc : bits(20) = if s then c[83..76] @ 0x000 else c[83..64] in - let otype : bits(24) = if s then c[95..84] @ c[75..64] else zeros() in - struct { - tag = c[128], - uperms = c[127..124], - access_system_regs = c[123], - permit_unseal = c[122], - permit_ccall = c[121], - permit_seal = c[120], - permit_store_local_cap = c[119], - permit_store_cap = c[118], - permit_load_cap = c[117], - permit_store = c[116], - permit_load = c[115], - permit_execute = c[114], - global = c[113], - reserved = c[112..111], - E = c[110..105], - sealed = s, - B = Bc, - T = Tc, - otype = otype, - address = c[63..0] - } - -function getCapHardPerms(cap) : CapStruct -> bits(11) = - (cap.access_system_regs - @ cap.permit_unseal - @ cap.permit_ccall - @ cap.permit_seal - @ cap.permit_store_local_cap - @ cap.permit_store_cap - @ cap.permit_load_cap - @ cap.permit_store - @ cap.permit_load - @ cap.permit_execute - @ cap.global) - -function capStructToMemBits128(cap) : CapStruct -> bits(128) = - let b : bits(20) = if cap.sealed then (cap.B)[19..12] @ (cap.otype)[23..12] else cap.B in - let t : bits(20) = if cap.sealed then (cap.T)[19..12] @ (cap.otype)[11..0] else cap.T in - ( cap.uperms - @ getCapHardPerms(cap) - @ cap.reserved - @ cap.E - @ cap.sealed - @ b - @ t - @ cap.address - ) - -function capStructToCapReg(cap) : CapStruct -> CapReg = - (cap.tag @ capStructToMemBits128(cap)) - -/* Reverse of above used when reading from memory */ -function memBitsToCapBits128(tag, b) : (bool, bits(128)) -> CapReg= - (tag @ b) - -/* When saving/restoring capabilities xor them with bits of null_cap -- - this ensures that canonical null_cap is always all-zeros in memory - even though it may have bits set logically (e.g. length or exponent */ - -let null_cap_bits : bits(128) = capStructToMemBits128(null_cap) - -function capStructToMemBits(cap) : CapStruct -> bits(128) = - capStructToMemBits128(cap) ^ null_cap_bits - -function memBitsToCapBits(tag, b) : (bool, bits(128)) -> bits(129) = - memBitsToCapBits128(tag, b ^ null_cap_bits) - -function getCapPerms(cap) : CapStruct -> bits(31) = - let perms : bits(15) = zero_extend(getCapHardPerms(cap)) in - (0x000 /* uperms 30-19 */ - @ cap.uperms - @ perms) - -function setCapPerms(cap, perms) : (CapStruct, bits(31)) -> CapStruct = - { cap with - uperms = perms[18..15], - /* 14..11 reserved -- ignore */ - access_system_regs = perms[10], - permit_unseal = perms[9], - permit_ccall = perms[8], - permit_seal = perms[7], - permit_store_local_cap = perms[6], - permit_store_cap = perms[5], - permit_load_cap = perms[4], - permit_store = perms[3], - permit_load = perms[2], - permit_execute = perms[1], - global = perms[0] - } - -function sealCap(cap, otype) : (CapStruct, bits(24)) -> (bool, CapStruct) = - if (((cap.T)[11..0] == zeros()) & ((cap.B)[11..0] == zeros())) then - (true, {cap with sealed=true, otype=otype}) - else - (false, cap /* XXX should be undefined? */ ) - -function a_top_correction(a_mid, R, bound) : (bits(20), bits(20), bits(20)) -> bits(65) = - match (a_mid <_u R, bound <_u R) { - (false, false) => zeros(), - (false, true) => zero_extend(0b1), - (true, false) => ones(), - (true, true) => zeros() - } - -function getCapBase(c) : CapStruct -> uint64 = - let E = min(unsigned(c.E), 48) in - let Bc : bits(20) = c.B in - let a : bits(65) = zero_extend(c.address) in - let R : bits(20) = Bc - 0x01000 in /* wraps */ - let a_mid : bits(20) = mask(a >> E) in - let correction = a_top_correction(a_mid, R, Bc) in - let a_top = a >> E+20 in - let base : bits(64) = mask(((a_top + correction) @ Bc) << E) in - unsigned(base) - -function getCapTop (c) : CapStruct -> CapLen = - let E = min(unsigned(c.E), 48) in - let Bc : bits(20) = c.B in - let T : bits(20) = c.T in - let a : bits(65) = zero_extend(c.address) in - let R : bits(20) = Bc - 0x01000 in /* wraps */ - let a_mid : bits(20) = mask(a >> E) in - let correction = a_top_correction(a_mid, R, T) in - let a_top = a >> E+20 in - let top1 : bits(65) = mask((a_top + correction) @ T) in - unsigned(top1 << E) - -function getCapOffset(c) : CapStruct -> uint64 = - let base = getCapBase(c) in - (unsigned(c.address) - base) % pow2(64) - -function getCapLength(c) : CapStruct -> CapLen = - let 'top = getCapTop(c) in - let 'base = getCapBase(c) in { - assert (top >= base); - top - base - } - -function getCapCursor(cap) : CapStruct -> uint64 = unsigned(cap.address) - -function fastRepCheck(c, i) : (CapStruct, bits(64)) -> bool= - let 'E = unsigned(c.E) in - if (E >= 44) then - true /* in this case representable region is whole address space */ - else - let E' = min(E, 43) in - let i_top = signed(i[63..E+20]) in - let i_mid : bits(20) = i[E+19..E] in - let a_mid : bits(20) = (c.address)[E+19..E] in - let R : bits(20) = (c.B) - 0x01000 in - let diff : bits(20) = R - a_mid in - let diff1 : bits(20) = diff - 1 in - /* i_top determines 1. whether the increment is inRange - i.e. less than the size of the representable region - (2**(E+20)) and 2. whether it is positive or negative. To - satisfy 1. all top bits must be the same so we are - interested in the cases i_top is 0 or -1 */ - if (i_top == 0) then - i_mid <_u diff1 - else if (i_top == -1) then - (i_mid >=_u diff) & (R != a_mid) - else - false - -function setCapOffset(c, offset) : (CapStruct, bits(64)) -> (bool, CapStruct) = - let base : bits(64) = to_bits(64, getCapBase(c)) in - let newAddress : bits(64) = base + offset in - let newCap = { c with address = newAddress } in - let representable = fastRepCheck(c, (newAddress - c.address)) in - (representable, newCap) - -function incCapOffset(c, delta) : (CapStruct, bits(64)) -> (bool, CapStruct) = - let newAddress : bits(64) = c.address + delta in - let newCap = { c with address = newAddress } in - let representable = fastRepCheck(c, delta) in - (representable, newCap) - -/** FUNCTION:integer HighestSetBit(bits(N) x) */ - -val HighestSetBit : forall 'N , 'N >= 2. bits('N) -> {'n, 0 <= 'n < 'N . (bool, atom('n))} -function HighestSetBit x = { - foreach (i from ('N - 1) to 0 by 1 in dec) - if [x[i]] == 0b1 then return (true, i); - return (false, 0) -} - -/* hw rounds up E to multiple of 4 */ -function roundUp(e) : range(0, 45) -> range(0, 48) = - let 'r = e % 4 in - if (r == 0) - then e - else (e - r + 4) - -function computeE (rlength) : bits(65) -> range(0, 48) = - let (nonzero, 'msb) = HighestSetBit((rlength + (rlength >> 6)) >> 19) in - if nonzero then - /* above will always return <= 45 because 19 bits of zero are shifted in from right */ - {assert(0 <= msb & msb <= 45); roundUp (min(msb,45)) } - else - 0 - -function setCapBounds(cap, base, top) : (CapStruct, bits(64), bits(65)) -> (bool, CapStruct) = - /* {cap with base=base; length=(bits(64)) length; offset=0} */ - let 'e = computeE(top - (0b0 @ base)) in - let Bc : bits(20) = mask(base >> e) in - let T : bits(20) = mask(top >> e) in - let e_mask : bits(65) = zero_extend(replicate_bits(0b1, e)) in - let e_bits = top & e_mask in - let T2 : bits(20) = T + (if unsigned(e_bits) == 0 then 0x00000 else 0x00001) in - let newCap = {cap with address=base, E=to_bits(6, e), B=Bc, T=T2} in - let newBase = getCapBase(newCap) in - let newTop = getCapTop(newCap) in - let exact = (unsigned(base) == newBase) & (unsigned(top) == newTop) in - (exact, newCap) - -function int_to_cap (offset) : bits(64) -> CapStruct = - {null_cap with address = offset} diff --git a/cheri/cheri_prelude_256.sail b/cheri/cheri_prelude_256.sail deleted file mode 100644 index 08e285e7..00000000 --- a/cheri/cheri_prelude_256.sail +++ /dev/null @@ -1,229 +0,0 @@ -/*========================================================================*/ -/* */ -/* Copyright (c) 2015-2017 Robert M. Norton */ -/* Copyright (c) 2015-2017 Kathyrn Gray */ -/* All rights reserved. */ -/* */ -/* This software was developed by the University of Cambridge Computer */ -/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */ -/* (REMS) project, funded by EPSRC grant EP/K008528/1. */ -/* */ -/* Redistribution and use in source and binary forms, with or without */ -/* modification, are permitted provided that the following conditions */ -/* are met: */ -/* 1. Redistributions of source code must retain the above copyright */ -/* notice, this list of conditions and the following disclaimer. */ -/* 2. Redistributions in binary form must reproduce the above copyright */ -/* notice, this list of conditions and the following disclaimer in */ -/* the documentation and/or other materials provided with the */ -/* distribution. */ -/* */ -/* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' */ -/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */ -/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */ -/* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR */ -/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ -/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */ -/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF */ -/* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND */ -/* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */ -/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */ -/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF */ -/* SUCH DAMAGE. */ -/*========================================================================*/ - -/* 256 bit cap + tag */ -type CapReg = bits(257) - -struct CapStruct = { - tag : bool , - padding : bits(8) , - otype : bits(24), - uperms : bits(16), - perm_reserved11_14 : bits(4) , - access_system_regs : bool , - permit_unseal : bool , - permit_ccall : bool , - permit_seal : bool , - permit_store_local_cap : bool , - permit_store_cap : bool , - permit_load_cap : bool , - permit_store : bool , - permit_load : bool , - permit_execute : bool , - global : bool , - sealed : bool , - address : bits(64), - base : bits(64), - length : bits(64), -} - -let null_cap : CapStruct = struct { - tag = false, - padding = zeros(), - otype = zeros(), - uperms = zeros(), - perm_reserved11_14 = zeros(), - access_system_regs = false, - permit_unseal = false, - permit_ccall = false, - permit_seal = false, - permit_store_local_cap = false, - permit_store_cap = false, - permit_load_cap = false, - permit_store = false, - permit_load = false, - permit_execute = false, - global = false, - sealed = false, - address = zeros(), - base = zeros(), - length = 0xffffffffffffffff -} - -let default_cap : CapStruct = struct { - tag = true, - padding = zeros(), - otype = zeros(), - uperms = ones(), - perm_reserved11_14 = zeros(), - access_system_regs = true, - permit_unseal = true, - permit_ccall = true, - permit_seal = true, - permit_store_local_cap = true, - permit_store_cap = true, - permit_load_cap = true, - permit_store = true, - permit_load = true, - permit_execute = true, - global = true, - sealed = false, - address = zeros(), - base = zeros(), - length = 0xffffffffffffffff -} - -let 'cap_size = 32 - -function capRegToCapStruct(capReg) : CapReg -> CapStruct = - struct { - tag = capReg[256], - padding = capReg[255..248], - otype = capReg[247..224], - uperms = capReg[223..208], - perm_reserved11_14 = capReg[207..204], - access_system_regs = capReg[203], - permit_unseal = capReg[202], - permit_ccall = capReg[201], - permit_seal = capReg[200], - permit_store_local_cap = capReg[199], - permit_store_cap = capReg[198], - permit_load_cap = capReg[197], - permit_store = capReg[196], - permit_load = capReg[195], - permit_execute = capReg[194], - global = capReg[193], - sealed = capReg[192], - address = capReg[191..128], - base = capReg[127..64], - length = capReg[63..0] - } - -function getCapPerms(cap) : CapStruct -> bits(31) = - ( - cap.uperms - @ cap.perm_reserved11_14 - @ cap.access_system_regs - @ cap.permit_unseal - @ cap.permit_ccall - @ cap.permit_seal - @ cap.permit_store_local_cap - @ cap.permit_store_cap - @ cap.permit_load_cap - @ cap.permit_store - @ cap.permit_load - @ cap.permit_execute - @ cap.global - ) - - -/* Function to convert capabilities to in-memory format. */ -function capStructToMemBits256(cap) : CapStruct -> bits(256) = - ( - cap.padding - @ cap.otype - @ getCapPerms(cap) - @ cap.sealed - @ cap.address - @ cap.base - @ cap.length - ) - - -/* When saving/restoring capabilities xor them with bits of null_cap -- - this ensures that canonical null_cap is always all-zeros in memory - even though it may have bits set logically (e.g. length or exponent) */ - -let null_cap_bits : bits(256) = capStructToMemBits256(null_cap) - -function capStructToMemBits(cap) : CapStruct -> bits(256)= - capStructToMemBits256(cap) ^ null_cap_bits - -function memBitsToCapBits(tag, b) : (bool, bits(256)) -> bits(257) = - tag @ (b ^ null_cap_bits) - -function capStructToCapReg(cap) : CapStruct -> CapReg = cap.tag @ capStructToMemBits256(cap) - -function setCapPerms(cap, perms) : (CapStruct, bits(31)) -> CapStruct = - { cap with - uperms = perms[30..15], - /* perm_reserved11_14 = perms[14..11], XXX should allow to set? only affects cbuildcap. */ - access_system_regs = perms[10], - permit_unseal = perms[9], - permit_ccall = perms[8], - permit_seal = perms[7], - permit_store_local_cap = perms[6], - permit_store_cap = perms[5], - permit_load_cap = perms[4], - permit_store = perms[3], - permit_load = perms[2], - permit_execute = perms[1], - global = perms[0] - } - -function sealCap(cap, otype) : (CapStruct, bits(24)) -> (bool, CapStruct) = - (true, {cap with sealed=true, otype=otype}) - -function getCapBase(c) : CapStruct -> uint64 = unsigned(c.base) -function getCapTop(c) : CapStruct -> CapLen = unsigned(c.base) + unsigned(c.length) /* XXX bug here? -- should be mod 2^64 */ -function getCapOffset(c) : CapStruct -> uint64 = (unsigned(c.address) - unsigned(c.base)) % (pow2(64)) -function getCapLength(c) : CapStruct -> CapLen = unsigned(c.length) - -function getCapCursor(c) : CapStruct -> uint64 = unsigned(c.address) - -/*! -Set the offset capability of the a capability to given value and return the result, along with a boolean indicating true if the operation preserved the existing bounds of the capability. When using compressed capabilities, setting the offset far outside the capability bounds can cause the result to become unrepresentable (XXX mention guarantees). Additionally in some implementations a fast representablity check may be used that could cause the operation to return failure even though the capability would be representable (XXX provide details). - */ -val setCapOffset : (CapStruct, bits(64)) -> (bool, CapStruct) -function setCapOffset(c, offset) = - (true, {c with address=c.base + offset}) - -/*! -\function{incCapOffset} is the same as \function{setCapOffset} except that the 64-bit value is added to the current capability offset modulo $2^{64}$ (i.e. signed twos-complement arithemtic). - */ -val incCapOffset : (CapStruct, bits(64)) -> (bool, CapStruct) -function incCapOffset(c, delta) = - let newAddr : bits(64) = c.address + delta in - (true, {c with address = newAddr}) - -/*! -Returns a capability derived from the given capability by setting the base and top to values provided. The offset of the resulting capability is zero. In case the requested bounds are not exactly representable the returned boolean is false and the returned capability has bounds at least including the region bounded by base and top but rounded to representable values. - */ -val setCapBounds : (CapStruct, bits(64), bits(65)) -> (bool, CapStruct) -function setCapBounds(cap, base, top) = - let length : bits(65) = top - (0b0 @ base) in - (true, {cap with base = base, length = length[63..0], address = base}) - -function int_to_cap (address) : bits(64) -> CapStruct = - {null_cap with address = address} diff --git a/cheri/cheri_prelude_common.sail b/cheri/cheri_prelude_common.sail deleted file mode 100644 index 764a4ff1..00000000 --- a/cheri/cheri_prelude_common.sail +++ /dev/null @@ -1,534 +0,0 @@ -/*========================================================================*/ -/* */ -/* Copyright (c) 2015-2017 Robert M. Norton */ -/* Copyright (c) 2015-2017 Kathyrn Gray */ -/* All rights reserved. */ -/* */ -/* This software was developed by the University of Cambridge Computer */ -/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */ -/* (REMS) project, funded by EPSRC grant EP/K008528/1. */ -/* */ -/* Redistribution and use in source and binary forms, with or without */ -/* modification, are permitted provided that the following conditions */ -/* are met: */ -/* 1. Redistributions of source code must retain the above copyright */ -/* notice, this list of conditions and the following disclaimer. */ -/* 2. Redistributions in binary form must reproduce the above copyright */ -/* notice, this list of conditions and the following disclaimer in */ -/* the documentation and/or other materials provided with the */ -/* distribution. */ -/* */ -/* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' */ -/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */ -/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */ -/* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR */ -/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ -/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */ -/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF */ -/* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND */ -/* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */ -/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */ -/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF */ -/* SUCH DAMAGE. */ -/*========================================================================*/ - - -scattered union ast - -val execute : ast -> unit effect {barr, eamem, escape, rmem, rmemt, rreg, undef, wmv, wmvt, wreg} -scattered function execute - -val decode : bits(32) -> option(ast) effect pure -scattered function decode - -register PCC : CapReg -register nextPCC : CapReg -register delayedPCC : CapReg -register inCCallDelay : bits(1) -register DDC : CapReg -register C01 : CapReg -register C02 : CapReg -register C03 : CapReg -register C04 : CapReg -register C05 : CapReg -register C06 : CapReg -register C07 : CapReg -register C08 : CapReg -register C09 : CapReg -register C10 : CapReg -register C11 : CapReg -register C12 : CapReg -register C13 : CapReg -register C14 : CapReg -register C15 : CapReg -register C16 : CapReg -register C17 : CapReg -register C18 : CapReg -register C19 : CapReg -register C20 : CapReg -register C21 : CapReg -register C22 : CapReg -register C23 : CapReg -register C24 : CapReg /* aka return code capability, RCC */ -register C25 : CapReg -register C26 : CapReg /* aka invoked data capability, IDC */ -register C27 : CapReg -register C28 : CapReg -register C29 : CapReg -register C30 : CapReg -register C31 : CapReg - -register CTLSU : CapReg /* User thread local storage capabiltiy */ -register CTLSP : CapReg /* Privileged thread local storage capabiltiy */ -register KR1C : CapReg /* kernel reserved capability 1 */ -register KR2C : CapReg /* kernel reserved capability 2 */ -register KCC : CapReg /* kernel code capability */ -register KDC : CapReg /* kernel data capability */ -register EPCC : CapReg /* exception program counter capability */ - -let IDCNO : regno = 0b11010 /* C26, invoked data capability used be CCall */ - -/* Special register used to have these numbers -- here for transition purposes */ -let KR1CNO : regno = 0b11011 /* C27 */ -let KR2CNO : regno = 0b11100 /* C28 */ -let KCCNO : regno = 0b11101 /* C29 */ -let KDCNO : regno = 0b11110 /* C30 */ -let EPCCNO : regno = 0b11111 /* C31 */ - -let CapRegs : vector(32, dec, register(CapReg)) = - [ - ref C31, - ref C30, - ref C29, - ref C28, - ref C27, - ref C26, - ref C25, - ref C24, - ref C23, - ref C22, - ref C21, - ref C20, - ref C19, - ref C18, - ref C17, - ref C16, - ref C15, - ref C14, - ref C13, - ref C12, - ref C11, - ref C10, - ref C09, - ref C08, - ref C07, - ref C06, - ref C05, - ref C04, - ref C03, - ref C02, - ref C01, - ref DDC - ] - -let max_otype = MAX(24) /*0xffffff*/ -let have_cp2 = true - -/*! -This function reads a given capability register and returns its contents converted to a CapStruct. -If the argument is zero then the null capability is returned. -*/ -val readCapReg : regno -> CapStruct effect {rreg} -function readCapReg(n) = - if (n == 0b00000) then - null_cap - else - let i = unsigned(n) in - capRegToCapStruct(reg_deref(CapRegs[i])) - -/*! -This is the same as readCapReg except that when the argument is zero the value of DDC is returned -instead of the null capability. This is used for instructions that expect an address, where using -null would always generate an exception. -*/ -val readCapRegDDC : regno -> CapStruct effect {rreg} -function readCapRegDDC(n) = - let i = unsigned(n) in - capRegToCapStruct(reg_deref(CapRegs[i])) /* NB CapRegs[0] is points to DDC */ - -function writeCapReg(n, cap) : (regno, CapStruct) -> unit = - if (n == 0b00000) then - () - else - let i = unsigned(n) in - (*CapRegs[i]) = capStructToCapReg(cap) - -enum CapEx = { - CapEx_None, - CapEx_LengthViolation, - CapEx_TagViolation, - CapEx_SealViolation, - CapEx_TypeViolation, - CapEx_CallTrap, - CapEx_ReturnTrap, - CapEx_TSSUnderFlow, - CapEx_UserDefViolation, - CapEx_TLBNoStoreCap, - CapEx_InexactBounds, - CapEx_GlobalViolation, - CapEx_PermitExecuteViolation, - CapEx_PermitLoadViolation, - CapEx_PermitStoreViolation, - CapEx_PermitLoadCapViolation, - CapEx_PermitStoreCapViolation, - CapEx_PermitStoreLocalCapViolation, - CapEx_PermitSealViolation, - CapEx_AccessSystemRegsViolation, - CapEx_PermitCCallViolation, - CapEx_AccessCCallIDCViolation, - CapEx_PermitUnsealViolation -} - -function CapExCode(ex) : CapEx -> bits(8)= - match ex { - CapEx_None => 0x00, - CapEx_LengthViolation => 0x01, - CapEx_TagViolation => 0x02, - CapEx_SealViolation => 0x03, - CapEx_TypeViolation => 0x04, - CapEx_CallTrap => 0x05, - CapEx_ReturnTrap => 0x06, - CapEx_TSSUnderFlow => 0x07, - CapEx_UserDefViolation => 0x08, - CapEx_TLBNoStoreCap => 0x09, - CapEx_InexactBounds => 0x0a, - CapEx_GlobalViolation => 0x10, - CapEx_PermitExecuteViolation => 0x11, - CapEx_PermitLoadViolation => 0x12, - CapEx_PermitStoreViolation => 0x13, - CapEx_PermitLoadCapViolation => 0x14, - CapEx_PermitStoreCapViolation => 0x15, - CapEx_PermitStoreLocalCapViolation => 0x16, - CapEx_PermitSealViolation => 0x17, - CapEx_AccessSystemRegsViolation => 0x18, - CapEx_PermitCCallViolation => 0x19, - CapEx_AccessCCallIDCViolation => 0x1a, - CapEx_PermitUnsealViolation => 0x1b - } - -bitfield CapCauseReg : bits(16) = { - ExcCode : 15..8, - RegNum : 7..0, -} - -register CapCause : CapCauseReg - -val execute_branch_pcc : CapStruct -> unit effect {wreg} -function execute_branch_pcc(newPCC) = { - delayedPC = to_bits(64, getCapOffset(newPCC)); - delayedPCC = capStructToCapReg(newPCC); - branchPending = 0b1; -} - -function SignalException (ex) = - { - if (not (CP0Status.EXL())) then { - let pc = PC in - let pcc = capRegToCapStruct(PCC) in - let (success, epcc) = setCapOffset(pcc, pc) in - if (success) then - EPCC = capStructToCapReg(epcc) - else - EPCC = capStructToCapReg(int_to_cap(to_bits(64, getCapBase(pcc)) + unsigned(pc))); - }; - - nextPCC = KCC; - delayedPCC = KCC; /* always write delayedPCC together with nextPCC so - that non-capability branches don't override PCC */ - let base = getCapBase(capRegToCapStruct(KCC)) in - SignalExceptionMIPS(ex, to_bits(64, base)); - } - -function ERETHook() : unit -> unit = - { - nextPCC = EPCC; - delayedPCC = EPCC; /* always write delayedPCC together with nextPCC so - that non-capability branches don't override PCC */ - } - -val raise_c2_exception8 : forall ('o : Type) . (CapEx, bits(8)) -> 'o effect {escape, rreg, wreg} -function raise_c2_exception8(capEx, regnum) = - { - CapCause->ExcCode() = CapExCode(capEx); - CapCause->RegNum() = regnum; - let mipsEx = - if ((capEx == CapEx_CallTrap) | (capEx == CapEx_ReturnTrap)) - then C2Trap else C2E in - SignalException(mipsEx); - } - -val raise_c2_exception : forall ('o : Type) . (CapEx, regno) -> 'o effect {escape, rreg, wreg} -function raise_c2_exception(capEx, regnum) = - let reg8 = 0b000 @ regnum in - if ((capEx == CapEx_AccessSystemRegsViolation) & (regnum == IDCNO)) then - raise_c2_exception8(CapEx_AccessCCallIDCViolation, reg8) - else - raise_c2_exception8(capEx, reg8) - -val raise_c2_exception_noreg : forall ('o : Type) . (CapEx) -> 'o effect {escape, rreg, wreg} -function raise_c2_exception_noreg(capEx) = - raise_c2_exception8(capEx, 0xff) - -val pcc_access_system_regs : unit -> bool effect {rreg} -function pcc_access_system_regs () = - let pcc = capRegToCapStruct(PCC) in - (pcc.access_system_regs) - -/*! -The following function should be called before reading or writing any capability register to check whether it is one of the protected system capabilities. Although it is usually a general purpose capabilty the invoked data capabiltiy (IDC) is restricted in the branch delay slot of the CCall (selector one) instruction to protect the confidentiality and integrity of the invoked sandbox. - */ -val register_inaccessible : regno -> bool effect {rreg} -function register_inaccessible(r) = - ((r == IDCNO) & inCCallDelay) | - ((r == KR1CNO | - r == KR2CNO | - r == KDCNO | - r == KCCNO | - r == EPCCNO) & not (pcc_access_system_regs ())) - -val MEMr_tag = "read_tag_bool" : bits(64) -> bool effect { rmemt } -val MEMw_tag = "write_tag_bool" : (bits(64) , bool) -> unit effect { wmvt } - -val MEMr_tagged : bits(64) -> (bool, bits('cap_size * 8)) effect { escape, rmem, rmemt } -function MEMr_tagged (addr) = -{ - /* assumes addr is cap. aligned */ - assert(unsigned(addr) % cap_size == 0); - let tag = MEMr_tag(addr) in - let data = MEMr(addr, cap_size) in - (tag, reverse_endianness(data)) -} - -val MEMr_tagged_reserve : bits(64) -> (bool, bits('cap_size * 8)) effect { escape, rmem, rmemt } -function MEMr_tagged_reserve (addr) = -{ - /* assumes addr is cap. aligned */ - assert(unsigned(addr) % cap_size == 0); - let tag = MEMr_tag(addr) in - let data = MEMr_reserve(addr, cap_size) in - (tag, reverse_endianness(data)) -} - -val MEMw_tagged : (bits(64), bool, bits('cap_size * 8)) -> unit effect { escape, eamem, wmv, wmvt } -function MEMw_tagged(addr, tag, data) = -{ - /* assumes addr is cap. aligned */ - assert(unsigned(addr) % cap_size == 0); - MEMea(addr, cap_size); - MEMval(addr, cap_size, reverse_endianness(data)); - MEMw_tag(addr, tag); -} - -val MEMw_tagged_conditional : (bits(64), bool, bits('cap_size * 8)) -> bool effect { escape, eamem, wmv, wmvt } -function MEMw_tagged_conditional(addr, tag, data) = -{ - /* assumes addr is cap. aligned */ - assert(unsigned(addr) % cap_size == 0); - MEMea_conditional(addr, cap_size); - success = MEMval_conditional(addr, cap_size, reverse_endianness(data)); - if success then - MEMw_tag(addr, tag); - success; -} - -let cap_addr_mask = to_bits(64, pow2(64) - cap_size) - -val MEMw_wrapper : forall 'n, 'n >= 1. (bits(64), atom('n), bits(8 * 'n)) -> unit effect {escape, wmv, wmvt, wreg, eamem} -function MEMw_wrapper(addr, size, data) = - let ledata = reverse_endianness(data) in - if (addr == 0x000000007f000000) then - { - UART_WDATA = ledata[7..0]; - UART_WRITTEN = 0b1; - } - else - { - /* require that writes don't cross capability boundaries (should be true due to mips alignment requirements) */ - assert((addr & cap_addr_mask) == ((addr + to_bits(64, size - 1)) & cap_addr_mask)); - MEMea(addr, size); - MEMval(addr, size, ledata); - /* On cheri non-capability writes must clear the corresponding tag*/ - MEMw_tag(addr & cap_addr_mask, false); - } - -val MEMw_conditional_wrapper : forall 'n, 'n >= 1. (bits(64), atom('n), bits(8 * 'n)) -> bool effect {escape, wmv, wmvt, eamem} -function MEMw_conditional_wrapper(addr, size, data) = - { - /* require that writes don't cross capability boundaries (should be true due to mips alignment requirements) */ - assert((addr & cap_addr_mask) == ((addr + to_bits(64, size - 1)) & cap_addr_mask)); - MEMea_conditional(addr, size); - success = MEMval_conditional(addr,size,reverse_endianness(data)); - if success then - /* On cheri non-capability writes must clear the corresponding tag */ - MEMw_tag(addr & cap_addr_mask, false); - success; - } - -val checkDDCPerms : (CapStruct, MemAccessType) -> unit effect {escape, rreg, wreg} -function checkDDCPerms(ddc : CapStruct, accessType: MemAccessType) = - { - if (not (ddc.tag)) then - raise_c2_exception(CapEx_TagViolation, 0b00000) - else if (ddc.sealed) then - raise_c2_exception(CapEx_SealViolation, 0b00000); - match accessType { - Instruction => assert(false), /* Only data accesses use DDC */ - LoadData => if (~(ddc.permit_load)) then (raise_c2_exception(CapEx_PermitLoadViolation, 0b00000)), - StoreData => if (~(ddc.permit_store)) then (raise_c2_exception(CapEx_PermitStoreViolation, 0b00000)) - }; - } - -val addrWrapper : (bits(64), MemAccessType, WordType) -> bits(64) effect {rreg, wreg, escape} -function addrWrapper(addr, accessType, width) = - { - ddc = capRegToCapStruct(DDC); - checkDDCPerms(ddc, accessType); - cursor = getCapCursor(ddc); - vAddr = (cursor + unsigned(addr)) % pow2(64); - size = wordWidthBytes(width); - base = getCapBase(ddc); - top = getCapTop(ddc); - if ((vAddr + size) > top) then - (raise_c2_exception(CapEx_LengthViolation, 0b00000)) - else if (vAddr < base) then - (raise_c2_exception(CapEx_LengthViolation, 0b00000)) - else - to_bits(64, vAddr); - } - -val addrWrapperUnaligned : (bits(64), MemAccessType, WordTypeUnaligned) -> bits(64) effect {rreg, wreg, escape} -function addrWrapperUnaligned(addr, accessType, width) = - { - ddc = capRegToCapStruct(DDC); - checkDDCPerms(ddc, accessType); - cursor = getCapCursor(ddc); - vAddr = (cursor + unsigned(addr)) % pow2(64); - woffset = vAddr % 4; - doffset = vAddr % 8; - /* Compute the address and size of the bytes touched -- this depends on alignment. */ - let (waddr, size) : (int, int) = match width { - WL => (vAddr, 4 - woffset), - WR => (vAddr - woffset, woffset + 1), - DL => (vAddr, 8 - doffset), - DR => (vAddr - doffset, doffset + 1) - }; - base = getCapBase(ddc); - top = getCapTop(ddc); - if ((waddr + size) > top) then - (raise_c2_exception(CapEx_LengthViolation, 0b00000)) - else if (waddr < base) then - (raise_c2_exception(CapEx_LengthViolation, 0b00000)) - else - to_bits(64, vAddr); - } - -$ifdef _MIPS_TLB_STUB -val TranslatePC : bits(64) -> bits(64) effect {rreg, wreg, escape} -$else -val TranslatePC : bits(64) -> bits(64) effect {rreg, wreg, escape, undef} -$endif - -function TranslatePC (vAddr) = { - incrementCP0Count(); - let pcc = capRegToCapStruct(PCC); - let base = getCapBase(pcc); - let top = getCapTop(pcc); - let absPC = base + unsigned(vAddr); - if ((absPC % 4) != 0) then /* bad PC alignment */ - (SignalExceptionBadAddr(AdEL, to_bits(64, absPC))) /* XXX absPC may be truncated */ - else if not (pcc.tag) then - (raise_c2_exception_noreg(CapEx_TagViolation)) - else if ((absPC + 4) > top) then - (raise_c2_exception_noreg(CapEx_LengthViolation)) - else - TLBTranslate(to_bits(64, absPC), Instruction) /* XXX assert absPC never gets truncated due to above check and top <= 2^64 for valid caps */ -} - -/*! -All capability instrucitons must first check that the capability -co-processor is enabled using the following function that raises a -co-processor unusable exception if a CP0Status.CU2 is not set. This -allows the operating system to only save and restore the full -capability context for processes that use capabilities. -*/ -val checkCP2usable : unit -> unit effect {rreg, wreg, escape} -function checkCP2usable () = - if not (CP0Status.CU()[2]) then { - CP0Cause->CE() = 0b10; - SignalException(CpU); - } - -function init_cp2_state () = { - let defaultBits = capStructToCapReg(default_cap); - let nullBits = capStructToCapReg(null_cap); - PCC = defaultBits; - nextPCC = defaultBits; - delayedPCC = defaultBits; - DDC = defaultBits; - KCC = defaultBits; - EPCC = defaultBits; - KDC = nullBits; - KR1C = nullBits; - KR2C = nullBits; - CTLSP = nullBits; - CTLSU = nullBits; - foreach(i from 1 to 31) { - let idx = to_bits(5, i) in - writeCapReg(idx, null_cap) - } -} - -function cp2_next_pc () = { - PCC = nextPCC; - if inBranchDelay then { - nextPCC = delayedPCC; - } else { - inCCallDelay = 0b0; - }; -} - -val capToString : CapStruct -> string effect {escape} -function capToString cap = { - skip_escape(); /* because cheri128 getCapX functions contain asserts but cheri256 ones do not */ - concat_str(" t:", - concat_str(if cap.tag then "1" else "0", - concat_str(" s:", - concat_str(if cap.sealed then "1" else "0", - concat_str(" perms:", - concat_str(BitStr(0b0 @ getCapPerms(cap)), - concat_str(" type:", - concat_str(BitStr(cap.otype), - concat_str(" offset:", - concat_str(BitStr(to_bits(64, getCapOffset(cap))), - concat_str(" base:", - concat_str(BitStr(to_bits(64, getCapBase(cap))), - concat_str(" length:", BitStr(to_bits(64, min(getCapLength(cap), MAX(64))))))))))))))))) - } - -function dump_cp2_state () = { - print(concat_str("DEBUG CAP PCC", capToString(capRegToCapStruct(PCC)))); - foreach(i from 0 to 31) { - print(concat_str("DEBUG CAP REG ", concat_str(string_of_int(i), capToString(readCapReg(to_bits(5, i)))))) - }; - print(concat_str("DEBUG CAP HWREG 00", capToString(capRegToCapStruct(DDC)))); - print(concat_str("DEBUG CAP HWREG 01", capToString(capRegToCapStruct(CTLSU)))); - print(concat_str("DEBUG CAP HWREG 08", capToString(capRegToCapStruct(CTLSP)))); - /* TODO: these two should not be mirrored to match the FPGA */ - print(concat_str("DEBUG CAP HWREG 22", capToString(capRegToCapStruct(KR1C)))); - print(concat_str("DEBUG CAP HWREG 23", capToString(capRegToCapStruct(KR2C)))); - /* KCC, KDC, EPCC */ - print(concat_str("DEBUG CAP HWREG 29", capToString(capRegToCapStruct(KCC)))); - print(concat_str("DEBUG CAP HWREG 30", capToString(capRegToCapStruct(KDC)))); - print(concat_str("DEBUG CAP HWREG 31", capToString(capRegToCapStruct(EPCC)))); - -} diff --git a/cheri/cheri_types.sail b/cheri/cheri_types.sail deleted file mode 100644 index af23bcb4..00000000 --- a/cheri/cheri_types.sail +++ /dev/null @@ -1,55 +0,0 @@ -/*========================================================================*/ -/* */ -/* Copyright (c) 2015-2017 Robert M. Norton */ -/* Copyright (c) 2015-2017 Kathyrn Gray */ -/* All rights reserved. */ -/* */ -/* This software was developed by the University of Cambridge Computer */ -/* Laboratory as part of the Rigorous Engineering of Mainstream Systems */ -/* (REMS) project, funded by EPSRC grant EP/K008528/1. */ -/* */ -/* Redistribution and use in source and binary forms, with or without */ -/* modification, are permitted provided that the following conditions */ -/* are met: */ -/* 1. Redistributions of source code must retain the above copyright */ -/* notice, this list of conditions and the following disclaimer. */ -/* 2. Redistributions in binary form must reproduce the above copyright */ -/* notice, this list of conditions and the following disclaimer in */ -/* the documentation and/or other materials provided with the */ -/* distribution. */ -/* */ -/* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' */ -/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */ -/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */ -/* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR */ -/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ -/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */ -/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF */ -/* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND */ -/* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */ -/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */ -/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF */ -/* SUCH DAMAGE. */ -/*========================================================================*/ - -type CapLen = range(0, 2 ^ 65) -type uint64 = range(0, (2 ^ 64) - 1) - -enum CPtrCmpOp = { - CEQ, - CNE, - CLT, - CLE, - CLTU, - CLEU, - CEXEQ, - CNEXEQ -} - -enum ClearRegSet = { -GPLo, -GPHi, -CLo, -CHi -} - diff --git a/cheri/sail_latex/commands.tex b/cheri/sail_latex/commands.tex deleted file mode 100644 index 76072eaf..00000000 --- a/cheri/sail_latex/commands.tex +++ /dev/null @@ -1,2667 +0,0 @@ -\newcommand{\sailsailregderefv}{\label{zregzyderef} \lstinputlisting[language=sail]{sail_latex/sailsailregderefv.tex}} - -\newcommand{\sailregderef}{\label{zzyregzyderef} \lstinputlisting[language=sail]{sail_latex/sailregderef.tex}} - -\newcommand{\saileqbittwo}{\label{zeqzybittwo} \lstinputlisting[language=sail]{sail_latex/saileqbittwo.tex}} - -\newcommand{\sailsailsailsailzeightoperatorzzerozJzJzninevvv}{\label{zzeightoperatorzzerozJzJznine} \lstinputlisting[language=sail]{sail_latex/sailsailsailsailzeightoperatorzzerozJzJzninevvv.tex}} - -\newcommand{\saildiv}{\label{zdiv} \lstinputlisting[language=sail]{sail_latex/saildiv.tex}} - -\newcommand{\sailsailsailzeightoperatorzzerozFzninevv}{\label{zzeightoperatorzzerozFznine} \lstinputlisting[language=sail]{sail_latex/sailsailsailzeightoperatorzzerozFzninevv.tex}} - -\newcommand{\sailmod}{\label{zmod} \lstinputlisting[language=sail]{sail_latex/sailmod.tex}} - -\newcommand{\sailsailsailzeightoperatorzzerozfivezninevv}{\label{zzeightoperatorzzerozfiveznine} \lstinputlisting[language=sail]{sail_latex/sailsailsailzeightoperatorzzerozfivezninevv.tex}} - -\newcommand{\sailabsatom}{\label{zabszyatom} \lstinputlisting[language=sail]{sail_latex/sailabsatom.tex}} - -\newcommand{\sailnotbool}{\label{znotzybool} \lstinputlisting[language=sail]{sail_latex/sailnotbool.tex}} - -\newcommand{\sailandbool}{\label{zandzybool} \lstinputlisting[language=sail]{sail_latex/sailandbool.tex}} - -\newcommand{\sailorbool}{\label{zorzybool} \lstinputlisting[language=sail]{sail_latex/sailorbool.tex}} - -\newcommand{\saileqatom}{\label{zeqzyatom} \lstinputlisting[language=sail]{sail_latex/saileqatom.tex}} - -\newcommand{\sailneqatom}{\label{zneqzyatom} \lstinputlisting[language=sail]{sail_latex/sailneqatom.tex}} - -\newcommand{\sailfnneqatom}{\label{zneqzyatom} \lstinputlisting[language=sail]{sail_latex/sailfnneqatom.tex}} - -\newcommand{\saillteqatom}{\label{zlteqzyatom} \lstinputlisting[language=sail]{sail_latex/saillteqatom.tex}} - -\newcommand{\sailgteqatom}{\label{zgteqzyatom} \lstinputlisting[language=sail]{sail_latex/sailgteqatom.tex}} - -\newcommand{\sailltatom}{\label{zltzyatom} \lstinputlisting[language=sail]{sail_latex/sailltatom.tex}} - -\newcommand{\sailgtatom}{\label{zgtzyatom} \lstinputlisting[language=sail]{sail_latex/sailgtatom.tex}} - -\newcommand{\sailltrangeatom}{\label{zltzyrangezyatom} \lstinputlisting[language=sail]{sail_latex/sailltrangeatom.tex}} - -\newcommand{\saillteqrangeatom}{\label{zlteqzyrangezyatom} \lstinputlisting[language=sail]{sail_latex/saillteqrangeatom.tex}} - -\newcommand{\sailgtrangeatom}{\label{zgtzyrangezyatom} \lstinputlisting[language=sail]{sail_latex/sailgtrangeatom.tex}} - -\newcommand{\sailgteqrangeatom}{\label{zgteqzyrangezyatom} \lstinputlisting[language=sail]{sail_latex/sailgteqrangeatom.tex}} - -\newcommand{\sailltatomrange}{\label{zltzyatomzyrange} \lstinputlisting[language=sail]{sail_latex/sailltatomrange.tex}} - -\newcommand{\saillteqatomrange}{\label{zlteqzyatomzyrange} \lstinputlisting[language=sail]{sail_latex/saillteqatomrange.tex}} - -\newcommand{\sailgtatomrange}{\label{zgtzyatomzyrange} \lstinputlisting[language=sail]{sail_latex/sailgtatomrange.tex}} - -\newcommand{\sailgteqatomrange}{\label{zgteqzyatomzyrange} \lstinputlisting[language=sail]{sail_latex/sailgteqatomrange.tex}} - -\newcommand{\saileqrange}{\label{zeqzyrange} \lstinputlisting[language=sail]{sail_latex/saileqrange.tex}} - -\newcommand{\saileqint}{\label{zeqzyint} \lstinputlisting[language=sail]{sail_latex/saileqint.tex}} - -\newcommand{\saileqbool}{\label{zeqzybool} \lstinputlisting[language=sail]{sail_latex/saileqbool.tex}} - -\newcommand{\sailneqrange}{\label{zneqzyrange} \lstinputlisting[language=sail]{sail_latex/sailneqrange.tex}} - -\newcommand{\sailfnneqrange}{\label{zneqzyrange} \lstinputlisting[language=sail]{sail_latex/sailfnneqrange.tex}} - -\newcommand{\sailneqint}{\label{zneqzyint} \lstinputlisting[language=sail]{sail_latex/sailneqint.tex}} - -\newcommand{\sailfnneqint}{\label{zneqzyint} \lstinputlisting[language=sail]{sail_latex/sailfnneqint.tex}} - -\newcommand{\sailneqbool}{\label{zneqzybool} \lstinputlisting[language=sail]{sail_latex/sailneqbool.tex}} - -\newcommand{\sailfnneqbool}{\label{zneqzybool} \lstinputlisting[language=sail]{sail_latex/sailfnneqbool.tex}} - -\newcommand{\saillteqint}{\label{zlteqzyint} \lstinputlisting[language=sail]{sail_latex/saillteqint.tex}} - -\newcommand{\sailgteqint}{\label{zgteqzyint} \lstinputlisting[language=sail]{sail_latex/sailgteqint.tex}} - -\newcommand{\sailltint}{\label{zltzyint} \lstinputlisting[language=sail]{sail_latex/sailltint.tex}} - -\newcommand{\sailgtint}{\label{zgtzyint} \lstinputlisting[language=sail]{sail_latex/sailgtint.tex}} - -\newcommand{\sailsailsailzeightoperatorzzerozJzJzninevv}{\label{zzeightoperatorzzerozJzJznine} \lstinputlisting[language=sail]{sail_latex/sailsailsailzeightoperatorzzerozJzJzninevv.tex}} - -\newcommand{\sailsailzeightoperatorzzerozonezJzninev}{\label{zzeightoperatorzzerozonezJznine} \lstinputlisting[language=sail]{sail_latex/sailsailzeightoperatorzzerozonezJzninev.tex}} - -\newcommand{\sailsailzeightoperatorzzerozUzninev}{\label{zzeightoperatorzzerozUznine} \lstinputlisting[language=sail]{sail_latex/sailsailzeightoperatorzzerozUzninev.tex}} - -\newcommand{\sailsailzeightoperatorzzerozsixzninev}{\label{zzeightoperatorzzerozsixznine} \lstinputlisting[language=sail]{sail_latex/sailsailzeightoperatorzzerozsixzninev.tex}} - -\newcommand{\sailzeightoperatorzzerozIzJznine}{\label{zzeightoperatorzzerozIzJznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozIzJznine.tex}} - -\newcommand{\sailzeightoperatorzzerozIznine}{\label{zzeightoperatorzzerozIznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozIznine.tex}} - -\newcommand{\sailzeightoperatorzzerozKzJznine}{\label{zzeightoperatorzzerozKzJznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozKzJznine.tex}} - -\newcommand{\sailzeightoperatorzzerozKznine}{\label{zzeightoperatorzzerozKznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozKznine.tex}} - -\newcommand{\sailaddatom}{\label{zaddzyatom} \lstinputlisting[language=sail]{sail_latex/sailaddatom.tex}} - -\newcommand{\sailaddint}{\label{zaddzyint} \lstinputlisting[language=sail]{sail_latex/sailaddint.tex}} - -\newcommand{\sailsailsailzeightoperatorzzerozBzninevv}{\label{zzeightoperatorzzerozBznine} \lstinputlisting[language=sail]{sail_latex/sailsailsailzeightoperatorzzerozBzninevv.tex}} - -\newcommand{\sailsubatom}{\label{zsubzyatom} \lstinputlisting[language=sail]{sail_latex/sailsubatom.tex}} - -\newcommand{\sailsubint}{\label{zsubzyint} \lstinputlisting[language=sail]{sail_latex/sailsubint.tex}} - -\newcommand{\sailsailzeightoperatorzzerozDzninev}{\label{zzeightoperatorzzerozDznine} \lstinputlisting[language=sail]{sail_latex/sailsailzeightoperatorzzerozDzninev.tex}} - -\newcommand{\sailnegateatom}{\label{znegatezyatom} \lstinputlisting[language=sail]{sail_latex/sailnegateatom.tex}} - -\newcommand{\sailnegateint}{\label{znegatezyint} \lstinputlisting[language=sail]{sail_latex/sailnegateint.tex}} - -\newcommand{\sailsailnegatev}{\label{znegate} \lstinputlisting[language=sail]{sail_latex/sailsailnegatev.tex}} - -\newcommand{\sailmultatom}{\label{zmultzyatom} \lstinputlisting[language=sail]{sail_latex/sailmultatom.tex}} - -\newcommand{\sailmultint}{\label{zmultzyint} \lstinputlisting[language=sail]{sail_latex/sailmultint.tex}} - -\newcommand{\sailsailzeightoperatorzzerozAzninev}{\label{zzeightoperatorzzerozAznine} \lstinputlisting[language=sail]{sail_latex/sailsailzeightoperatorzzerozAzninev.tex}} - -\newcommand{\sailprintint}{\label{zprintzyint} \lstinputlisting[language=sail]{sail_latex/sailprintint.tex}} - -\newcommand{\sailprerrint}{\label{zprerrzyint} \lstinputlisting[language=sail]{sail_latex/sailprerrint.tex}} - -\newcommand{\sailshlint}{\label{zshlzyint} \lstinputlisting[language=sail]{sail_latex/sailshlint.tex}} - -\newcommand{\sailshrint}{\label{zshrzyint} \lstinputlisting[language=sail]{sail_latex/sailshrint.tex}} - -\newcommand{\saildivint}{\label{zdivzyint} \lstinputlisting[language=sail]{sail_latex/saildivint.tex}} - -\newcommand{\sailsailzeightoperatorzzerozFzninev}{\label{zzeightoperatorzzerozFznine} \lstinputlisting[language=sail]{sail_latex/sailsailzeightoperatorzzerozFzninev.tex}} - -\newcommand{\sailmodint}{\label{zmodzyint} \lstinputlisting[language=sail]{sail_latex/sailmodint.tex}} - -\newcommand{\sailsailzeightoperatorzzerozfivezninev}{\label{zzeightoperatorzzerozfiveznine} \lstinputlisting[language=sail]{sail_latex/sailsailzeightoperatorzzerozfivezninev.tex}} - -\newcommand{\sailabsint}{\label{zabszyint} \lstinputlisting[language=sail]{sail_latex/sailabsint.tex}} - -\newcommand{\sailisnone}{\label{ziszynone} \lstinputlisting[language=sail]{sail_latex/sailisnone.tex}} - -\newcommand{\sailfnisnone}{\label{ziszynone} \lstinputlisting[language=sail]{sail_latex/sailfnisnone.tex}} - -\newcommand{\sailissome}{\label{ziszysome} \lstinputlisting[language=sail]{sail_latex/sailissome.tex}} - -\newcommand{\sailfnissome}{\label{ziszysome} \lstinputlisting[language=sail]{sail_latex/sailfnissome.tex}} - -\newcommand{\sailbits}{\label{zbits} \lstinputlisting[language=sail]{sail_latex/sailbits.tex}} - -\newcommand{\saileqbit}{\label{zeqzybit} \lstinputlisting[language=sail]{sail_latex/saileqbit.tex}} - -\newcommand{\saileqbits}{\label{zeqzybits} \lstinputlisting[language=sail]{sail_latex/saileqbits.tex}} - -\newcommand{\sailsailzeightoperatorzzerozJzJzninev}{\label{zzeightoperatorzzerozJzJznine} \lstinputlisting[language=sail]{sail_latex/sailsailzeightoperatorzzerozJzJzninev.tex}} - -\newcommand{\sailbitvectorlength}{\label{zbitvectorzylength} \lstinputlisting[language=sail]{sail_latex/sailbitvectorlength.tex}} - -\newcommand{\sailvectorlength}{\label{zvectorzylength} \lstinputlisting[language=sail]{sail_latex/sailvectorlength.tex}} - -\newcommand{\saillength}{\label{zlength} \lstinputlisting[language=sail]{sail_latex/saillength.tex}} - -\newcommand{\sailsailzzeros}{\label{zsailzyzzeros} \lstinputlisting[language=sail]{sail_latex/sailsailzzeros.tex}} - -\newcommand{\sailprintbits}{\label{zprintzybits} \lstinputlisting[language=sail]{sail_latex/sailprintbits.tex}} - -\newcommand{\sailprerrbits}{\label{zprerrzybits} \lstinputlisting[language=sail]{sail_latex/sailprerrbits.tex}} - -\newcommand{\sailsailsignextend}{\label{zsailzysignzyextend} \lstinputlisting[language=sail]{sail_latex/sailsailsignextend.tex}} - -\newcommand{\sailsailzzeroextend}{\label{zsailzyzzerozyextend} \lstinputlisting[language=sail]{sail_latex/sailsailzzeroextend.tex}} - -\newcommand{\sailtruncate}{\label{ztruncate} \lstinputlisting[language=sail]{sail_latex/sailtruncate.tex}} - -\newcommand{\sailsailmask}{\label{zsailzymask} \lstinputlisting[language=sail]{sail_latex/sailsailmask.tex}} - -\newcommand{\sailfnsailmask}{\label{zsailzymask} \lstinputlisting[language=sail]{sail_latex/sailfnsailmask.tex}} - -\newcommand{\sailsailzeightoperatorzzerozQzninev}{\label{zzeightoperatorzzerozQznine} \lstinputlisting[language=sail]{sail_latex/sailsailzeightoperatorzzerozQzninev.tex}} - -\newcommand{\sailbitvectorconcat}{\label{zbitvectorzyconcat} \lstinputlisting[language=sail]{sail_latex/sailbitvectorconcat.tex}} - -\newcommand{\sailappend}{\label{zappend} \lstinputlisting[language=sail]{sail_latex/sailappend.tex}} - -\newcommand{\sailappendsixfour}{\label{zappendzysixfour} \lstinputlisting[language=sail]{sail_latex/sailappendsixfour.tex}} - -\newcommand{\sailbitvectoraccess}{\label{zbitvectorzyaccess} \lstinputlisting[language=sail]{sail_latex/sailbitvectoraccess.tex}} - -\newcommand{\sailplainvectoraccess}{\label{zplainzyvectorzyaccess} \lstinputlisting[language=sail]{sail_latex/sailplainvectoraccess.tex}} - -\newcommand{\sailvectoraccess}{\label{zvectorzyaccess} \lstinputlisting[language=sail]{sail_latex/sailvectoraccess.tex}} - -\newcommand{\sailbitvectorupdate}{\label{zbitvectorzyupdate} \lstinputlisting[language=sail]{sail_latex/sailbitvectorupdate.tex}} - -\newcommand{\sailplainvectorupdate}{\label{zplainzyvectorzyupdate} \lstinputlisting[language=sail]{sail_latex/sailplainvectorupdate.tex}} - -\newcommand{\sailvectorupdate}{\label{zvectorzyupdate} \lstinputlisting[language=sail]{sail_latex/sailvectorupdate.tex}} - -\newcommand{\sailaddbits}{\label{zaddzybits} \lstinputlisting[language=sail]{sail_latex/sailaddbits.tex}} - -\newcommand{\sailaddbitsint}{\label{zaddzybitszyint} \lstinputlisting[language=sail]{sail_latex/sailaddbitsint.tex}} - -\newcommand{\sailsailzeightoperatorzzerozBzninev}{\label{zzeightoperatorzzerozBznine} \lstinputlisting[language=sail]{sail_latex/sailsailzeightoperatorzzerozBzninev.tex}} - -\newcommand{\sailvectorsubrange}{\label{zvectorzysubrange} \lstinputlisting[language=sail]{sail_latex/sailvectorsubrange.tex}} - -\newcommand{\sailvectorupdatesubrange}{\label{zvectorzyupdatezysubrange} \lstinputlisting[language=sail]{sail_latex/sailvectorupdatesubrange.tex}} - -\newcommand{\sailgetsliceint}{\label{zgetzyslicezyint} \lstinputlisting[language=sail]{sail_latex/sailgetsliceint.tex}} - -\newcommand{\sailsetsliceint}{\label{zsetzyslicezyint} \lstinputlisting[language=sail]{sail_latex/sailsetsliceint.tex}} - -\newcommand{\sailsetslicebits}{\label{zsetzyslicezybits} \lstinputlisting[language=sail]{sail_latex/sailsetslicebits.tex}} - -\newcommand{\sailslice}{\label{zslice} \lstinputlisting[language=sail]{sail_latex/sailslice.tex}} - -\newcommand{\sailreplicatebits}{\label{zreplicatezybits} \lstinputlisting[language=sail]{sail_latex/sailreplicatebits.tex}} - -\newcommand{\sailunsigned}{\label{zunsigned} \lstinputlisting[language=sail]{sail_latex/sailunsigned.tex}} - -\newcommand{\sailsigned}{\label{zsigned} \lstinputlisting[language=sail]{sail_latex/sailsigned.tex}} - -\newcommand{\saileqanything}{\label{zeqzyanything} \lstinputlisting[language=sail]{sail_latex/saileqanything.tex}} - -\newcommand{\sailzeightoperatorzzerozJzJznine}{\label{zzeightoperatorzzerozJzJznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozJzJznine.tex}} - -\newcommand{\sailnotvec}{\label{znotzyvec} \lstinputlisting[language=sail]{sail_latex/sailnotvec.tex}} - -\newcommand{\sailzW}{\label{zzW} \lstinputlisting[language=sail]{sail_latex/sailzW.tex}} - -\newcommand{\sailnot}{\label{znot} \lstinputlisting[language=sail]{sail_latex/sailnot.tex}} - -\newcommand{\sailneqvec}{\label{zneqzyvec} \lstinputlisting[language=sail]{sail_latex/sailneqvec.tex}} - -\newcommand{\sailfnneqvec}{\label{zneqzyvec} \lstinputlisting[language=sail]{sail_latex/sailfnneqvec.tex}} - -\newcommand{\sailneqanything}{\label{zneqzyanything} \lstinputlisting[language=sail]{sail_latex/sailneqanything.tex}} - -\newcommand{\sailfnneqanything}{\label{zneqzyanything} \lstinputlisting[language=sail]{sail_latex/sailfnneqanything.tex}} - -\newcommand{\sailzeightoperatorzzerozonezJznine}{\label{zzeightoperatorzzerozonezJznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozonezJznine.tex}} - -\newcommand{\sailandbits}{\label{zandzybits} \lstinputlisting[language=sail]{sail_latex/sailandbits.tex}} - -\newcommand{\sailzeightoperatorzzerozsixznine}{\label{zzeightoperatorzzerozsixznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozsixznine.tex}} - -\newcommand{\sailorbits}{\label{zorzybits} \lstinputlisting[language=sail]{sail_latex/sailorbits.tex}} - -\newcommand{\sailzeightoperatorzzerozUznine}{\label{zzeightoperatorzzerozUznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozUznine.tex}} - -\newcommand{\sailcastunitvec}{\label{zcastzyunitzyvec} \lstinputlisting[language=sail]{sail_latex/sailcastunitvec.tex}} - -\newcommand{\sailfncastunitvec}{\label{zcastzyunitzyvec} \lstinputlisting[language=sail]{sail_latex/sailfncastunitvec.tex}} - -\newcommand{\sailprint}{\label{zprint} \lstinputlisting[language=sail]{sail_latex/sailprint.tex}} - -\newcommand{\sailprerrendline}{\label{zprerrzyendline} \lstinputlisting[language=sail]{sail_latex/sailprerrendline.tex}} - -\newcommand{\sailprerrstring}{\label{zprerrzystring} \lstinputlisting[language=sail]{sail_latex/sailprerrstring.tex}} - -\newcommand{\sailputchar}{\label{zputchar} \lstinputlisting[language=sail]{sail_latex/sailputchar.tex}} - -\newcommand{\sailconcatstr}{\label{zconcatzystr} \lstinputlisting[language=sail]{sail_latex/sailconcatstr.tex}} - -\newcommand{\sailstringofint}{\label{zstringzyofzyint} \lstinputlisting[language=sail]{sail_latex/sailstringofint.tex}} - -\newcommand{\sailBitStr}{\label{zBitStr} \lstinputlisting[language=sail]{sail_latex/sailBitStr.tex}} - -\newcommand{\sailxorvec}{\label{zxorzyvec} \lstinputlisting[language=sail]{sail_latex/sailxorvec.tex}} - -\newcommand{\sailintpower}{\label{zintzypower} \lstinputlisting[language=sail]{sail_latex/sailintpower.tex}} - -\newcommand{\sailzeightoperatorzzerozQznine}{\label{zzeightoperatorzzerozQznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozQznine.tex}} - -\newcommand{\sailaddrange}{\label{zaddzyrange} \lstinputlisting[language=sail]{sail_latex/sailaddrange.tex}} - -\newcommand{\sailaddvec}{\label{zaddzyvec} \lstinputlisting[language=sail]{sail_latex/sailaddvec.tex}} - -\newcommand{\sailaddvecint}{\label{zaddzyveczyint} \lstinputlisting[language=sail]{sail_latex/sailaddvecint.tex}} - -\newcommand{\sailzeightoperatorzzerozBznine}{\label{zzeightoperatorzzerozBznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozBznine.tex}} - -\newcommand{\sailsubrange}{\label{zsubzyrange} \lstinputlisting[language=sail]{sail_latex/sailsubrange.tex}} - -\newcommand{\sailsubvec}{\label{zsubzyvec} \lstinputlisting[language=sail]{sail_latex/sailsubvec.tex}} - -\newcommand{\sailsubvecint}{\label{zsubzyveczyint} \lstinputlisting[language=sail]{sail_latex/sailsubvecint.tex}} - -\newcommand{\sailnegaterange}{\label{znegatezyrange} \lstinputlisting[language=sail]{sail_latex/sailnegaterange.tex}} - -\newcommand{\sailzeightoperatorzzerozDznine}{\label{zzeightoperatorzzerozDznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozDznine.tex}} - -\newcommand{\sailnegate}{\label{znegate} \lstinputlisting[language=sail]{sail_latex/sailnegate.tex}} - -\newcommand{\sailzeightoperatorzzerozAznine}{\label{zzeightoperatorzzerozAznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozAznine.tex}} - -\newcommand{\sailquotientnat}{\label{zquotientzynat} \lstinputlisting[language=sail]{sail_latex/sailquotientnat.tex}} - -\newcommand{\sailquotient}{\label{zquotient} \lstinputlisting[language=sail]{sail_latex/sailquotient.tex}} - -\newcommand{\sailzeightoperatorzzerozFznine}{\label{zzeightoperatorzzerozFznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozFznine.tex}} - -\newcommand{\sailquotroundzzero}{\label{zquotzyroundzyzzero} \lstinputlisting[language=sail]{sail_latex/sailquotroundzzero.tex}} - -\newcommand{\sailremroundzzero}{\label{zremzyroundzyzzero} \lstinputlisting[language=sail]{sail_latex/sailremroundzzero.tex}} - -\newcommand{\sailmodulus}{\label{zmodulus} \lstinputlisting[language=sail]{sail_latex/sailmodulus.tex}} - -\newcommand{\sailzeightoperatorzzerozfiveznine}{\label{zzeightoperatorzzerozfiveznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozfiveznine.tex}} - -\newcommand{\sailminnat}{\label{zminzynat} \lstinputlisting[language=sail]{sail_latex/sailminnat.tex}} - -\newcommand{\sailminint}{\label{zminzyint} \lstinputlisting[language=sail]{sail_latex/sailminint.tex}} - -\newcommand{\sailmaxnat}{\label{zmaxzynat} \lstinputlisting[language=sail]{sail_latex/sailmaxnat.tex}} - -\newcommand{\sailmaxint}{\label{zmaxzyint} \lstinputlisting[language=sail]{sail_latex/sailmaxint.tex}} - -\newcommand{\sailminatom}{\label{zminzyatom} \lstinputlisting[language=sail]{sail_latex/sailminatom.tex}} - -\newcommand{\sailmaxatom}{\label{zmaxzyatom} \lstinputlisting[language=sail]{sail_latex/sailmaxatom.tex}} - -\newcommand{\sailmin}{\label{zmin} \lstinputlisting[language=sail]{sail_latex/sailmin.tex}} - -\newcommand{\sailsailmaxv}{\label{zmax} \lstinputlisting[language=sail]{sail_latex/sailsailmaxv.tex}} - -\newcommand{\sailWriteRAM}{\label{zzyzyWriteRAM} \lstinputlisting[language=sail]{sail_latex/sailWriteRAM.tex}} - -\newcommand{\sailMIPSwrite}{\label{zzyzyMIPSzywrite} \lstinputlisting[language=sail]{sail_latex/sailMIPSwrite.tex}} - -\newcommand{\sailfnMIPSwrite}{\label{zzyzyMIPSzywrite} \lstinputlisting[language=sail]{sail_latex/sailfnMIPSwrite.tex}} - -\newcommand{\sailReadRAM}{\label{zzyzyReadRAM} \lstinputlisting[language=sail]{sail_latex/sailReadRAM.tex}} - -\newcommand{\sailMIPSread}{\label{zzyzyMIPSzyread} \lstinputlisting[language=sail]{sail_latex/sailMIPSread.tex}} - -\newcommand{\sailfnMIPSread}{\label{zzyzyMIPSzyread} \lstinputlisting[language=sail]{sail_latex/sailfnMIPSread.tex}} - -\newcommand{\sailzeightoperatorzzerozQzQznine}{\label{zzeightoperatorzzerozQzQznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozQzQznine.tex}} - -\newcommand{\sailfnzeightoperatorzzerozQzQznine}{\label{zzeightoperatorzzerozQzQznine} \lstinputlisting[language=sail]{sail_latex/sailfnzeightoperatorzzerozQzQznine.tex}} - -\newcommand{\sailpowtwo}{\label{zpowtwo} \lstinputlisting[language=sail]{sail_latex/sailpowtwo.tex}} - -\newcommand{\sailmipssignextend}{\label{zmipszysignzyextend} \lstinputlisting[language=sail]{sail_latex/sailmipssignextend.tex}} - -\newcommand{\sailmipszzeroextend}{\label{zmipszyzzerozyextend} \lstinputlisting[language=sail]{sail_latex/sailmipszzeroextend.tex}} - -\newcommand{\sailfnmipssignextend}{\label{zmipszysignzyextend} \lstinputlisting[language=sail]{sail_latex/sailfnmipssignextend.tex}} - -\newcommand{\sailfnmipszzeroextend}{\label{zmipszyzzerozyextend} \lstinputlisting[language=sail]{sail_latex/sailfnmipszzeroextend.tex}} - -\newcommand{\sailsignextend}{\label{zsignzyextend} \lstinputlisting[language=sail]{sail_latex/sailsignextend.tex}} - -\newcommand{\sailzzeroextend}{\label{zzzerozyextend} \lstinputlisting[language=sail]{sail_latex/sailzzeroextend.tex}} - -\newcommand{\sailzzeros}{\label{zzzeros} \lstinputlisting[language=sail]{sail_latex/sailzzeros.tex}} - -\newcommand{\sailfnzzeros}{\label{zzzeros} \lstinputlisting[language=sail]{sail_latex/sailfnzzeros.tex}} - -\newcommand{\sailones}{\label{zones} \lstinputlisting[language=sail]{sail_latex/sailones.tex}} - -\newcommand{\sailfnones}{\label{zones} \lstinputlisting[language=sail]{sail_latex/sailfnones.tex}} - -\newcommand{\sailzeightoperatorzzerozIsznine}{\label{zzeightoperatorzzerozIzysznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozIsznine.tex}} - -\newcommand{\sailzeightoperatorzzerozKzJsznine}{\label{zzeightoperatorzzerozKzJzysznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozKzJsznine.tex}} - -\newcommand{\sailzeightoperatorzzerozIuznine}{\label{zzeightoperatorzzerozIzyuznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozIuznine.tex}} - -\newcommand{\sailzeightoperatorzzerozKzJuznine}{\label{zzeightoperatorzzerozKzJzyuznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozKzJuznine.tex}} - -\newcommand{\sailfnzeightoperatorzzerozIsznine}{\label{zzeightoperatorzzerozIzysznine} \lstinputlisting[language=sail]{sail_latex/sailfnzeightoperatorzzerozIsznine.tex}} - -\newcommand{\sailfnzeightoperatorzzerozKzJsznine}{\label{zzeightoperatorzzerozKzJzysznine} \lstinputlisting[language=sail]{sail_latex/sailfnzeightoperatorzzerozKzJsznine.tex}} - -\newcommand{\sailfnzeightoperatorzzerozIuznine}{\label{zzeightoperatorzzerozIzyuznine} \lstinputlisting[language=sail]{sail_latex/sailfnzeightoperatorzzerozIuznine.tex}} - -\newcommand{\sailfnzeightoperatorzzerozKzJuznine}{\label{zzeightoperatorzzerozKzJzyuznine} \lstinputlisting[language=sail]{sail_latex/sailfnzeightoperatorzzerozKzJuznine.tex}} - -\newcommand{\sailbooltobits}{\label{zboolzytozybits} \lstinputlisting[language=sail]{sail_latex/sailbooltobits.tex}} - -\newcommand{\sailfnbooltobits}{\label{zboolzytozybits} \lstinputlisting[language=sail]{sail_latex/sailfnbooltobits.tex}} - -\newcommand{\sailbittobool}{\label{zbitzytozybool} \lstinputlisting[language=sail]{sail_latex/sailbittobool.tex}} - -\newcommand{\sailfnbittobool}{\label{zbitzytozybool} \lstinputlisting[language=sail]{sail_latex/sailfnbittobool.tex}} - -\newcommand{\sailbitstobool}{\label{zbitszytozybool} \lstinputlisting[language=sail]{sail_latex/sailbitstobool.tex}} - -\newcommand{\sailfnbitstobool}{\label{zbitszytozybool} \lstinputlisting[language=sail]{sail_latex/sailfnbitstobool.tex}} - -\newcommand{\sailshiftbitsright}{\label{zshiftzybitszyright} \lstinputlisting[language=sail]{sail_latex/sailshiftbitsright.tex}} - -\newcommand{\sailshiftbitsleft}{\label{zshiftzybitszyleft} \lstinputlisting[language=sail]{sail_latex/sailshiftbitsleft.tex}} - -\newcommand{\sailshiftl}{\label{zshiftl} \lstinputlisting[language=sail]{sail_latex/sailshiftl.tex}} - -\newcommand{\sailshiftr}{\label{zshiftr} \lstinputlisting[language=sail]{sail_latex/sailshiftr.tex}} - -\newcommand{\sailzeightoperatorzzerozKzKznine}{\label{zzeightoperatorzzerozKzKznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozKzKznine.tex}} - -\newcommand{\sailzeightoperatorzzerozIzIznine}{\label{zzeightoperatorzzerozIzIznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozIzIznine.tex}} - -\newcommand{\sailzeightoperatorzzerozKzKsznine}{\label{zzeightoperatorzzerozKzKzysznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozKzKsznine.tex}} - -\newcommand{\sailzeightoperatorzzerozAsznine}{\label{zzeightoperatorzzerozAzysznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozAsznine.tex}} - -\newcommand{\sailzeightoperatorzzerozAuznine}{\label{zzeightoperatorzzerozAzyuznine} \lstinputlisting[language=sail]{sail_latex/sailzeightoperatorzzerozAuznine.tex}} - -\newcommand{\sailtobits}{\label{ztozybits} -\function{to\_bits} converts an integer to a bit vector of given length. If the integer is negative a twos-complement representation is used. If the integer is too large (or too negative) to fit in the requested length then it is truncated to the least significant bits. -\lstinputlisting[language=sail]{sail_latex/sailtobits.tex}} - -\newcommand{\sailfntobits}{\label{ztozybits} \lstinputlisting[language=sail]{sail_latex/sailfntobits.tex}} - -\newcommand{\sailmask}{\label{zmask} \lstinputlisting[language=sail]{sail_latex/sailmask.tex}} - -\newcommand{\sailfnmask}{\label{zmask} \lstinputlisting[language=sail]{sail_latex/sailfnmask.tex}} - -\newcommand{\sailgettimens}{\label{zgetzytimezyns} \lstinputlisting[language=sail]{sail_latex/sailgettimens.tex}} - -\newcommand{\sailCauseReg}{\label{zCauseReg} \lstinputlisting[language=sail]{sail_latex/sailCauseReg.tex}} - -\newcommand{\sailMkCauseReg}{\label{zMkzyCauseReg} \lstinputlisting[language=sail]{sail_latex/sailMkCauseReg.tex}} - -\newcommand{\sailfnMkCauseReg}{\label{zMkzyCauseReg} \lstinputlisting[language=sail]{sail_latex/sailfnMkCauseReg.tex}} - -\newcommand{\sailgetCauseRegbits}{\label{zzygetzyCauseRegzybits} \lstinputlisting[language=sail]{sail_latex/sailgetCauseRegbits.tex}} - -\newcommand{\sailfngetCauseRegbits}{\label{zzygetzyCauseRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfngetCauseRegbits.tex}} - -\newcommand{\sailsetCauseRegbits}{\label{zzysetzyCauseRegzybits} \lstinputlisting[language=sail]{sail_latex/sailsetCauseRegbits.tex}} - -\newcommand{\sailfnsetCauseRegbits}{\label{zzysetzyCauseRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnsetCauseRegbits.tex}} - -\newcommand{\sailupdateCauseRegbits}{\label{zzyupdatezyCauseRegzybits} \lstinputlisting[language=sail]{sail_latex/sailupdateCauseRegbits.tex}} - -\newcommand{\sailfnupdateCauseRegbits}{\label{zzyupdatezyCauseRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnupdateCauseRegbits.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailupdatebitsvvvvvvv}{\label{zupdatezybits} \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailupdatebitsvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailmodbitsvvvvvvv}{\label{zzymodzybits} \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailmodbitsvvvvvvv.tex}} - -\newcommand{\sailgetCauseRegBD}{\label{zzygetzyCauseRegzyBD} \lstinputlisting[language=sail]{sail_latex/sailgetCauseRegBD.tex}} - -\newcommand{\sailfngetCauseRegBD}{\label{zzygetzyCauseRegzyBD} \lstinputlisting[language=sail]{sail_latex/sailfngetCauseRegBD.tex}} - -\newcommand{\sailsetCauseRegBD}{\label{zzysetzyCauseRegzyBD} \lstinputlisting[language=sail]{sail_latex/sailsetCauseRegBD.tex}} - -\newcommand{\sailfnsetCauseRegBD}{\label{zzysetzyCauseRegzyBD} \lstinputlisting[language=sail]{sail_latex/sailfnsetCauseRegBD.tex}} - -\newcommand{\sailupdateCauseRegBD}{\label{zzyupdatezyCauseRegzyBD} \lstinputlisting[language=sail]{sail_latex/sailupdateCauseRegBD.tex}} - -\newcommand{\sailfnupdateCauseRegBD}{\label{zzyupdatezyCauseRegzyBD} \lstinputlisting[language=sail]{sail_latex/sailfnupdateCauseRegBD.tex}} - -\newcommand{\sailupdateBD}{\label{zupdatezyBD} \lstinputlisting[language=sail]{sail_latex/sailupdateBD.tex}} - -\newcommand{\sailmodBD}{\label{zzymodzyBD} \lstinputlisting[language=sail]{sail_latex/sailmodBD.tex}} - -\newcommand{\sailgetCauseRegCE}{\label{zzygetzyCauseRegzyCE} \lstinputlisting[language=sail]{sail_latex/sailgetCauseRegCE.tex}} - -\newcommand{\sailfngetCauseRegCE}{\label{zzygetzyCauseRegzyCE} \lstinputlisting[language=sail]{sail_latex/sailfngetCauseRegCE.tex}} - -\newcommand{\sailsetCauseRegCE}{\label{zzysetzyCauseRegzyCE} \lstinputlisting[language=sail]{sail_latex/sailsetCauseRegCE.tex}} - -\newcommand{\sailfnsetCauseRegCE}{\label{zzysetzyCauseRegzyCE} \lstinputlisting[language=sail]{sail_latex/sailfnsetCauseRegCE.tex}} - -\newcommand{\sailupdateCauseRegCE}{\label{zzyupdatezyCauseRegzyCE} \lstinputlisting[language=sail]{sail_latex/sailupdateCauseRegCE.tex}} - -\newcommand{\sailfnupdateCauseRegCE}{\label{zzyupdatezyCauseRegzyCE} \lstinputlisting[language=sail]{sail_latex/sailfnupdateCauseRegCE.tex}} - -\newcommand{\sailupdateCE}{\label{zupdatezyCE} \lstinputlisting[language=sail]{sail_latex/sailupdateCE.tex}} - -\newcommand{\sailmodCE}{\label{zzymodzyCE} \lstinputlisting[language=sail]{sail_latex/sailmodCE.tex}} - -\newcommand{\sailgetCauseRegIV}{\label{zzygetzyCauseRegzyIV} \lstinputlisting[language=sail]{sail_latex/sailgetCauseRegIV.tex}} - -\newcommand{\sailfngetCauseRegIV}{\label{zzygetzyCauseRegzyIV} \lstinputlisting[language=sail]{sail_latex/sailfngetCauseRegIV.tex}} - -\newcommand{\sailsetCauseRegIV}{\label{zzysetzyCauseRegzyIV} \lstinputlisting[language=sail]{sail_latex/sailsetCauseRegIV.tex}} - -\newcommand{\sailfnsetCauseRegIV}{\label{zzysetzyCauseRegzyIV} \lstinputlisting[language=sail]{sail_latex/sailfnsetCauseRegIV.tex}} - -\newcommand{\sailupdateCauseRegIV}{\label{zzyupdatezyCauseRegzyIV} \lstinputlisting[language=sail]{sail_latex/sailupdateCauseRegIV.tex}} - -\newcommand{\sailfnupdateCauseRegIV}{\label{zzyupdatezyCauseRegzyIV} \lstinputlisting[language=sail]{sail_latex/sailfnupdateCauseRegIV.tex}} - -\newcommand{\sailupdateIV}{\label{zupdatezyIV} \lstinputlisting[language=sail]{sail_latex/sailupdateIV.tex}} - -\newcommand{\sailmodIV}{\label{zzymodzyIV} \lstinputlisting[language=sail]{sail_latex/sailmodIV.tex}} - -\newcommand{\sailgetCauseRegWP}{\label{zzygetzyCauseRegzyWP} \lstinputlisting[language=sail]{sail_latex/sailgetCauseRegWP.tex}} - -\newcommand{\sailfngetCauseRegWP}{\label{zzygetzyCauseRegzyWP} \lstinputlisting[language=sail]{sail_latex/sailfngetCauseRegWP.tex}} - -\newcommand{\sailsetCauseRegWP}{\label{zzysetzyCauseRegzyWP} \lstinputlisting[language=sail]{sail_latex/sailsetCauseRegWP.tex}} - -\newcommand{\sailfnsetCauseRegWP}{\label{zzysetzyCauseRegzyWP} \lstinputlisting[language=sail]{sail_latex/sailfnsetCauseRegWP.tex}} - -\newcommand{\sailupdateCauseRegWP}{\label{zzyupdatezyCauseRegzyWP} \lstinputlisting[language=sail]{sail_latex/sailupdateCauseRegWP.tex}} - -\newcommand{\sailfnupdateCauseRegWP}{\label{zzyupdatezyCauseRegzyWP} \lstinputlisting[language=sail]{sail_latex/sailfnupdateCauseRegWP.tex}} - -\newcommand{\sailupdateWP}{\label{zupdatezyWP} \lstinputlisting[language=sail]{sail_latex/sailupdateWP.tex}} - -\newcommand{\sailmodWP}{\label{zzymodzyWP} \lstinputlisting[language=sail]{sail_latex/sailmodWP.tex}} - -\newcommand{\sailgetCauseRegIP}{\label{zzygetzyCauseRegzyIP} \lstinputlisting[language=sail]{sail_latex/sailgetCauseRegIP.tex}} - -\newcommand{\sailfngetCauseRegIP}{\label{zzygetzyCauseRegzyIP} \lstinputlisting[language=sail]{sail_latex/sailfngetCauseRegIP.tex}} - -\newcommand{\sailsetCauseRegIP}{\label{zzysetzyCauseRegzyIP} \lstinputlisting[language=sail]{sail_latex/sailsetCauseRegIP.tex}} - -\newcommand{\sailfnsetCauseRegIP}{\label{zzysetzyCauseRegzyIP} \lstinputlisting[language=sail]{sail_latex/sailfnsetCauseRegIP.tex}} - -\newcommand{\sailupdateCauseRegIP}{\label{zzyupdatezyCauseRegzyIP} \lstinputlisting[language=sail]{sail_latex/sailupdateCauseRegIP.tex}} - -\newcommand{\sailfnupdateCauseRegIP}{\label{zzyupdatezyCauseRegzyIP} \lstinputlisting[language=sail]{sail_latex/sailfnupdateCauseRegIP.tex}} - -\newcommand{\sailupdateIP}{\label{zupdatezyIP} \lstinputlisting[language=sail]{sail_latex/sailupdateIP.tex}} - -\newcommand{\sailmodIP}{\label{zzymodzyIP} \lstinputlisting[language=sail]{sail_latex/sailmodIP.tex}} - -\newcommand{\sailgetCauseRegExcCode}{\label{zzygetzyCauseRegzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailgetCauseRegExcCode.tex}} - -\newcommand{\sailfngetCauseRegExcCode}{\label{zzygetzyCauseRegzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailfngetCauseRegExcCode.tex}} - -\newcommand{\sailsetCauseRegExcCode}{\label{zzysetzyCauseRegzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailsetCauseRegExcCode.tex}} - -\newcommand{\sailfnsetCauseRegExcCode}{\label{zzysetzyCauseRegzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailfnsetCauseRegExcCode.tex}} - -\newcommand{\sailupdateCauseRegExcCode}{\label{zzyupdatezyCauseRegzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailupdateCauseRegExcCode.tex}} - -\newcommand{\sailfnupdateCauseRegExcCode}{\label{zzyupdatezyCauseRegzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailfnupdateCauseRegExcCode.tex}} - -\newcommand{\sailsailupdateExcCodev}{\label{zupdatezyExcCode} \lstinputlisting[language=sail]{sail_latex/sailsailupdateExcCodev.tex}} - -\newcommand{\sailsailmodExcCodev}{\label{zzymodzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailsailmodExcCodev.tex}} - -\newcommand{\sailTLBEntryLoReg}{\label{zTLBEntryLoReg} \lstinputlisting[language=sail]{sail_latex/sailTLBEntryLoReg.tex}} - -\newcommand{\sailMkTLBEntryLoReg}{\label{zMkzyTLBEntryLoReg} \lstinputlisting[language=sail]{sail_latex/sailMkTLBEntryLoReg.tex}} - -\newcommand{\sailfnMkTLBEntryLoReg}{\label{zMkzyTLBEntryLoReg} \lstinputlisting[language=sail]{sail_latex/sailfnMkTLBEntryLoReg.tex}} - -\newcommand{\sailgetTLBEntryLoRegbits}{\label{zzygetzyTLBEntryLoRegzybits} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryLoRegbits.tex}} - -\newcommand{\sailfngetTLBEntryLoRegbits}{\label{zzygetzyTLBEntryLoRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryLoRegbits.tex}} - -\newcommand{\sailsetTLBEntryLoRegbits}{\label{zzysetzyTLBEntryLoRegzybits} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryLoRegbits.tex}} - -\newcommand{\sailfnsetTLBEntryLoRegbits}{\label{zzysetzyTLBEntryLoRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryLoRegbits.tex}} - -\newcommand{\sailupdateTLBEntryLoRegbits}{\label{zzyupdatezyTLBEntryLoRegzybits} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryLoRegbits.tex}} - -\newcommand{\sailfnupdateTLBEntryLoRegbits}{\label{zzyupdatezyTLBEntryLoRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryLoRegbits.tex}} - -\newcommand{\sailsailsailsailsailsailsailupdatebitsvvvvvv}{\label{zupdatezybits} \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailupdatebitsvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailmodbitsvvvvvv}{\label{zzymodzybits} \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailmodbitsvvvvvv.tex}} - -\newcommand{\sailgetTLBEntryLoRegCapS}{\label{zzygetzyTLBEntryLoRegzyCapS} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryLoRegCapS.tex}} - -\newcommand{\sailfngetTLBEntryLoRegCapS}{\label{zzygetzyTLBEntryLoRegzyCapS} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryLoRegCapS.tex}} - -\newcommand{\sailsetTLBEntryLoRegCapS}{\label{zzysetzyTLBEntryLoRegzyCapS} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryLoRegCapS.tex}} - -\newcommand{\sailfnsetTLBEntryLoRegCapS}{\label{zzysetzyTLBEntryLoRegzyCapS} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryLoRegCapS.tex}} - -\newcommand{\sailupdateTLBEntryLoRegCapS}{\label{zzyupdatezyTLBEntryLoRegzyCapS} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryLoRegCapS.tex}} - -\newcommand{\sailfnupdateTLBEntryLoRegCapS}{\label{zzyupdatezyTLBEntryLoRegzyCapS} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryLoRegCapS.tex}} - -\newcommand{\sailupdateCapS}{\label{zupdatezyCapS} \lstinputlisting[language=sail]{sail_latex/sailupdateCapS.tex}} - -\newcommand{\sailmodCapS}{\label{zzymodzyCapS} \lstinputlisting[language=sail]{sail_latex/sailmodCapS.tex}} - -\newcommand{\sailgetTLBEntryLoRegCapL}{\label{zzygetzyTLBEntryLoRegzyCapL} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryLoRegCapL.tex}} - -\newcommand{\sailfngetTLBEntryLoRegCapL}{\label{zzygetzyTLBEntryLoRegzyCapL} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryLoRegCapL.tex}} - -\newcommand{\sailsetTLBEntryLoRegCapL}{\label{zzysetzyTLBEntryLoRegzyCapL} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryLoRegCapL.tex}} - -\newcommand{\sailfnsetTLBEntryLoRegCapL}{\label{zzysetzyTLBEntryLoRegzyCapL} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryLoRegCapL.tex}} - -\newcommand{\sailupdateTLBEntryLoRegCapL}{\label{zzyupdatezyTLBEntryLoRegzyCapL} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryLoRegCapL.tex}} - -\newcommand{\sailfnupdateTLBEntryLoRegCapL}{\label{zzyupdatezyTLBEntryLoRegzyCapL} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryLoRegCapL.tex}} - -\newcommand{\sailupdateCapL}{\label{zupdatezyCapL} \lstinputlisting[language=sail]{sail_latex/sailupdateCapL.tex}} - -\newcommand{\sailmodCapL}{\label{zzymodzyCapL} \lstinputlisting[language=sail]{sail_latex/sailmodCapL.tex}} - -\newcommand{\sailgetTLBEntryLoRegPFN}{\label{zzygetzyTLBEntryLoRegzyPFN} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryLoRegPFN.tex}} - -\newcommand{\sailfngetTLBEntryLoRegPFN}{\label{zzygetzyTLBEntryLoRegzyPFN} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryLoRegPFN.tex}} - -\newcommand{\sailsetTLBEntryLoRegPFN}{\label{zzysetzyTLBEntryLoRegzyPFN} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryLoRegPFN.tex}} - -\newcommand{\sailfnsetTLBEntryLoRegPFN}{\label{zzysetzyTLBEntryLoRegzyPFN} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryLoRegPFN.tex}} - -\newcommand{\sailupdateTLBEntryLoRegPFN}{\label{zzyupdatezyTLBEntryLoRegzyPFN} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryLoRegPFN.tex}} - -\newcommand{\sailfnupdateTLBEntryLoRegPFN}{\label{zzyupdatezyTLBEntryLoRegzyPFN} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryLoRegPFN.tex}} - -\newcommand{\sailupdatePFN}{\label{zupdatezyPFN} \lstinputlisting[language=sail]{sail_latex/sailupdatePFN.tex}} - -\newcommand{\sailmodPFN}{\label{zzymodzyPFN} \lstinputlisting[language=sail]{sail_latex/sailmodPFN.tex}} - -\newcommand{\sailgetTLBEntryLoRegC}{\label{zzygetzyTLBEntryLoRegzyC} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryLoRegC.tex}} - -\newcommand{\sailfngetTLBEntryLoRegC}{\label{zzygetzyTLBEntryLoRegzyC} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryLoRegC.tex}} - -\newcommand{\sailsetTLBEntryLoRegC}{\label{zzysetzyTLBEntryLoRegzyC} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryLoRegC.tex}} - -\newcommand{\sailfnsetTLBEntryLoRegC}{\label{zzysetzyTLBEntryLoRegzyC} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryLoRegC.tex}} - -\newcommand{\sailupdateTLBEntryLoRegC}{\label{zzyupdatezyTLBEntryLoRegzyC} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryLoRegC.tex}} - -\newcommand{\sailfnupdateTLBEntryLoRegC}{\label{zzyupdatezyTLBEntryLoRegzyC} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryLoRegC.tex}} - -\newcommand{\sailupdateC}{\label{zupdatezyC} \lstinputlisting[language=sail]{sail_latex/sailupdateC.tex}} - -\newcommand{\sailmodC}{\label{zzymodzyC} \lstinputlisting[language=sail]{sail_latex/sailmodC.tex}} - -\newcommand{\sailgetTLBEntryLoRegD}{\label{zzygetzyTLBEntryLoRegzyD} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryLoRegD.tex}} - -\newcommand{\sailfngetTLBEntryLoRegD}{\label{zzygetzyTLBEntryLoRegzyD} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryLoRegD.tex}} - -\newcommand{\sailsetTLBEntryLoRegD}{\label{zzysetzyTLBEntryLoRegzyD} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryLoRegD.tex}} - -\newcommand{\sailfnsetTLBEntryLoRegD}{\label{zzysetzyTLBEntryLoRegzyD} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryLoRegD.tex}} - -\newcommand{\sailupdateTLBEntryLoRegD}{\label{zzyupdatezyTLBEntryLoRegzyD} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryLoRegD.tex}} - -\newcommand{\sailfnupdateTLBEntryLoRegD}{\label{zzyupdatezyTLBEntryLoRegzyD} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryLoRegD.tex}} - -\newcommand{\sailupdateD}{\label{zupdatezyD} \lstinputlisting[language=sail]{sail_latex/sailupdateD.tex}} - -\newcommand{\sailmodD}{\label{zzymodzyD} \lstinputlisting[language=sail]{sail_latex/sailmodD.tex}} - -\newcommand{\sailgetTLBEntryLoRegV}{\label{zzygetzyTLBEntryLoRegzyV} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryLoRegV.tex}} - -\newcommand{\sailfngetTLBEntryLoRegV}{\label{zzygetzyTLBEntryLoRegzyV} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryLoRegV.tex}} - -\newcommand{\sailsetTLBEntryLoRegV}{\label{zzysetzyTLBEntryLoRegzyV} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryLoRegV.tex}} - -\newcommand{\sailfnsetTLBEntryLoRegV}{\label{zzysetzyTLBEntryLoRegzyV} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryLoRegV.tex}} - -\newcommand{\sailupdateTLBEntryLoRegV}{\label{zzyupdatezyTLBEntryLoRegzyV} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryLoRegV.tex}} - -\newcommand{\sailfnupdateTLBEntryLoRegV}{\label{zzyupdatezyTLBEntryLoRegzyV} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryLoRegV.tex}} - -\newcommand{\sailupdateV}{\label{zupdatezyV} \lstinputlisting[language=sail]{sail_latex/sailupdateV.tex}} - -\newcommand{\sailmodV}{\label{zzymodzyV} \lstinputlisting[language=sail]{sail_latex/sailmodV.tex}} - -\newcommand{\sailgetTLBEntryLoRegG}{\label{zzygetzyTLBEntryLoRegzyG} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryLoRegG.tex}} - -\newcommand{\sailfngetTLBEntryLoRegG}{\label{zzygetzyTLBEntryLoRegzyG} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryLoRegG.tex}} - -\newcommand{\sailsetTLBEntryLoRegG}{\label{zzysetzyTLBEntryLoRegzyG} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryLoRegG.tex}} - -\newcommand{\sailfnsetTLBEntryLoRegG}{\label{zzysetzyTLBEntryLoRegzyG} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryLoRegG.tex}} - -\newcommand{\sailupdateTLBEntryLoRegG}{\label{zzyupdatezyTLBEntryLoRegzyG} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryLoRegG.tex}} - -\newcommand{\sailfnupdateTLBEntryLoRegG}{\label{zzyupdatezyTLBEntryLoRegzyG} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryLoRegG.tex}} - -\newcommand{\sailsailupdateGv}{\label{zupdatezyG} \lstinputlisting[language=sail]{sail_latex/sailsailupdateGv.tex}} - -\newcommand{\sailsailmodGv}{\label{zzymodzyG} \lstinputlisting[language=sail]{sail_latex/sailsailmodGv.tex}} - -\newcommand{\sailTLBEntryHiReg}{\label{zTLBEntryHiReg} \lstinputlisting[language=sail]{sail_latex/sailTLBEntryHiReg.tex}} - -\newcommand{\sailMkTLBEntryHiReg}{\label{zMkzyTLBEntryHiReg} \lstinputlisting[language=sail]{sail_latex/sailMkTLBEntryHiReg.tex}} - -\newcommand{\sailfnMkTLBEntryHiReg}{\label{zMkzyTLBEntryHiReg} \lstinputlisting[language=sail]{sail_latex/sailfnMkTLBEntryHiReg.tex}} - -\newcommand{\sailgetTLBEntryHiRegbits}{\label{zzygetzyTLBEntryHiRegzybits} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryHiRegbits.tex}} - -\newcommand{\sailfngetTLBEntryHiRegbits}{\label{zzygetzyTLBEntryHiRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryHiRegbits.tex}} - -\newcommand{\sailsetTLBEntryHiRegbits}{\label{zzysetzyTLBEntryHiRegzybits} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryHiRegbits.tex}} - -\newcommand{\sailfnsetTLBEntryHiRegbits}{\label{zzysetzyTLBEntryHiRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryHiRegbits.tex}} - -\newcommand{\sailupdateTLBEntryHiRegbits}{\label{zzyupdatezyTLBEntryHiRegzybits} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryHiRegbits.tex}} - -\newcommand{\sailfnupdateTLBEntryHiRegbits}{\label{zzyupdatezyTLBEntryHiRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryHiRegbits.tex}} - -\newcommand{\sailsailsailsailsailsailupdatebitsvvvvv}{\label{zupdatezybits} \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailupdatebitsvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailmodbitsvvvvv}{\label{zzymodzybits} \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailmodbitsvvvvv.tex}} - -\newcommand{\sailgetTLBEntryHiRegR}{\label{zzygetzyTLBEntryHiRegzyR} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryHiRegR.tex}} - -\newcommand{\sailfngetTLBEntryHiRegR}{\label{zzygetzyTLBEntryHiRegzyR} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryHiRegR.tex}} - -\newcommand{\sailsetTLBEntryHiRegR}{\label{zzysetzyTLBEntryHiRegzyR} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryHiRegR.tex}} - -\newcommand{\sailfnsetTLBEntryHiRegR}{\label{zzysetzyTLBEntryHiRegzyR} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryHiRegR.tex}} - -\newcommand{\sailupdateTLBEntryHiRegR}{\label{zzyupdatezyTLBEntryHiRegzyR} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryHiRegR.tex}} - -\newcommand{\sailfnupdateTLBEntryHiRegR}{\label{zzyupdatezyTLBEntryHiRegzyR} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryHiRegR.tex}} - -\newcommand{\sailsailupdateRv}{\label{zupdatezyR} \lstinputlisting[language=sail]{sail_latex/sailsailupdateRv.tex}} - -\newcommand{\sailsailmodRv}{\label{zzymodzyR} \lstinputlisting[language=sail]{sail_latex/sailsailmodRv.tex}} - -\newcommand{\sailgetTLBEntryHiRegVPNtwo}{\label{zzygetzyTLBEntryHiRegzyVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryHiRegVPNtwo.tex}} - -\newcommand{\sailfngetTLBEntryHiRegVPNtwo}{\label{zzygetzyTLBEntryHiRegzyVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryHiRegVPNtwo.tex}} - -\newcommand{\sailsetTLBEntryHiRegVPNtwo}{\label{zzysetzyTLBEntryHiRegzyVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryHiRegVPNtwo.tex}} - -\newcommand{\sailfnsetTLBEntryHiRegVPNtwo}{\label{zzysetzyTLBEntryHiRegzyVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryHiRegVPNtwo.tex}} - -\newcommand{\sailupdateTLBEntryHiRegVPNtwo}{\label{zzyupdatezyTLBEntryHiRegzyVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryHiRegVPNtwo.tex}} - -\newcommand{\sailfnupdateTLBEntryHiRegVPNtwo}{\label{zzyupdatezyTLBEntryHiRegzyVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryHiRegVPNtwo.tex}} - -\newcommand{\sailsailupdateVPNtwov}{\label{zupdatezyVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailsailupdateVPNtwov.tex}} - -\newcommand{\sailsailmodVPNtwov}{\label{zzymodzyVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailsailmodVPNtwov.tex}} - -\newcommand{\sailgetTLBEntryHiRegASID}{\label{zzygetzyTLBEntryHiRegzyASID} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryHiRegASID.tex}} - -\newcommand{\sailfngetTLBEntryHiRegASID}{\label{zzygetzyTLBEntryHiRegzyASID} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryHiRegASID.tex}} - -\newcommand{\sailsetTLBEntryHiRegASID}{\label{zzysetzyTLBEntryHiRegzyASID} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryHiRegASID.tex}} - -\newcommand{\sailfnsetTLBEntryHiRegASID}{\label{zzysetzyTLBEntryHiRegzyASID} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryHiRegASID.tex}} - -\newcommand{\sailupdateTLBEntryHiRegASID}{\label{zzyupdatezyTLBEntryHiRegzyASID} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryHiRegASID.tex}} - -\newcommand{\sailfnupdateTLBEntryHiRegASID}{\label{zzyupdatezyTLBEntryHiRegzyASID} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryHiRegASID.tex}} - -\newcommand{\sailsailupdateASIDv}{\label{zupdatezyASID} \lstinputlisting[language=sail]{sail_latex/sailsailupdateASIDv.tex}} - -\newcommand{\sailsailmodASIDv}{\label{zzymodzyASID} \lstinputlisting[language=sail]{sail_latex/sailsailmodASIDv.tex}} - -\newcommand{\sailContextReg}{\label{zContextReg} \lstinputlisting[language=sail]{sail_latex/sailContextReg.tex}} - -\newcommand{\sailMkContextReg}{\label{zMkzyContextReg} \lstinputlisting[language=sail]{sail_latex/sailMkContextReg.tex}} - -\newcommand{\sailfnMkContextReg}{\label{zMkzyContextReg} \lstinputlisting[language=sail]{sail_latex/sailfnMkContextReg.tex}} - -\newcommand{\sailgetContextRegbits}{\label{zzygetzyContextRegzybits} \lstinputlisting[language=sail]{sail_latex/sailgetContextRegbits.tex}} - -\newcommand{\sailfngetContextRegbits}{\label{zzygetzyContextRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfngetContextRegbits.tex}} - -\newcommand{\sailsetContextRegbits}{\label{zzysetzyContextRegzybits} \lstinputlisting[language=sail]{sail_latex/sailsetContextRegbits.tex}} - -\newcommand{\sailfnsetContextRegbits}{\label{zzysetzyContextRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnsetContextRegbits.tex}} - -\newcommand{\sailupdateContextRegbits}{\label{zzyupdatezyContextRegzybits} \lstinputlisting[language=sail]{sail_latex/sailupdateContextRegbits.tex}} - -\newcommand{\sailfnupdateContextRegbits}{\label{zzyupdatezyContextRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnupdateContextRegbits.tex}} - -\newcommand{\sailsailsailsailsailupdatebitsvvvv}{\label{zupdatezybits} \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailupdatebitsvvvv.tex}} - -\newcommand{\sailsailsailsailsailmodbitsvvvv}{\label{zzymodzybits} \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailmodbitsvvvv.tex}} - -\newcommand{\sailgetContextRegPTEBase}{\label{zzygetzyContextRegzyPTEBase} \lstinputlisting[language=sail]{sail_latex/sailgetContextRegPTEBase.tex}} - -\newcommand{\sailfngetContextRegPTEBase}{\label{zzygetzyContextRegzyPTEBase} \lstinputlisting[language=sail]{sail_latex/sailfngetContextRegPTEBase.tex}} - -\newcommand{\sailsetContextRegPTEBase}{\label{zzysetzyContextRegzyPTEBase} \lstinputlisting[language=sail]{sail_latex/sailsetContextRegPTEBase.tex}} - -\newcommand{\sailfnsetContextRegPTEBase}{\label{zzysetzyContextRegzyPTEBase} \lstinputlisting[language=sail]{sail_latex/sailfnsetContextRegPTEBase.tex}} - -\newcommand{\sailupdateContextRegPTEBase}{\label{zzyupdatezyContextRegzyPTEBase} \lstinputlisting[language=sail]{sail_latex/sailupdateContextRegPTEBase.tex}} - -\newcommand{\sailfnupdateContextRegPTEBase}{\label{zzyupdatezyContextRegzyPTEBase} \lstinputlisting[language=sail]{sail_latex/sailfnupdateContextRegPTEBase.tex}} - -\newcommand{\sailupdatePTEBase}{\label{zupdatezyPTEBase} \lstinputlisting[language=sail]{sail_latex/sailupdatePTEBase.tex}} - -\newcommand{\sailmodPTEBase}{\label{zzymodzyPTEBase} \lstinputlisting[language=sail]{sail_latex/sailmodPTEBase.tex}} - -\newcommand{\sailgetContextRegBadVPNtwo}{\label{zzygetzyContextRegzyBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailgetContextRegBadVPNtwo.tex}} - -\newcommand{\sailfngetContextRegBadVPNtwo}{\label{zzygetzyContextRegzyBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailfngetContextRegBadVPNtwo.tex}} - -\newcommand{\sailsetContextRegBadVPNtwo}{\label{zzysetzyContextRegzyBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailsetContextRegBadVPNtwo.tex}} - -\newcommand{\sailfnsetContextRegBadVPNtwo}{\label{zzysetzyContextRegzyBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailfnsetContextRegBadVPNtwo.tex}} - -\newcommand{\sailupdateContextRegBadVPNtwo}{\label{zzyupdatezyContextRegzyBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailupdateContextRegBadVPNtwo.tex}} - -\newcommand{\sailfnupdateContextRegBadVPNtwo}{\label{zzyupdatezyContextRegzyBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailfnupdateContextRegBadVPNtwo.tex}} - -\newcommand{\sailupdateBadVPNtwo}{\label{zupdatezyBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailupdateBadVPNtwo.tex}} - -\newcommand{\sailmodBadVPNtwo}{\label{zzymodzyBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailmodBadVPNtwo.tex}} - -\newcommand{\sailXContextReg}{\label{zXContextReg} \lstinputlisting[language=sail]{sail_latex/sailXContextReg.tex}} - -\newcommand{\sailMkXContextReg}{\label{zMkzyXContextReg} \lstinputlisting[language=sail]{sail_latex/sailMkXContextReg.tex}} - -\newcommand{\sailfnMkXContextReg}{\label{zMkzyXContextReg} \lstinputlisting[language=sail]{sail_latex/sailfnMkXContextReg.tex}} - -\newcommand{\sailgetXContextRegbits}{\label{zzygetzyXContextRegzybits} \lstinputlisting[language=sail]{sail_latex/sailgetXContextRegbits.tex}} - -\newcommand{\sailfngetXContextRegbits}{\label{zzygetzyXContextRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfngetXContextRegbits.tex}} - -\newcommand{\sailsetXContextRegbits}{\label{zzysetzyXContextRegzybits} \lstinputlisting[language=sail]{sail_latex/sailsetXContextRegbits.tex}} - -\newcommand{\sailfnsetXContextRegbits}{\label{zzysetzyXContextRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnsetXContextRegbits.tex}} - -\newcommand{\sailupdateXContextRegbits}{\label{zzyupdatezyXContextRegzybits} \lstinputlisting[language=sail]{sail_latex/sailupdateXContextRegbits.tex}} - -\newcommand{\sailfnupdateXContextRegbits}{\label{zzyupdatezyXContextRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnupdateXContextRegbits.tex}} - -\newcommand{\sailsailsailsailupdatebitsvvv}{\label{zupdatezybits} \lstinputlisting[language=sail]{sail_latex/sailsailsailsailupdatebitsvvv.tex}} - -\newcommand{\sailsailsailsailmodbitsvvv}{\label{zzymodzybits} \lstinputlisting[language=sail]{sail_latex/sailsailsailsailmodbitsvvv.tex}} - -\newcommand{\sailgetXContextRegXPTEBase}{\label{zzygetzyXContextRegzyXPTEBase} \lstinputlisting[language=sail]{sail_latex/sailgetXContextRegXPTEBase.tex}} - -\newcommand{\sailfngetXContextRegXPTEBase}{\label{zzygetzyXContextRegzyXPTEBase} \lstinputlisting[language=sail]{sail_latex/sailfngetXContextRegXPTEBase.tex}} - -\newcommand{\sailsetXContextRegXPTEBase}{\label{zzysetzyXContextRegzyXPTEBase} \lstinputlisting[language=sail]{sail_latex/sailsetXContextRegXPTEBase.tex}} - -\newcommand{\sailfnsetXContextRegXPTEBase}{\label{zzysetzyXContextRegzyXPTEBase} \lstinputlisting[language=sail]{sail_latex/sailfnsetXContextRegXPTEBase.tex}} - -\newcommand{\sailupdateXContextRegXPTEBase}{\label{zzyupdatezyXContextRegzyXPTEBase} \lstinputlisting[language=sail]{sail_latex/sailupdateXContextRegXPTEBase.tex}} - -\newcommand{\sailfnupdateXContextRegXPTEBase}{\label{zzyupdatezyXContextRegzyXPTEBase} \lstinputlisting[language=sail]{sail_latex/sailfnupdateXContextRegXPTEBase.tex}} - -\newcommand{\sailupdateXPTEBase}{\label{zupdatezyXPTEBase} \lstinputlisting[language=sail]{sail_latex/sailupdateXPTEBase.tex}} - -\newcommand{\sailmodXPTEBase}{\label{zzymodzyXPTEBase} \lstinputlisting[language=sail]{sail_latex/sailmodXPTEBase.tex}} - -\newcommand{\sailgetXContextRegXR}{\label{zzygetzyXContextRegzyXR} \lstinputlisting[language=sail]{sail_latex/sailgetXContextRegXR.tex}} - -\newcommand{\sailfngetXContextRegXR}{\label{zzygetzyXContextRegzyXR} \lstinputlisting[language=sail]{sail_latex/sailfngetXContextRegXR.tex}} - -\newcommand{\sailsetXContextRegXR}{\label{zzysetzyXContextRegzyXR} \lstinputlisting[language=sail]{sail_latex/sailsetXContextRegXR.tex}} - -\newcommand{\sailfnsetXContextRegXR}{\label{zzysetzyXContextRegzyXR} \lstinputlisting[language=sail]{sail_latex/sailfnsetXContextRegXR.tex}} - -\newcommand{\sailupdateXContextRegXR}{\label{zzyupdatezyXContextRegzyXR} \lstinputlisting[language=sail]{sail_latex/sailupdateXContextRegXR.tex}} - -\newcommand{\sailfnupdateXContextRegXR}{\label{zzyupdatezyXContextRegzyXR} \lstinputlisting[language=sail]{sail_latex/sailfnupdateXContextRegXR.tex}} - -\newcommand{\sailupdateXR}{\label{zupdatezyXR} \lstinputlisting[language=sail]{sail_latex/sailupdateXR.tex}} - -\newcommand{\sailmodXR}{\label{zzymodzyXR} \lstinputlisting[language=sail]{sail_latex/sailmodXR.tex}} - -\newcommand{\sailgetXContextRegXBadVPNtwo}{\label{zzygetzyXContextRegzyXBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailgetXContextRegXBadVPNtwo.tex}} - -\newcommand{\sailfngetXContextRegXBadVPNtwo}{\label{zzygetzyXContextRegzyXBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailfngetXContextRegXBadVPNtwo.tex}} - -\newcommand{\sailsetXContextRegXBadVPNtwo}{\label{zzysetzyXContextRegzyXBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailsetXContextRegXBadVPNtwo.tex}} - -\newcommand{\sailfnsetXContextRegXBadVPNtwo}{\label{zzysetzyXContextRegzyXBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailfnsetXContextRegXBadVPNtwo.tex}} - -\newcommand{\sailupdateXContextRegXBadVPNtwo}{\label{zzyupdatezyXContextRegzyXBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailupdateXContextRegXBadVPNtwo.tex}} - -\newcommand{\sailfnupdateXContextRegXBadVPNtwo}{\label{zzyupdatezyXContextRegzyXBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailfnupdateXContextRegXBadVPNtwo.tex}} - -\newcommand{\sailupdateXBadVPNtwo}{\label{zupdatezyXBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailupdateXBadVPNtwo.tex}} - -\newcommand{\sailmodXBadVPNtwo}{\label{zzymodzyXBadVPNtwo} \lstinputlisting[language=sail]{sail_latex/sailmodXBadVPNtwo.tex}} - -\newcommand{\sailTLBIndexT}{\label{zTLBIndexT} \lstinputlisting[language=sail]{sail_latex/sailTLBIndexT.tex}} - -\newcommand{\sailMAX}{\label{zMAX} \lstinputlisting[language=sail]{sail_latex/sailMAX.tex}} - -\newcommand{\sailfnMAX}{\label{zMAX} \lstinputlisting[language=sail]{sail_latex/sailfnMAX.tex}} - -\newcommand{\sailTLBEntry}{\label{zTLBEntry} \lstinputlisting[language=sail]{sail_latex/sailTLBEntry.tex}} - -\newcommand{\sailMkTLBEntry}{\label{zMkzyTLBEntry} \lstinputlisting[language=sail]{sail_latex/sailMkTLBEntry.tex}} - -\newcommand{\sailfnMkTLBEntry}{\label{zMkzyTLBEntry} \lstinputlisting[language=sail]{sail_latex/sailfnMkTLBEntry.tex}} - -\newcommand{\sailgetTLBEntrybits}{\label{zzygetzyTLBEntryzybits} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntrybits.tex}} - -\newcommand{\sailfngetTLBEntrybits}{\label{zzygetzyTLBEntryzybits} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntrybits.tex}} - -\newcommand{\sailsetTLBEntrybits}{\label{zzysetzyTLBEntryzybits} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntrybits.tex}} - -\newcommand{\sailfnsetTLBEntrybits}{\label{zzysetzyTLBEntryzybits} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntrybits.tex}} - -\newcommand{\sailupdateTLBEntrybits}{\label{zzyupdatezyTLBEntryzybits} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntrybits.tex}} - -\newcommand{\sailfnupdateTLBEntrybits}{\label{zzyupdatezyTLBEntryzybits} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntrybits.tex}} - -\newcommand{\sailsailsailupdatebitsvv}{\label{zupdatezybits} \lstinputlisting[language=sail]{sail_latex/sailsailsailupdatebitsvv.tex}} - -\newcommand{\sailsailsailmodbitsvv}{\label{zzymodzybits} \lstinputlisting[language=sail]{sail_latex/sailsailsailmodbitsvv.tex}} - -\newcommand{\sailgetTLBEntrypagemask}{\label{zzygetzyTLBEntryzypagemask} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntrypagemask.tex}} - -\newcommand{\sailfngetTLBEntrypagemask}{\label{zzygetzyTLBEntryzypagemask} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntrypagemask.tex}} - -\newcommand{\sailsetTLBEntrypagemask}{\label{zzysetzyTLBEntryzypagemask} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntrypagemask.tex}} - -\newcommand{\sailfnsetTLBEntrypagemask}{\label{zzysetzyTLBEntryzypagemask} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntrypagemask.tex}} - -\newcommand{\sailupdateTLBEntrypagemask}{\label{zzyupdatezyTLBEntryzypagemask} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntrypagemask.tex}} - -\newcommand{\sailfnupdateTLBEntrypagemask}{\label{zzyupdatezyTLBEntryzypagemask} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntrypagemask.tex}} - -\newcommand{\sailupdatepagemask}{\label{zupdatezypagemask} \lstinputlisting[language=sail]{sail_latex/sailupdatepagemask.tex}} - -\newcommand{\sailmodpagemask}{\label{zzymodzypagemask} \lstinputlisting[language=sail]{sail_latex/sailmodpagemask.tex}} - -\newcommand{\sailgetTLBEntryr}{\label{zzygetzyTLBEntryzyr} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryr.tex}} - -\newcommand{\sailfngetTLBEntryr}{\label{zzygetzyTLBEntryzyr} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryr.tex}} - -\newcommand{\sailsetTLBEntryr}{\label{zzysetzyTLBEntryzyr} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryr.tex}} - -\newcommand{\sailfnsetTLBEntryr}{\label{zzysetzyTLBEntryzyr} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryr.tex}} - -\newcommand{\sailupdateTLBEntryr}{\label{zzyupdatezyTLBEntryzyr} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryr.tex}} - -\newcommand{\sailfnupdateTLBEntryr}{\label{zzyupdatezyTLBEntryzyr} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryr.tex}} - -\newcommand{\sailupdater}{\label{zupdatezyr} \lstinputlisting[language=sail]{sail_latex/sailupdater.tex}} - -\newcommand{\sailmodr}{\label{zzymodzyr} \lstinputlisting[language=sail]{sail_latex/sailmodr.tex}} - -\newcommand{\sailgetTLBEntryvpntwo}{\label{zzygetzyTLBEntryzyvpntwo} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryvpntwo.tex}} - -\newcommand{\sailfngetTLBEntryvpntwo}{\label{zzygetzyTLBEntryzyvpntwo} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryvpntwo.tex}} - -\newcommand{\sailsetTLBEntryvpntwo}{\label{zzysetzyTLBEntryzyvpntwo} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryvpntwo.tex}} - -\newcommand{\sailfnsetTLBEntryvpntwo}{\label{zzysetzyTLBEntryzyvpntwo} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryvpntwo.tex}} - -\newcommand{\sailupdateTLBEntryvpntwo}{\label{zzyupdatezyTLBEntryzyvpntwo} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryvpntwo.tex}} - -\newcommand{\sailfnupdateTLBEntryvpntwo}{\label{zzyupdatezyTLBEntryzyvpntwo} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryvpntwo.tex}} - -\newcommand{\sailupdatevpntwo}{\label{zupdatezyvpntwo} \lstinputlisting[language=sail]{sail_latex/sailupdatevpntwo.tex}} - -\newcommand{\sailmodvpntwo}{\label{zzymodzyvpntwo} \lstinputlisting[language=sail]{sail_latex/sailmodvpntwo.tex}} - -\newcommand{\sailgetTLBEntryasid}{\label{zzygetzyTLBEntryzyasid} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryasid.tex}} - -\newcommand{\sailfngetTLBEntryasid}{\label{zzygetzyTLBEntryzyasid} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryasid.tex}} - -\newcommand{\sailsetTLBEntryasid}{\label{zzysetzyTLBEntryzyasid} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryasid.tex}} - -\newcommand{\sailfnsetTLBEntryasid}{\label{zzysetzyTLBEntryzyasid} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryasid.tex}} - -\newcommand{\sailupdateTLBEntryasid}{\label{zzyupdatezyTLBEntryzyasid} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryasid.tex}} - -\newcommand{\sailfnupdateTLBEntryasid}{\label{zzyupdatezyTLBEntryzyasid} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryasid.tex}} - -\newcommand{\sailupdateasid}{\label{zupdatezyasid} \lstinputlisting[language=sail]{sail_latex/sailupdateasid.tex}} - -\newcommand{\sailmodasid}{\label{zzymodzyasid} \lstinputlisting[language=sail]{sail_latex/sailmodasid.tex}} - -\newcommand{\sailgetTLBEntryg}{\label{zzygetzyTLBEntryzyg} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryg.tex}} - -\newcommand{\sailfngetTLBEntryg}{\label{zzygetzyTLBEntryzyg} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryg.tex}} - -\newcommand{\sailsetTLBEntryg}{\label{zzysetzyTLBEntryzyg} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryg.tex}} - -\newcommand{\sailfnsetTLBEntryg}{\label{zzysetzyTLBEntryzyg} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryg.tex}} - -\newcommand{\sailupdateTLBEntryg}{\label{zzyupdatezyTLBEntryzyg} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryg.tex}} - -\newcommand{\sailfnupdateTLBEntryg}{\label{zzyupdatezyTLBEntryzyg} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryg.tex}} - -\newcommand{\sailupdateg}{\label{zupdatezyg} \lstinputlisting[language=sail]{sail_latex/sailupdateg.tex}} - -\newcommand{\sailmodg}{\label{zzymodzyg} \lstinputlisting[language=sail]{sail_latex/sailmodg.tex}} - -\newcommand{\sailgetTLBEntryvalid}{\label{zzygetzyTLBEntryzyvalid} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryvalid.tex}} - -\newcommand{\sailfngetTLBEntryvalid}{\label{zzygetzyTLBEntryzyvalid} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryvalid.tex}} - -\newcommand{\sailsetTLBEntryvalid}{\label{zzysetzyTLBEntryzyvalid} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryvalid.tex}} - -\newcommand{\sailfnsetTLBEntryvalid}{\label{zzysetzyTLBEntryzyvalid} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryvalid.tex}} - -\newcommand{\sailupdateTLBEntryvalid}{\label{zzyupdatezyTLBEntryzyvalid} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryvalid.tex}} - -\newcommand{\sailfnupdateTLBEntryvalid}{\label{zzyupdatezyTLBEntryzyvalid} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryvalid.tex}} - -\newcommand{\sailupdatevalid}{\label{zupdatezyvalid} \lstinputlisting[language=sail]{sail_latex/sailupdatevalid.tex}} - -\newcommand{\sailmodvalid}{\label{zzymodzyvalid} \lstinputlisting[language=sail]{sail_latex/sailmodvalid.tex}} - -\newcommand{\sailgetTLBEntrycapsone}{\label{zzygetzyTLBEntryzycapsone} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntrycapsone.tex}} - -\newcommand{\sailfngetTLBEntrycapsone}{\label{zzygetzyTLBEntryzycapsone} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntrycapsone.tex}} - -\newcommand{\sailsetTLBEntrycapsone}{\label{zzysetzyTLBEntryzycapsone} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntrycapsone.tex}} - -\newcommand{\sailfnsetTLBEntrycapsone}{\label{zzysetzyTLBEntryzycapsone} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntrycapsone.tex}} - -\newcommand{\sailupdateTLBEntrycapsone}{\label{zzyupdatezyTLBEntryzycapsone} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntrycapsone.tex}} - -\newcommand{\sailfnupdateTLBEntrycapsone}{\label{zzyupdatezyTLBEntryzycapsone} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntrycapsone.tex}} - -\newcommand{\sailupdatecapsone}{\label{zupdatezycapsone} \lstinputlisting[language=sail]{sail_latex/sailupdatecapsone.tex}} - -\newcommand{\sailmodcapsone}{\label{zzymodzycapsone} \lstinputlisting[language=sail]{sail_latex/sailmodcapsone.tex}} - -\newcommand{\sailgetTLBEntrycaplone}{\label{zzygetzyTLBEntryzycaplone} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntrycaplone.tex}} - -\newcommand{\sailfngetTLBEntrycaplone}{\label{zzygetzyTLBEntryzycaplone} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntrycaplone.tex}} - -\newcommand{\sailsetTLBEntrycaplone}{\label{zzysetzyTLBEntryzycaplone} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntrycaplone.tex}} - -\newcommand{\sailfnsetTLBEntrycaplone}{\label{zzysetzyTLBEntryzycaplone} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntrycaplone.tex}} - -\newcommand{\sailupdateTLBEntrycaplone}{\label{zzyupdatezyTLBEntryzycaplone} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntrycaplone.tex}} - -\newcommand{\sailfnupdateTLBEntrycaplone}{\label{zzyupdatezyTLBEntryzycaplone} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntrycaplone.tex}} - -\newcommand{\sailupdatecaplone}{\label{zupdatezycaplone} \lstinputlisting[language=sail]{sail_latex/sailupdatecaplone.tex}} - -\newcommand{\sailmodcaplone}{\label{zzymodzycaplone} \lstinputlisting[language=sail]{sail_latex/sailmodcaplone.tex}} - -\newcommand{\sailgetTLBEntrypfnone}{\label{zzygetzyTLBEntryzypfnone} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntrypfnone.tex}} - -\newcommand{\sailfngetTLBEntrypfnone}{\label{zzygetzyTLBEntryzypfnone} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntrypfnone.tex}} - -\newcommand{\sailsetTLBEntrypfnone}{\label{zzysetzyTLBEntryzypfnone} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntrypfnone.tex}} - -\newcommand{\sailfnsetTLBEntrypfnone}{\label{zzysetzyTLBEntryzypfnone} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntrypfnone.tex}} - -\newcommand{\sailupdateTLBEntrypfnone}{\label{zzyupdatezyTLBEntryzypfnone} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntrypfnone.tex}} - -\newcommand{\sailfnupdateTLBEntrypfnone}{\label{zzyupdatezyTLBEntryzypfnone} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntrypfnone.tex}} - -\newcommand{\sailupdatepfnone}{\label{zupdatezypfnone} \lstinputlisting[language=sail]{sail_latex/sailupdatepfnone.tex}} - -\newcommand{\sailmodpfnone}{\label{zzymodzypfnone} \lstinputlisting[language=sail]{sail_latex/sailmodpfnone.tex}} - -\newcommand{\sailgetTLBEntrycone}{\label{zzygetzyTLBEntryzycone} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntrycone.tex}} - -\newcommand{\sailfngetTLBEntrycone}{\label{zzygetzyTLBEntryzycone} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntrycone.tex}} - -\newcommand{\sailsetTLBEntrycone}{\label{zzysetzyTLBEntryzycone} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntrycone.tex}} - -\newcommand{\sailfnsetTLBEntrycone}{\label{zzysetzyTLBEntryzycone} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntrycone.tex}} - -\newcommand{\sailupdateTLBEntrycone}{\label{zzyupdatezyTLBEntryzycone} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntrycone.tex}} - -\newcommand{\sailfnupdateTLBEntrycone}{\label{zzyupdatezyTLBEntryzycone} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntrycone.tex}} - -\newcommand{\sailupdatecone}{\label{zupdatezycone} \lstinputlisting[language=sail]{sail_latex/sailupdatecone.tex}} - -\newcommand{\sailmodcone}{\label{zzymodzycone} \lstinputlisting[language=sail]{sail_latex/sailmodcone.tex}} - -\newcommand{\sailgetTLBEntrydone}{\label{zzygetzyTLBEntryzydone} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntrydone.tex}} - -\newcommand{\sailfngetTLBEntrydone}{\label{zzygetzyTLBEntryzydone} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntrydone.tex}} - -\newcommand{\sailsetTLBEntrydone}{\label{zzysetzyTLBEntryzydone} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntrydone.tex}} - -\newcommand{\sailfnsetTLBEntrydone}{\label{zzysetzyTLBEntryzydone} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntrydone.tex}} - -\newcommand{\sailupdateTLBEntrydone}{\label{zzyupdatezyTLBEntryzydone} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntrydone.tex}} - -\newcommand{\sailfnupdateTLBEntrydone}{\label{zzyupdatezyTLBEntryzydone} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntrydone.tex}} - -\newcommand{\sailupdatedone}{\label{zupdatezydone} \lstinputlisting[language=sail]{sail_latex/sailupdatedone.tex}} - -\newcommand{\sailmoddone}{\label{zzymodzydone} \lstinputlisting[language=sail]{sail_latex/sailmoddone.tex}} - -\newcommand{\sailgetTLBEntryvone}{\label{zzygetzyTLBEntryzyvone} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryvone.tex}} - -\newcommand{\sailfngetTLBEntryvone}{\label{zzygetzyTLBEntryzyvone} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryvone.tex}} - -\newcommand{\sailsetTLBEntryvone}{\label{zzysetzyTLBEntryzyvone} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryvone.tex}} - -\newcommand{\sailfnsetTLBEntryvone}{\label{zzysetzyTLBEntryzyvone} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryvone.tex}} - -\newcommand{\sailupdateTLBEntryvone}{\label{zzyupdatezyTLBEntryzyvone} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryvone.tex}} - -\newcommand{\sailfnupdateTLBEntryvone}{\label{zzyupdatezyTLBEntryzyvone} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryvone.tex}} - -\newcommand{\sailupdatevone}{\label{zupdatezyvone} \lstinputlisting[language=sail]{sail_latex/sailupdatevone.tex}} - -\newcommand{\sailmodvone}{\label{zzymodzyvone} \lstinputlisting[language=sail]{sail_latex/sailmodvone.tex}} - -\newcommand{\sailgetTLBEntrycapszero}{\label{zzygetzyTLBEntryzycapszero} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntrycapszero.tex}} - -\newcommand{\sailfngetTLBEntrycapszero}{\label{zzygetzyTLBEntryzycapszero} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntrycapszero.tex}} - -\newcommand{\sailsetTLBEntrycapszero}{\label{zzysetzyTLBEntryzycapszero} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntrycapszero.tex}} - -\newcommand{\sailfnsetTLBEntrycapszero}{\label{zzysetzyTLBEntryzycapszero} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntrycapszero.tex}} - -\newcommand{\sailupdateTLBEntrycapszero}{\label{zzyupdatezyTLBEntryzycapszero} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntrycapszero.tex}} - -\newcommand{\sailfnupdateTLBEntrycapszero}{\label{zzyupdatezyTLBEntryzycapszero} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntrycapszero.tex}} - -\newcommand{\sailupdatecapszero}{\label{zupdatezycapszero} \lstinputlisting[language=sail]{sail_latex/sailupdatecapszero.tex}} - -\newcommand{\sailmodcapszero}{\label{zzymodzycapszero} \lstinputlisting[language=sail]{sail_latex/sailmodcapszero.tex}} - -\newcommand{\sailgetTLBEntrycaplzero}{\label{zzygetzyTLBEntryzycaplzero} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntrycaplzero.tex}} - -\newcommand{\sailfngetTLBEntrycaplzero}{\label{zzygetzyTLBEntryzycaplzero} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntrycaplzero.tex}} - -\newcommand{\sailsetTLBEntrycaplzero}{\label{zzysetzyTLBEntryzycaplzero} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntrycaplzero.tex}} - -\newcommand{\sailfnsetTLBEntrycaplzero}{\label{zzysetzyTLBEntryzycaplzero} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntrycaplzero.tex}} - -\newcommand{\sailupdateTLBEntrycaplzero}{\label{zzyupdatezyTLBEntryzycaplzero} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntrycaplzero.tex}} - -\newcommand{\sailfnupdateTLBEntrycaplzero}{\label{zzyupdatezyTLBEntryzycaplzero} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntrycaplzero.tex}} - -\newcommand{\sailupdatecaplzero}{\label{zupdatezycaplzero} \lstinputlisting[language=sail]{sail_latex/sailupdatecaplzero.tex}} - -\newcommand{\sailmodcaplzero}{\label{zzymodzycaplzero} \lstinputlisting[language=sail]{sail_latex/sailmodcaplzero.tex}} - -\newcommand{\sailgetTLBEntrypfnzero}{\label{zzygetzyTLBEntryzypfnzero} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntrypfnzero.tex}} - -\newcommand{\sailfngetTLBEntrypfnzero}{\label{zzygetzyTLBEntryzypfnzero} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntrypfnzero.tex}} - -\newcommand{\sailsetTLBEntrypfnzero}{\label{zzysetzyTLBEntryzypfnzero} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntrypfnzero.tex}} - -\newcommand{\sailfnsetTLBEntrypfnzero}{\label{zzysetzyTLBEntryzypfnzero} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntrypfnzero.tex}} - -\newcommand{\sailupdateTLBEntrypfnzero}{\label{zzyupdatezyTLBEntryzypfnzero} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntrypfnzero.tex}} - -\newcommand{\sailfnupdateTLBEntrypfnzero}{\label{zzyupdatezyTLBEntryzypfnzero} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntrypfnzero.tex}} - -\newcommand{\sailupdatepfnzero}{\label{zupdatezypfnzero} \lstinputlisting[language=sail]{sail_latex/sailupdatepfnzero.tex}} - -\newcommand{\sailmodpfnzero}{\label{zzymodzypfnzero} \lstinputlisting[language=sail]{sail_latex/sailmodpfnzero.tex}} - -\newcommand{\sailgetTLBEntryczero}{\label{zzygetzyTLBEntryzyczero} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryczero.tex}} - -\newcommand{\sailfngetTLBEntryczero}{\label{zzygetzyTLBEntryzyczero} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryczero.tex}} - -\newcommand{\sailsetTLBEntryczero}{\label{zzysetzyTLBEntryzyczero} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryczero.tex}} - -\newcommand{\sailfnsetTLBEntryczero}{\label{zzysetzyTLBEntryzyczero} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryczero.tex}} - -\newcommand{\sailupdateTLBEntryczero}{\label{zzyupdatezyTLBEntryzyczero} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryczero.tex}} - -\newcommand{\sailfnupdateTLBEntryczero}{\label{zzyupdatezyTLBEntryzyczero} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryczero.tex}} - -\newcommand{\sailupdateczero}{\label{zupdatezyczero} \lstinputlisting[language=sail]{sail_latex/sailupdateczero.tex}} - -\newcommand{\sailmodczero}{\label{zzymodzyczero} \lstinputlisting[language=sail]{sail_latex/sailmodczero.tex}} - -\newcommand{\sailgetTLBEntrydzero}{\label{zzygetzyTLBEntryzydzero} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntrydzero.tex}} - -\newcommand{\sailfngetTLBEntrydzero}{\label{zzygetzyTLBEntryzydzero} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntrydzero.tex}} - -\newcommand{\sailsetTLBEntrydzero}{\label{zzysetzyTLBEntryzydzero} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntrydzero.tex}} - -\newcommand{\sailfnsetTLBEntrydzero}{\label{zzysetzyTLBEntryzydzero} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntrydzero.tex}} - -\newcommand{\sailupdateTLBEntrydzero}{\label{zzyupdatezyTLBEntryzydzero} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntrydzero.tex}} - -\newcommand{\sailfnupdateTLBEntrydzero}{\label{zzyupdatezyTLBEntryzydzero} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntrydzero.tex}} - -\newcommand{\sailupdatedzero}{\label{zupdatezydzero} \lstinputlisting[language=sail]{sail_latex/sailupdatedzero.tex}} - -\newcommand{\sailmoddzero}{\label{zzymodzydzero} \lstinputlisting[language=sail]{sail_latex/sailmoddzero.tex}} - -\newcommand{\sailgetTLBEntryvzero}{\label{zzygetzyTLBEntryzyvzero} \lstinputlisting[language=sail]{sail_latex/sailgetTLBEntryvzero.tex}} - -\newcommand{\sailfngetTLBEntryvzero}{\label{zzygetzyTLBEntryzyvzero} \lstinputlisting[language=sail]{sail_latex/sailfngetTLBEntryvzero.tex}} - -\newcommand{\sailsetTLBEntryvzero}{\label{zzysetzyTLBEntryzyvzero} \lstinputlisting[language=sail]{sail_latex/sailsetTLBEntryvzero.tex}} - -\newcommand{\sailfnsetTLBEntryvzero}{\label{zzysetzyTLBEntryzyvzero} \lstinputlisting[language=sail]{sail_latex/sailfnsetTLBEntryvzero.tex}} - -\newcommand{\sailupdateTLBEntryvzero}{\label{zzyupdatezyTLBEntryzyvzero} \lstinputlisting[language=sail]{sail_latex/sailupdateTLBEntryvzero.tex}} - -\newcommand{\sailfnupdateTLBEntryvzero}{\label{zzyupdatezyTLBEntryzyvzero} \lstinputlisting[language=sail]{sail_latex/sailfnupdateTLBEntryvzero.tex}} - -\newcommand{\sailupdatevzero}{\label{zupdatezyvzero} \lstinputlisting[language=sail]{sail_latex/sailupdatevzero.tex}} - -\newcommand{\sailmodvzero}{\label{zzymodzyvzero} \lstinputlisting[language=sail]{sail_latex/sailmodvzero.tex}} - -\newcommand{\sailStatusReg}{\label{zStatusReg} \lstinputlisting[language=sail]{sail_latex/sailStatusReg.tex}} - -\newcommand{\sailMkStatusReg}{\label{zMkzyStatusReg} \lstinputlisting[language=sail]{sail_latex/sailMkStatusReg.tex}} - -\newcommand{\sailfnMkStatusReg}{\label{zMkzyStatusReg} \lstinputlisting[language=sail]{sail_latex/sailfnMkStatusReg.tex}} - -\newcommand{\sailgetStatusRegbits}{\label{zzygetzyStatusRegzybits} \lstinputlisting[language=sail]{sail_latex/sailgetStatusRegbits.tex}} - -\newcommand{\sailfngetStatusRegbits}{\label{zzygetzyStatusRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfngetStatusRegbits.tex}} - -\newcommand{\sailsetStatusRegbits}{\label{zzysetzyStatusRegzybits} \lstinputlisting[language=sail]{sail_latex/sailsetStatusRegbits.tex}} - -\newcommand{\sailfnsetStatusRegbits}{\label{zzysetzyStatusRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnsetStatusRegbits.tex}} - -\newcommand{\sailupdateStatusRegbits}{\label{zzyupdatezyStatusRegzybits} \lstinputlisting[language=sail]{sail_latex/sailupdateStatusRegbits.tex}} - -\newcommand{\sailfnupdateStatusRegbits}{\label{zzyupdatezyStatusRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnupdateStatusRegbits.tex}} - -\newcommand{\sailsailupdatebitsv}{\label{zupdatezybits} \lstinputlisting[language=sail]{sail_latex/sailsailupdatebitsv.tex}} - -\newcommand{\sailsailmodbitsv}{\label{zzymodzybits} \lstinputlisting[language=sail]{sail_latex/sailsailmodbitsv.tex}} - -\newcommand{\sailgetStatusRegCU}{\label{zzygetzyStatusRegzyCU} \lstinputlisting[language=sail]{sail_latex/sailgetStatusRegCU.tex}} - -\newcommand{\sailfngetStatusRegCU}{\label{zzygetzyStatusRegzyCU} \lstinputlisting[language=sail]{sail_latex/sailfngetStatusRegCU.tex}} - -\newcommand{\sailsetStatusRegCU}{\label{zzysetzyStatusRegzyCU} \lstinputlisting[language=sail]{sail_latex/sailsetStatusRegCU.tex}} - -\newcommand{\sailfnsetStatusRegCU}{\label{zzysetzyStatusRegzyCU} \lstinputlisting[language=sail]{sail_latex/sailfnsetStatusRegCU.tex}} - -\newcommand{\sailupdateStatusRegCU}{\label{zzyupdatezyStatusRegzyCU} \lstinputlisting[language=sail]{sail_latex/sailupdateStatusRegCU.tex}} - -\newcommand{\sailfnupdateStatusRegCU}{\label{zzyupdatezyStatusRegzyCU} \lstinputlisting[language=sail]{sail_latex/sailfnupdateStatusRegCU.tex}} - -\newcommand{\sailupdateCU}{\label{zupdatezyCU} \lstinputlisting[language=sail]{sail_latex/sailupdateCU.tex}} - -\newcommand{\sailmodCU}{\label{zzymodzyCU} \lstinputlisting[language=sail]{sail_latex/sailmodCU.tex}} - -\newcommand{\sailgetStatusRegBEV}{\label{zzygetzyStatusRegzyBEV} \lstinputlisting[language=sail]{sail_latex/sailgetStatusRegBEV.tex}} - -\newcommand{\sailfngetStatusRegBEV}{\label{zzygetzyStatusRegzyBEV} \lstinputlisting[language=sail]{sail_latex/sailfngetStatusRegBEV.tex}} - -\newcommand{\sailsetStatusRegBEV}{\label{zzysetzyStatusRegzyBEV} \lstinputlisting[language=sail]{sail_latex/sailsetStatusRegBEV.tex}} - -\newcommand{\sailfnsetStatusRegBEV}{\label{zzysetzyStatusRegzyBEV} \lstinputlisting[language=sail]{sail_latex/sailfnsetStatusRegBEV.tex}} - -\newcommand{\sailupdateStatusRegBEV}{\label{zzyupdatezyStatusRegzyBEV} \lstinputlisting[language=sail]{sail_latex/sailupdateStatusRegBEV.tex}} - -\newcommand{\sailfnupdateStatusRegBEV}{\label{zzyupdatezyStatusRegzyBEV} \lstinputlisting[language=sail]{sail_latex/sailfnupdateStatusRegBEV.tex}} - -\newcommand{\sailupdateBEV}{\label{zupdatezyBEV} \lstinputlisting[language=sail]{sail_latex/sailupdateBEV.tex}} - -\newcommand{\sailmodBEV}{\label{zzymodzyBEV} \lstinputlisting[language=sail]{sail_latex/sailmodBEV.tex}} - -\newcommand{\sailgetStatusRegIM}{\label{zzygetzyStatusRegzyIM} \lstinputlisting[language=sail]{sail_latex/sailgetStatusRegIM.tex}} - -\newcommand{\sailfngetStatusRegIM}{\label{zzygetzyStatusRegzyIM} \lstinputlisting[language=sail]{sail_latex/sailfngetStatusRegIM.tex}} - -\newcommand{\sailsetStatusRegIM}{\label{zzysetzyStatusRegzyIM} \lstinputlisting[language=sail]{sail_latex/sailsetStatusRegIM.tex}} - -\newcommand{\sailfnsetStatusRegIM}{\label{zzysetzyStatusRegzyIM} \lstinputlisting[language=sail]{sail_latex/sailfnsetStatusRegIM.tex}} - -\newcommand{\sailupdateStatusRegIM}{\label{zzyupdatezyStatusRegzyIM} \lstinputlisting[language=sail]{sail_latex/sailupdateStatusRegIM.tex}} - -\newcommand{\sailfnupdateStatusRegIM}{\label{zzyupdatezyStatusRegzyIM} \lstinputlisting[language=sail]{sail_latex/sailfnupdateStatusRegIM.tex}} - -\newcommand{\sailupdateIM}{\label{zupdatezyIM} \lstinputlisting[language=sail]{sail_latex/sailupdateIM.tex}} - -\newcommand{\sailmodIM}{\label{zzymodzyIM} \lstinputlisting[language=sail]{sail_latex/sailmodIM.tex}} - -\newcommand{\sailgetStatusRegKX}{\label{zzygetzyStatusRegzyKX} \lstinputlisting[language=sail]{sail_latex/sailgetStatusRegKX.tex}} - -\newcommand{\sailfngetStatusRegKX}{\label{zzygetzyStatusRegzyKX} \lstinputlisting[language=sail]{sail_latex/sailfngetStatusRegKX.tex}} - -\newcommand{\sailsetStatusRegKX}{\label{zzysetzyStatusRegzyKX} \lstinputlisting[language=sail]{sail_latex/sailsetStatusRegKX.tex}} - -\newcommand{\sailfnsetStatusRegKX}{\label{zzysetzyStatusRegzyKX} \lstinputlisting[language=sail]{sail_latex/sailfnsetStatusRegKX.tex}} - -\newcommand{\sailupdateStatusRegKX}{\label{zzyupdatezyStatusRegzyKX} \lstinputlisting[language=sail]{sail_latex/sailupdateStatusRegKX.tex}} - -\newcommand{\sailfnupdateStatusRegKX}{\label{zzyupdatezyStatusRegzyKX} \lstinputlisting[language=sail]{sail_latex/sailfnupdateStatusRegKX.tex}} - -\newcommand{\sailupdateKX}{\label{zupdatezyKX} \lstinputlisting[language=sail]{sail_latex/sailupdateKX.tex}} - -\newcommand{\sailmodKX}{\label{zzymodzyKX} \lstinputlisting[language=sail]{sail_latex/sailmodKX.tex}} - -\newcommand{\sailgetStatusRegSX}{\label{zzygetzyStatusRegzySX} \lstinputlisting[language=sail]{sail_latex/sailgetStatusRegSX.tex}} - -\newcommand{\sailfngetStatusRegSX}{\label{zzygetzyStatusRegzySX} \lstinputlisting[language=sail]{sail_latex/sailfngetStatusRegSX.tex}} - -\newcommand{\sailsetStatusRegSX}{\label{zzysetzyStatusRegzySX} \lstinputlisting[language=sail]{sail_latex/sailsetStatusRegSX.tex}} - -\newcommand{\sailfnsetStatusRegSX}{\label{zzysetzyStatusRegzySX} \lstinputlisting[language=sail]{sail_latex/sailfnsetStatusRegSX.tex}} - -\newcommand{\sailupdateStatusRegSX}{\label{zzyupdatezyStatusRegzySX} \lstinputlisting[language=sail]{sail_latex/sailupdateStatusRegSX.tex}} - -\newcommand{\sailfnupdateStatusRegSX}{\label{zzyupdatezyStatusRegzySX} \lstinputlisting[language=sail]{sail_latex/sailfnupdateStatusRegSX.tex}} - -\newcommand{\sailupdateSX}{\label{zupdatezySX} \lstinputlisting[language=sail]{sail_latex/sailupdateSX.tex}} - -\newcommand{\sailmodSX}{\label{zzymodzySX} \lstinputlisting[language=sail]{sail_latex/sailmodSX.tex}} - -\newcommand{\sailgetStatusRegUX}{\label{zzygetzyStatusRegzyUX} \lstinputlisting[language=sail]{sail_latex/sailgetStatusRegUX.tex}} - -\newcommand{\sailfngetStatusRegUX}{\label{zzygetzyStatusRegzyUX} \lstinputlisting[language=sail]{sail_latex/sailfngetStatusRegUX.tex}} - -\newcommand{\sailsetStatusRegUX}{\label{zzysetzyStatusRegzyUX} \lstinputlisting[language=sail]{sail_latex/sailsetStatusRegUX.tex}} - -\newcommand{\sailfnsetStatusRegUX}{\label{zzysetzyStatusRegzyUX} \lstinputlisting[language=sail]{sail_latex/sailfnsetStatusRegUX.tex}} - -\newcommand{\sailupdateStatusRegUX}{\label{zzyupdatezyStatusRegzyUX} \lstinputlisting[language=sail]{sail_latex/sailupdateStatusRegUX.tex}} - -\newcommand{\sailfnupdateStatusRegUX}{\label{zzyupdatezyStatusRegzyUX} \lstinputlisting[language=sail]{sail_latex/sailfnupdateStatusRegUX.tex}} - -\newcommand{\sailupdateUX}{\label{zupdatezyUX} \lstinputlisting[language=sail]{sail_latex/sailupdateUX.tex}} - -\newcommand{\sailmodUX}{\label{zzymodzyUX} \lstinputlisting[language=sail]{sail_latex/sailmodUX.tex}} - -\newcommand{\sailgetStatusRegKSU}{\label{zzygetzyStatusRegzyKSU} \lstinputlisting[language=sail]{sail_latex/sailgetStatusRegKSU.tex}} - -\newcommand{\sailfngetStatusRegKSU}{\label{zzygetzyStatusRegzyKSU} \lstinputlisting[language=sail]{sail_latex/sailfngetStatusRegKSU.tex}} - -\newcommand{\sailsetStatusRegKSU}{\label{zzysetzyStatusRegzyKSU} \lstinputlisting[language=sail]{sail_latex/sailsetStatusRegKSU.tex}} - -\newcommand{\sailfnsetStatusRegKSU}{\label{zzysetzyStatusRegzyKSU} \lstinputlisting[language=sail]{sail_latex/sailfnsetStatusRegKSU.tex}} - -\newcommand{\sailupdateStatusRegKSU}{\label{zzyupdatezyStatusRegzyKSU} \lstinputlisting[language=sail]{sail_latex/sailupdateStatusRegKSU.tex}} - -\newcommand{\sailfnupdateStatusRegKSU}{\label{zzyupdatezyStatusRegzyKSU} \lstinputlisting[language=sail]{sail_latex/sailfnupdateStatusRegKSU.tex}} - -\newcommand{\sailupdateKSU}{\label{zupdatezyKSU} \lstinputlisting[language=sail]{sail_latex/sailupdateKSU.tex}} - -\newcommand{\sailmodKSU}{\label{zzymodzyKSU} \lstinputlisting[language=sail]{sail_latex/sailmodKSU.tex}} - -\newcommand{\sailgetStatusRegERL}{\label{zzygetzyStatusRegzyERL} \lstinputlisting[language=sail]{sail_latex/sailgetStatusRegERL.tex}} - -\newcommand{\sailfngetStatusRegERL}{\label{zzygetzyStatusRegzyERL} \lstinputlisting[language=sail]{sail_latex/sailfngetStatusRegERL.tex}} - -\newcommand{\sailsetStatusRegERL}{\label{zzysetzyStatusRegzyERL} \lstinputlisting[language=sail]{sail_latex/sailsetStatusRegERL.tex}} - -\newcommand{\sailfnsetStatusRegERL}{\label{zzysetzyStatusRegzyERL} \lstinputlisting[language=sail]{sail_latex/sailfnsetStatusRegERL.tex}} - -\newcommand{\sailupdateStatusRegERL}{\label{zzyupdatezyStatusRegzyERL} \lstinputlisting[language=sail]{sail_latex/sailupdateStatusRegERL.tex}} - -\newcommand{\sailfnupdateStatusRegERL}{\label{zzyupdatezyStatusRegzyERL} \lstinputlisting[language=sail]{sail_latex/sailfnupdateStatusRegERL.tex}} - -\newcommand{\sailupdateERL}{\label{zupdatezyERL} \lstinputlisting[language=sail]{sail_latex/sailupdateERL.tex}} - -\newcommand{\sailmodERL}{\label{zzymodzyERL} \lstinputlisting[language=sail]{sail_latex/sailmodERL.tex}} - -\newcommand{\sailgetStatusRegEXL}{\label{zzygetzyStatusRegzyEXL} \lstinputlisting[language=sail]{sail_latex/sailgetStatusRegEXL.tex}} - -\newcommand{\sailfngetStatusRegEXL}{\label{zzygetzyStatusRegzyEXL} \lstinputlisting[language=sail]{sail_latex/sailfngetStatusRegEXL.tex}} - -\newcommand{\sailsetStatusRegEXL}{\label{zzysetzyStatusRegzyEXL} \lstinputlisting[language=sail]{sail_latex/sailsetStatusRegEXL.tex}} - -\newcommand{\sailfnsetStatusRegEXL}{\label{zzysetzyStatusRegzyEXL} \lstinputlisting[language=sail]{sail_latex/sailfnsetStatusRegEXL.tex}} - -\newcommand{\sailupdateStatusRegEXL}{\label{zzyupdatezyStatusRegzyEXL} \lstinputlisting[language=sail]{sail_latex/sailupdateStatusRegEXL.tex}} - -\newcommand{\sailfnupdateStatusRegEXL}{\label{zzyupdatezyStatusRegzyEXL} \lstinputlisting[language=sail]{sail_latex/sailfnupdateStatusRegEXL.tex}} - -\newcommand{\sailupdateEXL}{\label{zupdatezyEXL} \lstinputlisting[language=sail]{sail_latex/sailupdateEXL.tex}} - -\newcommand{\sailmodEXL}{\label{zzymodzyEXL} \lstinputlisting[language=sail]{sail_latex/sailmodEXL.tex}} - -\newcommand{\sailgetStatusRegIE}{\label{zzygetzyStatusRegzyIE} \lstinputlisting[language=sail]{sail_latex/sailgetStatusRegIE.tex}} - -\newcommand{\sailfngetStatusRegIE}{\label{zzygetzyStatusRegzyIE} \lstinputlisting[language=sail]{sail_latex/sailfngetStatusRegIE.tex}} - -\newcommand{\sailsetStatusRegIE}{\label{zzysetzyStatusRegzyIE} \lstinputlisting[language=sail]{sail_latex/sailsetStatusRegIE.tex}} - -\newcommand{\sailfnsetStatusRegIE}{\label{zzysetzyStatusRegzyIE} \lstinputlisting[language=sail]{sail_latex/sailfnsetStatusRegIE.tex}} - -\newcommand{\sailupdateStatusRegIE}{\label{zzyupdatezyStatusRegzyIE} \lstinputlisting[language=sail]{sail_latex/sailupdateStatusRegIE.tex}} - -\newcommand{\sailfnupdateStatusRegIE}{\label{zzyupdatezyStatusRegzyIE} \lstinputlisting[language=sail]{sail_latex/sailfnupdateStatusRegIE.tex}} - -\newcommand{\sailupdateIE}{\label{zupdatezyIE} \lstinputlisting[language=sail]{sail_latex/sailupdateIE.tex}} - -\newcommand{\sailmodIE}{\label{zzymodzyIE} \lstinputlisting[language=sail]{sail_latex/sailmodIE.tex}} - -\newcommand{\sailexecutebranch}{\label{zexecutezybranch} \lstinputlisting[language=sail]{sail_latex/sailexecutebranch.tex}} - -\newcommand{\sailfnexecutebranch}{\label{zexecutezybranch} \lstinputlisting[language=sail]{sail_latex/sailfnexecutebranch.tex}} - -\newcommand{\sailNotWordVal}{\label{zNotWordVal} \lstinputlisting[language=sail]{sail_latex/sailNotWordVal.tex}} - -\newcommand{\sailfnNotWordVal}{\label{zNotWordVal} \lstinputlisting[language=sail]{sail_latex/sailfnNotWordVal.tex}} - -\newcommand{\sailrGPR}{\label{zrGPR} \lstinputlisting[language=sail]{sail_latex/sailrGPR.tex}} - -\newcommand{\sailfnrGPR}{\label{zrGPR} \lstinputlisting[language=sail]{sail_latex/sailfnrGPR.tex}} - -\newcommand{\sailwGPR}{\label{zwGPR} \lstinputlisting[language=sail]{sail_latex/sailwGPR.tex}} - -\newcommand{\sailfnwGPR}{\label{zwGPR} \lstinputlisting[language=sail]{sail_latex/sailfnwGPR.tex}} - -\newcommand{\sailMEMr}{\label{zMEMr} \lstinputlisting[language=sail]{sail_latex/sailMEMr.tex}} - -\newcommand{\sailMEMrreserve}{\label{zMEMrzyreserve} \lstinputlisting[language=sail]{sail_latex/sailMEMrreserve.tex}} - -\newcommand{\sailMEMsync}{\label{zMEMzysync} \lstinputlisting[language=sail]{sail_latex/sailMEMsync.tex}} - -\newcommand{\sailMEMea}{\label{zMEMea} \lstinputlisting[language=sail]{sail_latex/sailMEMea.tex}} - -\newcommand{\sailMEMeaconditional}{\label{zMEMeazyconditional} \lstinputlisting[language=sail]{sail_latex/sailMEMeaconditional.tex}} - -\newcommand{\sailMEMval}{\label{zMEMval} \lstinputlisting[language=sail]{sail_latex/sailMEMval.tex}} - -\newcommand{\sailMEMvalconditional}{\label{zMEMvalzyconditional} \lstinputlisting[language=sail]{sail_latex/sailMEMvalconditional.tex}} - -\newcommand{\sailskipeamem}{\label{zskipzyeamem} \lstinputlisting[language=sail]{sail_latex/sailskipeamem.tex}} - -\newcommand{\sailskipbarr}{\label{zskipzybarr} \lstinputlisting[language=sail]{sail_latex/sailskipbarr.tex}} - -\newcommand{\sailskipwreg}{\label{zskipzywreg} \lstinputlisting[language=sail]{sail_latex/sailskipwreg.tex}} - -\newcommand{\sailskiprreg}{\label{zskipzyrreg} \lstinputlisting[language=sail]{sail_latex/sailskiprreg.tex}} - -\newcommand{\sailskipwmvt}{\label{zskipzywmvt} \lstinputlisting[language=sail]{sail_latex/sailskipwmvt.tex}} - -\newcommand{\sailskiprmemt}{\label{zskipzyrmemt} \lstinputlisting[language=sail]{sail_latex/sailskiprmemt.tex}} - -\newcommand{\sailskipescape}{\label{zskipzyescape} \lstinputlisting[language=sail]{sail_latex/sailskipescape.tex}} - -\newcommand{\sailfnMEMr}{\label{zMEMr} \lstinputlisting[language=sail]{sail_latex/sailfnMEMr.tex}} - -\newcommand{\sailfnMEMrreserve}{\label{zMEMrzyreserve} \lstinputlisting[language=sail]{sail_latex/sailfnMEMrreserve.tex}} - -\newcommand{\sailfnMEMsync}{\label{zMEMzysync} \lstinputlisting[language=sail]{sail_latex/sailfnMEMsync.tex}} - -\newcommand{\sailfnMEMea}{\label{zMEMea} \lstinputlisting[language=sail]{sail_latex/sailfnMEMea.tex}} - -\newcommand{\sailfnMEMeaconditional}{\label{zMEMeazyconditional} \lstinputlisting[language=sail]{sail_latex/sailfnMEMeaconditional.tex}} - -\newcommand{\sailfnMEMval}{\label{zMEMval} \lstinputlisting[language=sail]{sail_latex/sailfnMEMval.tex}} - -\newcommand{\sailfnMEMvalconditional}{\label{zMEMvalzyconditional} \lstinputlisting[language=sail]{sail_latex/sailfnMEMvalconditional.tex}} - -\newcommand{\sailException}{\label{zException} \lstinputlisting[language=sail]{sail_latex/sailException.tex}} - -\newcommand{\sailExceptionofnum}{\label{zExceptionzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailExceptionofnum.tex}} - -\newcommand{\sailfnExceptionofnum}{\label{zExceptionzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailfnExceptionofnum.tex}} - -\newcommand{\sailnumofException}{\label{znumzyofzyException} \lstinputlisting[language=sail]{sail_latex/sailnumofException.tex}} - -\newcommand{\sailfnnumofException}{\label{znumzyofzyException} \lstinputlisting[language=sail]{sail_latex/sailfnnumofException.tex}} - -\newcommand{\sailExceptionCode}{\label{zExceptionCode} \lstinputlisting[language=sail]{sail_latex/sailExceptionCode.tex}} - -\newcommand{\sailfnExceptionCode}{\label{zExceptionCode} \lstinputlisting[language=sail]{sail_latex/sailfnExceptionCode.tex}} - -\newcommand{\sailSignalExceptionMIPS}{\label{zSignalExceptionMIPS} \lstinputlisting[language=sail]{sail_latex/sailSignalExceptionMIPS.tex}} - -\newcommand{\sailfnSignalExceptionMIPS}{\label{zSignalExceptionMIPS} \lstinputlisting[language=sail]{sail_latex/sailfnSignalExceptionMIPS.tex}} - -\newcommand{\sailSignalException}{\label{zSignalException} \lstinputlisting[language=sail]{sail_latex/sailSignalException.tex}} - -\newcommand{\sailSignalExceptionBadAddr}{\label{zSignalExceptionBadAddr} \lstinputlisting[language=sail]{sail_latex/sailSignalExceptionBadAddr.tex}} - -\newcommand{\sailfnSignalExceptionBadAddr}{\label{zSignalExceptionBadAddr} \lstinputlisting[language=sail]{sail_latex/sailfnSignalExceptionBadAddr.tex}} - -\newcommand{\sailSignalExceptionTLB}{\label{zSignalExceptionTLB} \lstinputlisting[language=sail]{sail_latex/sailSignalExceptionTLB.tex}} - -\newcommand{\sailfnSignalExceptionTLB}{\label{zSignalExceptionTLB} \lstinputlisting[language=sail]{sail_latex/sailfnSignalExceptionTLB.tex}} - -\newcommand{\sailMemAccessType}{\label{zMemAccessType} \lstinputlisting[language=sail]{sail_latex/sailMemAccessType.tex}} - -\newcommand{\sailMemAccessTypeofnum}{\label{zMemAccessTypezyofzynum} \lstinputlisting[language=sail]{sail_latex/sailMemAccessTypeofnum.tex}} - -\newcommand{\sailfnMemAccessTypeofnum}{\label{zMemAccessTypezyofzynum} \lstinputlisting[language=sail]{sail_latex/sailfnMemAccessTypeofnum.tex}} - -\newcommand{\sailnumofMemAccessType}{\label{znumzyofzyMemAccessType} \lstinputlisting[language=sail]{sail_latex/sailnumofMemAccessType.tex}} - -\newcommand{\sailfnnumofMemAccessType}{\label{znumzyofzyMemAccessType} \lstinputlisting[language=sail]{sail_latex/sailfnnumofMemAccessType.tex}} - -\newcommand{\sailAccessLevel}{\label{zAccessLevel} \lstinputlisting[language=sail]{sail_latex/sailAccessLevel.tex}} - -\newcommand{\sailAccessLevelofnum}{\label{zAccessLevelzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailAccessLevelofnum.tex}} - -\newcommand{\sailfnAccessLevelofnum}{\label{zAccessLevelzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailfnAccessLevelofnum.tex}} - -\newcommand{\sailnumofAccessLevel}{\label{znumzyofzyAccessLevel} \lstinputlisting[language=sail]{sail_latex/sailnumofAccessLevel.tex}} - -\newcommand{\sailfnnumofAccessLevel}{\label{znumzyofzyAccessLevel} \lstinputlisting[language=sail]{sail_latex/sailfnnumofAccessLevel.tex}} - -\newcommand{\sailintofAccessLevel}{\label{zintzyofzyAccessLevel} \lstinputlisting[language=sail]{sail_latex/sailintofAccessLevel.tex}} - -\newcommand{\sailfnintofAccessLevel}{\label{zintzyofzyAccessLevel} \lstinputlisting[language=sail]{sail_latex/sailfnintofAccessLevel.tex}} - -\newcommand{\sailgrantsAccess}{\label{zgrantsAccess} -Returns whether the first AccessLevel is sufficient to grant access at the second, required, access level. - \lstinputlisting[language=sail]{sail_latex/sailgrantsAccess.tex}} - -\newcommand{\sailfngrantsAccess}{\label{zgrantsAccess} \lstinputlisting[language=sail]{sail_latex/sailfngrantsAccess.tex}} - -\newcommand{\sailgetAccessLevel}{\label{zgetAccessLevel} -Returns the current effective access level determined by accessing the relevant parts of the MIPS status register. - \lstinputlisting[language=sail]{sail_latex/sailgetAccessLevel.tex}} - -\newcommand{\sailfngetAccessLevel}{\label{zgetAccessLevel} \lstinputlisting[language=sail]{sail_latex/sailfngetAccessLevel.tex}} - -\newcommand{\sailcheckCPzeroAccess}{\label{zcheckCPzeroAccess} \lstinputlisting[language=sail]{sail_latex/sailcheckCPzeroAccess.tex}} - -\newcommand{\sailfncheckCPzeroAccess}{\label{zcheckCPzeroAccess} \lstinputlisting[language=sail]{sail_latex/sailfncheckCPzeroAccess.tex}} - -\newcommand{\sailincrementCPzeroCount}{\label{zincrementCPzeroCount} \lstinputlisting[language=sail]{sail_latex/sailincrementCPzeroCount.tex}} - -\newcommand{\sailfnincrementCPzeroCount}{\label{zincrementCPzeroCount} \lstinputlisting[language=sail]{sail_latex/sailfnincrementCPzeroCount.tex}} - -\newcommand{\sailregno}{\label{zregno} \lstinputlisting[language=sail]{sail_latex/sailregno.tex}} - -\newcommand{\sailimmonesix}{\label{zimmonesix} \lstinputlisting[language=sail]{sail_latex/sailimmonesix.tex}} - -\newcommand{\sailregregreg}{\label{zregregreg} \lstinputlisting[language=sail]{sail_latex/sailregregreg.tex}} - -\newcommand{\sailregregimmonesix}{\label{zregregimmonesix} \lstinputlisting[language=sail]{sail_latex/sailregregimmonesix.tex}} - -\newcommand{\saildecodefailure}{\label{zdecodezyfailure} \lstinputlisting[language=sail]{sail_latex/saildecodefailure.tex}} - -\newcommand{\saildecodefailureofnum}{\label{zdecodezyfailurezyofzynum} \lstinputlisting[language=sail]{sail_latex/saildecodefailureofnum.tex}} - -\newcommand{\sailfndecodefailureofnum}{\label{zdecodezyfailurezyofzynum} \lstinputlisting[language=sail]{sail_latex/sailfndecodefailureofnum.tex}} - -\newcommand{\sailnumofdecodefailure}{\label{znumzyofzydecodezyfailure} \lstinputlisting[language=sail]{sail_latex/sailnumofdecodefailure.tex}} - -\newcommand{\sailfnnumofdecodefailure}{\label{znumzyofzydecodezyfailure} \lstinputlisting[language=sail]{sail_latex/sailfnnumofdecodefailure.tex}} - -\newcommand{\sailComparison}{\label{zComparison} \lstinputlisting[language=sail]{sail_latex/sailComparison.tex}} - -\newcommand{\sailComparisonofnum}{\label{zComparisonzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailComparisonofnum.tex}} - -\newcommand{\sailfnComparisonofnum}{\label{zComparisonzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailfnComparisonofnum.tex}} - -\newcommand{\sailnumofComparison}{\label{znumzyofzyComparison} \lstinputlisting[language=sail]{sail_latex/sailnumofComparison.tex}} - -\newcommand{\sailfnnumofComparison}{\label{znumzyofzyComparison} \lstinputlisting[language=sail]{sail_latex/sailfnnumofComparison.tex}} - -\newcommand{\sailcompare}{\label{zcompare} \lstinputlisting[language=sail]{sail_latex/sailcompare.tex}} - -\newcommand{\sailfncompare}{\label{zcompare} \lstinputlisting[language=sail]{sail_latex/sailfncompare.tex}} - -\newcommand{\sailWordType}{\label{zWordType} \lstinputlisting[language=sail]{sail_latex/sailWordType.tex}} - -\newcommand{\sailWordTypeofnum}{\label{zWordTypezyofzynum} \lstinputlisting[language=sail]{sail_latex/sailWordTypeofnum.tex}} - -\newcommand{\sailfnWordTypeofnum}{\label{zWordTypezyofzynum} \lstinputlisting[language=sail]{sail_latex/sailfnWordTypeofnum.tex}} - -\newcommand{\sailnumofWordType}{\label{znumzyofzyWordType} \lstinputlisting[language=sail]{sail_latex/sailnumofWordType.tex}} - -\newcommand{\sailfnnumofWordType}{\label{znumzyofzyWordType} \lstinputlisting[language=sail]{sail_latex/sailfnnumofWordType.tex}} - -\newcommand{\sailWordTypeUnaligned}{\label{zWordTypeUnaligned} \lstinputlisting[language=sail]{sail_latex/sailWordTypeUnaligned.tex}} - -\newcommand{\sailWordTypeUnalignedofnum}{\label{zWordTypeUnalignedzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailWordTypeUnalignedofnum.tex}} - -\newcommand{\sailfnWordTypeUnalignedofnum}{\label{zWordTypeUnalignedzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailfnWordTypeUnalignedofnum.tex}} - -\newcommand{\sailnumofWordTypeUnaligned}{\label{znumzyofzyWordTypeUnaligned} \lstinputlisting[language=sail]{sail_latex/sailnumofWordTypeUnaligned.tex}} - -\newcommand{\sailfnnumofWordTypeUnaligned}{\label{znumzyofzyWordTypeUnaligned} \lstinputlisting[language=sail]{sail_latex/sailfnnumofWordTypeUnaligned.tex}} - -\newcommand{\sailwordWidthBytes}{\label{zwordWidthBytes} \lstinputlisting[language=sail]{sail_latex/sailwordWidthBytes.tex}} - -\newcommand{\sailfnwordWidthBytes}{\label{zwordWidthBytes} \lstinputlisting[language=sail]{sail_latex/sailfnwordWidthBytes.tex}} - -\newcommand{\sailisAddressAligned}{\label{zisAddressAligned} \lstinputlisting[language=sail]{sail_latex/sailisAddressAligned.tex}} - -\newcommand{\sailfnisAddressAligned}{\label{zisAddressAligned} \lstinputlisting[language=sail]{sail_latex/sailfnisAddressAligned.tex}} - -\newcommand{\sailreverseendianness}{\label{zreversezyendianness} \lstinputlisting[language=sail]{sail_latex/sailreverseendianness.tex}} - -\newcommand{\sailMEMrwrapper}{\label{zMEMrzywrapper} \lstinputlisting[language=sail]{sail_latex/sailMEMrwrapper.tex}} - -\newcommand{\sailfnMEMrwrapper}{\label{zMEMrzywrapper} \lstinputlisting[language=sail]{sail_latex/sailfnMEMrwrapper.tex}} - -\newcommand{\sailMEMrreservewrapper}{\label{zMEMrzyreservezywrapper} \lstinputlisting[language=sail]{sail_latex/sailMEMrreservewrapper.tex}} - -\newcommand{\sailfnMEMrreservewrapper}{\label{zMEMrzyreservezywrapper} \lstinputlisting[language=sail]{sail_latex/sailfnMEMrreservewrapper.tex}} - -\newcommand{\sailinitcpzerostate}{\label{zinitzycpzerozystate} \lstinputlisting[language=sail]{sail_latex/sailinitcpzerostate.tex}} - -\newcommand{\sailfninitcpzerostate}{\label{zinitzycpzerozystate} \lstinputlisting[language=sail]{sail_latex/sailfninitcpzerostate.tex}} - -\newcommand{\sailinitcptwostate}{\label{zinitzycptwozystate} \lstinputlisting[language=sail]{sail_latex/sailinitcptwostate.tex}} - -\newcommand{\sailcptwonextpc}{\label{zcptwozynextzypc} \lstinputlisting[language=sail]{sail_latex/sailcptwonextpc.tex}} - -\newcommand{\saildumpcptwostate}{\label{zdumpzycptwozystate} \lstinputlisting[language=sail]{sail_latex/saildumpcptwostate.tex}} - -\newcommand{\sailtlbEntryMatch}{\label{ztlbEntryMatch} \lstinputlisting[language=sail]{sail_latex/sailtlbEntryMatch.tex}} - -\newcommand{\sailfntlbEntryMatch}{\label{ztlbEntryMatch} \lstinputlisting[language=sail]{sail_latex/sailfntlbEntryMatch.tex}} - -\newcommand{\sailtlbSearch}{\label{ztlbSearch} \lstinputlisting[language=sail]{sail_latex/sailtlbSearch.tex}} - -\newcommand{\sailfntlbSearch}{\label{ztlbSearch} \lstinputlisting[language=sail]{sail_latex/sailfntlbSearch.tex}} - -\newcommand{\sailTLBTranslatetwo}{\label{zTLBTranslatetwo} \lstinputlisting[language=sail]{sail_latex/sailTLBTranslatetwo.tex}} - -\newcommand{\sailfnTLBTranslatetwo}{\label{zTLBTranslatetwo} \lstinputlisting[language=sail]{sail_latex/sailfnTLBTranslatetwo.tex}} - -\newcommand{\sailTLBTranslateC}{\label{zTLBTranslateC} \lstinputlisting[language=sail]{sail_latex/sailTLBTranslateC.tex}} - -\newcommand{\sailfnTLBTranslateC}{\label{zTLBTranslateC} \lstinputlisting[language=sail]{sail_latex/sailfnTLBTranslateC.tex}} - -\newcommand{\sailTLBTranslate}{\label{zTLBTranslate} \lstinputlisting[language=sail]{sail_latex/sailTLBTranslate.tex}} - -\newcommand{\sailfnTLBTranslate}{\label{zTLBTranslate} \lstinputlisting[language=sail]{sail_latex/sailfnTLBTranslate.tex}} - -\newcommand{\sailCapLen}{\label{zCapLen} \lstinputlisting[language=sail]{sail_latex/sailCapLen.tex}} - -\newcommand{\sailuintsixfour}{\label{zuintsixfour} \lstinputlisting[language=sail]{sail_latex/sailuintsixfour.tex}} - -\newcommand{\sailCPtrCmpOp}{\label{zCPtrCmpOp} \lstinputlisting[language=sail]{sail_latex/sailCPtrCmpOp.tex}} - -\newcommand{\sailCPtrCmpOpofnum}{\label{zCPtrCmpOpzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailCPtrCmpOpofnum.tex}} - -\newcommand{\sailfnCPtrCmpOpofnum}{\label{zCPtrCmpOpzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailfnCPtrCmpOpofnum.tex}} - -\newcommand{\sailnumofCPtrCmpOp}{\label{znumzyofzyCPtrCmpOp} \lstinputlisting[language=sail]{sail_latex/sailnumofCPtrCmpOp.tex}} - -\newcommand{\sailfnnumofCPtrCmpOp}{\label{znumzyofzyCPtrCmpOp} \lstinputlisting[language=sail]{sail_latex/sailfnnumofCPtrCmpOp.tex}} - -\newcommand{\sailClearRegSet}{\label{zClearRegSet} \lstinputlisting[language=sail]{sail_latex/sailClearRegSet.tex}} - -\newcommand{\sailClearRegSetofnum}{\label{zClearRegSetzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailClearRegSetofnum.tex}} - -\newcommand{\sailfnClearRegSetofnum}{\label{zClearRegSetzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailfnClearRegSetofnum.tex}} - -\newcommand{\sailnumofClearRegSet}{\label{znumzyofzyClearRegSet} \lstinputlisting[language=sail]{sail_latex/sailnumofClearRegSet.tex}} - -\newcommand{\sailfnnumofClearRegSet}{\label{znumzyofzyClearRegSet} \lstinputlisting[language=sail]{sail_latex/sailfnnumofClearRegSet.tex}} - -\newcommand{\sailCapReg}{\label{zCapReg} \lstinputlisting[language=sail]{sail_latex/sailCapReg.tex}} - -\newcommand{\sailCapStruct}{\label{zCapStruct} \lstinputlisting[language=sail]{sail_latex/sailCapStruct.tex}} - -\newcommand{\sailcapRegToCapStruct}{\label{zcapRegToCapStruct} \lstinputlisting[language=sail]{sail_latex/sailcapRegToCapStruct.tex}} - -\newcommand{\sailfncapRegToCapStruct}{\label{zcapRegToCapStruct} \lstinputlisting[language=sail]{sail_latex/sailfncapRegToCapStruct.tex}} - -\newcommand{\sailgetCapPerms}{\label{zgetCapPerms} \lstinputlisting[language=sail]{sail_latex/sailgetCapPerms.tex}} - -\newcommand{\sailfngetCapPerms}{\label{zgetCapPerms} \lstinputlisting[language=sail]{sail_latex/sailfngetCapPerms.tex}} - -\newcommand{\sailcapStructToMemBitstwofivesix}{\label{zcapStructToMemBitstwofivesix} \lstinputlisting[language=sail]{sail_latex/sailcapStructToMemBitstwofivesix.tex}} - -\newcommand{\sailfncapStructToMemBitstwofivesix}{\label{zcapStructToMemBitstwofivesix} \lstinputlisting[language=sail]{sail_latex/sailfncapStructToMemBitstwofivesix.tex}} - -\newcommand{\sailcapStructToMemBits}{\label{zcapStructToMemBits} \lstinputlisting[language=sail]{sail_latex/sailcapStructToMemBits.tex}} - -\newcommand{\sailfncapStructToMemBits}{\label{zcapStructToMemBits} \lstinputlisting[language=sail]{sail_latex/sailfncapStructToMemBits.tex}} - -\newcommand{\sailmemBitsToCapBits}{\label{zmemBitsToCapBits} \lstinputlisting[language=sail]{sail_latex/sailmemBitsToCapBits.tex}} - -\newcommand{\sailfnmemBitsToCapBits}{\label{zmemBitsToCapBits} \lstinputlisting[language=sail]{sail_latex/sailfnmemBitsToCapBits.tex}} - -\newcommand{\sailcapStructToCapReg}{\label{zcapStructToCapReg} \lstinputlisting[language=sail]{sail_latex/sailcapStructToCapReg.tex}} - -\newcommand{\sailfncapStructToCapReg}{\label{zcapStructToCapReg} \lstinputlisting[language=sail]{sail_latex/sailfncapStructToCapReg.tex}} - -\newcommand{\sailsetCapPerms}{\label{zsetCapPerms} \lstinputlisting[language=sail]{sail_latex/sailsetCapPerms.tex}} - -\newcommand{\sailfnsetCapPerms}{\label{zsetCapPerms} \lstinputlisting[language=sail]{sail_latex/sailfnsetCapPerms.tex}} - -\newcommand{\sailsealCap}{\label{zsealCap} \lstinputlisting[language=sail]{sail_latex/sailsealCap.tex}} - -\newcommand{\sailfnsealCap}{\label{zsealCap} \lstinputlisting[language=sail]{sail_latex/sailfnsealCap.tex}} - -\newcommand{\sailgetCapBase}{\label{zgetCapBase} \lstinputlisting[language=sail]{sail_latex/sailgetCapBase.tex}} - -\newcommand{\sailfngetCapBase}{\label{zgetCapBase} \lstinputlisting[language=sail]{sail_latex/sailfngetCapBase.tex}} - -\newcommand{\sailgetCapTop}{\label{zgetCapTop} \lstinputlisting[language=sail]{sail_latex/sailgetCapTop.tex}} - -\newcommand{\sailfngetCapTop}{\label{zgetCapTop} \lstinputlisting[language=sail]{sail_latex/sailfngetCapTop.tex}} - -\newcommand{\sailgetCapOffset}{\label{zgetCapOffset} \lstinputlisting[language=sail]{sail_latex/sailgetCapOffset.tex}} - -\newcommand{\sailfngetCapOffset}{\label{zgetCapOffset} \lstinputlisting[language=sail]{sail_latex/sailfngetCapOffset.tex}} - -\newcommand{\sailgetCapLength}{\label{zgetCapLength} \lstinputlisting[language=sail]{sail_latex/sailgetCapLength.tex}} - -\newcommand{\sailfngetCapLength}{\label{zgetCapLength} \lstinputlisting[language=sail]{sail_latex/sailfngetCapLength.tex}} - -\newcommand{\sailgetCapCursor}{\label{zgetCapCursor} \lstinputlisting[language=sail]{sail_latex/sailgetCapCursor.tex}} - -\newcommand{\sailfngetCapCursor}{\label{zgetCapCursor} \lstinputlisting[language=sail]{sail_latex/sailfngetCapCursor.tex}} - -\newcommand{\sailsetCapOffset}{\label{zsetCapOffset} -Set the offset capability of the a capability to given value and return the result, along with a boolean indicating true if the operation preserved the existing bounds of the capability. When using compressed capabilities, setting the offset far outside the capability bounds can cause the result to become unrepresentable (XXX mention guarantees). Additionally in some implementations a fast representablity check may be used that could cause the operation to return failure even though the capability would be representable (XXX provide details). - \lstinputlisting[language=sail]{sail_latex/sailsetCapOffset.tex}} - -\newcommand{\sailfnsetCapOffset}{\label{zsetCapOffset} \lstinputlisting[language=sail]{sail_latex/sailfnsetCapOffset.tex}} - -\newcommand{\sailincCapOffset}{\label{zincCapOffset} -\function{incCapOffset} is the same as \function{setCapOffset} except that the 64-bit value is added to the current capability offset modulo $2^{64}$ (i.e. signed twos-complement arithemtic). - \lstinputlisting[language=sail]{sail_latex/sailincCapOffset.tex}} - -\newcommand{\sailfnincCapOffset}{\label{zincCapOffset} \lstinputlisting[language=sail]{sail_latex/sailfnincCapOffset.tex}} - -\newcommand{\sailsetCapBounds}{\label{zsetCapBounds} -Returns a capability derived from the given capability by setting the base and top to values provided. The offset of the resulting capability is zero. In case the requested bounds are not exactly representable the returned boolean is false and the returned capability has bounds at least including the region bounded by base and top but rounded to representable values. - \lstinputlisting[language=sail]{sail_latex/sailsetCapBounds.tex}} - -\newcommand{\sailfnsetCapBounds}{\label{zsetCapBounds} \lstinputlisting[language=sail]{sail_latex/sailfnsetCapBounds.tex}} - -\newcommand{\sailinttocap}{\label{zintzytozycap} \lstinputlisting[language=sail]{sail_latex/sailinttocap.tex}} - -\newcommand{\sailfninttocap}{\label{zintzytozycap} \lstinputlisting[language=sail]{sail_latex/sailfninttocap.tex}} - -\newcommand{\sailexecute}{\label{zexecute} \lstinputlisting[language=sail]{sail_latex/sailexecute.tex}} - -\newcommand{\saildecode}{\label{zdecode} \lstinputlisting[language=sail]{sail_latex/saildecode.tex}} - -\newcommand{\sailreadCapReg}{\label{zreadCapReg} -This function reads a given capability register and returns its contents converted to a CapStruct. -If the argument is zero then the null capability is returned. -\lstinputlisting[language=sail]{sail_latex/sailreadCapReg.tex}} - -\newcommand{\sailfnreadCapReg}{\label{zreadCapReg} \lstinputlisting[language=sail]{sail_latex/sailfnreadCapReg.tex}} - -\newcommand{\sailreadCapRegDDC}{\label{zreadCapRegDDC} -This is the same as readCapReg except that when the argument is zero the value of DDC is returned -instead of the null capability. This is used for instructions that expect an address, where using -null would always generate an exception. -\lstinputlisting[language=sail]{sail_latex/sailreadCapRegDDC.tex}} - -\newcommand{\sailfnreadCapRegDDC}{\label{zreadCapRegDDC} \lstinputlisting[language=sail]{sail_latex/sailfnreadCapRegDDC.tex}} - -\newcommand{\sailwriteCapReg}{\label{zwriteCapReg} \lstinputlisting[language=sail]{sail_latex/sailwriteCapReg.tex}} - -\newcommand{\sailfnwriteCapReg}{\label{zwriteCapReg} \lstinputlisting[language=sail]{sail_latex/sailfnwriteCapReg.tex}} - -\newcommand{\sailCapEx}{\label{zCapEx} \lstinputlisting[language=sail]{sail_latex/sailCapEx.tex}} - -\newcommand{\sailCapExofnum}{\label{zCapExzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailCapExofnum.tex}} - -\newcommand{\sailfnCapExofnum}{\label{zCapExzyofzynum} \lstinputlisting[language=sail]{sail_latex/sailfnCapExofnum.tex}} - -\newcommand{\sailnumofCapEx}{\label{znumzyofzyCapEx} \lstinputlisting[language=sail]{sail_latex/sailnumofCapEx.tex}} - -\newcommand{\sailfnnumofCapEx}{\label{znumzyofzyCapEx} \lstinputlisting[language=sail]{sail_latex/sailfnnumofCapEx.tex}} - -\newcommand{\sailCapExCode}{\label{zCapExCode} \lstinputlisting[language=sail]{sail_latex/sailCapExCode.tex}} - -\newcommand{\sailfnCapExCode}{\label{zCapExCode} \lstinputlisting[language=sail]{sail_latex/sailfnCapExCode.tex}} - -\newcommand{\sailCapCauseReg}{\label{zCapCauseReg} \lstinputlisting[language=sail]{sail_latex/sailCapCauseReg.tex}} - -\newcommand{\sailMkCapCauseReg}{\label{zMkzyCapCauseReg} \lstinputlisting[language=sail]{sail_latex/sailMkCapCauseReg.tex}} - -\newcommand{\sailfnMkCapCauseReg}{\label{zMkzyCapCauseReg} \lstinputlisting[language=sail]{sail_latex/sailfnMkCapCauseReg.tex}} - -\newcommand{\sailgetCapCauseRegbits}{\label{zzygetzyCapCauseRegzybits} \lstinputlisting[language=sail]{sail_latex/sailgetCapCauseRegbits.tex}} - -\newcommand{\sailfngetCapCauseRegbits}{\label{zzygetzyCapCauseRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfngetCapCauseRegbits.tex}} - -\newcommand{\sailsetCapCauseRegbits}{\label{zzysetzyCapCauseRegzybits} \lstinputlisting[language=sail]{sail_latex/sailsetCapCauseRegbits.tex}} - -\newcommand{\sailfnsetCapCauseRegbits}{\label{zzysetzyCapCauseRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnsetCapCauseRegbits.tex}} - -\newcommand{\sailupdateCapCauseRegbits}{\label{zzyupdatezyCapCauseRegzybits} \lstinputlisting[language=sail]{sail_latex/sailupdateCapCauseRegbits.tex}} - -\newcommand{\sailfnupdateCapCauseRegbits}{\label{zzyupdatezyCapCauseRegzybits} \lstinputlisting[language=sail]{sail_latex/sailfnupdateCapCauseRegbits.tex}} - -\newcommand{\sailupdatebits}{\label{zupdatezybits} \lstinputlisting[language=sail]{sail_latex/sailupdatebits.tex}} - -\newcommand{\sailmodbits}{\label{zzymodzybits} \lstinputlisting[language=sail]{sail_latex/sailmodbits.tex}} - -\newcommand{\sailgetCapCauseRegExcCode}{\label{zzygetzyCapCauseRegzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailgetCapCauseRegExcCode.tex}} - -\newcommand{\sailfngetCapCauseRegExcCode}{\label{zzygetzyCapCauseRegzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailfngetCapCauseRegExcCode.tex}} - -\newcommand{\sailsetCapCauseRegExcCode}{\label{zzysetzyCapCauseRegzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailsetCapCauseRegExcCode.tex}} - -\newcommand{\sailfnsetCapCauseRegExcCode}{\label{zzysetzyCapCauseRegzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailfnsetCapCauseRegExcCode.tex}} - -\newcommand{\sailupdateCapCauseRegExcCode}{\label{zzyupdatezyCapCauseRegzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailupdateCapCauseRegExcCode.tex}} - -\newcommand{\sailfnupdateCapCauseRegExcCode}{\label{zzyupdatezyCapCauseRegzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailfnupdateCapCauseRegExcCode.tex}} - -\newcommand{\sailupdateExcCode}{\label{zupdatezyExcCode} \lstinputlisting[language=sail]{sail_latex/sailupdateExcCode.tex}} - -\newcommand{\sailmodExcCode}{\label{zzymodzyExcCode} \lstinputlisting[language=sail]{sail_latex/sailmodExcCode.tex}} - -\newcommand{\sailgetCapCauseRegRegNum}{\label{zzygetzyCapCauseRegzyRegNum} \lstinputlisting[language=sail]{sail_latex/sailgetCapCauseRegRegNum.tex}} - -\newcommand{\sailfngetCapCauseRegRegNum}{\label{zzygetzyCapCauseRegzyRegNum} \lstinputlisting[language=sail]{sail_latex/sailfngetCapCauseRegRegNum.tex}} - -\newcommand{\sailsetCapCauseRegRegNum}{\label{zzysetzyCapCauseRegzyRegNum} \lstinputlisting[language=sail]{sail_latex/sailsetCapCauseRegRegNum.tex}} - -\newcommand{\sailfnsetCapCauseRegRegNum}{\label{zzysetzyCapCauseRegzyRegNum} \lstinputlisting[language=sail]{sail_latex/sailfnsetCapCauseRegRegNum.tex}} - -\newcommand{\sailupdateCapCauseRegRegNum}{\label{zzyupdatezyCapCauseRegzyRegNum} \lstinputlisting[language=sail]{sail_latex/sailupdateCapCauseRegRegNum.tex}} - -\newcommand{\sailfnupdateCapCauseRegRegNum}{\label{zzyupdatezyCapCauseRegzyRegNum} \lstinputlisting[language=sail]{sail_latex/sailfnupdateCapCauseRegRegNum.tex}} - -\newcommand{\sailupdateRegNum}{\label{zupdatezyRegNum} \lstinputlisting[language=sail]{sail_latex/sailupdateRegNum.tex}} - -\newcommand{\sailmodRegNum}{\label{zzymodzyRegNum} \lstinputlisting[language=sail]{sail_latex/sailmodRegNum.tex}} - -\newcommand{\sailexecutebranchpcc}{\label{zexecutezybranchzypcc} \lstinputlisting[language=sail]{sail_latex/sailexecutebranchpcc.tex}} - -\newcommand{\sailfnexecutebranchpcc}{\label{zexecutezybranchzypcc} \lstinputlisting[language=sail]{sail_latex/sailfnexecutebranchpcc.tex}} - -\newcommand{\sailfnSignalException}{\label{zSignalException} \lstinputlisting[language=sail]{sail_latex/sailfnSignalException.tex}} - -\newcommand{\sailERETHook}{\label{zERETHook} \lstinputlisting[language=sail]{sail_latex/sailERETHook.tex}} - -\newcommand{\sailfnERETHook}{\label{zERETHook} \lstinputlisting[language=sail]{sail_latex/sailfnERETHook.tex}} - -\newcommand{\sailraisectwoexceptioneight}{\label{zraisezyctwozyexceptioneight} \lstinputlisting[language=sail]{sail_latex/sailraisectwoexceptioneight.tex}} - -\newcommand{\sailfnraisectwoexceptioneight}{\label{zraisezyctwozyexceptioneight} \lstinputlisting[language=sail]{sail_latex/sailfnraisectwoexceptioneight.tex}} - -\newcommand{\sailraisectwoexception}{\label{zraisezyctwozyexception} \lstinputlisting[language=sail]{sail_latex/sailraisectwoexception.tex}} - -\newcommand{\sailfnraisectwoexception}{\label{zraisezyctwozyexception} \lstinputlisting[language=sail]{sail_latex/sailfnraisectwoexception.tex}} - -\newcommand{\sailraisectwoexceptionnoreg}{\label{zraisezyctwozyexceptionzynoreg} \lstinputlisting[language=sail]{sail_latex/sailraisectwoexceptionnoreg.tex}} - -\newcommand{\sailfnraisectwoexceptionnoreg}{\label{zraisezyctwozyexceptionzynoreg} \lstinputlisting[language=sail]{sail_latex/sailfnraisectwoexceptionnoreg.tex}} - -\newcommand{\sailpccaccesssystemregs}{\label{zpcczyaccesszysystemzyregs} \lstinputlisting[language=sail]{sail_latex/sailpccaccesssystemregs.tex}} - -\newcommand{\sailfnpccaccesssystemregs}{\label{zpcczyaccesszysystemzyregs} \lstinputlisting[language=sail]{sail_latex/sailfnpccaccesssystemregs.tex}} - -\newcommand{\sailregisterinaccessible}{\label{zregisterzyinaccessible} -The following function should be called before reading or writing any capability register to check whether it is one of the protected system capabilities. Although it is usually a general purpose capabilty the invoked data capabiltiy (IDC) is restricted in the branch delay slot of the CCall (selector one) instruction to protect the confidentiality and integrity of the invoked sandbox. - \lstinputlisting[language=sail]{sail_latex/sailregisterinaccessible.tex}} - -\newcommand{\sailfnregisterinaccessible}{\label{zregisterzyinaccessible} \lstinputlisting[language=sail]{sail_latex/sailfnregisterinaccessible.tex}} - -\newcommand{\sailMEMrtag}{\label{zMEMrzytag} \lstinputlisting[language=sail]{sail_latex/sailMEMrtag.tex}} - -\newcommand{\sailMEMwtag}{\label{zMEMwzytag} \lstinputlisting[language=sail]{sail_latex/sailMEMwtag.tex}} - -\newcommand{\sailMEMrtagged}{\label{zMEMrzytagged} \lstinputlisting[language=sail]{sail_latex/sailMEMrtagged.tex}} - -\newcommand{\sailfnMEMrtagged}{\label{zMEMrzytagged} \lstinputlisting[language=sail]{sail_latex/sailfnMEMrtagged.tex}} - -\newcommand{\sailMEMrtaggedreserve}{\label{zMEMrzytaggedzyreserve} \lstinputlisting[language=sail]{sail_latex/sailMEMrtaggedreserve.tex}} - -\newcommand{\sailfnMEMrtaggedreserve}{\label{zMEMrzytaggedzyreserve} \lstinputlisting[language=sail]{sail_latex/sailfnMEMrtaggedreserve.tex}} - -\newcommand{\sailMEMwtagged}{\label{zMEMwzytagged} \lstinputlisting[language=sail]{sail_latex/sailMEMwtagged.tex}} - -\newcommand{\sailfnMEMwtagged}{\label{zMEMwzytagged} \lstinputlisting[language=sail]{sail_latex/sailfnMEMwtagged.tex}} - -\newcommand{\sailMEMwtaggedconditional}{\label{zMEMwzytaggedzyconditional} \lstinputlisting[language=sail]{sail_latex/sailMEMwtaggedconditional.tex}} - -\newcommand{\sailfnMEMwtaggedconditional}{\label{zMEMwzytaggedzyconditional} \lstinputlisting[language=sail]{sail_latex/sailfnMEMwtaggedconditional.tex}} - -\newcommand{\sailMEMwwrapper}{\label{zMEMwzywrapper} \lstinputlisting[language=sail]{sail_latex/sailMEMwwrapper.tex}} - -\newcommand{\sailfnMEMwwrapper}{\label{zMEMwzywrapper} \lstinputlisting[language=sail]{sail_latex/sailfnMEMwwrapper.tex}} - -\newcommand{\sailMEMwconditionalwrapper}{\label{zMEMwzyconditionalzywrapper} \lstinputlisting[language=sail]{sail_latex/sailMEMwconditionalwrapper.tex}} - -\newcommand{\sailfnMEMwconditionalwrapper}{\label{zMEMwzyconditionalzywrapper} \lstinputlisting[language=sail]{sail_latex/sailfnMEMwconditionalwrapper.tex}} - -\newcommand{\sailcheckDDCPerms}{\label{zcheckDDCPerms} \lstinputlisting[language=sail]{sail_latex/sailcheckDDCPerms.tex}} - -\newcommand{\sailfncheckDDCPerms}{\label{zcheckDDCPerms} \lstinputlisting[language=sail]{sail_latex/sailfncheckDDCPerms.tex}} - -\newcommand{\sailaddrWrapper}{\label{zaddrWrapper} \lstinputlisting[language=sail]{sail_latex/sailaddrWrapper.tex}} - -\newcommand{\sailfnaddrWrapper}{\label{zaddrWrapper} \lstinputlisting[language=sail]{sail_latex/sailfnaddrWrapper.tex}} - -\newcommand{\sailaddrWrapperUnaligned}{\label{zaddrWrapperUnaligned} \lstinputlisting[language=sail]{sail_latex/sailaddrWrapperUnaligned.tex}} - -\newcommand{\sailfnaddrWrapperUnaligned}{\label{zaddrWrapperUnaligned} \lstinputlisting[language=sail]{sail_latex/sailfnaddrWrapperUnaligned.tex}} - -\newcommand{\sailTranslatePC}{\label{zTranslatePC} \lstinputlisting[language=sail]{sail_latex/sailTranslatePC.tex}} - -\newcommand{\sailfnTranslatePC}{\label{zTranslatePC} \lstinputlisting[language=sail]{sail_latex/sailfnTranslatePC.tex}} - -\newcommand{\sailcheckCPtwousable}{\label{zcheckCPtwousable} -All capability instrucitons must first check that the capability -co-processor is enabled using the following function that raises a -co-processor unusable exception if a CP0Status.CU2 is not set. This -allows the operating system to only save and restore the full -capability context for processes that use capabilities. -\lstinputlisting[language=sail]{sail_latex/sailcheckCPtwousable.tex}} - -\newcommand{\sailfncheckCPtwousable}{\label{zcheckCPtwousable} \lstinputlisting[language=sail]{sail_latex/sailfncheckCPtwousable.tex}} - -\newcommand{\sailfninitcptwostate}{\label{zinitzycptwozystate} \lstinputlisting[language=sail]{sail_latex/sailfninitcptwostate.tex}} - -\newcommand{\sailfncptwonextpc}{\label{zcptwozynextzypc} \lstinputlisting[language=sail]{sail_latex/sailfncptwonextpc.tex}} - -\newcommand{\sailcapToString}{\label{zcapToString} \lstinputlisting[language=sail]{sail_latex/sailcapToString.tex}} - -\newcommand{\sailfncapToString}{\label{zcapToString} \lstinputlisting[language=sail]{sail_latex/sailfncapToString.tex}} - -\newcommand{\sailfndumpcptwostate}{\label{zdumpzycptwozystate} \lstinputlisting[language=sail]{sail_latex/sailfndumpcptwostate.tex}} - -\newcommand{\sailextendLoad}{\label{zextendLoad} \lstinputlisting[language=sail]{sail_latex/sailextendLoad.tex}} - -\newcommand{\sailfnextendLoad}{\label{zextendLoad} \lstinputlisting[language=sail]{sail_latex/sailfnextendLoad.tex}} - -\newcommand{\sailTLBWriteEntry}{\label{zTLBWriteEntry} \lstinputlisting[language=sail]{sail_latex/sailTLBWriteEntry.tex}} - -\newcommand{\sailfnTLBWriteEntry}{\label{zTLBWriteEntry} \lstinputlisting[language=sail]{sail_latex/sailfnTLBWriteEntry.tex}} - -\newcommand{\sailfndecodeSomeDADDIU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDADDIU.tex}} - -\newcommand{\sailfndecodeSomeDADDU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDADDU.tex}} - -\newcommand{\sailfndecodeSomeDADDI}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDADDI.tex}} - -\newcommand{\sailfndecodeSomeDADD}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDADD.tex}} - -\newcommand{\sailfndecodeSomeADD}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeADD.tex}} - -\newcommand{\sailfndecodeSomeADDI}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeADDI.tex}} - -\newcommand{\sailfndecodeSomeADDU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeADDU.tex}} - -\newcommand{\sailfndecodeSomeADDIU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeADDIU.tex}} - -\newcommand{\sailfndecodeSomeDSUBU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDSUBU.tex}} - -\newcommand{\sailfndecodeSomeDSUB}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDSUB.tex}} - -\newcommand{\sailfndecodeSomeSUB}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSUB.tex}} - -\newcommand{\sailfndecodeSomeSUBU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSUBU.tex}} - -\newcommand{\sailfndecodeSomeAND}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeAND.tex}} - -\newcommand{\sailfndecodeSomeANDI}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeANDI.tex}} - -\newcommand{\sailfndecodeSomeOR}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeOR.tex}} - -\newcommand{\sailfndecodeSomeORI}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeORI.tex}} - -\newcommand{\sailfndecodeSomeNOR}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeNOR.tex}} - -\newcommand{\sailfndecodeSomeXOR}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeXOR.tex}} - -\newcommand{\sailfndecodeSomeXORI}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeXORI.tex}} - -\newcommand{\sailfndecodeSomeLUI}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeLUI.tex}} - -\newcommand{\sailfndecodeSomeDSLL}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDSLL.tex}} - -\newcommand{\sailfndecodeSomeDSLLthreetwo}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDSLLthreetwo.tex}} - -\newcommand{\sailfndecodeSomeDSLLV}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDSLLV.tex}} - -\newcommand{\sailfndecodeSomeDSRA}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDSRA.tex}} - -\newcommand{\sailfndecodeSomeDSRAthreetwo}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDSRAthreetwo.tex}} - -\newcommand{\sailfndecodeSomeDSRAV}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDSRAV.tex}} - -\newcommand{\sailfndecodeSomeDSRL}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDSRL.tex}} - -\newcommand{\sailfndecodeSomeDSRLthreetwo}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDSRLthreetwo.tex}} - -\newcommand{\sailfndecodeSomeDSRLV}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDSRLV.tex}} - -\newcommand{\sailfndecodeSomeSLL}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSLL.tex}} - -\newcommand{\sailfndecodeSomeSLLV}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSLLV.tex}} - -\newcommand{\sailfndecodeSomeSRA}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSRA.tex}} - -\newcommand{\sailfndecodeSomeSRAV}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSRAV.tex}} - -\newcommand{\sailfndecodeSomeSRL}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSRL.tex}} - -\newcommand{\sailfndecodeSomeSRLV}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSRLV.tex}} - -\newcommand{\sailfndecodeSomeSLT}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSLT.tex}} - -\newcommand{\sailfndecodeSomeSLTI}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSLTI.tex}} - -\newcommand{\sailfndecodeSomeSLTU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSLTU.tex}} - -\newcommand{\sailfndecodeSomeSLTIU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSLTIU.tex}} - -\newcommand{\sailfndecodeSomeMOVN}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMOVN.tex}} - -\newcommand{\sailfndecodeSomeMOVZ}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMOVZ.tex}} - -\newcommand{\sailfndecodeSomeMFHIrd}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMFHIrd.tex}} - -\newcommand{\sailfndecodeSomeMFLOrd}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMFLOrd.tex}} - -\newcommand{\sailfndecodeSomeMTHIrs}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMTHIrs.tex}} - -\newcommand{\sailfndecodeSomeMTLOrs}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMTLOrs.tex}} - -\newcommand{\sailfndecodeSomeMUL}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMUL.tex}} - -\newcommand{\sailfndecodeSomeMULT}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMULT.tex}} - -\newcommand{\sailfndecodeSomeMULTU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMULTU.tex}} - -\newcommand{\sailfndecodeSomeDMULT}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDMULT.tex}} - -\newcommand{\sailfndecodeSomeDMULTU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDMULTU.tex}} - -\newcommand{\sailfndecodeSomeMADD}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMADD.tex}} - -\newcommand{\sailfndecodeSomeMADDU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMADDU.tex}} - -\newcommand{\sailfndecodeSomeMSUB}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMSUB.tex}} - -\newcommand{\sailfndecodeSomeMSUBU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMSUBU.tex}} - -\newcommand{\sailfndecodeSomeDIV}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDIV.tex}} - -\newcommand{\sailfndecodeSomeDIVU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDIVU.tex}} - -\newcommand{\sailfndecodeSomeDDIV}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDDIV.tex}} - -\newcommand{\sailfndecodeSomeDDIVU}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeDDIVU.tex}} - -\newcommand{\sailfndecodeSomeJoffset}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeJoffset.tex}} - -\newcommand{\sailfndecodeSomeJALoffset}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeJALoffset.tex}} - -\newcommand{\sailfndecodeSomeJRrs}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeJRrs.tex}} - -\newcommand{\sailfndecodeSomeJALR}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeJALR.tex}} - -\newcommand{\sailfndecodeSomeBEQ}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeBEQ.tex}} - -\newcommand{\sailsailfndecodeSomeBEQv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeBEQv.tex}} - -\newcommand{\sailsailsailfndecodeSomeBEQvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeBEQvv.tex}} - -\newcommand{\sailsailsailsailfndecodeSomeBEQvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailfndecodeSomeBEQvvv.tex}} - -\newcommand{\sailfndecodeSomeBCMPZ}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeBCMPZ.tex}} - -\newcommand{\sailsailfndecodeSomeBCMPZv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeBCMPZv.tex}} - -\newcommand{\sailsailsailfndecodeSomeBCMPZvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeBCMPZvv.tex}} - -\newcommand{\sailsailsailsailfndecodeSomeBCMPZvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailfndecodeSomeBCMPZvvv.tex}} - -\newcommand{\sailsailsailsailsailfndecodeSomeBCMPZvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailfndecodeSomeBCMPZvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailfndecodeSomeBCMPZvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailfndecodeSomeBCMPZvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvvvv.tex}} - -\newcommand{\sailfndecodeSomeSYSCALL}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSYSCALL.tex}} - -\newcommand{\sailfndecodeSomeBREAK}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeBREAK.tex}} - -\newcommand{\sailfndecodeSomeWAIT}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeWAIT.tex}} - -\newcommand{\sailfndecodeSomeTRAPREG}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeTRAPREG.tex}} - -\newcommand{\sailsailfndecodeSomeTRAPREGv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeTRAPREGv.tex}} - -\newcommand{\sailsailsailfndecodeSomeTRAPREGvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeTRAPREGvv.tex}} - -\newcommand{\sailsailsailsailfndecodeSomeTRAPREGvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailfndecodeSomeTRAPREGvvv.tex}} - -\newcommand{\sailsailsailsailsailfndecodeSomeTRAPREGvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailfndecodeSomeTRAPREGvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailfndecodeSomeTRAPREGvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailfndecodeSomeTRAPREGvvvvv.tex}} - -\newcommand{\sailfndecodeSomeTRAPIMM}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeTRAPIMM.tex}} - -\newcommand{\sailsailfndecodeSomeTRAPIMMv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeTRAPIMMv.tex}} - -\newcommand{\sailsailsailfndecodeSomeTRAPIMMvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeTRAPIMMvv.tex}} - -\newcommand{\sailsailsailsailfndecodeSomeTRAPIMMvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailfndecodeSomeTRAPIMMvvv.tex}} - -\newcommand{\sailsailsailsailsailfndecodeSomeTRAPIMMvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailfndecodeSomeTRAPIMMvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailfndecodeSomeTRAPIMMvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailfndecodeSomeTRAPIMMvvvvv.tex}} - -\newcommand{\sailfndecodeSomeLoad}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeLoad.tex}} - -\newcommand{\sailsailfndecodeSomeLoadv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeLoadv.tex}} - -\newcommand{\sailsailsailfndecodeSomeLoadvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeLoadvv.tex}} - -\newcommand{\sailsailsailsailfndecodeSomeLoadvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailfndecodeSomeLoadvvv.tex}} - -\newcommand{\sailsailsailsailsailfndecodeSomeLoadvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailfndecodeSomeLoadvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailfndecodeSomeLoadvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailfndecodeSomeLoadvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailfndecodeSomeLoadvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailfndecodeSomeLoadvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailfndecodeSomeLoadvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeLoadvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailfndecodeSomeLoadvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeLoadvvvvvvvv.tex}} - -\newcommand{\sailfndecodeSomeStore}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeStore.tex}} - -\newcommand{\sailsailfndecodeSomeStorev}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeStorev.tex}} - -\newcommand{\sailsailsailfndecodeSomeStorevv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeStorevv.tex}} - -\newcommand{\sailsailsailsailfndecodeSomeStorevvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailfndecodeSomeStorevvv.tex}} - -\newcommand{\sailsailsailsailsailfndecodeSomeStorevvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailfndecodeSomeStorevvvv.tex}} - -\newcommand{\sailsailsailsailsailsailfndecodeSomeStorevvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailfndecodeSomeStorevvvvv.tex}} - -\newcommand{\sailfndecodeSomeLWL}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeLWL.tex}} - -\newcommand{\sailfndecodeSomeLWR}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeLWR.tex}} - -\newcommand{\sailfndecodeSomeSWL}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSWL.tex}} - -\newcommand{\sailfndecodeSomeSWR}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSWR.tex}} - -\newcommand{\sailfndecodeSomeLDL}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeLDL.tex}} - -\newcommand{\sailfndecodeSomeLDR}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeLDR.tex}} - -\newcommand{\sailfndecodeSomeSDL}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSDL.tex}} - -\newcommand{\sailfndecodeSomeSDR}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSDR.tex}} - -\newcommand{\sailfndecodeSomeCACHE}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCACHE.tex}} - -\newcommand{\sailfndecodeSomeSYNC}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeSYNC.tex}} - -\newcommand{\sailfndecodeSomeMFCzero}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMFCzero.tex}} - -\newcommand{\sailsailfndecodeSomeMFCzerov}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeMFCzerov.tex}} - -\newcommand{\sailfndecodeSomeHCF}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeHCF.tex}} - -\newcommand{\sailsailfndecodeSomeHCFv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeHCFv.tex}} - -\newcommand{\sailfndecodeSomeMTCzero}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeMTCzero.tex}} - -\newcommand{\sailsailfndecodeSomeMTCzerov}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeMTCzerov.tex}} - -\newcommand{\sailfndecodeSome}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSome.tex}} - -\newcommand{\sailsailfndecodeSomev}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomev.tex}} - -\newcommand{\sailsailsailfndecodeSomevv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomevv.tex}} - -\newcommand{\sailsailsailsailfndecodeSomevvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailfndecodeSomevvv.tex}} - -\newcommand{\sailfndecodeSomeRDHWR}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeRDHWR.tex}} - -\newcommand{\sailfndecodeSomeERET}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeERET.tex}} - -\newcommand{\sailfndecodeSomeCGetPerm}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCGetPerm.tex}} - -\newcommand{\sailfndecodeSomeCGetType}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCGetType.tex}} - -\newcommand{\sailfndecodeSomeCGetBase}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCGetBase.tex}} - -\newcommand{\sailfndecodeSomeCGetLen}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCGetLen.tex}} - -\newcommand{\sailfndecodeSomeCGetTag}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCGetTag.tex}} - -\newcommand{\sailfndecodeSomeCGetSealed}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCGetSealed.tex}} - -\newcommand{\sailfndecodeSomeCGetCauserd}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCGetCauserd.tex}} - -\newcommand{\sailfndecodeSomeCReturn}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCReturn.tex}} - -\newcommand{\sailfndecodeSomeCGetOffset}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCGetOffset.tex}} - -\newcommand{\sailfndecodeSomeCSetCausert}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCSetCausert.tex}} - -\newcommand{\sailfndecodeSomeCAndPerm}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCAndPerm.tex}} - -\newcommand{\sailfndecodeSomeCToPtr}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCToPtr.tex}} - -\newcommand{\sailfndecodeSomeCPtrCmp}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCPtrCmp.tex}} - -\newcommand{\sailsailfndecodeSomeCPtrCmpv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCPtrCmpv.tex}} - -\newcommand{\sailsailsailfndecodeSomeCPtrCmpvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeCPtrCmpvv.tex}} - -\newcommand{\sailsailsailsailfndecodeSomeCPtrCmpvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailfndecodeSomeCPtrCmpvvv.tex}} - -\newcommand{\sailsailsailsailsailfndecodeSomeCPtrCmpvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailfndecodeSomeCPtrCmpvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvv.tex}} - -\newcommand{\sailfndecodeSomeCIncOffset}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCIncOffset.tex}} - -\newcommand{\sailfndecodeSomeCSetOffset}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCSetOffset.tex}} - -\newcommand{\sailfndecodeSomeCSetBounds}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCSetBounds.tex}} - -\newcommand{\sailfndecodeSomeCClearTag}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCClearTag.tex}} - -\newcommand{\sailfndecodeSomeCFromPtr}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCFromPtr.tex}} - -\newcommand{\sailfndecodeSomeCCheckPerm}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCCheckPerm.tex}} - -\newcommand{\sailfndecodeSomeCCheckType}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCCheckType.tex}} - -\newcommand{\sailfndecodeSomeCSeal}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCSeal.tex}} - -\newcommand{\sailfndecodeSomeCUnseal}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCUnseal.tex}} - -\newcommand{\sailfndecodeSomeCJALR}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCJALR.tex}} - -\newcommand{\sailsailfndecodeSomeCJALRv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCJALRv.tex}} - -\newcommand{\sailsailfndecodeSomeCGetCauserdv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCGetCauserdv.tex}} - -\newcommand{\sailfndecodeSomeCSetCausers}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCSetCausers.tex}} - -\newcommand{\sailfndecodeSomeCGetPCCcd}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCGetPCCcd.tex}} - -\newcommand{\sailsailsailfndecodeSomeCJALRvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeCJALRvv.tex}} - -\newcommand{\sailsailfndecodeSomeCCheckPermv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCCheckPermv.tex}} - -\newcommand{\sailsailfndecodeSomeCCheckTypev}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCCheckTypev.tex}} - -\newcommand{\sailsailfndecodeSomeCClearTagv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCClearTagv.tex}} - -\newcommand{\sailfndecodeSomeCMOVX}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCMOVX.tex}} - -\newcommand{\sailsailsailsailfndecodeSomeCJALRvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailfndecodeSomeCJALRvvv.tex}} - -\newcommand{\sailsailfndecodeSomeCGetPermv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCGetPermv.tex}} - -\newcommand{\sailsailfndecodeSomeCGetTypev}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCGetTypev.tex}} - -\newcommand{\sailsailfndecodeSomeCGetBasev}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCGetBasev.tex}} - -\newcommand{\sailsailfndecodeSomeCGetLenv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCGetLenv.tex}} - -\newcommand{\sailsailfndecodeSomeCGetTagv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCGetTagv.tex}} - -\newcommand{\sailsailfndecodeSomeCGetSealedv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCGetSealedv.tex}} - -\newcommand{\sailsailfndecodeSomeCGetOffsetv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCGetOffsetv.tex}} - -\newcommand{\sailfndecodeSomeCGetPCCSetOffset}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCGetPCCSetOffset.tex}} - -\newcommand{\sailfndecodeSomeCReadHwr}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCReadHwr.tex}} - -\newcommand{\sailfndecodeSomeCWriteHwr}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCWriteHwr.tex}} - -\newcommand{\sailfndecodeSomeCGetAddr}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCGetAddr.tex}} - -\newcommand{\sailsailfndecodeSomeCSealv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCSealv.tex}} - -\newcommand{\sailsailfndecodeSomeCUnsealv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCUnsealv.tex}} - -\newcommand{\sailsailfndecodeSomeCAndPermv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCAndPermv.tex}} - -\newcommand{\sailsailfndecodeSomeCSetOffsetv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCSetOffsetv.tex}} - -\newcommand{\sailsailfndecodeSomeCSetBoundsv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCSetBoundsv.tex}} - -\newcommand{\sailfndecodeSomeCSetBoundsExact}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCSetBoundsExact.tex}} - -\newcommand{\sailsailfndecodeSomeCIncOffsetv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCIncOffsetv.tex}} - -\newcommand{\sailfndecodeSomeCBuildCap}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCBuildCap.tex}} - -\newcommand{\sailfndecodeSomeCCopyType}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCCopyType.tex}} - -\newcommand{\sailfndecodeSomeCCSeal}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCCSeal.tex}} - -\newcommand{\sailsailfndecodeSomeCToPtrv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCToPtrv.tex}} - -\newcommand{\sailsailfndecodeSomeCFromPtrv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCFromPtrv.tex}} - -\newcommand{\sailfndecodeSomeCSub}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCSub.tex}} - -\newcommand{\sailsailfndecodeSomeCMOVXv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCMOVXv.tex}} - -\newcommand{\sailsailsailfndecodeSomeCMOVXvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeCMOVXvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvvvv.tex}} - -\newcommand{\sailfndecodeSomeCTestSubset}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCTestSubset.tex}} - -\newcommand{\sailfndecodeSomeCBX}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCBX.tex}} - -\newcommand{\sailsailfndecodeSomeCBXv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCBXv.tex}} - -\newcommand{\sailfndecodeSomeCBZ}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCBZ.tex}} - -\newcommand{\sailsailfndecodeSomeCBZv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCBZv.tex}} - -\newcommand{\sailsailfndecodeSomeCReturnv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCReturnv.tex}} - -\newcommand{\sailfndecodeSomeCCall}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCCall.tex}} - -\newcommand{\sailfndecodeSomeClearRegs}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeClearRegs.tex}} - -\newcommand{\sailsailfndecodeSomeClearRegsv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeClearRegsv.tex}} - -\newcommand{\sailsailsailfndecodeSomeClearRegsvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeClearRegsvv.tex}} - -\newcommand{\sailsailsailsailfndecodeSomeClearRegsvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailfndecodeSomeClearRegsvvv.tex}} - -\newcommand{\sailfndecodeSomeCIncOffsetImmediate}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCIncOffsetImmediate.tex}} - -\newcommand{\sailfndecodeSomeCSetBoundsImmediate}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCSetBoundsImmediate.tex}} - -\newcommand{\sailfndecodeSomeCLoad}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCLoad.tex}} - -\newcommand{\sailsailfndecodeSomeCLoadv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCLoadv.tex}} - -\newcommand{\sailsailsailfndecodeSomeCLoadvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeCLoadvv.tex}} - -\newcommand{\sailsailsailsailfndecodeSomeCLoadvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailfndecodeSomeCLoadvvv.tex}} - -\newcommand{\sailsailsailsailsailfndecodeSomeCLoadvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailfndecodeSomeCLoadvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailfndecodeSomeCLoadvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailfndecodeSomeCLoadvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvvvv.tex}} - -\newcommand{\sailfndecodeSomeCStore}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCStore.tex}} - -\newcommand{\sailsailfndecodeSomeCStorev}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCStorev.tex}} - -\newcommand{\sailsailsailfndecodeSomeCStorevv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeCStorevv.tex}} - -\newcommand{\sailsailsailsailfndecodeSomeCStorevvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailfndecodeSomeCStorevvv.tex}} - -\newcommand{\sailsailsailsailsailfndecodeSomeCStorevvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailfndecodeSomeCStorevvvv.tex}} - -\newcommand{\sailsailsailsailsailsailfndecodeSomeCStorevvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailfndecodeSomeCStorevvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailfndecodeSomeCStorevvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailfndecodeSomeCStorevvvvvv.tex}} - -\newcommand{\sailsailsailsailsailsailsailsailfndecodeSomeCStorevvvvvvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeCStorevvvvvvv.tex}} - -\newcommand{\sailfndecodeSomeCSC}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCSC.tex}} - -\newcommand{\sailsailfndecodeSomeCSCv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCSCv.tex}} - -\newcommand{\sailfndecodeSomeCLC}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCLC.tex}} - -\newcommand{\sailsailfndecodeSomeCLCv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfndecodeSomeCLCv.tex}} - -\newcommand{\sailsailsailfndecodeSomeCLCvv}{ \lstinputlisting[language=sail]{sail_latex/sailsailsailfndecodeSomeCLCvv.tex}} - -\newcommand{\sailfndecodeSomeCtwoDumprt}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeCtwoDumprt.tex}} - -\newcommand{\sailfndecodeSomeRI}{ \lstinputlisting[language=sail]{sail_latex/sailfndecodeSomeRI.tex}} - - - -\newcommand{\sailfnexecuteDADDIU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDADDIU.tex}} - -\newcommand{\sailfnexecuteDADDU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDADDU.tex}} - -\newcommand{\sailfnexecuteDADDI}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDADDI.tex}} - -\newcommand{\sailfnexecuteDADD}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDADD.tex}} - -\newcommand{\sailfnexecuteADD}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteADD.tex}} - -\newcommand{\sailfnexecuteADDI}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteADDI.tex}} - -\newcommand{\sailfnexecuteADDU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteADDU.tex}} - -\newcommand{\sailfnexecuteADDIU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteADDIU.tex}} - -\newcommand{\sailfnexecuteDSUBU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDSUBU.tex}} - -\newcommand{\sailfnexecuteDSUB}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDSUB.tex}} - -\newcommand{\sailfnexecuteSUB}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSUB.tex}} - -\newcommand{\sailfnexecuteSUBU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSUBU.tex}} - -\newcommand{\sailfnexecuteAND}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteAND.tex}} - -\newcommand{\sailfnexecuteANDI}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteANDI.tex}} - -\newcommand{\sailfnexecuteOR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteOR.tex}} - -\newcommand{\sailfnexecuteORI}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteORI.tex}} - -\newcommand{\sailfnexecuteNOR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteNOR.tex}} - -\newcommand{\sailfnexecuteXOR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteXOR.tex}} - -\newcommand{\sailfnexecuteXORI}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteXORI.tex}} - -\newcommand{\sailfnexecuteLUI}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteLUI.tex}} - -\newcommand{\sailfnexecuteDSLL}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDSLL.tex}} - -\newcommand{\sailfnexecuteDSLLthreetwo}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDSLLthreetwo.tex}} - -\newcommand{\sailfnexecuteDSLLV}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDSLLV.tex}} - -\newcommand{\sailfnexecuteDSRA}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDSRA.tex}} - -\newcommand{\sailfnexecuteDSRAthreetwo}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDSRAthreetwo.tex}} - -\newcommand{\sailfnexecuteDSRAV}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDSRAV.tex}} - -\newcommand{\sailfnexecuteDSRL}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDSRL.tex}} - -\newcommand{\sailfnexecuteDSRLthreetwo}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDSRLthreetwo.tex}} - -\newcommand{\sailfnexecuteDSRLV}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDSRLV.tex}} - -\newcommand{\sailfnexecuteSLL}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSLL.tex}} - -\newcommand{\sailfnexecuteSLLV}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSLLV.tex}} - -\newcommand{\sailfnexecuteSRA}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSRA.tex}} - -\newcommand{\sailfnexecuteSRAV}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSRAV.tex}} - -\newcommand{\sailfnexecuteSRL}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSRL.tex}} - -\newcommand{\sailfnexecuteSRLV}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSRLV.tex}} - -\newcommand{\sailfnexecuteSLT}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSLT.tex}} - -\newcommand{\sailfnexecuteSLTI}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSLTI.tex}} - -\newcommand{\sailfnexecuteSLTU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSLTU.tex}} - -\newcommand{\sailfnexecuteSLTIU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSLTIU.tex}} - -\newcommand{\sailfnexecuteMOVN}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMOVN.tex}} - -\newcommand{\sailfnexecuteMOVZ}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMOVZ.tex}} - -\newcommand{\sailfnexecuteMFHI}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMFHI.tex}} - -\newcommand{\sailfnexecuteMFLO}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMFLO.tex}} - -\newcommand{\sailfnexecuteMTHI}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMTHI.tex}} - -\newcommand{\sailfnexecuteMTLO}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMTLO.tex}} - -\newcommand{\sailfnexecuteMUL}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMUL.tex}} - -\newcommand{\sailfnexecuteMULT}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMULT.tex}} - -\newcommand{\sailfnexecuteMULTU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMULTU.tex}} - -\newcommand{\sailfnexecuteDMULT}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDMULT.tex}} - -\newcommand{\sailfnexecuteDMULTU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDMULTU.tex}} - -\newcommand{\sailfnexecuteMADD}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMADD.tex}} - -\newcommand{\sailfnexecuteMADDU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMADDU.tex}} - -\newcommand{\sailfnexecuteMSUB}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMSUB.tex}} - -\newcommand{\sailfnexecuteMSUBU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMSUBU.tex}} - -\newcommand{\sailfnexecuteDIV}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDIV.tex}} - -\newcommand{\sailfnexecuteDIVU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDIVU.tex}} - -\newcommand{\sailfnexecuteDDIV}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDDIV.tex}} - -\newcommand{\sailfnexecuteDDIVU}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteDDIVU.tex}} - -\newcommand{\sailfnexecuteJ}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteJ.tex}} - -\newcommand{\sailfnexecuteJAL}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteJAL.tex}} - -\newcommand{\sailfnexecuteJR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteJR.tex}} - -\newcommand{\sailfnexecuteJALR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteJALR.tex}} - -\newcommand{\sailfnexecuteBEQ}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteBEQ.tex}} - -\newcommand{\sailfnexecuteBCMPZ}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteBCMPZ.tex}} - -\newcommand{\sailfnexecuteSYSCALL}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSYSCALL.tex}} - -\newcommand{\sailfnexecuteBREAK}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteBREAK.tex}} - -\newcommand{\sailfnexecuteWAIT}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteWAIT.tex}} - -\newcommand{\sailfnexecuteTRAPREG}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteTRAPREG.tex}} - -\newcommand{\sailfnexecuteTRAPIMM}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteTRAPIMM.tex}} - -\newcommand{\sailfnexecuteLoad}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteLoad.tex}} - -\newcommand{\sailfnexecuteStore}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteStore.tex}} - -\newcommand{\sailfnexecuteLWL}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteLWL.tex}} - -\newcommand{\sailfnexecuteLWR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteLWR.tex}} - -\newcommand{\sailfnexecuteSWL}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSWL.tex}} - -\newcommand{\sailfnexecuteSWR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSWR.tex}} - -\newcommand{\sailfnexecuteLDL}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteLDL.tex}} - -\newcommand{\sailfnexecuteLDR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteLDR.tex}} - -\newcommand{\sailfnexecuteSDL}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSDL.tex}} - -\newcommand{\sailfnexecuteSDR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSDR.tex}} - -\newcommand{\sailfnexecuteCACHE}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCACHE.tex}} - -\newcommand{\sailfnexecuteSYNC}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteSYNC.tex}} - -\newcommand{\sailfnexecuteMFCzero}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMFCzero.tex}} - -\newcommand{\sailfnexecuteHCF}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteHCF.tex}} - -\newcommand{\sailfnexecuteMTCzero}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteMTCzero.tex}} - -\newcommand{\sailfnexecuteTLBWI}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteTLBWI.tex}} - -\newcommand{\sailfnexecuteTLBWR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteTLBWR.tex}} - -\newcommand{\sailfnexecuteTLBR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteTLBR.tex}} - -\newcommand{\sailfnexecuteTLBP}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteTLBP.tex}} - -\newcommand{\sailfnexecuteRDHWR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteRDHWR.tex}} - -\newcommand{\sailfnexecuteERET}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteERET.tex}} - -\newcommand{\sailfnexecuteCGetPerm}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCGetPerm.tex}} - -\newcommand{\sailfnexecuteCGetType}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCGetType.tex}} - -\newcommand{\sailfnexecuteCGetBase}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCGetBase.tex}} - -\newcommand{\sailfnexecuteCGetOffset}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCGetOffset.tex}} - -\newcommand{\sailfnexecuteCGetLen}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCGetLen.tex}} - -\newcommand{\sailfnexecuteCGetTag}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCGetTag.tex}} - -\newcommand{\sailfnexecuteCGetSealed}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCGetSealed.tex}} - -\newcommand{\sailfnexecuteCGetAddr}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCGetAddr.tex}} - -\newcommand{\sailfnexecuteCGetPCC}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCGetPCC.tex}} - -\newcommand{\sailfnexecuteCGetPCCSetOffset}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCGetPCCSetOffset.tex}} - -\newcommand{\sailfnexecuteCGetCause}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCGetCause.tex}} - -\newcommand{\sailfnexecuteCSetCause}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCSetCause.tex}} - -\newcommand{\sailfnexecuteCReadHwr}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCReadHwr.tex}} - -\newcommand{\sailfnexecuteCWriteHwr}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCWriteHwr.tex}} - -\newcommand{\sailfnexecuteCAndPerm}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCAndPerm.tex}} - -\newcommand{\sailfnexecuteCToPtr}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCToPtr.tex}} - -\newcommand{\sailfnexecuteCSub}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCSub.tex}} - -\newcommand{\sailfnexecuteCPtrCmp}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCPtrCmp.tex}} - -\newcommand{\sailfnexecuteCIncOffset}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCIncOffset.tex}} - -\newcommand{\sailfnexecuteCIncOffsetImmediate}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCIncOffsetImmediate.tex}} - -\newcommand{\sailfnexecuteCSetOffset}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCSetOffset.tex}} - -\newcommand{\sailfnexecuteCSetBounds}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCSetBounds.tex}} - -\newcommand{\sailfnexecuteCSetBoundsImmediate}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCSetBoundsImmediate.tex}} - -\newcommand{\sailfnexecuteCSetBoundsExact}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCSetBoundsExact.tex}} - -\newcommand{\sailfnexecuteCClearTag}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCClearTag.tex}} - -\newcommand{\sailfnexecuteCMOVX}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCMOVX.tex}} - -\newcommand{\sailfnexecuteClearRegs}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteClearRegs.tex}} - -\newcommand{\sailfnexecuteCFromPtr}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCFromPtr.tex}} - -\newcommand{\sailfnexecuteCBuildCap}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCBuildCap.tex}} - -\newcommand{\sailfnexecuteCCopyType}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCCopyType.tex}} - -\newcommand{\sailfnexecuteCCheckPerm}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCCheckPerm.tex}} - -\newcommand{\sailfnexecuteCCheckType}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCCheckType.tex}} - -\newcommand{\sailfnexecuteCTestSubset}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCTestSubset.tex}} - -\newcommand{\sailfnexecuteCSeal}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCSeal.tex}} - -\newcommand{\sailfnexecuteCCSeal}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCCSeal.tex}} - -\newcommand{\sailfnexecuteCUnseal}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCUnseal.tex}} - -\newcommand{\sailfnexecuteCCall}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCCall.tex}} - -\newcommand{\sailsailfnexecuteCCallv}{ \lstinputlisting[language=sail]{sail_latex/sailsailfnexecuteCCallv.tex}} - -\newcommand{\sailfnexecuteCReturn}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCReturn.tex}} - -\newcommand{\sailfnexecuteCBX}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCBX.tex}} - -\newcommand{\sailfnexecuteCBZ}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCBZ.tex}} - -\newcommand{\sailfnexecuteCJALR}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCJALR.tex}} - -\newcommand{\sailfnexecuteCLoad}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCLoad.tex}} - -\newcommand{\sailfnexecuteCStore}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCStore.tex}} - -\newcommand{\sailfnexecuteCSC}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCSC.tex}} - -\newcommand{\sailfnexecuteCLC}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCLC.tex}} - -\newcommand{\sailfnexecuteCtwoDump}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteCtwoDump.tex}} - -\newcommand{\sailfnexecuteRI}{ \lstinputlisting[language=sail]{sail_latex/sailfnexecuteRI.tex}} - - - -\newcommand{\sailsupportedinstructions}{\label{zsupportedzyinstructions} \lstinputlisting[language=sail]{sail_latex/sailsupportedinstructions.tex}} - -\newcommand{\sailfnsupportedinstructions}{\label{zsupportedzyinstructions} \lstinputlisting[language=sail]{sail_latex/sailfnsupportedinstructions.tex}} - diff --git a/cheri/sail_latex/sailAccessLevel.tex b/cheri/sail_latex/sailAccessLevel.tex deleted file mode 100644 index 9e7ad495..00000000 --- a/cheri/sail_latex/sailAccessLevel.tex +++ /dev/null @@ -1 +0,0 @@ -enum AccessLevel = {User, Supervisor, Kernel} diff --git a/cheri/sail_latex/sailAccessLevelofnum.tex b/cheri/sail_latex/sailAccessLevelofnum.tex deleted file mode 100644 index d958c3e0..00000000 --- a/cheri/sail_latex/sailAccessLevelofnum.tex +++ /dev/null @@ -1 +0,0 @@ -val AccessLevel_of_num : forall ('e : Int), 0 <= 'e & 'e <= 2. atom('e) -> AccessLevel diff --git a/cheri/sail_latex/sailBitStr.tex b/cheri/sail_latex/sailBitStr.tex deleted file mode 100644 index a0d408ab..00000000 --- a/cheri/sail_latex/sailBitStr.tex +++ /dev/null @@ -1 +0,0 @@ -val BitStr = "string_of_bits" : forall 'n. #\hyperref[zbits]{bits}#('n) -> string diff --git a/cheri/sail_latex/sailCPtrCmpOp.tex b/cheri/sail_latex/sailCPtrCmpOp.tex deleted file mode 100644 index cb0a73ae..00000000 --- a/cheri/sail_latex/sailCPtrCmpOp.tex +++ /dev/null @@ -1,10 +0,0 @@ -enum CPtrCmpOp = { - CEQ, - CNE, - CLT, - CLE, - CLTU, - CLEU, - CEXEQ, - CNEXEQ -} diff --git a/cheri/sail_latex/sailCPtrCmpOpofnum.tex b/cheri/sail_latex/sailCPtrCmpOpofnum.tex deleted file mode 100644 index bd6ca31c..00000000 --- a/cheri/sail_latex/sailCPtrCmpOpofnum.tex +++ /dev/null @@ -1 +0,0 @@ -val CPtrCmpOp_of_num : forall ('e : Int), 0 <= 'e & 'e <= 7. atom('e) -> CPtrCmpOp diff --git a/cheri/sail_latex/sailCapCauseReg.tex b/cheri/sail_latex/sailCapCauseReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailCapCauseReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailCapEx.tex b/cheri/sail_latex/sailCapEx.tex deleted file mode 100644 index 636c85c9..00000000 --- a/cheri/sail_latex/sailCapEx.tex +++ /dev/null @@ -1,25 +0,0 @@ -enum CapEx = { - CapEx_None, - CapEx_LengthViolation, - CapEx_TagViolation, - CapEx_SealViolation, - CapEx_TypeViolation, - CapEx_CallTrap, - CapEx_ReturnTrap, - CapEx_TSSUnderFlow, - CapEx_UserDefViolation, - CapEx_TLBNoStoreCap, - CapEx_InexactBounds, - CapEx_GlobalViolation, - CapEx_PermitExecuteViolation, - CapEx_PermitLoadViolation, - CapEx_PermitStoreViolation, - CapEx_PermitLoadCapViolation, - CapEx_PermitStoreCapViolation, - CapEx_PermitStoreLocalCapViolation, - CapEx_PermitSealViolation, - CapEx_AccessSystemRegsViolation, - CapEx_PermitCCallViolation, - CapEx_AccessCCallIDCViolation, - CapEx_PermitUnsealViolation -} diff --git a/cheri/sail_latex/sailCapExCode.tex b/cheri/sail_latex/sailCapExCode.tex deleted file mode 100644 index 3611e1b8..00000000 --- a/cheri/sail_latex/sailCapExCode.tex +++ /dev/null @@ -1 +0,0 @@ -val CapExCode : CapEx -> bits(8) diff --git a/cheri/sail_latex/sailCapExofnum.tex b/cheri/sail_latex/sailCapExofnum.tex deleted file mode 100644 index dec981a6..00000000 --- a/cheri/sail_latex/sailCapExofnum.tex +++ /dev/null @@ -1 +0,0 @@ -val CapEx_of_num : forall ('e : Int), 0 <= 'e & 'e <= 22. atom('e) -> CapEx diff --git a/cheri/sail_latex/sailCapLen.tex b/cheri/sail_latex/sailCapLen.tex deleted file mode 100644 index 812f45ff..00000000 --- a/cheri/sail_latex/sailCapLen.tex +++ /dev/null @@ -1 +0,0 @@ -type CapLen = range(0, 2 ^ 65) diff --git a/cheri/sail_latex/sailCapReg.tex b/cheri/sail_latex/sailCapReg.tex deleted file mode 100644 index f217492a..00000000 --- a/cheri/sail_latex/sailCapReg.tex +++ /dev/null @@ -1 +0,0 @@ -type CapReg = #\hyperref[zbits]{bits}#(257) diff --git a/cheri/sail_latex/sailCapStruct.tex b/cheri/sail_latex/sailCapStruct.tex deleted file mode 100644 index 4b9a3386..00000000 --- a/cheri/sail_latex/sailCapStruct.tex +++ /dev/null @@ -1,22 +0,0 @@ -struct CapStruct = { - tag : bool , - padding : #\hyperref[zbits]{bits}#(8) , - otype : #\hyperref[zbits]{bits}#(24), - uperms : #\hyperref[zbits]{bits}#(16), - perm_reserved11_14 : #\hyperref[zbits]{bits}#(4) , - access_system_regs : bool , - permit_unseal : bool , - permit_ccall : bool , - permit_seal : bool , - permit_store_local_cap : bool , - permit_store_cap : bool , - permit_load_cap : bool , - permit_store : bool , - permit_load : bool , - permit_execute : bool , - global : bool , - sealed : bool , - address : #\hyperref[zbits]{bits}#(64), - base : #\hyperref[zbits]{bits}#(64), - length : #\hyperref[zbits]{bits}#(64), -} diff --git a/cheri/sail_latex/sailCauseReg.tex b/cheri/sail_latex/sailCauseReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailCauseReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailClearRegSet.tex b/cheri/sail_latex/sailClearRegSet.tex deleted file mode 100644 index c04ea7d4..00000000 --- a/cheri/sail_latex/sailClearRegSet.tex +++ /dev/null @@ -1,6 +0,0 @@ -enum ClearRegSet = { -GPLo, -GPHi, -CLo, -CHi -} diff --git a/cheri/sail_latex/sailClearRegSetofnum.tex b/cheri/sail_latex/sailClearRegSetofnum.tex deleted file mode 100644 index c73d36d9..00000000 --- a/cheri/sail_latex/sailClearRegSetofnum.tex +++ /dev/null @@ -1 +0,0 @@ -val ClearRegSet_of_num : forall ('e : Int), 0 <= 'e & 'e <= 3. atom('e) -> ClearRegSet diff --git a/cheri/sail_latex/sailComparison.tex b/cheri/sail_latex/sailComparison.tex deleted file mode 100644 index 083fc498..00000000 --- a/cheri/sail_latex/sailComparison.tex +++ /dev/null @@ -1,10 +0,0 @@ -enum Comparison = { - EQ, /* equal */ - NE, /* not equal */ - GE, /* signed greater than or equal */ - GEU,/* unsigned greater than or equal */ - GT, /* signed strictly greater than */ - LE, /* signed less than or equal */ - LT, /* signed strictly less than */ - LTU /* unsigned less than or qual */ -} diff --git a/cheri/sail_latex/sailComparisonofnum.tex b/cheri/sail_latex/sailComparisonofnum.tex deleted file mode 100644 index 02c9c48e..00000000 --- a/cheri/sail_latex/sailComparisonofnum.tex +++ /dev/null @@ -1 +0,0 @@ -val Comparison_of_num : forall ('e : Int), 0 <= 'e & 'e <= 7. atom('e) -> Comparison diff --git a/cheri/sail_latex/sailContextReg.tex b/cheri/sail_latex/sailContextReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailContextReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailERETHook.tex b/cheri/sail_latex/sailERETHook.tex deleted file mode 100644 index 8eadde7b..00000000 --- a/cheri/sail_latex/sailERETHook.tex +++ /dev/null @@ -1 +0,0 @@ -val ERETHook : unit -> unit effect {rreg, wreg} diff --git a/cheri/sail_latex/sailException.tex b/cheri/sail_latex/sailException.tex deleted file mode 100644 index 800328ec..00000000 --- a/cheri/sail_latex/sailException.tex +++ /dev/null @@ -1,5 +0,0 @@ -enum Exception = -{ - Interrupt, TLBMod, TLBL, TLBS, AdEL, AdES, Sys, Bp, ResI, CpU, Ov, Tr, C2E, C2Trap, - XTLBRefillL, XTLBRefillS, XTLBInvL, XTLBInvS, MCheck -} diff --git a/cheri/sail_latex/sailExceptionCode.tex b/cheri/sail_latex/sailExceptionCode.tex deleted file mode 100644 index 395b9670..00000000 --- a/cheri/sail_latex/sailExceptionCode.tex +++ /dev/null @@ -1 +0,0 @@ -val ExceptionCode : Exception -> bits(5) diff --git a/cheri/sail_latex/sailExceptionofnum.tex b/cheri/sail_latex/sailExceptionofnum.tex deleted file mode 100644 index 394ae4e1..00000000 --- a/cheri/sail_latex/sailExceptionofnum.tex +++ /dev/null @@ -1 +0,0 @@ -val Exception_of_num : forall ('e : Int), 0 <= 'e & 'e <= 18. atom('e) -> Exception diff --git a/cheri/sail_latex/sailMAX.tex b/cheri/sail_latex/sailMAX.tex deleted file mode 100644 index 07bace3b..00000000 --- a/cheri/sail_latex/sailMAX.tex +++ /dev/null @@ -1 +0,0 @@ -val MAX : forall 'n. atom('n) -> atom(2 ^ 'n - 1) effect pure diff --git a/cheri/sail_latex/sailMEMea.tex b/cheri/sail_latex/sailMEMea.tex deleted file mode 100644 index c5225019..00000000 --- a/cheri/sail_latex/sailMEMea.tex +++ /dev/null @@ -1,2 +0,0 @@ -val MEMea = {lem: "MEMea"} : forall 'n. - ( #\hyperref[zbits]{bits}#(64) , atom('n)) -> unit effect { eamem } diff --git a/cheri/sail_latex/sailMEMeaconditional.tex b/cheri/sail_latex/sailMEMeaconditional.tex deleted file mode 100644 index d966b986..00000000 --- a/cheri/sail_latex/sailMEMeaconditional.tex +++ /dev/null @@ -1,2 +0,0 @@ -val MEMea_conditional = {lem: "MEMea_conditional"} : forall 'n. - ( #\hyperref[zbits]{bits}#(64) , atom('n)) -> unit effect { eamem } diff --git a/cheri/sail_latex/sailMEMr.tex b/cheri/sail_latex/sailMEMr.tex deleted file mode 100644 index 75ddc94c..00000000 --- a/cheri/sail_latex/sailMEMr.tex +++ /dev/null @@ -1,2 +0,0 @@ -val MEMr = {lem: "MEMr"} : forall 'n, 'n >= 0. - ( #\hyperref[zbits]{bits}#(64) , atom('n) ) -> (#\hyperref[zbits]{bits}#(8 * 'n)) effect { rmem } diff --git a/cheri/sail_latex/sailMEMrreserve.tex b/cheri/sail_latex/sailMEMrreserve.tex deleted file mode 100644 index 11b4f3db..00000000 --- a/cheri/sail_latex/sailMEMrreserve.tex +++ /dev/null @@ -1,2 +0,0 @@ -val MEMr_reserve = {lem: "MEMr_reserve"} : forall 'n, 'n >= 0. - ( #\hyperref[zbits]{bits}#(64) , atom('n) ) -> (#\hyperref[zbits]{bits}#(8 * 'n)) effect { rmem } diff --git a/cheri/sail_latex/sailMEMrreservewrapper.tex b/cheri/sail_latex/sailMEMrreservewrapper.tex deleted file mode 100644 index b12713a2..00000000 --- a/cheri/sail_latex/sailMEMrreservewrapper.tex +++ /dev/null @@ -1 +0,0 @@ -val MEMr_reserve_wrapper : forall 'n, 1 <= 'n <= 8 . ( #\hyperref[zbits]{bits}#(64) , atom('n) ) -> (#\hyperref[zbits]{bits}#(8 * 'n)) effect { rmem } diff --git a/cheri/sail_latex/sailMEMrtag.tex b/cheri/sail_latex/sailMEMrtag.tex deleted file mode 100644 index 9bcda0f4..00000000 --- a/cheri/sail_latex/sailMEMrtag.tex +++ /dev/null @@ -1 +0,0 @@ -val MEMr_tag = "read_tag_bool" : #\hyperref[zbits]{bits}#(64) -> bool effect { rmemt } diff --git a/cheri/sail_latex/sailMEMrtagged.tex b/cheri/sail_latex/sailMEMrtagged.tex deleted file mode 100644 index 92c90c7b..00000000 --- a/cheri/sail_latex/sailMEMrtagged.tex +++ /dev/null @@ -1 +0,0 @@ -val MEMr_tagged : #\hyperref[zbits]{bits}#(64) -> (bool, #\hyperref[zbits]{bits}#('cap_size * 8)) effect { escape, rmem, rmemt } diff --git a/cheri/sail_latex/sailMEMrtaggedreserve.tex b/cheri/sail_latex/sailMEMrtaggedreserve.tex deleted file mode 100644 index fb080251..00000000 --- a/cheri/sail_latex/sailMEMrtaggedreserve.tex +++ /dev/null @@ -1 +0,0 @@ -val MEMr_tagged_reserve : #\hyperref[zbits]{bits}#(64) -> (bool, #\hyperref[zbits]{bits}#('cap_size * 8)) effect { escape, rmem, rmemt } diff --git a/cheri/sail_latex/sailMEMrwrapper.tex b/cheri/sail_latex/sailMEMrwrapper.tex deleted file mode 100644 index 7c8ce2fd..00000000 --- a/cheri/sail_latex/sailMEMrwrapper.tex +++ /dev/null @@ -1 +0,0 @@ -val MEMr_wrapper : forall 'n, 1 <= 'n <= 8 . (#\hyperref[zbits]{bits}#(64), atom('n)) -> #\hyperref[zbits]{bits}#(8*'n) effect {rmem, rreg, wreg} diff --git a/cheri/sail_latex/sailMEMsync.tex b/cheri/sail_latex/sailMEMsync.tex deleted file mode 100644 index 5a66f5db..00000000 --- a/cheri/sail_latex/sailMEMsync.tex +++ /dev/null @@ -1,2 +0,0 @@ -val MEM_sync = {lem: "MEM_sync"} : - unit -> unit effect { barr } diff --git a/cheri/sail_latex/sailMEMval.tex b/cheri/sail_latex/sailMEMval.tex deleted file mode 100644 index 67c34697..00000000 --- a/cheri/sail_latex/sailMEMval.tex +++ /dev/null @@ -1,2 +0,0 @@ -val MEMval = {lem: "MEMval"} : forall 'n. - ( #\hyperref[zbits]{bits}#(64) , atom('n), #\hyperref[zbits]{bits}#(8*'n)) -> unit effect { wmv } diff --git a/cheri/sail_latex/sailMEMvalconditional.tex b/cheri/sail_latex/sailMEMvalconditional.tex deleted file mode 100644 index 9e0029e5..00000000 --- a/cheri/sail_latex/sailMEMvalconditional.tex +++ /dev/null @@ -1,2 +0,0 @@ -val MEMval_conditional = {lem: "MEMval_conditional"} : forall 'n. - ( #\hyperref[zbits]{bits}#(64) , atom('n), #\hyperref[zbits]{bits}#(8*'n)) -> bool effect { wmv } diff --git a/cheri/sail_latex/sailMEMwconditionalwrapper.tex b/cheri/sail_latex/sailMEMwconditionalwrapper.tex deleted file mode 100644 index 1d7cb3e8..00000000 --- a/cheri/sail_latex/sailMEMwconditionalwrapper.tex +++ /dev/null @@ -1 +0,0 @@ -val MEMw_conditional_wrapper : forall 'n, 'n >= 1. (#\hyperref[zbits]{bits}#(64), atom('n), #\hyperref[zbits]{bits}#(8 * 'n)) -> bool effect {escape, wmv, wmvt, eamem} diff --git a/cheri/sail_latex/sailMEMwtag.tex b/cheri/sail_latex/sailMEMwtag.tex deleted file mode 100644 index 1319a340..00000000 --- a/cheri/sail_latex/sailMEMwtag.tex +++ /dev/null @@ -1 +0,0 @@ -val MEMw_tag = "write_tag_bool" : (#\hyperref[zbits]{bits}#(64) , bool) -> unit effect { wmvt } diff --git a/cheri/sail_latex/sailMEMwtagged.tex b/cheri/sail_latex/sailMEMwtagged.tex deleted file mode 100644 index 4f8fd683..00000000 --- a/cheri/sail_latex/sailMEMwtagged.tex +++ /dev/null @@ -1 +0,0 @@ -val MEMw_tagged : (#\hyperref[zbits]{bits}#(64), bool, #\hyperref[zbits]{bits}#('cap_size * 8)) -> unit effect { escape, eamem, wmv, wmvt } diff --git a/cheri/sail_latex/sailMEMwtaggedconditional.tex b/cheri/sail_latex/sailMEMwtaggedconditional.tex deleted file mode 100644 index f5ef7e17..00000000 --- a/cheri/sail_latex/sailMEMwtaggedconditional.tex +++ /dev/null @@ -1 +0,0 @@ -val MEMw_tagged_conditional : (#\hyperref[zbits]{bits}#(64), bool, #\hyperref[zbits]{bits}#('cap_size * 8)) -> bool effect { escape, eamem, wmv, wmvt } diff --git a/cheri/sail_latex/sailMEMwwrapper.tex b/cheri/sail_latex/sailMEMwwrapper.tex deleted file mode 100644 index db438818..00000000 --- a/cheri/sail_latex/sailMEMwwrapper.tex +++ /dev/null @@ -1 +0,0 @@ -val MEMw_wrapper : forall 'n, 'n >= 1. (#\hyperref[zbits]{bits}#(64), atom('n), #\hyperref[zbits]{bits}#(8 * 'n)) -> unit effect {escape, wmv, wmvt, wreg, eamem} diff --git a/cheri/sail_latex/sailMIPSread.tex b/cheri/sail_latex/sailMIPSread.tex deleted file mode 100644 index 92ca59cc..00000000 --- a/cheri/sail_latex/sailMIPSread.tex +++ /dev/null @@ -1 +0,0 @@ -val __MIPS_read : forall 'n, 'n >= 0. (#\hyperref[zbits]{bits}#(64), atom('n)) -> #\hyperref[zbits]{bits}#(8 * 'n) effect {rmem} diff --git a/cheri/sail_latex/sailMIPSwrite.tex b/cheri/sail_latex/sailMIPSwrite.tex deleted file mode 100644 index cc67fa20..00000000 --- a/cheri/sail_latex/sailMIPSwrite.tex +++ /dev/null @@ -1 +0,0 @@ -val __MIPS_write : forall 'n. (#\hyperref[zbits]{bits}#(64), atom('n), #\hyperref[zbits]{bits}#(8 * 'n)) -> unit effect {wmv} diff --git a/cheri/sail_latex/sailMemAccessType.tex b/cheri/sail_latex/sailMemAccessType.tex deleted file mode 100644 index 436b40bc..00000000 --- a/cheri/sail_latex/sailMemAccessType.tex +++ /dev/null @@ -1 +0,0 @@ -enum MemAccessType = {Instruction, LoadData, StoreData} diff --git a/cheri/sail_latex/sailMemAccessTypeofnum.tex b/cheri/sail_latex/sailMemAccessTypeofnum.tex deleted file mode 100644 index 9147f6e3..00000000 --- a/cheri/sail_latex/sailMemAccessTypeofnum.tex +++ /dev/null @@ -1 +0,0 @@ -val MemAccessType_of_num : forall ('e : Int), 0 <= 'e & 'e <= 2. atom('e) -> MemAccessType diff --git a/cheri/sail_latex/sailMkCapCauseReg.tex b/cheri/sail_latex/sailMkCapCauseReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailMkCapCauseReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailMkCauseReg.tex b/cheri/sail_latex/sailMkCauseReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailMkCauseReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailMkContextReg.tex b/cheri/sail_latex/sailMkContextReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailMkContextReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailMkStatusReg.tex b/cheri/sail_latex/sailMkStatusReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailMkStatusReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailMkTLBEntry.tex b/cheri/sail_latex/sailMkTLBEntry.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailMkTLBEntry.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailMkTLBEntryHiReg.tex b/cheri/sail_latex/sailMkTLBEntryHiReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailMkTLBEntryHiReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailMkTLBEntryLoReg.tex b/cheri/sail_latex/sailMkTLBEntryLoReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailMkTLBEntryLoReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailMkXContextReg.tex b/cheri/sail_latex/sailMkXContextReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailMkXContextReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailNotWordVal.tex b/cheri/sail_latex/sailNotWordVal.tex deleted file mode 100644 index e6689c14..00000000 --- a/cheri/sail_latex/sailNotWordVal.tex +++ /dev/null @@ -1 +0,0 @@ -val NotWordVal : #\hyperref[zbits]{bits}#(64) -> bool effect pure diff --git a/cheri/sail_latex/sailReadRAM.tex b/cheri/sail_latex/sailReadRAM.tex deleted file mode 100644 index 68d629a6..00000000 --- a/cheri/sail_latex/sailReadRAM.tex +++ /dev/null @@ -1,2 +0,0 @@ -val __ReadRAM = "read_ram" : forall 'n 'm, 'n >= 0. - (atom('m), atom('n), #\hyperref[zbits]{bits}#('m), #\hyperref[zbits]{bits}#('m)) -> #\hyperref[zbits]{bits}#(8 * 'n) effect {rmem} diff --git a/cheri/sail_latex/sailSignalException.tex b/cheri/sail_latex/sailSignalException.tex deleted file mode 100644 index 44205587..00000000 --- a/cheri/sail_latex/sailSignalException.tex +++ /dev/null @@ -1 +0,0 @@ -val SignalException : forall ('o : Type) . Exception -> 'o effect {escape, rreg, wreg} diff --git a/cheri/sail_latex/sailSignalExceptionBadAddr.tex b/cheri/sail_latex/sailSignalExceptionBadAddr.tex deleted file mode 100644 index f54e77e7..00000000 --- a/cheri/sail_latex/sailSignalExceptionBadAddr.tex +++ /dev/null @@ -1 +0,0 @@ -val SignalExceptionBadAddr : forall ('o : Type) . (Exception, #\hyperref[zbits]{bits}#(64)) -> 'o effect {escape, rreg, wreg} diff --git a/cheri/sail_latex/sailSignalExceptionMIPS.tex b/cheri/sail_latex/sailSignalExceptionMIPS.tex deleted file mode 100644 index ce88e5d6..00000000 --- a/cheri/sail_latex/sailSignalExceptionMIPS.tex +++ /dev/null @@ -1 +0,0 @@ -val SignalExceptionMIPS : forall ('o : Type) . (Exception, #\hyperref[zbits]{bits}#(64)) -> 'o effect {escape, rreg, wreg} diff --git a/cheri/sail_latex/sailSignalExceptionTLB.tex b/cheri/sail_latex/sailSignalExceptionTLB.tex deleted file mode 100644 index 08036f99..00000000 --- a/cheri/sail_latex/sailSignalExceptionTLB.tex +++ /dev/null @@ -1 +0,0 @@ -val SignalExceptionTLB : forall ('o : Type) . (Exception, #\hyperref[zbits]{bits}#(64)) -> 'o effect {escape, rreg, wreg} diff --git a/cheri/sail_latex/sailStatusReg.tex b/cheri/sail_latex/sailStatusReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailStatusReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailTLBEntry.tex b/cheri/sail_latex/sailTLBEntry.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailTLBEntry.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailTLBEntryHiReg.tex b/cheri/sail_latex/sailTLBEntryHiReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailTLBEntryHiReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailTLBEntryLoReg.tex b/cheri/sail_latex/sailTLBEntryLoReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailTLBEntryLoReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailTLBIndexT.tex b/cheri/sail_latex/sailTLBIndexT.tex deleted file mode 100644 index c51bd6bb..00000000 --- a/cheri/sail_latex/sailTLBIndexT.tex +++ /dev/null @@ -1 +0,0 @@ -type TLBIndexT = (#\hyperref[zbits]{bits}#(6)) diff --git a/cheri/sail_latex/sailTLBTranslate.tex b/cheri/sail_latex/sailTLBTranslate.tex deleted file mode 100644 index d09725f9..00000000 --- a/cheri/sail_latex/sailTLBTranslate.tex +++ /dev/null @@ -1 +0,0 @@ -val TLBTranslate : (#\hyperref[zbits]{bits}#(64), MemAccessType) -> #\hyperref[zbits]{bits}#(64) effect {rreg, wreg, escape, undef} diff --git a/cheri/sail_latex/sailTLBTranslateC.tex b/cheri/sail_latex/sailTLBTranslateC.tex deleted file mode 100644 index 0d99ab7e..00000000 --- a/cheri/sail_latex/sailTLBTranslateC.tex +++ /dev/null @@ -1 +0,0 @@ -val TLBTranslateC : (#\hyperref[zbits]{bits}#(64), MemAccessType) -> (#\hyperref[zbits]{bits}#(64), bool) effect {escape, rreg, undef, wreg} diff --git a/cheri/sail_latex/sailTLBTranslatetwo.tex b/cheri/sail_latex/sailTLBTranslatetwo.tex deleted file mode 100644 index 310675f4..00000000 --- a/cheri/sail_latex/sailTLBTranslatetwo.tex +++ /dev/null @@ -1 +0,0 @@ -val TLBTranslate2 : (#\hyperref[zbits]{bits}#(64), MemAccessType) -> (#\hyperref[zbits]{bits}#(64), bool) effect {rreg, wreg, undef, escape} diff --git a/cheri/sail_latex/sailTLBWriteEntry.tex b/cheri/sail_latex/sailTLBWriteEntry.tex deleted file mode 100644 index 84d4fa70..00000000 --- a/cheri/sail_latex/sailTLBWriteEntry.tex +++ /dev/null @@ -1 +0,0 @@ -val TLBWriteEntry : TLBIndexT -> unit effect {rreg, wreg, escape} diff --git a/cheri/sail_latex/sailTranslatePC.tex b/cheri/sail_latex/sailTranslatePC.tex deleted file mode 100644 index c962c7e1..00000000 --- a/cheri/sail_latex/sailTranslatePC.tex +++ /dev/null @@ -1 +0,0 @@ -val TranslatePC : #\hyperref[zbits]{bits}#(64) -> #\hyperref[zbits]{bits}#(64) effect {rreg, wreg, escape, undef} diff --git a/cheri/sail_latex/sailWordType.tex b/cheri/sail_latex/sailWordType.tex deleted file mode 100644 index 632efe95..00000000 --- a/cheri/sail_latex/sailWordType.tex +++ /dev/null @@ -1 +0,0 @@ -enum WordType = { B, H, W, D} diff --git a/cheri/sail_latex/sailWordTypeUnaligned.tex b/cheri/sail_latex/sailWordTypeUnaligned.tex deleted file mode 100644 index 3724733e..00000000 --- a/cheri/sail_latex/sailWordTypeUnaligned.tex +++ /dev/null @@ -1 +0,0 @@ -enum WordTypeUnaligned = { WL, WR, DL, DR } diff --git a/cheri/sail_latex/sailWordTypeUnalignedofnum.tex b/cheri/sail_latex/sailWordTypeUnalignedofnum.tex deleted file mode 100644 index a36d9748..00000000 --- a/cheri/sail_latex/sailWordTypeUnalignedofnum.tex +++ /dev/null @@ -1 +0,0 @@ -val WordTypeUnaligned_of_num : forall ('e : Int), 0 <= 'e & 'e <= 3. atom('e) -> WordTypeUnaligned diff --git a/cheri/sail_latex/sailWordTypeofnum.tex b/cheri/sail_latex/sailWordTypeofnum.tex deleted file mode 100644 index 85872610..00000000 --- a/cheri/sail_latex/sailWordTypeofnum.tex +++ /dev/null @@ -1 +0,0 @@ -val WordType_of_num : forall ('e : Int), 0 <= 'e & 'e <= 3. atom('e) -> WordType diff --git a/cheri/sail_latex/sailWriteRAM.tex b/cheri/sail_latex/sailWriteRAM.tex deleted file mode 100644 index 2ed4aca2..00000000 --- a/cheri/sail_latex/sailWriteRAM.tex +++ /dev/null @@ -1,2 +0,0 @@ -val __WriteRAM = "write_ram" : forall 'n 'm. - (atom('m), atom('n), #\hyperref[zbits]{bits}#('m), #\hyperref[zbits]{bits}#('m), #\hyperref[zbits]{bits}#(8 * 'n)) -> bool effect {wmv} diff --git a/cheri/sail_latex/sailXContextReg.tex b/cheri/sail_latex/sailXContextReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailXContextReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailabsatom.tex b/cheri/sail_latex/sailabsatom.tex deleted file mode 100644 index 5164ef32..00000000 --- a/cheri/sail_latex/sailabsatom.tex +++ /dev/null @@ -1,7 +0,0 @@ -val abs_atom = { - smt : "abs", - ocaml: "abs_int", - lem: "abs_int", - c: "abs_int", - coq: "abs_with_eq" -} : forall 'n. atom('n) -> {'o, 'o = #\hyperref[zabszyatom]{abs\_atom}#('n). atom('o)} diff --git a/cheri/sail_latex/sailabsint.tex b/cheri/sail_latex/sailabsint.tex deleted file mode 100644 index d3b67cfb..00000000 --- a/cheri/sail_latex/sailabsint.tex +++ /dev/null @@ -1,6 +0,0 @@ -val abs_int = { - smt : "abs", - ocaml: "abs_int", - lem: "abs_int", - coq: "Z.abs" -} : (int, int) -> int diff --git a/cheri/sail_latex/sailaddatom.tex b/cheri/sail_latex/sailaddatom.tex deleted file mode 100644 index 8b6ac810..00000000 --- a/cheri/sail_latex/sailaddatom.tex +++ /dev/null @@ -1,2 +0,0 @@ -val add_atom = {ocaml: "add_int", lem: "integerAdd", c: "add_int", coq: "Z.add"} : forall 'n 'm. - (atom('n), atom('m)) -> atom('n + 'm) diff --git a/cheri/sail_latex/sailaddbits.tex b/cheri/sail_latex/sailaddbits.tex deleted file mode 100644 index 95f653d1..00000000 --- a/cheri/sail_latex/sailaddbits.tex +++ /dev/null @@ -1,6 +0,0 @@ -val add_bits = { - ocaml: "add_vec", - lem: "add_vec", - c: "add_bits", - coq: "add_vec" -} : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailaddbitsint.tex b/cheri/sail_latex/sailaddbitsint.tex deleted file mode 100644 index ee9a8aa2..00000000 --- a/cheri/sail_latex/sailaddbitsint.tex +++ /dev/null @@ -1,6 +0,0 @@ -val add_bits_int = { - ocaml: "add_vec_int", - lem: "add_vec_int", - c: "add_bits_int", - coq: "add_vec_int" -} : forall 'n. (#\hyperref[zbits]{bits}#('n), int) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailaddint.tex b/cheri/sail_latex/sailaddint.tex deleted file mode 100644 index 9fe5b078..00000000 --- a/cheri/sail_latex/sailaddint.tex +++ /dev/null @@ -1 +0,0 @@ -val add_int = {ocaml: "add_int", lem: "integerAdd", c: "add_int", coq: "Z.add"} : (int, int) -> int diff --git a/cheri/sail_latex/sailaddrWrapper.tex b/cheri/sail_latex/sailaddrWrapper.tex deleted file mode 100644 index 506f9f99..00000000 --- a/cheri/sail_latex/sailaddrWrapper.tex +++ /dev/null @@ -1 +0,0 @@ -val addrWrapper : (#\hyperref[zbits]{bits}#(64), MemAccessType, WordType) -> #\hyperref[zbits]{bits}#(64) effect {rreg, wreg, escape} diff --git a/cheri/sail_latex/sailaddrWrapperUnaligned.tex b/cheri/sail_latex/sailaddrWrapperUnaligned.tex deleted file mode 100644 index bb266a52..00000000 --- a/cheri/sail_latex/sailaddrWrapperUnaligned.tex +++ /dev/null @@ -1 +0,0 @@ -val addrWrapperUnaligned : (#\hyperref[zbits]{bits}#(64), MemAccessType, WordTypeUnaligned) -> #\hyperref[zbits]{bits}#(64) effect {rreg, wreg, escape} diff --git a/cheri/sail_latex/sailaddrange.tex b/cheri/sail_latex/sailaddrange.tex deleted file mode 100644 index fbf498b1..00000000 --- a/cheri/sail_latex/sailaddrange.tex +++ /dev/null @@ -1,2 +0,0 @@ -val add_range = {ocaml: "add_int", lem: "integerAdd", coq: "add_range", c: "add_int"} : forall 'n 'm 'o 'p. - (range('n, 'm), range('o, 'p)) -> range('n + 'o, 'm + 'p) diff --git a/cheri/sail_latex/sailaddvec.tex b/cheri/sail_latex/sailaddvec.tex deleted file mode 100644 index bb625afe..00000000 --- a/cheri/sail_latex/sailaddvec.tex +++ /dev/null @@ -1 +0,0 @@ -val add_vec = "add_vec" : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailaddvecint.tex b/cheri/sail_latex/sailaddvecint.tex deleted file mode 100644 index 189ad4aa..00000000 --- a/cheri/sail_latex/sailaddvecint.tex +++ /dev/null @@ -1 +0,0 @@ -val add_vec_int = "add_vec_int" : forall 'n. (#\hyperref[zbits]{bits}#('n), int) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailandbits.tex b/cheri/sail_latex/sailandbits.tex deleted file mode 100644 index 8e35bd5b..00000000 --- a/cheri/sail_latex/sailandbits.tex +++ /dev/null @@ -1 +0,0 @@ -val and_bits = {c:"and_bits", _: "and_vec"} : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailandbool.tex b/cheri/sail_latex/sailandbool.tex deleted file mode 100644 index 926dce9f..00000000 --- a/cheri/sail_latex/sailandbool.tex +++ /dev/null @@ -1 +0,0 @@ -val and_bool = {coq: "andb", _: "and_bool"} : (bool, bool) -> bool diff --git a/cheri/sail_latex/sailappend.tex b/cheri/sail_latex/sailappend.tex deleted file mode 100644 index 56c12116..00000000 --- a/cheri/sail_latex/sailappend.tex +++ /dev/null @@ -1 +0,0 @@ -overload append = {bitvector_concat}
\ No newline at end of file diff --git a/cheri/sail_latex/sailappendsixfour.tex b/cheri/sail_latex/sailappendsixfour.tex deleted file mode 100644 index 633593b3..00000000 --- a/cheri/sail_latex/sailappendsixfour.tex +++ /dev/null @@ -1 +0,0 @@ -val "append_64" : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#(64)) -> #\hyperref[zbits]{bits}#('n + 64) diff --git a/cheri/sail_latex/sailbits.tex b/cheri/sail_latex/sailbits.tex deleted file mode 100644 index 88255b5a..00000000 --- a/cheri/sail_latex/sailbits.tex +++ /dev/null @@ -1 +0,0 @@ -type #\hyperref[zbits]{bits}# ('n : Int) = vector('n, dec, bit) diff --git a/cheri/sail_latex/sailbitstobool.tex b/cheri/sail_latex/sailbitstobool.tex deleted file mode 100644 index 17cb3483..00000000 --- a/cheri/sail_latex/sailbitstobool.tex +++ /dev/null @@ -1 +0,0 @@ -val cast bits_to_bool : #\hyperref[zbits]{bits}#(1) -> bool diff --git a/cheri/sail_latex/sailbittobool.tex b/cheri/sail_latex/sailbittobool.tex deleted file mode 100644 index 13a2dfb8..00000000 --- a/cheri/sail_latex/sailbittobool.tex +++ /dev/null @@ -1 +0,0 @@ -val cast bit_to_bool : bit -> bool diff --git a/cheri/sail_latex/sailbitvectoraccess.tex b/cheri/sail_latex/sailbitvectoraccess.tex deleted file mode 100644 index 4bb98eb8..00000000 --- a/cheri/sail_latex/sailbitvectoraccess.tex +++ /dev/null @@ -1,6 +0,0 @@ -val bitvector_access = { - ocaml: "access", - lem: "access_vec_dec", - coq: "access_vec_dec", - c: "vector_access" -} : forall ('n : Int), 'n >= 0. (#\hyperref[zbits]{bits}#('n), int) -> bit diff --git a/cheri/sail_latex/sailbitvectorconcat.tex b/cheri/sail_latex/sailbitvectorconcat.tex deleted file mode 100644 index afc03901..00000000 --- a/cheri/sail_latex/sailbitvectorconcat.tex +++ /dev/null @@ -1,2 +0,0 @@ -val bitvector_concat = {ocaml: "append", lem: "concat_vec", c: "append", coq: "concat_vec"} : forall ('n : Int) ('m : Int). - (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('m)) -> #\hyperref[zbits]{bits}#('n + 'm) diff --git a/cheri/sail_latex/sailbitvectorlength.tex b/cheri/sail_latex/sailbitvectorlength.tex deleted file mode 100644 index ac601acd..00000000 --- a/cheri/sail_latex/sailbitvectorlength.tex +++ /dev/null @@ -1 +0,0 @@ -val bitvector_length = {coq: "length_mword", _:"length"} : forall 'n. #\hyperref[zbits]{bits}#('n) -> atom('n) diff --git a/cheri/sail_latex/sailbitvectorupdate.tex b/cheri/sail_latex/sailbitvectorupdate.tex deleted file mode 100644 index 6524146e..00000000 --- a/cheri/sail_latex/sailbitvectorupdate.tex +++ /dev/null @@ -1,6 +0,0 @@ -val bitvector_update = { - ocaml: "update", - lem: "update_vec_dec", - coq: "update_vec_dec", - c: "vector_update" -} : forall 'n, 'n >= 0. (#\hyperref[zbits]{bits}#('n), int, bit) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailbooltobits.tex b/cheri/sail_latex/sailbooltobits.tex deleted file mode 100644 index 711ab763..00000000 --- a/cheri/sail_latex/sailbooltobits.tex +++ /dev/null @@ -1 +0,0 @@ -val cast bool_to_bits : bool -> #\hyperref[zbits]{bits}#(1) diff --git a/cheri/sail_latex/sailcapRegToCapStruct.tex b/cheri/sail_latex/sailcapRegToCapStruct.tex deleted file mode 100644 index bd64d554..00000000 --- a/cheri/sail_latex/sailcapRegToCapStruct.tex +++ /dev/null @@ -1 +0,0 @@ -val capRegToCapStruct : CapReg -> CapStruct diff --git a/cheri/sail_latex/sailcapStructToCapReg.tex b/cheri/sail_latex/sailcapStructToCapReg.tex deleted file mode 100644 index b5409845..00000000 --- a/cheri/sail_latex/sailcapStructToCapReg.tex +++ /dev/null @@ -1 +0,0 @@ -val capStructToCapReg : CapStruct -> CapReg diff --git a/cheri/sail_latex/sailcapStructToMemBits.tex b/cheri/sail_latex/sailcapStructToMemBits.tex deleted file mode 100644 index 36f3a22b..00000000 --- a/cheri/sail_latex/sailcapStructToMemBits.tex +++ /dev/null @@ -1 +0,0 @@ -val capStructToMemBits : CapStruct -> bits(256) diff --git a/cheri/sail_latex/sailcapStructToMemBitstwofivesix.tex b/cheri/sail_latex/sailcapStructToMemBitstwofivesix.tex deleted file mode 100644 index dacd98f8..00000000 --- a/cheri/sail_latex/sailcapStructToMemBitstwofivesix.tex +++ /dev/null @@ -1 +0,0 @@ -val capStructToMemBits256 : CapStruct -> bits(256) diff --git a/cheri/sail_latex/sailcapToString.tex b/cheri/sail_latex/sailcapToString.tex deleted file mode 100644 index 554d4320..00000000 --- a/cheri/sail_latex/sailcapToString.tex +++ /dev/null @@ -1 +0,0 @@ -val capToString : CapStruct -> string effect {escape} diff --git a/cheri/sail_latex/sailcastunitvec.tex b/cheri/sail_latex/sailcastunitvec.tex deleted file mode 100644 index e0391ded..00000000 --- a/cheri/sail_latex/sailcastunitvec.tex +++ /dev/null @@ -1 +0,0 @@ -val cast cast_unit_vec : bit -> #\hyperref[zbits]{bits}#(1) diff --git a/cheri/sail_latex/sailcheckCPtwousable.tex b/cheri/sail_latex/sailcheckCPtwousable.tex deleted file mode 100644 index bfdca829..00000000 --- a/cheri/sail_latex/sailcheckCPtwousable.tex +++ /dev/null @@ -1 +0,0 @@ -val checkCP2usable : unit -> unit effect {rreg, wreg, escape} diff --git a/cheri/sail_latex/sailcheckCPzeroAccess.tex b/cheri/sail_latex/sailcheckCPzeroAccess.tex deleted file mode 100644 index facf1a49..00000000 --- a/cheri/sail_latex/sailcheckCPzeroAccess.tex +++ /dev/null @@ -1 +0,0 @@ -val checkCP0Access : unit->unit effect{escape, rreg, wreg} diff --git a/cheri/sail_latex/sailcheckDDCPerms.tex b/cheri/sail_latex/sailcheckDDCPerms.tex deleted file mode 100644 index f8598091..00000000 --- a/cheri/sail_latex/sailcheckDDCPerms.tex +++ /dev/null @@ -1 +0,0 @@ -val checkDDCPerms : (CapStruct, MemAccessType) -> unit effect {escape, rreg, wreg} diff --git a/cheri/sail_latex/sailcompare.tex b/cheri/sail_latex/sailcompare.tex deleted file mode 100644 index 487ee094..00000000 --- a/cheri/sail_latex/sailcompare.tex +++ /dev/null @@ -1 +0,0 @@ -val compare : (Comparison, #\hyperref[zbits]{bits}#(64), #\hyperref[zbits]{bits}#(64)) -> bool diff --git a/cheri/sail_latex/sailconcatstr.tex b/cheri/sail_latex/sailconcatstr.tex deleted file mode 100644 index 07556728..00000000 --- a/cheri/sail_latex/sailconcatstr.tex +++ /dev/null @@ -1 +0,0 @@ -val concat_str = {lem: "stringAppend", coq: "String.append", _: "concat_str"} : (string, string) -> string diff --git a/cheri/sail_latex/sailcptwonextpc.tex b/cheri/sail_latex/sailcptwonextpc.tex deleted file mode 100644 index dca02a22..00000000 --- a/cheri/sail_latex/sailcptwonextpc.tex +++ /dev/null @@ -1 +0,0 @@ -val cp2_next_pc: unit -> unit effect {rreg, wreg} diff --git a/cheri/sail_latex/saildecode.tex b/cheri/sail_latex/saildecode.tex deleted file mode 100644 index 0dc95714..00000000 --- a/cheri/sail_latex/saildecode.tex +++ /dev/null @@ -1 +0,0 @@ -val decode : #\hyperref[zbits]{bits}#(32) -> #\hyperref[zoption]{option}#(ast) effect pure diff --git a/cheri/sail_latex/saildecodefailure.tex b/cheri/sail_latex/saildecodefailure.tex deleted file mode 100644 index 454da4c5..00000000 --- a/cheri/sail_latex/saildecodefailure.tex +++ /dev/null @@ -1,6 +0,0 @@ -enum decode_failure = { - no_matching_pattern, - unsupported_instruction, - illegal_instruction, - internal_error -} diff --git a/cheri/sail_latex/saildecodefailureofnum.tex b/cheri/sail_latex/saildecodefailureofnum.tex deleted file mode 100644 index 318b7b9d..00000000 --- a/cheri/sail_latex/saildecodefailureofnum.tex +++ /dev/null @@ -1 +0,0 @@ -val decode_failure_of_num : forall ('e : Int), 0 <= 'e & 'e <= 3. atom('e) -> decode_failure diff --git a/cheri/sail_latex/saildiv.tex b/cheri/sail_latex/saildiv.tex deleted file mode 100644 index 58318fe9..00000000 --- a/cheri/sail_latex/saildiv.tex +++ /dev/null @@ -1,7 +0,0 @@ -val div = { - smt: "div", - ocaml: "quotient", - lem: "integerDiv", - c: "tdiv_int", - coq: "div_with_eq" -} : forall 'n 'm. (atom('n), atom('m)) -> {'o, 'o = #\hyperref[zdiv]{div}#('n, 'm). atom('o)} diff --git a/cheri/sail_latex/saildivint.tex b/cheri/sail_latex/saildivint.tex deleted file mode 100644 index 34ae6121..00000000 --- a/cheri/sail_latex/saildivint.tex +++ /dev/null @@ -1,7 +0,0 @@ -val div_int = { - smt: "div", - ocaml: "quotient", - lem: "integerDiv", - c: "tdiv_int", - coq: "Z.quot" -} : (int, int) -> int diff --git a/cheri/sail_latex/saildumpcptwostate.tex b/cheri/sail_latex/saildumpcptwostate.tex deleted file mode 100644 index 46ee6818..00000000 --- a/cheri/sail_latex/saildumpcptwostate.tex +++ /dev/null @@ -1 +0,0 @@ -val dump_cp2_state : unit -> unit effect {rreg, escape} diff --git a/cheri/sail_latex/saileqanything.tex b/cheri/sail_latex/saileqanything.tex deleted file mode 100644 index 9b5d3c92..00000000 --- a/cheri/sail_latex/saileqanything.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_anything = {ocaml: "(#\hyperref[zfun]{fun}# (x, y) -> x = y)", lem: "eq", coq: "generic_eq", _:"eq_anything"} : forall ('a : Type). ('a, 'a) -> bool diff --git a/cheri/sail_latex/saileqatom.tex b/cheri/sail_latex/saileqatom.tex deleted file mode 100644 index 0325ab15..00000000 --- a/cheri/sail_latex/saileqatom.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_atom = {ocaml: "eq_int", lem: "eq", c: "eq_int", coq: "Z.eqb"} : forall 'n 'm. (atom('n), atom('m)) -> bool diff --git a/cheri/sail_latex/saileqbit.tex b/cheri/sail_latex/saileqbit.tex deleted file mode 100644 index 205d3436..00000000 --- a/cheri/sail_latex/saileqbit.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_bit = { lem : "eq", _ : "eq_bit" } : (bit, bit) -> bool diff --git a/cheri/sail_latex/saileqbits.tex b/cheri/sail_latex/saileqbits.tex deleted file mode 100644 index e78ed19a..00000000 --- a/cheri/sail_latex/saileqbits.tex +++ /dev/null @@ -1,6 +0,0 @@ -val eq_bits = { - ocaml: "eq_list", - lem: "eq_vec", - c: "eq_bits", - coq: "eq_vec" -} : forall 'n. (vector('n, dec, bit), vector('n, dec, bit)) -> bool diff --git a/cheri/sail_latex/saileqbittwo.tex b/cheri/sail_latex/saileqbittwo.tex deleted file mode 100644 index 59353940..00000000 --- a/cheri/sail_latex/saileqbittwo.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_bit2 = "eq_bit" : (bit, bit) -> bool diff --git a/cheri/sail_latex/saileqbool.tex b/cheri/sail_latex/saileqbool.tex deleted file mode 100644 index 4d2c346b..00000000 --- a/cheri/sail_latex/saileqbool.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_bool = {ocaml: "eq_bool", lem: "eq", c: "eq_bool", coq: "Bool.eqb"} : (bool, bool) -> bool diff --git a/cheri/sail_latex/saileqint.tex b/cheri/sail_latex/saileqint.tex deleted file mode 100644 index 4c0462c1..00000000 --- a/cheri/sail_latex/saileqint.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_int = {ocaml: "eq_int", lem: "eq", c: "eq_int", coq: "Z.eqb"} : (int, int) -> bool diff --git a/cheri/sail_latex/saileqrange.tex b/cheri/sail_latex/saileqrange.tex deleted file mode 100644 index 7f1cd5f2..00000000 --- a/cheri/sail_latex/saileqrange.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_range = {ocaml: "eq_int", lem: "eq", c: "eq_int", coq: "eq_range"} : forall 'n 'm 'o 'p. (range('n, 'm), range('o, 'p)) -> bool diff --git a/cheri/sail_latex/sailexecute.tex b/cheri/sail_latex/sailexecute.tex deleted file mode 100644 index 69282932..00000000 --- a/cheri/sail_latex/sailexecute.tex +++ /dev/null @@ -1 +0,0 @@ -val execute : ast -> unit effect {barr, eamem, escape, rmem, rmemt, rreg, undef, wmv, wmvt, wreg} diff --git a/cheri/sail_latex/sailexecutebranch.tex b/cheri/sail_latex/sailexecutebranch.tex deleted file mode 100644 index a4582e82..00000000 --- a/cheri/sail_latex/sailexecutebranch.tex +++ /dev/null @@ -1 +0,0 @@ -val execute_branch : #\hyperref[zbits]{bits}#(64) -> unit effect {wreg} diff --git a/cheri/sail_latex/sailexecutebranchpcc.tex b/cheri/sail_latex/sailexecutebranchpcc.tex deleted file mode 100644 index f94d4e7d..00000000 --- a/cheri/sail_latex/sailexecutebranchpcc.tex +++ /dev/null @@ -1 +0,0 @@ -val execute_branch_pcc : CapStruct -> unit effect {wreg} diff --git a/cheri/sail_latex/sailextendLoad.tex b/cheri/sail_latex/sailextendLoad.tex deleted file mode 100644 index d403c83c..00000000 --- a/cheri/sail_latex/sailextendLoad.tex +++ /dev/null @@ -1 +0,0 @@ -val extendLoad : forall 'sz, 'sz <= 64 . (#\hyperref[zbits]{bits}#('sz), bool) -> #\hyperref[zbits]{bits}#(64) effect pure diff --git a/cheri/sail_latex/sailfnAccessLevelofnum.tex b/cheri/sail_latex/sailfnAccessLevelofnum.tex deleted file mode 100644 index a8446000..00000000 --- a/cheri/sail_latex/sailfnAccessLevelofnum.tex +++ /dev/null @@ -1,5 +0,0 @@ -function AccessLevel_of_num arg# = match arg# { - 0 => User, - 1 => Supervisor, - _ => Kernel -} diff --git a/cheri/sail_latex/sailfnCPtrCmpOpofnum.tex b/cheri/sail_latex/sailfnCPtrCmpOpofnum.tex deleted file mode 100644 index 6ab563f3..00000000 --- a/cheri/sail_latex/sailfnCPtrCmpOpofnum.tex +++ /dev/null @@ -1,10 +0,0 @@ -function CPtrCmpOp_of_num arg# = match arg# { - 0 => CEQ, - 1 => CNE, - 2 => CLT, - 3 => CLE, - 4 => CLTU, - 5 => CLEU, - 6 => CEXEQ, - _ => CNEXEQ -} diff --git a/cheri/sail_latex/sailfnCapExCode.tex b/cheri/sail_latex/sailfnCapExCode.tex deleted file mode 100644 index 324612a0..00000000 --- a/cheri/sail_latex/sailfnCapExCode.tex +++ /dev/null @@ -1,26 +0,0 @@ -function #\hyperref[zCapExCode]{CapExCode}#(ex) : CapEx -> #\hyperref[zbits]{bits}#(8)= - match ex { - CapEx_None => 0x00, - CapEx_LengthViolation => 0x01, - CapEx_TagViolation => 0x02, - CapEx_SealViolation => 0x03, - CapEx_TypeViolation => 0x04, - CapEx_CallTrap => 0x05, - CapEx_ReturnTrap => 0x06, - CapEx_TSSUnderFlow => 0x07, - CapEx_UserDefViolation => 0x08, - CapEx_TLBNoStoreCap => 0x09, - CapEx_InexactBounds => 0x0a, - CapEx_GlobalViolation => 0x10, - CapEx_PermitExecuteViolation => 0x11, - CapEx_PermitLoadViolation => 0x12, - CapEx_PermitStoreViolation => 0x13, - CapEx_PermitLoadCapViolation => 0x14, - CapEx_PermitStoreCapViolation => 0x15, - CapEx_PermitStoreLocalCapViolation => 0x16, - CapEx_PermitSealViolation => 0x17, - CapEx_AccessSystemRegsViolation => 0x18, - CapEx_PermitCCallViolation => 0x19, - CapEx_AccessCCallIDCViolation => 0x1a, - CapEx_PermitUnsealViolation => 0x1b - } diff --git a/cheri/sail_latex/sailfnCapExofnum.tex b/cheri/sail_latex/sailfnCapExofnum.tex deleted file mode 100644 index 1bb6f2d1..00000000 --- a/cheri/sail_latex/sailfnCapExofnum.tex +++ /dev/null @@ -1,25 +0,0 @@ -function CapEx_of_num arg# = match arg# { - 0 => CapEx_None, - 1 => CapEx_LengthViolation, - 2 => CapEx_TagViolation, - 3 => CapEx_SealViolation, - 4 => CapEx_TypeViolation, - 5 => CapEx_CallTrap, - 6 => CapEx_ReturnTrap, - 7 => CapEx_TSSUnderFlow, - 8 => CapEx_UserDefViolation, - 9 => CapEx_TLBNoStoreCap, - 10 => CapEx_InexactBounds, - 11 => CapEx_GlobalViolation, - 12 => CapEx_PermitExecuteViolation, - 13 => CapEx_PermitLoadViolation, - 14 => CapEx_PermitStoreViolation, - 15 => CapEx_PermitLoadCapViolation, - 16 => CapEx_PermitStoreCapViolation, - 17 => CapEx_PermitStoreLocalCapViolation, - 18 => CapEx_PermitSealViolation, - 19 => CapEx_AccessSystemRegsViolation, - 20 => CapEx_PermitCCallViolation, - 21 => CapEx_AccessCCallIDCViolation, - _ => CapEx_PermitUnsealViolation -} diff --git a/cheri/sail_latex/sailfnClearRegSetofnum.tex b/cheri/sail_latex/sailfnClearRegSetofnum.tex deleted file mode 100644 index edfe64e3..00000000 --- a/cheri/sail_latex/sailfnClearRegSetofnum.tex +++ /dev/null @@ -1,6 +0,0 @@ -function ClearRegSet_of_num arg# = match arg# { - 0 => GPLo, - 1 => GPHi, - 2 => CLo, - _ => CHi -} diff --git a/cheri/sail_latex/sailfnComparisonofnum.tex b/cheri/sail_latex/sailfnComparisonofnum.tex deleted file mode 100644 index 8ff4bfc1..00000000 --- a/cheri/sail_latex/sailfnComparisonofnum.tex +++ /dev/null @@ -1,10 +0,0 @@ -function Comparison_of_num arg# = match arg# { - 0 => EQ, - 1 => NE, - 2 => GE, - 3 => GEU, - 4 => GT, - 5 => LE, - 6 => LT, - _ => LTU -} diff --git a/cheri/sail_latex/sailfnERETHook.tex b/cheri/sail_latex/sailfnERETHook.tex deleted file mode 100644 index bac1f738..00000000 --- a/cheri/sail_latex/sailfnERETHook.tex +++ /dev/null @@ -1,6 +0,0 @@ -function #\hyperref[zERETHook]{ERETHook}#() : unit -> unit = - { - nextPCC = EPCC; - delayedPCC = EPCC; /* always write delayedPCC together with nextPCC so - that non-capability branches don't override PCC */ - } diff --git a/cheri/sail_latex/sailfnExceptionCode.tex b/cheri/sail_latex/sailfnExceptionCode.tex deleted file mode 100644 index b34ab2ab..00000000 --- a/cheri/sail_latex/sailfnExceptionCode.tex +++ /dev/null @@ -1,23 +0,0 @@ -function #\hyperref[zExceptionCode]{ExceptionCode}# (ex) : Exception -> #\hyperref[zbits]{bits}#(5)= - let x : #\hyperref[zbits]{bits}#(8) = match ex - { - Interrupt => 0x00, /* Interrupt */ - TLBMod => 0x01, /* TLB modification exception */ - TLBL => 0x02, /* TLB #\hyperref[zexception]{exception}# (load or fetch) */ - TLBS => 0x03, /* TLB #\hyperref[zexception]{exception}# (store) */ - AdEL => 0x04, /* Address #\hyperref[zerror]{error}# (load or fetch) */ - AdES => 0x05, /* Address #\hyperref[zerror]{error}# (store) */ - Sys => 0x08, /* Syscall */ - Bp => 0x09, /* Breakpoint */ - ResI => 0x0a, /* Reserved instruction */ - CpU => 0x0b, /* Coprocessor Unusable */ - Ov => 0x0c, /* Arithmetic overflow */ - Tr => 0x0d, /* Trap */ - C2E => 0x12, /* C2E coprocessor 2 exception */ - C2Trap => 0x12, /* C2Trap maps to same exception code, different vector */ - XTLBRefillL => 0x02, - XTLBRefillS => 0x03, - XTLBInvL => 0x02, - XTLBInvS => 0x03, - MCheck => 0x18 - } in x[4..0] diff --git a/cheri/sail_latex/sailfnExceptionofnum.tex b/cheri/sail_latex/sailfnExceptionofnum.tex deleted file mode 100644 index 0ffd2ef1..00000000 --- a/cheri/sail_latex/sailfnExceptionofnum.tex +++ /dev/null @@ -1,21 +0,0 @@ -function Exception_of_num arg# = match arg# { - 0 => Interrupt, - 1 => TLBMod, - 2 => TLBL, - 3 => TLBS, - 4 => AdEL, - 5 => AdES, - 6 => Sys, - 7 => Bp, - 8 => ResI, - 9 => CpU, - 10 => Ov, - 11 => Tr, - 12 => C2E, - 13 => C2Trap, - 14 => XTLBRefillL, - 15 => XTLBRefillS, - 16 => XTLBInvL, - 17 => XTLBInvS, - _ => MCheck -} diff --git a/cheri/sail_latex/sailfnMAX.tex b/cheri/sail_latex/sailfnMAX.tex deleted file mode 100644 index e9a6a650..00000000 --- a/cheri/sail_latex/sailfnMAX.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zMAX]{MAX}#(n) = #\hyperref[zpowtwo]{pow2}#(n) - 1 diff --git a/cheri/sail_latex/sailfnMEMea.tex b/cheri/sail_latex/sailfnMEMea.tex deleted file mode 100644 index 1bd08739..00000000 --- a/cheri/sail_latex/sailfnMEMea.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zMEMea]{MEMea}# (addr, size) = #\hyperref[zskipzyeamem]{skip\_eamem}#() diff --git a/cheri/sail_latex/sailfnMEMeaconditional.tex b/cheri/sail_latex/sailfnMEMeaconditional.tex deleted file mode 100644 index 65930634..00000000 --- a/cheri/sail_latex/sailfnMEMeaconditional.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zMEMeazyconditional]{MEMea\_conditional}# (addr, size) = #\hyperref[zskipzyeamem]{skip\_eamem}#() diff --git a/cheri/sail_latex/sailfnMEMr.tex b/cheri/sail_latex/sailfnMEMr.tex deleted file mode 100644 index bae85b70..00000000 --- a/cheri/sail_latex/sailfnMEMr.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zMEMr]{MEMr}# (addr, size) = #\hyperref[zzyzyMIPSzyread]{\_\_MIPS\_read}#(addr, size) diff --git a/cheri/sail_latex/sailfnMEMrreserve.tex b/cheri/sail_latex/sailfnMEMrreserve.tex deleted file mode 100644 index 9339f02b..00000000 --- a/cheri/sail_latex/sailfnMEMrreserve.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zMEMrzyreserve]{MEMr\_reserve}# (addr, size) = #\hyperref[zzyzyMIPSzyread]{\_\_MIPS\_read}#(addr, size) diff --git a/cheri/sail_latex/sailfnMEMrreservewrapper.tex b/cheri/sail_latex/sailfnMEMrreservewrapper.tex deleted file mode 100644 index fc8ea6c7..00000000 --- a/cheri/sail_latex/sailfnMEMrreservewrapper.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zMEMrzyreservezywrapper]{MEMr\_reserve\_wrapper}# (addr , size) = - #\hyperref[zreversezyendianness]{reverse\_endianness}#(#\hyperref[zMEMrzyreserve]{MEMr\_reserve}#(addr, size)) diff --git a/cheri/sail_latex/sailfnMEMrtagged.tex b/cheri/sail_latex/sailfnMEMrtagged.tex deleted file mode 100644 index 8c338860..00000000 --- a/cheri/sail_latex/sailfnMEMrtagged.tex +++ /dev/null @@ -1,8 +0,0 @@ -function #\hyperref[zMEMrzytagged]{MEMr\_tagged}# (addr) = -{ - /* assumes addr is cap. aligned */ - assert(#\hyperref[zunsigned]{unsigned}#(addr) % cap_size == 0); - let tag = #\hyperref[zMEMrzytag]{MEMr\_tag}#(addr) in - let data = #\hyperref[zMEMr]{MEMr}#(addr, cap_size) in - (tag, #\hyperref[zreversezyendianness]{reverse\_endianness}#(data)) -} diff --git a/cheri/sail_latex/sailfnMEMrtaggedreserve.tex b/cheri/sail_latex/sailfnMEMrtaggedreserve.tex deleted file mode 100644 index 2605592a..00000000 --- a/cheri/sail_latex/sailfnMEMrtaggedreserve.tex +++ /dev/null @@ -1,8 +0,0 @@ -function #\hyperref[zMEMrzytaggedzyreserve]{MEMr\_tagged\_reserve}# (addr) = -{ - /* assumes addr is cap. aligned */ - assert(#\hyperref[zunsigned]{unsigned}#(addr) % cap_size == 0); - let tag = #\hyperref[zMEMrzytag]{MEMr\_tag}#(addr) in - let data = #\hyperref[zMEMrzyreserve]{MEMr\_reserve}#(addr, cap_size) in - (tag, #\hyperref[zreversezyendianness]{reverse\_endianness}#(data)) -} diff --git a/cheri/sail_latex/sailfnMEMrwrapper.tex b/cheri/sail_latex/sailfnMEMrwrapper.tex deleted file mode 100644 index 68576849..00000000 --- a/cheri/sail_latex/sailfnMEMrwrapper.tex +++ /dev/null @@ -1,13 +0,0 @@ -function #\hyperref[zMEMrzywrapper]{MEMr\_wrapper}# (addr, size) = - if (addr == 0x000000007f000000) then - { - let rvalid = UART_RVALID in - { - UART_RVALID = [bitzero]; - #\hyperref[zmask]{mask}#(0x00000000 @ UART_RDATA @ rvalid @ 0b0000000 @ 0x0000) - } - } - else if (addr == 0x000000007f000004) then - #\hyperref[zmask]{mask}#(0x000000000004ffff) /* Always plenty of write space available and jtag activity */ - else - #\hyperref[zreversezyendianness]{reverse\_endianness}#(#\hyperref[zMEMr]{MEMr}#(addr, size)) /* MEMr assumes little endian */ diff --git a/cheri/sail_latex/sailfnMEMsync.tex b/cheri/sail_latex/sailfnMEMsync.tex deleted file mode 100644 index 5a0bc91c..00000000 --- a/cheri/sail_latex/sailfnMEMsync.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zMEMzysync]{MEM\_sync}# () = #\hyperref[zskipzybarr]{skip\_barr}#() diff --git a/cheri/sail_latex/sailfnMEMval.tex b/cheri/sail_latex/sailfnMEMval.tex deleted file mode 100644 index 73795344..00000000 --- a/cheri/sail_latex/sailfnMEMval.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zMEMval]{MEMval}# (addr, size, data) = #\hyperref[zzyzyMIPSzywrite]{\_\_MIPS\_write}#(addr, size, data) diff --git a/cheri/sail_latex/sailfnMEMvalconditional.tex b/cheri/sail_latex/sailfnMEMvalconditional.tex deleted file mode 100644 index 906bbd68..00000000 --- a/cheri/sail_latex/sailfnMEMvalconditional.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zMEMvalzyconditional]{MEMval\_conditional}# (addr, size, data) = { #\hyperref[zzyzyMIPSzywrite]{\_\_MIPS\_write}#(addr, size, data); true } diff --git a/cheri/sail_latex/sailfnMEMwconditionalwrapper.tex b/cheri/sail_latex/sailfnMEMwconditionalwrapper.tex deleted file mode 100644 index 04ce8389..00000000 --- a/cheri/sail_latex/sailfnMEMwconditionalwrapper.tex +++ /dev/null @@ -1,11 +0,0 @@ -function #\hyperref[zMEMwzyconditionalzywrapper]{MEMw\_conditional\_wrapper}#(addr, size, data) = - { - /* require that writes don't cross capability #\hyperref[zboundaries]{boundaries}# (should be true due to mips alignment requirements) */ - assert((addr & cap_addr_mask) == ((addr + #\hyperref[ztozybits]{to\_bits}#(64, size - 1)) & cap_addr_mask)); - #\hyperref[zMEMeazyconditional]{MEMea\_conditional}#(addr, size); - success = #\hyperref[zMEMvalzyconditional]{MEMval\_conditional}#(addr,size,#\hyperref[zreversezyendianness]{reverse\_endianness}#(data)); - if success then - /* On cheri non-capability writes must clear the corresponding tag */ - #\hyperref[zMEMwzytag]{MEMw\_tag}#(addr & cap_addr_mask, false); - success; - } diff --git a/cheri/sail_latex/sailfnMEMwtagged.tex b/cheri/sail_latex/sailfnMEMwtagged.tex deleted file mode 100644 index 3b7aab53..00000000 --- a/cheri/sail_latex/sailfnMEMwtagged.tex +++ /dev/null @@ -1,8 +0,0 @@ -function #\hyperref[zMEMwzytagged]{MEMw\_tagged}#(addr, tag, data) = -{ - /* assumes addr is cap. aligned */ - assert(#\hyperref[zunsigned]{unsigned}#(addr) % cap_size == 0); - #\hyperref[zMEMea]{MEMea}#(addr, cap_size); - #\hyperref[zMEMval]{MEMval}#(addr, cap_size, #\hyperref[zreversezyendianness]{reverse\_endianness}#(data)); - #\hyperref[zMEMwzytag]{MEMw\_tag}#(addr, tag); -} diff --git a/cheri/sail_latex/sailfnMEMwtaggedconditional.tex b/cheri/sail_latex/sailfnMEMwtaggedconditional.tex deleted file mode 100644 index 75d9efb3..00000000 --- a/cheri/sail_latex/sailfnMEMwtaggedconditional.tex +++ /dev/null @@ -1,10 +0,0 @@ -function #\hyperref[zMEMwzytaggedzyconditional]{MEMw\_tagged\_conditional}#(addr, tag, data) = -{ - /* assumes addr is cap. aligned */ - assert(#\hyperref[zunsigned]{unsigned}#(addr) % cap_size == 0); - #\hyperref[zMEMeazyconditional]{MEMea\_conditional}#(addr, cap_size); - success = #\hyperref[zMEMvalzyconditional]{MEMval\_conditional}#(addr, cap_size, #\hyperref[zreversezyendianness]{reverse\_endianness}#(data)); - if success then - #\hyperref[zMEMwzytag]{MEMw\_tag}#(addr, tag); - success; -} diff --git a/cheri/sail_latex/sailfnMEMwwrapper.tex b/cheri/sail_latex/sailfnMEMwwrapper.tex deleted file mode 100644 index 6f83825c..00000000 --- a/cheri/sail_latex/sailfnMEMwwrapper.tex +++ /dev/null @@ -1,16 +0,0 @@ -function #\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(addr, size, data) = - let ledata = #\hyperref[zreversezyendianness]{reverse\_endianness}#(data) in - if (addr == 0x000000007f000000) then - { - UART_WDATA = ledata[7..0]; - UART_WRITTEN = 0b1; - } - else - { - /* require that writes don't cross capability #\hyperref[zboundaries]{boundaries}# (should be true due to mips alignment requirements) */ - assert((addr & cap_addr_mask) == ((addr + #\hyperref[ztozybits]{to\_bits}#(64, size - 1)) & cap_addr_mask)); - #\hyperref[zMEMea]{MEMea}#(addr, size); - #\hyperref[zMEMval]{MEMval}#(addr, size, ledata); - /* On cheri non-capability writes must clear the corresponding tag*/ - #\hyperref[zMEMwzytag]{MEMw\_tag}#(addr & cap_addr_mask, false); - } diff --git a/cheri/sail_latex/sailfnMIPSread.tex b/cheri/sail_latex/sailfnMIPSread.tex deleted file mode 100644 index ee937856..00000000 --- a/cheri/sail_latex/sailfnMIPSread.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zzyzyMIPSzyread]{\_\_MIPS\_read}# (addr, width) = #\hyperref[zzyzyReadRAM]{\_\_ReadRAM}#(64, width, 0x0000_0000_0000_0000, addr) diff --git a/cheri/sail_latex/sailfnMIPSwrite.tex b/cheri/sail_latex/sailfnMIPSwrite.tex deleted file mode 100644 index 5e81f335..00000000 --- a/cheri/sail_latex/sailfnMIPSwrite.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zzyzyMIPSzywrite]{\_\_MIPS\_write}# (addr, width, data) = let _ = #\hyperref[zzyzyWriteRAM]{\_\_WriteRAM}#(64, width, 0x0000_0000_0000_0000, addr, data) in () diff --git a/cheri/sail_latex/sailfnMemAccessTypeofnum.tex b/cheri/sail_latex/sailfnMemAccessTypeofnum.tex deleted file mode 100644 index a16af4e9..00000000 --- a/cheri/sail_latex/sailfnMemAccessTypeofnum.tex +++ /dev/null @@ -1,5 +0,0 @@ -function MemAccessType_of_num arg# = match arg# { - 0 => Instruction, - 1 => LoadData, - _ => StoreData -} diff --git a/cheri/sail_latex/sailfnMkCapCauseReg.tex b/cheri/sail_latex/sailfnMkCapCauseReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnMkCapCauseReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnMkCauseReg.tex b/cheri/sail_latex/sailfnMkCauseReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnMkCauseReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnMkContextReg.tex b/cheri/sail_latex/sailfnMkContextReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnMkContextReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnMkStatusReg.tex b/cheri/sail_latex/sailfnMkStatusReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnMkStatusReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnMkTLBEntry.tex b/cheri/sail_latex/sailfnMkTLBEntry.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnMkTLBEntry.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnMkTLBEntryHiReg.tex b/cheri/sail_latex/sailfnMkTLBEntryHiReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnMkTLBEntryHiReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnMkTLBEntryLoReg.tex b/cheri/sail_latex/sailfnMkTLBEntryLoReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnMkTLBEntryLoReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnMkXContextReg.tex b/cheri/sail_latex/sailfnMkXContextReg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnMkXContextReg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnNotWordVal.tex b/cheri/sail_latex/sailfnNotWordVal.tex deleted file mode 100644 index b6222084..00000000 --- a/cheri/sail_latex/sailfnNotWordVal.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zNotWordVal]{NotWordVal}# (word) = - (word[31] ^^ 32) != word[63..32] diff --git a/cheri/sail_latex/sailfnSignalException.tex b/cheri/sail_latex/sailfnSignalException.tex deleted file mode 100644 index a91f582e..00000000 --- a/cheri/sail_latex/sailfnSignalException.tex +++ /dev/null @@ -1,18 +0,0 @@ -function #\hyperref[zSignalException]{SignalException}# (ex) = - { - if (#\hyperref[znot]{not}# (CP0Status.#\hyperref[zEXL]{EXL}#())) then { - let pc = PC in - let pcc = #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(PCC) in - let (success, epcc) = #\hyperref[zsetCapOffset]{setCapOffset}#(pcc, pc) in - if (success) then - EPCC = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(epcc) - else - EPCC = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(#\hyperref[zintzytozycap]{int\_to\_cap}#(#\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapBase]{getCapBase}#(pcc)) + #\hyperref[zunsigned]{unsigned}#(pc))); - }; - - nextPCC = KCC; - delayedPCC = KCC; /* always write delayedPCC together with nextPCC so - that non-capability branches don't override PCC */ - let base = #\hyperref[zgetCapBase]{getCapBase}#(#\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(KCC)) in - #\hyperref[zSignalExceptionMIPS]{SignalExceptionMIPS}#(ex, #\hyperref[ztozybits]{to\_bits}#(64, base)); - } diff --git a/cheri/sail_latex/sailfnSignalExceptionBadAddr.tex b/cheri/sail_latex/sailfnSignalExceptionBadAddr.tex deleted file mode 100644 index d35ed9e8..00000000 --- a/cheri/sail_latex/sailfnSignalExceptionBadAddr.tex +++ /dev/null @@ -1,5 +0,0 @@ -function #\hyperref[zSignalExceptionBadAddr]{SignalExceptionBadAddr}#(ex, badAddr) = - { - CP0BadVAddr = badAddr; - #\hyperref[zSignalException]{SignalException}#(ex); - } diff --git a/cheri/sail_latex/sailfnSignalExceptionMIPS.tex b/cheri/sail_latex/sailfnSignalExceptionMIPS.tex deleted file mode 100644 index 8d3f762a..00000000 --- a/cheri/sail_latex/sailfnSignalExceptionMIPS.tex +++ /dev/null @@ -1,39 +0,0 @@ -function #\hyperref[zSignalExceptionMIPS]{SignalExceptionMIPS}# (ex, kccBase) = - { - /* Only update EPC and BD if not already in EXL mode */ - if (~ (CP0Status.#\hyperref[zEXL]{EXL}#())) then - { - if (inBranchDelay[0]) then - { - CP0EPC = PC - 4; - CP0Cause->#\hyperref[zBD]{BD}#() = 0b1; - } - else - { - CP0EPC = PC; - CP0Cause->#\hyperref[zBD]{BD}#() = 0b0; - } - }; - - /* choose an exception vector to branch to. Some are not supported - e.g. Reset */ - vectorOffset = - if (CP0Status.#\hyperref[zEXL]{EXL}#()) then - 0x180 /* Always use common vector if in exception mode already */ - else if ((ex == XTLBRefillL) | (ex == XTLBRefillS)) then - 0x080 - else if (ex == C2Trap) then - 0x280 /* Special vector for CHERI traps */ - else - 0x180; /* Common vector */ - vectorBase : #\hyperref[zbits]{bits}#(64) = if CP0Status.#\hyperref[zBEV]{BEV}#() then - 0xFFFFFFFFBFC00200 - else - 0xFFFFFFFF80000000; - /* On CHERI we have to subtract KCC.base so that we end up at the - right absolute vector address after indirecting via new PCC */ - nextPC = vectorBase + #\hyperref[zsignzyextend]{sign\_extend}#(vectorOffset) - kccBase; - CP0Cause->#\hyperref[zExcCode]{ExcCode}#() = #\hyperref[zExceptionCode]{ExceptionCode}#(ex); - CP0Status->#\hyperref[zEXL]{EXL}#() = 0b1; - throw (#\hyperref[zISAException]{ISAException}#()); - } diff --git a/cheri/sail_latex/sailfnSignalExceptionTLB.tex b/cheri/sail_latex/sailfnSignalExceptionTLB.tex deleted file mode 100644 index a523d7b6..00000000 --- a/cheri/sail_latex/sailfnSignalExceptionTLB.tex +++ /dev/null @@ -1,9 +0,0 @@ -function #\hyperref[zSignalExceptionTLB]{SignalExceptionTLB}#(ex, badAddr) = { - CP0BadVAddr = badAddr; - TLBContext->#\hyperref[zBadVPNtwo]{BadVPN2}#() = (badAddr[31..13]); - TLBXContext->#\hyperref[zXBadVPNtwo]{XBadVPN2}#()= (badAddr[39..13]); - TLBXContext->#\hyperref[zXR]{XR}#() = (badAddr[63..62]); - TLBEntryHi->#\hyperref[zR]{R}#() = (badAddr[63..62]); - TLBEntryHi->#\hyperref[zVPNtwo]{VPN2}#() = (badAddr[39..13]); - #\hyperref[zSignalException]{SignalException}#(ex); -} diff --git a/cheri/sail_latex/sailfnTLBTranslate.tex b/cheri/sail_latex/sailfnTLBTranslate.tex deleted file mode 100644 index e40518c3..00000000 --- a/cheri/sail_latex/sailfnTLBTranslate.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zTLBTranslate]{TLBTranslate}# (vAddr, accessType) = - let (addr, c) = #\hyperref[zTLBTranslateC]{TLBTranslateC}#(vAddr, accessType) in addr diff --git a/cheri/sail_latex/sailfnTLBTranslateC.tex b/cheri/sail_latex/sailfnTLBTranslateC.tex deleted file mode 100644 index d71c0841..00000000 --- a/cheri/sail_latex/sailfnTLBTranslateC.tex +++ /dev/null @@ -1,31 +0,0 @@ -function #\hyperref[zTLBTranslateC]{TLBTranslateC}# (vAddr, accessType) = - { - let currentAccessLevel = #\hyperref[zgetAccessLevel]{getAccessLevel}#() in - let compat32 = (vAddr[61..31] == 0b1111111111111111111111111111111) in - let (requiredLevel, addr) : (AccessLevel, #\hyperref[zoption]{option}#(#\hyperref[zbits]{bits}#(64))) = match (vAddr[63..62]) { - 0b11 => match (compat32, vAddr[30..29]) { /* xkseg */ - (true, 0b11) => (Kernel, #\hyperref[zNone]{None}#() : #\hyperref[zoption]{option}#(#\hyperref[zbits]{bits}#(64))), /* kseg3 mapped 32-bit compat */ - (true, 0b10) => (Supervisor, #\hyperref[zNone]{None}#() : #\hyperref[zoption]{option}#(#\hyperref[zbits]{bits}#(64))), /* sseg mapped 32-bit compat */ - (true, 0b01) => (Kernel, #\hyperref[zSome]{Some}#(0x00000000 @ 0b000 @ vAddr[28..0])), /* kseg1 unmapped uncached 32-bit compat */ - (true, 0b00) => (Kernel, #\hyperref[zSome]{Some}#(0x00000000 @ 0b000 @ vAddr[28..0])), /* kseg0 unmapped cached 32-bit compat */ - (_, _) => (Kernel, #\hyperref[zNone]{None}#() : #\hyperref[zoption]{option}#(#\hyperref[zbits]{bits}#(64))) /* xkseg mapped */ - }, - 0b10 => (Kernel, #\hyperref[zSome]{Some}#(0b00000 @ vAddr[58..0])), /* xkphys bits 61-59 are cache #\hyperref[zmode]{mode}# (ignored) */ - 0b01 => (Supervisor, #\hyperref[zNone]{None}#() : #\hyperref[zoption]{option}#(#\hyperref[zbits]{bits}#(64))), /* xsseg - supervisor mapped */ - 0b00 => (User, #\hyperref[zNone]{None}#() : #\hyperref[zoption]{option}#(#\hyperref[zbits]{bits}#(64))) /* xuseg - user mapped */ - } in - if #\hyperref[znot]{not}#(#\hyperref[zgrantsAccess]{grantsAccess}#(currentAccessLevel, requiredLevel)) then - #\hyperref[zSignalExceptionBadAddr]{SignalExceptionBadAddr}#(if (accessType == StoreData) then AdES else AdEL, vAddr) - else - let (pa, c) : (#\hyperref[zbits]{bits}#(64), bool) = match addr { - #\hyperref[zSome]{Some}#(a) => (a, false), - #\hyperref[zNone]{None}#() => if ((~(compat32)) & (#\hyperref[zunsigned]{unsigned}#(vAddr[61..0]) > MAX_VA)) then - #\hyperref[zSignalExceptionBadAddr]{SignalExceptionBadAddr}#(if (accessType == StoreData) then AdES else AdEL, vAddr) - else - #\hyperref[zTLBTranslatetwo]{TLBTranslate2}#(vAddr, accessType) - } - in if (#\hyperref[zunsigned]{unsigned}#(pa) > MAX_PA) then - #\hyperref[zSignalExceptionBadAddr]{SignalExceptionBadAddr}#(if (accessType == StoreData) then AdES else AdEL, vAddr) - else - (pa, c) - } diff --git a/cheri/sail_latex/sailfnTLBTranslatetwo.tex b/cheri/sail_latex/sailfnTLBTranslatetwo.tex deleted file mode 100644 index 126159f7..00000000 --- a/cheri/sail_latex/sailfnTLBTranslatetwo.tex +++ /dev/null @@ -1,36 +0,0 @@ -function #\hyperref[zTLBTranslatetwo]{TLBTranslate2}# (vAddr, accessType) = { - let idx = #\hyperref[ztlbSearch]{tlbSearch}#(vAddr) in - match idx { - #\hyperref[zSome]{Some}#(idx) => - let i as atom(_) = #\hyperref[zunsigned]{unsigned}#(idx) in - let entry = #\hyperref[zregzyderef]{reg\_deref}#(TLBEntries[i]) in - let entryMask = entry.#\hyperref[zpagemask]{pagemask}#() in - let 'evenOddBit : range(12,28) = match (entryMask) { - 0x0000 => 12, - 0x0003 => 14, - 0x000f => 16, - 0x003f => 18, - 0x00ff => 20, - 0x03ff => 22, - 0x0fff => 24, - 0x3fff => 26, - 0xffff => 28, - _ => undefined - } in - let isOdd = (vAddr[evenOddBit]) in - let (caps : #\hyperref[zbits]{bits}#(1), capl : #\hyperref[zbits]{bits}#(1), pfn : #\hyperref[zbits]{bits}#(24), d : #\hyperref[zbits]{bits}#(1), v : #\hyperref[zbits]{bits}#(1)) = - if (isOdd) then - (entry.#\hyperref[zcapsone]{caps1}#(), entry.#\hyperref[zcaplone]{capl1}#(), entry.#\hyperref[zpfnone]{pfn1}#(), entry.#\hyperref[zdone]{d1}#(), entry.#\hyperref[zvone]{v1}#()) - else - (entry.#\hyperref[zcapszero]{caps0}#(), entry.#\hyperref[zcaplzero]{capl0}#(), entry.#\hyperref[zpfnzero]{pfn0}#(), entry.#\hyperref[zdzero]{d0}#(), entry.#\hyperref[zvzero]{v0}#()) in - if (~(v)) then - #\hyperref[zSignalExceptionTLB]{SignalExceptionTLB}#(if (accessType == StoreData) then XTLBInvS else XTLBInvL, vAddr) - else if ((accessType == StoreData) & ~(d)) then - #\hyperref[zSignalExceptionTLB]{SignalExceptionTLB}#(TLBMod, vAddr) - else - let res : #\hyperref[zbits]{bits}#(64) = #\hyperref[zzzerozyextend]{zero\_extend}#(pfn[23..(evenOddBit - 12)] @ vAddr[(evenOddBit - 1) .. 0]) in - (res, #\hyperref[zbitszytozybool]{bits\_to\_bool}#(if (accessType == StoreData) then caps else capl)), - #\hyperref[zNone]{None}#() => #\hyperref[zSignalExceptionTLB]{SignalExceptionTLB}#( - if (accessType == StoreData) then XTLBRefillS else XTLBRefillL, vAddr) - } -} diff --git a/cheri/sail_latex/sailfnTLBWriteEntry.tex b/cheri/sail_latex/sailfnTLBWriteEntry.tex deleted file mode 100644 index ba2762ea..00000000 --- a/cheri/sail_latex/sailfnTLBWriteEntry.tex +++ /dev/null @@ -1,36 +0,0 @@ -function #\hyperref[zTLBWriteEntry]{TLBWriteEntry}#(idx) = { - pagemask = TLBPageMask; - match pagemask { - 0x0000 => (), - 0x0003 => (), - 0x000f => (), - 0x003f => (), - 0x00ff => (), - 0x03ff => (), - 0x0fff => (), - 0x3fff => (), - 0xffff => (), - _ => (#\hyperref[zSignalException]{SignalException}#(MCheck)) - }; - let i as atom(_) = #\hyperref[zunsigned]{unsigned}#(idx) in - let entry = TLBEntries[i] in { - entry.#\hyperref[zpagemask]{pagemask}#() = pagemask; - entry.#\hyperref[zr]{r}#() = TLBEntryHi.#\hyperref[zR]{R}#(); - entry.#\hyperref[zvpntwo]{vpn2}#() = TLBEntryHi.#\hyperref[zVPNtwo]{VPN2}#(); - entry.#\hyperref[zasid]{asid}#() = TLBEntryHi.#\hyperref[zASID]{ASID}#(); - entry.#\hyperref[zg]{g}#() = ((TLBEntryLo0.#\hyperref[zG]{G}#()) & (TLBEntryLo1.#\hyperref[zG]{G}#())); - entry.#\hyperref[zvalid]{valid}#() = bitone; - entry.#\hyperref[zcapszero]{caps0}#() = TLBEntryLo0.#\hyperref[zCapS]{CapS}#(); - entry.#\hyperref[zcaplzero]{capl0}#() = TLBEntryLo0.#\hyperref[zCapL]{CapL}#(); - entry.#\hyperref[zpfnzero]{pfn0}#() = TLBEntryLo0.#\hyperref[zPFN]{PFN}#(); - entry.#\hyperref[zczero]{c0}#() = TLBEntryLo0.#\hyperref[zC]{C}#(); - entry.#\hyperref[zdzero]{d0}#() = TLBEntryLo0.#\hyperref[zD]{D}#(); - entry.#\hyperref[zvzero]{v0}#() = TLBEntryLo0.#\hyperref[zV]{V}#(); - entry.#\hyperref[zcapsone]{caps1}#() = TLBEntryLo1.#\hyperref[zCapS]{CapS}#(); - entry.#\hyperref[zcaplone]{capl1}#() = TLBEntryLo1.#\hyperref[zCapL]{CapL}#(); - entry.#\hyperref[zpfnone]{pfn1}#() = TLBEntryLo1.#\hyperref[zPFN]{PFN}#(); - entry.#\hyperref[zcone]{c1}#() = TLBEntryLo1.#\hyperref[zC]{C}#(); - entry.#\hyperref[zdone]{d1}#() = TLBEntryLo1.#\hyperref[zD]{D}#(); - entry.#\hyperref[zvone]{v1}#() = TLBEntryLo1.#\hyperref[zV]{V}#(); - } -} diff --git a/cheri/sail_latex/sailfnTranslatePC.tex b/cheri/sail_latex/sailfnTranslatePC.tex deleted file mode 100644 index 5e43ffb4..00000000 --- a/cheri/sail_latex/sailfnTranslatePC.tex +++ /dev/null @@ -1,15 +0,0 @@ -function #\hyperref[zTranslatePC]{TranslatePC}# (vAddr) = { - #\hyperref[zincrementCPzeroCount]{incrementCP0Count}#(); - let pcc = #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(PCC); - let base = #\hyperref[zgetCapBase]{getCapBase}#(pcc); - let top = #\hyperref[zgetCapTop]{getCapTop}#(pcc); - let absPC = base + #\hyperref[zunsigned]{unsigned}#(vAddr); - if ((absPC % 4) != 0) then /* bad PC alignment */ - (#\hyperref[zSignalExceptionBadAddr]{SignalExceptionBadAddr}#(AdEL, #\hyperref[ztozybits]{to\_bits}#(64, absPC))) /* XXX absPC may be truncated */ - else if #\hyperref[znot]{not}# (pcc.tag) then - (#\hyperref[zraisezyctwozyexceptionzynoreg]{raise\_c2\_exception\_noreg}#(CapEx_TagViolation)) - else if ((absPC + 4) > top) then - (#\hyperref[zraisezyctwozyexceptionzynoreg]{raise\_c2\_exception\_noreg}#(CapEx_LengthViolation)) - else - #\hyperref[zTLBTranslate]{TLBTranslate}#(#\hyperref[ztozybits]{to\_bits}#(64, absPC), Instruction) /* XXX assert absPC never gets truncated due to above check and top <= 2^64 for valid caps */ -} diff --git a/cheri/sail_latex/sailfnWordTypeUnalignedofnum.tex b/cheri/sail_latex/sailfnWordTypeUnalignedofnum.tex deleted file mode 100644 index 7b690587..00000000 --- a/cheri/sail_latex/sailfnWordTypeUnalignedofnum.tex +++ /dev/null @@ -1,6 +0,0 @@ -function WordTypeUnaligned_of_num arg# = match arg# { - 0 => WL, - 1 => WR, - 2 => DL, - _ => DR -} diff --git a/cheri/sail_latex/sailfnWordTypeofnum.tex b/cheri/sail_latex/sailfnWordTypeofnum.tex deleted file mode 100644 index f431606a..00000000 --- a/cheri/sail_latex/sailfnWordTypeofnum.tex +++ /dev/null @@ -1,6 +0,0 @@ -function WordType_of_num arg# = match arg# { - 0 => B, - 1 => H, - 2 => W, - _ => D -} diff --git a/cheri/sail_latex/sailfnaddrWrapper.tex b/cheri/sail_latex/sailfnaddrWrapper.tex deleted file mode 100644 index 6f1dd662..00000000 --- a/cheri/sail_latex/sailfnaddrWrapper.tex +++ /dev/null @@ -1,16 +0,0 @@ -function #\hyperref[zaddrWrapper]{addrWrapper}#(addr, accessType, width) = - { - ddc = #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(DDC); - #\hyperref[zcheckDDCPerms]{checkDDCPerms}#(ddc, accessType); - cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(ddc); - vAddr = (cursor + #\hyperref[zunsigned]{unsigned}#(addr)) % #\hyperref[zpowtwo]{pow2}#(64); - size = #\hyperref[zwordWidthBytes]{wordWidthBytes}#(width); - base = #\hyperref[zgetCapBase]{getCapBase}#(ddc); - top = #\hyperref[zgetCapTop]{getCapTop}#(ddc); - if ((vAddr + size) > top) then - (#\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, 0b00000)) - else if (vAddr < base) then - (#\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, 0b00000)) - else - #\hyperref[ztozybits]{to\_bits}#(64, vAddr); - } diff --git a/cheri/sail_latex/sailfnaddrWrapperUnaligned.tex b/cheri/sail_latex/sailfnaddrWrapperUnaligned.tex deleted file mode 100644 index 47567f7e..00000000 --- a/cheri/sail_latex/sailfnaddrWrapperUnaligned.tex +++ /dev/null @@ -1,24 +0,0 @@ -function #\hyperref[zaddrWrapperUnaligned]{addrWrapperUnaligned}#(addr, accessType, width) = - { - ddc = #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(DDC); - #\hyperref[zcheckDDCPerms]{checkDDCPerms}#(ddc, accessType); - cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(ddc); - vAddr = (cursor + #\hyperref[zunsigned]{unsigned}#(addr)) % #\hyperref[zpowtwo]{pow2}#(64); - woffset = vAddr % 4; - doffset = vAddr % 8; - /* Compute the address and size of the bytes touched -- this depends on alignment. */ - let (waddr, size) : (int, int) = match width { - WL => (vAddr, 4 - woffset), - WR => (vAddr - woffset, woffset + 1), - DL => (vAddr, 8 - doffset), - DR => (vAddr - doffset, doffset + 1) - }; - base = #\hyperref[zgetCapBase]{getCapBase}#(ddc); - top = #\hyperref[zgetCapTop]{getCapTop}#(ddc); - if ((waddr + size) > top) then - (#\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, 0b00000)) - else if (waddr < base) then - (#\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, 0b00000)) - else - #\hyperref[ztozybits]{to\_bits}#(64, vAddr); - } diff --git a/cheri/sail_latex/sailfnbitstobool.tex b/cheri/sail_latex/sailfnbitstobool.tex deleted file mode 100644 index 1cb33076..00000000 --- a/cheri/sail_latex/sailfnbitstobool.tex +++ /dev/null @@ -1 +0,0 @@ -function bits_to_bool x = #\hyperref[zbitzytozybool]{bit\_to\_bool}#(x[0]) diff --git a/cheri/sail_latex/sailfnbittobool.tex b/cheri/sail_latex/sailfnbittobool.tex deleted file mode 100644 index a5eea578..00000000 --- a/cheri/sail_latex/sailfnbittobool.tex +++ /dev/null @@ -1,4 +0,0 @@ -function bit_to_bool b = match b { - bitone => true, - _ => false -} diff --git a/cheri/sail_latex/sailfnbooltobits.tex b/cheri/sail_latex/sailfnbooltobits.tex deleted file mode 100644 index 99075369..00000000 --- a/cheri/sail_latex/sailfnbooltobits.tex +++ /dev/null @@ -1 +0,0 @@ -function bool_to_bits x = if x then 0b1 else 0b0 diff --git a/cheri/sail_latex/sailfncapRegToCapStruct.tex b/cheri/sail_latex/sailfncapRegToCapStruct.tex deleted file mode 100644 index 5209e9f9..00000000 --- a/cheri/sail_latex/sailfncapRegToCapStruct.tex +++ /dev/null @@ -1,23 +0,0 @@ -function #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(capReg) : CapReg -> CapStruct = - struct { - tag = capReg[256], - padding = capReg[255..248], - otype = capReg[247..224], - uperms = capReg[223..208], - perm_reserved11_14 = capReg[207..204], - access_system_regs = capReg[203], - permit_unseal = capReg[202], - permit_ccall = capReg[201], - permit_seal = capReg[200], - permit_store_local_cap = capReg[199], - permit_store_cap = capReg[198], - permit_load_cap = capReg[197], - permit_store = capReg[196], - permit_load = capReg[195], - permit_execute = capReg[194], - global = capReg[193], - sealed = capReg[192], - address = capReg[191..128], - base = capReg[127..64], - length = capReg[63..0] - } diff --git a/cheri/sail_latex/sailfncapStructToCapReg.tex b/cheri/sail_latex/sailfncapStructToCapReg.tex deleted file mode 100644 index d0828429..00000000 --- a/cheri/sail_latex/sailfncapStructToCapReg.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(cap) : CapStruct -> CapReg = cap.tag @ #\hyperref[zcapStructToMemBitstwofivesix]{capStructToMemBits256}#(cap) diff --git a/cheri/sail_latex/sailfncapStructToMemBits.tex b/cheri/sail_latex/sailfncapStructToMemBits.tex deleted file mode 100644 index b85816b3..00000000 --- a/cheri/sail_latex/sailfncapStructToMemBits.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zcapStructToMemBits]{capStructToMemBits}#(cap) : CapStruct -> #\hyperref[zbits]{bits}#(256)= - #\hyperref[zcapStructToMemBitstwofivesix]{capStructToMemBits256}#(cap) ^ null_cap_bits diff --git a/cheri/sail_latex/sailfncapStructToMemBitstwofivesix.tex b/cheri/sail_latex/sailfncapStructToMemBitstwofivesix.tex deleted file mode 100644 index 0c775ae4..00000000 --- a/cheri/sail_latex/sailfncapStructToMemBitstwofivesix.tex +++ /dev/null @@ -1,10 +0,0 @@ -function #\hyperref[zcapStructToMemBitstwofivesix]{capStructToMemBits256}#(cap) : CapStruct -> #\hyperref[zbits]{bits}#(256) = - ( - cap.padding - @ cap.otype - @ #\hyperref[zgetCapPerms]{getCapPerms}#(cap) - @ cap.sealed - @ cap.address - @ cap.base - @ cap.length - ) diff --git a/cheri/sail_latex/sailfncapToString.tex b/cheri/sail_latex/sailfncapToString.tex deleted file mode 100644 index 2ad25883..00000000 --- a/cheri/sail_latex/sailfncapToString.tex +++ /dev/null @@ -1,16 +0,0 @@ -function capToString cap = { - #\hyperref[zskipzyescape]{skip\_escape}#(); /* because cheri128 getCapX functions contain asserts but cheri256 ones do not */ - #\hyperref[zconcatzystr]{concat\_str}#(" t:", - #\hyperref[zconcatzystr]{concat\_str}#(if cap.tag then "1" else "0", - #\hyperref[zconcatzystr]{concat\_str}#(" s:", - #\hyperref[zconcatzystr]{concat\_str}#(if cap.sealed then "1" else "0", - #\hyperref[zconcatzystr]{concat\_str}#(" perms:", - #\hyperref[zconcatzystr]{concat\_str}#(#\hyperref[zBitStr]{BitStr}#(0b0 @ #\hyperref[zgetCapPerms]{getCapPerms}#(cap)), - #\hyperref[zconcatzystr]{concat\_str}#(" type:", - #\hyperref[zconcatzystr]{concat\_str}#(#\hyperref[zBitStr]{BitStr}#(cap.otype), - #\hyperref[zconcatzystr]{concat\_str}#(" offset:", - #\hyperref[zconcatzystr]{concat\_str}#(#\hyperref[zBitStr]{BitStr}#(#\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapOffset]{getCapOffset}#(cap))), - #\hyperref[zconcatzystr]{concat\_str}#(" base:", - #\hyperref[zconcatzystr]{concat\_str}#(#\hyperref[zBitStr]{BitStr}#(#\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapBase]{getCapBase}#(cap))), - #\hyperref[zconcatzystr]{concat\_str}#(" length:", #\hyperref[zBitStr]{BitStr}#(#\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zmin]{min}#(#\hyperref[zgetCapLength]{getCapLength}#(cap), #\hyperref[zMAX]{MAX}#(64))))))))))))))))) - } diff --git a/cheri/sail_latex/sailfncastunitvec.tex b/cheri/sail_latex/sailfncastunitvec.tex deleted file mode 100644 index 1bb7a9e0..00000000 --- a/cheri/sail_latex/sailfncastunitvec.tex +++ /dev/null @@ -1,4 +0,0 @@ -function cast_unit_vec b = match b { - bitzero => 0b0, - _ => 0b1 -} diff --git a/cheri/sail_latex/sailfncheckCPtwousable.tex b/cheri/sail_latex/sailfncheckCPtwousable.tex deleted file mode 100644 index 8e7c29d7..00000000 --- a/cheri/sail_latex/sailfncheckCPtwousable.tex +++ /dev/null @@ -1,5 +0,0 @@ -function #\hyperref[zcheckCPtwousable]{checkCP2usable}# () = - if #\hyperref[znot]{not}# (CP0Status.#\hyperref[zCU]{CU}#()[2]) then { - CP0Cause->#\hyperref[zCE]{CE}#() = 0b10; - #\hyperref[zSignalException]{SignalException}#(CpU); - } diff --git a/cheri/sail_latex/sailfncheckCPzeroAccess.tex b/cheri/sail_latex/sailfncheckCPzeroAccess.tex deleted file mode 100644 index d63f00cf..00000000 --- a/cheri/sail_latex/sailfncheckCPzeroAccess.tex +++ /dev/null @@ -1,9 +0,0 @@ -function #\hyperref[zcheckCPzeroAccess]{checkCP0Access}# () = - { - let accessLevel = #\hyperref[zgetAccessLevel]{getAccessLevel}#() in - if ((accessLevel != Kernel) & (~(CP0Status.#\hyperref[zCU]{CU}#()[0]))) then - { - CP0Cause->#\hyperref[zCE]{CE}#() = 0b00; - #\hyperref[zSignalException]{SignalException}#(CpU); - } - } diff --git a/cheri/sail_latex/sailfncheckDDCPerms.tex b/cheri/sail_latex/sailfncheckDDCPerms.tex deleted file mode 100644 index 1675c666..00000000 --- a/cheri/sail_latex/sailfncheckDDCPerms.tex +++ /dev/null @@ -1,12 +0,0 @@ -function #\hyperref[zcheckDDCPerms]{checkDDCPerms}#(ddc : CapStruct, accessType: MemAccessType) = - { - if (#\hyperref[znot]{not}# (ddc.tag)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, 0b00000) - else if (ddc.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, 0b00000); - match accessType { - Instruction => assert(false), /* Only data accesses use DDC */ - LoadData => if (~(ddc.permit_load)) then (#\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitLoadViolation, 0b00000)), - StoreData => if (~(ddc.permit_store)) then (#\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitStoreViolation, 0b00000)) - }; - } diff --git a/cheri/sail_latex/sailfncompare.tex b/cheri/sail_latex/sailfncompare.tex deleted file mode 100644 index f4378ba7..00000000 --- a/cheri/sail_latex/sailfncompare.tex +++ /dev/null @@ -1,11 +0,0 @@ -function #\hyperref[zcompare]{compare}# (cmp, valA, valB) = - match cmp { - EQ => valA == valB, - NE => valA != valB, - GE => valA >=_s valB, - GEU => valA >=_u valB, - GT => valB <_s valA, - LE => valB >=_s valA, - LT => valA <_s valB, - LTU => valA <_u valB - } diff --git a/cheri/sail_latex/sailfncptwonextpc.tex b/cheri/sail_latex/sailfncptwonextpc.tex deleted file mode 100644 index c2a9c944..00000000 --- a/cheri/sail_latex/sailfncptwonextpc.tex +++ /dev/null @@ -1,8 +0,0 @@ -function #\hyperref[zcptwozynextzypc]{cp2\_next\_pc}# () = { - PCC = nextPCC; - if inBranchDelay then { - nextPCC = delayedPCC; - } else { - inCCallDelay = 0b0; - }; -} diff --git a/cheri/sail_latex/sailfndecodeSome.tex b/cheri/sail_latex/sailfndecodeSome.tex deleted file mode 100644 index 00a53489..00000000 --- a/cheri/sail_latex/sailfndecodeSome.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010000 @ 0b10000000000000000000 @ 0b000010) = #\hyperref[zSome]{Some}#(#\hyperref[zTLBWI]{TLBWI}#() : ast) diff --git a/cheri/sail_latex/sailfndecodeSomeADD.tex b/cheri/sail_latex/sailfndecodeSomeADD.tex deleted file mode 100644 index 4b01b543..00000000 --- a/cheri/sail_latex/sailfndecodeSomeADD.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b100000) = - #\hyperref[zSome]{Some}#(#\hyperref[zADD]{ADD}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeADDI.tex b/cheri/sail_latex/sailfndecodeSomeADDI.tex deleted file mode 100644 index 7706322f..00000000 --- a/cheri/sail_latex/sailfndecodeSomeADDI.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b001000 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zADDI]{ADDI}#(rs, rt, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeADDIU.tex b/cheri/sail_latex/sailfndecodeSomeADDIU.tex deleted file mode 100644 index 27972a96..00000000 --- a/cheri/sail_latex/sailfndecodeSomeADDIU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b001001 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zADDIU]{ADDIU}#(rs, rt, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeADDU.tex b/cheri/sail_latex/sailfndecodeSomeADDU.tex deleted file mode 100644 index 259cdfc9..00000000 --- a/cheri/sail_latex/sailfndecodeSomeADDU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b100001) = - #\hyperref[zSome]{Some}#(#\hyperref[zADDU]{ADDU}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeAND.tex b/cheri/sail_latex/sailfndecodeSomeAND.tex deleted file mode 100644 index ecc6f7cb..00000000 --- a/cheri/sail_latex/sailfndecodeSomeAND.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b100100) = - #\hyperref[zSome]{Some}#(#\hyperref[zAND]{AND}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeANDI.tex b/cheri/sail_latex/sailfndecodeSomeANDI.tex deleted file mode 100644 index fea6a112..00000000 --- a/cheri/sail_latex/sailfndecodeSomeANDI.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b001100 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zANDI]{ANDI}#(rs, rt, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeBCMPZ.tex b/cheri/sail_latex/sailfndecodeSomeBCMPZ.tex deleted file mode 100644 index 3221c8a3..00000000 --- a/cheri/sail_latex/sailfndecodeSomeBCMPZ.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b00000 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, LT, false, false)) /* BLTZ */ diff --git a/cheri/sail_latex/sailfndecodeSomeBEQ.tex b/cheri/sail_latex/sailfndecodeSomeBEQ.tex deleted file mode 100644 index e520223e..00000000 --- a/cheri/sail_latex/sailfndecodeSomeBEQ.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000100 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBEQ]{BEQ}#(rs, rt, imm, false, false)) /* BEQ */ diff --git a/cheri/sail_latex/sailfndecodeSomeBREAK.tex b/cheri/sail_latex/sailfndecodeSomeBREAK.tex deleted file mode 100644 index e4978b0a..00000000 --- a/cheri/sail_latex/sailfndecodeSomeBREAK.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ code : #\hyperref[zbits]{bits}#(20) @ 0b001101) = - #\hyperref[zSome]{Some}#(#\hyperref[zBREAK]{BREAK}#()) /* code is ignored */ diff --git a/cheri/sail_latex/sailfndecodeSomeCACHE.tex b/cheri/sail_latex/sailfndecodeSomeCACHE.tex deleted file mode 100644 index c9f100fe..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCACHE.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b101111 @ base : regno @ op : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zCACHE]{CACHE}#(base, op, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeCAndPerm.tex b/cheri/sail_latex/sailfndecodeSomeCAndPerm.tex deleted file mode 100644 index 04f8dbb2..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCAndPerm.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00100 @ cd : regno @ cb : regno @ rt : regno @ 0b000 @ 0b000) = #\hyperref[zSome]{Some}#(#\hyperref[zCAndPerm]{CAndPerm}#(cd, cb, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeCBX.tex b/cheri/sail_latex/sailfndecodeSomeCBX.tex deleted file mode 100644 index f009388f..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCBX.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01001 @ cd : regno @ imm : #\hyperref[zbits]{bits}#(16)) = #\hyperref[zSome]{Some}#(#\hyperref[zCBX]{CBX}#(cd, imm, true)) /* CBTU */ diff --git a/cheri/sail_latex/sailfndecodeSomeCBZ.tex b/cheri/sail_latex/sailfndecodeSomeCBZ.tex deleted file mode 100644 index db46dbd2..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCBZ.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10001 @ cd : regno @ imm : #\hyperref[zbits]{bits}#(16)) = #\hyperref[zSome]{Some}#(#\hyperref[zCBZ]{CBZ}#(cd, imm, false)) /* CBEZ */ diff --git a/cheri/sail_latex/sailfndecodeSomeCBuildCap.tex b/cheri/sail_latex/sailfndecodeSomeCBuildCap.tex deleted file mode 100644 index c070e1be..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCBuildCap.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cb : regno @ ct : regno @ 0b011101) = #\hyperref[zSome]{Some}#(#\hyperref[zCBuildCap]{CBuildCap}#(cd, cb, ct)) diff --git a/cheri/sail_latex/sailfndecodeSomeCCSeal.tex b/cheri/sail_latex/sailfndecodeSomeCCSeal.tex deleted file mode 100644 index 4703af82..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCCSeal.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ ct : regno @ 0b011111) = #\hyperref[zSome]{Some}#(#\hyperref[zCCSeal]{CCSeal}#(cd, cs, ct)) diff --git a/cheri/sail_latex/sailfndecodeSomeCCall.tex b/cheri/sail_latex/sailfndecodeSomeCCall.tex deleted file mode 100644 index 32395a34..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCCall.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00101 @ cs : regno @ cb : regno @ selector : #\hyperref[zbits]{bits}#(11)) = #\hyperref[zSome]{Some}#(#\hyperref[zCCall]{CCall}#(cs, cb, selector)) diff --git a/cheri/sail_latex/sailfndecodeSomeCCheckPerm.tex b/cheri/sail_latex/sailfndecodeSomeCCheckPerm.tex deleted file mode 100644 index 1d293316..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCCheckPerm.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01011 @ cs : regno @ 0b00000 @ rt : regno @ 0b000@ 0b000) = #\hyperref[zSome]{Some}#(#\hyperref[zCCheckPerm]{CCheckPerm}#(cs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeCCheckType.tex b/cheri/sail_latex/sailfndecodeSomeCCheckType.tex deleted file mode 100644 index 85b4f5ee..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCCheckType.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01011 @ cs : regno @ cb : regno @ 0b00000 @ 0b000@ 0b001) = #\hyperref[zSome]{Some}#(#\hyperref[zCCheckType]{CCheckType}#(cs, cb)) diff --git a/cheri/sail_latex/sailfndecodeSomeCClearTag.tex b/cheri/sail_latex/sailfndecodeSomeCClearTag.tex deleted file mode 100644 index aad3e0e4..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCClearTag.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00100 @ cd : regno @ cb : regno @ 0b00000 @ 0b000@ 0b101) = #\hyperref[zSome]{Some}#(#\hyperref[zCClearTag]{CClearTag}#(cd, cb)) diff --git a/cheri/sail_latex/sailfndecodeSomeCCopyType.tex b/cheri/sail_latex/sailfndecodeSomeCCopyType.tex deleted file mode 100644 index 6c7a5fb8..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCCopyType.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cb : regno @ ct : regno @ 0b011110) = #\hyperref[zSome]{Some}#(#\hyperref[zCCopyType]{CCopyType}#(cd, cb, ct)) diff --git a/cheri/sail_latex/sailfndecodeSomeCFromPtr.tex b/cheri/sail_latex/sailfndecodeSomeCFromPtr.tex deleted file mode 100644 index 9c992ac0..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCFromPtr.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00100 @ cd : regno @ cb : regno @ rt : regno @ 0b000@ 0b111) = #\hyperref[zSome]{Some}#(#\hyperref[zCFromPtr]{CFromPtr}#(cd, cb, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeCGetAddr.tex b/cheri/sail_latex/sailfndecodeSomeCGetAddr.tex deleted file mode 100644 index 89672867..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCGetAddr.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cb : regno @ sel : regno @ 0b01111 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetAddr]{CGetAddr}#(cb, sel)) diff --git a/cheri/sail_latex/sailfndecodeSomeCGetBase.tex b/cheri/sail_latex/sailfndecodeSomeCGetBase.tex deleted file mode 100644 index 3ff0c663..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCGetBase.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000000 @ 0b010) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetBase]{CGetBase}#(rd, cb)) diff --git a/cheri/sail_latex/sailfndecodeSomeCGetCauserd.tex b/cheri/sail_latex/sailfndecodeSomeCGetCauserd.tex deleted file mode 100644 index 4ffeb4ab..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCGetCauserd.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ 0b00000 @ 0b00000000 @ 0b100) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetCause]{CGetCause}#(rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeCGetLen.tex b/cheri/sail_latex/sailfndecodeSomeCGetLen.tex deleted file mode 100644 index 2a39bae6..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCGetLen.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000000 @ 0b011) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetLen]{CGetLen}#(rd, cb)) diff --git a/cheri/sail_latex/sailfndecodeSomeCGetOffset.tex b/cheri/sail_latex/sailfndecodeSomeCGetOffset.tex deleted file mode 100644 index 7ac298c2..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCGetOffset.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01101 @ rd : regno @ cb : regno @ 0b00000000 @ 0b010) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetOffset]{CGetOffset}#(rd, cb)) /* NB encoding does not follow pattern */ diff --git a/cheri/sail_latex/sailfndecodeSomeCGetPCCSetOffset.tex b/cheri/sail_latex/sailfndecodeSomeCGetPCCSetOffset.tex deleted file mode 100644 index dd92b2fd..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCGetPCCSetOffset.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ rs : regno @ 0b00111 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetPCCSetOffset]{CGetPCCSetOffset}#(cd, rs)) diff --git a/cheri/sail_latex/sailfndecodeSomeCGetPCCcd.tex b/cheri/sail_latex/sailfndecodeSomeCGetPCCcd.tex deleted file mode 100644 index 5357a1e4..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCGetPCCcd.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ 0b00000 @ 0b11111 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetPCC]{CGetPCC}#(cd)) diff --git a/cheri/sail_latex/sailfndecodeSomeCGetPerm.tex b/cheri/sail_latex/sailfndecodeSomeCGetPerm.tex deleted file mode 100644 index 0a14b6a1..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCGetPerm.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000000 @ 0b000) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetPerm]{CGetPerm}#(rd, cb)) diff --git a/cheri/sail_latex/sailfndecodeSomeCGetSealed.tex b/cheri/sail_latex/sailfndecodeSomeCGetSealed.tex deleted file mode 100644 index c7511dfa..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCGetSealed.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000000 @ 0b110) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetSealed]{CGetSealed}#(rd, cb)) diff --git a/cheri/sail_latex/sailfndecodeSomeCGetTag.tex b/cheri/sail_latex/sailfndecodeSomeCGetTag.tex deleted file mode 100644 index 794216a2..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCGetTag.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000000 @ 0b101) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetTag]{CGetTag}#(rd, cb)) diff --git a/cheri/sail_latex/sailfndecodeSomeCGetType.tex b/cheri/sail_latex/sailfndecodeSomeCGetType.tex deleted file mode 100644 index 1568e5a4..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCGetType.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000000 @ 0b001) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetType]{CGetType}#(rd, cb)) diff --git a/cheri/sail_latex/sailfndecodeSomeCIncOffset.tex b/cheri/sail_latex/sailfndecodeSomeCIncOffset.tex deleted file mode 100644 index 893e774b..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCIncOffset.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01101 @ cd : regno @ cb : regno @ rt : regno @ 0b000 @ 0b000) = #\hyperref[zSome]{Some}#(#\hyperref[zCIncOffset]{CIncOffset}#(cd, cb, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeCIncOffsetImmediate.tex b/cheri/sail_latex/sailfndecodeSomeCIncOffsetImmediate.tex deleted file mode 100644 index a0287341..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCIncOffsetImmediate.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10011 @ cd : regno @ cb : regno @ imm : #\hyperref[zbits]{bits}#(11)) = #\hyperref[zSome]{Some}#(#\hyperref[zCIncOffsetImmediate]{CIncOffsetImmediate}#(cd, cb, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeCJALR.tex b/cheri/sail_latex/sailfndecodeSomeCJALR.tex deleted file mode 100644 index 6d67580e..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCJALR.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00111 @ cd : regno @ cb : regno @ 0b00000 @ 0b000000) = #\hyperref[zSome]{Some}#(#\hyperref[zCJALR]{CJALR}#(cd, cb, true)) /* CJALR */ diff --git a/cheri/sail_latex/sailfndecodeSomeCLC.tex b/cheri/sail_latex/sailfndecodeSomeCLC.tex deleted file mode 100644 index ee20ffd2..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCLC.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b110110 @ cd : regno @ cb : regno @ rt : regno @ offset : #\hyperref[zbits]{bits}#(11)) = #\hyperref[zSome]{Some}#(#\hyperref[zCLC]{CLC}#(cd, cb, rt, #\hyperref[zsignzyextend]{sign\_extend}#(offset), false)) /* CLC */ diff --git a/cheri/sail_latex/sailfndecodeSomeCLoad.tex b/cheri/sail_latex/sailfndecodeSomeCLoad.tex deleted file mode 100644 index 4f0e7692..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCLoad.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : #\hyperref[zbits]{bits}#(8) @ 0b0 @ 0b00) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, rt, offset, false, B, false)) /* CLBU */ diff --git a/cheri/sail_latex/sailfndecodeSomeCMOVX.tex b/cheri/sail_latex/sailfndecodeSomeCMOVX.tex deleted file mode 100644 index 57f4de7c..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCMOVX.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ 0b01010 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCMOVX]{CMOVX}#(cd, cs, 0b00000, false)) /* CMOVE */ diff --git a/cheri/sail_latex/sailfndecodeSomeCPtrCmp.tex b/cheri/sail_latex/sailfndecodeSomeCPtrCmp.tex deleted file mode 100644 index 31f83677..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCPtrCmp.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b000) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, ct, CEQ)) diff --git a/cheri/sail_latex/sailfndecodeSomeCReadHwr.tex b/cheri/sail_latex/sailfndecodeSomeCReadHwr.tex deleted file mode 100644 index 0bacf907..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCReadHwr.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ sel : regno @ 0b01101 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCReadHwr]{CReadHwr}#(cd, sel)) diff --git a/cheri/sail_latex/sailfndecodeSomeCReturn.tex b/cheri/sail_latex/sailfndecodeSomeCReturn.tex deleted file mode 100644 index 9e773418..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCReturn.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00110 @ 0b000000000000000000000) = #\hyperref[zSome]{Some}#(#\hyperref[zCReturn]{CReturn}#()) diff --git a/cheri/sail_latex/sailfndecodeSomeCSC.tex b/cheri/sail_latex/sailfndecodeSomeCSC.tex deleted file mode 100644 index 1271b654..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCSC.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b111110 @ cs : regno @ cb : regno@ rt : regno @ offset : #\hyperref[zbits]{bits}#(11)) = #\hyperref[zSome]{Some}#(#\hyperref[zCSC]{CSC}#(cs, cb, rt, 0b00000, offset, false)) diff --git a/cheri/sail_latex/sailfndecodeSomeCSeal.tex b/cheri/sail_latex/sailfndecodeSomeCSeal.tex deleted file mode 100644 index 91cad204..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCSeal.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00010 @ cd : regno @ cs : regno @ ct : regno @ 0b000@ 0b000) = #\hyperref[zSome]{Some}#(#\hyperref[zCSeal]{CSeal}#(cd, cs, ct)) diff --git a/cheri/sail_latex/sailfndecodeSomeCSetBounds.tex b/cheri/sail_latex/sailfndecodeSomeCSetBounds.tex deleted file mode 100644 index 0675556f..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCSetBounds.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00001 @ cd : regno @ cb : regno @ rt : regno @ 0b000000) = #\hyperref[zSome]{Some}#(#\hyperref[zCSetBounds]{CSetBounds}#(cd, cb, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeCSetBoundsExact.tex b/cheri/sail_latex/sailfndecodeSomeCSetBoundsExact.tex deleted file mode 100644 index 39caef88..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCSetBoundsExact.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ rt : regno @ 0b001001) = #\hyperref[zSome]{Some}#(#\hyperref[zCSetBoundsExact]{CSetBoundsExact}#(cd, cs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeCSetBoundsImmediate.tex b/cheri/sail_latex/sailfndecodeSomeCSetBoundsImmediate.tex deleted file mode 100644 index ce53cb78..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCSetBoundsImmediate.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10100 @ cd : regno @ cb : regno @ imm : #\hyperref[zbits]{bits}#(11)) = #\hyperref[zSome]{Some}#(#\hyperref[zCSetBoundsImmediate]{CSetBoundsImmediate}#(cd, cb, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeCSetCausers.tex b/cheri/sail_latex/sailfndecodeSomeCSetCausers.tex deleted file mode 100644 index a775811b..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCSetCausers.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rs : regno @ 0b00010 @ 0b11111 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCSetCause]{CSetCause}#(rs)) diff --git a/cheri/sail_latex/sailfndecodeSomeCSetCausert.tex b/cheri/sail_latex/sailfndecodeSomeCSetCausert.tex deleted file mode 100644 index dc995af3..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCSetCausert.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00100 @ 0b00000 @ 0b00000 @ rt : regno @ 0b000 @ 0b100) = #\hyperref[zSome]{Some}#(#\hyperref[zCSetCause]{CSetCause}#(rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeCSetOffset.tex b/cheri/sail_latex/sailfndecodeSomeCSetOffset.tex deleted file mode 100644 index f2b367c4..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCSetOffset.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01101 @ cd : regno @ cb : regno @ rt : regno @ 0b000 @ 0b001) = #\hyperref[zSome]{Some}#(#\hyperref[zCSetOffset]{CSetOffset}#(cd, cb, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeCStore.tex b/cheri/sail_latex/sailfndecodeSomeCStore.tex deleted file mode 100644 index e93884fc..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCStore.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b111010 @ rs : regno @ cb : regno@ rt : regno @ offset : #\hyperref[zbits]{bits}#(8) @ 0b0 @ 0b00) = #\hyperref[zSome]{Some}#(#\hyperref[zCStore]{CStore}#(rs, cb, rt, 0b00000, offset, B, false)) /* CSB */ diff --git a/cheri/sail_latex/sailfndecodeSomeCSub.tex b/cheri/sail_latex/sailfndecodeSomeCSub.tex deleted file mode 100644 index bc2347e5..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCSub.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rt : regno @ cb : regno @ cs : regno @ 0b001010) = #\hyperref[zSome]{Some}#(#\hyperref[zCSub]{CSub}#(rt, cb, cs)) diff --git a/cheri/sail_latex/sailfndecodeSomeCTestSubset.tex b/cheri/sail_latex/sailfndecodeSomeCTestSubset.tex deleted file mode 100644 index 1f950ad8..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCTestSubset.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ ct : regno @ 0b100000) = #\hyperref[zSome]{Some}#(#\hyperref[zCTestSubset]{CTestSubset}#(rd, cb, ct)) diff --git a/cheri/sail_latex/sailfndecodeSomeCToPtr.tex b/cheri/sail_latex/sailfndecodeSomeCToPtr.tex deleted file mode 100644 index aac23e6c..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCToPtr.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01100 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b000) = #\hyperref[zSome]{Some}#(#\hyperref[zCToPtr]{CToPtr}#(rd, cb, ct)) diff --git a/cheri/sail_latex/sailfndecodeSomeCUnseal.tex b/cheri/sail_latex/sailfndecodeSomeCUnseal.tex deleted file mode 100644 index 50de73da..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCUnseal.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00011 @ cd : regno @ cs : regno @ ct : regno @ 0b000@ 0b000) = #\hyperref[zSome]{Some}#(#\hyperref[zCUnseal]{CUnseal}#(cd, cs, ct)) diff --git a/cheri/sail_latex/sailfndecodeSomeCWriteHwr.tex b/cheri/sail_latex/sailfndecodeSomeCWriteHwr.tex deleted file mode 100644 index 663fa792..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCWriteHwr.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cb : regno @ sel : regno @ 0b01110 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCWriteHwr]{CWriteHwr}#(cb, sel)) diff --git a/cheri/sail_latex/sailfndecodeSomeClearRegs.tex b/cheri/sail_latex/sailfndecodeSomeClearRegs.tex deleted file mode 100644 index 37c28d29..00000000 --- a/cheri/sail_latex/sailfndecodeSomeClearRegs.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01111 @ 0b00000 @ imm : #\hyperref[zbits]{bits}#(16)) = #\hyperref[zSome]{Some}#(#\hyperref[zClearRegs]{ClearRegs}#(GPLo, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeCtwoDumprt.tex b/cheri/sail_latex/sailfndecodeSomeCtwoDumprt.tex deleted file mode 100644 index cccfa876..00000000 --- a/cheri/sail_latex/sailfndecodeSomeCtwoDumprt.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00100 @ rt : regno @ 0x0006) = #\hyperref[zSome]{Some}#(#\hyperref[zCtwoDump]{C2Dump}#(rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeDADD.tex b/cheri/sail_latex/sailfndecodeSomeDADD.tex deleted file mode 100644 index 84d05d11..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDADD.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b101100) = - #\hyperref[zSome]{Some}#(#\hyperref[zDADD]{DADD}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeDADDI.tex b/cheri/sail_latex/sailfndecodeSomeDADDI.tex deleted file mode 100644 index 27f4cab7..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDADDI.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b011000 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zDADDI]{DADDI}#(rs, rt, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeDADDIU.tex b/cheri/sail_latex/sailfndecodeSomeDADDIU.tex deleted file mode 100644 index 66ffc405..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDADDIU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b011001 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zDADDIU]{DADDIU}#(rs, rt, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeDADDU.tex b/cheri/sail_latex/sailfndecodeSomeDADDU.tex deleted file mode 100644 index 558ebacf..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDADDU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b101101) = - #\hyperref[zSome]{Some}#(#\hyperref[zDADDU]{DADDU}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeDDIV.tex b/cheri/sail_latex/sailfndecodeSomeDDIV.tex deleted file mode 100644 index 7e37f87d..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDDIV.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ 0b00000 @ 0b00000 @ 0b011110) = - #\hyperref[zSome]{Some}#(#\hyperref[zDDIV]{DDIV}#(rs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeDDIVU.tex b/cheri/sail_latex/sailfndecodeSomeDDIVU.tex deleted file mode 100644 index b34ce40f..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDDIVU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ 0b00000 @ 0b00000 @ 0b011111) = - #\hyperref[zSome]{Some}#(#\hyperref[zDDIVU]{DDIVU}#(rs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeDIV.tex b/cheri/sail_latex/sailfndecodeSomeDIV.tex deleted file mode 100644 index f9d47a4f..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDIV.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ 0b00000 @ 0b00000 @ 0b011010) = - #\hyperref[zSome]{Some}#(#\hyperref[zDIV]{DIV}#(rs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeDIVU.tex b/cheri/sail_latex/sailfndecodeSomeDIVU.tex deleted file mode 100644 index 0e9c1385..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDIVU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ 0b00000 @ 0b00000 @ 0b011011) = - #\hyperref[zSome]{Some}#(#\hyperref[zDIVU]{DIVU}#(rs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeDMULT.tex b/cheri/sail_latex/sailfndecodeSomeDMULT.tex deleted file mode 100644 index 0d2b12b5..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDMULT.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ 0b00000 @ 0b00000 @ 0b011100) = - #\hyperref[zSome]{Some}#(#\hyperref[zDMULT]{DMULT}#(rs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeDMULTU.tex b/cheri/sail_latex/sailfndecodeSomeDMULTU.tex deleted file mode 100644 index 53be685e..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDMULTU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ 0b00000 @ 0b00000 @ 0b011101) = - #\hyperref[zSome]{Some}#(#\hyperref[zDMULTU]{DMULTU}#(rs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeDSLL.tex b/cheri/sail_latex/sailfndecodeSomeDSLL.tex deleted file mode 100644 index 824f4937..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDSLL.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ 0b00000 @ rt : regno @ rd : regno @ sa : #\hyperref[zbits]{bits}#(5) @ 0b111000) = - #\hyperref[zSome]{Some}#(#\hyperref[zDSLL]{DSLL}#(rt, rd, sa)) diff --git a/cheri/sail_latex/sailfndecodeSomeDSLLV.tex b/cheri/sail_latex/sailfndecodeSomeDSLLV.tex deleted file mode 100644 index 707e642c..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDSLLV.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b010100) = - #\hyperref[zSome]{Some}#(#\hyperref[zDSLLV]{DSLLV}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeDSLLthreetwo.tex b/cheri/sail_latex/sailfndecodeSomeDSLLthreetwo.tex deleted file mode 100644 index 431ca9e7..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDSLLthreetwo.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ 0b00000 @ rt : regno @ rd : regno @ sa : #\hyperref[zbits]{bits}#(5) @ 0b111100) = - #\hyperref[zSome]{Some}#(#\hyperref[zDSLLthreetwo]{DSLL32}#(rt, rd, sa)) diff --git a/cheri/sail_latex/sailfndecodeSomeDSRA.tex b/cheri/sail_latex/sailfndecodeSomeDSRA.tex deleted file mode 100644 index 25dfe705..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDSRA.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ 0b00000 @ rt : regno @ rd : regno @ sa : #\hyperref[zbits]{bits}#(5) @ 0b111011) = - #\hyperref[zSome]{Some}#(#\hyperref[zDSRA]{DSRA}#(rt, rd, sa)) diff --git a/cheri/sail_latex/sailfndecodeSomeDSRAV.tex b/cheri/sail_latex/sailfndecodeSomeDSRAV.tex deleted file mode 100644 index b2b92bcb..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDSRAV.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b010111) = - #\hyperref[zSome]{Some}#(#\hyperref[zDSRAV]{DSRAV}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeDSRAthreetwo.tex b/cheri/sail_latex/sailfndecodeSomeDSRAthreetwo.tex deleted file mode 100644 index a95f3995..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDSRAthreetwo.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ 0b00000 @ rt : regno @ rd : regno @ sa : #\hyperref[zbits]{bits}#(5) @ 0b111111) = - #\hyperref[zSome]{Some}#(#\hyperref[zDSRAthreetwo]{DSRA32}#(rt, rd, sa)) diff --git a/cheri/sail_latex/sailfndecodeSomeDSRL.tex b/cheri/sail_latex/sailfndecodeSomeDSRL.tex deleted file mode 100644 index d13257d3..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDSRL.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ 0b00000 @ rt : regno @ rd : regno @ sa : #\hyperref[zbits]{bits}#(5) @ 0b111010) = - #\hyperref[zSome]{Some}#(#\hyperref[zDSRL]{DSRL}#(rt, rd, sa)) diff --git a/cheri/sail_latex/sailfndecodeSomeDSRLV.tex b/cheri/sail_latex/sailfndecodeSomeDSRLV.tex deleted file mode 100644 index 626895ac..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDSRLV.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b010110) = - #\hyperref[zSome]{Some}#(#\hyperref[zDSRLV]{DSRLV}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeDSRLthreetwo.tex b/cheri/sail_latex/sailfndecodeSomeDSRLthreetwo.tex deleted file mode 100644 index edfd4ace..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDSRLthreetwo.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ 0b00000 @ rt : regno @ rd : regno @ sa : #\hyperref[zbits]{bits}#(5) @ 0b111110) = - #\hyperref[zSome]{Some}#(#\hyperref[zDSRLthreetwo]{DSRL32}#(rt, rd, sa)) diff --git a/cheri/sail_latex/sailfndecodeSomeDSUB.tex b/cheri/sail_latex/sailfndecodeSomeDSUB.tex deleted file mode 100644 index 0a402a4f..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDSUB.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b101110) = - #\hyperref[zSome]{Some}#(#\hyperref[zDSUB]{DSUB}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeDSUBU.tex b/cheri/sail_latex/sailfndecodeSomeDSUBU.tex deleted file mode 100644 index 635c5d1f..00000000 --- a/cheri/sail_latex/sailfndecodeSomeDSUBU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b101111) = - #\hyperref[zSome]{Some}#(#\hyperref[zDSUBU]{DSUBU}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeERET.tex b/cheri/sail_latex/sailfndecodeSomeERET.tex deleted file mode 100644 index 95d4fa19..00000000 --- a/cheri/sail_latex/sailfndecodeSomeERET.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010000 @ 0b1 @ 0b0000000000000000000 @ 0b011000) = - #\hyperref[zSome]{Some}#(#\hyperref[zERET]{ERET}#()) diff --git a/cheri/sail_latex/sailfndecodeSomeHCF.tex b/cheri/sail_latex/sailfndecodeSomeHCF.tex deleted file mode 100644 index 6f335350..00000000 --- a/cheri/sail_latex/sailfndecodeSomeHCF.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010000 @ 0b00100 @ rt : regno @ 0b10111 @ 0b00000000000) = - #\hyperref[zSome]{Some}#(#\hyperref[zHCF]{HCF}#()) diff --git a/cheri/sail_latex/sailfndecodeSomeJALR.tex b/cheri/sail_latex/sailfndecodeSomeJALR.tex deleted file mode 100644 index 9d31119a..00000000 --- a/cheri/sail_latex/sailfndecodeSomeJALR.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ 0b00000 @ rd : regno @ hint : regno @ 0b001001) = - #\hyperref[zSome]{Some}#(#\hyperref[zJALR]{JALR}#(rs, rd)) /* hint is ignored */ diff --git a/cheri/sail_latex/sailfndecodeSomeJALoffset.tex b/cheri/sail_latex/sailfndecodeSomeJALoffset.tex deleted file mode 100644 index 6f89b7a2..00000000 --- a/cheri/sail_latex/sailfndecodeSomeJALoffset.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000011 @ offset : #\hyperref[zbits]{bits}#(26)) = - #\hyperref[zSome]{Some}#(#\hyperref[zJAL]{JAL}#(offset)) diff --git a/cheri/sail_latex/sailfndecodeSomeJRrs.tex b/cheri/sail_latex/sailfndecodeSomeJRrs.tex deleted file mode 100644 index 11f38614..00000000 --- a/cheri/sail_latex/sailfndecodeSomeJRrs.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ 0b00000 @ 0b00000 @ hint : regno @ 0b001000) = - #\hyperref[zSome]{Some}#(#\hyperref[zJR]{JR}#(rs)) /* hint is ignored */ diff --git a/cheri/sail_latex/sailfndecodeSomeJoffset.tex b/cheri/sail_latex/sailfndecodeSomeJoffset.tex deleted file mode 100644 index b7fe0c10..00000000 --- a/cheri/sail_latex/sailfndecodeSomeJoffset.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000010 @ offset : #\hyperref[zbits]{bits}#(26)) = - #\hyperref[zSome]{Some}#(#\hyperref[zJ]{J}#(offset)) diff --git a/cheri/sail_latex/sailfndecodeSomeLDL.tex b/cheri/sail_latex/sailfndecodeSomeLDL.tex deleted file mode 100644 index d0aa03e7..00000000 --- a/cheri/sail_latex/sailfndecodeSomeLDL.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}#(0b011010 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLDL]{LDL}#(base, rt, offset)) diff --git a/cheri/sail_latex/sailfndecodeSomeLDR.tex b/cheri/sail_latex/sailfndecodeSomeLDR.tex deleted file mode 100644 index e2587245..00000000 --- a/cheri/sail_latex/sailfndecodeSomeLDR.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}#(0b011011 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLDR]{LDR}#(base, rt, offset)) diff --git a/cheri/sail_latex/sailfndecodeSomeLUI.tex b/cheri/sail_latex/sailfndecodeSomeLUI.tex deleted file mode 100644 index e26f924d..00000000 --- a/cheri/sail_latex/sailfndecodeSomeLUI.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b001111 @ 0b00000 @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLUI]{LUI}#(rt, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeLWL.tex b/cheri/sail_latex/sailfndecodeSomeLWL.tex deleted file mode 100644 index 12e0398d..00000000 --- a/cheri/sail_latex/sailfndecodeSomeLWL.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}#(0b100010 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLWL]{LWL}#(base, rt, offset)) diff --git a/cheri/sail_latex/sailfndecodeSomeLWR.tex b/cheri/sail_latex/sailfndecodeSomeLWR.tex deleted file mode 100644 index fbbe2a6c..00000000 --- a/cheri/sail_latex/sailfndecodeSomeLWR.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}#(0b100110 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLWR]{LWR}#(base, rt, offset)) diff --git a/cheri/sail_latex/sailfndecodeSomeLoad.tex b/cheri/sail_latex/sailfndecodeSomeLoad.tex deleted file mode 100644 index b9376877..00000000 --- a/cheri/sail_latex/sailfndecodeSomeLoad.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b100000 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLoad]{Load}#(B, true, false, base, rt, offset)) /* LB */ diff --git a/cheri/sail_latex/sailfndecodeSomeMADD.tex b/cheri/sail_latex/sailfndecodeSomeMADD.tex deleted file mode 100644 index 3b8b9d75..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMADD.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b011100 @ rs : regno @ rt : regno @ 0b00000 @ 0b00000 @ 0b000000) = - #\hyperref[zSome]{Some}#(#\hyperref[zMADD]{MADD}#(rs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeMADDU.tex b/cheri/sail_latex/sailfndecodeSomeMADDU.tex deleted file mode 100644 index a1b46968..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMADDU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b011100 @ rs : regno @ rt : regno @ 0b00000 @ 0b00000 @ 0b000001) = - #\hyperref[zSome]{Some}#(#\hyperref[zMADDU]{MADDU}#(rs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeMFCzero.tex b/cheri/sail_latex/sailfndecodeSomeMFCzero.tex deleted file mode 100644 index 67608b6d..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMFCzero.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010000 @ 0b00000 @ rt : regno @ rd : regno @ 0b00000000 @ sel : #\hyperref[zbits]{bits}#(3)) = - #\hyperref[zSome]{Some}#(#\hyperref[zMFCzero]{MFC0}#(rt, rd, sel, false)) /* MFC0 */ diff --git a/cheri/sail_latex/sailfndecodeSomeMFHIrd.tex b/cheri/sail_latex/sailfndecodeSomeMFHIrd.tex deleted file mode 100644 index 9f48db83..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMFHIrd.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ 0b0000000000 @ rd : regno @ 0b00000 @ 0b010000) = - #\hyperref[zSome]{Some}#(#\hyperref[zMFHI]{MFHI}#(rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeMFLOrd.tex b/cheri/sail_latex/sailfndecodeSomeMFLOrd.tex deleted file mode 100644 index 6ea47d5b..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMFLOrd.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ 0b0000000000 @ rd : regno @ 0b00000 @ 0b010010) = - #\hyperref[zSome]{Some}#(#\hyperref[zMFLO]{MFLO}#(rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeMOVN.tex b/cheri/sail_latex/sailfndecodeSomeMOVN.tex deleted file mode 100644 index e975a85c..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMOVN.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b001011) = - #\hyperref[zSome]{Some}#(#\hyperref[zMOVN]{MOVN}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeMOVZ.tex b/cheri/sail_latex/sailfndecodeSomeMOVZ.tex deleted file mode 100644 index a503217a..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMOVZ.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b001010) = - #\hyperref[zSome]{Some}#(#\hyperref[zMOVZ]{MOVZ}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeMSUB.tex b/cheri/sail_latex/sailfndecodeSomeMSUB.tex deleted file mode 100644 index bfc18834..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMSUB.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b011100 @ rs : regno @ rt : regno @ 0b00000 @ 0b00000 @ 0b000100) = - #\hyperref[zSome]{Some}#(#\hyperref[zMSUB]{MSUB}#(rs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeMSUBU.tex b/cheri/sail_latex/sailfndecodeSomeMSUBU.tex deleted file mode 100644 index 07efaff8..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMSUBU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b011100 @ rs : regno @ rt : regno @ 0b00000 @ 0b00000 @ 0b000101) = - #\hyperref[zSome]{Some}#(#\hyperref[zMSUBU]{MSUBU}#(rs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeMTCzero.tex b/cheri/sail_latex/sailfndecodeSomeMTCzero.tex deleted file mode 100644 index 890984a6..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMTCzero.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010000 @ 0b00100 @ rt : regno @ rd : regno @ 0b00000000 @ sel : #\hyperref[zbits]{bits}#(3)) = - #\hyperref[zSome]{Some}#(#\hyperref[zMTCzero]{MTC0}#(rt, rd, sel, false)) /* MTC0 */ diff --git a/cheri/sail_latex/sailfndecodeSomeMTHIrs.tex b/cheri/sail_latex/sailfndecodeSomeMTHIrs.tex deleted file mode 100644 index bbe47eeb..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMTHIrs.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ 0b000000000000000 @ 0b010001) = - #\hyperref[zSome]{Some}#(#\hyperref[zMTHI]{MTHI}#(rs)) diff --git a/cheri/sail_latex/sailfndecodeSomeMTLOrs.tex b/cheri/sail_latex/sailfndecodeSomeMTLOrs.tex deleted file mode 100644 index b6e4f81a..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMTLOrs.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ 0b000000000000000 @ 0b010011) = - #\hyperref[zSome]{Some}#(#\hyperref[zMTLO]{MTLO}#(rs)) diff --git a/cheri/sail_latex/sailfndecodeSomeMUL.tex b/cheri/sail_latex/sailfndecodeSomeMUL.tex deleted file mode 100644 index 806554c1..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMUL.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b011100 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b000010) = - #\hyperref[zSome]{Some}#(#\hyperref[zMUL]{MUL}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeMULT.tex b/cheri/sail_latex/sailfndecodeSomeMULT.tex deleted file mode 100644 index 3358669f..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMULT.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ 0b00000 @ 0b00000 @ 0b011000) = - #\hyperref[zSome]{Some}#(#\hyperref[zMULT]{MULT}#(rs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeMULTU.tex b/cheri/sail_latex/sailfndecodeSomeMULTU.tex deleted file mode 100644 index 1de82a86..00000000 --- a/cheri/sail_latex/sailfndecodeSomeMULTU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ 0b00000 @ 0b00000 @ 0b011001) = - #\hyperref[zSome]{Some}#(#\hyperref[zMULTU]{MULTU}#(rs, rt)) diff --git a/cheri/sail_latex/sailfndecodeSomeNOR.tex b/cheri/sail_latex/sailfndecodeSomeNOR.tex deleted file mode 100644 index 591bd681..00000000 --- a/cheri/sail_latex/sailfndecodeSomeNOR.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b100111) = - #\hyperref[zSome]{Some}#(#\hyperref[zNOR]{NOR}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeOR.tex b/cheri/sail_latex/sailfndecodeSomeOR.tex deleted file mode 100644 index 4e4c898a..00000000 --- a/cheri/sail_latex/sailfndecodeSomeOR.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b100101) = - #\hyperref[zSome]{Some}#(#\hyperref[zOR]{OR}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeORI.tex b/cheri/sail_latex/sailfndecodeSomeORI.tex deleted file mode 100644 index ab0e3590..00000000 --- a/cheri/sail_latex/sailfndecodeSomeORI.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b001101 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zORI]{ORI}#(rs, rt, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeRDHWR.tex b/cheri/sail_latex/sailfndecodeSomeRDHWR.tex deleted file mode 100644 index ea58d589..00000000 --- a/cheri/sail_latex/sailfndecodeSomeRDHWR.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b011111 @ 0b00000 @ rt : regno @ rd : regno @ 0b00000 @ 0b111011) = - #\hyperref[zSome]{Some}#(#\hyperref[zRDHWR]{RDHWR}#(rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeRI.tex b/cheri/sail_latex/sailfndecodeSomeRI.tex deleted file mode 100644 index 33607cfb..00000000 --- a/cheri/sail_latex/sailfndecodeSomeRI.tex +++ /dev/null @@ -1 +0,0 @@ -function clause decode _ = #\hyperref[zSome]{Some}#(#\hyperref[zRI]{RI}#()) diff --git a/cheri/sail_latex/sailfndecodeSomeSDL.tex b/cheri/sail_latex/sailfndecodeSomeSDL.tex deleted file mode 100644 index bf001ec3..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSDL.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}#(0b101100 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zSDL]{SDL}#(base, rt, offset)) diff --git a/cheri/sail_latex/sailfndecodeSomeSDR.tex b/cheri/sail_latex/sailfndecodeSomeSDR.tex deleted file mode 100644 index 437d09b0..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSDR.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}#(0b101101 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zSDR]{SDR}#(base, rt, offset)) diff --git a/cheri/sail_latex/sailfndecodeSomeSLL.tex b/cheri/sail_latex/sailfndecodeSomeSLL.tex deleted file mode 100644 index 2d130736..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSLL.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ 0b00000 @ rt : regno @ rd : regno @ sa : regno @ 0b000000) = - #\hyperref[zSome]{Some}#(#\hyperref[zSLL]{SLL}#(rt, rd, sa)) diff --git a/cheri/sail_latex/sailfndecodeSomeSLLV.tex b/cheri/sail_latex/sailfndecodeSomeSLLV.tex deleted file mode 100644 index b06ee12d..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSLLV.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b000100) = - #\hyperref[zSome]{Some}#(#\hyperref[zSLLV]{SLLV}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeSLT.tex b/cheri/sail_latex/sailfndecodeSomeSLT.tex deleted file mode 100644 index b6651698..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSLT.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b101010) = - #\hyperref[zSome]{Some}#(#\hyperref[zSLT]{SLT}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeSLTI.tex b/cheri/sail_latex/sailfndecodeSomeSLTI.tex deleted file mode 100644 index c1240f5b..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSLTI.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b001010 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zSLTI]{SLTI}#(rs, rt, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeSLTIU.tex b/cheri/sail_latex/sailfndecodeSomeSLTIU.tex deleted file mode 100644 index 72d15602..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSLTIU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b001011 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zSLTIU]{SLTIU}#(rs, rt, imm)) diff --git a/cheri/sail_latex/sailfndecodeSomeSLTU.tex b/cheri/sail_latex/sailfndecodeSomeSLTU.tex deleted file mode 100644 index c735877d..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSLTU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b101011) = - #\hyperref[zSome]{Some}#(#\hyperref[zSLTU]{SLTU}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeSRA.tex b/cheri/sail_latex/sailfndecodeSomeSRA.tex deleted file mode 100644 index 2050a307..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSRA.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ 0b00000 @ rt : regno @ rd : regno @ sa : regno @ 0b000011) = - #\hyperref[zSome]{Some}#(#\hyperref[zSRA]{SRA}#(rt, rd, sa)) diff --git a/cheri/sail_latex/sailfndecodeSomeSRAV.tex b/cheri/sail_latex/sailfndecodeSomeSRAV.tex deleted file mode 100644 index a198a715..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSRAV.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b000111) = - #\hyperref[zSome]{Some}#(#\hyperref[zSRAV]{SRAV}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeSRL.tex b/cheri/sail_latex/sailfndecodeSomeSRL.tex deleted file mode 100644 index 80c0dd7a..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSRL.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ 0b00000 @ rt : regno @ rd : regno @ sa : regno @ 0b000010) = - #\hyperref[zSome]{Some}#(#\hyperref[zSRL]{SRL}#(rt, rd, sa)) diff --git a/cheri/sail_latex/sailfndecodeSomeSRLV.tex b/cheri/sail_latex/sailfndecodeSomeSRLV.tex deleted file mode 100644 index b06e51d9..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSRLV.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b000110) = - #\hyperref[zSome]{Some}#(#\hyperref[zSRLV]{SRLV}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeSUB.tex b/cheri/sail_latex/sailfndecodeSomeSUB.tex deleted file mode 100644 index 2ee4e29f..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSUB.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b100010) = - #\hyperref[zSome]{Some}#(#\hyperref[zSUB]{SUB}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeSUBU.tex b/cheri/sail_latex/sailfndecodeSomeSUBU.tex deleted file mode 100644 index 4f00e98b..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSUBU.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b100011) = - #\hyperref[zSome]{Some}#(#\hyperref[zSUBU]{SUBU}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeSWL.tex b/cheri/sail_latex/sailfndecodeSomeSWL.tex deleted file mode 100644 index 208f2397..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSWL.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}#(0b101010 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zSWL]{SWL}#(base, rt, offset)) diff --git a/cheri/sail_latex/sailfndecodeSomeSWR.tex b/cheri/sail_latex/sailfndecodeSomeSWR.tex deleted file mode 100644 index 41ef1162..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSWR.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}#(0b101110 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zSWR]{SWR}#(base, rt, offset)) diff --git a/cheri/sail_latex/sailfndecodeSomeSYNC.tex b/cheri/sail_latex/sailfndecodeSomeSYNC.tex deleted file mode 100644 index 12f85118..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSYNC.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ 0b00000 @ 0b00000 @ 0b00000 @ stype : regno @ 0b001111) = - #\hyperref[zSome]{Some}#(#\hyperref[zSYNC]{SYNC}#()) /* stype is currently ignored */ diff --git a/cheri/sail_latex/sailfndecodeSomeSYSCALL.tex b/cheri/sail_latex/sailfndecodeSomeSYSCALL.tex deleted file mode 100644 index bace77fa..00000000 --- a/cheri/sail_latex/sailfndecodeSomeSYSCALL.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ code : #\hyperref[zbits]{bits}#(20) @ 0b001100) = - #\hyperref[zSome]{Some}#(#\hyperref[zSYSCALL]{SYSCALL}#()) /* code is ignored */ diff --git a/cheri/sail_latex/sailfndecodeSomeStore.tex b/cheri/sail_latex/sailfndecodeSomeStore.tex deleted file mode 100644 index 1a291fbd..00000000 --- a/cheri/sail_latex/sailfndecodeSomeStore.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b101000 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zStore]{Store}#(B, false, base, rt, offset)) /* SB */ diff --git a/cheri/sail_latex/sailfndecodeSomeTRAPIMM.tex b/cheri/sail_latex/sailfndecodeSomeTRAPIMM.tex deleted file mode 100644 index 90ed1745..00000000 --- a/cheri/sail_latex/sailfndecodeSomeTRAPIMM.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b01100 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zTRAPIMM]{TRAPIMM}#(rs, imm, EQ)) /* TEQI */ diff --git a/cheri/sail_latex/sailfndecodeSomeTRAPREG.tex b/cheri/sail_latex/sailfndecodeSomeTRAPREG.tex deleted file mode 100644 index 66126500..00000000 --- a/cheri/sail_latex/sailfndecodeSomeTRAPREG.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ code : #\hyperref[zbits]{bits}#(10) @ 0b110000) = - #\hyperref[zSome]{Some}#(#\hyperref[zTRAPREG]{TRAPREG}#(rs, rt, GE)) /* TGE */ diff --git a/cheri/sail_latex/sailfndecodeSomeWAIT.tex b/cheri/sail_latex/sailfndecodeSomeWAIT.tex deleted file mode 100644 index 443840f8..00000000 --- a/cheri/sail_latex/sailfndecodeSomeWAIT.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010000 @ 0x80000 @ 0b100000) = - #\hyperref[zSome]{Some}#(#\hyperref[zWAIT]{WAIT}#()) /* we only accept code == 0 */ diff --git a/cheri/sail_latex/sailfndecodeSomeXOR.tex b/cheri/sail_latex/sailfndecodeSomeXOR.tex deleted file mode 100644 index f25d968e..00000000 --- a/cheri/sail_latex/sailfndecodeSomeXOR.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ rd : regno @ 0b00000 @ 0b100110) = - #\hyperref[zSome]{Some}#(#\hyperref[zXOR]{XOR}#(rs, rt, rd)) diff --git a/cheri/sail_latex/sailfndecodeSomeXORI.tex b/cheri/sail_latex/sailfndecodeSomeXORI.tex deleted file mode 100644 index 018ca5d7..00000000 --- a/cheri/sail_latex/sailfndecodeSomeXORI.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b001110 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zXORI]{XORI}#(rs, rt, imm)) diff --git a/cheri/sail_latex/sailfndecodefailureofnum.tex b/cheri/sail_latex/sailfndecodefailureofnum.tex deleted file mode 100644 index 2ad9ff6d..00000000 --- a/cheri/sail_latex/sailfndecodefailureofnum.tex +++ /dev/null @@ -1,6 +0,0 @@ -function decode_failure_of_num arg# = match arg# { - 0 => no_matching_pattern, - 1 => unsupported_instruction, - 2 => illegal_instruction, - _ => internal_error -} diff --git a/cheri/sail_latex/sailfndumpcptwostate.tex b/cheri/sail_latex/sailfndumpcptwostate.tex deleted file mode 100644 index 53ab717e..00000000 --- a/cheri/sail_latex/sailfndumpcptwostate.tex +++ /dev/null @@ -1,17 +0,0 @@ -function #\hyperref[zdumpzycptwozystate]{dump\_cp2\_state}# () = { - #\hyperref[zprint]{print}#(#\hyperref[zconcatzystr]{concat\_str}#("DEBUG CAP PCC", #\hyperref[zcapToString]{capToString}#(#\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(PCC)))); - foreach(i from 0 to 31) { - #\hyperref[zprint]{print}#(#\hyperref[zconcatzystr]{concat\_str}#("DEBUG CAP REG ", #\hyperref[zconcatzystr]{concat\_str}#(#\hyperref[zstringzyofzyint]{string\_of\_int}#(i), #\hyperref[zcapToString]{capToString}#(#\hyperref[zreadCapReg]{readCapReg}#(#\hyperref[ztozybits]{to\_bits}#(5, i)))))) - }; - #\hyperref[zprint]{print}#(#\hyperref[zconcatzystr]{concat\_str}#("DEBUG CAP HWREG 00", #\hyperref[zcapToString]{capToString}#(#\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(DDC)))); - #\hyperref[zprint]{print}#(#\hyperref[zconcatzystr]{concat\_str}#("DEBUG CAP HWREG 01", #\hyperref[zcapToString]{capToString}#(#\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(CTLSU)))); - #\hyperref[zprint]{print}#(#\hyperref[zconcatzystr]{concat\_str}#("DEBUG CAP HWREG 08", #\hyperref[zcapToString]{capToString}#(#\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(CTLSP)))); - /* TODO: these two should not be mirrored to match the FPGA */ - #\hyperref[zprint]{print}#(#\hyperref[zconcatzystr]{concat\_str}#("DEBUG CAP HWREG 22", #\hyperref[zcapToString]{capToString}#(#\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(KR1C)))); - #\hyperref[zprint]{print}#(#\hyperref[zconcatzystr]{concat\_str}#("DEBUG CAP HWREG 23", #\hyperref[zcapToString]{capToString}#(#\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(KR2C)))); - /* KCC, KDC, EPCC */ - #\hyperref[zprint]{print}#(#\hyperref[zconcatzystr]{concat\_str}#("DEBUG CAP HWREG 29", #\hyperref[zcapToString]{capToString}#(#\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(KCC)))); - #\hyperref[zprint]{print}#(#\hyperref[zconcatzystr]{concat\_str}#("DEBUG CAP HWREG 30", #\hyperref[zcapToString]{capToString}#(#\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(KDC)))); - #\hyperref[zprint]{print}#(#\hyperref[zconcatzystr]{concat\_str}#("DEBUG CAP HWREG 31", #\hyperref[zcapToString]{capToString}#(#\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(EPCC)))); - -} diff --git a/cheri/sail_latex/sailfnexecuteADD.tex b/cheri/sail_latex/sailfnexecuteADD.tex deleted file mode 100644 index 2ad9da32..00000000 --- a/cheri/sail_latex/sailfnexecuteADD.tex +++ /dev/null @@ -1,13 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zADD]{ADD}#(rs, rt, rd)) = - { - opA : #\hyperref[zbits]{bits}#(64) = #\hyperref[zrGPR]{rGPR}#(rs); - opB : #\hyperref[zbits]{bits}#(64) = #\hyperref[zrGPR]{rGPR}#(rt); - if #\hyperref[zNotWordVal]{NotWordVal}#(opA) | #\hyperref[zNotWordVal]{NotWordVal}#(opB) then - #\hyperref[zwGPR]{wGPR}#(rd) = undefined /* XXX could exit instead */ - else - let sum33 : #\hyperref[zbits]{bits}#(33) = #\hyperref[zsignzyextend]{sign\_extend}#(opA[31 .. 0]) + #\hyperref[zsignzyextend]{sign\_extend}#(opB[31 .. 0])in - if sum33[32] != sum33[31] then - (#\hyperref[zSignalException]{SignalException}#(Ov)) - else - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zsignzyextend]{sign\_extend}#(sum33[31..0]) - } diff --git a/cheri/sail_latex/sailfnexecuteADDI.tex b/cheri/sail_latex/sailfnexecuteADDI.tex deleted file mode 100644 index 07076225..00000000 --- a/cheri/sail_latex/sailfnexecuteADDI.tex +++ /dev/null @@ -1,12 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zADDI]{ADDI}#(rs, rt, imm)) = - { - opA = #\hyperref[zrGPR]{rGPR}#(rs); - if #\hyperref[zNotWordVal]{NotWordVal}#(opA) then - #\hyperref[zwGPR]{wGPR}#(rt) = undefined /* XXX could exit instead */ - else - let sum33 : #\hyperref[zbits]{bits}#(33) = #\hyperref[zsignzyextend]{sign\_extend}#(opA[31 .. 0]) + #\hyperref[zsignzyextend]{sign\_extend}#(imm) in - if sum33[32] != sum33[31] then - (#\hyperref[zSignalException]{SignalException}#(Ov)) - else - #\hyperref[zwGPR]{wGPR}#(rt) = #\hyperref[zsignzyextend]{sign\_extend}#(sum33[31..0]) - } diff --git a/cheri/sail_latex/sailfnexecuteADDIU.tex b/cheri/sail_latex/sailfnexecuteADDIU.tex deleted file mode 100644 index 5be7b646..00000000 --- a/cheri/sail_latex/sailfnexecuteADDIU.tex +++ /dev/null @@ -1,8 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zADDIU]{ADDIU}#(rs, rt, imm)) = - { - opA = #\hyperref[zrGPR]{rGPR}#(rs); - if #\hyperref[zNotWordVal]{NotWordVal}#(opA) then - #\hyperref[zwGPR]{wGPR}#(rt) = undefined /* XXX could exit instead */ - else - #\hyperref[zwGPR]{wGPR}#(rt) = #\hyperref[zsignzyextend]{sign\_extend}#((opA[31 .. 0]) + #\hyperref[zsignzyextend]{sign\_extend}#(imm)) - } diff --git a/cheri/sail_latex/sailfnexecuteADDU.tex b/cheri/sail_latex/sailfnexecuteADDU.tex deleted file mode 100644 index ec253078..00000000 --- a/cheri/sail_latex/sailfnexecuteADDU.tex +++ /dev/null @@ -1,9 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zADDU]{ADDU}#(rs, rt, rd)) = - { - opA = #\hyperref[zrGPR]{rGPR}#(rs); - opB = #\hyperref[zrGPR]{rGPR}#(rt); - if #\hyperref[zNotWordVal]{NotWordVal}#(opA) | #\hyperref[zNotWordVal]{NotWordVal}#(opB) then - #\hyperref[zwGPR]{wGPR}#(rd) = undefined - else - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zsignzyextend]{sign\_extend}#(opA[31..0] + opB[31..0]) - } diff --git a/cheri/sail_latex/sailfnexecuteAND.tex b/cheri/sail_latex/sailfnexecuteAND.tex deleted file mode 100644 index f24435e8..00000000 --- a/cheri/sail_latex/sailfnexecuteAND.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zAND]{AND}# (rs, rt, rd)) = - { - #\hyperref[zwGPR]{wGPR}#(rd) = (#\hyperref[zrGPR]{rGPR}#(rs) & #\hyperref[zrGPR]{rGPR}#(rt)) - } diff --git a/cheri/sail_latex/sailfnexecuteANDI.tex b/cheri/sail_latex/sailfnexecuteANDI.tex deleted file mode 100644 index 03305987..00000000 --- a/cheri/sail_latex/sailfnexecuteANDI.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zANDI]{ANDI}# (rs, rt, imm)) = - { - #\hyperref[zwGPR]{wGPR}#(rt) = (#\hyperref[zrGPR]{rGPR}#(rs) & #\hyperref[zzzerozyextend]{zero\_extend}#(imm)) - } diff --git a/cheri/sail_latex/sailfnexecuteBCMPZ.tex b/cheri/sail_latex/sailfnexecuteBCMPZ.tex deleted file mode 100644 index ffaa5df3..00000000 --- a/cheri/sail_latex/sailfnexecuteBCMPZ.tex +++ /dev/null @@ -1,17 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, cmp, link, likely)) = - { - linkVal = PC + 8; - regVal = #\hyperref[zrGPR]{rGPR}#(rs); - condition = #\hyperref[zcompare]{compare}#(cmp, regVal, #\hyperref[zzzerozyextend]{zero\_extend}#(0b0)); - if (condition) then - { - let offset : #\hyperref[zbits]{bits}#(64) = (#\hyperref[zsignzyextend]{sign\_extend}#(imm @ 0b00) + 4) in - #\hyperref[zexecutezybranch]{execute\_branch}#(PC + offset); - } - else if (likely) then - { - nextPC = PC + 8 /* skip branch delay */ - }; - if (link) then - #\hyperref[zwGPR]{wGPR}#(0b11111) = linkVal - } diff --git a/cheri/sail_latex/sailfnexecuteBEQ.tex b/cheri/sail_latex/sailfnexecuteBEQ.tex deleted file mode 100644 index 348c1c0e..00000000 --- a/cheri/sail_latex/sailfnexecuteBEQ.tex +++ /dev/null @@ -1,13 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zBEQ]{BEQ}#(rs, rd, imm, ne, likely)) = - { - if ((#\hyperref[zrGPR]{rGPR}#(rs) == #\hyperref[zrGPR]{rGPR}#(rd)) ^ ne) then - { - let offset : #\hyperref[zbits]{bits}#(64) = (#\hyperref[zsignzyextend]{sign\_extend}#(imm @ 0b00) + 4) in - #\hyperref[zexecutezybranch]{execute\_branch}#(PC + offset); - } - else - { - if (likely) then - nextPC = PC + 8; /* skip branch delay */ - } - } diff --git a/cheri/sail_latex/sailfnexecuteBREAK.tex b/cheri/sail_latex/sailfnexecuteBREAK.tex deleted file mode 100644 index 06f15ea9..00000000 --- a/cheri/sail_latex/sailfnexecuteBREAK.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zBREAK]{BREAK}#()) = - { - (#\hyperref[zSignalException]{SignalException}#(Bp)) - } diff --git a/cheri/sail_latex/sailfnexecuteCACHE.tex b/cheri/sail_latex/sailfnexecuteCACHE.tex deleted file mode 100644 index 14ecf045..00000000 --- a/cheri/sail_latex/sailfnexecuteCACHE.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCACHE]{CACHE}#(base, op, imm)) = - #\hyperref[zcheckCPzeroAccess]{checkCP0Access}# () /* pretty much a NOP because no caches */ diff --git a/cheri/sail_latex/sailfnexecuteCAndPerm.tex b/cheri/sail_latex/sailfnexecuteCAndPerm.tex deleted file mode 100644 index b2cc7bc3..00000000 --- a/cheri/sail_latex/sailfnexecuteCAndPerm.tex +++ /dev/null @@ -1,18 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zCAndPerm]{CAndPerm}#(cd, cb, rt)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - let cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - let rt_val = #\hyperref[zrGPR]{rGPR}#(rt); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else - let perms = #\hyperref[zgetCapPerms]{getCapPerms}#(cb_val) in - let newCap = #\hyperref[zsetCapPerms]{setCapPerms}#(cb_val, (perms & rt_val[30..0])) in - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, newCap); -} diff --git a/cheri/sail_latex/sailfnexecuteCBX.tex b/cheri/sail_latex/sailfnexecuteCBX.tex deleted file mode 100644 index 47463a93..00000000 --- a/cheri/sail_latex/sailfnexecuteCBX.tex +++ /dev/null @@ -1,11 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCBX]{CBX}#(cb, imm, notset)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if (((#\hyperref[zreadCapReg]{readCapReg}#(cb)).tag) ^ notset) then - { - let offset : #\hyperref[zbits]{bits}#(64) = (#\hyperref[zsignzyextend]{sign\_extend}#(imm @ 0b00) + 4) in - #\hyperref[zexecutezybranch]{execute\_branch}#(PC + offset); - } -} diff --git a/cheri/sail_latex/sailfnexecuteCBZ.tex b/cheri/sail_latex/sailfnexecuteCBZ.tex deleted file mode 100644 index 99a6be08..00000000 --- a/cheri/sail_latex/sailfnexecuteCBZ.tex +++ /dev/null @@ -1,11 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCBZ]{CBZ}#(cb, imm, notzero)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if (((#\hyperref[zreadCapReg]{readCapReg}#(cb)) == null_cap) ^ notzero) then - { - let offset : #\hyperref[zbits]{bits}#(64) = (#\hyperref[zsignzyextend]{sign\_extend}#(imm @ 0b00) + 4) in - #\hyperref[zexecutezybranch]{execute\_branch}#(PC + offset); - } -} diff --git a/cheri/sail_latex/sailfnexecuteCBuildCap.tex b/cheri/sail_latex/sailfnexecuteCBuildCap.tex deleted file mode 100644 index cff66cc3..00000000 --- a/cheri/sail_latex/sailfnexecuteCBuildCap.tex +++ /dev/null @@ -1,40 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCBuildCap]{CBuildCap}#(cd, cb, ct)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cb_val = #\hyperref[zreadCapRegDDC]{readCapRegDDC}#(cb); - ct_val = #\hyperref[zreadCapReg]{readCapReg}#(ct); - cb_base = #\hyperref[zgetCapBase]{getCapBase}#(cb_val); - ct_base = #\hyperref[zgetCapBase]{getCapBase}#(ct_val); - cb_top = #\hyperref[zgetCapTop]{getCapTop}#(cb_val); - ct_top = #\hyperref[zgetCapTop]{getCapTop}#(ct_val); - cb_perms = #\hyperref[zgetCapPerms]{getCapPerms}#(cb_val); - ct_perms = #\hyperref[zgetCapPerms]{getCapPerms}#(ct_val); - ct_offset = #\hyperref[zgetCapOffset]{getCapOffset}#(ct_val); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(ct)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, ct) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if ct_base < cb_base then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if ct_top > cb_top then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if ct_base > ct_top then /* check for length < 0 - possible because ct might be untagged */ - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, ct) - else if (ct_perms & cb_perms) != ct_perms then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_UserDefViolation, cb) - else - let (exact, cd1) = #\hyperref[zsetCapBounds]{setCapBounds}#(cb_val, #\hyperref[ztozybits]{to\_bits}#(64, ct_base), #\hyperref[ztozybits]{to\_bits}#(65, ct_top)) in - let (representable, cd2) = #\hyperref[zsetCapOffset]{setCapOffset}#(cd1, #\hyperref[ztozybits]{to\_bits}#(64, ct_offset)) in - let cd3 = #\hyperref[zsetCapPerms]{setCapPerms}#(cd2, ct_perms) in - { - assert(exact, ""); /* base and top came from ct originally so will be exact */ - assert(representable, ""); /* similarly offset should be representable XXX except for fastRepCheck */ - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, cd3); - } -} diff --git a/cheri/sail_latex/sailfnexecuteCCSeal.tex b/cheri/sail_latex/sailfnexecuteCCSeal.tex deleted file mode 100644 index 7a1bc402..00000000 --- a/cheri/sail_latex/sailfnexecuteCCSeal.tex +++ /dev/null @@ -1,37 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCCSeal]{CCSeal}#(cd, cs, ct)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cs_val = #\hyperref[zreadCapReg]{readCapReg}#(cs); - ct_val = #\hyperref[zreadCapReg]{readCapReg}#(ct); - ct_cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(ct_val); - ct_top = #\hyperref[zgetCapTop]{getCapTop}#(ct_val); - ct_base = #\hyperref[zgetCapBase]{getCapBase}#(ct_val); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cs)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cs) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(ct)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, ct) - else if #\hyperref[znot]{not}# (cs_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cs) - else if (#\hyperref[znot]{not}# (ct_val.tag)) | (#\hyperref[zgetCapCursor]{getCapCursor}#(ct_val) == #\hyperref[zunsigned]{unsigned}#(bitone ^^ 64)) then - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, cs_val) - else if (cs_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cs) - else if (ct_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, ct) - else if #\hyperref[znot]{not}# (ct_val.permit_seal) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitSealViolation, ct) - else if (ct_cursor < ct_base) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, ct) - else if (ct_cursor >= ct_top) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, ct) - else if (ct_cursor > max_otype) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, ct) - else - let (success, newCap) = #\hyperref[zsealCap]{sealCap}#(cs_val, #\hyperref[ztozybits]{to\_bits}#(24, ct_cursor)) in - if #\hyperref[znot]{not}# (success) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_InexactBounds, cs) - else - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, newCap) -} diff --git a/cheri/sail_latex/sailfnexecuteCCall.tex b/cheri/sail_latex/sailfnexecuteCCall.tex deleted file mode 100644 index 1cae71b0..00000000 --- a/cheri/sail_latex/sailfnexecuteCCall.tex +++ /dev/null @@ -1,32 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCCall]{CCall}#(cs, cb, 0b00000000000)) = /* selector=0 */ -{ - /* Partial implementation of CCall with checks in hardware, but raising a trap to perform trusted stack manipulation */ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cs_val = #\hyperref[zreadCapReg]{readCapReg}#(cs); - cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - cs_cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(cs_val); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cs)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cs) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if #\hyperref[znot]{not}# (cs_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cs) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if #\hyperref[znot]{not}# (cs_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cs) - else if #\hyperref[znot]{not}# (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if ((cs_val.otype) != (cb_val.otype)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TypeViolation, cs) - else if #\hyperref[znot]{not}# (cs_val.permit_execute) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitExecuteViolation, cs) - else if (cb_val.permit_execute) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitExecuteViolation, cb) - else if (cs_cursor < #\hyperref[zgetCapBase]{getCapBase}#(cs_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cs) - else if (cs_cursor >= #\hyperref[zgetCapTop]{getCapTop}#(cs_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cs) - else - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_CallTrap, cs); -} diff --git a/cheri/sail_latex/sailfnexecuteCCheckPerm.tex b/cheri/sail_latex/sailfnexecuteCCheckPerm.tex deleted file mode 100644 index 1a4ac93c..00000000 --- a/cheri/sail_latex/sailfnexecuteCCheckPerm.tex +++ /dev/null @@ -1,13 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCCheckPerm]{CCheckPerm}#(cs, rt)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cs_val = #\hyperref[zreadCapReg]{readCapReg}#(cs); - cs_perms : #\hyperref[zbits]{bits}#(64) = #\hyperref[zzzerozyextend]{zero\_extend}#(#\hyperref[zgetCapPerms]{getCapPerms}#(cs_val)); - rt_perms = #\hyperref[zrGPR]{rGPR}#(rt); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cs)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cs) - else if #\hyperref[znot]{not}# (cs_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cs) - else if ((cs_perms & rt_perms) != rt_perms) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_UserDefViolation, cs) -} diff --git a/cheri/sail_latex/sailfnexecuteCCheckType.tex b/cheri/sail_latex/sailfnexecuteCCheckType.tex deleted file mode 100644 index fa9da35a..00000000 --- a/cheri/sail_latex/sailfnexecuteCCheckType.tex +++ /dev/null @@ -1,20 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCCheckType]{CCheckType}#(cs, cb)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cs_val = #\hyperref[zreadCapReg]{readCapReg}#(cs); - cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cs)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cs) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if #\hyperref[znot]{not}# (cs_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cs) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if #\hyperref[znot]{not}# (cs_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cs) - else if #\hyperref[znot]{not}# (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if ((cs_val.otype) != (cb_val.otype)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TypeViolation, cs) -} diff --git a/cheri/sail_latex/sailfnexecuteCClearTag.tex b/cheri/sail_latex/sailfnexecuteCClearTag.tex deleted file mode 100644 index 54863f96..00000000 --- a/cheri/sail_latex/sailfnexecuteCClearTag.tex +++ /dev/null @@ -1,13 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCClearTag]{CClearTag}#(cd, cb)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else - { - cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, {cb_val with tag=false}); - } -} diff --git a/cheri/sail_latex/sailfnexecuteCCopyType.tex b/cheri/sail_latex/sailfnexecuteCCopyType.tex deleted file mode 100644 index dd34a178..00000000 --- a/cheri/sail_latex/sailfnexecuteCCopyType.tex +++ /dev/null @@ -1,31 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCCopyType]{CCopyType}#(cd, cb, ct)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - ct_val = #\hyperref[zreadCapReg]{readCapReg}#(ct); - cb_base = #\hyperref[zgetCapBase]{getCapBase}#(cb_val); - cb_top = #\hyperref[zgetCapTop]{getCapTop}#(cb_val); - ct_otype = #\hyperref[zunsigned]{unsigned}#(ct_val.otype); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(ct)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, ct) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if (ct_val.sealed) then { - if ct_otype < cb_base then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if ct_otype >= cb_top then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else - let (success, cap) = #\hyperref[zsetCapOffset]{setCapOffset}#(cb_val, #\hyperref[ztozybits]{to\_bits}#(64, ct_otype - cb_base)) in { - assert(success, ""); /* offset is in bounds so must succeed */ - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, cap); - } - } else - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, #\hyperref[zintzytozycap]{int\_to\_cap}#(bitone ^^ 64)) -} diff --git a/cheri/sail_latex/sailfnexecuteCFromPtr.tex b/cheri/sail_latex/sailfnexecuteCFromPtr.tex deleted file mode 100644 index eeb1fdc6..00000000 --- a/cheri/sail_latex/sailfnexecuteCFromPtr.tex +++ /dev/null @@ -1,22 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCFromPtr]{CFromPtr}#(cd, cb, rt)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cb_val = #\hyperref[zreadCapRegDDC]{readCapRegDDC}#(cb); - rt_val = #\hyperref[zrGPR]{rGPR}#(rt); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if (rt_val == 0x0000000000000000) then - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, null_cap) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else - let (success, newCap) = #\hyperref[zsetCapOffset]{setCapOffset}#(cb_val, rt_val) in - if (success) then - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, newCap) - else - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, #\hyperref[zintzytozycap]{int\_to\_cap}#(#\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapBase]{getCapBase}#(cb_val)) + rt_val)) -} diff --git a/cheri/sail_latex/sailfnexecuteCGetAddr.tex b/cheri/sail_latex/sailfnexecuteCGetAddr.tex deleted file mode 100644 index dd35b2ce..00000000 --- a/cheri/sail_latex/sailfnexecuteCGetAddr.tex +++ /dev/null @@ -1,9 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCGetAddr]{CGetAddr}#(rd, cb)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = #\hyperref[zreadCapReg]{readCapReg}#(cb) in - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapCursor]{getCapCursor}#(capVal)); -} diff --git a/cheri/sail_latex/sailfnexecuteCGetBase.tex b/cheri/sail_latex/sailfnexecuteCGetBase.tex deleted file mode 100644 index 305762b9..00000000 --- a/cheri/sail_latex/sailfnexecuteCGetBase.tex +++ /dev/null @@ -1,9 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCGetBase]{CGetBase}#(rd, cb)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = #\hyperref[zreadCapReg]{readCapReg}#(cb) in - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapBase]{getCapBase}#(capVal)); -} diff --git a/cheri/sail_latex/sailfnexecuteCGetCause.tex b/cheri/sail_latex/sailfnexecuteCGetCause.tex deleted file mode 100644 index 1753022e..00000000 --- a/cheri/sail_latex/sailfnexecuteCGetCause.tex +++ /dev/null @@ -1,8 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCGetCause]{CGetCause}#(rd)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if #\hyperref[znot]{not}# (#\hyperref[zpcczyaccesszysystemzyregs]{pcc\_access\_system\_regs}# ()) then - #\hyperref[zraisezyctwozyexceptionzynoreg]{raise\_c2\_exception\_noreg}#(CapEx_AccessSystemRegsViolation) - else - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zzzerozyextend]{zero\_extend}#(CapCause.#\hyperref[zbits]{bits}#()) -} diff --git a/cheri/sail_latex/sailfnexecuteCGetLen.tex b/cheri/sail_latex/sailfnexecuteCGetLen.tex deleted file mode 100644 index 53450720..00000000 --- a/cheri/sail_latex/sailfnexecuteCGetLen.tex +++ /dev/null @@ -1,10 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCGetLen]{CGetLen}#(rd, cb)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = #\hyperref[zreadCapReg]{readCapReg}#(cb) in - let len65 = #\hyperref[zgetCapLength]{getCapLength}#(capVal) in - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[ztozybits]{to\_bits}#(64, if len65 > MAX_U64 then MAX_U64 else len65); -} diff --git a/cheri/sail_latex/sailfnexecuteCGetOffset.tex b/cheri/sail_latex/sailfnexecuteCGetOffset.tex deleted file mode 100644 index de2e8e6c..00000000 --- a/cheri/sail_latex/sailfnexecuteCGetOffset.tex +++ /dev/null @@ -1,9 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCGetOffset]{CGetOffset}#(rd, cb)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = #\hyperref[zreadCapReg]{readCapReg}#(cb) in - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapOffset]{getCapOffset}#(capVal)); -} diff --git a/cheri/sail_latex/sailfnexecuteCGetPCC.tex b/cheri/sail_latex/sailfnexecuteCGetPCC.tex deleted file mode 100644 index 08b9aa67..00000000 --- a/cheri/sail_latex/sailfnexecuteCGetPCC.tex +++ /dev/null @@ -1,11 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCGetPCC]{CGetPCC}#(cd)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else - let pcc = (#\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(PCC)) in - let (success, pcc2) = #\hyperref[zsetCapOffset]{setCapOffset}#(pcc, PC) in - {assert (success, ""); /* guaranteed to be in-bounds */ - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, pcc2)}; -} diff --git a/cheri/sail_latex/sailfnexecuteCGetPCCSetOffset.tex b/cheri/sail_latex/sailfnexecuteCGetPCCSetOffset.tex deleted file mode 100644 index b9af822e..00000000 --- a/cheri/sail_latex/sailfnexecuteCGetPCCSetOffset.tex +++ /dev/null @@ -1,14 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCGetPCCSetOffset]{CGetPCCSetOffset}#(cd, rs)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else - let pcc = (#\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(PCC)) in - let rs_val = #\hyperref[zrGPR]{rGPR}#(rs) in - let (success, newPCC) = #\hyperref[zsetCapOffset]{setCapOffset}#(pcc, rs_val) in - if (success) then - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, newPCC) - else - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, #\hyperref[zintzytozycap]{int\_to\_cap}#(rs_val)); -} diff --git a/cheri/sail_latex/sailfnexecuteCGetPerm.tex b/cheri/sail_latex/sailfnexecuteCGetPerm.tex deleted file mode 100644 index 8bde1b68..00000000 --- a/cheri/sail_latex/sailfnexecuteCGetPerm.tex +++ /dev/null @@ -1,9 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCGetPerm]{CGetPerm}#(rd, cb)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = #\hyperref[zreadCapReg]{readCapReg}#(cb) in - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zzzerozyextend]{zero\_extend}#(#\hyperref[zgetCapPerms]{getCapPerms}#(capVal)); -} diff --git a/cheri/sail_latex/sailfnexecuteCGetSealed.tex b/cheri/sail_latex/sailfnexecuteCGetSealed.tex deleted file mode 100644 index fb51d742..00000000 --- a/cheri/sail_latex/sailfnexecuteCGetSealed.tex +++ /dev/null @@ -1,9 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCGetSealed]{CGetSealed}#(rd, cb)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = #\hyperref[zreadCapReg]{readCapReg}#(cb) in - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zzzerozyextend]{zero\_extend}#(capVal.sealed); -} diff --git a/cheri/sail_latex/sailfnexecuteCGetTag.tex b/cheri/sail_latex/sailfnexecuteCGetTag.tex deleted file mode 100644 index 827aed6e..00000000 --- a/cheri/sail_latex/sailfnexecuteCGetTag.tex +++ /dev/null @@ -1,9 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCGetTag]{CGetTag}#(rd, cb)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = #\hyperref[zreadCapReg]{readCapReg}#(cb) in - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zzzerozyextend]{zero\_extend}#(capVal.tag); -} diff --git a/cheri/sail_latex/sailfnexecuteCGetType.tex b/cheri/sail_latex/sailfnexecuteCGetType.tex deleted file mode 100644 index abd4490d..00000000 --- a/cheri/sail_latex/sailfnexecuteCGetType.tex +++ /dev/null @@ -1,11 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCGetType]{CGetType}#(rd, cb)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else - let capVal = #\hyperref[zreadCapReg]{readCapReg}#(cb) in - #\hyperref[zwGPR]{wGPR}#(rd) = if (capVal.sealed) - then #\hyperref[zzzerozyextend]{zero\_extend}#(capVal.otype) - else (bitone ^^ 64) -} diff --git a/cheri/sail_latex/sailfnexecuteCIncOffset.tex b/cheri/sail_latex/sailfnexecuteCIncOffset.tex deleted file mode 100644 index 4b4b1888..00000000 --- a/cheri/sail_latex/sailfnexecuteCIncOffset.tex +++ /dev/null @@ -1,18 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCIncOffset]{CIncOffset}#(cd, cb, rt)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - rt_val = #\hyperref[zrGPR]{rGPR}#(rt); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if ((cb_val.tag) & (cb_val.sealed) & (rt_val != 0x0000000000000000)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else - let (success, newCap) = #\hyperref[zincCapOffset]{incCapOffset}#(cb_val, rt_val) in - if (success) then - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, newCap) - else - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, #\hyperref[zintzytozycap]{int\_to\_cap}#(#\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapBase]{getCapBase}#(cb_val)) + rt_val)) -} diff --git a/cheri/sail_latex/sailfnexecuteCIncOffsetImmediate.tex b/cheri/sail_latex/sailfnexecuteCIncOffsetImmediate.tex deleted file mode 100644 index d82f66c9..00000000 --- a/cheri/sail_latex/sailfnexecuteCIncOffsetImmediate.tex +++ /dev/null @@ -1,18 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCIncOffsetImmediate]{CIncOffsetImmediate}#(cd, cb, imm)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - let cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - let imm64 : #\hyperref[zbits]{bits}#(64) = #\hyperref[zsignzyextend]{sign\_extend}#(imm) in - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if ((cb_val.tag) & (cb_val.sealed)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else - let (success, newCap) = #\hyperref[zincCapOffset]{incCapOffset}#(cb_val, imm64) in - if (success) then - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, newCap) - else - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, #\hyperref[zintzytozycap]{int\_to\_cap}#(#\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapBase]{getCapBase}#(cb_val)) + imm64)) -} diff --git a/cheri/sail_latex/sailfnexecuteCJALR.tex b/cheri/sail_latex/sailfnexecuteCJALR.tex deleted file mode 100644 index 76a5aa86..00000000 --- a/cheri/sail_latex/sailfnexecuteCJALR.tex +++ /dev/null @@ -1,35 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zCJALR]{CJALR}#(cd, cb, link)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - cb_ptr = #\hyperref[zgetCapCursor]{getCapCursor}#(cb_val); - cb_top = #\hyperref[zgetCapTop]{getCapTop}#(cb_val); - cb_base= #\hyperref[zgetCapBase]{getCapBase}#(cb_val); - if (link & #\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.permit_execute) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitExecuteViolation, cb) - else if (cb_ptr < cb_base) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if ((cb_ptr + 4) > cb_top) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if ((cb_ptr % 4) != 0) then - #\hyperref[zSignalException]{SignalException}#(AdEL) - else - { - if (link) then - let pcc = #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(PCC) in - let (success, linkCap) = #\hyperref[zsetCapOffset]{setCapOffset}#(pcc, PC+8) in - if (success) then - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, linkCap) - else - assert(false, ""); - #\hyperref[zexecutezybranchzypcc]{execute\_branch\_pcc}#(cb_val); - } -} diff --git a/cheri/sail_latex/sailfnexecuteCLC.tex b/cheri/sail_latex/sailfnexecuteCLC.tex deleted file mode 100644 index a128ee88..00000000 --- a/cheri/sail_latex/sailfnexecuteCLC.tex +++ /dev/null @@ -1,44 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCLC]{CLC}#(cd, cb, rt, offset, linked)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cb_val = #\hyperref[zreadCapRegDDC]{readCapRegDDC}#(cb); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.permit_load) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitLoadViolation, cb) - else - { - cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(cb_val); - vAddr = (cursor + #\hyperref[zunsigned]{unsigned}#(#\hyperref[zrGPR]{rGPR}#(rt)) + 16 * #\hyperref[zsigned]{signed}#(offset)) % #\hyperref[zpowtwo]{pow2}#(64); - vAddr64= #\hyperref[ztozybits]{to\_bits}#(64, vAddr); - if ((vAddr + cap_size) > #\hyperref[zgetCapTop]{getCapTop}#(cb_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if (vAddr < #\hyperref[zgetCapBase]{getCapBase}#(cb_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if ((vAddr % cap_size) != 0) then - #\hyperref[zSignalExceptionBadAddr]{SignalExceptionBadAddr}#(AdEL, vAddr64) - else - { - let (pAddr, suppressTag) = #\hyperref[zTLBTranslateC]{TLBTranslateC}#(vAddr64, LoadData) in - let 'cd = #\hyperref[zunsigned]{unsigned}#(cd) in - if (linked) then - { - CP0LLBit = 0b1; - CP0LLAddr = pAddr; - let (tag, mem) = #\hyperref[zMEMrzytaggedzyreserve]{MEMr\_tagged\_reserve}#(pAddr) in - (*CapRegs[cd]) = #\hyperref[zmemBitsToCapBits]{memBitsToCapBits}#(tag & (cb_val.permit_load_cap) & (#\hyperref[znot]{not}# (suppressTag)), mem); - } - else - { - let (tag, mem) = #\hyperref[zMEMrzytagged]{MEMr\_tagged}#(pAddr) in - (*CapRegs[cd]) = #\hyperref[zmemBitsToCapBits]{memBitsToCapBits}#(tag & (cb_val.permit_load_cap) & (#\hyperref[znot]{not}# (suppressTag)), mem); - } - } - } -} diff --git a/cheri/sail_latex/sailfnexecuteCLoad.tex b/cheri/sail_latex/sailfnexecuteCLoad.tex deleted file mode 100644 index 399e63f0..00000000 --- a/cheri/sail_latex/sailfnexecuteCLoad.tex +++ /dev/null @@ -1,39 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCLoad]{CLoad}#(rd, cb, rt, offset, signext, width, linked)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cb_val = #\hyperref[zreadCapRegDDC]{readCapRegDDC}#(cb); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.permit_load) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitLoadViolation, cb) - else - { - let 'size = #\hyperref[zwordWidthBytes]{wordWidthBytes}#(width); - let cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(cb_val); - let vAddr = (cursor + #\hyperref[zunsigned]{unsigned}#(#\hyperref[zrGPR]{rGPR}#(rt)) + size*#\hyperref[zsigned]{signed}#(offset)) % #\hyperref[zpowtwo]{pow2}#(64); - let vAddr64 = #\hyperref[ztozybits]{to\_bits}#(64, vAddr); - if ((vAddr + size) > #\hyperref[zgetCapTop]{getCapTop}#(cb_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if (vAddr < #\hyperref[zgetCapBase]{getCapBase}#(cb_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if #\hyperref[znot]{not}# (#\hyperref[zisAddressAligned]{isAddressAligned}#(vAddr64, width)) then - #\hyperref[zSignalExceptionBadAddr]{SignalExceptionBadAddr}#(AdEL, vAddr64) - else - { - pAddr = (#\hyperref[zTLBTranslate]{TLBTranslate}#(vAddr64, LoadData)); - memResult : #\hyperref[zbits]{bits}#(64) = if (linked) then - { - CP0LLBit = 0b1; - CP0LLAddr = pAddr; - #\hyperref[zextendLoad]{extendLoad}#(#\hyperref[zMEMrzyreservezywrapper]{MEMr\_reserve\_wrapper}#(pAddr, size), signext) - } - else - #\hyperref[zextendLoad]{extendLoad}#(#\hyperref[zMEMrzywrapper]{MEMr\_wrapper}#(pAddr, size), signext); - #\hyperref[zwGPR]{wGPR}#(rd) = memResult; - } - } -} diff --git a/cheri/sail_latex/sailfnexecuteCMOVX.tex b/cheri/sail_latex/sailfnexecuteCMOVX.tex deleted file mode 100644 index 94039992..00000000 --- a/cheri/sail_latex/sailfnexecuteCMOVX.tex +++ /dev/null @@ -1,10 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCMOVX]{CMOVX}#(cd, cb, rt, ismovn)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if ((#\hyperref[zrGPR]{rGPR}#(rt) == #\hyperref[zzzeros]{zeros}#()) ^ ismovn) then - #\hyperref[zwriteCapReg]{writeCapReg}#(cd) = #\hyperref[zreadCapReg]{readCapReg}#(cb); -} diff --git a/cheri/sail_latex/sailfnexecuteCPtrCmp.tex b/cheri/sail_latex/sailfnexecuteCPtrCmp.tex deleted file mode 100644 index fc0f7c54..00000000 --- a/cheri/sail_latex/sailfnexecuteCPtrCmp.tex +++ /dev/null @@ -1,43 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, ct, op)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(ct)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, ct) - else - { - let cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - let ct_val = #\hyperref[zreadCapReg]{readCapReg}#(ct); - equal = false; - ltu = false; - lts = false; - if (cb_val.tag != ct_val.tag) then - { - if #\hyperref[znot]{not}# (cb_val.tag) then - { - ltu = true; - lts = true; - } - } - else - { - cursor1 = #\hyperref[zgetCapCursor]{getCapCursor}#(cb_val); - cursor2 = #\hyperref[zgetCapCursor]{getCapCursor}#(ct_val); - equal = (cursor1 == cursor2); - ltu = (cursor1 < cursor2); - lts = #\hyperref[ztozybits]{to\_bits}#(64, cursor1) <_s #\hyperref[ztozybits]{to\_bits}#(64, cursor2); - }; - let cmp : bool = match op { - CEQ => equal, - CNE => #\hyperref[znot]{not}# (equal), - CLT => lts, - CLE => lts | equal, - CLTU => ltu, - CLEU => ltu | equal, - CEXEQ => cb_val == ct_val, - CNEXEQ => cb_val != ct_val - }; - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zzzerozyextend]{zero\_extend}# (cmp) - } -} diff --git a/cheri/sail_latex/sailfnexecuteCReadHwr.tex b/cheri/sail_latex/sailfnexecuteCReadHwr.tex deleted file mode 100644 index cc347d08..00000000 --- a/cheri/sail_latex/sailfnexecuteCReadHwr.tex +++ /dev/null @@ -1,35 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCReadHwr]{CReadHwr}#(cd, sel)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - let (needSup, needAccessSys) : (bool, bool) = match #\hyperref[zunsigned]{unsigned}#(sel) { - 0 => (false, false), /* DDC -- no access control */ - 1 => (false, false), /* CTLSU -- no access control */ - 8 => (false, true), /* CTLSP -- privileged TLS */ - 22 => (true, false), /* KR1C */ - 23 => (true, false), /* KR2C */ - 29 => (true, true), /* KCC */ - 30 => (true, true), /* KDC */ - 31 => (true, true), /* EPCC */ - _ => #\hyperref[zSignalException]{SignalException}#(ResI) - }; - if #\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if needAccessSys & #\hyperref[znot]{not}#(#\hyperref[zpcczyaccesszysystemzyregs]{pcc\_access\_system\_regs}#()) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, sel) - else if needSup & #\hyperref[znot]{not}#(#\hyperref[zgrantsAccess]{grantsAccess}#(#\hyperref[zgetAccessLevel]{getAccessLevel}#(), Supervisor)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, sel) - else { - capVal : CapStruct = match #\hyperref[zunsigned]{unsigned}#(sel) { - 0 => #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(DDC), - 1 => #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(CTLSU), - 8 => #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(CTLSP), - 22 => #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(KR1C), - 23 => #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(KR2C), - 29 => #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(KCC), - 30 => #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(KDC), - 31 => #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(EPCC), - _ => {assert(false, "should be unreachable code"); undefined} - }; - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, capVal); - }; -} diff --git a/cheri/sail_latex/sailfnexecuteCReturn.tex b/cheri/sail_latex/sailfnexecuteCReturn.tex deleted file mode 100644 index 67f07815..00000000 --- a/cheri/sail_latex/sailfnexecuteCReturn.tex +++ /dev/null @@ -1,5 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCReturn]{CReturn}#()) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - #\hyperref[zraisezyctwozyexceptionzynoreg]{raise\_c2\_exception\_noreg}#(CapEx_ReturnTrap) -} diff --git a/cheri/sail_latex/sailfnexecuteCSC.tex b/cheri/sail_latex/sailfnexecuteCSC.tex deleted file mode 100644 index cd89dcdf..00000000 --- a/cheri/sail_latex/sailfnexecuteCSC.tex +++ /dev/null @@ -1,48 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCSC]{CSC}#(cs, cb, rt, rd, offset, conditional)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cs_val = #\hyperref[zreadCapReg]{readCapReg}#(cs); - cb_val = #\hyperref[zreadCapRegDDC]{readCapRegDDC}#(cb); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cs)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cs) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.permit_store) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitStoreViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.permit_store_cap) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitStoreCapViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.permit_store_local_cap) & (cs_val.tag) & #\hyperref[znot]{not}# (cs_val.global) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitStoreLocalCapViolation, cb) - else - { - cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(cb_val); - vAddr = (cursor + #\hyperref[zunsigned]{unsigned}#(#\hyperref[zrGPR]{rGPR}#(rt)) + 16 * #\hyperref[zsigned]{signed}#(offset)) % #\hyperref[zpowtwo]{pow2}#(64); - vAddr64= #\hyperref[ztozybits]{to\_bits}#(64, vAddr); - if ((vAddr + cap_size) > #\hyperref[zgetCapTop]{getCapTop}#(cb_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if (vAddr < #\hyperref[zgetCapBase]{getCapBase}#(cb_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if ((vAddr % cap_size) != 0) then - #\hyperref[zSignalExceptionBadAddr]{SignalExceptionBadAddr}#(AdES, vAddr64) - else - { - let (pAddr, noStoreCap) = #\hyperref[zTLBTranslateC]{TLBTranslateC}#(vAddr64, StoreData) in - if (cs_val.tag & noStoreCap) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TLBNoStoreCap, cs) - else if (conditional) then - { - success = if (CP0LLBit[0]) then - #\hyperref[zMEMwzytaggedzyconditional]{MEMw\_tagged\_conditional}#(pAddr, cs_val.tag, #\hyperref[zcapStructToMemBits]{capStructToMemBits}#(cs_val)) - else - false; - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zzzerozyextend]{zero\_extend}#(success); - } - else - #\hyperref[zMEMwzytagged]{MEMw\_tagged}#(pAddr, cs_val.tag, #\hyperref[zcapStructToMemBits]{capStructToMemBits}#(cs_val)); - } - } -} diff --git a/cheri/sail_latex/sailfnexecuteCSeal.tex b/cheri/sail_latex/sailfnexecuteCSeal.tex deleted file mode 100644 index bf062276..00000000 --- a/cheri/sail_latex/sailfnexecuteCSeal.tex +++ /dev/null @@ -1,37 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCSeal]{CSeal}#(cd, cs, ct)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cs_val = #\hyperref[zreadCapReg]{readCapReg}#(cs); - ct_val = #\hyperref[zreadCapReg]{readCapReg}#(ct); - ct_cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(ct_val); - ct_top = #\hyperref[zgetCapTop]{getCapTop}#(ct_val); - ct_base = #\hyperref[zgetCapBase]{getCapBase}#(ct_val); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cs)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cs) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(ct)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, ct) - else if #\hyperref[znot]{not}# (cs_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cs) - else if #\hyperref[znot]{not}# (ct_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, ct) - else if (cs_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cs) - else if (ct_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, ct) - else if #\hyperref[znot]{not}# (ct_val.permit_seal) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitSealViolation, ct) - else if (ct_cursor < ct_base) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, ct) - else if (ct_cursor >= ct_top) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, ct) - else if (ct_cursor > max_otype) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, ct) - else - let (success, newCap) = #\hyperref[zsealCap]{sealCap}#(cs_val, #\hyperref[ztozybits]{to\_bits}#(24, ct_cursor)) in - if #\hyperref[znot]{not}# (success) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_InexactBounds, cs) - else - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, newCap) -} diff --git a/cheri/sail_latex/sailfnexecuteCSetBounds.tex b/cheri/sail_latex/sailfnexecuteCSetBounds.tex deleted file mode 100644 index b193425d..00000000 --- a/cheri/sail_latex/sailfnexecuteCSetBounds.tex +++ /dev/null @@ -1,25 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCSetBounds]{CSetBounds}#(cd, cb, rt)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - let cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - let rt_val = #\hyperref[zunsigned]{unsigned}#(#\hyperref[zrGPR]{rGPR}#(rt)); - cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(cb_val); - base = #\hyperref[zgetCapBase]{getCapBase}#(cb_val); - top = #\hyperref[zgetCapTop]{getCapTop}#(cb_val); - newTop = cursor + rt_val; - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if (cursor < base) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if (newTop > top) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else - let (_, newCap) = #\hyperref[zsetCapBounds]{setCapBounds}#(cb_val, #\hyperref[ztozybits]{to\_bits}#(64, cursor), #\hyperref[ztozybits]{to\_bits}#(65, newTop)) in - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, newCap) /* ignore exact */ -} diff --git a/cheri/sail_latex/sailfnexecuteCSetBoundsExact.tex b/cheri/sail_latex/sailfnexecuteCSetBoundsExact.tex deleted file mode 100644 index 29d049b1..00000000 --- a/cheri/sail_latex/sailfnexecuteCSetBoundsExact.tex +++ /dev/null @@ -1,28 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCSetBoundsExact]{CSetBoundsExact}#(cd, cb, rt)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - rt_val = #\hyperref[zunsigned]{unsigned}#(#\hyperref[zrGPR]{rGPR}#(rt)); - cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(cb_val); - base = #\hyperref[zgetCapBase]{getCapBase}#(cb_val); - top = #\hyperref[zgetCapTop]{getCapTop}#(cb_val); - newTop = cursor + rt_val; - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if (cursor < base) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if (newTop > top) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else - let (exact, newCap) = #\hyperref[zsetCapBounds]{setCapBounds}#(cb_val, #\hyperref[ztozybits]{to\_bits}#(64, cursor), #\hyperref[ztozybits]{to\_bits}#(65, newTop)) in - if #\hyperref[znot]{not}# (exact) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_InexactBounds, cb) - else - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, newCap) -} diff --git a/cheri/sail_latex/sailfnexecuteCSetBoundsImmediate.tex b/cheri/sail_latex/sailfnexecuteCSetBoundsImmediate.tex deleted file mode 100644 index 2d3cfb44..00000000 --- a/cheri/sail_latex/sailfnexecuteCSetBoundsImmediate.tex +++ /dev/null @@ -1,25 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCSetBoundsImmediate]{CSetBoundsImmediate}#(cd, cb, imm)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - immU = #\hyperref[zunsigned]{unsigned}#(imm); - cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(cb_val); - base = #\hyperref[zgetCapBase]{getCapBase}#(cb_val); - top = #\hyperref[zgetCapTop]{getCapTop}#(cb_val); - newTop = cursor + immU; - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if (cursor < base) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if (newTop > top) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else - let (_, newCap) = #\hyperref[zsetCapBounds]{setCapBounds}#(cb_val, #\hyperref[ztozybits]{to\_bits}#(64, cursor), #\hyperref[ztozybits]{to\_bits}#(65, newTop)) in - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, newCap) /* ignore exact */ -} diff --git a/cheri/sail_latex/sailfnexecuteCSetCause.tex b/cheri/sail_latex/sailfnexecuteCSetCause.tex deleted file mode 100644 index b6b9ca15..00000000 --- a/cheri/sail_latex/sailfnexecuteCSetCause.tex +++ /dev/null @@ -1,12 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCSetCause]{CSetCause}#(rt)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if #\hyperref[znot]{not}# (#\hyperref[zpcczyaccesszysystemzyregs]{pcc\_access\_system\_regs}# ()) then - #\hyperref[zraisezyctwozyexceptionzynoreg]{raise\_c2\_exception\_noreg}#(CapEx_AccessSystemRegsViolation) - else - { - let rt_val = #\hyperref[zrGPR]{rGPR}#(rt); - CapCause->#\hyperref[zExcCode]{ExcCode}#() = rt_val[15..8]; - CapCause->#\hyperref[zRegNum]{RegNum}#() = rt_val[7..0]; - } -} diff --git a/cheri/sail_latex/sailfnexecuteCSetOffset.tex b/cheri/sail_latex/sailfnexecuteCSetOffset.tex deleted file mode 100644 index 6973667a..00000000 --- a/cheri/sail_latex/sailfnexecuteCSetOffset.tex +++ /dev/null @@ -1,18 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCSetOffset]{CSetOffset}#(cd, cb, rt)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - let cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - let rt_val = #\hyperref[zrGPR]{rGPR}#(rt); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if ((cb_val.tag) & (cb_val.sealed)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else - let (success, newCap) = #\hyperref[zsetCapOffset]{setCapOffset}#(cb_val, rt_val) in - if (success) then - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, newCap) - else - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, #\hyperref[zintzytozycap]{int\_to\_cap}#(#\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapBase]{getCapBase}#(cb_val)) + rt_val)) -} diff --git a/cheri/sail_latex/sailfnexecuteCStore.tex b/cheri/sail_latex/sailfnexecuteCStore.tex deleted file mode 100644 index 6ab40e18..00000000 --- a/cheri/sail_latex/sailfnexecuteCStore.tex +++ /dev/null @@ -1,53 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCStore]{CStore}#(rs, cb, rt, rd, offset, width, conditional)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cb_val = #\hyperref[zreadCapRegDDC]{readCapRegDDC}#(cb); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if #\hyperref[znot]{not}# (cb_val.permit_store) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitStoreViolation, cb) - else - { - size = #\hyperref[zwordWidthBytes]{wordWidthBytes}#(width); - cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(cb_val); - vAddr = (cursor + #\hyperref[zunsigned]{unsigned}#(#\hyperref[zrGPR]{rGPR}#(rt)) + size * #\hyperref[zsigned]{signed}#(offset)) % #\hyperref[zpowtwo]{pow2}#(64); - vAddr64= #\hyperref[ztozybits]{to\_bits}#(64, vAddr); - if ((vAddr + size) > #\hyperref[zgetCapTop]{getCapTop}#(cb_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if (vAddr < #\hyperref[zgetCapBase]{getCapBase}#(cb_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cb) - else if #\hyperref[znot]{not}# (#\hyperref[zisAddressAligned]{isAddressAligned}#(vAddr64, width)) then - #\hyperref[zSignalExceptionBadAddr]{SignalExceptionBadAddr}#(AdES, vAddr64) - else - { - pAddr = (#\hyperref[zTLBTranslate]{TLBTranslate}#(vAddr64, StoreData)); - rs_val = #\hyperref[zrGPR]{rGPR}#(rs); - if (conditional) then - { - success : bool = if (CP0LLBit[0]) then - match width - { - B => #\hyperref[zMEMwzyconditionalzywrapper]{MEMw\_conditional\_wrapper}#(pAddr, 1, rs_val[7..0]), - H => #\hyperref[zMEMwzyconditionalzywrapper]{MEMw\_conditional\_wrapper}#(pAddr, 2, rs_val[15..0]), - W => #\hyperref[zMEMwzyconditionalzywrapper]{MEMw\_conditional\_wrapper}#(pAddr, 4, rs_val[31..0]), - D => #\hyperref[zMEMwzyconditionalzywrapper]{MEMw\_conditional\_wrapper}#(pAddr, 8, rs_val) - } - else - false; - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zzzerozyextend]{zero\_extend}#(success); - } - else - match width - { - B => #\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 1) = rs_val[7..0], - H => #\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 2) = rs_val[15..0], - W => #\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 4) = rs_val[31..0], - D => #\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 8) = rs_val - } - } - } -} diff --git a/cheri/sail_latex/sailfnexecuteCSub.tex b/cheri/sail_latex/sailfnexecuteCSub.tex deleted file mode 100644 index 957b645f..00000000 --- a/cheri/sail_latex/sailfnexecuteCSub.tex +++ /dev/null @@ -1,14 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zCSub]{CSub}#(rd, cb, ct)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - let ct_val = #\hyperref[zreadCapReg]{readCapReg}#(ct); - let cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(ct)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, ct) - else - { - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapCursor]{getCapCursor}#(cb_val) - #\hyperref[zgetCapCursor]{getCapCursor}#(ct_val)) - } -} diff --git a/cheri/sail_latex/sailfnexecuteCTestSubset.tex b/cheri/sail_latex/sailfnexecuteCTestSubset.tex deleted file mode 100644 index a339dff7..00000000 --- a/cheri/sail_latex/sailfnexecuteCTestSubset.tex +++ /dev/null @@ -1,29 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCTestSubset]{CTestSubset}#(rd, cb, ct)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cb_val = #\hyperref[zreadCapRegDDC]{readCapRegDDC}#(cb); - ct_val = #\hyperref[zreadCapReg]{readCapReg}#(ct); - ct_top = #\hyperref[zgetCapTop]{getCapTop}#(ct_val); - ct_base = #\hyperref[zgetCapBase]{getCapBase}#(ct_val); - ct_perms = #\hyperref[zgetCapPerms]{getCapPerms}#(ct_val); - cb_top = #\hyperref[zgetCapTop]{getCapTop}#(cb_val); - cb_base = #\hyperref[zgetCapBase]{getCapBase}#(cb_val); - cb_perms = #\hyperref[zgetCapPerms]{getCapPerms}#(cb_val); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(ct)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, ct) - else { - result : #\hyperref[zbits]{bits}#(1) = if (cb_val.tag != ct_val.tag) then - 0b0 - else if (ct_base < cb_base) then - 0b0 - else if (ct_top > cb_top) then - 0b0 - else if ((ct_perms & cb_perms) != ct_perms) then - 0b0 - else - 0b1; - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zzzerozyextend]{zero\_extend}#(result); - } -} diff --git a/cheri/sail_latex/sailfnexecuteCToPtr.tex b/cheri/sail_latex/sailfnexecuteCToPtr.tex deleted file mode 100644 index f37d7ac3..00000000 --- a/cheri/sail_latex/sailfnexecuteCToPtr.tex +++ /dev/null @@ -1,27 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zCToPtr]{CToPtr}#(rd, cb, ct)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - let ct_val = #\hyperref[zreadCapRegDDC]{readCapRegDDC}#(ct); - let cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(ct)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, ct) - else if #\hyperref[znot]{not}# (ct_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, ct) - else if (cb_val.tag) & (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else - { - let cbBase = #\hyperref[zgetCapBase]{getCapBase}#(cb_val) in - let cbTop = #\hyperref[zgetCapTop]{getCapTop}#(cb_val) in - let ctBase = #\hyperref[zgetCapBase]{getCapBase}#(ct_val) in - let ctTop = #\hyperref[zgetCapTop]{getCapTop}#(ct_val) in - #\hyperref[zwGPR]{wGPR}#(rd) = if (#\hyperref[znot]{not}# (cb_val.tag)) | - (cbBase < ctBase) | - (cbTop > ctTop) then - #\hyperref[zzzeros]{zeros}#() - else - #\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapCursor]{getCapCursor}#(cb_val) - ctBase) - } -} diff --git a/cheri/sail_latex/sailfnexecuteCUnseal.tex b/cheri/sail_latex/sailfnexecuteCUnseal.tex deleted file mode 100644 index 48b529ef..00000000 --- a/cheri/sail_latex/sailfnexecuteCUnseal.tex +++ /dev/null @@ -1,35 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCUnseal]{CUnseal}#(cd, cs, ct)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cs_val = #\hyperref[zreadCapReg]{readCapReg}#(cs); - ct_val = #\hyperref[zreadCapReg]{readCapReg}#(ct); - ct_cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(ct_val); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cd)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cd) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cs)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cs) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(ct)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, ct) - else if #\hyperref[znot]{not}# (cs_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cs) - else if #\hyperref[znot]{not}# (ct_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, ct) - else if #\hyperref[znot]{not}# (cs_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cs) - else if (ct_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, ct) - else if (ct_cursor != #\hyperref[zunsigned]{unsigned}#(cs_val.otype)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TypeViolation, ct) - else if #\hyperref[znot]{not}# (ct_val.permit_unseal) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitUnsealViolation, ct) - else if (ct_cursor < #\hyperref[zgetCapBase]{getCapBase}#(ct_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, ct) - else if (ct_cursor >= #\hyperref[zgetCapTop]{getCapTop}#(ct_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, ct) - else - #\hyperref[zwriteCapReg]{writeCapReg}#(cd, {cs_val with - sealed=false, - otype=#\hyperref[zzzeros]{zeros}#(), - global=(cs_val.global & ct_val.global) - }) -} diff --git a/cheri/sail_latex/sailfnexecuteCWriteHwr.tex b/cheri/sail_latex/sailfnexecuteCWriteHwr.tex deleted file mode 100644 index 586efb38..00000000 --- a/cheri/sail_latex/sailfnexecuteCWriteHwr.tex +++ /dev/null @@ -1,35 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCWriteHwr]{CWriteHwr}#(cb, sel)) = -{ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - let (needSup, needAccessSys) : (bool, bool) = match #\hyperref[zunsigned]{unsigned}#(sel) { - 0 => (false, false), /* DDC -- no access control */ - 1 => (false, false), /* CTLSU -- no access control */ - 8 => (false, true), /* CTLSP -- privileged TLS */ - 22 => (true, false), /* KR1C */ - 23 => (true, false), /* KR2C */ - 29 => (true, true), /* KCC */ - 30 => (true, true), /* KDC */ - 31 => (true, true), /* EPCC */ - _ => #\hyperref[zSignalException]{SignalException}#(ResI) - }; - if #\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if needAccessSys & #\hyperref[znot]{not}#(#\hyperref[zpcczyaccesszysystemzyregs]{pcc\_access\_system\_regs}#()) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, sel) - else if needSup & #\hyperref[znot]{not}#(#\hyperref[zgrantsAccess]{grantsAccess}#(#\hyperref[zgetAccessLevel]{getAccessLevel}#(), Supervisor)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, sel) - else { - capVal = #\hyperref[zreadCapReg]{readCapReg}#(cb); - match #\hyperref[zunsigned]{unsigned}#(sel) { - 0 => DDC = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(capVal), - 1 => CTLSU = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(capVal), - 8 => CTLSP = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(capVal), - 22 => KR1C = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(capVal), - 23 => KR2C = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(capVal), - 29 => KCC = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(capVal), - 30 => KDC = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(capVal), - 31 => EPCC = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(capVal), - _ => assert(false, "should be unreachable code") - }; - }; -} diff --git a/cheri/sail_latex/sailfnexecuteClearRegs.tex b/cheri/sail_latex/sailfnexecuteClearRegs.tex deleted file mode 100644 index 5283918f..00000000 --- a/cheri/sail_latex/sailfnexecuteClearRegs.tex +++ /dev/null @@ -1,21 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zClearRegs]{ClearRegs}#(regset, m)) = -{ - if ((regset == CLo) | (regset == CHi)) then - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - if (regset == CHi) then - foreach (i from 0 to 15) - let r = #\hyperref[ztozybits]{to\_bits}#(5, i+16) in - if (m[i] & #\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(r)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, r); - foreach (i from 0 to 15) - if (m[i]) then - match regset { - GPLo => #\hyperref[zwGPR]{wGPR}#(#\hyperref[ztozybits]{to\_bits}#(5, i)) = #\hyperref[zzzeros]{zeros}#(), - GPHi => #\hyperref[zwGPR]{wGPR}#(#\hyperref[ztozybits]{to\_bits}#(5, i+16)) = #\hyperref[zzzeros]{zeros}#(), - CLo => if i == 0 then - DDC = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(null_cap) - else - #\hyperref[zwriteCapReg]{writeCapReg}#(#\hyperref[ztozybits]{to\_bits}#(5, i)) = null_cap, - CHi => #\hyperref[zwriteCapReg]{writeCapReg}#(#\hyperref[ztozybits]{to\_bits}#(5, i+16)) = null_cap - } -} diff --git a/cheri/sail_latex/sailfnexecuteCtwoDump.tex b/cheri/sail_latex/sailfnexecuteCtwoDump.tex deleted file mode 100644 index d4986ec2..00000000 --- a/cheri/sail_latex/sailfnexecuteCtwoDump.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCtwoDump]{C2Dump}# (rt)) = - () /* Currently a NOP */ diff --git a/cheri/sail_latex/sailfnexecuteDADD.tex b/cheri/sail_latex/sailfnexecuteDADD.tex deleted file mode 100644 index 8a3c2f76..00000000 --- a/cheri/sail_latex/sailfnexecuteDADD.tex +++ /dev/null @@ -1,10 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDADD]{DADD}# (rs, rt, rd)) = - { - let sum65 : #\hyperref[zbits]{bits}#(65) = #\hyperref[zsignzyextend]{sign\_extend}#(#\hyperref[zrGPR]{rGPR}#(rs)) + #\hyperref[zsignzyextend]{sign\_extend}#(#\hyperref[zrGPR]{rGPR}#(rt)) in - { - if sum65[64] != sum65[63] then - (#\hyperref[zSignalException]{SignalException}#(Ov)) - else - #\hyperref[zwGPR]{wGPR}#(rd) = sum65[63..0] - } - } diff --git a/cheri/sail_latex/sailfnexecuteDADDI.tex b/cheri/sail_latex/sailfnexecuteDADDI.tex deleted file mode 100644 index c03260b8..00000000 --- a/cheri/sail_latex/sailfnexecuteDADDI.tex +++ /dev/null @@ -1,10 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDADDI]{DADDI}# (rs, rt, imm)) = - { - let sum65 : #\hyperref[zbits]{bits}#(65) = #\hyperref[zsignzyextend]{sign\_extend}#(#\hyperref[zrGPR]{rGPR}#(rs)) + #\hyperref[zsignzyextend]{sign\_extend}#(imm) in - { - if (sum65[64] != sum65[63]) then - (#\hyperref[zSignalException]{SignalException}#(Ov)) - else - #\hyperref[zwGPR]{wGPR}#(rt) = sum65[63..0] - } - } diff --git a/cheri/sail_latex/sailfnexecuteDADDIU.tex b/cheri/sail_latex/sailfnexecuteDADDIU.tex deleted file mode 100644 index 028190a0..00000000 --- a/cheri/sail_latex/sailfnexecuteDADDIU.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDADDIU]{DADDIU}# (rs, rt, imm)) = - { - #\hyperref[zwGPR]{wGPR}#(rt) = #\hyperref[zrGPR]{rGPR}#(rs) + #\hyperref[zsignzyextend]{sign\_extend}#(imm) - } diff --git a/cheri/sail_latex/sailfnexecuteDADDU.tex b/cheri/sail_latex/sailfnexecuteDADDU.tex deleted file mode 100644 index 610deeef..00000000 --- a/cheri/sail_latex/sailfnexecuteDADDU.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDADDU]{DADDU}# (rs, rt, rd)) = - { - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zrGPR]{rGPR}#(rs) + #\hyperref[zrGPR]{rGPR}#(rt) - } diff --git a/cheri/sail_latex/sailfnexecuteDDIV.tex b/cheri/sail_latex/sailfnexecuteDDIV.tex deleted file mode 100644 index 9e16d758..00000000 --- a/cheri/sail_latex/sailfnexecuteDDIV.tex +++ /dev/null @@ -1,16 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDDIV]{DDIV}#(rs, rt)) = - { - rsVal = #\hyperref[zsigned]{signed}#(#\hyperref[zrGPR]{rGPR}#(rs)); - rtVal = #\hyperref[zsigned]{signed}#(#\hyperref[zrGPR]{rGPR}#(rt)); - let (q , r) = - if (rtVal == 0) - then (undefined : #\hyperref[zbits]{bits}#(64), undefined : #\hyperref[zbits]{bits}#(64)) - else - let qi = #\hyperref[zquotzyroundzyzzero]{quot\_round\_zero}#(rsVal, rtVal) in - let ri = (rsVal - (qi * rtVal)) in - (#\hyperref[ztozybits]{to\_bits}#(64, qi), #\hyperref[ztozybits]{to\_bits}#(64, ri)) in - { - LO = q; - HI = r; - } - } diff --git a/cheri/sail_latex/sailfnexecuteDDIVU.tex b/cheri/sail_latex/sailfnexecuteDDIVU.tex deleted file mode 100644 index af83d644..00000000 --- a/cheri/sail_latex/sailfnexecuteDDIVU.tex +++ /dev/null @@ -1,16 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDDIVU]{DDIVU}#(rs, rt)) = - { - rsVal = #\hyperref[zunsigned]{unsigned}#(#\hyperref[zrGPR]{rGPR}#(rs)); - rtVal = #\hyperref[zunsigned]{unsigned}#(#\hyperref[zrGPR]{rGPR}#(rt)); - let (q, r) = - if (rtVal == 0) - then (undefined : #\hyperref[zbits]{bits}#(64), undefined : #\hyperref[zbits]{bits}#(64)) - else - let qi = #\hyperref[zquotzyroundzyzzero]{quot\_round\_zero}#(rsVal, rtVal) in - let ri = #\hyperref[zremzyroundzyzzero]{rem\_round\_zero}#(rsVal, rtVal) in - (#\hyperref[ztozybits]{to\_bits}#(64, qi), #\hyperref[ztozybits]{to\_bits}#(64, ri)) in - { - LO = q; - HI = r; - } - } diff --git a/cheri/sail_latex/sailfnexecuteDIV.tex b/cheri/sail_latex/sailfnexecuteDIV.tex deleted file mode 100644 index 8bebe43f..00000000 --- a/cheri/sail_latex/sailfnexecuteDIV.tex +++ /dev/null @@ -1,19 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDIV]{DIV}#(rs, rt)) = - { - rsVal = #\hyperref[zrGPR]{rGPR}#(rs); - rtVal = #\hyperref[zrGPR]{rGPR}#(rt); - let (q, r) = - if (#\hyperref[zNotWordVal]{NotWordVal}#(rsVal) | #\hyperref[zNotWordVal]{NotWordVal}#(rtVal) | (rtVal == 0x0000000000000000)) then - (undefined : #\hyperref[zbits]{bits}#(32), undefined : #\hyperref[zbits]{bits}#(32)) - else - let si = #\hyperref[zsigned]{signed}#((rsVal[31..0])) in - let ti = #\hyperref[zsigned]{signed}#((rtVal[31..0])) in - let qi = #\hyperref[zquotzyroundzyzzero]{quot\_round\_zero}#(si, ti) in - let ri = si - (ti*qi) in - (#\hyperref[ztozybits]{to\_bits}#(32, qi), #\hyperref[ztozybits]{to\_bits}#(32, ri)) - in - { - HI = #\hyperref[zsignzyextend]{sign\_extend}#(r); - LO = #\hyperref[zsignzyextend]{sign\_extend}#(q); - } - } diff --git a/cheri/sail_latex/sailfnexecuteDIVU.tex b/cheri/sail_latex/sailfnexecuteDIVU.tex deleted file mode 100644 index a6e54b6a..00000000 --- a/cheri/sail_latex/sailfnexecuteDIVU.tex +++ /dev/null @@ -1,19 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDIVU]{DIVU}#(rs, rt)) = - { - rsVal = #\hyperref[zrGPR]{rGPR}#(rs); - rtVal = #\hyperref[zrGPR]{rGPR}#(rt); - let (q, r) = - if (#\hyperref[zNotWordVal]{NotWordVal}#(rsVal) | #\hyperref[zNotWordVal]{NotWordVal}#(rtVal) | rtVal == 0x0000000000000000) then - (undefined : #\hyperref[zbits]{bits}#(32), undefined : #\hyperref[zbits]{bits}#(32)) - else - let si = #\hyperref[zunsigned]{unsigned}#(rsVal[31..0]) in - let ti = #\hyperref[zunsigned]{unsigned}#(rtVal[31..0]) in - let qi = #\hyperref[zquotzyroundzyzzero]{quot\_round\_zero}#(si, ti) in - let ri = #\hyperref[zremzyroundzyzzero]{rem\_round\_zero}#(si, ti) in - (#\hyperref[ztozybits]{to\_bits}#(32, qi), #\hyperref[ztozybits]{to\_bits}#(32, ri)) - in - { - HI = #\hyperref[zsignzyextend]{sign\_extend}#(r); - LO = #\hyperref[zsignzyextend]{sign\_extend}#(q); - } - } diff --git a/cheri/sail_latex/sailfnexecuteDMULT.tex b/cheri/sail_latex/sailfnexecuteDMULT.tex deleted file mode 100644 index 595fdc74..00000000 --- a/cheri/sail_latex/sailfnexecuteDMULT.tex +++ /dev/null @@ -1,6 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDMULT]{DMULT}#(rs, rt)) = - { - result = #\hyperref[zrGPR]{rGPR}#(rs) *_s #\hyperref[zrGPR]{rGPR}#(rt); - HI = (result[127..64]); - LO = (result[63..0]); - } diff --git a/cheri/sail_latex/sailfnexecuteDMULTU.tex b/cheri/sail_latex/sailfnexecuteDMULTU.tex deleted file mode 100644 index cb23f01f..00000000 --- a/cheri/sail_latex/sailfnexecuteDMULTU.tex +++ /dev/null @@ -1,6 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDMULTU]{DMULTU}#(rs, rt)) = - { - result = #\hyperref[zrGPR]{rGPR}#(rs) *_u #\hyperref[zrGPR]{rGPR}#(rt); - HI = (result[127..64]); - LO = (result[63..0]); - } diff --git a/cheri/sail_latex/sailfnexecuteDSLL.tex b/cheri/sail_latex/sailfnexecuteDSLL.tex deleted file mode 100644 index d470bb23..00000000 --- a/cheri/sail_latex/sailfnexecuteDSLL.tex +++ /dev/null @@ -1,5 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDSLL]{DSLL}# (rt, rd, sa)) = - { - - #\hyperref[zwGPR]{wGPR}#(rd) = (#\hyperref[zrGPR]{rGPR}#(rt) << sa) - } diff --git a/cheri/sail_latex/sailfnexecuteDSLLV.tex b/cheri/sail_latex/sailfnexecuteDSLLV.tex deleted file mode 100644 index 87270292..00000000 --- a/cheri/sail_latex/sailfnexecuteDSLLV.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDSLLV]{DSLLV}# (rs, rt, rd)) = - { - #\hyperref[zwGPR]{wGPR}#(rd) = (#\hyperref[zrGPR]{rGPR}#(rt) << ((#\hyperref[zrGPR]{rGPR}#(rs))[5 .. 0])) - } diff --git a/cheri/sail_latex/sailfnexecuteDSLLthreetwo.tex b/cheri/sail_latex/sailfnexecuteDSLLthreetwo.tex deleted file mode 100644 index 0af771cf..00000000 --- a/cheri/sail_latex/sailfnexecuteDSLLthreetwo.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDSLLthreetwo]{DSLL32}# (rt, rd, sa)) = - { - #\hyperref[zwGPR]{wGPR}#(rd) = (#\hyperref[zrGPR]{rGPR}#(rt) << (0b1 @ sa)) - } diff --git a/cheri/sail_latex/sailfnexecuteDSRA.tex b/cheri/sail_latex/sailfnexecuteDSRA.tex deleted file mode 100644 index 119d7e4d..00000000 --- a/cheri/sail_latex/sailfnexecuteDSRA.tex +++ /dev/null @@ -1,5 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDSRA]{DSRA}# (rt, rd, sa)) = - { - temp = #\hyperref[zrGPR]{rGPR}#(rt); - #\hyperref[zwGPR]{wGPR}#(rd) = temp >>_s sa - } diff --git a/cheri/sail_latex/sailfnexecuteDSRAV.tex b/cheri/sail_latex/sailfnexecuteDSRAV.tex deleted file mode 100644 index 35f4a18c..00000000 --- a/cheri/sail_latex/sailfnexecuteDSRAV.tex +++ /dev/null @@ -1,6 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDSRAV]{DSRAV}# (rs, rt, rd)) = - { - temp = #\hyperref[zrGPR]{rGPR}#(rt); - sa = #\hyperref[zrGPR]{rGPR}#(rs)[5..0]; - #\hyperref[zwGPR]{wGPR}#(rd) = temp >>_s sa - } diff --git a/cheri/sail_latex/sailfnexecuteDSRAthreetwo.tex b/cheri/sail_latex/sailfnexecuteDSRAthreetwo.tex deleted file mode 100644 index 9a0380a5..00000000 --- a/cheri/sail_latex/sailfnexecuteDSRAthreetwo.tex +++ /dev/null @@ -1,6 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDSRAthreetwo]{DSRA32}# (rt, rd, sa)) = - { - temp = #\hyperref[zrGPR]{rGPR}#(rt); - sa32 = 0b1 @ sa; /* sa+32 */ - #\hyperref[zwGPR]{wGPR}#(rd) = temp >>_s sa32 - } diff --git a/cheri/sail_latex/sailfnexecuteDSRL.tex b/cheri/sail_latex/sailfnexecuteDSRL.tex deleted file mode 100644 index bebaebba..00000000 --- a/cheri/sail_latex/sailfnexecuteDSRL.tex +++ /dev/null @@ -1,5 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDSRL]{DSRL}# (rt, rd, sa)) = - { - temp = #\hyperref[zrGPR]{rGPR}#(rt); - #\hyperref[zwGPR]{wGPR}#(rd) = temp >> sa; - } diff --git a/cheri/sail_latex/sailfnexecuteDSRLV.tex b/cheri/sail_latex/sailfnexecuteDSRLV.tex deleted file mode 100644 index d0dc368c..00000000 --- a/cheri/sail_latex/sailfnexecuteDSRLV.tex +++ /dev/null @@ -1,6 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDSRLV]{DSRLV}# (rs, rt, rd)) = - { - temp = #\hyperref[zrGPR]{rGPR}#(rt); - sa = #\hyperref[zrGPR]{rGPR}#(rs)[5..0]; - #\hyperref[zwGPR]{wGPR}#(rd) = temp >> sa; - } diff --git a/cheri/sail_latex/sailfnexecuteDSRLthreetwo.tex b/cheri/sail_latex/sailfnexecuteDSRLthreetwo.tex deleted file mode 100644 index 155fe058..00000000 --- a/cheri/sail_latex/sailfnexecuteDSRLthreetwo.tex +++ /dev/null @@ -1,6 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDSRLthreetwo]{DSRL32}# (rt, rd, sa)) = - { - temp = #\hyperref[zrGPR]{rGPR}#(rt); - sa32 = 0b1 @ sa; /* sa+32 */ - #\hyperref[zwGPR]{wGPR}#(rd) = temp >> sa32; - } diff --git a/cheri/sail_latex/sailfnexecuteDSUB.tex b/cheri/sail_latex/sailfnexecuteDSUB.tex deleted file mode 100644 index b4021172..00000000 --- a/cheri/sail_latex/sailfnexecuteDSUB.tex +++ /dev/null @@ -1,10 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDSUB]{DSUB}# (rs, rt, rd)) = - { - let temp65 : #\hyperref[zbits]{bits}#(65) = #\hyperref[zsignzyextend]{sign\_extend}#(#\hyperref[zrGPR]{rGPR}#(rs)) - #\hyperref[zsignzyextend]{sign\_extend}#(#\hyperref[zrGPR]{rGPR}#(rt)) in - { - if temp65[64] != temp65[63] then - (#\hyperref[zSignalException]{SignalException}#(Ov)) - else - #\hyperref[zwGPR]{wGPR}#(rd) = temp65[63..0] - } - } diff --git a/cheri/sail_latex/sailfnexecuteDSUBU.tex b/cheri/sail_latex/sailfnexecuteDSUBU.tex deleted file mode 100644 index 1f0f28ec..00000000 --- a/cheri/sail_latex/sailfnexecuteDSUBU.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zDSUBU]{DSUBU}# (rs, rt, rd)) = - { - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zrGPR]{rGPR}#(rs) - #\hyperref[zrGPR]{rGPR}#(rt) - } diff --git a/cheri/sail_latex/sailfnexecuteERET.tex b/cheri/sail_latex/sailfnexecuteERET.tex deleted file mode 100644 index 1517ff7d..00000000 --- a/cheri/sail_latex/sailfnexecuteERET.tex +++ /dev/null @@ -1,16 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zERET]{ERET}#()) = - { - #\hyperref[zcheckCPzeroAccess]{checkCP0Access}#(); - #\hyperref[zERETHook]{ERETHook}#(); - CP0LLBit = 0b0; - if (CP0Status.#\hyperref[zERL]{ERL}#() == bitone) then - { - nextPC = CP0ErrorEPC; - CP0Status->#\hyperref[zERL]{ERL}#() = 0b0; - } - else - { - nextPC = CP0EPC; - CP0Status->#\hyperref[zEXL]{EXL}#() = 0b0; - } - } diff --git a/cheri/sail_latex/sailfnexecuteHCF.tex b/cheri/sail_latex/sailfnexecuteHCF.tex deleted file mode 100644 index 29eef4b5..00000000 --- a/cheri/sail_latex/sailfnexecuteHCF.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zHCF]{HCF}#()) = - () /* halt instruction actually executed by interpreter framework */ diff --git a/cheri/sail_latex/sailfnexecuteJ.tex b/cheri/sail_latex/sailfnexecuteJ.tex deleted file mode 100644 index b671d406..00000000 --- a/cheri/sail_latex/sailfnexecuteJ.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zJ]{J}#(offset)) = - { - #\hyperref[zexecutezybranch]{execute\_branch}#((PC + 4)[63..28] @ offset @ 0b00); - } diff --git a/cheri/sail_latex/sailfnexecuteJAL.tex b/cheri/sail_latex/sailfnexecuteJAL.tex deleted file mode 100644 index 3aa4dbf4..00000000 --- a/cheri/sail_latex/sailfnexecuteJAL.tex +++ /dev/null @@ -1,5 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zJAL]{JAL}#(offset)) = - { - #\hyperref[zexecutezybranch]{execute\_branch}#((PC + 4)[63..28] @ offset @ 0b00); - #\hyperref[zwGPR]{wGPR}#(0b11111) = PC + 8; - } diff --git a/cheri/sail_latex/sailfnexecuteJALR.tex b/cheri/sail_latex/sailfnexecuteJALR.tex deleted file mode 100644 index 41415ba8..00000000 --- a/cheri/sail_latex/sailfnexecuteJALR.tex +++ /dev/null @@ -1,5 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zJALR]{JALR}#(rs, rd)) = - { - #\hyperref[zexecutezybranch]{execute\_branch}#(#\hyperref[zrGPR]{rGPR}#(rs)); - #\hyperref[zwGPR]{wGPR}#(rd) = PC + 8; - } diff --git a/cheri/sail_latex/sailfnexecuteJR.tex b/cheri/sail_latex/sailfnexecuteJR.tex deleted file mode 100644 index ab19bbfb..00000000 --- a/cheri/sail_latex/sailfnexecuteJR.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zJR]{JR}#(rs)) = - { - #\hyperref[zexecutezybranch]{execute\_branch}#(#\hyperref[zrGPR]{rGPR}#(rs)); - } diff --git a/cheri/sail_latex/sailfnexecuteLDL.tex b/cheri/sail_latex/sailfnexecuteLDL.tex deleted file mode 100644 index c7df3f65..00000000 --- a/cheri/sail_latex/sailfnexecuteLDL.tex +++ /dev/null @@ -1,20 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zLDL]{LDL}#(base, rt, offset)) = - { - vAddr = #\hyperref[zaddrWrapperUnaligned]{addrWrapperUnaligned}#(#\hyperref[zsignzyextend]{sign\_extend}#(offset) + #\hyperref[zrGPR]{rGPR}#(base), LoadData, DL); - let pAddr = #\hyperref[zTLBTranslate]{TLBTranslate}#(vAddr, LoadData) in - { - mem_val = #\hyperref[zMEMrzywrapper]{MEMr\_wrapper}#(pAddr[63..3] @ 0b000, 8); /* read double of interest */ - reg_val = #\hyperref[zrGPR]{rGPR}#(rt); - #\hyperref[zwGPR]{wGPR}#(rt) = match vAddr[2..0] - { - 0b000 => mem_val, - 0b001 => mem_val[55..0] @ reg_val[7..0], - 0b010 => mem_val[47..0] @ reg_val[15..0], - 0b011 => mem_val[39..0] @ reg_val[23..0], - 0b100 => mem_val[31..0] @ reg_val[31..0], - 0b101 => mem_val[23..0] @ reg_val[39..0], - 0b110 => mem_val[15..0] @ reg_val[47..0], - 0b111 => mem_val[07..0] @ reg_val[55..0] - }; - } - } diff --git a/cheri/sail_latex/sailfnexecuteLDR.tex b/cheri/sail_latex/sailfnexecuteLDR.tex deleted file mode 100644 index a66114b2..00000000 --- a/cheri/sail_latex/sailfnexecuteLDR.tex +++ /dev/null @@ -1,20 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zLDR]{LDR}#(base, rt, offset)) = - { - vAddr = #\hyperref[zaddrWrapperUnaligned]{addrWrapperUnaligned}#(#\hyperref[zsignzyextend]{sign\_extend}#(offset) + #\hyperref[zrGPR]{rGPR}#(base), LoadData, DR); - let pAddr = #\hyperref[zTLBTranslate]{TLBTranslate}#(vAddr, LoadData) in - { - mem_val = #\hyperref[zMEMrzywrapper]{MEMr\_wrapper}#(pAddr[63..3] @ 0b000, 8); /* read double of interest */ - reg_val = #\hyperref[zrGPR]{rGPR}#(rt); - #\hyperref[zwGPR]{wGPR}#(rt) = match vAddr[2..0] - { - 0b000 => reg_val[63..08] @ mem_val[63..56], - 0b001 => reg_val[63..16] @ mem_val[63..48], - 0b010 => reg_val[63..24] @ mem_val[63..40], - 0b011 => reg_val[63..32] @ mem_val[63..32], - 0b100 => reg_val[63..40] @ mem_val[63..24], - 0b101 => reg_val[63..48] @ mem_val[63..16], - 0b110 => reg_val[63..56] @ mem_val[63..08], - 0b111 => mem_val - }; - } - } diff --git a/cheri/sail_latex/sailfnexecuteLUI.tex b/cheri/sail_latex/sailfnexecuteLUI.tex deleted file mode 100644 index 9c3f8089..00000000 --- a/cheri/sail_latex/sailfnexecuteLUI.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zLUI]{LUI}# (rt, imm)) = - { - #\hyperref[zwGPR]{wGPR}#(rt) = #\hyperref[zsignzyextend]{sign\_extend}#(imm @ 0x0000) - } diff --git a/cheri/sail_latex/sailfnexecuteLWL.tex b/cheri/sail_latex/sailfnexecuteLWL.tex deleted file mode 100644 index 46fd760d..00000000 --- a/cheri/sail_latex/sailfnexecuteLWL.tex +++ /dev/null @@ -1,17 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zLWL]{LWL}#(base, rt, offset)) = - { - vAddr = #\hyperref[zaddrWrapperUnaligned]{addrWrapperUnaligned}#(#\hyperref[zsignzyextend]{sign\_extend}#(offset) + #\hyperref[zrGPR]{rGPR}#(base), LoadData, WL); - let pAddr = (#\hyperref[zTLBTranslate]{TLBTranslate}#(vAddr, LoadData)) in - { - mem_val = #\hyperref[zMEMrzywrapper]{MEMr\_wrapper}# (pAddr[63..2] @ 0b00, 4); /* read word of interest */ - reg_val = #\hyperref[zrGPR]{rGPR}#(rt); - result : #\hyperref[zbits]{bits}#(32) = match vAddr[1..0] - { - 0b00 => mem_val, - 0b01 => mem_val[23..0] @ reg_val[07..0], - 0b10 => mem_val[15..0] @ reg_val[15..0], - 0b11 => mem_val[07..0] @ reg_val[23..0] - }; - #\hyperref[zwGPR]{wGPR}#(rt) = #\hyperref[zsignzyextend]{sign\_extend}#(result); - } - } diff --git a/cheri/sail_latex/sailfnexecuteLWR.tex b/cheri/sail_latex/sailfnexecuteLWR.tex deleted file mode 100644 index c72d81e0..00000000 --- a/cheri/sail_latex/sailfnexecuteLWR.tex +++ /dev/null @@ -1,17 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zLWR]{LWR}#(base, rt, offset)) = - { - vAddr = #\hyperref[zaddrWrapperUnaligned]{addrWrapperUnaligned}#(#\hyperref[zsignzyextend]{sign\_extend}#(offset) + #\hyperref[zrGPR]{rGPR}#(base), LoadData, WR); - let pAddr = (#\hyperref[zTLBTranslate]{TLBTranslate}#(vAddr, LoadData)) in - { - mem_val = #\hyperref[zMEMrzywrapper]{MEMr\_wrapper}#(pAddr[63..2] @ 0b00, 4); /* read word of interest */ - reg_val = #\hyperref[zrGPR]{rGPR}#(rt); - result : #\hyperref[zbits]{bits}#(32) = match vAddr[1..0] - { - 0b00 => reg_val[31..8] @ mem_val[31..24], - 0b01 => reg_val[31..16] @ mem_val[31..16], - 0b10 => reg_val[31..24] @ mem_val[31..8], - 0b11 => mem_val - }; - #\hyperref[zwGPR]{wGPR}#(rt) = #\hyperref[zsignzyextend]{sign\_extend}#(result) - } - } diff --git a/cheri/sail_latex/sailfnexecuteLoad.tex b/cheri/sail_latex/sailfnexecuteLoad.tex deleted file mode 100644 index 2db4a73b..00000000 --- a/cheri/sail_latex/sailfnexecuteLoad.tex +++ /dev/null @@ -1,30 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zLoad]{Load}#(width, sign, linked, base, rt, offset)) = - { - vAddr : #\hyperref[zbits]{bits}#(64) = #\hyperref[zaddrWrapper]{addrWrapper}#(#\hyperref[zsignzyextend]{sign\_extend}#(offset) + #\hyperref[zrGPR]{rGPR}#(base), LoadData, width); - if ~ (#\hyperref[zisAddressAligned]{isAddressAligned}#(vAddr, width)) then - (#\hyperref[zSignalExceptionBadAddr]{SignalExceptionBadAddr}#(AdEL, vAddr)) /* unaligned access */ - else - let pAddr = (#\hyperref[zTLBTranslate]{TLBTranslate}#(vAddr, LoadData)) in - { - memResult : #\hyperref[zbits]{bits}#(64) = if (linked) then - { - CP0LLBit = 0b1; - CP0LLAddr = pAddr; - match width { - W => #\hyperref[zextendLoad]{extendLoad}#(#\hyperref[zMEMrzyreservezywrapper]{MEMr\_reserve\_wrapper}#(pAddr, 4), sign), - D => #\hyperref[zextendLoad]{extendLoad}#(#\hyperref[zMEMrzyreservezywrapper]{MEMr\_reserve\_wrapper}#(pAddr, 8), sign), - _ => throw(#\hyperref[zErrorzyinternalzyerror]{Error\_internal\_error}#()) /* there is no llbc or llhc */ - } - } - else - { - match width { - B => #\hyperref[zextendLoad]{extendLoad}#(#\hyperref[zMEMrzywrapper]{MEMr\_wrapper}#(pAddr, 1), sign), - H => #\hyperref[zextendLoad]{extendLoad}#(#\hyperref[zMEMrzywrapper]{MEMr\_wrapper}#(pAddr, 2), sign), - W => #\hyperref[zextendLoad]{extendLoad}#(#\hyperref[zMEMrzywrapper]{MEMr\_wrapper}#(pAddr, 4), sign), - D => #\hyperref[zextendLoad]{extendLoad}#(#\hyperref[zMEMrzywrapper]{MEMr\_wrapper}#(pAddr, 8), sign) - } - }; - #\hyperref[zwGPR]{wGPR}#(rt) = memResult - } - } diff --git a/cheri/sail_latex/sailfnexecuteMADD.tex b/cheri/sail_latex/sailfnexecuteMADD.tex deleted file mode 100644 index 77d54494..00000000 --- a/cheri/sail_latex/sailfnexecuteMADD.tex +++ /dev/null @@ -1,12 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMADD]{MADD}#(rs, rt)) = - { - rsVal = #\hyperref[zrGPR]{rGPR}#(rs); - rtVal = #\hyperref[zrGPR]{rGPR}#(rt); - mul_result : #\hyperref[zbits]{bits}#(64) = if (#\hyperref[zNotWordVal]{NotWordVal}#(rsVal) | #\hyperref[zNotWordVal]{NotWordVal}#(rtVal)) then - undefined - else - rsVal[31..0] *_s rtVal[31..0]; - result = mul_result + (HI[31..0] @ LO[31..0]); - HI = #\hyperref[zsignzyextend]{sign\_extend}#(result[63..32]); - LO = #\hyperref[zsignzyextend]{sign\_extend}#(result[31..0]); - } diff --git a/cheri/sail_latex/sailfnexecuteMADDU.tex b/cheri/sail_latex/sailfnexecuteMADDU.tex deleted file mode 100644 index 67f95457..00000000 --- a/cheri/sail_latex/sailfnexecuteMADDU.tex +++ /dev/null @@ -1,12 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMADDU]{MADDU}#(rs, rt)) = - { - rsVal = #\hyperref[zrGPR]{rGPR}#(rs); - rtVal = #\hyperref[zrGPR]{rGPR}#(rt); - mul_result : #\hyperref[zbits]{bits}#(64) = if (#\hyperref[zNotWordVal]{NotWordVal}#(rsVal) | #\hyperref[zNotWordVal]{NotWordVal}#(rtVal)) then - undefined - else - rsVal[31..0] *_u rtVal[31..0]; - result = mul_result + (HI[31..0] @ LO[31..0]); - HI = #\hyperref[zsignzyextend]{sign\_extend}#(result[63..32]); - LO = #\hyperref[zsignzyextend]{sign\_extend}#(result[31..0]); - } diff --git a/cheri/sail_latex/sailfnexecuteMFCzero.tex b/cheri/sail_latex/sailfnexecuteMFCzero.tex deleted file mode 100644 index c15ef9f8..00000000 --- a/cheri/sail_latex/sailfnexecuteMFCzero.tex +++ /dev/null @@ -1,70 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMFCzero]{MFC0}#(rt, rd, sel, double)) = { - #\hyperref[zcheckCPzeroAccess]{checkCP0Access}#(); - let result : #\hyperref[zbits]{bits}#(64) = match (rd, sel) - { - (0b00000,0b000) => let idx : #\hyperref[zbits]{bits}#(31) = #\hyperref[zzzerozyextend]{zero\_extend}#(TLBIndex) in - (0x00000000 @ TLBProbe @ idx), /* 0, TLB Index */ - (0b00001,0b000) => #\hyperref[zzzerozyextend]{zero\_extend}#(TLBRandom), /* 1, TLB Random */ - (0b00010,0b000) => TLBEntryLo0.#\hyperref[zbits]{bits}#(), /* 2, TLB EntryLo0 */ - (0b00011,0b000) => TLBEntryLo1.#\hyperref[zbits]{bits}#(), /* 3, TLB EntryLo1 */ - (0b00100,0b000) => TLBContext.#\hyperref[zbits]{bits}#(), /* 4, TLB Context */ - (0b00100,0b010) => CP0UserLocal, - (0b00101,0b000) => #\hyperref[zzzerozyextend]{zero\_extend}#(TLBPageMask @ 0x000), /* 5, TLB PageMask */ - (0b00110,0b000) => #\hyperref[zzzerozyextend]{zero\_extend}#(TLBWired), /* 6, TLB Wired */ - (0b00111,0b000) => #\hyperref[zzzerozyextend]{zero\_extend}#(CP0HWREna), /* 7, HWREna */ - (0b01000,0b000) => CP0BadVAddr, /* 8, BadVAddr reg */ - (0b01000,0b001) => #\hyperref[zzzerozyextend]{zero\_extend}#(0b0), /* 8, BadInstr reg XXX TODO */ - (0b01001,0b000) => #\hyperref[zzzerozyextend]{zero\_extend}#(CP0Count), /* 9, Count reg */ - (0b01010,0b000) => TLBEntryHi.#\hyperref[zbits]{bits}#(),/* 10, TLB EntryHi */ - (0b01011,0b000) => #\hyperref[zzzerozyextend]{zero\_extend}#(CP0Compare), /* 11, Compare reg */ - (0b01100,0b000) => #\hyperref[zzzerozyextend]{zero\_extend}#(CP0Status.#\hyperref[zbits]{bits}#()), /* 12, Status reg */ - (0b01101,0b000) => #\hyperref[zzzerozyextend]{zero\_extend}#(CP0Cause.#\hyperref[zbits]{bits}#()), /* 13, Cause reg */ - (0b01110,0b000) => CP0EPC, /* 14, EPC */ - (0b01111,0b000) => #\hyperref[zzzerozyextend]{zero\_extend}#(0x00000400), /* 15, sel 0: PrID processor ID */ - (0b01111,0b110) => #\hyperref[zzzerozyextend]{zero\_extend}#(0b0), /* 15, sel 6: CHERI core ID */ - (0b01111,0b111) => #\hyperref[zzzerozyextend]{zero\_extend}#(0b0), /* 15, sel 7: CHERI thread ID */ - (0b10000,0b000) => #\hyperref[zzzerozyextend]{zero\_extend}#(0b1 /* M */ /* 16, sel 0: Config0 */ - @ 0b000000000000000 /* Impl */ - @ 0b1 /* BE */ - @ 0b10 /* AT */ - @ 0b000 /* AR */ - @ 0b001 /* MT standard TLB */ - @ 0b0000 /* zero */ - @ CP0ConfigK0), - (0b10000,0b001) => #\hyperref[zzzerozyextend]{zero\_extend}#( /* 16, sel 1: Config1 */ - 0b1 /* M */ - @ TLBIndexMax /* MMU size-1 */ - @ 0b000 /* IS icache sets */ - @ 0b000 /* IL icache lines */ - @ 0b000 /* IA icache assoc. */ - @ 0b000 /* DS dcache sets */ - @ 0b000 /* DL dcache lines */ - @ 0b000 /* DA dcache assoc. */ - @ #\hyperref[zboolzytozybits]{bool\_to\_bits}#(have_cp2) /* C2 CP2 presence */ - @ 0b0 /* MD MDMX implemented */ - @ 0b0 /* PC performance counters */ - @ 0b0 /* WR watch registers */ - @ 0b0 /* CA 16e code compression */ - @ 0b0 /* EP EJTAG */ - @ 0b0), /* FP FPU present */ - (0b10000,0b010) => #\hyperref[zzzerozyextend]{zero\_extend}#( /* 16, sel 2: Config2 */ - 0b1 /* M */ - @ 0b000 /* TU L3 control */ - @ 0b0000 /* TS L3 sets */ - @ 0b0000 /* TL L3 lines */ - @ 0b0000 /* TA L3 assoc. */ - @ 0b0000 /* SU L2 control */ - @ 0b0000 /* SS L2 sets */ - @ 0b0000 /* SL L2 lines */ - @ 0b0000), /* SA L2 assoc. */ - (0b10000,0b011) => 0x0000000000002000, /* 16, sel 3: Config3 zero except for bit 13 == ulri */ - (0b10000,0b101) => 0x0000000000000000, /* 16, sel 5: Config5 beri specific -- no extended TLB */ - (0b10001,0b000) => CP0LLAddr, /* 17, sel 0: LLAddr */ - (0b10010,0b000) => #\hyperref[zzzerozyextend]{zero\_extend}#(0b0), /* 18, WatchLo */ - (0b10011,0b000) => #\hyperref[zzzerozyextend]{zero\_extend}#(0b0), /* 19, WatchHi */ - (0b10100,0b000) => TLBXContext.#\hyperref[zbits]{bits}#(), /* 20, XContext */ - (0b11110,0b000) => CP0ErrorEPC, /* 30, ErrorEPC */ - _ => (#\hyperref[zSignalException]{SignalException}#(ResI)) - } in - #\hyperref[zwGPR]{wGPR}#(rt) = if (double) then result else #\hyperref[zsignzyextend]{sign\_extend}#(result[31..0]) -} diff --git a/cheri/sail_latex/sailfnexecuteMFHI.tex b/cheri/sail_latex/sailfnexecuteMFHI.tex deleted file mode 100644 index ff0aadba..00000000 --- a/cheri/sail_latex/sailfnexecuteMFHI.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMFHI]{MFHI}#(rd)) = - { - #\hyperref[zwGPR]{wGPR}#(rd) = HI - } diff --git a/cheri/sail_latex/sailfnexecuteMFLO.tex b/cheri/sail_latex/sailfnexecuteMFLO.tex deleted file mode 100644 index 69ad3a35..00000000 --- a/cheri/sail_latex/sailfnexecuteMFLO.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMFLO]{MFLO}#(rd)) = - { - #\hyperref[zwGPR]{wGPR}#(rd) = LO - } diff --git a/cheri/sail_latex/sailfnexecuteMOVN.tex b/cheri/sail_latex/sailfnexecuteMOVN.tex deleted file mode 100644 index 9802ef3d..00000000 --- a/cheri/sail_latex/sailfnexecuteMOVN.tex +++ /dev/null @@ -1,5 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMOVN]{MOVN}#(rs, rt, rd)) = - { - if (#\hyperref[zrGPR]{rGPR}#(rt) != 0x0000000000000000) then - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zrGPR]{rGPR}#(rs) - } diff --git a/cheri/sail_latex/sailfnexecuteMOVZ.tex b/cheri/sail_latex/sailfnexecuteMOVZ.tex deleted file mode 100644 index 0c09e058..00000000 --- a/cheri/sail_latex/sailfnexecuteMOVZ.tex +++ /dev/null @@ -1,5 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMOVZ]{MOVZ}#(rs, rt, rd)) = - { - if (#\hyperref[zrGPR]{rGPR}#(rt) == 0x0000000000000000) then - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zrGPR]{rGPR}#(rs) - } diff --git a/cheri/sail_latex/sailfnexecuteMSUB.tex b/cheri/sail_latex/sailfnexecuteMSUB.tex deleted file mode 100644 index 7d796f26..00000000 --- a/cheri/sail_latex/sailfnexecuteMSUB.tex +++ /dev/null @@ -1,12 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMSUB]{MSUB}#(rs, rt)) = - { - rsVal = #\hyperref[zrGPR]{rGPR}#(rs); - rtVal = #\hyperref[zrGPR]{rGPR}#(rt); - mul_result : #\hyperref[zbits]{bits}#(64) = if (#\hyperref[zNotWordVal]{NotWordVal}#(rsVal) | #\hyperref[zNotWordVal]{NotWordVal}#(rtVal)) then - undefined - else - rsVal[31..0] *_s rtVal[31..0]; - result = (HI[31..0] @ LO[31..0]) - mul_result; - HI = #\hyperref[zsignzyextend]{sign\_extend}#(result[63..32]); - LO = #\hyperref[zsignzyextend]{sign\_extend}#(result[31..0]); - } diff --git a/cheri/sail_latex/sailfnexecuteMSUBU.tex b/cheri/sail_latex/sailfnexecuteMSUBU.tex deleted file mode 100644 index f501e5c5..00000000 --- a/cheri/sail_latex/sailfnexecuteMSUBU.tex +++ /dev/null @@ -1,12 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMSUBU]{MSUBU}#(rs, rt)) = - { - rsVal = #\hyperref[zrGPR]{rGPR}#(rs); - rtVal = #\hyperref[zrGPR]{rGPR}#(rt); - mul_result : #\hyperref[zbits]{bits}#(64) = if (#\hyperref[zNotWordVal]{NotWordVal}#(rsVal) | #\hyperref[zNotWordVal]{NotWordVal}#(rtVal)) then - undefined - else - rsVal[31..0] *_u rtVal[31..0]; - result = (HI[31..0] @ LO[31..0]) - mul_result; - HI = #\hyperref[zsignzyextend]{sign\_extend}#(result[63..32]); - LO = #\hyperref[zsignzyextend]{sign\_extend}#(result[31..0]); - } diff --git a/cheri/sail_latex/sailfnexecuteMTCzero.tex b/cheri/sail_latex/sailfnexecuteMTCzero.tex deleted file mode 100644 index 61c6703e..00000000 --- a/cheri/sail_latex/sailfnexecuteMTCzero.tex +++ /dev/null @@ -1,52 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMTCzero]{MTC0}#(rt, rd, sel, double)) = { - #\hyperref[zcheckCPzeroAccess]{checkCP0Access}#(); - let reg_val = #\hyperref[zrGPR]{rGPR}#(rt) in - match (rd, sel) - { - (0b00000,0b000) => TLBIndex = #\hyperref[zmask]{mask}#(reg_val), /* NB no write to TLBProbe */ - (0b00001,0b000) => (), /* TLBRandom is read only */ - (0b00010,0b000) => TLBEntryLo0->#\hyperref[zbits]{bits}#() = reg_val, - (0b00011,0b000) => TLBEntryLo1->#\hyperref[zbits]{bits}#() = reg_val, - (0b00100,0b000) => TLBContext->#\hyperref[zPTEBase]{PTEBase}#() = reg_val[63..23], - (0b00100,0b010) => CP0UserLocal = reg_val, - (0b00101,0b000) => TLBPageMask = reg_val[28..13], - (0b00110,0b000) => { - TLBWired = #\hyperref[zmask]{mask}#(reg_val); - TLBRandom = TLBIndexMax; - }, - (0b00111,0b000) => CP0HWREna = (reg_val[31..29] @ 0b0000000000000000000000000 @ reg_val[3..0]), - (0b01000,0b000) => (), /* BadVAddr read only */ - (0b01001,0b000) => CP0Count = reg_val[31..0], - (0b01010,0b000) => { - TLBEntryHi->#\hyperref[zR]{R}#() = reg_val[63..62]; - TLBEntryHi->#\hyperref[zVPNtwo]{VPN2}#() = reg_val[39..13]; - TLBEntryHi->#\hyperref[zASID]{ASID}#() = reg_val[7..0]; - }, - (0b01011,0b000) => { /* 11, sel 0: Compare reg */ - CP0Compare = reg_val[31..0]; - CP0Cause->#\hyperref[zIP]{IP}#() = CP0Cause.#\hyperref[zIP]{IP}#() & 0x7f; /* clear IP7 */ - }, - (0b01100,0b000) => { /* 12 Status */ - CP0Status->#\hyperref[zCU]{CU}#() = reg_val[31..28]; - CP0Status->#\hyperref[zBEV]{BEV}#() = reg_val[22]; - CP0Status->#\hyperref[zIM]{IM}#() = reg_val[15..8]; - CP0Status->#\hyperref[zKX]{KX}#() = reg_val[7]; - CP0Status->#\hyperref[zSX]{SX}#() = reg_val[6]; - CP0Status->#\hyperref[zUX]{UX}#() = reg_val[5]; - CP0Status->#\hyperref[zKSU]{KSU}#() = reg_val[4..3]; - CP0Status->#\hyperref[zERL]{ERL}#() = reg_val[2]; - CP0Status->#\hyperref[zEXL]{EXL}#() = reg_val[1]; - CP0Status->#\hyperref[zIE]{IE}#() = reg_val[0]; - }, - (0b01101,0b000) => { /* 13 Cause */ - CP0Cause->#\hyperref[zIV]{IV}#() = reg_val[23]; /* TODO special interrupt vector not implemeneted */ - let ip = CP0Cause.#\hyperref[zIP]{IP}#() in - CP0Cause->#\hyperref[zIP]{IP}#() = ((ip[7..2]) @ (reg_val[9..8])); - }, - (0b01110,0b000) => CP0EPC = reg_val, /* 14, EPC */ - (0b10000,0b000) => CP0ConfigK0 = reg_val[2..0], /* K0 cache config 16: Config0 */ - (0b10100,0b000) => TLBXContext->#\hyperref[zXPTEBase]{XPTEBase}#() = reg_val[63..33], - (0b11110,0b000) => CP0ErrorEPC = reg_val, /* 30, ErrorEPC */ - _ => (#\hyperref[zSignalException]{SignalException}#(ResI)) - } -} diff --git a/cheri/sail_latex/sailfnexecuteMTHI.tex b/cheri/sail_latex/sailfnexecuteMTHI.tex deleted file mode 100644 index e221477e..00000000 --- a/cheri/sail_latex/sailfnexecuteMTHI.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMTHI]{MTHI}#(rs)) = - { - HI = #\hyperref[zrGPR]{rGPR}#(rs) - } diff --git a/cheri/sail_latex/sailfnexecuteMTLO.tex b/cheri/sail_latex/sailfnexecuteMTLO.tex deleted file mode 100644 index af9f9aae..00000000 --- a/cheri/sail_latex/sailfnexecuteMTLO.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMTLO]{MTLO}#(rs)) = - { - LO = #\hyperref[zrGPR]{rGPR}#(rs) - } diff --git a/cheri/sail_latex/sailfnexecuteMUL.tex b/cheri/sail_latex/sailfnexecuteMUL.tex deleted file mode 100644 index 385f4433..00000000 --- a/cheri/sail_latex/sailfnexecuteMUL.tex +++ /dev/null @@ -1,15 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMUL]{MUL}#(rs, rt, rd)) = - { - rsVal = #\hyperref[zrGPR]{rGPR}#(rs); - rtVal = #\hyperref[zrGPR]{rGPR}#(rt); - result : #\hyperref[zbits]{bits}#(64) = #\hyperref[zsignzyextend]{sign\_extend}#((rsVal[31..0]) *#\hyperref[zzys]{\_s}# (rtVal[31..0])); - #\hyperref[zwGPR]{wGPR}#(rd) = if (#\hyperref[zNotWordVal]{NotWordVal}#(rsVal) | #\hyperref[zNotWordVal]{NotWordVal}#(rtVal)) then - undefined - else - #\hyperref[zsignzyextend]{sign\_extend}#(result[31..0]); - /* HI and LO are technically undefined after MUL, but this causes problems with tests and - (potentially) context switch so just leave them alone - HI = undefined; - LO = undefined; - */ - } diff --git a/cheri/sail_latex/sailfnexecuteMULT.tex b/cheri/sail_latex/sailfnexecuteMULT.tex deleted file mode 100644 index b8de983f..00000000 --- a/cheri/sail_latex/sailfnexecuteMULT.tex +++ /dev/null @@ -1,11 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMULT]{MULT}#(rs, rt)) = - { - rsVal = #\hyperref[zrGPR]{rGPR}#(rs); - rtVal = #\hyperref[zrGPR]{rGPR}#(rt); - result : #\hyperref[zbits]{bits}#(64) = if (#\hyperref[zNotWordVal]{NotWordVal}#(rsVal) | #\hyperref[zNotWordVal]{NotWordVal}#(rtVal)) then - undefined - else - (rsVal[31..0]) *#\hyperref[zzys]{\_s}# (rtVal[31..0]); - HI = #\hyperref[zsignzyextend]{sign\_extend}#(result[63..32]); - LO = #\hyperref[zsignzyextend]{sign\_extend}#(result[31..0]); - } diff --git a/cheri/sail_latex/sailfnexecuteMULTU.tex b/cheri/sail_latex/sailfnexecuteMULTU.tex deleted file mode 100644 index 0095e387..00000000 --- a/cheri/sail_latex/sailfnexecuteMULTU.tex +++ /dev/null @@ -1,11 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zMULTU]{MULTU}#(rs, rt)) = - { - rsVal = #\hyperref[zrGPR]{rGPR}#(rs); - rtVal = #\hyperref[zrGPR]{rGPR}#(rt); - result : #\hyperref[zbits]{bits}#(64) = if (#\hyperref[zNotWordVal]{NotWordVal}#(rsVal) | #\hyperref[zNotWordVal]{NotWordVal}#(rtVal)) then - undefined - else - (rsVal[31..0]) *#\hyperref[zzyu]{\_u}# (rtVal[31..0]); - HI = #\hyperref[zsignzyextend]{sign\_extend}#(result[63..32]); - LO = #\hyperref[zsignzyextend]{sign\_extend}#(result[31..0]); - } diff --git a/cheri/sail_latex/sailfnexecuteNOR.tex b/cheri/sail_latex/sailfnexecuteNOR.tex deleted file mode 100644 index a1cfa14b..00000000 --- a/cheri/sail_latex/sailfnexecuteNOR.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zNOR]{NOR}# (rs, rt, rd)) = - { - #\hyperref[zwGPR]{wGPR}#(rd) = ~(#\hyperref[zrGPR]{rGPR}#(rs) | #\hyperref[zrGPR]{rGPR}#(rt)) - } diff --git a/cheri/sail_latex/sailfnexecuteOR.tex b/cheri/sail_latex/sailfnexecuteOR.tex deleted file mode 100644 index 01c0fcf6..00000000 --- a/cheri/sail_latex/sailfnexecuteOR.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zOR]{OR}# (rs, rt, rd)) = - { - #\hyperref[zwGPR]{wGPR}#(rd) = (#\hyperref[zrGPR]{rGPR}#(rs) | #\hyperref[zrGPR]{rGPR}#(rt)) - } diff --git a/cheri/sail_latex/sailfnexecuteORI.tex b/cheri/sail_latex/sailfnexecuteORI.tex deleted file mode 100644 index 0a3f9d15..00000000 --- a/cheri/sail_latex/sailfnexecuteORI.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zORI]{ORI}# (rs, rt, imm)) = - { - #\hyperref[zwGPR]{wGPR}#(rt) = (#\hyperref[zrGPR]{rGPR}#(rs) | #\hyperref[zzzerozyextend]{zero\_extend}#(imm)) - } diff --git a/cheri/sail_latex/sailfnexecuteRDHWR.tex b/cheri/sail_latex/sailfnexecuteRDHWR.tex deleted file mode 100644 index e64fff25..00000000 --- a/cheri/sail_latex/sailfnexecuteRDHWR.tex +++ /dev/null @@ -1,18 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zRDHWR]{RDHWR}#(rt, rd)) = { - let accessLevel = #\hyperref[zgetAccessLevel]{getAccessLevel}#() in - let haveAccessLevel : bool = accessLevel == Kernel in - let haveCU0 : bool = bitone == (CP0Status.#\hyperref[zCU]{CU}#()[0]) in - let rdi as atom(_) = #\hyperref[zunsigned]{unsigned}#(rd) in - let haveHWREna : bool = bitone == (CP0HWREna[rdi]) in - if ~(haveAccessLevel | haveCU0 | haveHWREna) then - (#\hyperref[zSignalException]{SignalException}#(ResI)); - let temp : #\hyperref[zbits]{bits}#(64) = match rd { - 0b00000 => #\hyperref[zzzerozyextend]{zero\_extend}#([bitzero]), /* CPUNum */ - 0b00001 => #\hyperref[zzzerozyextend]{zero\_extend}#([bitzero]), /* SYNCI_step */ - 0b00010 => #\hyperref[zzzerozyextend]{zero\_extend}#(CP0Count), /* Count */ - 0b00011 => #\hyperref[zzzerozyextend]{zero\_extend}#([bitone]), /* Count resolution */ - 0b11101 => CP0UserLocal, /* User local register */ - _ => (#\hyperref[zSignalException]{SignalException}#(ResI)) - } in - #\hyperref[zwGPR]{wGPR}#(rt) = temp; -} diff --git a/cheri/sail_latex/sailfnexecuteRI.tex b/cheri/sail_latex/sailfnexecuteRI.tex deleted file mode 100644 index 6206c8e3..00000000 --- a/cheri/sail_latex/sailfnexecuteRI.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zRI]{RI}#()) = - #\hyperref[zSignalException]{SignalException}# (ResI) diff --git a/cheri/sail_latex/sailfnexecuteSDL.tex b/cheri/sail_latex/sailfnexecuteSDL.tex deleted file mode 100644 index 0e8e78b4..00000000 --- a/cheri/sail_latex/sailfnexecuteSDL.tex +++ /dev/null @@ -1,19 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zSDL]{SDL}#(base, rt, offset)) = - { - vAddr = #\hyperref[zaddrWrapperUnaligned]{addrWrapperUnaligned}#(#\hyperref[zsignzyextend]{sign\_extend}#(offset) + #\hyperref[zrGPR]{rGPR}#(base), StoreData, DL); - let pAddr = #\hyperref[zTLBTranslate]{TLBTranslate}#(vAddr, StoreData) in - { - reg_val = #\hyperref[zrGPR]{rGPR}#(rt); - match vAddr[2..0] - { - 0b000 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 8) = reg_val[63..00]), - 0b001 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 7) = reg_val[63..08]), - 0b010 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 6) = reg_val[63..16]), - 0b011 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 5) = reg_val[63..24]), - 0b100 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 4) = reg_val[63..32]), - 0b101 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 3) = reg_val[63..40]), - 0b110 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 2) = reg_val[63..48]), - 0b111 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 1) = reg_val[63..56]) - } - } - } diff --git a/cheri/sail_latex/sailfnexecuteSDR.tex b/cheri/sail_latex/sailfnexecuteSDR.tex deleted file mode 100644 index 98f7a8a7..00000000 --- a/cheri/sail_latex/sailfnexecuteSDR.tex +++ /dev/null @@ -1,20 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zSDR]{SDR}#(base, rt, offset)) = - { - vAddr = #\hyperref[zaddrWrapperUnaligned]{addrWrapperUnaligned}#(#\hyperref[zsignzyextend]{sign\_extend}#(offset) + #\hyperref[zrGPR]{rGPR}#(base), StoreData, DR); - let pAddr = #\hyperref[zTLBTranslate]{TLBTranslate}#(vAddr, StoreData) in - { - reg_val = #\hyperref[zrGPR]{rGPR}#(rt); - wordAddr = pAddr[63..3] @ 0b000; - match vAddr[2..0] - { - 0b000 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(wordAddr, 1) = reg_val[07..0]), - 0b001 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(wordAddr, 2) = reg_val[15..0]), - 0b010 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(wordAddr, 3) = reg_val[23..0]), - 0b011 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(wordAddr, 4) = reg_val[31..0]), - 0b100 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(wordAddr, 5) = reg_val[39..0]), - 0b101 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(wordAddr, 6) = reg_val[47..0]), - 0b110 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(wordAddr, 7) = reg_val[55..0]), - 0b111 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(wordAddr, 8) = reg_val[63..0]) - } - } - } diff --git a/cheri/sail_latex/sailfnexecuteSLL.tex b/cheri/sail_latex/sailfnexecuteSLL.tex deleted file mode 100644 index 31f5399a..00000000 --- a/cheri/sail_latex/sailfnexecuteSLL.tex +++ /dev/null @@ -1,5 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSLL]{SLL}#(rt, rd, sa)) = - { - rt32 = #\hyperref[zrGPR]{rGPR}#(rt)[31..0]; - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zsignzyextend]{sign\_extend}#(rt32 << sa); - } diff --git a/cheri/sail_latex/sailfnexecuteSLLV.tex b/cheri/sail_latex/sailfnexecuteSLLV.tex deleted file mode 100644 index 41598e6d..00000000 --- a/cheri/sail_latex/sailfnexecuteSLLV.tex +++ /dev/null @@ -1,6 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSLLV]{SLLV}#(rs, rt, rd)) = - { - sa = #\hyperref[zrGPR]{rGPR}#(rs)[4..0]; - rt32 = #\hyperref[zrGPR]{rGPR}#(rt)[31..0]; - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zsignzyextend]{sign\_extend}#(rt32 << sa) - } diff --git a/cheri/sail_latex/sailfnexecuteSLT.tex b/cheri/sail_latex/sailfnexecuteSLT.tex deleted file mode 100644 index 8e625945..00000000 --- a/cheri/sail_latex/sailfnexecuteSLT.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSLT]{SLT}#(rs, rt, rd)) = - { - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zzzerozyextend]{zero\_extend}#(if (#\hyperref[zrGPR]{rGPR}#(rs) <_s #\hyperref[zrGPR]{rGPR}#(rt)) then 0b1 else 0b0) - } diff --git a/cheri/sail_latex/sailfnexecuteSLTI.tex b/cheri/sail_latex/sailfnexecuteSLTI.tex deleted file mode 100644 index 32582b6f..00000000 --- a/cheri/sail_latex/sailfnexecuteSLTI.tex +++ /dev/null @@ -1,6 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSLTI]{SLTI}#(rs, rt, imm)) = - { - let imm_val = #\hyperref[zsigned]{signed}#(imm) in - let rs_val = #\hyperref[zsigned]{signed}#(#\hyperref[zrGPR]{rGPR}#(rs)) in - #\hyperref[zwGPR]{wGPR}#(rt) = #\hyperref[zzzerozyextend]{zero\_extend}#(if (rs_val < imm_val) then 0b1 else 0b0) - } diff --git a/cheri/sail_latex/sailfnexecuteSLTIU.tex b/cheri/sail_latex/sailfnexecuteSLTIU.tex deleted file mode 100644 index e232aa07..00000000 --- a/cheri/sail_latex/sailfnexecuteSLTIU.tex +++ /dev/null @@ -1,6 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSLTIU]{SLTIU}#(rs, rt, imm)) = - { - let rs_val = #\hyperref[zrGPR]{rGPR}#(rs) in - let immext : #\hyperref[zbits]{bits}#(64) = #\hyperref[zsignzyextend]{sign\_extend}#(imm) in /* NB defined to sign extend here even though comparison is unsigned! */ - #\hyperref[zwGPR]{wGPR}#(rt) = #\hyperref[zzzerozyextend]{zero\_extend}#(if (rs_val <_u immext) then 0b1 else 0b0) - } diff --git a/cheri/sail_latex/sailfnexecuteSLTU.tex b/cheri/sail_latex/sailfnexecuteSLTU.tex deleted file mode 100644 index 38b71b30..00000000 --- a/cheri/sail_latex/sailfnexecuteSLTU.tex +++ /dev/null @@ -1,6 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSLTU]{SLTU}#(rs, rt, rd)) = - { - let rs_val = #\hyperref[zrGPR]{rGPR}#(rs) in - let rt_val = #\hyperref[zrGPR]{rGPR}#(rt) in - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zzzerozyextend]{zero\_extend}#(if (rs_val <_u rt_val) then 0b1 else 0b0) - } diff --git a/cheri/sail_latex/sailfnexecuteSRA.tex b/cheri/sail_latex/sailfnexecuteSRA.tex deleted file mode 100644 index 3d881120..00000000 --- a/cheri/sail_latex/sailfnexecuteSRA.tex +++ /dev/null @@ -1,10 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSRA]{SRA}#(rt, rd, sa)) = - { - temp = #\hyperref[zrGPR]{rGPR}#(rt); - if (#\hyperref[zNotWordVal]{NotWordVal}#(temp)) then - #\hyperref[zwGPR]{wGPR}#(rd) = undefined - else { - rt32 = temp[31..0]; - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zsignzyextend]{sign\_extend}#(rt32 >>_s sa); - } - } diff --git a/cheri/sail_latex/sailfnexecuteSRAV.tex b/cheri/sail_latex/sailfnexecuteSRAV.tex deleted file mode 100644 index 54d3bd1e..00000000 --- a/cheri/sail_latex/sailfnexecuteSRAV.tex +++ /dev/null @@ -1,11 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSRAV]{SRAV}#(rs, rt, rd)) = - { - temp = #\hyperref[zrGPR]{rGPR}#(rt); - sa = #\hyperref[zrGPR]{rGPR}#(rs)[4..0]; - if (#\hyperref[zNotWordVal]{NotWordVal}#(temp)) then - #\hyperref[zwGPR]{wGPR}#(rd) = undefined - else { - rt32 = temp[31..0]; - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zsignzyextend]{sign\_extend}#(rt32 >>_s sa) - } - } diff --git a/cheri/sail_latex/sailfnexecuteSRL.tex b/cheri/sail_latex/sailfnexecuteSRL.tex deleted file mode 100644 index 961ea82f..00000000 --- a/cheri/sail_latex/sailfnexecuteSRL.tex +++ /dev/null @@ -1,10 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSRL]{SRL}#(rt, rd, sa)) = - { - temp = #\hyperref[zrGPR]{rGPR}#(rt); - if (#\hyperref[zNotWordVal]{NotWordVal}#(temp)) then - #\hyperref[zwGPR]{wGPR}#(rd) = undefined - else { - rt32 = temp[31..0]; - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zsignzyextend]{sign\_extend}#(rt32 >> sa); - } - } diff --git a/cheri/sail_latex/sailfnexecuteSRLV.tex b/cheri/sail_latex/sailfnexecuteSRLV.tex deleted file mode 100644 index 9b859a85..00000000 --- a/cheri/sail_latex/sailfnexecuteSRLV.tex +++ /dev/null @@ -1,11 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSRLV]{SRLV}#(rs, rt, rd)) = - { - temp = #\hyperref[zrGPR]{rGPR}#(rt); - sa = (#\hyperref[zrGPR]{rGPR}#(rs))[4..0]; - if (#\hyperref[zNotWordVal]{NotWordVal}#(temp)) then - #\hyperref[zwGPR]{wGPR}#(rd) = undefined - else { - rt32 = temp[31..0]; - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zsignzyextend]{sign\_extend}#(rt32 >> sa); - } - } diff --git a/cheri/sail_latex/sailfnexecuteSUB.tex b/cheri/sail_latex/sailfnexecuteSUB.tex deleted file mode 100644 index 8a7b9d61..00000000 --- a/cheri/sail_latex/sailfnexecuteSUB.tex +++ /dev/null @@ -1,13 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSUB]{SUB}#(rs, rt, rd)) = - { - opA = #\hyperref[zrGPR]{rGPR}#(rs); - opB = #\hyperref[zrGPR]{rGPR}#(rt); - if #\hyperref[zNotWordVal]{NotWordVal}#(opA) | #\hyperref[zNotWordVal]{NotWordVal}#(opB) then - #\hyperref[zwGPR]{wGPR}#(rd) = undefined /* XXX could instead */ - else - let temp33 : #\hyperref[zbits]{bits}#(33) = #\hyperref[zsignzyextend]{sign\_extend}#(opA[31..0]) - #\hyperref[zsignzyextend]{sign\_extend}#(opB[31..0]) in - if temp33[32] != temp33[31] then - (#\hyperref[zSignalException]{SignalException}#(Ov)) - else - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zsignzyextend]{sign\_extend}#(temp33[31..0]) - } diff --git a/cheri/sail_latex/sailfnexecuteSUBU.tex b/cheri/sail_latex/sailfnexecuteSUBU.tex deleted file mode 100644 index 65b106e1..00000000 --- a/cheri/sail_latex/sailfnexecuteSUBU.tex +++ /dev/null @@ -1,9 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSUBU]{SUBU}#(rs, rt, rd)) = - { - opA = #\hyperref[zrGPR]{rGPR}#(rs); - opB = #\hyperref[zrGPR]{rGPR}#(rt); - if #\hyperref[zNotWordVal]{NotWordVal}#(opA) | #\hyperref[zNotWordVal]{NotWordVal}#(opB) then - #\hyperref[zwGPR]{wGPR}#(rd) = undefined - else - #\hyperref[zwGPR]{wGPR}#(rd) = #\hyperref[zsignzyextend]{sign\_extend}#(opA[31..0] - opB[31..0]) - } diff --git a/cheri/sail_latex/sailfnexecuteSWL.tex b/cheri/sail_latex/sailfnexecuteSWL.tex deleted file mode 100644 index 56ed19a6..00000000 --- a/cheri/sail_latex/sailfnexecuteSWL.tex +++ /dev/null @@ -1,15 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zSWL]{SWL}#(base, rt, offset)) = - { - vAddr = #\hyperref[zaddrWrapperUnaligned]{addrWrapperUnaligned}#(#\hyperref[zsignzyextend]{sign\_extend}#(offset) + #\hyperref[zrGPR]{rGPR}#(base), StoreData, WL); - let pAddr = #\hyperref[zTLBTranslate]{TLBTranslate}#(vAddr, StoreData) in - { - reg_val = #\hyperref[zrGPR]{rGPR}#(rt); - match vAddr[1..0] - { - 0b00 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 4) = reg_val[31..0]), - 0b01 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 3) = reg_val[31..8]), - 0b10 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 2) = reg_val[31..16]), - 0b11 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 1) = reg_val[31..24]) - } - } - } diff --git a/cheri/sail_latex/sailfnexecuteSWR.tex b/cheri/sail_latex/sailfnexecuteSWR.tex deleted file mode 100644 index 9b0815e9..00000000 --- a/cheri/sail_latex/sailfnexecuteSWR.tex +++ /dev/null @@ -1,16 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zSWR]{SWR}#(base, rt, offset)) = - { - vAddr = #\hyperref[zaddrWrapperUnaligned]{addrWrapperUnaligned}#(#\hyperref[zsignzyextend]{sign\_extend}#(offset) + #\hyperref[zrGPR]{rGPR}#(base), StoreData, WR); - let pAddr = #\hyperref[zTLBTranslate]{TLBTranslate}#(vAddr, StoreData) in - { - wordAddr = pAddr[63..2] @ 0b00; - reg_val = #\hyperref[zrGPR]{rGPR}#(rt); - match vAddr[1..0] - { - 0b00 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(wordAddr, 1) = reg_val[7..0]), - 0b01 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(wordAddr, 2) = reg_val[15..0]), - 0b10 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(wordAddr, 3) = reg_val[23..0]), - 0b11 => (#\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(wordAddr, 4) = reg_val[31..0]) - } - } - } diff --git a/cheri/sail_latex/sailfnexecuteSYNC.tex b/cheri/sail_latex/sailfnexecuteSYNC.tex deleted file mode 100644 index e5d5a25e..00000000 --- a/cheri/sail_latex/sailfnexecuteSYNC.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zexecute]{execute}#(#\hyperref[zSYNC]{SYNC}#()) = - #\hyperref[zMEMzysync]{MEM\_sync}#() diff --git a/cheri/sail_latex/sailfnexecuteSYSCALL.tex b/cheri/sail_latex/sailfnexecuteSYSCALL.tex deleted file mode 100644 index 35fc0371..00000000 --- a/cheri/sail_latex/sailfnexecuteSYSCALL.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zSYSCALL]{SYSCALL}#()) = - { - (#\hyperref[zSignalException]{SignalException}#(Sys)) - } diff --git a/cheri/sail_latex/sailfnexecuteStore.tex b/cheri/sail_latex/sailfnexecuteStore.tex deleted file mode 100644 index 1030fdd2..00000000 --- a/cheri/sail_latex/sailfnexecuteStore.tex +++ /dev/null @@ -1,29 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zStore]{Store}#(width, conditional, base, rt, offset)) = - { - vAddr : #\hyperref[zbits]{bits}#(64) = #\hyperref[zaddrWrapper]{addrWrapper}#(#\hyperref[zsignzyextend]{sign\_extend}#(offset) + #\hyperref[zrGPR]{rGPR}#(base), StoreData, width); - rt_val = #\hyperref[zrGPR]{rGPR}#(rt); - if ~ (#\hyperref[zisAddressAligned]{isAddressAligned}#(vAddr, width)) then - (#\hyperref[zSignalExceptionBadAddr]{SignalExceptionBadAddr}#(AdES, vAddr)) /* unaligned access */ - else - let pAddr = (#\hyperref[zTLBTranslate]{TLBTranslate}#(vAddr, StoreData)) in - { - if (conditional) then - { - success : bool = if (CP0LLBit[0]) then match width - { - W => #\hyperref[zMEMwzyconditionalzywrapper]{MEMw\_conditional\_wrapper}#(pAddr, 4, rt_val[31..0]), - D => #\hyperref[zMEMwzyconditionalzywrapper]{MEMw\_conditional\_wrapper}#(pAddr, 8, rt_val), - _ => throw(#\hyperref[zErrorzyinternalzyerror]{Error\_internal\_error}#()) /* there is no sbc or shc */ - } else false; - #\hyperref[zwGPR]{wGPR}#(rt) = #\hyperref[zzzerozyextend]{zero\_extend}#(success) - } - else - match width - { - B => #\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 1) = rt_val[7..0], - H => #\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 2) = rt_val[15..0], - W => #\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 4) = rt_val[31..0], - D => #\hyperref[zMEMwzywrapper]{MEMw\_wrapper}#(pAddr, 8) = rt_val - } - } - } diff --git a/cheri/sail_latex/sailfnexecuteTLBP.tex b/cheri/sail_latex/sailfnexecuteTLBP.tex deleted file mode 100644 index 1c781dda..00000000 --- a/cheri/sail_latex/sailfnexecuteTLBP.tex +++ /dev/null @@ -1,14 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zTLBP]{TLBP}#()) = { - #\hyperref[zcheckCPzeroAccess]{checkCP0Access}#(); - let result = #\hyperref[ztlbSearch]{tlbSearch}#(TLBEntryHi.#\hyperref[zbits]{bits}#()) in - match result { - (#\hyperref[zSome]{Some}#(idx)) => { - TLBProbe = [bitzero]; - TLBIndex = idx; - }, - #\hyperref[zNone]{None}#() => { - TLBProbe = [bitone]; - TLBIndex = 0b000000; - } - } -} diff --git a/cheri/sail_latex/sailfnexecuteTLBR.tex b/cheri/sail_latex/sailfnexecuteTLBR.tex deleted file mode 100644 index fd7aefd2..00000000 --- a/cheri/sail_latex/sailfnexecuteTLBR.tex +++ /dev/null @@ -1,24 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zTLBR]{TLBR}#()) = { - #\hyperref[zcheckCPzeroAccess]{checkCP0Access}#(); - let i as atom(_) = #\hyperref[zunsigned]{unsigned}#(TLBIndex) in - let entry = #\hyperref[zregzyderef]{reg\_deref}#(TLBEntries[i]) in { - TLBPageMask = entry.#\hyperref[zpagemask]{pagemask}#(); - TLBEntryHi->#\hyperref[zR]{R}#() = entry.#\hyperref[zr]{r}#(); - TLBEntryHi->#\hyperref[zVPNtwo]{VPN2}#() = entry.#\hyperref[zvpntwo]{vpn2}#(); - TLBEntryHi->#\hyperref[zASID]{ASID}#() = entry.#\hyperref[zasid]{asid}#(); - TLBEntryLo0->#\hyperref[zCapS]{CapS}#()= entry.#\hyperref[zcapszero]{caps0}#(); - TLBEntryLo0->#\hyperref[zCapL]{CapL}#()= entry.#\hyperref[zcaplzero]{capl0}#(); - TLBEntryLo0->#\hyperref[zPFN]{PFN}#() = entry.#\hyperref[zpfnzero]{pfn0}#(); - TLBEntryLo0->#\hyperref[zC]{C}#() = entry.#\hyperref[zczero]{c0}#(); - TLBEntryLo0->#\hyperref[zD]{D}#() = entry.#\hyperref[zdzero]{d0}#(); - TLBEntryLo0->#\hyperref[zV]{V}#() = entry.#\hyperref[zvzero]{v0}#(); - TLBEntryLo0->#\hyperref[zG]{G}#() = entry.#\hyperref[zg]{g}#(); - TLBEntryLo1->#\hyperref[zCapS]{CapS}#()= entry.#\hyperref[zcapsone]{caps1}#(); - TLBEntryLo1->#\hyperref[zCapL]{CapL}#()= entry.#\hyperref[zcaplone]{capl1}#(); - TLBEntryLo1->#\hyperref[zPFN]{PFN}#() = entry.#\hyperref[zpfnone]{pfn1}#(); - TLBEntryLo1->#\hyperref[zC]{C}#() = entry.#\hyperref[zcone]{c1}#(); - TLBEntryLo1->#\hyperref[zD]{D}#() = entry.#\hyperref[zdone]{d1}#(); - TLBEntryLo1->#\hyperref[zV]{V}#() = entry.#\hyperref[zvone]{v1}#(); - TLBEntryLo1->#\hyperref[zG]{G}#() = entry.#\hyperref[zg]{g}#(); - } -} diff --git a/cheri/sail_latex/sailfnexecuteTLBWI.tex b/cheri/sail_latex/sailfnexecuteTLBWI.tex deleted file mode 100644 index 2b32342e..00000000 --- a/cheri/sail_latex/sailfnexecuteTLBWI.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zTLBWI]{TLBWI}#()) = { - #\hyperref[zcheckCPzeroAccess]{checkCP0Access}#(); - #\hyperref[zTLBWriteEntry]{TLBWriteEntry}#(TLBIndex); -} diff --git a/cheri/sail_latex/sailfnexecuteTLBWR.tex b/cheri/sail_latex/sailfnexecuteTLBWR.tex deleted file mode 100644 index df582e88..00000000 --- a/cheri/sail_latex/sailfnexecuteTLBWR.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zTLBWR]{TLBWR}#()) = { - #\hyperref[zcheckCPzeroAccess]{checkCP0Access}#(); - #\hyperref[zTLBWriteEntry]{TLBWriteEntry}#(TLBRandom); -} diff --git a/cheri/sail_latex/sailfnexecuteTRAPIMM.tex b/cheri/sail_latex/sailfnexecuteTRAPIMM.tex deleted file mode 100644 index 9fa187e9..00000000 --- a/cheri/sail_latex/sailfnexecuteTRAPIMM.tex +++ /dev/null @@ -1,8 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zTRAPIMM]{TRAPIMM}#(rs, imm, cmp)) = - { - rs_val = #\hyperref[zrGPR]{rGPR}#(rs); - imm_val : #\hyperref[zbits]{bits}#(64) = #\hyperref[zsignzyextend]{sign\_extend}#(imm); - condition = #\hyperref[zcompare]{compare}#(cmp, rs_val, imm_val); - if (condition) then - (#\hyperref[zSignalException]{SignalException}#(Tr)) - } diff --git a/cheri/sail_latex/sailfnexecuteTRAPREG.tex b/cheri/sail_latex/sailfnexecuteTRAPREG.tex deleted file mode 100644 index 9d3d759c..00000000 --- a/cheri/sail_latex/sailfnexecuteTRAPREG.tex +++ /dev/null @@ -1,8 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zTRAPREG]{TRAPREG}#(rs, rt, cmp)) = - { - rs_val = #\hyperref[zrGPR]{rGPR}#(rs); - rt_val = #\hyperref[zrGPR]{rGPR}#(rt); - condition = #\hyperref[zcompare]{compare}#(cmp, rs_val, rt_val); - if (condition) then - (#\hyperref[zSignalException]{SignalException}#(Tr)) - } diff --git a/cheri/sail_latex/sailfnexecuteWAIT.tex b/cheri/sail_latex/sailfnexecuteWAIT.tex deleted file mode 100644 index 9ef8ce0e..00000000 --- a/cheri/sail_latex/sailfnexecuteWAIT.tex +++ /dev/null @@ -1,3 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zWAIT]{WAIT}#()) = { - nextPC = PC; -} diff --git a/cheri/sail_latex/sailfnexecuteXOR.tex b/cheri/sail_latex/sailfnexecuteXOR.tex deleted file mode 100644 index 79e89bc5..00000000 --- a/cheri/sail_latex/sailfnexecuteXOR.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zXOR]{XOR}# (rs, rt, rd)) = - { - #\hyperref[zwGPR]{wGPR}#(rd) = (#\hyperref[zrGPR]{rGPR}#(rs) ^ #\hyperref[zrGPR]{rGPR}#(rt)) - } diff --git a/cheri/sail_latex/sailfnexecuteXORI.tex b/cheri/sail_latex/sailfnexecuteXORI.tex deleted file mode 100644 index 1310c125..00000000 --- a/cheri/sail_latex/sailfnexecuteXORI.tex +++ /dev/null @@ -1,4 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zXORI]{XORI}# (rs, rt, imm)) = - { - #\hyperref[zwGPR]{wGPR}#(rt) = (#\hyperref[zrGPR]{rGPR}#(rs) ^ #\hyperref[zzzerozyextend]{zero\_extend}#(imm)) - } diff --git a/cheri/sail_latex/sailfnexecutebranch.tex b/cheri/sail_latex/sailfnexecutebranch.tex deleted file mode 100644 index 9f2f03fc..00000000 --- a/cheri/sail_latex/sailfnexecutebranch.tex +++ /dev/null @@ -1,4 +0,0 @@ -function #\hyperref[zexecutezybranch]{execute\_branch}#(pc) = { - delayedPC = pc; - branchPending = 0b1; -} diff --git a/cheri/sail_latex/sailfnexecutebranchpcc.tex b/cheri/sail_latex/sailfnexecutebranchpcc.tex deleted file mode 100644 index 8c803ce2..00000000 --- a/cheri/sail_latex/sailfnexecutebranchpcc.tex +++ /dev/null @@ -1,5 +0,0 @@ -function #\hyperref[zexecutezybranchzypcc]{execute\_branch\_pcc}#(newPCC) = { - delayedPC = #\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapOffset]{getCapOffset}#(newPCC)); - delayedPCC = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(newPCC); - branchPending = 0b1; -} diff --git a/cheri/sail_latex/sailfnextendLoad.tex b/cheri/sail_latex/sailfnextendLoad.tex deleted file mode 100644 index 08d1f9a4..00000000 --- a/cheri/sail_latex/sailfnextendLoad.tex +++ /dev/null @@ -1,6 +0,0 @@ -function #\hyperref[zextendLoad]{extendLoad}#(memResult, sign) = { - if (sign) then - #\hyperref[zsignzyextend]{sign\_extend}#(memResult) - else - #\hyperref[zzzerozyextend]{zero\_extend}#(memResult) -} diff --git a/cheri/sail_latex/sailfngetAccessLevel.tex b/cheri/sail_latex/sailfngetAccessLevel.tex deleted file mode 100644 index c37a672e..00000000 --- a/cheri/sail_latex/sailfngetAccessLevel.tex +++ /dev/null @@ -1,10 +0,0 @@ -function #\hyperref[zgetAccessLevel]{getAccessLevel}#() = - if ((CP0Status.#\hyperref[zEXL]{EXL}#()) | (CP0Status.#\hyperref[zERL]{ERL}#())) then - Kernel - else match CP0Status.#\hyperref[zKSU]{KSU}#() - { - 0b00 => Kernel, - 0b01 => Supervisor, - 0b10 => User, - _ => User /* behaviour undefined, assume user */ - } diff --git a/cheri/sail_latex/sailfngetCapBase.tex b/cheri/sail_latex/sailfngetCapBase.tex deleted file mode 100644 index 92f7963b..00000000 --- a/cheri/sail_latex/sailfngetCapBase.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zgetCapBase]{getCapBase}#(c) : CapStruct -> uint64 = #\hyperref[zunsigned]{unsigned}#(c.base) diff --git a/cheri/sail_latex/sailfngetCapCauseRegExcCode.tex b/cheri/sail_latex/sailfngetCapCauseRegExcCode.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetCapCauseRegExcCode.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetCapCauseRegRegNum.tex b/cheri/sail_latex/sailfngetCapCauseRegRegNum.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetCapCauseRegRegNum.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetCapCauseRegbits.tex b/cheri/sail_latex/sailfngetCapCauseRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetCapCauseRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetCapCursor.tex b/cheri/sail_latex/sailfngetCapCursor.tex deleted file mode 100644 index 06750973..00000000 --- a/cheri/sail_latex/sailfngetCapCursor.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zgetCapCursor]{getCapCursor}#(c) : CapStruct -> uint64 = #\hyperref[zunsigned]{unsigned}#(c.address) diff --git a/cheri/sail_latex/sailfngetCapLength.tex b/cheri/sail_latex/sailfngetCapLength.tex deleted file mode 100644 index 501ed940..00000000 --- a/cheri/sail_latex/sailfngetCapLength.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zgetCapLength]{getCapLength}#(c) : CapStruct -> CapLen = #\hyperref[zunsigned]{unsigned}#(c.length) diff --git a/cheri/sail_latex/sailfngetCapOffset.tex b/cheri/sail_latex/sailfngetCapOffset.tex deleted file mode 100644 index d1dc5f8d..00000000 --- a/cheri/sail_latex/sailfngetCapOffset.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zgetCapOffset]{getCapOffset}#(c) : CapStruct -> uint64 = (#\hyperref[zunsigned]{unsigned}#(c.address) - #\hyperref[zunsigned]{unsigned}#(c.base)) % (#\hyperref[zpowtwo]{pow2}#(64)) diff --git a/cheri/sail_latex/sailfngetCapPerms.tex b/cheri/sail_latex/sailfngetCapPerms.tex deleted file mode 100644 index 932930ae..00000000 --- a/cheri/sail_latex/sailfngetCapPerms.tex +++ /dev/null @@ -1,16 +0,0 @@ -function #\hyperref[zgetCapPerms]{getCapPerms}#(cap) : CapStruct -> #\hyperref[zbits]{bits}#(31) = - ( - cap.uperms - @ cap.perm_reserved11_14 - @ cap.access_system_regs - @ cap.permit_unseal - @ cap.permit_ccall - @ cap.permit_seal - @ cap.permit_store_local_cap - @ cap.permit_store_cap - @ cap.permit_load_cap - @ cap.permit_store - @ cap.permit_load - @ cap.permit_execute - @ cap.global - ) diff --git a/cheri/sail_latex/sailfngetCapTop.tex b/cheri/sail_latex/sailfngetCapTop.tex deleted file mode 100644 index 3a3c74d5..00000000 --- a/cheri/sail_latex/sailfngetCapTop.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zgetCapTop]{getCapTop}#(c) : CapStruct -> CapLen = #\hyperref[zunsigned]{unsigned}#(c.base) + #\hyperref[zunsigned]{unsigned}#(c.length) /* XXX bug here? -- should be mod 2^64 */ diff --git a/cheri/sail_latex/sailfngetCauseRegBD.tex b/cheri/sail_latex/sailfngetCauseRegBD.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetCauseRegBD.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetCauseRegCE.tex b/cheri/sail_latex/sailfngetCauseRegCE.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetCauseRegCE.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetCauseRegExcCode.tex b/cheri/sail_latex/sailfngetCauseRegExcCode.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetCauseRegExcCode.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetCauseRegIP.tex b/cheri/sail_latex/sailfngetCauseRegIP.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetCauseRegIP.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetCauseRegIV.tex b/cheri/sail_latex/sailfngetCauseRegIV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetCauseRegIV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetCauseRegWP.tex b/cheri/sail_latex/sailfngetCauseRegWP.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetCauseRegWP.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetCauseRegbits.tex b/cheri/sail_latex/sailfngetCauseRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetCauseRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetContextRegBadVPNtwo.tex b/cheri/sail_latex/sailfngetContextRegBadVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetContextRegBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetContextRegPTEBase.tex b/cheri/sail_latex/sailfngetContextRegPTEBase.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetContextRegPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetContextRegbits.tex b/cheri/sail_latex/sailfngetContextRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetContextRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetStatusRegBEV.tex b/cheri/sail_latex/sailfngetStatusRegBEV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetStatusRegBEV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetStatusRegCU.tex b/cheri/sail_latex/sailfngetStatusRegCU.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetStatusRegCU.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetStatusRegERL.tex b/cheri/sail_latex/sailfngetStatusRegERL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetStatusRegERL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetStatusRegEXL.tex b/cheri/sail_latex/sailfngetStatusRegEXL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetStatusRegEXL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetStatusRegIE.tex b/cheri/sail_latex/sailfngetStatusRegIE.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetStatusRegIE.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetStatusRegIM.tex b/cheri/sail_latex/sailfngetStatusRegIM.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetStatusRegIM.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetStatusRegKSU.tex b/cheri/sail_latex/sailfngetStatusRegKSU.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetStatusRegKSU.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetStatusRegKX.tex b/cheri/sail_latex/sailfngetStatusRegKX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetStatusRegKX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetStatusRegSX.tex b/cheri/sail_latex/sailfngetStatusRegSX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetStatusRegSX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetStatusRegUX.tex b/cheri/sail_latex/sailfngetStatusRegUX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetStatusRegUX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetStatusRegbits.tex b/cheri/sail_latex/sailfngetStatusRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetStatusRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryHiRegASID.tex b/cheri/sail_latex/sailfngetTLBEntryHiRegASID.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryHiRegASID.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryHiRegR.tex b/cheri/sail_latex/sailfngetTLBEntryHiRegR.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryHiRegR.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryHiRegVPNtwo.tex b/cheri/sail_latex/sailfngetTLBEntryHiRegVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryHiRegVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryHiRegbits.tex b/cheri/sail_latex/sailfngetTLBEntryHiRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryHiRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryLoRegC.tex b/cheri/sail_latex/sailfngetTLBEntryLoRegC.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryLoRegC.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryLoRegCapL.tex b/cheri/sail_latex/sailfngetTLBEntryLoRegCapL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryLoRegCapL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryLoRegCapS.tex b/cheri/sail_latex/sailfngetTLBEntryLoRegCapS.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryLoRegCapS.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryLoRegD.tex b/cheri/sail_latex/sailfngetTLBEntryLoRegD.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryLoRegD.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryLoRegG.tex b/cheri/sail_latex/sailfngetTLBEntryLoRegG.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryLoRegG.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryLoRegPFN.tex b/cheri/sail_latex/sailfngetTLBEntryLoRegPFN.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryLoRegPFN.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryLoRegV.tex b/cheri/sail_latex/sailfngetTLBEntryLoRegV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryLoRegV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryLoRegbits.tex b/cheri/sail_latex/sailfngetTLBEntryLoRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryLoRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryasid.tex b/cheri/sail_latex/sailfngetTLBEntryasid.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryasid.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntrybits.tex b/cheri/sail_latex/sailfngetTLBEntrybits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntrybits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntrycaplone.tex b/cheri/sail_latex/sailfngetTLBEntrycaplone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntrycaplone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntrycaplzero.tex b/cheri/sail_latex/sailfngetTLBEntrycaplzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntrycaplzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntrycapsone.tex b/cheri/sail_latex/sailfngetTLBEntrycapsone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntrycapsone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntrycapszero.tex b/cheri/sail_latex/sailfngetTLBEntrycapszero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntrycapszero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntrycone.tex b/cheri/sail_latex/sailfngetTLBEntrycone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntrycone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryczero.tex b/cheri/sail_latex/sailfngetTLBEntryczero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryczero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntrydone.tex b/cheri/sail_latex/sailfngetTLBEntrydone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntrydone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntrydzero.tex b/cheri/sail_latex/sailfngetTLBEntrydzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntrydzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryg.tex b/cheri/sail_latex/sailfngetTLBEntryg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntrypagemask.tex b/cheri/sail_latex/sailfngetTLBEntrypagemask.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntrypagemask.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntrypfnone.tex b/cheri/sail_latex/sailfngetTLBEntrypfnone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntrypfnone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntrypfnzero.tex b/cheri/sail_latex/sailfngetTLBEntrypfnzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntrypfnzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryr.tex b/cheri/sail_latex/sailfngetTLBEntryr.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryr.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryvalid.tex b/cheri/sail_latex/sailfngetTLBEntryvalid.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryvalid.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryvone.tex b/cheri/sail_latex/sailfngetTLBEntryvone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryvone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryvpntwo.tex b/cheri/sail_latex/sailfngetTLBEntryvpntwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryvpntwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetTLBEntryvzero.tex b/cheri/sail_latex/sailfngetTLBEntryvzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetTLBEntryvzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetXContextRegXBadVPNtwo.tex b/cheri/sail_latex/sailfngetXContextRegXBadVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetXContextRegXBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetXContextRegXPTEBase.tex b/cheri/sail_latex/sailfngetXContextRegXPTEBase.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetXContextRegXPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetXContextRegXR.tex b/cheri/sail_latex/sailfngetXContextRegXR.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetXContextRegXR.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngetXContextRegbits.tex b/cheri/sail_latex/sailfngetXContextRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfngetXContextRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfngrantsAccess.tex b/cheri/sail_latex/sailfngrantsAccess.tex deleted file mode 100644 index 0840683d..00000000 --- a/cheri/sail_latex/sailfngrantsAccess.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zgrantsAccess]{grantsAccess}# (currentLevel, requiredLevel) = - #\hyperref[zintzyofzyAccessLevel]{int\_of\_AccessLevel}#(currentLevel) >= #\hyperref[zintzyofzyAccessLevel]{int\_of\_AccessLevel}#(requiredLevel) diff --git a/cheri/sail_latex/sailfnincCapOffset.tex b/cheri/sail_latex/sailfnincCapOffset.tex deleted file mode 100644 index 134bc1fd..00000000 --- a/cheri/sail_latex/sailfnincCapOffset.tex +++ /dev/null @@ -1,3 +0,0 @@ -function #\hyperref[zincCapOffset]{incCapOffset}#(c, delta) = - let newAddr : #\hyperref[zbits]{bits}#(64) = c.address + delta in - (true, {c with address = newAddr}) diff --git a/cheri/sail_latex/sailfnincrementCPzeroCount.tex b/cheri/sail_latex/sailfnincrementCPzeroCount.tex deleted file mode 100644 index 71ca2e51..00000000 --- a/cheri/sail_latex/sailfnincrementCPzeroCount.tex +++ /dev/null @@ -1,17 +0,0 @@ -function #\hyperref[zincrementCPzeroCount]{incrementCP0Count}#() = { - TLBRandom = (if (TLBRandom == TLBWired) - then (TLBIndexMax) else (TLBRandom - 1)); - - CP0Count = (CP0Count + 1); - if (CP0Count == CP0Compare) then { - CP0Cause->#\hyperref[zIP]{IP}#() = CP0Cause.#\hyperref[zIP]{IP}#() | 0x80; /* IP7 is timer interrupt */ - }; - - let ims = CP0Status.#\hyperref[zIM]{IM}#() in - let ips = CP0Cause.#\hyperref[zIP]{IP}#() in - let ie = CP0Status.#\hyperref[zIE]{IE}#() in - let exl = CP0Status.#\hyperref[zEXL]{EXL}#() in - let erl = CP0Status.#\hyperref[zERL]{ERL}#() in - if ((~(exl)) & (~(erl)) & ie & ((ips & ims) != 0x00)) then - #\hyperref[zSignalException]{SignalException}#(Interrupt); -} diff --git a/cheri/sail_latex/sailfninitcptwostate.tex b/cheri/sail_latex/sailfninitcptwostate.tex deleted file mode 100644 index ea9e07b5..00000000 --- a/cheri/sail_latex/sailfninitcptwostate.tex +++ /dev/null @@ -1,19 +0,0 @@ -function #\hyperref[zinitzycptwozystate]{init\_cp2\_state}# () = { - let defaultBits = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(default_cap); - let nullBits = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(null_cap); - PCC = defaultBits; - nextPCC = defaultBits; - delayedPCC = defaultBits; - DDC = defaultBits; - KCC = defaultBits; - EPCC = defaultBits; - KDC = nullBits; - KR1C = nullBits; - KR2C = nullBits; - CTLSP = nullBits; - CTLSU = nullBits; - foreach(i from 1 to 31) { - let idx = #\hyperref[ztozybits]{to\_bits}#(5, i) in - #\hyperref[zwriteCapReg]{writeCapReg}#(idx, null_cap) - } -} diff --git a/cheri/sail_latex/sailfninitcpzerostate.tex b/cheri/sail_latex/sailfninitcpzerostate.tex deleted file mode 100644 index be4ebee2..00000000 --- a/cheri/sail_latex/sailfninitcpzerostate.tex +++ /dev/null @@ -1,3 +0,0 @@ -function #\hyperref[zinitzycpzerozystate]{init\_cp0\_state}# () : unit -> unit = { - CP0Status->#\hyperref[zBEV]{BEV}#() = bitone; -} diff --git a/cheri/sail_latex/sailfnintofAccessLevel.tex b/cheri/sail_latex/sailfnintofAccessLevel.tex deleted file mode 100644 index 0a5bb3c6..00000000 --- a/cheri/sail_latex/sailfnintofAccessLevel.tex +++ /dev/null @@ -1,6 +0,0 @@ -function int_of_AccessLevel level = - match level { - User => 0, - Supervisor => 1, - Kernel => 2 - } diff --git a/cheri/sail_latex/sailfninttocap.tex b/cheri/sail_latex/sailfninttocap.tex deleted file mode 100644 index a10d10c1..00000000 --- a/cheri/sail_latex/sailfninttocap.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zintzytozycap]{int\_to\_cap}# (address) : #\hyperref[zbits]{bits}#(64) -> CapStruct = - {null_cap with address = address} diff --git a/cheri/sail_latex/sailfnisAddressAligned.tex b/cheri/sail_latex/sailfnisAddressAligned.tex deleted file mode 100644 index 212605ce..00000000 --- a/cheri/sail_latex/sailfnisAddressAligned.tex +++ /dev/null @@ -1,3 +0,0 @@ -function #\hyperref[zisAddressAligned]{isAddressAligned}# (addr, wordType) = - let a = #\hyperref[zunsigned]{unsigned}#(addr) in - a / alignment_width == (a + #\hyperref[zwordWidthBytes]{wordWidthBytes}#(wordType) - 1) / alignment_width diff --git a/cheri/sail_latex/sailfnisnone.tex b/cheri/sail_latex/sailfnisnone.tex deleted file mode 100644 index 877cc2a0..00000000 --- a/cheri/sail_latex/sailfnisnone.tex +++ /dev/null @@ -1,4 +0,0 @@ -function is_none opt = match opt { - #\hyperref[zSome]{Some}#(_) => false, - #\hyperref[zNone]{None}#() => true -} diff --git a/cheri/sail_latex/sailfnissome.tex b/cheri/sail_latex/sailfnissome.tex deleted file mode 100644 index f1f5f655..00000000 --- a/cheri/sail_latex/sailfnissome.tex +++ /dev/null @@ -1,4 +0,0 @@ -function is_some opt = match opt { - #\hyperref[zSome]{Some}#(_) => true, - #\hyperref[zNone]{None}#() => false -} diff --git a/cheri/sail_latex/sailfnmask.tex b/cheri/sail_latex/sailfnmask.tex deleted file mode 100644 index e62ea529..00000000 --- a/cheri/sail_latex/sailfnmask.tex +++ /dev/null @@ -1 +0,0 @@ -function mask bs = bs['n - 1 .. 0] diff --git a/cheri/sail_latex/sailfnmemBitsToCapBits.tex b/cheri/sail_latex/sailfnmemBitsToCapBits.tex deleted file mode 100644 index f5dc7a3b..00000000 --- a/cheri/sail_latex/sailfnmemBitsToCapBits.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zmemBitsToCapBits]{memBitsToCapBits}#(tag, b) : (bool, #\hyperref[zbits]{bits}#(256)) -> #\hyperref[zbits]{bits}#(257) = - tag @ (b ^ null_cap_bits) diff --git a/cheri/sail_latex/sailfnmipssignextend.tex b/cheri/sail_latex/sailfnmipssignextend.tex deleted file mode 100644 index 80945b61..00000000 --- a/cheri/sail_latex/sailfnmipssignextend.tex +++ /dev/null @@ -1 +0,0 @@ -function mips_sign_extend v = #\hyperref[zsailzysignzyextend]{sail\_sign\_extend}#(v, sizeof('m)) diff --git a/cheri/sail_latex/sailfnmipszzeroextend.tex b/cheri/sail_latex/sailfnmipszzeroextend.tex deleted file mode 100644 index 6c9914d9..00000000 --- a/cheri/sail_latex/sailfnmipszzeroextend.tex +++ /dev/null @@ -1 +0,0 @@ -function mips_zero_extend v = #\hyperref[zsailzyzzerozyextend]{sail\_zero\_extend}#(v, sizeof('m)) diff --git a/cheri/sail_latex/sailfnneqanything.tex b/cheri/sail_latex/sailfnneqanything.tex deleted file mode 100644 index 1605ed05..00000000 --- a/cheri/sail_latex/sailfnneqanything.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zneqzyanything]{neq\_anything}# (x, y) = #\hyperref[znotzybool]{not\_bool}#(x == y) diff --git a/cheri/sail_latex/sailfnneqatom.tex b/cheri/sail_latex/sailfnneqatom.tex deleted file mode 100644 index e9a9f93f..00000000 --- a/cheri/sail_latex/sailfnneqatom.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zneqzyatom]{neq\_atom}# (x, y) = #\hyperref[znotzybool]{not\_bool}#(#\hyperref[zeqzyatom]{eq\_atom}#(x, y)) diff --git a/cheri/sail_latex/sailfnneqbool.tex b/cheri/sail_latex/sailfnneqbool.tex deleted file mode 100644 index 65007b8e..00000000 --- a/cheri/sail_latex/sailfnneqbool.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zneqzybool]{neq\_bool}# (x, y) = #\hyperref[znotzybool]{not\_bool}#(#\hyperref[zeqzybool]{eq\_bool}#(x, y)) diff --git a/cheri/sail_latex/sailfnneqint.tex b/cheri/sail_latex/sailfnneqint.tex deleted file mode 100644 index 952a7735..00000000 --- a/cheri/sail_latex/sailfnneqint.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zneqzyint]{neq\_int}# (x, y) = #\hyperref[znotzybool]{not\_bool}#(#\hyperref[zeqzyint]{eq\_int}#(x, y)) diff --git a/cheri/sail_latex/sailfnneqrange.tex b/cheri/sail_latex/sailfnneqrange.tex deleted file mode 100644 index 43f49e9e..00000000 --- a/cheri/sail_latex/sailfnneqrange.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zneqzyrange]{neq\_range}# (x, y) = #\hyperref[znotzybool]{not\_bool}#(#\hyperref[zeqzyrange]{eq\_range}#(x, y)) diff --git a/cheri/sail_latex/sailfnneqvec.tex b/cheri/sail_latex/sailfnneqvec.tex deleted file mode 100644 index c446df08..00000000 --- a/cheri/sail_latex/sailfnneqvec.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zneqzyvec]{neq\_vec}# (x, y) = #\hyperref[znotzybool]{not\_bool}#(#\hyperref[zeqzybits]{eq\_bits}#(x, y)) diff --git a/cheri/sail_latex/sailfnnumofAccessLevel.tex b/cheri/sail_latex/sailfnnumofAccessLevel.tex deleted file mode 100644 index a5a1d8af..00000000 --- a/cheri/sail_latex/sailfnnumofAccessLevel.tex +++ /dev/null @@ -1,5 +0,0 @@ -function num_of_AccessLevel arg# = match arg# { - User => 0, - Supervisor => 1, - Kernel => 2 -} diff --git a/cheri/sail_latex/sailfnnumofCPtrCmpOp.tex b/cheri/sail_latex/sailfnnumofCPtrCmpOp.tex deleted file mode 100644 index 4d20546b..00000000 --- a/cheri/sail_latex/sailfnnumofCPtrCmpOp.tex +++ /dev/null @@ -1,10 +0,0 @@ -function num_of_CPtrCmpOp arg# = match arg# { - CEQ => 0, - CNE => 1, - CLT => 2, - CLE => 3, - CLTU => 4, - CLEU => 5, - CEXEQ => 6, - CNEXEQ => 7 -} diff --git a/cheri/sail_latex/sailfnnumofCapEx.tex b/cheri/sail_latex/sailfnnumofCapEx.tex deleted file mode 100644 index d2ee7b0f..00000000 --- a/cheri/sail_latex/sailfnnumofCapEx.tex +++ /dev/null @@ -1,25 +0,0 @@ -function num_of_CapEx arg# = match arg# { - CapEx_None => 0, - CapEx_LengthViolation => 1, - CapEx_TagViolation => 2, - CapEx_SealViolation => 3, - CapEx_TypeViolation => 4, - CapEx_CallTrap => 5, - CapEx_ReturnTrap => 6, - CapEx_TSSUnderFlow => 7, - CapEx_UserDefViolation => 8, - CapEx_TLBNoStoreCap => 9, - CapEx_InexactBounds => 10, - CapEx_GlobalViolation => 11, - CapEx_PermitExecuteViolation => 12, - CapEx_PermitLoadViolation => 13, - CapEx_PermitStoreViolation => 14, - CapEx_PermitLoadCapViolation => 15, - CapEx_PermitStoreCapViolation => 16, - CapEx_PermitStoreLocalCapViolation => 17, - CapEx_PermitSealViolation => 18, - CapEx_AccessSystemRegsViolation => 19, - CapEx_PermitCCallViolation => 20, - CapEx_AccessCCallIDCViolation => 21, - CapEx_PermitUnsealViolation => 22 -} diff --git a/cheri/sail_latex/sailfnnumofClearRegSet.tex b/cheri/sail_latex/sailfnnumofClearRegSet.tex deleted file mode 100644 index 3dd58b89..00000000 --- a/cheri/sail_latex/sailfnnumofClearRegSet.tex +++ /dev/null @@ -1,6 +0,0 @@ -function num_of_ClearRegSet arg# = match arg# { - GPLo => 0, - GPHi => 1, - CLo => 2, - CHi => 3 -} diff --git a/cheri/sail_latex/sailfnnumofComparison.tex b/cheri/sail_latex/sailfnnumofComparison.tex deleted file mode 100644 index d98bebc2..00000000 --- a/cheri/sail_latex/sailfnnumofComparison.tex +++ /dev/null @@ -1,10 +0,0 @@ -function num_of_Comparison arg# = match arg# { - EQ => 0, - NE => 1, - GE => 2, - GEU => 3, - GT => 4, - LE => 5, - LT => 6, - LTU => 7 -} diff --git a/cheri/sail_latex/sailfnnumofException.tex b/cheri/sail_latex/sailfnnumofException.tex deleted file mode 100644 index 02bad081..00000000 --- a/cheri/sail_latex/sailfnnumofException.tex +++ /dev/null @@ -1,21 +0,0 @@ -function num_of_Exception arg# = match arg# { - Interrupt => 0, - TLBMod => 1, - TLBL => 2, - TLBS => 3, - AdEL => 4, - AdES => 5, - Sys => 6, - Bp => 7, - ResI => 8, - CpU => 9, - Ov => 10, - Tr => 11, - C2E => 12, - C2Trap => 13, - XTLBRefillL => 14, - XTLBRefillS => 15, - XTLBInvL => 16, - XTLBInvS => 17, - MCheck => 18 -} diff --git a/cheri/sail_latex/sailfnnumofMemAccessType.tex b/cheri/sail_latex/sailfnnumofMemAccessType.tex deleted file mode 100644 index 47b1af66..00000000 --- a/cheri/sail_latex/sailfnnumofMemAccessType.tex +++ /dev/null @@ -1,5 +0,0 @@ -function num_of_MemAccessType arg# = match arg# { - Instruction => 0, - LoadData => 1, - StoreData => 2 -} diff --git a/cheri/sail_latex/sailfnnumofWordType.tex b/cheri/sail_latex/sailfnnumofWordType.tex deleted file mode 100644 index 0ed09f63..00000000 --- a/cheri/sail_latex/sailfnnumofWordType.tex +++ /dev/null @@ -1,6 +0,0 @@ -function num_of_WordType arg# = match arg# { - B => 0, - H => 1, - W => 2, - D => 3 -} diff --git a/cheri/sail_latex/sailfnnumofWordTypeUnaligned.tex b/cheri/sail_latex/sailfnnumofWordTypeUnaligned.tex deleted file mode 100644 index f6b61ce7..00000000 --- a/cheri/sail_latex/sailfnnumofWordTypeUnaligned.tex +++ /dev/null @@ -1,6 +0,0 @@ -function num_of_WordTypeUnaligned arg# = match arg# { - WL => 0, - WR => 1, - DL => 2, - DR => 3 -} diff --git a/cheri/sail_latex/sailfnnumofdecodefailure.tex b/cheri/sail_latex/sailfnnumofdecodefailure.tex deleted file mode 100644 index 3b5fadb3..00000000 --- a/cheri/sail_latex/sailfnnumofdecodefailure.tex +++ /dev/null @@ -1,6 +0,0 @@ -function num_of_decode_failure arg# = match arg# { - no_matching_pattern => 0, - unsupported_instruction => 1, - illegal_instruction => 2, - internal_error => 3 -} diff --git a/cheri/sail_latex/sailfnones.tex b/cheri/sail_latex/sailfnones.tex deleted file mode 100644 index e58040d7..00000000 --- a/cheri/sail_latex/sailfnones.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zones]{ones}#() = #\hyperref[zreplicatezybits]{replicate\_bits}# (0b1,'n) diff --git a/cheri/sail_latex/sailfnpccaccesssystemregs.tex b/cheri/sail_latex/sailfnpccaccesssystemregs.tex deleted file mode 100644 index 3e54b060..00000000 --- a/cheri/sail_latex/sailfnpccaccesssystemregs.tex +++ /dev/null @@ -1,3 +0,0 @@ -function #\hyperref[zpcczyaccesszysystemzyregs]{pcc\_access\_system\_regs}# () = - let pcc = #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(PCC) in - (pcc.access_system_regs) diff --git a/cheri/sail_latex/sailfnrGPR.tex b/cheri/sail_latex/sailfnrGPR.tex deleted file mode 100644 index 751d67a3..00000000 --- a/cheri/sail_latex/sailfnrGPR.tex +++ /dev/null @@ -1,4 +0,0 @@ -function rGPR idx = { - let i as atom(_) = #\hyperref[zunsigned]{unsigned}#(idx) in - if i == 0 then 0x0000000000000000 else GPR[i] -} diff --git a/cheri/sail_latex/sailfnraisectwoexception.tex b/cheri/sail_latex/sailfnraisectwoexception.tex deleted file mode 100644 index e3d6bcbb..00000000 --- a/cheri/sail_latex/sailfnraisectwoexception.tex +++ /dev/null @@ -1,6 +0,0 @@ -function #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(capEx, regnum) = - let reg8 = 0b000 @ regnum in - if ((capEx == CapEx_AccessSystemRegsViolation) & (regnum == IDCNO)) then - #\hyperref[zraisezyctwozyexceptioneight]{raise\_c2\_exception8}#(CapEx_AccessCCallIDCViolation, reg8) - else - #\hyperref[zraisezyctwozyexceptioneight]{raise\_c2\_exception8}#(capEx, reg8) diff --git a/cheri/sail_latex/sailfnraisectwoexceptioneight.tex b/cheri/sail_latex/sailfnraisectwoexceptioneight.tex deleted file mode 100644 index b6490aa0..00000000 --- a/cheri/sail_latex/sailfnraisectwoexceptioneight.tex +++ /dev/null @@ -1,9 +0,0 @@ -function #\hyperref[zraisezyctwozyexceptioneight]{raise\_c2\_exception8}#(capEx, regnum) = - { - CapCause->#\hyperref[zExcCode]{ExcCode}#() = #\hyperref[zCapExCode]{CapExCode}#(capEx); - CapCause->#\hyperref[zRegNum]{RegNum}#() = regnum; - let mipsEx = - if ((capEx == CapEx_CallTrap) | (capEx == CapEx_ReturnTrap)) - then C2Trap else C2E in - #\hyperref[zSignalException]{SignalException}#(mipsEx); - } diff --git a/cheri/sail_latex/sailfnraisectwoexceptionnoreg.tex b/cheri/sail_latex/sailfnraisectwoexceptionnoreg.tex deleted file mode 100644 index db246d80..00000000 --- a/cheri/sail_latex/sailfnraisectwoexceptionnoreg.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zraisezyctwozyexceptionzynoreg]{raise\_c2\_exception\_noreg}#(capEx) = - #\hyperref[zraisezyctwozyexceptioneight]{raise\_c2\_exception8}#(capEx, 0xff) diff --git a/cheri/sail_latex/sailfnreadCapReg.tex b/cheri/sail_latex/sailfnreadCapReg.tex deleted file mode 100644 index 357027c3..00000000 --- a/cheri/sail_latex/sailfnreadCapReg.tex +++ /dev/null @@ -1,6 +0,0 @@ -function #\hyperref[zreadCapReg]{readCapReg}#(n) = - if (n == 0b00000) then - null_cap - else - let i = #\hyperref[zunsigned]{unsigned}#(n) in - #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(#\hyperref[zregzyderef]{reg\_deref}#(CapRegs[i])) diff --git a/cheri/sail_latex/sailfnreadCapRegDDC.tex b/cheri/sail_latex/sailfnreadCapRegDDC.tex deleted file mode 100644 index f2fea30c..00000000 --- a/cheri/sail_latex/sailfnreadCapRegDDC.tex +++ /dev/null @@ -1,3 +0,0 @@ -function #\hyperref[zreadCapRegDDC]{readCapRegDDC}#(n) = - let i = #\hyperref[zunsigned]{unsigned}#(n) in - #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(#\hyperref[zregzyderef]{reg\_deref}#(CapRegs[i])) /* NB CapRegs[0] is points to DDC */ diff --git a/cheri/sail_latex/sailfnregisterinaccessible.tex b/cheri/sail_latex/sailfnregisterinaccessible.tex deleted file mode 100644 index 368d01a4..00000000 --- a/cheri/sail_latex/sailfnregisterinaccessible.tex +++ /dev/null @@ -1,7 +0,0 @@ -function #\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(r) = - ((r == IDCNO) & inCCallDelay) | - ((r == KR1CNO | - r == KR2CNO | - r == KDCNO | - r == KCCNO | - r == EPCCNO) & #\hyperref[znot]{not}# (#\hyperref[zpcczyaccesszysystemzyregs]{pcc\_access\_system\_regs}# ())) diff --git a/cheri/sail_latex/sailfnsailmask.tex b/cheri/sail_latex/sailfnsailmask.tex deleted file mode 100644 index 37ede658..00000000 --- a/cheri/sail_latex/sailfnsailmask.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zsailzymask]{sail\_mask}#(len, v) = if len <= #\hyperref[zlength]{length}#(v) then #\hyperref[ztruncate]{truncate}#(v, len) else #\hyperref[zsailzyzzerozyextend]{sail\_zero\_extend}#(v, len) diff --git a/cheri/sail_latex/sailfnsealCap.tex b/cheri/sail_latex/sailfnsealCap.tex deleted file mode 100644 index beb1435b..00000000 --- a/cheri/sail_latex/sailfnsealCap.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zsealCap]{sealCap}#(cap, otype) : (CapStruct, #\hyperref[zbits]{bits}#(24)) -> (bool, CapStruct) = - (true, {cap with sealed=true, otype=otype}) diff --git a/cheri/sail_latex/sailfnsetCapBounds.tex b/cheri/sail_latex/sailfnsetCapBounds.tex deleted file mode 100644 index cb689dd8..00000000 --- a/cheri/sail_latex/sailfnsetCapBounds.tex +++ /dev/null @@ -1,3 +0,0 @@ -function #\hyperref[zsetCapBounds]{setCapBounds}#(cap, base, top) = - let length : #\hyperref[zbits]{bits}#(65) = top - (0b0 @ base) in - (true, {cap with base = base, length = length[63..0], address = base}) diff --git a/cheri/sail_latex/sailfnsetCapCauseRegExcCode.tex b/cheri/sail_latex/sailfnsetCapCauseRegExcCode.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetCapCauseRegExcCode.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetCapCauseRegRegNum.tex b/cheri/sail_latex/sailfnsetCapCauseRegRegNum.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetCapCauseRegRegNum.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetCapCauseRegbits.tex b/cheri/sail_latex/sailfnsetCapCauseRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetCapCauseRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetCapOffset.tex b/cheri/sail_latex/sailfnsetCapOffset.tex deleted file mode 100644 index 404630e3..00000000 --- a/cheri/sail_latex/sailfnsetCapOffset.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zsetCapOffset]{setCapOffset}#(c, offset) = - (true, {c with address=c.base + offset}) diff --git a/cheri/sail_latex/sailfnsetCapPerms.tex b/cheri/sail_latex/sailfnsetCapPerms.tex deleted file mode 100644 index 1a1f67bd..00000000 --- a/cheri/sail_latex/sailfnsetCapPerms.tex +++ /dev/null @@ -1,16 +0,0 @@ -function #\hyperref[zsetCapPerms]{setCapPerms}#(cap, perms) : (CapStruct, #\hyperref[zbits]{bits}#(31)) -> CapStruct = - { cap with - uperms = perms[30..15], - /* perm_reserved11_14 = perms[14..11], XXX should allow to set? only affects cbuildcap. */ - access_system_regs = perms[10], - permit_unseal = perms[9], - permit_ccall = perms[8], - permit_seal = perms[7], - permit_store_local_cap = perms[6], - permit_store_cap = perms[5], - permit_load_cap = perms[4], - permit_store = perms[3], - permit_load = perms[2], - permit_execute = perms[1], - global = perms[0] - } diff --git a/cheri/sail_latex/sailfnsetCauseRegBD.tex b/cheri/sail_latex/sailfnsetCauseRegBD.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetCauseRegBD.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetCauseRegCE.tex b/cheri/sail_latex/sailfnsetCauseRegCE.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetCauseRegCE.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetCauseRegExcCode.tex b/cheri/sail_latex/sailfnsetCauseRegExcCode.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetCauseRegExcCode.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetCauseRegIP.tex b/cheri/sail_latex/sailfnsetCauseRegIP.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetCauseRegIP.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetCauseRegIV.tex b/cheri/sail_latex/sailfnsetCauseRegIV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetCauseRegIV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetCauseRegWP.tex b/cheri/sail_latex/sailfnsetCauseRegWP.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetCauseRegWP.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetCauseRegbits.tex b/cheri/sail_latex/sailfnsetCauseRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetCauseRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetContextRegBadVPNtwo.tex b/cheri/sail_latex/sailfnsetContextRegBadVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetContextRegBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetContextRegPTEBase.tex b/cheri/sail_latex/sailfnsetContextRegPTEBase.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetContextRegPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetContextRegbits.tex b/cheri/sail_latex/sailfnsetContextRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetContextRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetStatusRegBEV.tex b/cheri/sail_latex/sailfnsetStatusRegBEV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetStatusRegBEV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetStatusRegCU.tex b/cheri/sail_latex/sailfnsetStatusRegCU.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetStatusRegCU.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetStatusRegERL.tex b/cheri/sail_latex/sailfnsetStatusRegERL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetStatusRegERL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetStatusRegEXL.tex b/cheri/sail_latex/sailfnsetStatusRegEXL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetStatusRegEXL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetStatusRegIE.tex b/cheri/sail_latex/sailfnsetStatusRegIE.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetStatusRegIE.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetStatusRegIM.tex b/cheri/sail_latex/sailfnsetStatusRegIM.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetStatusRegIM.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetStatusRegKSU.tex b/cheri/sail_latex/sailfnsetStatusRegKSU.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetStatusRegKSU.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetStatusRegKX.tex b/cheri/sail_latex/sailfnsetStatusRegKX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetStatusRegKX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetStatusRegSX.tex b/cheri/sail_latex/sailfnsetStatusRegSX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetStatusRegSX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetStatusRegUX.tex b/cheri/sail_latex/sailfnsetStatusRegUX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetStatusRegUX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetStatusRegbits.tex b/cheri/sail_latex/sailfnsetStatusRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetStatusRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryHiRegASID.tex b/cheri/sail_latex/sailfnsetTLBEntryHiRegASID.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryHiRegASID.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryHiRegR.tex b/cheri/sail_latex/sailfnsetTLBEntryHiRegR.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryHiRegR.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryHiRegVPNtwo.tex b/cheri/sail_latex/sailfnsetTLBEntryHiRegVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryHiRegVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryHiRegbits.tex b/cheri/sail_latex/sailfnsetTLBEntryHiRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryHiRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryLoRegC.tex b/cheri/sail_latex/sailfnsetTLBEntryLoRegC.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryLoRegC.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryLoRegCapL.tex b/cheri/sail_latex/sailfnsetTLBEntryLoRegCapL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryLoRegCapL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryLoRegCapS.tex b/cheri/sail_latex/sailfnsetTLBEntryLoRegCapS.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryLoRegCapS.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryLoRegD.tex b/cheri/sail_latex/sailfnsetTLBEntryLoRegD.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryLoRegD.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryLoRegG.tex b/cheri/sail_latex/sailfnsetTLBEntryLoRegG.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryLoRegG.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryLoRegPFN.tex b/cheri/sail_latex/sailfnsetTLBEntryLoRegPFN.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryLoRegPFN.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryLoRegV.tex b/cheri/sail_latex/sailfnsetTLBEntryLoRegV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryLoRegV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryLoRegbits.tex b/cheri/sail_latex/sailfnsetTLBEntryLoRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryLoRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryasid.tex b/cheri/sail_latex/sailfnsetTLBEntryasid.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryasid.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntrybits.tex b/cheri/sail_latex/sailfnsetTLBEntrybits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntrybits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntrycaplone.tex b/cheri/sail_latex/sailfnsetTLBEntrycaplone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntrycaplone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntrycaplzero.tex b/cheri/sail_latex/sailfnsetTLBEntrycaplzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntrycaplzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntrycapsone.tex b/cheri/sail_latex/sailfnsetTLBEntrycapsone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntrycapsone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntrycapszero.tex b/cheri/sail_latex/sailfnsetTLBEntrycapszero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntrycapszero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntrycone.tex b/cheri/sail_latex/sailfnsetTLBEntrycone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntrycone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryczero.tex b/cheri/sail_latex/sailfnsetTLBEntryczero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryczero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntrydone.tex b/cheri/sail_latex/sailfnsetTLBEntrydone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntrydone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntrydzero.tex b/cheri/sail_latex/sailfnsetTLBEntrydzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntrydzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryg.tex b/cheri/sail_latex/sailfnsetTLBEntryg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntrypagemask.tex b/cheri/sail_latex/sailfnsetTLBEntrypagemask.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntrypagemask.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntrypfnone.tex b/cheri/sail_latex/sailfnsetTLBEntrypfnone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntrypfnone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntrypfnzero.tex b/cheri/sail_latex/sailfnsetTLBEntrypfnzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntrypfnzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryr.tex b/cheri/sail_latex/sailfnsetTLBEntryr.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryr.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryvalid.tex b/cheri/sail_latex/sailfnsetTLBEntryvalid.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryvalid.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryvone.tex b/cheri/sail_latex/sailfnsetTLBEntryvone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryvone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryvpntwo.tex b/cheri/sail_latex/sailfnsetTLBEntryvpntwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryvpntwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetTLBEntryvzero.tex b/cheri/sail_latex/sailfnsetTLBEntryvzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetTLBEntryvzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetXContextRegXBadVPNtwo.tex b/cheri/sail_latex/sailfnsetXContextRegXBadVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetXContextRegXBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetXContextRegXPTEBase.tex b/cheri/sail_latex/sailfnsetXContextRegXPTEBase.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetXContextRegXPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetXContextRegXR.tex b/cheri/sail_latex/sailfnsetXContextRegXR.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetXContextRegXR.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsetXContextRegbits.tex b/cheri/sail_latex/sailfnsetXContextRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnsetXContextRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnsupportedinstructions.tex b/cheri/sail_latex/sailfnsupportedinstructions.tex deleted file mode 100644 index b3ffdfa4..00000000 --- a/cheri/sail_latex/sailfnsupportedinstructions.tex +++ /dev/null @@ -1 +0,0 @@ -function supported_instructions instr = #\hyperref[zSome]{Some}#(instr) diff --git a/cheri/sail_latex/sailfntlbEntryMatch.tex b/cheri/sail_latex/sailfntlbEntryMatch.tex deleted file mode 100644 index f952062f..00000000 --- a/cheri/sail_latex/sailfntlbEntryMatch.tex +++ /dev/null @@ -1,12 +0,0 @@ -function #\hyperref[ztlbEntryMatch]{tlbEntryMatch}#(r, vpn2, asid, entry) = - let entryValid = entry.#\hyperref[zvalid]{valid}#() in - let entryR = entry.#\hyperref[zr]{r}#() in - let entryMask = entry.#\hyperref[zpagemask]{pagemask}#() in - let entryVPN = entry.#\hyperref[zvpntwo]{vpn2}#() in - let entryASID = entry.#\hyperref[zasid]{asid}#() in - let entryG = entry.#\hyperref[zg]{g}#() in - let vpnMask : #\hyperref[zbits]{bits}#(27) = ~(#\hyperref[zzzerozyextend]{zero\_extend}#(entryMask)) in - (entryValid & - (r == entryR) & - ((vpn2 & vpnMask) == ((entryVPN) & vpnMask)) & - ((asid == (entryASID)) | (entryG))) diff --git a/cheri/sail_latex/sailfntlbSearch.tex b/cheri/sail_latex/sailfntlbSearch.tex deleted file mode 100644 index 8bce6f3b..00000000 --- a/cheri/sail_latex/sailfntlbSearch.tex +++ /dev/null @@ -1,10 +0,0 @@ -function #\hyperref[ztlbSearch]{tlbSearch}#(VAddr) = - let r = (VAddr[63..62]) in - let vpn2 = (VAddr[39..13]) in - let asid = TLBEntryHi.#\hyperref[zASID]{ASID}#() in { - foreach (idx from 0 to 63) { - if(#\hyperref[ztlbEntryMatch]{tlbEntryMatch}#(r, vpn2, asid, #\hyperref[zregzyderef]{reg\_deref}#(TLBEntries[idx]))) then - return #\hyperref[zSome]{Some}#(#\hyperref[ztozybits]{to\_bits}#(6, idx)) - }; - #\hyperref[zNone]{None}#() - } diff --git a/cheri/sail_latex/sailfntobits.tex b/cheri/sail_latex/sailfntobits.tex deleted file mode 100644 index d1df5e83..00000000 --- a/cheri/sail_latex/sailfntobits.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[ztozybits]{to\_bits}# (l, n) = #\hyperref[zgetzyslicezyint]{get\_slice\_int}#(l, n, 0) diff --git a/cheri/sail_latex/sailfnupdateCapCauseRegExcCode.tex b/cheri/sail_latex/sailfnupdateCapCauseRegExcCode.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateCapCauseRegExcCode.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateCapCauseRegRegNum.tex b/cheri/sail_latex/sailfnupdateCapCauseRegRegNum.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateCapCauseRegRegNum.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateCapCauseRegbits.tex b/cheri/sail_latex/sailfnupdateCapCauseRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateCapCauseRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateCauseRegBD.tex b/cheri/sail_latex/sailfnupdateCauseRegBD.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateCauseRegBD.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateCauseRegCE.tex b/cheri/sail_latex/sailfnupdateCauseRegCE.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateCauseRegCE.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateCauseRegExcCode.tex b/cheri/sail_latex/sailfnupdateCauseRegExcCode.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateCauseRegExcCode.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateCauseRegIP.tex b/cheri/sail_latex/sailfnupdateCauseRegIP.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateCauseRegIP.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateCauseRegIV.tex b/cheri/sail_latex/sailfnupdateCauseRegIV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateCauseRegIV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateCauseRegWP.tex b/cheri/sail_latex/sailfnupdateCauseRegWP.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateCauseRegWP.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateCauseRegbits.tex b/cheri/sail_latex/sailfnupdateCauseRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateCauseRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateContextRegBadVPNtwo.tex b/cheri/sail_latex/sailfnupdateContextRegBadVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateContextRegBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateContextRegPTEBase.tex b/cheri/sail_latex/sailfnupdateContextRegPTEBase.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateContextRegPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateContextRegbits.tex b/cheri/sail_latex/sailfnupdateContextRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateContextRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateStatusRegBEV.tex b/cheri/sail_latex/sailfnupdateStatusRegBEV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateStatusRegBEV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateStatusRegCU.tex b/cheri/sail_latex/sailfnupdateStatusRegCU.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateStatusRegCU.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateStatusRegERL.tex b/cheri/sail_latex/sailfnupdateStatusRegERL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateStatusRegERL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateStatusRegEXL.tex b/cheri/sail_latex/sailfnupdateStatusRegEXL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateStatusRegEXL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateStatusRegIE.tex b/cheri/sail_latex/sailfnupdateStatusRegIE.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateStatusRegIE.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateStatusRegIM.tex b/cheri/sail_latex/sailfnupdateStatusRegIM.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateStatusRegIM.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateStatusRegKSU.tex b/cheri/sail_latex/sailfnupdateStatusRegKSU.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateStatusRegKSU.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateStatusRegKX.tex b/cheri/sail_latex/sailfnupdateStatusRegKX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateStatusRegKX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateStatusRegSX.tex b/cheri/sail_latex/sailfnupdateStatusRegSX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateStatusRegSX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateStatusRegUX.tex b/cheri/sail_latex/sailfnupdateStatusRegUX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateStatusRegUX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateStatusRegbits.tex b/cheri/sail_latex/sailfnupdateStatusRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateStatusRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryHiRegASID.tex b/cheri/sail_latex/sailfnupdateTLBEntryHiRegASID.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryHiRegASID.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryHiRegR.tex b/cheri/sail_latex/sailfnupdateTLBEntryHiRegR.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryHiRegR.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryHiRegVPNtwo.tex b/cheri/sail_latex/sailfnupdateTLBEntryHiRegVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryHiRegVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryHiRegbits.tex b/cheri/sail_latex/sailfnupdateTLBEntryHiRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryHiRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryLoRegC.tex b/cheri/sail_latex/sailfnupdateTLBEntryLoRegC.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryLoRegC.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryLoRegCapL.tex b/cheri/sail_latex/sailfnupdateTLBEntryLoRegCapL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryLoRegCapL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryLoRegCapS.tex b/cheri/sail_latex/sailfnupdateTLBEntryLoRegCapS.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryLoRegCapS.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryLoRegD.tex b/cheri/sail_latex/sailfnupdateTLBEntryLoRegD.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryLoRegD.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryLoRegG.tex b/cheri/sail_latex/sailfnupdateTLBEntryLoRegG.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryLoRegG.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryLoRegPFN.tex b/cheri/sail_latex/sailfnupdateTLBEntryLoRegPFN.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryLoRegPFN.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryLoRegV.tex b/cheri/sail_latex/sailfnupdateTLBEntryLoRegV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryLoRegV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryLoRegbits.tex b/cheri/sail_latex/sailfnupdateTLBEntryLoRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryLoRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryasid.tex b/cheri/sail_latex/sailfnupdateTLBEntryasid.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryasid.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntrybits.tex b/cheri/sail_latex/sailfnupdateTLBEntrybits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntrybits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntrycaplone.tex b/cheri/sail_latex/sailfnupdateTLBEntrycaplone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntrycaplone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntrycaplzero.tex b/cheri/sail_latex/sailfnupdateTLBEntrycaplzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntrycaplzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntrycapsone.tex b/cheri/sail_latex/sailfnupdateTLBEntrycapsone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntrycapsone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntrycapszero.tex b/cheri/sail_latex/sailfnupdateTLBEntrycapszero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntrycapszero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntrycone.tex b/cheri/sail_latex/sailfnupdateTLBEntrycone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntrycone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryczero.tex b/cheri/sail_latex/sailfnupdateTLBEntryczero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryczero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntrydone.tex b/cheri/sail_latex/sailfnupdateTLBEntrydone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntrydone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntrydzero.tex b/cheri/sail_latex/sailfnupdateTLBEntrydzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntrydzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryg.tex b/cheri/sail_latex/sailfnupdateTLBEntryg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntrypagemask.tex b/cheri/sail_latex/sailfnupdateTLBEntrypagemask.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntrypagemask.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntrypfnone.tex b/cheri/sail_latex/sailfnupdateTLBEntrypfnone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntrypfnone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntrypfnzero.tex b/cheri/sail_latex/sailfnupdateTLBEntrypfnzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntrypfnzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryr.tex b/cheri/sail_latex/sailfnupdateTLBEntryr.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryr.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryvalid.tex b/cheri/sail_latex/sailfnupdateTLBEntryvalid.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryvalid.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryvone.tex b/cheri/sail_latex/sailfnupdateTLBEntryvone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryvone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryvpntwo.tex b/cheri/sail_latex/sailfnupdateTLBEntryvpntwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryvpntwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateTLBEntryvzero.tex b/cheri/sail_latex/sailfnupdateTLBEntryvzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateTLBEntryvzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateXContextRegXBadVPNtwo.tex b/cheri/sail_latex/sailfnupdateXContextRegXBadVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateXContextRegXBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateXContextRegXPTEBase.tex b/cheri/sail_latex/sailfnupdateXContextRegXPTEBase.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateXContextRegXPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateXContextRegXR.tex b/cheri/sail_latex/sailfnupdateXContextRegXR.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateXContextRegXR.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnupdateXContextRegbits.tex b/cheri/sail_latex/sailfnupdateXContextRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailfnupdateXContextRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailfnwGPR.tex b/cheri/sail_latex/sailfnwGPR.tex deleted file mode 100644 index 338d4b5c..00000000 --- a/cheri/sail_latex/sailfnwGPR.tex +++ /dev/null @@ -1,8 +0,0 @@ -function #\hyperref[zwGPR]{wGPR}# (idx, v) = { - let i as atom(_) = #\hyperref[zunsigned]{unsigned}#(idx) in - if i != 0 then { - /*#\hyperref[zprerrzystring]{prerr\_string}#(#\hyperref[zstringzyofzyint]{string\_of\_int}#(i)); - #\hyperref[zprerrzybits]{prerr\_bits}#(" <- ", v);*/ - GPR[i] = v; - }; -} diff --git a/cheri/sail_latex/sailfnwordWidthBytes.tex b/cheri/sail_latex/sailfnwordWidthBytes.tex deleted file mode 100644 index a5760d98..00000000 --- a/cheri/sail_latex/sailfnwordWidthBytes.tex +++ /dev/null @@ -1,7 +0,0 @@ -function #\hyperref[zwordWidthBytes]{wordWidthBytes}#(w) = - match w { - B => 1, - H => 2, - W => 4, - D => 8 - } diff --git a/cheri/sail_latex/sailfnwriteCapReg.tex b/cheri/sail_latex/sailfnwriteCapReg.tex deleted file mode 100644 index d8de79fd..00000000 --- a/cheri/sail_latex/sailfnwriteCapReg.tex +++ /dev/null @@ -1,6 +0,0 @@ -function #\hyperref[zwriteCapReg]{writeCapReg}#(n, cap) : (regno, CapStruct) -> unit = - if (n == 0b00000) then - () - else - let i = #\hyperref[zunsigned]{unsigned}#(n) in - (*CapRegs[i]) = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(cap) diff --git a/cheri/sail_latex/sailfnzeightoperatorzzerozIsznine.tex b/cheri/sail_latex/sailfnzeightoperatorzzerozIsznine.tex deleted file mode 100644 index 62e5a2e4..00000000 --- a/cheri/sail_latex/sailfnzeightoperatorzzerozIsznine.tex +++ /dev/null @@ -1 +0,0 @@ -function operator <#\hyperref[zzys]{\_s}# (x, y) = #\hyperref[zsigned]{signed}#(x) < #\hyperref[zsigned]{signed}#(y) diff --git a/cheri/sail_latex/sailfnzeightoperatorzzerozIuznine.tex b/cheri/sail_latex/sailfnzeightoperatorzzerozIuznine.tex deleted file mode 100644 index 3f946820..00000000 --- a/cheri/sail_latex/sailfnzeightoperatorzzerozIuznine.tex +++ /dev/null @@ -1 +0,0 @@ -function operator <#\hyperref[zzyu]{\_u}# (x, y) = #\hyperref[zunsigned]{unsigned}#(x) < #\hyperref[zunsigned]{unsigned}#(y) diff --git a/cheri/sail_latex/sailfnzeightoperatorzzerozKzJsznine.tex b/cheri/sail_latex/sailfnzeightoperatorzzerozKzJsznine.tex deleted file mode 100644 index 57ecf181..00000000 --- a/cheri/sail_latex/sailfnzeightoperatorzzerozKzJsznine.tex +++ /dev/null @@ -1 +0,0 @@ -function operator >=#\hyperref[zzys]{\_s}# (x, y) = #\hyperref[zsigned]{signed}#(x) >= #\hyperref[zsigned]{signed}#(y) diff --git a/cheri/sail_latex/sailfnzeightoperatorzzerozKzJuznine.tex b/cheri/sail_latex/sailfnzeightoperatorzzerozKzJuznine.tex deleted file mode 100644 index 6df36c6f..00000000 --- a/cheri/sail_latex/sailfnzeightoperatorzzerozKzJuznine.tex +++ /dev/null @@ -1 +0,0 @@ -function operator >=#\hyperref[zzyu]{\_u}# (x, y) = #\hyperref[zunsigned]{unsigned}#(x) >= #\hyperref[zunsigned]{unsigned}#(y) diff --git a/cheri/sail_latex/sailfnzeightoperatorzzerozQzQznine.tex b/cheri/sail_latex/sailfnzeightoperatorzzerozQzQznine.tex deleted file mode 100644 index 2c372e1b..00000000 --- a/cheri/sail_latex/sailfnzeightoperatorzzerozQzQznine.tex +++ /dev/null @@ -1 +0,0 @@ -function operator ^^ (bs, n) = #\hyperref[zreplicatezybits]{replicate\_bits}# (bs, n) diff --git a/cheri/sail_latex/sailfnzzeros.tex b/cheri/sail_latex/sailfnzzeros.tex deleted file mode 100644 index 38d463fb..00000000 --- a/cheri/sail_latex/sailfnzzeros.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zzzeros]{zeros}#() = #\hyperref[zreplicatezybits]{replicate\_bits}# (0b0,'n) diff --git a/cheri/sail_latex/sailgetAccessLevel.tex b/cheri/sail_latex/sailgetAccessLevel.tex deleted file mode 100644 index 4412096c..00000000 --- a/cheri/sail_latex/sailgetAccessLevel.tex +++ /dev/null @@ -1 +0,0 @@ -val getAccessLevel : unit -> AccessLevel effect {rreg} diff --git a/cheri/sail_latex/sailgetCapBase.tex b/cheri/sail_latex/sailgetCapBase.tex deleted file mode 100644 index c7044d1d..00000000 --- a/cheri/sail_latex/sailgetCapBase.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapBase : CapStruct -> uint64 diff --git a/cheri/sail_latex/sailgetCapCauseRegExcCode.tex b/cheri/sail_latex/sailgetCapCauseRegExcCode.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetCapCauseRegExcCode.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetCapCauseRegRegNum.tex b/cheri/sail_latex/sailgetCapCauseRegRegNum.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetCapCauseRegRegNum.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetCapCauseRegbits.tex b/cheri/sail_latex/sailgetCapCauseRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetCapCauseRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetCapCursor.tex b/cheri/sail_latex/sailgetCapCursor.tex deleted file mode 100644 index fd5d72d8..00000000 --- a/cheri/sail_latex/sailgetCapCursor.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapCursor : CapStruct -> uint64 diff --git a/cheri/sail_latex/sailgetCapLength.tex b/cheri/sail_latex/sailgetCapLength.tex deleted file mode 100644 index aaa822c8..00000000 --- a/cheri/sail_latex/sailgetCapLength.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapLength : CapStruct -> CapLen diff --git a/cheri/sail_latex/sailgetCapOffset.tex b/cheri/sail_latex/sailgetCapOffset.tex deleted file mode 100644 index 668c3df1..00000000 --- a/cheri/sail_latex/sailgetCapOffset.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapOffset : CapStruct -> uint64 diff --git a/cheri/sail_latex/sailgetCapPerms.tex b/cheri/sail_latex/sailgetCapPerms.tex deleted file mode 100644 index b2dabf89..00000000 --- a/cheri/sail_latex/sailgetCapPerms.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapPerms : CapStruct -> bits(31) diff --git a/cheri/sail_latex/sailgetCapTop.tex b/cheri/sail_latex/sailgetCapTop.tex deleted file mode 100644 index ff0e5f95..00000000 --- a/cheri/sail_latex/sailgetCapTop.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapTop : CapStruct -> CapLen diff --git a/cheri/sail_latex/sailgetCauseRegBD.tex b/cheri/sail_latex/sailgetCauseRegBD.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetCauseRegBD.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetCauseRegCE.tex b/cheri/sail_latex/sailgetCauseRegCE.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetCauseRegCE.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetCauseRegExcCode.tex b/cheri/sail_latex/sailgetCauseRegExcCode.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetCauseRegExcCode.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetCauseRegIP.tex b/cheri/sail_latex/sailgetCauseRegIP.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetCauseRegIP.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetCauseRegIV.tex b/cheri/sail_latex/sailgetCauseRegIV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetCauseRegIV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetCauseRegWP.tex b/cheri/sail_latex/sailgetCauseRegWP.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetCauseRegWP.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetCauseRegbits.tex b/cheri/sail_latex/sailgetCauseRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetCauseRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetContextRegBadVPNtwo.tex b/cheri/sail_latex/sailgetContextRegBadVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetContextRegBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetContextRegPTEBase.tex b/cheri/sail_latex/sailgetContextRegPTEBase.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetContextRegPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetContextRegbits.tex b/cheri/sail_latex/sailgetContextRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetContextRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetStatusRegBEV.tex b/cheri/sail_latex/sailgetStatusRegBEV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetStatusRegBEV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetStatusRegCU.tex b/cheri/sail_latex/sailgetStatusRegCU.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetStatusRegCU.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetStatusRegERL.tex b/cheri/sail_latex/sailgetStatusRegERL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetStatusRegERL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetStatusRegEXL.tex b/cheri/sail_latex/sailgetStatusRegEXL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetStatusRegEXL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetStatusRegIE.tex b/cheri/sail_latex/sailgetStatusRegIE.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetStatusRegIE.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetStatusRegIM.tex b/cheri/sail_latex/sailgetStatusRegIM.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetStatusRegIM.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetStatusRegKSU.tex b/cheri/sail_latex/sailgetStatusRegKSU.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetStatusRegKSU.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetStatusRegKX.tex b/cheri/sail_latex/sailgetStatusRegKX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetStatusRegKX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetStatusRegSX.tex b/cheri/sail_latex/sailgetStatusRegSX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetStatusRegSX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetStatusRegUX.tex b/cheri/sail_latex/sailgetStatusRegUX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetStatusRegUX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetStatusRegbits.tex b/cheri/sail_latex/sailgetStatusRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetStatusRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryHiRegASID.tex b/cheri/sail_latex/sailgetTLBEntryHiRegASID.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryHiRegASID.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryHiRegR.tex b/cheri/sail_latex/sailgetTLBEntryHiRegR.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryHiRegR.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryHiRegVPNtwo.tex b/cheri/sail_latex/sailgetTLBEntryHiRegVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryHiRegVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryHiRegbits.tex b/cheri/sail_latex/sailgetTLBEntryHiRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryHiRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryLoRegC.tex b/cheri/sail_latex/sailgetTLBEntryLoRegC.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryLoRegC.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryLoRegCapL.tex b/cheri/sail_latex/sailgetTLBEntryLoRegCapL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryLoRegCapL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryLoRegCapS.tex b/cheri/sail_latex/sailgetTLBEntryLoRegCapS.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryLoRegCapS.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryLoRegD.tex b/cheri/sail_latex/sailgetTLBEntryLoRegD.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryLoRegD.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryLoRegG.tex b/cheri/sail_latex/sailgetTLBEntryLoRegG.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryLoRegG.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryLoRegPFN.tex b/cheri/sail_latex/sailgetTLBEntryLoRegPFN.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryLoRegPFN.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryLoRegV.tex b/cheri/sail_latex/sailgetTLBEntryLoRegV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryLoRegV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryLoRegbits.tex b/cheri/sail_latex/sailgetTLBEntryLoRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryLoRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryasid.tex b/cheri/sail_latex/sailgetTLBEntryasid.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryasid.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntrybits.tex b/cheri/sail_latex/sailgetTLBEntrybits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntrybits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntrycaplone.tex b/cheri/sail_latex/sailgetTLBEntrycaplone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntrycaplone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntrycaplzero.tex b/cheri/sail_latex/sailgetTLBEntrycaplzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntrycaplzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntrycapsone.tex b/cheri/sail_latex/sailgetTLBEntrycapsone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntrycapsone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntrycapszero.tex b/cheri/sail_latex/sailgetTLBEntrycapszero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntrycapszero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntrycone.tex b/cheri/sail_latex/sailgetTLBEntrycone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntrycone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryczero.tex b/cheri/sail_latex/sailgetTLBEntryczero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryczero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntrydone.tex b/cheri/sail_latex/sailgetTLBEntrydone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntrydone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntrydzero.tex b/cheri/sail_latex/sailgetTLBEntrydzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntrydzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryg.tex b/cheri/sail_latex/sailgetTLBEntryg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntrypagemask.tex b/cheri/sail_latex/sailgetTLBEntrypagemask.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntrypagemask.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntrypfnone.tex b/cheri/sail_latex/sailgetTLBEntrypfnone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntrypfnone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntrypfnzero.tex b/cheri/sail_latex/sailgetTLBEntrypfnzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntrypfnzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryr.tex b/cheri/sail_latex/sailgetTLBEntryr.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryr.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryvalid.tex b/cheri/sail_latex/sailgetTLBEntryvalid.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryvalid.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryvone.tex b/cheri/sail_latex/sailgetTLBEntryvone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryvone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryvpntwo.tex b/cheri/sail_latex/sailgetTLBEntryvpntwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryvpntwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetTLBEntryvzero.tex b/cheri/sail_latex/sailgetTLBEntryvzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetTLBEntryvzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetXContextRegXBadVPNtwo.tex b/cheri/sail_latex/sailgetXContextRegXBadVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetXContextRegXBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetXContextRegXPTEBase.tex b/cheri/sail_latex/sailgetXContextRegXPTEBase.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetXContextRegXPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetXContextRegXR.tex b/cheri/sail_latex/sailgetXContextRegXR.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetXContextRegXR.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetXContextRegbits.tex b/cheri/sail_latex/sailgetXContextRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailgetXContextRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailgetsliceint.tex b/cheri/sail_latex/sailgetsliceint.tex deleted file mode 100644 index 2b30d096..00000000 --- a/cheri/sail_latex/sailgetsliceint.tex +++ /dev/null @@ -1 +0,0 @@ -val get_slice_int = "get_slice_int" : forall 'w. (atom('w), int, int) -> #\hyperref[zbits]{bits}#('w) diff --git a/cheri/sail_latex/sailgettimens.tex b/cheri/sail_latex/sailgettimens.tex deleted file mode 100644 index 74cfd526..00000000 --- a/cheri/sail_latex/sailgettimens.tex +++ /dev/null @@ -1 +0,0 @@ -val "get_time_ns" : unit -> int diff --git a/cheri/sail_latex/sailgrantsAccess.tex b/cheri/sail_latex/sailgrantsAccess.tex deleted file mode 100644 index ab28ac58..00000000 --- a/cheri/sail_latex/sailgrantsAccess.tex +++ /dev/null @@ -1 +0,0 @@ -val grantsAccess : (AccessLevel, AccessLevel) -> bool diff --git a/cheri/sail_latex/sailgtatom.tex b/cheri/sail_latex/sailgtatom.tex deleted file mode 100644 index b2147a8f..00000000 --- a/cheri/sail_latex/sailgtatom.tex +++ /dev/null @@ -1 +0,0 @@ -val gt_atom = {coq: "Z.gtb", _: "gt"} : forall 'n 'm. (atom('n), atom('m)) -> bool diff --git a/cheri/sail_latex/sailgtatomrange.tex b/cheri/sail_latex/sailgtatomrange.tex deleted file mode 100644 index 3c520181..00000000 --- a/cheri/sail_latex/sailgtatomrange.tex +++ /dev/null @@ -1 +0,0 @@ -val gt_atom_range = {coq: "gtb_range_r", _: "gt"} : forall 'n 'm 'o. (atom('n), range('m, 'o)) -> bool diff --git a/cheri/sail_latex/sailgteqatom.tex b/cheri/sail_latex/sailgteqatom.tex deleted file mode 100644 index fb3b66b2..00000000 --- a/cheri/sail_latex/sailgteqatom.tex +++ /dev/null @@ -1 +0,0 @@ -val gteq_atom = {coq: "Z.geb", _: "gteq"} : forall 'n 'm. (atom('n), atom('m)) -> bool diff --git a/cheri/sail_latex/sailgteqatomrange.tex b/cheri/sail_latex/sailgteqatomrange.tex deleted file mode 100644 index 7aaf633f..00000000 --- a/cheri/sail_latex/sailgteqatomrange.tex +++ /dev/null @@ -1 +0,0 @@ -val gteq_atom_range = {coq: "geb_range_r", _: "gteq"} : forall 'n 'm 'o. (atom('n), range('m, 'o)) -> bool diff --git a/cheri/sail_latex/sailgteqint.tex b/cheri/sail_latex/sailgteqint.tex deleted file mode 100644 index 77271d1f..00000000 --- a/cheri/sail_latex/sailgteqint.tex +++ /dev/null @@ -1 +0,0 @@ -val gteq_int = {coq: "Z.geb", _:"gteq"} : (int, int) -> bool diff --git a/cheri/sail_latex/sailgteqrangeatom.tex b/cheri/sail_latex/sailgteqrangeatom.tex deleted file mode 100644 index fda25265..00000000 --- a/cheri/sail_latex/sailgteqrangeatom.tex +++ /dev/null @@ -1 +0,0 @@ -val gteq_range_atom = {coq: "geb_range_l", _: "gteq"} : forall 'n 'm 'o. (range('n, 'm), atom('o)) -> bool diff --git a/cheri/sail_latex/sailgtint.tex b/cheri/sail_latex/sailgtint.tex deleted file mode 100644 index 2d953eec..00000000 --- a/cheri/sail_latex/sailgtint.tex +++ /dev/null @@ -1 +0,0 @@ -val gt_int = {coq: "Z.gtb", _:"gt"} : (int, int) -> bool diff --git a/cheri/sail_latex/sailgtrangeatom.tex b/cheri/sail_latex/sailgtrangeatom.tex deleted file mode 100644 index b8635909..00000000 --- a/cheri/sail_latex/sailgtrangeatom.tex +++ /dev/null @@ -1 +0,0 @@ -val gt_range_atom = {coq: "gtb_range_l", _: "gt"} : forall 'n 'm 'o. (range('n, 'm), atom('o)) -> bool diff --git a/cheri/sail_latex/sailimmonesix.tex b/cheri/sail_latex/sailimmonesix.tex deleted file mode 100644 index bec28c6c..00000000 --- a/cheri/sail_latex/sailimmonesix.tex +++ /dev/null @@ -1 +0,0 @@ -type imm16 = #\hyperref[zbits]{bits}#(16) /* 16-bit immediate */ diff --git a/cheri/sail_latex/sailincCapOffset.tex b/cheri/sail_latex/sailincCapOffset.tex deleted file mode 100644 index 8e182ff3..00000000 --- a/cheri/sail_latex/sailincCapOffset.tex +++ /dev/null @@ -1 +0,0 @@ -val incCapOffset : (CapStruct, #\hyperref[zbits]{bits}#(64)) -> (bool, CapStruct) diff --git a/cheri/sail_latex/sailincrementCPzeroCount.tex b/cheri/sail_latex/sailincrementCPzeroCount.tex deleted file mode 100644 index ca1384eb..00000000 --- a/cheri/sail_latex/sailincrementCPzeroCount.tex +++ /dev/null @@ -1 +0,0 @@ -val incrementCP0Count : unit -> unit effect {rreg,wreg,escape} diff --git a/cheri/sail_latex/sailinitcptwostate.tex b/cheri/sail_latex/sailinitcptwostate.tex deleted file mode 100644 index 98ced710..00000000 --- a/cheri/sail_latex/sailinitcptwostate.tex +++ /dev/null @@ -1 +0,0 @@ -val init_cp2_state : unit -> unit effect {wreg} diff --git a/cheri/sail_latex/sailinitcpzerostate.tex b/cheri/sail_latex/sailinitcpzerostate.tex deleted file mode 100644 index 743cc402..00000000 --- a/cheri/sail_latex/sailinitcpzerostate.tex +++ /dev/null @@ -1 +0,0 @@ -val init_cp0_state : unit -> unit effect {wreg} diff --git a/cheri/sail_latex/sailintofAccessLevel.tex b/cheri/sail_latex/sailintofAccessLevel.tex deleted file mode 100644 index 257f321f..00000000 --- a/cheri/sail_latex/sailintofAccessLevel.tex +++ /dev/null @@ -1 +0,0 @@ -val int_of_AccessLevel : AccessLevel -> {|0, 1, 2|} effect pure diff --git a/cheri/sail_latex/sailintpower.tex b/cheri/sail_latex/sailintpower.tex deleted file mode 100644 index 0aa13188..00000000 --- a/cheri/sail_latex/sailintpower.tex +++ /dev/null @@ -1 +0,0 @@ -val int_power = {ocaml: "int_power", lem: "pow", coq: "Z.pow"} : (int, int) -> int diff --git a/cheri/sail_latex/sailinttocap.tex b/cheri/sail_latex/sailinttocap.tex deleted file mode 100644 index 0f4cd328..00000000 --- a/cheri/sail_latex/sailinttocap.tex +++ /dev/null @@ -1 +0,0 @@ -val int_to_cap : bits(64) -> CapStruct diff --git a/cheri/sail_latex/sailisAddressAligned.tex b/cheri/sail_latex/sailisAddressAligned.tex deleted file mode 100644 index e1f8c318..00000000 --- a/cheri/sail_latex/sailisAddressAligned.tex +++ /dev/null @@ -1 +0,0 @@ -val isAddressAligned : (#\hyperref[zbits]{bits}#(64), WordType) -> bool diff --git a/cheri/sail_latex/sailisnone.tex b/cheri/sail_latex/sailisnone.tex deleted file mode 100644 index 76688d37..00000000 --- a/cheri/sail_latex/sailisnone.tex +++ /dev/null @@ -1 +0,0 @@ -val is_none : forall ('a : Type). #\hyperref[zoption]{option}#('a) -> bool diff --git a/cheri/sail_latex/sailissome.tex b/cheri/sail_latex/sailissome.tex deleted file mode 100644 index 071ac6b6..00000000 --- a/cheri/sail_latex/sailissome.tex +++ /dev/null @@ -1 +0,0 @@ -val is_some : forall ('a : Type). #\hyperref[zoption]{option}#('a) -> bool diff --git a/cheri/sail_latex/saillength.tex b/cheri/sail_latex/saillength.tex deleted file mode 100644 index 248c8507..00000000 --- a/cheri/sail_latex/saillength.tex +++ /dev/null @@ -1 +0,0 @@ -overload length = {bitvector_length, vector_length}
\ No newline at end of file diff --git a/cheri/sail_latex/sailltatom.tex b/cheri/sail_latex/sailltatom.tex deleted file mode 100644 index 5cca54df..00000000 --- a/cheri/sail_latex/sailltatom.tex +++ /dev/null @@ -1 +0,0 @@ -val lt_atom = {coq: "Z.ltb", _: "lt"} : forall 'n 'm. (atom('n), atom('m)) -> bool diff --git a/cheri/sail_latex/sailltatomrange.tex b/cheri/sail_latex/sailltatomrange.tex deleted file mode 100644 index 19d3375d..00000000 --- a/cheri/sail_latex/sailltatomrange.tex +++ /dev/null @@ -1 +0,0 @@ -val lt_atom_range = {coq: "ltb_range_r", _: "lt"} : forall 'n 'm 'o. (atom('n), range('m, 'o)) -> bool diff --git a/cheri/sail_latex/saillteqatom.tex b/cheri/sail_latex/saillteqatom.tex deleted file mode 100644 index 26e27e2d..00000000 --- a/cheri/sail_latex/saillteqatom.tex +++ /dev/null @@ -1 +0,0 @@ -val lteq_atom = {coq: "Z.leb", _: "lteq"} : forall 'n 'm. (atom('n), atom('m)) -> bool diff --git a/cheri/sail_latex/saillteqatomrange.tex b/cheri/sail_latex/saillteqatomrange.tex deleted file mode 100644 index 6e951cf7..00000000 --- a/cheri/sail_latex/saillteqatomrange.tex +++ /dev/null @@ -1 +0,0 @@ -val lteq_atom_range = {coq: "leb_range_r", _: "lteq"} : forall 'n 'm 'o. (atom('n), range('m, 'o)) -> bool diff --git a/cheri/sail_latex/saillteqint.tex b/cheri/sail_latex/saillteqint.tex deleted file mode 100644 index 555176be..00000000 --- a/cheri/sail_latex/saillteqint.tex +++ /dev/null @@ -1 +0,0 @@ -val lteq_int = {coq: "Z.leb", _:"lteq"} : (int, int) -> bool diff --git a/cheri/sail_latex/saillteqrangeatom.tex b/cheri/sail_latex/saillteqrangeatom.tex deleted file mode 100644 index f8fcd32d..00000000 --- a/cheri/sail_latex/saillteqrangeatom.tex +++ /dev/null @@ -1 +0,0 @@ -val lteq_range_atom = {coq: "leb_range_l", _: "lteq"} : forall 'n 'm 'o. (range('n, 'm), atom('o)) -> bool diff --git a/cheri/sail_latex/sailltint.tex b/cheri/sail_latex/sailltint.tex deleted file mode 100644 index 40bd4e85..00000000 --- a/cheri/sail_latex/sailltint.tex +++ /dev/null @@ -1 +0,0 @@ -val lt_int = {coq: "Z.ltb", _:"lt"} : (int, int) -> bool diff --git a/cheri/sail_latex/sailltrangeatom.tex b/cheri/sail_latex/sailltrangeatom.tex deleted file mode 100644 index d8495496..00000000 --- a/cheri/sail_latex/sailltrangeatom.tex +++ /dev/null @@ -1 +0,0 @@ -val lt_range_atom = {coq: "ltb_range_l", _: "lt"} : forall 'n 'm 'o. (range('n, 'm), atom('o)) -> bool diff --git a/cheri/sail_latex/sailmask.tex b/cheri/sail_latex/sailmask.tex deleted file mode 100644 index 35d052db..00000000 --- a/cheri/sail_latex/sailmask.tex +++ /dev/null @@ -1 +0,0 @@ -val mask : forall 'm 'n , 'm >= 'n > 0 . #\hyperref[zbits]{bits}#('m) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailmaxatom.tex b/cheri/sail_latex/sailmaxatom.tex deleted file mode 100644 index 6cbdfa7f..00000000 --- a/cheri/sail_latex/sailmaxatom.tex +++ /dev/null @@ -1 +0,0 @@ -val max_atom = {ocaml: "max_int", lem: "max", coq: "max_atom", c:"max_int"} : forall 'a 'b . (atom('a), atom('b)) -> {'c, ('c = 'a | 'c = 'b) & 'c >= 'a & 'c >= 'b . atom('c)} diff --git a/cheri/sail_latex/sailmaxint.tex b/cheri/sail_latex/sailmaxint.tex deleted file mode 100644 index c537babb..00000000 --- a/cheri/sail_latex/sailmaxint.tex +++ /dev/null @@ -1 +0,0 @@ -val max_int = {lem: "max", coq: "Z.max", _: "max_int"} : (int, int) -> int diff --git a/cheri/sail_latex/sailmaxnat.tex b/cheri/sail_latex/sailmaxnat.tex deleted file mode 100644 index 1b62334a..00000000 --- a/cheri/sail_latex/sailmaxnat.tex +++ /dev/null @@ -1 +0,0 @@ -val max_nat = {lem: "max", coq: "Z.max", _: "max_int"} : (nat, nat) -> nat diff --git a/cheri/sail_latex/sailmemBitsToCapBits.tex b/cheri/sail_latex/sailmemBitsToCapBits.tex deleted file mode 100644 index 99aaa592..00000000 --- a/cheri/sail_latex/sailmemBitsToCapBits.tex +++ /dev/null @@ -1 +0,0 @@ -val memBitsToCapBits : (bool, bits(256)) -> bits(257) diff --git a/cheri/sail_latex/sailmin.tex b/cheri/sail_latex/sailmin.tex deleted file mode 100644 index 94097198..00000000 --- a/cheri/sail_latex/sailmin.tex +++ /dev/null @@ -1 +0,0 @@ -overload min = {min_atom, min_nat, min_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailminatom.tex b/cheri/sail_latex/sailminatom.tex deleted file mode 100644 index acfea384..00000000 --- a/cheri/sail_latex/sailminatom.tex +++ /dev/null @@ -1 +0,0 @@ -val min_atom = {ocaml: "min_int", lem: "min", coq: "min_atom", c:"min_int"} : forall 'a 'b . (atom('a), atom('b)) -> {'c, ('c = 'a | 'c = 'b) & 'c <= 'a & 'c <= 'b . atom('c)} diff --git a/cheri/sail_latex/sailminint.tex b/cheri/sail_latex/sailminint.tex deleted file mode 100644 index 3d633d08..00000000 --- a/cheri/sail_latex/sailminint.tex +++ /dev/null @@ -1 +0,0 @@ -val min_int = {lem: "min", coq: "Z.min", _: "min_int"} : (int, int) -> int diff --git a/cheri/sail_latex/sailminnat.tex b/cheri/sail_latex/sailminnat.tex deleted file mode 100644 index 85409bd8..00000000 --- a/cheri/sail_latex/sailminnat.tex +++ /dev/null @@ -1 +0,0 @@ -val min_nat = {lem: "min", coq: "Z.min", _: "min_int"} : (nat, nat) -> nat diff --git a/cheri/sail_latex/sailmipssignextend.tex b/cheri/sail_latex/sailmipssignextend.tex deleted file mode 100644 index e613567d..00000000 --- a/cheri/sail_latex/sailmipssignextend.tex +++ /dev/null @@ -1 +0,0 @@ -val mips_sign_extend : forall 'n 'm , 'm >= 'n . #\hyperref[zbits]{bits}#('n) -> #\hyperref[zbits]{bits}#('m) diff --git a/cheri/sail_latex/sailmipszzeroextend.tex b/cheri/sail_latex/sailmipszzeroextend.tex deleted file mode 100644 index adbb4188..00000000 --- a/cheri/sail_latex/sailmipszzeroextend.tex +++ /dev/null @@ -1 +0,0 @@ -val mips_zero_extend : forall 'n 'm , 'm >= 'n . #\hyperref[zbits]{bits}#('n) -> #\hyperref[zbits]{bits}#('m) diff --git a/cheri/sail_latex/sailmod.tex b/cheri/sail_latex/sailmod.tex deleted file mode 100644 index ab70dd7a..00000000 --- a/cheri/sail_latex/sailmod.tex +++ /dev/null @@ -1,7 +0,0 @@ -val mod = { - smt: "mod", - ocaml: "modulus", - lem: "integerMod", - c: "tmod_int", - coq: "mod_with_eq" -} : forall 'n 'm. (atom('n), atom('m)) -> {'o, 'o = #\hyperref[zmod]{mod}#('n, 'm). atom('o)} diff --git a/cheri/sail_latex/sailmodBD.tex b/cheri/sail_latex/sailmodBD.tex deleted file mode 100644 index f3e58d9b..00000000 --- a/cheri/sail_latex/sailmodBD.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_BD = {_get_CauseReg_BD, _set_CauseReg_BD}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodBEV.tex b/cheri/sail_latex/sailmodBEV.tex deleted file mode 100644 index beee53c1..00000000 --- a/cheri/sail_latex/sailmodBEV.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_BEV = {_get_StatusReg_BEV, _set_StatusReg_BEV}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodBadVPNtwo.tex b/cheri/sail_latex/sailmodBadVPNtwo.tex deleted file mode 100644 index c2578121..00000000 --- a/cheri/sail_latex/sailmodBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_BadVPN2 = {_get_ContextReg_BadVPN2, _set_ContextReg_BadVPN2}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodC.tex b/cheri/sail_latex/sailmodC.tex deleted file mode 100644 index 01df09e2..00000000 --- a/cheri/sail_latex/sailmodC.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_C = {_get_TLBEntryLoReg_C, _set_TLBEntryLoReg_C}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodCE.tex b/cheri/sail_latex/sailmodCE.tex deleted file mode 100644 index 9136541c..00000000 --- a/cheri/sail_latex/sailmodCE.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_CE = {_get_CauseReg_CE, _set_CauseReg_CE}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodCU.tex b/cheri/sail_latex/sailmodCU.tex deleted file mode 100644 index 2a2b7db3..00000000 --- a/cheri/sail_latex/sailmodCU.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_CU = {_get_StatusReg_CU, _set_StatusReg_CU}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodCapL.tex b/cheri/sail_latex/sailmodCapL.tex deleted file mode 100644 index 1e92b0d4..00000000 --- a/cheri/sail_latex/sailmodCapL.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_CapL = {_get_TLBEntryLoReg_CapL, _set_TLBEntryLoReg_CapL}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodCapS.tex b/cheri/sail_latex/sailmodCapS.tex deleted file mode 100644 index bdacef07..00000000 --- a/cheri/sail_latex/sailmodCapS.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_CapS = {_get_TLBEntryLoReg_CapS, _set_TLBEntryLoReg_CapS}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodD.tex b/cheri/sail_latex/sailmodD.tex deleted file mode 100644 index af4cad2e..00000000 --- a/cheri/sail_latex/sailmodD.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_D = {_get_TLBEntryLoReg_D, _set_TLBEntryLoReg_D}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodERL.tex b/cheri/sail_latex/sailmodERL.tex deleted file mode 100644 index b334b7dc..00000000 --- a/cheri/sail_latex/sailmodERL.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_ERL = {_get_StatusReg_ERL, _set_StatusReg_ERL}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodEXL.tex b/cheri/sail_latex/sailmodEXL.tex deleted file mode 100644 index 16b2bc8c..00000000 --- a/cheri/sail_latex/sailmodEXL.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_EXL = {_get_StatusReg_EXL, _set_StatusReg_EXL}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodExcCode.tex b/cheri/sail_latex/sailmodExcCode.tex deleted file mode 100644 index baa16ec2..00000000 --- a/cheri/sail_latex/sailmodExcCode.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_ExcCode = {_get_CapCauseReg_ExcCode, _set_CapCauseReg_ExcCode}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodIE.tex b/cheri/sail_latex/sailmodIE.tex deleted file mode 100644 index 940ad6f3..00000000 --- a/cheri/sail_latex/sailmodIE.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_IE = {_get_StatusReg_IE, _set_StatusReg_IE}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodIM.tex b/cheri/sail_latex/sailmodIM.tex deleted file mode 100644 index d3a58dd0..00000000 --- a/cheri/sail_latex/sailmodIM.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_IM = {_get_StatusReg_IM, _set_StatusReg_IM}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodIP.tex b/cheri/sail_latex/sailmodIP.tex deleted file mode 100644 index 361230bf..00000000 --- a/cheri/sail_latex/sailmodIP.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_IP = {_get_CauseReg_IP, _set_CauseReg_IP}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodIV.tex b/cheri/sail_latex/sailmodIV.tex deleted file mode 100644 index 1222520b..00000000 --- a/cheri/sail_latex/sailmodIV.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_IV = {_get_CauseReg_IV, _set_CauseReg_IV}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodKSU.tex b/cheri/sail_latex/sailmodKSU.tex deleted file mode 100644 index 7cff9a26..00000000 --- a/cheri/sail_latex/sailmodKSU.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_KSU = {_get_StatusReg_KSU, _set_StatusReg_KSU}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodKX.tex b/cheri/sail_latex/sailmodKX.tex deleted file mode 100644 index a90ad274..00000000 --- a/cheri/sail_latex/sailmodKX.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_KX = {_get_StatusReg_KX, _set_StatusReg_KX}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodPFN.tex b/cheri/sail_latex/sailmodPFN.tex deleted file mode 100644 index bba40f6d..00000000 --- a/cheri/sail_latex/sailmodPFN.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_PFN = {_get_TLBEntryLoReg_PFN, _set_TLBEntryLoReg_PFN}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodPTEBase.tex b/cheri/sail_latex/sailmodPTEBase.tex deleted file mode 100644 index 890eb57c..00000000 --- a/cheri/sail_latex/sailmodPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_PTEBase = {_get_ContextReg_PTEBase, _set_ContextReg_PTEBase}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodRegNum.tex b/cheri/sail_latex/sailmodRegNum.tex deleted file mode 100644 index 6cc28de3..00000000 --- a/cheri/sail_latex/sailmodRegNum.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_RegNum = {_get_CapCauseReg_RegNum, _set_CapCauseReg_RegNum}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodSX.tex b/cheri/sail_latex/sailmodSX.tex deleted file mode 100644 index 4ea62484..00000000 --- a/cheri/sail_latex/sailmodSX.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_SX = {_get_StatusReg_SX, _set_StatusReg_SX}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodUX.tex b/cheri/sail_latex/sailmodUX.tex deleted file mode 100644 index aa31242d..00000000 --- a/cheri/sail_latex/sailmodUX.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_UX = {_get_StatusReg_UX, _set_StatusReg_UX}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodV.tex b/cheri/sail_latex/sailmodV.tex deleted file mode 100644 index 964f5eab..00000000 --- a/cheri/sail_latex/sailmodV.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_V = {_get_TLBEntryLoReg_V, _set_TLBEntryLoReg_V}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodWP.tex b/cheri/sail_latex/sailmodWP.tex deleted file mode 100644 index 1ab7fbf7..00000000 --- a/cheri/sail_latex/sailmodWP.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_WP = {_get_CauseReg_WP, _set_CauseReg_WP}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodXBadVPNtwo.tex b/cheri/sail_latex/sailmodXBadVPNtwo.tex deleted file mode 100644 index 9122b39d..00000000 --- a/cheri/sail_latex/sailmodXBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_XBadVPN2 = {_get_XContextReg_XBadVPN2, _set_XContextReg_XBadVPN2}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodXPTEBase.tex b/cheri/sail_latex/sailmodXPTEBase.tex deleted file mode 100644 index 67e094bf..00000000 --- a/cheri/sail_latex/sailmodXPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_XPTEBase = {_get_XContextReg_XPTEBase, _set_XContextReg_XPTEBase}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodXR.tex b/cheri/sail_latex/sailmodXR.tex deleted file mode 100644 index a3c5ab29..00000000 --- a/cheri/sail_latex/sailmodXR.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_XR = {_get_XContextReg_XR, _set_XContextReg_XR}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodasid.tex b/cheri/sail_latex/sailmodasid.tex deleted file mode 100644 index b80fbc05..00000000 --- a/cheri/sail_latex/sailmodasid.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_asid = {_get_TLBEntry_asid, _set_TLBEntry_asid}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodbits.tex b/cheri/sail_latex/sailmodbits.tex deleted file mode 100644 index b14554ac..00000000 --- a/cheri/sail_latex/sailmodbits.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_bits = {_get_CapCauseReg_bits, _set_CapCauseReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodcaplone.tex b/cheri/sail_latex/sailmodcaplone.tex deleted file mode 100644 index cc216500..00000000 --- a/cheri/sail_latex/sailmodcaplone.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_capl1 = {_get_TLBEntry_capl1, _set_TLBEntry_capl1}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodcaplzero.tex b/cheri/sail_latex/sailmodcaplzero.tex deleted file mode 100644 index 91969233..00000000 --- a/cheri/sail_latex/sailmodcaplzero.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_capl0 = {_get_TLBEntry_capl0, _set_TLBEntry_capl0}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodcapsone.tex b/cheri/sail_latex/sailmodcapsone.tex deleted file mode 100644 index c2aa1743..00000000 --- a/cheri/sail_latex/sailmodcapsone.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_caps1 = {_get_TLBEntry_caps1, _set_TLBEntry_caps1}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodcapszero.tex b/cheri/sail_latex/sailmodcapszero.tex deleted file mode 100644 index 36fbc5bb..00000000 --- a/cheri/sail_latex/sailmodcapszero.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_caps0 = {_get_TLBEntry_caps0, _set_TLBEntry_caps0}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodcone.tex b/cheri/sail_latex/sailmodcone.tex deleted file mode 100644 index 70d2a78c..00000000 --- a/cheri/sail_latex/sailmodcone.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_c1 = {_get_TLBEntry_c1, _set_TLBEntry_c1}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodczero.tex b/cheri/sail_latex/sailmodczero.tex deleted file mode 100644 index 56a19643..00000000 --- a/cheri/sail_latex/sailmodczero.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_c0 = {_get_TLBEntry_c0, _set_TLBEntry_c0}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmoddone.tex b/cheri/sail_latex/sailmoddone.tex deleted file mode 100644 index d970eb5b..00000000 --- a/cheri/sail_latex/sailmoddone.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_d1 = {_get_TLBEntry_d1, _set_TLBEntry_d1}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmoddzero.tex b/cheri/sail_latex/sailmoddzero.tex deleted file mode 100644 index 0e860884..00000000 --- a/cheri/sail_latex/sailmoddzero.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_d0 = {_get_TLBEntry_d0, _set_TLBEntry_d0}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodg.tex b/cheri/sail_latex/sailmodg.tex deleted file mode 100644 index 6c46a49a..00000000 --- a/cheri/sail_latex/sailmodg.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_g = {_get_TLBEntry_g, _set_TLBEntry_g}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodint.tex b/cheri/sail_latex/sailmodint.tex deleted file mode 100644 index bd5677aa..00000000 --- a/cheri/sail_latex/sailmodint.tex +++ /dev/null @@ -1,7 +0,0 @@ -val mod_int = { - smt: "mod", - ocaml: "modulus", - lem: "integerMod", - c: "tmod_int", - coq: "Z.rem" -} : (int, int) -> int diff --git a/cheri/sail_latex/sailmodpagemask.tex b/cheri/sail_latex/sailmodpagemask.tex deleted file mode 100644 index 130ccab2..00000000 --- a/cheri/sail_latex/sailmodpagemask.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_pagemask = {_get_TLBEntry_pagemask, _set_TLBEntry_pagemask}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodpfnone.tex b/cheri/sail_latex/sailmodpfnone.tex deleted file mode 100644 index 3e703530..00000000 --- a/cheri/sail_latex/sailmodpfnone.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_pfn1 = {_get_TLBEntry_pfn1, _set_TLBEntry_pfn1}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodpfnzero.tex b/cheri/sail_latex/sailmodpfnzero.tex deleted file mode 100644 index e3e2bfb2..00000000 --- a/cheri/sail_latex/sailmodpfnzero.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_pfn0 = {_get_TLBEntry_pfn0, _set_TLBEntry_pfn0}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodr.tex b/cheri/sail_latex/sailmodr.tex deleted file mode 100644 index ca85fe92..00000000 --- a/cheri/sail_latex/sailmodr.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_r = {_get_TLBEntry_r, _set_TLBEntry_r}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodulus.tex b/cheri/sail_latex/sailmodulus.tex deleted file mode 100644 index ca23a339..00000000 --- a/cheri/sail_latex/sailmodulus.tex +++ /dev/null @@ -1 +0,0 @@ -val modulus = {ocaml: "modulus", lem: "hardware_mod", coq: "euclid_modulo", _ : "tmod_int"} : forall 'n, 'n > 0 . (int, atom('n)) -> range(0, 'n - 1) diff --git a/cheri/sail_latex/sailmodvalid.tex b/cheri/sail_latex/sailmodvalid.tex deleted file mode 100644 index 21baa26c..00000000 --- a/cheri/sail_latex/sailmodvalid.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_valid = {_get_TLBEntry_valid, _set_TLBEntry_valid}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodvone.tex b/cheri/sail_latex/sailmodvone.tex deleted file mode 100644 index 30619a05..00000000 --- a/cheri/sail_latex/sailmodvone.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_v1 = {_get_TLBEntry_v1, _set_TLBEntry_v1}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodvpntwo.tex b/cheri/sail_latex/sailmodvpntwo.tex deleted file mode 100644 index 08cd1947..00000000 --- a/cheri/sail_latex/sailmodvpntwo.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_vpn2 = {_get_TLBEntry_vpn2, _set_TLBEntry_vpn2}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmodvzero.tex b/cheri/sail_latex/sailmodvzero.tex deleted file mode 100644 index 3e05b3f3..00000000 --- a/cheri/sail_latex/sailmodvzero.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_v0 = {_get_TLBEntry_v0, _set_TLBEntry_v0}
\ No newline at end of file diff --git a/cheri/sail_latex/sailmultatom.tex b/cheri/sail_latex/sailmultatom.tex deleted file mode 100644 index bbac3e2f..00000000 --- a/cheri/sail_latex/sailmultatom.tex +++ /dev/null @@ -1,2 +0,0 @@ -val mult_atom = {ocaml: "mult", lem: "integerMult", c: "mult_int", coq: "Z.mul"} : forall 'n 'm. - (atom('n), atom('m)) -> atom('n * 'm) diff --git a/cheri/sail_latex/sailmultint.tex b/cheri/sail_latex/sailmultint.tex deleted file mode 100644 index 08698e6f..00000000 --- a/cheri/sail_latex/sailmultint.tex +++ /dev/null @@ -1 +0,0 @@ -val mult_int = {ocaml: "mult", lem: "integerMult", c: "mult_int", coq: "Z.mul"} : (int, int) -> int diff --git a/cheri/sail_latex/sailnegate.tex b/cheri/sail_latex/sailnegate.tex deleted file mode 100644 index ce000062..00000000 --- a/cheri/sail_latex/sailnegate.tex +++ /dev/null @@ -1 +0,0 @@ -overload negate = {negate_range, negate_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailnegateatom.tex b/cheri/sail_latex/sailnegateatom.tex deleted file mode 100644 index d1361e63..00000000 --- a/cheri/sail_latex/sailnegateatom.tex +++ /dev/null @@ -1 +0,0 @@ -val negate_atom = {ocaml: "negate", lem: "integerNegate", c: "neg_int", coq: "Z.opp"} : forall 'n. atom('n) -> atom(- 'n) diff --git a/cheri/sail_latex/sailnegateint.tex b/cheri/sail_latex/sailnegateint.tex deleted file mode 100644 index 52375787..00000000 --- a/cheri/sail_latex/sailnegateint.tex +++ /dev/null @@ -1 +0,0 @@ -val negate_int = {ocaml: "negate", lem: "integerNegate", c: "neg_int", coq: "Z.opp"} : int -> int diff --git a/cheri/sail_latex/sailnegaterange.tex b/cheri/sail_latex/sailnegaterange.tex deleted file mode 100644 index 7a4ad386..00000000 --- a/cheri/sail_latex/sailnegaterange.tex +++ /dev/null @@ -1 +0,0 @@ -val negate_range = {ocaml: "minus_big_int", lem: "integerNegate", coq: "negate_range"} : forall 'n 'm. range('n, 'm) -> range(- 'm, - 'n) diff --git a/cheri/sail_latex/sailneqanything.tex b/cheri/sail_latex/sailneqanything.tex deleted file mode 100644 index a898649e..00000000 --- a/cheri/sail_latex/sailneqanything.tex +++ /dev/null @@ -1 +0,0 @@ -val neq_anything = {lem: "neq", coq: "generic_neq"} : forall ('a : Type). ('a, 'a) -> bool diff --git a/cheri/sail_latex/sailneqatom.tex b/cheri/sail_latex/sailneqatom.tex deleted file mode 100644 index be777013..00000000 --- a/cheri/sail_latex/sailneqatom.tex +++ /dev/null @@ -1 +0,0 @@ -val neq_atom = {lem: "neq", coq: "neq_atom"} : forall 'n 'm. (atom('n), atom('m)) -> bool diff --git a/cheri/sail_latex/sailneqbool.tex b/cheri/sail_latex/sailneqbool.tex deleted file mode 100644 index 0d80dc17..00000000 --- a/cheri/sail_latex/sailneqbool.tex +++ /dev/null @@ -1 +0,0 @@ -val neq_bool : (bool, bool) -> bool diff --git a/cheri/sail_latex/sailneqint.tex b/cheri/sail_latex/sailneqint.tex deleted file mode 100644 index b233ca6b..00000000 --- a/cheri/sail_latex/sailneqint.tex +++ /dev/null @@ -1 +0,0 @@ -val neq_int = {lem: "neq"} : (int, int) -> bool diff --git a/cheri/sail_latex/sailneqrange.tex b/cheri/sail_latex/sailneqrange.tex deleted file mode 100644 index d2d8fb0c..00000000 --- a/cheri/sail_latex/sailneqrange.tex +++ /dev/null @@ -1 +0,0 @@ -val neq_range = {lem: "neq"} : forall 'n 'm 'o 'p. (range('n, 'm), range('o, 'p)) -> bool diff --git a/cheri/sail_latex/sailneqvec.tex b/cheri/sail_latex/sailneqvec.tex deleted file mode 100644 index f655b3d8..00000000 --- a/cheri/sail_latex/sailneqvec.tex +++ /dev/null @@ -1 +0,0 @@ -val neq_vec = {lem: "neq"} : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> bool diff --git a/cheri/sail_latex/sailnot.tex b/cheri/sail_latex/sailnot.tex deleted file mode 100644 index 515b3ef9..00000000 --- a/cheri/sail_latex/sailnot.tex +++ /dev/null @@ -1 +0,0 @@ -val not = {coq:"negb", _:"not"} : bool -> bool diff --git a/cheri/sail_latex/sailnotbool.tex b/cheri/sail_latex/sailnotbool.tex deleted file mode 100644 index 7630f6c2..00000000 --- a/cheri/sail_latex/sailnotbool.tex +++ /dev/null @@ -1 +0,0 @@ -val not_bool = {coq: "negb", _: "not"} : bool -> bool diff --git a/cheri/sail_latex/sailnotvec.tex b/cheri/sail_latex/sailnotvec.tex deleted file mode 100644 index a560a544..00000000 --- a/cheri/sail_latex/sailnotvec.tex +++ /dev/null @@ -1 +0,0 @@ -val not_vec = {c:"not_bits", _:"not_vec"} : forall 'n. #\hyperref[zbits]{bits}#('n) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailnumofAccessLevel.tex b/cheri/sail_latex/sailnumofAccessLevel.tex deleted file mode 100644 index 0c618cc8..00000000 --- a/cheri/sail_latex/sailnumofAccessLevel.tex +++ /dev/null @@ -1 +0,0 @@ -val num_of_AccessLevel : AccessLevel -> {'e, 0 <= 'e & 'e <= 2. atom('e)} diff --git a/cheri/sail_latex/sailnumofCPtrCmpOp.tex b/cheri/sail_latex/sailnumofCPtrCmpOp.tex deleted file mode 100644 index 40f1bfa9..00000000 --- a/cheri/sail_latex/sailnumofCPtrCmpOp.tex +++ /dev/null @@ -1 +0,0 @@ -val num_of_CPtrCmpOp : CPtrCmpOp -> {'e, 0 <= 'e & 'e <= 7. atom('e)} diff --git a/cheri/sail_latex/sailnumofCapEx.tex b/cheri/sail_latex/sailnumofCapEx.tex deleted file mode 100644 index 3bec74dc..00000000 --- a/cheri/sail_latex/sailnumofCapEx.tex +++ /dev/null @@ -1 +0,0 @@ -val num_of_CapEx : CapEx -> {'e, 0 <= 'e & 'e <= 22. atom('e)} diff --git a/cheri/sail_latex/sailnumofClearRegSet.tex b/cheri/sail_latex/sailnumofClearRegSet.tex deleted file mode 100644 index 14ea7bea..00000000 --- a/cheri/sail_latex/sailnumofClearRegSet.tex +++ /dev/null @@ -1 +0,0 @@ -val num_of_ClearRegSet : ClearRegSet -> {'e, 0 <= 'e & 'e <= 3. atom('e)} diff --git a/cheri/sail_latex/sailnumofComparison.tex b/cheri/sail_latex/sailnumofComparison.tex deleted file mode 100644 index bac8031f..00000000 --- a/cheri/sail_latex/sailnumofComparison.tex +++ /dev/null @@ -1 +0,0 @@ -val num_of_Comparison : Comparison -> {'e, 0 <= 'e & 'e <= 7. atom('e)} diff --git a/cheri/sail_latex/sailnumofException.tex b/cheri/sail_latex/sailnumofException.tex deleted file mode 100644 index 2f823724..00000000 --- a/cheri/sail_latex/sailnumofException.tex +++ /dev/null @@ -1 +0,0 @@ -val num_of_Exception : Exception -> {'e, 0 <= 'e & 'e <= 18. atom('e)} diff --git a/cheri/sail_latex/sailnumofMemAccessType.tex b/cheri/sail_latex/sailnumofMemAccessType.tex deleted file mode 100644 index dc81a81c..00000000 --- a/cheri/sail_latex/sailnumofMemAccessType.tex +++ /dev/null @@ -1 +0,0 @@ -val num_of_MemAccessType : MemAccessType -> {'e, 0 <= 'e & 'e <= 2. atom('e)} diff --git a/cheri/sail_latex/sailnumofWordType.tex b/cheri/sail_latex/sailnumofWordType.tex deleted file mode 100644 index 2be61446..00000000 --- a/cheri/sail_latex/sailnumofWordType.tex +++ /dev/null @@ -1 +0,0 @@ -val num_of_WordType : WordType -> {'e, 0 <= 'e & 'e <= 3. atom('e)} diff --git a/cheri/sail_latex/sailnumofWordTypeUnaligned.tex b/cheri/sail_latex/sailnumofWordTypeUnaligned.tex deleted file mode 100644 index 40c9a426..00000000 --- a/cheri/sail_latex/sailnumofWordTypeUnaligned.tex +++ /dev/null @@ -1 +0,0 @@ -val num_of_WordTypeUnaligned : WordTypeUnaligned -> {'e, 0 <= 'e & 'e <= 3. atom('e)} diff --git a/cheri/sail_latex/sailnumofdecodefailure.tex b/cheri/sail_latex/sailnumofdecodefailure.tex deleted file mode 100644 index 197b4ae9..00000000 --- a/cheri/sail_latex/sailnumofdecodefailure.tex +++ /dev/null @@ -1 +0,0 @@ -val num_of_decode_failure : decode_failure -> {'e, 0 <= 'e & 'e <= 3. atom('e)} diff --git a/cheri/sail_latex/sailones.tex b/cheri/sail_latex/sailones.tex deleted file mode 100644 index 94fd805f..00000000 --- a/cheri/sail_latex/sailones.tex +++ /dev/null @@ -1 +0,0 @@ -val ones : forall 'n, 'n >= 0 . unit -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailorbits.tex b/cheri/sail_latex/sailorbits.tex deleted file mode 100644 index 55db5ffa..00000000 --- a/cheri/sail_latex/sailorbits.tex +++ /dev/null @@ -1 +0,0 @@ -val or_bits = {c: "or_bits", _: "or_vec"} : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailorbool.tex b/cheri/sail_latex/sailorbool.tex deleted file mode 100644 index 4b6bfa15..00000000 --- a/cheri/sail_latex/sailorbool.tex +++ /dev/null @@ -1 +0,0 @@ -val or_bool = {coq: "orb", _: "or_bool"} : (bool, bool) -> bool diff --git a/cheri/sail_latex/sailpccaccesssystemregs.tex b/cheri/sail_latex/sailpccaccesssystemregs.tex deleted file mode 100644 index 399ab221..00000000 --- a/cheri/sail_latex/sailpccaccesssystemregs.tex +++ /dev/null @@ -1 +0,0 @@ -val pcc_access_system_regs : unit -> bool effect {rreg} diff --git a/cheri/sail_latex/sailplainvectoraccess.tex b/cheri/sail_latex/sailplainvectoraccess.tex deleted file mode 100644 index 94824f77..00000000 --- a/cheri/sail_latex/sailplainvectoraccess.tex +++ /dev/null @@ -1,6 +0,0 @@ -val plain_vector_access = { - ocaml: "access", - lem: "access_list_dec", - coq: "vec_access_dec", - c: "vector_access" -} : forall ('n : Int) ('m : Int) ('a : Type), 0 <= 'm < 'n. (vector('n, dec, 'a), atom('m)) -> 'a diff --git a/cheri/sail_latex/sailplainvectorupdate.tex b/cheri/sail_latex/sailplainvectorupdate.tex deleted file mode 100644 index 6880d9bd..00000000 --- a/cheri/sail_latex/sailplainvectorupdate.tex +++ /dev/null @@ -1,6 +0,0 @@ -val plain_vector_update = { - ocaml: "update", - lem: "update_list_dec", - coq: "vec_update_dec", - c: "vector_update" -} : forall '#\hyperref[zn]{n}# ('a : Type). (vector('n, dec, 'a), int, 'a) -> vector('n, dec, 'a) diff --git a/cheri/sail_latex/sailpowtwo.tex b/cheri/sail_latex/sailpowtwo.tex deleted file mode 100644 index 41da946e..00000000 --- a/cheri/sail_latex/sailpowtwo.tex +++ /dev/null @@ -1 +0,0 @@ -val pow2 = "pow2" : forall 'n. atom('n) -> atom(2 ^ 'n) diff --git a/cheri/sail_latex/sailprerrbits.tex b/cheri/sail_latex/sailprerrbits.tex deleted file mode 100644 index 7d926384..00000000 --- a/cheri/sail_latex/sailprerrbits.tex +++ /dev/null @@ -1 +0,0 @@ -val "prerr_bits" : forall 'n. (string, #\hyperref[zbits]{bits}#('n)) -> unit diff --git a/cheri/sail_latex/sailprerrendline.tex b/cheri/sail_latex/sailprerrendline.tex deleted file mode 100644 index ad4a94a0..00000000 --- a/cheri/sail_latex/sailprerrendline.tex +++ /dev/null @@ -1 +0,0 @@ -val "prerr_endline" : string -> unit diff --git a/cheri/sail_latex/sailprerrint.tex b/cheri/sail_latex/sailprerrint.tex deleted file mode 100644 index ce7a7d61..00000000 --- a/cheri/sail_latex/sailprerrint.tex +++ /dev/null @@ -1 +0,0 @@ -val "prerr_int" : (string, int) -> unit diff --git a/cheri/sail_latex/sailprerrstring.tex b/cheri/sail_latex/sailprerrstring.tex deleted file mode 100644 index 7b849da2..00000000 --- a/cheri/sail_latex/sailprerrstring.tex +++ /dev/null @@ -1 +0,0 @@ -val "prerr_string" : string -> unit diff --git a/cheri/sail_latex/sailprint.tex b/cheri/sail_latex/sailprint.tex deleted file mode 100644 index 50a64219..00000000 --- a/cheri/sail_latex/sailprint.tex +++ /dev/null @@ -1 +0,0 @@ -val print = "print_endline" : string -> unit diff --git a/cheri/sail_latex/sailprintbits.tex b/cheri/sail_latex/sailprintbits.tex deleted file mode 100644 index 8783a59a..00000000 --- a/cheri/sail_latex/sailprintbits.tex +++ /dev/null @@ -1 +0,0 @@ -val "print_bits" : forall 'n. (string, #\hyperref[zbits]{bits}#('n)) -> unit diff --git a/cheri/sail_latex/sailprintint.tex b/cheri/sail_latex/sailprintint.tex deleted file mode 100644 index ddf33afc..00000000 --- a/cheri/sail_latex/sailprintint.tex +++ /dev/null @@ -1 +0,0 @@ -val "print_int" : (string, int) -> unit diff --git a/cheri/sail_latex/sailputchar.tex b/cheri/sail_latex/sailputchar.tex deleted file mode 100644 index a123c709..00000000 --- a/cheri/sail_latex/sailputchar.tex +++ /dev/null @@ -1 +0,0 @@ -val putchar = {c:"sail_putchar", _:"putchar"} : int -> unit diff --git a/cheri/sail_latex/sailquotient.tex b/cheri/sail_latex/sailquotient.tex deleted file mode 100644 index 7dba5359..00000000 --- a/cheri/sail_latex/sailquotient.tex +++ /dev/null @@ -1 +0,0 @@ -val quotient = {ocaml: "quotient", lem: "integerDiv", coq: "Z.mod"} : (int, int) -> int diff --git a/cheri/sail_latex/sailquotientnat.tex b/cheri/sail_latex/sailquotientnat.tex deleted file mode 100644 index 14db4ae0..00000000 --- a/cheri/sail_latex/sailquotientnat.tex +++ /dev/null @@ -1 +0,0 @@ -val quotient_nat = {ocaml: "quotient", lem: "integerDiv", coq: "Z.div"} : (nat, nat) -> nat diff --git a/cheri/sail_latex/sailquotroundzzero.tex b/cheri/sail_latex/sailquotroundzzero.tex deleted file mode 100644 index 9523cfcc..00000000 --- a/cheri/sail_latex/sailquotroundzzero.tex +++ /dev/null @@ -1 +0,0 @@ -val quot_round_zero = {ocaml: "quot_round_zero", lem: "hardware_quot", coq: "Z.quot", _ : "tdiv_int"} : (int, int) -> int diff --git a/cheri/sail_latex/sailrGPR.tex b/cheri/sail_latex/sailrGPR.tex deleted file mode 100644 index 19721488..00000000 --- a/cheri/sail_latex/sailrGPR.tex +++ /dev/null @@ -1 +0,0 @@ -val rGPR : #\hyperref[zbits]{bits}#(5) -> #\hyperref[zbits]{bits}#(64) effect {rreg} diff --git a/cheri/sail_latex/sailraisectwoexception.tex b/cheri/sail_latex/sailraisectwoexception.tex deleted file mode 100644 index f8a562ec..00000000 --- a/cheri/sail_latex/sailraisectwoexception.tex +++ /dev/null @@ -1 +0,0 @@ -val raise_c2_exception : forall ('o : Type) . (CapEx, regno) -> 'o effect {escape, rreg, wreg} diff --git a/cheri/sail_latex/sailraisectwoexceptioneight.tex b/cheri/sail_latex/sailraisectwoexceptioneight.tex deleted file mode 100644 index 21b0bcf9..00000000 --- a/cheri/sail_latex/sailraisectwoexceptioneight.tex +++ /dev/null @@ -1 +0,0 @@ -val raise_c2_exception8 : forall ('o : Type) . (CapEx, #\hyperref[zbits]{bits}#(8)) -> 'o effect {escape, rreg, wreg} diff --git a/cheri/sail_latex/sailraisectwoexceptionnoreg.tex b/cheri/sail_latex/sailraisectwoexceptionnoreg.tex deleted file mode 100644 index be594e4e..00000000 --- a/cheri/sail_latex/sailraisectwoexceptionnoreg.tex +++ /dev/null @@ -1 +0,0 @@ -val raise_c2_exception_noreg : forall ('o : Type) . (CapEx) -> 'o effect {escape, rreg, wreg} diff --git a/cheri/sail_latex/sailreadCapReg.tex b/cheri/sail_latex/sailreadCapReg.tex deleted file mode 100644 index f4d77264..00000000 --- a/cheri/sail_latex/sailreadCapReg.tex +++ /dev/null @@ -1 +0,0 @@ -val readCapReg : regno -> CapStruct effect {rreg} diff --git a/cheri/sail_latex/sailreadCapRegDDC.tex b/cheri/sail_latex/sailreadCapRegDDC.tex deleted file mode 100644 index 2ec2e75d..00000000 --- a/cheri/sail_latex/sailreadCapRegDDC.tex +++ /dev/null @@ -1 +0,0 @@ -val readCapRegDDC : regno -> CapStruct effect {rreg} diff --git a/cheri/sail_latex/sailregderef.tex b/cheri/sail_latex/sailregderef.tex deleted file mode 100644 index 7f1dc7e8..00000000 --- a/cheri/sail_latex/sailregderef.tex +++ /dev/null @@ -1 +0,0 @@ -val _reg_deref = "reg_deref" : forall ('a : Type). #\hyperref[zregister]{register}#('a) -> 'a diff --git a/cheri/sail_latex/sailregisterinaccessible.tex b/cheri/sail_latex/sailregisterinaccessible.tex deleted file mode 100644 index d732248a..00000000 --- a/cheri/sail_latex/sailregisterinaccessible.tex +++ /dev/null @@ -1 +0,0 @@ -val register_inaccessible : regno -> bool effect {rreg} diff --git a/cheri/sail_latex/sailregno.tex b/cheri/sail_latex/sailregno.tex deleted file mode 100644 index 5246f847..00000000 --- a/cheri/sail_latex/sailregno.tex +++ /dev/null @@ -1 +0,0 @@ -type regno = #\hyperref[zbits]{bits}#(5) /* a register number */ diff --git a/cheri/sail_latex/sailregregimmonesix.tex b/cheri/sail_latex/sailregregimmonesix.tex deleted file mode 100644 index 0be3ccec..00000000 --- a/cheri/sail_latex/sailregregimmonesix.tex +++ /dev/null @@ -1 +0,0 @@ -type regregimm16 = (regno, regno, imm16) diff --git a/cheri/sail_latex/sailregregreg.tex b/cheri/sail_latex/sailregregreg.tex deleted file mode 100644 index e3409dff..00000000 --- a/cheri/sail_latex/sailregregreg.tex +++ /dev/null @@ -1 +0,0 @@ -type regregreg = (regno, regno, regno) diff --git a/cheri/sail_latex/sailremroundzzero.tex b/cheri/sail_latex/sailremroundzzero.tex deleted file mode 100644 index 9d8113ba..00000000 --- a/cheri/sail_latex/sailremroundzzero.tex +++ /dev/null @@ -1 +0,0 @@ -val rem_round_zero = {ocaml: "rem_round_zero", lem: "hardware_mod", coq: "Z.rem", _ : "tmod_int"} : (int, int) -> int diff --git a/cheri/sail_latex/sailreplicatebits.tex b/cheri/sail_latex/sailreplicatebits.tex deleted file mode 100644 index cd7a97d7..00000000 --- a/cheri/sail_latex/sailreplicatebits.tex +++ /dev/null @@ -1 +0,0 @@ -val replicate_bits = "replicate_bits" : forall 'n 'm. (#\hyperref[zbits]{bits}#('n), atom('m)) -> #\hyperref[zbits]{bits}#('n * 'm) diff --git a/cheri/sail_latex/sailreverseendianness.tex b/cheri/sail_latex/sailreverseendianness.tex deleted file mode 100644 index 9105738f..00000000 --- a/cheri/sail_latex/sailreverseendianness.tex +++ /dev/null @@ -1 +0,0 @@ -val reverse_endianness = "reverse_endianness" : forall 'W, 'W >= 1. #\hyperref[zbits]{bits}#(8 * 'W) -> #\hyperref[zbits]{bits}#(8 * 'W) effect pure diff --git a/cheri/sail_latex/sailsailfndecodeSomeBCMPZv.tex b/cheri/sail_latex/sailsailfndecodeSomeBCMPZv.tex deleted file mode 100644 index 5106d2ec..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeBCMPZv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b10000 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, LT, true, false)) /* BLTZAL */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeBEQv.tex b/cheri/sail_latex/sailsailfndecodeSomeBEQv.tex deleted file mode 100644 index aa31ba6b..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeBEQv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010100 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBEQ]{BEQ}#(rs, rt, imm, false, true)) /* BEQL */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeCAndPermv.tex b/cheri/sail_latex/sailsailfndecodeSomeCAndPermv.tex deleted file mode 100644 index 893a1c6d..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCAndPermv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ rt : regno @ 0b001101) = #\hyperref[zSome]{Some}#(#\hyperref[zCAndPerm]{CAndPerm}#(cd, cs, rt)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCBXv.tex b/cheri/sail_latex/sailsailfndecodeSomeCBXv.tex deleted file mode 100644 index 32d3c875..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCBXv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01010 @ cd : regno @ imm : #\hyperref[zbits]{bits}#(16)) = #\hyperref[zSome]{Some}#(#\hyperref[zCBX]{CBX}#(cd, imm, false)) /* CBTS */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeCBZv.tex b/cheri/sail_latex/sailsailfndecodeSomeCBZv.tex deleted file mode 100644 index 32781f76..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCBZv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10010 @ cd : regno @ imm : #\hyperref[zbits]{bits}#(16)) = #\hyperref[zSome]{Some}#(#\hyperref[zCBZ]{CBZ}#(cd, imm, true)) /* CBNZ */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeCCheckPermv.tex b/cheri/sail_latex/sailsailfndecodeSomeCCheckPermv.tex deleted file mode 100644 index ee2c8bde..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCCheckPermv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cs : regno @ rt : regno @ 0b01000 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCCheckPerm]{CCheckPerm}#(cs, rt)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCCheckTypev.tex b/cheri/sail_latex/sailsailfndecodeSomeCCheckTypev.tex deleted file mode 100644 index 661760cc..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCCheckTypev.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cs : regno @ cb : regno @ 0b01001 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCCheckType]{CCheckType}#(cs, cb)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCClearTagv.tex b/cheri/sail_latex/sailsailfndecodeSomeCClearTagv.tex deleted file mode 100644 index 766ce399..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCClearTagv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cb : regno @ 0b01011 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCClearTag]{CClearTag}#(cd, cb)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCFromPtrv.tex b/cheri/sail_latex/sailsailfndecodeSomeCFromPtrv.tex deleted file mode 100644 index e977fcd2..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCFromPtrv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cb : regno @ rs : regno @ 0b010011) = #\hyperref[zSome]{Some}#(#\hyperref[zCFromPtr]{CFromPtr}#(cd, cb, rs)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCGetBasev.tex b/cheri/sail_latex/sailsailfndecodeSomeCGetBasev.tex deleted file mode 100644 index 05fa9835..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCGetBasev.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00010 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetBase]{CGetBase}#(rd, cb)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCGetCauserdv.tex b/cheri/sail_latex/sailsailfndecodeSomeCGetCauserdv.tex deleted file mode 100644 index c44fd7ff..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCGetCauserdv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ 0b00001 @ 0b11111 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetCause]{CGetCause}#(rd)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCGetLenv.tex b/cheri/sail_latex/sailsailfndecodeSomeCGetLenv.tex deleted file mode 100644 index 3a4a434b..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCGetLenv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00011 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetLen]{CGetLen}#(rd, cb)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCGetOffsetv.tex b/cheri/sail_latex/sailsailfndecodeSomeCGetOffsetv.tex deleted file mode 100644 index a5a22beb..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCGetOffsetv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00110 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetOffset]{CGetOffset}#(rd, cb)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCGetPermv.tex b/cheri/sail_latex/sailsailfndecodeSomeCGetPermv.tex deleted file mode 100644 index 5dbabd98..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCGetPermv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00000 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetPerm]{CGetPerm}#(rd, cb)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCGetSealedv.tex b/cheri/sail_latex/sailsailfndecodeSomeCGetSealedv.tex deleted file mode 100644 index 00d254ad..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCGetSealedv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00101 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetSealed]{CGetSealed}#(rd, cb)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCGetTagv.tex b/cheri/sail_latex/sailsailfndecodeSomeCGetTagv.tex deleted file mode 100644 index e46392b5..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCGetTagv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00100 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetTag]{CGetTag}#(rd, cb)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCGetTypev.tex b/cheri/sail_latex/sailsailfndecodeSomeCGetTypev.tex deleted file mode 100644 index 20baf29c..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCGetTypev.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ 0b00001 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCGetType]{CGetType}#(rd, cb)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCIncOffsetv.tex b/cheri/sail_latex/sailsailfndecodeSomeCIncOffsetv.tex deleted file mode 100644 index 5d2501bb..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCIncOffsetv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cb : regno @ rt : regno @ 0b010001) = #\hyperref[zSome]{Some}#(#\hyperref[zCIncOffset]{CIncOffset}#(cd, cb, rt)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCJALRv.tex b/cheri/sail_latex/sailsailfndecodeSomeCJALRv.tex deleted file mode 100644 index 3f5f8411..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCJALRv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01000 @ 0b00000 @ cb : regno @ 0b00000 @ 0b000000) = #\hyperref[zSome]{Some}#(#\hyperref[zCJALR]{CJALR}#(0b00000, cb, false)) /* CJR */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeCLCv.tex b/cheri/sail_latex/sailsailfndecodeSomeCLCv.tex deleted file mode 100644 index fa732648..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCLCv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ cd : regno @ cb : regno@ 0b0000000 @ 0b1111) = #\hyperref[zSome]{Some}#(#\hyperref[zCLC]{CLC}#(cd, cb, 0b00000, 0x0000, true)) /* CLLC */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeCLoadv.tex b/cheri/sail_latex/sailsailfndecodeSomeCLoadv.tex deleted file mode 100644 index 9fbd4a7b..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCLoadv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : #\hyperref[zbits]{bits}#(8) @ 0b1 @ 0b00) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, rt, offset, true, B, false)) /* CLB */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeCMOVXv.tex b/cheri/sail_latex/sailsailfndecodeSomeCMOVXv.tex deleted file mode 100644 index 09fb371f..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCMOVXv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ rs : regno @ 0b011011) = #\hyperref[zSome]{Some}#(#\hyperref[zCMOVX]{CMOVX}#(cd, cs, rs, false)) /* CMOVZ */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeCPtrCmpv.tex b/cheri/sail_latex/sailsailfndecodeSomeCPtrCmpv.tex deleted file mode 100644 index af60dcc8..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCPtrCmpv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b001) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, ct, CNE)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCReturnv.tex b/cheri/sail_latex/sailsailfndecodeSomeCReturnv.tex deleted file mode 100644 index da0a09d2..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCReturnv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00101 @ 0b00000 @ 0b00000 @ 0b11111111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCReturn]{CReturn}#()) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCSCv.tex b/cheri/sail_latex/sailsailfndecodeSomeCSCv.tex deleted file mode 100644 index 14b9e73a..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCSCv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ cs : regno @ cb : regno@ rd : regno @ 0b00 @ 0b0111) = #\hyperref[zSome]{Some}#(#\hyperref[zCSC]{CSC}#(cs, cb, 0b00000, rd, 0b00000000000, true)) /* CSCC */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeCSealv.tex b/cheri/sail_latex/sailsailfndecodeSomeCSealv.tex deleted file mode 100644 index 4000c397..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCSealv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ ct : regno @ 0b001011) = #\hyperref[zSome]{Some}#(#\hyperref[zCSeal]{CSeal}#(cd, cs, ct)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCSetBoundsv.tex b/cheri/sail_latex/sailsailfndecodeSomeCSetBoundsv.tex deleted file mode 100644 index 1d6a4e52..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCSetBoundsv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ rt : regno @ 0b001000) = #\hyperref[zSome]{Some}#(#\hyperref[zCSetBounds]{CSetBounds}#(cd, cs, rt)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCSetOffsetv.tex b/cheri/sail_latex/sailsailfndecodeSomeCSetOffsetv.tex deleted file mode 100644 index 478a8f93..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCSetOffsetv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ rt : regno @ 0b001111) = #\hyperref[zSome]{Some}#(#\hyperref[zCSetOffset]{CSetOffset}#(cd, cs, rt)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCStorev.tex b/cheri/sail_latex/sailsailfndecodeSomeCStorev.tex deleted file mode 100644 index e5e4dd1d..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCStorev.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b111010 @ rs : regno @ cb : regno@ rt : regno @ offset : #\hyperref[zbits]{bits}#(8) @ 0b0 @ 0b01) = #\hyperref[zSome]{Some}#(#\hyperref[zCStore]{CStore}#(rs, cb, rt, 0b00000, offset, H, false)) /* CSH */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeCToPtrv.tex b/cheri/sail_latex/sailsailfndecodeSomeCToPtrv.tex deleted file mode 100644 index d9b325f9..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCToPtrv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ ct : regno @ 0b010010) = #\hyperref[zSome]{Some}#(#\hyperref[zCToPtr]{CToPtr}#(rd, cb, ct)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeCUnsealv.tex b/cheri/sail_latex/sailsailfndecodeSomeCUnsealv.tex deleted file mode 100644 index acb3c721..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeCUnsealv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ ct : regno @ 0b001100) = #\hyperref[zSome]{Some}#(#\hyperref[zCUnseal]{CUnseal}#(cd, cs, ct)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeClearRegsv.tex b/cheri/sail_latex/sailsailfndecodeSomeClearRegsv.tex deleted file mode 100644 index 791485cd..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeClearRegsv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01111 @ 0b00001 @ imm : #\hyperref[zbits]{bits}#(16)) = #\hyperref[zSome]{Some}#(#\hyperref[zClearRegs]{ClearRegs}#(GPHi, imm)) diff --git a/cheri/sail_latex/sailsailfndecodeSomeHCFv.tex b/cheri/sail_latex/sailsailfndecodeSomeHCFv.tex deleted file mode 100644 index dbecd8da..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeHCFv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010000 @ 0b00100 @ rt : regno @ 0b11010 @ 0b00000000000) = - #\hyperref[zSome]{Some}#(#\hyperref[zHCF]{HCF}#()) diff --git a/cheri/sail_latex/sailsailfndecodeSomeLoadv.tex b/cheri/sail_latex/sailsailfndecodeSomeLoadv.tex deleted file mode 100644 index 211a2f4a..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeLoadv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b100100 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLoad]{Load}#(B, false, false, base, rt, offset)) /* LBU */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeMFCzerov.tex b/cheri/sail_latex/sailsailfndecodeSomeMFCzerov.tex deleted file mode 100644 index f54ffdfd..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeMFCzerov.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010000 @ 0b00001 @ rt : regno @ rd : regno @ 0b00000000 @ sel : #\hyperref[zbits]{bits}#(3)) = - #\hyperref[zSome]{Some}#(#\hyperref[zMFCzero]{MFC0}#(rt, rd, sel, true)) /* DMFC0 */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeMTCzerov.tex b/cheri/sail_latex/sailsailfndecodeSomeMTCzerov.tex deleted file mode 100644 index ae848c1e..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeMTCzerov.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010000 @ 0b00101 @ rt : regno @ rd : regno @ 0b00000000 @ sel : #\hyperref[zbits]{bits}#(3)) = - #\hyperref[zSome]{Some}#(#\hyperref[zMTCzero]{MTC0}#(rt, rd, sel, true)) /* DMTC0 */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeStorev.tex b/cheri/sail_latex/sailsailfndecodeSomeStorev.tex deleted file mode 100644 index 6ddb5562..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeStorev.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b101001 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zStore]{Store}#(H, false, base, rt, offset)) /* SH */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeTRAPIMMv.tex b/cheri/sail_latex/sailsailfndecodeSomeTRAPIMMv.tex deleted file mode 100644 index f899f0e7..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeTRAPIMMv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b01110 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zTRAPIMM]{TRAPIMM}#(rs, imm, NE)) /* TNEI */ diff --git a/cheri/sail_latex/sailsailfndecodeSomeTRAPREGv.tex b/cheri/sail_latex/sailsailfndecodeSomeTRAPREGv.tex deleted file mode 100644 index 9909d5da..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomeTRAPREGv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ code : #\hyperref[zbits]{bits}#(10) @ 0b110001) = - #\hyperref[zSome]{Some}#(#\hyperref[zTRAPREG]{TRAPREG}#(rs, rt, GEU)) /* TGEU */ diff --git a/cheri/sail_latex/sailsailfndecodeSomev.tex b/cheri/sail_latex/sailsailfndecodeSomev.tex deleted file mode 100644 index bf842c52..00000000 --- a/cheri/sail_latex/sailsailfndecodeSomev.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010000 @ 0b10000000000000000000 @ 0b000110) = #\hyperref[zSome]{Some}#(#\hyperref[zTLBWR]{TLBWR}#() : ast) diff --git a/cheri/sail_latex/sailsailfnexecuteCCallv.tex b/cheri/sail_latex/sailsailfnexecuteCCallv.tex deleted file mode 100644 index 6a11ddac..00000000 --- a/cheri/sail_latex/sailsailfnexecuteCCallv.tex +++ /dev/null @@ -1,46 +0,0 @@ -function clause #\hyperref[zexecute]{execute}# (#\hyperref[zCCall]{CCall}#(cs, cb, 0b00000000001)) = /* selector=1 */ -{ - /* Jump-like implementation of CCall that unseals arguments */ - #\hyperref[zcheckCPtwousable]{checkCP2usable}#(); - cs_val = #\hyperref[zreadCapReg]{readCapReg}#(cs); - cb_val = #\hyperref[zreadCapReg]{readCapReg}#(cb); - cs_cursor = #\hyperref[zgetCapCursor]{getCapCursor}#(cs_val); - if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cs)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cs) - else if (#\hyperref[zregisterzyinaccessible]{register\_inaccessible}#(cb)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_AccessSystemRegsViolation, cb) - else if #\hyperref[znot]{not}# (cs_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cs) - else if #\hyperref[znot]{not}# (cb_val.tag) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TagViolation, cb) - else if #\hyperref[znot]{not}# (cs_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cs) - else if #\hyperref[znot]{not}# (cb_val.sealed) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_SealViolation, cb) - else if ((cs_val.otype) != (cb_val.otype)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_TypeViolation, cs) - else if #\hyperref[znot]{not}# (cs_val.permit_ccall) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitCCallViolation, cs) - else if #\hyperref[znot]{not}# (cb_val.permit_ccall) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitCCallViolation, cb) - else if #\hyperref[znot]{not}# (cs_val.permit_execute) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitExecuteViolation, cs) - else if (cb_val.permit_execute) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_PermitExecuteViolation, cb) - else if (cs_cursor < #\hyperref[zgetCapBase]{getCapBase}#(cs_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cs) - else if (cs_cursor >= #\hyperref[zgetCapTop]{getCapTop}#(cs_val)) then - #\hyperref[zraisezyctwozyexception]{raise\_c2\_exception}#(CapEx_LengthViolation, cs) - else - { - #\hyperref[zexecutezybranchzypcc]{execute\_branch\_pcc}#({cs_val with - sealed=false, - otype=#\hyperref[zzzeros]{zeros}#() - }); - inCCallDelay = 0b1; - C26 = #\hyperref[zcapStructToCapReg]{capStructToCapReg}#({cb_val with - sealed=false, - otype=#\hyperref[zzzeros]{zeros}#() - }); - } -} diff --git a/cheri/sail_latex/sailsailmask.tex b/cheri/sail_latex/sailsailmask.tex deleted file mode 100644 index 45862747..00000000 --- a/cheri/sail_latex/sailsailmask.tex +++ /dev/null @@ -1 +0,0 @@ -val sail_mask : forall 'len 'v, 'len >= 0 & 'v >= 0. (atom('len), vector('v, dec, bit)) -> vector('len, dec, bit) diff --git a/cheri/sail_latex/sailsailmaxv.tex b/cheri/sail_latex/sailsailmaxv.tex deleted file mode 100644 index 1ceed42c..00000000 --- a/cheri/sail_latex/sailsailmaxv.tex +++ /dev/null @@ -1 +0,0 @@ -overload max = {max_atom, max_nat, max_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailmodASIDv.tex b/cheri/sail_latex/sailsailmodASIDv.tex deleted file mode 100644 index 4e4c154c..00000000 --- a/cheri/sail_latex/sailsailmodASIDv.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_ASID = {_get_TLBEntryHiReg_ASID, _set_TLBEntryHiReg_ASID}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailmodExcCodev.tex b/cheri/sail_latex/sailsailmodExcCodev.tex deleted file mode 100644 index 95bd4a1b..00000000 --- a/cheri/sail_latex/sailsailmodExcCodev.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_ExcCode = {_get_CauseReg_ExcCode, _set_CauseReg_ExcCode}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailmodGv.tex b/cheri/sail_latex/sailsailmodGv.tex deleted file mode 100644 index ddb88eaa..00000000 --- a/cheri/sail_latex/sailsailmodGv.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_G = {_get_TLBEntryLoReg_G, _set_TLBEntryLoReg_G}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailmodRv.tex b/cheri/sail_latex/sailsailmodRv.tex deleted file mode 100644 index 85ef85fa..00000000 --- a/cheri/sail_latex/sailsailmodRv.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_R = {_get_TLBEntryHiReg_R, _set_TLBEntryHiReg_R}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailmodVPNtwov.tex b/cheri/sail_latex/sailsailmodVPNtwov.tex deleted file mode 100644 index 7de971a8..00000000 --- a/cheri/sail_latex/sailsailmodVPNtwov.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_VPN2 = {_get_TLBEntryHiReg_VPN2, _set_TLBEntryHiReg_VPN2}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailmodbitsv.tex b/cheri/sail_latex/sailsailmodbitsv.tex deleted file mode 100644 index f27daebb..00000000 --- a/cheri/sail_latex/sailsailmodbitsv.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_bits = {_get_StatusReg_bits, _set_StatusReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailnegatev.tex b/cheri/sail_latex/sailsailnegatev.tex deleted file mode 100644 index 4f7aea58..00000000 --- a/cheri/sail_latex/sailsailnegatev.tex +++ /dev/null @@ -1 +0,0 @@ -overload negate = {negate_atom, negate_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailregderefv.tex b/cheri/sail_latex/sailsailregderefv.tex deleted file mode 100644 index f5de92ca..00000000 --- a/cheri/sail_latex/sailsailregderefv.tex +++ /dev/null @@ -1 +0,0 @@ -val "reg_deref" : forall ('a : Type). #\hyperref[zregister]{register}#('a) -> 'a effect {rreg} diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeBCMPZvv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeBCMPZvv.tex deleted file mode 100644 index 05919c54..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeBCMPZvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b00010 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, LT, false, true)) /* BLTZL */ diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeBEQvv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeBEQvv.tex deleted file mode 100644 index 4ee94638..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeBEQvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000101 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBEQ]{BEQ}#(rs, rt, imm, true , false)) /* BNE */ diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeCJALRvv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeCJALRvv.tex deleted file mode 100644 index a14bda16..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeCJALRvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cb : regno @ 0b00011 @ 0b11111 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCJALR]{CJALR}#(0b00000, cb, false)) /* CJR */ diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeCLCvv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeCLCvv.tex deleted file mode 100644 index ec1bbddb..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeCLCvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b011101 @ cd : regno @ cb : regno @ offset : #\hyperref[zbits]{bits}#(16)) = #\hyperref[zSome]{Some}#(#\hyperref[zCLC]{CLC}#(cd, cb, 0b00000, offset, false)) /* CLCBI */ diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeCLoadvv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeCLoadvv.tex deleted file mode 100644 index 59928bdf..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeCLoadvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : #\hyperref[zbits]{bits}#(8) @ 0b0 @ 0b01) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, rt, offset, false, H, false)) /* CLHU */ diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeCMOVXvv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeCMOVXvv.tex deleted file mode 100644 index 17ed8e64..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeCMOVXvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cs : regno @ rs : regno @ 0b011100) = #\hyperref[zSome]{Some}#(#\hyperref[zCMOVX]{CMOVX}#(cd, cs, rs, true)) /* CMOVN */ diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeCPtrCmpvv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeCPtrCmpvv.tex deleted file mode 100644 index e89b161e..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeCPtrCmpvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b010) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, ct, CLT)) diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeCStorevv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeCStorevv.tex deleted file mode 100644 index 16a0ca69..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeCStorevv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b111010 @ rs : regno @ cb : regno@ rt : regno @ offset : #\hyperref[zbits]{bits}#(8) @ 0b0 @ 0b10) = #\hyperref[zSome]{Some}#(#\hyperref[zCStore]{CStore}#(rs, cb, rt, 0b00000, offset, W, false)) /* CSW */ diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeClearRegsvv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeClearRegsvv.tex deleted file mode 100644 index 1f6face1..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeClearRegsvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01111 @ 0b00010 @ imm : #\hyperref[zbits]{bits}#(16)) = #\hyperref[zSome]{Some}#(#\hyperref[zClearRegs]{ClearRegs}#(CLo, imm)) diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeLoadvv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeLoadvv.tex deleted file mode 100644 index 9158cc9a..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeLoadvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b100001 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLoad]{Load}#(H, true, false, base, rt, offset)) /* LH */ diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeStorevv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeStorevv.tex deleted file mode 100644 index f71ec6a1..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeStorevv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b101011 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zStore]{Store}#(W, false, base, rt, offset)) /* SW */ diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeTRAPIMMvv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeTRAPIMMvv.tex deleted file mode 100644 index 39d26d09..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeTRAPIMMvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b01000 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zTRAPIMM]{TRAPIMM}#(rs, imm, GE)) /* TGEI */ diff --git a/cheri/sail_latex/sailsailsailfndecodeSomeTRAPREGvv.tex b/cheri/sail_latex/sailsailsailfndecodeSomeTRAPREGvv.tex deleted file mode 100644 index 69135618..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomeTRAPREGvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ code : #\hyperref[zbits]{bits}#(10) @ 0b110010) = - #\hyperref[zSome]{Some}#(#\hyperref[zTRAPREG]{TRAPREG}#(rs, rt, LT)) /* TLT */ diff --git a/cheri/sail_latex/sailsailsailfndecodeSomevv.tex b/cheri/sail_latex/sailsailsailfndecodeSomevv.tex deleted file mode 100644 index 30e900f1..00000000 --- a/cheri/sail_latex/sailsailsailfndecodeSomevv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010000 @ 0b10000000000000000000 @ 0b000001) = #\hyperref[zSome]{Some}#(#\hyperref[zTLBR]{TLBR}#() : ast) diff --git a/cheri/sail_latex/sailsailsailmodbitsvv.tex b/cheri/sail_latex/sailsailsailmodbitsvv.tex deleted file mode 100644 index 7f154d12..00000000 --- a/cheri/sail_latex/sailsailsailmodbitsvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_bits = {_get_TLBEntry_bits, _set_TLBEntry_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailsailfndecodeSomeBCMPZvvv.tex b/cheri/sail_latex/sailsailsailsailfndecodeSomeBCMPZvvv.tex deleted file mode 100644 index b58ee95f..00000000 --- a/cheri/sail_latex/sailsailsailsailfndecodeSomeBCMPZvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b10010 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, LT, true, true)) /* BLTZALL */ diff --git a/cheri/sail_latex/sailsailsailsailfndecodeSomeBEQvvv.tex b/cheri/sail_latex/sailsailsailsailfndecodeSomeBEQvvv.tex deleted file mode 100644 index c8be8d7f..00000000 --- a/cheri/sail_latex/sailsailsailsailfndecodeSomeBEQvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010101 @ rs : regno @ rt : regno @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBEQ]{BEQ}#(rs, rt, imm, true , true)) /* BNEL */ diff --git a/cheri/sail_latex/sailsailsailsailfndecodeSomeCJALRvvv.tex b/cheri/sail_latex/sailsailsailsailfndecodeSomeCJALRvvv.tex deleted file mode 100644 index bc34143b..00000000 --- a/cheri/sail_latex/sailsailsailsailfndecodeSomeCJALRvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ cd : regno @ cb : regno @ 0b01100 @ 0b111111) = #\hyperref[zSome]{Some}#(#\hyperref[zCJALR]{CJALR}#(cd, cb, true)) /* CJALR */ diff --git a/cheri/sail_latex/sailsailsailsailfndecodeSomeCLoadvvv.tex b/cheri/sail_latex/sailsailsailsailfndecodeSomeCLoadvvv.tex deleted file mode 100644 index a510352e..00000000 --- a/cheri/sail_latex/sailsailsailsailfndecodeSomeCLoadvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : #\hyperref[zbits]{bits}#(8) @ 0b1 @ 0b01) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, rt, offset, true, H, false)) /* CLH */ diff --git a/cheri/sail_latex/sailsailsailsailfndecodeSomeCPtrCmpvvv.tex b/cheri/sail_latex/sailsailsailsailfndecodeSomeCPtrCmpvvv.tex deleted file mode 100644 index 1cbb97ff..00000000 --- a/cheri/sail_latex/sailsailsailsailfndecodeSomeCPtrCmpvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b011) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, ct, CLE)) diff --git a/cheri/sail_latex/sailsailsailsailfndecodeSomeCStorevvv.tex b/cheri/sail_latex/sailsailsailsailfndecodeSomeCStorevvv.tex deleted file mode 100644 index 1ff7d0b3..00000000 --- a/cheri/sail_latex/sailsailsailsailfndecodeSomeCStorevvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b111010 @ rs : regno @ cb : regno@ rt : regno @ offset : #\hyperref[zbits]{bits}#(8) @ 0b0 @ 0b11) = #\hyperref[zSome]{Some}#(#\hyperref[zCStore]{CStore}#(rs, cb, rt, 0b00000, offset, D, false)) /* CSD */ diff --git a/cheri/sail_latex/sailsailsailsailfndecodeSomeClearRegsvvv.tex b/cheri/sail_latex/sailsailsailsailfndecodeSomeClearRegsvvv.tex deleted file mode 100644 index 21776cce..00000000 --- a/cheri/sail_latex/sailsailsailsailfndecodeSomeClearRegsvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01111 @ 0b00011 @ imm : #\hyperref[zbits]{bits}#(16)) = #\hyperref[zSome]{Some}#(#\hyperref[zClearRegs]{ClearRegs}#(CHi, imm)) diff --git a/cheri/sail_latex/sailsailsailsailfndecodeSomeLoadvvv.tex b/cheri/sail_latex/sailsailsailsailfndecodeSomeLoadvvv.tex deleted file mode 100644 index e0f61740..00000000 --- a/cheri/sail_latex/sailsailsailsailfndecodeSomeLoadvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b100101 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLoad]{Load}#(H, false, false, base, rt, offset)) /* LHU */ diff --git a/cheri/sail_latex/sailsailsailsailfndecodeSomeStorevvv.tex b/cheri/sail_latex/sailsailsailsailfndecodeSomeStorevvv.tex deleted file mode 100644 index 83e6bdf2..00000000 --- a/cheri/sail_latex/sailsailsailsailfndecodeSomeStorevvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b111111 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zStore]{Store}#(D, false, base, rt, offset)) /* SD */ diff --git a/cheri/sail_latex/sailsailsailsailfndecodeSomeTRAPIMMvvv.tex b/cheri/sail_latex/sailsailsailsailfndecodeSomeTRAPIMMvvv.tex deleted file mode 100644 index 225ae50d..00000000 --- a/cheri/sail_latex/sailsailsailsailfndecodeSomeTRAPIMMvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b01001 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zTRAPIMM]{TRAPIMM}#(rs, imm, GEU)) /* TGEIU */ diff --git a/cheri/sail_latex/sailsailsailsailfndecodeSomeTRAPREGvvv.tex b/cheri/sail_latex/sailsailsailsailfndecodeSomeTRAPREGvvv.tex deleted file mode 100644 index 4cd33da5..00000000 --- a/cheri/sail_latex/sailsailsailsailfndecodeSomeTRAPREGvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ code : #\hyperref[zbits]{bits}#(10) @ 0b110011) = - #\hyperref[zSome]{Some}#(#\hyperref[zTRAPREG]{TRAPREG}#(rs, rt, LTU)) /* TLTU */ diff --git a/cheri/sail_latex/sailsailsailsailfndecodeSomevvv.tex b/cheri/sail_latex/sailsailsailsailfndecodeSomevvv.tex deleted file mode 100644 index 2ef5d08d..00000000 --- a/cheri/sail_latex/sailsailsailsailfndecodeSomevvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010000 @ 0b10000000000000000000 @ 0b001000) = #\hyperref[zSome]{Some}#(#\hyperref[zTLBP]{TLBP}#() : ast) diff --git a/cheri/sail_latex/sailsailsailsailmodbitsvvv.tex b/cheri/sail_latex/sailsailsailsailmodbitsvvv.tex deleted file mode 100644 index bde40ee8..00000000 --- a/cheri/sail_latex/sailsailsailsailmodbitsvvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_bits = {_get_XContextReg_bits, _set_XContextReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeBCMPZvvvv.tex b/cheri/sail_latex/sailsailsailsailsailfndecodeSomeBCMPZvvvv.tex deleted file mode 100644 index cf942540..00000000 --- a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeBCMPZvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b00001 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, GE, false, false)) /* BGEZ */ diff --git a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeCLoadvvvv.tex b/cheri/sail_latex/sailsailsailsailsailfndecodeSomeCLoadvvvv.tex deleted file mode 100644 index db208247..00000000 --- a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeCLoadvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : #\hyperref[zbits]{bits}#(8) @ 0b0 @ 0b10) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, rt, offset, false, W, false)) /* CLWU */ diff --git a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeCPtrCmpvvvv.tex b/cheri/sail_latex/sailsailsailsailsailfndecodeSomeCPtrCmpvvvv.tex deleted file mode 100644 index c49c5823..00000000 --- a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeCPtrCmpvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b100) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, ct, CLTU)) diff --git a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeCStorevvvv.tex b/cheri/sail_latex/sailsailsailsailsailfndecodeSomeCStorevvvv.tex deleted file mode 100644 index 50b5be16..00000000 --- a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeCStorevvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ rs : regno @ cb : regno @ rd : regno @ 0b0000 @ 0b00) = #\hyperref[zSome]{Some}#(#\hyperref[zCStore]{CStore}#(rs, cb, 0b00000, rd, 0b00000000, B, true)) /* CSCB */ diff --git a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeLoadvvvv.tex b/cheri/sail_latex/sailsailsailsailsailfndecodeSomeLoadvvvv.tex deleted file mode 100644 index 4983e9f0..00000000 --- a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeLoadvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b100011 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLoad]{Load}#(W, true, false, base, rt, offset)) /* LW */ diff --git a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeStorevvvv.tex b/cheri/sail_latex/sailsailsailsailsailfndecodeSomeStorevvvv.tex deleted file mode 100644 index 64711c35..00000000 --- a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeStorevvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b111000 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zStore]{Store}#(W, true, base, rt, offset)) /* SC */ diff --git a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeTRAPIMMvvvv.tex b/cheri/sail_latex/sailsailsailsailsailfndecodeSomeTRAPIMMvvvv.tex deleted file mode 100644 index 369341e7..00000000 --- a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeTRAPIMMvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b01010 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zTRAPIMM]{TRAPIMM}#(rs, imm, LT)) /* TLTI */ diff --git a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeTRAPREGvvvv.tex b/cheri/sail_latex/sailsailsailsailsailfndecodeSomeTRAPREGvvvv.tex deleted file mode 100644 index ac4b2bdb..00000000 --- a/cheri/sail_latex/sailsailsailsailsailfndecodeSomeTRAPREGvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ code : #\hyperref[zbits]{bits}#(10) @ 0b110100) = - #\hyperref[zSome]{Some}#(#\hyperref[zTRAPREG]{TRAPREG}#(rs, rt, EQ)) /* TEQ */ diff --git a/cheri/sail_latex/sailsailsailsailsailmodbitsvvvv.tex b/cheri/sail_latex/sailsailsailsailsailmodbitsvvvv.tex deleted file mode 100644 index 8b2aac3e..00000000 --- a/cheri/sail_latex/sailsailsailsailsailmodbitsvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_bits = {_get_ContextReg_bits, _set_ContextReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeBCMPZvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeBCMPZvvvvv.tex deleted file mode 100644 index 548182a5..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeBCMPZvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b10001 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, GE, true, false)) /* BGEZAL */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeCLoadvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeCLoadvvvvv.tex deleted file mode 100644 index 5f29eb1c..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeCLoadvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : #\hyperref[zbits]{bits}#(8) @ 0b1 @ 0b10) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, rt, offset, true, W, false)) /* CLW */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvv.tex deleted file mode 100644 index 27f6c71c..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b101) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, ct, CLEU)) diff --git a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeCStorevvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeCStorevvvvv.tex deleted file mode 100644 index 3b0a96ff..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeCStorevvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ rs : regno @ cb : regno @ rd : regno @ 0b0000 @ 0b01) = #\hyperref[zSome]{Some}#(#\hyperref[zCStore]{CStore}#(rs, cb, 0b00000, rd, 0b00000000, H, true)) /* CSCH */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeLoadvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeLoadvvvvv.tex deleted file mode 100644 index 6bc11576..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeLoadvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b100111 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLoad]{Load}#(W, false, false, base, rt, offset)) /* LWU */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeStorevvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeStorevvvvv.tex deleted file mode 100644 index e7f1c376..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeStorevvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b111100 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zStore]{Store}#(D, true, base, rt, offset)) /* SCD */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeTRAPIMMvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeTRAPIMMvvvvv.tex deleted file mode 100644 index ee21bf92..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeTRAPIMMvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b01011 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zTRAPIMM]{TRAPIMM}#(rs, imm, LTU)) /* TLTIU */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeTRAPREGvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeTRAPREGvvvvv.tex deleted file mode 100644 index 15cb09f9..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailfndecodeSomeTRAPREGvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000000 @ rs : regno @ rt : regno @ code : #\hyperref[zbits]{bits}#(10) @ 0b110110) = - #\hyperref[zSome]{Some}#(#\hyperref[zTRAPREG]{TRAPREG}#(rs, rt, NE)) /* TNE */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailmodbitsvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailmodbitsvvvvv.tex deleted file mode 100644 index d52fa2ec..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailmodbitsvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_bits = {_get_TLBEntryHiReg_bits, _set_TLBEntryHiReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvv.tex deleted file mode 100644 index 1cadc33c..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b00011 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, GE, false, true)) /* BGEZL */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvv.tex deleted file mode 100644 index 187c70a2..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b110010 @ rd : regno @ cb : regno@ rt : regno @ offset : #\hyperref[zbits]{bits}#(8) @ 0b0 @ 0b11) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, rt, offset, false, D, false)) /* CLD */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvv.tex deleted file mode 100644 index 26c46207..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b110) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, ct, CEXEQ)) diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeCStorevvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeCStorevvvvvv.tex deleted file mode 100644 index 1b2921e2..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeCStorevvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ rs : regno @ cb : regno @ rd : regno @ 0b0000 @ 0b10) = #\hyperref[zSome]{Some}#(#\hyperref[zCStore]{CStore}#(rs, cb, 0b00000, rd, 0b00000000, W, true)) /* CSCW */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeLoadvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeLoadvvvvvv.tex deleted file mode 100644 index 1172d6d4..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailfndecodeSomeLoadvvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b110111 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLoad]{Load}#(D, false, false, base, rt, offset)) /* LD */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailmodbitsvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailmodbitsvvvvvv.tex deleted file mode 100644 index 7ba9e37c..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailmodbitsvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_bits = {_get_TLBEntryLoReg_bits, _set_TLBEntryLoReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvv.tex deleted file mode 100644 index 36b5eb5c..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000001 @ rs : regno @ 0b10011 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, GE, true, true)) /* BGEZALL */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvv.tex deleted file mode 100644 index 91fb7205..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b0 @ 0b00) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, 0b00000, 0b00000000, false, B, true)) /* CLLBU */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvv.tex deleted file mode 100644 index 644864c8..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b01110 @ rd : regno @ cb : regno @ ct : regno @ 0b000 @ 0b111) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, ct, CNEXEQ)) diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeCStorevvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeCStorevvvvvvv.tex deleted file mode 100644 index cd3cbe68..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeCStorevvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ rs : regno @ cb : regno @ rd : regno @ 0b0000 @ 0b11) = #\hyperref[zSome]{Some}#(#\hyperref[zCStore]{CStore}#(rs, cb, 0b00000, rd, 0b00000000, D, true)) /* CSCD */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeLoadvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeLoadvvvvvvv.tex deleted file mode 100644 index 61af3203..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailfndecodeSomeLoadvvvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b110000 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLoad]{Load}#(W, true, true, base, rt, offset)) /* LL */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailmodbitsvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailmodbitsvvvvvvv.tex deleted file mode 100644 index b9059538..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailmodbitsvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload _mod_bits = {_get_CauseReg_bits, _set_CauseReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvv.tex deleted file mode 100644 index 71d4e6a5..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000111 @ rs : regno @ 0b00000 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, GT, false, false)) /* BGTZ */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvv.tex deleted file mode 100644 index 4b5608e4..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b1 @ 0b00) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, 0b00000, 0b00000000, true, B, true)) /* CLLB */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvv.tex deleted file mode 100644 index 5649673e..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b010100) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, cs, CEQ)) diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeLoadvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeLoadvvvvvvvv.tex deleted file mode 100644 index 99da4355..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailfndecodeSomeLoadvvvvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b110100 @ base : regno @ rt : regno @ offset : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zLoad]{Load}#(D, false, true, base, rt, offset)) /* LLD */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvv.tex deleted file mode 100644 index 53bc8683..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010111 @ rs : regno @ 0b00000 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, GT, false, true)) /* BGTZL */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvv.tex deleted file mode 100644 index fde00667..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b0 @ 0b01) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, 0b00000, 0b00000000, false, H, true)) /* CLLHU */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvv.tex deleted file mode 100644 index a6a71fee..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b010101) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, cs, CNE)) diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvvv.tex deleted file mode 100644 index 1718e9a8..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b000110 @ rs : regno @ 0b00000 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, LE, false, false)) /* BLEZ */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvv.tex deleted file mode 100644 index 72c5c950..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b1 @ 0b01) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, 0b00000, 0b00000000, true, H, true)) /* CLLH */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvv.tex deleted file mode 100644 index 0346ca8c..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b010110) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, cs, CLT)) diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvvvv.tex deleted file mode 100644 index f0772815..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeBCMPZvvvvvvvvvvv.tex +++ /dev/null @@ -1,2 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010110 @ rs : regno @ 0b00000 @ imm : imm16) = - #\hyperref[zSome]{Some}#(#\hyperref[zBCMPZ]{BCMPZ}#(rs, imm, LE, false, true)) /* BLEZL */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvv.tex deleted file mode 100644 index 3378b72a..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b0 @ 0b10) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, 0b00000, 0b00000000, false, W, true)) /* CLLWU */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvv.tex deleted file mode 100644 index 133bc7e4..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b010111) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, cs, CLE)) diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvvv.tex deleted file mode 100644 index c9a4c20e..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b1 @ 0b10) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, 0b00000, 0b00000000, true, W, true)) /* CLLW */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvv.tex deleted file mode 100644 index 0b8afa50..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b011000) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, cs, CLTU)) diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvvvv.tex deleted file mode 100644 index 791243c3..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCLoadvvvvvvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b10000 @ rd : regno @ cb : regno @ 0b00000001 @ 0b0 @ 0b11) = #\hyperref[zSome]{Some}#(#\hyperref[zCLoad]{CLoad}#(rd, cb, 0b00000, 0b00000000, false, D, true)) /* CLLD */ diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvv.tex deleted file mode 100644 index f37b5e5a..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b011001) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, cs, CLEU)) diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvvv.tex deleted file mode 100644 index 709a6f6d..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b011010) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, cs, CEXEQ)) diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvvvv.tex deleted file mode 100644 index ae2792ce..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailsailsailsailsailsailsailsailsailfndecodeSomeCPtrCmpvvvvvvvvvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -function clause #\hyperref[zdecode]{decode}# (0b010010 @ 0b00000 @ rd : regno @ cb : regno @ cs : regno @ 0b100001) = #\hyperref[zSome]{Some}#(#\hyperref[zCPtrCmp]{CPtrCmp}#(rd, cb, cs, CNEXEQ)) diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailsailupdatebitsvvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailsailupdatebitsvvvvvvv.tex deleted file mode 100644 index 1be74427..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailsailupdatebitsvvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_bits = {_update_CauseReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailsailsailsailsailupdatebitsvvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailsailupdatebitsvvvvvv.tex deleted file mode 100644 index 60c5e7a6..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailsailupdatebitsvvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_bits = {_update_TLBEntryLoReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailsailsailsailupdatebitsvvvvv.tex b/cheri/sail_latex/sailsailsailsailsailsailupdatebitsvvvvv.tex deleted file mode 100644 index efc2c5b0..00000000 --- a/cheri/sail_latex/sailsailsailsailsailsailupdatebitsvvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_bits = {_update_TLBEntryHiReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailsailsailupdatebitsvvvv.tex b/cheri/sail_latex/sailsailsailsailsailupdatebitsvvvv.tex deleted file mode 100644 index c4d81402..00000000 --- a/cheri/sail_latex/sailsailsailsailsailupdatebitsvvvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_bits = {_update_ContextReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailsailupdatebitsvvv.tex b/cheri/sail_latex/sailsailsailsailupdatebitsvvv.tex deleted file mode 100644 index 28ee31f9..00000000 --- a/cheri/sail_latex/sailsailsailsailupdatebitsvvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_bits = {_update_XContextReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailsailzeightoperatorzzerozJzJzninevvv.tex b/cheri/sail_latex/sailsailsailsailzeightoperatorzzerozJzJzninevvv.tex deleted file mode 100644 index 0f72fdc9..00000000 --- a/cheri/sail_latex/sailsailsailsailzeightoperatorzzerozJzJzninevvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator ==) = {eq_bit2}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailupdatebitsvv.tex b/cheri/sail_latex/sailsailsailupdatebitsvv.tex deleted file mode 100644 index 64d81afd..00000000 --- a/cheri/sail_latex/sailsailsailupdatebitsvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_bits = {_update_TLBEntry_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailzeightoperatorzzerozBzninevv.tex b/cheri/sail_latex/sailsailsailzeightoperatorzzerozBzninevv.tex deleted file mode 100644 index eacd556c..00000000 --- a/cheri/sail_latex/sailsailsailzeightoperatorzzerozBzninevv.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator +) = {add_atom, add_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailzeightoperatorzzerozFzninevv.tex b/cheri/sail_latex/sailsailsailzeightoperatorzzerozFzninevv.tex deleted file mode 100644 index 73c40722..00000000 --- a/cheri/sail_latex/sailsailsailzeightoperatorzzerozFzninevv.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator /) = {div}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailzeightoperatorzzerozJzJzninevv.tex b/cheri/sail_latex/sailsailsailzeightoperatorzzerozJzJzninevv.tex deleted file mode 100644 index 47b1d0f6..00000000 --- a/cheri/sail_latex/sailsailsailzeightoperatorzzerozJzJzninevv.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator ==) = {eq_atom, eq_range, eq_int, eq_bool}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsailzeightoperatorzzerozfivezninevv.tex b/cheri/sail_latex/sailsailsailzeightoperatorzzerozfivezninevv.tex deleted file mode 100644 index 552e0c24..00000000 --- a/cheri/sail_latex/sailsailsailzeightoperatorzzerozfivezninevv.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator %) = {mod}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailsignextend.tex b/cheri/sail_latex/sailsailsignextend.tex deleted file mode 100644 index dfaa5c86..00000000 --- a/cheri/sail_latex/sailsailsignextend.tex +++ /dev/null @@ -1 +0,0 @@ -val sail_sign_extend = "sign_extend" : forall 'n 'm, 'm >= 'n. (#\hyperref[zbits]{bits}#('n), atom('m)) -> #\hyperref[zbits]{bits}#('m) diff --git a/cheri/sail_latex/sailsailupdateASIDv.tex b/cheri/sail_latex/sailsailupdateASIDv.tex deleted file mode 100644 index f415980a..00000000 --- a/cheri/sail_latex/sailsailupdateASIDv.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_ASID = {_update_TLBEntryHiReg_ASID}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailupdateExcCodev.tex b/cheri/sail_latex/sailsailupdateExcCodev.tex deleted file mode 100644 index 041de51c..00000000 --- a/cheri/sail_latex/sailsailupdateExcCodev.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_ExcCode = {_update_CauseReg_ExcCode}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailupdateGv.tex b/cheri/sail_latex/sailsailupdateGv.tex deleted file mode 100644 index 23f7bf3c..00000000 --- a/cheri/sail_latex/sailsailupdateGv.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_G = {_update_TLBEntryLoReg_G}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailupdateRv.tex b/cheri/sail_latex/sailsailupdateRv.tex deleted file mode 100644 index 03a3a143..00000000 --- a/cheri/sail_latex/sailsailupdateRv.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_R = {_update_TLBEntryHiReg_R}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailupdateVPNtwov.tex b/cheri/sail_latex/sailsailupdateVPNtwov.tex deleted file mode 100644 index e2b42a9a..00000000 --- a/cheri/sail_latex/sailsailupdateVPNtwov.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_VPN2 = {_update_TLBEntryHiReg_VPN2}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailupdatebitsv.tex b/cheri/sail_latex/sailsailupdatebitsv.tex deleted file mode 100644 index cc90c98a..00000000 --- a/cheri/sail_latex/sailsailupdatebitsv.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_bits = {_update_StatusReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailzeightoperatorzzerozAzninev.tex b/cheri/sail_latex/sailsailzeightoperatorzzerozAzninev.tex deleted file mode 100644 index afe7a721..00000000 --- a/cheri/sail_latex/sailsailzeightoperatorzzerozAzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator *) = {mult_atom, mult_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailzeightoperatorzzerozBzninev.tex b/cheri/sail_latex/sailsailzeightoperatorzzerozBzninev.tex deleted file mode 100644 index ddc56bfd..00000000 --- a/cheri/sail_latex/sailsailzeightoperatorzzerozBzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator +) = {add_bits, add_bits_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailzeightoperatorzzerozDzninev.tex b/cheri/sail_latex/sailsailzeightoperatorzzerozDzninev.tex deleted file mode 100644 index 5d12fdf1..00000000 --- a/cheri/sail_latex/sailsailzeightoperatorzzerozDzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator -) = {sub_atom, sub_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailzeightoperatorzzerozFzninev.tex b/cheri/sail_latex/sailsailzeightoperatorzzerozFzninev.tex deleted file mode 100644 index 38e9124b..00000000 --- a/cheri/sail_latex/sailsailzeightoperatorzzerozFzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator /) = {div_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailzeightoperatorzzerozJzJzninev.tex b/cheri/sail_latex/sailsailzeightoperatorzzerozJzJzninev.tex deleted file mode 100644 index 1314a962..00000000 --- a/cheri/sail_latex/sailsailzeightoperatorzzerozJzJzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator ==) = {eq_bit, eq_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailzeightoperatorzzerozQzninev.tex b/cheri/sail_latex/sailsailzeightoperatorzzerozQzninev.tex deleted file mode 100644 index 05769645..00000000 --- a/cheri/sail_latex/sailsailzeightoperatorzzerozQzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator ^) = {sail_mask}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailzeightoperatorzzerozUzninev.tex b/cheri/sail_latex/sailsailzeightoperatorzzerozUzninev.tex deleted file mode 100644 index 1ebacbc4..00000000 --- a/cheri/sail_latex/sailsailzeightoperatorzzerozUzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator |) = {or_bool}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailzeightoperatorzzerozfivezninev.tex b/cheri/sail_latex/sailsailzeightoperatorzzerozfivezninev.tex deleted file mode 100644 index 14fa73b8..00000000 --- a/cheri/sail_latex/sailsailzeightoperatorzzerozfivezninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator %) = {mod_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailzeightoperatorzzerozonezJzninev.tex b/cheri/sail_latex/sailsailzeightoperatorzzerozonezJzninev.tex deleted file mode 100644 index 527cf596..00000000 --- a/cheri/sail_latex/sailsailzeightoperatorzzerozonezJzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator !=) = {neq_atom, neq_range, neq_int, neq_bool}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailzeightoperatorzzerozsixzninev.tex b/cheri/sail_latex/sailsailzeightoperatorzzerozsixzninev.tex deleted file mode 100644 index be6f29ef..00000000 --- a/cheri/sail_latex/sailsailzeightoperatorzzerozsixzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator &) = {and_bool}
\ No newline at end of file diff --git a/cheri/sail_latex/sailsailzzeroextend.tex b/cheri/sail_latex/sailsailzzeroextend.tex deleted file mode 100644 index 53f6fff9..00000000 --- a/cheri/sail_latex/sailsailzzeroextend.tex +++ /dev/null @@ -1 +0,0 @@ -val sail_zero_extend = "zero_extend" : forall 'n 'm, 'm >= 'n. (#\hyperref[zbits]{bits}#('n), atom('m)) -> #\hyperref[zbits]{bits}#('m) diff --git a/cheri/sail_latex/sailsailzzeros.tex b/cheri/sail_latex/sailsailzzeros.tex deleted file mode 100644 index 9c60aa12..00000000 --- a/cheri/sail_latex/sailsailzzeros.tex +++ /dev/null @@ -1 +0,0 @@ -val sail_zeros = "zeros" : forall 'n. atom('n) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailsealCap.tex b/cheri/sail_latex/sailsealCap.tex deleted file mode 100644 index 891ae279..00000000 --- a/cheri/sail_latex/sailsealCap.tex +++ /dev/null @@ -1 +0,0 @@ -val sealCap : (CapStruct, bits(24)) -> (bool, CapStruct) diff --git a/cheri/sail_latex/sailsetCapBounds.tex b/cheri/sail_latex/sailsetCapBounds.tex deleted file mode 100644 index 6984ccf1..00000000 --- a/cheri/sail_latex/sailsetCapBounds.tex +++ /dev/null @@ -1 +0,0 @@ -val setCapBounds : (CapStruct, #\hyperref[zbits]{bits}#(64), #\hyperref[zbits]{bits}#(65)) -> (bool, CapStruct) diff --git a/cheri/sail_latex/sailsetCapCauseRegExcCode.tex b/cheri/sail_latex/sailsetCapCauseRegExcCode.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetCapCauseRegExcCode.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetCapCauseRegRegNum.tex b/cheri/sail_latex/sailsetCapCauseRegRegNum.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetCapCauseRegRegNum.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetCapCauseRegbits.tex b/cheri/sail_latex/sailsetCapCauseRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetCapCauseRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetCapOffset.tex b/cheri/sail_latex/sailsetCapOffset.tex deleted file mode 100644 index d2fca67a..00000000 --- a/cheri/sail_latex/sailsetCapOffset.tex +++ /dev/null @@ -1 +0,0 @@ -val setCapOffset : (CapStruct, #\hyperref[zbits]{bits}#(64)) -> (bool, CapStruct) diff --git a/cheri/sail_latex/sailsetCapPerms.tex b/cheri/sail_latex/sailsetCapPerms.tex deleted file mode 100644 index 617f19fb..00000000 --- a/cheri/sail_latex/sailsetCapPerms.tex +++ /dev/null @@ -1 +0,0 @@ -val setCapPerms : (CapStruct, bits(31)) -> CapStruct diff --git a/cheri/sail_latex/sailsetCauseRegBD.tex b/cheri/sail_latex/sailsetCauseRegBD.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetCauseRegBD.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetCauseRegCE.tex b/cheri/sail_latex/sailsetCauseRegCE.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetCauseRegCE.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetCauseRegExcCode.tex b/cheri/sail_latex/sailsetCauseRegExcCode.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetCauseRegExcCode.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetCauseRegIP.tex b/cheri/sail_latex/sailsetCauseRegIP.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetCauseRegIP.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetCauseRegIV.tex b/cheri/sail_latex/sailsetCauseRegIV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetCauseRegIV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetCauseRegWP.tex b/cheri/sail_latex/sailsetCauseRegWP.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetCauseRegWP.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetCauseRegbits.tex b/cheri/sail_latex/sailsetCauseRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetCauseRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetContextRegBadVPNtwo.tex b/cheri/sail_latex/sailsetContextRegBadVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetContextRegBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetContextRegPTEBase.tex b/cheri/sail_latex/sailsetContextRegPTEBase.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetContextRegPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetContextRegbits.tex b/cheri/sail_latex/sailsetContextRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetContextRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetStatusRegBEV.tex b/cheri/sail_latex/sailsetStatusRegBEV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetStatusRegBEV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetStatusRegCU.tex b/cheri/sail_latex/sailsetStatusRegCU.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetStatusRegCU.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetStatusRegERL.tex b/cheri/sail_latex/sailsetStatusRegERL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetStatusRegERL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetStatusRegEXL.tex b/cheri/sail_latex/sailsetStatusRegEXL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetStatusRegEXL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetStatusRegIE.tex b/cheri/sail_latex/sailsetStatusRegIE.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetStatusRegIE.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetStatusRegIM.tex b/cheri/sail_latex/sailsetStatusRegIM.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetStatusRegIM.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetStatusRegKSU.tex b/cheri/sail_latex/sailsetStatusRegKSU.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetStatusRegKSU.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetStatusRegKX.tex b/cheri/sail_latex/sailsetStatusRegKX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetStatusRegKX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetStatusRegSX.tex b/cheri/sail_latex/sailsetStatusRegSX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetStatusRegSX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetStatusRegUX.tex b/cheri/sail_latex/sailsetStatusRegUX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetStatusRegUX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetStatusRegbits.tex b/cheri/sail_latex/sailsetStatusRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetStatusRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryHiRegASID.tex b/cheri/sail_latex/sailsetTLBEntryHiRegASID.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryHiRegASID.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryHiRegR.tex b/cheri/sail_latex/sailsetTLBEntryHiRegR.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryHiRegR.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryHiRegVPNtwo.tex b/cheri/sail_latex/sailsetTLBEntryHiRegVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryHiRegVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryHiRegbits.tex b/cheri/sail_latex/sailsetTLBEntryHiRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryHiRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryLoRegC.tex b/cheri/sail_latex/sailsetTLBEntryLoRegC.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryLoRegC.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryLoRegCapL.tex b/cheri/sail_latex/sailsetTLBEntryLoRegCapL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryLoRegCapL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryLoRegCapS.tex b/cheri/sail_latex/sailsetTLBEntryLoRegCapS.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryLoRegCapS.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryLoRegD.tex b/cheri/sail_latex/sailsetTLBEntryLoRegD.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryLoRegD.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryLoRegG.tex b/cheri/sail_latex/sailsetTLBEntryLoRegG.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryLoRegG.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryLoRegPFN.tex b/cheri/sail_latex/sailsetTLBEntryLoRegPFN.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryLoRegPFN.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryLoRegV.tex b/cheri/sail_latex/sailsetTLBEntryLoRegV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryLoRegV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryLoRegbits.tex b/cheri/sail_latex/sailsetTLBEntryLoRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryLoRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryasid.tex b/cheri/sail_latex/sailsetTLBEntryasid.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryasid.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntrybits.tex b/cheri/sail_latex/sailsetTLBEntrybits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntrybits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntrycaplone.tex b/cheri/sail_latex/sailsetTLBEntrycaplone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntrycaplone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntrycaplzero.tex b/cheri/sail_latex/sailsetTLBEntrycaplzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntrycaplzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntrycapsone.tex b/cheri/sail_latex/sailsetTLBEntrycapsone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntrycapsone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntrycapszero.tex b/cheri/sail_latex/sailsetTLBEntrycapszero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntrycapszero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntrycone.tex b/cheri/sail_latex/sailsetTLBEntrycone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntrycone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryczero.tex b/cheri/sail_latex/sailsetTLBEntryczero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryczero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntrydone.tex b/cheri/sail_latex/sailsetTLBEntrydone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntrydone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntrydzero.tex b/cheri/sail_latex/sailsetTLBEntrydzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntrydzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryg.tex b/cheri/sail_latex/sailsetTLBEntryg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntrypagemask.tex b/cheri/sail_latex/sailsetTLBEntrypagemask.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntrypagemask.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntrypfnone.tex b/cheri/sail_latex/sailsetTLBEntrypfnone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntrypfnone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntrypfnzero.tex b/cheri/sail_latex/sailsetTLBEntrypfnzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntrypfnzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryr.tex b/cheri/sail_latex/sailsetTLBEntryr.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryr.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryvalid.tex b/cheri/sail_latex/sailsetTLBEntryvalid.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryvalid.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryvone.tex b/cheri/sail_latex/sailsetTLBEntryvone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryvone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryvpntwo.tex b/cheri/sail_latex/sailsetTLBEntryvpntwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryvpntwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetTLBEntryvzero.tex b/cheri/sail_latex/sailsetTLBEntryvzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetTLBEntryvzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetXContextRegXBadVPNtwo.tex b/cheri/sail_latex/sailsetXContextRegXBadVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetXContextRegXBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetXContextRegXPTEBase.tex b/cheri/sail_latex/sailsetXContextRegXPTEBase.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetXContextRegXPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetXContextRegXR.tex b/cheri/sail_latex/sailsetXContextRegXR.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetXContextRegXR.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetXContextRegbits.tex b/cheri/sail_latex/sailsetXContextRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailsetXContextRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailsetslicebits.tex b/cheri/sail_latex/sailsetslicebits.tex deleted file mode 100644 index 8a81bff5..00000000 --- a/cheri/sail_latex/sailsetslicebits.tex +++ /dev/null @@ -1,2 +0,0 @@ -val set_slice_bits = "set_slice" : forall 'n 'm. - (atom('n), atom('m), #\hyperref[zbits]{bits}#('n), int, #\hyperref[zbits]{bits}#('m)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailsetsliceint.tex b/cheri/sail_latex/sailsetsliceint.tex deleted file mode 100644 index 413bf721..00000000 --- a/cheri/sail_latex/sailsetsliceint.tex +++ /dev/null @@ -1 +0,0 @@ -val set_slice_int = "set_slice_int" : forall 'w. (atom('w), int, int, #\hyperref[zbits]{bits}#('w)) -> int diff --git a/cheri/sail_latex/sailshiftbitsleft.tex b/cheri/sail_latex/sailshiftbitsleft.tex deleted file mode 100644 index cdb2eb6a..00000000 --- a/cheri/sail_latex/sailshiftbitsleft.tex +++ /dev/null @@ -1 +0,0 @@ -val "shift_bits_left" : forall 'n 'm. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('m)) -> #\hyperref[zbits]{bits}#('n) effect {undef} diff --git a/cheri/sail_latex/sailshiftbitsright.tex b/cheri/sail_latex/sailshiftbitsright.tex deleted file mode 100644 index dbc72b11..00000000 --- a/cheri/sail_latex/sailshiftbitsright.tex +++ /dev/null @@ -1 +0,0 @@ -val "shift_bits_right" : forall 'n 'm. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('m)) -> #\hyperref[zbits]{bits}#('n) effect {undef} diff --git a/cheri/sail_latex/sailshiftl.tex b/cheri/sail_latex/sailshiftl.tex deleted file mode 100644 index b2c54c27..00000000 --- a/cheri/sail_latex/sailshiftl.tex +++ /dev/null @@ -1 +0,0 @@ -val "shiftl" : forall 'm 'n, 'n >= 0. (#\hyperref[zbits]{bits}#('m), atom('n)) -> #\hyperref[zbits]{bits}#('m) diff --git a/cheri/sail_latex/sailshiftr.tex b/cheri/sail_latex/sailshiftr.tex deleted file mode 100644 index f282dcbe..00000000 --- a/cheri/sail_latex/sailshiftr.tex +++ /dev/null @@ -1 +0,0 @@ -val "shiftr" : forall 'm 'n, 'n >= 0. (#\hyperref[zbits]{bits}#('m), atom('n)) -> #\hyperref[zbits]{bits}#('m) diff --git a/cheri/sail_latex/sailshlint.tex b/cheri/sail_latex/sailshlint.tex deleted file mode 100644 index 8ffbcf6c..00000000 --- a/cheri/sail_latex/sailshlint.tex +++ /dev/null @@ -1 +0,0 @@ -val shl_int = "shl_int" : (int, int) -> int diff --git a/cheri/sail_latex/sailshrint.tex b/cheri/sail_latex/sailshrint.tex deleted file mode 100644 index 087c17bb..00000000 --- a/cheri/sail_latex/sailshrint.tex +++ /dev/null @@ -1 +0,0 @@ -val shr_int = "shr_int" : (int, int) -> int diff --git a/cheri/sail_latex/sailsigned.tex b/cheri/sail_latex/sailsigned.tex deleted file mode 100644 index dcdc3049..00000000 --- a/cheri/sail_latex/sailsigned.tex +++ /dev/null @@ -1,4 +0,0 @@ -val signed = { - c: "sail_signed", - _: "sint" -} : forall 'n, 'n > 0. #\hyperref[zbits]{bits}#('n) -> range(- (2 ^ ('n - 1)), 2 ^ ('n - 1) - 1) diff --git a/cheri/sail_latex/sailsignextend.tex b/cheri/sail_latex/sailsignextend.tex deleted file mode 100644 index 03f56369..00000000 --- a/cheri/sail_latex/sailsignextend.tex +++ /dev/null @@ -1 +0,0 @@ -overload sign_extend = {mips_sign_extend}
\ No newline at end of file diff --git a/cheri/sail_latex/sailskipbarr.tex b/cheri/sail_latex/sailskipbarr.tex deleted file mode 100644 index 52a6bedd..00000000 --- a/cheri/sail_latex/sailskipbarr.tex +++ /dev/null @@ -1 +0,0 @@ -val skip_barr = "skip" : unit -> unit effect {barr} diff --git a/cheri/sail_latex/sailskipeamem.tex b/cheri/sail_latex/sailskipeamem.tex deleted file mode 100644 index b6199f85..00000000 --- a/cheri/sail_latex/sailskipeamem.tex +++ /dev/null @@ -1 +0,0 @@ -val skip_eamem = "skip" : unit -> unit effect {eamem} diff --git a/cheri/sail_latex/sailskipescape.tex b/cheri/sail_latex/sailskipescape.tex deleted file mode 100644 index 413b5c1f..00000000 --- a/cheri/sail_latex/sailskipescape.tex +++ /dev/null @@ -1 +0,0 @@ -val skip_escape = "skip" : unit -> unit effect {escape} diff --git a/cheri/sail_latex/sailskiprmemt.tex b/cheri/sail_latex/sailskiprmemt.tex deleted file mode 100644 index 97c88af4..00000000 --- a/cheri/sail_latex/sailskiprmemt.tex +++ /dev/null @@ -1 +0,0 @@ -val skip_rmemt = "skip" : unit -> unit effect {rmemt} diff --git a/cheri/sail_latex/sailskiprreg.tex b/cheri/sail_latex/sailskiprreg.tex deleted file mode 100644 index 08804f54..00000000 --- a/cheri/sail_latex/sailskiprreg.tex +++ /dev/null @@ -1 +0,0 @@ -val skip_rreg = "skip" : unit -> unit effect {rreg} diff --git a/cheri/sail_latex/sailskipwmvt.tex b/cheri/sail_latex/sailskipwmvt.tex deleted file mode 100644 index 8f991c20..00000000 --- a/cheri/sail_latex/sailskipwmvt.tex +++ /dev/null @@ -1 +0,0 @@ -val skip_wmvt = "skip" : unit -> unit effect {wmvt} diff --git a/cheri/sail_latex/sailskipwreg.tex b/cheri/sail_latex/sailskipwreg.tex deleted file mode 100644 index e79f7c10..00000000 --- a/cheri/sail_latex/sailskipwreg.tex +++ /dev/null @@ -1 +0,0 @@ -val skip_wreg = "skip" : unit -> unit effect {wreg} diff --git a/cheri/sail_latex/sailslice.tex b/cheri/sail_latex/sailslice.tex deleted file mode 100644 index b9bb5a70..00000000 --- a/cheri/sail_latex/sailslice.tex +++ /dev/null @@ -1,2 +0,0 @@ -val slice = "slice" : forall 'n 'm 'o, 0 <= 'o < 'm & 'o + 'n <= 'm & 0 <= 'n. - (#\hyperref[zbits]{bits}#('m), atom('o), atom('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailstringofint.tex b/cheri/sail_latex/sailstringofint.tex deleted file mode 100644 index 05edaa20..00000000 --- a/cheri/sail_latex/sailstringofint.tex +++ /dev/null @@ -1 +0,0 @@ -val string_of_int = "string_of_int" : int -> string diff --git a/cheri/sail_latex/sailsubatom.tex b/cheri/sail_latex/sailsubatom.tex deleted file mode 100644 index 437e2d4c..00000000 --- a/cheri/sail_latex/sailsubatom.tex +++ /dev/null @@ -1,2 +0,0 @@ -val sub_atom = {ocaml: "sub_int", lem: "integerMinus", c: "sub_int", coq: "Z.sub"} : forall 'n 'm. - (atom('n), atom('m)) -> atom('n - 'm) diff --git a/cheri/sail_latex/sailsubint.tex b/cheri/sail_latex/sailsubint.tex deleted file mode 100644 index 11fdf922..00000000 --- a/cheri/sail_latex/sailsubint.tex +++ /dev/null @@ -1 +0,0 @@ -val sub_int = {ocaml: "sub_int", lem: "integerMinus", c: "sub_int", coq: "Z.sub"} : (int, int) -> int diff --git a/cheri/sail_latex/sailsubrange.tex b/cheri/sail_latex/sailsubrange.tex deleted file mode 100644 index 2aad56b6..00000000 --- a/cheri/sail_latex/sailsubrange.tex +++ /dev/null @@ -1,2 +0,0 @@ -val sub_range = {ocaml: "sub_int", lem: "integerMinus", coq: "sub_range"} : forall 'n 'm 'o 'p. - (range('n, 'm), range('o, 'p)) -> range('n - 'p, 'm - 'o) diff --git a/cheri/sail_latex/sailsubvec.tex b/cheri/sail_latex/sailsubvec.tex deleted file mode 100644 index b92f07a4..00000000 --- a/cheri/sail_latex/sailsubvec.tex +++ /dev/null @@ -1 +0,0 @@ -val sub_vec = {c : "sub_bits", _:"sub_vec"} : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailsubvecint.tex b/cheri/sail_latex/sailsubvecint.tex deleted file mode 100644 index 70bf667e..00000000 --- a/cheri/sail_latex/sailsubvecint.tex +++ /dev/null @@ -1 +0,0 @@ -val sub_vec_int = {c:"sub_bits_int", _: "sub_vec_int"} : forall 'n. (#\hyperref[zbits]{bits}#('n), int) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailsupportedinstructions.tex b/cheri/sail_latex/sailsupportedinstructions.tex deleted file mode 100644 index 489c178d..00000000 --- a/cheri/sail_latex/sailsupportedinstructions.tex +++ /dev/null @@ -1 +0,0 @@ -val supported_instructions : ast -> #\hyperref[zoption]{option}#(ast) diff --git a/cheri/sail_latex/sailtlbEntryMatch.tex b/cheri/sail_latex/sailtlbEntryMatch.tex deleted file mode 100644 index c8461b89..00000000 --- a/cheri/sail_latex/sailtlbEntryMatch.tex +++ /dev/null @@ -1 +0,0 @@ -val tlbEntryMatch : (#\hyperref[zbits]{bits}#(2), #\hyperref[zbits]{bits}#(27), #\hyperref[zbits]{bits}#(8), TLBEntry) -> bool effect pure diff --git a/cheri/sail_latex/sailtlbSearch.tex b/cheri/sail_latex/sailtlbSearch.tex deleted file mode 100644 index 4e391617..00000000 --- a/cheri/sail_latex/sailtlbSearch.tex +++ /dev/null @@ -1 +0,0 @@ -val tlbSearch : #\hyperref[zbits]{bits}#(64) -> #\hyperref[zoption]{option}#(TLBIndexT) effect {rreg} diff --git a/cheri/sail_latex/sailtobits.tex b/cheri/sail_latex/sailtobits.tex deleted file mode 100644 index 9dd3c655..00000000 --- a/cheri/sail_latex/sailtobits.tex +++ /dev/null @@ -1 +0,0 @@ -val to_bits : forall 'l, 'l >= 0 .(atom('l), int) -> #\hyperref[zbits]{bits}#('l) diff --git a/cheri/sail_latex/sailtruncate.tex b/cheri/sail_latex/sailtruncate.tex deleted file mode 100644 index 5f7760f3..00000000 --- a/cheri/sail_latex/sailtruncate.tex +++ /dev/null @@ -1,6 +0,0 @@ -val truncate = { - ocaml: "vector_truncate", - lem: "vector_truncate", - coq: "vector_truncate", - c: "sail_truncate" -} : forall 'm 'n, 'm >= 0 & 'm <= 'n. (vector('n, dec, bit), atom('m)) -> vector('m, dec, bit) diff --git a/cheri/sail_latex/sailuintsixfour.tex b/cheri/sail_latex/sailuintsixfour.tex deleted file mode 100644 index a0d52c8f..00000000 --- a/cheri/sail_latex/sailuintsixfour.tex +++ /dev/null @@ -1 +0,0 @@ -type uint64 = range(0, (2 ^ 64) - 1) diff --git a/cheri/sail_latex/sailunsigned.tex b/cheri/sail_latex/sailunsigned.tex deleted file mode 100644 index 47867039..00000000 --- a/cheri/sail_latex/sailunsigned.tex +++ /dev/null @@ -1,7 +0,0 @@ -val unsigned = { - ocaml: "uint", - lem: "uint", - interpreter: "uint", - c: "sail_unsigned", - coq: "uint" -} : forall 'n. #\hyperref[zbits]{bits}#('n) -> range(0, 2 ^ 'n - 1) diff --git a/cheri/sail_latex/sailupdateBD.tex b/cheri/sail_latex/sailupdateBD.tex deleted file mode 100644 index db94f260..00000000 --- a/cheri/sail_latex/sailupdateBD.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_BD = {_update_CauseReg_BD}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateBEV.tex b/cheri/sail_latex/sailupdateBEV.tex deleted file mode 100644 index e45f5c7d..00000000 --- a/cheri/sail_latex/sailupdateBEV.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_BEV = {_update_StatusReg_BEV}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateBadVPNtwo.tex b/cheri/sail_latex/sailupdateBadVPNtwo.tex deleted file mode 100644 index 7b9f2827..00000000 --- a/cheri/sail_latex/sailupdateBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_BadVPN2 = {_update_ContextReg_BadVPN2}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateC.tex b/cheri/sail_latex/sailupdateC.tex deleted file mode 100644 index 4e4756e3..00000000 --- a/cheri/sail_latex/sailupdateC.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_C = {_update_TLBEntryLoReg_C}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateCE.tex b/cheri/sail_latex/sailupdateCE.tex deleted file mode 100644 index 12be67a2..00000000 --- a/cheri/sail_latex/sailupdateCE.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_CE = {_update_CauseReg_CE}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateCU.tex b/cheri/sail_latex/sailupdateCU.tex deleted file mode 100644 index fcc82986..00000000 --- a/cheri/sail_latex/sailupdateCU.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_CU = {_update_StatusReg_CU}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateCapCauseRegExcCode.tex b/cheri/sail_latex/sailupdateCapCauseRegExcCode.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateCapCauseRegExcCode.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateCapCauseRegRegNum.tex b/cheri/sail_latex/sailupdateCapCauseRegRegNum.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateCapCauseRegRegNum.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateCapCauseRegbits.tex b/cheri/sail_latex/sailupdateCapCauseRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateCapCauseRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateCapL.tex b/cheri/sail_latex/sailupdateCapL.tex deleted file mode 100644 index 7b0d8471..00000000 --- a/cheri/sail_latex/sailupdateCapL.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_CapL = {_update_TLBEntryLoReg_CapL}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateCapS.tex b/cheri/sail_latex/sailupdateCapS.tex deleted file mode 100644 index dfe685ee..00000000 --- a/cheri/sail_latex/sailupdateCapS.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_CapS = {_update_TLBEntryLoReg_CapS}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateCauseRegBD.tex b/cheri/sail_latex/sailupdateCauseRegBD.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateCauseRegBD.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateCauseRegCE.tex b/cheri/sail_latex/sailupdateCauseRegCE.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateCauseRegCE.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateCauseRegExcCode.tex b/cheri/sail_latex/sailupdateCauseRegExcCode.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateCauseRegExcCode.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateCauseRegIP.tex b/cheri/sail_latex/sailupdateCauseRegIP.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateCauseRegIP.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateCauseRegIV.tex b/cheri/sail_latex/sailupdateCauseRegIV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateCauseRegIV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateCauseRegWP.tex b/cheri/sail_latex/sailupdateCauseRegWP.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateCauseRegWP.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateCauseRegbits.tex b/cheri/sail_latex/sailupdateCauseRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateCauseRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateContextRegBadVPNtwo.tex b/cheri/sail_latex/sailupdateContextRegBadVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateContextRegBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateContextRegPTEBase.tex b/cheri/sail_latex/sailupdateContextRegPTEBase.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateContextRegPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateContextRegbits.tex b/cheri/sail_latex/sailupdateContextRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateContextRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateD.tex b/cheri/sail_latex/sailupdateD.tex deleted file mode 100644 index 2f367d1e..00000000 --- a/cheri/sail_latex/sailupdateD.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_D = {_update_TLBEntryLoReg_D}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateERL.tex b/cheri/sail_latex/sailupdateERL.tex deleted file mode 100644 index d1f9da12..00000000 --- a/cheri/sail_latex/sailupdateERL.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_ERL = {_update_StatusReg_ERL}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateEXL.tex b/cheri/sail_latex/sailupdateEXL.tex deleted file mode 100644 index 9d82b64d..00000000 --- a/cheri/sail_latex/sailupdateEXL.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_EXL = {_update_StatusReg_EXL}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateExcCode.tex b/cheri/sail_latex/sailupdateExcCode.tex deleted file mode 100644 index 38736fe7..00000000 --- a/cheri/sail_latex/sailupdateExcCode.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_ExcCode = {_update_CapCauseReg_ExcCode}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateIE.tex b/cheri/sail_latex/sailupdateIE.tex deleted file mode 100644 index 421e8744..00000000 --- a/cheri/sail_latex/sailupdateIE.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_IE = {_update_StatusReg_IE}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateIM.tex b/cheri/sail_latex/sailupdateIM.tex deleted file mode 100644 index 6128559a..00000000 --- a/cheri/sail_latex/sailupdateIM.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_IM = {_update_StatusReg_IM}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateIP.tex b/cheri/sail_latex/sailupdateIP.tex deleted file mode 100644 index 1b855a0b..00000000 --- a/cheri/sail_latex/sailupdateIP.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_IP = {_update_CauseReg_IP}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateIV.tex b/cheri/sail_latex/sailupdateIV.tex deleted file mode 100644 index 7cfa3a60..00000000 --- a/cheri/sail_latex/sailupdateIV.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_IV = {_update_CauseReg_IV}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateKSU.tex b/cheri/sail_latex/sailupdateKSU.tex deleted file mode 100644 index b5688537..00000000 --- a/cheri/sail_latex/sailupdateKSU.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_KSU = {_update_StatusReg_KSU}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateKX.tex b/cheri/sail_latex/sailupdateKX.tex deleted file mode 100644 index ff23da68..00000000 --- a/cheri/sail_latex/sailupdateKX.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_KX = {_update_StatusReg_KX}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatePFN.tex b/cheri/sail_latex/sailupdatePFN.tex deleted file mode 100644 index fa32c59b..00000000 --- a/cheri/sail_latex/sailupdatePFN.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_PFN = {_update_TLBEntryLoReg_PFN}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatePTEBase.tex b/cheri/sail_latex/sailupdatePTEBase.tex deleted file mode 100644 index 8826eee7..00000000 --- a/cheri/sail_latex/sailupdatePTEBase.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_PTEBase = {_update_ContextReg_PTEBase}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateRegNum.tex b/cheri/sail_latex/sailupdateRegNum.tex deleted file mode 100644 index 61c4abe6..00000000 --- a/cheri/sail_latex/sailupdateRegNum.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_RegNum = {_update_CapCauseReg_RegNum}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateSX.tex b/cheri/sail_latex/sailupdateSX.tex deleted file mode 100644 index 4e416154..00000000 --- a/cheri/sail_latex/sailupdateSX.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_SX = {_update_StatusReg_SX}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateStatusRegBEV.tex b/cheri/sail_latex/sailupdateStatusRegBEV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateStatusRegBEV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateStatusRegCU.tex b/cheri/sail_latex/sailupdateStatusRegCU.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateStatusRegCU.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateStatusRegERL.tex b/cheri/sail_latex/sailupdateStatusRegERL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateStatusRegERL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateStatusRegEXL.tex b/cheri/sail_latex/sailupdateStatusRegEXL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateStatusRegEXL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateStatusRegIE.tex b/cheri/sail_latex/sailupdateStatusRegIE.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateStatusRegIE.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateStatusRegIM.tex b/cheri/sail_latex/sailupdateStatusRegIM.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateStatusRegIM.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateStatusRegKSU.tex b/cheri/sail_latex/sailupdateStatusRegKSU.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateStatusRegKSU.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateStatusRegKX.tex b/cheri/sail_latex/sailupdateStatusRegKX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateStatusRegKX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateStatusRegSX.tex b/cheri/sail_latex/sailupdateStatusRegSX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateStatusRegSX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateStatusRegUX.tex b/cheri/sail_latex/sailupdateStatusRegUX.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateStatusRegUX.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateStatusRegbits.tex b/cheri/sail_latex/sailupdateStatusRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateStatusRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryHiRegASID.tex b/cheri/sail_latex/sailupdateTLBEntryHiRegASID.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryHiRegASID.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryHiRegR.tex b/cheri/sail_latex/sailupdateTLBEntryHiRegR.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryHiRegR.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryHiRegVPNtwo.tex b/cheri/sail_latex/sailupdateTLBEntryHiRegVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryHiRegVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryHiRegbits.tex b/cheri/sail_latex/sailupdateTLBEntryHiRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryHiRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryLoRegC.tex b/cheri/sail_latex/sailupdateTLBEntryLoRegC.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryLoRegC.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryLoRegCapL.tex b/cheri/sail_latex/sailupdateTLBEntryLoRegCapL.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryLoRegCapL.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryLoRegCapS.tex b/cheri/sail_latex/sailupdateTLBEntryLoRegCapS.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryLoRegCapS.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryLoRegD.tex b/cheri/sail_latex/sailupdateTLBEntryLoRegD.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryLoRegD.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryLoRegG.tex b/cheri/sail_latex/sailupdateTLBEntryLoRegG.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryLoRegG.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryLoRegPFN.tex b/cheri/sail_latex/sailupdateTLBEntryLoRegPFN.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryLoRegPFN.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryLoRegV.tex b/cheri/sail_latex/sailupdateTLBEntryLoRegV.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryLoRegV.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryLoRegbits.tex b/cheri/sail_latex/sailupdateTLBEntryLoRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryLoRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryasid.tex b/cheri/sail_latex/sailupdateTLBEntryasid.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryasid.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntrybits.tex b/cheri/sail_latex/sailupdateTLBEntrybits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntrybits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntrycaplone.tex b/cheri/sail_latex/sailupdateTLBEntrycaplone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntrycaplone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntrycaplzero.tex b/cheri/sail_latex/sailupdateTLBEntrycaplzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntrycaplzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntrycapsone.tex b/cheri/sail_latex/sailupdateTLBEntrycapsone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntrycapsone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntrycapszero.tex b/cheri/sail_latex/sailupdateTLBEntrycapszero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntrycapszero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntrycone.tex b/cheri/sail_latex/sailupdateTLBEntrycone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntrycone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryczero.tex b/cheri/sail_latex/sailupdateTLBEntryczero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryczero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntrydone.tex b/cheri/sail_latex/sailupdateTLBEntrydone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntrydone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntrydzero.tex b/cheri/sail_latex/sailupdateTLBEntrydzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntrydzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryg.tex b/cheri/sail_latex/sailupdateTLBEntryg.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryg.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntrypagemask.tex b/cheri/sail_latex/sailupdateTLBEntrypagemask.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntrypagemask.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntrypfnone.tex b/cheri/sail_latex/sailupdateTLBEntrypfnone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntrypfnone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntrypfnzero.tex b/cheri/sail_latex/sailupdateTLBEntrypfnzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntrypfnzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryr.tex b/cheri/sail_latex/sailupdateTLBEntryr.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryr.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryvalid.tex b/cheri/sail_latex/sailupdateTLBEntryvalid.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryvalid.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryvone.tex b/cheri/sail_latex/sailupdateTLBEntryvone.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryvone.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryvpntwo.tex b/cheri/sail_latex/sailupdateTLBEntryvpntwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryvpntwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateTLBEntryvzero.tex b/cheri/sail_latex/sailupdateTLBEntryvzero.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateTLBEntryvzero.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateUX.tex b/cheri/sail_latex/sailupdateUX.tex deleted file mode 100644 index d0d2a663..00000000 --- a/cheri/sail_latex/sailupdateUX.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_UX = {_update_StatusReg_UX}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateV.tex b/cheri/sail_latex/sailupdateV.tex deleted file mode 100644 index 336f76d5..00000000 --- a/cheri/sail_latex/sailupdateV.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_V = {_update_TLBEntryLoReg_V}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateWP.tex b/cheri/sail_latex/sailupdateWP.tex deleted file mode 100644 index d4528672..00000000 --- a/cheri/sail_latex/sailupdateWP.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_WP = {_update_CauseReg_WP}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateXBadVPNtwo.tex b/cheri/sail_latex/sailupdateXBadVPNtwo.tex deleted file mode 100644 index 9bb69796..00000000 --- a/cheri/sail_latex/sailupdateXBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_XBadVPN2 = {_update_XContextReg_XBadVPN2}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateXContextRegXBadVPNtwo.tex b/cheri/sail_latex/sailupdateXContextRegXBadVPNtwo.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateXContextRegXBadVPNtwo.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateXContextRegXPTEBase.tex b/cheri/sail_latex/sailupdateXContextRegXPTEBase.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateXContextRegXPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateXContextRegXR.tex b/cheri/sail_latex/sailupdateXContextRegXR.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateXContextRegXR.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateXContextRegbits.tex b/cheri/sail_latex/sailupdateXContextRegbits.tex deleted file mode 100644 index 8b137891..00000000 --- a/cheri/sail_latex/sailupdateXContextRegbits.tex +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cheri/sail_latex/sailupdateXPTEBase.tex b/cheri/sail_latex/sailupdateXPTEBase.tex deleted file mode 100644 index 8a203d30..00000000 --- a/cheri/sail_latex/sailupdateXPTEBase.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_XPTEBase = {_update_XContextReg_XPTEBase}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateXR.tex b/cheri/sail_latex/sailupdateXR.tex deleted file mode 100644 index 1854ca65..00000000 --- a/cheri/sail_latex/sailupdateXR.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_XR = {_update_XContextReg_XR}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateasid.tex b/cheri/sail_latex/sailupdateasid.tex deleted file mode 100644 index 8fa9f60a..00000000 --- a/cheri/sail_latex/sailupdateasid.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_asid = {_update_TLBEntry_asid}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatebits.tex b/cheri/sail_latex/sailupdatebits.tex deleted file mode 100644 index 84c93c53..00000000 --- a/cheri/sail_latex/sailupdatebits.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_bits = {_update_CapCauseReg_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatecaplone.tex b/cheri/sail_latex/sailupdatecaplone.tex deleted file mode 100644 index a0ce007c..00000000 --- a/cheri/sail_latex/sailupdatecaplone.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_capl1 = {_update_TLBEntry_capl1}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatecaplzero.tex b/cheri/sail_latex/sailupdatecaplzero.tex deleted file mode 100644 index 11747581..00000000 --- a/cheri/sail_latex/sailupdatecaplzero.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_capl0 = {_update_TLBEntry_capl0}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatecapsone.tex b/cheri/sail_latex/sailupdatecapsone.tex deleted file mode 100644 index 6449364e..00000000 --- a/cheri/sail_latex/sailupdatecapsone.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_caps1 = {_update_TLBEntry_caps1}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatecapszero.tex b/cheri/sail_latex/sailupdatecapszero.tex deleted file mode 100644 index 1791d720..00000000 --- a/cheri/sail_latex/sailupdatecapszero.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_caps0 = {_update_TLBEntry_caps0}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatecone.tex b/cheri/sail_latex/sailupdatecone.tex deleted file mode 100644 index f8e39aea..00000000 --- a/cheri/sail_latex/sailupdatecone.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_c1 = {_update_TLBEntry_c1}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateczero.tex b/cheri/sail_latex/sailupdateczero.tex deleted file mode 100644 index ccb2da58..00000000 --- a/cheri/sail_latex/sailupdateczero.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_c0 = {_update_TLBEntry_c0}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatedone.tex b/cheri/sail_latex/sailupdatedone.tex deleted file mode 100644 index ee303126..00000000 --- a/cheri/sail_latex/sailupdatedone.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_d1 = {_update_TLBEntry_d1}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatedzero.tex b/cheri/sail_latex/sailupdatedzero.tex deleted file mode 100644 index 799b9f2f..00000000 --- a/cheri/sail_latex/sailupdatedzero.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_d0 = {_update_TLBEntry_d0}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdateg.tex b/cheri/sail_latex/sailupdateg.tex deleted file mode 100644 index 988d87b6..00000000 --- a/cheri/sail_latex/sailupdateg.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_g = {_update_TLBEntry_g}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatepagemask.tex b/cheri/sail_latex/sailupdatepagemask.tex deleted file mode 100644 index e57ea1df..00000000 --- a/cheri/sail_latex/sailupdatepagemask.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_pagemask = {_update_TLBEntry_pagemask}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatepfnone.tex b/cheri/sail_latex/sailupdatepfnone.tex deleted file mode 100644 index a6e7a80d..00000000 --- a/cheri/sail_latex/sailupdatepfnone.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_pfn1 = {_update_TLBEntry_pfn1}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatepfnzero.tex b/cheri/sail_latex/sailupdatepfnzero.tex deleted file mode 100644 index 54244083..00000000 --- a/cheri/sail_latex/sailupdatepfnzero.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_pfn0 = {_update_TLBEntry_pfn0}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdater.tex b/cheri/sail_latex/sailupdater.tex deleted file mode 100644 index 485fdf99..00000000 --- a/cheri/sail_latex/sailupdater.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_r = {_update_TLBEntry_r}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatevalid.tex b/cheri/sail_latex/sailupdatevalid.tex deleted file mode 100644 index 9c19b5b5..00000000 --- a/cheri/sail_latex/sailupdatevalid.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_valid = {_update_TLBEntry_valid}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatevone.tex b/cheri/sail_latex/sailupdatevone.tex deleted file mode 100644 index 5da0a4e9..00000000 --- a/cheri/sail_latex/sailupdatevone.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_v1 = {_update_TLBEntry_v1}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatevpntwo.tex b/cheri/sail_latex/sailupdatevpntwo.tex deleted file mode 100644 index b4743a0c..00000000 --- a/cheri/sail_latex/sailupdatevpntwo.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_vpn2 = {_update_TLBEntry_vpn2}
\ No newline at end of file diff --git a/cheri/sail_latex/sailupdatevzero.tex b/cheri/sail_latex/sailupdatevzero.tex deleted file mode 100644 index 0405f0c0..00000000 --- a/cheri/sail_latex/sailupdatevzero.tex +++ /dev/null @@ -1 +0,0 @@ -overload update_v0 = {_update_TLBEntry_v0}
\ No newline at end of file diff --git a/cheri/sail_latex/sailvectoraccess.tex b/cheri/sail_latex/sailvectoraccess.tex deleted file mode 100644 index a8e8074f..00000000 --- a/cheri/sail_latex/sailvectoraccess.tex +++ /dev/null @@ -1 +0,0 @@ -overload vector_access = {bitvector_access, plain_vector_access}
\ No newline at end of file diff --git a/cheri/sail_latex/sailvectorlength.tex b/cheri/sail_latex/sailvectorlength.tex deleted file mode 100644 index f41d5bfa..00000000 --- a/cheri/sail_latex/sailvectorlength.tex +++ /dev/null @@ -1,6 +0,0 @@ -val vector_length = { - ocaml: "length", - lem: "length_list", - c: "length", - coq: "vec_length" -} : forall '#\hyperref[zn]{n}# ('a : Type). vector('n, dec, 'a) -> atom('n) diff --git a/cheri/sail_latex/sailvectorsubrange.tex b/cheri/sail_latex/sailvectorsubrange.tex deleted file mode 100644 index c069c7b6..00000000 --- a/cheri/sail_latex/sailvectorsubrange.tex +++ /dev/null @@ -1,7 +0,0 @@ -val vector_subrange = { - ocaml: "subrange", - lem: "subrange_vec_dec", - c: "vector_subrange", - coq: "subrange_vec_dec" -} : forall ('n : Int) ('m : Int) ('o : Int), 0 <= 'o <= 'm < 'n. - (#\hyperref[zbits]{bits}#('n), atom('m), atom('o)) -> #\hyperref[zbits]{bits}#('m - 'o + 1) diff --git a/cheri/sail_latex/sailvectorupdate.tex b/cheri/sail_latex/sailvectorupdate.tex deleted file mode 100644 index 1ec4aaef..00000000 --- a/cheri/sail_latex/sailvectorupdate.tex +++ /dev/null @@ -1 +0,0 @@ -overload vector_update = {bitvector_update, plain_vector_update}
\ No newline at end of file diff --git a/cheri/sail_latex/sailvectorupdatesubrange.tex b/cheri/sail_latex/sailvectorupdatesubrange.tex deleted file mode 100644 index 6ff4f9f6..00000000 --- a/cheri/sail_latex/sailvectorupdatesubrange.tex +++ /dev/null @@ -1,6 +0,0 @@ -val vector_update_subrange = { - ocaml: "update_subrange", - lem: "update_subrange_vec_dec", - c: "vector_update_subrange", - coq: "update_subrange_vec_dec" -} : forall 'n 'm 'o. (#\hyperref[zbits]{bits}#('n), atom('m), atom('o), #\hyperref[zbits]{bits}#('m - ('o - 1))) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailwGPR.tex b/cheri/sail_latex/sailwGPR.tex deleted file mode 100644 index bf78e005..00000000 --- a/cheri/sail_latex/sailwGPR.tex +++ /dev/null @@ -1 +0,0 @@ -val wGPR : (#\hyperref[zbits]{bits}#(5), #\hyperref[zbits]{bits}#(64)) -> unit effect {wreg} diff --git a/cheri/sail_latex/sailwordWidthBytes.tex b/cheri/sail_latex/sailwordWidthBytes.tex deleted file mode 100644 index aa5bbe5f..00000000 --- a/cheri/sail_latex/sailwordWidthBytes.tex +++ /dev/null @@ -1 +0,0 @@ -val wordWidthBytes : WordType -> range(1, 8) diff --git a/cheri/sail_latex/sailwriteCapReg.tex b/cheri/sail_latex/sailwriteCapReg.tex deleted file mode 100644 index 44b9d466..00000000 --- a/cheri/sail_latex/sailwriteCapReg.tex +++ /dev/null @@ -1 +0,0 @@ -val writeCapReg : (regno, CapStruct) -> unit effect {wreg} diff --git a/cheri/sail_latex/sailxorvec.tex b/cheri/sail_latex/sailxorvec.tex deleted file mode 100644 index b3aa7372..00000000 --- a/cheri/sail_latex/sailxorvec.tex +++ /dev/null @@ -1 +0,0 @@ -val xor_vec = {c: "xor_bits" , _: "xor_vec"} : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latex/sailzW.tex b/cheri/sail_latex/sailzW.tex deleted file mode 100644 index a29ec93f..00000000 --- a/cheri/sail_latex/sailzW.tex +++ /dev/null @@ -1 +0,0 @@ -overload ~ = {not_bool, not_vec}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozAsznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozAsznine.tex deleted file mode 100644 index 0b0a46e2..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozAsznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator *_s = "mults_vec" : forall 'n . (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#(2 * 'n) diff --git a/cheri/sail_latex/sailzeightoperatorzzerozAuznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozAuznine.tex deleted file mode 100644 index 5b762ba7..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozAuznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator *_u = "mult_vec" : forall 'n . (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#(2 * 'n) diff --git a/cheri/sail_latex/sailzeightoperatorzzerozAznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozAznine.tex deleted file mode 100644 index 2d188f63..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozAznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator *) = {mult_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozBznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozBznine.tex deleted file mode 100644 index 432e85e5..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozBznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator +) = {add_range, add_int, add_vec, add_vec_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozDznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozDznine.tex deleted file mode 100644 index d671e6b0..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozDznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator -) = {sub_range, sub_int, sub_vec, sub_vec_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozFznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozFznine.tex deleted file mode 100644 index 3c2e441c..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozFznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator /) = {quotient_nat, quotient}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozIsznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozIsznine.tex deleted file mode 100644 index 9b4ebe19..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozIsznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator <_s : forall 'n, 'n > 0. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> bool diff --git a/cheri/sail_latex/sailzeightoperatorzzerozIuznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozIuznine.tex deleted file mode 100644 index 5b54235e..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozIuznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator <_u : forall 'n, 'n >= 0. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> bool diff --git a/cheri/sail_latex/sailzeightoperatorzzerozIzIznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozIzIznine.tex deleted file mode 100644 index 51ff2b6c..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozIzIznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator <<) = {shift_bits_left, shiftl}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozIzJznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozIzJznine.tex deleted file mode 100644 index d23f28dd..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozIzJznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator <=) = {lteq_atom, lteq_range_atom, lteq_atom_range, lteq_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozIznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozIznine.tex deleted file mode 100644 index 8e5e3fe9..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozIznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator <) = {lt_atom, lt_range_atom, lt_atom_range, lt_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozJzJznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozJzJznine.tex deleted file mode 100644 index 57ea823c..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozJzJznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator ==) = {eq_anything}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozKzJsznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozKzJsznine.tex deleted file mode 100644 index 032e8600..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozKzJsznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator >=_s : forall 'n, 'n > 0. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> bool diff --git a/cheri/sail_latex/sailzeightoperatorzzerozKzJuznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozKzJuznine.tex deleted file mode 100644 index eaa72e60..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozKzJuznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator >=_u : forall 'n, 'n >= 0. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> bool diff --git a/cheri/sail_latex/sailzeightoperatorzzerozKzJznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozKzJznine.tex deleted file mode 100644 index 5733b740..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozKzJznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator >=) = {gteq_atom, gteq_range_atom, gteq_atom_range, gteq_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozKzKsznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozKzKsznine.tex deleted file mode 100644 index 0f0793a6..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozKzKsznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator >>_s = "shift_bits_right_arith" : forall 'n 'm. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('m)) -> #\hyperref[zbits]{bits}#('n) effect {undef} diff --git a/cheri/sail_latex/sailzeightoperatorzzerozKzKznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozKzKznine.tex deleted file mode 100644 index b129e9d2..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozKzKznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator >>) = {shift_bits_right, shiftr}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozKznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozKznine.tex deleted file mode 100644 index a8da7e48..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozKznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator >) = {gt_atom, gt_range_atom, gt_atom_range, gt_int}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozQzQznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozQzQznine.tex deleted file mode 100644 index 185f501e..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozQzQznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator ^^ = {lem: "replicate_bits"} : forall 'n 'm, 'm >= 0 . (#\hyperref[zbits]{bits}#('n), atom('m)) -> #\hyperref[zbits]{bits}#('n * 'm) diff --git a/cheri/sail_latex/sailzeightoperatorzzerozQznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozQznine.tex deleted file mode 100644 index 106b6064..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozQznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator ^) = {xor_vec, int_power}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozUznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozUznine.tex deleted file mode 100644 index 4de737e0..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozUznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator |) = {or_bool, or_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozfiveznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozfiveznine.tex deleted file mode 100644 index 8d6b54c3..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozfiveznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator %) = {modulus}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozonezJznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozonezJznine.tex deleted file mode 100644 index 22052668..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozonezJznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator !=) = {neq_atom, neq_int, neq_vec, neq_anything}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzeightoperatorzzerozsixznine.tex b/cheri/sail_latex/sailzeightoperatorzzerozsixznine.tex deleted file mode 100644 index 248fb15e..00000000 --- a/cheri/sail_latex/sailzeightoperatorzzerozsixznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator &) = {and_bool, and_bits}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzzeroextend.tex b/cheri/sail_latex/sailzzeroextend.tex deleted file mode 100644 index 0f754d44..00000000 --- a/cheri/sail_latex/sailzzeroextend.tex +++ /dev/null @@ -1 +0,0 @@ -overload zero_extend = {mips_zero_extend}
\ No newline at end of file diff --git a/cheri/sail_latex/sailzzeros.tex b/cheri/sail_latex/sailzzeros.tex deleted file mode 100644 index 1c251eda..00000000 --- a/cheri/sail_latex/sailzzeros.tex +++ /dev/null @@ -1 +0,0 @@ -val zeros : forall 'n, 'n >= 0 . unit -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/commands.tex b/cheri/sail_latexcc/commands.tex deleted file mode 100644 index 8b9678a1..00000000 --- a/cheri/sail_latexcc/commands.tex +++ /dev/null @@ -1,544 +0,0 @@ -\newcommand{\sailccsailccregderefv}{\label{zregzyderef} \lstinputlisting[language=sail]{sail_latexcc/sailccsailccregderefv.tex}} - -\newcommand{\sailccregderef}{\label{zzyregzyderef} \lstinputlisting[language=sail]{sail_latexcc/sailccregderef.tex}} - -\newcommand{\sailcceqbittwo}{\label{zeqzybittwo} \lstinputlisting[language=sail]{sail_latexcc/sailcceqbittwo.tex}} - -\newcommand{\sailccsailccsailccsailcczeightoperatorzzerozJzJzninevvv}{\label{zzeightoperatorzzerozJzJznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailccsailccsailcczeightoperatorzzerozJzJzninevvv.tex}} - -\newcommand{\sailccdiv}{\label{zdiv} \lstinputlisting[language=sail]{sail_latexcc/sailccdiv.tex}} - -\newcommand{\sailccsailccsailcczeightoperatorzzerozFzninevv}{\label{zzeightoperatorzzerozFznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailccsailcczeightoperatorzzerozFzninevv.tex}} - -\newcommand{\sailccmod}{\label{zmod} \lstinputlisting[language=sail]{sail_latexcc/sailccmod.tex}} - -\newcommand{\sailccsailccsailcczeightoperatorzzerozfivezninevv}{\label{zzeightoperatorzzerozfiveznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailccsailcczeightoperatorzzerozfivezninevv.tex}} - -\newcommand{\sailccabsatom}{\label{zabszyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccabsatom.tex}} - -\newcommand{\sailccnotbool}{\label{znotzybool} \lstinputlisting[language=sail]{sail_latexcc/sailccnotbool.tex}} - -\newcommand{\sailccandbool}{\label{zandzybool} \lstinputlisting[language=sail]{sail_latexcc/sailccandbool.tex}} - -\newcommand{\sailccorbool}{\label{zorzybool} \lstinputlisting[language=sail]{sail_latexcc/sailccorbool.tex}} - -\newcommand{\sailcceqatom}{\label{zeqzyatom} \lstinputlisting[language=sail]{sail_latexcc/sailcceqatom.tex}} - -\newcommand{\sailccneqatom}{\label{zneqzyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccneqatom.tex}} - -\newcommand{\sailccfnneqatom}{\label{zneqzyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccfnneqatom.tex}} - -\newcommand{\sailcclteqatom}{\label{zlteqzyatom} \lstinputlisting[language=sail]{sail_latexcc/sailcclteqatom.tex}} - -\newcommand{\sailccgteqatom}{\label{zgteqzyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccgteqatom.tex}} - -\newcommand{\sailccltatom}{\label{zltzyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccltatom.tex}} - -\newcommand{\sailccgtatom}{\label{zgtzyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccgtatom.tex}} - -\newcommand{\sailccltrangeatom}{\label{zltzyrangezyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccltrangeatom.tex}} - -\newcommand{\sailcclteqrangeatom}{\label{zlteqzyrangezyatom} \lstinputlisting[language=sail]{sail_latexcc/sailcclteqrangeatom.tex}} - -\newcommand{\sailccgtrangeatom}{\label{zgtzyrangezyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccgtrangeatom.tex}} - -\newcommand{\sailccgteqrangeatom}{\label{zgteqzyrangezyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccgteqrangeatom.tex}} - -\newcommand{\sailccltatomrange}{\label{zltzyatomzyrange} \lstinputlisting[language=sail]{sail_latexcc/sailccltatomrange.tex}} - -\newcommand{\sailcclteqatomrange}{\label{zlteqzyatomzyrange} \lstinputlisting[language=sail]{sail_latexcc/sailcclteqatomrange.tex}} - -\newcommand{\sailccgtatomrange}{\label{zgtzyatomzyrange} \lstinputlisting[language=sail]{sail_latexcc/sailccgtatomrange.tex}} - -\newcommand{\sailccgteqatomrange}{\label{zgteqzyatomzyrange} \lstinputlisting[language=sail]{sail_latexcc/sailccgteqatomrange.tex}} - -\newcommand{\sailcceqrange}{\label{zeqzyrange} \lstinputlisting[language=sail]{sail_latexcc/sailcceqrange.tex}} - -\newcommand{\sailcceqint}{\label{zeqzyint} \lstinputlisting[language=sail]{sail_latexcc/sailcceqint.tex}} - -\newcommand{\sailcceqbool}{\label{zeqzybool} \lstinputlisting[language=sail]{sail_latexcc/sailcceqbool.tex}} - -\newcommand{\sailccneqrange}{\label{zneqzyrange} \lstinputlisting[language=sail]{sail_latexcc/sailccneqrange.tex}} - -\newcommand{\sailccfnneqrange}{\label{zneqzyrange} \lstinputlisting[language=sail]{sail_latexcc/sailccfnneqrange.tex}} - -\newcommand{\sailccneqint}{\label{zneqzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccneqint.tex}} - -\newcommand{\sailccfnneqint}{\label{zneqzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccfnneqint.tex}} - -\newcommand{\sailccneqbool}{\label{zneqzybool} \lstinputlisting[language=sail]{sail_latexcc/sailccneqbool.tex}} - -\newcommand{\sailccfnneqbool}{\label{zneqzybool} \lstinputlisting[language=sail]{sail_latexcc/sailccfnneqbool.tex}} - -\newcommand{\sailcclteqint}{\label{zlteqzyint} \lstinputlisting[language=sail]{sail_latexcc/sailcclteqint.tex}} - -\newcommand{\sailccgteqint}{\label{zgteqzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccgteqint.tex}} - -\newcommand{\sailccltint}{\label{zltzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccltint.tex}} - -\newcommand{\sailccgtint}{\label{zgtzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccgtint.tex}} - -\newcommand{\sailccsailccsailcczeightoperatorzzerozJzJzninevv}{\label{zzeightoperatorzzerozJzJznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailccsailcczeightoperatorzzerozJzJzninevv.tex}} - -\newcommand{\sailccsailcczeightoperatorzzerozonezJzninev}{\label{zzeightoperatorzzerozonezJznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailcczeightoperatorzzerozonezJzninev.tex}} - -\newcommand{\sailccsailcczeightoperatorzzerozUzninev}{\label{zzeightoperatorzzerozUznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailcczeightoperatorzzerozUzninev.tex}} - -\newcommand{\sailccsailcczeightoperatorzzerozsixzninev}{\label{zzeightoperatorzzerozsixznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailcczeightoperatorzzerozsixzninev.tex}} - -\newcommand{\sailcczeightoperatorzzerozIzJznine}{\label{zzeightoperatorzzerozIzJznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozIzJznine.tex}} - -\newcommand{\sailcczeightoperatorzzerozIznine}{\label{zzeightoperatorzzerozIznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozIznine.tex}} - -\newcommand{\sailcczeightoperatorzzerozKzJznine}{\label{zzeightoperatorzzerozKzJznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozKzJznine.tex}} - -\newcommand{\sailcczeightoperatorzzerozKznine}{\label{zzeightoperatorzzerozKznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozKznine.tex}} - -\newcommand{\sailccaddatom}{\label{zaddzyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccaddatom.tex}} - -\newcommand{\sailccaddint}{\label{zaddzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccaddint.tex}} - -\newcommand{\sailccsailccsailcczeightoperatorzzerozBzninevv}{\label{zzeightoperatorzzerozBznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailccsailcczeightoperatorzzerozBzninevv.tex}} - -\newcommand{\sailccsubatom}{\label{zsubzyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccsubatom.tex}} - -\newcommand{\sailccsubint}{\label{zsubzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccsubint.tex}} - -\newcommand{\sailccsailcczeightoperatorzzerozDzninev}{\label{zzeightoperatorzzerozDznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailcczeightoperatorzzerozDzninev.tex}} - -\newcommand{\sailccnegateatom}{\label{znegatezyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccnegateatom.tex}} - -\newcommand{\sailccnegateint}{\label{znegatezyint} \lstinputlisting[language=sail]{sail_latexcc/sailccnegateint.tex}} - -\newcommand{\sailccsailccnegatev}{\label{znegate} \lstinputlisting[language=sail]{sail_latexcc/sailccsailccnegatev.tex}} - -\newcommand{\sailccmultatom}{\label{zmultzyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccmultatom.tex}} - -\newcommand{\sailccmultint}{\label{zmultzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccmultint.tex}} - -\newcommand{\sailccsailcczeightoperatorzzerozAzninev}{\label{zzeightoperatorzzerozAznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailcczeightoperatorzzerozAzninev.tex}} - -\newcommand{\sailccprintint}{\label{zprintzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccprintint.tex}} - -\newcommand{\sailccprerrint}{\label{zprerrzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccprerrint.tex}} - -\newcommand{\sailccshlint}{\label{zshlzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccshlint.tex}} - -\newcommand{\sailccshrint}{\label{zshrzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccshrint.tex}} - -\newcommand{\sailccdivint}{\label{zdivzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccdivint.tex}} - -\newcommand{\sailccsailcczeightoperatorzzerozFzninev}{\label{zzeightoperatorzzerozFznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailcczeightoperatorzzerozFzninev.tex}} - -\newcommand{\sailccmodint}{\label{zmodzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccmodint.tex}} - -\newcommand{\sailccsailcczeightoperatorzzerozfivezninev}{\label{zzeightoperatorzzerozfiveznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailcczeightoperatorzzerozfivezninev.tex}} - -\newcommand{\sailccabsint}{\label{zabszyint} \lstinputlisting[language=sail]{sail_latexcc/sailccabsint.tex}} - -\newcommand{\sailccisnone}{\label{ziszynone} \lstinputlisting[language=sail]{sail_latexcc/sailccisnone.tex}} - -\newcommand{\sailccfnisnone}{\label{ziszynone} \lstinputlisting[language=sail]{sail_latexcc/sailccfnisnone.tex}} - -\newcommand{\sailccissome}{\label{ziszysome} \lstinputlisting[language=sail]{sail_latexcc/sailccissome.tex}} - -\newcommand{\sailccfnissome}{\label{ziszysome} \lstinputlisting[language=sail]{sail_latexcc/sailccfnissome.tex}} - -\newcommand{\sailccbits}{\label{zbits} \lstinputlisting[language=sail]{sail_latexcc/sailccbits.tex}} - -\newcommand{\sailcceqbit}{\label{zeqzybit} \lstinputlisting[language=sail]{sail_latexcc/sailcceqbit.tex}} - -\newcommand{\sailcceqbits}{\label{zeqzybits} \lstinputlisting[language=sail]{sail_latexcc/sailcceqbits.tex}} - -\newcommand{\sailccsailcczeightoperatorzzerozJzJzninev}{\label{zzeightoperatorzzerozJzJznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailcczeightoperatorzzerozJzJzninev.tex}} - -\newcommand{\sailccbitvectorlength}{\label{zbitvectorzylength} \lstinputlisting[language=sail]{sail_latexcc/sailccbitvectorlength.tex}} - -\newcommand{\sailccvectorlength}{\label{zvectorzylength} \lstinputlisting[language=sail]{sail_latexcc/sailccvectorlength.tex}} - -\newcommand{\sailcclength}{\label{zlength} \lstinputlisting[language=sail]{sail_latexcc/sailcclength.tex}} - -\newcommand{\sailccsailzzeros}{\label{zsailzyzzeros} \lstinputlisting[language=sail]{sail_latexcc/sailccsailzzeros.tex}} - -\newcommand{\sailccprintbits}{\label{zprintzybits} \lstinputlisting[language=sail]{sail_latexcc/sailccprintbits.tex}} - -\newcommand{\sailccprerrbits}{\label{zprerrzybits} \lstinputlisting[language=sail]{sail_latexcc/sailccprerrbits.tex}} - -\newcommand{\sailccsailsignextend}{\label{zsailzysignzyextend} \lstinputlisting[language=sail]{sail_latexcc/sailccsailsignextend.tex}} - -\newcommand{\sailccsailzzeroextend}{\label{zsailzyzzerozyextend} \lstinputlisting[language=sail]{sail_latexcc/sailccsailzzeroextend.tex}} - -\newcommand{\sailcctruncate}{\label{ztruncate} \lstinputlisting[language=sail]{sail_latexcc/sailcctruncate.tex}} - -\newcommand{\sailccsailmask}{\label{zsailzymask} \lstinputlisting[language=sail]{sail_latexcc/sailccsailmask.tex}} - -\newcommand{\sailccfnsailmask}{\label{zsailzymask} \lstinputlisting[language=sail]{sail_latexcc/sailccfnsailmask.tex}} - -\newcommand{\sailccsailcczeightoperatorzzerozQzninev}{\label{zzeightoperatorzzerozQznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailcczeightoperatorzzerozQzninev.tex}} - -\newcommand{\sailccbitvectorconcat}{\label{zbitvectorzyconcat} \lstinputlisting[language=sail]{sail_latexcc/sailccbitvectorconcat.tex}} - -\newcommand{\sailccappend}{\label{zappend} \lstinputlisting[language=sail]{sail_latexcc/sailccappend.tex}} - -\newcommand{\sailccappendsixfour}{\label{zappendzysixfour} \lstinputlisting[language=sail]{sail_latexcc/sailccappendsixfour.tex}} - -\newcommand{\sailccbitvectoraccess}{\label{zbitvectorzyaccess} \lstinputlisting[language=sail]{sail_latexcc/sailccbitvectoraccess.tex}} - -\newcommand{\sailccplainvectoraccess}{\label{zplainzyvectorzyaccess} \lstinputlisting[language=sail]{sail_latexcc/sailccplainvectoraccess.tex}} - -\newcommand{\sailccvectoraccess}{\label{zvectorzyaccess} \lstinputlisting[language=sail]{sail_latexcc/sailccvectoraccess.tex}} - -\newcommand{\sailccbitvectorupdate}{\label{zbitvectorzyupdate} \lstinputlisting[language=sail]{sail_latexcc/sailccbitvectorupdate.tex}} - -\newcommand{\sailccplainvectorupdate}{\label{zplainzyvectorzyupdate} \lstinputlisting[language=sail]{sail_latexcc/sailccplainvectorupdate.tex}} - -\newcommand{\sailccvectorupdate}{\label{zvectorzyupdate} \lstinputlisting[language=sail]{sail_latexcc/sailccvectorupdate.tex}} - -\newcommand{\sailccaddbits}{\label{zaddzybits} \lstinputlisting[language=sail]{sail_latexcc/sailccaddbits.tex}} - -\newcommand{\sailccaddbitsint}{\label{zaddzybitszyint} \lstinputlisting[language=sail]{sail_latexcc/sailccaddbitsint.tex}} - -\newcommand{\sailccsailcczeightoperatorzzerozBzninev}{\label{zzeightoperatorzzerozBznine} \lstinputlisting[language=sail]{sail_latexcc/sailccsailcczeightoperatorzzerozBzninev.tex}} - -\newcommand{\sailccvectorsubrange}{\label{zvectorzysubrange} \lstinputlisting[language=sail]{sail_latexcc/sailccvectorsubrange.tex}} - -\newcommand{\sailccvectorupdatesubrange}{\label{zvectorzyupdatezysubrange} \lstinputlisting[language=sail]{sail_latexcc/sailccvectorupdatesubrange.tex}} - -\newcommand{\sailccgetsliceint}{\label{zgetzyslicezyint} \lstinputlisting[language=sail]{sail_latexcc/sailccgetsliceint.tex}} - -\newcommand{\sailccsetsliceint}{\label{zsetzyslicezyint} \lstinputlisting[language=sail]{sail_latexcc/sailccsetsliceint.tex}} - -\newcommand{\sailccsetslicebits}{\label{zsetzyslicezybits} \lstinputlisting[language=sail]{sail_latexcc/sailccsetslicebits.tex}} - -\newcommand{\sailccslice}{\label{zslice} \lstinputlisting[language=sail]{sail_latexcc/sailccslice.tex}} - -\newcommand{\sailccreplicatebits}{\label{zreplicatezybits} \lstinputlisting[language=sail]{sail_latexcc/sailccreplicatebits.tex}} - -\newcommand{\sailccunsigned}{\label{zunsigned} \lstinputlisting[language=sail]{sail_latexcc/sailccunsigned.tex}} - -\newcommand{\sailccsigned}{\label{zsigned} \lstinputlisting[language=sail]{sail_latexcc/sailccsigned.tex}} - -\newcommand{\sailcceqanything}{\label{zeqzyanything} \lstinputlisting[language=sail]{sail_latexcc/sailcceqanything.tex}} - -\newcommand{\sailcczeightoperatorzzerozJzJznine}{\label{zzeightoperatorzzerozJzJznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozJzJznine.tex}} - -\newcommand{\sailccnotvec}{\label{znotzyvec} \lstinputlisting[language=sail]{sail_latexcc/sailccnotvec.tex}} - -\newcommand{\sailcczW}{\label{zzW} \lstinputlisting[language=sail]{sail_latexcc/sailcczW.tex}} - -\newcommand{\sailccnot}{\label{znot} \lstinputlisting[language=sail]{sail_latexcc/sailccnot.tex}} - -\newcommand{\sailccneqvec}{\label{zneqzyvec} \lstinputlisting[language=sail]{sail_latexcc/sailccneqvec.tex}} - -\newcommand{\sailccfnneqvec}{\label{zneqzyvec} \lstinputlisting[language=sail]{sail_latexcc/sailccfnneqvec.tex}} - -\newcommand{\sailccneqanything}{\label{zneqzyanything} \lstinputlisting[language=sail]{sail_latexcc/sailccneqanything.tex}} - -\newcommand{\sailccfnneqanything}{\label{zneqzyanything} \lstinputlisting[language=sail]{sail_latexcc/sailccfnneqanything.tex}} - -\newcommand{\sailcczeightoperatorzzerozonezJznine}{\label{zzeightoperatorzzerozonezJznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozonezJznine.tex}} - -\newcommand{\sailccandbits}{\label{zandzybits} \lstinputlisting[language=sail]{sail_latexcc/sailccandbits.tex}} - -\newcommand{\sailcczeightoperatorzzerozsixznine}{\label{zzeightoperatorzzerozsixznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozsixznine.tex}} - -\newcommand{\sailccorbits}{\label{zorzybits} \lstinputlisting[language=sail]{sail_latexcc/sailccorbits.tex}} - -\newcommand{\sailcczeightoperatorzzerozUznine}{\label{zzeightoperatorzzerozUznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozUznine.tex}} - -\newcommand{\sailcccastunitvec}{\label{zcastzyunitzyvec} \lstinputlisting[language=sail]{sail_latexcc/sailcccastunitvec.tex}} - -\newcommand{\sailccfncastunitvec}{\label{zcastzyunitzyvec} \lstinputlisting[language=sail]{sail_latexcc/sailccfncastunitvec.tex}} - -\newcommand{\sailccprint}{\label{zprint} \lstinputlisting[language=sail]{sail_latexcc/sailccprint.tex}} - -\newcommand{\sailccprerrendline}{\label{zprerrzyendline} \lstinputlisting[language=sail]{sail_latexcc/sailccprerrendline.tex}} - -\newcommand{\sailccprerrstring}{\label{zprerrzystring} \lstinputlisting[language=sail]{sail_latexcc/sailccprerrstring.tex}} - -\newcommand{\sailccputchar}{\label{zputchar} \lstinputlisting[language=sail]{sail_latexcc/sailccputchar.tex}} - -\newcommand{\sailccconcatstr}{\label{zconcatzystr} \lstinputlisting[language=sail]{sail_latexcc/sailccconcatstr.tex}} - -\newcommand{\sailccstringofint}{\label{zstringzyofzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccstringofint.tex}} - -\newcommand{\sailccBitStr}{\label{zBitStr} \lstinputlisting[language=sail]{sail_latexcc/sailccBitStr.tex}} - -\newcommand{\sailccxorvec}{\label{zxorzyvec} \lstinputlisting[language=sail]{sail_latexcc/sailccxorvec.tex}} - -\newcommand{\sailccintpower}{\label{zintzypower} \lstinputlisting[language=sail]{sail_latexcc/sailccintpower.tex}} - -\newcommand{\sailcczeightoperatorzzerozQznine}{\label{zzeightoperatorzzerozQznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozQznine.tex}} - -\newcommand{\sailccaddrange}{\label{zaddzyrange} \lstinputlisting[language=sail]{sail_latexcc/sailccaddrange.tex}} - -\newcommand{\sailccaddvec}{\label{zaddzyvec} \lstinputlisting[language=sail]{sail_latexcc/sailccaddvec.tex}} - -\newcommand{\sailccaddvecint}{\label{zaddzyveczyint} \lstinputlisting[language=sail]{sail_latexcc/sailccaddvecint.tex}} - -\newcommand{\sailcczeightoperatorzzerozBznine}{\label{zzeightoperatorzzerozBznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozBznine.tex}} - -\newcommand{\sailccsubrange}{\label{zsubzyrange} \lstinputlisting[language=sail]{sail_latexcc/sailccsubrange.tex}} - -\newcommand{\sailccsubvec}{\label{zsubzyvec} \lstinputlisting[language=sail]{sail_latexcc/sailccsubvec.tex}} - -\newcommand{\sailccsubvecint}{\label{zsubzyveczyint} \lstinputlisting[language=sail]{sail_latexcc/sailccsubvecint.tex}} - -\newcommand{\sailccnegaterange}{\label{znegatezyrange} \lstinputlisting[language=sail]{sail_latexcc/sailccnegaterange.tex}} - -\newcommand{\sailcczeightoperatorzzerozDznine}{\label{zzeightoperatorzzerozDznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozDznine.tex}} - -\newcommand{\sailccnegate}{\label{znegate} \lstinputlisting[language=sail]{sail_latexcc/sailccnegate.tex}} - -\newcommand{\sailcczeightoperatorzzerozAznine}{\label{zzeightoperatorzzerozAznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozAznine.tex}} - -\newcommand{\sailccquotientnat}{\label{zquotientzynat} \lstinputlisting[language=sail]{sail_latexcc/sailccquotientnat.tex}} - -\newcommand{\sailccquotient}{\label{zquotient} \lstinputlisting[language=sail]{sail_latexcc/sailccquotient.tex}} - -\newcommand{\sailcczeightoperatorzzerozFznine}{\label{zzeightoperatorzzerozFznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozFznine.tex}} - -\newcommand{\sailccquotroundzzero}{\label{zquotzyroundzyzzero} \lstinputlisting[language=sail]{sail_latexcc/sailccquotroundzzero.tex}} - -\newcommand{\sailccremroundzzero}{\label{zremzyroundzyzzero} \lstinputlisting[language=sail]{sail_latexcc/sailccremroundzzero.tex}} - -\newcommand{\sailccmodulus}{\label{zmodulus} \lstinputlisting[language=sail]{sail_latexcc/sailccmodulus.tex}} - -\newcommand{\sailcczeightoperatorzzerozfiveznine}{\label{zzeightoperatorzzerozfiveznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozfiveznine.tex}} - -\newcommand{\sailccminnat}{\label{zminzynat} \lstinputlisting[language=sail]{sail_latexcc/sailccminnat.tex}} - -\newcommand{\sailccminint}{\label{zminzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccminint.tex}} - -\newcommand{\sailccmaxnat}{\label{zmaxzynat} \lstinputlisting[language=sail]{sail_latexcc/sailccmaxnat.tex}} - -\newcommand{\sailccmaxint}{\label{zmaxzyint} \lstinputlisting[language=sail]{sail_latexcc/sailccmaxint.tex}} - -\newcommand{\sailccminatom}{\label{zminzyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccminatom.tex}} - -\newcommand{\sailccmaxatom}{\label{zmaxzyatom} \lstinputlisting[language=sail]{sail_latexcc/sailccmaxatom.tex}} - -\newcommand{\sailccmin}{\label{zmin} \lstinputlisting[language=sail]{sail_latexcc/sailccmin.tex}} - -\newcommand{\sailccmax}{\label{zmax} \lstinputlisting[language=sail]{sail_latexcc/sailccmax.tex}} - -\newcommand{\sailccWriteRAM}{\label{zzyzyWriteRAM} \lstinputlisting[language=sail]{sail_latexcc/sailccWriteRAM.tex}} - -\newcommand{\sailccMIPSwrite}{\label{zzyzyMIPSzywrite} \lstinputlisting[language=sail]{sail_latexcc/sailccMIPSwrite.tex}} - -\newcommand{\sailccfnMIPSwrite}{\label{zzyzyMIPSzywrite} \lstinputlisting[language=sail]{sail_latexcc/sailccfnMIPSwrite.tex}} - -\newcommand{\sailccReadRAM}{\label{zzyzyReadRAM} \lstinputlisting[language=sail]{sail_latexcc/sailccReadRAM.tex}} - -\newcommand{\sailccMIPSread}{\label{zzyzyMIPSzyread} \lstinputlisting[language=sail]{sail_latexcc/sailccMIPSread.tex}} - -\newcommand{\sailccfnMIPSread}{\label{zzyzyMIPSzyread} \lstinputlisting[language=sail]{sail_latexcc/sailccfnMIPSread.tex}} - -\newcommand{\sailcczeightoperatorzzerozQzQznine}{\label{zzeightoperatorzzerozQzQznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozQzQznine.tex}} - -\newcommand{\sailccfnzeightoperatorzzerozQzQznine}{\label{zzeightoperatorzzerozQzQznine} \lstinputlisting[language=sail]{sail_latexcc/sailccfnzeightoperatorzzerozQzQznine.tex}} - -\newcommand{\sailccpowtwo}{\label{zpowtwo} \lstinputlisting[language=sail]{sail_latexcc/sailccpowtwo.tex}} - -\newcommand{\sailccmipssignextend}{\label{zmipszysignzyextend} \lstinputlisting[language=sail]{sail_latexcc/sailccmipssignextend.tex}} - -\newcommand{\sailccmipszzeroextend}{\label{zmipszyzzerozyextend} \lstinputlisting[language=sail]{sail_latexcc/sailccmipszzeroextend.tex}} - -\newcommand{\sailccfnmipssignextend}{\label{zmipszysignzyextend} \lstinputlisting[language=sail]{sail_latexcc/sailccfnmipssignextend.tex}} - -\newcommand{\sailccfnmipszzeroextend}{\label{zmipszyzzerozyextend} \lstinputlisting[language=sail]{sail_latexcc/sailccfnmipszzeroextend.tex}} - -\newcommand{\sailccsignextend}{\label{zsignzyextend} \lstinputlisting[language=sail]{sail_latexcc/sailccsignextend.tex}} - -\newcommand{\sailcczzeroextend}{\label{zzzerozyextend} \lstinputlisting[language=sail]{sail_latexcc/sailcczzeroextend.tex}} - -\newcommand{\sailcczzeros}{\label{zzzeros} \lstinputlisting[language=sail]{sail_latexcc/sailcczzeros.tex}} - -\newcommand{\sailccfnzzeros}{\label{zzzeros} \lstinputlisting[language=sail]{sail_latexcc/sailccfnzzeros.tex}} - -\newcommand{\sailccones}{\label{zones} \lstinputlisting[language=sail]{sail_latexcc/sailccones.tex}} - -\newcommand{\sailccfnones}{\label{zones} \lstinputlisting[language=sail]{sail_latexcc/sailccfnones.tex}} - -\newcommand{\sailcczeightoperatorzzerozIsznine}{\label{zzeightoperatorzzerozIzysznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozIsznine.tex}} - -\newcommand{\sailcczeightoperatorzzerozKzJsznine}{\label{zzeightoperatorzzerozKzJzysznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozKzJsznine.tex}} - -\newcommand{\sailcczeightoperatorzzerozIuznine}{\label{zzeightoperatorzzerozIzyuznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozIuznine.tex}} - -\newcommand{\sailcczeightoperatorzzerozKzJuznine}{\label{zzeightoperatorzzerozKzJzyuznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozKzJuznine.tex}} - -\newcommand{\sailccfnzeightoperatorzzerozIsznine}{\label{zzeightoperatorzzerozIzysznine} \lstinputlisting[language=sail]{sail_latexcc/sailccfnzeightoperatorzzerozIsznine.tex}} - -\newcommand{\sailccfnzeightoperatorzzerozKzJsznine}{\label{zzeightoperatorzzerozKzJzysznine} \lstinputlisting[language=sail]{sail_latexcc/sailccfnzeightoperatorzzerozKzJsznine.tex}} - -\newcommand{\sailccfnzeightoperatorzzerozIuznine}{\label{zzeightoperatorzzerozIzyuznine} \lstinputlisting[language=sail]{sail_latexcc/sailccfnzeightoperatorzzerozIuznine.tex}} - -\newcommand{\sailccfnzeightoperatorzzerozKzJuznine}{\label{zzeightoperatorzzerozKzJzyuznine} \lstinputlisting[language=sail]{sail_latexcc/sailccfnzeightoperatorzzerozKzJuznine.tex}} - -\newcommand{\sailccbooltobits}{\label{zboolzytozybits} \lstinputlisting[language=sail]{sail_latexcc/sailccbooltobits.tex}} - -\newcommand{\sailccfnbooltobits}{\label{zboolzytozybits} \lstinputlisting[language=sail]{sail_latexcc/sailccfnbooltobits.tex}} - -\newcommand{\sailccbittobool}{\label{zbitzytozybool} \lstinputlisting[language=sail]{sail_latexcc/sailccbittobool.tex}} - -\newcommand{\sailccfnbittobool}{\label{zbitzytozybool} \lstinputlisting[language=sail]{sail_latexcc/sailccfnbittobool.tex}} - -\newcommand{\sailccbitstobool}{\label{zbitszytozybool} \lstinputlisting[language=sail]{sail_latexcc/sailccbitstobool.tex}} - -\newcommand{\sailccfnbitstobool}{\label{zbitszytozybool} \lstinputlisting[language=sail]{sail_latexcc/sailccfnbitstobool.tex}} - -\newcommand{\sailccshiftbitsright}{\label{zshiftzybitszyright} \lstinputlisting[language=sail]{sail_latexcc/sailccshiftbitsright.tex}} - -\newcommand{\sailccshiftbitsleft}{\label{zshiftzybitszyleft} \lstinputlisting[language=sail]{sail_latexcc/sailccshiftbitsleft.tex}} - -\newcommand{\sailccshiftl}{\label{zshiftl} \lstinputlisting[language=sail]{sail_latexcc/sailccshiftl.tex}} - -\newcommand{\sailccshiftr}{\label{zshiftr} \lstinputlisting[language=sail]{sail_latexcc/sailccshiftr.tex}} - -\newcommand{\sailcczeightoperatorzzerozKzKznine}{\label{zzeightoperatorzzerozKzKznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozKzKznine.tex}} - -\newcommand{\sailcczeightoperatorzzerozIzIznine}{\label{zzeightoperatorzzerozIzIznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozIzIznine.tex}} - -\newcommand{\sailcczeightoperatorzzerozKzKsznine}{\label{zzeightoperatorzzerozKzKzysznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozKzKsznine.tex}} - -\newcommand{\sailcczeightoperatorzzerozAsznine}{\label{zzeightoperatorzzerozAzysznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozAsznine.tex}} - -\newcommand{\sailcczeightoperatorzzerozAuznine}{\label{zzeightoperatorzzerozAzyuznine} \lstinputlisting[language=sail]{sail_latexcc/sailcczeightoperatorzzerozAuznine.tex}} - -\newcommand{\sailcctobits}{\label{ztozybits} -\function{to\_bits} converts an integer to a bit vector of given length. If the integer is negative a twos-complement representation is used. If the integer is too large (or too negative) to fit in the requested length then it is truncated to the least significant bits. -\lstinputlisting[language=sail]{sail_latexcc/sailcctobits.tex}} - -\newcommand{\sailccfntobits}{\label{ztozybits} \lstinputlisting[language=sail]{sail_latexcc/sailccfntobits.tex}} - -\newcommand{\sailccmask}{\label{zmask} \lstinputlisting[language=sail]{sail_latexcc/sailccmask.tex}} - -\newcommand{\sailccfnmask}{\label{zmask} \lstinputlisting[language=sail]{sail_latexcc/sailccfnmask.tex}} - -\newcommand{\sailccgettimens}{\label{zgetzytimezyns} \lstinputlisting[language=sail]{sail_latexcc/sailccgettimens.tex}} - -\newcommand{\sailccCapLen}{\label{zCapLen} \lstinputlisting[language=sail]{sail_latexcc/sailccCapLen.tex}} - -\newcommand{\sailccuintsixfour}{\label{zuintsixfour} \lstinputlisting[language=sail]{sail_latexcc/sailccuintsixfour.tex}} - -\newcommand{\sailccCPtrCmpOp}{\label{zCPtrCmpOp} \lstinputlisting[language=sail]{sail_latexcc/sailccCPtrCmpOp.tex}} - -\newcommand{\sailccCPtrCmpOpofnum}{\label{zCPtrCmpOpzyofzynum} \lstinputlisting[language=sail]{sail_latexcc/sailccCPtrCmpOpofnum.tex}} - -\newcommand{\sailccfnCPtrCmpOpofnum}{\label{zCPtrCmpOpzyofzynum} \lstinputlisting[language=sail]{sail_latexcc/sailccfnCPtrCmpOpofnum.tex}} - -\newcommand{\sailccnumofCPtrCmpOp}{\label{znumzyofzyCPtrCmpOp} \lstinputlisting[language=sail]{sail_latexcc/sailccnumofCPtrCmpOp.tex}} - -\newcommand{\sailccfnnumofCPtrCmpOp}{\label{znumzyofzyCPtrCmpOp} \lstinputlisting[language=sail]{sail_latexcc/sailccfnnumofCPtrCmpOp.tex}} - -\newcommand{\sailccClearRegSet}{\label{zClearRegSet} \lstinputlisting[language=sail]{sail_latexcc/sailccClearRegSet.tex}} - -\newcommand{\sailccClearRegSetofnum}{\label{zClearRegSetzyofzynum} \lstinputlisting[language=sail]{sail_latexcc/sailccClearRegSetofnum.tex}} - -\newcommand{\sailccfnClearRegSetofnum}{\label{zClearRegSetzyofzynum} \lstinputlisting[language=sail]{sail_latexcc/sailccfnClearRegSetofnum.tex}} - -\newcommand{\sailccnumofClearRegSet}{\label{znumzyofzyClearRegSet} \lstinputlisting[language=sail]{sail_latexcc/sailccnumofClearRegSet.tex}} - -\newcommand{\sailccfnnumofClearRegSet}{\label{znumzyofzyClearRegSet} \lstinputlisting[language=sail]{sail_latexcc/sailccfnnumofClearRegSet.tex}} - -\newcommand{\sailccCapReg}{\label{zCapReg} \lstinputlisting[language=sail]{sail_latexcc/sailccCapReg.tex}} - -\newcommand{\sailccCapStruct}{\label{zCapStruct} \lstinputlisting[language=sail]{sail_latexcc/sailccCapStruct.tex}} - -\newcommand{\sailcccapRegToCapStruct}{\label{zcapRegToCapStruct} \lstinputlisting[language=sail]{sail_latexcc/sailcccapRegToCapStruct.tex}} - -\newcommand{\sailccfncapRegToCapStruct}{\label{zcapRegToCapStruct} \lstinputlisting[language=sail]{sail_latexcc/sailccfncapRegToCapStruct.tex}} - -\newcommand{\sailccgetCapHardPerms}{\label{zgetCapHardPerms} \lstinputlisting[language=sail]{sail_latexcc/sailccgetCapHardPerms.tex}} - -\newcommand{\sailccfngetCapHardPerms}{\label{zgetCapHardPerms} \lstinputlisting[language=sail]{sail_latexcc/sailccfngetCapHardPerms.tex}} - -\newcommand{\sailcccapStructToMemBitsonetwoeight}{\label{zcapStructToMemBitsonetwoeight} \lstinputlisting[language=sail]{sail_latexcc/sailcccapStructToMemBitsonetwoeight.tex}} - -\newcommand{\sailccfncapStructToMemBitsonetwoeight}{\label{zcapStructToMemBitsonetwoeight} \lstinputlisting[language=sail]{sail_latexcc/sailccfncapStructToMemBitsonetwoeight.tex}} - -\newcommand{\sailcccapStructToCapReg}{\label{zcapStructToCapReg} \lstinputlisting[language=sail]{sail_latexcc/sailcccapStructToCapReg.tex}} - -\newcommand{\sailccfncapStructToCapReg}{\label{zcapStructToCapReg} \lstinputlisting[language=sail]{sail_latexcc/sailccfncapStructToCapReg.tex}} - -\newcommand{\sailccmemBitsToCapBitsonetwoeight}{\label{zmemBitsToCapBitsonetwoeight} \lstinputlisting[language=sail]{sail_latexcc/sailccmemBitsToCapBitsonetwoeight.tex}} - -\newcommand{\sailccfnmemBitsToCapBitsonetwoeight}{\label{zmemBitsToCapBitsonetwoeight} \lstinputlisting[language=sail]{sail_latexcc/sailccfnmemBitsToCapBitsonetwoeight.tex}} - -\newcommand{\sailcccapStructToMemBits}{\label{zcapStructToMemBits} \lstinputlisting[language=sail]{sail_latexcc/sailcccapStructToMemBits.tex}} - -\newcommand{\sailccfncapStructToMemBits}{\label{zcapStructToMemBits} \lstinputlisting[language=sail]{sail_latexcc/sailccfncapStructToMemBits.tex}} - -\newcommand{\sailccmemBitsToCapBits}{\label{zmemBitsToCapBits} \lstinputlisting[language=sail]{sail_latexcc/sailccmemBitsToCapBits.tex}} - -\newcommand{\sailccfnmemBitsToCapBits}{\label{zmemBitsToCapBits} \lstinputlisting[language=sail]{sail_latexcc/sailccfnmemBitsToCapBits.tex}} - -\newcommand{\sailccgetCapPerms}{\label{zgetCapPerms} \lstinputlisting[language=sail]{sail_latexcc/sailccgetCapPerms.tex}} - -\newcommand{\sailccfngetCapPerms}{\label{zgetCapPerms} \lstinputlisting[language=sail]{sail_latexcc/sailccfngetCapPerms.tex}} - -\newcommand{\sailccsetCapPerms}{\label{zsetCapPerms} \lstinputlisting[language=sail]{sail_latexcc/sailccsetCapPerms.tex}} - -\newcommand{\sailccfnsetCapPerms}{\label{zsetCapPerms} \lstinputlisting[language=sail]{sail_latexcc/sailccfnsetCapPerms.tex}} - -\newcommand{\sailccsealCap}{\label{zsealCap} \lstinputlisting[language=sail]{sail_latexcc/sailccsealCap.tex}} - -\newcommand{\sailccfnsealCap}{\label{zsealCap} \lstinputlisting[language=sail]{sail_latexcc/sailccfnsealCap.tex}} - -\newcommand{\sailccatopcorrection}{\label{zazytopzycorrection} \lstinputlisting[language=sail]{sail_latexcc/sailccatopcorrection.tex}} - -\newcommand{\sailccfnatopcorrection}{\label{zazytopzycorrection} \lstinputlisting[language=sail]{sail_latexcc/sailccfnatopcorrection.tex}} - -\newcommand{\sailccgetCapBase}{\label{zgetCapBase} \lstinputlisting[language=sail]{sail_latexcc/sailccgetCapBase.tex}} - -\newcommand{\sailccfngetCapBase}{\label{zgetCapBase} \lstinputlisting[language=sail]{sail_latexcc/sailccfngetCapBase.tex}} - -\newcommand{\sailccgetCapTop}{\label{zgetCapTop} \lstinputlisting[language=sail]{sail_latexcc/sailccgetCapTop.tex}} - -\newcommand{\sailccfngetCapTop}{\label{zgetCapTop} \lstinputlisting[language=sail]{sail_latexcc/sailccfngetCapTop.tex}} - -\newcommand{\sailccgetCapOffset}{\label{zgetCapOffset} \lstinputlisting[language=sail]{sail_latexcc/sailccgetCapOffset.tex}} - -\newcommand{\sailccfngetCapOffset}{\label{zgetCapOffset} \lstinputlisting[language=sail]{sail_latexcc/sailccfngetCapOffset.tex}} - -\newcommand{\sailccgetCapLength}{\label{zgetCapLength} \lstinputlisting[language=sail]{sail_latexcc/sailccgetCapLength.tex}} - -\newcommand{\sailccfngetCapLength}{\label{zgetCapLength} \lstinputlisting[language=sail]{sail_latexcc/sailccfngetCapLength.tex}} - -\newcommand{\sailccgetCapCursor}{\label{zgetCapCursor} \lstinputlisting[language=sail]{sail_latexcc/sailccgetCapCursor.tex}} - -\newcommand{\sailccfngetCapCursor}{\label{zgetCapCursor} \lstinputlisting[language=sail]{sail_latexcc/sailccfngetCapCursor.tex}} - -\newcommand{\sailccfastRepCheck}{\label{zfastRepCheck} \lstinputlisting[language=sail]{sail_latexcc/sailccfastRepCheck.tex}} - -\newcommand{\sailccfnfastRepCheck}{\label{zfastRepCheck} \lstinputlisting[language=sail]{sail_latexcc/sailccfnfastRepCheck.tex}} - -\newcommand{\sailccsetCapOffset}{\label{zsetCapOffset} \lstinputlisting[language=sail]{sail_latexcc/sailccsetCapOffset.tex}} - -\newcommand{\sailccfnsetCapOffset}{\label{zsetCapOffset} \lstinputlisting[language=sail]{sail_latexcc/sailccfnsetCapOffset.tex}} - -\newcommand{\sailccincCapOffset}{\label{zincCapOffset} \lstinputlisting[language=sail]{sail_latexcc/sailccincCapOffset.tex}} - -\newcommand{\sailccfnincCapOffset}{\label{zincCapOffset} \lstinputlisting[language=sail]{sail_latexcc/sailccfnincCapOffset.tex}} - -\newcommand{\sailccHighestSetBit}{\label{zHighestSetBit} \lstinputlisting[language=sail]{sail_latexcc/sailccHighestSetBit.tex}} - -\newcommand{\sailccfnHighestSetBit}{\label{zHighestSetBit} \lstinputlisting[language=sail]{sail_latexcc/sailccfnHighestSetBit.tex}} - -\newcommand{\sailccroundUp}{\label{zroundUp} \lstinputlisting[language=sail]{sail_latexcc/sailccroundUp.tex}} - -\newcommand{\sailccfnroundUp}{\label{zroundUp} \lstinputlisting[language=sail]{sail_latexcc/sailccfnroundUp.tex}} - -\newcommand{\sailcccomputeE}{\label{zcomputeE} \lstinputlisting[language=sail]{sail_latexcc/sailcccomputeE.tex}} - -\newcommand{\sailccfncomputeE}{\label{zcomputeE} \lstinputlisting[language=sail]{sail_latexcc/sailccfncomputeE.tex}} - -\newcommand{\sailccsetCapBounds}{\label{zsetCapBounds} \lstinputlisting[language=sail]{sail_latexcc/sailccsetCapBounds.tex}} - -\newcommand{\sailccfnsetCapBounds}{\label{zsetCapBounds} \lstinputlisting[language=sail]{sail_latexcc/sailccfnsetCapBounds.tex}} - -\newcommand{\sailccinttocap}{\label{zintzytozycap} \lstinputlisting[language=sail]{sail_latexcc/sailccinttocap.tex}} - -\newcommand{\sailccfninttocap}{\label{zintzytozycap} \lstinputlisting[language=sail]{sail_latexcc/sailccfninttocap.tex}} - diff --git a/cheri/sail_latexcc/sailccBitStr.tex b/cheri/sail_latexcc/sailccBitStr.tex deleted file mode 100644 index a0d408ab..00000000 --- a/cheri/sail_latexcc/sailccBitStr.tex +++ /dev/null @@ -1 +0,0 @@ -val BitStr = "string_of_bits" : forall 'n. #\hyperref[zbits]{bits}#('n) -> string diff --git a/cheri/sail_latexcc/sailccCPtrCmpOp.tex b/cheri/sail_latexcc/sailccCPtrCmpOp.tex deleted file mode 100644 index cb0a73ae..00000000 --- a/cheri/sail_latexcc/sailccCPtrCmpOp.tex +++ /dev/null @@ -1,10 +0,0 @@ -enum CPtrCmpOp = { - CEQ, - CNE, - CLT, - CLE, - CLTU, - CLEU, - CEXEQ, - CNEXEQ -} diff --git a/cheri/sail_latexcc/sailccCPtrCmpOpofnum.tex b/cheri/sail_latexcc/sailccCPtrCmpOpofnum.tex deleted file mode 100644 index bd6ca31c..00000000 --- a/cheri/sail_latexcc/sailccCPtrCmpOpofnum.tex +++ /dev/null @@ -1 +0,0 @@ -val CPtrCmpOp_of_num : forall ('e : Int), 0 <= 'e & 'e <= 7. atom('e) -> CPtrCmpOp diff --git a/cheri/sail_latexcc/sailccCapLen.tex b/cheri/sail_latexcc/sailccCapLen.tex deleted file mode 100644 index 812f45ff..00000000 --- a/cheri/sail_latexcc/sailccCapLen.tex +++ /dev/null @@ -1 +0,0 @@ -type CapLen = range(0, 2 ^ 65) diff --git a/cheri/sail_latexcc/sailccCapReg.tex b/cheri/sail_latexcc/sailccCapReg.tex deleted file mode 100644 index 702141d9..00000000 --- a/cheri/sail_latexcc/sailccCapReg.tex +++ /dev/null @@ -1 +0,0 @@ -type CapReg = #\hyperref[zbits]{bits}#(129) diff --git a/cheri/sail_latexcc/sailccCapStruct.tex b/cheri/sail_latexcc/sailccCapStruct.tex deleted file mode 100644 index b1df7ec5..00000000 --- a/cheri/sail_latexcc/sailccCapStruct.tex +++ /dev/null @@ -1,22 +0,0 @@ -struct CapStruct = { - tag : bool , - uperms : #\hyperref[zbits]{bits}#(4) , - access_system_regs : bool , - permit_unseal : bool , - permit_ccall : bool , - permit_seal : bool , - permit_store_local_cap : bool , - permit_store_cap : bool , - permit_load_cap : bool , - permit_store : bool , - permit_load : bool , - permit_execute : bool , - global : bool , - reserved : #\hyperref[zbits]{bits}#(2) , - E : #\hyperref[zbits]{bits}#(6) , - sealed : bool , - B : #\hyperref[zbits]{bits}#(20), - T : #\hyperref[zbits]{bits}#(20), - otype : #\hyperref[zbits]{bits}#(24), - address : #\hyperref[zbits]{bits}#(64) -} diff --git a/cheri/sail_latexcc/sailccClearRegSet.tex b/cheri/sail_latexcc/sailccClearRegSet.tex deleted file mode 100644 index c04ea7d4..00000000 --- a/cheri/sail_latexcc/sailccClearRegSet.tex +++ /dev/null @@ -1,6 +0,0 @@ -enum ClearRegSet = { -GPLo, -GPHi, -CLo, -CHi -} diff --git a/cheri/sail_latexcc/sailccClearRegSetofnum.tex b/cheri/sail_latexcc/sailccClearRegSetofnum.tex deleted file mode 100644 index c73d36d9..00000000 --- a/cheri/sail_latexcc/sailccClearRegSetofnum.tex +++ /dev/null @@ -1 +0,0 @@ -val ClearRegSet_of_num : forall ('e : Int), 0 <= 'e & 'e <= 3. atom('e) -> ClearRegSet diff --git a/cheri/sail_latexcc/sailccHighestSetBit.tex b/cheri/sail_latexcc/sailccHighestSetBit.tex deleted file mode 100644 index eb8a5e36..00000000 --- a/cheri/sail_latexcc/sailccHighestSetBit.tex +++ /dev/null @@ -1 +0,0 @@ -val HighestSetBit : forall 'N , 'N >= 2. #\hyperref[zbits]{bits}#('N) -> {'n, 0 <= 'n < 'N . (bool, atom('n))} diff --git a/cheri/sail_latexcc/sailccMIPSread.tex b/cheri/sail_latexcc/sailccMIPSread.tex deleted file mode 100644 index 92ca59cc..00000000 --- a/cheri/sail_latexcc/sailccMIPSread.tex +++ /dev/null @@ -1 +0,0 @@ -val __MIPS_read : forall 'n, 'n >= 0. (#\hyperref[zbits]{bits}#(64), atom('n)) -> #\hyperref[zbits]{bits}#(8 * 'n) effect {rmem} diff --git a/cheri/sail_latexcc/sailccMIPSwrite.tex b/cheri/sail_latexcc/sailccMIPSwrite.tex deleted file mode 100644 index cc67fa20..00000000 --- a/cheri/sail_latexcc/sailccMIPSwrite.tex +++ /dev/null @@ -1 +0,0 @@ -val __MIPS_write : forall 'n. (#\hyperref[zbits]{bits}#(64), atom('n), #\hyperref[zbits]{bits}#(8 * 'n)) -> unit effect {wmv} diff --git a/cheri/sail_latexcc/sailccReadRAM.tex b/cheri/sail_latexcc/sailccReadRAM.tex deleted file mode 100644 index 68d629a6..00000000 --- a/cheri/sail_latexcc/sailccReadRAM.tex +++ /dev/null @@ -1,2 +0,0 @@ -val __ReadRAM = "read_ram" : forall 'n 'm, 'n >= 0. - (atom('m), atom('n), #\hyperref[zbits]{bits}#('m), #\hyperref[zbits]{bits}#('m)) -> #\hyperref[zbits]{bits}#(8 * 'n) effect {rmem} diff --git a/cheri/sail_latexcc/sailccWriteRAM.tex b/cheri/sail_latexcc/sailccWriteRAM.tex deleted file mode 100644 index 2ed4aca2..00000000 --- a/cheri/sail_latexcc/sailccWriteRAM.tex +++ /dev/null @@ -1,2 +0,0 @@ -val __WriteRAM = "write_ram" : forall 'n 'm. - (atom('m), atom('n), #\hyperref[zbits]{bits}#('m), #\hyperref[zbits]{bits}#('m), #\hyperref[zbits]{bits}#(8 * 'n)) -> bool effect {wmv} diff --git a/cheri/sail_latexcc/sailccabsatom.tex b/cheri/sail_latexcc/sailccabsatom.tex deleted file mode 100644 index 5164ef32..00000000 --- a/cheri/sail_latexcc/sailccabsatom.tex +++ /dev/null @@ -1,7 +0,0 @@ -val abs_atom = { - smt : "abs", - ocaml: "abs_int", - lem: "abs_int", - c: "abs_int", - coq: "abs_with_eq" -} : forall 'n. atom('n) -> {'o, 'o = #\hyperref[zabszyatom]{abs\_atom}#('n). atom('o)} diff --git a/cheri/sail_latexcc/sailccabsint.tex b/cheri/sail_latexcc/sailccabsint.tex deleted file mode 100644 index d3b67cfb..00000000 --- a/cheri/sail_latexcc/sailccabsint.tex +++ /dev/null @@ -1,6 +0,0 @@ -val abs_int = { - smt : "abs", - ocaml: "abs_int", - lem: "abs_int", - coq: "Z.abs" -} : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccaddatom.tex b/cheri/sail_latexcc/sailccaddatom.tex deleted file mode 100644 index 8b6ac810..00000000 --- a/cheri/sail_latexcc/sailccaddatom.tex +++ /dev/null @@ -1,2 +0,0 @@ -val add_atom = {ocaml: "add_int", lem: "integerAdd", c: "add_int", coq: "Z.add"} : forall 'n 'm. - (atom('n), atom('m)) -> atom('n + 'm) diff --git a/cheri/sail_latexcc/sailccaddbits.tex b/cheri/sail_latexcc/sailccaddbits.tex deleted file mode 100644 index 95f653d1..00000000 --- a/cheri/sail_latexcc/sailccaddbits.tex +++ /dev/null @@ -1,6 +0,0 @@ -val add_bits = { - ocaml: "add_vec", - lem: "add_vec", - c: "add_bits", - coq: "add_vec" -} : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccaddbitsint.tex b/cheri/sail_latexcc/sailccaddbitsint.tex deleted file mode 100644 index ee9a8aa2..00000000 --- a/cheri/sail_latexcc/sailccaddbitsint.tex +++ /dev/null @@ -1,6 +0,0 @@ -val add_bits_int = { - ocaml: "add_vec_int", - lem: "add_vec_int", - c: "add_bits_int", - coq: "add_vec_int" -} : forall 'n. (#\hyperref[zbits]{bits}#('n), int) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccaddint.tex b/cheri/sail_latexcc/sailccaddint.tex deleted file mode 100644 index 9fe5b078..00000000 --- a/cheri/sail_latexcc/sailccaddint.tex +++ /dev/null @@ -1 +0,0 @@ -val add_int = {ocaml: "add_int", lem: "integerAdd", c: "add_int", coq: "Z.add"} : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccaddrange.tex b/cheri/sail_latexcc/sailccaddrange.tex deleted file mode 100644 index fbf498b1..00000000 --- a/cheri/sail_latexcc/sailccaddrange.tex +++ /dev/null @@ -1,2 +0,0 @@ -val add_range = {ocaml: "add_int", lem: "integerAdd", coq: "add_range", c: "add_int"} : forall 'n 'm 'o 'p. - (range('n, 'm), range('o, 'p)) -> range('n + 'o, 'm + 'p) diff --git a/cheri/sail_latexcc/sailccaddvec.tex b/cheri/sail_latexcc/sailccaddvec.tex deleted file mode 100644 index bb625afe..00000000 --- a/cheri/sail_latexcc/sailccaddvec.tex +++ /dev/null @@ -1 +0,0 @@ -val add_vec = "add_vec" : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccaddvecint.tex b/cheri/sail_latexcc/sailccaddvecint.tex deleted file mode 100644 index 189ad4aa..00000000 --- a/cheri/sail_latexcc/sailccaddvecint.tex +++ /dev/null @@ -1 +0,0 @@ -val add_vec_int = "add_vec_int" : forall 'n. (#\hyperref[zbits]{bits}#('n), int) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccandbits.tex b/cheri/sail_latexcc/sailccandbits.tex deleted file mode 100644 index 8e35bd5b..00000000 --- a/cheri/sail_latexcc/sailccandbits.tex +++ /dev/null @@ -1 +0,0 @@ -val and_bits = {c:"and_bits", _: "and_vec"} : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccandbool.tex b/cheri/sail_latexcc/sailccandbool.tex deleted file mode 100644 index 926dce9f..00000000 --- a/cheri/sail_latexcc/sailccandbool.tex +++ /dev/null @@ -1 +0,0 @@ -val and_bool = {coq: "andb", _: "and_bool"} : (bool, bool) -> bool diff --git a/cheri/sail_latexcc/sailccappend.tex b/cheri/sail_latexcc/sailccappend.tex deleted file mode 100644 index 56c12116..00000000 --- a/cheri/sail_latexcc/sailccappend.tex +++ /dev/null @@ -1 +0,0 @@ -overload append = {bitvector_concat}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccappendsixfour.tex b/cheri/sail_latexcc/sailccappendsixfour.tex deleted file mode 100644 index 633593b3..00000000 --- a/cheri/sail_latexcc/sailccappendsixfour.tex +++ /dev/null @@ -1 +0,0 @@ -val "append_64" : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#(64)) -> #\hyperref[zbits]{bits}#('n + 64) diff --git a/cheri/sail_latexcc/sailccatopcorrection.tex b/cheri/sail_latexcc/sailccatopcorrection.tex deleted file mode 100644 index 13bbaf7b..00000000 --- a/cheri/sail_latexcc/sailccatopcorrection.tex +++ /dev/null @@ -1 +0,0 @@ -val a_top_correction : (bits(20), bits(20), bits(20)) -> bits(65) diff --git a/cheri/sail_latexcc/sailccbits.tex b/cheri/sail_latexcc/sailccbits.tex deleted file mode 100644 index 88255b5a..00000000 --- a/cheri/sail_latexcc/sailccbits.tex +++ /dev/null @@ -1 +0,0 @@ -type #\hyperref[zbits]{bits}# ('n : Int) = vector('n, dec, bit) diff --git a/cheri/sail_latexcc/sailccbitstobool.tex b/cheri/sail_latexcc/sailccbitstobool.tex deleted file mode 100644 index 17cb3483..00000000 --- a/cheri/sail_latexcc/sailccbitstobool.tex +++ /dev/null @@ -1 +0,0 @@ -val cast bits_to_bool : #\hyperref[zbits]{bits}#(1) -> bool diff --git a/cheri/sail_latexcc/sailccbittobool.tex b/cheri/sail_latexcc/sailccbittobool.tex deleted file mode 100644 index 13a2dfb8..00000000 --- a/cheri/sail_latexcc/sailccbittobool.tex +++ /dev/null @@ -1 +0,0 @@ -val cast bit_to_bool : bit -> bool diff --git a/cheri/sail_latexcc/sailccbitvectoraccess.tex b/cheri/sail_latexcc/sailccbitvectoraccess.tex deleted file mode 100644 index 4bb98eb8..00000000 --- a/cheri/sail_latexcc/sailccbitvectoraccess.tex +++ /dev/null @@ -1,6 +0,0 @@ -val bitvector_access = { - ocaml: "access", - lem: "access_vec_dec", - coq: "access_vec_dec", - c: "vector_access" -} : forall ('n : Int), 'n >= 0. (#\hyperref[zbits]{bits}#('n), int) -> bit diff --git a/cheri/sail_latexcc/sailccbitvectorconcat.tex b/cheri/sail_latexcc/sailccbitvectorconcat.tex deleted file mode 100644 index afc03901..00000000 --- a/cheri/sail_latexcc/sailccbitvectorconcat.tex +++ /dev/null @@ -1,2 +0,0 @@ -val bitvector_concat = {ocaml: "append", lem: "concat_vec", c: "append", coq: "concat_vec"} : forall ('n : Int) ('m : Int). - (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('m)) -> #\hyperref[zbits]{bits}#('n + 'm) diff --git a/cheri/sail_latexcc/sailccbitvectorlength.tex b/cheri/sail_latexcc/sailccbitvectorlength.tex deleted file mode 100644 index ac601acd..00000000 --- a/cheri/sail_latexcc/sailccbitvectorlength.tex +++ /dev/null @@ -1 +0,0 @@ -val bitvector_length = {coq: "length_mword", _:"length"} : forall 'n. #\hyperref[zbits]{bits}#('n) -> atom('n) diff --git a/cheri/sail_latexcc/sailccbitvectorupdate.tex b/cheri/sail_latexcc/sailccbitvectorupdate.tex deleted file mode 100644 index 6524146e..00000000 --- a/cheri/sail_latexcc/sailccbitvectorupdate.tex +++ /dev/null @@ -1,6 +0,0 @@ -val bitvector_update = { - ocaml: "update", - lem: "update_vec_dec", - coq: "update_vec_dec", - c: "vector_update" -} : forall 'n, 'n >= 0. (#\hyperref[zbits]{bits}#('n), int, bit) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccbooltobits.tex b/cheri/sail_latexcc/sailccbooltobits.tex deleted file mode 100644 index 711ab763..00000000 --- a/cheri/sail_latexcc/sailccbooltobits.tex +++ /dev/null @@ -1 +0,0 @@ -val cast bool_to_bits : bool -> #\hyperref[zbits]{bits}#(1) diff --git a/cheri/sail_latexcc/sailcccapRegToCapStruct.tex b/cheri/sail_latexcc/sailcccapRegToCapStruct.tex deleted file mode 100644 index bd64d554..00000000 --- a/cheri/sail_latexcc/sailcccapRegToCapStruct.tex +++ /dev/null @@ -1 +0,0 @@ -val capRegToCapStruct : CapReg -> CapStruct diff --git a/cheri/sail_latexcc/sailcccapStructToCapReg.tex b/cheri/sail_latexcc/sailcccapStructToCapReg.tex deleted file mode 100644 index b5409845..00000000 --- a/cheri/sail_latexcc/sailcccapStructToCapReg.tex +++ /dev/null @@ -1 +0,0 @@ -val capStructToCapReg : CapStruct -> CapReg diff --git a/cheri/sail_latexcc/sailcccapStructToMemBits.tex b/cheri/sail_latexcc/sailcccapStructToMemBits.tex deleted file mode 100644 index 4a49e9c0..00000000 --- a/cheri/sail_latexcc/sailcccapStructToMemBits.tex +++ /dev/null @@ -1 +0,0 @@ -val capStructToMemBits : CapStruct -> bits(128) diff --git a/cheri/sail_latexcc/sailcccapStructToMemBitsonetwoeight.tex b/cheri/sail_latexcc/sailcccapStructToMemBitsonetwoeight.tex deleted file mode 100644 index 8f3a8d0f..00000000 --- a/cheri/sail_latexcc/sailcccapStructToMemBitsonetwoeight.tex +++ /dev/null @@ -1 +0,0 @@ -val capStructToMemBits128 : CapStruct -> bits(128) diff --git a/cheri/sail_latexcc/sailcccastunitvec.tex b/cheri/sail_latexcc/sailcccastunitvec.tex deleted file mode 100644 index e0391ded..00000000 --- a/cheri/sail_latexcc/sailcccastunitvec.tex +++ /dev/null @@ -1 +0,0 @@ -val cast cast_unit_vec : bit -> #\hyperref[zbits]{bits}#(1) diff --git a/cheri/sail_latexcc/sailcccomputeE.tex b/cheri/sail_latexcc/sailcccomputeE.tex deleted file mode 100644 index 893cea49..00000000 --- a/cheri/sail_latexcc/sailcccomputeE.tex +++ /dev/null @@ -1 +0,0 @@ -val computeE : bits(65) -> range(0, 48) effect {escape} diff --git a/cheri/sail_latexcc/sailccconcatstr.tex b/cheri/sail_latexcc/sailccconcatstr.tex deleted file mode 100644 index 07556728..00000000 --- a/cheri/sail_latexcc/sailccconcatstr.tex +++ /dev/null @@ -1 +0,0 @@ -val concat_str = {lem: "stringAppend", coq: "String.append", _: "concat_str"} : (string, string) -> string diff --git a/cheri/sail_latexcc/sailccdiv.tex b/cheri/sail_latexcc/sailccdiv.tex deleted file mode 100644 index 58318fe9..00000000 --- a/cheri/sail_latexcc/sailccdiv.tex +++ /dev/null @@ -1,7 +0,0 @@ -val div = { - smt: "div", - ocaml: "quotient", - lem: "integerDiv", - c: "tdiv_int", - coq: "div_with_eq" -} : forall 'n 'm. (atom('n), atom('m)) -> {'o, 'o = #\hyperref[zdiv]{div}#('n, 'm). atom('o)} diff --git a/cheri/sail_latexcc/sailccdivint.tex b/cheri/sail_latexcc/sailccdivint.tex deleted file mode 100644 index 34ae6121..00000000 --- a/cheri/sail_latexcc/sailccdivint.tex +++ /dev/null @@ -1,7 +0,0 @@ -val div_int = { - smt: "div", - ocaml: "quotient", - lem: "integerDiv", - c: "tdiv_int", - coq: "Z.quot" -} : (int, int) -> int diff --git a/cheri/sail_latexcc/sailcceqanything.tex b/cheri/sail_latexcc/sailcceqanything.tex deleted file mode 100644 index 9b5d3c92..00000000 --- a/cheri/sail_latexcc/sailcceqanything.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_anything = {ocaml: "(#\hyperref[zfun]{fun}# (x, y) -> x = y)", lem: "eq", coq: "generic_eq", _:"eq_anything"} : forall ('a : Type). ('a, 'a) -> bool diff --git a/cheri/sail_latexcc/sailcceqatom.tex b/cheri/sail_latexcc/sailcceqatom.tex deleted file mode 100644 index 0325ab15..00000000 --- a/cheri/sail_latexcc/sailcceqatom.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_atom = {ocaml: "eq_int", lem: "eq", c: "eq_int", coq: "Z.eqb"} : forall 'n 'm. (atom('n), atom('m)) -> bool diff --git a/cheri/sail_latexcc/sailcceqbit.tex b/cheri/sail_latexcc/sailcceqbit.tex deleted file mode 100644 index 205d3436..00000000 --- a/cheri/sail_latexcc/sailcceqbit.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_bit = { lem : "eq", _ : "eq_bit" } : (bit, bit) -> bool diff --git a/cheri/sail_latexcc/sailcceqbits.tex b/cheri/sail_latexcc/sailcceqbits.tex deleted file mode 100644 index e78ed19a..00000000 --- a/cheri/sail_latexcc/sailcceqbits.tex +++ /dev/null @@ -1,6 +0,0 @@ -val eq_bits = { - ocaml: "eq_list", - lem: "eq_vec", - c: "eq_bits", - coq: "eq_vec" -} : forall 'n. (vector('n, dec, bit), vector('n, dec, bit)) -> bool diff --git a/cheri/sail_latexcc/sailcceqbittwo.tex b/cheri/sail_latexcc/sailcceqbittwo.tex deleted file mode 100644 index 59353940..00000000 --- a/cheri/sail_latexcc/sailcceqbittwo.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_bit2 = "eq_bit" : (bit, bit) -> bool diff --git a/cheri/sail_latexcc/sailcceqbool.tex b/cheri/sail_latexcc/sailcceqbool.tex deleted file mode 100644 index 4d2c346b..00000000 --- a/cheri/sail_latexcc/sailcceqbool.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_bool = {ocaml: "eq_bool", lem: "eq", c: "eq_bool", coq: "Bool.eqb"} : (bool, bool) -> bool diff --git a/cheri/sail_latexcc/sailcceqint.tex b/cheri/sail_latexcc/sailcceqint.tex deleted file mode 100644 index 4c0462c1..00000000 --- a/cheri/sail_latexcc/sailcceqint.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_int = {ocaml: "eq_int", lem: "eq", c: "eq_int", coq: "Z.eqb"} : (int, int) -> bool diff --git a/cheri/sail_latexcc/sailcceqrange.tex b/cheri/sail_latexcc/sailcceqrange.tex deleted file mode 100644 index 7f1cd5f2..00000000 --- a/cheri/sail_latexcc/sailcceqrange.tex +++ /dev/null @@ -1 +0,0 @@ -val eq_range = {ocaml: "eq_int", lem: "eq", c: "eq_int", coq: "eq_range"} : forall 'n 'm 'o 'p. (range('n, 'm), range('o, 'p)) -> bool diff --git a/cheri/sail_latexcc/sailccfastRepCheck.tex b/cheri/sail_latexcc/sailccfastRepCheck.tex deleted file mode 100644 index 2dd665fb..00000000 --- a/cheri/sail_latexcc/sailccfastRepCheck.tex +++ /dev/null @@ -1 +0,0 @@ -val fastRepCheck : (CapStruct, bits(64)) -> bool diff --git a/cheri/sail_latexcc/sailccfnCPtrCmpOpofnum.tex b/cheri/sail_latexcc/sailccfnCPtrCmpOpofnum.tex deleted file mode 100644 index 6ab563f3..00000000 --- a/cheri/sail_latexcc/sailccfnCPtrCmpOpofnum.tex +++ /dev/null @@ -1,10 +0,0 @@ -function CPtrCmpOp_of_num arg# = match arg# { - 0 => CEQ, - 1 => CNE, - 2 => CLT, - 3 => CLE, - 4 => CLTU, - 5 => CLEU, - 6 => CEXEQ, - _ => CNEXEQ -} diff --git a/cheri/sail_latexcc/sailccfnClearRegSetofnum.tex b/cheri/sail_latexcc/sailccfnClearRegSetofnum.tex deleted file mode 100644 index edfe64e3..00000000 --- a/cheri/sail_latexcc/sailccfnClearRegSetofnum.tex +++ /dev/null @@ -1,6 +0,0 @@ -function ClearRegSet_of_num arg# = match arg# { - 0 => GPLo, - 1 => GPHi, - 2 => CLo, - _ => CHi -} diff --git a/cheri/sail_latexcc/sailccfnHighestSetBit.tex b/cheri/sail_latexcc/sailccfnHighestSetBit.tex deleted file mode 100644 index dbbc5b49..00000000 --- a/cheri/sail_latexcc/sailccfnHighestSetBit.tex +++ /dev/null @@ -1,5 +0,0 @@ -function HighestSetBit x = { - foreach (i #\hyperref[zfrom]{from}# ('N - 1) to 0 by 1 in dec) - if [x[i]] == 0b1 then return (true, i); - return (false, 0) -} diff --git a/cheri/sail_latexcc/sailccfnMIPSread.tex b/cheri/sail_latexcc/sailccfnMIPSread.tex deleted file mode 100644 index ee937856..00000000 --- a/cheri/sail_latexcc/sailccfnMIPSread.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zzyzyMIPSzyread]{\_\_MIPS\_read}# (addr, width) = #\hyperref[zzyzyReadRAM]{\_\_ReadRAM}#(64, width, 0x0000_0000_0000_0000, addr) diff --git a/cheri/sail_latexcc/sailccfnMIPSwrite.tex b/cheri/sail_latexcc/sailccfnMIPSwrite.tex deleted file mode 100644 index 5e81f335..00000000 --- a/cheri/sail_latexcc/sailccfnMIPSwrite.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zzyzyMIPSzywrite]{\_\_MIPS\_write}# (addr, width, data) = let _ = #\hyperref[zzyzyWriteRAM]{\_\_WriteRAM}#(64, width, 0x0000_0000_0000_0000, addr, data) in () diff --git a/cheri/sail_latexcc/sailccfnatopcorrection.tex b/cheri/sail_latexcc/sailccfnatopcorrection.tex deleted file mode 100644 index 3a6be173..00000000 --- a/cheri/sail_latexcc/sailccfnatopcorrection.tex +++ /dev/null @@ -1,7 +0,0 @@ -function #\hyperref[zazytopzycorrection]{a\_top\_correction}#(a_mid, R, bound) : (#\hyperref[zbits]{bits}#(20), #\hyperref[zbits]{bits}#(20), #\hyperref[zbits]{bits}#(20)) -> #\hyperref[zbits]{bits}#(65) = - match (a_mid <_u R, bound <_u R) { - (false, false) => #\hyperref[zzzeros]{zeros}#(), - (false, true) => #\hyperref[zzzerozyextend]{zero\_extend}#(0b1), - (true, false) => #\hyperref[zones]{ones}#(), - (true, true) => #\hyperref[zzzeros]{zeros}#() - } diff --git a/cheri/sail_latexcc/sailccfnbitstobool.tex b/cheri/sail_latexcc/sailccfnbitstobool.tex deleted file mode 100644 index 1cb33076..00000000 --- a/cheri/sail_latexcc/sailccfnbitstobool.tex +++ /dev/null @@ -1 +0,0 @@ -function bits_to_bool x = #\hyperref[zbitzytozybool]{bit\_to\_bool}#(x[0]) diff --git a/cheri/sail_latexcc/sailccfnbittobool.tex b/cheri/sail_latexcc/sailccfnbittobool.tex deleted file mode 100644 index a5eea578..00000000 --- a/cheri/sail_latexcc/sailccfnbittobool.tex +++ /dev/null @@ -1,4 +0,0 @@ -function bit_to_bool b = match b { - bitone => true, - _ => false -} diff --git a/cheri/sail_latexcc/sailccfnbooltobits.tex b/cheri/sail_latexcc/sailccfnbooltobits.tex deleted file mode 100644 index 99075369..00000000 --- a/cheri/sail_latexcc/sailccfnbooltobits.tex +++ /dev/null @@ -1 +0,0 @@ -function bool_to_bits x = if x then 0b1 else 0b0 diff --git a/cheri/sail_latexcc/sailccfncapRegToCapStruct.tex b/cheri/sail_latexcc/sailccfncapRegToCapStruct.tex deleted file mode 100644 index 4af338b9..00000000 --- a/cheri/sail_latexcc/sailccfncapRegToCapStruct.tex +++ /dev/null @@ -1,27 +0,0 @@ -function #\hyperref[zcapRegToCapStruct]{capRegToCapStruct}#(c) : CapReg -> CapStruct = - let s : bool = c[104] in - let Bc : #\hyperref[zbits]{bits}#(20) = if s then c[103..96] @ 0x000 else c[103..84] in - let Tc : #\hyperref[zbits]{bits}#(20) = if s then c[83..76] @ 0x000 else c[83..64] in - let otype : #\hyperref[zbits]{bits}#(24) = if s then c[95..84] @ c[75..64] else #\hyperref[zzzeros]{zeros}#() in - struct { - tag = c[128], - uperms = c[127..124], - access_system_regs = c[123], - permit_unseal = c[122], - permit_ccall = c[121], - permit_seal = c[120], - permit_store_local_cap = c[119], - permit_store_cap = c[118], - permit_load_cap = c[117], - permit_store = c[116], - permit_load = c[115], - permit_execute = c[114], - global = c[113], - reserved = c[112..111], - E = c[110..105], - sealed = s, - B = Bc, - T = Tc, - otype = otype, - address = c[63..0] - } diff --git a/cheri/sail_latexcc/sailccfncapStructToCapReg.tex b/cheri/sail_latexcc/sailccfncapStructToCapReg.tex deleted file mode 100644 index f6b02365..00000000 --- a/cheri/sail_latexcc/sailccfncapStructToCapReg.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zcapStructToCapReg]{capStructToCapReg}#(cap) : CapStruct -> CapReg = - (cap.tag @ #\hyperref[zcapStructToMemBitsonetwoeight]{capStructToMemBits128}#(cap)) diff --git a/cheri/sail_latexcc/sailccfncapStructToMemBits.tex b/cheri/sail_latexcc/sailccfncapStructToMemBits.tex deleted file mode 100644 index ea19467f..00000000 --- a/cheri/sail_latexcc/sailccfncapStructToMemBits.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zcapStructToMemBits]{capStructToMemBits}#(cap) : CapStruct -> #\hyperref[zbits]{bits}#(128) = - #\hyperref[zcapStructToMemBitsonetwoeight]{capStructToMemBits128}#(cap) ^ null_cap_bits diff --git a/cheri/sail_latexcc/sailccfncapStructToMemBitsonetwoeight.tex b/cheri/sail_latexcc/sailccfncapStructToMemBitsonetwoeight.tex deleted file mode 100644 index 08da637f..00000000 --- a/cheri/sail_latexcc/sailccfncapStructToMemBitsonetwoeight.tex +++ /dev/null @@ -1,12 +0,0 @@ -function #\hyperref[zcapStructToMemBitsonetwoeight]{capStructToMemBits128}#(cap) : CapStruct -> #\hyperref[zbits]{bits}#(128) = - let b : #\hyperref[zbits]{bits}#(20) = if cap.sealed then (cap.B)[19..12] @ (cap.otype)[23..12] else cap.B in - let t : #\hyperref[zbits]{bits}#(20) = if cap.sealed then (cap.T)[19..12] @ (cap.otype)[11..0] else cap.T in - ( cap.uperms - @ #\hyperref[zgetCapHardPerms]{getCapHardPerms}#(cap) - @ cap.reserved - @ cap.E - @ cap.sealed - @ b - @ t - @ cap.address - ) diff --git a/cheri/sail_latexcc/sailccfncastunitvec.tex b/cheri/sail_latexcc/sailccfncastunitvec.tex deleted file mode 100644 index 1bb7a9e0..00000000 --- a/cheri/sail_latexcc/sailccfncastunitvec.tex +++ /dev/null @@ -1,4 +0,0 @@ -function cast_unit_vec b = match b { - bitzero => 0b0, - _ => 0b1 -} diff --git a/cheri/sail_latexcc/sailccfncomputeE.tex b/cheri/sail_latexcc/sailccfncomputeE.tex deleted file mode 100644 index ef4cb71b..00000000 --- a/cheri/sail_latexcc/sailccfncomputeE.tex +++ /dev/null @@ -1,7 +0,0 @@ -function #\hyperref[zcomputeE]{computeE}# (rlength) : #\hyperref[zbits]{bits}#(65) -> range(0, 48) = - let (nonzero, 'msb) = #\hyperref[zHighestSetBit]{HighestSetBit}#((rlength + (rlength >> 6)) >> 19) in - if nonzero then - /* above will always return <= 45 because 19 bits of zero are shifted in from right */ - {assert(0 <= msb & msb <= 45); #\hyperref[zroundUp]{roundUp}# (#\hyperref[zmin]{min}#(msb,45)) } - else - 0 diff --git a/cheri/sail_latexcc/sailccfnfastRepCheck.tex b/cheri/sail_latexcc/sailccfnfastRepCheck.tex deleted file mode 100644 index 3e4d2111..00000000 --- a/cheri/sail_latexcc/sailccfnfastRepCheck.tex +++ /dev/null @@ -1,23 +0,0 @@ -function #\hyperref[zfastRepCheck]{fastRepCheck}#(c, i) : (CapStruct, #\hyperref[zbits]{bits}#(64)) -> bool= - let 'E = #\hyperref[zunsigned]{unsigned}#(c.E) in - if (E >= 44) then - true /* in this case representable region is whole address space */ - else - let E' = #\hyperref[zmin]{min}#(E, 43) in - let i_top = #\hyperref[zsigned]{signed}#(i[63..E+20]) in - let i_mid : #\hyperref[zbits]{bits}#(20) = i[E+19..E] in - let a_mid : #\hyperref[zbits]{bits}#(20) = (c.address)[E+19..E] in - let R : #\hyperref[zbits]{bits}#(20) = (c.B) - 0x01000 in - let diff : #\hyperref[zbits]{bits}#(20) = R - a_mid in - let diff1 : #\hyperref[zbits]{bits}#(20) = diff - 1 in - /* i_top determines 1. whether the increment is inRange - i.e. less than the size of the representable region - (2**(E+20)) and 2. whether it is positive or negative. To - satisfy 1. all top bits must be the same so we are - interested in the cases i_top is 0 or -1 */ - if (i_top == 0) then - i_mid <_u diff1 - else if (i_top == -1) then - (i_mid >=_u diff) & (R != a_mid) - else - false diff --git a/cheri/sail_latexcc/sailccfngetCapBase.tex b/cheri/sail_latexcc/sailccfngetCapBase.tex deleted file mode 100644 index 51677965..00000000 --- a/cheri/sail_latexcc/sailccfngetCapBase.tex +++ /dev/null @@ -1,10 +0,0 @@ -function #\hyperref[zgetCapBase]{getCapBase}#(c) : CapStruct -> uint64 = - let E = #\hyperref[zmin]{min}#(#\hyperref[zunsigned]{unsigned}#(c.E), 48) in - let Bc : #\hyperref[zbits]{bits}#(20) = c.B in - let a : #\hyperref[zbits]{bits}#(65) = #\hyperref[zzzerozyextend]{zero\_extend}#(c.address) in - let R : #\hyperref[zbits]{bits}#(20) = Bc - 0x01000 in /* wraps */ - let a_mid : #\hyperref[zbits]{bits}#(20) = #\hyperref[zmask]{mask}#(a >> E) in - let correction = #\hyperref[zazytopzycorrection]{a\_top\_correction}#(a_mid, R, Bc) in - let a_top = a >> E+20 in - let base : #\hyperref[zbits]{bits}#(64) = #\hyperref[zmask]{mask}#(((a_top + correction) @ Bc) << E) in - #\hyperref[zunsigned]{unsigned}#(base) diff --git a/cheri/sail_latexcc/sailccfngetCapCursor.tex b/cheri/sail_latexcc/sailccfngetCapCursor.tex deleted file mode 100644 index 9f5d5757..00000000 --- a/cheri/sail_latexcc/sailccfngetCapCursor.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zgetCapCursor]{getCapCursor}#(cap) : CapStruct -> uint64 = #\hyperref[zunsigned]{unsigned}#(cap.address) diff --git a/cheri/sail_latexcc/sailccfngetCapHardPerms.tex b/cheri/sail_latexcc/sailccfngetCapHardPerms.tex deleted file mode 100644 index 0b86b980..00000000 --- a/cheri/sail_latexcc/sailccfngetCapHardPerms.tex +++ /dev/null @@ -1,12 +0,0 @@ -function #\hyperref[zgetCapHardPerms]{getCapHardPerms}#(cap) : CapStruct -> #\hyperref[zbits]{bits}#(11) = - (cap.access_system_regs - @ cap.permit_unseal - @ cap.permit_ccall - @ cap.permit_seal - @ cap.permit_store_local_cap - @ cap.permit_store_cap - @ cap.permit_load_cap - @ cap.permit_store - @ cap.permit_load - @ cap.permit_execute - @ cap.global) diff --git a/cheri/sail_latexcc/sailccfngetCapLength.tex b/cheri/sail_latexcc/sailccfngetCapLength.tex deleted file mode 100644 index e9ce6566..00000000 --- a/cheri/sail_latexcc/sailccfngetCapLength.tex +++ /dev/null @@ -1,6 +0,0 @@ -function #\hyperref[zgetCapLength]{getCapLength}#(c) : CapStruct -> CapLen = - let 'top = #\hyperref[zgetCapTop]{getCapTop}#(c) in - let 'base = #\hyperref[zgetCapBase]{getCapBase}#(c) in { - assert (top >= base); - top - base - } diff --git a/cheri/sail_latexcc/sailccfngetCapOffset.tex b/cheri/sail_latexcc/sailccfngetCapOffset.tex deleted file mode 100644 index 8bf83916..00000000 --- a/cheri/sail_latexcc/sailccfngetCapOffset.tex +++ /dev/null @@ -1,3 +0,0 @@ -function #\hyperref[zgetCapOffset]{getCapOffset}#(c) : CapStruct -> uint64 = - let base = #\hyperref[zgetCapBase]{getCapBase}#(c) in - (#\hyperref[zunsigned]{unsigned}#(c.address) - base) % #\hyperref[zpowtwo]{pow2}#(64) diff --git a/cheri/sail_latexcc/sailccfngetCapPerms.tex b/cheri/sail_latexcc/sailccfngetCapPerms.tex deleted file mode 100644 index 9701e163..00000000 --- a/cheri/sail_latexcc/sailccfngetCapPerms.tex +++ /dev/null @@ -1,5 +0,0 @@ -function #\hyperref[zgetCapPerms]{getCapPerms}#(cap) : CapStruct -> #\hyperref[zbits]{bits}#(31) = - let perms : #\hyperref[zbits]{bits}#(15) = #\hyperref[zzzerozyextend]{zero\_extend}#(#\hyperref[zgetCapHardPerms]{getCapHardPerms}#(cap)) in - (0x000 /* uperms 30-19 */ - @ cap.uperms - @ perms) diff --git a/cheri/sail_latexcc/sailccfngetCapTop.tex b/cheri/sail_latexcc/sailccfngetCapTop.tex deleted file mode 100644 index 1be5af24..00000000 --- a/cheri/sail_latexcc/sailccfngetCapTop.tex +++ /dev/null @@ -1,11 +0,0 @@ -function #\hyperref[zgetCapTop]{getCapTop}# (c) : CapStruct -> CapLen = - let E = #\hyperref[zmin]{min}#(#\hyperref[zunsigned]{unsigned}#(c.E), 48) in - let Bc : #\hyperref[zbits]{bits}#(20) = c.B in - let T : #\hyperref[zbits]{bits}#(20) = c.T in - let a : #\hyperref[zbits]{bits}#(65) = #\hyperref[zzzerozyextend]{zero\_extend}#(c.address) in - let R : #\hyperref[zbits]{bits}#(20) = Bc - 0x01000 in /* wraps */ - let a_mid : #\hyperref[zbits]{bits}#(20) = #\hyperref[zmask]{mask}#(a >> E) in - let correction = #\hyperref[zazytopzycorrection]{a\_top\_correction}#(a_mid, R, T) in - let a_top = a >> E+20 in - let top1 : #\hyperref[zbits]{bits}#(65) = #\hyperref[zmask]{mask}#((a_top + correction) @ T) in - #\hyperref[zunsigned]{unsigned}#(top1 << E) diff --git a/cheri/sail_latexcc/sailccfnincCapOffset.tex b/cheri/sail_latexcc/sailccfnincCapOffset.tex deleted file mode 100644 index 59d3237e..00000000 --- a/cheri/sail_latexcc/sailccfnincCapOffset.tex +++ /dev/null @@ -1,5 +0,0 @@ -function #\hyperref[zincCapOffset]{incCapOffset}#(c, delta) : (CapStruct, #\hyperref[zbits]{bits}#(64)) -> (bool, CapStruct) = - let newAddress : #\hyperref[zbits]{bits}#(64) = c.address + delta in - let newCap = { c with address = newAddress } in - let representable = #\hyperref[zfastRepCheck]{fastRepCheck}#(c, delta) in - (representable, newCap) diff --git a/cheri/sail_latexcc/sailccfninttocap.tex b/cheri/sail_latexcc/sailccfninttocap.tex deleted file mode 100644 index 31bb2bec..00000000 --- a/cheri/sail_latexcc/sailccfninttocap.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zintzytozycap]{int\_to\_cap}# (offset) : #\hyperref[zbits]{bits}#(64) -> CapStruct = - {null_cap with address = offset} diff --git a/cheri/sail_latexcc/sailccfnisnone.tex b/cheri/sail_latexcc/sailccfnisnone.tex deleted file mode 100644 index 877cc2a0..00000000 --- a/cheri/sail_latexcc/sailccfnisnone.tex +++ /dev/null @@ -1,4 +0,0 @@ -function is_none opt = match opt { - #\hyperref[zSome]{Some}#(_) => false, - #\hyperref[zNone]{None}#() => true -} diff --git a/cheri/sail_latexcc/sailccfnissome.tex b/cheri/sail_latexcc/sailccfnissome.tex deleted file mode 100644 index f1f5f655..00000000 --- a/cheri/sail_latexcc/sailccfnissome.tex +++ /dev/null @@ -1,4 +0,0 @@ -function is_some opt = match opt { - #\hyperref[zSome]{Some}#(_) => true, - #\hyperref[zNone]{None}#() => false -} diff --git a/cheri/sail_latexcc/sailccfnmask.tex b/cheri/sail_latexcc/sailccfnmask.tex deleted file mode 100644 index e62ea529..00000000 --- a/cheri/sail_latexcc/sailccfnmask.tex +++ /dev/null @@ -1 +0,0 @@ -function mask bs = bs['n - 1 .. 0] diff --git a/cheri/sail_latexcc/sailccfnmemBitsToCapBits.tex b/cheri/sail_latexcc/sailccfnmemBitsToCapBits.tex deleted file mode 100644 index 198cf984..00000000 --- a/cheri/sail_latexcc/sailccfnmemBitsToCapBits.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zmemBitsToCapBits]{memBitsToCapBits}#(tag, b) : (bool, #\hyperref[zbits]{bits}#(128)) -> #\hyperref[zbits]{bits}#(129) = - #\hyperref[zmemBitsToCapBitsonetwoeight]{memBitsToCapBits128}#(tag, b ^ null_cap_bits) diff --git a/cheri/sail_latexcc/sailccfnmemBitsToCapBitsonetwoeight.tex b/cheri/sail_latexcc/sailccfnmemBitsToCapBitsonetwoeight.tex deleted file mode 100644 index 723571e9..00000000 --- a/cheri/sail_latexcc/sailccfnmemBitsToCapBitsonetwoeight.tex +++ /dev/null @@ -1,2 +0,0 @@ -function #\hyperref[zmemBitsToCapBitsonetwoeight]{memBitsToCapBits128}#(tag, b) : (bool, #\hyperref[zbits]{bits}#(128)) -> CapReg= - (tag @ b) diff --git a/cheri/sail_latexcc/sailccfnmipssignextend.tex b/cheri/sail_latexcc/sailccfnmipssignextend.tex deleted file mode 100644 index 80945b61..00000000 --- a/cheri/sail_latexcc/sailccfnmipssignextend.tex +++ /dev/null @@ -1 +0,0 @@ -function mips_sign_extend v = #\hyperref[zsailzysignzyextend]{sail\_sign\_extend}#(v, sizeof('m)) diff --git a/cheri/sail_latexcc/sailccfnmipszzeroextend.tex b/cheri/sail_latexcc/sailccfnmipszzeroextend.tex deleted file mode 100644 index 6c9914d9..00000000 --- a/cheri/sail_latexcc/sailccfnmipszzeroextend.tex +++ /dev/null @@ -1 +0,0 @@ -function mips_zero_extend v = #\hyperref[zsailzyzzerozyextend]{sail\_zero\_extend}#(v, sizeof('m)) diff --git a/cheri/sail_latexcc/sailccfnneqanything.tex b/cheri/sail_latexcc/sailccfnneqanything.tex deleted file mode 100644 index 1605ed05..00000000 --- a/cheri/sail_latexcc/sailccfnneqanything.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zneqzyanything]{neq\_anything}# (x, y) = #\hyperref[znotzybool]{not\_bool}#(x == y) diff --git a/cheri/sail_latexcc/sailccfnneqatom.tex b/cheri/sail_latexcc/sailccfnneqatom.tex deleted file mode 100644 index e9a9f93f..00000000 --- a/cheri/sail_latexcc/sailccfnneqatom.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zneqzyatom]{neq\_atom}# (x, y) = #\hyperref[znotzybool]{not\_bool}#(#\hyperref[zeqzyatom]{eq\_atom}#(x, y)) diff --git a/cheri/sail_latexcc/sailccfnneqbool.tex b/cheri/sail_latexcc/sailccfnneqbool.tex deleted file mode 100644 index 65007b8e..00000000 --- a/cheri/sail_latexcc/sailccfnneqbool.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zneqzybool]{neq\_bool}# (x, y) = #\hyperref[znotzybool]{not\_bool}#(#\hyperref[zeqzybool]{eq\_bool}#(x, y)) diff --git a/cheri/sail_latexcc/sailccfnneqint.tex b/cheri/sail_latexcc/sailccfnneqint.tex deleted file mode 100644 index 952a7735..00000000 --- a/cheri/sail_latexcc/sailccfnneqint.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zneqzyint]{neq\_int}# (x, y) = #\hyperref[znotzybool]{not\_bool}#(#\hyperref[zeqzyint]{eq\_int}#(x, y)) diff --git a/cheri/sail_latexcc/sailccfnneqrange.tex b/cheri/sail_latexcc/sailccfnneqrange.tex deleted file mode 100644 index 43f49e9e..00000000 --- a/cheri/sail_latexcc/sailccfnneqrange.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zneqzyrange]{neq\_range}# (x, y) = #\hyperref[znotzybool]{not\_bool}#(#\hyperref[zeqzyrange]{eq\_range}#(x, y)) diff --git a/cheri/sail_latexcc/sailccfnneqvec.tex b/cheri/sail_latexcc/sailccfnneqvec.tex deleted file mode 100644 index c446df08..00000000 --- a/cheri/sail_latexcc/sailccfnneqvec.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zneqzyvec]{neq\_vec}# (x, y) = #\hyperref[znotzybool]{not\_bool}#(#\hyperref[zeqzybits]{eq\_bits}#(x, y)) diff --git a/cheri/sail_latexcc/sailccfnnumofCPtrCmpOp.tex b/cheri/sail_latexcc/sailccfnnumofCPtrCmpOp.tex deleted file mode 100644 index 4d20546b..00000000 --- a/cheri/sail_latexcc/sailccfnnumofCPtrCmpOp.tex +++ /dev/null @@ -1,10 +0,0 @@ -function num_of_CPtrCmpOp arg# = match arg# { - CEQ => 0, - CNE => 1, - CLT => 2, - CLE => 3, - CLTU => 4, - CLEU => 5, - CEXEQ => 6, - CNEXEQ => 7 -} diff --git a/cheri/sail_latexcc/sailccfnnumofClearRegSet.tex b/cheri/sail_latexcc/sailccfnnumofClearRegSet.tex deleted file mode 100644 index 3dd58b89..00000000 --- a/cheri/sail_latexcc/sailccfnnumofClearRegSet.tex +++ /dev/null @@ -1,6 +0,0 @@ -function num_of_ClearRegSet arg# = match arg# { - GPLo => 0, - GPHi => 1, - CLo => 2, - CHi => 3 -} diff --git a/cheri/sail_latexcc/sailccfnones.tex b/cheri/sail_latexcc/sailccfnones.tex deleted file mode 100644 index e58040d7..00000000 --- a/cheri/sail_latexcc/sailccfnones.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zones]{ones}#() = #\hyperref[zreplicatezybits]{replicate\_bits}# (0b1,'n) diff --git a/cheri/sail_latexcc/sailccfnroundUp.tex b/cheri/sail_latexcc/sailccfnroundUp.tex deleted file mode 100644 index 1ed68a59..00000000 --- a/cheri/sail_latexcc/sailccfnroundUp.tex +++ /dev/null @@ -1,5 +0,0 @@ -function #\hyperref[zroundUp]{roundUp}#(e) : range(0, 45) -> range(0, 48) = - let 'r = e % 4 in - if (r == 0) - then e - else (e - r + 4) diff --git a/cheri/sail_latexcc/sailccfnsailmask.tex b/cheri/sail_latexcc/sailccfnsailmask.tex deleted file mode 100644 index 37ede658..00000000 --- a/cheri/sail_latexcc/sailccfnsailmask.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zsailzymask]{sail\_mask}#(len, v) = if len <= #\hyperref[zlength]{length}#(v) then #\hyperref[ztruncate]{truncate}#(v, len) else #\hyperref[zsailzyzzerozyextend]{sail\_zero\_extend}#(v, len) diff --git a/cheri/sail_latexcc/sailccfnsealCap.tex b/cheri/sail_latexcc/sailccfnsealCap.tex deleted file mode 100644 index 55c55014..00000000 --- a/cheri/sail_latexcc/sailccfnsealCap.tex +++ /dev/null @@ -1,5 +0,0 @@ -function #\hyperref[zsealCap]{sealCap}#(cap, otype) : (CapStruct, #\hyperref[zbits]{bits}#(24)) -> (bool, CapStruct) = - if (((cap.T)[11..0] == #\hyperref[zzzeros]{zeros}#()) & ((cap.B)[11..0] == #\hyperref[zzzeros]{zeros}#())) then - (true, {cap with sealed=true, otype=otype}) - else - (false, cap /* XXX should be undefined? */ ) diff --git a/cheri/sail_latexcc/sailccfnsetCapBounds.tex b/cheri/sail_latexcc/sailccfnsetCapBounds.tex deleted file mode 100644 index 44808068..00000000 --- a/cheri/sail_latexcc/sailccfnsetCapBounds.tex +++ /dev/null @@ -1,13 +0,0 @@ -function #\hyperref[zsetCapBounds]{setCapBounds}#(cap, base, top) : (CapStruct, #\hyperref[zbits]{bits}#(64), #\hyperref[zbits]{bits}#(65)) -> (bool, CapStruct) = - /* {cap with base=base; length=(#\hyperref[zbits]{bits}#(64)) length; offset=0} */ - let 'e = #\hyperref[zcomputeE]{computeE}#(top - (0b0 @ base)) in - let Bc : #\hyperref[zbits]{bits}#(20) = #\hyperref[zmask]{mask}#(base >> e) in - let T : #\hyperref[zbits]{bits}#(20) = #\hyperref[zmask]{mask}#(top >> e) in - let e_mask : #\hyperref[zbits]{bits}#(65) = #\hyperref[zzzerozyextend]{zero\_extend}#(#\hyperref[zreplicatezybits]{replicate\_bits}#(0b1, e)) in - let e_bits = top & e_mask in - let T2 : #\hyperref[zbits]{bits}#(20) = T + (if #\hyperref[zunsigned]{unsigned}#(e_bits) == 0 then 0x00000 else 0x00001) in - let newCap = {cap with address=base, E=#\hyperref[ztozybits]{to\_bits}#(6, e), B=Bc, T=T2} in - let newBase = #\hyperref[zgetCapBase]{getCapBase}#(newCap) in - let newTop = #\hyperref[zgetCapTop]{getCapTop}#(newCap) in - let exact = (#\hyperref[zunsigned]{unsigned}#(base) == newBase) & (#\hyperref[zunsigned]{unsigned}#(top) == newTop) in - (exact, newCap) diff --git a/cheri/sail_latexcc/sailccfnsetCapOffset.tex b/cheri/sail_latexcc/sailccfnsetCapOffset.tex deleted file mode 100644 index f272f7d3..00000000 --- a/cheri/sail_latexcc/sailccfnsetCapOffset.tex +++ /dev/null @@ -1,6 +0,0 @@ -function #\hyperref[zsetCapOffset]{setCapOffset}#(c, offset) : (CapStruct, #\hyperref[zbits]{bits}#(64)) -> (bool, CapStruct) = - let base : #\hyperref[zbits]{bits}#(64) = #\hyperref[ztozybits]{to\_bits}#(64, #\hyperref[zgetCapBase]{getCapBase}#(c)) in - let newAddress : #\hyperref[zbits]{bits}#(64) = base + offset in - let newCap = { c with address = newAddress } in - let representable = #\hyperref[zfastRepCheck]{fastRepCheck}#(c, (newAddress - c.address)) in - (representable, newCap) diff --git a/cheri/sail_latexcc/sailccfnsetCapPerms.tex b/cheri/sail_latexcc/sailccfnsetCapPerms.tex deleted file mode 100644 index 5af9e7f6..00000000 --- a/cheri/sail_latexcc/sailccfnsetCapPerms.tex +++ /dev/null @@ -1,16 +0,0 @@ -function #\hyperref[zsetCapPerms]{setCapPerms}#(cap, perms) : (CapStruct, #\hyperref[zbits]{bits}#(31)) -> CapStruct = - { cap with - uperms = perms[18..15], - /* 14..11 reserved -- ignore */ - access_system_regs = perms[10], - permit_unseal = perms[9], - permit_ccall = perms[8], - permit_seal = perms[7], - permit_store_local_cap = perms[6], - permit_store_cap = perms[5], - permit_load_cap = perms[4], - permit_store = perms[3], - permit_load = perms[2], - permit_execute = perms[1], - global = perms[0] - } diff --git a/cheri/sail_latexcc/sailccfntobits.tex b/cheri/sail_latexcc/sailccfntobits.tex deleted file mode 100644 index d1df5e83..00000000 --- a/cheri/sail_latexcc/sailccfntobits.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[ztozybits]{to\_bits}# (l, n) = #\hyperref[zgetzyslicezyint]{get\_slice\_int}#(l, n, 0) diff --git a/cheri/sail_latexcc/sailccfnzeightoperatorzzerozIsznine.tex b/cheri/sail_latexcc/sailccfnzeightoperatorzzerozIsznine.tex deleted file mode 100644 index 62e5a2e4..00000000 --- a/cheri/sail_latexcc/sailccfnzeightoperatorzzerozIsznine.tex +++ /dev/null @@ -1 +0,0 @@ -function operator <#\hyperref[zzys]{\_s}# (x, y) = #\hyperref[zsigned]{signed}#(x) < #\hyperref[zsigned]{signed}#(y) diff --git a/cheri/sail_latexcc/sailccfnzeightoperatorzzerozIuznine.tex b/cheri/sail_latexcc/sailccfnzeightoperatorzzerozIuznine.tex deleted file mode 100644 index 3f946820..00000000 --- a/cheri/sail_latexcc/sailccfnzeightoperatorzzerozIuznine.tex +++ /dev/null @@ -1 +0,0 @@ -function operator <#\hyperref[zzyu]{\_u}# (x, y) = #\hyperref[zunsigned]{unsigned}#(x) < #\hyperref[zunsigned]{unsigned}#(y) diff --git a/cheri/sail_latexcc/sailccfnzeightoperatorzzerozKzJsznine.tex b/cheri/sail_latexcc/sailccfnzeightoperatorzzerozKzJsznine.tex deleted file mode 100644 index 57ecf181..00000000 --- a/cheri/sail_latexcc/sailccfnzeightoperatorzzerozKzJsznine.tex +++ /dev/null @@ -1 +0,0 @@ -function operator >=#\hyperref[zzys]{\_s}# (x, y) = #\hyperref[zsigned]{signed}#(x) >= #\hyperref[zsigned]{signed}#(y) diff --git a/cheri/sail_latexcc/sailccfnzeightoperatorzzerozKzJuznine.tex b/cheri/sail_latexcc/sailccfnzeightoperatorzzerozKzJuznine.tex deleted file mode 100644 index 6df36c6f..00000000 --- a/cheri/sail_latexcc/sailccfnzeightoperatorzzerozKzJuznine.tex +++ /dev/null @@ -1 +0,0 @@ -function operator >=#\hyperref[zzyu]{\_u}# (x, y) = #\hyperref[zunsigned]{unsigned}#(x) >= #\hyperref[zunsigned]{unsigned}#(y) diff --git a/cheri/sail_latexcc/sailccfnzeightoperatorzzerozQzQznine.tex b/cheri/sail_latexcc/sailccfnzeightoperatorzzerozQzQznine.tex deleted file mode 100644 index 2c372e1b..00000000 --- a/cheri/sail_latexcc/sailccfnzeightoperatorzzerozQzQznine.tex +++ /dev/null @@ -1 +0,0 @@ -function operator ^^ (bs, n) = #\hyperref[zreplicatezybits]{replicate\_bits}# (bs, n) diff --git a/cheri/sail_latexcc/sailccfnzzeros.tex b/cheri/sail_latexcc/sailccfnzzeros.tex deleted file mode 100644 index 38d463fb..00000000 --- a/cheri/sail_latexcc/sailccfnzzeros.tex +++ /dev/null @@ -1 +0,0 @@ -function #\hyperref[zzzeros]{zeros}#() = #\hyperref[zreplicatezybits]{replicate\_bits}# (0b0,'n) diff --git a/cheri/sail_latexcc/sailccgetCapBase.tex b/cheri/sail_latexcc/sailccgetCapBase.tex deleted file mode 100644 index c7044d1d..00000000 --- a/cheri/sail_latexcc/sailccgetCapBase.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapBase : CapStruct -> uint64 diff --git a/cheri/sail_latexcc/sailccgetCapCursor.tex b/cheri/sail_latexcc/sailccgetCapCursor.tex deleted file mode 100644 index fd5d72d8..00000000 --- a/cheri/sail_latexcc/sailccgetCapCursor.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapCursor : CapStruct -> uint64 diff --git a/cheri/sail_latexcc/sailccgetCapHardPerms.tex b/cheri/sail_latexcc/sailccgetCapHardPerms.tex deleted file mode 100644 index 3b65a7c0..00000000 --- a/cheri/sail_latexcc/sailccgetCapHardPerms.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapHardPerms : CapStruct -> bits(11) diff --git a/cheri/sail_latexcc/sailccgetCapLength.tex b/cheri/sail_latexcc/sailccgetCapLength.tex deleted file mode 100644 index be84bfb5..00000000 --- a/cheri/sail_latexcc/sailccgetCapLength.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapLength : CapStruct -> CapLen effect {escape} diff --git a/cheri/sail_latexcc/sailccgetCapOffset.tex b/cheri/sail_latexcc/sailccgetCapOffset.tex deleted file mode 100644 index 668c3df1..00000000 --- a/cheri/sail_latexcc/sailccgetCapOffset.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapOffset : CapStruct -> uint64 diff --git a/cheri/sail_latexcc/sailccgetCapPerms.tex b/cheri/sail_latexcc/sailccgetCapPerms.tex deleted file mode 100644 index b2dabf89..00000000 --- a/cheri/sail_latexcc/sailccgetCapPerms.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapPerms : CapStruct -> bits(31) diff --git a/cheri/sail_latexcc/sailccgetCapTop.tex b/cheri/sail_latexcc/sailccgetCapTop.tex deleted file mode 100644 index ff0e5f95..00000000 --- a/cheri/sail_latexcc/sailccgetCapTop.tex +++ /dev/null @@ -1 +0,0 @@ -val getCapTop : CapStruct -> CapLen diff --git a/cheri/sail_latexcc/sailccgetsliceint.tex b/cheri/sail_latexcc/sailccgetsliceint.tex deleted file mode 100644 index 2b30d096..00000000 --- a/cheri/sail_latexcc/sailccgetsliceint.tex +++ /dev/null @@ -1 +0,0 @@ -val get_slice_int = "get_slice_int" : forall 'w. (atom('w), int, int) -> #\hyperref[zbits]{bits}#('w) diff --git a/cheri/sail_latexcc/sailccgettimens.tex b/cheri/sail_latexcc/sailccgettimens.tex deleted file mode 100644 index 74cfd526..00000000 --- a/cheri/sail_latexcc/sailccgettimens.tex +++ /dev/null @@ -1 +0,0 @@ -val "get_time_ns" : unit -> int diff --git a/cheri/sail_latexcc/sailccgtatom.tex b/cheri/sail_latexcc/sailccgtatom.tex deleted file mode 100644 index b2147a8f..00000000 --- a/cheri/sail_latexcc/sailccgtatom.tex +++ /dev/null @@ -1 +0,0 @@ -val gt_atom = {coq: "Z.gtb", _: "gt"} : forall 'n 'm. (atom('n), atom('m)) -> bool diff --git a/cheri/sail_latexcc/sailccgtatomrange.tex b/cheri/sail_latexcc/sailccgtatomrange.tex deleted file mode 100644 index 3c520181..00000000 --- a/cheri/sail_latexcc/sailccgtatomrange.tex +++ /dev/null @@ -1 +0,0 @@ -val gt_atom_range = {coq: "gtb_range_r", _: "gt"} : forall 'n 'm 'o. (atom('n), range('m, 'o)) -> bool diff --git a/cheri/sail_latexcc/sailccgteqatom.tex b/cheri/sail_latexcc/sailccgteqatom.tex deleted file mode 100644 index fb3b66b2..00000000 --- a/cheri/sail_latexcc/sailccgteqatom.tex +++ /dev/null @@ -1 +0,0 @@ -val gteq_atom = {coq: "Z.geb", _: "gteq"} : forall 'n 'm. (atom('n), atom('m)) -> bool diff --git a/cheri/sail_latexcc/sailccgteqatomrange.tex b/cheri/sail_latexcc/sailccgteqatomrange.tex deleted file mode 100644 index 7aaf633f..00000000 --- a/cheri/sail_latexcc/sailccgteqatomrange.tex +++ /dev/null @@ -1 +0,0 @@ -val gteq_atom_range = {coq: "geb_range_r", _: "gteq"} : forall 'n 'm 'o. (atom('n), range('m, 'o)) -> bool diff --git a/cheri/sail_latexcc/sailccgteqint.tex b/cheri/sail_latexcc/sailccgteqint.tex deleted file mode 100644 index 77271d1f..00000000 --- a/cheri/sail_latexcc/sailccgteqint.tex +++ /dev/null @@ -1 +0,0 @@ -val gteq_int = {coq: "Z.geb", _:"gteq"} : (int, int) -> bool diff --git a/cheri/sail_latexcc/sailccgteqrangeatom.tex b/cheri/sail_latexcc/sailccgteqrangeatom.tex deleted file mode 100644 index fda25265..00000000 --- a/cheri/sail_latexcc/sailccgteqrangeatom.tex +++ /dev/null @@ -1 +0,0 @@ -val gteq_range_atom = {coq: "geb_range_l", _: "gteq"} : forall 'n 'm 'o. (range('n, 'm), atom('o)) -> bool diff --git a/cheri/sail_latexcc/sailccgtint.tex b/cheri/sail_latexcc/sailccgtint.tex deleted file mode 100644 index 2d953eec..00000000 --- a/cheri/sail_latexcc/sailccgtint.tex +++ /dev/null @@ -1 +0,0 @@ -val gt_int = {coq: "Z.gtb", _:"gt"} : (int, int) -> bool diff --git a/cheri/sail_latexcc/sailccgtrangeatom.tex b/cheri/sail_latexcc/sailccgtrangeatom.tex deleted file mode 100644 index b8635909..00000000 --- a/cheri/sail_latexcc/sailccgtrangeatom.tex +++ /dev/null @@ -1 +0,0 @@ -val gt_range_atom = {coq: "gtb_range_l", _: "gt"} : forall 'n 'm 'o. (range('n, 'm), atom('o)) -> bool diff --git a/cheri/sail_latexcc/sailccincCapOffset.tex b/cheri/sail_latexcc/sailccincCapOffset.tex deleted file mode 100644 index 21c08cb5..00000000 --- a/cheri/sail_latexcc/sailccincCapOffset.tex +++ /dev/null @@ -1 +0,0 @@ -val incCapOffset : (CapStruct, bits(64)) -> (bool, CapStruct) diff --git a/cheri/sail_latexcc/sailccintpower.tex b/cheri/sail_latexcc/sailccintpower.tex deleted file mode 100644 index 0aa13188..00000000 --- a/cheri/sail_latexcc/sailccintpower.tex +++ /dev/null @@ -1 +0,0 @@ -val int_power = {ocaml: "int_power", lem: "pow", coq: "Z.pow"} : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccinttocap.tex b/cheri/sail_latexcc/sailccinttocap.tex deleted file mode 100644 index 0f4cd328..00000000 --- a/cheri/sail_latexcc/sailccinttocap.tex +++ /dev/null @@ -1 +0,0 @@ -val int_to_cap : bits(64) -> CapStruct diff --git a/cheri/sail_latexcc/sailccisnone.tex b/cheri/sail_latexcc/sailccisnone.tex deleted file mode 100644 index 76688d37..00000000 --- a/cheri/sail_latexcc/sailccisnone.tex +++ /dev/null @@ -1 +0,0 @@ -val is_none : forall ('a : Type). #\hyperref[zoption]{option}#('a) -> bool diff --git a/cheri/sail_latexcc/sailccissome.tex b/cheri/sail_latexcc/sailccissome.tex deleted file mode 100644 index 071ac6b6..00000000 --- a/cheri/sail_latexcc/sailccissome.tex +++ /dev/null @@ -1 +0,0 @@ -val is_some : forall ('a : Type). #\hyperref[zoption]{option}#('a) -> bool diff --git a/cheri/sail_latexcc/sailcclength.tex b/cheri/sail_latexcc/sailcclength.tex deleted file mode 100644 index 248c8507..00000000 --- a/cheri/sail_latexcc/sailcclength.tex +++ /dev/null @@ -1 +0,0 @@ -overload length = {bitvector_length, vector_length}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccltatom.tex b/cheri/sail_latexcc/sailccltatom.tex deleted file mode 100644 index 5cca54df..00000000 --- a/cheri/sail_latexcc/sailccltatom.tex +++ /dev/null @@ -1 +0,0 @@ -val lt_atom = {coq: "Z.ltb", _: "lt"} : forall 'n 'm. (atom('n), atom('m)) -> bool diff --git a/cheri/sail_latexcc/sailccltatomrange.tex b/cheri/sail_latexcc/sailccltatomrange.tex deleted file mode 100644 index 19d3375d..00000000 --- a/cheri/sail_latexcc/sailccltatomrange.tex +++ /dev/null @@ -1 +0,0 @@ -val lt_atom_range = {coq: "ltb_range_r", _: "lt"} : forall 'n 'm 'o. (atom('n), range('m, 'o)) -> bool diff --git a/cheri/sail_latexcc/sailcclteqatom.tex b/cheri/sail_latexcc/sailcclteqatom.tex deleted file mode 100644 index 26e27e2d..00000000 --- a/cheri/sail_latexcc/sailcclteqatom.tex +++ /dev/null @@ -1 +0,0 @@ -val lteq_atom = {coq: "Z.leb", _: "lteq"} : forall 'n 'm. (atom('n), atom('m)) -> bool diff --git a/cheri/sail_latexcc/sailcclteqatomrange.tex b/cheri/sail_latexcc/sailcclteqatomrange.tex deleted file mode 100644 index 6e951cf7..00000000 --- a/cheri/sail_latexcc/sailcclteqatomrange.tex +++ /dev/null @@ -1 +0,0 @@ -val lteq_atom_range = {coq: "leb_range_r", _: "lteq"} : forall 'n 'm 'o. (atom('n), range('m, 'o)) -> bool diff --git a/cheri/sail_latexcc/sailcclteqint.tex b/cheri/sail_latexcc/sailcclteqint.tex deleted file mode 100644 index 555176be..00000000 --- a/cheri/sail_latexcc/sailcclteqint.tex +++ /dev/null @@ -1 +0,0 @@ -val lteq_int = {coq: "Z.leb", _:"lteq"} : (int, int) -> bool diff --git a/cheri/sail_latexcc/sailcclteqrangeatom.tex b/cheri/sail_latexcc/sailcclteqrangeatom.tex deleted file mode 100644 index f8fcd32d..00000000 --- a/cheri/sail_latexcc/sailcclteqrangeatom.tex +++ /dev/null @@ -1 +0,0 @@ -val lteq_range_atom = {coq: "leb_range_l", _: "lteq"} : forall 'n 'm 'o. (range('n, 'm), atom('o)) -> bool diff --git a/cheri/sail_latexcc/sailccltint.tex b/cheri/sail_latexcc/sailccltint.tex deleted file mode 100644 index 40bd4e85..00000000 --- a/cheri/sail_latexcc/sailccltint.tex +++ /dev/null @@ -1 +0,0 @@ -val lt_int = {coq: "Z.ltb", _:"lt"} : (int, int) -> bool diff --git a/cheri/sail_latexcc/sailccltrangeatom.tex b/cheri/sail_latexcc/sailccltrangeatom.tex deleted file mode 100644 index d8495496..00000000 --- a/cheri/sail_latexcc/sailccltrangeatom.tex +++ /dev/null @@ -1 +0,0 @@ -val lt_range_atom = {coq: "ltb_range_l", _: "lt"} : forall 'n 'm 'o. (range('n, 'm), atom('o)) -> bool diff --git a/cheri/sail_latexcc/sailccmask.tex b/cheri/sail_latexcc/sailccmask.tex deleted file mode 100644 index 35d052db..00000000 --- a/cheri/sail_latexcc/sailccmask.tex +++ /dev/null @@ -1 +0,0 @@ -val mask : forall 'm 'n , 'm >= 'n > 0 . #\hyperref[zbits]{bits}#('m) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccmax.tex b/cheri/sail_latexcc/sailccmax.tex deleted file mode 100644 index 1ceed42c..00000000 --- a/cheri/sail_latexcc/sailccmax.tex +++ /dev/null @@ -1 +0,0 @@ -overload max = {max_atom, max_nat, max_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccmaxatom.tex b/cheri/sail_latexcc/sailccmaxatom.tex deleted file mode 100644 index 6cbdfa7f..00000000 --- a/cheri/sail_latexcc/sailccmaxatom.tex +++ /dev/null @@ -1 +0,0 @@ -val max_atom = {ocaml: "max_int", lem: "max", coq: "max_atom", c:"max_int"} : forall 'a 'b . (atom('a), atom('b)) -> {'c, ('c = 'a | 'c = 'b) & 'c >= 'a & 'c >= 'b . atom('c)} diff --git a/cheri/sail_latexcc/sailccmaxint.tex b/cheri/sail_latexcc/sailccmaxint.tex deleted file mode 100644 index c537babb..00000000 --- a/cheri/sail_latexcc/sailccmaxint.tex +++ /dev/null @@ -1 +0,0 @@ -val max_int = {lem: "max", coq: "Z.max", _: "max_int"} : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccmaxnat.tex b/cheri/sail_latexcc/sailccmaxnat.tex deleted file mode 100644 index 1b62334a..00000000 --- a/cheri/sail_latexcc/sailccmaxnat.tex +++ /dev/null @@ -1 +0,0 @@ -val max_nat = {lem: "max", coq: "Z.max", _: "max_int"} : (nat, nat) -> nat diff --git a/cheri/sail_latexcc/sailccmemBitsToCapBits.tex b/cheri/sail_latexcc/sailccmemBitsToCapBits.tex deleted file mode 100644 index a5c86272..00000000 --- a/cheri/sail_latexcc/sailccmemBitsToCapBits.tex +++ /dev/null @@ -1 +0,0 @@ -val memBitsToCapBits : (bool, bits(128)) -> bits(129) diff --git a/cheri/sail_latexcc/sailccmemBitsToCapBitsonetwoeight.tex b/cheri/sail_latexcc/sailccmemBitsToCapBitsonetwoeight.tex deleted file mode 100644 index 4eb94a3d..00000000 --- a/cheri/sail_latexcc/sailccmemBitsToCapBitsonetwoeight.tex +++ /dev/null @@ -1 +0,0 @@ -val memBitsToCapBits128 : (bool, bits(128)) -> CapReg diff --git a/cheri/sail_latexcc/sailccmin.tex b/cheri/sail_latexcc/sailccmin.tex deleted file mode 100644 index 94097198..00000000 --- a/cheri/sail_latexcc/sailccmin.tex +++ /dev/null @@ -1 +0,0 @@ -overload min = {min_atom, min_nat, min_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccminatom.tex b/cheri/sail_latexcc/sailccminatom.tex deleted file mode 100644 index acfea384..00000000 --- a/cheri/sail_latexcc/sailccminatom.tex +++ /dev/null @@ -1 +0,0 @@ -val min_atom = {ocaml: "min_int", lem: "min", coq: "min_atom", c:"min_int"} : forall 'a 'b . (atom('a), atom('b)) -> {'c, ('c = 'a | 'c = 'b) & 'c <= 'a & 'c <= 'b . atom('c)} diff --git a/cheri/sail_latexcc/sailccminint.tex b/cheri/sail_latexcc/sailccminint.tex deleted file mode 100644 index 3d633d08..00000000 --- a/cheri/sail_latexcc/sailccminint.tex +++ /dev/null @@ -1 +0,0 @@ -val min_int = {lem: "min", coq: "Z.min", _: "min_int"} : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccminnat.tex b/cheri/sail_latexcc/sailccminnat.tex deleted file mode 100644 index 85409bd8..00000000 --- a/cheri/sail_latexcc/sailccminnat.tex +++ /dev/null @@ -1 +0,0 @@ -val min_nat = {lem: "min", coq: "Z.min", _: "min_int"} : (nat, nat) -> nat diff --git a/cheri/sail_latexcc/sailccmipssignextend.tex b/cheri/sail_latexcc/sailccmipssignextend.tex deleted file mode 100644 index e613567d..00000000 --- a/cheri/sail_latexcc/sailccmipssignextend.tex +++ /dev/null @@ -1 +0,0 @@ -val mips_sign_extend : forall 'n 'm , 'm >= 'n . #\hyperref[zbits]{bits}#('n) -> #\hyperref[zbits]{bits}#('m) diff --git a/cheri/sail_latexcc/sailccmipszzeroextend.tex b/cheri/sail_latexcc/sailccmipszzeroextend.tex deleted file mode 100644 index adbb4188..00000000 --- a/cheri/sail_latexcc/sailccmipszzeroextend.tex +++ /dev/null @@ -1 +0,0 @@ -val mips_zero_extend : forall 'n 'm , 'm >= 'n . #\hyperref[zbits]{bits}#('n) -> #\hyperref[zbits]{bits}#('m) diff --git a/cheri/sail_latexcc/sailccmod.tex b/cheri/sail_latexcc/sailccmod.tex deleted file mode 100644 index ab70dd7a..00000000 --- a/cheri/sail_latexcc/sailccmod.tex +++ /dev/null @@ -1,7 +0,0 @@ -val mod = { - smt: "mod", - ocaml: "modulus", - lem: "integerMod", - c: "tmod_int", - coq: "mod_with_eq" -} : forall 'n 'm. (atom('n), atom('m)) -> {'o, 'o = #\hyperref[zmod]{mod}#('n, 'm). atom('o)} diff --git a/cheri/sail_latexcc/sailccmodint.tex b/cheri/sail_latexcc/sailccmodint.tex deleted file mode 100644 index bd5677aa..00000000 --- a/cheri/sail_latexcc/sailccmodint.tex +++ /dev/null @@ -1,7 +0,0 @@ -val mod_int = { - smt: "mod", - ocaml: "modulus", - lem: "integerMod", - c: "tmod_int", - coq: "Z.rem" -} : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccmodulus.tex b/cheri/sail_latexcc/sailccmodulus.tex deleted file mode 100644 index ca23a339..00000000 --- a/cheri/sail_latexcc/sailccmodulus.tex +++ /dev/null @@ -1 +0,0 @@ -val modulus = {ocaml: "modulus", lem: "hardware_mod", coq: "euclid_modulo", _ : "tmod_int"} : forall 'n, 'n > 0 . (int, atom('n)) -> range(0, 'n - 1) diff --git a/cheri/sail_latexcc/sailccmultatom.tex b/cheri/sail_latexcc/sailccmultatom.tex deleted file mode 100644 index bbac3e2f..00000000 --- a/cheri/sail_latexcc/sailccmultatom.tex +++ /dev/null @@ -1,2 +0,0 @@ -val mult_atom = {ocaml: "mult", lem: "integerMult", c: "mult_int", coq: "Z.mul"} : forall 'n 'm. - (atom('n), atom('m)) -> atom('n * 'm) diff --git a/cheri/sail_latexcc/sailccmultint.tex b/cheri/sail_latexcc/sailccmultint.tex deleted file mode 100644 index 08698e6f..00000000 --- a/cheri/sail_latexcc/sailccmultint.tex +++ /dev/null @@ -1 +0,0 @@ -val mult_int = {ocaml: "mult", lem: "integerMult", c: "mult_int", coq: "Z.mul"} : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccnegate.tex b/cheri/sail_latexcc/sailccnegate.tex deleted file mode 100644 index ce000062..00000000 --- a/cheri/sail_latexcc/sailccnegate.tex +++ /dev/null @@ -1 +0,0 @@ -overload negate = {negate_range, negate_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccnegateatom.tex b/cheri/sail_latexcc/sailccnegateatom.tex deleted file mode 100644 index d1361e63..00000000 --- a/cheri/sail_latexcc/sailccnegateatom.tex +++ /dev/null @@ -1 +0,0 @@ -val negate_atom = {ocaml: "negate", lem: "integerNegate", c: "neg_int", coq: "Z.opp"} : forall 'n. atom('n) -> atom(- 'n) diff --git a/cheri/sail_latexcc/sailccnegateint.tex b/cheri/sail_latexcc/sailccnegateint.tex deleted file mode 100644 index 52375787..00000000 --- a/cheri/sail_latexcc/sailccnegateint.tex +++ /dev/null @@ -1 +0,0 @@ -val negate_int = {ocaml: "negate", lem: "integerNegate", c: "neg_int", coq: "Z.opp"} : int -> int diff --git a/cheri/sail_latexcc/sailccnegaterange.tex b/cheri/sail_latexcc/sailccnegaterange.tex deleted file mode 100644 index 7a4ad386..00000000 --- a/cheri/sail_latexcc/sailccnegaterange.tex +++ /dev/null @@ -1 +0,0 @@ -val negate_range = {ocaml: "minus_big_int", lem: "integerNegate", coq: "negate_range"} : forall 'n 'm. range('n, 'm) -> range(- 'm, - 'n) diff --git a/cheri/sail_latexcc/sailccneqanything.tex b/cheri/sail_latexcc/sailccneqanything.tex deleted file mode 100644 index a898649e..00000000 --- a/cheri/sail_latexcc/sailccneqanything.tex +++ /dev/null @@ -1 +0,0 @@ -val neq_anything = {lem: "neq", coq: "generic_neq"} : forall ('a : Type). ('a, 'a) -> bool diff --git a/cheri/sail_latexcc/sailccneqatom.tex b/cheri/sail_latexcc/sailccneqatom.tex deleted file mode 100644 index be777013..00000000 --- a/cheri/sail_latexcc/sailccneqatom.tex +++ /dev/null @@ -1 +0,0 @@ -val neq_atom = {lem: "neq", coq: "neq_atom"} : forall 'n 'm. (atom('n), atom('m)) -> bool diff --git a/cheri/sail_latexcc/sailccneqbool.tex b/cheri/sail_latexcc/sailccneqbool.tex deleted file mode 100644 index 0d80dc17..00000000 --- a/cheri/sail_latexcc/sailccneqbool.tex +++ /dev/null @@ -1 +0,0 @@ -val neq_bool : (bool, bool) -> bool diff --git a/cheri/sail_latexcc/sailccneqint.tex b/cheri/sail_latexcc/sailccneqint.tex deleted file mode 100644 index b233ca6b..00000000 --- a/cheri/sail_latexcc/sailccneqint.tex +++ /dev/null @@ -1 +0,0 @@ -val neq_int = {lem: "neq"} : (int, int) -> bool diff --git a/cheri/sail_latexcc/sailccneqrange.tex b/cheri/sail_latexcc/sailccneqrange.tex deleted file mode 100644 index d2d8fb0c..00000000 --- a/cheri/sail_latexcc/sailccneqrange.tex +++ /dev/null @@ -1 +0,0 @@ -val neq_range = {lem: "neq"} : forall 'n 'm 'o 'p. (range('n, 'm), range('o, 'p)) -> bool diff --git a/cheri/sail_latexcc/sailccneqvec.tex b/cheri/sail_latexcc/sailccneqvec.tex deleted file mode 100644 index f655b3d8..00000000 --- a/cheri/sail_latexcc/sailccneqvec.tex +++ /dev/null @@ -1 +0,0 @@ -val neq_vec = {lem: "neq"} : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> bool diff --git a/cheri/sail_latexcc/sailccnot.tex b/cheri/sail_latexcc/sailccnot.tex deleted file mode 100644 index 515b3ef9..00000000 --- a/cheri/sail_latexcc/sailccnot.tex +++ /dev/null @@ -1 +0,0 @@ -val not = {coq:"negb", _:"not"} : bool -> bool diff --git a/cheri/sail_latexcc/sailccnotbool.tex b/cheri/sail_latexcc/sailccnotbool.tex deleted file mode 100644 index 7630f6c2..00000000 --- a/cheri/sail_latexcc/sailccnotbool.tex +++ /dev/null @@ -1 +0,0 @@ -val not_bool = {coq: "negb", _: "not"} : bool -> bool diff --git a/cheri/sail_latexcc/sailccnotvec.tex b/cheri/sail_latexcc/sailccnotvec.tex deleted file mode 100644 index a560a544..00000000 --- a/cheri/sail_latexcc/sailccnotvec.tex +++ /dev/null @@ -1 +0,0 @@ -val not_vec = {c:"not_bits", _:"not_vec"} : forall 'n. #\hyperref[zbits]{bits}#('n) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccnumofCPtrCmpOp.tex b/cheri/sail_latexcc/sailccnumofCPtrCmpOp.tex deleted file mode 100644 index 40f1bfa9..00000000 --- a/cheri/sail_latexcc/sailccnumofCPtrCmpOp.tex +++ /dev/null @@ -1 +0,0 @@ -val num_of_CPtrCmpOp : CPtrCmpOp -> {'e, 0 <= 'e & 'e <= 7. atom('e)} diff --git a/cheri/sail_latexcc/sailccnumofClearRegSet.tex b/cheri/sail_latexcc/sailccnumofClearRegSet.tex deleted file mode 100644 index 14ea7bea..00000000 --- a/cheri/sail_latexcc/sailccnumofClearRegSet.tex +++ /dev/null @@ -1 +0,0 @@ -val num_of_ClearRegSet : ClearRegSet -> {'e, 0 <= 'e & 'e <= 3. atom('e)} diff --git a/cheri/sail_latexcc/sailccones.tex b/cheri/sail_latexcc/sailccones.tex deleted file mode 100644 index 94fd805f..00000000 --- a/cheri/sail_latexcc/sailccones.tex +++ /dev/null @@ -1 +0,0 @@ -val ones : forall 'n, 'n >= 0 . unit -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccorbits.tex b/cheri/sail_latexcc/sailccorbits.tex deleted file mode 100644 index 55db5ffa..00000000 --- a/cheri/sail_latexcc/sailccorbits.tex +++ /dev/null @@ -1 +0,0 @@ -val or_bits = {c: "or_bits", _: "or_vec"} : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccorbool.tex b/cheri/sail_latexcc/sailccorbool.tex deleted file mode 100644 index 4b6bfa15..00000000 --- a/cheri/sail_latexcc/sailccorbool.tex +++ /dev/null @@ -1 +0,0 @@ -val or_bool = {coq: "orb", _: "or_bool"} : (bool, bool) -> bool diff --git a/cheri/sail_latexcc/sailccplainvectoraccess.tex b/cheri/sail_latexcc/sailccplainvectoraccess.tex deleted file mode 100644 index 94824f77..00000000 --- a/cheri/sail_latexcc/sailccplainvectoraccess.tex +++ /dev/null @@ -1,6 +0,0 @@ -val plain_vector_access = { - ocaml: "access", - lem: "access_list_dec", - coq: "vec_access_dec", - c: "vector_access" -} : forall ('n : Int) ('m : Int) ('a : Type), 0 <= 'm < 'n. (vector('n, dec, 'a), atom('m)) -> 'a diff --git a/cheri/sail_latexcc/sailccplainvectorupdate.tex b/cheri/sail_latexcc/sailccplainvectorupdate.tex deleted file mode 100644 index 6880d9bd..00000000 --- a/cheri/sail_latexcc/sailccplainvectorupdate.tex +++ /dev/null @@ -1,6 +0,0 @@ -val plain_vector_update = { - ocaml: "update", - lem: "update_list_dec", - coq: "vec_update_dec", - c: "vector_update" -} : forall '#\hyperref[zn]{n}# ('a : Type). (vector('n, dec, 'a), int, 'a) -> vector('n, dec, 'a) diff --git a/cheri/sail_latexcc/sailccpowtwo.tex b/cheri/sail_latexcc/sailccpowtwo.tex deleted file mode 100644 index 41da946e..00000000 --- a/cheri/sail_latexcc/sailccpowtwo.tex +++ /dev/null @@ -1 +0,0 @@ -val pow2 = "pow2" : forall 'n. atom('n) -> atom(2 ^ 'n) diff --git a/cheri/sail_latexcc/sailccprerrbits.tex b/cheri/sail_latexcc/sailccprerrbits.tex deleted file mode 100644 index 7d926384..00000000 --- a/cheri/sail_latexcc/sailccprerrbits.tex +++ /dev/null @@ -1 +0,0 @@ -val "prerr_bits" : forall 'n. (string, #\hyperref[zbits]{bits}#('n)) -> unit diff --git a/cheri/sail_latexcc/sailccprerrendline.tex b/cheri/sail_latexcc/sailccprerrendline.tex deleted file mode 100644 index ad4a94a0..00000000 --- a/cheri/sail_latexcc/sailccprerrendline.tex +++ /dev/null @@ -1 +0,0 @@ -val "prerr_endline" : string -> unit diff --git a/cheri/sail_latexcc/sailccprerrint.tex b/cheri/sail_latexcc/sailccprerrint.tex deleted file mode 100644 index ce7a7d61..00000000 --- a/cheri/sail_latexcc/sailccprerrint.tex +++ /dev/null @@ -1 +0,0 @@ -val "prerr_int" : (string, int) -> unit diff --git a/cheri/sail_latexcc/sailccprerrstring.tex b/cheri/sail_latexcc/sailccprerrstring.tex deleted file mode 100644 index 7b849da2..00000000 --- a/cheri/sail_latexcc/sailccprerrstring.tex +++ /dev/null @@ -1 +0,0 @@ -val "prerr_string" : string -> unit diff --git a/cheri/sail_latexcc/sailccprint.tex b/cheri/sail_latexcc/sailccprint.tex deleted file mode 100644 index 50a64219..00000000 --- a/cheri/sail_latexcc/sailccprint.tex +++ /dev/null @@ -1 +0,0 @@ -val print = "print_endline" : string -> unit diff --git a/cheri/sail_latexcc/sailccprintbits.tex b/cheri/sail_latexcc/sailccprintbits.tex deleted file mode 100644 index 8783a59a..00000000 --- a/cheri/sail_latexcc/sailccprintbits.tex +++ /dev/null @@ -1 +0,0 @@ -val "print_bits" : forall 'n. (string, #\hyperref[zbits]{bits}#('n)) -> unit diff --git a/cheri/sail_latexcc/sailccprintint.tex b/cheri/sail_latexcc/sailccprintint.tex deleted file mode 100644 index ddf33afc..00000000 --- a/cheri/sail_latexcc/sailccprintint.tex +++ /dev/null @@ -1 +0,0 @@ -val "print_int" : (string, int) -> unit diff --git a/cheri/sail_latexcc/sailccputchar.tex b/cheri/sail_latexcc/sailccputchar.tex deleted file mode 100644 index a123c709..00000000 --- a/cheri/sail_latexcc/sailccputchar.tex +++ /dev/null @@ -1 +0,0 @@ -val putchar = {c:"sail_putchar", _:"putchar"} : int -> unit diff --git a/cheri/sail_latexcc/sailccquotient.tex b/cheri/sail_latexcc/sailccquotient.tex deleted file mode 100644 index 7dba5359..00000000 --- a/cheri/sail_latexcc/sailccquotient.tex +++ /dev/null @@ -1 +0,0 @@ -val quotient = {ocaml: "quotient", lem: "integerDiv", coq: "Z.mod"} : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccquotientnat.tex b/cheri/sail_latexcc/sailccquotientnat.tex deleted file mode 100644 index 14db4ae0..00000000 --- a/cheri/sail_latexcc/sailccquotientnat.tex +++ /dev/null @@ -1 +0,0 @@ -val quotient_nat = {ocaml: "quotient", lem: "integerDiv", coq: "Z.div"} : (nat, nat) -> nat diff --git a/cheri/sail_latexcc/sailccquotroundzzero.tex b/cheri/sail_latexcc/sailccquotroundzzero.tex deleted file mode 100644 index 9523cfcc..00000000 --- a/cheri/sail_latexcc/sailccquotroundzzero.tex +++ /dev/null @@ -1 +0,0 @@ -val quot_round_zero = {ocaml: "quot_round_zero", lem: "hardware_quot", coq: "Z.quot", _ : "tdiv_int"} : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccregderef.tex b/cheri/sail_latexcc/sailccregderef.tex deleted file mode 100644 index 7f1dc7e8..00000000 --- a/cheri/sail_latexcc/sailccregderef.tex +++ /dev/null @@ -1 +0,0 @@ -val _reg_deref = "reg_deref" : forall ('a : Type). #\hyperref[zregister]{register}#('a) -> 'a diff --git a/cheri/sail_latexcc/sailccremroundzzero.tex b/cheri/sail_latexcc/sailccremroundzzero.tex deleted file mode 100644 index 9d8113ba..00000000 --- a/cheri/sail_latexcc/sailccremroundzzero.tex +++ /dev/null @@ -1 +0,0 @@ -val rem_round_zero = {ocaml: "rem_round_zero", lem: "hardware_mod", coq: "Z.rem", _ : "tmod_int"} : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccreplicatebits.tex b/cheri/sail_latexcc/sailccreplicatebits.tex deleted file mode 100644 index cd7a97d7..00000000 --- a/cheri/sail_latexcc/sailccreplicatebits.tex +++ /dev/null @@ -1 +0,0 @@ -val replicate_bits = "replicate_bits" : forall 'n 'm. (#\hyperref[zbits]{bits}#('n), atom('m)) -> #\hyperref[zbits]{bits}#('n * 'm) diff --git a/cheri/sail_latexcc/sailccroundUp.tex b/cheri/sail_latexcc/sailccroundUp.tex deleted file mode 100644 index b7e31074..00000000 --- a/cheri/sail_latexcc/sailccroundUp.tex +++ /dev/null @@ -1 +0,0 @@ -val roundUp : range(0, 45) -> range(0, 48) diff --git a/cheri/sail_latexcc/sailccsailccnegatev.tex b/cheri/sail_latexcc/sailccsailccnegatev.tex deleted file mode 100644 index 4f7aea58..00000000 --- a/cheri/sail_latexcc/sailccsailccnegatev.tex +++ /dev/null @@ -1 +0,0 @@ -overload negate = {negate_atom, negate_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailccregderefv.tex b/cheri/sail_latexcc/sailccsailccregderefv.tex deleted file mode 100644 index f5de92ca..00000000 --- a/cheri/sail_latexcc/sailccsailccregderefv.tex +++ /dev/null @@ -1 +0,0 @@ -val "reg_deref" : forall ('a : Type). #\hyperref[zregister]{register}#('a) -> 'a effect {rreg} diff --git a/cheri/sail_latexcc/sailccsailccsailccsailcczeightoperatorzzerozJzJzninevvv.tex b/cheri/sail_latexcc/sailccsailccsailccsailcczeightoperatorzzerozJzJzninevvv.tex deleted file mode 100644 index 0f72fdc9..00000000 --- a/cheri/sail_latexcc/sailccsailccsailccsailcczeightoperatorzzerozJzJzninevvv.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator ==) = {eq_bit2}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailccsailcczeightoperatorzzerozBzninevv.tex b/cheri/sail_latexcc/sailccsailccsailcczeightoperatorzzerozBzninevv.tex deleted file mode 100644 index eacd556c..00000000 --- a/cheri/sail_latexcc/sailccsailccsailcczeightoperatorzzerozBzninevv.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator +) = {add_atom, add_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailccsailcczeightoperatorzzerozFzninevv.tex b/cheri/sail_latexcc/sailccsailccsailcczeightoperatorzzerozFzninevv.tex deleted file mode 100644 index 73c40722..00000000 --- a/cheri/sail_latexcc/sailccsailccsailcczeightoperatorzzerozFzninevv.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator /) = {div}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailccsailcczeightoperatorzzerozJzJzninevv.tex b/cheri/sail_latexcc/sailccsailccsailcczeightoperatorzzerozJzJzninevv.tex deleted file mode 100644 index 47b1d0f6..00000000 --- a/cheri/sail_latexcc/sailccsailccsailcczeightoperatorzzerozJzJzninevv.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator ==) = {eq_atom, eq_range, eq_int, eq_bool}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailccsailcczeightoperatorzzerozfivezninevv.tex b/cheri/sail_latexcc/sailccsailccsailcczeightoperatorzzerozfivezninevv.tex deleted file mode 100644 index 552e0c24..00000000 --- a/cheri/sail_latexcc/sailccsailccsailcczeightoperatorzzerozfivezninevv.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator %) = {mod}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozAzninev.tex b/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozAzninev.tex deleted file mode 100644 index afe7a721..00000000 --- a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozAzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator *) = {mult_atom, mult_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozBzninev.tex b/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozBzninev.tex deleted file mode 100644 index ddc56bfd..00000000 --- a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozBzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator +) = {add_bits, add_bits_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozDzninev.tex b/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozDzninev.tex deleted file mode 100644 index 5d12fdf1..00000000 --- a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozDzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator -) = {sub_atom, sub_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozFzninev.tex b/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozFzninev.tex deleted file mode 100644 index 38e9124b..00000000 --- a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozFzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator /) = {div_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozJzJzninev.tex b/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozJzJzninev.tex deleted file mode 100644 index 1314a962..00000000 --- a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozJzJzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator ==) = {eq_bit, eq_bits}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozQzninev.tex b/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozQzninev.tex deleted file mode 100644 index 05769645..00000000 --- a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozQzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator ^) = {sail_mask}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozUzninev.tex b/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozUzninev.tex deleted file mode 100644 index 1ebacbc4..00000000 --- a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozUzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator |) = {or_bool}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozfivezninev.tex b/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozfivezninev.tex deleted file mode 100644 index 14fa73b8..00000000 --- a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozfivezninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator %) = {mod_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozonezJzninev.tex b/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozonezJzninev.tex deleted file mode 100644 index 527cf596..00000000 --- a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozonezJzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator !=) = {neq_atom, neq_range, neq_int, neq_bool}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozsixzninev.tex b/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozsixzninev.tex deleted file mode 100644 index be6f29ef..00000000 --- a/cheri/sail_latexcc/sailccsailcczeightoperatorzzerozsixzninev.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator &) = {and_bool}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccsailmask.tex b/cheri/sail_latexcc/sailccsailmask.tex deleted file mode 100644 index 45862747..00000000 --- a/cheri/sail_latexcc/sailccsailmask.tex +++ /dev/null @@ -1 +0,0 @@ -val sail_mask : forall 'len 'v, 'len >= 0 & 'v >= 0. (atom('len), vector('v, dec, bit)) -> vector('len, dec, bit) diff --git a/cheri/sail_latexcc/sailccsailsignextend.tex b/cheri/sail_latexcc/sailccsailsignextend.tex deleted file mode 100644 index dfaa5c86..00000000 --- a/cheri/sail_latexcc/sailccsailsignextend.tex +++ /dev/null @@ -1 +0,0 @@ -val sail_sign_extend = "sign_extend" : forall 'n 'm, 'm >= 'n. (#\hyperref[zbits]{bits}#('n), atom('m)) -> #\hyperref[zbits]{bits}#('m) diff --git a/cheri/sail_latexcc/sailccsailzzeroextend.tex b/cheri/sail_latexcc/sailccsailzzeroextend.tex deleted file mode 100644 index 53f6fff9..00000000 --- a/cheri/sail_latexcc/sailccsailzzeroextend.tex +++ /dev/null @@ -1 +0,0 @@ -val sail_zero_extend = "zero_extend" : forall 'n 'm, 'm >= 'n. (#\hyperref[zbits]{bits}#('n), atom('m)) -> #\hyperref[zbits]{bits}#('m) diff --git a/cheri/sail_latexcc/sailccsailzzeros.tex b/cheri/sail_latexcc/sailccsailzzeros.tex deleted file mode 100644 index 9c60aa12..00000000 --- a/cheri/sail_latexcc/sailccsailzzeros.tex +++ /dev/null @@ -1 +0,0 @@ -val sail_zeros = "zeros" : forall 'n. atom('n) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccsealCap.tex b/cheri/sail_latexcc/sailccsealCap.tex deleted file mode 100644 index 891ae279..00000000 --- a/cheri/sail_latexcc/sailccsealCap.tex +++ /dev/null @@ -1 +0,0 @@ -val sealCap : (CapStruct, bits(24)) -> (bool, CapStruct) diff --git a/cheri/sail_latexcc/sailccsetCapBounds.tex b/cheri/sail_latexcc/sailccsetCapBounds.tex deleted file mode 100644 index 94fbecaf..00000000 --- a/cheri/sail_latexcc/sailccsetCapBounds.tex +++ /dev/null @@ -1 +0,0 @@ -val setCapBounds : (CapStruct, bits(64), bits(65)) -> (bool, CapStruct) effect {escape} diff --git a/cheri/sail_latexcc/sailccsetCapOffset.tex b/cheri/sail_latexcc/sailccsetCapOffset.tex deleted file mode 100644 index fef324f7..00000000 --- a/cheri/sail_latexcc/sailccsetCapOffset.tex +++ /dev/null @@ -1 +0,0 @@ -val setCapOffset : (CapStruct, bits(64)) -> (bool, CapStruct) diff --git a/cheri/sail_latexcc/sailccsetCapPerms.tex b/cheri/sail_latexcc/sailccsetCapPerms.tex deleted file mode 100644 index 617f19fb..00000000 --- a/cheri/sail_latexcc/sailccsetCapPerms.tex +++ /dev/null @@ -1 +0,0 @@ -val setCapPerms : (CapStruct, bits(31)) -> CapStruct diff --git a/cheri/sail_latexcc/sailccsetslicebits.tex b/cheri/sail_latexcc/sailccsetslicebits.tex deleted file mode 100644 index 8a81bff5..00000000 --- a/cheri/sail_latexcc/sailccsetslicebits.tex +++ /dev/null @@ -1,2 +0,0 @@ -val set_slice_bits = "set_slice" : forall 'n 'm. - (atom('n), atom('m), #\hyperref[zbits]{bits}#('n), int, #\hyperref[zbits]{bits}#('m)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccsetsliceint.tex b/cheri/sail_latexcc/sailccsetsliceint.tex deleted file mode 100644 index 413bf721..00000000 --- a/cheri/sail_latexcc/sailccsetsliceint.tex +++ /dev/null @@ -1 +0,0 @@ -val set_slice_int = "set_slice_int" : forall 'w. (atom('w), int, int, #\hyperref[zbits]{bits}#('w)) -> int diff --git a/cheri/sail_latexcc/sailccshiftbitsleft.tex b/cheri/sail_latexcc/sailccshiftbitsleft.tex deleted file mode 100644 index cdb2eb6a..00000000 --- a/cheri/sail_latexcc/sailccshiftbitsleft.tex +++ /dev/null @@ -1 +0,0 @@ -val "shift_bits_left" : forall 'n 'm. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('m)) -> #\hyperref[zbits]{bits}#('n) effect {undef} diff --git a/cheri/sail_latexcc/sailccshiftbitsright.tex b/cheri/sail_latexcc/sailccshiftbitsright.tex deleted file mode 100644 index dbc72b11..00000000 --- a/cheri/sail_latexcc/sailccshiftbitsright.tex +++ /dev/null @@ -1 +0,0 @@ -val "shift_bits_right" : forall 'n 'm. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('m)) -> #\hyperref[zbits]{bits}#('n) effect {undef} diff --git a/cheri/sail_latexcc/sailccshiftl.tex b/cheri/sail_latexcc/sailccshiftl.tex deleted file mode 100644 index b2c54c27..00000000 --- a/cheri/sail_latexcc/sailccshiftl.tex +++ /dev/null @@ -1 +0,0 @@ -val "shiftl" : forall 'm 'n, 'n >= 0. (#\hyperref[zbits]{bits}#('m), atom('n)) -> #\hyperref[zbits]{bits}#('m) diff --git a/cheri/sail_latexcc/sailccshiftr.tex b/cheri/sail_latexcc/sailccshiftr.tex deleted file mode 100644 index f282dcbe..00000000 --- a/cheri/sail_latexcc/sailccshiftr.tex +++ /dev/null @@ -1 +0,0 @@ -val "shiftr" : forall 'm 'n, 'n >= 0. (#\hyperref[zbits]{bits}#('m), atom('n)) -> #\hyperref[zbits]{bits}#('m) diff --git a/cheri/sail_latexcc/sailccshlint.tex b/cheri/sail_latexcc/sailccshlint.tex deleted file mode 100644 index 8ffbcf6c..00000000 --- a/cheri/sail_latexcc/sailccshlint.tex +++ /dev/null @@ -1 +0,0 @@ -val shl_int = "shl_int" : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccshrint.tex b/cheri/sail_latexcc/sailccshrint.tex deleted file mode 100644 index 087c17bb..00000000 --- a/cheri/sail_latexcc/sailccshrint.tex +++ /dev/null @@ -1 +0,0 @@ -val shr_int = "shr_int" : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccsigned.tex b/cheri/sail_latexcc/sailccsigned.tex deleted file mode 100644 index dcdc3049..00000000 --- a/cheri/sail_latexcc/sailccsigned.tex +++ /dev/null @@ -1,4 +0,0 @@ -val signed = { - c: "sail_signed", - _: "sint" -} : forall 'n, 'n > 0. #\hyperref[zbits]{bits}#('n) -> range(- (2 ^ ('n - 1)), 2 ^ ('n - 1) - 1) diff --git a/cheri/sail_latexcc/sailccsignextend.tex b/cheri/sail_latexcc/sailccsignextend.tex deleted file mode 100644 index 03f56369..00000000 --- a/cheri/sail_latexcc/sailccsignextend.tex +++ /dev/null @@ -1 +0,0 @@ -overload sign_extend = {mips_sign_extend}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccslice.tex b/cheri/sail_latexcc/sailccslice.tex deleted file mode 100644 index b9bb5a70..00000000 --- a/cheri/sail_latexcc/sailccslice.tex +++ /dev/null @@ -1,2 +0,0 @@ -val slice = "slice" : forall 'n 'm 'o, 0 <= 'o < 'm & 'o + 'n <= 'm & 0 <= 'n. - (#\hyperref[zbits]{bits}#('m), atom('o), atom('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccstringofint.tex b/cheri/sail_latexcc/sailccstringofint.tex deleted file mode 100644 index 05edaa20..00000000 --- a/cheri/sail_latexcc/sailccstringofint.tex +++ /dev/null @@ -1 +0,0 @@ -val string_of_int = "string_of_int" : int -> string diff --git a/cheri/sail_latexcc/sailccsubatom.tex b/cheri/sail_latexcc/sailccsubatom.tex deleted file mode 100644 index 437e2d4c..00000000 --- a/cheri/sail_latexcc/sailccsubatom.tex +++ /dev/null @@ -1,2 +0,0 @@ -val sub_atom = {ocaml: "sub_int", lem: "integerMinus", c: "sub_int", coq: "Z.sub"} : forall 'n 'm. - (atom('n), atom('m)) -> atom('n - 'm) diff --git a/cheri/sail_latexcc/sailccsubint.tex b/cheri/sail_latexcc/sailccsubint.tex deleted file mode 100644 index 11fdf922..00000000 --- a/cheri/sail_latexcc/sailccsubint.tex +++ /dev/null @@ -1 +0,0 @@ -val sub_int = {ocaml: "sub_int", lem: "integerMinus", c: "sub_int", coq: "Z.sub"} : (int, int) -> int diff --git a/cheri/sail_latexcc/sailccsubrange.tex b/cheri/sail_latexcc/sailccsubrange.tex deleted file mode 100644 index 2aad56b6..00000000 --- a/cheri/sail_latexcc/sailccsubrange.tex +++ /dev/null @@ -1,2 +0,0 @@ -val sub_range = {ocaml: "sub_int", lem: "integerMinus", coq: "sub_range"} : forall 'n 'm 'o 'p. - (range('n, 'm), range('o, 'p)) -> range('n - 'p, 'm - 'o) diff --git a/cheri/sail_latexcc/sailccsubvec.tex b/cheri/sail_latexcc/sailccsubvec.tex deleted file mode 100644 index b92f07a4..00000000 --- a/cheri/sail_latexcc/sailccsubvec.tex +++ /dev/null @@ -1 +0,0 @@ -val sub_vec = {c : "sub_bits", _:"sub_vec"} : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccsubvecint.tex b/cheri/sail_latexcc/sailccsubvecint.tex deleted file mode 100644 index 70bf667e..00000000 --- a/cheri/sail_latexcc/sailccsubvecint.tex +++ /dev/null @@ -1 +0,0 @@ -val sub_vec_int = {c:"sub_bits_int", _: "sub_vec_int"} : forall 'n. (#\hyperref[zbits]{bits}#('n), int) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailcctobits.tex b/cheri/sail_latexcc/sailcctobits.tex deleted file mode 100644 index 9dd3c655..00000000 --- a/cheri/sail_latexcc/sailcctobits.tex +++ /dev/null @@ -1 +0,0 @@ -val to_bits : forall 'l, 'l >= 0 .(atom('l), int) -> #\hyperref[zbits]{bits}#('l) diff --git a/cheri/sail_latexcc/sailcctruncate.tex b/cheri/sail_latexcc/sailcctruncate.tex deleted file mode 100644 index 5f7760f3..00000000 --- a/cheri/sail_latexcc/sailcctruncate.tex +++ /dev/null @@ -1,6 +0,0 @@ -val truncate = { - ocaml: "vector_truncate", - lem: "vector_truncate", - coq: "vector_truncate", - c: "sail_truncate" -} : forall 'm 'n, 'm >= 0 & 'm <= 'n. (vector('n, dec, bit), atom('m)) -> vector('m, dec, bit) diff --git a/cheri/sail_latexcc/sailccuintsixfour.tex b/cheri/sail_latexcc/sailccuintsixfour.tex deleted file mode 100644 index a0d52c8f..00000000 --- a/cheri/sail_latexcc/sailccuintsixfour.tex +++ /dev/null @@ -1 +0,0 @@ -type uint64 = range(0, (2 ^ 64) - 1) diff --git a/cheri/sail_latexcc/sailccunsigned.tex b/cheri/sail_latexcc/sailccunsigned.tex deleted file mode 100644 index 47867039..00000000 --- a/cheri/sail_latexcc/sailccunsigned.tex +++ /dev/null @@ -1,7 +0,0 @@ -val unsigned = { - ocaml: "uint", - lem: "uint", - interpreter: "uint", - c: "sail_unsigned", - coq: "uint" -} : forall 'n. #\hyperref[zbits]{bits}#('n) -> range(0, 2 ^ 'n - 1) diff --git a/cheri/sail_latexcc/sailccvectoraccess.tex b/cheri/sail_latexcc/sailccvectoraccess.tex deleted file mode 100644 index a8e8074f..00000000 --- a/cheri/sail_latexcc/sailccvectoraccess.tex +++ /dev/null @@ -1 +0,0 @@ -overload vector_access = {bitvector_access, plain_vector_access}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccvectorlength.tex b/cheri/sail_latexcc/sailccvectorlength.tex deleted file mode 100644 index f41d5bfa..00000000 --- a/cheri/sail_latexcc/sailccvectorlength.tex +++ /dev/null @@ -1,6 +0,0 @@ -val vector_length = { - ocaml: "length", - lem: "length_list", - c: "length", - coq: "vec_length" -} : forall '#\hyperref[zn]{n}# ('a : Type). vector('n, dec, 'a) -> atom('n) diff --git a/cheri/sail_latexcc/sailccvectorsubrange.tex b/cheri/sail_latexcc/sailccvectorsubrange.tex deleted file mode 100644 index c069c7b6..00000000 --- a/cheri/sail_latexcc/sailccvectorsubrange.tex +++ /dev/null @@ -1,7 +0,0 @@ -val vector_subrange = { - ocaml: "subrange", - lem: "subrange_vec_dec", - c: "vector_subrange", - coq: "subrange_vec_dec" -} : forall ('n : Int) ('m : Int) ('o : Int), 0 <= 'o <= 'm < 'n. - (#\hyperref[zbits]{bits}#('n), atom('m), atom('o)) -> #\hyperref[zbits]{bits}#('m - 'o + 1) diff --git a/cheri/sail_latexcc/sailccvectorupdate.tex b/cheri/sail_latexcc/sailccvectorupdate.tex deleted file mode 100644 index 1ec4aaef..00000000 --- a/cheri/sail_latexcc/sailccvectorupdate.tex +++ /dev/null @@ -1 +0,0 @@ -overload vector_update = {bitvector_update, plain_vector_update}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailccvectorupdatesubrange.tex b/cheri/sail_latexcc/sailccvectorupdatesubrange.tex deleted file mode 100644 index 6ff4f9f6..00000000 --- a/cheri/sail_latexcc/sailccvectorupdatesubrange.tex +++ /dev/null @@ -1,6 +0,0 @@ -val vector_update_subrange = { - ocaml: "update_subrange", - lem: "update_subrange_vec_dec", - c: "vector_update_subrange", - coq: "update_subrange_vec_dec" -} : forall 'n 'm 'o. (#\hyperref[zbits]{bits}#('n), atom('m), atom('o), #\hyperref[zbits]{bits}#('m - ('o - 1))) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailccxorvec.tex b/cheri/sail_latexcc/sailccxorvec.tex deleted file mode 100644 index b3aa7372..00000000 --- a/cheri/sail_latexcc/sailccxorvec.tex +++ /dev/null @@ -1 +0,0 @@ -val xor_vec = {c: "xor_bits" , _: "xor_vec"} : forall 'n. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#('n) diff --git a/cheri/sail_latexcc/sailcczW.tex b/cheri/sail_latexcc/sailcczW.tex deleted file mode 100644 index a29ec93f..00000000 --- a/cheri/sail_latexcc/sailcczW.tex +++ /dev/null @@ -1 +0,0 @@ -overload ~ = {not_bool, not_vec}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozAsznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozAsznine.tex deleted file mode 100644 index 0b0a46e2..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozAsznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator *_s = "mults_vec" : forall 'n . (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#(2 * 'n) diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozAuznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozAuznine.tex deleted file mode 100644 index 5b762ba7..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozAuznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator *_u = "mult_vec" : forall 'n . (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> #\hyperref[zbits]{bits}#(2 * 'n) diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozAznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozAznine.tex deleted file mode 100644 index 2d188f63..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozAznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator *) = {mult_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozBznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozBznine.tex deleted file mode 100644 index 432e85e5..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozBznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator +) = {add_range, add_int, add_vec, add_vec_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozDznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozDznine.tex deleted file mode 100644 index d671e6b0..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozDznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator -) = {sub_range, sub_int, sub_vec, sub_vec_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozFznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozFznine.tex deleted file mode 100644 index 3c2e441c..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozFznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator /) = {quotient_nat, quotient}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozIsznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozIsznine.tex deleted file mode 100644 index 9b4ebe19..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozIsznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator <_s : forall 'n, 'n > 0. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> bool diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozIuznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozIuznine.tex deleted file mode 100644 index 5b54235e..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozIuznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator <_u : forall 'n, 'n >= 0. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> bool diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozIzIznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozIzIznine.tex deleted file mode 100644 index 51ff2b6c..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozIzIznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator <<) = {shift_bits_left, shiftl}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozIzJznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozIzJznine.tex deleted file mode 100644 index d23f28dd..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozIzJznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator <=) = {lteq_atom, lteq_range_atom, lteq_atom_range, lteq_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozIznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozIznine.tex deleted file mode 100644 index 8e5e3fe9..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozIznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator <) = {lt_atom, lt_range_atom, lt_atom_range, lt_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozJzJznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozJzJznine.tex deleted file mode 100644 index 57ea823c..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozJzJznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator ==) = {eq_anything}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozKzJsznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozKzJsznine.tex deleted file mode 100644 index 032e8600..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozKzJsznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator >=_s : forall 'n, 'n > 0. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> bool diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozKzJuznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozKzJuznine.tex deleted file mode 100644 index eaa72e60..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozKzJuznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator >=_u : forall 'n, 'n >= 0. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('n)) -> bool diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozKzJznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozKzJznine.tex deleted file mode 100644 index 5733b740..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozKzJznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator >=) = {gteq_atom, gteq_range_atom, gteq_atom_range, gteq_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozKzKsznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozKzKsznine.tex deleted file mode 100644 index 0f0793a6..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozKzKsznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator >>_s = "shift_bits_right_arith" : forall 'n 'm. (#\hyperref[zbits]{bits}#('n), #\hyperref[zbits]{bits}#('m)) -> #\hyperref[zbits]{bits}#('n) effect {undef} diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozKzKznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozKzKznine.tex deleted file mode 100644 index b129e9d2..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozKzKznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator >>) = {shift_bits_right, shiftr}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozKznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozKznine.tex deleted file mode 100644 index a8da7e48..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozKznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator >) = {gt_atom, gt_range_atom, gt_atom_range, gt_int}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozQzQznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozQzQznine.tex deleted file mode 100644 index 185f501e..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozQzQznine.tex +++ /dev/null @@ -1 +0,0 @@ -val operator ^^ = {lem: "replicate_bits"} : forall 'n 'm, 'm >= 0 . (#\hyperref[zbits]{bits}#('n), atom('m)) -> #\hyperref[zbits]{bits}#('n * 'm) diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozQznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozQznine.tex deleted file mode 100644 index 106b6064..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozQznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator ^) = {xor_vec, int_power}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozUznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozUznine.tex deleted file mode 100644 index 4de737e0..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozUznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator |) = {or_bool, or_bits}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozfiveznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozfiveznine.tex deleted file mode 100644 index 8d6b54c3..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozfiveznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator %) = {modulus}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozonezJznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozonezJznine.tex deleted file mode 100644 index 22052668..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozonezJznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator !=) = {neq_atom, neq_int, neq_vec, neq_anything}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczeightoperatorzzerozsixznine.tex b/cheri/sail_latexcc/sailcczeightoperatorzzerozsixznine.tex deleted file mode 100644 index 248fb15e..00000000 --- a/cheri/sail_latexcc/sailcczeightoperatorzzerozsixznine.tex +++ /dev/null @@ -1 +0,0 @@ -overload (operator &) = {and_bool, and_bits}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczzeroextend.tex b/cheri/sail_latexcc/sailcczzeroextend.tex deleted file mode 100644 index 0f754d44..00000000 --- a/cheri/sail_latexcc/sailcczzeroextend.tex +++ /dev/null @@ -1 +0,0 @@ -overload zero_extend = {mips_zero_extend}
\ No newline at end of file diff --git a/cheri/sail_latexcc/sailcczzeros.tex b/cheri/sail_latexcc/sailcczzeros.tex deleted file mode 100644 index 1c251eda..00000000 --- a/cheri/sail_latexcc/sailcczzeros.tex +++ /dev/null @@ -1 +0,0 @@ -val zeros : forall 'n, 'n >= 0 . unit -> #\hyperref[zbits]{bits}#('n) |
