Subversion Repositories svnkaklik

Rev

Rev 409 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

GAS LISTING /tmp/cc5q3bJ9.s                     page 1


   1                            .file   "Utility.c"
   2                            .arch atmega8
   3                    __SREG__ = 0x3f
   4                    __SP_H__ = 0x3e
   5                    __SP_L__ = 0x3d
   6                    __tmp_reg__ = 0
   7                    __zero_reg__ = 1
   8                            .global __do_copy_data
   9                            .global __do_clear_bss
  10                            .stabs  "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
  11                            .stabs  "Utility.c",100,0,2,.Ltext0
  12                            .text
  13                    .Ltext0:
  14                            .stabs  "gcc2_compiled.",60,0,0,0
  15                            .stabs  "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
  16                            .stabs  "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
  17                            .stabs  "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
  18                            .stabs  "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
  19                            .stabs  "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
  20                            .stabs  "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
  21                            .stabs  "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
  22                            .stabs  "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
  23                            .stabs  "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
  24                            .stabs  "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
  25                            .stabs  "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
  26                            .stabs  "float:t(0,12)=r(0,1);4;0;",128,0,0,0
  27                            .stabs  "double:t(0,13)=r(0,1);4;0;",128,0,0,0
  28                            .stabs  "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
  29                            .stabs  "void:t(0,15)=(0,15)",128,0,0,0
  30                            .stabs  "CommonDefs.h",130,0,0,0
  31                            .stabs  "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h",130,0,0,0
  32                            .stabs  "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
  33                            .stabs  "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
  34                            .stabs  "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
  35                            .stabs  "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
  36                            .stabs  "int8_t:t(6,1)=(0,10)",128,0,116,0
  37                            .stabs  "uint8_t:t(6,2)=(0,11)",128,0,117,0
  38                            .stabs  "int16_t:t(6,3)=(0,1)",128,0,118,0
  39                            .stabs  "uint16_t:t(6,4)=(0,4)",128,0,119,0
  40                            .stabs  "int32_t:t(6,5)=(0,3)",128,0,120,0
  41                            .stabs  "uint32_t:t(6,6)=(0,5)",128,0,121,0
  42                            .stabs  "int64_t:t(6,7)=(0,6)",128,0,122,0
  43                            .stabs  "uint64_t:t(6,8)=(0,7)",128,0,123,0
  44                            .stabs  "intptr_t:t(6,9)=(6,3)",128,0,135,0
  45                            .stabs  "uintptr_t:t(6,10)=(6,4)",128,0,140,0
  46                            .stabs  "int_least8_t:t(6,11)=(6,1)",128,0,152,0
  47                            .stabs  "uint_least8_t:t(6,12)=(6,2)",128,0,157,0
  48                            .stabs  "int_least16_t:t(6,13)=(6,3)",128,0,162,0
  49                            .stabs  "uint_least16_t:t(6,14)=(6,4)",128,0,167,0
  50                            .stabs  "int_least32_t:t(6,15)=(6,5)",128,0,172,0
  51                            .stabs  "uint_least32_t:t(6,16)=(6,6)",128,0,177,0
  52                            .stabs  "int_least64_t:t(6,17)=(6,7)",128,0,182,0
  53                            .stabs  "uint_least64_t:t(6,18)=(6,8)",128,0,187,0
  54                            .stabs  "int_fast8_t:t(6,19)=(6,1)",128,0,200,0
  55                            .stabs  "uint_fast8_t:t(6,20)=(6,2)",128,0,205,0
  56                            .stabs  "int_fast16_t:t(6,21)=(6,3)",128,0,210,0
  57                            .stabs  "uint_fast16_t:t(6,22)=(6,4)",128,0,215,0
