blob: 03971e89e8e7313b62aedc55abe67b0bfbee735a [file] [log] [blame]
.align 2
.globl q_atomic_test_and_set_int
.globl .q_atomic_test_and_set_int
q_atomic_test_and_set_int:
.q_atomic_test_and_set_int:
lwarx 6,0,3
xor. 6,6,4
bne $+12
stwcx. 5,0,3
bne- $-16
subfic 3,6,0
adde 3,3,6
blr
LT..q_atomic_test_and_set_int:
.long 0
.byte 0,9,32,64,0,0,3,0
.long 0
.long LT..q_atomic_test_and_set_int-.q_atomic_test_and_set_int
.short 25
.byte "q_atomic_test_and_set_int"
.align 2
.align 2
.globl q_atomic_test_and_set_acquire_int
.globl .q_atomic_test_and_set_acquire_int
q_atomic_test_and_set_acquire_int:
.q_atomic_test_and_set_acquire_int:
lwarx 6,0,3
xor. 6,6,4
bne $+16
stwcx. 5,0,3
bne- $-16
isync
subfic 3,6,0
adde 3,3,6
blr
LT..q_atomic_test_and_set_acquire_int:
.long 0
.byte 0,9,32,64,0,0,3,0
.long 0
.long LT..q_atomic_test_and_set_acquire_int-.q_atomic_test_and_set_acquire_int
.short 33
.byte "q_atomic_test_and_set_acquire_int"
.align 2
.align 2
.globl q_atomic_test_and_set_release_int
.globl .q_atomic_test_and_set_release_int
q_atomic_test_and_set_release_int:
.q_atomic_test_and_set_release_int:
lwarx 6,0,3
xor. 6,6,4
bne $+12
stwcx. 5,0,3
bne- $-16
subfic 3,6,0
adde 3,3,6
blr
LT..q_atomic_test_and_set_release_int:
.long 0
.byte 0,9,32,64,0,0,3,0
.long 0
.long LT..q_atomic_test_and_set_release_int-.q_atomic_test_and_set_release_int
.short 33
.byte "q_atomic_test_and_set_release_int"
.align 2
.align 2
.globl q_atomic_test_and_set_ptr
.globl .q_atomic_test_and_set_ptr
q_atomic_test_and_set_ptr:
.q_atomic_test_and_set_ptr:
lwarx 6,0,3
xor. 6,6,4
bne $+12
stwcx. 5,0,3
bne- $-16
subfic 3,6,0
adde 3,3,6
blr
LT..q_atomic_test_and_set_ptr:
.long 0
.byte 0,9,32,64,0,0,3,0
.long 0
.long LT..q_atomic_test_and_set_ptr-.q_atomic_test_and_set_ptr
.short 25
.byte "q_atomic_test_and_set_ptr"
.align 2
.align 2
.globl q_atomic_test_and_set_acquire_ptr
.globl .q_atomic_test_and_set_acquire_ptr
q_atomic_test_and_set_acquire_ptr:
.q_atomic_test_and_set_acquire_ptr:
lwarx 6,0,3
xor. 6,6,4
bne $+16
stwcx. 5,0,3
bne- $-16
isync
subfic 3,6,0
adde 3,3,6
blr
LT..q_atomic_test_and_set_acquire_ptr:
.long 0
.byte 0,9,32,64,0,0,3,0
.long 0
.long LT..q_atomic_test_and_set_acquire_ptr-.q_atomic_test_and_set_acquire_ptr
.short 25
.byte "q_atomic_test_and_set_acquire_ptr"
.align 2
.align 2
.globl q_atomic_test_and_set_release_ptr
.globl .q_atomic_test_and_set_release_ptr
q_atomic_test_and_set_release_ptr:
.q_atomic_test_and_set_release_ptr:
lwarx 6,0,3
xor. 6,6,4
bne $+12
stwcx. 5,0,3
bne- $-16
subfic 3,6,0
adde 3,3,6
blr
LT..q_atomic_test_and_set_release_ptr:
.long 0
.byte 0,9,32,64,0,0,3,0
.long 0
.long LT..q_atomic_test_and_set_release_ptr-.q_atomic_test_and_set_release_ptr
.short 33
.byte "q_atomic_test_and_set_release_ptr"
.align 2
.align 2
.globl q_atomic_increment
.globl .q_atomic_increment
q_atomic_increment:
.q_atomic_increment:
lwarx 4,0,3
addi 4,4,1
stwcx. 4,0,3
bne- $-12
mr 3,4
blr
LT..q_atomic_increment:
.long 0
.byte 0,9,32,64,0,0,1,0
.long 0
.long LT..q_atomic_increment-.q_atomic_increment
.short 18
.byte "q_atomic_increment"
.align 2
.align 2
.globl q_atomic_decrement
.globl .q_atomic_decrement
q_atomic_decrement:
.q_atomic_decrement:
lwarx 4,0,3
subi 4,4,1
stwcx. 4,0,3
bne- $-12
mr 3,4
blr
LT..q_atomic_decrement:
.long 0
.byte 0,9,32,64,0,0,1,0
.long 0
.long LT..q_atomic_decrement-.q_atomic_decrement
.short 18
.byte "q_atomic_decrement"
.align 2
.align 2
.globl q_atomic_set_int
.globl .q_atomic_set_int
q_atomic_set_int:
.q_atomic_set_int:
lwarx 5,0,3
stwcx. 4,0,3
bne- $-8
mr 3,5
blr
LT..q_atomic_set_int:
.long 0
.byte 0,9,32,64,0,0,2,0
.long 0
.long LT..q_atomic_set_int-.q_atomic_set_int
.short 16
.byte "q_atomic_set_int"
.align 2
.align 2
.globl q_atomic_fetch_and_store_acquire_int
.globl .q_atomic_fetch_and_store_acquire_int
q_atomic_fetch_and_store_acquire_int:
.q_atomic_fetch_and_store_acquire_int:
lwarx 5,0,3
stwcx. 4,0,3
bne- $-8
isync
mr 3,5
blr
LT..q_atomic_fetch_and_store_acquire_int:
.long 0
.byte 0,9,32,64,0,0,2,0
.long 0
.long LT..q_atomic_fetch_and_store_acquire_int-.q_atomic_fetch_and_store_acquire_int
.short 16
.byte "q_atomic_fetch_and_store_acquire_int"
.align 2
.align 2
.globl q_atomic_fetch_and_store_release_int
.globl .q_atomic_fetch_and_store_release_int
q_atomic_fetch_and_store_release_int:
.q_atomic_fetch_and_store_release_int:
lwarx 5,0,3
stwcx. 4,0,3
bne- $-8
mr 3,5
blr
LT..q_atomic_fetch_and_store_release_int:
.long 0
.byte 0,9,32,64,0,0,2,0
.long 0
.long LT..q_atomic_fetch_and_store_release_int-.q_atomic_fetch_and_store_release_int
.short 16
.byte "q_atomic_fetch_and_store_release_int"
.align 2
.align 2
.globl q_atomic_set_ptr
.globl .q_atomic_set_ptr
q_atomic_set_ptr:
.q_atomic_set_ptr:
lwarx 5,0,3
stwcx. 4,0,3
bne- $-8
mr 3,5
blr
LT..q_atomic_set_ptr:
.long 0
.byte 0,9,32,64,0,0,2,0
.long 0
.long LT..q_atomic_set_ptr-.q_atomic_set_ptr
.short 16
.byte "q_atomic_set_ptr"
.align 2
.align 2
.globl q_atomic_fetch_and_store_acquire_ptr
.globl .q_atomic_fetch_and_store_acquire_ptr
q_atomic_fetch_and_store_acquire_ptr:
.q_atomic_fetch_and_store_acquire_ptr:
lwarx 5,0,3
stwcx. 4,0,3
bne- $-8
isync
mr 3,5
blr
LT..q_atomic_fetch_and_store_acquire_ptr:
.long 0
.byte 0,9,32,64,0,0,2,0
.long 0
.long LT..q_atomic_fetch_and_store_acquire_ptr-.q_atomic_fetch_and_store_acquire_ptr
.short 16
.byte "q_atomic_fetch_and_store_acquire_ptr"
.align 2
.align 2
.globl q_atomic_fetch_and_store_release_ptr
.globl .q_atomic_fetch_and_store_release_ptr
q_atomic_fetch_and_store_release_ptr:
.q_atomic_fetch_and_store_release_ptr:
lwarx 5,0,3
stwcx. 4,0,3
bne- $-8
mr 3,5
blr
LT..q_atomic_fetch_and_store_release_ptr:
.long 0
.byte 0,9,32,64,0,0,2,0
.long 0
.long LT..q_atomic_fetch_and_store_release_ptr-.q_atomic_fetch_and_store_release_ptr
.short 16
.byte "q_atomic_fetch_and_store_release_ptr"
.align 2
.align 2
.globl q_atomic_fetch_and_add_int
.globl .q_atomic_fetch_and_add_int
q_atomic_fetch_and_add_int:
.q_atomic_fetch_and_add_int:
lwarx 5,0,3
add 6,4,5
stwcx. 6,0,3
bne- $-12
mr 3,5
blr
LT..q_atomic_fetch_and_add_int:
.long 0
.byte 0,9,32,64,0,0,1,0
.long 0
.long LT..q_atomic_fetch_and_add_int-.q_atomic_fetch_and_add_int
.short 18
.byte "q_atomic_fetch_and_add_int"
.align 2
.align 2
.globl q_atomic_fetch_and_add_acquire_int
.globl .q_atomic_fetch_and_add_acquire_int
q_atomic_fetch_and_add_acquire_int:
.q_atomic_fetch_and_add_acquire_int:
lwarx 5,0,3
add 6,4,5
stwcx. 6,0,3
bne- $-12
isync
mr 3,5
blr
LT..q_atomic_fetch_and_add_acquire_int:
.long 0
.byte 0,9,32,64,0,0,1,0
.long 0
.long LT..q_atomic_fetch_and_add_acquire_int-.q_atomic_fetch_and_add_acquire_int
.short 18
.byte "q_atomic_fetch_and_add_acquire_int"
.align 2
.align 2
.globl q_atomic_fetch_and_add_release_int
.globl .q_atomic_fetch_and_add_release_int
q_atomic_fetch_and_add_release_int:
.q_atomic_fetch_and_add_release_int:
lwarx 5,0,3
add 6,4,5
stwcx. 6,0,3
bne- $-12
mr 3,5
blr
LT..q_atomic_fetch_and_add_release_int:
.long 0
.byte 0,9,32,64,0,0,1,0
.long 0
.long LT..q_atomic_fetch_and_add_release_int-.q_atomic_fetch_and_add_release_int
.short 34
.byte "q_atomic_fetch_and_add_release_int"
.align 2
.align 2
.globl q_atomic_fetch_and_add_ptr
.globl .q_atomic_fetch_and_add_ptr
q_atomic_fetch_and_add_ptr:
.q_atomic_fetch_and_add_ptr:
lwarx 5,0,3
add 6,4,5
stwcx. 6,0,3
bne- $-12
mr 3,5
blr
LT..q_atomic_fetch_and_add_ptr:
.long 0
.byte 0,9,32,64,0,0,1,0
.long 0
.long LT..q_atomic_fetch_and_add_ptr-.q_atomic_fetch_and_add_ptr
.short 26
.byte "q_atomic_fetch_and_add_ptr"
.align 2
.align 2
.globl q_atomic_fetch_and_add_acquire_ptr
.globl .q_atomic_fetch_and_add_acquire_ptr
q_atomic_fetch_and_add_acquire_ptr:
.q_atomic_fetch_and_add_acquire_ptr:
lwarx 5,0,3
add 6,4,5
stwcx. 6,0,3
bne- $-12
isync
mr 3,5
blr
LT..q_atomic_fetch_and_add_acquire_ptr:
.long 0
.byte 0,9,32,64,0,0,1,0
.long 0
.long LT..q_atomic_fetch_and_add_acquire_ptr-.q_atomic_fetch_and_add_acquire_ptr
.short 34
.byte "q_atomic_fetch_and_add_acquire_ptr"
.align 2
.align 2
.globl q_atomic_fetch_and_add_release_ptr
.globl .q_atomic_fetch_and_add_release_ptr
q_atomic_fetch_and_add_release_ptr:
.q_atomic_fetch_and_add_release_ptr:
lwarx 5,0,3
add 6,4,5
stwcx. 6,0,3
bne- $-12
mr 3,5
blr
LT..q_atomic_fetch_and_add_release_ptr:
.long 0
.byte 0,9,32,64,0,0,1,0
.long 0
.long LT..q_atomic_fetch_and_add_release_ptr-.q_atomic_fetch_and_add_release_ptr
.short 34
.byte "q_atomic_fetch_and_add_release_ptr"
.align 2
_section_.text:
.long _section_.text