Skip to content

GLdispatch: Fix the TOC save in the PPC64LE TSD stubs (v2)

Created by: kbrenneman

Second try at this, now that (I think) I understand how the PLT call stubs in PPC work.

This changes the call to _glapi_get_current to just use a bl instruction followed by a nop. In the cases where _glapi_get_current is in a different module, the link editor will generate a PLT stub which takes care of saving the TOC pointer, and it'll replace the nop instruction with an ld instruction to restore it.

I also added a second change to fix the stubs so that they can deal with indexes >= 4096. Right now, they just use a simple ld instruction, and (4096*8) doesn't fit in the 16-bit signed offset.

Merge request reports