Commit 4d85caff authored by mbrandy's avatar mbrandy Committed by Commit bot

PPC: New page local store buffer.

Port bb883395

Original commit message:
    This replaces the global remembered set with per-page remembered sets.

    Each page in the old space, map space, and large object space keeps track of
    the set of slots in the page pointing to the new space.

    The data structure for storing slot sets is a two-level bitmap, which allows
    us to remove the store buffer overflow and SCAN_ON_SCAVENGE logic.

    Design doc: https://goo.gl/sMKCf7

R=ulan@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=chromium:578883
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#33823}
parent 1b6265ef
......@@ -4157,9 +4157,8 @@ void RecordWriteStub::GenerateIncremental(MacroAssembler* masm, Mode mode) {
__ JumpIfNotInNewSpace(regs_.scratch0(), // Value.
regs_.scratch0(), &dont_need_remembered_set);
__ CheckPageFlag(regs_.object(), regs_.scratch0(),
1 << MemoryChunk::SCAN_ON_SCAVENGE, ne,
&dont_need_remembered_set);
__ JumpIfInNewSpace(regs_.object(), regs_.scratch0(),
&dont_need_remembered_set);
// First notify the incremental marker if necessary, then update the
// remembered set.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment