Changes in kernel/arch/ia64/src/asm.S [1b20da0:a35b458] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/asm.S
r1b20da0 ra35b458 46 46 FUNCTION_BEGIN(memcpy_to_uspace) 47 47 alloc loc0 = ar.pfs, 3, 1, 0, 0 48 48 49 49 adds r14 = 7, in1 50 50 mov r2 = ar.lc … … 53 53 cmp.ne p6, p7 = r14, in1 54 54 (p7) br.cond.dpnt 3f ;; 55 55 56 56 0: 57 57 58 58 cmp.ne p6, p7 = 0, in2 59 59 (p7) br.cond.dpnt 2f ;; … … 62 62 (p6) mov r17 = r0 ;; 63 63 (p6) mov ar.lc = r14 64 64 65 65 1: 66 66 67 67 add r14 = r16, in1 68 68 add r15 = r16, in0 … … 72 72 st1 [r15] = r14 73 73 br.cloop.sptk.few 1b ;; 74 74 75 75 2: 76 76 77 77 mov ar.lc = r2 78 78 mov ar.pfs = loc0 79 79 br.ret.sptk.many rp 80 80 81 81 3: 82 82 83 83 adds r14 = 7, in0 ;; 84 84 and r14 = -8, r14 ;; … … 92 92 (p6) mov r17 = r0 ;; 93 93 (p6) mov ar.lc = r14 94 94 95 95 4: 96 96 97 97 shladd r14 = r16, 3, r0 98 98 adds r16 = 1, r17 ;; … … 103 103 st8 [r14] = r15 104 104 br.cloop.sptk.few 4b 105 105 106 106 5: 107 107 108 108 and r15 = 7, in2 109 109 shladd r14 = r18, 3, r0 … … 116 116 (p6) br.cond.dpnt 2b ;; 117 117 mov ar.lc = r15 118 118 119 119 6: 120 120 121 121 add r14 = r16, r17 122 122 add r15 = r16, in0 … … 155 155 FUNCTION_BEGIN(switch_to_userspace) 156 156 alloc loc0 = ar.pfs, 6, 3, 0, 0 157 157 158 158 /* Disable interruption collection and interrupts */ 159 159 rsm (PSR_IC_MASK | PSR_I_MASK) 160 160 srlz.d ;; 161 161 srlz.i ;; 162 162 163 163 mov cr.ipsr = in4 164 164 mov cr.iip = in0 165 165 mov r12 = in1 166 166 167 167 xor r1 = r1, r1 168 168 169 169 /* r2 is defined to hold pcb_ptr - set it to 0 */ 170 170 xor r2 = r2, r2 171 171 172 172 mov loc1 = cr.ifs 173 173 movl loc2 = PFM_MASK ;; 174 174 and loc1 = loc2, loc1 ;; 175 175 mov cr.ifs = loc1 ;; /* prevent decrementing BSP by rfi */ 176 176 177 177 invala 178 178 179 179 mov loc1 = ar.rsc ;; 180 180 and loc1 = ~3, loc1 ;; 181 181 mov ar.rsc = loc1 ;; /* put RSE into enforced lazy mode */ 182 182 183 183 flushrs ;; 184 184 185 185 mov ar.bspstore = in2 ;; 186 186 mov ar.rsc = in5 ;; 187 187 188 188 mov r8 = in3 189 189 190 190 rfi ;; 191 191 FUNCTION_END(switch_to_userspace)
Note:
See TracChangeset
for help on using the changeset viewer.