2010-04-11 5 views
5

У вас есть проблема в использовании реестра $gp, чтобы сохранить стоимость? Думаю, мой вопрос в том, какова истинная функциональность $gp, и почему-то она вызывается за кадром, чтобы, если бы я ее использовал, все могло бы пойти очень не так?

ответ

5

Ну, регистр $ gp указывает на глобальную область. Convention указывает, что вы должны хранить его при написании функции (см. Ccprestore).

Если вам нужно использовать его (если честно, не могу понять, почему), Remeber эти вещи:

1) Всегда храните его в Сохраненный регистр Площадь вашего стека.

2) Всегда загружайте это значение в $ gp при уничтожении стека.

3) Не используйте его. (i) нет доступа глобальный объем)

Кроме того, я не уверен, но вы можете забыть о коде PIC.

+1

Спасибо за совет! – Hristo