MIPS64: Load prototype from map in PropertyHandlerCompiler::CheckPrototypes.

Port 100db75808

BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25497}
This commit is contained in:
balazs.kilvady 2014-11-25 03:37:55 -08:00 committed by Commit bot
parent 322bb23e82
commit a4c9cc46dc

View File

@ -411,12 +411,6 @@ Register PropertyHandlerCompiler::CheckPrototypes(
reg = holder_reg; // From now on the object will be in holder_reg.
__ ld(reg, FieldMemOperand(scratch1, Map::kPrototypeOffset));
} else {
// Two possible reasons for loading the prototype from the map:
// (1) Can't store references to new space in code.
// (2) Handler is shared for all receivers with the same prototype
// map (but not necessarily the same prototype instance).
bool load_prototype_from_map =
heap()->InNewSpace(*prototype) || depth == 1;
Register map_reg = scratch1;
if (depth != 1 || check == CHECK_ALL_MAPS) {
// CheckMap implicitly loads the map of |reg| into |map_reg|.
@ -440,11 +434,7 @@ Register PropertyHandlerCompiler::CheckPrototypes(
reg = holder_reg; // From now on the object will be in holder_reg.
if (load_prototype_from_map) {
__ ld(reg, FieldMemOperand(map_reg, Map::kPrototypeOffset));
} else {
__ li(reg, Operand(prototype));
}
__ ld(reg, FieldMemOperand(map_reg, Map::kPrototypeOffset));
}
// Go to the next object in the prototype chain.