Index: src/arm/macro-assembler-arm.cc |
diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc |
index 9c21b818781552e1e99e6b5e28dba3379a29c537..fe76eea916816aa05ae8fb4dc5f83801e216cdd1 100644 |
--- a/src/arm/macro-assembler-arm.cc |
+++ b/src/arm/macro-assembler-arm.cc |
@@ -384,6 +384,38 @@ void MacroAssembler::Usat(Register dst, int satpos, const Operand& src, |
} |
+void MacroAssembler::Load(Register dst, |
+ const MemOperand& src, |
+ Representation r) { |
+ ASSERT(!r.IsDouble()); |
+ if (r.IsInteger8()) { |
+ ldrsb(dst, src); |
+ } else if (r.IsUInteger8()) { |
+ ldrb(dst, src); |
+ } else if (r.IsInteger16()) { |
+ ldrsh(dst, src); |
+ } else if (r.IsUInteger16()) { |
+ ldrh(dst, src); |
+ } else { |
+ ldr(dst, src); |
+ } |
+} |
+ |
+ |
+void MacroAssembler::Store(Register src, |
+ const MemOperand& dst, |
+ Representation r) { |
+ ASSERT(!r.IsDouble()); |
+ if (r.IsInteger8() || r.IsUInteger8()) { |
+ strb(src, dst); |
+ } else if (r.IsInteger16() || r.IsUInteger16()) { |
+ strh(src, dst); |
+ } else { |
+ str(src, dst); |
+ } |
+} |
+ |
+ |
void MacroAssembler::LoadRoot(Register destination, |
Heap::RootListIndex index, |
Condition cond) { |