reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/lld/ELF/Arch/PPC.cpp
   77     write32(buf + 4 * i, 0x48000000 | 4 * (numEntries - i));
   78   buf += 4 * numEntries;
   85   const uint8_t *end = buf + 64;
   89     write32(buf + 0, 0x3d6b0000 | ha(afterBcl));  // addis r11,r11,1f-glink@ha
   90     write32(buf + 4, 0x7c0802a6);                 // mflr r0
   91     write32(buf + 8, 0x429f0005);                 // bcl 20,30,.+4
   92     write32(buf + 12, 0x396b0000 | lo(afterBcl)); // 1: addi r11,r11,1b-.glink@l
   93     write32(buf + 16, 0x7d8802a6);                // mflr r12
   94     write32(buf + 20, 0x7c0803a6);                // mtlr r0
   95     write32(buf + 24, 0x7d6c5850);                // sub r11,r11,r12
   96     write32(buf + 28, 0x3d8c0000 | ha(gotBcl));   // addis 12,12,GOT+4-1b@ha
   98       write32(buf + 32, 0x800c0000 | lo(gotBcl)); // lwz r0,r12,GOT+4-1b@l(r12)
   99       write32(buf + 36,
  102       write32(buf + 32, 0x840c0000 | lo(gotBcl)); // lwzu r0,r12,GOT+4-1b@l(r12)
  103       write32(buf + 36, 0x818c0000 | 4);          // lwz r12,r12,4(r12)
  105     write32(buf + 40, 0x7c0903a6);                // mtctr 0
  106     write32(buf + 44, 0x7c0b5a14);                // add r0,11,11
  107     write32(buf + 48, 0x7d605a14);                // add r11,0,11
  108     write32(buf + 52, 0x4e800420);                // bctr
  109     buf += 56;
  111     write32(buf + 0, 0x3d800000 | ha(got + 4));   // lis     r12,GOT+4@ha
  112     write32(buf + 4, 0x3d6b0000 | ha(-glink));    // addis   r11,r11,-Glink@ha
  114       write32(buf + 8, 0x800c0000 | lo(got + 4)); // lwz r0,GOT+4@l(r12)
  116       write32(buf + 8, 0x840c0000 | lo(got + 4)); // lwzu r0,GOT+4@l(r12)
  117     write32(buf + 12, 0x396b0000 | lo(-glink));   // addi    r11,r11,-Glink@l
  118     write32(buf + 16, 0x7c0903a6);                // mtctr   r0
  119     write32(buf + 20, 0x7c0b5a14);                // add     r0,r11,r11
  121       write32(buf + 24, 0x818c0000 | lo(got + 8)); // lwz r12,GOT+8@ha(r12)
  123       write32(buf + 24, 0x818c0000 | 4);          // lwz r12,4(r12)
  124     write32(buf + 28, 0x7d605a14);                // add     r11,r0,r11
  125     write32(buf + 32, 0x4e800420);                // bctr
  126     buf += 36;
  130   for (; buf < end; buf += 4)
  130   for (; buf < end; buf += 4)
  131     write32(buf, 0x60000000);