aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Schmidt <github@mschmidt.me>2015-12-14 09:51:46 +0100
committerMichael Schmidt <github@mschmidt.me>2015-12-14 09:51:46 +0100
commit08365cdd07e1b688b5a3885b9cf69626af63baf2 (patch)
treefca173335923c94d174889a0cd68f61c9ec6d04a
parent75a55495bdde3eb2366dd164a4c44f416fc592a0 (diff)
downloadcompcert-kvx-08365cdd07e1b688b5a3885b9cf69626af63baf2.tar.gz
compcert-kvx-08365cdd07e1b688b5a3885b9cf69626af63baf2.zip
bug 17752, builtin_nop for ia32
-rw-r--r--ia32/Asmexpand.ml3
-rw-r--r--ia32/CBuiltins.ml3
2 files changed, 6 insertions, 0 deletions
diff --git a/ia32/Asmexpand.ml b/ia32/Asmexpand.ml
index dcea9de4..d7b554dc 100644
--- a/ia32/Asmexpand.ml
+++ b/ia32/Asmexpand.ml
@@ -343,6 +343,9 @@ let expand_builtin_inline name args res =
(* Synchronization *)
| "__builtin_membar", [], _ ->
()
+ (* no operation *)
+ | "__builtin_nop", [], _ ->
+ emit (Pxchg_rr (EAX,EAX))
(* Catch-all *)
| _ ->
raise (Error ("unrecognized builtin " ^ name))
diff --git a/ia32/CBuiltins.ml b/ia32/CBuiltins.ml
index 125e71d5..771d2786 100644
--- a/ia32/CBuiltins.ml
+++ b/ia32/CBuiltins.ml
@@ -65,6 +65,9 @@ let builtins = {
(TVoid [], [TPtr(TInt(IUShort, []), []); TInt(IUShort, [])], false);
"__builtin_write32_reversed",
(TVoid [], [TPtr(TInt(IUInt, []), []); TInt(IUInt, [])], false);
+ (* no operation *)
+ "__builtin_nop",
+ (TVoid [], [], false);
]
}