Index: src/x87/code-stubs-x87.cc |
diff --git a/src/x87/code-stubs-x87.cc b/src/x87/code-stubs-x87.cc |
index 971dd4a112b3501bd15b31eeb9fa5a650973b9b7..b12c6516d493606cc7d323ff1331b787bd6765aa 100644 |
--- a/src/x87/code-stubs-x87.cc |
+++ b/src/x87/code-stubs-x87.cc |
@@ -333,20 +333,15 @@ void MathPowStub::Generate(MacroAssembler* masm) { |
void FunctionPrototypeStub::Generate(MacroAssembler* masm) { |
Label miss; |
Register receiver = LoadDescriptor::ReceiverRegister(); |
+ // With careful management, we won't have to save slot and vector on |
+ // the stack. Simply handle the possibly missing case first. |
+ // TODO(mvstanton): this code can be more efficient. |
+ __ cmp(FieldOperand(receiver, JSFunction::kPrototypeOrInitialMapOffset), |
+ Immediate(isolate()->factory()->the_hole_value())); |
+ __ j(equal, &miss); |
+ __ TryGetFunctionPrototype(receiver, eax, ebx, &miss); |
+ __ ret(0); |
- if (FLAG_vector_ics) { |
- // With careful management, we won't have to save slot and vector on |
- // the stack. Simply handle the possibly missing case first. |
- // TODO(mvstanton): this code can be more efficient. |
- __ cmp(FieldOperand(receiver, JSFunction::kPrototypeOrInitialMapOffset), |
- Immediate(isolate()->factory()->the_hole_value())); |
- __ j(equal, &miss); |
- __ TryGetFunctionPrototype(receiver, eax, ebx, &miss); |
- __ ret(0); |
- } else { |
- NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, eax, |
- ebx, &miss); |
- } |
__ bind(&miss); |
PropertyAccessCompiler::TailCallBuiltin( |
masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC)); |
@@ -393,9 +388,8 @@ void LoadIndexedStringStub::Generate(MacroAssembler* masm) { |
DCHECK(!scratch.is(receiver) && !scratch.is(index)); |
Register result = eax; |
DCHECK(!result.is(scratch)); |
- DCHECK(!FLAG_vector_ics || |
- (!scratch.is(VectorLoadICDescriptor::VectorRegister()) && |
- result.is(VectorLoadICDescriptor::SlotRegister()))); |
+ DCHECK(!scratch.is(VectorLoadICDescriptor::VectorRegister()) && |
+ result.is(VectorLoadICDescriptor::SlotRegister())); |
// StringCharAtGenerator doesn't use the result register until it's passed |
// the different miss possibilities. If it did, we would have a conflict |
@@ -2664,7 +2658,7 @@ void StringCharCodeAtGenerator::GenerateSlow( |
index_not_number_, |
DONT_DO_SMI_CHECK); |
call_helper.BeforeCall(masm); |
- if (FLAG_vector_ics && embed_mode == PART_OF_IC_HANDLER) { |
+ if (embed_mode == PART_OF_IC_HANDLER) { |
__ push(VectorLoadICDescriptor::VectorRegister()); |
__ push(VectorLoadICDescriptor::SlotRegister()); |
} |
@@ -2683,7 +2677,7 @@ void StringCharCodeAtGenerator::GenerateSlow( |
__ mov(index_, eax); |
} |
__ pop(object_); |
- if (FLAG_vector_ics && embed_mode == PART_OF_IC_HANDLER) { |
+ if (embed_mode == PART_OF_IC_HANDLER) { |
__ pop(VectorLoadICDescriptor::SlotRegister()); |
__ pop(VectorLoadICDescriptor::VectorRegister()); |
} |