diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2014-08-28 09:21:22 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2014-08-28 09:21:22 +0000 |
commit | 58045010316833fe838e8fa52bea1220126b760b (patch) | |
tree | 8f34e25bfb84e88448932650dd982b6a407d0d21 /arm | |
parent | 1e39c09cd2b680b7ba5a5fd8436a0ec514762c02 (diff) |
Cold feet: suppress builtins for load with reservation/store conditional, use case is unclear.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2622 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'arm')
-rw-r--r-- | arm/CBuiltins.ml | 18 | ||||
-rw-r--r-- | arm/PrintAsm.ml | 17 |
2 files changed, 1 insertions, 34 deletions
diff --git a/arm/CBuiltins.ml b/arm/CBuiltins.ml index 6f62bed..17aa511 100644 --- a/arm/CBuiltins.ml +++ b/arm/CBuiltins.ml @@ -49,23 +49,7 @@ let builtins = { "__builtin_dsb", (TVoid [], [], false); "__builtin_isb", - (TVoid [], [], false); - "__builtin_ldrex", - (TInt(IUInt, []), [TPtr(TInt(IUInt, [AConst]), [])], false); - "__builtin_ldrexb", - (TInt(IUChar, []), [TPtr(TInt(IUChar, [AConst]), [])], false); - "__builtin_ldrexh", - (TInt(IUShort, []), [TPtr(TInt(IUShort, [AConst]), [])], false); - "__builtin_ldrexd", - (TInt(IULongLong, []), [TPtr(TInt(IULongLong, [AConst]), [])], false); - "__builtin_strex", - (TInt(IInt, []), [TPtr(TInt(IUInt, []), []); TInt(IUInt, [])], false); - "__builtin_strexb", - (TInt(IInt, []), [TPtr(TInt(IUChar, []), []); TInt(IUChar, [])], false); - "__builtin_strexh", - (TInt(IInt, []), [TPtr(TInt(IUShort, []), []); TInt(IUShort, [])], false); - "__builtin_strexd", - (TInt(IInt, []), [TPtr(TInt(IULongLong, []), []); TInt(IULongLong, [])], false); + (TVoid [], [], false) ] } diff --git a/arm/PrintAsm.ml b/arm/PrintAsm.ml index 01ec716..e9b20d4 100644 --- a/arm/PrintAsm.ml +++ b/arm/PrintAsm.ml @@ -603,23 +603,6 @@ let print_builtin_inline oc name args res = fprintf oc " dsb\n"; 1 | "__builtin_isb", [], _ -> fprintf oc " isb\n"; 1 - | "__builtin_ldrex", [IR addr], [IR dst] -> - fprintf oc " ldrex %a, [%a]\n" ireg dst ireg addr; 1 - | "__builtin_ldrexb", [IR addr], [IR dst] -> - fprintf oc " ldrexb %a, [%a]\n" ireg dst ireg addr; 1 - | "__builtin_ldrexd", [IR addr], [IR dsth; IR dstl] -> - fprintf oc " ldrexd %a, %a, [%a]\n" ireg dstl ireg dsth ireg addr; 1 - | "__builtin_ldrexh", [IR addr], [IR dst] -> - fprintf oc " ldrexh %a, [%a]\n" ireg dst ireg addr; 1 - | "__builtin_strex", [IR addr; IR src], [IR res] -> - fprintf oc " strex %a, %a, [%a]\n" ireg res ireg src ireg addr; 1 - | "__builtin_strexb", [IR addr; IR src], [IR res] -> - fprintf oc " strexb %a, %a, [%a]\n" ireg res ireg src ireg addr; 1 - | "__builtin_strexd", [IR addr; IR srch; IR srcl], [IR res] -> - fprintf oc " strexd %a, %a, %a, [%a]\n" ireg res ireg srcl ireg srch ireg addr; 1 - | "__builtin_strexh", [IR addr; IR src], [IR res] -> - fprintf oc " strexh %a, %a, [%a]\n" ireg res ireg src ireg addr; 1 - (* Vararg stuff *) | "__builtin_va_start", [IR a], _ -> |