Conversation
i686 rather than i386 because I'd really rather not think about trying to map wasm float semantics to x87...
|
Just as a heads up, x87 floating point does not produce the same results as other platforms including SSE in various cases, and the spec testsuite has tests which care about these differences: WebAssembly/spec#124 |
| #include <ucontext.h> | ||
| #endif | ||
|
|
||
| #include <signal.h> |
There was a problem hiding this comment.
This is only present because I was wildly flailing around trying to fix header issues that were caused by fiddling with an include path I shouldn't have. I left it because lucet_types.h references siginfo_t without including signal.h. This isn't an issue because lucet.h includes signal.h before lucet_types.h, but someone using lucet_types.h individually for some reason would be in for a surprise.
... I ought to make this a PR on its own.
|
This PR was closed as a byproduct of deleting the branch named |
First, why
i686?i386has, at best, the x87 FPU for floating point operations. I'm pretty surei686implies processors recent enough to have MMX/SSE, so our floating point stuff needs fewer changes.The ABI details of lining things up for guest execution are certainly incorrect. The primary issue at this point is our dependencies though,
objectbelieves it can't targetI686and Cranelift is missing some legalizations such as 64-bit divides.For object, my suspicion is that just adding a few
I686matches to patterns where it matches forI386should be fine. I've yet to test that though :)With object not being able to emit i686 objects this hasn't gotten to a point where anything, yknow, runs. 😁
While this is a relatively unserious PR, this is about the same shape I suspect other architectures for POSIX-y OSes would look, so replace
i686witharm32oraarch64in your imagination!