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

1 /* SPDX-License-Identifier: GPL-2.0 */
20 #include <asm/asm-offsets.h>
22 #include <asm/processor-flags.h>
23 #include <asm/msr-index.h>
27 #include <asm/nospec-branch.h>
32 #define pa(X) ((X) - __PAGE_OFFSET)
48 * Worst-case size of the kernel mapping we need to make:
58 * 32-bit kernel entrypoint; only used by the boot CPU. On entry,
59 * %esi points to the real-mode code as a 32-bit pointer.
74 movl %eax,%es
78 leal -__PAGE_OFFSET(%ecx),%esp
92 * Note: %esi still has the pointer to the real-mode data.
122 #define KPMDS (((-__PAGE_OFFSET) >> 30) & 3) /* Number of kernel PMDs */
123 movl %eax,pa(initial_pg_pmd+0x1000*KPMDS-8)
132 * Non-boot CPU entry point; entered from trampoline.S
143 movl %eax,%es
148 leal -__PAGE_OFFSET(%ecx),%esp
170 movl $-1,pa(X86_CPUID) # preset CPUID level
200 cmpl $(0x8000ffff-0x80000001), %eax
212 /* Setup EFER (Extended Feature Enable Register) */
223 * Enable paging
238 cmpl $-1,X86_CPUID
242 xorl %eax,%eax # call CPUID with 0 -> return vendor ID
276 movl $(__USER_DS),%eax # DS/ES contains default USER segment
278 movl %eax,%es
309 .fill early_idt_handler_array + i*EARLY_IDT_HANDLER_SIZE - ., 1, 0xcc
322 /* The vector number is in pt_regs->gs */
325 pushl %fs /* pt_regs->fs (__fsh varies by model) */
326 pushl %es /* pt_regs->es (__esh varies by model) */
327 pushl %ds /* pt_regs->ds (__dsh varies by model) */
328 pushl %eax /* pt_regs->ax */
329 pushl %ebp /* pt_regs->bp */
330 pushl %edi /* pt_regs->di */
331 pushl %esi /* pt_regs->si */
332 pushl %edx /* pt_regs->dx */
333 pushl %ecx /* pt_regs->cx */
334 pushl %ebx /* pt_regs->bx */
336 /* Fix up DS and ES */
339 movl %ecx, %es
344 /* Load GS into pt_regs->gs (and maybe clobber __gsh) */
350 popl %ebx /* pt_regs->bx */
351 popl %ecx /* pt_regs->cx */
352 popl %edx /* pt_regs->dx */
353 popl %esi /* pt_regs->si */
354 popl %edi /* pt_regs->di */
355 popl %ebp /* pt_regs->bp */
356 popl %eax /* pt_regs->ax */
357 popl %ds /* pt_regs->ds (always ignores __dsh) */
358 popl %es /* pt_regs->es (always ignores __esh) */
359 popl %fs /* pt_regs->fs (always ignores __fsh) */
360 popl %gs /* pt_regs->gs (always ignores __gsh) */
362 addl $4, %esp /* pop pt_regs->orig_ax */
366 /* This is the default interrupt "handler" :-) */
373 pushl %es
377 movl %eax,%es
392 popl %es
451 /* Page-aligned for the benefit of paravirt? */
470 .align PAGE_SIZE /* needs to be page-sized too */
492 #include "../xen/xen-head.S"
495 * The IDT and GDT 'descriptors' are a strange 48-bit object
497 * like usual segment descriptors - they consist of a 16-bit
498 * segment size, and 32-bit linear address value:
507 .long boot_gdt - __PAGE_OFFSET
513 .word GDT_ENTRIES*8-1