Commit Graph

2142 Commits

Author SHA1 Message Date
Miki Tanaka ea7b95d4dd arm-hyp refine: vcpuSave_corres for the new vcpuSave 2017-06-19 14:32:41 +10:00
Miki Tanaka ce4d7ba056 arm-hyp haskell: fix wrong register name in new vcpuSave 2017-06-19 14:32:41 +10:00
Gerwin Klein a36043fec1 arm-hyp crefine: update IsolatedThreadActions for vcpuSave change 2017-06-19 14:32:41 +10:00
Miki Tanaka f6f4d724fe arm-hyp refine: more sorries in CNodeInv_R and Schedule_R for spec updates 2017-06-19 14:32:41 +10:00
Alejandro Gomez-Londono c32ae000fc arm-hyp ainvs: Clear sorries in ArchEmptyFail_AI 2017-06-19 14:32:41 +10:00
Miki Tanaka 131972d498 arm-hyp refine: VSpace_R sorried for spec change fixes 2017-06-19 14:32:41 +10:00
Miki Tanaka 3d859cdad7 arm-hyp invariants: more sorries and fixes 2017-06-19 14:32:41 +10:00
Gerwin Klein d037bb83f8 arm-hyp ainvs: proof fixes for new new vcpu_save definition 2017-06-19 14:32:41 +10:00
Miki Tanaka de42edf6c5 arm-hyp invariants: add invariants for new vcpu_save definition (wip) 2017-06-19 14:32:41 +10:00
Miki Tanaka e54339e9ab arm-hyp abstract: rephrase vcpu_save for easier match with C 2017-06-19 14:32:41 +10:00
Gerwin Klein 9720d48455 arm-hyp haskell: [squash this] fix Haskell vcpuUpdate 2017-06-19 14:32:41 +10:00
Gerwin Klein da1aaa5014 arm-hyp design: update skeleton to include new Haskell functions 2017-06-19 14:32:41 +10:00
Gerwin Klein bb12917ba1 arm-hyp haskell: rephrase vcpuSave for easier match with C 2017-06-19 14:32:41 +10:00
Miki Tanaka 08bd86042a arm-hyp crefine: reflect spec changes for makeVIRQ and decodeVCPUInjectIRQ 2017-06-19 14:32:41 +10:00
Miki Tanaka 3e65a59f1c arm-hyp refine: fix for makeVIRQ spec change 2017-06-19 14:32:41 +10:00
Miki Tanaka c06b58f369 arm-hyp abstract: correct make_virq 2017-06-19 14:32:41 +10:00
Miki Tanaka 100ac2cee1 arm-hyp haskell: correct makeVIRQ 2017-06-19 14:32:41 +10:00
Miki Tanaka 953a42a923 arm-hyp abstract: correct range_check fix for decode_vcpu_inject_irq 2017-06-19 14:32:41 +10:00
Miki Tanaka 8ca5198a7e arm-hyp haskell: correct range_check fix for decodeVCPUInjectIRQ 2017-06-19 14:32:41 +10:00
Rafal Kolanski 2ed26c2c00 arm-hyp crefine: finish proof of invokeVCPUInjectIRQ_ccorres
Possible now that virq_t is storable.
2017-06-19 14:32:41 +10:00
Rafal Kolanski 1d72a3e389 arm-hyp crefine: put virq_C in twoToSix_packed class
Somewhere automation has failed, resulting in virq_C not being in a size
class, hence arrays not being in packed_type. Therefore typ_heap_simps
would not work since strictly speaking there was no indication the
object could be stored in memory.

This caused hours of suffering for all concerned.
2017-06-19 14:32:40 +10:00
Rafal Kolanski 6266d327f8 arm-hyp: isolate evil vgicLR update cmap_relation lemma
see: vcpu_vgic_lr_update_cmap_relation

This is hard, might take a while.
2017-06-19 14:32:40 +10:00
Rafal Kolanski a4b8684232 arm-hyp crefine: virq_virq_pending_EN_new_spec (incl 1 sorry)
makeVIRQ is sadly wrong, new spec is sorried, waiting for upstream
update to conform
2017-06-19 14:32:40 +10:00
Rafal Kolanski db2e052295 arm-hyp crefine: (invoke|decode)VCPUInjectIRQ_ccorres (incl. 3 sorries)
Sorried:
  - definition waiting on upstream change (decodeVCPUInjectIRQ_def)
  - hard word proof in progress
  - stuckage on typ_heap_simps not firing
2017-06-19 14:32:40 +10:00
Rafal Kolanski d4edba3e07 arm-hyp crefine: setMR_as_setRegister_ccorres
usually when we call setMR directly, we mean to only set one,
which will fit in actual registers
2017-06-19 14:32:40 +10:00
Rafal Kolanski ef93982d2f arm-hyp crefine: convenience lemmas and augmentations
- add proper ccorres_pre_gets_armKSGICVCPUNumListRegs_ksArchState
  - many of the other ccorres_pre_gets* lemmas are TOO WEAK to use safely!
- shiftr_and_eq_shiftl (proof by Matthew Brecknell)
2017-06-19 14:32:40 +10:00
Rafal Kolanski a5c9384df5 clib: ccorres_grab_asm
like ccorres_gen_asm, but when your last conjunct is K (...)
2017-06-19 14:32:40 +10:00
Rafal Kolanski 0abead8f71 clib: add ccorres_rewrite_cond_sr_Seq
analogous to non-Seq version
2017-06-19 14:32:40 +10:00
Gerwin Klein 28c47bf706 arm-hyp: temporarily remove ASpec_ARM ExecSpec_ARM tests 2017-06-19 14:32:40 +10:00
Joel Beeren 7969414919 arm-hyp crefine: fix some sorries in Ipc_C, fixed proofs broken by sanitiseRegister change 2017-06-19 14:32:40 +10:00
Joel Beeren 8ae57e7a81 arm-hyp refine: fix breakages from sanitiseRegister_refactor 2017-06-19 14:32:40 +10:00
Joel Beeren 61353891dd arm-hyp haskell: refactor sanitiseRegister 2017-06-19 14:32:40 +10:00
Joel Beeren 083e65a4b2 arm-hyp ainvs: fix ainvs after sanitise_register refactor 2017-06-19 14:32:40 +10:00
Joel Beeren cd7820e026 arm-hyp abstract: refactor sanitise_register to not take kernel_object 2017-06-19 14:32:40 +10:00
Gerwin Klein e33d4d3145 arm-hyp crefine: widen VSpace_C sorry for spec changes 2017-06-19 14:32:40 +10:00
Gerwin Klein 3a7d75e554 arm-hyp crefine: adapt to spec changes 2017-06-19 14:32:40 +10:00
Alejandro Gomez-Londono d531dc9dc5 arm-hyp refine: fixed invokeVCPUInjectIRQ_corres 2017-06-19 14:32:40 +10:00
Miki Tanaka 6b3528b24d arm-hyp refine: sorry fallouts from invoke_vcpu_inject_irq change 2017-06-19 14:32:40 +10:00
Miki Tanaka 3ef274ecf1 arm-hyp invariants: fix fallouts from invoke_vcpu_inject_irq changey 2017-06-19 14:32:39 +10:00
Miki Tanaka 7067365560 arm-hyp abtract: change invoke_vcpu_inject_irq definition for better matchin 2017-06-19 14:32:39 +10:00
Miki Tanaka 4e98e6e2a5 arm-hyp haskell: change invokeVCPUInjectIRQ definition for better matching 2017-06-19 14:32:39 +10:00
Miki Tanaka a07c41a43b arm-hyp refine: fix fallouts from the spec changes (excluding those in vcpu_save), with 1 sorry in Arch_R 2017-06-19 14:32:39 +10:00
Miki Tanaka dbbd74d9cf arm-hyp abstract: fix range_check off-by-one error in decode_vcpu_inject_irq 2017-06-19 14:32:39 +10:00
Miki Tanaka f47a157172 arm-hyp haskell: fix range_check off-by-one error in decodeVCPUInjectIRQ 2017-06-19 14:32:39 +10:00
Miki Tanaka 1c6124b578 arm-hyp abstract: make the loop range in vcpuRestore depend on arm_gicvcpu_numlistregs 2017-06-19 14:32:39 +10:00
Miki Tanaka 8326c5619f arm-hyp haskell: make the loop range in vcpuRestore depend on armKSGICVCPUNumListRegs 2017-06-19 14:32:39 +10:00
Gerwin Klein 35a24ecf4e arm-hyp crefine: repair setVMRoot lemma
Only the 2 loop sorries now left in VSpace_C
2017-06-19 14:32:39 +10:00
Gerwin Klein 1cb83b6351 arm-hyp crefine: close 1 sorry in VSpace_C 2017-06-19 14:32:39 +10:00
Gerwin Klein 85efb9d922 arm-hyp crefine: update state relation for new vgic fault message 2017-06-19 14:32:39 +10:00
Joel Beeren fd660775ee arm-hyp abstract: correct makeArchFaultMessage for VGICMaintenance faults 2017-06-19 14:32:39 +10:00