[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [avr-gcc-list] Funny business with latest WinAvr 20081205+ xmega128A
From: |
Weddington, Eric |
Subject: |
RE: [avr-gcc-list] Funny business with latest WinAvr 20081205+ xmega128A1 and stdio |
Date: |
Mon, 19 Jan 2009 00:15:38 -0700 |
Is there a WinAVR bug report filed for this?
Eric
> -----Original Message-----
> From:
> address@hidden
> [mailto:address@hidden
> org] On Behalf Of larry barello
> Sent: Saturday, January 17, 2009 10:25 PM
> To: address@hidden
> Subject: RE: [avr-gcc-list] Funny business with latest WinAvr
> 20081205+ xmega128A1 and stdio
>
> It looks like all fprintf/sprintf/etc. for the xmega is broken in this
> release. No matter how I craft it the same code pattern is
> repeated with
> the mangling of the stack on clean-up.
>
>
> Sigh.
>
> ----
> From: address@hidden
> [mailto:address@hidden On
> Behalf Of
> larry barello
> Sent: Saturday, January 17, 2009 12:38 PM
> To: address@hidden
> Subject: [avr-gcc-list] Funny business with latest WinAvr 20081205 +
> xmega128A1 and stdio
>
> I have hit this roadblock in porting over my application from
> my mega128
> test bed to the xmega. As far as I can tell the compiler
> completely wedges
> a very simple routine (and it worked earlier, so it *must* be
> something I am
> doing...)
>
> Anyway, the code is below. The compiler fails to re-load R24 with the
> proper stack value after poking the CCP register..
>
> The generated code is the same -Os and -O1, I have not tried
> anything else.
>
>
> void PrintBanner(FILE *fp)
> {
> fprintf_P(fp, PSTR("%s\r\n"), VersionString);
> }
>
> 75 .global PrintBanner
> 77 PrintBanner:
> 78 .LFB93:
> 79 .LM9:
> 80 .LVL6:
> 81 /* prologue: function */
> 82 /* frame size = 0 */
> 83 .LM10:
> 84 003a 00D0 rcall .
> 85 003c 00D0 rcall .
> 86 003e EDB7 in r30,__SP_L__
> 87 0040 FEB7 in r31,__SP_H__
> 88 0042 3196 adiw r30,1
> 89 0044 ADB7 in r26,__SP_L__
> 90 0046 BEB7 in r27,__SP_H__
> 91 0048 1196 adiw r26,1
> 92 004a 8D93 st X+,r24
> 93 004c 9C93 st X,r25
> 94 004e 1297 sbiw r26,1+1
> 95 0050 80E0 ldi
> r24,lo8(__c.5488)
> 96 0052 90E0 ldi
> r25,hi8(__c.5488)
> 97 .LVL7:
> 98 0054 8283 std Z+2,r24
> 99 0056 9383 std Z+3,r25
> 100 0058 80E0 ldi
> r24,lo8(VersionString)
> 101 005a 90E0 ldi
> r25,hi8(VersionString)
> 102 005c 8483 std Z+4,r24
> 103 005e 9583 std Z+5,r25
> 104 0060 0E94 0000 call fprintf_P
> 105 0064 8DB7 in r24,__SP_L__
> 106 0066 9EB7 in r25,__SP_H__
> 107 0068 0696 adiw r24,6
> 108 006a 082E mov __tmp_reg__,r24
> 109 006c 88ED ldi r24,0xD8
> 110 006e 84BF out __CCP__,r24
> 111 0070 9EBF out __SP_H__,r25
> 112 0072 8DBF out __SP_L__,r24
> 113 0074 802D mov r24,__tmp_reg__
> 114 /* epilogue start */
> 115 .LM11:
> 116 0076 0895 ret
> Internal Virus Database is out of date.
> Checked by AVG - http://www.avg.com
> Version: 8.0.176 / Virus Database: 270.10.7/1892 - Release
> Date: 1/13/2009
> 8:04 PM
>