共用方式為


ARM 內建函式

Visual C++ 編譯器在 ARM 結構使下列內建可用。 如需和的詳細資訊,請 ARM 結構參考手冊 參閱和 ARM 組譯工具指南 中的 Infocenter 網站上。

ARM 指令集的霓虹向量延伸提供唯一的 x86 和 x64 架構處理器通用的表示多資料類似那些在 MMX (SIMD) 的功能和 SSE 向量指令集。

霓虹內建在標頭檔支援 arm_neon.h,所提供。 Visual C++ 編譯器支援霓虹本質類似的編譯器,在 飛出視窗的編譯器 toolchain,版本 4.1 編譯器參考 ARM Infocenter 網站的附錄 G 文件。

Visual C++ 編譯器和 ARM 編譯器之間的主要差異是 Visual C++ 編譯器將 vldX 和 vstX 向量載入和儲存指示的 _ex 變數。 _ex 變數會指定指標引數的對齊的額外參數,但其非_ex 對應原來相同。

ARM 特定內建清單

函式名稱

指令

函式原型

_arm_smlal

SMLAL

_arm_smlal __int64 (__int64 _RdHiLo int _Rn _Rm, int)

_arm_umlal

UMLAL

_arm_umlal unsigned __int64 (unsigned __int64 _RdHiLo、unsigned int _Rn,不帶正負號的整數 _Rm)

_arm_clz

CLZ

不帶正負號的整數 _arm_clz (不帶正負號的整數 _Rm)

_arm_qadd

QADD

int _arm_qadd (int, int _Rm _Rn)

_arm_qdadd

QDADD

int _arm_qdadd (int, int _Rm _Rn)

_arm_qdsub

QDSUB

int _arm_qdsub (int, int _Rm _Rn)

_arm_qsub

QSUB

int _arm_qsub (int, int _Rm _Rn)

_arm_smlabb

SMLABB

int _arm_smlabb (int _Rn int _Rm _Ra, int)

_arm_smlabt

SMLABT

int _arm_smlabt (int _Rn int _Rm _Ra, int)

_arm_smlatb

SMLATB

int _arm_smlatb (int _Rn int _Rm _Ra, int)

_arm_smlatt

SMLATT

int _arm_smlatt (int _Rn int _Rm _Ra, int)

_arm_smlalbb

SMLALBB

__int64 _arm_smlalbb (__int64 _RdHiLo int _Rn _Rm, int)

_arm_smlalbt

SMLALBT

__int64 _arm_smlalbt (__int64 _RdHiLo int _Rn _Rm, int)

_arm_smlaltb

SMLALTB

__int64 _arm_smlaltb (__int64 _RdHiLo int _Rn _Rm, int)

_arm_smlaltt

SMLALTT

__int64 _arm_smlaltt (__int64 _RdHiLo int _Rn _Rm, int)

_arm_smlawb

SMLAWB

int _arm_smlawb (int _Rn int _Rm _Ra, int)

_arm_smlawt

SMLAWT

int _arm_smlawt (int _Rn int _Rm _Ra, int)

_arm_smulbb

SMULBB

int _arm_smulbb (int, int _Rn _Rm)

_arm_smulbt

SMULBT

int _arm_smulbt (int, int _Rn _Rm)

_arm_smultb

SMULTB

int _arm_smultb (int, int _Rn _Rm)

_arm_smultt

SMULTT

int _arm_smultt (int, int _Rn _Rm)

_arm_smulwb

SMULWB

int _arm_smulwb (int, int _Rn _Rm)

_arm_smulwt

SMULWT

int _arm_smulwt (int, int _Rn _Rm)

_arm_sadd16

SADD16

int _arm_sadd16 (int, int _Rn _Rm)

_arm_sadd8

SADD8

int _arm_sadd8 (int, int _Rn _Rm)

_arm_sasx

SASX

int _arm_sasx (int, int _Rn _Rm)

_arm_ssax

SSAX

int _arm_ssax (int, int _Rn _Rm)

_arm_ssub16

SSUB16

int _arm_ssub16 (int, int _Rn _Rm)

_arm_ssub8

SSUB8

int _arm_ssub8 (int, int _Rn _Rm)

_arm_shadd16

SHADD16

int _arm_shadd16 (int, int _Rn _Rm)

_arm_shadd8

SHADD8

int _arm_shadd8 (int, int _Rn _Rm)

_arm_shasx

SHASX

int _arm_shasx (int, int _Rn _Rm)

_arm_shsax

SHSAX

int _arm_shsax (int, int _Rn _Rm)

_arm_shsub16

SHSUB16

int _arm_shsub16 (int, int _Rn _Rm)

_arm_shsub8

SHSUB8

int _arm_shsub8 (int, int _Rn _Rm)

_arm_qadd16

QADD16

int _arm_qadd16 (int, int _Rn _Rm)

_arm_qadd8

QADD8

int _arm_qadd8 (int, int _Rn _Rm)

_arm_qasx

QASX

int _arm_qasx (int, int _Rn _Rm)

_arm_qsax

QSAX

int _arm_qsax (int, int _Rn _Rm)

_arm_qsub16

QSUB16

int _arm_qsub16 (int, int _Rn _Rm)

_arm_qsub8

QSUB8

int _arm_qsub8 (int, int _Rn _Rm)

_arm_uadd16

UADD16

不帶正負號的整數 _arm_uadd16 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uadd8

UADD8

不帶正負號的整數 _arm_uadd8 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uasx

UASX

