[elektro] C optimalizálás probléma ARM kiegészítéssel

Bali Zoltan eltexto at freemail.hu
Fri Feb 10 19:17:00 CET 2012


Hali!

Ez nem erről szól ?

http://www.keil.com/forum/17391/

Üdv.  Zoli

2012. 02. 10. 19:00 keltezéssel, hg12345 írta:
> Köszönöm az eddigi segítséget.
>
> A hiba okát sikerült lokalizálni:
> Az IT-ben van egy szubrutin hivás!
> ami optimalizáció nélkül, csak a scratch regisztereket kezeli ARM esetén R0..R3, ezekkel a forditó olyan kódot generál, hogy nem kell menteni.
> Optimalizáció esetén használja a R0..R7 regisztereket és az R12 de a szubrutinban csak a R4..R7 regisztereket menti.
>
> At IT-ben a HW automatikusan menti a R0..R3 és az R12, és az RL regisztereket, a forditó esetemben kiegészíti R4-R12 közötti rtegiszterek mentésével, (Az R12 nagyon fontos regiszter kétszer is menetik :-)
> Az IT belűl használja az R12-s regiszter, és a meghívott függvény is, de az használat után nem állítja vissza a hivási értékre.
>
> Szóval a hiba az R12 regiszter mentés hiányában van.
>
> Ez valami speciális regiszter! (Supervisor hivásokkal kapcsolatos, de a rendszeremben ilyen nincs.)
>
> Mi ilyenkor a teendő, asm betétet nem szeretnék használni, mert ha gondol egyet a fordító és R10 lesz akkor megint kereshetem a hibát.....
>
>
>
>    



More information about the Elektro mailing list