[webkit-dev] want to port JIT to MIPS - using X86::ecx as base

Gavin Barraclough barraclough at apple.com
Fri Feb 6 15:08:32 PST 2009


On Feb 6, 2009, at 2:52 PM, x yz wrote:

> 1.what's the meaning of ALTERNATE_JSIMMEDIATE and slow case?

On x86-64 we use a different implementation of the class JSImmediate.   
See JSImmediate.h.
Re 'slow case', in the JIT code generation is performed as two passes  
over the bytecode – see JIT::privateCompileMainPass and  
JIT::privateCompileSlowCases.

> 2.how come the following code can use ECX as base register?
> load32(Address(X86::ecx, FIELD_OFFSET(Structure,  
> m_typeInfo.m_flags)), X86::ecx);
> if the X86::ecx just means its value 1 in ModR/M, does it means [BX 
> +DI]?

I think you're looking at the old 16-bit addressing mode tables; 32/64- 
bit x86 can happily encode ecx as a base register.  If you're looking  
at the Intel IA-32 manual volume 2, see table 2-2 on the next page.

> 3. can anybody help me on my previous questions? does JIT support  
> floating point?

Yes, some.  See JITArithmetic.cpp.

  cheers,
G.




More information about the webkit-dev mailing list