[webkit-reviews] review granted: [Bug 133952] fix css jit register usage on armv7 : [Attachment 233180] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jun 16 17:45:35 PDT 2014


Benjamin Poulain <benjamin at webkit.org> has granted Alex Christensen
<achristensen at apple.com>'s request for review:
Bug 133952: fix css jit register usage on armv7
https://bugs.webkit.org/show_bug.cgi?id=133952

Attachment 233180: Patch
https://bugs.webkit.org/attachment.cgi?id=233180&action=review

------- Additional Comments from Benjamin Poulain <benjamin at webkit.org>
View in context: https://bugs.webkit.org/attachment.cgi?id=233180&action=review


> Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h:1423
> -	   load32(left, dataTempRegister);
> -	   return branch32(cond, dataTempRegister, right);
> +	   // use addressTempRegister incase the branch32 we call uses
dataTempRegister. :-/
> +	   load32(left, addressTempRegister);
> +	   return branch32(cond, addressTempRegister, right);

I don't get this. We know exactly which branch32() we want to use (Jump
branch32(RelationalCondition cond, RegisterID left, RegisterID right)). What am
I missing?

> Source/WebCore/cssjit/SelectorCompiler.cpp:1096
> +    // r6 is tempRegister in RegisterAllocator.h and addressTempRegister in
MacroAssemblerARMv7.h and must be preserved by the callee.
> +    prologueRegisters.append(JSC::ARMRegisters::r6);

I did not think of that. One more reason I hate the registers implicitly used
by the MacroAssembler.


More information about the webkit-reviews mailing list