| Index: runtime/vm/assembler_arm.cc
|
| diff --git a/runtime/vm/assembler_arm.cc b/runtime/vm/assembler_arm.cc
|
| index 815b7961c78196994ed2e23ab7eb39719fe789d1..1aa6883f3ca450eb31eea709f59edbc1350bcf45 100644
|
| --- a/runtime/vm/assembler_arm.cc
|
| +++ b/runtime/vm/assembler_arm.cc
|
| @@ -493,10 +493,11 @@ void Assembler::ldrsh(Register rd, Address ad, Condition cond) {
|
| }
|
|
|
|
|
| -void Assembler::ldrd(Register rd, Register rn, int32_t offset, Condition cond) {
|
| +void Assembler::ldrd(Register rd, Register rd2, Register rn, int32_t offset,
|
| + Condition cond) {
|
| ASSERT((rd % 2) == 0);
|
| + ASSERT(rd2 == rd + 1);
|
| if (TargetCPUFeatures::arm_version() == ARMv5TE) {
|
| - const Register rd2 = static_cast<Register>(static_cast<int32_t>(rd) + 1);
|
| ldr(rd, Address(rn, offset), cond);
|
| ldr(rd2, Address(rn, offset + kWordSize), cond);
|
| } else {
|
| @@ -505,10 +506,11 @@ void Assembler::ldrd(Register rd, Register rn, int32_t offset, Condition cond) {
|
| }
|
|
|
|
|
| -void Assembler::strd(Register rd, Register rn, int32_t offset, Condition cond) {
|
| +void Assembler::strd(Register rd, Register rd2, Register rn, int32_t offset,
|
| + Condition cond) {
|
| ASSERT((rd % 2) == 0);
|
| + ASSERT(rd2 == rd + 1);
|
| if (TargetCPUFeatures::arm_version() == ARMv5TE) {
|
| - const Register rd2 = static_cast<Register>(static_cast<int32_t>(rd) + 1);
|
| str(rd, Address(rn, offset), cond);
|
| str(rd2, Address(rn, offset + kWordSize), cond);
|
| } else {
|
| @@ -1707,15 +1709,16 @@ void Assembler::WriteShadowedFieldPair(Register base,
|
| Register value_odd,
|
| Condition cond) {
|
| ASSERT(value_odd == value_even + 1);
|
| + ASSERT(value_even % 2 == 0);
|
| if (VerifiedMemory::enabled()) {
|
| ASSERT(base != value_even);
|
| ASSERT(base != value_odd);
|
| Operand shadow(GetVerifiedMemoryShadow());
|
| add(base, base, shadow, cond);
|
| - strd(value_even, base, offset, cond);
|
| + strd(value_even, value_odd, base, offset, cond);
|
| sub(base, base, shadow, cond);
|
| }
|
| - strd(value_even, base, offset, cond);
|
| + strd(value_even, value_odd, base, offset, cond);
|
| }
|
|
|
|
|
| @@ -2854,9 +2857,6 @@ void Assembler::LoadFromOffset(OperandSize size,
|
| case kWord:
|
| ldr(reg, Address(base, offset), cond);
|
| break;
|
| - case kWordPair:
|
| - ldrd(reg, base, offset, cond);
|
| - break;
|
| default:
|
| UNREACHABLE();
|
| }
|
| @@ -2886,9 +2886,6 @@ void Assembler::StoreToOffset(OperandSize size,
|
| case kWord:
|
| str(reg, Address(base, offset), cond);
|
| break;
|
| - case kWordPair:
|
| - strd(reg, base, offset, cond);
|
| - break;
|
| default:
|
| UNREACHABLE();
|
| }
|
|
|