[Webkit-unassigned] [Bug 26164] New: webkit/jit stack mis-aligned for double on MIPS platform

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jun 3 11:04:29 PDT 2009


           Summary: webkit/jit stack mis-aligned for double on MIPS platform
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: Critical
          Priority: P1
         Component: JavaScriptCore
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: jdai at 2wire.com

It is a block for MIPS and I've not found simple solution. Mips asks for 64bits
aligned for double storage.

In privateCompileCTIMachineTrampolines() it frequently pop/push a 32bit
register, which mis-aligns the stack if it is aligned to 64bit originally.
Further more, a void pointer can be used as argument to call Lexer::lex(void*
p1, void* p2) then this pointer is converted a structure that contains double
as member, this pointer can be mis-aligned also.

To reproduce, simply debug "jsc shell.js" and trace to int Lexer::lex(void* p1,
void* p2) and you will see mis-aligned stack pointer and mis-aligned 
doubledValue pointer in say: lvalp->doubleValue = dval;

I tried to write a small piece of inline asm to get rid the first case, but
identify second case to make sure all double structure are properly aligned
seems difficult.

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