avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-gcc-list] Funny business with latest WinAvr 20081205 + xmega128A1 a


From: larry barello
Subject: [avr-gcc-list] Funny business with latest WinAvr 20081205 + xmega128A1 and stdio
Date: Sat, 17 Jan 2009 12:37:57 -0800

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]