[webkit-dev] x86-64 JIT

Gavin Barraclough barraclough at apple.com
Thu Mar 19 14:09:51 PDT 2009


I think I can see a bug here – the compile guard on the definition of  
VoidPtrPair in JITStubs.h isn't right.

#if PLATFORM(MAC)

should be changed to

#if !COMPILER(MSVC)

(and the else case should #error if compiled on x86-64, if it not 64- 
bit safe).

The MSVC version of this structure works around a quirk in the windows  
ABI in a way that is not 64-bit safe, and you shouldn't need this on  
Linux.  The result of this will be resolve_func returning a junk  
JSValuePtr for the function object.

G.


On Mar 19, 2009, at 1:11 PM, Maciej Stachowiak wrote:

>
> On Mar 19, 2009, at 11:58 AM, Mike Hommey wrote:
>
>> On Thu, Mar 19, 2009 at 10:20:03AM -0700, Darin Adler wrote:
>>> On Mar 19, 2009, at 10:12 AM, Mike Hommey wrote:
>>>
>>>> Except alert() isn't defined under jsc. Are there any other non-js
>>>> (native) functions available in jsc, since it seems to be the  
>>>> problem ?
>>>
>>> Sure, there are tons and tons of native functions; almost every  
>>> function
>>> on every built-in JavaScript object.
>>>
>>> Or you can use print() on the global object, which is similar to  
>>> alert
>>> ().
>>
>> Exception: TypeError: Result of expression 'print' [[object  
>> global]] is
>> not a function.
>
> Works for me:
>
> > print
> function print() {
>    [native code]
> }
>
>> Anyways, it seems, at first hand, to be failing on native functions  
>> on
>> DOM objects, not on standard JS objects :-/
>>
>> For example, Array.toString works, but window.setTimeout doesn't.  
>> Both
>> go through the cti_op_call_NotJSFunction method.
>
>
> That does sound strange.
>
> Do JavaScriptCore and WebCore/WebKit get built as separate DLLs on  
> Linux/Gtk? If so, it could be due to a bug where we don't properly  
> handle jumps of longer than 32-bit distance in all cases. Perhaps  
> Gavin has a guess.
>
> Regards,
> Maciej
>
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20090319/631f800c/attachment.html>


More information about the webkit-dev mailing list