aboutsummaryrefslogtreecommitdiffstats
path: root/ia32
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2015-04-21 10:21:06 +0200
committerXavier Leroy <xavier.leroy@inria.fr>2015-04-21 10:21:06 +0200
commit426881cde464691b61c5c49cf5038d21aace75fe (patch)
tree0817d5fe4d5d51abd793e471f73f0ad9de3f2228 /ia32
parent1b5db339bb05f773a6a132be4c0b8cea54d50461 (diff)
downloadcompcert-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.ml4
-rw-r--r--ia32/TargetPrinter.ml2
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;