Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .file "concurrency.c"
- .text
- .p2align 4
- .type t2, @function
- t2:
- .LFB26:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- .cfi_offset 6, -16
- movq %rdi, %rbp
- pushq %rbx
- .cfi_def_cfa_offset 24
- .cfi_offset 3, -24
- leaq 5(%rdi), %rbx
- subq $8, %rsp
- .cfi_def_cfa_offset 32
- movb $1, 5(%rdi)
- jmp .L2
- .p2align 4,,10
- .p2align 3
- .L3:
- movb $0, (%rbx)
- call thrd_yield@PLT
- movb $1, (%rbx)
- .L2:
- movzbl 4(%rbp), %eax
- testb %al, %al
- jne .L3
- movl 0(%rbp), %eax
- addl $1, %eax
- movl %eax, 0(%rbp)
- xorl %eax, %eax
- movb $0, 5(%rbp)
- addq $8, %rsp
- .cfi_def_cfa_offset 24
- popq %rbx
- .cfi_def_cfa_offset 16
- popq %rbp
- .cfi_def_cfa_offset 8
- ret
- .cfi_endproc
- .LFE26:
- .size t2, .-t2
- .p2align 4
- .type t1, @function
- t1:
- .LFB25:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- .cfi_offset 6, -16
- movq %rdi, %rbp
- pushq %rbx
- .cfi_def_cfa_offset 24
- .cfi_offset 3, -24
- leaq 4(%rdi), %rbx
- subq $8, %rsp
- .cfi_def_cfa_offset 32
- movb $1, 4(%rdi)
- jmp .L7
- .p2align 4,,10
- .p2align 3
- .L8:
- movb $0, (%rbx)
- call thrd_yield@PLT
- movb $1, (%rbx)
- .L7:
- movzbl 5(%rbp), %eax
- testb %al, %al
- jne .L8
- movl 0(%rbp), %eax
- addl $1, %eax
- movl %eax, 0(%rbp)
- xorl %eax, %eax
- movb $0, 4(%rbp)
- addq $8, %rsp
- .cfi_def_cfa_offset 24
- popq %rbx
- .cfi_def_cfa_offset 16
- popq %rbp
- .cfi_def_cfa_offset 8
- ret
- .cfi_endproc
- .LFE25:
- .size t1, .-t1
- .section .rodata.str1.1,"aMS",@progbits,1
- .LC0:
- .string "%d\n"
- .section .text.startup,"ax",@progbits
- .p2align 4
- .globl main
- .type main, @function
- main:
- .LFB27:
- .cfi_startproc
- pushq %rbx
- .cfi_def_cfa_offset 16
- .cfi_offset 3, -16
- subq $32, %rsp
- .cfi_def_cfa_offset 48
- movq %fs:40, %rdi
- movq %rdi, 24(%rsp)
- movl $8, %edi
- call malloc@PLT
- testq %rax, %rax
- je .L13
- movl $0, (%rax)
- movq %rax, %rbx
- leaq 8(%rsp), %rdi
- movq %rax, %rdx
- movb $0, 4(%rax)
- leaq t1(%rip), %rsi
- movb $0, 5(%rax)
- call thrd_create@PLT
- movq %rbx, %rdx
- leaq 16(%rsp), %rdi
- leaq t2(%rip), %rsi
- call thrd_create@PLT
- movq 8(%rsp), %rdi
- xorl %esi, %esi
- call thrd_join@PLT
- movq 16(%rsp), %rdi
- xorl %esi, %esi
- call thrd_join@PLT
- movl (%rbx), %esi
- leaq .LC0(%rip), %rdi
- xorl %eax, %eax
- call printf@PLT
- movq %rbx, %rdi
- call free@PLT
- xorl %eax, %eax
- .L10:
- movq 24(%rsp), %rdx
- subq %fs:40, %rdx
- jne .L15
- addq $32, %rsp
- .cfi_remember_state
- .cfi_def_cfa_offset 16
- popq %rbx
- .cfi_def_cfa_offset 8
- ret
- .L13:
- .cfi_restore_state
- movl $1, %eax
- jmp .L10
- .L15:
- call __stack_chk_fail@PLT
- .cfi_endproc
- .LFE27:
- .size main, .-main
- .ident "GCC: (GNU) 15.1.1 20250425"
- .section .note.GNU-stack,"",@progbits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement