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
risposta
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).
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
Ricorda sicuramente uno dei classici significati di ricorsione del dizionario. 'ricorsione, n: Vedi ricorsione' – devnull
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
Forse http://gcc.gnu.org/onlinedocs/gcc/Global-Reg-Vars.html può essere d'aiuto? –
Perché pensi di sapere meglio del compilatore come gestire l'allocazione dei registri? –
@ JonathanLeffler mentre sono d'accordo con il tuo intento, l'OP dice: "qui", crede che lo conosca meglio. Forse è solo pratica? – stijn