Lines Matching +full:0 +full:x91000000
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
74 0x90000010, // 00: adrp x16, __la_symbol_ptr@page
75 0xf9400210, // 04: ldr x16, [x16, __la_symbol_ptr@pageoff]
76 0xd61f0200, // 08: br x16
85 0x90000011, // 00: adrp x17, _dyld_private@page
86 0x91000231, // 04: add x17, x17, _dyld_private@pageoff
87 0xa9bf47f0, // 08: stp x16/x17, [sp, #-16]!
88 0x90000010, // 0c: adrp x16, dyld_stub_binder@page
89 0xf9400210, // 10: ldr x16, [x16, dyld_stub_binder@pageoff]
90 0xd61f0200, // 14: br x16
98 0x18000050, // 00: ldr w16, l0
99 0x14000000, // 04: b stubHelperHeader
100 0x00000000, // 08: l0: .long 0
109 0x90000001, // adrp x1, __objc_selrefs@page
110 0xf9400021, // ldr x1, [x1, @selector("foo")@pageoff]
111 0x90000010, // adrp x16, _got@page
112 0xf9400210, // ldr x16, [x16, _objc_msgSend@pageoff]
113 0xd61f0200, // br x16
114 0xd4200020, // brk #0x1
115 0xd4200020, // brk #0x1
116 0xd4200020, // brk #0x1
120 0x90000001, // adrp x1, __objc_selrefs@page
121 0xf9400021, // ldr x1, [x1, @selector("foo")@pageoff]
122 0x14000000, // b _objc_msgSend
144 objcMsgSendIndex = 0; in writeObjCMsgSendStub()
160 0x90000010, // 00: adrp x16, <thunk.ptr>@page
161 0x91000210, // 04: add x16, [x16,<thunk.ptr>@pageoff]
162 0xd61f0200, // 08: br x16
171 /*offset=*/4, /*addend=*/0, in populateThunk()
175 /*offset=*/0, /*addend=*/0, in populateThunk()
232 if ((insn & 0x9f000000) != 0x90000000) in parseAdrp()
234 adrp.destRegister = insn & 0x1f; in parseAdrp()
235 uint64_t immHi = (insn >> 5) & 0x7ffff; in parseAdrp()
236 uint64_t immLo = (insn >> 29) & 0x3; in parseAdrp()
242 if ((insn & 0xffc00000) != 0x91000000) in parseAdd()
244 add.destRegister = insn & 0x1f; in parseAdd()
245 add.srcRegister = (insn >> 5) & 0x1f; in parseAdd()
246 add.addend = (insn >> 10) & 0xfff; in parseAdd()
251 ldr.destRegister = insn & 0x1f; in parseLdr()
252 ldr.baseRegister = (insn >> 5) & 0x1f; in parseLdr()
256 if ((insn & 0x3fc00000) == 0x39400000) { in parseLdr()
261 } else if ((insn & 0x3f800000) == 0x39800000) { in parseLdr()
266 } else if ((insn & 0x3f400000) == 0x3d400000) { in parseLdr()
272 else if (size == 0 && opc == 3) in parseLdr()
279 ldr.offset = ((insn >> 10) & 0xfff) << ldr.p2Size; in parseLdr()
287 uint32_t opcode = 0x10000000; in writeAdr()
288 uint32_t immHi = (delta & 0x001ffffc) << 3; in writeAdr()
289 uint32_t immLo = (delta & 0x00000003) << 29; in writeAdr()
293 static void writeNop(void *loc) { write32le(loc, 0xd503201f); } in writeNop()
306 opcode = 0x1c000000; in writeLiteralLdr()
308 opcode = ldr.extendType == Sign64 ? 0x98000000 : 0x18000000; in writeLiteralLdr()
311 opcode = ldr.isFloat ? 0x5c000000 : 0x58000000; in writeLiteralLdr()
314 opcode = 0x9c000000; in writeLiteralLdr()
329 return ldr.offset >= 0 && (ldr.offset % size) == 0 && in isImmediateLdrEligible()
335 uint32_t opcode = 0x39000000; in writeImmediateLdr()
337 opcode |= 0x04000000; in writeImmediateLdr()
344 size = 0; in writeImmediateLdr()
578 unsigned int n = 0; in readValue()
590 if (type == 0) in forEachHint()
596 for (unsigned i = 0; i < argCount; ++i) in forEachHint()
601 for (unsigned i = 0; i < argCount; ++i) in forEachHint()
626 uint64_t sectionAddr = 0; in applyOptimizationHints()
674 if (!findSection(args[0])) in applyOptimizationHints()
679 applyAdrpAdd(buf, section, args[0] - sectionAddr, in applyOptimizationHints()
684 applyAdrpLdr(buf, section, args[0] - sectionAddr, in applyOptimizationHints()
689 applyAdrpLdrGot(buf, section, args[0] - sectionAddr, in applyOptimizationHints()
694 applyAdrpAddLdr(buf, section, args[0] - sectionAddr, in applyOptimizationHints()
699 applyAdrpLdrGotLdr(buf, section, args[0] - sectionAddr, in applyOptimizationHints()
738 if (!findSection(args[0])) in applyOptimizationHints()
741 applyAdrpAdrp(buf, section, args[0] - sectionAddr, args[1] - sectionAddr); in applyOptimizationHints()