From 712f3cbae6bfd3c6f6cc40d44f438aa0affcd371 Mon Sep 17 00:00:00 2001 From: xleroy Date: Tue, 18 Dec 2012 07:54:35 +0000 Subject: Support for inline assembly (asm statements). cparser: add primitive support for enum types. bitfield emulation: for bitfields with enum type, choose signed/unsigned as appropriate git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2074 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- cfrontend/Cexec.v | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'cfrontend/Cexec.v') diff --git a/cfrontend/Cexec.v b/cfrontend/Cexec.v index b6ea1e05..c768118e 100644 --- a/cfrontend/Cexec.v +++ b/cfrontend/Cexec.v @@ -506,6 +506,7 @@ Definition do_external (ef: external_function): | EF_memcpy sz al => do_ef_memcpy sz al | EF_annot text targs => do_ef_annot text targs | EF_annot_val text targ => do_ef_annot_val text targ + | EF_inline_asm text => do_ef_annot text nil end. Lemma do_ef_external_sound: @@ -575,6 +576,10 @@ Proof with try congruence. unfold do_ef_annot_val. destruct vargs... destruct vargs... mydestr. split. constructor. apply eventval_of_val_sound; auto. econstructor. constructor; eauto. constructor. +(* EF_inline_asm *) + unfold do_ef_annot. destruct vargs; simpl... mydestr. + split. constructor. constructor. + econstructor. constructor; eauto. constructor. Qed. Lemma do_ef_external_complete: @@ -633,6 +638,8 @@ Proof. (* EF_annot_val *) inv H; unfold do_ef_annot_val. inv H0. inv H6. inv H4. rewrite (eventval_of_val_complete _ _ _ H1). auto. +(* EF_inline_asm *) + inv H; unfold do_ef_annot. inv H0. inv H6. inv H4. inv H1. simpl. auto. Qed. (** * Reduction of expressions *) -- cgit