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:
parent
50e9d22a44
commit
b2fc45955c
@ -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,
|
|||||||
__ 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,
|
|||||||
// 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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user