These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / frv / lib / atomic64-ops.S
index b6194ee..c4c4723 100644 (file)
        .balign 4
 
 
-###############################################################################
-#
-# long long atomic64_inc_return(atomic64_t *v)
-#
-###############################################################################
-       .globl          atomic64_inc_return
-        .type          atomic64_inc_return,@function
-atomic64_inc_return:
-       or.p            gr8,gr8,gr10
-0:
-       orcc            gr0,gr0,gr0,icc3                /* set ICC3.Z */
-       ckeq            icc3,cc7
-       ldd.p           @(gr10,gr0),gr8                 /* LDD.P/ORCR must be atomic */
-       orcr            cc7,cc7,cc3                     /* set CC3 to true */
-       addicc          gr9,#1,gr9,icc0
-       addxi           gr8,#0,gr8,icc0
-       cstd.p          gr8,@(gr10,gr0)         ,cc3,#1
-       corcc           gr29,gr29,gr0           ,cc3,#1 /* clear ICC3.Z if store happens */
-       beq             icc3,#0,0b
-       bralr
-
-       .size           atomic64_inc_return, .-atomic64_inc_return
-
-###############################################################################
-#
-# long long atomic64_dec_return(atomic64_t *v)
-#
-###############################################################################
-       .globl          atomic64_dec_return
-        .type          atomic64_dec_return,@function
-atomic64_dec_return:
-       or.p            gr8,gr8,gr10
-0:
-       orcc            gr0,gr0,gr0,icc3                /* set ICC3.Z */
-       ckeq            icc3,cc7
-       ldd.p           @(gr10,gr0),gr8                 /* LDD.P/ORCR must be atomic */
-       orcr            cc7,cc7,cc3                     /* set CC3 to true */
-       subicc          gr9,#1,gr9,icc0
-       subxi           gr8,#0,gr8,icc0
-       cstd.p          gr8,@(gr10,gr0)         ,cc3,#1
-       corcc           gr29,gr29,gr0           ,cc3,#1 /* clear ICC3.Z if store happens */
-       beq             icc3,#0,0b
-       bralr
-
-       .size           atomic64_dec_return, .-atomic64_dec_return
-
-###############################################################################
-#
-# long long atomic64_add_return(long long i, atomic64_t *v)
-#
-###############################################################################
-       .globl          atomic64_add_return
-        .type          atomic64_add_return,@function
-atomic64_add_return:
-       or.p            gr8,gr8,gr4
-       or              gr9,gr9,gr5
-0:
-       orcc            gr0,gr0,gr0,icc3                /* set ICC3.Z */
-       ckeq            icc3,cc7
-       ldd.p           @(gr10,gr0),gr8                 /* LDD.P/ORCR must be atomic */
-       orcr            cc7,cc7,cc3                     /* set CC3 to true */
-       addcc           gr9,gr5,gr9,icc0
-       addx            gr8,gr4,gr8,icc0
-       cstd.p          gr8,@(gr10,gr0)         ,cc3,#1
-       corcc           gr29,gr29,gr0           ,cc3,#1 /* clear ICC3.Z if store happens */
-       beq             icc3,#0,0b
-       bralr
-
-       .size           atomic64_add_return, .-atomic64_add_return
-
-###############################################################################
-#
-# long long atomic64_sub_return(long long i, atomic64_t *v)
-#
-###############################################################################
-       .globl          atomic64_sub_return
-        .type          atomic64_sub_return,@function
-atomic64_sub_return:
-       or.p            gr8,gr8,gr4
-       or              gr9,gr9,gr5
-0:
-       orcc            gr0,gr0,gr0,icc3                /* set ICC3.Z */
-       ckeq            icc3,cc7
-       ldd.p           @(gr10,gr0),gr8                 /* LDD.P/ORCR must be atomic */
-       orcr            cc7,cc7,cc3                     /* set CC3 to true */
-       subcc           gr9,gr5,gr9,icc0
-       subx            gr8,gr4,gr8,icc0
-       cstd.p          gr8,@(gr10,gr0)         ,cc3,#1
-       corcc           gr29,gr29,gr0           ,cc3,#1 /* clear ICC3.Z if store happens */
-       beq             icc3,#0,0b
-       bralr
-
-       .size           atomic64_sub_return, .-atomic64_sub_return
-
 ###############################################################################
 #
 # uint64_t __xchg_64(uint64_t i, uint64_t *v)