envreg.lst 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. GAS LISTING /tmp/cc2VopaT.s page 1
  2. 1 .file "envreg.c"
  3. 2 __SP_H__ = 0x3e
  4. 3 __SP_L__ = 0x3d
  5. 4 __SREG__ = 0x3f
  6. 5 __RAMPZ__ = 0x3b
  7. 6 __tmp_reg__ = 0
  8. 7 __zero_reg__ = 1
  9. 8 .section .text.EnvVarGetEntry,"ax",@progbits
  10. 9 .global EnvVarGetEntry
  11. 10 .type EnvVarGetEntry, @function
  12. 11 EnvVarGetEntry:
  13. 12 0000 0F93 push r16
  14. 13 0002 1F93 push r17
  15. 14 0004 CF93 push r28
  16. 15 0006 DF93 push r29
  17. 16 /* prologue: function */
  18. 17 /* frame size = 0 */
  19. 18 /* stack size = 4 */
  20. 19 .L__stack_usage = 4
  21. 20 0008 8C01 movw r16,r24
  22. 21 000a C091 0000 lds r28,envVarList
  23. 22 000e D091 0000 lds r29,envVarList+1
  24. 23 .L2:
  25. 24 0012 2097 sbiw r28,0
  26. 25 0014 01F0 breq .L4
  27. 26 0016 B801 movw r22,r16
  28. 27 0018 8C81 ldd r24,Y+4
  29. 28 001a 9D81 ldd r25,Y+5
  30. 29 001c 0E94 0000 call strcasecmp
  31. 30 0020 1816 cp __zero_reg__,r24
  32. 31 0022 1906 cpc __zero_reg__,r25
  33. 32 0024 04F0 brlt .L3
  34. 33 0026 892B or r24,r25
  35. 34 0028 01F0 breq .L4
  36. 35 002a C0E0 ldi r28,0
  37. 36 002c D0E0 ldi r29,0
  38. 37 002e 00C0 rjmp .L4
  39. 38 .L3:
  40. 39 0030 0A80 ldd __tmp_reg__,Y+2
  41. 40 0032 DB81 ldd r29,Y+3
  42. 41 0034 C02D mov r28,__tmp_reg__
  43. 42 0036 00C0 rjmp .L2
  44. 43 .L4:
  45. 44 0038 CE01 movw r24,r28
  46. 45 /* epilogue start */
  47. 46 003a DF91 pop r29
  48. 47 003c CF91 pop r28
  49. 48 003e 1F91 pop r17
  50. 49 0040 0F91 pop r16
  51. 50 0042 0895 ret
  52. 51 .size EnvVarGetEntry, .-EnvVarGetEntry
  53. 52 .section .text.EnvRegisterVariable,"ax",@progbits
  54. 53 .global EnvRegisterVariable
  55. 54 .type EnvRegisterVariable, @function
  56. 55 EnvRegisterVariable:
  57. 56 0000 8F92 push r8
  58. 57 0002 9F92 push r9
  59. GAS LISTING /tmp/cc2VopaT.s page 2
  60. 58 0004 AF92 push r10
  61. 59 0006 BF92 push r11
  62. 60 0008 CF92 push r12
  63. 61 000a DF92 push r13
  64. 62 000c EF92 push r14
  65. 63 000e FF92 push r15
  66. 64 0010 0F93 push r16
  67. 65 0012 1F93 push r17
  68. 66 0014 CF93 push r28
  69. 67 0016 DF93 push r29
  70. 68 /* prologue: function */
  71. 69 /* frame size = 0 */
  72. 70 /* stack size = 12 */
  73. 71 .L__stack_usage = 12
  74. 72 0018 5C01 movw r10,r24
  75. 73 001a 6B01 movw r12,r22
  76. 74 001c 4A01 movw r8,r20
  77. 75 001e E090 0000 lds r14,envVarList
  78. 76 0022 F090 0000 lds r15,envVarList+1
  79. 77 0026 8701 movw r16,r14
  80. 78 0028 8FEF ldi r24,lo8(-1)
  81. 79 002a 9FEF ldi r25,lo8(-1)
  82. 80 .L9:
  83. 81 002c 0115 cp r16,__zero_reg__
  84. 82 002e 1105 cpc r17,__zero_reg__
  85. 83 0030 01F0 breq .L10
  86. 84 0032 B501 movw r22,r10
  87. 85 0034 D801 movw r26,r16
  88. 86 0036 1496 adiw r26,4
  89. 87 0038 8D91 ld r24,X+
  90. 88 003a 9C91 ld r25,X
  91. 89 003c 1597 sbiw r26,4+1
  92. 90 003e 0E94 0000 call strcasecmp
  93. 91 0042 1816 cp __zero_reg__,r24
  94. 92 0044 1906 cpc __zero_reg__,r25
  95. 93 0046 04F4 brge .L10
  96. 94 0048 E801 movw r28,r16
  97. 95 004a 0A81 ldd r16,Y+2
  98. 96 004c 1B81 ldd r17,Y+3
  99. 97 004e 00C0 rjmp .L9
  100. 98 .L10:
  101. 99 0050 892B or r24,r25
  102. 100 0052 01F4 brne .L12
  103. 101 0054 C114 cp r12,__zero_reg__
  104. 102 0056 D104 cpc r13,__zero_reg__
  105. 103 0058 01F0 breq .L13
  106. 104 005a F801 movw r30,r16
  107. 105 005c D782 std Z+7,r13
  108. 106 005e C682 std Z+6,r12
  109. 107 0060 00C0 rjmp .L19
  110. 108 .L13:
  111. 109 0062 D801 movw r26,r16
  112. 110 0064 1296 adiw r26,2
  113. 111 0066 ED91 ld r30,X+
  114. 112 0068 FC91 ld r31,X
  115. 113 006a 1397 sbiw r26,2+1
  116. 114 006c 8D91 ld r24,X+
  117. GAS LISTING /tmp/cc2VopaT.s page 3
  118. 115 006e 9C91 ld r25,X
  119. 116 0070 3097 sbiw r30,0
  120. 117 0072 01F0 breq .L15
  121. 118 0074 9183 std Z+1,r25
  122. 119 0076 8083 st Z,r24
  123. 120 0078 00C0 rjmp .L16
  124. 121 .L15:
  125. 122 007a 9093 0000 sts envVarList+2+1,r25
  126. 123 007e 8093 0000 sts envVarList+2,r24
  127. 124 .L16:
  128. 125 0082 E801 movw r28,r16
  129. 126 0084 A881 ld r26,Y
  130. 127 0086 B981 ldd r27,Y+1
  131. 128 0088 1097 sbiw r26,0
  132. 129 008a 01F0 breq .L17
  133. 130 008c 1396 adiw r26,2+1
  134. 131 008e FC93 st X,r31
  135. 132 0090 EE93 st -X,r30
  136. 133 0092 1297 sbiw r26,2
  137. 134 0094 00C0 rjmp .L18
  138. 135 .L17:
  139. 136 0096 F093 0000 sts envVarList+1,r31
  140. 137 009a E093 0000 sts envVarList,r30
  141. 138 .L18:
  142. 139 009e 8FEF ldi r24,lo8(-1)
  143. 140 00a0 9FEF ldi r25,lo8(-1)
  144. 141 00a2 F801 movw r30,r16
  145. 142 00a4 9183 std Z+1,r25
  146. 143 00a6 8083 st Z,r24
  147. 144 00a8 9383 std Z+3,r25
  148. 145 00aa 8283 std Z+2,r24
  149. 146 00ac 8085 ldd r24,Z+8
  150. 147 00ae 9185 ldd r25,Z+9
  151. 148 00b0 97FF sbrs r25,7
  152. 149 00b2 00C0 rjmp .L19
  153. 150 00b4 8481 ldd r24,Z+4
  154. 151 00b6 9581 ldd r25,Z+5
  155. 152 00b8 0E94 0000 call free
  156. 153 00bc C801 movw r24,r16
  157. 154 00be 0E94 0000 call free
  158. 155 00c2 00C0 rjmp .L19
  159. 156 .L12:
  160. 157 00c4 C114 cp r12,__zero_reg__
  161. 158 00c6 D104 cpc r13,__zero_reg__
  162. 159 00c8 01F4 brne .L20
  163. 160 .L21:
  164. 161 00ca 8FEF ldi r24,lo8(-1)
  165. 162 00cc 9FEF ldi r25,lo8(-1)
  166. 163 00ce 00C0 rjmp .L32
  167. 164 .L20:
  168. 165 00d0 6AE0 ldi r22,lo8(10)
  169. 166 00d2 70E0 ldi r23,0
  170. 167 00d4 81E0 ldi r24,lo8(1)
  171. 168 00d6 90E0 ldi r25,0
  172. 169 00d8 0E94 0000 call calloc
  173. 170 00dc EC01 movw r28,r24
  174. 171 00de 892B or r24,r25
  175. GAS LISTING /tmp/cc2VopaT.s page 4
  176. 172 00e0 01F0 breq .L21
  177. 173 00e2 C501 movw r24,r10
  178. 174 00e4 0E94 0000 call strdup
  179. 175 00e8 9D83 std Y+5,r25
  180. 176 00ea 8C83 std Y+4,r24
  181. 177 00ec 892B or r24,r25
  182. 178 00ee 01F0 breq .L21
  183. 179 00f0 DF82 std Y+7,r13
  184. 180 00f2 CE82 std Y+6,r12
  185. 181 00f4 9986 std Y+9,r9
  186. 182 00f6 8886 std Y+8,r8
  187. 183 00f8 0115 cp r16,__zero_reg__
  188. 184 00fa 1105 cpc r17,__zero_reg__
  189. 185 00fc 01F0 breq .L22
  190. 186 00fe D801 movw r26,r16
  191. 187 0100 8D91 ld r24,X+
  192. 188 0102 9C91 ld r25,X
  193. 189 0104 0097 sbiw r24,0
  194. 190 0106 01F4 brne .L23
  195. 191 0108 E114 cp r14,__zero_reg__
  196. 192 010a F104 cpc r15,__zero_reg__
  197. 193 010c 01F0 breq .L24
  198. 194 010e F701 movw r30,r14
  199. 195 0110 D183 std Z+1,r29
  200. 196 0112 C083 st Z,r28
  201. 197 .L25:
  202. 198 0114 1982 std Y+1,__zero_reg__
  203. 199 0116 1882 st Y,__zero_reg__
  204. 200 0118 FB82 std Y+3,r15
  205. 201 011a EA82 std Y+2,r14
  206. 202 011c D093 0000 sts envVarList+1,r29
  207. 203 0120 C093 0000 sts envVarList,r28
  208. 204 .L19:
  209. 205 0124 80E0 ldi r24,0
  210. 206 0126 90E0 ldi r25,0
  211. 207 0128 00C0 rjmp .L32
  212. 208 .L24:
  213. 209 012a D093 0000 sts envVarList+2+1,r29
  214. 210 012e C093 0000 sts envVarList+2,r28
  215. 211 0132 00C0 rjmp .L25
  216. 212 .L23:
  217. 213 0134 9983 std Y+1,r25
  218. 214 0136 8883 st Y,r24
  219. 215 0138 D801 movw r26,r16
  220. 216 013a CD93 st X+,r28
  221. 217 013c DC93 st X,r29
  222. 218 013e E881 ld r30,Y
  223. 219 0140 F981 ldd r31,Y+1
  224. 220 0142 D383 std Z+3,r29
  225. 221 0144 C283 std Z+2,r28
  226. 222 0146 1B83 std Y+3,r17
  227. 223 0148 0A83 std Y+2,r16
  228. 224 014a 00C0 rjmp .L19
  229. 225 .L22:
  230. 226 014c E091 0000 lds r30,envVarList+2
  231. 227 0150 F091 0000 lds r31,envVarList+2+1
  232. 228 0154 3097 sbiw r30,0
  233. GAS LISTING /tmp/cc2VopaT.s page 5
  234. 229 0156 01F0 breq .L26
  235. 230 0158 D383 std Z+3,r29
  236. 231 015a C283 std Z+2,r28
  237. 232 015c 00C0 rjmp .L27
  238. 233 .L26:
  239. 234 015e D093 0000 sts envVarList+1,r29
  240. 235 0162 C093 0000 sts envVarList,r28
  241. 236 .L27:
  242. 237 0166 F983 std Y+1,r31
  243. 238 0168 E883 st Y,r30
  244. 239 016a 1B82 std Y+3,__zero_reg__
  245. 240 016c 1A82 std Y+2,__zero_reg__
  246. 241 016e D093 0000 sts envVarList+2+1,r29
  247. 242 0172 C093 0000 sts envVarList+2,r28
  248. 243 0176 00C0 rjmp .L19
  249. 244 .L32:
  250. 245 /* epilogue start */
  251. 246 0178 DF91 pop r29
  252. 247 017a CF91 pop r28
  253. 248 017c 1F91 pop r17
  254. 249 017e 0F91 pop r16
  255. 250 0180 FF90 pop r15
  256. 251 0182 EF90 pop r14
  257. 252 0184 DF90 pop r13
  258. 253 0186 CF90 pop r12
  259. 254 0188 BF90 pop r11
  260. 255 018a AF90 pop r10
  261. 256 018c 9F90 pop r9
  262. 257 018e 8F90 pop r8
  263. 258 0190 0895 ret
  264. 259 .size EnvRegisterVariable, .-EnvRegisterVariable
  265. 260 .ident "GCC: (GNU) 5.3.0"
  266. GAS LISTING /tmp/cc2VopaT.s page 6
  267. DEFINED SYMBOLS
  268. *ABS*:0000000000000000 envreg.c
  269. /tmp/cc2VopaT.s:2 *ABS*:000000000000003e __SP_H__
  270. /tmp/cc2VopaT.s:3 *ABS*:000000000000003d __SP_L__
  271. /tmp/cc2VopaT.s:4 *ABS*:000000000000003f __SREG__
  272. /tmp/cc2VopaT.s:5 *ABS*:000000000000003b __RAMPZ__
  273. /tmp/cc2VopaT.s:6 *ABS*:0000000000000000 __tmp_reg__
  274. /tmp/cc2VopaT.s:7 *ABS*:0000000000000001 __zero_reg__
  275. /tmp/cc2VopaT.s:11 .text.EnvVarGetEntry:0000000000000000 EnvVarGetEntry
  276. /tmp/cc2VopaT.s:55 .text.EnvRegisterVariable:0000000000000000 EnvRegisterVariable
  277. UNDEFINED SYMBOLS
  278. envVarList
  279. strcasecmp
  280. free
  281. calloc
  282. strdup