Porting is usually a technical challenge - it's not that it can't be done. It's that you need time, people, tools, resources, and communications.
I didn't work on the JIT - I just sat in on some of the meetings. It would have been fun to work on but I had to care for a relative with severe health issues for the next three years and that soaked up a lot of my time.
These are my old x64 Windows builds. They started in 2005. I think that Mozilla started official nightly ports to x64 around 2011 or 2012. There are some old PPC G5 builds in there too - I was doing some Altivec experiments back then.
http://www.vector64.com/WindowsBuilds.html
> The ARM Windows version of Firefox is in hand,
That's a substantial achievement. Mozilla's code was designed to be portable as they probably started out on old Unix hardware and then had to run on Windows and other platforms. Doing a new platform is a slog of a job. Some things like datatypes aren't that bad. You implement the types for your architecture and operating system and then try a test compile and see what breaks and then you go around fixing it. Then you do assembler/machine code stuff, and hope that the intrinsics work. And once you get a good compile/link, you look at the crashes.
I didn't work on the JIT - I just sat in on some of the meetings. It would have been fun to work on but I had to care for a relative with severe health issues for the next three years and that soaked up a lot of my time.
These are my old x64 Windows builds. They started in 2005. I think that Mozilla started official nightly ports to x64 around 2011 or 2012. There are some old PPC G5 builds in there too - I was doing some Altivec experiments back then.
http://www.vector64.com/WindowsBuilds.html
> The ARM Windows version of Firefox is in hand,
That's a substantial achievement. Mozilla's code was designed to be portable as they probably started out on old Unix hardware and then had to run on Windows and other platforms. Doing a new platform is a slog of a job. Some things like datatypes aren't that bad. You implement the types for your architecture and operating system and then try a test compile and see what breaks and then you go around fixing it. Then you do assembler/machine code stuff, and hope that the intrinsics work. And once you get a good compile/link, you look at the crashes.