[Webkit-unassigned] [Bug 126985] New: Source/WTF/wtf/Atomics.h:300: Error: bad register name `%bpl'

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jan 14 07:42:00 PST 2014


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

           Summary: Source/WTF/wtf/Atomics.h:300: Error: bad register name
                    `%bpl'
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Web Template Framework
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: berto at igalia.com
                CC: oliver at apple.com


I'm having problems building the GTK+ port in i386. Looks like gcc is producing x86-64 registers here:

inline bool weakCompareAndSwap(uint8_t* location, uint8_t expected, uint8_t newValue)
{
    unsigned char result;
    asm volatile(
        "lock; cmpxchgb %3, %2\n\t"
        "sete %1"
        : "+a"(expected), "=q"(result), "+m"(*location)
        : "r"(newValue)
        : "memory"
        );
    return result;
}

Here's the gcc output of the affected pre-processed source file:

$ gcc -O1 -m32 --std=c++11 -c CodeBlock.ii 
../Source/WTF/wtf/Atomics.h: Assembler messages:
../Source/WTF/wtf/Atomics.h:300: Error: bad register name `%bpl'
../Source/WTF/wtf/Atomics.h:300: Error: bad register name `%bpl'
../Source/WTF/wtf/Atomics.h:300: Error: bad register name `%dil'

Adding -frename-registers seems to solve the problem. It also builds fine with clang.

My understanding is that this is a gcc bug, however reading the upstream
report http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10153 and its duplicates
suggests that the constraints in the function I pasted above might be wrong.

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



More information about the webkit-unassigned mailing list