Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
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     /* Flush %fp and %i7 to the stack for all register
0022      * windows active inside of the cpu.  This allows
0023      * show_stack_trace() to avoid using an expensive
0024      * 'flushw'.
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)