[webkit-dev] ARM JIT and related issues

Maciej Stachowiak mjs at apple.com
Tue Jun 16 17:29:57 PDT 2009

I'm not sure if there are any remaining disputes about the Nitro ports  
to armv6 and armv7. But just to make sure everyone is on the same  
page, I would like to clarify a few things:

1) The armv7 port is separate from the armv6 work, and uses the thumb2  
instruction set. Both ports are (I hope!) useful.

2) We would have liked to let the community know about the arm v7 port  
sooner. Unfortunately, we were not at liberty to disclose it until the  
iPhone 3G S announcement. We try to let the community know what we're  
up to and drop code into the public tree as soon as we can, but  
sometimes we are limited by confidentiality constraints.

3) We'd definitely like to have a port for pre-v7 ARM in the main  
WebKit tree. I think everyone made this clear.

4) I think it would be good to see if more code and ideas can be  
shared between the two ARM ports. They were made independently, and  
originally in different ways, so let's see what exchange can happen.

5) Gavin has been a strong proponent of using MacroAssembler as the  
primary CPU abstraction layer, and that approach has worked reasonably  
well so far. However, it seems at least to me that CPUs with very  
different instruction sets may want to do things differently at a  
higher level. x86 is a 2-operand instruction set with optional memory  
operands, and it seems to me a 3-operand load-store architecture might  
want to do things in a different way to get good performance. Making  
them go through a common assembler interface may not work. Ultimately,  
however, the proof is in the performance results. If doing things a  
different way delivers better performance, that is more important than  
maximizing code sharing or architectural purity. That has always been  
the WebKit way.

6) It seems like the intent with the Szeged arm port and the plan for  
getting it in the tree wasn't clear to all parties involved. For me  
personally, it wasn't clear that there was an intent to contribute it,  
or perhaps even an expectation that we'd just pick it up from the  
external repository where it was developed. Things would have been  
more clear if patches were submitted for review earlier.

7) It seems like people said some intemperate things during the  
earlier discussion. It also seems like these remarks were based partly  
on misunderstanding. I hope everyone has gotten past that, and that we  
are all ready to work together productively.

8) A number patches from the folks working at University of Szeged  
have been landed. But it seems to me like there has also been a fair  
amount of abandoned work and working at cross purposes. I feel like  
the people working on JavaScript at U of Szeged are not entirely in  
sync with the main JavaScriptCore hackers. You guys have done a lot of  
great work, and I'd like to explore what we can do to get more in sync  
on design direction. Does anyone have suggestions on this front?

I know that at at least some non-Apple developers have managed to do  
major work on JavaScriptCore internals (for example Cameron Zwarich  
before he became an Apple employee), so I am confident we can make  
things work better.


More information about the webkit-dev mailing list