11

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?

Hristo
  • 45,559
  • 65
  • 163
  • 230

1 Answers1

9

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.

Tom
  • 43,810
  • 29
  • 138
  • 169