Statistics
| Branch: | Tag: | Revision:

root / LUFA / Drivers / USB / Class / Device / HID.lst @ 978b99e5

History | View | Annotate | Download (26.4 KB)

1
   1               		.file	"HID.c"
2
   2               	__SREG__ = 0x3f
3
   3               	__SP_H__ = 0x3e
4
   4               	__SP_L__ = 0x3d
5
   5               	__tmp_reg__ = 0
6
   6               	__zero_reg__ = 1
7
   7               		.global __do_copy_data
8
   8               		.global __do_clear_bss
9
  16               	.Ltext0:
10
  17               		.section	.text.HID_Device_ProcessControlRequest,"ax",@progbits
11
  18               	.global	HID_Device_ProcessControlRequest
12
  20               	HID_Device_ProcessControlRequest:
13
  21               	.LFB94:
14
  22               	.LSM0:
15
  23               	.LVL0:
16
  24 0000 4F92      		push r4
17
  25 0002 5F92      		push r5
18
  26 0004 6F92      		push r6
19
  27 0006 7F92      		push r7
20
  28 0008 8F92      		push r8
21
  29 000a 9F92      		push r9
22
  30 000c BF92      		push r11
23
  31 000e CF92      		push r12
24
  32 0010 DF92      		push r13
25
  33 0012 EF92      		push r14
26
  34 0014 FF92      		push r15
27
  35 0016 0F93      		push r16
28
  36 0018 1F93      		push r17
29
  37 001a DF93      		push r29
30
  38 001c CF93      		push r28
31
  39 001e 00D0      		rcall .
32
  40 0020 0F92      		push __tmp_reg__
33
  41 0022 CDB7      		in r28,__SP_L__
34
  42 0024 DEB7      		in r29,__SP_H__
35
  43               	/* prologue: function */
36
  44               	/* frame size = 3 */
37
  45               	/* stack size = 18 */
38
  46               	.L__stack_usage = 18
39
  47 0026 7C01      		movw r14,r24
40
  48               	.LSM1:
41
  49 0028 4DB6      		in r4,__SP_L__
42
  50 002a 5EB6      		in r5,__SP_H__
43
  51               	.LBB49:
44
  52               	.LBB50:
45
  53               	.LSM2:
46
  54 002c 8091 E800 		lds r24,232
47
  55               	.LVL1:
48
  56               	.LBE50:
49
  57               	.LBE49:
50
  58               	.LSM3:
51
  59 0030 83FF      		sbrs r24,3
52
  60 0032 00C0      		rjmp .L1
53
  61               	.LSM4:
54
  62 0034 F701      		movw r30,r14
55
  63 0036 8081      		ld r24,Z
56
  64 0038 90E0      		ldi r25,lo8(0)
57
  65 003a 2091 0000 		lds r18,USB_ControlRequest+4
58
  66 003e 3091 0000 		lds r19,USB_ControlRequest+4+1
59
  67 0042 2817      		cp r18,r24
60
  68 0044 3907      		cpc r19,r25
61
  69 0046 01F0      		breq .+2
62
  70 0048 00C0      		rjmp .L1
63
  71               	.LSM5:
64
  72 004a 8091 0000 		lds r24,USB_ControlRequest+1
65
  73 004e 8330      		cpi r24,lo8(3)
66
  74 0050 01F4      		brne .+2
67
  75 0052 00C0      		rjmp .L5
68
  76 0054 8430      		cpi r24,lo8(4)
69
  77 0056 00F4      		brsh .L9
70
  78 0058 8130      		cpi r24,lo8(1)
71
  79 005a 01F0      		breq .L3
72
  80 005c 8230      		cpi r24,lo8(2)
73
  81 005e 01F0      		breq .+2
74
  82 0060 00C0      		rjmp .L1
75
  83 0062 00C0      		rjmp .L15
76
  84               	.L9:
77
  85 0064 8A30      		cpi r24,lo8(10)
78
  86 0066 01F4      		brne .+2
79
  87 0068 00C0      		rjmp .L7
80
  88 006a 8B30      		cpi r24,lo8(11)
81
  89 006c 01F4      		brne .+2
82
  90 006e 00C0      		rjmp .L8
83
  91 0070 8930      		cpi r24,lo8(9)
84
  92 0072 01F0      		breq .+2
85
  93 0074 00C0      		rjmp .L1
86
  94 0076 00C0      		rjmp .L16
87
  95               	.L3:
88
  96               	.LSM6:
89
  97 0078 8091 0000 		lds r24,USB_ControlRequest
90
  98 007c 813A      		cpi r24,lo8(-95)
91
  99 007e 01F0      		breq .+2
92
 100 0080 00C0      		rjmp .L1
93
 101 0082 8DB6      		in r8,__SP_L__
94
 102 0084 9EB6      		in r9,__SP_H__
95
 103               	.LBB51:
96
 104               	.LSM7:
97
 105 0086 1B82      		std Y+3,__zero_reg__
