entry_32.S (fba961ab29e5ffb055592442808bb0f7962e05da) | entry_32.S (4fe2d8b11a370af286287a2661de9d4e6c9a145a) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright (C) 1991,1992 Linus Torvalds 4 * 5 * entry_32.S contains the system-call and low-level fault and trap handling routines. 6 * 7 * Stack layout while running C code: 8 * ptrace needs to have all registers on the stack. --- 928 unchanged lines hidden (view full) --- 937 pushl $-1 # mark this as an int 938 SAVE_ALL 939 ENCODE_FRAME_POINTER 940 xorl %edx, %edx # error code 0 941 movl %esp, %eax # pt_regs pointer 942 943 /* Are we currently on the SYSENTER stack? */ 944 movl PER_CPU_VAR(cpu_entry_area), %ecx | 1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright (C) 1991,1992 Linus Torvalds 4 * 5 * entry_32.S contains the system-call and low-level fault and trap handling routines. 6 * 7 * Stack layout while running C code: 8 * ptrace needs to have all registers on the stack. --- 928 unchanged lines hidden (view full) --- 937 pushl $-1 # mark this as an int 938 SAVE_ALL 939 ENCODE_FRAME_POINTER 940 xorl %edx, %edx # error code 0 941 movl %esp, %eax # pt_regs pointer 942 943 /* Are we currently on the SYSENTER stack? */ 944 movl PER_CPU_VAR(cpu_entry_area), %ecx |
945 addl $CPU_ENTRY_AREA_SYSENTER_stack + SIZEOF_SYSENTER_stack, %ecx 946 subl %eax, %ecx /* ecx = (end of SYSENTER_stack) - esp */ 947 cmpl $SIZEOF_SYSENTER_stack, %ecx | 945 addl $CPU_ENTRY_AREA_entry_stack + SIZEOF_entry_stack, %ecx 946 subl %eax, %ecx /* ecx = (end of entry_stack) - esp */ 947 cmpl $SIZEOF_entry_stack, %ecx |
948 jb .Ldebug_from_sysenter_stack 949 950 TRACE_IRQS_OFF 951 call do_debug 952 jmp ret_from_exception 953 954.Ldebug_from_sysenter_stack: 955 /* We're on the SYSENTER stack. Switch off. */ --- 25 unchanged lines hidden (view full) --- 981 pushl %eax # pt_regs->orig_ax 982 SAVE_ALL 983 ENCODE_FRAME_POINTER 984 xorl %edx, %edx # zero error code 985 movl %esp, %eax # pt_regs pointer 986 987 /* Are we currently on the SYSENTER stack? */ 988 movl PER_CPU_VAR(cpu_entry_area), %ecx | 948 jb .Ldebug_from_sysenter_stack 949 950 TRACE_IRQS_OFF 951 call do_debug 952 jmp ret_from_exception 953 954.Ldebug_from_sysenter_stack: 955 /* We're on the SYSENTER stack. Switch off. */ --- 25 unchanged lines hidden (view full) --- 981 pushl %eax # pt_regs->orig_ax 982 SAVE_ALL 983 ENCODE_FRAME_POINTER 984 xorl %edx, %edx # zero error code 985 movl %esp, %eax # pt_regs pointer 986 987 /* Are we currently on the SYSENTER stack? */ 988 movl PER_CPU_VAR(cpu_entry_area), %ecx |
989 addl $CPU_ENTRY_AREA_SYSENTER_stack + SIZEOF_SYSENTER_stack, %ecx 990 subl %eax, %ecx /* ecx = (end of SYSENTER_stack) - esp */ 991 cmpl $SIZEOF_SYSENTER_stack, %ecx | 989 addl $CPU_ENTRY_AREA_entry_stack + SIZEOF_entry_stack, %ecx 990 subl %eax, %ecx /* ecx = (end of entry_stack) - esp */ 991 cmpl $SIZEOF_entry_stack, %ecx |
992 jb .Lnmi_from_sysenter_stack 993 994 /* Not on SYSENTER stack. */ 995 call do_nmi 996 jmp .Lrestore_all_notrace 997 998.Lnmi_from_sysenter_stack: 999 /* --- 68 unchanged lines hidden --- | 992 jb .Lnmi_from_sysenter_stack 993 994 /* Not on SYSENTER stack. */ 995 call do_nmi 996 jmp .Lrestore_all_notrace 997 998.Lnmi_from_sysenter_stack: 999 /* --- 68 unchanged lines hidden --- |