Index: runtime/vm/intermediate_language_mips.cc |
diff --git a/runtime/vm/intermediate_language_mips.cc b/runtime/vm/intermediate_language_mips.cc |
index b26ab1681f6d30f09b34da542efea8e938023aff..dc934ebe1e5b2f38a47fd1e10955e3ad99f869e4 100644 |
--- a/runtime/vm/intermediate_language_mips.cc |
+++ b/runtime/vm/intermediate_language_mips.cc |
@@ -1650,16 +1650,16 @@ void GuardFieldClassInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (value_cid == kDynamicCid) { |
LoadValueCid(compiler, value_cid_reg, value_reg); |
- __ lw(CMPRES1, field_cid_operand); |
+ __ lhu(CMPRES1, field_cid_operand); |
__ beq(value_cid_reg, CMPRES1, &ok); |
- __ lw(TMP, field_nullability_operand); |
+ __ lhu(TMP, field_nullability_operand); |
__ subu(CMPRES1, value_cid_reg, TMP); |
} else if (value_cid == kNullCid) { |
- __ lw(TMP, field_nullability_operand); |
+ __ lhu(TMP, field_nullability_operand); |
__ LoadImmediate(CMPRES1, value_cid); |
__ subu(CMPRES1, TMP, CMPRES1); |
} else { |
- __ lw(TMP, field_cid_operand); |
+ __ lhu(TMP, field_cid_operand); |
__ LoadImmediate(CMPRES1, value_cid); |
__ subu(CMPRES1, TMP, CMPRES1); |
} |
@@ -1674,16 +1674,16 @@ void GuardFieldClassInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (!field().needs_length_check()) { |
// Uninitialized field can be handled inline. Check if the |
// field is still unitialized. |
- __ lw(CMPRES1, field_cid_operand); |
+ __ lhu(CMPRES1, field_cid_operand); |
__ BranchNotEqual(CMPRES1, Immediate(kIllegalCid), fail); |
if (value_cid == kDynamicCid) { |
- __ sw(value_cid_reg, field_cid_operand); |
- __ sw(value_cid_reg, field_nullability_operand); |
+ __ sh(value_cid_reg, field_cid_operand); |
+ __ sh(value_cid_reg, field_nullability_operand); |
} else { |
__ LoadImmediate(TMP, value_cid); |
- __ sw(TMP, field_cid_operand); |
- __ sw(TMP, field_nullability_operand); |
+ __ sh(TMP, field_cid_operand); |
+ __ sh(TMP, field_nullability_operand); |
} |
if (deopt == NULL) { |
@@ -1696,7 +1696,7 @@ void GuardFieldClassInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(!compiler->is_optimizing()); |
__ Bind(fail); |
- __ lw(CMPRES1, FieldAddress(field_reg, Field::guarded_cid_offset())); |
+ __ lhu(CMPRES1, FieldAddress(field_reg, Field::guarded_cid_offset())); |
__ BranchEqual(CMPRES1, Immediate(kDynamicCid), &ok); |
__ addiu(SP, SP, Immediate(-2 * kWordSize)); |
@@ -2000,14 +2000,14 @@ void StoreInstanceFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ LoadObject(temp, Field::ZoneHandle(field().raw())); |
- __ lw(temp2, FieldAddress(temp, Field::is_nullable_offset())); |
+ __ lhu(temp2, FieldAddress(temp, Field::is_nullable_offset())); |
__ BranchEqual(temp2, Immediate(kNullCid), &store_pointer); |
__ lbu(temp2, FieldAddress(temp, Field::kind_bits_offset())); |
__ andi(CMPRES1, temp2, Immediate(1 << Field::kUnboxingCandidateBit)); |
__ beq(CMPRES1, ZR, &store_pointer); |
- __ lw(temp2, FieldAddress(temp, Field::guarded_cid_offset())); |
+ __ lhu(temp2, FieldAddress(temp, Field::guarded_cid_offset())); |
__ BranchEqual(temp2, Immediate(kDoubleCid), &store_double); |
// Fall through. |
@@ -2317,10 +2317,10 @@ void LoadFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
FieldAddress field_nullability_operand(result_reg, |
Field::is_nullable_offset()); |
- __ lw(temp, field_nullability_operand); |
+ __ lhu(temp, field_nullability_operand); |
__ BranchEqual(temp, Immediate(kNullCid), &load_pointer); |
- __ lw(temp, field_cid_operand); |
+ __ lhu(temp, field_cid_operand); |
__ BranchEqual(temp, Immediate(kDoubleCid), &load_double); |
// Fall through. |