	.text
	.globl	_start
	.type	_start,@function
_start:	
	lis	30,ub_gd@h
	ori	30,30,ub_gd@l
	stw	29,0(30)

	lis	31,0x100000@h
	ori	31,31,0x100000@l

	mr	1,31

	b	main

	.globl	_intr
	.type	_intr,@function
_intr:
	mtsprg2	1

	lis	1,0x200000@h
	ori	1,1,0x200000@l
	stwu	1,-160(1)

	stmw	0,8(1)
	mfsprg2	2
	stw	2,12(1)

	mflr	2
	stw	2,136(1)
	mfcr	2
	stw	2,140(1)
	mfctr	2
	stw	2,144(1)
	mfxer	2
	stw	2,148(1)
	mfsrr0	4
	stw	4,152(1)
	mfsrr1	5
	stw	5,156(1)

	bl	1f
1:	mflr	3

	lis	2,defhandler@h
	ori	2,2,defhandler@l
	mtlr	2
	blrl

	b return_from_interrupt

	.globl	dispatch
	.type	dispatch,@function
dispatch:
	mr	1,3
	addi	1,1,-8

return_from_interrupt:
	lwz	2,136(1)
	mtlr	2
	lwz	2,140(1)
	mtcr	2
	lwz	2,144(1)
	mtctr	2
	lwz	2,148(1)
	mtxer	2
	lwz	2,152(1)
	mtsrr0	2
	lwz	2,156(1)
	andi.	2,2,0xffff
	mtsrr1	2

	lmw	2,16(1)
	lwz	0,8(1)
	lwz	1,12(1)

	sync
	isync
	rfi
