[elektro] c procedure - register

hg12345 hg12345 at freemail.hu
Fri Feb 12 21:17:23 CET 2016


Hi,

A fordító általában úgy optimalizál, hogy az első négy paraméter regiszterben adódjon át, a függvény visszatérési értéke meg mindig a 0. regiszterben lesz az ARM esetén.

Ha magad akarod meghatározni mi legyen regiszterben átadva, akkor "register" módosítót kell használni.
Ezt használhatód paraméter, lokális és globális változóhoz. 

Arra érdemes vigyázni, hogy egyszerre mennyi regiszter foglalsz le, mert emlékeim szerint csak az első 8 regisztert tudod így meghatározni, utána már a fordító nem tudja ezt a módosítót értelemszerűen használni.

A GCC-ben van lehetőség még meghatározni melyik regiszter használd... legalábbis a MCHIP PIC24 esetén volt.

VFX <info at vfx.hu> írta:
>Hali!
>
>A nagy ARM fellángolásban vettem egy STM32 nucleo 334  board-ot. 
>Letöltöttem egy rakat GNU C fejlesztőt, de C-ben nem vagyok túl jó.
>
>Lehet-e GNU C-ben procedurát vagy függvényt hívni úgy, hogy a 
>paramétereket nem stack-ben hanem regiszterben adok át. x86-on lehet meg 
>Blackfin-en is, de ARM GNU alatt lehet-e és hogyan?
>
>
>ÜDV. VFX.
>
>-----------------------------------------
>          elektro[-flame|-etc]
>



More information about the Elektro mailing list