GAS LISTING /tmp/cc5q3bJ9.s                    page 2


  58                            .stabs  "int_fast32_t:t(6,23)=(6,5)",128,0,220,0
  59                            .stabs  "uint_fast32_t:t(6,24)=(6,6)",128,0,225,0
  60                            .stabs  "int_fast64_t:t(6,25)=(6,7)",128,0,230,0
  61                            .stabs  "uint_fast64_t:t(6,26)=(6,8)",128,0,235,0
  62                            .stabs  "intmax_t:t(6,27)=(6,7)",128,0,249,0
  63                            .stabs  "uintmax_t:t(6,28)=(6,8)",128,0,254,0
  64                            .stabn  162,0,0,0
  65                            .stabs  "int_farptr_t:t(5,1)=(6,5)",128,0,76,0
  66                            .stabs  "uint_farptr_t:t(5,2)=(6,6)",128,0,80,0
  67                            .stabn  162,0,0,0
  68                            .stabn  162,0,0,0
  69                            .stabn  162,0,0,0
  70                            .stabn  162,0,0,0
  71                            .stabs  "bool_t:t(1,1)=(0,11)",128,0,56,0
  72                            .stabn  162,0,0,0
  73                            .stabs  "Utility_delay:F(0,15)",36,0,65,Utility_delay
  74                            .stabs  "numMs:P(0,9)",64,0,64,18
  75                    .global Utility_delay
  76                            .type   Utility_delay, @function
  77                    Utility_delay:
  78                            .stabd  46,0,0
   1:Utility.c     **** /*
   2:Utility.c     ****     Copyright (C) 2004    John Orlando
   3:Utility.c     ****     
   4:Utility.c     ****    AVRcam: a small real-time image processing engine.
   5:Utility.c     **** 
   6:Utility.c     ****     This program is free software; you can redistribute it and/or
   7:Utility.c     ****     modify it under the terms of the GNU General Public
   8:Utility.c     ****     License as published by the Free Software Foundation; either
   9:Utility.c     ****     version 2 of the License, or (at your option) any later version.
  10:Utility.c     **** 
  11:Utility.c     ****     This program is distributed in the hope that it will be useful,
  12:Utility.c     ****     but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:Utility.c     ****     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14:Utility.c     ****     General Public License for more details.
  15:Utility.c     **** 
  16:Utility.c     ****     You should have received a copy of the GNU General Public
  17:Utility.c     ****     License along with this program; if not, write to the Free Software
  18:Utility.c     ****     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19:Utility.c     **** 
  20:Utility.c     ****    For more information on the AVRcam, please contact:
  21:Utility.c     **** 
  22:Utility.c     ****    john@jrobot.net
  23:Utility.c     **** 
  24:Utility.c     ****    or go to www.jrobot.net for more details regarding the system.
  25:Utility.c     **** */
  26:Utility.c     **** /***********************************************************
  27:Utility.c     ****         Module Name: Utility.c
  28:Utility.c     ****         Module Date: 04/13/2004
  29:Utility.c     ****         Module Auth: John Orlando
  30:Utility.c     ****         
  31:Utility.c     ****         Description: This module provides a basic set of
  32:Utility.c     ****         general purpose utilities that can be used by any
  33:Utility.c     ****         module needing them.
  34:Utility.c     ****     
  35:Utility.c     ****     Revision History:
  36:Utility.c     ****     Date        Rel Ver.    Notes
GAS LISTING /tmp/cc5q3bJ9.s                    page 3


  37:Utility.c     ****     4/10/2004      0.1     Module created
  38:Utility.c     ****     6/30/2004      1.0     Initial release for Circuit Cellar
  39:Utility.c     ****                            contest.
  40:Utility.c     **** ***********************************************************/
  41:Utility.c     **** 
  42:Utility.c     **** /*      Includes */
  43:Utility.c     **** #include "CommonDefs.h"
  44:Utility.c     **** 
  45:Utility.c     **** /*  Local Variables */
  46:Utility.c     **** 
  47:Utility.c     **** /*      Local Structures and Typedefs */
  48:Utility.c     **** 
  49:Utility.c     **** /*  Extern Variables */
  50:Utility.c     **** 
  51:Utility.c     **** /*  Definitions */
  52:Utility.c     **** 
  53:Utility.c     **** /***********************************************************
  54:Utility.c     ****         Function Name: Utility_delay
  55:Utility.c     ****         Function Description: This function provides a busy-wait
  56:Utility.c     ****         delay for a specified number of milliseconds.
  57:Utility.c     ****         Inputs:  numMs - the number of milliseconds to delay
  58:Utility.c     ****         Outputs: none
  59:Utility.c     ****         NOTES: The delay_loop_1 and delay_loop_2 functions found
  60:Utility.c     ****         in avr/delay.h provide accurate 3 and 4 cycle delay loops
  61:Utility.c     ****         if needed...this isn't really a millisecond, so DON'T
  62:Utility.c     ****     depend on it for exact timing...
  63:Utility.c     **** ***********************************************************/    
  64:Utility.c     **** void Utility_delay(unsigned short numMs)
  65:Utility.c     **** {
  79                            .stabn  68,0,65,.LM0-Utility_delay
  80                    .LM0:
  81                    /* prologue: frame size=4 */
  82 0000 CF93                  push r28
  83 0002 DF93                  push r29
  84 0004 CDB7                  in r28,__SP_L__
  85 0006 DEB7                  in r29,__SP_H__
  86 0008 2497                  sbiw r28,4
  87 000a 0FB6                  in __tmp_reg__,__SREG__
  88 000c F894                  cli
  89 000e DEBF                  out __SP_H__,r29
  90 0010 0FBE                  out __SREG__,__tmp_reg__
  91 0012 CDBF                  out __SP_L__,r28
  92                    /* prologue end (size=10) */
  93 0014 9C01                  movw r18,r24
  66:Utility.c     ****         volatile unsigned short i=0,j=0;
  94                            .stabn  68,0,66,.LM1-Utility_delay
  95                    .LM1:
  96 0016 1A82                  std Y+2,__zero_reg__
  97 0018 1982                  std Y+1,__zero_reg__
  98 001a 1C82                  std Y+4,__zero_reg__
  99 001c 1B82                  std Y+3,__zero_reg__
  67:Utility.c     **** #ifndef SIMULATION
  68:Utility.c     ****         for (i=0; i<numMs; i++)
 100                            .stabn  68,0,68,.LM2-Utility_delay
 101                    .LM2:
 102 001e 1A82                  std Y+2,__zero_reg__
 103 0020 1982                  std Y+1,__zero_reg__
GAS LISTING /tmp/cc5q3bJ9.s                    page 4


 104 0022 8981                  ldd r24,Y+1
 105 0024 9A81                  ldd r25,Y+2
 106 0026 8217                  cp r24,r18
 107 0028 9307                  cpc r25,r19
 108 002a E0F4                  brsh .L6
 109                    .L7:
  69:Utility.c     ****         {
  70:Utility.c     ****                 for (j=0; j<1000; j++)
 110                            .stabn  68,0,70,.LM3-Utility_delay
 111                    .LM3:
 112 002c 1C82                  std Y+4,__zero_reg__
 113 002e 1B82                  std Y+3,__zero_reg__
 114 0030 8B81                  ldd r24,Y+3
 115 0032 9C81                  ldd r25,Y+4
 116 0034 885E                  subi r24,lo8(1000)
 117 0036 9340                  sbci r25,hi8(1000)
 118 0038 58F4                  brsh .L4
 119                    .L8:
  71:Utility.c     ****                 {
  72:Utility.c     ****                         asm volatile("nop"::);
 120                            .stabn  68,0,72,.LM4-Utility_delay
 121                    .LM4:
 122                    /* #APP */
 123 003a 0000                  nop
 124                            .stabn  68,0,70,.LM5-Utility_delay
 125                    .LM5:
 126                    /* #NOAPP */
 127 003c 8B81                  ldd r24,Y+3
 128 003e 9C81                  ldd r25,Y+4
 129 0040 0196                  adiw r24,1
 130 0042 9C83                  std Y+4,r25
 131 0044 8B83                  std Y+3,r24
 132 0046 8B81                  ldd r24,Y+3
 133 0048 9C81                  ldd r25,Y+4
 134 004a 885E                  subi r24,lo8(1000)
 135 004c 9340                  sbci r25,hi8(1000)
 136 004e A8F3                  brlo .L8
 137                    .L4:
 138                            .stabn  68,0,68,.LM6-Utility_delay
 139                    .LM6:
 140 0050 8981                  ldd r24,Y+1
 141 0052 9A81                  ldd r25,Y+2
 142 0054 0196                  adiw r24,1
 143 0056 9A83                  std Y+2,r25
 144 0058 8983                  std Y+1,r24
 145 005a 8981                  ldd r24,Y+1
 146 005c 9A81                  ldd r25,Y+2
 147 005e 8217                  cp r24,r18
 148 0060 9307                  cpc r25,r19
 149 0062 20F3                  brlo .L7
 150                    .L6:
 151                    /* epilogue: frame size=4 */
 152 0064 2496                  adiw r28,4
 153 0066 0FB6                  in __tmp_reg__,__SREG__
 154 0068 F894                  cli
 155 006a DEBF                  out __SP_H__,r29
 156 006c 0FBE                  out __SREG__,__tmp_reg__
GAS LISTING /tmp/cc5q3bJ9.s                    page 5


 157 006e CDBF                  out __SP_L__,r28
 158 0070 DF91                  pop r29
 159 0072 CF91                  pop r28
 160 0074 0895                  ret
 161                    /* epilogue end (size=9) */
 162                    /* function Utility_delay size 62 (43) */
 163                            .size   Utility_delay, .-Utility_delay
 164                            .stabs  "i:(0,16)=B(0,9)",128,0,66,1
 165                            .stabs  "j:(0,16)",128,0,66,3
 166                            .stabn  192,0,0,Utility_delay-Utility_delay
 167                            .stabn  224,0,0,.Lscope0-Utility_delay
 168                    .Lscope0:
 169                            .stabs  "",36,0,0,.Lscope0-Utility_delay
 170                            .stabd  78,0,0
 171                            .stabs  "",100,0,0,.Letext0
 172                    .Letext0:
 173                    /* File "Utility.c": code   62 = 0x003e (  43), prologues  10, epilogues   9 */
GAS LISTING /tmp/cc5q3bJ9.s                    page 6


DEFINED SYMBOLS
                            *ABS*:00000000 Utility.c
     /tmp/cc5q3bJ9.s:3      *ABS*:0000003f __SREG__
     /tmp/cc5q3bJ9.s:4      *ABS*:0000003e __SP_H__
     /tmp/cc5q3bJ9.s:5      *ABS*:0000003d __SP_L__
     /tmp/cc5q3bJ9.s:6      *ABS*:00000000 __tmp_reg__
     /tmp/cc5q3bJ9.s:7      *ABS*:00000001 __zero_reg__
     /tmp/cc5q3bJ9.s:77     .text:00000000 Utility_delay

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss