From f2831013b46d0486e5e134f26fde9ece7b78ff93 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 7 Sep 2019 09:49:58 +0200 Subject: more for passing notrap through x86 --- backend/Constpropproof.v | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'backend/Constpropproof.v') diff --git a/backend/Constpropproof.v b/backend/Constpropproof.v index eb4b6f17..dca36b4e 100644 --- a/backend/Constpropproof.v +++ b/backend/Constpropproof.v @@ -452,7 +452,8 @@ Proof. - (* Iload notrap1 *) rename pc'0 into pc. TransfInstr. - assert (eval_static_addressing addr (aregs ae args) = Vbot) as Hbot by (eapply eval_static_addressing_sound_none; eauto with va). + destruct (eval_static_addressing addr (aregs ae args)) eqn:Hstatic. + { assert (eval_addressing tge (Vptr sp0 Ptrofs.zero) addr rs' ## args = None) as Hnone. rewrite eval_addressing_preserved with (ge1 := ge). apply eval_addressing_lessdef_none with (vl1 := rs ## args). @@ -463,7 +464,14 @@ Proof. left; econstructor; econstructor; split. eapply exec_Iload_notrap1; eauto. eapply match_states_succ; eauto. apply set_reg_lessdef; auto. - + } + { exploit eval_static_addressing_sound; eauto. + rewrite eval_addressing_preserved with (ge1 := ge). + apply eval_addressing_lessdef with (vl1 := rs ## args). + apply regs_lessdef_regs; assumption. + assumption. + exact symbols_preserved. + } - (* Iload notrap2 *) rename pc'0 into pc. TransfInstr. assert (exists v2 : val, -- cgit