Регистр MIPS $ gp - PullRequest
       24

Регистр MIPS $ gp

7 голосов
/ 12 апреля 2010

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

1 Ответ

6 голосов
/ 12 апреля 2010

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

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

1) Всегда храните его в области сохраненных регистров вашего стека.

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

3) Не используйте его.(т.е. не получить доступ к глобальной области видимости)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...