All pastes #912935 Raw Edit

atomic.s

public text v1 · immutable
·published 2008-02-21 18:49 UTC
rendered paste body
    .code32
    .section .text, "ax"

    .align 4
    .globl atomic_add

atomic_add:
    push %ebp
    movl %esp,%ebp
    movl 12(%ebp), %ecx
    movl 8(%ebp), %edx
    movl 12(%ebp), %eax
    lock
    addl %edx,(%ecx)
    popl %ebp
    ret

    .size atomic_add, .-atomic_add
    .type atomic_add, @function

    .align 4
    .globl atomic_sub

atomic_sub:
    pushl %ebp
    movl %esp, %ebp
    movl 12(%ebp), %ecx
    movl 8(%ebp), %edx
    movl 12(%ebp), %eax
    lock
    subl %edx,(%ecx)
    popl %ebp
    ret

    .size atomic_sub, .-atomic_sub
    .type atomic_sub, @function

    .align 4
    .globl atomic_inc

atomic_inc:
    pushl %ebp
    movl %esp, %ebp
    movl 8(%ebp), %edx
    movl 8(%ebp), %eax
    lock
    incl (%edx)
    popl %ebp
    ret

    .size atomic_inc, .-atomic_inc
    .type atomic_inc, @function

    .align 4
    .globl atomic_dec

atomic_dec:
    pushl %ebp
    movl %esp, %ebp
    movl 8(%ebp), %edx
    movl 8(%ebp), %eax
    lock
    decl (%edx)
    popl %ebp
    ret

    .size atomic_dec, .-atomic_dec
    .type atomic_dec, @function