Reviewers: danno,
Message:
Hi - We finally have a working version with the new gc. The fundamental
issue is
the mips use of pointers inlined in the code, in a pair of consecutive
instructions, lui & ori (like arm movt/movw).
In the old gc, all access to these inlined pointers came through
CodeIterateBody, and RelocInfo.
In the new gc the Slots and SlotsBuffer presented a problem as all pointers
are
updated with indirect access (Object **).
Our solution adds a wrapper class within SlotsBuffer that should not impose
any
performance impact on the other architectures.
Open to your suggestions and better ideas, of course.
The associated change in http://codereview.chromium.org/8112008 adds mips
ports
for all commits since the initial new-gc, and with that, this code passes
all
tests. Because of changes since the initial new-gc, this commit will not
build
without all the other one.
Description:
MIPS: port Merge experimental/gc branch to the bleeding_edge.
Architecture-independent changes:
- ObjectSlot in SlotsBuffer is now a wrapper class that allows us to
properly dereference and set the MIPS-style "indirect" lui/ori pointers
saved in the code.
- extended some visitor types to be able to pass a special flag value as a
parameter that is used to mark indirect pointers.
Ported r9328 (bdc13b7)
BUG=
TEST=
Please review this at http://codereview.chromium.org/8106002/
Affected files:
M src/incremental-marking.cc
M src/mark-compact-inl.h
M src/mark-compact.h
M src/mark-compact.cc
M src/mips/assembler-mips-inl.h
M src/mips/assembler-mips.cc
M src/mips/code-stubs-mips.h
M src/mips/code-stubs-mips.cc
M src/mips/codegen-mips.h
M src/mips/deoptimizer-mips.cc
M src/mips/frames-mips.h
M src/mips/full-codegen-mips.cc
M src/mips/ic-mips.cc
M src/mips/macro-assembler-mips.h
M src/mips/macro-assembler-mips.cc
M src/mips/stub-cache-mips.cc
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev