summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.cc
diff options
context:
space:
mode:
author Roland Levillain <rpl@google.com> 2014-10-22 10:11:06 +0100
committer Roland Levillain <rpl@google.com> 2014-10-22 10:11:06 +0100
commitb762d2ebf9dc604561d9915c96b377235c94960c (patch)
treeaa6060b282db511651908d232a6b16ecbb22b755 /compiler/optimizing/nodes.cc
parent4ff20eba94a2519e5bac57b5f92e04741ea90141 (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.cc6
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;