Lines Matching full:first
68 * - first - If `last' specified, this serves as start of general-purpose
101 .macro cfirestorelist first, last
103 .if \last-\first
104 cfirestorelist \first, \last-1
109 .macro cfisavelist first, last, index=1
111 .if \last-\first
112 cfisavelist \first, \last-1, \index+1
116 .macro _prologue first=-1, last=-1, push_ip=PAC_LEAF_PUSH_IP, push_lr=0
123 .if \first != -1
126 _prologue \first, \first, \push_ip, \push_lr
142 .if \first != -1
143 .if \last != \first
150 push {r\first-r\last, ip, lr}
151 .cfi_adjust_cfa_offset ((\last-\first)+3)*4
154 cfisavelist \first, \last, 3
157 push {r\first-r\last, ip}
158 .cfi_adjust_cfa_offset ((\last-\first)+2)*4
160 cfisavelist \first, \last, 2
165 push {r\first-r\last, lr}
166 .cfi_adjust_cfa_offset ((\last-\first)+2)*4
168 cfisavelist \first, \last, 2
171 push {r\first-r\last}
172 .cfi_adjust_cfa_offset ((\last-\first)+1)*4
173 cfisavelist \first, \last, 1
176 .else // \last == \first
180 push {r\first, ip, lr}
184 cfisavelist \first, \first, 3
187 push {r\first, ip}
190 cfisavelist \first, \first, 2
195 push {r\first, lr}
198 cfisavelist \first, \first, 2
201 push {r\first}
203 cfisavelist \first, \first, 1
207 .else // \first == -1
232 .macro _epilogue first=-1, last=-1, push_ip=PAC_LEAF_PUSH_IP, push_lr=0
239 .if \first != -1
242 _epilogue \first, \first, \push_ip, \push_lr
245 .if \last != \first
252 pop {r\first-r\last, ip, lr}
255 cfirestorelist \first, \last
258 pop {r\first-r\last, ip}
260 cfirestorelist \first, \last
265 pop {r\first-r\last, lr}
267 cfirestorelist \first, \last
270 pop {r\first-r\last}
271 cfirestorelist \first, \last
274 .else // \last == \first
278 pop {r\first, ip, lr}
281 cfirestorelist \first, \first
284 pop {r\first, ip}
286 cfirestorelist \first, \first
291 pop {r\first, lr}
293 cfirestorelist \first, \first
296 pop {r\first}
297 cfirestorelist \first, \first
301 .else // \first == -1
328 .macro _preprocess_reglist1 first:req, last:req, push_ip:req, push_lr:req, reglist_op:req
330 \reglist_op \first, 0, \push_ip, \push_lr
332 \reglist_op \first, 1, \push_ip, \push_lr
334 \reglist_op \first, 2, \push_ip, \push_lr
336 \reglist_op \first, 3, \push_ip, \push_lr
338 \reglist_op \first, 4, \push_ip, \push_lr
340 \reglist_op \first, 5, \push_ip, \push_lr
342 \reglist_op \first, 6, \push_ip, \push_lr
344 \reglist_op \first, 7, \push_ip, \push_lr
346 \reglist_op \first, 8, \push_ip, \push_lr
348 \reglist_op \first, 9, \push_ip, \push_lr
350 \reglist_op \first, 10, \push_ip, \push_lr
352 \reglist_op \first, 11, \push_ip, \push_lr
358 /* Clean up expressions in 'first'. */
359 .macro _preprocess_reglist first:req, last, push_ip=0, push_lr=0, reglist_op:req
361 _preprocess_reglist \first \first \push_ip \push_lr
363 .if \first > \last
364 .error "last (\last) must be at least as great as first (\first)"
366 .if \first == 0
368 .elseif \first == 1
370 .elseif \first == 2
372 .elseif \first == 3
374 .elseif \first == 4
376 .elseif \first == 5
378 .elseif \first == 6
380 .elseif \first == 7
382 .elseif \first == 8
384 .elseif \first == 9
386 .elseif \first == 10
388 .elseif \first == 11
391 .error "first (\first) out of range"
396 .macro _align8 first, last, push_ip=0, push_lr=0, reglist_op=_prologue
397 .ifb \first
399 .error "can't have last (\last) without specifying first"
402 \reglist_op first=-1, last=-1, push_ip=\push_ip, push_lr=\push_lr
409 .endif // .ifb \first
412 _align8 \first, \first, \push_ip, \push_lr, \reglist_op
420 .ifeq (\last - \first + \push_ip + \push_lr) % 2
421 .if \first == 0
422 .error "Alignment required and first register is r0"
425 _preprocess_reglist \first-1, \last, \push_ip, \push_lr, \reglist_op
427 _preprocess_reglist \first \last, \push_ip, \push_lr, \reglist_op
432 .macro prologue first, last, push_ip=PAC_LEAF_PUSH_IP, push_lr=0, align8=STACK_ALIGN_ENFORCE
434 _align8 \first, \last, \push_ip, \push_lr, _prologue
436 _prologue first=\first, last=\last, push_ip=\push_ip, push_lr=\push_lr
440 .macro epilogue first, last, push_ip=PAC_LEAF_PUSH_IP, push_lr=0, align8=STACK_ALIGN_ENFORCE
442 _align8 \first, \last, \push_ip, \push_lr, reglist_op=_epilogue
444 _epilogue first=\first, last=\last, push_ip=\push_ip, push_lr=\push_lr