[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-gcc-list] Problem with the calling convention
From: |
Yuan Mei |
Subject: |
Re: [avr-gcc-list] Problem with the calling convention |
Date: |
Wed, 14 Jul 2004 19:51:47 +0800 |
I think you'd better reduce the number of arguments for a single function.
Because the resource on avr is quite low.
On Wed, 14 Jul 2004 10:49:13 GMT , Martin Krüger <address@hidden> wrote:
> Hello everybody
>
> I am developing an application for an avr device by first compiling ist as an
> linux executable,
> then if everything ist fine so far compiling it for the avr.
>
> I noticed a bug in my application which only existst on the avr,but not in
> the linux executable.
> So i thought this could be a problem with the compiler.
> I looked in the assembler files,now i can exactly describe the problem.
>
> I wrote a funtion with this arguments:
>
> (arg1 16bit,arg2 8bit,arg3 8bit,arg4 32bit)
>
> The following calling-convention ist used:
>
> arg1 r25,r24 (r25 MSB)
> arg2 r22
> arg3 r20
> arg4 r19-r16 (r19 MSB)
>
> The problem ist another function called using r19,r18 without pushing
> and restoring its values.
> I used this workaround:
>
> *compiling with -S (stop before assembling)
> *adding the required push and pop mnemonics
> *assembling
>
> I am using avr-gcc version 3.4.0
>
> Any suggestions?
>
> Martin Kruger
>
> __________________________________________________________________
> Digitalkameras - Aktuelle Angebote unter EUR 90,- www.ebay.de!!
> Über 1 Mio. Angebote zu günstigen Preisen! eBay - Jetzt besser kaufen!
>
>
>
>
--
Yuan Mei