Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifdef CONFIG_KGDB
0003     .globl      arch_kgdb_breakpoint
0004     .type       arch_kgdb_breakpoint,#function
0005 arch_kgdb_breakpoint:
0006     ta      0x72
0007     retl
0008      nop
0009     .size       arch_kgdb_breakpoint,.-arch_kgdb_breakpoint
0010 #endif
0011 
0012     .type       __do_privact,#function
0013 __do_privact:
0014     mov     TLB_SFSR, %g3
0015     stxa        %g0, [%g3] ASI_DMMU ! Clear FaultValid bit
0016     membar      #Sync
0017     sethi       %hi(109f), %g7
0018     ba,pt       %xcc, etrap
0019 109:    or      %g7, %lo(109b), %g7
0020     call        do_privact
0021      add        %sp, PTREGS_OFF, %o0
0022     ba,a,pt     %xcc, rtrap
0023     .size       __do_privact,.-__do_privact
0024 
0025     .type       do_mna,#function
0026 do_mna:
0027     rdpr        %tl, %g3
0028     cmp     %g3, 1
0029 
0030     /* Setup %g4/%g5 now as they are used in the
0031      * winfixup code.
0032      */
0033     mov     TLB_SFSR, %g3
0034     mov     DMMU_SFAR, %g4
0035     ldxa        [%g4] ASI_DMMU, %g4
0036     ldxa        [%g3] ASI_DMMU, %g5
0037     stxa        %g0, [%g3] ASI_DMMU ! Clear FaultValid bit
0038     membar      #Sync
0039     bgu,pn      %icc, winfix_mna
0040      rdpr       %tpc, %g3
0041 
0042 1:  sethi       %hi(109f), %g7
0043     ba,pt       %xcc, etrap
0044 109:     or     %g7, %lo(109b), %g7
0045     mov     %l4, %o1
0046     mov     %l5, %o2
0047     call        mem_address_unaligned
0048      add        %sp, PTREGS_OFF, %o0
0049     ba,a,pt     %xcc, rtrap
0050     .size       do_mna,.-do_mna
0051 
0052     .type       do_lddfmna,#function
0053 do_lddfmna:
0054     sethi       %hi(109f), %g7
0055     mov     TLB_SFSR, %g4
0056     ldxa        [%g4] ASI_DMMU, %g5
0057     stxa        %g0, [%g4] ASI_DMMU ! Clear FaultValid bit
0058     membar      #Sync
0059     mov     DMMU_SFAR, %g4
0060     ldxa        [%g4] ASI_DMMU, %g4
0061     ba,pt       %xcc, etrap
0062 109:     or     %g7, %lo(109b), %g7
0063     mov     %l4, %o1
0064     mov     %l5, %o2
0065     call        handle_lddfmna
0066      add        %sp, PTREGS_OFF, %o0
0067     ba,a,pt     %xcc, rtrap
0068     .size       do_lddfmna,.-do_lddfmna
0069 
0070     .type       do_stdfmna,#function
0071 do_stdfmna:
0072     sethi       %hi(109f), %g7
0073     mov     TLB_SFSR, %g4
0074     ldxa        [%g4] ASI_DMMU, %g5
0075     stxa        %g0, [%g4] ASI_DMMU ! Clear FaultValid bit
0076     membar      #Sync
0077     mov     DMMU_SFAR, %g4
0078     ldxa        [%g4] ASI_DMMU, %g4
0079     ba,pt       %xcc, etrap
0080 109:     or     %g7, %lo(109b), %g7
0081     mov     %l4, %o1
0082     mov     %l5, %o2
0083     call        handle_stdfmna
0084      add        %sp, PTREGS_OFF, %o0
0085     ba,a,pt     %xcc, rtrap
0086      nop
0087     .size       do_stdfmna,.-do_stdfmna
0088 
0089     .type       breakpoint_trap,#function
0090 breakpoint_trap:
0091     call        sparc_breakpoint
0092      add        %sp, PTREGS_OFF, %o0
0093     ba,pt       %xcc, rtrap
0094      nop
0095     .size       breakpoint_trap,.-breakpoint_trap