Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace some x86 asm SmallInteger prims with C++ implementations #178

Merged
merged 1 commit into from
May 28, 2018

Conversation

blairmcg
Copy link
Contributor

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

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
@blairmcg blairmcg merged commit 90531df into master May 28, 2018
@blairmcg blairmcg deleted the blairmcg/intprims2 branch May 28, 2018 19:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant