@@ -3,15 +3,16 @@ title: Arm C Language Extensions
33version: 2022Q2
44date-of-issue: 01 Jul 2022
55# LaTeX specific variables
6- copyright-text: Copyright
2011-2022 Arm Limited and/or its affiliates <[email protected] >. 7- draftversion: false
6+ copyright-text: " Copyright: see section \\texorpdfstring{\\nameref{copyright}}{Copyright}."
7+ draftversion: true
88# Jekyll specific variables
99header_counter: true
1010toc: true
1111---
1212
1313<!--
1414SPDX-FileCopyrightText: Copyright 2011-2022 Arm Limited and/or its affiliates <
[email protected] >
15+ SPDX-FileCopyrightText: Copyright 2022 Google LLC.
1516CC-BY-SA-4.0 AND Apache-Patent-License
1617See LICENSE.md file for details
1718-->
@@ -113,7 +114,8 @@ about Arm’s trademarks.
113114
114115## Copyright
115116
116- Copyright 2011-2022 Arm Limited and/or its affiliates <
[email protected] >.
117+ * Copyright 2011-2022 Arm Limited and/or its affiliates <
[email protected] >.
118+ * Copyright 2022 Google LLC.
117119
118120## About this document
119121
@@ -312,6 +314,7 @@ Armv8.4-A [[ARMARMv84]](#ARMARMv84). Support is added for the Dot Product intrin
312314* Fixes for [Function Multi Versioning](#function-multi-versioning):
313315 * typo in `FEAT_DPB2`.
314316 * added `FEAT_LS64*`.
317+ * Added feature detection macro `__ARM_FEATURE_RCPC` for RCpc (Release Consistent processor consistent) model at [RCpc](#rcpc).
315318
316319### References
317320
@@ -1505,6 +1508,25 @@ execution state. Intrinsics for the use of these instructions are
15051508specified in [memcpy family of operations intrinsics -
15061509MOPS](#memcpy-family-of-operations-intrinsics---mops)
15071510
1511+ ### RCPC
1512+
1513+ `__ARM_FEATURE_RCPC` is set if the weaker RCpc (Release Consistent
1514+ processor consistent) model is supported. It is undefined otherwise.
1515+ The value indicates the set of Load-Acquire and Store-Release
1516+ instructions available. The intention is to allow programmers to guard
1517+ the usage of these instructions in inline assembly.
1518+
1519+ | **Value** | **Feature** | **Instructions** | **Availability** |
1520+ | --------- | ----------- |-------------------------------- | ------------------------- |
1521+ | 1 | FEAT_LRCPC | LDAPR* instructions | Armv8.4, optional Armv8.2 |
1522+ | 2 | FEAT_LRCPC2 | LDAPUR* and STLUR* instructions | Armv8.3, optional Armv8.2 |
1523+
1524+ If defined, the value of `__ARM_FEATURE_RCPC` remains consistent with the decimal
1525+ value of `LRCPC` field (bits [23:20]) in the `ID_AA64ISAR1_EL1` register.
1526+
1527+ The `__ARM_FEATURE_RCPC` macro can only be implemented in the AArch64
1528+ execution state.
1529+
15081530## Floating-point and vector hardware
15091531
15101532### Hardware floating point
@@ -2136,6 +2158,7 @@ be found in [[BA]](#BA).
21362158| [`__ARM_FEATURE_PAC_DEFAULT`](#pointer-authentication) | Pointer authentication | 0x5 |
21372159| [`__ARM_FEATURE_QBIT`](#q-saturation-flag) | Q (saturation) flag (32-bit-only) | 1 |
21382160| [`__ARM_FEATURE_QRDMX`](#rounding-doubling-multiplies) | SQRDMLxH instructions and associated intrinsics availability | 1 |
2161+ | [`__ARM_FEATURE_RCPC`](#rcpc) | Release Consistent processor consistent Model (64-bit-only) | 1 |
21392162| [`__ARM_FEATURE_RNG`](#random-number-generation-extension) | Random Number Generation Extension (Armv8.5-A) | 1 |
21402163| [`__ARM_FEATURE_SAT`](#saturation-instructions) | Width-specified saturation instructions (32-bit-only) | 1 |
21412164| [`__ARM_FEATURE_SHA2`](#sha2-extension) | SHA2 Crypto extension (Arm v8-A) | 1 |
0 commit comments