| OLD | NEW |
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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/code-stub-assembler.h" | 5 #include "src/code-stub-assembler.h" |
| 6 #include "src/code-factory.h" | 6 #include "src/code-factory.h" |
| 7 | 7 |
| 8 namespace v8 { | 8 namespace v8 { |
| 9 namespace internal { | 9 namespace internal { |
| 10 | 10 |
| (...skipping 1291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1302 Bind(&if_done); | 1302 Bind(&if_done); |
| 1303 return var_result.value(); | 1303 return var_result.value(); |
| 1304 } | 1304 } |
| 1305 | 1305 |
| 1306 Node* CodeStubAssembler::BitFieldDecode(Node* word32, uint32_t shift, | 1306 Node* CodeStubAssembler::BitFieldDecode(Node* word32, uint32_t shift, |
| 1307 uint32_t mask) { | 1307 uint32_t mask) { |
| 1308 return Word32Shr(Word32And(word32, Int32Constant(mask)), | 1308 return Word32Shr(Word32And(word32, Int32Constant(mask)), |
| 1309 Int32Constant(shift)); | 1309 Int32Constant(shift)); |
| 1310 } | 1310 } |
| 1311 | 1311 |
| 1312 void CodeStubAssembler::Boom() { |
| 1313 Label block1(this, Label::kDeferred); |
| 1314 Goto(&block1); |
| 1315 Bind(&block1); |
| 1316 { |
| 1317 Variable var_object(this, MachineRepresentation::kTagged); |
| 1318 Label loop(this, &var_object); |
| 1319 var_object.Bind(IntPtrConstant(0)); |
| 1320 Goto(&loop); |
| 1321 Bind(&loop); |
| 1322 { |
| 1323 Node* map = LoadMap(var_object.value()); |
| 1324 |
| 1325 var_object.Bind(map); |
| 1326 Goto(&loop); |
| 1327 } |
| 1328 } |
| 1329 } |
| 1330 |
| 1312 void CodeStubAssembler::TryToName(Node* key, Label* if_keyisindex, | 1331 void CodeStubAssembler::TryToName(Node* key, Label* if_keyisindex, |
| 1313 Variable* var_index, Label* if_keyisunique, | 1332 Variable* var_index, Label* if_keyisunique, |
| 1314 Label* call_runtime) { | 1333 Label* call_runtime) { |
| 1315 DCHECK_EQ(MachineRepresentation::kWord32, var_index->rep()); | 1334 DCHECK_EQ(MachineRepresentation::kWord32, var_index->rep()); |
| 1316 | 1335 |
| 1317 Label if_keyissmi(this), if_keyisnotsmi(this); | 1336 Label if_keyissmi(this), if_keyisnotsmi(this); |
| 1318 Branch(WordIsSmi(key), &if_keyissmi, &if_keyisnotsmi); | 1337 Branch(WordIsSmi(key), &if_keyissmi, &if_keyisnotsmi); |
| 1319 Bind(&if_keyissmi); | 1338 Bind(&if_keyissmi); |
| 1320 { | 1339 { |
| 1321 // Negative smi keys are named properties. Handle in the runtime. | 1340 // Negative smi keys are named properties. Handle in the runtime. |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1616 } | 1635 } |
| 1617 return IntPtrAdd( | 1636 return IntPtrAdd( |
| 1618 IntPtrConstant(base_size), | 1637 IntPtrConstant(base_size), |
| 1619 (element_size_shift >= 0) | 1638 (element_size_shift >= 0) |
| 1620 ? WordShl(index_node, IntPtrConstant(element_size_shift)) | 1639 ? WordShl(index_node, IntPtrConstant(element_size_shift)) |
| 1621 : WordShr(index_node, IntPtrConstant(-element_size_shift))); | 1640 : WordShr(index_node, IntPtrConstant(-element_size_shift))); |
| 1622 } | 1641 } |
| 1623 | 1642 |
| 1624 } // namespace internal | 1643 } // namespace internal |
| 1625 } // namespace v8 | 1644 } // namespace v8 |
| OLD | NEW |