Lines Matching +full:24 +full:- +full:9

1 /* SPDX-License-Identifier: GPL-2.0 */
5 * Kernel entry-points.
8 #include <asm/asm-offsets.h>
32 .cfi_rel_offset $16, 24
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.
58 stq $3, 24($sp)
64 .cfi_rel_offset $3, 24
78 stq $24, 112($sp)
95 .cfi_rel_offset $24, 112
106 ldq $3, 24($sp)
124 ldq $24, 112($sp)
144 .cfi_restore $24
149 .cfi_adjust_cfa_offset -SP_OFF
155 .cfi_rel_offset $9, 0
158 .cfi_rel_offset $12, 24
167 .cfi_restore $9
174 .cfi_adjust_cfa_offset -SWITCH_STACK_SIZE
178 * Non-syscall kernel entry points.
201 /* save $9 - $15 so the inline exception code can manipulate them. */
204 stq $9, 0($sp)
207 stq $12, 24($sp)
211 .cfi_rel_offset $9, 0
214 .cfi_rel_offset $12, 24
224 ldq $9, 0($sp)
227 ldq $12, 24($sp)
232 .cfi_restore $9
239 .cfi_adjust_cfa_offset -56
254 lda $sp, -256($sp)
262 stq $3, 24($sp)
265 bne $0, entUnaUser /* yup -> do user-level unaligned fault */
270 stq $9, 72($sp)
277 /* 16-18 PAL-saved */
283 stq $24, 192($sp)
298 .cfi_rel_offset $9, 9*8
310 .cfi_rel_offset $24, 24*8
323 ldq $3, 24($sp)
329 ldq $9, 72($sp)
336 /* 16-18 PAL-saved */
342 ldq $24, 192($sp)
357 .cfi_restore $9
369 .cfi_restore $24
375 .cfi_adjust_cfa_offset -256
384 .cfi_adjust_cfa_offset -256
386 lda $sp, -56($sp)
388 stq $9, 0($sp)
391 stq $12, 24($sp)
395 .cfi_rel_offset $9, 0
398 .cfi_rel_offset $12, 24
406 ldq $9, 0($sp)
409 ldq $12, 24($sp)
414 .cfi_restore $9
421 .cfi_adjust_cfa_offset -56
442 * Note that a0-a2 are not saved by PALcode as with the other entry points.
458 stq $16, SP_OFF+24($sp)
466 .cfi_rel_offset $16, SP_OFF+24
485 cmovne $26, 0, $18 /* $18 = 0 => non-restartable */
580 ldq $16, SP_OFF+24($sp)
622 mov $18, $9 /* save old syscall number */
625 mov $9, $18
634 * Save and restore the switch stack -- aka the balance of the user context.
644 lda $sp, -SWITCH_STACK_SIZE($sp)
646 stq $9, 0($sp)
649 stq $12, 24($sp)
690 .size do_switch_stack, .-do_switch_stack
698 ldq $9, 0($sp)
701 ldq $12, 24($sp)
742 .size undo_switch_stack, .-undo_switch_stack
761 .size alpha_switch_to, .-alpha_switch_to
777 * ... and new kernel threads - here
785 mov $9, $27
787 jsr $26, ($9)
821 lda $9, ret_from_straced
822 cmpult $26, $9, $9
823 lda $sp, -SWITCH_STACK_SIZE($sp)
825 bne $9, 1f
845 Store a non-zero there - -ENOSYS we need in register
848 lda $0, -ENOSYS