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.
124 #define KPMDS (((-__PAGE_OFFSET) >> 30) & 3) /* Number of kernel PMDs */
125 movl %eax,pa(initial_pg_pmd+0x1000*KPMDS-8)
134 * Non-boot CPU entry point; entered from trampoline.S
145 movl %eax,%es
150 leal -__PAGE_OFFSET(%ecx),%esp
172 movl $-1,pa(X86_CPUID) # preset CPUID level
202 cmpl $(0x8000ffff-0x80000001), %eax
214 /* Setup EFER (Extended Feature Enable Register) */
225 * Enable paging
240 cmpl $-1,X86_CPUID
244 xorl %eax,%eax # call CPUID with 0 -> return vendor ID
278 movl $(__USER_DS),%eax # DS/ES contains default USER segment
280 movl %eax,%es
311 .fill early_idt_handler_array + i*EARLY_IDT_HANDLER_SIZE - ., 1, 0xcc
324 /* The vector number is in pt_regs->gs */
327 pushl %fs /* pt_regs->fs (__fsh varies by model) */
328 pushl %es /* pt_regs->es (__esh varies by model) */
329 pushl %ds /* pt_regs->ds (__dsh varies by model) */
330 pushl %eax /* pt_regs->ax */
331 pushl %ebp /* pt_regs->bp */
332 pushl %edi /* pt_regs->di */
333 pushl %esi /* pt_regs->si */
334 pushl %edx /* pt_regs->dx */
335 pushl %ecx /* pt_regs->cx */
336 pushl %ebx /* pt_regs->bx */
338 /* Fix up DS and ES */
341 movl %ecx, %es
346 /* Load GS into pt_regs->gs (and maybe clobber __gsh) */
352 popl %ebx /* pt_regs->bx */
353 popl %ecx /* pt_regs->cx */
354 popl %edx /* pt_regs->dx */
355 popl %esi /* pt_regs->si */
356 popl %edi /* pt_regs->di */
357 popl %ebp /* pt_regs->bp */
358 popl %eax /* pt_regs->ax */
359 popl %ds /* pt_regs->ds (always ignores __dsh) */
360 popl %es /* pt_regs->es (always ignores __esh) */
361 popl %fs /* pt_regs->fs (always ignores __fsh) */
362 popl %gs /* pt_regs->gs (always ignores __gsh) */
364 addl $4, %esp /* pop pt_regs->orig_ax */
368 /* This is the default interrupt "handler" :-) */
375 pushl %es
379 movl %eax,%es
394 popl %es
453 /* Page-aligned for the benefit of paravirt? */
472 .align PAGE_SIZE /* needs to be page-sized too */
494 #include "../xen/xen-head.S"
497 * The IDT and GDT 'descriptors' are a strange 48-bit object
499 * like usual segment descriptors - they consist of a 16-bit
500 * segment size, and 32-bit linear address value:
509 .long boot_gdt - __PAGE_OFFSET
515 .word GDT_ENTRIES*8-1