Changeset 59038 in webkit for trunk/JavaScriptCore/assembler
- Timestamp:
- May 8, 2010, 1:03:31 PM (15 years ago)
- Location:
- trunk/JavaScriptCore/assembler
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/assembler/ARMAssembler.h
r58515 r59038 826 826 ARMWord encodeComplexImm(ARMWord imm, int dest); 827 827 828 ARMWord getOffsetForHalfwordDataTransfer(ARMWord imm, int tmpReg) 829 { 830 // Encode immediate data in the instruction if it is possible 831 if (imm <= 0xff) 832 return getOp2Byte(imm); 833 // Otherwise, store the data in a temporary register 834 return encodeComplexImm(imm, tmpReg); 835 } 836 828 837 // Memory load/store helpers 829 838 -
trunk/JavaScriptCore/assembler/MacroAssemblerARM.h
r58904 r59038 268 268 void load16(BaseIndex address, RegisterID dest) 269 269 { 270 m_assembler.add_r(ARMRegisters::S0, address.base, m_assembler.lsl(address.index, address.scale)); 271 if (address.offset>=0) 272 m_assembler.ldrh_u(dest, ARMRegisters::S0, ARMAssembler::getOp2Byte(address.offset)); 273 else 274 m_assembler.ldrh_d(dest, ARMRegisters::S0, ARMAssembler::getOp2Byte(-address.offset)); 270 m_assembler.add_r(ARMRegisters::S1, address.base, m_assembler.lsl(address.index, address.scale)); 271 load16(Address(ARMRegisters::S1, address.offset), dest); 275 272 } 276 273 … … 278 275 { 279 276 if (address.offset >= 0) 280 m_assembler.ldrh_u(dest, address.base, ARMAssembler::getOp2Byte(address.offset));277 m_assembler.ldrh_u(dest, address.base, m_assembler.getOffsetForHalfwordDataTransfer(address.offset, ARMRegisters::S0)); 281 278 else 282 m_assembler.ldrh_d(dest, address.base, ARMAssembler::getOp2Byte(-address.offset));279 m_assembler.ldrh_d(dest, address.base, m_assembler.getOffsetForHalfwordDataTransfer(-address.offset, ARMRegisters::S0)); 283 280 } 284 281
Note:
See TracChangeset
for help on using the changeset viewer.