1 // This file was generated by gen_asm_instrumentation.sh. Please, do not edit
3 #if defined(__x86_64__) || defined(__i386__)
4 .globl __asan_report_store1
5 .globl __asan_report_load1
6 .globl __asan_report_store2
7 .globl __asan_report_load2
8 .globl __asan_report_store4
9 .globl __asan_report_load4
10 .globl __asan_report_store8
11 .globl __asan_report_load8
12 .globl __asan_report_store16
13 .globl __asan_report_load16
14 #endif // defined(__x86_64__) || defined(__i386__)
16 // Sanitize 1-byte store. Takes one 4-byte address as an argument on
17 // stack, nothing is returned.
18 .globl __sanitizer_sanitize_store1
19 .type __sanitizer_sanitize_store1, @function
20 __sanitizer_sanitize_store1:
30 movb 0x20000000(%ecx), %cl
32 je .sanitize_store1_done
37 jl .sanitize_store1_done
41 call __asan_report_store1@PLT
42 .sanitize_store1_done:
49 // Sanitize 1-byte load. Takes one 4-byte address as an argument on
50 // stack, nothing is returned.
51 .globl __sanitizer_sanitize_load1
52 .type __sanitizer_sanitize_load1, @function
53 __sanitizer_sanitize_load1:
63 movb 0x20000000(%ecx), %cl
65 je .sanitize_load1_done
70 jl .sanitize_load1_done
74 call __asan_report_load1@PLT
82 // Sanitize 2-byte store. Takes one 4-byte address as an argument on
83 // stack, nothing is returned.
84 .globl __sanitizer_sanitize_store2
85 .type __sanitizer_sanitize_store2, @function
86 __sanitizer_sanitize_store2:
96 movb 0x20000000(%ecx), %cl
98 je .sanitize_store2_done
104 jl .sanitize_store2_done
108 call __asan_report_store2@PLT
109 .sanitize_store2_done:
116 // Sanitize 2-byte load. Takes one 4-byte address as an argument on
117 // stack, nothing is returned.
118 .globl __sanitizer_sanitize_load2
119 .type __sanitizer_sanitize_load2, @function
120 __sanitizer_sanitize_load2:
130 movb 0x20000000(%ecx), %cl
132 je .sanitize_load2_done
138 jl .sanitize_load2_done
142 call __asan_report_load2@PLT
143 .sanitize_load2_done:
150 // Sanitize 4-byte store. Takes one 4-byte address as an argument on
151 // stack, nothing is returned.
152 .globl __sanitizer_sanitize_store4
153 .type __sanitizer_sanitize_store4, @function
154 __sanitizer_sanitize_store4:
164 movb 0x20000000(%ecx), %cl
166 je .sanitize_store4_done
172 jl .sanitize_store4_done
176 call __asan_report_store4@PLT
177 .sanitize_store4_done:
184 // Sanitize 4-byte load. Takes one 4-byte address as an argument on
185 // stack, nothing is returned.
186 .globl __sanitizer_sanitize_load4
187 .type __sanitizer_sanitize_load4, @function
188 __sanitizer_sanitize_load4:
198 movb 0x20000000(%ecx), %cl
200 je .sanitize_load4_done
206 jl .sanitize_load4_done
210 call __asan_report_load4@PLT
211 .sanitize_load4_done:
218 // Sanitize 8-byte store. Takes one 4-byte address as an argument on
219 // stack, nothing is returned.
220 .globl __sanitizer_sanitize_store8
221 .type __sanitizer_sanitize_store8, @function
222 __sanitizer_sanitize_store8:
231 cmpb $0x0, 0x20000000(%ecx)
232 je .sanitize_store8_done
236 call __asan_report_store8@PLT
237 .sanitize_store8_done:
243 // Sanitize 8-byte load. Takes one 4-byte address as an argument on
244 // stack, nothing is returned.
245 .globl __sanitizer_sanitize_load8
246 .type __sanitizer_sanitize_load8, @function
247 __sanitizer_sanitize_load8:
256 cmpb $0x0, 0x20000000(%ecx)
257 je .sanitize_load8_done
261 call __asan_report_load8@PLT
262 .sanitize_load8_done:
268 // Sanitize 16-byte store. Takes one 4-byte address as an argument on
269 // stack, nothing is returned.
270 .globl __sanitizer_sanitize_store16
271 .type __sanitizer_sanitize_store16, @function
272 __sanitizer_sanitize_store16:
281 cmpw $0x0, 0x20000000(%ecx)
282 je .sanitize_store16_done
286 call __asan_report_store16@PLT
287 .sanitize_store16_done:
293 // Sanitize 16-byte load. Takes one 4-byte address as an argument on
294 // stack, nothing is returned.
295 .globl __sanitizer_sanitize_load16
296 .type __sanitizer_sanitize_load16, @function
297 __sanitizer_sanitize_load16:
306 cmpw $0x0, 0x20000000(%ecx)
307 je .sanitize_load16_done
311 call __asan_report_load16@PLT
312 .sanitize_load16_done:
318 #endif // defined(__i386__)
319 #if defined(__x86_64__)
320 // Sanitize 1-byte store. Takes one 8-byte address as an argument in %rdi,
321 // nothing is returned.
322 .globl __sanitizer_sanitize_store1
323 .type __sanitizer_sanitize_store1, @function
324 __sanitizer_sanitize_store1:
325 leaq -128(%rsp), %rsp
331 movb 0x7fff8000(%rax), %al
333 je .sanitize_store1_done
338 jl .sanitize_store1_done
343 call __asan_report_store1@PLT
344 .sanitize_store1_done:
350 // Sanitize 1-byte load. Takes one 8-byte address as an argument in %rdi,
351 // nothing is returned.
352 .globl __sanitizer_sanitize_load1
353 .type __sanitizer_sanitize_load1, @function
354 __sanitizer_sanitize_load1:
355 leaq -128(%rsp), %rsp
361 movb 0x7fff8000(%rax), %al
363 je .sanitize_load1_done
368 jl .sanitize_load1_done
373 call __asan_report_load1@PLT
374 .sanitize_load1_done:
380 // Sanitize 2-byte store. Takes one 8-byte address as an argument in %rdi,
381 // nothing is returned.
382 .globl __sanitizer_sanitize_store2
383 .type __sanitizer_sanitize_store2, @function
384 __sanitizer_sanitize_store2:
385 leaq -128(%rsp), %rsp
391 movb 0x7fff8000(%rax), %al
393 je .sanitize_store2_done
399 jl .sanitize_store2_done
404 call __asan_report_store2@PLT
405 .sanitize_store2_done:
411 // Sanitize 2-byte load. Takes one 8-byte address as an argument in %rdi,
412 // nothing is returned.
413 .globl __sanitizer_sanitize_load2
414 .type __sanitizer_sanitize_load2, @function
415 __sanitizer_sanitize_load2:
416 leaq -128(%rsp), %rsp
422 movb 0x7fff8000(%rax), %al
424 je .sanitize_load2_done
430 jl .sanitize_load2_done
435 call __asan_report_load2@PLT
436 .sanitize_load2_done:
442 // Sanitize 4-byte store. Takes one 8-byte address as an argument in %rdi,
443 // nothing is returned.
444 .globl __sanitizer_sanitize_store4
445 .type __sanitizer_sanitize_store4, @function
446 __sanitizer_sanitize_store4:
447 leaq -128(%rsp), %rsp
453 movb 0x7fff8000(%rax), %al
455 je .sanitize_store4_done
461 jl .sanitize_store4_done
466 call __asan_report_store4@PLT
467 .sanitize_store4_done:
473 // Sanitize 4-byte load. Takes one 8-byte address as an argument in %rdi,
474 // nothing is returned.
475 .globl __sanitizer_sanitize_load4
476 .type __sanitizer_sanitize_load4, @function
477 __sanitizer_sanitize_load4:
478 leaq -128(%rsp), %rsp
484 movb 0x7fff8000(%rax), %al
486 je .sanitize_load4_done
492 jl .sanitize_load4_done
497 call __asan_report_load4@PLT
498 .sanitize_load4_done:
504 // Sanitize 8-byte store. Takes one 8-byte address as an argument in %rdi,
505 // nothing is returned.
506 .globl __sanitizer_sanitize_store8
507 .type __sanitizer_sanitize_store8, @function
508 __sanitizer_sanitize_store8:
509 leaq -128(%rsp), %rsp
514 cmpb $0x0, 0x7fff8000(%rax)
515 je .sanitize_store8_done
520 call __asan_report_store8@PLT
521 .sanitize_store8_done:
526 // Sanitize 8-byte load. Takes one 8-byte address as an argument in %rdi,
527 // nothing is returned.
528 .globl __sanitizer_sanitize_load8
529 .type __sanitizer_sanitize_load8, @function
530 __sanitizer_sanitize_load8:
531 leaq -128(%rsp), %rsp
536 cmpb $0x0, 0x7fff8000(%rax)
537 je .sanitize_load8_done
542 call __asan_report_load8@PLT
543 .sanitize_load8_done:
548 // Sanitize 16-byte store. Takes one 8-byte address as an argument in %rdi,
549 // nothing is returned.
550 .globl __sanitizer_sanitize_store16
551 .type __sanitizer_sanitize_store16, @function
552 __sanitizer_sanitize_store16:
553 leaq -128(%rsp), %rsp
558 cmpw $0x0, 0x7fff8000(%rax)
559 je .sanitize_store16_done
564 call __asan_report_store16@PLT
565 .sanitize_store16_done:
570 // Sanitize 16-byte load. Takes one 8-byte address as an argument in %rdi,
571 // nothing is returned.
572 .globl __sanitizer_sanitize_load16
573 .type __sanitizer_sanitize_load16, @function
574 __sanitizer_sanitize_load16:
575 leaq -128(%rsp), %rsp
580 cmpw $0x0, 0x7fff8000(%rax)
581 je .sanitize_load16_done
586 call __asan_report_load16@PLT
587 .sanitize_load16_done:
592 #endif // defined(__x86_64__)
593 /* We do not need executable stack. */
595 .section .note.GNU-stack,"",%progbits
597 .section .note.GNU-stack,"",@progbits
598 #endif // defined(__arm__)