Reviewers: mvstanton,

Message:
In unoptimized code, we use a fixed register for the context (esi, rsi, cp). In optimized code for ia32, ARM and MIPS however we use the register allocator for
that. The trick is to make sure that we put the context back to the fixed
register when we leave optimized code (stub calls, runtime calls, unoptimized
functions).

Having the context allocated by the register allocator frees up the fixed
register to be freely allocatable, and allows cross context inlining, as we can
just put the correct context of the inlined function where we need it (not
possible with an untouched fixed register).

Specifically, this requires many LInstructions in x64 to have an operand for the
context. A lot has simply been ported over from ia32.

I also made changes to two LInstructions in ia32 that do not need the context.

Description:
Use register allocator for context on x64.

BUG=

Please review this at https://codereview.chromium.org/50863002/

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

Affected files (+496, -277 lines):
  M src/hydrogen.cc
  M src/ia32/lithium-codegen-ia32.cc
  M src/ia32/lithium-ia32.h
  M src/ia32/lithium-ia32.cc
  M src/x64/assembler-x64.h
  M src/x64/assembler-x64.cc
  M src/x64/code-stubs-x64.cc
  M src/x64/full-codegen-x64.cc
  M src/x64/lithium-codegen-x64.h
  M src/x64/lithium-codegen-x64.cc
  M src/x64/lithium-x64.h
  M src/x64/lithium-x64.cc
  M src/x64/macro-assembler-x64.cc
  M test/cctest/test-code-stubs-ia32.cc
  M test/cctest/test-code-stubs-x64.cc


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to