0001
0002 .align 32
0003 .globl __flushw_user
0004 .type __flushw_user,#function
0005 __flushw_user:
0006 rdpr %otherwin, %g1
0007 brz,pn %g1, 2f
0008 clr %g2
0009 1: save %sp, -128, %sp
0010 rdpr %otherwin, %g1
0011 brnz,pt %g1, 1b
0012 add %g2, 1, %g2
0013 1: sub %g2, 1, %g2
0014 brnz,pt %g2, 1b
0015 restore %g0, %g0, %g0
0016 2: retl
0017 nop
0018 .size __flushw_user,.-__flushw_user
0019 EXPORT_SYMBOL(__flushw_user)
0020
0021
0022
0023
0024
0025
0026 .globl stack_trace_flush
0027 .type stack_trace_flush,#function
0028 stack_trace_flush:
0029 rdpr %pstate, %o0
0030 wrpr %o0, PSTATE_IE, %pstate
0031
0032 rdpr %cwp, %g1
0033 rdpr %canrestore, %g2
0034 sub %g1, 1, %g3
0035
0036 1: brz,pn %g2, 2f
0037 sub %g2, 1, %g2
0038 wrpr %g3, %cwp
0039 stx %fp, [%sp + STACK_BIAS + RW_V9_I6]
0040 stx %i7, [%sp + STACK_BIAS + RW_V9_I7]
0041 ba,pt %xcc, 1b
0042 sub %g3, 1, %g3
0043
0044 2: wrpr %g1, %cwp
0045 wrpr %o0, %pstate
0046
0047 retl
0048 nop
0049 .size stack_trace_flush,.-stack_trace_flush
0050
0051 #ifdef CONFIG_SMP
0052 .globl hard_smp_processor_id
0053 .type hard_smp_processor_id,#function
0054 hard_smp_processor_id:
0055 #endif
0056 .globl real_hard_smp_processor_id
0057 .type real_hard_smp_processor_id,#function
0058 real_hard_smp_processor_id:
0059 __GET_CPUID(%o0)
0060 retl
0061 nop
0062 #ifdef CONFIG_SMP
0063 .size hard_smp_processor_id,.-hard_smp_processor_id
0064 #endif
0065 .size real_hard_smp_processor_id,.-real_hard_smp_processor_id
0066 EXPORT_SYMBOL_GPL(real_hard_smp_processor_id)