| Index: src/arm/assembler-arm.h
|
| ===================================================================
|
| --- src/arm/assembler-arm.h (revision 6473)
|
| +++ src/arm/assembler-arm.h (working copy)
|
| @@ -541,7 +541,7 @@
|
| // Return true if this is a register operand.
|
| INLINE(bool is_reg() const);
|
|
|
| - // Return true of this operand fits in one instruction so that no
|
| + // Return true if this operand fits in one instruction so that no
|
| // 2-instruction solution with a load into the ip register is necessary.
|
| bool is_single_instruction() const;
|
| bool must_use_constant_pool() const;
|
| @@ -593,7 +593,7 @@
|
| offset_ = offset;
|
| }
|
|
|
| - uint32_t offset() {
|
| + uint32_t offset() const {
|
| ASSERT(rm_.is(no_reg));
|
| return offset_;
|
| }
|
| @@ -601,6 +601,10 @@
|
| Register rn() const { return rn_; }
|
| Register rm() const { return rm_; }
|
|
|
| + bool OffsetIsEncodable() const {
|
| + return offset_ >= 0 ? is_uint12(offset_) : is_uint12(-offset_);
|
| + }
|
| +
|
| private:
|
| Register rn_; // base
|
| Register rm_; // register offset
|
| @@ -1063,23 +1067,35 @@
|
|
|
| void vldr(const DwVfpRegister dst,
|
| const Register base,
|
| - int offset, // Offset must be a multiple of 4.
|
| + int offset,
|
| const Condition cond = al);
|
| + void vldr(const DwVfpRegister dst,
|
| + const MemOperand& src,
|
| + const Condition cond = al);
|
|
|
| void vldr(const SwVfpRegister dst,
|
| const Register base,
|
| - int offset, // Offset must be a multiple of 4.
|
| + int offset,
|
| const Condition cond = al);
|
| + void vldr(const SwVfpRegister dst,
|
| + const MemOperand& src,
|
| + const Condition cond = al);
|
|
|
| void vstr(const DwVfpRegister src,
|
| const Register base,
|
| - int offset, // Offset must be a multiple of 4.
|
| + int offset,
|
| const Condition cond = al);
|
| + void vstr(const DwVfpRegister src,
|
| + const MemOperand& dst,
|
| + const Condition cond = al);
|
|
|
| void vstr(const SwVfpRegister src,
|
| const Register base,
|
| - int offset, // Offset must be a multiple of 4.
|
| + int offset,
|
| const Condition cond = al);
|
| + void vstr(const SwVfpRegister src,
|
| + const MemOperand& dst,
|
| + const Condition cond = al);
|
|
|
| void vmov(const DwVfpRegister dst,
|
| double imm,
|
|
|