Lines Matching refs:insn
636 static ARMWord* getLdrImmAddress(ARMWord* insn)
639 ASSERT((*insn & 0x0f7f0000) == 0x051f0000);
641 ARMWord addr = reinterpret_cast<ARMWord>(insn) + DefaultPrefetching * sizeof(ARMWord);
642 if (*insn & DT_UP)
643 return reinterpret_cast<ARMWord*>(addr + (*insn & SDT_OFFSET_MASK));
644 return reinterpret_cast<ARMWord*>(addr - (*insn & SDT_OFFSET_MASK));
647 static ARMWord* getLdrImmAddressOnPool(ARMWord* insn, uint32_t* constPool)
650 ASSERT((*insn & 0x0f7f0000) == 0x051f0000);
652 if (*insn & 0x1)
653 return reinterpret_cast<ARMWord*>(constPool + ((*insn & SDT_OFFSET_MASK) >> 1));
654 return getLdrImmAddress(insn);
659 ARMWord* insn = reinterpret_cast<ARMWord*>(from);
660 ARMWord* addr = getLdrImmAddress(insn);
694 ARMWord* insn = reinterpret_cast<ARMWord*>(from);
695 ASSERT((*insn & 0x0ff00f00) == 0x05900000);
697 *insn = (*insn & 0xf00ff0ff) | 0x02800000;
698 ExecutableAllocator::cacheFlush(insn, sizeof(ARMWord));
705 ARMWord* insn = reinterpret_cast<ARMWord*>(m_buffer.data()) + (from.m_offset / sizeof(ARMWord));
706 ARMWord* addr = getLdrImmAddressOnPool(insn, m_buffer.poolAddress());