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/items/external-blocks.md
+9-2Lines changed: 9 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -138,13 +138,15 @@ There are also some platform-specific ABI strings:
138
138
r[items.extern.abi.cdecl]
139
139
* `unsafeextern "cdecl"` ---The calling convention typically used with x86_32 C code.
140
140
*Only available on x86_32 targets.
141
+
*Corresponds to MSVC's `__cdecl` and GCC and clang's `__attribute__((cdecl))`.
141
142
142
143
> [!NOTE]
143
144
> See <https://learn.microsoft.com/en-us/cpp/cpp/cdecl> and <https://en.wikipedia.org/wiki/X86_calling_conventions#cdecl> for more information.
144
145
145
146
r[items.extern.abi.stdcall]
146
147
* `unsafeextern "stdcall"` ---The calling convention typically used by the [Win32API] on x86_32.
147
148
*Only available on x86_32 targets.
149
+
*Corresponds to MSVC's `__stdcall` and GCC and clang's `__attribute__((stdcall))`.
148
150
149
151
> [!NOTE]
150
152
> See <https://learn.microsoft.com/en-us/cpp/cpp/stdcall> and <https://en.wikipedia.org/wiki/X86_calling_conventions#stdcall> for more information.
@@ -153,6 +155,7 @@ r[items.extern.abi.win64]
153
155
* `unsafeextern "win64"` ---TheWindows x64 ABI.
154
156
*Only available on x86_64 targets.
155
157
* "win64" is the same as the "C" ABI on Windows x86_64 targets.
158
+
*Corresponds to GCC and clang's `__attribute__((ms_abi))`.
156
159
157
160
> [!NOTE]
158
161
> See <https://learn.microsoft.com/en-us/cpp/build/x64-software-conventions> and <https://en.wikipedia.org/wiki/X86_calling_conventions#Microsoft_x64_calling_convention> for more information.
@@ -161,6 +164,7 @@ r[items.extern.abi.sysv64]
161
164
* `unsafeextern "sysv64"` ---TheSystemVABI.
162
165
*Only available on x86_64 targets.
163
166
* "sysv64" is the same as the "C" ABI on non-Windows x86_64 targets.
167
+
*Corresponds to GCC and clang's `__attribute__((sysv_abi))`.
164
168
165
169
> [!NOTE]
166
170
> See <https://wiki.osdev.org/System_V_ABI> or <https://en.wikipedia.org/wiki/X86_calling_conventions#System_V_AMD64_ABI> for more information.
* "aapcs" is the same as the "C" ABI on soft-float ARM32.
176
+
*Corresponds to clang's `__attribute__((pcs("aapcs")))`.
172
177
173
178
> [!NOTE]
174
179
> See [ArmProcedureCallStandard](https://developer.arm.com/documentation/107656/0101/Getting-started-with-Armv8-M-based-systems/Procedure-Call-Standard-for-Arm-Architecture--AAPCS-) for more information.
175
180
176
181
r[items.extern.abi.fastcall]
177
-
* `unsafeextern "fastcall"` ---The `fastcall` ABI--- corresponds to MSVC's `__fastcall` and GCC and clang's `__attribute__((fastcall))`.
182
+
* `unsafeextern "fastcall"` ---A "fast" variant of stdcall that passes some arguments in registers.
178
183
*Only available on x86_32 targets.
184
+
*Corresponds to MSVC's `__fastcall` and GCC and clang's `__attribute__((fastcall))`.
179
185
180
186
> [!NOTE]
181
187
> See <https://learn.microsoft.com/en-us/cpp/cpp/fastcall> and <https://en.wikipedia.org/wiki/X86_calling_conventions#Microsoft_fastcall> for more information.
182
188
183
189
r[items.extern.abi.thiscall]
184
-
* `unsafeextern "thiscall"` ---The calling convention typically used on C++ class member functions on x86_32 MSVC--- corresponds to MSVC's `__thiscall` and GCC and clang's `__attribute__((thiscall))`.
190
+
* `unsafeextern "thiscall"` ---The calling convention typically used on C++ class member functions on x86_32 MSVC.
185
191
*Only available on x86_32 targets.
192
+
*Corresponds to MSVC's `__thiscall` and GCC and clang's `__attribute__((thiscall))`.
186
193
187
194
> [!NOTE]
188
195
> See <https://en.wikipedia.org/wiki/X86_calling_conventions#thiscall> and <https://learn.microsoft.com/en-us/cpp/cpp/thiscall> for more information.
0 commit comments