2005-02-19 07:19:48 +03:00
|
|
|
START_FILE
|
|
|
|
|
|
|
|
.pred.safe_across_calls p1-p5,p16-p63
|
|
|
|
.text
|
|
|
|
.align 16
|
2005-07-04 01:38:51 +04:00
|
|
|
.global opal_atomic_mb#
|
|
|
|
.proc opal_atomic_mb#
|
|
|
|
opal_atomic_mb:
|
2005-02-19 07:19:48 +03:00
|
|
|
.prologue
|
|
|
|
.body
|
2006-06-17 09:01:54 +04:00
|
|
|
mf
|
2005-02-19 07:19:48 +03:00
|
|
|
br.ret.sptk.many b0
|
|
|
|
;;
|
2005-07-04 01:38:51 +04:00
|
|
|
.endp opal_atomic_mb#
|
2005-02-19 07:19:48 +03:00
|
|
|
.align 16
|
2005-07-04 01:38:51 +04:00
|
|
|
.global opal_atomic_rmb#
|
|
|
|
.proc opal_atomic_rmb#
|
|
|
|
opal_atomic_rmb:
|
2005-02-19 07:19:48 +03:00
|
|
|
.prologue
|
|
|
|
.body
|
2006-06-17 09:01:54 +04:00
|
|
|
mf
|
2005-02-19 07:19:48 +03:00
|
|
|
br.ret.sptk.many b0
|
|
|
|
;;
|
2005-07-04 01:38:51 +04:00
|
|
|
.endp opal_atomic_rmb#
|
2005-02-19 07:19:48 +03:00
|
|
|
.align 16
|
2005-07-04 01:38:51 +04:00
|
|
|
.global opal_atomic_wmb#
|
|
|
|
.proc opal_atomic_wmb#
|
|
|
|
opal_atomic_wmb:
|
2005-02-19 07:19:48 +03:00
|
|
|
.prologue
|
|
|
|
.body
|
2006-06-17 09:01:54 +04:00
|
|
|
mf
|
2005-02-19 07:19:48 +03:00
|
|
|
br.ret.sptk.many b0
|
|
|
|
;;
|
2005-07-04 01:38:51 +04:00
|
|
|
.endp opal_atomic_wmb#
|
2005-02-19 07:19:48 +03:00
|
|
|
.align 16
|
2005-07-04 01:38:51 +04:00
|
|
|
.global opal_atomic_cmpset_acq_32#
|
|
|
|
.proc opal_atomic_cmpset_acq_32#
|
|
|
|
opal_atomic_cmpset_acq_32:
|
2005-02-19 07:19:48 +03:00
|
|
|
.prologue
|
|
|
|
.body
|
|
|
|
mov ar.ccv=r33;;
|
|
|
|
cmpxchg4.acq r32=[r32],r34,ar.ccv
|
|
|
|
;;
|
|
|
|
cmp4.eq p6, p7 = r32, r33
|
|
|
|
;;
|
|
|
|
(p6) addl r8 = 1, r0
|
|
|
|
(p7) mov r8 = r0
|
|
|
|
br.ret.sptk.many b0
|
|
|
|
;;
|
2005-07-04 01:38:51 +04:00
|
|
|
.endp opal_atomic_cmpset_acq_32#
|
2005-02-19 07:19:48 +03:00
|
|
|
.align 16
|
2005-07-04 01:38:51 +04:00
|
|
|
.global opal_atomic_cmpset_rel_32#
|
|
|
|
.proc opal_atomic_cmpset_rel_32#
|
|
|
|
opal_atomic_cmpset_rel_32:
|
2005-02-19 07:19:48 +03:00
|
|
|
.prologue
|
|
|
|
.body
|
|
|
|
mov ar.ccv=r33;;
|
|
|
|
cmpxchg4.rel r32=[r32],r34,ar.ccv
|
|
|
|
;;
|
|
|
|
cmp4.eq p6, p7 = r32, r33
|
|
|
|
;;
|
|
|
|
(p6) addl r8 = 1, r0
|
|
|
|
(p7) mov r8 = r0
|
|
|
|
br.ret.sptk.many b0
|
|
|
|
;;
|
2005-07-04 01:38:51 +04:00
|
|
|
.endp opal_atomic_cmpset_rel_32#
|
2005-02-19 07:19:48 +03:00
|
|
|
.align 16
|
2005-07-04 01:38:51 +04:00
|
|
|
.global opal_atomic_cmpset_acq_64#
|
|
|
|
.proc opal_atomic_cmpset_acq_64#
|
|
|
|
opal_atomic_cmpset_acq_64:
|
2005-02-19 07:19:48 +03:00
|
|
|
.prologue
|
|
|
|
.body
|
|
|
|
mov ar.ccv=r33;;
|
|
|
|
cmpxchg8.acq r32=[r32],r34,ar.ccv
|
|
|
|
;;
|
|
|
|
cmp.eq p6, p7 = r33, r32
|
|
|
|
;;
|
|
|
|
(p6) addl r8 = 1, r0
|
|
|
|
(p7) mov r8 = r0
|
|
|
|
br.ret.sptk.many b0
|
|
|
|
;;
|
2005-07-04 01:38:51 +04:00
|
|
|
.endp opal_atomic_cmpset_acq_64#
|
2005-02-19 07:19:48 +03:00
|
|
|
.align 16
|
2005-07-04 01:38:51 +04:00
|
|
|
.global opal_atomic_cmpset_rel_64#
|
|
|
|
.proc opal_atomic_cmpset_rel_64#
|
|
|
|
opal_atomic_cmpset_rel_64:
|
2005-02-19 07:19:48 +03:00
|
|
|
.prologue
|
|
|
|
.body
|
|
|
|
mov ar.ccv=r33;;
|
|
|
|
cmpxchg8.rel r32=[r32],r34,ar.ccv
|
|
|
|
;;
|
|
|
|
cmp.eq p6, p7 = r33, r32
|
|
|
|
;;
|
|
|
|
(p6) addl r8 = 1, r0
|
|
|
|
(p7) mov r8 = r0
|
|
|
|
br.ret.sptk.many b0
|
|
|
|
;;
|
2005-07-04 01:38:51 +04:00
|
|
|
.endp opal_atomic_cmpset_rel_64#
|
2005-08-24 07:42:31 +04:00
|
|
|
.align 16
|
|
|
|
.global opal_sys_timer_get_cycles#
|
|
|
|
.proc opal_sys_timer_get_cycles#
|
|
|
|
opal_sys_timer_get_cycles:
|
|
|
|
.prologue
|
|
|
|
.body
|
|
|
|
mov r8=ar.itc
|
|
|
|
br.ret.sptk.many b0
|
|
|
|
;;
|
|
|
|
.endp opal_sys_timer_get_cycles#
|
2005-02-19 07:19:48 +03:00
|
|
|
.ident "GCC: (GNU) 3.2.3 20030502 (Red Hat Linux 3.2.3-49)"
|