x86: Move setjmp to the i386 directory
authorSimon Glass <sjg@chromium.org>
Mon, 16 Jan 2017 14:04:20 +0000 (07:04 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Tue, 7 Feb 2017 05:07:36 +0000 (13:07 +0800)
This code is only used in 32-bit mode. Move it so that it does not get
built with 64-bit U-Boot.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/cpu/Makefile
arch/x86/cpu/i386/Makefile
arch/x86/cpu/i386/setjmp.S [new file with mode: 0644]
arch/x86/cpu/setjmp.S [deleted file]

index 2fda32d29f4a3b8d3e1eb536248ce5acb29aeb42..45f95ab0349cedffd4bbc91aacecd0e90cc7c8bc 100644 (file)
@@ -14,9 +14,6 @@ else
 extra-y        = start.o
 endif
 extra-$(CONFIG_$(SPL_)X86_16BIT_INIT) += resetvec.o start16.o
-ifndef CONFIG_$(SPL_)X86_64
-obj-y  += setjmp.o
-endif
 
 obj-y  += cpu.o cpu_x86.o
 
index 2547bbaa635f889e8fe71263c4e05cdedea1ef56..0c47252610dc2da6a092495ba24a8c9c41c18bea 100644 (file)
@@ -6,3 +6,4 @@
 obj-y += call64.o
 obj-y += cpu.o
 obj-y += interrupt.o
+obj-y += setjmp.o
diff --git a/arch/x86/cpu/i386/setjmp.S b/arch/x86/cpu/i386/setjmp.S
new file mode 100644 (file)
index 0000000..2ea1c6c
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Written by H. Peter Anvin <hpa@zytor.com>
+ * Brought in from Linux v4.4 and modified for U-Boot
+ * From Linux arch/um/sys-i386/setjmp.S
+ *
+ * SPDX-License-Identifier:    GPL-2.0
+ */
+
+#define _REGPARM
+
+/*
+ * The jmp_buf is assumed to contain the following, in order:
+ *     %ebx
+ *     %esp
+ *     %ebp
+ *     %esi
+ *     %edi
+ *     <return address>
+ */
+
+       .text
+       .align 4
+       .globl setjmp
+       .type setjmp, @function
+setjmp:
+#ifdef _REGPARM
+       movl %eax, %edx
+#else
+       movl 4(%esp), %edx
+#endif
+       popl %ecx               /* Return address, and adjust the stack */
+       xorl %eax, %eax         /* Return value */
+       movl %ebx, (%edx)
+       movl %esp, 4(%edx)      /* Post-return %esp! */
+       pushl %ecx              /* Make the call/return stack happy */
+       movl %ebp, 8(%edx)
+       movl %esi, 12(%edx)
+       movl %edi, 16(%edx)
+       movl %ecx, 20(%edx)     /* Return address */
+       ret
+
+       /* Provide function size if needed */
+       .size setjmp, .-setjmp
+
+       .align 4
+       .globl longjmp
+       .type longjmp, @function
+longjmp:
+#ifdef _REGPARM
+       xchgl %eax, %edx
+#else
+       movl 4(%esp), %edx      /* jmp_ptr address */
+#endif
+       movl (%edx), %ebx
+       movl 4(%edx), %esp
+       movl 8(%edx), %ebp
+       movl 12(%edx), %esi
+       movl 16(%edx), %edi
+       jmp *20(%edx)
+
+       .size longjmp, .-longjmp
diff --git a/arch/x86/cpu/setjmp.S b/arch/x86/cpu/setjmp.S
deleted file mode 100644 (file)
index 2ea1c6c..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Written by H. Peter Anvin <hpa@zytor.com>
- * Brought in from Linux v4.4 and modified for U-Boot
- * From Linux arch/um/sys-i386/setjmp.S
- *
- * SPDX-License-Identifier:    GPL-2.0
- */
-
-#define _REGPARM
-
-/*
- * The jmp_buf is assumed to contain the following, in order:
- *     %ebx
- *     %esp
- *     %ebp
- *     %esi
- *     %edi
- *     <return address>
- */
-
-       .text
-       .align 4
-       .globl setjmp
-       .type setjmp, @function
-setjmp:
-#ifdef _REGPARM
-       movl %eax, %edx
-#else
-       movl 4(%esp), %edx
-#endif
-       popl %ecx               /* Return address, and adjust the stack */
-       xorl %eax, %eax         /* Return value */
-       movl %ebx, (%edx)
-       movl %esp, 4(%edx)      /* Post-return %esp! */
-       pushl %ecx              /* Make the call/return stack happy */
-       movl %ebp, 8(%edx)
-       movl %esi, 12(%edx)
-       movl %edi, 16(%edx)
-       movl %ecx, 20(%edx)     /* Return address */
-       ret
-
-       /* Provide function size if needed */
-       .size setjmp, .-setjmp
-
-       .align 4
-       .globl longjmp
-       .type longjmp, @function
-longjmp:
-#ifdef _REGPARM
-       xchgl %eax, %edx
-#else
-       movl 4(%esp), %edx      /* jmp_ptr address */
-#endif
-       movl (%edx), %ebx
-       movl 4(%edx), %esp
-       movl 8(%edx), %ebp
-       movl 12(%edx), %esi
-       movl 16(%edx), %edi
-       jmp *20(%edx)
-
-       .size longjmp, .-longjmp