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: avr-gcc-list-bounces+larry=barello....@nongnu.org [mailto:avr-gcc-list-bounces+larry=barello....@nongnu.org] On Behalf Of larry barello Sent: Saturday, January 17, 2009 12:38 PM To: avr-gcc-list@nongnu.org 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
_______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list