MIPS $gp register

Hristo picture Hristo · Apr 11, 2010 · Viewed 17.2k times · Source

Is there a danger in using the $gp register to store a value? I guess my question is what is the true functionality of $gp and is it invoked behind-the-scenes somehow so that if I were to use it, things could go very very wrong?

Answer

Tom picture Tom · Apr 11, 2010

Well, $gp register points to the global area. Convention indicates that you should store it when you write a function (see .cprestore).

If you need to use it (honestly, cant see why), remeber these things:

1)Always store it in the Saved Register Area of your stack.

2)Always load that value into the $gp when destroying the stack.

3) Dont use it. (i.e dont access global scope)

Also, i'm not sure, but you can forget about PIC code.