Commit 486a9fdb authored by Jacob.Bramley@arm.com's avatar Jacob.Bramley@arm.com

ARM64: Fix LCodeGen::ToOperand32.

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
parent 81a10167
......@@ -1235,9 +1235,9 @@ Operand LCodeGen::ToOperand32(LOperand* op, IntegerSignedness signedness) {
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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment