Fix some out-of-line constant pool garbage collection bugs.
authorrmcilroy@chromium.org <rmcilroy@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 7 Jan 2014 15:53:54 +0000 (15:53 +0000)
committerrmcilroy@chromium.org <rmcilroy@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 7 Jan 2014 15:53:54 +0000 (15:53 +0000)
commit687537ded3e5d3a8b880f8bc13665c396b113372
tree8e585533ee42010cc9ca1cd9a044b9f81d3ea25c
parent0030356cd0ac1ef9e699e4ef0c59f15edca5aac5
Fix some out-of-line constant pool garbage collection bugs.

This CL fixes some bugs in the out of line constant pool implementation when
constant pools are GCed.  Namely:
  - Push/Pop pp register in exit frames and VisitPointer on it to ensure it is
    updated if the ConstantPoolArray is moved by GC.
  - Mark pp as a SafePoint Register for optimized functions.
  - Ensure that StandardFrame::IterateExpressions also iterates over the
    constant pool pointer in the stackframe.
  - Fix calculation of last_ptr_offset in ConstantPoolArray body iterator.
  - Make ensure that CONSTANT_POOL_ARRAY_TYPE is a pointer object InstanceType.

R=ulan@chromium.org

Review URL: https://codereview.chromium.org/123263005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
15 files changed:
src/arm/frames-arm.cc
src/arm/frames-arm.h
src/arm/lithium-codegen-arm.cc
src/arm/macro-assembler-arm.cc
src/frames.cc
src/frames.h
src/ia32/frames-ia32.cc
src/ia32/frames-ia32.h
src/mips/frames-mips.cc
src/mips/frames-mips.h
src/objects-visiting-inl.h
src/objects.cc
src/objects.h
src/x64/frames-x64.cc
src/x64/frames-x64.h