cgi.lst 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. GAS LISTING /tmp/cczovDNO.s page 1
  2. 1 .file "cgi.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.NutRegisterCgiBinPath,"ax",@progbits
  10. 9 .global NutRegisterCgiBinPath
  11. 10 .type NutRegisterCgiBinPath, @function
  12. 11 NutRegisterCgiBinPath:
  13. 12 0000 CF93 push r28
  14. 13 0002 DF93 push r29
  15. 14 /* prologue: function */
  16. 15 /* frame size = 0 */
  17. 16 /* stack size = 2 */
  18. 17 .L__stack_usage = 2
  19. 18 0004 EC01 movw r28,r24
  20. 19 0006 8091 0000 lds r24,cgiBinPath
  21. 20 000a 9091 0000 lds r25,cgiBinPath+1
  22. 21 000e 0097 sbiw r24,0
  23. 22 0010 01F0 breq .L2
  24. 23 0012 0E94 0000 call free
  25. 24 .L2:
  26. 25 0016 CE01 movw r24,r28
  27. 26 0018 0E94 0000 call strdup
  28. 27 001c 9093 0000 sts cgiBinPath+1,r25
  29. 28 0020 8093 0000 sts cgiBinPath,r24
  30. 29 /* epilogue start */
  31. 30 0024 DF91 pop r29
  32. 31 0026 CF91 pop r28
  33. 32 0028 0895 ret
  34. 33 .size NutRegisterCgiBinPath, .-NutRegisterCgiBinPath
  35. 34 .section .text.NutRegisterCgi,"ax",@progbits
  36. 35 .global NutRegisterCgi
  37. 36 .type NutRegisterCgi, @function
  38. 37 NutRegisterCgi:
  39. 38 0000 EF92 push r14
  40. 39 0002 FF92 push r15
  41. 40 0004 0F93 push r16
  42. 41 0006 1F93 push r17
  43. 42 0008 CF93 push r28
  44. 43 000a DF93 push r29
  45. 44 /* prologue: function */
  46. 45 /* frame size = 0 */
  47. 46 /* stack size = 6 */
  48. 47 .L__stack_usage = 6
  49. 48 000c 8C01 movw r16,r24
  50. 49 000e 7B01 movw r14,r22
  51. 50 0010 C091 0000 lds r28,cgiFunctionList
  52. 51 0014 D091 0000 lds r29,cgiFunctionList+1
  53. 52 .L8:
  54. 53 0018 2097 sbiw r28,0
  55. 54 001a 01F0 breq .L21
  56. 55 001c 6A81 ldd r22,Y+2
  57. 56 001e 7B81 ldd r23,Y+3
  58. 57 0020 C801 movw r24,r16
  59. GAS LISTING /tmp/cczovDNO.s page 2
  60. 58 0022 0E94 0000 call strcmp
  61. 59 0026 892B or r24,r25
  62. 60 0028 01F4 brne .L9
  63. 61 .L13:
  64. 62 002a 8FEF ldi r24,lo8(-1)
  65. 63 002c 9FEF ldi r25,lo8(-1)
  66. 64 002e 00C0 rjmp .L18
  67. 65 .L9:
  68. 66 0030 0990 ld __tmp_reg__,Y+
  69. 67 0032 D881 ld r29,Y
  70. 68 0034 C02D mov r28,__tmp_reg__
  71. 69 0036 00C0 rjmp .L8
  72. 70 .L21:
  73. 71 0038 86E0 ldi r24,lo8(6)
  74. 72 003a 90E0 ldi r25,0
  75. 73 003c 0E94 0000 call malloc
  76. 74 0040 EC01 movw r28,r24
  77. 75 0042 892B or r24,r25
  78. 76 0044 01F0 breq .L13
  79. 77 0046 8091 0000 lds r24,cgiFunctionList
  80. 78 004a 9091 0000 lds r25,cgiFunctionList+1
  81. 79 004e 9983 std Y+1,r25
  82. 80 0050 8883 st Y,r24
  83. 81 0052 C801 movw r24,r16
  84. 82 0054 0E94 0000 call strdup
  85. 83 0058 9B83 std Y+3,r25
  86. 84 005a 8A83 std Y+2,r24
  87. 85 005c FD82 std Y+5,r15
  88. 86 005e EC82 std Y+4,r14
  89. 87 0060 D093 0000 sts cgiFunctionList+1,r29
  90. 88 0064 C093 0000 sts cgiFunctionList,r28
  91. 89 0068 80E0 ldi r24,0
  92. 90 006a 90E0 ldi r25,0
  93. 91 .L18:
  94. 92 /* epilogue start */
  95. 93 006c DF91 pop r29
  96. 94 006e CF91 pop r28
  97. 95 0070 1F91 pop r17
  98. 96 0072 0F91 pop r16
  99. 97 0074 FF90 pop r15
  100. 98 0076 EF90 pop r14
  101. 99 0078 0895 ret
  102. 100 .size NutRegisterCgi, .-NutRegisterCgi
  103. 101 .section .text.NutCgiProcessRequest,"ax",@progbits
  104. 102 .global NutCgiProcessRequest
  105. 103 .type NutCgiProcessRequest, @function
  106. 104 NutCgiProcessRequest:
  107. 105 0000 CF92 push r12
  108. 106 0002 DF92 push r13
  109. 107 0004 EF92 push r14
  110. 108 0006 FF92 push r15
  111. 109 0008 0F93 push r16
  112. 110 000a 1F93 push r17
  113. 111 000c CF93 push r28
  114. 112 000e DF93 push r29
  115. 113 /* prologue: function */
  116. 114 /* frame size = 0 */
  117. GAS LISTING /tmp/cczovDNO.s page 3
  118. 115 /* stack size = 8 */
  119. 116 .L__stack_usage = 8
  120. 117 0010 7C01 movw r14,r24
  121. 118 0012 EB01 movw r28,r22
  122. 119 0014 6A01 movw r12,r20
  123. 120 0016 8881 ld r24,Y
  124. 121 0018 9981 ldd r25,Y+1
  125. 122 001a 0197 sbiw r24,1
  126. 123 001c 0297 sbiw r24,2
  127. 124 001e 00F0 brlo .L23
  128. 125 0020 45EF ldi r20,lo8(-11)
  129. 126 0022 51E0 ldi r21,lo8(1)
  130. 127 0024 00C0 rjmp .L31
  131. 128 .L23:
  132. 129 0026 0091 0000 lds r16,cgiFunctionList
  133. 130 002a 1091 0000 lds r17,cgiFunctionList+1
  134. 131 .L24:
  135. 132 002e 0115 cp r16,__zero_reg__
  136. 133 0030 1105 cpc r17,__zero_reg__
  137. 134 0032 01F0 breq .L32
  138. 135 0034 6885 ldd r22,Y+8
  139. 136 0036 7985 ldd r23,Y+9
  140. 137 0038 6C0D add r22,r12
  141. 138 003a 7D1D adc r23,r13
  142. 139 003c D801 movw r26,r16
  143. 140 003e 1296 adiw r26,2
  144. 141 0040 8D91 ld r24,X+
  145. 142 0042 9C91 ld r25,X
  146. 143 0044 1397 sbiw r26,2+1
  147. 144 0046 0E94 0000 call strcasecmp
  148. 145 004a 892B or r24,r25
  149. 146 004c 01F0 breq .L25
  150. 147 004e F801 movw r30,r16
  151. 148 0050 0081 ld r16,Z
  152. 149 0052 1181 ldd r17,Z+1
  153. 150 0054 00C0 rjmp .L24
  154. 151 .L32:
  155. 152 0056 44E9 ldi r20,lo8(-108)
  156. 153 0058 51E0 ldi r21,lo8(1)
  157. 154 .L31:
  158. 155 005a BE01 movw r22,r28
  159. 156 005c C701 movw r24,r14
  160. 157 /* epilogue start */
  161. 158 005e DF91 pop r29
  162. 159 0060 CF91 pop r28
  163. 160 0062 1F91 pop r17
  164. 161 0064 0F91 pop r16
  165. 162 0066 FF90 pop r15
  166. 163 0068 EF90 pop r14
  167. 164 006a DF90 pop r13
  168. 165 006c CF90 pop r12
  169. 166 006e 0C94 0000 jmp NutHttpSendError
  170. 167 .L25:
  171. 168 0072 D801 movw r26,r16
  172. 169 0074 1496 adiw r26,4
  173. 170 0076 ED91 ld r30,X+
  174. 171 0078 FC91 ld r31,X
  175. GAS LISTING /tmp/cczovDNO.s page 4
  176. 172 007a 1597 sbiw r26,4+1
  177. 173 007c BE01 movw r22,r28
  178. 174 007e C701 movw r24,r14
  179. 175 0080 1995 eicall
  180. 176 0082 892B or r24,r25
  181. 177 0084 01F0 breq .L33
  182. 178 0086 44EF ldi r20,lo8(-12)
  183. 179 0088 51E0 ldi r21,lo8(1)
  184. 180 008a 00C0 rjmp .L31
  185. 181 .L33:
  186. 182 /* epilogue start */
  187. 183 008c DF91 pop r29
  188. 184 008e CF91 pop r28
  189. 185 0090 1F91 pop r17
  190. 186 0092 0F91 pop r16
  191. 187 0094 FF90 pop r15
  192. 188 0096 EF90 pop r14
  193. 189 0098 DF90 pop r13
  194. 190 009a CF90 pop r12
  195. 191 009c 0895 ret
  196. 192 .size NutCgiProcessRequest, .-NutCgiProcessRequest
  197. 193 .section .rodata.str1.1,"aMS",@progbits,1
  198. 194 .LC0:
  199. 195 0000 6367 692D .string "cgi-bin/"
  200. 195 6269 6E2F
  201. 195 00
  202. 196 .section .text.NutCgiCheckRequest,"ax",@progbits
  203. 197 .global NutCgiCheckRequest
  204. 198 .type NutCgiCheckRequest, @function
  205. 199 NutCgiCheckRequest:
  206. 200 0000 CF92 push r12
  207. 201 0002 DF92 push r13
  208. 202 0004 EF92 push r14
  209. 203 0006 FF92 push r15
  210. 204 0008 0F93 push r16
  211. 205 000a 1F93 push r17
  212. 206 000c CF93 push r28
  213. 207 000e DF93 push r29
  214. 208 /* prologue: function */
  215. 209 /* frame size = 0 */
  216. 210 /* stack size = 8 */
  217. 211 .L__stack_usage = 8
  218. 212 0010 6C01 movw r12,r24
  219. 213 0012 7B01 movw r14,r22
  220. 214 0014 E091 0000 lds r30,cgiBinPath
  221. 215 0018 F091 0000 lds r31,cgiBinPath+1
  222. 216 001c 3097 sbiw r30,0
  223. 217 001e 01F4 brne .L40
  224. 218 0020 E0E0 ldi r30,lo8(.LC0)
  225. 219 0022 F0E0 ldi r31,hi8(.LC0)
  226. 220 0024 00C0 rjmp .L40
  227. 221 .L50:
  228. 222 0026 DE01 movw r26,r28
  229. 223 .L41:
  230. 224 0028 8D01 movw r16,r26
  231. 225 002a 0C1B sub r16,r28
  232. 226 002c 1D0B sbc r17,r29
  233. GAS LISTING /tmp/cczovDNO.s page 5
  234. 227 002e 8D91 ld r24,X+
  235. 228 0030 8111 cpse r24,__zero_reg__
  236. 229 0032 00C0 rjmp .L38
  237. 230 .L42:
  238. 231 0034 0115 cp r16,__zero_reg__
  239. 232 0036 1105 cpc r17,__zero_reg__
  240. 233 0038 01F4 brne .L49
  241. 234 .L40:
  242. 235 003a 8081 ld r24,Z
  243. 236 003c 8823 tst r24
  244. 237 003e 01F0 breq .L47
  245. 238 0040 EF01 movw r28,r30
  246. 239 .L37:
  247. 240 0042 FE01 movw r30,r28
  248. 241 0044 9E01 movw r18,r28
  249. 242 0046 2F5F subi r18,-1
  250. 243 0048 3F4F sbci r19,-1
  251. 244 004a 8881 ld r24,Y
  252. 245 004c 8B33 cpi r24,lo8(59)
  253. 246 004e 01F4 brne .L50
  254. 247 0050 E901 movw r28,r18
  255. 248 0052 00C0 rjmp .L37
  256. 249 .L38:
  257. 250 0054 8B33 cpi r24,lo8(59)
  258. 251 0056 01F4 brne .L41
  259. 252 0058 00C0 rjmp .L42
  260. 253 .L49:
  261. 254 005a A801 movw r20,r16
  262. 255 005c BE01 movw r22,r28
  263. 256 005e F701 movw r30,r14
  264. 257 0060 8085 ldd r24,Z+8
  265. 258 0062 9185 ldd r25,Z+9
  266. 259 0064 0E94 0000 call strncasecmp
  267. 260 0068 892B or r24,r25
  268. 261 006a 01F4 brne .L43
  269. 262 006c A801 movw r20,r16
  270. 263 006e B701 movw r22,r14
  271. 264 0070 C601 movw r24,r12
  272. 265 0072 0E94 0000 call NutCgiProcessRequest
  273. 266 0076 81E0 ldi r24,lo8(1)
  274. 267 0078 90E0 ldi r25,0
  275. 268 007a 00C0 rjmp .L44
  276. 269 .L43:
  277. 270 007c FE01 movw r30,r28
  278. 271 007e E00F add r30,r16
  279. 272 0080 F11F adc r31,r17
  280. 273 0082 00C0 rjmp .L40
  281. 274 .L47:
  282. 275 0084 80E0 ldi r24,0
  283. 276 0086 90E0 ldi r25,0
  284. 277 .L44:
  285. 278 /* epilogue start */
  286. 279 0088 DF91 pop r29
  287. 280 008a CF91 pop r28
  288. 281 008c 1F91 pop r17
  289. 282 008e 0F91 pop r16
  290. 283 0090 FF90 pop r15
  291. GAS LISTING /tmp/cczovDNO.s page 6
  292. 284 0092 EF90 pop r14
  293. 285 0094 DF90 pop r13
  294. 286 0096 CF90 pop r12
  295. 287 0098 0895 ret
  296. 288 .size NutCgiCheckRequest, .-NutCgiCheckRequest
  297. 289 .global cgiBinPath
  298. 290 .section .bss
  299. 291 .type cgiBinPath, @object
  300. 292 .size cgiBinPath, 2
  301. 293 cgiBinPath:
  302. 294 0000 0000 .zero 2
  303. 295 .global cgiFunctionList
  304. 296 .type cgiFunctionList, @object
  305. 297 .size cgiFunctionList, 2
  306. 298 cgiFunctionList:
  307. 299 0002 0000 .zero 2
  308. 300 .ident "GCC: (GNU) 5.3.0"
  309. 301 .global __do_copy_data
  310. 302 .global __do_clear_bss
  311. GAS LISTING /tmp/cczovDNO.s page 7
  312. DEFINED SYMBOLS
  313. *ABS*:0000000000000000 cgi.c
  314. /tmp/cczovDNO.s:2 *ABS*:000000000000003e __SP_H__
  315. /tmp/cczovDNO.s:3 *ABS*:000000000000003d __SP_L__
  316. /tmp/cczovDNO.s:4 *ABS*:000000000000003f __SREG__
  317. /tmp/cczovDNO.s:5 *ABS*:000000000000003b __RAMPZ__
  318. /tmp/cczovDNO.s:6 *ABS*:0000000000000000 __tmp_reg__
  319. /tmp/cczovDNO.s:7 *ABS*:0000000000000001 __zero_reg__
  320. /tmp/cczovDNO.s:11 .text.NutRegisterCgiBinPath:0000000000000000 NutRegisterCgiBinPath
  321. /tmp/cczovDNO.s:293 .bss:0000000000000000 cgiBinPath
  322. /tmp/cczovDNO.s:37 .text.NutRegisterCgi:0000000000000000 NutRegisterCgi
  323. /tmp/cczovDNO.s:298 .bss:0000000000000002 cgiFunctionList
  324. /tmp/cczovDNO.s:104 .text.NutCgiProcessRequest:0000000000000000 NutCgiProcessRequest
  325. /tmp/cczovDNO.s:199 .text.NutCgiCheckRequest:0000000000000000 NutCgiCheckRequest
  326. UNDEFINED SYMBOLS
  327. free
  328. strdup
  329. strcmp
  330. malloc
  331. strcasecmp
  332. NutHttpSendError
  333. strncasecmp
  334. __do_copy_data
  335. __do_clear_bss