You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/c-api.adoc
+31-33Lines changed: 31 additions & 33 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -152,31 +152,6 @@ For example:
152
152
|`+__riscv_cmodel_large+` |1 |Defined if using `large` code model.
153
153
|===
154
154
155
-
[id=unstable_preprocessor_definitions]
156
-
=== Unstable Preprocessor Definitions
157
-
158
-
The following preprocessor definitions should be treated as unstable, and not
159
-
relied upon by the public interfaces in your code. They may be changed by new
160
-
compiler versions, compiler options, or on a per-processor basis.
161
-
162
-
.Unstable Preprocessor Definitions
163
-
[cols="30,~"]
164
-
|===
165
-
|*Name* |*Description*
166
-
|`+__GCC_CONSTRUCTIVE_SIZE+` |The maximum recommended size of contiguous memory occupied by two objects accessed with temporal locality by concurrent threads.
167
-
|`+__GCC_DESTRUCTIVE_SIZE+` |The minimum recommended offset between two concurrently-accessed objects to avoid additional performance degradation due to contention introduced by the implementation.
168
-
|`+INT_FASTN_WIDTH+` |Bit width of an object of type `+int_fastN_t+`
169
-
|`+INT_FASTN_MIN+` |Minimum value of an object of type `+int_fastN_t+`
170
-
|`+INT_FASTN_MAX+` |Maximum value of an object of type `+int_fastN_t+`
171
-
|`+INT_LEASTN_WIDTH+` |Bit width of an object of type `+int_leastN_t+`
172
-
|`+INT_LEASTN_MIN+` |Minimum value of an object of type `+int_leastN_t+`
173
-
|`+INT_LEASTN_MAX+` |Maximum value of an object of type `+int_leastN_t+`
174
-
|`+UINT_FASTN_WIDTH+` |Bit width of an object of type `+uint_fastN_t+`
175
-
|`+UINT_FASTN_MAX+` |Maximum value of an object of type `+uint_fastN_t+`
176
-
|`+UINT_LEASTN_WIDTH+` |Bit width of an object of type `+uint_leastN_t+`
177
-
|`+UINT_LEASTN_MAX+` |Maximum value of an object of type `+uint_leastN_t+`
178
-
|===
179
-
180
155
=== Deprecated Preprocessor Definitions
181
156
182
157
.fn-1: footnote:[Not all compilers provide `-mno-div` and `-mno-fdiv` option.]
@@ -195,17 +170,40 @@ compiler versions, compiler options, or on a per-processor basis.
195
170
|`+__riscv_compressed+` |1 |`C` extension is available. | `+__riscv_c+`
196
171
|===
197
172
198
-
== C Types
173
+
== Non-Interoperable Types and Definitions
174
+
175
+
There are several implementation-defined C/C++ types and constants that are
176
+
usually implemented in RISC-V implementations. The types and constants in this
177
+
section should not be relied upon by public interfaces in your code. Their
178
+
definitions may be changed by new compiler versions, compiler options, or on a
179
+
per-processor basis.
199
180
200
-
Most C type sizes and alignments are defined by the ABI.
181
+
[id=non_interoperable_constants]
182
+
.Non-Interoperable C/C++ Constants
183
+
[cols="30,~"]
184
+
|===
185
+
|*Name* |*Description*
186
+
|`+std::hardware_constructive_interference_size+` |The maximum recommended size of contiguous memory occupied by two objects accessed with temporal locality by concurrent threads.
187
+
|`+std::hardware_destructive_interference_size+` |The minimum recommended offset between two concurrently-accessed objects to avoid additional performance degradation due to contention introduced by the implementation.
188
+
|`+INT_FASTN_WIDTH+` |Bit width of an object of type `+int_fastN_t+`
189
+
|`+INT_FASTN_MIN+` |Minimum value of an object of type `+int_fastN_t+`
190
+
|`+INT_FASTN_MAX+` |Maximum value of an object of type `+int_fastN_t+`
191
+
|`+INT_LEASTN_WIDTH+` |Bit width of an object of type `+int_leastN_t+`
192
+
|`+INT_LEASTN_MIN+` |Minimum value of an object of type `+int_leastN_t+`
193
+
|`+INT_LEASTN_MAX+` |Maximum value of an object of type `+int_leastN_t+`
194
+
|`+UINT_FASTN_WIDTH+` |Bit width of an object of type `+uint_fastN_t+`
195
+
|`+UINT_FASTN_MAX+` |Maximum value of an object of type `+uint_fastN_t+`
196
+
|`+UINT_LEASTN_WIDTH+` |Bit width of an object of type `+uint_leastN_t+`
197
+
|`+UINT_LEASTN_MAX+` |Maximum value of an object of type `+uint_leastN_t+`
198
+
|===
201
199
202
-
=== Unstable C Type Sizes and Alignments
200
+
=== Non-Interoperable Types
203
201
204
-
The following type sizes and alignments should be treated as unstable, and not
205
-
relied upon by the public interfaces in your code. They may be changed by new
206
-
compiler versions, compiler options, or on a per-processor basis.
202
+
Most C type sizes and alignments are defined by the ABI. The following types
203
+
should not be relied upon by public interfaces in your code. Their sizes and
204
+
alignments are not fixed.
207
205
208
-
.Unstable Type Sizes and Alignments
206
+
.Non-Interoperable Types
209
207
[cols="30,~"]
210
208
|===
211
209
|*Type* |*Description*
@@ -215,7 +213,7 @@ compiler versions, compiler options, or on a per-processor basis.
215
213
|`+uint_leastN_t+` |Smallest unsigned integer types with widths of at least `+N+` bits.
216
214
|===
217
215
218
-
The corresponding Macro constants are also unstable (see <<unstable_preprocessor_definitions, Unstable Preprocessor Definitions>>).
216
+
The corresponding constants are also unstable (see <<non_interoperable_constants, Non-Interoperable Constants>>).
0 commit comments