Skip to content

Commit 5804501

Browse files
author
xleroy
committed
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
1 parent 1e39c09 commit 5804501

File tree

5 files changed

+2
-47
lines changed

5 files changed

+2
-47
lines changed

Changelog

-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ ARM port:
2929
- Exploit some VFPv3 instructions when available.
3030
- Built-in function '__builtin_cntlz' (count leading zeros)
3131
renamed '__builtin_clz' for GCC / Clang compatibility.
32-
- Added built-in functions for load with reservation / store conditional.
3332

3433
PowerPC port:
3534
- Refactored the expansion of built-in functions and
@@ -39,7 +38,6 @@ PowerPC port:
3938
- More efficient code generated for volatile accesses to small data areas.
4039
- Built-in function '__builtin_cntlz' (count leading zeros)
4140
renamed '__builtin_clz' for GCC / Clang compatibility.
42-
- Added built-in functions for load with reservation / store conditional.
4341

4442
IA32 port:
4543
- Added built-in functions __builtin_clz and __builtin_ctz

arm/CBuiltins.ml

+1-17
Original file line numberDiff line numberDiff line change
@@ -49,23 +49,7 @@ let builtins = {
4949
"__builtin_dsb",
5050
(TVoid [], [], false);
5151
"__builtin_isb",
52-
(TVoid [], [], false);
53-
"__builtin_ldrex",
54-
(TInt(IUInt, []), [TPtr(TInt(IUInt, [AConst]), [])], false);
55-
"__builtin_ldrexb",
56-
(TInt(IUChar, []), [TPtr(TInt(IUChar, [AConst]), [])], false);
57-
"__builtin_ldrexh",
58-
(TInt(IUShort, []), [TPtr(TInt(IUShort, [AConst]), [])], false);
59-
"__builtin_ldrexd",
60-
(TInt(IULongLong, []), [TPtr(TInt(IULongLong, [AConst]), [])], false);
61-
"__builtin_strex",
62-
(TInt(IInt, []), [TPtr(TInt(IUInt, []), []); TInt(IUInt, [])], false);
63-
"__builtin_strexb",
64-
(TInt(IInt, []), [TPtr(TInt(IUChar, []), []); TInt(IUChar, [])], false);
65-
"__builtin_strexh",
66-
(TInt(IInt, []), [TPtr(TInt(IUShort, []), []); TInt(IUShort, [])], false);
67-
"__builtin_strexd",
68-
(TInt(IInt, []), [TPtr(TInt(IULongLong, []), []); TInt(IULongLong, [])], false);
52+
(TVoid [], [], false)
6953
]
7054
}
7155

arm/PrintAsm.ml

-17
Original file line numberDiff line numberDiff line change
@@ -603,23 +603,6 @@ let print_builtin_inline oc name args res =
603603
fprintf oc " dsb\n"; 1
604604
| "__builtin_isb", [], _ ->
605605
fprintf oc " isb\n"; 1
606-
| "__builtin_ldrex", [IR addr], [IR dst] ->
607-
fprintf oc " ldrex %a, [%a]\n" ireg dst ireg addr; 1
608-
| "__builtin_ldrexb", [IR addr], [IR dst] ->
609-
fprintf oc " ldrexb %a, [%a]\n" ireg dst ireg addr; 1
610-
| "__builtin_ldrexd", [IR addr], [IR dsth; IR dstl] ->
611-
fprintf oc " ldrexd %a, %a, [%a]\n" ireg dstl ireg dsth ireg addr; 1
612-
| "__builtin_ldrexh", [IR addr], [IR dst] ->
613-
fprintf oc " ldrexh %a, [%a]\n" ireg dst ireg addr; 1
614-
| "__builtin_strex", [IR addr; IR src], [IR res] ->
615-
fprintf oc " strex %a, %a, [%a]\n" ireg res ireg src ireg addr; 1
616-
| "__builtin_strexb", [IR addr; IR src], [IR res] ->
617-
fprintf oc " strexb %a, %a, [%a]\n" ireg res ireg src ireg addr; 1
618-
| "__builtin_strexd", [IR addr; IR srch; IR srcl], [IR res] ->
619-
fprintf oc " strexd %a, %a, %a, [%a]\n" ireg res ireg srcl ireg srch ireg addr; 1
620-
| "__builtin_strexh", [IR addr; IR src], [IR res] ->
621-
fprintf oc " strexh %a, %a, [%a]\n" ireg res ireg src ireg addr; 1
622-
623606

624607
(* Vararg stuff *)
625608
| "__builtin_va_start", [IR a], _ ->

powerpc/Asmexpand.ml

-6
Original file line numberDiff line numberDiff line change
@@ -418,12 +418,6 @@ let expand_builtin_inline name args res =
418418
emit (Pisync)
419419
| "__builtin_trap", [], _ ->
420420
emit (Ptrap)
421-
| "__builtin_lwar", [IR addr], [IR res] ->
422-
emit (Plwarx(res, GPR0, addr))
423-
| "__builtin_stwc", [IR addr; IR src], [IR res] ->
424-
emit (Pstwcx_(src, GPR0, addr));
425-
emit (Pmfcr res);
426-
emit (Prlwinm(res, res, Z.of_uint 3, _1))
427421
(* Vararg stuff *)
428422
| "__builtin_va_start", [IR a], _ ->
429423
expand_builtin_va_start a

powerpc/CBuiltins.ml

+1-5
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,7 @@ let builtins = {
8484
"__builtin_isync",
8585
(TVoid [], [], false);
8686
"__builtin_trap",
87-
(TVoid [], [], false);
88-
"__builtin_lwar",
89-
(TInt(IUInt, []), [TPtr(TInt(IUInt, [AConst]), [])], false);
90-
"__builtin_stwc",
91-
(TInt(IInt, []), [TPtr(TInt(IUInt, []), []); TInt(IUInt, [])], false)
87+
(TVoid [], [], false)
9288
]
9389
}
9490

0 commit comments

Comments
 (0)