mod_ssi.lst 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195
  1. GAS LISTING /tmp/cc6cnd5v.s page 1
  2. 1 .file "mod_ssi.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.HttpSsiVarHandler,"ax",@progbits
  10. 9 .type HttpSsiVarHandler, @function
  11. 10 HttpSsiVarHandler:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 0000 CB01 movw r24,r22
  17. 16 0002 0895 ret
  18. 17 .size HttpSsiVarHandler, .-HttpSsiVarHandler
  19. 18 .section .rodata.str1.1,"aMS",@progbits,1
  20. 19 .LC0:
  21. 20 0000 6367 6900 .string "cgi"
  22. 21 .LC1:
  23. 22 0004 00 .string ""
  24. 23 .LC2:
  25. 24 0005 2451 5545 .string "$QUERY_STRING"
  26. 24 5259 5F53
  27. 24 5452 494E
  28. 24 4700
  29. 25 .section .text.HttpSsiExecHandler,"ax",@progbits
  30. 26 .global HttpSsiExecHandler
  31. 27 .type HttpSsiExecHandler, @function
  32. 28 HttpSsiExecHandler:
  33. 29 0000 4F92 push r4
  34. 30 0002 5F92 push r5
  35. 31 0004 6F92 push r6
  36. 32 0006 7F92 push r7
  37. 33 0008 8F92 push r8
  38. 34 000a 9F92 push r9
  39. 35 000c AF92 push r10
  40. 36 000e BF92 push r11
  41. 37 0010 CF92 push r12
  42. 38 0012 DF92 push r13
  43. 39 0014 EF92 push r14
  44. 40 0016 FF92 push r15
  45. 41 0018 0F93 push r16
  46. 42 001a 1F93 push r17
  47. 43 001c CF93 push r28
  48. 44 001e DF93 push r29
  49. 45 /* prologue: function */
  50. 46 /* frame size = 0 */
  51. 47 /* stack size = 16 */
  52. 48 .L__stack_usage = 16
  53. 49 0020 EC01 movw r28,r24
  54. 50 0022 8B01 movw r16,r22
  55. 51 0024 FB01 movw r30,r22
  56. 52 0026 E680 ldd r14,Z+6
  57. 53 0028 F780 ldd r15,Z+7
  58. 54 002a E114 cp r14,__zero_reg__
  59. GAS LISTING /tmp/cc6cnd5v.s page 2
  60. 55 002c F104 cpc r15,__zero_reg__
  61. 56 002e 01F4 brne .+2
  62. 57 0030 00C0 rjmp .L4
  63. 58 0032 8281 ldd r24,Z+2
  64. 59 0034 9381 ldd r25,Z+3
  65. 60 0036 0397 sbiw r24,3
  66. 61 0038 01F0 breq .+2
  67. 62 003a 00C0 rjmp .L4
  68. 63 003c 43E0 ldi r20,lo8(3)
  69. 64 003e 50E0 ldi r21,0
  70. 65 0040 60E0 ldi r22,lo8(.LC0)
  71. 66 0042 70E0 ldi r23,hi8(.LC0)
  72. 67 0044 8081 ld r24,Z
  73. 68 0046 9181 ldd r25,Z+1
  74. 69 0048 0E94 0000 call memcmp
  75. 70 004c 892B or r24,r25
  76. 71 004e 01F0 breq .+2
  77. 72 0050 00C0 rjmp .L4
  78. 73 0052 F801 movw r30,r16
  79. 74 0054 6481 ldd r22,Z+4
  80. 75 0056 7581 ldd r23,Z+5
  81. 76 0058 A701 movw r20,r14
  82. 77 005a 80E0 ldi r24,lo8(.LC1)
  83. 78 005c 90E0 ldi r25,hi8(.LC1)
  84. 79 005e 0E94 0000 call AllocConcatStringLen
  85. 80 0062 6C01 movw r12,r24
  86. 81 0064 0097 sbiw r24,0
  87. 82 0066 01F4 brne .+2
  88. 83 0068 00C0 rjmp .L4
  89. 84 006a 6FE3 ldi r22,lo8(63)
  90. 85 006c 70E0 ldi r23,0
  91. 86 006e 0E94 0000 call strchr
  92. 87 0072 3C01 movw r6,r24
  93. 88 0074 0097 sbiw r24,0
  94. 89 0076 01F0 breq .L6
  95. 90 0078 FC01 movw r30,r24
  96. 91 007a 1082 st Z,__zero_reg__
  97. 92 007c 0196 adiw r24,1
  98. 93 007e 3C01 movw r6,r24
  99. 94 .L6:
  100. 95 0080 8CE2 ldi r24,lo8(44)
  101. 96 0082 90E0 ldi r25,0
  102. 97 0084 0E94 0000 call malloc
  103. 98 0088 5C01 movw r10,r24
  104. 99 008a 892B or r24,r25
  105. 100 008c 01F4 brne .+2
  106. 101 008e 00C0 rjmp .L7
  107. 102 0090 2E01 movw r4,r28
  108. 103 0092 92E0 ldi r25,2
  109. 104 0094 490E add r4,r25
  110. 105 0096 511C adc r5,__zero_reg__
  111. 106 0098 8CE2 ldi r24,lo8(44)
  112. 107 009a F201 movw r30,r4
  113. 108 009c D501 movw r26,r10
  114. 109 0:
  115. 110 009e 0190 ld r0,Z+
  116. 111 00a0 0D92 st X+,r0
  117. GAS LISTING /tmp/cc6cnd5v.s page 3
  118. 112 00a2 8A95 dec r24
  119. 113 00a4 01F4 brne 0b
  120. 114 00a6 81E0 ldi r24,lo8(1)
  121. 115 00a8 90E0 ldi r25,0
  122. 116 00aa 9B83 std Y+3,r25
  123. 117 00ac 8A83 std Y+2,r24
  124. 118 00ae 1D86 std Y+13,__zero_reg__
  125. 119 00b0 1C86 std Y+12,__zero_reg__
  126. 120 00b2 1A8A std Y+18,__zero_reg__
  127. 121 00b4 1B8A std Y+19,__zero_reg__
  128. 122 00b6 1C8A std Y+20,__zero_reg__
  129. 123 00b8 1D8A std Y+21,__zero_reg__
  130. 124 00ba 6114 cp r6,__zero_reg__
  131. 125 00bc 7104 cpc r7,__zero_reg__
  132. 126 00be 01F4 brne .+2
  133. 127 00c0 00C0 rjmp .L11
  134. 128 00c2 8885 ldd r24,Y+8
  135. 129 00c4 9985 ldd r25,Y+9
  136. 130 00c6 892B or r24,r25
  137. 131 00c8 01F0 breq .L11
  138. 132 00ca 60E0 ldi r22,lo8(.LC2)
  139. 133 00cc 70E0 ldi r23,hi8(.LC2)
  140. 134 00ce C301 movw r24,r6
  141. 135 00d0 0E94 0000 call strstr
  142. 136 00d4 0097 sbiw r24,0
  143. 137 00d6 01F0 breq .L11
  144. 138 00d8 FC01 movw r30,r24
  145. 139 00da 1082 st Z,__zero_reg__
  146. 140 00dc F301 movw r30,r6
  147. 141 0:
  148. 142 00de 0190 ld __tmp_reg__,Z+
  149. 143 00e0 0020 tst __tmp_reg__
  150. 144 00e2 01F4 brne 0b
  151. 145 00e4 3197 sbiw r30,1
  152. 146 00e6 AF01 movw r20,r30
  153. 147 00e8 4619 sub r20,r6
  154. 148 00ea 5709 sbc r21,r7
  155. 149 00ec 8884 ldd r8,Y+8
  156. 150 00ee 9984 ldd r9,Y+9
  157. 151 00f0 F401 movw r30,r8
  158. 152 0:
  159. 153 00f2 0190 ld __tmp_reg__,Z+
  160. 154 00f4 0020 tst __tmp_reg__
  161. 155 00f6 01F4 brne 0b
  162. 156 00f8 3197 sbiw r30,1
  163. 157 00fa 9F01 movw r18,r30
  164. 158 00fc 2819 sub r18,r8
  165. 159 00fe 3909 sbc r19,r9
  166. 160 0100 7C01 movw r14,r24
  167. 161 0102 FDE0 ldi r31,13
  168. 162 0104 EF0E add r14,r31
  169. 163 0106 F11C adc r15,__zero_reg__
  170. 164 0108 F701 movw r30,r14
  171. 165 0:
  172. 166 010a 0190 ld __tmp_reg__,Z+
  173. 167 010c 0020 tst __tmp_reg__
  174. 168 010e 01F4 brne 0b
  175. GAS LISTING /tmp/cc6cnd5v.s page 4
  176. 169 0110 240F add r18,r20
  177. 170 0112 351F adc r19,r21
  178. 171 0114 CF01 movw r24,r30
  179. 172 0116 8E19 sub r24,r14
  180. 173 0118 9F09 sbc r25,r15
  181. 174 011a 820F add r24,r18
  182. 175 011c 931F adc r25,r19
  183. 176 011e 0E94 0000 call malloc
  184. 177 0122 8C01 movw r16,r24
  185. 178 0124 0097 sbiw r24,0
  186. 179 0126 01F0 breq .L12
  187. 180 0128 B301 movw r22,r6
  188. 181 012a 0E94 0000 call strcpy
  189. 182 012e B401 movw r22,r8
  190. 183 0130 C801 movw r24,r16
  191. 184 0132 0E94 0000 call strcat
  192. 185 0136 B701 movw r22,r14
  193. 186 0138 C801 movw r24,r16
  194. 187 013a 0E94 0000 call strcat
  195. 188 .L12:
  196. 189 013e 1987 std Y+9,r17
  197. 190 0140 0887 std Y+8,r16
  198. 191 0142 00C0 rjmp .L10
  199. 192 .L11:
  200. 193 0144 7986 std Y+9,r7
  201. 194 0146 6886 std Y+8,r6
  202. 195 0148 00E0 ldi r16,0
  203. 196 014a 10E0 ldi r17,0
  204. 197 .L10:
  205. 198 014c A601 movw r20,r12
  206. 199 014e 60E0 ldi r22,0
  207. 200 0150 70E0 ldi r23,0
  208. 201 0152 CE01 movw r24,r28
  209. 202 0154 0E94 0000 call HttpCgiFunctionHandler
  210. 203 0158 8C85 ldd r24,Y+12
  211. 204 015a 9D85 ldd r25,Y+13
  212. 205 015c 0E94 0000 call free
  213. 206 0160 8CE2 ldi r24,lo8(44)
  214. 207 0162 F501 movw r30,r10
  215. 208 0164 D201 movw r26,r4
  216. 209 0:
  217. 210 0166 0190 ld r0,Z+
  218. 211 0168 0D92 st X+,r0
  219. 212 016a 8A95 dec r24
  220. 213 016c 01F4 brne 0b
  221. 214 016e C501 movw r24,r10
  222. 215 0170 0E94 0000 call free
  223. 216 0174 C801 movw r24,r16
  224. 217 0176 0E94 0000 call free
  225. 218 .L7:
  226. 219 017a C601 movw r24,r12
  227. 220 017c 0E94 0000 call free
  228. 221 .L4:
  229. 222 0180 80E0 ldi r24,0
  230. 223 0182 90E0 ldi r25,0
  231. 224 /* epilogue start */
  232. 225 0184 DF91 pop r29
  233. GAS LISTING /tmp/cc6cnd5v.s page 5
  234. 226 0186 CF91 pop r28
  235. 227 0188 1F91 pop r17
  236. 228 018a 0F91 pop r16
  237. 229 018c FF90 pop r15
  238. 230 018e EF90 pop r14
  239. 231 0190 DF90 pop r13
  240. 232 0192 CF90 pop r12
  241. 233 0194 BF90 pop r11
  242. 234 0196 AF90 pop r10
  243. 235 0198 9F90 pop r9
  244. 236 019a 8F90 pop r8
  245. 237 019c 7F90 pop r7
  246. 238 019e 6F90 pop r6
  247. 239 01a0 5F90 pop r5
  248. 240 01a2 4F90 pop r4
  249. 241 01a4 0895 ret
  250. 242 .size HttpSsiExecHandler, .-HttpSsiExecHandler
  251. 243 .section .text.HttpSsiEchoHandler,"ax",@progbits
  252. 244 .global HttpSsiEchoHandler
  253. 245 .type HttpSsiEchoHandler, @function
  254. 246 HttpSsiEchoHandler:
  255. 247 0000 EF92 push r14
  256. 248 0002 FF92 push r15
  257. 249 0004 0F93 push r16
  258. 250 0006 1F93 push r17
  259. 251 0008 CF93 push r28
  260. 252 000a DF93 push r29
  261. 253 /* prologue: function */
  262. 254 /* frame size = 0 */
  263. 255 /* stack size = 6 */
  264. 256 .L__stack_usage = 6
  265. 257 000c 7C01 movw r14,r24
  266. 258 000e 8B01 movw r16,r22
  267. 259 0010 DB01 movw r26,r22
  268. 260 0012 1696 adiw r26,6
  269. 261 0014 6D91 ld r22,X+
  270. 262 0016 7C91 ld r23,X
  271. 263 0018 1797 sbiw r26,6+1
  272. 264 001a 6F5F subi r22,-1
  273. 265 001c 7F4F sbci r23,-1
  274. 266 001e 8091 0000 lds r24,varname.2783
  275. 267 0022 9091 0000 lds r25,varname.2783+1
  276. 268 0026 0E94 0000 call realloc
  277. 269 002a EC01 movw r28,r24
  278. 270 002c 9093 0000 sts varname.2783+1,r25
  279. 271 0030 8093 0000 sts varname.2783,r24
  280. 272 0034 F801 movw r30,r16
  281. 273 0036 6481 ldd r22,Z+4
  282. 274 0038 7581 ldd r23,Z+5
  283. 275 003a 4681 ldd r20,Z+6
  284. 276 003c 5781 ldd r21,Z+7
  285. 277 003e 0E94 0000 call memcpy
  286. 278 0042 D801 movw r26,r16
  287. 279 0044 1696 adiw r26,6
  288. 280 0046 ED91 ld r30,X+
  289. 281 0048 FC91 ld r31,X
  290. 282 004a 1797 sbiw r26,6+1
  291. GAS LISTING /tmp/cc6cnd5v.s page 6
  292. 283 004c EC0F add r30,r28
  293. 284 004e FD1F adc r31,r29
  294. 285 0050 1082 st Z,__zero_reg__
  295. 286 0052 E091 0000 lds r30,ssivar_handler
  296. 287 0056 F091 0000 lds r31,ssivar_handler+1
  297. 288 005a BE01 movw r22,r28
  298. 289 005c C701 movw r24,r14
  299. 290 005e 1995 eicall
  300. 291 0060 F701 movw r30,r14
  301. 292 0062 6081 ld r22,Z
  302. 293 0064 7181 ldd r23,Z+1
  303. 294 0066 0E94 0000 call fputs
  304. 295 006a 80E0 ldi r24,0
  305. 296 006c 90E0 ldi r25,0
  306. 297 /* epilogue start */
  307. 298 006e DF91 pop r29
  308. 299 0070 CF91 pop r28
  309. 300 0072 1F91 pop r17
  310. 301 0074 0F91 pop r16
  311. 302 0076 FF90 pop r15
  312. 303 0078 EF90 pop r14
  313. 304 007a 0895 ret
  314. 305 .size HttpSsiEchoHandler, .-HttpSsiEchoHandler
  315. 306 .section .text.HttpSsiParse,"ax",@progbits
  316. 307 .global HttpSsiParse
  317. 308 .type HttpSsiParse, @function
  318. 309 HttpSsiParse:
  319. 310 0000 2F92 push r2
  320. 311 0002 3F92 push r3
  321. 312 0004 4F92 push r4
  322. 313 0006 5F92 push r5
  323. 314 0008 6F92 push r6
  324. 315 000a 7F92 push r7
  325. 316 000c 8F92 push r8
  326. 317 000e 9F92 push r9
  327. 318 0010 AF92 push r10
  328. 319 0012 BF92 push r11
  329. 320 0014 CF92 push r12
  330. 321 0016 DF92 push r13
  331. 322 0018 EF92 push r14
  332. 323 001a FF92 push r15
  333. 324 001c 0F93 push r16
  334. 325 001e 1F93 push r17
  335. 326 0020 CF93 push r28
  336. 327 0022 DF93 push r29
  337. 328 0024 CDB7 in r28,__SP_L__
  338. 329 0026 DEB7 in r29,__SP_H__
  339. 330 0028 2897 sbiw r28,8
  340. 331 002a 0FB6 in __tmp_reg__,__SREG__
  341. 332 002c F894 cli
  342. 333 002e DEBF out __SP_H__,r29
  343. 334 0030 0FBE out __SREG__,__tmp_reg__
  344. 335 0032 CDBF out __SP_L__,r28
  345. 336 /* prologue: function */
  346. 337 /* frame size = 8 */
  347. 338 /* stack size = 26 */
  348. 339 .L__stack_usage = 26
  349. GAS LISTING /tmp/cc6cnd5v.s page 7
  350. 340 0034 4C01 movw r8,r24
  351. 341 0036 7A01 movw r14,r20
  352. 342 0038 CE01 movw r24,r28
  353. 343 003a 0196 adiw r24,1
  354. 344 003c 1C01 movw r2,r24
  355. 345 003e 88E0 ldi r24,lo8(8)
  356. 346 0040 F101 movw r30,r2
  357. 347 0:
  358. 348 0042 1192 st Z+,__zero_reg__
  359. 349 0044 8A95 dec r24
  360. 350 0046 01F4 brne 0b
  361. 351 0048 8B01 movw r16,r22
  362. 352 .L31:
  363. 353 004a 2801 movw r4,r16
  364. 354 004c E114 cp r14,__zero_reg__
  365. 355 004e F104 cpc r15,__zero_reg__
  366. 356 0050 01F0 breq .L32
  367. 357 0052 0F5F subi r16,-1
  368. 358 0054 1F4F sbci r17,-1
  369. 359 0056 F201 movw r30,r4
  370. 360 0058 8081 ld r24,Z
  371. 361 005a 082E mov __tmp_reg__,r24
  372. 362 005c 000C lsl r0
  373. 363 005e 990B sbc r25,r25
  374. 364 0060 0E94 0000 call isspace
  375. 365 0064 892B or r24,r25
  376. 366 0066 01F0 breq .L32
  377. 367 0068 F1E0 ldi r31,1
  378. 368 006a EF1A sub r14,r31
  379. 369 006c F108 sbc r15,__zero_reg__
  380. 370 006e 00C0 rjmp .L31
  381. 371 .L32:
  382. 372 0070 90E0 ldi r25,lo8(ssiCmdList)
  383. 373 0072 692E mov r6,r25
  384. 374 0074 90E0 ldi r25,hi8(ssiCmdList)
  385. 375 0076 792E mov r7,r25
  386. 376 0078 C12C mov r12,__zero_reg__
  387. 377 007a D12C mov r13,__zero_reg__
  388. 378 .L36:
  389. 379 007c F301 movw r30,r6
  390. 380 007e 0281 ldd r16,Z+2
  391. 381 0080 1381 ldd r17,Z+3
  392. 382 0082 0E15 cp r16,r14
  393. 383 0084 1F05 cpc r17,r15
  394. 384 0086 04F4 brge .L34
  395. 385 0088 6081 ld r22,Z
  396. 386 008a 7181 ldd r23,Z+1
  397. 387 008c A801 movw r20,r16
  398. 388 008e C201 movw r24,r4
  399. 389 0090 0E94 0000 call strncasecmp
  400. 390 0094 5C01 movw r10,r24
  401. 391 0096 892B or r24,r25
  402. 392 0098 01F4 brne .L34
  403. 393 009a E01A sub r14,r16
  404. 394 009c F10A sbc r15,r17
  405. 395 009e 040D add r16,r4
  406. 396 00a0 151D adc r17,r5
  407. GAS LISTING /tmp/cc6cnd5v.s page 8
  408. 397 00a2 00C0 rjmp .L35
  409. 398 .L34:
  410. 399 00a4 FFEF ldi r31,-1
  411. 400 00a6 CF1A sub r12,r31
  412. 401 00a8 DF0A sbc r13,r31
  413. 402 00aa 86E0 ldi r24,6
  414. 403 00ac 680E add r6,r24
  415. 404 00ae 711C adc r7,__zero_reg__
  416. 405 00b0 93E0 ldi r25,3
  417. 406 00b2 C916 cp r12,r25
  418. 407 00b4 D104 cpc r13,__zero_reg__
  419. 408 00b6 01F4 brne .L36
  420. 409 00b8 AA24 clr r10
  421. 410 00ba AA94 dec r10
  422. 411 00bc BA2C mov r11,r10
  423. 412 00be 00C0 rjmp .L64
  424. 413 .L68:
  425. 414 00c0 3801 movw r6,r16
  426. 415 00c2 FFEF ldi r31,-1
  427. 416 00c4 6F1A sub r6,r31
  428. 417 00c6 7F0A sbc r7,r31
  429. 418 00c8 F801 movw r30,r16
  430. 419 00ca 8081 ld r24,Z
  431. 420 00cc 082E mov __tmp_reg__,r24
  432. 421 00ce 000C lsl r0
  433. 422 00d0 990B sbc r25,r25
  434. 423 00d2 0E94 0000 call isspace
  435. 424 00d6 892B or r24,r25
  436. 425 00d8 01F0 breq .L67
  437. 426 00da E1E0 ldi r30,1
  438. 427 00dc EE1A sub r14,r30
  439. 428 00de F108 sbc r15,__zero_reg__
  440. 429 00e0 8301 movw r16,r6
  441. 430 .L35:
  442. 431 00e2 E114 cp r14,__zero_reg__
  443. 432 00e4 F104 cpc r15,__zero_reg__
  444. 433 00e6 01F4 brne .L68
  445. 434 00e8 00C0 rjmp .L39
  446. 435 .L42:
  447. 436 00ea F1E0 ldi r31,1
  448. 437 00ec 6F1A sub r6,r31
  449. 438 00ee 7108 sbc r7,__zero_reg__
  450. 439 00f0 8201 movw r16,r4
  451. 440 00f2 01F4 brne .L44
  452. 441 .L39:
  453. 442 00f4 86E0 ldi r24,lo8(6)
  454. 443 00f6 8C9D mul r24,r12
  455. 444 00f8 F001 movw r30,r0
  456. 445 00fa 8D9D mul r24,r13
  457. 446 00fc F00D add r31,r0
  458. 447 00fe 1124 clr __zero_reg__
  459. 448 0100 E050 subi r30,lo8(-(ssiCmdList))
  460. 449 0102 F040 sbci r31,hi8(-(ssiCmdList))
  461. 450 0104 0480 ldd __tmp_reg__,Z+4
  462. 451 0106 F581 ldd r31,Z+5
  463. 452 0108 E02D mov r30,__tmp_reg__
  464. 453 010a B101 movw r22,r2
  465. GAS LISTING /tmp/cc6cnd5v.s page 9
  466. 454 010c C401 movw r24,r8
  467. 455 010e 1995 eicall
  468. 456 0110 00C0 rjmp .L64
  469. 457 .L67:
  470. 458 0112 1A83 std Y+2,r17
  471. 459 0114 0983 std Y+1,r16
  472. 460 0116 3701 movw r6,r14
  473. 461 .L44:
  474. 462 0118 2801 movw r4,r16
  475. 463 011a FFEF ldi r31,-1
  476. 464 011c 4F1A sub r4,r31
  477. 465 011e 5F0A sbc r5,r31
  478. 466 0120 F801 movw r30,r16
  479. 467 0122 8081 ld r24,Z
  480. 468 0124 082E mov __tmp_reg__,r24
  481. 469 0126 000C lsl r0
  482. 470 0128 990B sbc r25,r25
  483. 471 012a 0E94 0000 call isalpha
  484. 472 012e 892B or r24,r25
  485. 473 0130 01F4 brne .L42
  486. 474 0132 E618 sub r14,r6
  487. 475 0134 F708 sbc r15,r7
  488. 476 0136 FC82 std Y+4,r15
  489. 477 0138 EB82 std Y+3,r14
  490. 478 013a 00C0 rjmp .L43
  491. 479 .L46:
  492. 480 013c 81E0 ldi r24,1
  493. 481 013e 681A sub r6,r24
  494. 482 0140 7108 sbc r7,__zero_reg__
  495. 483 0142 8901 movw r16,r18
  496. 484 0144 01F0 breq .L39
  497. 485 .L43:
  498. 486 0146 9801 movw r18,r16
  499. 487 0148 2F5F subi r18,-1
  500. 488 014a 3F4F sbci r19,-1
  501. 489 014c F801 movw r30,r16
  502. 490 014e 8081 ld r24,Z
  503. 491 0150 8D33 cpi r24,lo8(61)
  504. 492 0152 01F4 brne .L46
  505. 493 0154 00C0 rjmp .L47
  506. 494 .L70:
  507. 495 0156 0F5F subi r16,-1
  508. 496 0158 1F4F sbci r17,-1
  509. 497 015a 8081 ld r24,Z
  510. 498 015c A301 movw r20,r6
  511. 499 015e 4150 subi r20,1
  512. 500 0160 5109 sbc r21,__zero_reg__
  513. 501 0162 8232 cpi r24,lo8(34)
  514. 502 0164 01F0 breq .L69
  515. 503 0166 3A01 movw r6,r20
  516. 504 .L47:
  517. 505 0168 F801 movw r30,r16
  518. 506 016a 6114 cp r6,__zero_reg__
  519. 507 016c 7104 cpc r7,__zero_reg__
  520. 508 016e 01F4 brne .L70
  521. 509 0170 00C0 rjmp .L39
  522. 510 .L69:
  523. GAS LISTING /tmp/cc6cnd5v.s page 10
  524. 511 0172 3196 adiw r30,1
  525. 512 0174 FE83 std Y+6,r31
  526. 513 0176 ED83 std Y+5,r30
  527. 514 0178 CA01 movw r24,r20
  528. 515 .L52:
  529. 516 017a 0097 sbiw r24,0
  530. 517 017c 01F4 brne .+2
  531. 518 017e 00C0 rjmp .L39
  532. 519 0180 2191 ld r18,Z+
  533. 520 0182 2232 cpi r18,lo8(34)
  534. 521 0184 01F4 brne .L50
  535. 522 0186 3A01 movw r6,r20
  536. 523 0188 681A sub r6,r24
  537. 524 018a 790A sbc r7,r25
  538. 525 018c 7886 std Y+8,r7
  539. 526 018e 6F82 std Y+7,r6
  540. 527 0190 00C0 rjmp .L39
  541. 528 .L50:
  542. 529 0192 0197 sbiw r24,1
  543. 530 0194 00C0 rjmp .L52
  544. 531 .L64:
  545. 532 0196 C501 movw r24,r10
  546. 533 /* epilogue start */
  547. 534 0198 2896 adiw r28,8
  548. 535 019a 0FB6 in __tmp_reg__,__SREG__
  549. 536 019c F894 cli
  550. 537 019e DEBF out __SP_H__,r29
  551. 538 01a0 0FBE out __SREG__,__tmp_reg__
  552. 539 01a2 CDBF out __SP_L__,r28
  553. 540 01a4 DF91 pop r29
  554. 541 01a6 CF91 pop r28
  555. 542 01a8 1F91 pop r17
  556. 543 01aa 0F91 pop r16
  557. 544 01ac FF90 pop r15
  558. 545 01ae EF90 pop r14
  559. 546 01b0 DF90 pop r13
  560. 547 01b2 CF90 pop r12
  561. 548 01b4 BF90 pop r11
  562. 549 01b6 AF90 pop r10
  563. 550 01b8 9F90 pop r9
  564. 551 01ba 8F90 pop r8
  565. 552 01bc 7F90 pop r7
  566. 553 01be 6F90 pop r6
  567. 554 01c0 5F90 pop r5
  568. 555 01c2 4F90 pop r4
  569. 556 01c4 3F90 pop r3
  570. 557 01c6 2F90 pop r2
  571. 558 01c8 0895 ret
  572. 559 .size HttpSsiParse, .-HttpSsiParse
  573. 560 .section .rodata.str1.1
  574. 561 .LC3:
  575. 562 0013 3C21 2D2D .string "<!--#"
  576. 562 2300
  577. 563 .LC4:
  578. 564 0019 2D2D 3E00 .string "-->"
  579. 565 .section .text.HttpSsiProcessFile,"ax",@progbits
  580. 566 .global HttpSsiProcessFile
  581. GAS LISTING /tmp/cc6cnd5v.s page 11
  582. 567 .type HttpSsiProcessFile, @function
  583. 568 HttpSsiProcessFile:
  584. 569 0000 4F92 push r4
  585. 570 0002 5F92 push r5
  586. 571 0004 6F92 push r6
  587. 572 0006 7F92 push r7
  588. 573 0008 8F92 push r8
  589. 574 000a 9F92 push r9
  590. 575 000c AF92 push r10
  591. 576 000e BF92 push r11
  592. 577 0010 CF92 push r12
  593. 578 0012 DF92 push r13
  594. 579 0014 EF92 push r14
  595. 580 0016 FF92 push r15
  596. 581 0018 0F93 push r16
  597. 582 001a 1F93 push r17
  598. 583 001c CF93 push r28
  599. 584 001e DF93 push r29
  600. 585 /* prologue: function */
  601. 586 /* frame size = 0 */
  602. 587 /* stack size = 16 */
  603. 588 .L__stack_usage = 16
  604. 589 0020 5C01 movw r10,r24
  605. 590 0022 3B01 movw r6,r22
  606. 591 0024 CB01 movw r24,r22
  607. 592 0026 0E94 0000 call _filelength
  608. 593 002a 643B cpi r22,-76
  609. 594 002c 25E0 ldi r18,5
  610. 595 002e 7207 cpc r23,r18
  611. 596 0030 8105 cpc r24,__zero_reg__
  612. 597 0032 9105 cpc r25,__zero_reg__
  613. 598 0034 04F4 brge .L84
  614. 599 0036 2B01 movw r4,r22
  615. 600 0038 00C0 rjmp .L72
  616. 601 .L84:
  617. 602 003a 94EB ldi r25,lo8(-76)
  618. 603 003c 492E mov r4,r25
  619. 604 003e 95E0 ldi r25,lo8(5)
  620. 605 0040 592E mov r5,r25
  621. 606 .L72:
  622. 607 0042 C201 movw r24,r4
  623. 608 0044 0196 adiw r24,1
  624. 609 0046 0E94 0000 call malloc
  625. 610 004a 6C01 movw r12,r24
  626. 611 004c C0E0 ldi r28,0
  627. 612 004e D0E0 ldi r29,0
  628. 613 0050 00E0 ldi r16,0
  629. 614 0052 10E0 ldi r17,0
  630. 615 .L73:
  631. 616 0054 2097 sbiw r28,0
  632. 617 0056 01F4 brne .L74
  633. 618 0058 A201 movw r20,r4
  634. 619 005a B601 movw r22,r12
  635. 620 005c C301 movw r24,r6
  636. 621 005e 0E94 0000 call _read
  637. 622 0062 EC01 movw r28,r24
  638. 623 0064 1816 cp __zero_reg__,r24
  639. GAS LISTING /tmp/cc6cnd5v.s page 12
  640. 624 0066 1906 cpc __zero_reg__,r25
  641. 625 0068 04F0 brlt .+2
  642. 626 006a 00C0 rjmp .L75
  643. 627 006c F601 movw r30,r12
  644. 628 006e E80F add r30,r24
  645. 629 0070 F91F adc r31,r25
  646. 630 0072 1082 st Z,__zero_reg__
  647. 631 0074 8601 movw r16,r12
  648. 632 .L74:
  649. 633 0076 60E0 ldi r22,lo8(.LC3)
  650. 634 0078 70E0 ldi r23,hi8(.LC3)
  651. 635 007a C801 movw r24,r16
  652. 636 007c 0E94 0000 call strstr
  653. 637 0080 7C01 movw r14,r24
  654. 638 0082 0097 sbiw r24,0
  655. 639 0084 01F4 brne .+2
  656. 640 0086 00C0 rjmp .L76
  657. 641 0088 4C01 movw r8,r24
  658. 642 008a 801A sub r8,r16
  659. 643 008c 910A sbc r9,r17
  660. 644 008e 01F0 breq .L77
  661. 645 0090 F501 movw r30,r10
  662. 646 0092 2081 ld r18,Z
  663. 647 0094 3181 ldd r19,Z+1
  664. 648 0096 A401 movw r20,r8
  665. 649 0098 61E0 ldi r22,lo8(1)
  666. 650 009a 70E0 ldi r23,0
  667. 651 009c C801 movw r24,r16
  668. 652 009e 0E94 0000 call fwrite
  669. 653 00a2 C819 sub r28,r8
  670. 654 00a4 D909 sbc r29,r9
  671. 655 00a6 8701 movw r16,r14
  672. 656 .L77:
  673. 657 00a8 60E0 ldi r22,lo8(.LC4)
  674. 658 00aa 70E0 ldi r23,hi8(.LC4)
  675. 659 00ac C701 movw r24,r14
  676. 660 00ae 0596 adiw r24,5
  677. 661 00b0 0E94 0000 call strstr
  678. 662 00b4 0097 sbiw r24,0
  679. 663 00b6 01F0 breq .L78
  680. 664 00b8 AC01 movw r20,r24
  681. 665 00ba 4E19 sub r20,r14
  682. 666 00bc 5F09 sbc r21,r15
  683. 667 00be 7A01 movw r14,r20
  684. 668 00c0 F3E0 ldi r31,3
  685. 669 00c2 EF0E add r14,r31
  686. 670 00c4 F11C adc r15,__zero_reg__
  687. 671 00c6 B801 movw r22,r16
  688. 672 00c8 6B5F subi r22,-5
  689. 673 00ca 7F4F sbci r23,-1
  690. 674 00cc C501 movw r24,r10
  691. 675 00ce 0E94 0000 call HttpSsiParse
  692. 676 00d2 892B or r24,r25
  693. 677 00d4 01F0 breq .L79
  694. 678 00d6 F501 movw r30,r10
  695. 679 00d8 2081 ld r18,Z
  696. 680 00da 3181 ldd r19,Z+1
  697. GAS LISTING /tmp/cc6cnd5v.s page 13
  698. 681 00dc A701 movw r20,r14
  699. 682 00de 61E0 ldi r22,lo8(1)
  700. 683 00e0 70E0 ldi r23,0
  701. 684 00e2 C801 movw r24,r16
  702. 685 00e4 0E94 0000 call fwrite
  703. 686 .L79:
  704. 687 00e8 CE19 sub r28,r14
  705. 688 00ea DF09 sbc r29,r15
  706. 689 00ec 0E0D add r16,r14
  707. 690 00ee 1F1D adc r17,r15
  708. 691 00f0 00C0 rjmp .L73
  709. 692 .L78:
  710. 693 00f2 CE14 cp r12,r14
  711. 694 00f4 DF04 cpc r13,r15
  712. 695 00f6 01F0 breq .L82
  713. 696 00f8 F701 movw r30,r14
  714. 697 0:
  715. 698 00fa 0190 ld __tmp_reg__,Z+
  716. 699 00fc 0020 tst __tmp_reg__
  717. 700 00fe 01F4 brne 0b
  718. 701 0100 3197 sbiw r30,1
  719. 702 0102 A701 movw r20,r14
  720. 703 0104 4E1B sub r20,r30
  721. 704 0106 5F0B sbc r21,r31
  722. 705 0108 60E0 ldi r22,0
  723. 706 010a 70E0 ldi r23,0
  724. 707 010c 21E0 ldi r18,lo8(1)
  725. 708 010e 30E0 ldi r19,0
  726. 709 0110 C301 movw r24,r6
  727. 710 0112 0E94 0000 call _seek
  728. 711 0116 00C0 rjmp .L91
  729. 712 .L76:
  730. 713 0118 0C15 cp r16,r12
  731. 714 011a 1D05 cpc r17,r13
  732. 715 011c 01F0 breq .L82
  733. 716 011e 7E01 movw r14,r28
  734. 717 0120 C530 cpi r28,5
  735. 718 0122 D105 cpc r29,__zero_reg__
  736. 719 0124 04F0 brlt .L83
  737. 720 0126 84E0 ldi r24,lo8(4)
  738. 721 0128 E82E mov r14,r24
  739. 722 012a F12C mov r15,__zero_reg__
  740. 723 .L83:
  741. 724 012c 4427 clr r20
  742. 725 012e 5527 clr r21
  743. 726 0130 4E19 sub r20,r14
  744. 727 0132 5F09 sbc r21,r15
  745. 728 0134 052E mov __tmp_reg__,r21
  746. 729 0136 000C lsl r0
  747. 730 0138 660B sbc r22,r22
  748. 731 013a 770B sbc r23,r23
  749. 732 013c 21E0 ldi r18,lo8(1)
  750. 733 013e 30E0 ldi r19,0
  751. 734 0140 C301 movw r24,r6
  752. 735 0142 0E94 0000 call _seek
  753. 736 0146 CE19 sub r28,r14
  754. 737 0148 DF09 sbc r29,r15
  755. GAS LISTING /tmp/cc6cnd5v.s page 14
  756. 738 .L82:
  757. 739 014a F501 movw r30,r10
  758. 740 014c 2081 ld r18,Z
  759. 741 014e 3181 ldd r19,Z+1
  760. 742 0150 AE01 movw r20,r28
  761. 743 0152 61E0 ldi r22,lo8(1)
  762. 744 0154 70E0 ldi r23,0
  763. 745 0156 C801 movw r24,r16
  764. 746 0158 0E94 0000 call fwrite
  765. 747 .L91:
  766. 748 015c C0E0 ldi r28,0
  767. 749 015e D0E0 ldi r29,0
  768. 750 0160 00C0 rjmp .L73
  769. 751 .L75:
  770. 752 0162 F501 movw r30,r10
  771. 753 0164 8081 ld r24,Z
  772. 754 0166 9181 ldd r25,Z+1
  773. 755 0168 0E94 0000 call fflush
  774. 756 016c C601 movw r24,r12
  775. 757 016e 0E94 0000 call free
  776. 758 0172 80E0 ldi r24,0
  777. 759 0174 90E0 ldi r25,0
  778. 760 /* epilogue start */
  779. 761 0176 DF91 pop r29
  780. 762 0178 CF91 pop r28
  781. 763 017a 1F91 pop r17
  782. 764 017c 0F91 pop r16
  783. 765 017e FF90 pop r15
  784. 766 0180 EF90 pop r14
  785. 767 0182 DF90 pop r13
  786. 768 0184 CF90 pop r12
  787. 769 0186 BF90 pop r11
  788. 770 0188 AF90 pop r10
  789. 771 018a 9F90 pop r9
  790. 772 018c 8F90 pop r8
  791. 773 018e 7F90 pop r7
  792. 774 0190 6F90 pop r6
  793. 775 0192 5F90 pop r5
  794. 776 0194 4F90 pop r4
  795. 777 0196 0895 ret
  796. 778 .size HttpSsiProcessFile, .-HttpSsiProcessFile
  797. 779 .section .rodata.str1.1
  798. 780 .LC5:
  799. 781 001d 5552 4F4D .string "UROM:"
  800. 781 3A00
  801. 782 .LC6:
  802. 783 0023 6669 6C65 .string "file"
  803. 783 00
  804. 784 .LC7:
  805. 785 0028 7669 7274 .string "virtual"
  806. 785 7561 6C00
  807. 786 .section .text.HttpSsiIncludeHandler,"ax",@progbits
  808. 787 .global HttpSsiIncludeHandler
  809. 788 .type HttpSsiIncludeHandler, @function
  810. 789 HttpSsiIncludeHandler:
  811. 790 0000 EF92 push r14
  812. 791 0002 FF92 push r15
  813. GAS LISTING /tmp/cc6cnd5v.s page 15
  814. 792 0004 0F93 push r16
  815. 793 0006 1F93 push r17
  816. 794 0008 CF93 push r28
  817. 795 000a DF93 push r29
  818. 796 /* prologue: function */
  819. 797 /* frame size = 0 */
  820. 798 /* stack size = 6 */
  821. 799 .L__stack_usage = 6
  822. 800 000c 7C01 movw r14,r24
  823. 801 000e EB01 movw r28,r22
  824. 802 0010 0E81 ldd r16,Y+6
  825. 803 0012 1F81 ldd r17,Y+7
  826. 804 0014 0115 cp r16,__zero_reg__
  827. 805 0016 1105 cpc r17,__zero_reg__
  828. 806 0018 01F4 brne .+2
  829. 807 001a 00C0 rjmp .L105
  830. 808 001c 8A81 ldd r24,Y+2
  831. 809 001e 9B81 ldd r25,Y+3
  832. 810 0020 8430 cpi r24,4
  833. 811 0022 9105 cpc r25,__zero_reg__
  834. 812 0024 01F4 brne .L95
  835. 813 0026 44E0 ldi r20,lo8(4)
  836. 814 0028 50E0 ldi r21,0
  837. 815 002a 60E0 ldi r22,lo8(.LC6)
  838. 816 002c 70E0 ldi r23,hi8(.LC6)
  839. 817 002e 8881 ld r24,Y
  840. 818 0030 9981 ldd r25,Y+1
  841. 819 0032 0E94 0000 call memcmp
  842. 820 0036 892B or r24,r25
  843. 821 0038 01F4 brne .L105
  844. 822 003a 6C81 ldd r22,Y+4
  845. 823 003c 7D81 ldd r23,Y+5
  846. 824 003e A801 movw r20,r16
  847. 825 0040 80E0 ldi r24,lo8(.LC1)
  848. 826 0042 90E0 ldi r25,hi8(.LC1)
  849. 827 0044 00C0 rjmp .L104
  850. 828 .L95:
  851. 829 0046 0797 sbiw r24,7
  852. 830 0048 01F4 brne .L105
  853. 831 004a 47E0 ldi r20,lo8(7)
  854. 832 004c 50E0 ldi r21,0
  855. 833 004e 60E0 ldi r22,lo8(.LC7)
  856. 834 0050 70E0 ldi r23,hi8(.LC7)
  857. 835 0052 8881 ld r24,Y
  858. 836 0054 9981 ldd r25,Y+1
  859. 837 0056 0E94 0000 call memcmp
  860. 838 005a 892B or r24,r25
  861. 839 005c 01F4 brne .L105
  862. 840 005e 6C81 ldd r22,Y+4
  863. 841 0060 7D81 ldd r23,Y+5
  864. 842 0062 8091 0000 lds r24,http_root_path
  865. 843 0066 9091 0000 lds r25,http_root_path+1
  866. 844 006a 0097 sbiw r24,0
  867. 845 006c 01F4 brne .L98
  868. 846 006e 80E0 ldi r24,lo8(.LC5)
  869. 847 0070 90E0 ldi r25,hi8(.LC5)
  870. 848 .L98:
  871. GAS LISTING /tmp/cc6cnd5v.s page 16
  872. 849 0072 A801 movw r20,r16
  873. 850 .L104:
  874. 851 0074 0E94 0000 call AllocConcatStringLen
  875. 852 0078 EC01 movw r28,r24
  876. 853 007a 0097 sbiw r24,0
  877. 854 007c 01F0 breq .L105
  878. 855 007e 60E0 ldi r22,0
  879. 856 0080 70E8 ldi r23,lo8(-128)
  880. 857 0082 0E94 0000 call _open
  881. 858 0086 8C01 movw r16,r24
  882. 859 0088 0F3F cpi r16,-1
  883. 860 008a 8FEF ldi r24,-1
  884. 861 008c 1807 cpc r17,r24
  885. 862 008e 01F0 breq .L99
  886. 863 0090 B801 movw r22,r16
  887. 864 0092 C701 movw r24,r14
  888. 865 0094 0E94 0000 call HttpSsiProcessFile
  889. 866 0098 C801 movw r24,r16
  890. 867 009a 0E94 0000 call _close
  891. 868 009e CE01 movw r24,r28
  892. 869 00a0 0E94 0000 call free
  893. 870 00a4 80E0 ldi r24,0
  894. 871 00a6 90E0 ldi r25,0
  895. 872 00a8 00C0 rjmp .L94
  896. 873 .L99:
  897. 874 00aa CE01 movw r24,r28
  898. 875 00ac 0E94 0000 call free
  899. 876 .L105:
  900. 877 00b0 8FEF ldi r24,lo8(-1)
  901. 878 00b2 9FEF ldi r25,lo8(-1)
  902. 879 .L94:
  903. 880 /* epilogue start */
  904. 881 00b4 DF91 pop r29
  905. 882 00b6 CF91 pop r28
  906. 883 00b8 1F91 pop r17
  907. 884 00ba 0F91 pop r16
  908. 885 00bc FF90 pop r15
  909. 886 00be EF90 pop r14
  910. 887 00c0 0895 ret
  911. 888 .size HttpSsiIncludeHandler, .-HttpSsiIncludeHandler
  912. 889 .section .rodata.str1.1
  913. 890 .LC8:
  914. 891 0030 4361 6368 .string "Cache-Control: no-cache, must-revalidate\r\n"
  915. 891 652D 436F
  916. 891 6E74 726F
  917. 891 6C3A 206E
  918. 891 6F2D 6361
  919. 892 .LC9:
  920. 893 005b 2047 4D54 .string " GMT\r\n"
  921. 893 0D0A 00
  922. 894 .LC10:
  923. 895 0062 3A20 00 .string ": "
  924. 896 .section .text.HttpSsiHandler,"ax",@progbits
  925. 897 .global HttpSsiHandler
  926. 898 .type HttpSsiHandler, @function
  927. 899 HttpSsiHandler:
  928. 900 0000 CF92 push r12
  929. GAS LISTING /tmp/cc6cnd5v.s page 17
  930. 901 0002 DF92 push r13
  931. 902 0004 EF92 push r14
  932. 903 0006 FF92 push r15
  933. 904 0008 0F93 push r16
  934. 905 000a 1F93 push r17
  935. 906 000c CF93 push r28
  936. 907 000e DF93 push r29
  937. 908 0010 00D0 rcall .
  938. 909 0012 1F92 push __zero_reg__
  939. 910 0014 CDB7 in r28,__SP_L__
  940. 911 0016 DEB7 in r29,__SP_H__
  941. 912 /* prologue: function */
  942. 913 /* frame size = 4 */
  943. 914 /* stack size = 12 */
  944. 915 .L__stack_usage = 12
  945. 916 0018 7C01 movw r14,r24
  946. 917 001a 8B01 movw r16,r22
  947. 918 001c CA01 movw r24,r20
  948. 919 001e 60E0 ldi r22,0
  949. 920 0020 70E8 ldi r23,lo8(-128)
  950. 921 0022 0E94 0000 call _open
  951. 922 0026 6C01 movw r12,r24
  952. 923 0028 8FEF ldi r24,-1
  953. 924 002a C816 cp r12,r24
  954. 925 002c D806 cpc r13,r24
  955. 926 002e 01F4 brne .L107
  956. 927 0030 64E9 ldi r22,lo8(-108)
  957. 928 0032 71E0 ldi r23,lo8(1)
  958. 929 0034 C701 movw r24,r14
  959. 930 0036 0E94 0000 call HttpSendError
  960. 931 003a 00C0 rjmp .L108
  961. 932 .L107:
  962. 933 003c 68EC ldi r22,lo8(-56)
  963. 934 003e 70E0 ldi r23,0
  964. 935 0040 C701 movw r24,r14
  965. 936 0042 0E94 0000 call HttpSendHeaderTop
  966. 937 0046 F701 movw r30,r14
  967. 938 0048 6081 ld r22,Z
  968. 939 004a 7181 ldd r23,Z+1
  969. 940 004c 80E0 ldi r24,lo8(.LC8)
  970. 941 004e 90E0 ldi r25,hi8(.LC8)
  971. 942 0050 0E94 0000 call fputs
  972. 943 0054 80E0 ldi r24,0
  973. 944 0056 90E0 ldi r25,0
  974. 945 0058 0E94 0000 call time
  975. 946 005c 6983 std Y+1,r22
  976. 947 005e 7A83 std Y+2,r23
  977. 948 0060 8B83 std Y+3,r24
  978. 949 0062 9C83 std Y+4,r25
  979. 950 0064 CE01 movw r24,r28
  980. 951 0066 0196 adiw r24,1
  981. 952 0068 0E94 0000 call gmtime
  982. 953 006c 0E94 0000 call Rfc1123TimeString
  983. 954 0070 1F92 push __zero_reg__
  984. 955 0072 1F92 push __zero_reg__
  985. 956 0074 20E0 ldi r18,lo8(.LC9)
  986. 957 0076 30E0 ldi r19,hi8(.LC9)
  987. GAS LISTING /tmp/cc6cnd5v.s page 18
  988. 958 0078 3F93 push r19
  989. 959 007a 2F93 push r18
  990. 960 007c 9F93 push r25
  991. 961 007e 8F93 push r24
  992. 962 0080 80E0 ldi r24,lo8(.LC10)
  993. 963 0082 90E0 ldi r25,hi8(.LC10)
  994. 964 0084 9F93 push r25
  995. 965 0086 8F93 push r24
  996. 966 0088 80E0 ldi r24,lo8(ct_Expires)
  997. 967 008a 90E0 ldi r25,hi8(ct_Expires)
  998. 968 008c 9F93 push r25
  999. 969 008e 8F93 push r24
  1000. 970 0090 F701 movw r30,r14
  1001. 971 0092 8181 ldd r24,Z+1
  1002. 972 0094 8F93 push r24
  1003. 973 0096 8081 ld r24,Z
  1004. 974 0098 8F93 push r24
  1005. 975 009a 0E94 0000 call s_vputs
  1006. 976 009e F801 movw r30,r16
  1007. 977 00a0 4681 ldd r20,Z+6
  1008. 978 00a2 5781 ldd r21,Z+7
  1009. 979 00a4 0FB6 in __tmp_reg__,__SREG__
  1010. 980 00a6 F894 cli
  1011. 981 00a8 DEBF out __SP_H__,r29
  1012. 982 00aa 0FBE out __SREG__,__tmp_reg__
  1013. 983 00ac CDBF out __SP_L__,r28
  1014. 984 00ae 4115 cp r20,__zero_reg__
  1015. 985 00b0 5105 cpc r21,__zero_reg__
  1016. 986 00b2 01F4 brne .L109
  1017. 987 00b4 A801 movw r20,r16
  1018. 988 00b6 445F subi r20,-12
  1019. 989 00b8 5F4F sbci r21,-1
  1020. 990 .L109:
  1021. 991 00ba F801 movw r30,r16
  1022. 992 00bc 6481 ldd r22,Z+4
  1023. 993 00be 7581 ldd r23,Z+5
  1024. 994 00c0 0FEF ldi r16,lo8(-1)
  1025. 995 00c2 1FEF ldi r17,lo8(-1)
  1026. 996 00c4 9801 movw r18,r16
  1027. 997 00c6 C701 movw r24,r14
  1028. 998 00c8 0E94 0000 call HttpSendHeaderBottom
  1029. 999 00cc B601 movw r22,r12
  1030. 1000 00ce C701 movw r24,r14
  1031. 1001 00d0 0E94 0000 call HttpSsiProcessFile
  1032. 1002 00d4 C601 movw r24,r12
  1033. 1003 00d6 0E94 0000 call _close
  1034. 1004 .L108:
  1035. 1005 00da 80E0 ldi r24,0
  1036. 1006 00dc 90E0 ldi r25,0
  1037. 1007 /* epilogue start */
  1038. 1008 00de 0F90 pop __tmp_reg__
  1039. 1009 00e0 0F90 pop __tmp_reg__
  1040. 1010 00e2 0F90 pop __tmp_reg__
  1041. 1011 00e4 0F90 pop __tmp_reg__
  1042. 1012 00e6 DF91 pop r29
  1043. 1013 00e8 CF91 pop r28
  1044. 1014 00ea 1F91 pop r17
  1045. GAS LISTING /tmp/cc6cnd5v.s page 19
  1046. 1015 00ec 0F91 pop r16
  1047. 1016 00ee FF90 pop r15
  1048. 1017 00f0 EF90 pop r14
  1049. 1018 00f2 DF90 pop r13
  1050. 1019 00f4 CF90 pop r12
  1051. 1020 00f6 0895 ret
  1052. 1021 .size HttpSsiHandler, .-HttpSsiHandler
  1053. 1022 .section .text.HttpRegisterSsiVarHandler,"ax",@progbits
  1054. 1023 .global HttpRegisterSsiVarHandler
  1055. 1024 .type HttpRegisterSsiVarHandler, @function
  1056. 1025 HttpRegisterSsiVarHandler:
  1057. 1026 /* prologue: function */
  1058. 1027 /* frame size = 0 */
  1059. 1028 /* stack size = 0 */
  1060. 1029 .L__stack_usage = 0
  1061. 1030 0000 2091 0000 lds r18,ssivar_handler
  1062. 1031 0004 3091 0000 lds r19,ssivar_handler+1
  1063. 1032 0008 9093 0000 sts ssivar_handler+1,r25
  1064. 1033 000c 8093 0000 sts ssivar_handler,r24
  1065. 1034 0010 C901 movw r24,r18
  1066. 1035 0012 0895 ret
  1067. 1036 .size HttpRegisterSsiVarHandler, .-HttpRegisterSsiVarHandler
  1068. 1037 .local varname.2783
  1069. 1038 .comm varname.2783,2,1
  1070. 1039 .global ssiCmdList
  1071. 1040 .section .rodata.str1.1
  1072. 1041 .LC11:
  1073. 1042 0065 696E 636C .string "include"
  1074. 1042 7564 6500
  1075. 1043 .LC12:
  1076. 1044 006d 6578 6563 .string "exec"
  1077. 1044 00
  1078. 1045 .LC13:
  1079. 1046 0072 6563 686F .string "echo"
  1080. 1046 00
  1081. 1047 .data
  1082. 1048 .type ssiCmdList, @object
  1083. 1049 .size ssiCmdList, 18
  1084. 1050 ssiCmdList:
  1085. 1051 0000 0000 .word .LC11
  1086. 1052 0002 0700 .word 7
  1087. 1053 0004 0000 .word gs(HttpSsiIncludeHandler)
  1088. 1054 0006 0000 .word .LC12
  1089. 1055 0008 0400 .word 4
  1090. 1056 000a 0000 .word gs(HttpSsiExecHandler)
  1091. 1057 000c 0000 .word .LC13
  1092. 1058 000e 0400 .word 4
  1093. 1059 0010 0000 .word gs(HttpSsiEchoHandler)
  1094. 1060 .type ssivar_handler, @object
  1095. 1061 .size ssivar_handler, 2
  1096. 1062 ssivar_handler:
  1097. 1063 0012 0000 .word gs(HttpSsiVarHandler)
  1098. 1064 .ident "GCC: (GNU) 5.3.0"
  1099. 1065 .global __do_copy_data
  1100. 1066 .global __do_clear_bss
  1101. GAS LISTING /tmp/cc6cnd5v.s page 20
  1102. DEFINED SYMBOLS
  1103. *ABS*:0000000000000000 mod_ssi.c
  1104. /tmp/cc6cnd5v.s:2 *ABS*:000000000000003e __SP_H__
  1105. /tmp/cc6cnd5v.s:3 *ABS*:000000000000003d __SP_L__
  1106. /tmp/cc6cnd5v.s:4 *ABS*:000000000000003f __SREG__
  1107. /tmp/cc6cnd5v.s:5 *ABS*:000000000000003b __RAMPZ__
  1108. /tmp/cc6cnd5v.s:6 *ABS*:0000000000000000 __tmp_reg__
  1109. /tmp/cc6cnd5v.s:7 *ABS*:0000000000000001 __zero_reg__
  1110. /tmp/cc6cnd5v.s:10 .text.HttpSsiVarHandler:0000000000000000 HttpSsiVarHandler
  1111. /tmp/cc6cnd5v.s:28 .text.HttpSsiExecHandler:0000000000000000 HttpSsiExecHandler
  1112. /tmp/cc6cnd5v.s:246 .text.HttpSsiEchoHandler:0000000000000000 HttpSsiEchoHandler
  1113. .bss:0000000000000000 varname.2783
  1114. /tmp/cc6cnd5v.s:1062 .data:0000000000000012 ssivar_handler
  1115. /tmp/cc6cnd5v.s:309 .text.HttpSsiParse:0000000000000000 HttpSsiParse
  1116. /tmp/cc6cnd5v.s:1050 .data:0000000000000000 ssiCmdList
  1117. /tmp/cc6cnd5v.s:568 .text.HttpSsiProcessFile:0000000000000000 HttpSsiProcessFile
  1118. /tmp/cc6cnd5v.s:789 .text.HttpSsiIncludeHandler:0000000000000000 HttpSsiIncludeHandler
  1119. /tmp/cc6cnd5v.s:899 .text.HttpSsiHandler:0000000000000000 HttpSsiHandler
  1120. /tmp/cc6cnd5v.s:1025 .text.HttpRegisterSsiVarHandler:0000000000000000 HttpRegisterSsiVarHandler
  1121. UNDEFINED SYMBOLS
  1122. memcmp
  1123. AllocConcatStringLen
  1124. strchr
  1125. malloc
  1126. strstr
  1127. strcpy
  1128. strcat
  1129. HttpCgiFunctionHandler
  1130. free
  1131. realloc
  1132. memcpy
  1133. fputs
  1134. isspace
  1135. strncasecmp
  1136. isalpha
  1137. _filelength
  1138. _read
  1139. fwrite
  1140. _seek
  1141. fflush
  1142. http_root_path
  1143. _open
  1144. _close
  1145. HttpSendError
  1146. HttpSendHeaderTop
  1147. time
  1148. gmtime
  1149. Rfc1123TimeString
  1150. ct_Expires
  1151. s_vputs
  1152. HttpSendHeaderBottom
  1153. __do_copy_data
  1154. __do_clear_bss