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

x86 support #74

Open
christoph-hart opened this issue Mar 8, 2017 · 1 comment
Open

x86 support #74

christoph-hart opened this issue Mar 8, 2017 · 1 comment

Comments

@christoph-hart
Copy link

christoph-hart commented Mar 8, 2017

So I tried to compile NativeJIT with the x86 architecture (using VS2015 on Win7) and stumbled over the following roadblocks:

  1. Missing BitOperations (popcnt64, etc) - easily replacable by two calls to their 32bit counterpart
  2. Missing RUNTIME_FUNCTION macro (+ some other stuff for stack unwinding) - fixed by using the dummy struct from Unix (I can live with missing stack unwinding on x86, since it doesn't work on Unix systems, I hardly use it anyway)
  3. #error because of missing _AMD64_ flag - just commented out :)

Now these three were easy, but now it gets a little bit more complicated:

  1. A ton of compilation errors in the Emit functions because the compiler can't implicitely convert NativeJIT::BaseRegister to NativeJIT::Register<8U, false>. Adding a explicit C-style cast "fixes" those, but I am pretty sure this is not a solution.
  2. Hitting the static_assert in the ExpressionTree::Temporary() method: "The size of the variable is too large."
  3. Some compilation errors when trying to static_cast<> a value to an unsigned int (something like that). This is where I stopped trying :)

This is way too far in the guts of NativeJIT's internals for me to be able to say if trying to support x86 makes any sense at all.

@stonedreamforest
Copy link

any plan?

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

No branches or pull requests

2 participants