Reviewers: Kevin Millikin, William Hesse,

Message:
RegExpLiteral support in the fast compiler for all 3 platforms.

Description:
Fast compiler support for regexp literals.

For .result = /abc.*/g we generate the following IA-32 code:

    ...
    mov ebx,[edi+0x17]
    mov eax,[ebx+0xb]
    cmp eax, 0xf5d0e135         ;; object: 0xf5d0e135 <undefined>
    jnz done
    push ebx
    push 0x2
    push 0xf5d13805             ;; object: 0xf5d13805 <String[5]: abc.*>
    push 0xf5d13815             ;; object: 0xf5d13815 <String[1]: g>
    call RuntimeStub_MaterializeRegExpLiteral
  done:
    push eax
    pop [ebp+0xf4]
    ...

This is very similar to the code previously generated except we do not
generate deferred code for the case where we call the runtime.

On ARM we use the stm instruction to make pushing the arguments more  
compact.


Please review this at http://codereview.chromium.org/300037

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
   M     src/arm/fast-codegen-arm.cc
   M     src/compiler.cc
   M     src/fast-codegen.cc
   M     src/ia32/fast-codegen-ia32.cc
   M     src/x64/fast-codegen-x64.cc



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to