AsmX G2 v10 Technical Overview
AsmX G2 v10 Release Notes
New Features & Enhancements
We are thrilled to present the release of AsmX G2 v10, a substantial update to our assembly language programming environment. This release introduces support for the SSE (Streaming SIMD Extensions) architecture, offering developers novel capabilities for vector processing and floating-point computations.
SSE Architecture Support
The SSE architecture is a potent feature that enables parallel operations on multiple data elements, enhancing the performance of multimedia, scientific, and financial applications. With this release, AsmX G2 v10 now supports the SSE architecture, bringing with it the following advancements:
New 128-bit Vector Registers
We have added 16 new 128-bit registers, xmm0
through xmm15
, which are designed to hold vector data. These registers can store data in various configurations, including arrays of 2 64-bit elements or 4 32-bit elements, making them ideal for vector and floating-point operations.
New 8-bit Index Registers
To complement the vector registers, we have also introduced 16 new 8-bit index registers, xmmi0
through xmmi15
. These registers serve as indexes for the xmm0
through xmm15
vector registers, providing a convenient way to access individual elements within a vector.
New Data Types: float32 and float64
Alongside the new registers, AsmX G2 v10 now supports two new data types: float32
and float64
. These types allow for single-precision and double-precision floating-point operations, respectively, enabling more accurate and efficient numerical computations.
New Instruction: storeft
To facilitate the use of vectors, we have introduced a new instruction, storeft
(store float), which is exclusive to the SSE architecture. This instruction simplifies the assignment of vectors with the following syntax:
@storeft <mmx register vec>, type [element]
Here, type
specifies the data type of the vector element(s). This instruction requires exactly one element. The type must be from the float family.
When the vector index is zero, type
instructs the compiler to create a vector of the specified type, initializing the first element with the provided value. If the vector index exceeds the vector size, it is reset to zero, ensuring circular access within the vector.
Examples
To help developers get started with the SSE architecture, we have included an additional example file, sse.asmx
, which demonstrates the use of the SSE architecture. This example showcases the storeft
instruction in action, providing a comprehensive guide to manipulating vectors and utilizing the SSE registers.
We encourage all AsmX G2 users to explore these new features and enhance their assembly language programming experience. For more information, please refer to the updated documentation and examples provided with this release.