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.
Function | Description | |
---|---|---|
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. |