mod_cgi_func.lst 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. GAS LISTING /tmp/ccnYUucl.s page 1
  2. 1 .file "mod_cgi_func.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.HttpCgiFunctionLookup,"ax",@progbits
  10. 9 .global HttpCgiFunctionLookup
  11. 10 .type HttpCgiFunctionLookup, @function
  12. 11 HttpCgiFunctionLookup:
  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,cgiFunctionList
  23. 22 000e D091 0000 lds r29,cgiFunctionList+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 HttpCgiFunctionLookup, .-HttpCgiFunctionLookup
  53. 52 .section .text.HttpRegisterCgiFunction,"ax",@progbits
  54. 53 .global HttpRegisterCgiFunction
  55. 54 .type HttpRegisterCgiFunction, @function
  56. 55 HttpRegisterCgiFunction:
  57. 56 0000 AF92 push r10
  58. 57 0002 BF92 push r11
  59. GAS LISTING /tmp/ccnYUucl.s page 2
  60. 58 0004 CF92 push r12
  61. 59 0006 DF92 push r13
  62. 60 0008 EF92 push r14
  63. 61 000a FF92 push r15
  64. 62 000c 0F93 push r16
  65. 63 000e 1F93 push r17
  66. 64 0010 CF93 push r28
  67. 65 0012 DF93 push r29
  68. 66 /* prologue: function */
  69. 67 /* frame size = 0 */
  70. 68 /* stack size = 10 */
  71. 69 .L__stack_usage = 10
  72. 70 0014 5C01 movw r10,r24
  73. 71 0016 6B01 movw r12,r22
  74. 72 0018 E090 0000 lds r14,cgiFunctionList
  75. 73 001c F090 0000 lds r15,cgiFunctionList+1
  76. 74 0020 8701 movw r16,r14
  77. 75 0022 8FEF ldi r24,lo8(-1)
  78. 76 0024 9FEF ldi r25,lo8(-1)
  79. 77 .L9:
  80. 78 0026 0115 cp r16,__zero_reg__
  81. 79 0028 1105 cpc r17,__zero_reg__
  82. 80 002a 01F0 breq .L10
  83. 81 002c B501 movw r22,r10
  84. 82 002e D801 movw r26,r16
  85. 83 0030 1496 adiw r26,4
  86. 84 0032 8D91 ld r24,X+
  87. 85 0034 9C91 ld r25,X
  88. 86 0036 1597 sbiw r26,4+1
  89. 87 0038 0E94 0000 call strcasecmp
  90. 88 003c 1816 cp __zero_reg__,r24
  91. 89 003e 1906 cpc __zero_reg__,r25
  92. 90 0040 04F4 brge .L10
  93. 91 0042 E801 movw r28,r16
  94. 92 0044 0A81 ldd r16,Y+2
  95. 93 0046 1B81 ldd r17,Y+3
  96. 94 0048 00C0 rjmp .L9
  97. 95 .L10:
  98. 96 004a 892B or r24,r25
  99. 97 004c 01F4 brne .+2
  100. 98 004e 00C0 rjmp .L12
  101. 99 0050 68E0 ldi r22,lo8(8)
  102. 100 0052 70E0 ldi r23,0
  103. 101 0054 81E0 ldi r24,lo8(1)
  104. 102 0056 90E0 ldi r25,0
  105. 103 0058 0E94 0000 call calloc
  106. 104 005c EC01 movw r28,r24
  107. 105 005e 892B or r24,r25
  108. 106 0060 01F4 brne .+2
  109. 107 0062 00C0 rjmp .L26
  110. 108 0064 C501 movw r24,r10
  111. 109 0066 0E94 0000 call strdup
  112. 110 006a 9D83 std Y+5,r25
  113. 111 006c 8C83 std Y+4,r24
  114. 112 006e 892B or r24,r25
  115. 113 0070 01F4 brne .+2
  116. 114 0072 00C0 rjmp .L14
  117. GAS LISTING /tmp/ccnYUucl.s page 3
  118. 115 0074 DF82 std Y+7,r13
  119. 116 0076 CE82 std Y+6,r12
  120. 117 0078 0115 cp r16,__zero_reg__
  121. 118 007a 1105 cpc r17,__zero_reg__
  122. 119 007c 01F0 breq .L15
  123. 120 007e F801 movw r30,r16
  124. 121 0080 8081 ld r24,Z
  125. 122 0082 9181 ldd r25,Z+1
  126. 123 0084 0097 sbiw r24,0
  127. 124 0086 01F4 brne .L16
  128. 125 0088 E114 cp r14,__zero_reg__
  129. 126 008a F104 cpc r15,__zero_reg__
  130. 127 008c 01F0 breq .L17
  131. 128 008e D701 movw r26,r14
  132. 129 0090 CD93 st X+,r28
  133. 130 0092 DC93 st X,r29
  134. 131 0094 00C0 rjmp .L18
  135. 132 .L17:
  136. 133 0096 D093 0000 sts cgiFunctionList+2+1,r29
  137. 134 009a C093 0000 sts cgiFunctionList+2,r28
  138. 135 .L18:
  139. 136 009e 1982 std Y+1,__zero_reg__
  140. 137 00a0 1882 st Y,__zero_reg__
  141. 138 00a2 FB82 std Y+3,r15
  142. 139 00a4 EA82 std Y+2,r14
  143. 140 00a6 D093 0000 sts cgiFunctionList+1,r29
  144. 141 00aa C093 0000 sts cgiFunctionList,r28
  145. 142 00ae 00C0 rjmp .L27
  146. 143 .L16:
  147. 144 00b0 9983 std Y+1,r25
  148. 145 00b2 8883 st Y,r24
  149. 146 00b4 F801 movw r30,r16
  150. 147 00b6 D183 std Z+1,r29
  151. 148 00b8 C083 st Z,r28
  152. 149 00ba E881 ld r30,Y
  153. 150 00bc F981 ldd r31,Y+1
  154. 151 00be D383 std Z+3,r29
  155. 152 00c0 C283 std Z+2,r28
  156. 153 00c2 1B83 std Y+3,r17
  157. 154 00c4 0A83 std Y+2,r16
  158. 155 00c6 00C0 rjmp .L27
  159. 156 .L15:
  160. 157 00c8 E091 0000 lds r30,cgiFunctionList+2
  161. 158 00cc F091 0000 lds r31,cgiFunctionList+2+1
  162. 159 00d0 3097 sbiw r30,0
  163. 160 00d2 01F0 breq .L19
  164. 161 00d4 D383 std Z+3,r29
  165. 162 00d6 C283 std Z+2,r28
  166. 163 00d8 00C0 rjmp .L20
  167. 164 .L19:
  168. 165 00da D093 0000 sts cgiFunctionList+1,r29
  169. 166 00de C093 0000 sts cgiFunctionList,r28
  170. 167 .L20:
  171. 168 00e2 F983 std Y+1,r31
  172. 169 00e4 E883 st Y,r30
  173. 170 00e6 1B82 std Y+3,__zero_reg__
  174. 171 00e8 1A82 std Y+2,__zero_reg__
  175. GAS LISTING /tmp/ccnYUucl.s page 4
  176. 172 00ea D093 0000 sts cgiFunctionList+2+1,r29
  177. 173 00ee C093 0000 sts cgiFunctionList+2,r28
  178. 174 .L27:
  179. 175 00f2 80E0 ldi r24,0
  180. 176 00f4 90E0 ldi r25,0
  181. 177 00f6 00C0 rjmp .L13
  182. 178 .L14:
  183. 179 00f8 CE01 movw r24,r28
  184. 180 00fa 00C0 rjmp .L28
  185. 181 .L12:
  186. 182 00fc C114 cp r12,__zero_reg__
  187. 183 00fe D104 cpc r13,__zero_reg__
  188. 184 0100 01F0 breq .L21
  189. 185 0102 D801 movw r26,r16
  190. 186 0104 1796 adiw r26,6+1
  191. 187 0106 DC92 st X,r13
  192. 188 0108 CE92 st -X,r12
  193. 189 010a 1697 sbiw r26,6
  194. 190 010c 00C0 rjmp .L26
  195. 191 .L21:
  196. 192 010e E801 movw r28,r16
  197. 193 0110 EA81 ldd r30,Y+2
  198. 194 0112 FB81 ldd r31,Y+3
  199. 195 0114 8881 ld r24,Y
  200. 196 0116 9981 ldd r25,Y+1
  201. 197 0118 3097 sbiw r30,0
  202. 198 011a 01F0 breq .L22
  203. 199 011c 9183 std Z+1,r25
  204. 200 011e 8083 st Z,r24
  205. 201 0120 00C0 rjmp .L23
  206. 202 .L22:
  207. 203 0122 9093 0000 sts cgiFunctionList+2+1,r25
  208. 204 0126 8093 0000 sts cgiFunctionList+2,r24
  209. 205 .L23:
  210. 206 012a E801 movw r28,r16
  211. 207 012c A881 ld r26,Y
  212. 208 012e B981 ldd r27,Y+1
  213. 209 0130 1097 sbiw r26,0
  214. 210 0132 01F0 breq .L24
  215. 211 0134 1396 adiw r26,2+1
  216. 212 0136 FC93 st X,r31
  217. 213 0138 EE93 st -X,r30
  218. 214 013a 1297 sbiw r26,2
  219. 215 013c 00C0 rjmp .L25
  220. 216 .L24:
  221. 217 013e F093 0000 sts cgiFunctionList+1,r31
  222. 218 0142 E093 0000 sts cgiFunctionList,r30
  223. 219 .L25:
  224. 220 0146 F801 movw r30,r16
  225. 221 0148 8481 ldd r24,Z+4
  226. 222 014a 9581 ldd r25,Z+5
  227. 223 014c 0E94 0000 call free
  228. 224 0150 C801 movw r24,r16
  229. 225 .L28:
  230. 226 0152 0E94 0000 call free
  231. 227 .L26:
  232. 228 0156 8FEF ldi r24,lo8(-1)
  233. GAS LISTING /tmp/ccnYUucl.s page 5
  234. 229 0158 9FEF ldi r25,lo8(-1)
  235. 230 .L13:
  236. 231 /* epilogue start */
  237. 232 015a DF91 pop r29
  238. 233 015c CF91 pop r28
  239. 234 015e 1F91 pop r17
  240. 235 0160 0F91 pop r16
  241. 236 0162 FF90 pop r15
  242. 237 0164 EF90 pop r14
  243. 238 0166 DF90 pop r13
  244. 239 0168 CF90 pop r12
  245. 240 016a BF90 pop r11
  246. 241 016c AF90 pop r10
  247. 242 016e 0895 ret
  248. 243 .size HttpRegisterCgiFunction, .-HttpRegisterCgiFunction
  249. 244 .section .rodata.str1.1,"aMS",@progbits,1
  250. 245 .LC0:
  251. 246 0000 5552 4F4D .string "UROM:"
  252. 246 3A00
  253. 247 .section .text.HttpCgiFunctionHandler,"ax",@progbits
  254. 248 .global HttpCgiFunctionHandler
  255. 249 .type HttpCgiFunctionHandler, @function
  256. 250 HttpCgiFunctionHandler:
  257. 251 0000 EF92 push r14
  258. 252 0002 FF92 push r15
  259. 253 0004 0F93 push r16
  260. 254 0006 1F93 push r17
  261. 255 0008 CF93 push r28
  262. 256 000a DF93 push r29
  263. 257 /* prologue: function */
  264. 258 /* frame size = 0 */
  265. 259 /* stack size = 6 */
  266. 260 .L__stack_usage = 6
  267. 261 000c 7C01 movw r14,r24
  268. 262 000e 8A01 movw r16,r20
  269. 263 0010 C091 0000 lds r28,http_root_path
  270. 264 0014 D091 0000 lds r29,http_root_path+1
  271. 265 0018 2097 sbiw r28,0
  272. 266 001a 01F0 breq .L37
  273. 267 001c DE01 movw r26,r28
  274. 268 001e 00C0 rjmp .L30
  275. 269 .L37:
  276. 270 0020 A0E0 ldi r26,lo8(.LC0)
  277. 271 0022 B0E0 ldi r27,hi8(.LC0)
  278. 272 .L30:
  279. 273 0024 FD01 movw r30,r26
  280. 274 0:
  281. 275 0026 0190 ld __tmp_reg__,Z+
  282. 276 0028 0020 tst __tmp_reg__
  283. 277 002a 01F4 brne 0b
  284. 278 002c 3197 sbiw r30,1
  285. 279 002e AF01 movw r20,r30
  286. 280 0030 4A1B sub r20,r26
  287. 281 0032 5B0B sbc r21,r27
  288. 282 0034 2097 sbiw r28,0
  289. 283 0036 01F0 breq .L38
  290. 284 0038 BE01 movw r22,r28
  291. GAS LISTING /tmp/ccnYUucl.s page 6
  292. 285 003a 00C0 rjmp .L31
  293. 286 .L38:
  294. 287 003c 60E0 ldi r22,lo8(.LC0)
  295. 288 003e 70E0 ldi r23,hi8(.LC0)
  296. 289 .L31:
  297. 290 0040 C801 movw r24,r16
  298. 291 0042 0E94 0000 call strncasecmp
  299. 292 0046 892B or r24,r25
  300. 293 0048 01F4 brne .L32
  301. 294 004a 2097 sbiw r28,0
  302. 295 004c 01F4 brne .L33
  303. 296 004e C0E0 ldi r28,lo8(.LC0)
  304. 297 0050 D0E0 ldi r29,hi8(.LC0)
  305. 298 .L33:
  306. 299 0052 FE01 movw r30,r28
  307. 300 0:
  308. 301 0054 0190 ld __tmp_reg__,Z+
  309. 302 0056 0020 tst __tmp_reg__
  310. 303 0058 01F4 brne 0b
  311. 304 005a 3197 sbiw r30,1
  312. 305 005c CF01 movw r24,r30
  313. 306 005e 8C1B sub r24,r28
  314. 307 0060 9D0B sbc r25,r29
  315. 308 0062 00C0 rjmp .L35
  316. 309 .L32:
  317. 310 0064 81E0 ldi r24,lo8(1)
  318. 311 0066 90E0 ldi r25,0
  319. 312 0068 D801 movw r26,r16
  320. 313 006a 2C91 ld r18,X
  321. 314 006c 2F32 cpi r18,lo8(47)
  322. 315 006e 01F0 breq .L35
  323. 316 0070 80E0 ldi r24,0
  324. 317 0072 90E0 ldi r25,0
  325. 318 .L35:
  326. 319 0074 800F add r24,r16
  327. 320 0076 911F adc r25,r17
  328. 321 0078 0E94 0000 call HttpCgiFunctionLookup
  329. 322 007c 0097 sbiw r24,0
  330. 323 007e 01F0 breq .L36
  331. 324 0080 DC01 movw r26,r24
  332. 325 0082 1696 adiw r26,6
  333. 326 0084 ED91 ld r30,X+
  334. 327 0086 FC91 ld r31,X
  335. 328 0088 1797 sbiw r26,6+1
  336. 329 008a C701 movw r24,r14
  337. 330 008c 1995 eicall
  338. 331 .L36:
  339. 332 008e 80E0 ldi r24,0
  340. 333 0090 90E0 ldi r25,0
  341. 334 /* epilogue start */
  342. 335 0092 DF91 pop r29
  343. 336 0094 CF91 pop r28
  344. 337 0096 1F91 pop r17
  345. 338 0098 0F91 pop r16
  346. 339 009a FF90 pop r15
  347. 340 009c EF90 pop r14
  348. 341 009e 0895 ret
  349. GAS LISTING /tmp/ccnYUucl.s page 7
  350. 342 .size HttpCgiFunctionHandler, .-HttpCgiFunctionHandler
  351. 343 .local cgiFunctionList
  352. 344 .comm cgiFunctionList,4,1
  353. 345 .ident "GCC: (GNU) 5.3.0"
  354. 346 .global __do_copy_data
  355. 347 .global __do_clear_bss
  356. GAS LISTING /tmp/ccnYUucl.s page 8
  357. DEFINED SYMBOLS
  358. *ABS*:0000000000000000 mod_cgi_func.c
  359. /tmp/ccnYUucl.s:2 *ABS*:000000000000003e __SP_H__
  360. /tmp/ccnYUucl.s:3 *ABS*:000000000000003d __SP_L__
  361. /tmp/ccnYUucl.s:4 *ABS*:000000000000003f __SREG__
  362. /tmp/ccnYUucl.s:5 *ABS*:000000000000003b __RAMPZ__
  363. /tmp/ccnYUucl.s:6 *ABS*:0000000000000000 __tmp_reg__
  364. /tmp/ccnYUucl.s:7 *ABS*:0000000000000001 __zero_reg__
  365. /tmp/ccnYUucl.s:11 .text.HttpCgiFunctionLookup:0000000000000000 HttpCgiFunctionLookup
  366. .bss:0000000000000000 cgiFunctionList
  367. /tmp/ccnYUucl.s:55 .text.HttpRegisterCgiFunction:0000000000000000 HttpRegisterCgiFunction
  368. /tmp/ccnYUucl.s:250 .text.HttpCgiFunctionHandler:0000000000000000 HttpCgiFunctionHandler
  369. UNDEFINED SYMBOLS
  370. strcasecmp
  371. calloc
  372. strdup
  373. free
  374. http_root_path
  375. strncasecmp
  376. __do_copy_data
  377. __do_clear_bss