You copied the Doc URL to your clipboard.

ARM Compiler armasm User Guide : STLXP

STLXP

Store-Release Exclusive Pair Of Registers.

Syntax

STLXP Ws, Wt1, Wt2, [Xn|SP{,#0}] ; 32-bit general registers

STLXP Ws, Xt1, Xt2, [Xn|SP{,#0}] ; 64-bit general registers

Where:

Wt1

Is the 32-bit name of the first general-purpose register to be transferred.

Wt2

Is the 32-bit name of the second general-purpose register to be transferred.

Xt1

Is the 64-bit name of the first general-purpose register to be transferred.

Xt2

Is the 64-bit name of the second general-purpose register to be transferred.

Ws

Is the 32-bit name of the general-purpose register into which the status result of the store exclusive is written. The value returned is.

Xn|SP

Is the 64-bit name of the general-purpose base register or stack pointer.

Aborts and alignment

If a synchronous Data Abort exception is generated by the execution of this instruction:

  • Memory is not updated.
  • Ws is not updated.

Accessing an address that is not aligned to the size of the data being accessed causes an Alignment fault Data Abort exception to be generated, subject to the following rules:

  • The exception is generated if the Exclusive Monitors for the current PE include all of the addresses associated with the virtual address region of size bytes starting at address. The immediately following memory write must be to the same addresses.
  • Otherwise, it is IMPLEMENTATION DEFINED whether the exception is generated.

Whether the detection of memory aborts happens before or after the check on the local Exclusive Monitor depends on the implementation. As a result a failure of the local monitor can occur on some implementations even if the memory access would give a memory abort.

Usage

Store-Release Exclusive Pair Of Registers stores two 32-bit words or two 64-bit doublewords to a memory location if the PE has exclusive access to the memory address, from two registers, and returns a status value of 0 if the store was successful, or of 1 if no store was performed. See Synchronization and semaphores in the ARMv8-A Architecture Reference Manual. A 32-bit pair requires the address to be doubleword aligned and is single-copy atomic at doubleword granularity. A 64-bit pair requires the address to be quadword aligned and is single-copy atomic for each doubleword at doubleword granularity. The instruction also has memory ordering semantics as described in Load-Acquire, Store-Release in the ARMv8-A Architecture Reference Manual. For information about memory accesses see Load/Store addressing modes in the ARMv8-A Architecture Reference Manual.

Note

For information about the CONSTRAINED UNPREDICTABLE behavior of this instruction, see Architectural Constraints on UNPREDICTABLE behaviors in the ARMv8-A Architecture Reference Manual, and particularly STLXP in the ARMv8-A Architecture Reference Manual.
Was this page helpful? Yes No