| 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 |