Когда я просматриваю исходный код u-boot, я обнаружил, что он передает глобальные данные через регистр r9 следующим образом.
register volatile gd_t *gd asm ("r9")
Итак, мне любопытно, как u-boot гарантирует, что дальнейшие коды не будут использовать регистр r9 и повреждать глобальные данные. Есть ли возможность указать компилятору не использовать определенный регистр?