Skip to content

AsmX G2 v10 Technical Overview

Compare
Choose a tag to compare
@TaiHusk TaiHusk released this 29 Jun 20:53
· 3 commits to main since this release

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.