Lines Matching defs:Thumb
194 /// 32-bit Thumb instructions are stored as two little-endian halfwords.
329 "Edge kind must be Thumb relocation");
332 assert(Info.checkOpcode && "Opcode check is mandatory for Thumb edges");
536 "stub when bridging to Thumb: " +
557 // Thumb or Arm. We use BL to stay in Arm and BLX to change to Thumb.
632 // The call instruction itself is Thumb. The call destination can either be
633 // Thumb or Arm. We use BL to stay in Thumb and BLX to change to Arm.
815 // For local targets, create interworking stubs if we switch Arm/Thumb with an
820 return TargetIsThumb; // Branch to Thumb needs interworking stub
830 // The ArmThumbv5LdrPc stub has 2 entrypoints: Thumb at offset 0 is taken only
831 // for Thumb B instructions. Thumb BL is rewritten to BLX and takes the Arm
835 bool Thumb) {
838 if (Thumb && !Slot.ThumbEntry) {
843 if (!Thumb && !Slot.ArmEntry)
846 return Thumb ? Slot.ThumbEntry : Slot.ArmEntry;
868 // The ArmThumbv5LdrPc stub has 2 entrypoints: Thumb at offset 0 is taken only
869 // for Thumb B instructions. Thumb BL is rewritten to BLX and takes the Arm
875 dbgs() << " Using " << (UseThumb ? "Thumb" : "Arm") << " entrypoint "
888 // Stub Arm/Thumb follows instruction set state at relocation site.
891 LLVM_DEBUG(dbgs() << " Preparing " << (MakeThumb ? "Thumb" : "Arm")
912 dbgs() << " Created " << (MakeThumb ? "Thumb" : "Arm") << " entry for "
921 dbgs() << " Using " << (MakeThumb ? "Thumb" : "Arm") << " entry "