diff options
author | axis <qt-info@nokia.com> | 2009-04-24 11:34:15 (GMT) |
---|---|---|
committer | axis <qt-info@nokia.com> | 2009-04-24 11:34:15 (GMT) |
commit | 8f427b2b914d5b575a4a7c0ed65d2fb8f45acc76 (patch) | |
tree | a17e1a767a89542ab59907462206d7dcf2e504b2 /src/corelib/arch/alpha | |
download | Qt-8f427b2b914d5b575a4a7c0ed65d2fb8f45acc76.zip Qt-8f427b2b914d5b575a4a7c0ed65d2fb8f45acc76.tar.gz Qt-8f427b2b914d5b575a4a7c0ed65d2fb8f45acc76.tar.bz2 |
Long live Qt for S60!
Diffstat (limited to 'src/corelib/arch/alpha')
-rw-r--r-- | src/corelib/arch/alpha/arch.pri | 4 | ||||
-rw-r--r-- | src/corelib/arch/alpha/qatomic_alpha.s | 199 |
2 files changed, 203 insertions, 0 deletions
diff --git a/src/corelib/arch/alpha/arch.pri b/src/corelib/arch/alpha/arch.pri new file mode 100644 index 0000000..448a531 --- /dev/null +++ b/src/corelib/arch/alpha/arch.pri @@ -0,0 +1,4 @@ +# +# Alpha architecture +# +!*-g++*:SOURCES += $$QT_ARCH_CPP/qatomic_alpha.s diff --git a/src/corelib/arch/alpha/qatomic_alpha.s b/src/corelib/arch/alpha/qatomic_alpha.s new file mode 100644 index 0000000..9363b35 --- /dev/null +++ b/src/corelib/arch/alpha/qatomic_alpha.s @@ -0,0 +1,199 @@ + .set noreorder + .set volatile + .set noat + .arch ev4 + .text + .align 2 + .align 4 + .globl q_atomic_test_and_set_int + .ent q_atomic_test_and_set_int +q_atomic_test_and_set_int: + .frame $30,0,$26,0 + .prologue 0 +1: ldl_l $0,0($16) + cmpeq $0,$17,$0 + beq $0,3f + mov $18,$0 + stl_c $0,0($16) + beq $0,2f + br 3f +2: br 1b +3: addl $31,$0,$0 + ret $31,($26),1 + .end q_atomic_test_and_set_int + .align 2 + .align 4 + .globl q_atomic_test_and_set_acquire_int + .ent q_atomic_test_and_set_acquire_int +q_atomic_test_and_set_acquire_int: + .frame $30,0,$26,0 + .prologue 0 +1: ldl_l $0,0($16) + cmpeq $0,$17,$0 + beq $0,3f + mov $18,$0 + stl_c $0,0($16) + beq $0,2f + br 3f +2: br 1b +3: mb + addl $31,$0,$0 + ret $31,($26),1 + .end q_atomic_test_and_set_acquire_int + .align 2 + .align 4 + .globl q_atomic_test_and_set_release_int + .ent q_atomic_test_and_set_release_int +q_atomic_test_and_set_release_int: + .frame $30,0,$26,0 + .prologue 0 + mb +1: ldl_l $0,0($16) + cmpeq $0,$17,$0 + beq $0,3f + mov $18,$0 + stl_c $0,0($16) + beq $0,2f + br 3f +2: br 1b +3: addl $31,$0,$0 + ret $31,($26),1 + .end q_atomic_test_and_set_release_int + .align 2 + .align 4 + .globl q_atomic_test_and_set_ptr + .ent q_atomic_test_and_set_ptr +q_atomic_test_and_set_ptr: + .frame $30,0,$26,0 + .prologue 0 +1: ldq_l $0,0($16) + cmpeq $0,$17,$0 + beq $0,3f + mov $18,$0 + stq_c $0,0($16) + beq $0,2f + br 3f +2: br 1b +3: addl $31,$0,$0 + ret $31,($26),1 + .end q_atomic_test_and_set_ptr + .align 2 + .align 4 + .globl q_atomic_increment + .ent q_atomic_increment +q_atomic_increment: + .frame $30,0,$26,0 + .prologue 0 +1: ldl_l $0,0($16) + addl $0,1,$1 + stl_c $1,0($16) + beq $1,2f + br 3f +2: br 1b +3: addl $31,$0,$0 + cmpeq $0,$1,$0 + xor $0,1,$0 + ret $31,($26),1 + .end q_atomic_increment + .align 2 + .align 4 + .globl q_atomic_decrement + .ent q_atomic_decrement +q_atomic_decrement: + .frame $30,0,$26,0 + .prologue 0 +1: ldl_l $0,0($16) + subl $0,1,$1 + stl_c $1,0($16) + beq $1,2f + br 3f +2: br 1b +3: addl $31,$0,$0 + cmpeq $0,1,$0 + xor $0,1,$0 + ret $31,($26),1 + .end q_atomic_decrement + .align 2 + .align 4 + .globl q_atomic_set_int + .ent q_atomic_set_int +q_atomic_set_int: + .frame $30,0,$26,0 + .prologue 0 +1: ldl_l $0,0($16) + mov $17,$1 + stl_c $1,0($16) + beq $1,2f + br 3f +2: br 1b +3: addl $31,$0,$0 + ret $31,($26),1 + .end q_atomic_set_int + .align 2 + .align 4 + .globl q_atomic_set_ptr + .ent q_atomic_set_ptr +q_atomic_set_ptr: + .frame $30,0,$26,0 + .prologue 0 +1: ldq_l $0,0($16) + mov $17,$1 + stq_c $1,0($16) + beq $1,2f + br 3f +2: br 1b +3: ret $31,($26),1 + .end q_atomic_set_ptr + + .align 2 + .align 4 + .globl q_atomic_fetch_and_add_int + .ent q_atomic_fetch_and_add_int +q_atomic_fetch_and_add_int: + .frame $30,0,$26,0 + .prologue 0 +1: ldl_l $0,0($16) + addl $0,$17,$1 + stl_c $1,0($16) + beq $1,2f + br 3f +2: br 1b +3: addl $31,$0,$0 + ret $31,($26),1 + .end q_atomic_fetch_and_add_int + + .align 2 + .align 4 + .globl q_atomic_fetch_and_add_acquire_int + .ent q_atomic_fetch_and_add_acquire_int +q_atomic_fetch_and_add_acquire_int: + .frame $30,0,$26,0 + .prologue 0 +1: ldl_l $0,0($16) + addl $0,$17,$1 + stl_c $1,0($16) + beq $1,2f + br 3f +2: br 1b +3: mb + addl $31,$0,$0 + ret $31,($26),1 + .end q_atomic_fetch_and_add_acquire_int + + .align 2 + .align 4 + .globl q_atomic_fetch_and_add_release_int + .ent q_atomic_fetch_and_add_release_int +q_atomic_fetch_and_add_release_int: + .frame $30,0,$26,0 + .prologue 0 + mb +1: ldl_l $0,0($16) + addl $0,$17,$1 + stl_c $1,0($16) + beq $1,2f + br 3f +2: br 1b +3: addl $31,$0,$0 + ret $31,($26),1 + .end q_atomic_fetch_and_add_release_int |