Lines Matching +full:es +full:- +full:enable

1 /* SPDX-License-Identifier: GPL-2.0 */
19 #include <asm/asm-offsets.h>
21 #include <asm/processor-flags.h>
22 #include <asm/msr-index.h>
26 #include <asm/nospec-branch.h>
32 #define pa(X) ((X) - __PAGE_OFFSET)
51 * Worst-case size of the kernel mapping we need to make:
61 * 32-bit kernel entrypoint; only used by the boot CPU. On entry,
62 * %esi points to the real-mode code as a 32-bit pointer.
77 movl %eax,%es
81 leal -__PAGE_OFFSET(%ecx),%esp
95 * Note: %esi still has the pointer to the real-mode data.
132 #define KPMDS (((-__PAGE_OFFSET) >> 30) & 3) /* Number of kernel PMDs */
133 movl %eax,pa(initial_pg_pmd+0x1000*KPMDS-8)
142 * Non-boot CPU entry point; entered from trampoline.S
153 movl %eax,%es
158 leal -__PAGE_OFFSET(%ecx),%esp
185 movl $-1,pa(X86_CPUID) # preset CPUID level
215 cmpl $(0x8000ffff-0x80000001), %eax
227 /* Setup EFER (Extended Feature Enable Register) */
238 * Enable paging
253 cmpl $-1,X86_CPUID
257 xorl %eax,%eax # call CPUID with 0 -> return vendor ID
291 movl $(__USER_DS),%eax # DS/ES contains default USER segment
293 movl %eax,%es
324 .fill early_idt_handler_array + i*EARLY_IDT_HANDLER_SIZE - ., 1, 0xcc
337 /* The vector number is in pt_regs->gs */
340 pushl %fs /* pt_regs->fs (__fsh varies by model) */
341 pushl %es /* pt_regs->es (__esh varies by model) */
342 pushl %ds /* pt_regs->ds (__dsh varies by model) */
343 pushl %eax /* pt_regs->ax */
344 pushl %ebp /* pt_regs->bp */
345 pushl %edi /* pt_regs->di */
346 pushl %esi /* pt_regs->si */
347 pushl %edx /* pt_regs->dx */
348 pushl %ecx /* pt_regs->cx */
349 pushl %ebx /* pt_regs->bx */
351 /* Fix up DS and ES */
354 movl %ecx, %es
359 /* Load GS into pt_regs->gs (and maybe clobber __gsh) */
365 popl %ebx /* pt_regs->bx */
366 popl %ecx /* pt_regs->cx */
367 popl %edx /* pt_regs->dx */
368 popl %esi /* pt_regs->si */
369 popl %edi /* pt_regs->di */
370 popl %ebp /* pt_regs->bp */
371 popl %eax /* pt_regs->ax */
372 popl %ds /* pt_regs->ds (always ignores __dsh) */
373 popl %es /* pt_regs->es (always ignores __esh) */
374 popl %fs /* pt_regs->fs (always ignores __fsh) */
375 popl %gs /* pt_regs->gs (always ignores __gsh) */
377 addl $4, %esp /* pop pt_regs->orig_ax */
381 /* This is the default interrupt "handler" :-) */
388 pushl %es
392 movl %eax,%es
407 popl %es
466 /* Page-aligned for the benefit of paravirt? */
485 .align PAGE_SIZE /* needs to be page-sized too */
502 * The SIZEOF_PTREGS gap is a convention which helps the in-kernel unwinder
506 .long init_thread_union + THREAD_SIZE -
507 SIZEOF_PTREGS - TOP_OF_KERNEL_STACK_PADDING)
513 #include "../../x86/xen/xen-head.S"
516 * The IDT and GDT 'descriptors' are a strange 48-bit object
518 * like usual segment descriptors - they consist of a 16-bit
519 * segment size, and 32-bit linear address value:
528 .long boot_gdt - __PAGE_OFFSET
534 .word GDT_ENTRIES*8-1