98
 106 0088 1A82      		std Y+2,__zero_reg__
99
 107               	.LVL2:
100
 108               	.LSM8:
101
 109 008a 0091 0000 		lds r16,USB_ControlRequest+2
102
 110 008e 1091 0000 		lds r17,USB_ControlRequest+2+1
103
 111 0092 0983      		std Y+1,r16
104
 112               	.LVL3:
105
 113               	.LSM9:
106
 114 0094 F701      		movw r30,r14
107
 115 0096 4781      		ldd r20,Z+7
108
 116 0098 50E0      		ldi r21,lo8(0)
109
 117 009a 8DB7      		in r24,__SP_L__
110
 118 009c 9EB7      		in r25,__SP_H__
111
 119 009e 841B      		sub r24,r20
112
 120 00a0 950B      		sbc r25,r21
113
 121 00a2 0FB6      		in __tmp_reg__,__SREG__
114
 122 00a4 F894      		cli
115
 123 00a6 9EBF      		out __SP_H__,r25
116
 124 00a8 0FBE      		out __SREG__,__tmp_reg__
117
 125 00aa 8DBF      		out __SP_L__,r24
118
 126 00ac CDB6      		in r12,__SP_L__
119
 127 00ae DEB6      		in r13,__SP_H__
120
 128 00b0 0894      		sec
121
 129 00b2 C11C      		adc r12,__zero_reg__
122
 130 00b4 D11C      		adc r13,__zero_reg__
123
 131               	.LVL4:
124
 132               	.LSM10:
125
 133 00b6 C601      		movw r24,r12
126
 134 00b8 60E0      		ldi r22,lo8(0)
127
 135 00ba 70E0      		ldi r23,hi8(0)
128
 136 00bc 0E94 0000 		call memset
129
 137               	.LVL5:
130
 138               	.LSM11:
131
 139 00c0 412F      		mov r20,r17
132
 140 00c2 4150      		subi r20,lo8(-(-1))
133
 141               	.LSM12:
134
 142 00c4 C701      		movw r24,r14
135
 143 00c6 BE01      		movw r22,r28
136
 144 00c8 6F5F      		subi r22,lo8(-(1))
137
 145 00ca 7F4F      		sbci r23,hi8(-(1))
138
 146 00cc 9601      		movw r18,r12
139
 147 00ce 8E01      		movw r16,r28
140
 148               	.LVL6:
141
 149 00d0 0E5F      		subi r16,lo8(-(2))
142
 150 00d2 1F4F      		sbci r17,hi8(-(2))
143
 151 00d4 0E94 0000 		call CALLBACK_HID_Device_CreateHIDReport
144
 152               	.LSM13:
145
 153 00d8 F701      		movw r30,r14
146
 154 00da 8581      		ldd r24,Z+5
147
 155 00dc 9681      		ldd r25,Z+6
148
 156 00de 0097      		sbiw r24,0
149
 157 00e0 01F0      		breq .L10
150
 158               	.LSM14:
151
 159 00e2 4781      		ldd r20,Z+7
152
 160 00e4 50E0      		ldi r21,lo8(0)
153
 161 00e6 B601      		movw r22,r12
154
 162 00e8 0E94 0000 		call memcpy
155
 163               	.L10:
156
 164               	.LVL7:
157
 165               	.LBB52:
158
 166               	.LBB53:
159
 167               	.LSM15:
160
 168 00ec 1092 E900 		sts 233,__zero_reg__
161
 169               	.LBE53:
162
 170               	.LBE52:
163
 171               	.LBB54:
164
 172               	.LBB55:
165
 173               	.LSM16:
166
 174 00f0 8091 E800 		lds r24,232
167
 175 00f4 877F      		andi r24,lo8(-9)
168
 176 00f6 8093 E800 		sts 232,r24
169
 177               	.LBE55:
170
 178               	.LBE54:
171
 179               	.LSM17:
172
 180 00fa 6A81      		ldd r22,Y+2
173
 181 00fc 7B81      		ldd r23,Y+3
174
 182 00fe C601      		movw r24,r12
175
 183 0100 0E94 0000 		call Endpoint_Write_Control_Stream_LE
176
 184               	.LBB56:
177
 185               	.LBB57:
178
 186               	.LSM18:
179
 187 0104 8091 E800 		lds r24,232
180
 188 0108 8B77      		andi r24,lo8(123)
181
 189 010a 8093 E800 		sts 232,r24
182
 190 010e 0FB6      		in __tmp_reg__,__SREG__
183
 191 0110 F894      		cli
184
 192 0112 9EBE      		out __SP_H__,r9
185
 193 0114 0FBE      		out __SREG__,__tmp_reg__
186
 194 0116 8DBE      		out __SP_L__,r8
187
 195 0118 00C0      		rjmp .L1
188
 196               	.LVL8:
189
 197               	.L16:
190
 198               	.LBE57:
191
 199               	.LBE56:
