OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/hydrogen.h" | 5 #include "src/hydrogen.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "src/v8.h" | 9 #include "src/v8.h" |
10 | 10 |
(...skipping 11191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11202 } else if (combined_type->Is(Type::String())) { | 11202 } else if (combined_type->Is(Type::String())) { |
11203 BuildCheckHeapObject(left); | 11203 BuildCheckHeapObject(left); |
11204 Add<HCheckInstanceType>(left, HCheckInstanceType::IS_STRING); | 11204 Add<HCheckInstanceType>(left, HCheckInstanceType::IS_STRING); |
11205 BuildCheckHeapObject(right); | 11205 BuildCheckHeapObject(right); |
11206 Add<HCheckInstanceType>(right, HCheckInstanceType::IS_STRING); | 11206 Add<HCheckInstanceType>(right, HCheckInstanceType::IS_STRING); |
11207 HStringCompareAndBranch* result = | 11207 HStringCompareAndBranch* result = |
11208 New<HStringCompareAndBranch>(left, right, op); | 11208 New<HStringCompareAndBranch>(left, right, op); |
11209 return result; | 11209 return result; |
11210 } else { | 11210 } else { |
11211 if (combined_rep.IsTagged() || combined_rep.IsNone()) { | 11211 if (combined_rep.IsTagged() || combined_rep.IsNone()) { |
11212 HCompareGeneric* result = Add<HCompareGeneric>(left, right, op); | 11212 HCompareGeneric* result = |
| 11213 Add<HCompareGeneric>(left, right, op, function_language_mode()); |
11213 result->set_observed_input_representation(1, left_rep); | 11214 result->set_observed_input_representation(1, left_rep); |
11214 result->set_observed_input_representation(2, right_rep); | 11215 result->set_observed_input_representation(2, right_rep); |
11215 if (result->HasObservableSideEffects()) { | 11216 if (result->HasObservableSideEffects()) { |
11216 if (push_sim_result == PUSH_BEFORE_SIMULATE) { | 11217 if (push_sim_result == PUSH_BEFORE_SIMULATE) { |
11217 Push(result); | 11218 Push(result); |
11218 AddSimulate(bailout_id, REMOVABLE_SIMULATE); | 11219 AddSimulate(bailout_id, REMOVABLE_SIMULATE); |
11219 Drop(1); | 11220 Drop(1); |
11220 } else { | 11221 } else { |
11221 AddSimulate(bailout_id, REMOVABLE_SIMULATE); | 11222 AddSimulate(bailout_id, REMOVABLE_SIMULATE); |
11222 } | 11223 } |
(...skipping 1929 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13152 if (ShouldProduceTraceOutput()) { | 13153 if (ShouldProduceTraceOutput()) { |
13153 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13154 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
13154 } | 13155 } |
13155 | 13156 |
13156 #ifdef DEBUG | 13157 #ifdef DEBUG |
13157 graph_->Verify(false); // No full verify. | 13158 graph_->Verify(false); // No full verify. |
13158 #endif | 13159 #endif |
13159 } | 13160 } |
13160 | 13161 |
13161 } } // namespace v8::internal | 13162 } } // namespace v8::internal |
OLD | NEW |