From dff22ef6d855973e0e0f05c7203a6bfa9a4cf01a Mon Sep 17 00:00:00 2001 From: Xavier Leroy Date: Thu, 15 Jun 2017 15:11:26 +0200 Subject: Extend builtin arguments with a pointer addition operator This extension enables more addressing modes to be encoded as builtin arguments and used in conjunction with volatile memory accesses. Current status: x86 port only, the only new addressing mode handled is reg + offset. --- backend/Stackingproof.v | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'backend/Stackingproof.v') diff --git a/backend/Stackingproof.v b/backend/Stackingproof.v index b885d22c..d3d901b6 100644 --- a/backend/Stackingproof.v +++ b/backend/Stackingproof.v @@ -1744,6 +1744,10 @@ Local Opaque fe. destruct IHeval_builtin_arg2 as (v2 & A2 & B2); auto using in_or_app. exists (Val.longofwords v1 v2); split; auto with barg. apply Val.longofwords_inject; auto. +- destruct IHeval_builtin_arg1 as (v1' & A1 & B1); auto using in_or_app. + destruct IHeval_builtin_arg2 as (v2' & A2 & B2); auto using in_or_app. + econstructor; split. eauto with barg. + destruct Archi.ptr64; auto using Val.add_inject, Val.addl_inject. Qed. Lemma transl_builtin_args_correct: -- cgit