Replace some x86 asm SmallInteger prims with C++ implementations #178
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Includes C++ implementations for the following primitives:
primitiveBitAnd
primitiveBitOr
primitiveBitXor
primitiveAllMask
primitiveAnyMask
The SmallInteger arithmetic primitives might not be implementable in C++
with the same efficiency as in asm because of limitations of C in
detecting overflow and similar conditions. Unless Intel intrinsics can
help, these may need to remain in assembler.
There are a few more integer primitives that can be switched to C++ without
a perf hit, however. These will follow.
Also moved a load of system includes to the precompiled header. This should
help speed up the compilation.
Contributes to #148