etrap_64.S (e5451c8f8330e03ad3cfa16048b4daf961af434f) | etrap_64.S (a7159a87a3836f61a97882e671d2d66bbb96c62e) |
---|---|
1/* 2 * etrap.S: Preparing for entry into the kernel on Sparc V9. 3 * 4 * Copyright (C) 1996, 1997 David S. Miller (davem@caip.rutgers.edu) 5 * Copyright (C) 1997, 1998, 1999 Jakub Jelinek (jj@ultra.linux.cz) 6 */ 7 8 --- 24 unchanged lines hidden (view full) --- 33etrap_syscall: TRAP_LOAD_THREAD_REG(%g6, %g1) 34 rdpr %tstate, %g1 35 or %g1, %g3, %g1 36 sllx %g2, 20, %g3 37 andcc %g1, TSTATE_PRIV, %g0 38 or %g1, %g3, %g1 39 bne,pn %xcc, 1f 40 sub %sp, STACKFRAME_SZ+TRACEREG_SZ-STACK_BIAS, %g2 | 1/* 2 * etrap.S: Preparing for entry into the kernel on Sparc V9. 3 * 4 * Copyright (C) 1996, 1997 David S. Miller (davem@caip.rutgers.edu) 5 * Copyright (C) 1997, 1998, 1999 Jakub Jelinek (jj@ultra.linux.cz) 6 */ 7 8 --- 24 unchanged lines hidden (view full) --- 33etrap_syscall: TRAP_LOAD_THREAD_REG(%g6, %g1) 34 rdpr %tstate, %g1 35 or %g1, %g3, %g1 36 sllx %g2, 20, %g3 37 andcc %g1, TSTATE_PRIV, %g0 38 or %g1, %g3, %g1 39 bne,pn %xcc, 1f 40 sub %sp, STACKFRAME_SZ+TRACEREG_SZ-STACK_BIAS, %g2 |
41 wrpr %g0, 7, %cleanwin | 41661: wrpr %g0, 7, %cleanwin 42 .section .fast_win_ctrl_1insn_patch, "ax" 43 .word 661b 44 .word 0x85880000 ! allclean 45 .previous |
42 43 sethi %hi(TASK_REGOFF), %g2 44 sethi %hi(TSTATE_PEF), %g3 45 or %g2, %lo(TASK_REGOFF), %g2 46 and %g1, %g3, %g3 47 brnz,pn %g3, 1f 48 add %g6, %g2, %g2 49 wr %g0, 0, %fprs --- 33 unchanged lines hidden (view full) --- 83 nop 84 ba,a,pt %xcc, etrap_user_spill_64bit 85 86etrap_save: save %g2, -STACK_BIAS, %sp 87 mov %g6, %l6 88 89 bne,pn %xcc, 3f 90 mov PRIMARY_CONTEXT, %l4 | 46 47 sethi %hi(TASK_REGOFF), %g2 48 sethi %hi(TSTATE_PEF), %g3 49 or %g2, %lo(TASK_REGOFF), %g2 50 and %g1, %g3, %g3 51 brnz,pn %g3, 1f 52 add %g6, %g2, %g2 53 wr %g0, 0, %fprs --- 33 unchanged lines hidden (view full) --- 87 nop 88 ba,a,pt %xcc, etrap_user_spill_64bit 89 90etrap_save: save %g2, -STACK_BIAS, %sp 91 mov %g6, %l6 92 93 bne,pn %xcc, 3f 94 mov PRIMARY_CONTEXT, %l4 |
91 rdpr %canrestore, %g3 | 95661: rdpr %canrestore, %g3 96 .section .fast_win_ctrl_1insn_patch, "ax" 97 .word 661b 98 nop 99 .previous 100 |
92 rdpr %wstate, %g2 | 101 rdpr %wstate, %g2 |
93 wrpr %g0, 0, %canrestore | 102661: wrpr %g0, 0, %canrestore 103 .section .fast_win_ctrl_1insn_patch, "ax" 104 .word 661b 105 nop 106 .previous |
94 sll %g2, 3, %g2 95 96 /* Set TI_SYS_FPDEPTH to 1 and clear TI_SYS_NOERROR. */ 97 mov 1, %l5 98 sth %l5, [%l6 + TI_SYS_NOERROR] 99 | 107 sll %g2, 3, %g2 108 109 /* Set TI_SYS_FPDEPTH to 1 and clear TI_SYS_NOERROR. */ 110 mov 1, %l5 111 sth %l5, [%l6 + TI_SYS_NOERROR] 112 |
100 wrpr %g3, 0, %otherwin | 113661: wrpr %g3, 0, %otherwin 114 .section .fast_win_ctrl_1insn_patch, "ax" 115 .word 661b 116 .word 0x87880000 ! otherw 117 .previous 118 |
101 wrpr %g2, 0, %wstate 102 sethi %hi(sparc64_kern_pri_context), %g2 103 ldx [%g2 + %lo(sparc64_kern_pri_context)], %g3 104 105661: stxa %g3, [%l4] ASI_DMMU 106 .section .sun4v_1insn_patch, "ax" 107 .word 661b 108 stxa %g3, [%l4] ASI_MMU --- 132 unchanged lines hidden --- | 119 wrpr %g2, 0, %wstate 120 sethi %hi(sparc64_kern_pri_context), %g2 121 ldx [%g2 + %lo(sparc64_kern_pri_context)], %g3 122 123661: stxa %g3, [%l4] ASI_DMMU 124 .section .sun4v_1insn_patch, "ax" 125 .word 661b 126 stxa %g3, [%l4] ASI_MMU --- 132 unchanged lines hidden --- |