On x86_64 a pointer should not be casted to unsigned int, like in ' __ cmpl_im(reinterpret_cast<unsigned>(numberStructure), FIELD_OFFSET(JSCell, m_structure), X86::edx)' expressions. uintptr_t should be used instead of unsigned. Additional, the suffixes or operands are invalid for 'push' and 'pop' in isSSE2Present if the compiler is GCC. I am going to attach a fix.
Created attachment 28527 [details] Proposed fix for x86_64
This looks very simple to review. I'm surprised it's sat for 2 months in the queue. Any JS reviewers?
Comment on attachment 28527 [details] Proposed fix for x86_64 There's no harm in this patch, but it won't work. On 64bit, you can't compare a pointer to a 32bit immediate. This code should be #ifdef'd out in a 64bit build.
A build fix from early 2009 is almost certainly obsolete, closing the bug. Please feel free to re-open if you intend to follow up on this.