[Webkit-unassigned] [Bug 24986] ARM JIT port

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jul 1 17:50:36 PDT 2009


https://bugs.webkit.org/show_bug.cgi?id=24986





------- Comment #64 from barraclough at apple.com  2009-07-01 17:50 PDT -------
Hi Zoltan, hi Gabor,

Sorry for the delay in getting these reviewed, and yes, things are as busy as
ever!  You'll see I've reviewed the patches, both are r-s, but they're both
99.9% of the way there now, just a few very small issues to clear up.

> I know you are busy since you usually do the coding and reviewing in
> JavaScriptCore alone, so if we can help you in any way just ask us.

I should probably make sure that the rest of the team get the credit due to
them – you may well have seen me committing a bit more to the JIT in ToT over
the last few weeks, but the other guys are still very busy working on the
nitro-extreme branch, and fixing bugs across JSC.

> We also posted the yarr patch, but we feel you may find it too big.
> Unfortunately, we have no idea how to break it into smaller, working parts.

No, you're absolutely right here, this wasn't too big at all.  While clearly
not a small patch, I don't think you could have sensibly broken this down any
further, this patch was absolutely fine as it was.

> Our next step is property caching. Because of the constant pool we had issues
> with fixed instruction offsets. Since the pool can be flushed after any
> instruction, the instruction offsets are not known in advance. We had
> implemented a check before, ...
>
> We can put ensureSpaceFor(getByIdFastCase) calls into the compiler.

Yes, totally!  I was going to suggest something like this too, to make the code
a little less fragile.

I'd suggest you may want to consider having a pre & post method, say,
beginUninterruptedCodeSequence(getByIdFastCaseCodeSize) ,
endUninterruptedCodeSequence(getByIdFastCaseCodeSize), (hmmm, not sure these
are good function names - not meaning to not use your function name here, just
that 'ensureSpaceFor' doesn't read right with pre- & post- prefix added).

This way, on #ifndef NDEBUG builds you could record (to a member variable on
the JIT) a label() of where the block of code begins, and in the 'post' method
you could ASSERT that the difference between a the label() recorded in the
'pre' method, and a label() here, is equal to the argument passed in - just to
help catch cases where someone changes the code, but does not update the
constant (and in non-debug builds the 'post' method would do nothing).

Just a thought, in case it is helpful.

cheers,
G.


-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list