Commit b2fc4595 authored by plind44@gmail.com's avatar plind44@gmail.com

MIPS: Fix r21470 “Reland r21442 Inobject slack tracking is done on a...

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
parent 50e9d22a
...@@ -379,9 +379,6 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, ...@@ -379,9 +379,6 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
__ lbu(a3, FieldMemOperand(a2, Map::kInstanceTypeOffset)); __ lbu(a3, FieldMemOperand(a2, Map::kInstanceTypeOffset));
__ Branch(&rt_call, eq, a3, Operand(JS_FUNCTION_TYPE)); __ 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) { if (!is_api_function) {
Label allocate; Label allocate;
MemOperand bit_field3 = FieldMemOperand(a2, Map::kBitField3Offset); MemOperand bit_field3 = FieldMemOperand(a2, Map::kBitField3Offset);
...@@ -399,6 +396,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, ...@@ -399,6 +396,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
__ CallRuntime(Runtime::kHiddenFinalizeInstanceSize, 1); __ CallRuntime(Runtime::kHiddenFinalizeInstanceSize, 1);
__ Pop(a1, a2); __ Pop(a1, a2);
// Slack tracking counter is kNoSlackTracking after runtime call.
ASSERT(JSFunction::kNoSlackTracking == 0);
__ mov(t2, zero_reg);
__ bind(&allocate); __ bind(&allocate);
} }
...@@ -438,6 +438,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, ...@@ -438,6 +438,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
// t2: slack tracking counter (non-API function case) // t2: slack tracking counter (non-API function case)
ASSERT_EQ(3 * kPointerSize, JSObject::kHeaderSize); 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) { if (!is_api_function) {
Label no_inobject_slack_tracking; Label no_inobject_slack_tracking;
......
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