The amv2.intrinsics.memory package includes the low-level/intrinsic memory access APIs for loading and storing values into the application's domain memory, and for concurrency operations. Most of these functions are built into the ASC2 compiler and are replaced by single ActionScript ByteCode instructions hence eliminating the overhead involved in function calls. The concurrency utilities (mfence and casi32) are native C++ method calls.



Functions
 FunctionDescription
 casi32 A compare-and-swap operation for domainMemory.
 lf32 Loads a 32-bit floating point value from the given addr in domain memory.
 lf64 Loads a 64-bit floating point value from the given addr in domain memory.
 li16 Loads a 16-bit integer value from the given addr in domain memory.
 li32 Loads a 32-bit integer value from the given addr in domain memory.
 li8 Loads an 8-bit integer value from the given addr in domain memory.
 mfence A complete memory barrier for domainMemory (for both load and store instructions).
 sf32 Stores a 32-bit floating point value into the given addr in domain memory.
 sf64 Stores a 64-bit floating point value into the given addr in domain memory.
 si16 Stores a 16-bit integer value into the given addr in domain memory.
 si32 Stores a 32-bit integer value into the given addr in domain memory.
 si8 Stores an 8-bit integer value into the given addr in domain memory.
 sxi1 Sign-extends a 1-bit integer value to a 32-bit integer value.
 sxi16 Sign-extends a 16-bit integer value to a 32-bit integer value.
 sxi8 Sign-extends an 8-bit integer value to a 32-bit integer value.