192
 200               	.LBE51:
193
 201               	.LSM19:
194
 202 011a 8091 0000 		lds r24,USB_ControlRequest
195
 203 011e 8132      		cpi r24,lo8(33)
196
 204 0120 01F0      		breq .+2
197
 205 0122 00C0      		rjmp .L1
198
 206 0124 6DB6      		in r6,__SP_L__
199
 207 0126 7EB6      		in r7,__SP_H__
200
 208               	.LBB58:
201
 209               	.LSM20:
202
 210 0128 0091 0000 		lds r16,USB_ControlRequest+6
203
 211 012c 1091 0000 		lds r17,USB_ControlRequest+6+1
204
 212               	.LVL9:
205
 213               	.LSM21:
206
 214 0130 C090 0000 		lds r12,USB_ControlRequest+2
207
 215 0134 D090 0000 		lds r13,USB_ControlRequest+2+1
208
 216 0138 BC2C      		mov r11,r12
209
 217               	.LVL10:
210
 218               	.LSM22:
211
 219 013a 8DB7      		in r24,__SP_L__
212
 220 013c 9EB7      		in r25,__SP_H__
213
 221 013e 801B      		sub r24,r16
214
 222 0140 910B      		sbc r25,r17
215
 223 0142 0FB6      		in __tmp_reg__,__SREG__
216
 224 0144 F894      		cli
217
 225 0146 9EBF      		out __SP_H__,r25
218
 226 0148 0FBE      		out __SREG__,__tmp_reg__
219
 227 014a 8DBF      		out __SP_L__,r24
220
 228 014c 8DB6      		in r8,__SP_L__
221
 229 014e 9EB6      		in r9,__SP_H__
222
 230 0150 0894      		sec
223
 231 0152 811C      		adc r8,__zero_reg__
224
 232 0154 911C      		adc r9,__zero_reg__
225
 233               	.LVL11:
226
 234               	.LBB59:
227
 235               	.LBB60:
228
 236               	.LSM23:
229
 237 0156 8091 E800 		lds r24,232
230
 238 015a 877F      		andi r24,lo8(-9)
231
 239 015c 8093 E800 		sts 232,r24
232
 240               	.LBE60:
233
 241               	.LBE59:
234
 242               	.LSM24:
235
 243 0160 C401      		movw r24,r8
236
 244 0162 B801      		movw r22,r16
237
 245 0164 0E94 0000 		call Endpoint_Read_Control_Stream_LE
238
 246               	.LVL12:
239
 247               	.LBB61:
240
 248               	.LBB62:
241
 249               	.LSM25:
242
 250 0168 8091 E800 		lds r24,232
243
 251 016c 8E77      		andi r24,lo8(126)
244
 252 016e 8093 E800 		sts 232,r24
245
 253               	.LSM26:
246
 254 0172 81E0      		ldi r24,lo8(1)
247
 255 0174 90E0      		ldi r25,hi8(1)
248
 256 0176 CC20      		tst r12
249
 257 0178 01F4      		brne .L12
250
 258 017a 80E0      		ldi r24,lo8(0)
251
 259 017c 90E0      		ldi r25,hi8(0)
252
 260               	.L12:
253
 261               	.LBE62:
254
 262               	.LBE61:
255
 263               	.LSM27:
256
 264 017e 4D2D      		mov r20,r13
257
 265 0180 4150      		subi r20,lo8(-(-1))
258
 266               	.LSM28:
259
 267 0182 9401      		movw r18,r8
260
 268 0184 280F      		add r18,r24
261
 269 0186 391F      		adc r19,r25
262
 270 0188 081B      		sub r16,r24
263
 271 018a 190B      		sbc r17,r25
264
 272               	.LVL13:
265
 273 018c C701      		movw r24,r14
266
 274 018e 6B2D      		mov r22,r11
267
 275 0190 0E94 0000 		call CALLBACK_HID_Device_ProcessHIDReport
268
 276 0194 0FB6      		in __tmp_reg__,__SREG__
269
 277 0196 F894      		cli
270
 278 0198 7EBE      		out __SP_H__,r7
271
 279 019a 0FBE      		out __SREG__,__tmp_reg__
272
 280 019c 6DBE      		out __SP_L__,r6
273
 281 019e 00C0      		rjmp .L1
274
 282               	.LVL14:
275
 283               	.L5:
276
 284               	.LBE58:
277
 285               	.LSM29:
278
 286 01a0 8091 0000 		lds r24,USB_ControlRequest
279
 287 01a4 813A      		cpi r24,lo8(-95)
280
 288 01a6 01F0      		breq .+2
281
 289 01a8 00C0      		rjmp .L1
282
 290               	.LBB63:
283
 291               	.LBB64:
284
 292               	.LSM30:
285
 293 01aa 8091 E800 		lds r24,232
286
 294 01ae 877F      		andi r24,lo8(-9)
287
 295 01b0 8093 E800 		sts 232,r24
