Lines Matching +full:0 +full:x3d400000

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;
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,
175 /*offset=*/0, /*addend=*/0,
232 if ((insn & 0x9f000000) != 0x90000000)
234 adrp.destRegister = insn & 0x1f;
235 uint64_t immHi = (insn >> 5) & 0x7ffff;
236 uint64_t immLo = (insn >> 29) & 0x3;
242 if ((insn & 0xffc00000) != 0x91000000)
244 add.destRegister = insn & 0x1f;
245 add.srcRegister = (insn >> 5) & 0x1f;
246 add.addend = (insn >> 10) & 0xfff;
251 ldr.destRegister = insn & 0x1f;
252 ldr.baseRegister = (insn >> 5) & 0x1f;
256 if ((insn & 0x3fc00000) == 0x39400000) {
261 } else if ((insn & 0x3f800000) == 0x39800000) {
266 } else if ((insn & 0x3f400000) == 0x3d400000) {
272 else if (size == 0 && opc == 3)
279 ldr.offset = ((insn >> 10) & 0xfff) << ldr.p2Size;
287 uint32_t opcode = 0x10000000;
288 uint32_t immHi = (delta & 0x001ffffc) << 3;
289 uint32_t immLo = (delta & 0x00000003) << 29;
293 static void writeNop(void *loc) { write32le(loc, 0xd503201f); }
306 opcode = 0x1c000000;
308 opcode = ldr.extendType == Sign64 ? 0x98000000 : 0x18000000;
311 opcode = ldr.isFloat ? 0x5c000000 : 0x58000000;
314 opcode = 0x9c000000;
329 return ldr.offset >= 0 && (ldr.offset % size) == 0 &&
335 uint32_t opcode = 0x39000000;
337 opcode |= 0x04000000;
344 size = 0;
578 unsigned int n = 0;
590 if (type == 0)
596 for (unsigned i = 0; i < argCount; ++i)
601 for (unsigned i = 0; i < argCount; ++i)
626 uint64_t sectionAddr = 0;
674 if (!findSection(args[0]))
679 applyAdrpAdd(buf, section, args[0] - sectionAddr,
684 applyAdrpLdr(buf, section, args[0] - sectionAddr,
689 applyAdrpLdrGot(buf, section, args[0] - sectionAddr,
694 applyAdrpAddLdr(buf, section, args[0] - sectionAddr,
699 applyAdrpLdrGotLdr(buf, section, args[0] - sectionAddr,
738 if (!findSection(args[0]))
741 applyAdrpAdrp(buf, section, args[0] - sectionAddr, args[1] - sectionAddr);