X87: Reland "Merge cellspace into old pointer space".

port 4bd9bdbb28 (r27751)

original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27778}
This commit is contained in:
chunyang.dai 2015-04-13 02:35:59 -07:00 committed by Commit bot
parent 13b722b666
commit d93a0029dc
2 changed files with 7 additions and 0 deletions

View File

@ -205,6 +205,7 @@ Cell* RelocInfo::target_cell() {
void RelocInfo::set_target_cell(Cell* cell,
WriteBarrierMode write_barrier_mode,
ICacheFlushMode icache_flush_mode) {
DCHECK(cell->IsCell());
DCHECK(rmode_ == RelocInfo::CELL);
Address address = cell->address() + Cell::kValueOffset;
Memory::Address_at(pc_) = address;

View File

@ -2452,6 +2452,12 @@ void InstanceofStub::Generate(MacroAssembler* masm) {
}
__ mov(scratch, Operand(scratch, kDeltaToCmpImmediate));
__ mov(Operand(scratch, 0), map);
__ push(map);
// Scratch points at the cell payload. Calculate the start of the object.
__ sub(scratch, Immediate(Cell::kValueOffset - 1));
__ RecordWriteField(scratch, Cell::kValueOffset, map, function,
kDontSaveFPRegs, OMIT_REMEMBERED_SET, OMIT_SMI_CHECK);
__ pop(map);
}
// Loop through the prototype chain of the object looking for the function