-
Notifications
You must be signed in to change notification settings - Fork 43
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
IonMonkey PPC backend #178
Comments
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by
|
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by
|
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by |
Original comment by
|
Any chance of this work going into mozilla-central to support Linux-ppc64le? |
You're welcome to move the code over, but it won't be me that does it, since I don't have a Power8 or interest in that specific platform currently. If you wanted to do so, you would need to change the code that patches Ion for big-endianness (probably simply revert those changes), make sure the PPC backend was little-endian as well (we essentially assumed big-endian), finish the asm.js work which I abandoned for lack of utility, and change the trampoline for SysV ABI (OS X/ppc is PowerOpen, same as AIX). This is not trivial work, but you're welcome to try. |
Appears you changed your mind :) |
I'm seriously hoping that a Linux PPC BE backend makes it, too, because some of us are running Taloses (and other post-G5 POWER hardware) in BE mode... |
That would even be good for G4/G5's running linux. |
The JIT I'm planning to write unfortunately won't address either of those cases; it will be a 64-bit ("nunbox") little-endian JIT for POWER9, since that's how I run my own Talos. The folks working on a Chromium port are also running the JIT in LE. It would still be possible to get a BE JIT working, but you'd still need to hack the core JIT to get around certain glitches with slot ordering (the 64-bit version may be better in this regard) and to get Wasm up you'll have to go whole hog and byteswap everything to and from typed arrays. TenFourFox only does this for integers since there are specific instructions that let us do that with no penalty. FPRs would have to be spilled and reordered. It would suck, but Wasm code tends to be inherently little-endian since most of it is being built on those platforms. You could crib some of the patches from here (look for |
I should add that it would be easier on Firefox than Chromium. Firefox at least assumes a lot less about the endianness of the machine, whereas I don't believe Chromium has ever run on a BE platform. |
At this point, the Web is crippled on PowerPC due to no JITs in any browser. I don't think I'd waste any time dealing with Wasm in a first-pass port (and, depending on adoption rates of Wasm, ever), when core browsing is suffering so badly. Other than some papercut gfx bugs (#1339008 and #986328), Firefox runs correctly on PowerPC BE, both 32-bit and 64-bit. It's just dog slow because of a lack of JIT. Thanks for the pointer towards what I'd need to look for here. I guess if you aren't going to focus there, I can get a head start next week. |
By all means. I'm happy to advise if the changesets need explanation. You may need to go back into the old changeset packs to get the original diffs (IonMonkey became a thing in the 38.x timeframe). One thing you probably also want to do is change it to properly use the link register rather than storing return addresses on top of the stack. This hurt alignment and fouled the LR cache but was the only way to solve certain problems at that time. Now you could just stick it in the generated prologue like any other compiled PPC function, which would be a definite speed improvement. |
Hi, is there any news on the LE Power9 JIT? |
Whatever news is available is on talospace.com. This issue doesn't track its progress. |
Original issue reported on code.google.com by
[email protected]
on 11 Sep 2012 at 8:32The text was updated successfully, but these errors were encountered: