diff options
author | 2014-10-22 10:11:06 +0100 | |
---|---|---|
committer | 2014-10-22 10:11:06 +0100 | |
commit | b762d2ebf9dc604561d9915c96b377235c94960c (patch) | |
tree | aa6060b282db511651908d232a6b16ecbb22b755 /compiler/optimizing/nodes.cc | |
parent | 4ff20eba94a2519e5bac57b5f92e04741ea90141 (diff) |
Various fixes related to integer negate operations.
- Emit an RSB instruction for HNeg nodes in the ARM code
generator instead of RSBS, as we do not need to update the
condition code flags in this case.
- Simply punt when trying to statically evaluate a long
unary operation, instead of aborting.
- Move a test case to the right place.
Change-Id: I35eb8dea58ed35258d4d8df77181159c3ab07b6f
Diffstat (limited to 'compiler/optimizing/nodes.cc')
-rw-r--r-- | compiler/optimizing/nodes.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/optimizing/nodes.cc b/compiler/optimizing/nodes.cc index 0505510213..d624ad5e5e 100644 --- a/compiler/optimizing/nodes.cc +++ b/compiler/optimizing/nodes.cc @@ -602,7 +602,11 @@ HConstant* HUnaryOperation::TryStaticEvaluation() const { int32_t value = Evaluate(GetInput()->AsIntConstant()->GetValue()); return new(GetBlock()->GetGraph()->GetArena()) HIntConstant(value); } else if (GetInput()->IsLongConstant()) { - LOG(FATAL) << "Static evaluation of long unary operations is not yet implemented."; + // TODO: Implement static evaluation of long unary operations. + // + // Do not exit with a fatal condition here. Instead, simply + // return `nullptr' to notify the caller that this instruction + // cannot (yet) be statically evaluated. return nullptr; } return nullptr; |