| 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 2111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2122 receiver_is_symbol.If<HCompareNumericAndBranch>( | 2122 receiver_is_symbol.If<HCompareNumericAndBranch>( |
| 2123 receiver_instance_type, Add<HConstant>(SYMBOL_TYPE), Token::EQ); | 2123 receiver_instance_type, Add<HConstant>(SYMBOL_TYPE), Token::EQ); |
| 2124 receiver_is_symbol.Then(); | 2124 receiver_is_symbol.Then(); |
| 2125 { | 2125 { |
| 2126 // Load global Symbol function. | 2126 // Load global Symbol function. |
| 2127 HValue* constructor = Add<HLoadNamedField>( | 2127 HValue* constructor = Add<HLoadNamedField>( |
| 2128 native_context, nullptr, HObjectAccess::ForContextSlot( | 2128 native_context, nullptr, HObjectAccess::ForContextSlot( |
| 2129 Context::SYMBOL_FUNCTION_INDEX)); | 2129 Context::SYMBOL_FUNCTION_INDEX)); |
| 2130 Push(constructor); | 2130 Push(constructor); |
| 2131 } | 2131 } |
| 2132 receiver_is_symbol.Else(); | 2132 // TODO(bmeurer): Don't inline this into crankshaft code, as it will |
| 2133 { | 2133 // deoptimize on all SIMD128 objects. |
| 2134 IfBuilder receiver_is_float32x4(this); | 2134 receiver_is_symbol.ElseDeopt( |
| 2135 receiver_is_float32x4.If<HCompareNumericAndBranch>( | 2135 Deoptimizer::kUndefinedOrNullInToObject); |
| 2136 receiver_instance_type, Add<HConstant>(FLOAT32X4_TYPE), | |
| 2137 Token::EQ); | |
| 2138 receiver_is_float32x4.Then(); | |
| 2139 { | |
| 2140 // Load global Float32x4 function. | |
| 2141 HValue* constructor = Add<HLoadNamedField>( | |
| 2142 native_context, nullptr, | |
| 2143 HObjectAccess::ForContextSlot( | |
| 2144 Context::FLOAT32X4_FUNCTION_INDEX)); | |
| 2145 Push(constructor); | |
| 2146 } | |
| 2147 receiver_is_float32x4.ElseDeopt( | |
| 2148 Deoptimizer::kUndefinedOrNullInToObject); | |
| 2149 receiver_is_float32x4.JoinContinuation(&wrap); | |
| 2150 } | |
| 2151 receiver_is_symbol.JoinContinuation(&wrap); | 2136 receiver_is_symbol.JoinContinuation(&wrap); |
| 2152 } | 2137 } |
| 2153 receiver_is_string.JoinContinuation(&wrap); | 2138 receiver_is_string.JoinContinuation(&wrap); |
| 2154 } | 2139 } |
| 2155 receiver_is_boolean.JoinContinuation(&wrap); | 2140 receiver_is_boolean.JoinContinuation(&wrap); |
| 2156 } | 2141 } |
| 2157 receiver_is_heap_number.JoinContinuation(&wrap); | 2142 receiver_is_heap_number.JoinContinuation(&wrap); |
| 2158 } | 2143 } |
| 2159 receiver_is_not_spec_object.JoinContinuation(&wrap); | 2144 receiver_is_not_spec_object.JoinContinuation(&wrap); |
| 2160 } | 2145 } |
| (...skipping 11346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13507 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13492 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13508 } | 13493 } |
| 13509 | 13494 |
| 13510 #ifdef DEBUG | 13495 #ifdef DEBUG |
| 13511 graph_->Verify(false); // No full verify. | 13496 graph_->Verify(false); // No full verify. |
| 13512 #endif | 13497 #endif |
| 13513 } | 13498 } |
| 13514 | 13499 |
| 13515 } // namespace internal | 13500 } // namespace internal |
| 13516 } // namespace v8 | 13501 } // namespace v8 |
| OLD | NEW |