Index: src/compiler/node-matchers.h |
diff --git a/src/compiler/node-matchers.h b/src/compiler/node-matchers.h |
index d543425fca48606a0947291dc13bda6ecaa1c9cd..749b03cc2d670bba300f6f701a2392ac4e4f3766 100644 |
--- a/src/compiler/node-matchers.h |
+++ b/src/compiler/node-matchers.h |
@@ -77,6 +77,18 @@ struct ValueMatcher : public NodeMatcher { |
template <> |
+inline ValueMatcher<uint32_t, IrOpcode::kInt32Constant>::ValueMatcher( |
+ Node* node) |
+ : NodeMatcher(node), |
+ value_(), |
+ has_value_(opcode() == IrOpcode::kInt32Constant) { |
+ if (has_value_) { |
+ value_ = static_cast<uint32_t>(OpParameter<int32_t>(node)); |
+ } |
+} |
+ |
+ |
+template <> |
inline ValueMatcher<int64_t, IrOpcode::kInt64Constant>::ValueMatcher(Node* node) |
: NodeMatcher(node), value_(), has_value_(false) { |
if (opcode() == IrOpcode::kInt32Constant) { |
@@ -94,10 +106,10 @@ inline ValueMatcher<uint64_t, IrOpcode::kInt64Constant>::ValueMatcher( |
Node* node) |
: NodeMatcher(node), value_(), has_value_(false) { |
if (opcode() == IrOpcode::kInt32Constant) { |
- value_ = OpParameter<uint32_t>(node); |
+ value_ = static_cast<uint32_t>(OpParameter<int32_t>(node)); |
has_value_ = true; |
} else if (opcode() == IrOpcode::kInt64Constant) { |
- value_ = OpParameter<uint64_t>(node); |
+ value_ = static_cast<uint64_t>(OpParameter<int64_t>(node)); |
has_value_ = true; |
} |
} |