MIPS: Fix r21470 “Reland r21442 Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
plind44@gmail.com 2014-05-23 19:32:48 +00:00
parent 50e9d22a44
commit b2fc45955c

View File

@ -379,9 +379,6 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
__ lbu(a3, FieldMemOperand(a2, Map::kInstanceTypeOffset));
__ Branch(&rt_call, eq, a3, Operand(JS_FUNCTION_TYPE));
// Use t7 to hold undefined, which is used in several places below.
__ LoadRoot(t7, Heap::kUndefinedValueRootIndex);
if (!is_api_function) {
Label allocate;
MemOperand bit_field3 = FieldMemOperand(a2, Map::kBitField3Offset);
@ -399,6 +396,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
__ CallRuntime(Runtime::kHiddenFinalizeInstanceSize, 1);
__ Pop(a1, a2);
// Slack tracking counter is kNoSlackTracking after runtime call.
ASSERT(JSFunction::kNoSlackTracking == 0);
__ mov(t2, zero_reg);
__ bind(&allocate);
}
@ -438,6 +438,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
// t2: slack tracking counter (non-API function case)
ASSERT_EQ(3 * kPointerSize, JSObject::kHeaderSize);
// Use t7 to hold undefined, which is used in several places below.
__ LoadRoot(t7, Heap::kUndefinedValueRootIndex);
if (!is_api_function) {
Label no_inobject_slack_tracking;