Chromium Code Reviews| Index: src/compiler/code-assembler.cc |
| diff --git a/src/compiler/code-assembler.cc b/src/compiler/code-assembler.cc |
| index 285259ffcd8e52b252e11d8cc1ab458473c7f1fb..ba7f9df68f1af605e74b764c0fa8ab00b118c41d 100644 |
| --- a/src/compiler/code-assembler.cc |
| +++ b/src/compiler/code-assembler.cc |
| @@ -148,6 +148,20 @@ bool CodeAssembler::ToInt64Constant(Node* node, int64_t& out_value) { |
| return m.HasValue(); |
| } |
| +bool CodeAssembler::ToSmiConstant(Node* node, Smi*& out_value) { |
| + if (node->opcode() == IrOpcode::kBitcastWordToTaggedSigned) { |
| + node = node->InputAt(0); |
| + } else { |
| + return false; |
| + } |
| + IntPtrMatcher m(node); |
| + if (m.HasValue()) { |
| + out_value = reinterpret_cast<Smi*>(m.Value()); |
|
Michael Starzinger
2016/10/17 14:45:51
nit: At this point we should be able to use the ch
|
| + return true; |
| + } |
| + return false; |
| +} |
| + |
| bool CodeAssembler::ToIntPtrConstant(Node* node, intptr_t& out_value) { |
| IntPtrMatcher m(node); |
| if (m.HasValue()) out_value = m.Value(); |