Lines Matching +full:1 +full:br +full:- +full:10

1 /* SPDX-License-Identifier: GPL-2.0 */
5 * Kernel entry-points.
8 #include <asm/asm-offsets.h>
39 .size \func, . - \func
43 * This defines the normal kernel pt-regs layout.
45 * regs 9-15 preserved by C code
46 * regs 16-18 saved by PAL-code
47 * regs 29-30 saved and set up by PAL-code
48 * JRP - Save regs 16-18 in a special area of the stack, so that
49 * the palcode-provided values are available to the signal handler.
56 stq $1, 8($sp)
62 .cfi_rel_offset $1, 8
104 ldq $1, 8($sp)
131 .cfi_restore $1
149 .cfi_adjust_cfa_offset -SP_OFF
153 bsr $1, do_switch_stack
156 .cfi_rel_offset $10, 8
165 bsr $1, undo_switch_stack
167 .cfi_restore $10
173 .cfi_adjust_cfa_offset -SWITCH_STACK_SIZE
177 * Non-syscall kernel entry points.
200 /* save $9 - $15 so the inline exception code can manipulate them. */
204 stq $10, 8($sp)
211 .cfi_rel_offset $10, 8
224 ldq $10, 8($sp)
232 .cfi_restore $10
238 .cfi_adjust_cfa_offset -56
240 br ret_from_sys_call
253 lda $sp, -256($sp)
259 stq $1, 8($sp)
264 bne $0, entUnaUser /* yup -> do user-level unaligned fault */
270 stq $10, 80($sp)
276 /* 16-18 PAL-saved */
289 .cfi_rel_offset $1, 1*8
298 .cfi_rel_offset $10, 10*8
320 ldq $1, 8($sp)
329 ldq $10, 80($sp)
335 /* 16-18 PAL-saved */
348 .cfi_restore $1
357 .cfi_restore $10
374 .cfi_adjust_cfa_offset -256
383 .cfi_adjust_cfa_offset -256
385 lda $sp, -56($sp)
388 stq $10, 8($sp)
395 .cfi_rel_offset $10, 8
406 ldq $10, 8($sp)
414 .cfi_restore $10
420 .cfi_adjust_cfa_offset -56
421 br ret_from_sys_call
441 * Note that a0-a2 are not saved by PALcode as with the other entry points.
475 beq $4, 1f
477 1: jsr $26, ($27), sys_ni_syscall
487 cmovne $26, 0, $18 /* $18 = 0 => non-restartable */
512 br restore_other
528 addq $31, 1, $1 /* set a3 for errno return */
531 stq $1, 72($sp) /* a3 for return */
532 br ret_from_sys_call
559 br ret_to_user
566 br restore_all
577 ldl $1, TI_STATUS($8)
578 and $1, TS_SAVED_FP, $3
579 or $1, TS_SAVED_FP, $2
580 bne $3, 1f
583 1:
597 lda $1, NR_syscalls($31)
600 cmpult $0, $1, $1
602 beq $1, 1f
604 1: jsr $26, ($27), sys_gettimeofday
617 br $31, ret_from_sys_call
626 addq $31, 1, $1 /* set a3 for errno return */
628 stq $1, 72($sp) /* a3 for return */
632 mov $19, $10 /* save old a3 */
635 mov $10, $19
639 br ret_from_sys_call
643 * Save and restore the switch stack -- aka the balance of the user context.
651 .cfi_register 64, $1
653 lda $sp, -SWITCH_STACK_SIZE($sp)
656 stq $10, 8($sp)
663 ret $31, ($1), 1
665 .size do_switch_stack, .-do_switch_stack
671 .cfi_register 64, $1
674 ldq $10, 8($sp)
682 ret $31, ($1), 1
684 .size undo_switch_stack, .-undo_switch_stack
692 V( 0); V( 1); V( 2); V( 3)
694 V( 8); V( 9); V(10); V(11)
705 .size __save_fpu, .-__save_fpu
711 beq $3, 1f
714 V( 0); V( 1); V( 2); V( 3)
717 V( 8); V( 9); V(10); V(11)
723 1: stl $2, TI_STATUS($8)
724 br restore_other
737 ldl $1, TI_STATUS($8)
738 and $1, TS_RESTORE_FP, $3
739 bne $3, 1f
740 or $1, TS_RESTORE_FP | TS_SAVED_FP, $2
741 and $1, TS_SAVED_FP, $3
743 bne $3, 1f
745 1:
753 .size alpha_switch_to, .-alpha_switch_to
769 * ... and new kernel threads - here
778 mov $10, $16
780 br $31, ret_to_user
795 bsr $1, do_switch_stack
797 ldl $1, TI_STATUS($8)
798 and $1, TS_SAVED_FP, $3
799 or $1, TS_SAVED_FP, $2
800 bne $3, 1f
803 1:
824 lda $sp, -SWITCH_STACK_SIZE($sp)
826 bne $9, 1f
828 1: br $1, undo_switch_stack
829 br ret_from_sys_call
846 Store a non-zero there - -ENOSYS we need in register
849 lda $0, -ENOSYS