[webkit-dev] x86-64 JIT

Maciej Stachowiak mjs at apple.com
Tue Mar 17 17:09:10 PDT 2009


On Mar 17, 2009, at 1:51 PM, Mike Hommey wrote:

> Hi,
>
> I was taking a quick look at the JIT code and also gave a shot at
> forcing a build of the x86-64 code under Linux.
>
> The main problem right now is the following:
> ../JavaScriptCore/jit/JITArithmetic.cpp:664: error: cast from  
> 'JSC::Structure*' to 'unsigned int' loses precision
> ../JavaScriptCore/jit/JITArithmetic.cpp:674: error: cast from  
> 'JSC::Structure*' to 'unsigned int' loses precision
> ../JavaScriptCore/jit/JITArithmetic.cpp:714: error: cast from  
> 'JSC::Structure*' to 'unsigned int' loses precision
> ../JavaScriptCore/jit/JITArithmetic.cpp:724: error: cast from  
> 'JSC::Structure*' to 'unsigned int' loses precision
>
> Looking at the code, it seems really too much x86-centric, and
> depending on how the x86-64 ABI is under OSX. I don't know how things
> are going to evolve with Snow-Leopard, as I hear the kernel will  
> finally
> be 64-bits, but maybe the same issue will arise.

The x86_64 ABI is standardized, so it should match between Linux and  
OS X for the things we care about.

> Anyways, I'd need guidance from some people with JIT knowledge to help
> me get it work on Linux.

Sounds like either ALTERNATE_JSIMMEDIATE or JIT_OPTIMIZE_ARITHMETIC is  
not defined for you. It should be defined on x86_64. But it also  
sounds like a bug that pointers are being cast to unsigned in this  
code path. I'm not sure offhand how to fix it. But making sure those  
two preprocessor symbols are set should help.

Regards,
Maciej



More information about the webkit-dev mailing list