GAS LISTING /tmp/cchG5wqX.s page 1 1 .file "envvars.c" 2 __SP_H__ = 0x3e 3 __SP_L__ = 0x3d 4 __SREG__ = 0x3f 5 __RAMPZ__ = 0x3b 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .section .rodata.str1.1,"aMS",@progbits,1 9 .LC0: 10 0000 00 .string "" 11 .LC1: 12 0001 5552 4F4D .string "UROM:" 12 3A00 13 .section .text.HttpSessionInfo,"ax",@progbits 14 .global HttpSessionInfo 15 .type HttpSessionInfo, @function 16 HttpSessionInfo: 17 0000 EF92 push r14 18 0002 FF92 push r15 19 0004 0F93 push r16 20 0006 1F93 push r17 21 0008 CF93 push r28 22 000a DF93 push r29 23 000c 00D0 rcall . 24 000e 1F92 push __zero_reg__ 25 0010 CDB7 in r28,__SP_L__ 26 0012 DEB7 in r29,__SP_H__ 27 /* prologue: function */ 28 /* frame size = 4 */ 29 /* stack size = 10 */ 30 .L__stack_usage = 10 31 0014 DC01 movw r26,r24 32 0016 7B01 movw r14,r22 33 0018 FB01 movw r30,r22 34 001a 3197 sbiw r30,1 35 001c EE30 cpi r30,14 36 001e F105 cpc r31,__zero_reg__ 37 0020 00F0 brlo .+2 38 0022 00C0 rjmp .L25 39 0024 8827 clr r24 40 0026 E050 subi r30,pm_lo8(-(.L4)) 41 0028 F040 sbci r31,pm_hi8(-(.L4)) 42 002a 8040 sbci r24,pm_hh8(-(.L4)) 43 002c 0C94 0000 jmp __tablejump2__ 44 .section .progmem.gcc_sw_table.HttpSessionInfo,"a",@progbits 45 .p2align 1 46 .L4: 47 0000 0000 .word gs(.L3) 48 0002 0000 .word gs(.L5) 49 0004 0000 .word gs(.L6) 50 0006 0000 .word gs(.L7) 51 0008 0000 .word gs(.L8) 52 000a 0000 .word gs(.L9) 53 000c 0000 .word gs(.L25) 54 000e 0000 .word gs(.L10) 55 0010 0000 .word gs(.L11) 56 0012 0000 .word gs(.L12) GAS LISTING /tmp/cchG5wqX.s page 2 57 0014 0000 .word gs(.L13) 58 0016 0000 .word gs(.L14) 59 0018 0000 .word gs(.L15) 60 001a 0000 .word gs(.L16) 61 .section .text.HttpSessionInfo 62 .L3: 63 0030 CE01 movw r24,r28 64 0032 0196 adiw r24,1 65 0034 0E94 0000 call time 66 0038 CE01 movw r24,r28 67 003a 0196 adiw r24,1 68 003c 0E94 0000 call gmtime 69 0040 00C0 rjmp .L37 70 .L5: 71 0042 CE01 movw r24,r28 72 0044 0196 adiw r24,1 73 0046 0E94 0000 call time 74 004a CE01 movw r24,r28 75 004c 0196 adiw r24,1 76 004e 0E94 0000 call localtime 77 .L37: 78 0052 0E94 0000 call Rfc1123TimeString 79 0056 8C01 movw r16,r24 80 0058 00C0 rjmp .L17 81 .L6: 82 005a 1496 adiw r26,4 83 005c 0D91 ld r16,X+ 84 005e 1C91 ld r17,X 85 0060 1597 sbiw r26,4+1 86 0062 6FE2 ldi r22,lo8(47) 87 0064 70E0 ldi r23,0 88 0066 C801 movw r24,r16 89 0068 0E94 0000 call strrchr 90 006c 0097 sbiw r24,0 91 006e 01F4 brne .+2 92 0070 00C0 rjmp .L17 93 0072 8C01 movw r16,r24 94 0074 0F5F subi r16,-1 95 0076 1F4F sbci r17,-1 96 0078 00C0 rjmp .L17 97 .L7: 98 007a 0091 0000 lds r16,http_root_path 99 007e 1091 0000 lds r17,http_root_path+1 100 0082 0115 cp r16,__zero_reg__ 101 0084 1105 cpc r17,__zero_reg__ 102 0086 01F0 breq .+2 103 0088 00C0 rjmp .L19 104 008a 00E0 ldi r16,lo8(.LC1) 105 008c 10E0 ldi r17,hi8(.LC1) 106 008e 00C0 rjmp .L19 107 .L8: 108 0090 9896 adiw r26,40 109 0092 0D91 ld r16,X+ 110 0094 1C91 ld r17,X 111 0096 9997 sbiw r26,40+1 112 0098 00C0 rjmp .L17 113 .L9: GAS LISTING /tmp/cchG5wqX.s page 3 114 009a 5096 adiw r26,16 115 009c 8D91 ld r24,X+ 116 009e 9C91 ld r25,X 117 00a0 5197 sbiw r26,16+1 118 00a2 0297 sbiw r24,2 119 00a4 01F4 brne .+2 120 00a6 00C0 rjmp .L26 121 00a8 00E0 ldi r16,lo8(ct_close) 122 00aa 10E0 ldi r17,hi8(ct_close) 123 00ac 00C0 rjmp .L17 124 .L10: 125 00ae 9696 adiw r26,38 126 00b0 0D91 ld r16,X+ 127 00b2 1C91 ld r17,X 128 00b4 9797 sbiw r26,38+1 129 00b6 00C0 rjmp .L17 130 .L11: 131 00b8 9496 adiw r26,36 132 00ba 0D91 ld r16,X+ 133 00bc 1C91 ld r17,X 134 00be 9597 sbiw r26,36+1 135 00c0 00C0 rjmp .L17 136 .L12: 137 00c2 5E96 adiw r26,30 138 00c4 0D91 ld r16,X+ 139 00c6 1C91 ld r17,X 140 00c8 5F97 sbiw r26,30+1 141 00ca 00C0 rjmp .L17 142 .L13: 143 00cc 1896 adiw r26,8 144 00ce 0D91 ld r16,X+ 145 00d0 1C91 ld r17,X 146 00d2 1997 sbiw r26,8+1 147 00d4 8091 0000 lds r24,env_value.2653 148 00d8 9091 0000 lds r25,env_value.2653+1 149 00dc 0115 cp r16,__zero_reg__ 150 00de 1105 cpc r17,__zero_reg__ 151 00e0 01F0 breq .+2 152 00e2 00C0 rjmp .L33 153 00e4 0E94 0000 call free 154 00e8 80E0 ldi r24,lo8(.LC0) 155 00ea 90E0 ldi r25,hi8(.LC0) 156 00ec 00C0 rjmp .L35 157 .L14: 158 00ee 1896 adiw r26,8 159 00f0 0D91 ld r16,X+ 160 00f2 1C91 ld r17,X 161 00f4 1997 sbiw r26,8+1 162 00f6 00C0 rjmp .L17 163 .L15: 164 00f8 1296 adiw r26,2 165 00fa 8D91 ld r24,X+ 166 00fc 9C91 ld r25,X 167 00fe 1397 sbiw r26,2+1 168 0100 8130 cpi r24,1 169 0102 9105 cpc r25,__zero_reg__ 170 0104 01F4 brne .+2 GAS LISTING /tmp/cchG5wqX.s page 4 171 0106 00C0 rjmp .L27 172 0108 8330 cpi r24,3 173 010a 9105 cpc r25,__zero_reg__ 174 010c 01F4 brne .+2 175 010e 00C0 rjmp .L28 176 0110 0297 sbiw r24,2 177 0112 01F4 brne .L25 178 0114 00C0 rjmp .L29 179 .L16: 180 0116 1496 adiw r26,4 181 0118 0D91 ld r16,X+ 182 011a 1C91 ld r17,X 183 011c 1597 sbiw r26,4+1 184 011e 00C0 rjmp .L17 185 .L25: 186 0120 00E0 ldi r16,lo8(.LC0) 187 0122 10E0 ldi r17,hi8(.LC0) 188 .L2: 189 0124 8091 0000 lds r24,env_value.2653 190 0128 9091 0000 lds r25,env_value.2653+1 191 012c 0E94 0000 call free 192 0130 C801 movw r24,r16 193 0132 0E94 0000 call strdup 194 0136 9093 0000 sts env_value.2653+1,r25 195 013a 8093 0000 sts env_value.2653,r24 196 013e 2BE0 ldi r18,11 197 0140 E216 cp r14,r18 198 0142 F104 cpc r15,__zero_reg__ 199 0144 01F4 brne .L22 200 .L23: 201 0146 0E94 0000 call HttpUrlUnescape 202 .L22: 203 014a 8091 0000 lds r24,env_value.2653 204 014e 9091 0000 lds r25,env_value.2653+1 205 /* epilogue start */ 206 0152 0F90 pop __tmp_reg__ 207 0154 0F90 pop __tmp_reg__ 208 0156 0F90 pop __tmp_reg__ 209 0158 0F90 pop __tmp_reg__ 210 015a DF91 pop r29 211 015c CF91 pop r28 212 015e 1F91 pop r17 213 0160 0F91 pop r16 214 0162 FF90 pop r15 215 0164 EF90 pop r14 216 0166 0895 ret 217 .L19: 218 0168 8091 0000 lds r24,env_value.2653 219 016c 9091 0000 lds r25,env_value.2653+1 220 0170 0E94 0000 call free 221 0174 C801 movw r24,r16 222 0176 00C0 rjmp .L36 223 .L26: 224 0178 00E0 ldi r16,lo8(ct_Keep_Alive) 225 017a 10E0 ldi r17,hi8(ct_Keep_Alive) 226 .L17: 227 017c 0115 cp r16,__zero_reg__ GAS LISTING /tmp/cchG5wqX.s page 5 228 017e 1105 cpc r17,__zero_reg__ 229 0180 01F4 brne .L2 230 0182 8091 0000 lds r24,env_value.2653 231 0186 9091 0000 lds r25,env_value.2653+1 232 018a 0E94 0000 call free 233 018e 80E0 ldi r24,lo8(.LC0) 234 0190 90E0 ldi r25,hi8(.LC0) 235 .L36: 236 0192 0E94 0000 call strdup 237 0196 9093 0000 sts env_value.2653+1,r25 238 019a 8093 0000 sts env_value.2653,r24 239 019e 00C0 rjmp .L22 240 .L27: 241 01a0 00E0 ldi r16,lo8(ct_GET) 242 01a2 10E0 ldi r17,hi8(ct_GET) 243 01a4 00C0 rjmp .L17 244 .L28: 245 01a6 00E0 ldi r16,lo8(ct_HEAD) 246 01a8 10E0 ldi r17,hi8(ct_HEAD) 247 01aa 00C0 rjmp .L17 248 .L29: 249 01ac 00E0 ldi r16,lo8(ct_POST) 250 01ae 10E0 ldi r17,hi8(ct_POST) 251 01b0 00C0 rjmp .L17 252 .L33: 253 01b2 0E94 0000 call free 254 01b6 C801 movw r24,r16 255 .L35: 256 01b8 0E94 0000 call strdup 257 01bc 9093 0000 sts env_value.2653+1,r25 258 01c0 8093 0000 sts env_value.2653,r24 259 01c4 00C0 rjmp .L23 260 .size HttpSessionInfo, .-HttpSessionInfo 261 .section .text.HttpStreamInfo,"ax",@progbits 262 .global HttpStreamInfo 263 .type HttpStreamInfo, @function 264 HttpStreamInfo: 265 /* prologue: function */ 266 /* frame size = 0 */ 267 /* stack size = 0 */ 268 .L__stack_usage = 0 269 0000 FC01 movw r30,r24 270 0002 8081 ld r24,Z 271 0004 9181 ldd r25,Z+1 272 0006 0C94 0000 jmp StreamInfo 273 .size HttpStreamInfo, .-HttpStreamInfo 274 .section .text.EnvHandler,"ax",@progbits 275 .global EnvHandler 276 .type EnvHandler, @function 277 EnvHandler: 278 0000 EF92 push r14 279 0002 FF92 push r15 280 0004 0F93 push r16 281 0006 1F93 push r17 282 0008 CF93 push r28 283 000a DF93 push r29 284 /* prologue: function */ GAS LISTING /tmp/cchG5wqX.s page 6 285 /* frame size = 0 */ 286 /* stack size = 6 */ 287 .L__stack_usage = 6 288 000c 8C01 movw r16,r24 289 000e 7B01 movw r14,r22 290 0010 C091 0000 lds r28,envVarList 291 0014 D091 0000 lds r29,envVarList+1 292 .L41: 293 0018 2097 sbiw r28,0 294 001a 01F0 breq .L48 295 001c B701 movw r22,r14 296 001e 8C81 ldd r24,Y+4 297 0020 9D81 ldd r25,Y+5 298 0022 0E94 0000 call strcasecmp 299 0026 1816 cp __zero_reg__,r24 300 0028 1906 cpc __zero_reg__,r25 301 002a 04F0 brlt .L42 302 002c 892B or r24,r25 303 002e 01F4 brne .L48 304 0030 00C0 rjmp .L50 305 .L42: 306 0032 0A80 ldd __tmp_reg__,Y+2 307 0034 DB81 ldd r29,Y+3 308 0036 C02D mov r28,__tmp_reg__ 309 0038 00C0 rjmp .L41 310 .L50: 311 003a 6885 ldd r22,Y+8 312 003c 7985 ldd r23,Y+9 313 003e 77FF sbrs r23,7 314 0040 00C0 rjmp .L46 315 0042 7195 neg r23 316 0044 6195 neg r22 317 0046 7109 sbc r23,__zero_reg__ 318 .L46: 319 0048 EE81 ldd r30,Y+6 320 004a FF81 ldd r31,Y+7 321 004c C801 movw r24,r16 322 /* epilogue start */ 323 004e DF91 pop r29 324 0050 CF91 pop r28 325 0052 1F91 pop r17 326 0054 0F91 pop r16 327 0056 FF90 pop r15 328 0058 EF90 pop r14 329 005a 1994 eijmp 330 .L48: 331 005c 80E0 ldi r24,lo8(empty.2679) 332 005e 90E0 ldi r25,hi8(empty.2679) 333 /* epilogue start */ 334 0060 DF91 pop r29 335 0062 CF91 pop r28 336 0064 1F91 pop r17 337 0066 0F91 pop r16 338 0068 FF90 pop r15 339 006a EF90 pop r14 340 006c 0895 ret 341 .size EnvHandler, .-EnvHandler GAS LISTING /tmp/cchG5wqX.s page 7 342 .local empty.2679 343 .comm empty.2679,1,1 344 .local env_value.2653 345 .comm env_value.2653,2,1 346 .global envVarList 347 .section .bss 348 .type envVarList, @object 349 .size envVarList, 4 350 envVarList: 351 0000 0000 0000 .zero 4 352 .ident "GCC: (GNU) 5.3.0" 353 .global __do_copy_data 354 .global __do_clear_bss GAS LISTING /tmp/cchG5wqX.s page 8 DEFINED SYMBOLS *ABS*:0000000000000000 envvars.c /tmp/cchG5wqX.s:2 *ABS*:000000000000003e __SP_H__ /tmp/cchG5wqX.s:3 *ABS*:000000000000003d __SP_L__ /tmp/cchG5wqX.s:4 *ABS*:000000000000003f __SREG__ /tmp/cchG5wqX.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/cchG5wqX.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/cchG5wqX.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/cchG5wqX.s:16 .text.HttpSessionInfo:0000000000000000 HttpSessionInfo /tmp/cchG5wqX.s:343 .bss:0000000000000005 env_value.2653 /tmp/cchG5wqX.s:264 .text.HttpStreamInfo:0000000000000000 HttpStreamInfo /tmp/cchG5wqX.s:277 .text.EnvHandler:0000000000000000 EnvHandler /tmp/cchG5wqX.s:350 .bss:0000000000000000 envVarList .bss:0000000000000004 empty.2679 UNDEFINED SYMBOLS __tablejump2__ time gmtime localtime Rfc1123TimeString strrchr http_root_path ct_close free strdup HttpUrlUnescape ct_Keep_Alive ct_GET ct_HEAD ct_POST StreamInfo strcasecmp __do_copy_data __do_clear_bss