| Index: src/compiler/code-assembler.cc
|
| diff --git a/src/compiler/code-assembler.cc b/src/compiler/code-assembler.cc
|
| index 285259ffcd8e52b252e11d8cc1ab458473c7f1fb..043ea895ce4ec0257f84a5050b60ea635313f3ca 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 = Smi::cast(bit_cast<Object*>(m.Value()));
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| bool CodeAssembler::ToIntPtrConstant(Node* node, intptr_t& out_value) {
|
| IntPtrMatcher m(node);
|
| if (m.HasValue()) out_value = m.Value();
|
|
|