Lines Matching refs:address
67 void MacroAssemblerARM::load32WithUnalignedHalfWords(BaseIndex address, RegisterID dest)
71 ASSERT(address.scale >= 0 && address.scale <= 3);
72 op2 = m_assembler.lsl(address.index, static_cast<int>(address.scale));
74 if (address.offset >= 0 && address.offset + 0x2 <= 0xff) {
75 m_assembler.add_r(ARMRegisters::S0, address.base, op2);
76 m_assembler.ldrh_u(dest, ARMRegisters::S0, ARMAssembler::getOp2Byte(address.offset));
77 m_assembler.ldrh_u(ARMRegisters::S0, ARMRegisters::S0, ARMAssembler::getOp2Byte(address.offset + 0x2));
78 } else if (address.offset < 0 && address.offset >= -0xff) {
79 m_assembler.add_r(ARMRegisters::S0, address.base, op2);
80 m_assembler.ldrh_d(dest, ARMRegisters::S0, ARMAssembler::getOp2Byte(-address.offset));
81 m_assembler.ldrh_d(ARMRegisters::S0, ARMRegisters::S0, ARMAssembler::getOp2Byte(-address.offset - 0x2));
83 m_assembler.ldr_un_imm(ARMRegisters::S0, address.offset);
85 m_assembler.ldrh_r(dest, address.base, ARMRegisters::S0);
87 m_assembler.ldrh_r(ARMRegisters::S0, address.base, ARMRegisters::S0);