diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2015-04-28 11:21:59 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2015-04-28 11:21:59 +0200 |
commit | b04bb783badb9051c62b26fb1858f916d0e4ccd0 (patch) | |
tree | c102a6ccdcfad8b4b3a76cffc2019742232a7cb3 /cparser/Unblock.ml | |
parent | 3c6f5343e0e64b273658b6b3508a8dd6c29b8cef (diff) | |
download | compcert-kvx-b04bb783badb9051c62b26fb1858f916d0e4ccd0.tar.gz compcert-kvx-b04bb783badb9051c62b26fb1858f916d0e4ccd0.zip |
Extended inline asm: handle missing cases.
Bitfields: better translation of initializers and compound literals; run this pass before unblocking.
Transform.stmt: extend with ability to treat unblocked code.
test/regression: more bitfield tests.
Diffstat (limited to 'cparser/Unblock.ml')
-rw-r--r-- | cparser/Unblock.ml | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/cparser/Unblock.ml b/cparser/Unblock.ml index 4013db9b..91f50552 100644 --- a/cparser/Unblock.ml +++ b/cparser/Unblock.ml @@ -225,7 +225,13 @@ let rec unblock_stmt env s = {s with sdesc = Sreturn(Some (expand_expr true env e))} | Sblock sl -> unblock_block env sl | Sdecl d -> assert false - | Sasm _ -> s + | Sasm(attr, template, outputs, inputs, clob) -> + let expand_asm_operand (lbl, cstr, e) = + (lbl, cstr, expand_expr true env e) in + {s with sdesc = Sasm(attr, template, + List.map expand_asm_operand outputs, + List.map expand_asm_operand inputs, clob)} + and unblock_block env = function | [] -> sskip |