不帶正負號的整數 _arm_uasx (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_usax

USAX

不帶正負號的整數 _arm_usax (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_usub16

USUB16

不帶正負號的整數 _arm_usub16 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_usub8

USUB8

不帶正負號的整數 _arm_usub8 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uhadd16

UHADD16

不帶正負號的整數 _arm_uhadd16 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uhadd8

UHADD8

不帶正負號的整數 _arm_uhadd8 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uhasx

UHASX

不帶正負號的整數 _arm_uhasx (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uhsax

UHSAX

不帶正負號的整數 _arm_uhsax (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uhsub16

UHSUB16

不帶正負號的整數 _arm_uhsub16 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uhsub8

UHSUB8

不帶正負號的整數 _arm_uhsub8 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uqadd16

UQADD16

不帶正負號的整數 _arm_uqadd16 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uqadd8

UQADD8

不帶正負號的整數 _arm_uqadd8 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uqasx

UQASX

不帶正負號的整數 _arm_uqasx (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uqsax

UQSAX

不帶正負號的整數 _arm_uqsax (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uqsub16

UQSUB16

不帶正負號的整數 _arm_uqsub16 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_uqsub8

UQSUB8

不帶正負號的整數 _arm_uqsub8 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_sxtab

SXTAB

int _arm_sxtab _Rn (int, int _Rm unsigned int _Rotation)

_arm_sxtab16

SXTAB16

int _arm_sxtab16 _Rn (int, int _Rm unsigned int _Rotation)

_arm_sxtah

SXTAH

int _arm_sxtah _Rn (int, int _Rm unsigned int _Rotation)

_arm_uxtab

UXTAB

不帶正負號的整數 _arm_uxtab (不帶正負號的整數 _Rn、unsigned int _Rm,不帶正負號的整數 _Rotation)

_arm_uxtab16

UXTAB16

不帶正負號的整數 _arm_uxta16b (不帶正負號的整數 _Rn、unsigned int _Rm,不帶正負號的整數 _Rotation)

_arm_uxtah

UXTAH

不帶正負號的整數 _arm_uxtah (不帶正負號的整數 _Rn、unsigned int _Rm,不帶正負號的整數 _Rotation)

_arm_sxtb

SXTB

_arm_sxtb (int, int _Rn unsigned int _Rotation)

_arm_sxtb16

SXTB16

_arm_sxtb16 (int, int _Rn unsigned int _Rotation)

_arm_sxth

SXTH

_arm_sxth (int, int _Rn unsigned int _Rotation)

_arm_uxtb

UXTB

不帶正負號的整數 _arm_uxtb (不帶正負號的整數, _Rn unsigned int _Rotation)

_arm_uxtb16

UXTB16

不帶正負號的整數 _arm_uxtb16 (不帶正負號的整數, _Rn unsigned int _Rotation)

_arm_uxth

UXTH

不帶正負號的整數 _arm_uxth (不帶正負號的整數, _Rn unsigned int _Rotation)

_arm_pkhbt

PKHBT

int _arm_pkhbt _Rn (int, int _Rm unsigned int _Lsl_imm)

_arm_pkhtb

PKHTB

int _arm_pkhtb _Rn (int, int _Rm unsigned int _Asr_imm)

_arm_usad8

USAD8

不帶正負號的整數 _arm_usad8 (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_usada8

USADA8

不帶正負號的整數 _arm_usada8 (不帶正負號的整數 _Rn、unsigned int _Rm,不帶正負號的整數 _Ra)

_arm_ssat

SSAT

int _arm_ssat (不帶正負號的整數 _Sat_imm、_int _Rn、_ARMINTR_SHIFT_T _Shift_type,不帶正負號的整數 _Shift_imm)

_arm_usat

USAT

int _arm_usat (不帶正負號的整數 _Sat_imm、_int _Rn、_ARMINTR_SHIFT_T _Shift_type,不帶正負號的整數 _Shift_imm)

_arm_ssat16

SSAT16

int _arm_ssat16 (不帶正負號的整數 _Sat_imm, _int _Rn)

_arm_usat16

USAT16

int _arm_usat16 (不帶正負號的整數 _Sat_imm, _int _Rn)

_arm_rev

REV

不帶正負號的整數 _arm_rev (不帶正負號的整數 _Rm)

_arm_rev16

REV16

不帶正負號的整數 _arm_rev16 (不帶正負號的整數 _Rm)

_arm_revsh

REVSH

不帶正負號的整數 _arm_revsh (不帶正負號的整數 _Rm)

_arm_smlad

SMLAD

int _arm_smlad (int _Rn int _Rm _Ra, int)

_arm_smladx

SMLADX

int _arm_smladx (int _Rn int _Rm _Ra, int)

_arm_smlsd

SMLSD

int _arm_smlsd (int _Rn int _Rm _Ra, int)

_arm_smlsdx

SMLSDX

int _arm_smlsdx (int _Rn int _Rm _Ra, int)

_arm_smmla

SMMLA

int _arm_smmla (int _Rn int _Rm _Ra, int)

_arm_smmlar

SMMLAR

_arm_smmlar 的 int (int _Rn int _Rm _Ra, int)

_arm_smmls

SMMLS

int _arm_smmls (int _Rn int _Rm _Ra, int)

_arm_smmlsr

SMMLSR

int _arm_smmlsr (int _Rn int _Rm _Ra, int)

_arm_smmul

SMMUL

int _arm_smmul (int, int _Rn _Rm)

_arm_smmulr

SMMULR

int _arm_smmulr (int, int _Rn _Rm)

_arm_smlald

SMLALD

__int64 _arm_smlald (__int64 _RdHiLo int _Rn _Rm, int)

_arm_smlaldx

SMLALDX

__int64 _arm_smlaldx (__int64 _RdHiLo int _Rn _Rm, int)

_arm_smlsld

SMLSLD

__int64 _arm_smlsld (__int64 _RdHiLo int _Rn _Rm, int)

_arm_smlsldx

SMLSLDX

__int64 _arm_smlsldx (__int64 _RdHiLo int _Rn _Rm, int)

_arm_smuad

SMUAD

int _arm_smuad (int, int _Rn _Rm)

_arm_smuadx

SMUADX

int _arm_muadxs (int, int _Rn _Rm)

_arm_smusd

SMUSD

int _arm_smusd (int, int _Rn _Rm)

_arm_smusdx

SMUSDX

int _arm_smusdx (int, int _Rn _Rm)

_arm_smull

SMULL

__int64 _arm_smull _Rn (int, int _Rm)

_arm_umull

UMULL

unsigned __int64 _arm_umull (不帶正負號的整數, _Rn unsigned int _Rm)

_arm_umaal

UMAAL

_arm_umaal unsigned __int64 (不帶正負號的整數 _RdLo、unsigned int _RdHi、unsigned int _Rn,不帶正負號的整數 _Rm)

_arm_bfc

BFC

不帶正負號的整數 _arm_bfc (不帶正負號的整數 _Rd、unsigned int _Lsb,不帶正負號的整數 _Width)

_arm_bfi

BFI

不帶正負號的整數 _arm_bfi (不帶正負號的整數 _Rd、unsigned int _Rn、unsigned int _Lsb,不帶正負號的整數 _Width)

_arm_rbit

RBIT

不帶正負號的整數 _arm_rbit (不帶正負號的整數 _Rm)

_arm_sbfx

SBFX

int _arm_sbfx (int _Rn、unsigned int _Lsb,不帶正負號的整數 _Width)

_arm_ubfx

UBFX

不帶正負號的整數 _arm_ubfx (不帶正負號的整數 _Rn、unsigned int _Lsb,不帶正負號的整數 _Width)

_arm_sdiv

SDIV

int _arm_sdiv (int, int _Rn _Rm)

_arm_udiv

UDIV

不帶正負號的整數 _arm_udiv (不帶正負號的整數, _Rn unsigned int _Rm)

__cps

CPS

空 __cps (不帶正負號的整數 _Ops、unsigned int _Flags,不帶正負號的整數 _Mode)

__dmb

DMB

空 __dmb (unsigned int _Type)

插入記憶體屏障作業至指令資料流。 _Type 參數指定屏障強制執行的這種限制。

如需可以強制執行這種限制的詳細資訊,請參閱 記憶體屏障限制。

__dsb

DSB

空 __dsb (不帶正負號的整數 _Type)

插入記憶體屏障作業至指令資料流。 _Type 參數指定屏障強制執行的這種限制。

如需可以強制執行這種限制的詳細資訊,請參閱 記憶體屏障限制。

__isb

ISB

空 __isb (不帶正負號的整數 _Type)

插入記憶體屏障作業至指令資料流。 _Type 參數指定屏障強制執行的這種限制。

如需可以強制執行這種限制的詳細資訊,請參閱 記憶體屏障限制。

__emit

空 __emit (不帶正負號的 __int32 Opcode)

插入指定的指令到編譯器輸出的資料流。

opcode 的值必須是在編譯時期常數運算式。 指令字的大小是 16 位元,而最高 16 位元會忽略 opcode 。

在插入的指示執行前,編譯器並不會嘗試解譯 opcode 內容,並不保證的 CPU 或記憶體狀態。

編譯器假設, CPU 和記憶體狀態未變更,在插入的指示執行之後。 因此,變更狀態的指示會對編譯器所產生的一般程式碼的損害影響。

因此,使用 emit 只插入影響一 CPU 說明的指示,編譯器處理序不為範例,處理器通常狀態或實作使用 declspec(naked),宣告的函式。

__hvc

HVC

unsigned int __hvc (不帶正負號的整數,…)

__iso_volatile_load16

__int16 __iso_volatile_load16 (const-volatile __int16 *)

如需詳細資訊,請參閱instrinsics __iso_volatile_load/store。

__iso_volatile_load32

__int32 __iso_volatile_load32 (const-volatile __int32 *)

如需詳細資訊,請參閱instrinsics __iso_volatile_load/store。

__iso_volatile_load64

__int64 __iso_volatile_load64 (const-volatile __int64 *)

如需詳細資訊,請參閱instrinsics __iso_volatile_load/store。

__iso_volatile_load8

__int8 __iso_volatile_load8 (const-volatile __int8 *)

如需詳細資訊,請參閱instrinsics __iso_volatile_load/store。

__iso_volatile_store16

空 __iso_volatile_store16 (Volatile __int16 *, __int16)

如需詳細資訊,請參閱instrinsics __iso_volatile_load/store。

__iso_volatile_store32

空 __iso_volatile_store32 (Volatile __int32 *, __int32)

如需詳細資訊,請參閱instrinsics __iso_volatile_load/store。

__iso_volatile_store64

空 __iso_volatile_store64 (Volatile __int64 *, __int64)

如需詳細資訊,請參閱instrinsics __iso_volatile_load/store。

__iso_volatile_store8

空 __iso_volatile_store8 (Volatile __int8 *, __int8)

如需詳細資訊,請參閱instrinsics __iso_volatile_load/store。

__ldrexd

LDREXD

__int64 __ldrexd (const-volatile __int64 *)

__prefetch

PLD

為空 __prefetch (空的常數*)

提供一個 PLD 記憶體提示給在所指定位址的記憶體可能很快存取的系統。 有些系統可以選擇最佳化該記憶體存取模式中加入執行階段效能。 然而,從 C++ 語言檢視,函式並不明顯的效果,而且不會執行任何動作。

__rdpmccntr64

unsigned __int64 __rdpmccntr64 (void)

__sev

SEV

空 __sev (void)

__static_assert

空 __static_assert (int, const char *)

__swi

SVC

unsigned int __swi (不帶正負號的整數,…)

__trap

BKPT

int __trap (int,…)

__wfe

WFE

空 __wfe (void)

__wfi

WFI

空 __wfi (void)

_AddSatInt

QADD

int _AddSatInt (int, int)

_CopyDoubleFromInt64

雙重 _CopyDoubleFromInt64 (__int64)

_CopyFloatFromInt32

浮點 _CopyFloatFromInt32 (__int32)

_CopyInt32FromFloat

__int32 _CopyInt32FromFloat (浮點數)

_CopyInt64FromDouble

__int64 _CopyInt64FromDouble (Double)

_CountLeadingOnes

不帶正負號的整數 (_CountLeadingOnes unsigned long)

_CountLeadingOnes64

不帶正負號的整數 (_CountLeadingOnes64 unsigned __int64)

_CountLeadingSigns

不帶正負號的整數 _CountLeadingSigns (長度)

_CountLeadingSigns64

不帶正負號的整數 (_CountLeadingSigns64 __int64)

_CountLeadingZeros

不帶正負號的整數 (_CountLeadingZeros unsigned long)

_CountLeadingZeros64

不帶正負號的整數 (_CountLeadingZeros64 unsigned __int64)

_CountOneBits

不帶正負號的整數 (_CountOneBits unsigned long)

_CountOneBits64

不帶正負號的整數 (_CountOneBits64 unsigned __int64)

_DAddSatInt

QDADD

int _DAddSatInt (int, int)

_DSubSatInt

QDSUB

int _DSubSatInt (int, int)

_isunordered

_isunordered 的 int (double, double)

_isunorderedf

int _isunorderedf (float, float)

_MoveFromCoprocessor

MRC

不帶正負號的整數 (_MoveFromCoprocessor unsigned int、unsigned int、unsigned int、unsigned int, unsigned int)

使用副處理器資料傳輸指令,讀取 ARM 處理器的資料。 如需詳細資訊,請參閱_MoveFromCoprocessor, _MoveFromCoprocessor2。

_MoveFromCoprocessor2

MRC2

不帶正負號的整數 (_MoveFromCoprocessor2 unsigned int、unsigned int、unsigned int、unsigned int, unsigned int)

使用副處理器資料傳輸指令,讀取 ARM 處理器的資料。 如需詳細資訊,請參閱_MoveFromCoprocessor, _MoveFromCoprocessor2。

_MoveFromCoprocessor64

MRRC

unsigned __int64 _MoveFromCoprocessor64 (unsigned int、unsigned int, unsigned int)

使用副處理器資料傳輸指令,讀取 ARM 處理器的資料。 如需詳細資訊,請參閱_MoveFromCoprocessor64。

_MoveToCoprocessor

MCR

空 _MoveToCoprocessor (unsigned int、unsigned int、unsigned int、unsigned int、unsigned int, unsigned int)

使用副處理器資料傳輸指令,讀取 ARM 處理器的資料。 如需詳細資訊,請參閱_MoveToCoprocessor, _MoveToCoprocessor2。

_MoveToCoprocessor2

MCR2

空 _MoveToCoprocessor2 (unsigned int、unsigned int、unsigned int、unsigned int、unsigned int, unsigned int)

使用副處理器資料傳輸指令,讀取 ARM 處理器的資料。 如需詳細資訊,請參閱_MoveToCoprocessor, _MoveToCoprocessor2。

_MoveToCoprocessor64

MCRR

空 _MoveToCoprocessor64 (unsigned __int64、unsigned int、unsigned int, unsigned int)

使用副處理器資料傳輸指令,讀取 ARM 處理器的資料。 如需詳細資訊,請參閱_MoveToCoprocessor64。

_MulHigh

長 _MulHigh (long, long)

_MulUnsignedHigh

unsigned long _MulUnsignedHigh (Unsigned Long, unsigned long)

_ReadBankedReg

夫人

int _ReadBankedReg (int _Reg)

_ReadStatusReg

夫人

int _ReadStatusReg (int)

_SubSatInt

QSUB

int _SubSatInt (int, int)

_WriteBankedReg

MSR

空 _WriteBankedReg (int, int _Value _Reg)

_WriteStatusReg

MSR

空 _WriteStatusReg (int, int)

[氖]

Hh875058.collapse_all(zh-tw,VS.110).gif記憶體屏障限制

內建函式 __dmb (資料記憶體屏障), __dsb (資料同步阻礙) 和 __isb (表示同步阻礙) 使用受到作業所影響的下列預先定義的值指定記憶體屏障限制根據共用的網域和和種類存取。

限制值

描述

_ARM_BARRIER_SY

完整的系統,讀取和寫入。

_ARM_BARRIER_ST

完整的系統,只寫入。

_ARM_BARRIER_ISH

內部可共用,讀取和寫入。

_ARM_BARRIER_ISHST

內部可共用,只寫入。

_ARM_BARRIER_NSH

無法共用,讀取和寫入。

_ARM_BARRIER_NSHST

無法共用,只寫入。

_ARM_BARRIER_OSH

外部可共用,讀取和寫入。

_ARM_BARRIER_OSHST

外部可共用,只寫入。

對於 __isb 本質,目前有效的唯一的限制是 _ARM_BARRIER_SY;其他值則由結構保留。

Hh875058.collapse_all(zh-tw,VS.110).gifinstrinsics __iso_volatile_load/store

這些內建函式明確地執行不受編譯器最佳化規範的載入和儲存。

__int16 __iso_volatile_load16(const volatile __int16 * Location)
__int32 __iso_volatile_load32(const volatile __int32 * Location)
__int64 __iso_volatile_load64(const volatile __int64 * Location)
__int8 __iso_volatile_load8(const volatile __int8 * Location)

void __iso_volatile_store16(volatile __int16 * Location, __int16 Value)
void __iso_volatile_store32(volatile __int32 * Location, __int32 Value)
void __iso_volatile_store64(volatile __int64 * Location, __int64 Value)
void __iso_volatile_store8(volatile __int8 * Location, __int8 Value)

參數

  • Location
    讀取或寫入的記憶體位置的位址。

  • Value (只存放區內建)
    要寫入的值給指定的記憶體位置。

傳回值 (只載入本質)

Location所指定之記憶體位置的值。

備註

您可以使用 __iso_volatile_load8/16/32/64 和 __iso_volatile_store8/16/32/64 內建明確執行不受編譯器最佳化規範的記憶體存取。 編譯器無法取消,複合或變更這些作業相對順序,不過,它不會產生隱含硬體記憶體屏障。 因此,硬體可能仍然重新排列在多執行緒的可預見的記憶體存取。 更明確地說,這些本質與下列運算式相當於如編譯 /volatile:iso下。

int a = __iso_volatile_load32(p);    // equivalent to: int a = *(const volatile __int32*)p; 
__iso_volatile_store32(p, a);        // equivalent to: *(volatile __int32*)p = a;

請注意本質接受變動指標容納 volatile 變數。 不過,不需要或建議使用 Volatile 指標做為引數;,如果使用,這些作業語意完全相同的一組規則,非 Volatile 的型別。

如需 /volatile:iso 命令列引數的詳細資訊,請參閱 /volatile (volatile 關鍵字轉譯)

Hh875058.collapse_all(zh-tw,VS.110).gif_MoveFromCoprocessor, _MoveFromCoprocessor2

使用副處理器資料傳輸指令,這些內建函式讀取從 ARM 處理器的資料。

int _MoveFromCoprocessor(
      unsigned int coproc,
      unsigned int opcode1,
      unsigned int crn,
      unsigned int crm,
      unsigned int opcode2
);

int _MoveFromCoprocessor2(
      unsigned int coproc,
      unsigned int opcode1,
      unsigned int crn,
      unsigned int crm,
      unsigned int opcode2
);

參數

  • coproc
    範圍從 0 到 15 的處理器數目。

  • opcode1
    範圍從 0 到 7 的處理器特定 opcode

  • crn
    共處理器暫存器編號,範圍從 0 到 15,指定第一個運算元的指示。

  • crm
    共處理器暫存器編號,範圍從 0 到 15,指定額外的來源或目的端的運算元。

  • opcode2
    範圍從 0 到 7. 的其他副處理器特定 opcode。

傳回值

從處理器讀取的值。

備註

這個內建全部五個參數的值必須是在編譯時期常數運算式。

_MoveFromCoprocessor 表示使用 MRC; _MoveFromCoprocessor2 MRC2 用途。 參數對應至輸入直接輸入指令字的位元欄位。 參數的解譯是副處理器相依。 如需詳細資訊,請參閱該處理器的方針。

Hh875058.collapse_all(zh-tw,VS.110).gif_MoveFromCoprocessor64

使用副處理器資料傳輸指令,讀取 ARM 處理器的資料。

unsigned __int64 _MoveFromCoprocessor64(
      unsigned int coproc,
      unsigned int opcode1,
      unsigned int crm,
);

參數

  • coproc
    範圍從 0 到 15 的處理器數目。

  • opcode1
    範圍從 0 到 15 的處理器特定 opcode。

  • crm
    共處理器暫存器編號,範圍從 0 到 15,指定額外的來源或目的端的運算元。

傳回值

從處理器讀取的值。

備註

這個內建所有三個參數的值必須是在編譯時期常數運算式。

_MoveFromCoprocessor64 使用 MRRC 指示。 參數對應至輸入直接輸入指令字的位元欄位。 參數的解譯是副處理器相依。 如需詳細資訊,請參閱該處理器的方針。

Hh875058.collapse_all(zh-tw,VS.110).gif_MoveToCoprocessor, _MoveToCoprocessor2

使用副處理器資料傳輸指令,這些內建函式給 ARM 處理器寫入資料。

void _MoveToCoprocessor(
      unsigned int value,
      unsigned int coproc,
      unsigned int opcode1,
      unsigned int crn,
      unsigned int crm,
      unsigned int opcode2
);

void _MoveToCoprocessor2(
      unsigned int value,
      unsigned int coproc,
      unsigned int opcode1,
      unsigned int crn,
      unsigned int crm,
      unsigned int opcode2
);

參數

  • value
    將處理器要寫入的值。

  • coproc
    範圍從 0 到 15 的處理器數目。

  • opcode1
    範圍從 0 到 7. 的處理器特定 opcode。

  • crn
    共處理器暫存器編號,範圍從 0 到 15,指定第一個運算元的指示。

  • crm
    共處理器暫存器編號,範圍從 0 到 15,指定額外的來源或目的端的運算元。

  • opcode2
    範圍從 0 到 7. 的其他副處理器特定 opcode。

傳回值

無。

備註

coproc、 opcode1、 crn、 crm和這個內建 opcode2 參數的值必須是在編譯時期常數運算式。

_MoveToCoprocessor 表示使用 MCR; _MoveToCoprocessor2 MCR2 用途。 參數對應至輸入直接輸入指令字的位元欄位。 參數的解譯是副處理器相依。 如需詳細資訊,請參閱該處理器的方針。

Hh875058.collapse_all(zh-tw,VS.110).gif_MoveToCoprocessor64

使用副處理器資料傳輸指令,這些內建函式給 ARM 處理器寫入資料。

void _MoveFromCoprocessor64(
      unsigned __int64 value,
      unsigned int coproc,
      unsigned int opcode1,
      unsigned int crm,
);

參數

  • coproc
    範圍從 0 到 15 的處理器數目。

  • opcode1
    範圍從 0 到 15 的處理器特定 opcode。

  • crm
    共處理器暫存器編號,範圍從 0 到 15,指定額外的來源或目的端的運算元。

傳回值

無。

備註

coproc、 opcode1和這個內建 crm 參數的值必須是在編譯時期常數運算式。

_MoveFromCoprocessor64 使用 MCRR 指示。 參數對應至輸入直接輸入指令字的位元欄位。 參數的解譯是副處理器相依。 如需詳細資訊,請參閱該處理器的方針。

ARM 支援從其他結構的性質

下表列出在 ARM 平台支援的其他架構的性質。 其中一個內建的行為在 ARM 的與其在其他硬體階層架構的行為不同,詳細資料中註明。

函式名稱

函式原型

__assume

空 __assume (int)

__code_seg

空 __code_seg (const char *)

__debugbreak

為空 __debugbreak (void)

__fastfail

declspec(noreturn) void __fastfail (unsigned int)

__nop

空 __nop (void)

注意事項注意事項
在 ARM 平台上,否則,如果其中一個目標架構中,實作這個函式產生 NOP 指示;否則,不會變更程式狀態或 CPU 是產生中的其他指示 MOV r8, r8。這在功能上相當於其他硬體階層架構的 __nop 性質。由於對程式或 CPU 的狀態沒有作用的指令可能由目標架構忽略做為最佳化,指示不一定消耗 CPU 週期。因此,請不要使用 __nop 本質操作程式碼順序的執行階段,除非您確定有關 CPU 如何將行為。相反地,您可以使用 __nop 本質對齊下指示特定 32 位元邊界位址。

__yield

空 __yield (void)

注意事項注意事項
在 ARM 平台上,這個函式產生 yield 指示,表示執行緒可以從執行變更為範例暫停的工作, SpinLock 沒有不良影響程式的。這使 CPU 執行其他工作。會浪費執行週期。

_AddressOfReturnAddress

void * _AddressOfReturnAddress (void)

_BitScanForward

unsigned char _BitScanForward (unsigned long * _Index,不帶正負號的長 _Mask)

_BitScanReverse

unsigned char _BitScanReverse (unsigned long * _Index,不帶正負號的長 _Mask)

_bittest

_bittest unsigned char (長常數*, long)

_bittestandcomplement

unsigned char _bittestandcomplement (long *, long)

_bittestandreset

unsigned char _bittestandreset (long *, long)

_bittestandset

unsigned char _bittestandset (long *, long)

_byteswap_uint64

unsigned __int64 __cdecl _byteswap_uint64 (unsigned __int64)

_byteswap_ulong

不帶正負號的長 __cdecl _byteswap_ulong (Unsigned Long)

_byteswap_ushort

不帶正負號的短 __cdecl _byteswap_ushort (不帶正負號的短整數)

_disable

_disable 空的 __cdecl (void)

注意事項注意事項
在 ARM 平台上,這個函式產生 CPSID 指示;它只可當做性質。

_enable

_enable 空的 __cdecl (void)

注意事項注意事項
在 ARM 平台上,這個函式產生 CPSIE 指示;它只可當做性質。

_lrotl

不帶正負號的長 __cdecl _lrotl (Unsigned Long, int)

_lrotr

不帶正負號的長 __cdecl _lrotr (Unsigned Long, int)

_ReadBarrier

空 _ReadBarrier (void)

_ReadWriteBarrier

空 _ReadWriteBarrier (void)

_ReturnAddress

void * _ReturnAddress (void)

_rotl

unsigned int __cdecl _rotl (不帶正負號的整數 _Value _Shift, int)

_rotl16

不帶正負號的短 _rotl16 (不帶正負號的短 _Value, unsigned char _Shift)

_rotl64

unsigned __int64 __cdecl _rotl64 (unsigned __int64 _Value _Shift, int)

_rotl8

unsigned char _rotl8 (unsigned char _Value, unsigned char _Shift)

_rotr

unsigned int __cdecl _rotr (不帶正負號的整數 _Value _Shift, int)

_rotr16

不帶正負號的短 _rotr16 (不帶正負號的短 _Value, unsigned char _Shift)

_rotr64

unsigned __int64 __cdecl _rotr64 (unsigned __int64 _Value _Shift, int)

_rotr8

unsigned char _rotr8 (unsigned char _Value, unsigned char _Shift)

_setjmpex

int __cdecl _setjmpex (jmp_buf)

_WriteBarrier

空 _WriteBarrier (void)

[氖]

連鎖的性質

連鎖的本質是用來執行原子讀取修改寫入作業的一組內建。 有些對所有平台都通用。 它們分別在此列出,因為有大量它們,不過,,因為它們的定義主要是多餘的,通常會將考慮它們比較容易的。 其名稱可用來取得正確的行為。

下表摘要說明非 bittest 連鎖的本質的 ARM 支援。 每個儲存格在資料表中對應於透過附加在資料行中最左邊的儲存格和型別名稱的作業名稱取得資料列最上方的儲存格之 _Interlocked的名稱。 例如,在 Xor 行和 8 資料行交集處的儲存格對應於 _InterlockedXor8 和完全支援。 大部分支援的函式提供這些選擇性後置字元: _acq、 _rel和 _nf。 _acq 後置字元表示語言定義「的保護」和 _rel 尾碼指示語意「的版本」。 這些後置字元 MSDN 的 IPF 文件記錄。 _nf 或沒有柵欄」後置字元是唯一飛出視窗的和會在下一節。

8

16

32

64

P

Add

None

None

完全

完全

None

And

完全

完全

完全

完全

None

比較-交換

完全

完全

完全

完全

完全

遞減

None

完全

完全

完全

None

Exchange

Partial

Partial

Partial

Partial

Partial

ExchangeAdd

完全

完全

完全

完全

None

遞增

None

完全

完全

完全

None

Or

完全

完全

完全

完全

None

Xor

完全

完全

完全

完全

None

Key:

  • :支援簡單地, _acq、 _rel和 _nf 表單。

  • 部分:支援簡單地, _acq和 _nf 表單。

  • :不支援

Hh875058.collapse_all(zh-tw,VS.110).gif_nf (沒有柵欄) 尾碼

_nf 或沒有柵欄」後置字元表示作業不會以任何一種記憶體屏障。 這是與其他三個表單要 (簡單, _acq和 _rel),所有做為阻礙。 對 _nf 表單的一個可能的用途是維護值未使用多個執行緒同時更新,但的統計資料計數器,當多個執行緒執行時。

Hh875058.collapse_all(zh-tw,VS.110).gif連鎖的本質清單

函式名稱

函式原型

_InterlockedAdd

長 _InterlockedAdd (的 _volatile *, long)

_InterlockedAdd64

__int64 _InterlockedAdd64 (__int64 Volatile *, __int64)

_InterlockedAdd64_acq

__int64 _InterlockedAdd64_acq (__int64 Volatile *, __int64)

_InterlockedAdd64_nf

__int64 _InterlockedAdd64_nf (__int64 Volatile *, __int64)

_InterlockedAdd64_rel

__int64 _InterlockedAdd64_rel (__int64 Volatile *, __int64)

_InterlockedAdd_acq

長 _InterlockedAdd_acq (long Volatile *, long)

_InterlockedAdd_nf

長 _InterlockedAdd_nf (long Volatile *, long)

_InterlockedAdd_rel

長 _InterlockedAdd_rel (long Volatile *, long)

_InterlockedAnd

長 _InterlockedAnd (long Volatile *, long)

_InterlockedAnd16

簡短 _InterlockedAnd16 (簡短 Volatile *,短)

_InterlockedAnd16_acq

簡短 _InterlockedAnd16_acq (簡短 Volatile *,短)

_InterlockedAnd16_nf

簡短 _InterlockedAnd16_nf (簡短 Volatile *,短)

_InterlockedAnd16_rel

簡短 _InterlockedAnd16_rel (簡短 Volatile *,短)

_InterlockedAnd64

__int64 _InterlockedAnd64 (__int64 Volatile *, __int64)

_InterlockedAnd64_acq

__int64 _InterlockedAnd64_acq (__int64 Volatile *, __int64)

_InterlockedAnd64_nf

__int64 _InterlockedAnd64_nf (__int64 Volatile *, __int64)

_InterlockedAnd64_rel

__int64 _InterlockedAnd64_rel (__int64 Volatile *, __int64)

_InterlockedAnd8

_InterlockedAnd8 char (char Volatile *,字元)

_InterlockedAnd8_acq

_InterlockedAnd8_acq char (char Volatile *,字元)

_InterlockedAnd8_nf

_InterlockedAnd8_nf char (char Volatile *,字元)

_InterlockedAnd8_rel

_InterlockedAnd8_rel char (char Volatile *,字元)

_InterlockedAnd_acq

長 _InterlockedAnd_acq (long Volatile *, long)

_InterlockedAnd_nf

長 _InterlockedAnd_nf (long Volatile *, long)

_InterlockedAnd_rel

長 _InterlockedAnd_rel (long Volatile *, long)

_InterlockedCompareExchange

的長度為 _InterlockedCompareExchange (long Volatile *, long, long)

_InterlockedCompareExchange16

簡短 _InterlockedCompareExchange16 (簡短 Volatile *,短,短)

_InterlockedCompareExchange16_acq

簡短 _InterlockedCompareExchange16_acq (簡短 Volatile *,短,短)

_InterlockedCompareExchange16_nf

簡短 _InterlockedCompareExchange16_nf (簡短 Volatile *,短,短)

_InterlockedCompareExchange16_rel

簡短 _InterlockedCompareExchange16_rel (簡短 Volatile *,短,短)

_InterlockedCompareExchange64

__int64 _InterlockedCompareExchange64 (__int64 Volatile *, __int64, __int64)

_InterlockedCompareExchange64_acq

__int64 _InterlockedCompareExchange64_acq (__int64 Volatile *, __int64, __int64)

_InterlockedCompareExchange64_nf

__int64 _InterlockedCompareExchange64_nf (__int64 Volatile *, __int64, __int64)

_InterlockedCompareExchange64_rel

__int64 _InterlockedCompareExchange64_rel (__int64 Volatile *, __int64, __int64)

_InterlockedCompareExchange8

_InterlockedCompareExchange8 char (char Volatile *,字元,字元)

_InterlockedCompareExchange8_acq

_InterlockedCompareExchange8_acq char (char Volatile *,字元,字元)

_InterlockedCompareExchange8_nf

_InterlockedCompareExchange8_nf char (char Volatile *,字元,字元)

_InterlockedCompareExchange8_rel

_InterlockedCompareExchange8_rel char (char Volatile *,字元,字元)

_InterlockedCompareExchangePointer

void * _InterlockedCompareExchangePointer (void * Volatile *, void *, void *)

_InterlockedCompareExchangePointer_acq

void * _InterlockedCompareExchangePointer_acq (void * Volatile *, void *, void *)

_InterlockedCompareExchangePointer_nf

void * _InterlockedCompareExchangePointer_nf (void * Volatile *, void *, void *)

_InterlockedCompareExchangePointer_rel

void * _InterlockedCompareExchangePointer_rel (void * Volatile *, void *, void *)

_InterlockedCompareExchange_acq

長 _InterlockedCompareExchange_acq (long Volatile *, long, long)

_InterlockedCompareExchange_nf

長 _InterlockedCompareExchange_nf (long Volatile *, long, long)

_InterlockedCompareExchange_rel

長 _InterlockedCompareExchange_rel (long Volatile *, long, long)

_InterlockedDecrement

的長度為 _InterlockedDecrement (long Volatile *)

_InterlockedDecrement16

簡短 _InterlockedDecrement16 (簡短 Volatile *)

_InterlockedDecrement16_acq

簡短 _InterlockedDecrement16_acq (簡短 Volatile *)

_InterlockedDecrement16_nf

簡短 _InterlockedDecrement16_nf (簡短 Volatile *)

_InterlockedDecrement16_rel

簡短 _InterlockedDecrement16_rel (簡短 Volatile *)

_InterlockedDecrement64

__int64 _InterlockedDecrement64 (__int64 Volatile *)

_InterlockedDecrement64_acq

__int64 _InterlockedDecrement64_acq (__int64 Volatile *)

_InterlockedDecrement64_nf

__int64 _InterlockedDecrement64_nf (__int64 Volatile *)

_InterlockedDecrement64_rel

__int64 _InterlockedDecrement64_rel (__int64 Volatile *)

_InterlockedDecrement_acq

長 _InterlockedDecrement_acq (long Volatile *)

_InterlockedDecrement_nf

長 _InterlockedDecrement_nf (long Volatile *)

_InterlockedDecrement_rel

長 _InterlockedDecrement_rel (long Volatile *)

_InterlockedExchange

的長度為 _InterlockedExchange (long Volatile * _Target, long)

_InterlockedExchange16

簡短 _InterlockedExchange16 (簡短 Volatile * _Target, short)

_InterlockedExchange16_acq

簡短 _InterlockedExchange16_acq (簡短 Volatile * _Target, short)

_InterlockedExchange16_nf

簡短 _InterlockedExchange16_nf (簡短 Volatile * _Target, short)

_InterlockedExchange64

__int64 _InterlockedExchange64 (__int64 Volatile * _Target, __int64)

_InterlockedExchange64_acq

__int64 _InterlockedExchange64_acq (__int64 Volatile * _Target, __int64)

_InterlockedExchange64_nf

__int64 _InterlockedExchange64_nf (__int64 Volatile * _Target, __int64)

_InterlockedExchange8

_InterlockedExchange8 char (char Volatile * _Target,字元)

_InterlockedExchange8_acq

_InterlockedExchange8_acq char (char Volatile * _Target,字元)

_InterlockedExchange8_nf

_InterlockedExchange8_nf char (char Volatile * _Target,字元)

_InterlockedExchangeAdd

的長度為 _InterlockedExchangeAdd (long Volatile *, long)

_InterlockedExchangeAdd16

簡短 _InterlockedExchangeAdd16 (簡短 Volatile *,短)

_InterlockedExchangeAdd16_acq

簡短 _InterlockedExchangeAdd16_acq (簡短 Volatile *,短)

_InterlockedExchangeAdd16_nf

簡短 _InterlockedExchangeAdd16_nf (簡短 Volatile *,短)

_InterlockedExchangeAdd16_rel

簡短 _InterlockedExchangeAdd16_rel (簡短 Volatile *,短)

_InterlockedExchangeAdd64

__int64 _InterlockedExchangeAdd64 (__int64 Volatile *, __int64)

_InterlockedExchangeAdd64_acq

__int64 _InterlockedExchangeAdd64_acq (__int64 Volatile *, __int64)

_InterlockedExchangeAdd64_nf

__int64 _InterlockedExchangeAdd64_nf (__int64 Volatile *, __int64)

_InterlockedExchangeAdd64_rel

__int64 _InterlockedExchangeAdd64_rel (__int64 Volatile *, __int64)

_InterlockedExchangeAdd8

_InterlockedExchangeAdd8 char (char Volatile *,字元)

_InterlockedExchangeAdd8_acq

_InterlockedExchangeAdd8_acq char (char Volatile *,字元)

_InterlockedExchangeAdd8_nf

_InterlockedExchangeAdd8_nf char (char Volatile *,字元)

_InterlockedExchangeAdd8_rel

_InterlockedExchangeAdd8_rel char (char Volatile *,字元)

_InterlockedExchangeAdd_acq

長 _InterlockedExchangeAdd_acq (long Volatile *, long)

_InterlockedExchangeAdd_nf

長 _InterlockedExchangeAdd_nf (long Volatile *, long)

_InterlockedExchangeAdd_rel

長 _InterlockedExchangeAdd_rel (long Volatile *, long)

_InterlockedExchangePointer

void * _InterlockedExchangePointer (void * Volatile * _Target, void *)

_InterlockedExchangePointer_acq

void * _InterlockedExchangePointer_acq (void * Volatile * _Target, void *)

_InterlockedExchangePointer_nf

void * _InterlockedExchangePointer_nf (void * Volatile * _Target, void *)

_InterlockedExchange_acq

長 _InterlockedExchange_acq (long Volatile * _Target, long)

_InterlockedExchange_nf

長 _InterlockedExchange_nf (long Volatile * _Target, long)

_InterlockedIncrement

的長度為 _InterlockedIncrement (long Volatile *)

_InterlockedIncrement16

簡短 _InterlockedIncrement16 (簡短 Volatile *)

_InterlockedIncrement16_acq

簡短 _InterlockedIncrement16_acq (簡短 Volatile *)

_InterlockedIncrement16_nf

簡短 _InterlockedIncrement16_nf (簡短 Volatile *)

_InterlockedIncrement16_rel

簡短 _InterlockedIncrement16_rel (簡短 Volatile *)

_InterlockedIncrement64

__int64 _InterlockedIncrement64 (__int64 Volatile *)

_InterlockedIncrement64_acq

__int64 _InterlockedIncrement64_acq (__int64 Volatile *)

_InterlockedIncrement64_nf

__int64 _InterlockedIncrement64_nf (__int64 Volatile *)

_InterlockedIncrement64_rel

__int64 _InterlockedIncrement64_rel (__int64 Volatile *)

_InterlockedIncrement_acq

長 _InterlockedIncrement_acq (long Volatile *)

_InterlockedIncrement_nf

長 _InterlockedIncrement_nf (long Volatile *)

_InterlockedIncrement_rel

長 _InterlockedIncrement_rel (long Volatile *)

_InterlockedOr

長 _InterlockedOr (long Volatile *, long)

_InterlockedOr16

簡短 _InterlockedOr16 (簡短 Volatile *,短)

_InterlockedOr16_acq

簡短 _InterlockedOr16_acq (簡短 Volatile *,短)

_InterlockedOr16_nf

簡短 _InterlockedOr16_nf (簡短 Volatile *,短)

_InterlockedOr16_rel

簡短 _InterlockedOr16_rel (簡短 Volatile *,短)

_InterlockedOr64

__int64 _InterlockedOr64 (__int64 Volatile *, __int64)

_InterlockedOr64_acq

__int64 _InterlockedOr64_acq (__int64 Volatile *, __int64)

_InterlockedOr64_nf

__int64 _InterlockedOr64_nf (__int64 Volatile *, __int64)

_InterlockedOr64_rel

__int64 _InterlockedOr64_rel (__int64 Volatile *, __int64)

_InterlockedOr8

_InterlockedOr8 char (char Volatile *,字元)

_InterlockedOr8_acq

_InterlockedOr8_acq char (char Volatile *,字元)

_InterlockedOr8_nf

_InterlockedOr8_nf char (char Volatile *,字元)

_InterlockedOr8_rel

_InterlockedOr8_rel char (char Volatile *,字元)

_InterlockedOr_acq

長 _InterlockedOr_acq (long Volatile *, long)

_InterlockedOr_nf

長 _InterlockedOr_nf (long Volatile *, long)

_InterlockedOr_rel

長 _InterlockedOr_rel (long Volatile *, long)

_InterlockedXor

長 _InterlockedXor (long Volatile *, long)

_InterlockedXor16

簡短 _InterlockedXor16 (簡短 Volatile *,短)

_InterlockedXor16_acq

簡短 _InterlockedXor16_acq (簡短 Volatile *,短)

_InterlockedXor16_nf

簡短 _InterlockedXor16_nf (簡短 Volatile *,短)

_InterlockedXor16_rel

簡短 _InterlockedXor16_rel (簡短 Volatile *,短)

_InterlockedXor64

__int64 _InterlockedXor64 (__int64 Volatile *, __int64)

_InterlockedXor64_acq

__int64 _InterlockedXor64_acq (__int64 Volatile *, __int64)

_InterlockedXor64_nf

__int64 _InterlockedXor64_nf (__int64 Volatile *, __int64)

_InterlockedXor64_rel

__int64 _InterlockedXor64_rel (__int64 Volatile *, __int64)

_InterlockedXor8

_InterlockedXor8 char (char Volatile *,字元)

_InterlockedXor8_acq

_InterlockedXor8_acq char (char Volatile *,字元)

_InterlockedXor8_nf

_InterlockedXor8_nf char (char Volatile *,字元)

_InterlockedXor8_rel

_InterlockedXor8_rel char (char Volatile *,字元)

_InterlockedXor_acq

長 _InterlockedXor_acq (long Volatile *, long)

_InterlockedXor_nf

長 _InterlockedXor_nf (long Volatile *, long)

_InterlockedXor_rel

長 _InterlockedXor_rel (long Volatile *, long)

[氖]

Hh875058.collapse_all(zh-tw,VS.110).gif_interlockedbittest 本質

純連鎖 bittest 本質對所有平台都通用。 ARM 加入 _acq、 _rel和 _nf 變數,修改作業的阻礙語意,如 _nf (沒有柵欄) 尾碼 所述本文。

函式名稱

函式原型

_interlockedbittestandreset

unsigned char _interlockedbittestandreset (long Volatile *, long)

_interlockedbittestandreset_acq

unsigned char _interlockedbittestandreset_acq (long Volatile *, long)

_interlockedbittestandreset_nf

unsigned char _interlockedbittestandreset_nf (long Volatile *, long)

_interlockedbittestandreset_rel

unsigned char _interlockedbittestandreset_rel (long Volatile *, long)

_interlockedbittestandset

unsigned char _interlockedbittestandset (long Volatile *, long)

_interlockedbittestandset_acq

unsigned char _interlockedbittestandset_acq (long Volatile *, long)

_interlockedbittestandset_nf

unsigned char _interlockedbittestandset_nf (long Volatile *, long)

_interlockedbittestandset_rel

unsigned char _interlockedbittestandset_rel (long Volatile *, long)

[氖]

請參閱

參考

編譯器內建函式

其他資源

ARM 組譯工具參考

C + + 語言參考