Index: runtime/vm/intermediate_language_arm.cc |
diff --git a/runtime/vm/intermediate_language_arm.cc b/runtime/vm/intermediate_language_arm.cc |
index 34ab63822627c1a9178719d731c62e773894b2bd..2914a50475bf88c3b7ac34ba52cdf66ff5dad681 100644 |
--- a/runtime/vm/intermediate_language_arm.cc |
+++ b/runtime/vm/intermediate_language_arm.cc |
@@ -1612,16 +1612,16 @@ void GuardFieldClassInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (value_cid == kDynamicCid) { |
LoadValueCid(compiler, value_cid_reg, value_reg); |
- __ ldr(IP, field_cid_operand); |
+ __ ldrh(IP, field_cid_operand); |
__ cmp(value_cid_reg, Operand(IP)); |
__ b(&ok, EQ); |
- __ ldr(IP, field_nullability_operand); |
+ __ ldrh(IP, field_nullability_operand); |
__ cmp(value_cid_reg, Operand(IP)); |
} else if (value_cid == kNullCid) { |
- __ ldr(value_cid_reg, field_nullability_operand); |
+ __ ldrh(value_cid_reg, field_nullability_operand); |
__ CompareImmediate(value_cid_reg, value_cid); |
} else { |
- __ ldr(value_cid_reg, field_cid_operand); |
+ __ ldrh(value_cid_reg, field_cid_operand); |
__ CompareImmediate(value_cid_reg, value_cid); |
} |
__ b(&ok, EQ); |
@@ -1635,17 +1635,17 @@ void GuardFieldClassInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (!field().needs_length_check()) { |
// Uninitialized field can be handled inline. Check if the |
// field is still unitialized. |
- __ ldr(IP, field_cid_operand); |
+ __ ldrh(IP, field_cid_operand); |
__ CompareImmediate(IP, kIllegalCid); |
__ b(fail, NE); |
if (value_cid == kDynamicCid) { |
- __ str(value_cid_reg, field_cid_operand); |
- __ str(value_cid_reg, field_nullability_operand); |
+ __ strh(value_cid_reg, field_cid_operand); |
+ __ strh(value_cid_reg, field_nullability_operand); |
} else { |
__ LoadImmediate(IP, value_cid); |
- __ str(IP, field_cid_operand); |
- __ str(IP, field_nullability_operand); |
+ __ strh(IP, field_cid_operand); |
+ __ strh(IP, field_nullability_operand); |
} |
if (deopt == NULL) { |
@@ -1658,7 +1658,7 @@ void GuardFieldClassInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(!compiler->is_optimizing()); |
__ Bind(fail); |
- __ ldr(IP, FieldAddress(field_reg, Field::guarded_cid_offset())); |
+ __ ldrh(IP, FieldAddress(field_reg, Field::guarded_cid_offset())); |
__ CompareImmediate(IP, kDynamicCid); |
__ b(&ok, EQ); |
@@ -2108,7 +2108,7 @@ void StoreInstanceFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ LoadObject(temp, Field::ZoneHandle(field().raw())); |
- __ ldr(temp2, FieldAddress(temp, Field::is_nullable_offset())); |
+ __ ldrh(temp2, FieldAddress(temp, Field::is_nullable_offset())); |
__ CompareImmediate(temp2, kNullCid); |
__ b(&store_pointer, EQ); |
@@ -2116,15 +2116,15 @@ void StoreInstanceFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ tst(temp2, Operand(1 << Field::kUnboxingCandidateBit)); |
__ b(&store_pointer, EQ); |
- __ ldr(temp2, FieldAddress(temp, Field::guarded_cid_offset())); |
+ __ ldrh(temp2, FieldAddress(temp, Field::guarded_cid_offset())); |
__ CompareImmediate(temp2, kDoubleCid); |
__ b(&store_double, EQ); |
- __ ldr(temp2, FieldAddress(temp, Field::guarded_cid_offset())); |
+ __ ldrh(temp2, FieldAddress(temp, Field::guarded_cid_offset())); |
__ CompareImmediate(temp2, kFloat32x4Cid); |
__ b(&store_float32x4, EQ); |
- __ ldr(temp2, FieldAddress(temp, Field::guarded_cid_offset())); |
+ __ ldrh(temp2, FieldAddress(temp, Field::guarded_cid_offset())); |
__ CompareImmediate(temp2, kFloat64x2Cid); |
__ b(&store_float64x2, EQ); |
@@ -2473,19 +2473,19 @@ void LoadFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
FieldAddress field_nullability_operand(result_reg, |
Field::is_nullable_offset()); |
- __ ldr(temp, field_nullability_operand); |
+ __ ldrh(temp, field_nullability_operand); |
__ CompareImmediate(temp, kNullCid); |
__ b(&load_pointer, EQ); |
- __ ldr(temp, field_cid_operand); |
+ __ ldrh(temp, field_cid_operand); |
__ CompareImmediate(temp, kDoubleCid); |
__ b(&load_double, EQ); |
- __ ldr(temp, field_cid_operand); |
+ __ ldrh(temp, field_cid_operand); |
__ CompareImmediate(temp, kFloat32x4Cid); |
__ b(&load_float32x4, EQ); |
- __ ldr(temp, field_cid_operand); |
+ __ ldrh(temp, field_cid_operand); |
__ CompareImmediate(temp, kFloat64x2Cid); |
__ b(&load_float64x2, EQ); |