Lines Matching +full:x86_64 +full:- +full:linux

2  * (C) Copyright 2008-2011
8 * Portions of this file are derived from the Linux kernel source
11 * SPDX-License-Identifier: GPL-2.0+
21 #include <asm/processor-flags.h>
50 "x87 FPU Floating-Point Error",
53 "SIMD Floating-Point Exception",
80 switch (regs->irq_id) { in dump_regs()
88 cs = regs->context.ctx2.xcs; in dump_regs()
89 eip = regs->context.ctx2.eip; in dump_regs()
90 eflags = regs->context.ctx2.eflags; in dump_regs()
92 regs->esp += 4; in dump_regs()
95 cs = regs->context.ctx1.xcs; in dump_regs()
96 eip = regs->context.ctx1.eip; in dump_regs()
97 eflags = regs->context.ctx1.eflags; in dump_regs()
103 if (gd->flags & GD_FLG_RELOC) in dump_regs()
104 printf("Original EIP :[<%08lx>]\n", eip - gd->reloc_off); in dump_regs()
107 regs->eax, regs->ebx, regs->ecx, regs->edx); in dump_regs()
109 regs->esi, regs->edi, regs->ebp, regs->esp); in dump_regs()
111 (u16)regs->xds, (u16)regs->xes, (u16)regs->xfs, in dump_regs()
112 (u16)regs->xgs, (u16)regs->xss); in dump_regs()
136 sp = regs->esp; in dump_regs()
140 while (sp > (regs->esp - 16)) { in dump_regs()
141 if (sp == regs->esp) in dump_regs()
142 printf("--->"); in dump_regs()
146 sp -= 4; in dump_regs()
152 printf("%s\n", exceptions[regs->irq_id]); in do_exception()
197 int irq_entry_size = irq_1 - irq_0; in cpu_init_interrupts()
209 idt_ptr.size = 256 * 8 - 1; in cpu_init_interrupts()
237 #if CONFIG_IS_ENABLED(X86_64) in disable_interrupts()
252 if (ret && ret != -ENODEV) in interrupt_init()
286 /* IRQ Low-Level Service Routine */
291 * Intel® 64 and IA-32 Architectures Software Developer's Manual in irq_llsr()
293 * Order Number: 253665-029US, November 2008 in irq_llsr()
294 * Table 6-1. Exceptions and Interrupts in irq_llsr()
296 if (regs->irq_id < 32) { in irq_llsr()
301 do_irq(regs->irq_id); in irq_llsr()
306 * OK - This looks really horrible, but it serves a purpose - It helps create
308 * - The call to irq_llsr will be a relative jump
309 * - The IRQ entries will be guaranteed to be in order
315 * - Interrupt has caused eflags, CS and EIP to be pushed
316 * - Interrupt Vector Handler has pushed orig_eax
317 * - pt_regs.esp needs to be adjusted by 40 bytes: