This fixes the following generated code sequence:
movn w1, #0 // Synthesize -1.
cmp w0, w1
With a properly-constructed Operand, the MacroAssembler can optimize it
as follows:
cmn w0, #1
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
253513003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20989
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
Representation r = chunk_->LookupLiteralRepresentation(const_op);
if (r.IsInteger32()) {
ASSERT(constant->HasInteger32Value());
- return Operand(signedness == SIGNED_INT32
- ? constant->Integer32Value()
- : static_cast<uint32_t>(constant->Integer32Value()));
+ return (signedness == SIGNED_INT32)
+ ? Operand(constant->Integer32Value())
+ : Operand(static_cast<uint32_t>(constant->Integer32Value()));
} else {
// Other constants not implemented.
Abort(kToOperand32UnsupportedImmediate);