Module Name:    src
Committed By:   maxv
Date:           Sat Feb 17 21:05:58 UTC 2018

Modified Files:
        src/sys/arch/amd64/amd64: amd64_trap.S

Log Message:
Declare check_swapgs in an ASM macro. No real functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.30 -r1.31 src/sys/arch/amd64/amd64/amd64_trap.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/amd64/amd64/amd64_trap.S
diff -u src/sys/arch/amd64/amd64/amd64_trap.S:1.30 src/sys/arch/amd64/amd64/amd64_trap.S:1.31
--- src/sys/arch/amd64/amd64/amd64_trap.S:1.30	Sat Feb 17 20:59:14 2018
+++ src/sys/arch/amd64/amd64/amd64_trap.S	Sat Feb 17 21:05:58 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: amd64_trap.S,v 1.30 2018/02/17 20:59:14 maxv Exp $	*/
+/*	$NetBSD: amd64_trap.S,v 1.31 2018/02/17 21:05:58 maxv Exp $	*/
 
 /*
  * Copyright (c) 1998, 2007, 2008, 2017 The NetBSD Foundation, Inc.
@@ -303,45 +303,6 @@ IDTVEC(\name)
 IDTVEC_END(\name)
 .endm
 
-	.text
-
-	TEXT_USER_BEGIN
-
-TRAP_ENTRY_POINT	trap00,T_DIVIDE,1
-TRAP_ENTRY_POINT	trap01,T_TRCTRAP,1
-TRAP_ENTRY_POINT_NMI	trap02,T_NMI
-TRAP_ENTRY_POINT_BPT	trap03,T_BPTFLT
-TRAP_ENTRY_POINT	trap04,T_OFLOW,1
-TRAP_ENTRY_POINT	trap05,T_BOUND,1
-TRAP_ENTRY_POINT	trap06,T_PRIVINFLT,1
-TRAP_ENTRY_POINT_DNA	trap07,T_DNA
-TRAP_ENTRY_POINT_DOUBLE	trap08,T_DOUBLEFLT
-TRAP_ENTRY_POINT	trap09,T_FPOPFLT,1
-TRAP_ENTRY_POINT	trap10,T_TSSFLT,0
-TRAP_ENTRY_POINT_SWAPGS	trap11,T_SEGNPFLT,0
-TRAP_ENTRY_POINT_SWAPGS	trap12,T_STKFLT,0
-TRAP_ENTRY_POINT_SWAPGS	trap13,T_PROTFLT,0
-TRAP_ENTRY_POINT	trap14,T_PAGEFLT,0
-TRAP_ENTRY_POINT_SPUR	trap15,T_ASTFLT,1
-TRAP_ENTRY_POINT_FPU	trap16,T_ARITHTRAP,1
-TRAP_ENTRY_POINT	trap17,T_ALIGNFLT,0
-TRAP_ENTRY_POINT	trap18,T_MCA,1
-TRAP_ENTRY_POINT_FPU	trap19,T_XMM,1
-TRAP_ENTRY_POINT	trap20,T_RESERVED,1
-TRAP_ENTRY_POINT	trap21,T_RESERVED,1
-TRAP_ENTRY_POINT	trap22,T_RESERVED,1
-TRAP_ENTRY_POINT	trap23,T_RESERVED,1
-TRAP_ENTRY_POINT	trap24,T_RESERVED,1
-TRAP_ENTRY_POINT	trap25,T_RESERVED,1
-TRAP_ENTRY_POINT	trap26,T_RESERVED,1
-TRAP_ENTRY_POINT	trap27,T_RESERVED,1
-TRAP_ENTRY_POINT	trap28,T_RESERVED,1
-TRAP_ENTRY_POINT	trap29,T_RESERVED,1
-TRAP_ENTRY_POINT	trap30,T_RESERVED,1
-TRAP_ENTRY_POINT	trap31,T_RESERVED,1
-
-TRAP_ENTRY_POINT_SPUR	intrspurious,T_ASTFLT,1
-
 #ifndef check_swapgs
 /*
  * We need to worry about traps in kernel mode while the kernel %gs isn't
@@ -351,6 +312,7 @@ TRAP_ENTRY_POINT_SPUR	intrspurious,T_AST
  * When such traps happen, we have CPL=0 and %gs=userland, and we must perform
  * an additional swapgs to get %gs=kernel.
  */
+.macro	SWAPGS_HANDLER
 NENTRY(check_swapgs)
 	INTRENTRY_L(3f,1:)
 2:
@@ -384,6 +346,50 @@ NENTRY(check_swapgs)
 	jne	2b			/* No - normal kernel fault */
 	jmp	1b			/* Yes - restore %gs */
 END(check_swapgs)
+.endm
+#endif
+
+	.text
+
+	TEXT_USER_BEGIN
+
+TRAP_ENTRY_POINT	trap00,T_DIVIDE,1
+TRAP_ENTRY_POINT	trap01,T_TRCTRAP,1
+TRAP_ENTRY_POINT_NMI	trap02,T_NMI
+TRAP_ENTRY_POINT_BPT	trap03,T_BPTFLT
+TRAP_ENTRY_POINT	trap04,T_OFLOW,1
+TRAP_ENTRY_POINT	trap05,T_BOUND,1
+TRAP_ENTRY_POINT	trap06,T_PRIVINFLT,1
+TRAP_ENTRY_POINT_DNA	trap07,T_DNA
+TRAP_ENTRY_POINT_DOUBLE	trap08,T_DOUBLEFLT
+TRAP_ENTRY_POINT	trap09,T_FPOPFLT,1
+TRAP_ENTRY_POINT	trap10,T_TSSFLT,0
+TRAP_ENTRY_POINT_SWAPGS	trap11,T_SEGNPFLT,0
+TRAP_ENTRY_POINT_SWAPGS	trap12,T_STKFLT,0
+TRAP_ENTRY_POINT_SWAPGS	trap13,T_PROTFLT,0
+TRAP_ENTRY_POINT	trap14,T_PAGEFLT,0
+TRAP_ENTRY_POINT_SPUR	trap15,T_ASTFLT,1
+TRAP_ENTRY_POINT_FPU	trap16,T_ARITHTRAP,1
+TRAP_ENTRY_POINT	trap17,T_ALIGNFLT,0
+TRAP_ENTRY_POINT	trap18,T_MCA,1
+TRAP_ENTRY_POINT_FPU	trap19,T_XMM,1
+TRAP_ENTRY_POINT	trap20,T_RESERVED,1
+TRAP_ENTRY_POINT	trap21,T_RESERVED,1
+TRAP_ENTRY_POINT	trap22,T_RESERVED,1
+TRAP_ENTRY_POINT	trap23,T_RESERVED,1
+TRAP_ENTRY_POINT	trap24,T_RESERVED,1
+TRAP_ENTRY_POINT	trap25,T_RESERVED,1
+TRAP_ENTRY_POINT	trap26,T_RESERVED,1
+TRAP_ENTRY_POINT	trap27,T_RESERVED,1
+TRAP_ENTRY_POINT	trap28,T_RESERVED,1
+TRAP_ENTRY_POINT	trap29,T_RESERVED,1
+TRAP_ENTRY_POINT	trap30,T_RESERVED,1
+TRAP_ENTRY_POINT	trap31,T_RESERVED,1
+
+TRAP_ENTRY_POINT_SPUR	intrspurious,T_ASTFLT,1
+
+#ifndef check_swapgs
+SWAPGS_HANDLER
 #endif
 
 	TEXT_USER_END

Reply via email to