288
 296               	.LBE64:
289
 297               	.LBE63:
290
 298               	.LSM31:
291
 299 01b4 F701      		movw r30,r14
292
 300 01b6 8085      		ldd r24,Z+8
293
 301               	.LVL15:
294
 302 01b8 00C0      		rjmp .L14
295
 303               	.LVL16:
296
 304               	.L8:
297
 305               	.LSM32:
298
 306 01ba 8091 0000 		lds r24,USB_ControlRequest
299
 307 01be 8132      		cpi r24,lo8(33)
300
 308 01c0 01F0      		breq .+2
301
 309 01c2 00C0      		rjmp .L1
302
 310               	.LBB65:
303
 311               	.LBB66:
304
 312               	.LSM33:
305
 313 01c4 8091 E800 		lds r24,232
306
 314 01c8 877F      		andi r24,lo8(-9)
307
 315 01ca 8093 E800 		sts 232,r24
308
 316               	.LBE66:
309
 317               	.LBE65:
310
 318               	.LSM34:
311
 319 01ce 0E94 0000 		call Endpoint_ClearStatusStage
312
 320               	.LSM35:
313
 321 01d2 8091 0000 		lds r24,USB_ControlRequest+2
314
 322 01d6 9091 0000 		lds r25,USB_ControlRequest+2+1
315
 323 01da 21E0      		ldi r18,lo8(1)
316
 324 01dc 8823      		tst r24
317
 325 01de 01F4      		brne .L13
318
 326 01e0 20E0      		ldi r18,lo8(0)
319
 327               	.L13:
320
 328 01e2 F701      		movw r30,r14
321
 329 01e4 2087      		std Z+8,r18
322
 330 01e6 00C0      		rjmp .L1
323
 331               	.L7:
324
 332               	.LSM36:
325
 333 01e8 8091 0000 		lds r24,USB_ControlRequest
326
 334 01ec 8132      		cpi r24,lo8(33)
327
 335 01ee 01F4      		brne .L1
328
 336               	.LBB67:
329
 337               	.LBB68:
330
 338               	.LSM37:
331
 339 01f0 8091 E800 		lds r24,232
332
 340 01f4 877F      		andi r24,lo8(-9)
333
 341 01f6 8093 E800 		sts 232,r24
334
 342               	.LBE68:
335
 343               	.LBE67:
336
 344               	.LSM38:
337
 345 01fa 0E94 0000 		call Endpoint_ClearStatusStage
338
 346               	.LSM39:
339
 347 01fe 8091 0000 		lds r24,USB_ControlRequest+2
340
 348 0202 9091 0000 		lds r25,USB_ControlRequest+2+1
341
 349 0206 8070      		andi r24,lo8(-256)
342
 350 0208 36E0      		ldi r19,6
343
 351 020a 9695      	1:	lsr r25
344
 352 020c 8795      		ror r24
345
 353 020e 3A95      		dec r19
346
 354 0210 01F4      		brne 1b
347
 355 0212 F701      		movw r30,r14
348
 356 0214 9287      		std Z+10,r25
349
 357 0216 8187      		std Z+9,r24
350
 358 0218 00C0      		rjmp .L1
351
 359               	.L15:
352
 360               	.LSM40:
353
 361 021a 8091 0000 		lds r24,USB_ControlRequest
354
 362 021e 813A      		cpi r24,lo8(-95)
355
 363 0220 01F4      		brne .L1
356
 364               	.LBB69:
357
 365               	.LBB70:
358
 366               	.LSM41:
359
 367 0222 8091 E800 		lds r24,232
360
 368 0226 877F      		andi r24,lo8(-9)
361
 369 0228 8093 E800 		sts 232,r24
362
 370               	.LBE70:
363
 371               	.LBE69:
364
 372               	.LSM42:
365
 373 022c F701      		movw r30,r14
366
 374 022e 8185      		ldd r24,Z+9
367
 375 0230 9285      		ldd r25,Z+10
368
 376 0232 9695      		lsr r25
369
 377 0234 8795      		ror r24
370
 378 0236 9695      		lsr r25
371
 379 0238 8795      		ror r24
372
 380               	.L14:
373
 381               	.LBB71:
374
 382               	.LBB72:
375
 383               	.LSM43:
376
 384 023a 8093 F100 		sts 241,r24
377
 385               	.LBE72:
378
 386               	.LBE71:
379
 387               	.LBB73:
380
 388               	.LBB74:
381
 389               	.LSM44:
382
 390 023e 8091 E800 		lds r24,232
383
 391 0242 8E77      		andi r24,lo8(126)
384
 392 0244 8093 E800 		sts 232,r24
385
 393               	.LBE74:
386
 394               	.LBE73:
387
 395               	.LSM45:
388
 396 0248 0E94 0000 		call Endpoint_ClearStatusStage
389
 397               	.LVL17:
390
 398               	.L1:
391
 399               	.LSM46:
