25 lines
475 B
ArmAsm
25 lines
475 B
ArmAsm
|
.globl getcc
|
||
|
.type getcc,#function
|
||
|
getcc:
|
||
|
ldx [%o0 + PT_V9_TSTATE], %o1
|
||
|
srlx %o1, 32, %o1
|
||
|
and %o1, 0xf, %o1
|
||
|
retl
|
||
|
stx %o1, [%o0 + PT_V9_G1]
|
||
|
.size getcc,.-getcc
|
||
|
|
||
|
.globl setcc
|
||
|
.type setcc,#function
|
||
|
setcc:
|
||
|
ldx [%o0 + PT_V9_TSTATE], %o1
|
||
|
ldx [%o0 + PT_V9_G1], %o2
|
||
|
or %g0, %ulo(TSTATE_ICC), %o3
|
||
|
sllx %o3, 32, %o3
|
||
|
andn %o1, %o3, %o1
|
||
|
sllx %o2, 32, %o2
|
||
|
and %o2, %o3, %o2
|
||
|
or %o1, %o2, %o1
|
||
|
retl
|
||
|
stx %o1, [%o0 + PT_V9_TSTATE]
|
||
|
.size setcc,.-setcc
|