Index: runtime/vm/intermediate_language_arm64.cc |
=================================================================== |
--- runtime/vm/intermediate_language_arm64.cc (revision 35975) |
+++ runtime/vm/intermediate_language_arm64.cc (working copy) |
@@ -470,8 +470,8 @@ |
static Condition EmitDoubleComparisonOp(FlowGraphCompiler* compiler, |
LocationSummary* locs, |
Token::Kind kind) { |
- VRegister left = locs->in(0).fpu_reg(); |
- VRegister right = locs->in(1).fpu_reg(); |
+ const VRegister left = locs->in(0).fpu_reg(); |
+ const VRegister right = locs->in(1).fpu_reg(); |
__ fcmpd(left, right); |
Condition true_condition = TokenKindToDoubleCondition(kind); |
return true_condition; |
@@ -771,8 +771,8 @@ |
void StringFromCharCodeInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
- Register char_code = locs()->in(0).reg(); |
- Register result = locs()->out(0).reg(); |
+ const Register char_code = locs()->in(0).reg(); |
+ const Register result = locs()->out(0).reg(); |
__ LoadImmediate(result, |
reinterpret_cast<uword>(Symbols::PredefinedAddress()), PP); |
__ AddImmediate( |
@@ -792,14 +792,13 @@ |
void StringToCharCodeInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(cid_ == kOneByteStringCid); |
- Register str = locs()->in(0).reg(); |
- Register result = locs()->out(0).reg(); |
+ const Register str = locs()->in(0).reg(); |
+ const Register result = locs()->out(0).reg(); |
__ LoadFieldFromOffset(result, str, String::length_offset(), PP); |
+ __ ldr(TMP, FieldAddress(str, OneByteString::data_offset()), kUnsignedByte); |
__ CompareImmediate(result, Smi::RawValue(1), PP); |
- __ LoadImmediate(TMP, Smi::RawValue(-1), PP); |
- __ ldr(TMP2, FieldAddress(str, OneByteString::data_offset()), kUnsignedByte); |
- __ csel(result, TMP, result, NE); |
- __ csel(result, TMP2, result, EQ); |
+ __ LoadImmediate(result, -1, PP); |
+ __ csel(result, TMP, result, EQ); |
__ SmiTag(result); |
} |