diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2015-04-21 10:21:06 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2015-04-21 10:21:06 +0200 |
commit | 426881cde464691b61c5c49cf5038d21aace75fe (patch) | |
tree | 0817d5fe4d5d51abd793e471f73f0ad9de3f2228 /ia32 | |
parent | 1b5db339bb05f773a6a132be4c0b8cea54d50461 (diff) | |
download | compcert-426881cde464691b61c5c49cf5038d21aace75fe.tar.gz compcert-426881cde464691b61c5c49cf5038d21aace75fe.zip |
Support for GCC-style extended asm, continued:
- support "r", "m" and "i" constraints
- support "%Q" and "%R" modifiers for register pairs
- support register clobbers
- split off analysis and transformation of asm statements in
cparser/ExtendedAsm.ml
Diffstat (limited to 'ia32')
-rw-r--r-- | ia32/Machregsaux.ml | 4 | ||||
-rw-r--r-- | ia32/TargetPrinter.ml | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/ia32/Machregsaux.ml b/ia32/Machregsaux.ml index 8403746a..3083cf3e 100644 --- a/ia32/Machregsaux.ml +++ b/ia32/Machregsaux.ml @@ -15,8 +15,8 @@ open Machregs let register_names = [ - ("AX", AX); ("BX", BX); ("CX", CX); ("DX", DX); - ("SI", SI); ("DI", DI); ("BP", BP); + ("EAX", AX); ("EBX", BX); ("ECX", CX); ("EDX", DX); + ("ESI", SI); ("EDI", DI); ("EBP", BP); ("XMM0", X0); ("XMM1", X1); ("XMM2", X2); ("XMM3", X3); ("XMM4", X4); ("XMM5", X5); ("XMM6", X6); ("XMM7", X7); ("ST0", FP0) diff --git a/ia32/TargetPrinter.ml b/ia32/TargetPrinter.ml index 7e9471a5..09411fee 100644 --- a/ia32/TargetPrinter.ml +++ b/ia32/TargetPrinter.ml @@ -871,7 +871,7 @@ module Target(System: SYSTEM):TARGET = (Int32.to_int (camlint_of_coqint al)) args | EF_annot_val(txt, targ) -> print_annot_val oc (extern_atom txt) args res - | EF_inline_asm(txt, sg) -> + | EF_inline_asm(txt, sg, clob) -> fprintf oc "%s begin inline assembly\n" comment; fprintf oc "\t"; PrintAnnot.print_inline_asm preg oc (extern_atom txt) sg args res; |