392
 400 024c 0FB6      		in __tmp_reg__,__SREG__
393
 401 024e F894      		cli
394
 402 0250 5EBE      		out __SP_H__,r5
395
 403 0252 0FBE      		out __SREG__,__tmp_reg__
396
 404 0254 4DBE      		out __SP_L__,r4
397
 405               	/* epilogue start */
398
 406 0256 0F90      		pop __tmp_reg__
399
 407 0258 0F90      		pop __tmp_reg__
400
 408 025a 0F90      		pop __tmp_reg__
401
 409 025c CF91      		pop r28
402
 410 025e DF91      		pop r29
403
 411 0260 1F91      		pop r17
404
 412 0262 0F91      		pop r16
405
 413 0264 FF90      		pop r15
406
 414 0266 EF90      		pop r14
407
 415               	.LVL18:
408
 416 0268 DF90      		pop r13
409
 417 026a CF90      		pop r12
410
 418 026c BF90      		pop r11
411
 419 026e 9F90      		pop r9
412
 420 0270 8F90      		pop r8
413
 421 0272 7F90      		pop r7
414
 422 0274 6F90      		pop r6
415
 423 0276 5F90      		pop r5
416
 424 0278 4F90      		pop r4
417
 425 027a 0895      		ret
418
 426               	.LFE94:
419
 428               		.section	.text.HID_Device_ConfigureEndpoints,"ax",@progbits
420
 429               	.global	HID_Device_ConfigureEndpoints
421
 431               	HID_Device_ConfigureEndpoints:
422
 432               	.LFB95:
423
 433               	.LSM47:
424
 434               	.LVL19:
425
 435 0000 CF93      		push r28
426
 436 0002 DF93      		push r29
427
 437               	/* prologue: function */
428
 438               	/* frame size = 0 */
429
 439               	/* stack size = 2 */
430
 440               	.L__stack_usage = 2
431
 441 0004 FC01      		movw r30,r24
432
 442               	.LSM48:
433
 443 0006 DC01      		movw r26,r24
434
 444 0008 1896      		adiw r26,8
435
 445 000a 85E0      		ldi r24,lo8(5)
436
 446               	.LVL20:
437
 447 000c ED01      		movw r28,r26
438
 448 000e 1992      		st Y+,__zero_reg__
439
 449 0010 8A95      	        dec r24
440
 450 0012 01F4      		brne .-6
441
 451               	.LSM49:
442
 452 0014 81E0      		ldi r24,lo8(1)
443
 453 0016 8087      		std Z+8,r24
444
 454               	.LSM50:
445
 455 0018 84EF      		ldi r24,lo8(500)
446
 456 001a 91E0      		ldi r25,hi8(500)
447
 457 001c 9287      		std Z+10,r25
448
 458 001e 8187      		std Z+9,r24
449
 459               	.LSM51:
450
 460 0020 8181      		ldd r24,Z+1
451
 461 0022 6281      		ldd r22,Z+2
452
 462 0024 7381      		ldd r23,Z+3
453
 463 0026 9481      		ldd r25,Z+4
454
 464 0028 9923      		tst r25
455
 465 002a 01F0      		breq .L21
456
 466 002c 44E0      		ldi r20,lo8(4)
457
 467 002e 00C0      		rjmp .L18
458
 468               	.L21:
459
 469 0030 40E0      		ldi r20,lo8(0)
460
 470               	.L18:
461
 471               	.LVL21:
462
 472               	.LSM52:
463
 473 0032 28E0      		ldi r18,lo8(8)
464
 474 0034 30E0      		ldi r19,hi8(8)
465
 475               	.LSM53:
466
 476 0036 90E0      		ldi r25,lo8(0)
467
 477 0038 00C0      		rjmp .L19
468
 478               	.LVL22:
469
 479               	.L20:
470
 480               	.LBB75:
471
 481               	.LBB76:
472
 482               	.LBB77:
473
 483               	.LBB78:
474
 484               	.LSM54:
475
 485 003a 9F5F      		subi r25,lo8(-(1))
476
 486               	.LVL23:
477
 487               	.LSM55:
478
 488 003c 220F      		lsl r18
479
 489 003e 331F      		rol r19
480
 490               	.LVL24:
481
 491               	.L19:
482
 492               	.LSM56:
483
 493 0040 2617      		cp r18,r22
484
 494 0042 3707      		cpc r19,r23
485
 495 0044 00F0      		brlo .L20
486
 496               	.LBE78:
487
 497               	.LBE77:
488
 498               	.LSM57:
489
 499 0046 4260      		ori r20,lo8(2)
490
 500               	.LVL25:
491
 501               	.LBB80:
492
 502               	.LBB79:
493
 503               	.LSM58:
494
 504 0048 9295      		swap r25
495
 505               	.LVL26:
496
 506 004a 907F      		andi r25,lo8(-16)
497
 507               	.LBE79:
498
 508               	.LBE80:
499
 509               	.LSM59:
