OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 9065 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9076 | 9076 |
9077 // Fast support for StringAdd. | 9077 // Fast support for StringAdd. |
9078 void HOptimizedGraphBuilder::GenerateStringAdd(CallRuntime* call) { | 9078 void HOptimizedGraphBuilder::GenerateStringAdd(CallRuntime* call) { |
9079 ASSERT_EQ(2, call->arguments()->length()); | 9079 ASSERT_EQ(2, call->arguments()->length()); |
9080 CHECK_ALIVE(VisitForValue(call->arguments()->at(0))); | 9080 CHECK_ALIVE(VisitForValue(call->arguments()->at(0))); |
9081 CHECK_ALIVE(VisitForValue(call->arguments()->at(1))); | 9081 CHECK_ALIVE(VisitForValue(call->arguments()->at(1))); |
9082 HValue* right = Pop(); | 9082 HValue* right = Pop(); |
9083 HValue* left = Pop(); | 9083 HValue* left = Pop(); |
9084 HValue* context = environment()->LookupContext(); | 9084 HValue* context = environment()->LookupContext(); |
9085 HInstruction* result = HStringAdd::New( | 9085 HInstruction* result = HStringAdd::New( |
9086 zone(), context, left, right, NO_STRING_ADD_FLAGS); | 9086 zone(), context, left, right, STRING_ADD_CHECK_BOTH); |
9087 return ast_context()->ReturnInstruction(result, call->id()); | 9087 return ast_context()->ReturnInstruction(result, call->id()); |
9088 } | 9088 } |
9089 | 9089 |
9090 | 9090 |
9091 // Fast support for SubString. | 9091 // Fast support for SubString. |
9092 void HOptimizedGraphBuilder::GenerateSubString(CallRuntime* call) { | 9092 void HOptimizedGraphBuilder::GenerateSubString(CallRuntime* call) { |
9093 ASSERT_EQ(3, call->arguments()->length()); | 9093 ASSERT_EQ(3, call->arguments()->length()); |
9094 CHECK_ALIVE(VisitArgumentList(call->arguments())); | 9094 CHECK_ALIVE(VisitArgumentList(call->arguments())); |
9095 HValue* context = environment()->LookupContext(); | 9095 HValue* context = environment()->LookupContext(); |
9096 HCallStub* result = new(zone()) HCallStub(context, CodeStub::SubString, 3); | 9096 HCallStub* result = new(zone()) HCallStub(context, CodeStub::SubString, 3); |
(...skipping 815 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9912 if (ShouldProduceTraceOutput()) { | 9912 if (ShouldProduceTraceOutput()) { |
9913 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 9913 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
9914 } | 9914 } |
9915 | 9915 |
9916 #ifdef DEBUG | 9916 #ifdef DEBUG |
9917 graph_->Verify(false); // No full verify. | 9917 graph_->Verify(false); // No full verify. |
9918 #endif | 9918 #endif |
9919 } | 9919 } |
9920 | 9920 |
9921 } } // namespace v8::internal | 9921 } } // namespace v8::internal |
OLD | NEW |