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

Intrinsicpr #53

Open
wants to merge 23 commits into
base: v3.0-simple
Choose a base branch
from
Open

Intrinsicpr #53

wants to merge 23 commits into from

Conversation

Brugarolas
Copy link
Owner

No description provided.

…_tv by using a special cast flag(CCF_INTRINS_ARG) for intrinsic vector arguments
…abled DCE of intrinsics

Intrinsics are now assumed to have no side effects unless flagged to with either memory side effects(S) or non memory side effects(s)
…trinsics that have no side effects and are not forced indirect ModRM which could be a load or store
…us ways.

Fix wrappers truncating GCobj pointers in GC64 mode when loading them from the stack to store output registers in to cdata.
Fix the stack for intrinsics not being adjusted correctly in there interpreter wrapper when it uses the RID_DISPATCH register on GC64 because RSET_GPR does not contain it
…g RID_DISPATCH

Make RID_DISPATCH an unallocatable register for intrinsics when building as GC64.

Fix trying to evict RID_DISPATCH for LJ_GC64 builds on x64 for intrinsics and
add some asserts that we never try to again.
Don't set register hints for intrinsic input\output registers that are RID_DISPATCH.
Restore RID_DISPATCH first when handling output registers and defer it
till last for input registers of intrinsics in the JIT.
…s to allow pointer based intrinsics to work in both 64 bit and 32 bit with the same definion.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants