v8/src/arm
kmillikin@chromium.org 437914da90 Change the algorithm and generated code for parallel moves on IA32.
Instead of spilling and then immediately restoring eax to resolve
memory to memory moves, the gap move resolver now tracks registers
that are known to be free and uses one if available.  If not it spills
but restores lazily when the spilled value is needed or at the end of
the algorithm.

Instead of using esi for resolving cycles and assuming it is free to
overwrite because it can be rematerialized, the gap move resolver now
resolves cycles using swaps, possibly using a free register as above.

The algorithm is also changed to be simpler: a recursive depth-first
traversal of the move dependence graph.  It uses a list of moves to be
performed (because it mutates the moves themselves), but does not use
any auxiliary structure other than the control stack.  It does not
build up a separate list of scheduled moves to be interpreted by the
code generate, but emits code on the fly.

Review URL: http://codereview.chromium.org/6263005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 11:25:36 +00:00
..
assembler-arm-inl.h Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
assembler-arm.cc ARM: Always use the overflow flag to check for NaNs participating in a floating point compare. 2011-01-12 07:47:13 +00:00
assembler-arm.h Landing for Martyn Capewell. 2011-01-17 07:26:36 +00:00
builtins-arm.cc Fixes needed to compile on gcc-4.4.1 on ARM. It is still necessary 2011-01-12 11:56:41 +00:00
code-stubs-arm.cc Fixes needed to compile on gcc-4.4.1 on ARM. It is still necessary 2011-01-12 11:56:41 +00:00
code-stubs-arm.h Addresses some performance regression in the GenericBinaryOpStub on ARM following Crankshaft introduction. 2011-01-04 11:02:58 +00:00
codegen-arm-inl.h ARM: Remove LoadConditionAndSpill and VisitAndSpill. 2010-05-31 08:52:57 +00:00
codegen-arm.cc ARM: Add instructions VFPCompareAndSetFlags and VFPCompareAndLoadFlags to macro assembler 2011-01-11 12:45:25 +00:00
codegen-arm.h Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
constants-arm.cc ARM: Add support for the VFP mov literal instruction and mov 2010-07-08 12:38:02 +00:00
constants-arm.h ARM: The Simulator will now handle different VFP rounding modes. RZ and RM are implemented. This is a commit of 2010-11-09 08:26:02 +00:00
cpu-arm.cc Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
debug-arm.cc Make randomized allocations along 64k granularity boundaries to avoid comitting unused memory. 2010-11-24 09:40:58 +00:00
deoptimizer-arm.cc Allow arguments in safepoints with registers. 2011-01-12 14:14:14 +00:00
disasm-arm.cc Improve support for vmrs/vmsr in ARM disassembler. This is a commit of http://codereview.chromium.org/4904001 for Martyn Capewell. 2010-11-15 10:21:57 +00:00
frames-arm.cc Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
frames-arm.h Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
full-codegen-arm.cc Small change to stack checks in unoptimized code. 2011-01-06 13:48:12 +00:00
ic-arm.cc Fixes needed to compile on gcc-4.4.1 on ARM. It is still necessary 2011-01-12 11:56:41 +00:00
jump-target-arm.cc ARM: Remove a bunch of spilled scopes. Still a lot to go. 2010-06-24 07:54:48 +00:00
lithium-arm.cc Make closures optimizable by Crankshaft compiler. 2011-01-17 08:11:03 +00:00
lithium-arm.h Make closures optimizable by Crankshaft compiler. 2011-01-17 08:11:03 +00:00
lithium-codegen-arm.cc Change the algorithm and generated code for parallel moves on IA32. 2011-01-17 11:25:36 +00:00
lithium-codegen-arm.h Make closures optimizable by Crankshaft compiler. 2011-01-17 08:11:03 +00:00
macro-assembler-arm.cc ARM: Implement DoDivI in the lithium code generator. 2011-01-14 08:49:52 +00:00
macro-assembler-arm.h ARM: Implement DoDivI in the lithium code generator. 2011-01-14 08:49:52 +00:00
regexp-macro-assembler-arm.cc Fixes needed to compile on gcc-4.4.1 on ARM. It is still necessary 2011-01-12 11:56:41 +00:00
regexp-macro-assembler-arm.h Fixes needed to compile on gcc-4.4.1 on ARM. It is still necessary 2011-01-12 11:56:41 +00:00
register-allocator-arm-inl.h Simple register allocation for ARM. Only top of expression 2010-04-08 22:30:30 +00:00
register-allocator-arm.cc Allow build-time selection between ia32 and x86_64 in the GYP/Xcode Mac 2010-05-17 15:41:35 +00:00
register-allocator-arm.h Simple register allocation for ARM. Only top of expression 2010-04-08 22:30:30 +00:00
simulator-arm.cc Landing for Martyn Capewell. 2011-01-10 08:04:30 +00:00
simulator-arm.h Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
stub-cache-arm.cc Avoid trashing the FPSCR when calculating Math.floor 2011-01-14 15:39:18 +00:00
virtual-frame-arm-inl.h ARM: Track Smis on top 4 stack positions and Smi loop variables. 2010-06-02 09:37:02 +00:00
virtual-frame-arm.cc Landing for Martyn Capewell. 2010-11-17 14:48:43 +00:00
virtual-frame-arm.h Fix bug 813, harmless assert triggered by ARM inside o3d. 2010-08-06 09:04:17 +00:00