Chromium Code Reviews| Index: src/ia32/builtins-ia32.cc |
| diff --git a/src/ia32/builtins-ia32.cc b/src/ia32/builtins-ia32.cc |
| index eeddcd290074bea8693da678dc4b708fe61638e2..578a0b64f21a0949009691123943b06ed663dfdc 100644 |
| --- a/src/ia32/builtins-ia32.cc |
| +++ b/src/ia32/builtins-ia32.cc |
| @@ -160,18 +160,17 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
| if (!is_api_function) { |
| Label allocate; |
| // The code below relies on these assumptions. |
| - STATIC_ASSERT(JSFunction::kNoSlackTracking == 0); |
| - STATIC_ASSERT(Map::ConstructionCount::kShift + |
| - Map::ConstructionCount::kSize == 32); |
| + STATIC_ASSERT(Map::Counter::kShift + Map::Counter::kSize == 32); |
| // Check if slack tracking is enabled. |
| __ mov(esi, FieldOperand(eax, Map::kBitField3Offset)); |
| - __ shr(esi, Map::ConstructionCount::kShift); |
| - __ j(zero, &allocate); // JSFunction::kNoSlackTracking |
| + __ shr(esi, Map::Counter::kShift); |
| + __ cmp(esi, Map::kSlackTrackingCounterEnd); |
| + __ j(less, &allocate); |
| // Decrease generous allocation count. |
| __ sub(FieldOperand(eax, Map::kBitField3Offset), |
| - Immediate(1 << Map::ConstructionCount::kShift)); |
| + Immediate(1 << Map::Counter::kShift)); |
| - __ cmp(esi, JSFunction::kFinishSlackTracking); |
| + __ cmp(esi, Map::kSlackTrackingCounterEnd + 1); |
|
Igor Sheludko
2014/12/04 10:11:09
We should compare against Map::kSlackTrackingCount
ulan
2014/12/05 14:04:44
Done.
|
| __ j(not_equal, &allocate); |
| __ push(eax); |
| @@ -182,7 +181,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
| __ pop(edi); |
| __ pop(eax); |
| - __ xor_(esi, esi); // JSFunction::kNoSlackTracking |
| + __ mov(esi, Map::kSlackTrackingCounterEnd - 1); |
| __ bind(&allocate); |
| } |
| @@ -219,8 +218,8 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
| Label no_inobject_slack_tracking; |
| // Check if slack tracking is enabled. |
| - __ cmp(esi, JSFunction::kNoSlackTracking); |
| - __ j(equal, &no_inobject_slack_tracking); |
| + __ cmp(esi, Map::kSlackTrackingCounterEnd); |
| + __ j(less, &no_inobject_slack_tracking); |
| // Allocate object with a slack. |
| __ movzx_b(esi, |