2013-07-23 7 views
16

E 'possibile forzare un compilatore (gcc o clang nel mio caso) per utilizzare un certo registro, consente di dire R15 su x86_64 per una certa variabile ed anche vietarle di utilizzando R15 per qualsiasi altro scopo oltre a quella variabile.Forzare al compilatore di utilizzare un determinato registro per una certa variabile

+9

Forse http://gcc.gnu.org/onlinedocs/gcc/Global-Reg-Vars.html può essere d'aiuto? –

+2

Perché pensi di sapere meglio del compilatore come gestire l'allocazione dei registri? –

+7

@ JonathanLeffler mentre sono d'accordo con il tuo intento, l'OP dice: "qui", crede che lo conosca meglio. Forse è solo pratica? – stijn

risposta

6

gcc può farlo.

Il già citato gcc docs risponde alla tua domanda su come forzare una variabile in un determinato registro.

Per impedire al compilatore di generare codice utilizzando questo registro per altri scopi, utilizzare lo switch gcc -ffixed-reg (consultare gcc doc per dettagli).

+0

Il riferimento alla [altra domanda StackOverflow] (http://stackoverflow.com/questions/17809693/forcing-the-compiler-to-use-a-certain-register-for-a-certain-variable) sopra è un fantastico esempio di riferimento incrociato! – devnull

+0

Ricorda sicuramente uno dei classici significati di ricorsione del dizionario. 'ricorsione, n: Vedi ricorsione' – devnull

+0

Il link originale era un po 'incasinato e ho provato a modificarlo - ma qualcuno era più veloce (ma ha ottenuto il link sbagliato) - L'ho risolto ora – flolo

Problemi correlati