500
 510 004c 492B      		or r20,r25
501
 511 004e 61EC      		ldi r22,lo8(-63)
502
 512 0050 0E94 0000 		call Endpoint_ConfigureEndpoint_Prv
503
 513               	.LVL27:
504
 514               	/* epilogue start */
505
 515               	.LBE76:
506
 516               	.LBE75:
507
 517               	.LSM60:
508
 518 0054 DF91      		pop r29
509
 519 0056 CF91      		pop r28
510
 520 0058 0895      		ret
511
 521               	.LFE95:
512
 523               		.section	.text.HID_Device_USBTask,"ax",@progbits
513
 524               	.global	HID_Device_USBTask
514
 526               	HID_Device_USBTask:
515
 527               	.LFB96:
516
 528               	.LSM61:
517
 529               	.LVL28:
518
 530 0000 4F92      		push r4
519
 531 0002 5F92      		push r5
520
 532 0004 6F92      		push r6
521
 533 0006 7F92      		push r7
522
 534 0008 8F92      		push r8
523
 535 000a 9F92      		push r9
524
 536 000c AF92      		push r10
525
 537 000e BF92      		push r11
526
 538 0010 CF92      		push r12
527
 539 0012 DF92      		push r13
528
 540 0014 EF92      		push r14
529
 541 0016 FF92      		push r15
530
 542 0018 0F93      		push r16
531
 543 001a 1F93      		push r17
532
 544 001c DF93      		push r29
533
 545 001e CF93      		push r28
534
 546 0020 00D0      		rcall .
535
 547 0022 0F92      		push __tmp_reg__
536
 548 0024 CDB7      		in r28,__SP_L__
537
 549 0026 DEB7      		in r29,__SP_H__
538
 550               	/* prologue: function */
539
 551               	/* frame size = 3 */
540
 552               	/* stack size = 19 */
541
 553               	.L__stack_usage = 19
542
 554 0028 7C01      		movw r14,r24
543
 555               	.LSM62:
544
 556 002a 4DB6      		in r4,__SP_L__
545
 557 002c 5EB6      		in r5,__SP_H__
546
 558               	.LSM63:
547
 559 002e 8EB3      		in r24,62-0x20
548
 560               	.LVL29:
549
 561 0030 8430      		cpi r24,lo8(4)
550
 562 0032 01F0      		breq .+2
551
 563 0034 00C0      		rjmp .L22
552
 564               	.LSM64:
553
 565 0036 F701      		movw r30,r14
554
 566 0038 8181      		ldd r24,Z+1
555
 567               	.LVL30:
556
 568               	.LBB81:
557
 569               	.LBB82:
558
 570               	.LSM65:
559
 571 003a 8093 E900 		sts 233,r24
560
 572               	.LBE82:
561
 573               	.LBE81:
562
 574               	.LBB83:
563
 575               	.LBB84:
564
 576               	.LSM66:
565
 577 003e 8091 E800 		lds r24,232
566
 578               	.LBE84:
567
 579               	.LBE83:
568
 580               	.LSM67:
569
 581 0042 85FF      		sbrs r24,5
570
 582 0044 00C0      		rjmp .L22
571
 583 0046 6DB6      		in r6,__SP_L__
572
 584 0048 7EB6      		in r7,__SP_H__
573
 585               	.LVL31:
574
 586               	.LBB85:
575
 587               	.LSM68:
576
 588 004a 4781      		ldd r20,Z+7
577
 589 004c 50E0      		ldi r21,lo8(0)
578
 590 004e 8DB7      		in r24,__SP_L__
579
 591 0050 9EB7      		in r25,__SP_H__
580
 592 0052 841B      		sub r24,r20
581
 593 0054 950B      		sbc r25,r21
582
 594 0056 0FB6      		in __tmp_reg__,__SREG__
583
 595 0058 F894      		cli
584
 596 005a 9EBF      		out __SP_H__,r25
585
 597 005c 0FBE      		out __SREG__,__tmp_reg__
586
 598 005e 8DBF      		out __SP_L__,r24
587
 599 0060 CDB6      		in r12,__SP_L__
588
 600 0062 DEB6      		in r13,__SP_H__
589
 601 0064 0894      		sec
590
 602 0066 C11C      		adc r12,__zero_reg__
591
 603 0068 D11C      		adc r13,__zero_reg__
592
 604               	.LVL32:
593
 605               	.LSM69:
594
 606 006a 1982      		std Y+1,__zero_reg__
595
 607               	.LVL33:
596
 608               	.LSM70:
597
 609 006c 1B82      		std Y+3,__zero_reg__
598
 610 006e 1A82      		std Y+2,__zero_reg__
599
 611               	.LVL34:
600
 612               	.LSM71:
601
 613 0070 C601      		movw r24,r12
602
 614 0072 60E0      		ldi r22,lo8(0)
603
 615 0074 70E0      		ldi r23,hi8(0)
