Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
2775: Support SSE 4.2 for the Singlepass compiler r=ptitSeb a=batconjurer Closes #2767 # Description This PR adds support for the SSE 4.2 instruction set in the singlepass compiler. Previously, only AVX was supported. This implementation may also work for SSE 4.1, but this should be double checked. It does use the `blendvps` instruction indroduced in SSE 4.1, so it cannot support any earlier SSE versions at present for sure. The following are the main changes: - The assembler has changed from a Vec<X64Relocation> to a struct containing this as well as the corresponding CPU feature (indicating AVX/SSE4.2/...) - A set of SSE function macros have been added. To handle non-destructive operations, additional moves may be made before executing the corresponding SSE instruction if `src1 != dst` - A minor change to the `EmitterX64` trait. It now has a function for returning a possible CPU feature. - The implementation of `EmitterX64` for the assembler has obviously changed. It chooses the emitted assembly based on the CPU feature. Co-authored-by: R2D2 <jacob.turner870@gmail.com> Co-authored-by: Jacob Turner <jacob.turner870@gmail.com>
- Loading branch information