reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
314 memset(buf, 0, pltEntrySize); 317 write16(buf, 0x7840); // addiupc $2, (GOTPLT) - . 318 write16(buf + 4, 0xff22); // lw $25, 0($2) 319 write16(buf + 8, 0x0f02); // move $24, $2 320 write16(buf + 10, 0x4723); // jrc $25 / jr16 $25 321 relocateOne(buf, R_MICROMIPS_PC19_S2, gotPltEntryAddr - pltEntryAddr); 323 write16(buf, 0x7900); // addiupc $2, (GOTPLT) - . 324 write16(buf + 4, 0xff22); // lw $25, 0($2) 325 write16(buf + 8, 0x4599); // jrc $25 / jr16 $25 326 write16(buf + 10, 0x0f02); // move $24, $2 327 relocateOne(buf, R_MICROMIPS_PC23_S2, gotPltEntryAddr - pltEntryAddr); 337 write32(buf, 0x3c0f0000); // lui $15, %hi(.got.plt entry) 338 write32(buf + 4, loadInst); // l[wd] $25, %lo(.got.plt entry)($15) 339 write32(buf + 8, jrInst); // jr $25 / jr.hb $25 340 write32(buf + 12, addInst); // [d]addiu $24, $15, %lo(.got.plt entry) 341 writeValue(buf, gotPltEntryAddr + 0x8000, 16, 16); 342 writeValue(buf + 4, gotPltEntryAddr, 16, 0); 343 writeValue(buf + 12, gotPltEntryAddr, 16, 0);