/tests/gcc.c-torture/job_601_1465/bin/pr22141-1-0.asm
https://github.com/kframework/X86-64-semantics · Assembly · 585 lines · 582 code · 3 blank · 0 comment · 0 complexity · f70b84f5647cdc7438bcc11b7c7469f0 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
- .comm u,4,1
- .globl c1
- c1:
- pushq %rbp
- movq %rsp, %rbp
- subq $8, %rsp
- movq %rdi, -8(%rbp)
- movq -8(%rbp), %rax
- movzbl (%rax), %eax
- cmpb $1, %al
- jne L54
- movq -8(%rbp), %rax
- movzbl 1(%rax), %eax
- cmpb $2, %al
- jne L54
- movq -8(%rbp), %rax
- movzbl 2(%rax), %eax
- cmpb $3, %al
- jne L54
- movq -8(%rbp), %rax
- movzbl 3(%rax), %eax
- cmpb $4, %al
- je L55
- L54:
- call abort
- L55:
- movq -8(%rbp), %rax
- movl $4, %edx
- movl $170, %esi
- movq %rax, %rdi
- call memset
- nop
- leave
- ret
- .globl c2
- c2:
- pushq %rbp
- movq %rsp, %rbp
- subq $8, %rsp
- movq %rdi, -8(%rbp)
- movq -8(%rbp), %rax
- movq %rax, %rdi
- call c1
- nop
- leave
- ret
- .globl c3
- c3:
- pushq %rbp
- movq %rsp, %rbp
- subq $8, %rsp
- movq %rdi, -8(%rbp)
- movq -8(%rbp), %rax
- addq $8, %rax
- movq %rax, %rdi
- call c2
- nop
- leave
- ret
- .globl f1
- f1:
- pushq %rbp
- movq %rsp, %rbp
- movb $1, u(%rip)
- movb $2, u + 1(%rip)
- movb $3, u + 2(%rip)
- movb $4, u + 3(%rip)
- nop
- popq %rbp
- ret
- .globl f2
- f2:
- pushq %rbp
- movq %rsp, %rbp
- movb $1, u(%rip)
- movb $2, u + 1(%rip)
- movb $3, u + 2(%rip)
- movb $4, u + 3(%rip)
- nop
- popq %rbp
- ret
- .globl f3
- f3:
- pushq %rbp
- movq %rsp, %rbp
- movb $4, u + 3(%rip)
- movb $2, u + 1(%rip)
- movb $1, u(%rip)
- movb $3, u + 2(%rip)
- nop
- popq %rbp
- ret
- .globl f4
- f4:
- pushq %rbp
- movq %rsp, %rbp
- subq $16, %rsp
- movq $40, %rax
- movq %rax, -8(%rbp)
- xorl %eax, %eax
- movb $1, -16(%rbp)
- movb $2, -15(%rbp)
- movb $3, -14(%rbp)
- movb $4, -13(%rbp)
- leaq -16(%rbp), %rax
- movq %rax, %rdi
- call c2
- nop
- movq -8(%rbp), %rax
- xorq $40, %rax
- je L62
- call __stack_chk_fail
- L62:
- leave
- ret
- .globl f5
- f5:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -8(%rbp)
- movq -8(%rbp), %rax
- movb $1, (%rax)
- movq -8(%rbp), %rax
- movb $3, 2(%rax)
- movq -8(%rbp), %rax
- movb $4, 3(%rax)
- movq -8(%rbp), %rax
- movb $2, 1(%rax)
- nop
- popq %rbp
- ret
- .globl f6
- f6:
- pushq %rbp
- movq %rsp, %rbp
- subq $32, %rsp
- movq $40, %rax
- movq %rax, -8(%rbp)
- xorl %eax, %eax
- movb $1, -24(%rbp)
- movb $2, -23(%rbp)
- movb $3, -22(%rbp)
- movb $4, -21(%rbp)
- leaq -32(%rbp), %rax
- movq %rax, %rdi
- call c3
- nop
- movq -8(%rbp), %rax
- xorq $40, %rax
- je L65
- call __stack_chk_fail
- L65:
- leave
- ret
- .globl f7
- f7:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -8(%rbp)
- movq -8(%rbp), %rax
- movb $1, 8(%rax)
- movq -8(%rbp), %rax
- movb $3, 10(%rax)
- movq -8(%rbp), %rax
- movb $4, 11(%rax)
- movq -8(%rbp), %rax
- movb $2, 9(%rax)
- nop
- popq %rbp
- ret
- .globl main
- .globl _start
- _start:
- pushq %rbp
- movq %rsp, %rbp
- subq $32, %rsp
- movq $40, %rax
- movq %rax, -8(%rbp)
- xorl %eax, %eax
- call f1
- movl $u, %edi
- call c2
- call f2
- movl $u, %edi
- call c1
- call f3
- movl $u, %edi
- call c2
- call f4
- movl $u, %edi
- call f5
- movl $u, %edi
- call c2
- call f6
- leaq -32(%rbp), %rax
- movq %rax, %rdi
- call f7
- leaq -32(%rbp), %rax
- movq %rax, %rdi
- call c3
- movl $0, %eax
- movq -8(%rbp), %rdx
- xorq $40, %rdx
- je L69
- call __stack_chk_fail
- L69:
- leave
- ret