	.file	"interrupt.c"
.globl ints
	.data
	.align 32
	.type	ints, @object
	.size	ints, 2040
ints:
	.quad	def_int
	.zero	2032
	.section	.rodata
	.align 8
.LC0:
	.string	"kernel panic, run away interrupt on the loose"
	.text
.globl def_int
	.type	def_int, @function
def_int:
.LFB2:
	subq	$8, %rsp
.LCFI0:
	movl	$.LC0, %edi
	movl	$0, %eax
	call	panic
	addq	$8, %rsp
	ret
.LFE2:
	.size	def_int, .-def_int
	.section	.rodata
.LC1:
	.string	"initializing legacy irq"
.LC2:
	.string	"Muliprocessing Pointer Found:"
.LC3:
	.string	"\n"
.LC4:
	.string	"MP pointer version"
.LC5:
	.string	"initializing apic\n"
	.text
.globl isr_init
	.type	isr_init, @function
isr_init:
.LFB3:
	subq	$8, %rsp
.LCFI1:
	movl	$find_MP, %eax
	movq	%rax, mp_p(%rip)
	movq	mp_p(%rip), %rax
	testq	%rax, %rax
	jne	.L4
	movl	$.LC1, %edi
	movl	$0, %eax
	call	cons_writes
	movl	$0, %eax
	call	init_leg_irq
	jmp	.L7
.L4:
	movl	$.LC2, %edi
	movl	$0, %eax
	call	cons_writes
	movq	mp_p(%rip), %rdi
	movl	$0, %eax
	call	write_numh
	movl	$1, %esi
	movl	$.LC3, %edi
	movl	$0, %eax
	call	cons_write
	movq	mp_p(%rip), %rdi
	movl	$4, %esi
	movl	$0, %eax
	call	cons_write
	movl	$.LC3, %edi
	movl	$0, %eax
	call	cons_writes
	movl	$.LC4, %edi
	movl	$0, %eax
	call	cons_writes
	movq	mp_p(%rip), %rax
	movzwl	10(%rax), %eax
	movzwl	%ax, %edi
	movl	$0, %eax
	call	write_numh
	movl	$.LC3, %edi
	movl	$0, %eax
	call	cons_writes
	movl	$.LC5, %edi
	movl	$0, %eax
	call	cons_writes
	movl	$0, %eax
	call	init_apic
.L7:
	addq	$8, %rsp
	ret
.LFE3:
	.size	isr_init, .-isr_init
	.section	.rodata
.LC6:
	.string	"_MP_"
	.text
.globl find_MP
	.type	find_MP, @function
find_MP:
.LFB4:
	subq	$40, %rsp
.LCFI2:
	movl	$4, %ecx
	movl	$.LC6, %edx
	movl	$1048575, %esi
	movl	$0, %edi
	movl	$0, %eax
	call	strstrn
	cltq
	movq	%rax, 16(%rsp)
	movq	16(%rsp), %rax
	addq	$40, %rsp
	ret
.LFE4:
	.size	find_MP, .-find_MP
.globl init_leg_irq
	.type	init_leg_irq, @function
init_leg_irq:
.LFB5:
	subq	$8, %rsp
.LCFI3:
	movl	$17, %esi
	movl	$32, %edi
	movl	$0, %eax
	call	outb
	movl	$17, %esi
	movl	$160, %edi
	movl	$0, %eax
	call	outb
	movl	$32, %esi
	movl	$33, %edi
	movl	$0, %eax
	call	outb
	movl	$40, %esi
	movl	$161, %edi
	movl	$0, %eax
	call	outb
	movl	$4, %esi
	movl	$33, %edi
	movl	$0, %eax
	call	outb
	movl	$2, %esi
	movl	$161, %edi
	movl	$0, %eax
	call	outb
	movl	$1, %esi
	movl	$33, %edi
	movl	$0, %eax
	call	outb
	movl	$1, %esi
	movl	$161, %edi
	movl	$0, %eax
	call	outb
	movl	$0, %esi
	movl	$33, %edi
	movl	$0, %eax
	call	outb
	movl	$0, %esi
	movl	$161, %edi
	movl	$0, %eax
	call	outb
	addq	$8, %rsp
	ret
.LFE5:
	.size	init_leg_irq, .-init_leg_irq
.globl init_apic
	.type	init_apic, @function
init_apic:
.LFB6:
	ret
.LFE6:
	.size	init_apic, .-init_apic
	.comm	mp_p,8,8
	.section	.eh_frame,"a",@progbits
.Lframe1:
	.long	.LECIE1-.LSCIE1
.LSCIE1:
	.long	0x0
	.byte	0x1
	.string	"zR"
	.uleb128 0x1
	.sleb128 -8
	.byte	0x10
	.uleb128 0x1
	.byte	0x3
	.byte	0xc
	.uleb128 0x7
	.uleb128 0x8
	.byte	0x90
	.uleb128 0x1
	.align 8
.LECIE1:
.LSFDE1:
	.long	.LEFDE1-.LASFDE1
.LASFDE1:
	.long	.LASFDE1-.Lframe1
	.long	.LFB2
	.long	.LFE2-.LFB2
	.uleb128 0x0
	.byte	0x4
	.long	.LCFI0-.LFB2
	.byte	0xe
	.uleb128 0x10
	.align 8
.LEFDE1:
.LSFDE3:
	.long	.LEFDE3-.LASFDE3
.LASFDE3:
	.long	.LASFDE3-.Lframe1
	.long	.LFB3
	.long	.LFE3-.LFB3
	.uleb128 0x0
	.byte	0x4
	.long	.LCFI1-.LFB3
	.byte	0xe
	.uleb128 0x10
	.align 8
.LEFDE3:
.LSFDE5:
	.long	.LEFDE5-.LASFDE5
.LASFDE5:
	.long	.LASFDE5-.Lframe1
	.long	.LFB4
	.long	.LFE4-.LFB4
	.uleb128 0x0
	.byte	0x4
	.long	.LCFI2-.LFB4
	.byte	0xe
	.uleb128 0x30
	.align 8
.LEFDE5:
.LSFDE7:
	.long	.LEFDE7-.LASFDE7
.LASFDE7:
	.long	.LASFDE7-.Lframe1
	.long	.LFB5
	.long	.LFE5-.LFB5
	.uleb128 0x0
	.byte	0x4
	.long	.LCFI3-.LFB5
	.byte	0xe
	.uleb128 0x10
	.align 8
.LEFDE7:
.LSFDE9:
	.long	.LEFDE9-.LASFDE9
.LASFDE9:
	.long	.LASFDE9-.Lframe1
	.long	.LFB6
	.long	.LFE6-.LFB6
	.uleb128 0x0
	.align 8
.LEFDE9:
	.ident	"GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)"
	.section	.note.GNU-stack,"",@progbits
