Lines Matching refs:a3

129 	rsr.windowstart	a3
130 srl a2, a3 // a2 is 0... | 000000xxxxxxxxxx = WINDOWSTART >> sar
131 sll a3, a3 // a3 is 1yyyyy0000000000 | 0... = WINDOWSTART << (32 - sar)
132 bgez a3, .Linvalid_ws // verify that msbit is indeed set
134 srli a3, a3, 32-WSBITS // a3 is 0... | 1yyyyy0000000000 = a3 >> (32-NAREG/4)
135 or a2, a2, a3 // a2 is 0... | 1yyyyyxxxxxxxxxx
150 neg a3, a2 // keep only the least-significant bit set of a2 ...
151 and a3, a3, a2 // ... in a3
152 nsau a3, a3 // get index of that bit, numbered from msbit (32 if absent)
153 ssl a3 // set sar = 32 - a3 = bit index numbered from lsbit + 1
159 find_ls_one a3, a2 // set a3 to index of lsmost bit set in a2 (a2 clobbered)
161 addi a2, a3, 1 // index+1
178 sub a3, a2, a3 // a3 = WINDOWBASE + index = WINDOWBASE + (31 - msbit_index)
180 add a3, a2, a3 // a3 = WINDOWBASE + index
182 wsr.windowbase a3 // effectively do: rotw index
220 addi a3, a9, -16 // a3 gets call[i+1]'s sp - 16
221 s32i a4, a3, 0 // store call[i]'s a0
222 s32i a5, a3, 4 // store call[i]'s a1
223 s32i a6, a3, 8 // store call[i]'s a2
224 s32i a7, a3, 12 // store call[i]'s a3
233 addi a3, a13, -16 // a0 gets call[i+1]'s sp - 16
234 s32i a4, a3, 0 // store call[i]'s a0
235 s32i a5, a3, 4 // store call[i]'s a1
236 s32i a6, a3, 8 // store call[i]'s a2
237 s32i a7, a3, 12 // store call[i]'s a3
239 addi a3, a5, -12 // call[i-1]'s sp address
240 l32i a3, a3, 0 // a3 is call[i-1]'s sp
242 addi a3, a3, -32 // a3 points to our spill area
244 s32i a8, a3, 0 // store call[i]'s a4
245 s32i a9, a3, 4 // store call[i]'s a5
246 s32i a10, a3, 8 // store call[i]'s a6
247 s32i a11, a3, 12 // store call[i]'s a7
262 s32i a3, a13, 12 // store call[i]'s a3
264 addi a3, a1, -12 // call[i-1]'s sp address
265 l32i a3, a3, 0 // a3 has call[i-1]'s sp
267 addi a3, a3, -48 // a3 points to our save area
269 s32i a4, a3, 0 // store call[i]'s a4
270 s32i a5, a3, 4 // store call[i]'s a5
271 s32i a6, a3, 8 // store call[i]'s a6
272 s32i a7, a3, 12 // store call[i]'s a7
273 s32i a8, a3, 16 // store call[i]'s a4
274 s32i a9, a3, 20 // store call[i]'s a5
275 s32i a10, a3, 24 // store call[i]'s a6
276 s32i a11, a3, 28 // store call[i]'s a7
320 rsr.windowbase a3 // get current WINDOWBASE
322 1: addi a3, a3, -1 // decrement towards original WINDOWBASE
325 extui a3, a3, 0, WBBITS // mask out upper base bits, in case of carry-over
329 ssl a3 // set shift left ... (sar = 32 - orig WB)
330 slli a3, a2, 32-WSBITS // left-justify start bits
331 src a2, a2, a3 // rotate left by original WINDOWBASE
334 rsr.sar a3 // retrieve 32 - original WINDOWBASE
336 sub a3, a2, a3 // restore original WINDOWBASE
337 wsr.windowbase a3 // back to original WINDOWBASE