604
 616 0076 0E94 0000 		call memset
605
 617               	.LVL35:
606
 618               	.LSM72:
607
 619 007a C701      		movw r24,r14
608
 620 007c BE01      		movw r22,r28
609
 621 007e 6F5F      		subi r22,lo8(-(1))
610
 622 0080 7F4F      		sbci r23,hi8(-(1))
611
 623 0082 40E0      		ldi r20,lo8(0)
612
 624 0084 9601      		movw r18,r12
613
 625 0086 8E01      		movw r16,r28
614
 626 0088 0E5F      		subi r16,lo8(-(2))
615
 627 008a 1F4F      		sbci r17,hi8(-(2))
616
 628 008c 0E94 0000 		call CALLBACK_HID_Device_CreateHIDReport
617
 629 0090 A82E      		mov r10,r24
618
 630               	.LVL36:
619
 631               	.LSM73:
620
 632 0092 F701      		movw r30,r14
621
 633 0094 8185      		ldd r24,Z+9
622
 634 0096 9285      		ldd r25,Z+10
623
 635               	.LVL37:
624
 636 0098 0097      		sbiw r24,0
625
 637 009a 01F0      		breq .L32
626
 638               	.LSM74:
627
 639 009c 81E0      		ldi r24,lo8(1)
628
 640 009e 90E0      		ldi r25,hi8(1)
629
 641 00a0 2385      		ldd r18,Z+11
630
 642 00a2 3485      		ldd r19,Z+12
631
 643 00a4 2115      		cp r18,__zero_reg__
632
 644 00a6 3105      		cpc r19,__zero_reg__
633
 645 00a8 01F0      		breq .L25
634
 646 00aa 80E0      		ldi r24,lo8(0)
635
 647 00ac 90E0      		ldi r25,hi8(0)
636
 648               	.L25:
637
 649               	.LSM75:
638
 650 00ae 4C01      		movw r8,r24
639
 651 00b0 00C0      		rjmp .L24
640
 652               	.L32:
641
 653               	.LSM76:
642
 654 00b2 8824      		clr r8
643
 655 00b4 9924      		clr r9
644
 656               	.L24:
645
 657               	.LVL38:
646
 658               	.LSM77:
647
 659 00b6 F701      		movw r30,r14
648
 660 00b8 0581      		ldd r16,Z+5
649
 661 00ba 1681      		ldd r17,Z+6
650
 662 00bc 0115      		cp r16,__zero_reg__
651
 663 00be 1105      		cpc r17,__zero_reg__
652
 664 00c0 01F0      		breq .L33
653
 665               	.LSM78:
654
 666 00c2 4A81      		ldd r20,Y+2
655
 667 00c4 5B81      		ldd r21,Y+3
656
 668 00c6 C601      		movw r24,r12
657
 669 00c8 B801      		movw r22,r16
658
 670 00ca 0E94 0000 		call memcmp
659
 671 00ce BB24      		clr r11
660
 672 00d0 B394      		inc r11
661
 673 00d2 0097      		sbiw r24,0
662
 674 00d4 01F4      		brne .L27
663
 675 00d6 BB24      		clr r11
664
 676               	.L27:
665
 677               	.LVL39:
666
 678               	.LSM79:
667
 679 00d8 F701      		movw r30,r14
668
 680 00da 4781      		ldd r20,Z+7
669
 681 00dc 50E0      		ldi r21,lo8(0)
670
 682 00de C801      		movw r24,r16
671
 683 00e0 B601      		movw r22,r12
672
 684 00e2 0E94 0000 		call memcpy
673
 685 00e6 00C0      		rjmp .L26
674
 686               	.LVL40:
675
 687               	.L33:
676
 688               	.LSM80:
677
 689 00e8 BB24      		clr r11
678
 690               	.LVL41:
679
 691               	.L26:
680
 692               	.LSM81:
681
 693 00ea 8A81      		ldd r24,Y+2
682
 694 00ec 9B81      		ldd r25,Y+3
683
 695 00ee 0097      		sbiw r24,0
684
 696 00f0 01F0      		breq .L29
685
 697               	.LSM82:
686
 698 00f2 AA20      		tst r10
687
 699 00f4 01F4      		brne .L30
688
 700 00f6 BB20      		tst r11
689
 701 00f8 01F4      		brne .L30
690
 702 00fa 8114      		cp r8,__zero_reg__
691
 703 00fc 9104      		cpc r9,__zero_reg__
692
 704 00fe 01F0      		breq .L29
693
 705               	.L30:
694
 706               	.LSM83:
695
 707 0100 F701      		movw r30,r14
696
 708 0102 8185      		ldd r24,Z+9
697
 709 0104 9285      		ldd r25,Z+10
698
 710 0106 9487      		std Z+12,r25
699
 711 0108 8387      		std Z+11,r24
700
 712               	.LSM84:
701
 713 010a 8181      		ldd r24,Z+1
702
 714               	.LVL42:
703
 715               	.LBB86:
704
 716               	.LBB87:
705
 717               	.LSM85:
706
 718 010c 8093 E900 		sts 233,r24
707
 719               	.LBE87:
708
 720               	.LBE86:
709
 721               	.LSM86:
710
 722 0110 8981      		ldd r24,Y+1
711
 723 0112 8823      		tst r24
712
 724 0114 01F0      		breq .L31
713
 725               	.LVL43:
714
 726               	.LBB88:
715
 727               	.LBB89:
716
 728               	.LSM87:
717
 729 0116 8093 F100 		sts 241,r24
718
 730               	.LVL44:
719
 731               	.L31:
720
 732               	.LBE89:
721
 733               	.LBE88:
722
 734               	.LSM88:
723
 735 011a 6A81      		ldd r22,Y+2
724
 736 011c 7B81      		ldd r23,Y+3
725
 737 011e C601      		movw r24,r12
726
 738 0120 40E0      		ldi r20,lo8(0)
727
 739 0122 50E0      		ldi r21,hi8(0)
728
 740 0124 0E94 0000 		call Endpoint_Write_Stream_LE
729
 741               	.LVL45:
730
 742               	.LBB90:
731
 743               	.LBB91:
732
 744               	.LSM89:
733
 745 0128 8091 E800 		lds r24,232
734
 746 012c 8E77      		andi r24,lo8(126)
735
 747 012e 8093 E800 		sts 232,r24
736
 748               	.L29:
737
 749 0132 0FB6      		in __tmp_reg__,__SREG__
738
 750 0134 F894      		cli
739
 751 0136 7EBE      		out __SP_H__,r7
740
 752 0138 0FBE      		out __SREG__,__tmp_reg__
741
 753 013a 6DBE      		out __SP_L__,r6
742
 754               	.LVL46:
743
 755               	.L22:
744
 756               	.LBE91:
745
 757               	.LBE90:
746
 758               	.LBE85:
747
 759               	.LSM90:
748
 760 013c 0FB6      		in __tmp_reg__,__SREG__
749
 761 013e F894      		cli
750
 762 0140 5EBE      		out __SP_H__,r5
751
 763 0142 0FBE      		out __SREG__,__tmp_reg__
752
 764 0144 4DBE      		out __SP_L__,r4
753
 765               	/* epilogue start */
754
 766 0146 0F90      		pop __tmp_reg__
755
 767 0148 0F90      		pop __tmp_reg__
756
 768 014a 0F90      		pop __tmp_reg__
757
 769 014c CF91      		pop r28
758
 770 014e DF91      		pop r29
759
 771 0150 1F91      		pop r17
760
 772 0152 0F91      		pop r16
761
 773 0154 FF90      		pop r15
762
 774 0156 EF90      		pop r14
763
 775               	.LVL47:
764
 776 0158 DF90      		pop r13
765
 777 015a CF90      		pop r12
766
 778 015c BF90      		pop r11
767
 779 015e AF90      		pop r10
768
 780 0160 9F90      		pop r9
769
 781 0162 8F90      		pop r8
770
 782 0164 7F90      		pop r7
771
 783 0166 6F90      		pop r6
772
 784 0168 5F90      		pop r5
773
 785 016a 4F90      		pop r4
774
 786 016c 0895      		ret
775
 787               	.LFE96:
776
 829               	.Letext0:
777
DEFINED SYMBOLS
778
                            *ABS*:0000000000000000 HID.c
779
     /tmp/ccBncO2D.s:2      *ABS*:000000000000003f __SREG__
780
     /tmp/ccBncO2D.s:3      *ABS*:000000000000003e __SP_H__
781
     /tmp/ccBncO2D.s:4      *ABS*:000000000000003d __SP_L__
782
     /tmp/ccBncO2D.s:5      *ABS*:0000000000000000 __tmp_reg__
783
     /tmp/ccBncO2D.s:6      *ABS*:0000000000000001 __zero_reg__
784
     /tmp/ccBncO2D.s:20     .text.HID_Device_ProcessControlRequest:0000000000000000 HID_Device_ProcessControlRequest
785
     /tmp/ccBncO2D.s:431    .text.HID_Device_ConfigureEndpoints:0000000000000000 HID_Device_ConfigureEndpoints
786
     /tmp/ccBncO2D.s:526    .text.HID_Device_USBTask:0000000000000000 HID_Device_USBTask
787

    
788
UNDEFINED SYMBOLS
789
__do_copy_data
790
__do_clear_bss
791
USB_ControlRequest
792
memset
793
CALLBACK_HID_Device_CreateHIDReport
794
memcpy
795
Endpoint_Write_Control_Stream_LE
796
Endpoint_Read_Control_Stream_LE
797
CALLBACK_HID_Device_ProcessHIDReport
798
Endpoint_ClearStatusStage
799
Endpoint_ConfigureEndpoint_Prv
800
memcmp
801
Endpoint_Write_Stream_LE