/tests/gcc.c-torture/job_601_1465/bin/va-arg-18-0.asm
https://github.com/kframework/X86-64-semantics · Assembly · 528 lines · 525 code · 3 blank · 0 comment · 0 complexity · ba6095fbcddc9dbffbd0e8c7cf44625b MD5 · raw file
- .text
- .globl strlen
- strlen:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -24(%rbp)
- movq $0, -8(%rbp)
- jmp L2
- L3:
- addq $1, -8(%rbp)
- L2:
- movq -24(%rbp), %rdx
- movq -8(%rbp), %rax
- addq %rdx, %rax
- movzbl (%rax), %eax
- testb %al, %al
- jne L3
- movq -8(%rbp), %rax
- popq %rbp
- ret
- .globl strcpy
- strcpy:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -24(%rbp)
- movq %rsi, -32(%rbp)
- movq -24(%rbp), %rax
- movq %rax, -8(%rbp)
- nop
- L6:
- movq -24(%rbp), %rax
- leaq 1(%rax), %rdx
- movq %rdx, -24(%rbp)
- movq -32(%rbp), %rdx
- leaq 1(%rdx), %rcx
- movq %rcx, -32(%rbp)
- movzbl (%rdx), %edx
- movb %dl, (%rax)
- movzbl (%rax), %eax
- testb %al, %al
- jne L6
- movq -8(%rbp), %rax
- popq %rbp
- ret
- .globl strcmp
- strcmp:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -8(%rbp)
- movq %rsi, -16(%rbp)
- jmp L9
- L11:
- addq $1, -8(%rbp)
- addq $1, -16(%rbp)
- L9:
- movq -8(%rbp), %rax
- movzbl (%rax), %eax
- testb %al, %al
- je L10
- movq -8(%rbp), %rax
- movzbl (%rax), %edx
- movq -16(%rbp), %rax
- movzbl (%rax), %eax
- cmpb %al, %dl
- je L11
- L10:
- movq -8(%rbp), %rax
- movzbl (%rax), %eax
- movzbl %al, %edx
- movq -16(%rbp), %rax
- movzbl (%rax), %eax
- movzbl %al, %eax
- subl %eax, %edx
- movl %edx, %eax
- popq %rbp
- ret
- .globl strchr
- strchr:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -8(%rbp)
- movl %esi, -12(%rbp)
- jmp L14
- L16:
- movq -8(%rbp), %rax
- leaq 1(%rax), %rdx
- movq %rdx, -8(%rbp)
- movzbl (%rax), %eax
- testb %al, %al
- jne L14
- movl $0, %eax
- jmp L15
- L14:
- movq -8(%rbp), %rax
- movzbl (%rax), %eax
- movl -12(%rbp), %edx
- cmpb %dl, %al
- jne L16
- movq -8(%rbp), %rax
- L15:
- popq %rbp
- ret
- .globl strncpy
- strncpy:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -24(%rbp)
- movq %rsi, -32(%rbp)
- movq %rdx, -40(%rbp)
- movq -24(%rbp), %rax
- movq %rax, -8(%rbp)
- L20:
- movq -40(%rbp), %rax
- leaq -1(%rax), %rdx
- movq %rdx, -40(%rbp)
- testq %rax, %rax
- jne L18
- movq -8(%rbp), %rax
- jmp L19
- L18:
- movq -24(%rbp), %rax
- leaq 1(%rax), %rdx
- movq %rdx, -24(%rbp)
- movq -32(%rbp), %rdx
- leaq 1(%rdx), %rcx
- movq %rcx, -32(%rbp)
- movzbl (%rdx), %edx
- movb %dl, (%rax)
- movzbl (%rax), %eax
- testb %al, %al
- jne L20
- jmp L21
- L22:
- movq -24(%rbp), %rax
- leaq 1(%rax), %rdx
- movq %rdx, -24(%rbp)
- movb $0, (%rax)
- L21:
- movq -40(%rbp), %rax
- leaq -1(%rax), %rdx
- movq %rdx, -40(%rbp)
- testq %rax, %rax
- jne L22
- movq -8(%rbp), %rax
- L19:
- popq %rbp
- ret
- .globl strncmp
- strncmp:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -8(%rbp)
- movq %rsi, -16(%rbp)
- movq %rdx, -24(%rbp)
- jmp L24
- L26:
- movq -8(%rbp), %rax
- leaq 1(%rax), %rdx
- movq %rdx, -8(%rbp)
- movzbl (%rax), %ecx
- movq -16(%rbp), %rax
- leaq 1(%rax), %rdx
- movq %rdx, -16(%rbp)
- movzbl (%rax), %eax
- cmpb %al, %cl
- je L24
- movq -8(%rbp), %rax
- subq $1, %rax
- movzbl (%rax), %eax
- movzbl %al, %edx
- movq -16(%rbp), %rax
- subq $1, %rax
- movzbl (%rax), %eax
- movzbl %al, %eax
- subl %eax, %edx
- movl %edx, %eax
- jmp L25
- L24:
- movq -24(%rbp), %rax
- leaq -1(%rax), %rdx
- movq %rdx, -24(%rbp)
- testq %rax, %rax
- jne L26
- movl $0, %eax
- L25:
- popq %rbp
- ret
- .globl strrchr
- strrchr:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -24(%rbp)
- movl %esi, -28(%rbp)
- movq $0, -8(%rbp)
- L29:
- movq -24(%rbp), %rax
- movzbl (%rax), %eax
- movl -28(%rbp), %edx
- cmpb %dl, %al
- jne L28
- movq -24(%rbp), %rax
- movq %rax, -8(%rbp)
- L28:
- movq -24(%rbp), %rax
- leaq 1(%rax), %rdx
- movq %rdx, -24(%rbp)
- movzbl (%rax), %eax
- testb %al, %al
- jne L29
- movq -8(%rbp), %rax
- popq %rbp
- ret
- .globl memcmp
- memcmp:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -24(%rbp)
- movq %rsi, -32(%rbp)
- movq %rdx, -40(%rbp)
- movq -24(%rbp), %rax
- movq %rax, -16(%rbp)
- movq -32(%rbp), %rax
- movq %rax, -8(%rbp)
- jmp L32
- L35:
- movq -16(%rbp), %rax
- movzbl (%rax), %edx
- movq -8(%rbp), %rax
- movzbl (%rax), %eax
- cmpb %al, %dl
- je L33
- movq -16(%rbp), %rax
- movzbl (%rax), %eax
- movzbl %al, %edx
- movq -8(%rbp), %rax
- movzbl (%rax), %eax
- movzbl %al, %eax
- subl %eax, %edx
- movl %edx, %eax
- jmp L34
- L33:
- addq $1, -16(%rbp)
- addq $1, -8(%rbp)
- L32:
- movq -40(%rbp), %rax
- leaq -1(%rax), %rdx
- movq %rdx, -40(%rbp)
- testq %rax, %rax
- jne L35
- movl $0, %eax
- L34:
- popq %rbp
- ret
- .globl __stack_chk_fail
- __stack_chk_fail:
- pushq %rbp
- movq %rsp, %rbp
- movq $-1, %rax
- jmp %rax
-
- nop
- popq %rbp
- ret
- .globl exit
- exit:
- pushq %rbp
- movq %rsp, %rbp
- movl %edi, -4(%rbp)
- movq $-1, %rax
- jmp %rax
-
- nop
- popq %rbp
- ret
- .globl abort
- abort:
- pushq %rbp
- movq %rsp, %rbp
- movq $-1, %rax
- jmp %rax
-
- nop
- popq %rbp
- ret
- .globl memset
- memset:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -24(%rbp)
- movl %esi, -28(%rbp)
- movq %rdx, -40(%rbp)
- movq -24(%rbp), %rax
- movq %rax, -8(%rbp)
- jmp L40
- L41:
- movq -8(%rbp), %rax
- leaq 1(%rax), %rdx
- movq %rdx, -8(%rbp)
- movl -28(%rbp), %edx
- movb %dl, (%rax)
- L40:
- movq -40(%rbp), %rax
- leaq -1(%rax), %rdx
- movq %rdx, -40(%rbp)
- testq %rax, %rax
- jne L41
- movq -24(%rbp), %rax
- popq %rbp
- ret
- .globl memcpy
- memcpy:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -24(%rbp)
- movq %rsi, -32(%rbp)
- movq %rdx, -40(%rbp)
- movq -24(%rbp), %rax
- movq %rax, -16(%rbp)
- movq -32(%rbp), %rax
- movq %rax, -8(%rbp)
- jmp L44
- L45:
- movq -16(%rbp), %rax
- leaq 1(%rax), %rdx
- movq %rdx, -16(%rbp)
- movq -8(%rbp), %rdx
- leaq 1(%rdx), %rcx
- movq %rcx, -8(%rbp)
- movzbl (%rdx), %edx
- movb %dl, (%rax)
- L44:
- movq -40(%rbp), %rax
- leaq -1(%rax), %rdx
- movq %rdx, -40(%rbp)
- testq %rax, %rax
- jne L45
- movq -24(%rbp), %rax
- popq %rbp
- ret
- .globl free
- free:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -8(%rbp)
- nop
- popq %rbp
- ret
- .globl isprint
- isprint:
- pushq %rbp
- movq %rsp, %rbp
- movl %edi, -4(%rbp)
- cmpl $96, -4(%rbp)
- jle L49
- cmpl $122, -4(%rbp)
- jg L49
- movl $1, %eax
- jmp L50
- L49:
- cmpl $64, -4(%rbp)
- jle L51
- cmpl $90, -4(%rbp)
- jg L51
- movl $1, %eax
- jmp L50
- L51:
- cmpl $47, -4(%rbp)
- jle L52
- cmpl $57, -4(%rbp)
- jg L52
- movl $1, %eax
- jmp L50
- L52:
- movl $0, %eax
- L50:
- popq %rbp
- ret
- .globl f
- f:
- pushq %rbp
- movq %rsp, %rbp
- subq $272, %rsp
- vmovsd %xmm0, -216(%rbp)
- vmovsd %xmm1, -224(%rbp)
- vmovsd %xmm2, -232(%rbp)
- vmovsd %xmm3, -240(%rbp)
- vmovsd %xmm4, -248(%rbp)
- vmovsd %xmm5, -256(%rbp)
- vmovsd %xmm6, -264(%rbp)
- vmovsd %xmm7, -272(%rbp)
- movq %rdi, -176(%rbp)
- movq %rsi, -168(%rbp)
- movq %rdx, -160(%rbp)
- movq %rcx, -152(%rbp)
- movq %r8, -144(%rbp)
- movq %r9, -136(%rbp)
- testb %al, %al
- movq $40, %rax
- movq %rax, -184(%rbp)
- xorl %eax, %eax
- movl $0, -208(%rbp)
- movl $176, -204(%rbp)
- leaq 24(%rbp), %rax
- movq %rax, -200(%rbp)
- leaq -176(%rbp), %rax
- movq %rax, -192(%rbp)
- movl -208(%rbp), %eax
- cmpl $48, %eax
- jnb L55
- movq -192(%rbp), %rax
- movl -208(%rbp), %edx
- movl %edx, %edx
- addq %rdx, %rax
- movl -208(%rbp), %edx
- addl $8, %edx
- movl %edx, -208(%rbp)
- jmp L56
- L55:
- movq -200(%rbp), %rax
- leaq 8(%rax), %rdx
- movq %rdx, -200(%rbp)
- L56:
- movl (%rax), %eax
- cmpl $10, %eax
- je L57
- call abort
- L57:
- movl -208(%rbp), %eax
- cmpl $48, %eax
- jnb L58
- movq -192(%rbp), %rax
- movl -208(%rbp), %edx
- movl %edx, %edx
- addq %rdx, %rax
- movl -208(%rbp), %edx
- addl $8, %edx
- movl %edx, -208(%rbp)
- jmp L59
- L58:
- movq -200(%rbp), %rax
- leaq 8(%rax), %rdx
- movq %rdx, -200(%rbp)
- L59:
- movl (%rax), %eax
- cmpl $11, %eax
- je L60
- call abort
- L60:
- movl -208(%rbp), %eax
- cmpl $48, %eax
- jnb L61
- movq -192(%rbp), %rax
- movl -208(%rbp), %edx
- movl %edx, %edx
- addq %rdx, %rax
- movl -208(%rbp), %edx
- addl $8, %edx
- movl %edx, -208(%rbp)
- jmp L62
- L61:
- movq -200(%rbp), %rax
- leaq 8(%rax), %rdx
- movq %rdx, -200(%rbp)
- L62:
- movl (%rax), %eax
- cmpl $12, %eax
- je L65
- call abort
- L65:
- nop
- movq -184(%rbp), %rax
- xorq $40, %rax
- je L64
- call __stack_chk_fail
- L64:
- leave
- ret
- .globl main
- .globl _start
- _start:
- pushq %rbp
- movq %rsp, %rbp
- vmovsd LC0(%rip), %xmm7
- vmovsd LC1(%rip), %xmm6
- vmovsd LC2(%rip), %xmm5
- vmovsd LC3(%rip), %xmm4
- vmovsd LC4(%rip), %xmm3
- vmovsd LC5(%rip), %xmm2
- vmovsd LC6(%rip), %xmm1
- movabsq $4607182418800017408, %rax
- subq $8, %rsp
- vmovsd LC8(%rip), %xmm0
- leaq -8(%rsp), %rsp
- vmovsd %xmm0, (%rsp)
- movl $12, %edx
- movl $11, %esi
- movl $10, %edi
- vmovq %rax, %xmm0
- movl $8, %eax
- call f
- addq $16, %rsp
- movl $0, %edi
- call exit
- .section .rodata
- LC0:
- .long 0
- .long 1075838976
- LC1:
- .long 0
- .long 1075576832
- LC2:
- .long 0
- .long 1075314688
- LC3:
- .long 0
- .long 1075052544
- LC4:
- .long 0
- .long 1074790400
- LC5:
- .long 0
- .long 1074266112
- LC6:
- .long 0
- .long 1073741824
- LC8:
- .long 0
- .long 1075970048