You need to
before you can comment on or make changes to this bug.
There's a new x32 ABI - a 32-bit psABI for x86-64 with 32-bit pointer size. It tries to leverage the advantage of more registers and IP relative addressing from x64 and the advantage of smaller memory footprint from IA32. More details of the x32 ABI can be found here: https://sites.google.com/site/x32abi/.
The Linux kernel supports x32 since 3.4, and the commonly used development tools and libraries are getting in the x32 support. Also more details about current status is available in the above link.
The first step is to refactor the MacroAssembler interfaces, especially to differentiate the operations on pointers from the operations on 64-bit integers (e.g., the JSValues), as on x32 the pointer size is 4 bytes.
Bug #99154 is created for the refactoring work.
Created an attachment (id=168387) [details]
This is the "future" patch to add the x32 support - assuming that the refactoring work in bug #99154 is taken in. (thus cannot be applied without the 99154 patch.)
I pasted it here just for you to have a rough idea what it may look like if we want to add the x32 support.
The LLInt is not supported yet. While it's on the plan.
Created an attachment (id=169623) [details]
x32 jit patch
*Not* asking for a detailed review.
Uploading mainly for back-up purpose.
Created an attachment (id=169626) [details]
x32 LLInt patch
For back-up purpose now.
We may need to split the patch as what we've done for the x32 support of the JIT compilers (bug #99154), i.e., one (or more) for general offlineasm and LLInt refactoring, and another one for x32 *specific* change.
Bug #100321 is created for the LLInt64 refactoring work. Adding the dependency.
(From update of attachment 169623 [details])
obsolete this patch. The correct one is in bug #100450.
(From update of attachment 169626 [details])
obsolete this patch. The correct one is in bug #101325.