view src/start.s @ 0:53676d1f5817 default tip

firsh commit
author tobaru
date Sun, 04 Feb 2018 17:54:49 +0900
parents
children
line wrap: on
line source

	.text
	.syntax unified
	.eabi_attribute	67, "2.09"
	.cpu	arm1136jf-s
	.eabi_attribute	6, 6
	.eabi_attribute	8, 1
	.eabi_attribute	9, 1
	.fpu	vfpv2
	.eabi_attribute	34, 0
	.eabi_attribute	17, 1
	.eabi_attribute	20, 1
	.eabi_attribute	21, 1
	.eabi_attribute	23, 3
	.eabi_attribute	24, 1
	.eabi_attribute	25, 1
	.eabi_attribute	38, 1
	.eabi_attribute	18, 4
	.eabi_attribute	26, 2
	.eabi_attribute	14, 0
	.file	"start.c"
	.file	1 "." "types.h"
	.file	2 "start.c"
	.globl	_uart_putc
	.p2align	2
	.type	_uart_putc,%function
	.code	32
_uart_putc:
.Lfunc_begin0:
	.loc	2 10 0
	.fnstart
	.cfi_sections .debug_frame
	.cfi_startproc
	.pad	#12
	sub	sp, sp, #12
	.cfi_def_cfa_offset 12
	mov	r1, r0
	str	r0, [sp, #8]
.Ltmp0:
	.loc	2 11 22 prologue_end
	ldr	r0, .LCPI0_0
	str	r0, [sp, #4]
	.loc	2 12 14
	ldr	r0, [sp, #8]
	.loc	2 12 6 is_stmt 0
	ldr	r2, [sp, #4]
	.loc	2 12 12
	strb	r0, [r2]
	.loc	2 13 1 is_stmt 1
	str	r1, [sp]
	add	sp, sp, #12
	bx	lr
.Ltmp1:
	.p2align	2
	.loc	2 0 1 is_stmt 0
.LCPI0_0:
	.long	270471168
.Lfunc_end0:
	.size	_uart_putc, .Lfunc_end0-_uart_putc
	.cfi_endproc
	.cantunwind
	.fnend

	.globl	_puts
	.p2align	2
	.type	_puts,%function
	.code	32
_puts:
.Lfunc_begin1:
	.loc	2 17 0 is_stmt 1
	.fnstart
	.cfi_startproc
	.save	{r11, lr}
	push	{r11, lr}
	.cfi_def_cfa_offset 8
	.cfi_offset 14, -4
	.cfi_offset 11, -8
	.setfp	r11, sp
	mov	r11, sp
	.cfi_def_cfa_register 11
	.pad	#8
	sub	sp, sp, #8
	mov	r1, r0
	str	r0, [sp, #4]
.Ltmp2:
	.loc	2 18 5 prologue_end
	str	r1, [sp]
	b	.LBB1_1
.LBB1_1:
	.loc	2 18 13 is_stmt 0
	ldr	r0, [sp, #4]
	.loc	2 18 12
	ldrb	r0, [r0]
	.loc	2 18 5
	cmp	r0, #0
	beq	.LBB1_3
	b	.LBB1_2
.LBB1_2:
.Ltmp3:
	.loc	2 19 21 is_stmt 1
	ldr	r0, [sp, #4]
	.loc	2 19 20 is_stmt 0
	ldrb	r0, [r0]
	.loc	2 19 9
	bl	_uart_putc
	.loc	2 20 10 is_stmt 1
	ldr	r0, [sp, #4]
	add	r0, r0, #1
	str	r0, [sp, #4]
.Ltmp4:
	.loc	2 18 5
	b	.LBB1_1
.LBB1_3:
	.loc	2 22 1
	mov	sp, r11
	pop	{r11, pc}
.Ltmp5:
.Lfunc_end1:
	.size	_puts, .Lfunc_end1-_puts
	.cfi_endproc
	.cantunwind
	.fnend

	.globl	_putint
	.p2align	2
	.type	_putint,%function
	.code	32
_putint:
.Lfunc_begin2:
	.loc	2 25 0
	.fnstart
	.cfi_startproc
	.save	{r11, lr}
	push	{r11, lr}
	.cfi_def_cfa_offset 8
	.cfi_offset 14, -4
	.cfi_offset 11, -8
	.setfp	r11, sp
	mov	r11, sp
	.cfi_def_cfa_register 11
	.pad	#32
	sub	sp, sp, #32
	mov	r3, r2
	mov	r12, r1
	mov	lr, r0
	str	r0, [r11, #-4]
	str	r1, [r11, #-8]
	str	r2, [r11, #-12]
.Ltmp6:
	.loc	2 26 11 prologue_end
	ldr	r0, .LCPI2_0
	str	r0, [sp, #16]
.Ltmp7:
	.loc	2 29 9
	ldr	r0, [r11, #-4]
.Ltmp8:
	.loc	2 29 9 is_stmt 0
	cmp	r0, #0
	str	r3, [sp, #8]
	str	r12, [sp, #4]
	str	lr, [sp]
	beq	.LBB2_2
	b	.LBB2_1
.LBB2_1:
.Ltmp9:
	.loc	2 30 15 is_stmt 1
	ldr	r0, [r11, #-4]
	.loc	2 30 9 is_stmt 0
	bl	_puts
	.loc	2 31 5 is_stmt 1
	b	.LBB2_2
.Ltmp10:
.LBB2_2:
	.loc	2 33 14
	mov	r0, #28
	str	r0, [sp, #12]
	.loc	2 33 10 is_stmt 0
	b	.LBB2_3
.LBB2_3:
.Ltmp11:
	.loc	2 33 37
	ldr	r0, [sp, #12]
.Ltmp12:
	.loc	2 33 5
	cmp	r0, #0
	blt	.LBB2_6
	b	.LBB2_4
.LBB2_4:
.Ltmp13:
	.loc	2 34 20 is_stmt 1
	ldr	r0, [sp, #16]
	.loc	2 34 25 is_stmt 0
	ldr	r1, [r11, #-8]
	.loc	2 34 32
	ldr	r2, [sp, #12]
	.loc	2 34 37
	mov	r3, #15
	and	r1, r3, r1, lsr r2
	.loc	2 34 20
	ldrb	r0, [r0, r1]
	.loc	2 34 9
	bl	_uart_putc
	.loc	2 35 5 is_stmt 1
	b	.LBB2_5
.Ltmp14:
.LBB2_5:
	.loc	2 33 51
	ldr	r0, [sp, #12]
	sub	r0, r0, #4
	str	r0, [sp, #12]
	.loc	2 33 5 is_stmt 0
	b	.LBB2_3
.Ltmp15:
.LBB2_6:
	.loc	2 37 9 is_stmt 1
	ldr	r0, [r11, #-12]
.Ltmp16:
	.loc	2 37 9 is_stmt 0
	cmp	r0, #0
	beq	.LBB2_8
	b	.LBB2_7
.LBB2_7:
.Ltmp17:
	.loc	2 38 15 is_stmt 1
	ldr	r0, [r11, #-12]
	.loc	2 38 9 is_stmt 0
	bl	_puts
	.loc	2 39 5 is_stmt 1
	b	.LBB2_8
.Ltmp18:
.LBB2_8:
	.loc	2 40 1
	mov	sp, r11
	pop	{r11, pc}
.Ltmp19:
	.p2align	2
	.loc	2 0 1 is_stmt 0
.LCPI2_0:
	.long	.L.str
.Lfunc_end2:
	.size	_putint, .Lfunc_end2-_putint
	.cfi_endproc
	.cantunwind
	.fnend

	.globl	get_pde
	.p2align	2
	.type	get_pde,%function
	.code	32
get_pde:
.Lfunc_begin3:
	.loc	2 53 0 is_stmt 1
	.fnstart
	.cfi_startproc
	.pad	#8
	sub	sp, sp, #8
	.cfi_def_cfa_offset 8
	mov	r1, r0
	str	r0, [sp, #4]
.Ltmp20:
	.loc	2 54 10 prologue_end
	ldr	r0, [sp, #4]
	lsr	r0, r0, #20
	str	r0, [sp, #4]
	.loc	2 55 12
	ldr	r0, .LCPI3_0
	ldr	r0, [r0]
	.loc	2 55 25 is_stmt 0
	ldr	r2, [sp, #4]
	.loc	2 55 12
	ldr	r0, [r0, r2, lsl #2]
	.loc	2 55 5
	str	r1, [sp]
	add	sp, sp, #8
	bx	lr
.Ltmp21:
	.p2align	2
	.loc	2 0 5
.LCPI3_0:
	.long	kernel_pgtbl
.Lfunc_end3:
	.size	get_pde, .Lfunc_end3-get_pde
	.cfi_endproc
	.cantunwind
	.fnend

	.globl	set_bootpgtbl
	.p2align	2
	.type	set_bootpgtbl,%function
	.code	32
set_bootpgtbl:
.Lfunc_begin4:
	.loc	2 60 0 is_stmt 1
	.fnstart
	.cfi_startproc
	.save	{r4, r5, r11, lr}
	push	{r4, r5, r11, lr}
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -4
	.cfi_offset 11, -8
	.cfi_offset 5, -12
	.cfi_offset 4, -16
	.setfp	r11, sp, #8
	add	r11, sp, #8
	.cfi_def_cfa 11, 8
	.pad	#40
	sub	sp, sp, #40
	mov	r12, r3
	mov	lr, r2
	mov	r4, r1
	mov	r5, r0
	str	r0, [r11, #-12]
	str	r1, [r11, #-16]
	str	r2, [r11, #-20]
	str	r3, [sp, #24]
.Ltmp22:
	.loc	2 65 10 prologue_end
	ldr	r0, [r11, #-12]
	lsr	r0, r0, #20
	str	r0, [r11, #-12]
	.loc	2 66 10
	ldr	r0, [r11, #-16]
	lsr	r0, r0, #20
	str	r0, [r11, #-16]
	.loc	2 67 10
	ldr	r0, [r11, #-20]
	lsr	r0, r0, #20
	str	r0, [r11, #-20]
	mov	r0, #0
.Ltmp23:
	.loc	2 69 14
	str	r0, [sp, #16]
	.loc	2 69 10 is_stmt 0
	str	r12, [sp, #12]
	str	lr, [sp, #8]
	str	r4, [sp, #4]
	str	r5, [sp]
	b	.LBB4_1
.LBB4_1:
.Ltmp24:
	.loc	2 69 19
	ldr	r0, [sp, #16]
	.loc	2 69 25
	ldr	r1, [r11, #-20]
.Ltmp25:
	.loc	2 69 5
	cmp	r0, r1
	bhs	.LBB4_10
	b	.LBB4_2
.LBB4_2:
.Ltmp26:
	.loc	2 70 16 is_stmt 1
	ldr	r0, [r11, #-16]
	.loc	2 70 20 is_stmt 0
	lsl	r0, r0, #20
	.loc	2 70 13
	str	r0, [sp, #20]
.Ltmp27:
	.loc	2 72 14 is_stmt 1
	ldr	r0, [sp, #24]
.Ltmp28:
	.loc	2 72 13 is_stmt 0
	cmp	r0, #0
	bne	.LBB4_4
	b	.LBB4_3
.LBB4_3:
.Ltmp29:
	.loc	2 74 17 is_stmt 1
	ldr	r0, [sp, #20]
	mov	r1, #14
	orr	r1, r1, #1024
	orr	r0, r0, r1
	str	r0, [sp, #20]
	.loc	2 75 9
	b	.LBB4_5
.Ltmp30:
.LBB4_4:
	.loc	2 77 17
	ldr	r0, [sp, #20]
	mov	r1, #2
	orr	r1, r1, #1024
	orr	r0, r0, r1
	str	r0, [sp, #20]
	b	.LBB4_5
.Ltmp31:
.LBB4_5:
	.loc	2 81 13
	ldr	r0, [r11, #-12]
.Ltmp32:
	.loc	2 81 13 is_stmt 0
	cmp	r0, #255
	bhi	.LBB4_7
	b	.LBB4_6
.LBB4_6:
.Ltmp33:
	.loc	2 82 32 is_stmt 1
	ldr	r0, [sp, #20]
	.loc	2 82 13 is_stmt 0
	ldr	r1, .LCPI4_1
	ldr	r1, [r1]
	.loc	2 82 24
	ldr	r2, [r11, #-12]
	.loc	2 82 30
	str	r0, [r1, r2, lsl #2]
	.loc	2 83 9 is_stmt 1
	b	.LBB4_8
.Ltmp34:
.LBB4_7:
	.loc	2 84 34
	ldr	r0, [sp, #20]
	.loc	2 84 13 is_stmt 0
	ldr	r1, .LCPI4_0
	ldr	r1, [r1]
	.loc	2 84 26
	ldr	r2, [r11, #-12]
	.loc	2 84 32
	str	r0, [r1, r2, lsl #2]
	b	.LBB4_8
.Ltmp35:
.LBB4_8:
	.loc	2 87 13 is_stmt 1
	ldr	r0, [r11, #-12]
	add	r0, r0, #1
	str	r0, [r11, #-12]
	.loc	2 88 12
	ldr	r0, [r11, #-16]
	add	r0, r0, #1
	str	r0, [r11, #-16]
	.loc	2 89 5
	b	.LBB4_9
.Ltmp36:
.LBB4_9:
	.loc	2 69 33
	ldr	r0, [sp, #16]
	add	r0, r0, #1
	str	r0, [sp, #16]
	.loc	2 69 5 is_stmt 0
	b	.LBB4_1
.Ltmp37:
.LBB4_10:
	.loc	2 90 1 is_stmt 1
	sub	sp, r11, #8
	pop	{r4, r5, r11, pc}
.Ltmp38:
	.p2align	2
	.loc	2 0 1 is_stmt 0
.LCPI4_0:
	.long	kernel_pgtbl
.LCPI4_1:
	.long	user_pgtbl
.Lfunc_end4:
	.size	set_bootpgtbl, .Lfunc_end4-set_bootpgtbl
	.cfi_endproc
	.cantunwind
	.fnend

	.globl	load_pgtlb
	.p2align	2
	.type	load_pgtlb,%function
	.code	32
load_pgtlb:
.Lfunc_begin5:
	.loc	2 105 0 is_stmt 1
	.fnstart
	.cfi_startproc
	.save	{r11, lr}
	push	{r11, lr}
	.cfi_def_cfa_offset 8
	.cfi_offset 14, -4
	.cfi_offset 11, -8
	.setfp	r11, sp
	mov	r11, sp
	.cfi_def_cfa_register 11
	.pad	#32
	sub	sp, sp, #32
	mov	r2, r1
	mov	r3, r0
	str	r0, [r11, #-4]
	str	r1, [r11, #-8]
.Ltmp39:
	.loc	2 111 5 prologue_end
	@APP
	MRC p15, 0, r0, c0, c0, 0
	.code	32
	@NO_APP
	str	r0, [r11, #-12]
.Ltmp40:
	.loc	2 113 9
	ldrb	r0, [r11, #-9]
.Ltmp41:
	.loc	2 113 9 is_stmt 0
	cmp	r0, #65
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	bne	.LBB5_2
	b	.LBB5_1
.LBB5_1:
.Ltmp42:
	.loc	2 115 5 is_stmt 1
	b	.LBB5_2
.Ltmp43:
.LBB5_2:
	.loc	2 117 13
	ldrh	r0, [r11, #-10]
	.loc	2 117 24 is_stmt 0
	and	r0, r0, #15
	.loc	2 117 10
	strb	r0, [r11, #-13]
.Ltmp44:
	.loc	2 119 10 is_stmt 1
	ldrb	r0, [r11, #-13]
	.loc	2 119 21 is_stmt 0
	cmp	r0, #7
	beq	.LBB5_5
	b	.LBB5_3
.LBB5_3:
	.loc	2 119 25
	ldrb	r0, [r11, #-13]
.Ltmp45:
	.loc	2 119 9
	cmp	r0, #15
	beq	.LBB5_5
	b	.LBB5_4
.LBB5_4:
.Ltmp46:
	.loc	2 120 9 is_stmt 1
	ldr	r0, .LCPI5_0
	bl	_puts
	.loc	2 121 5
	b	.LBB5_5
.Ltmp47:
.LBB5_5:
	.loc	2 126 9
	ldr	r0, .LCPI5_1
	str	r0, [sp, #12]
	.loc	2 127 49
	ldr	r0, [sp, #12]
	.loc	2 127 5 is_stmt 0
	@APP
	MCR p15, 0, r0, c3, c0, 0
	.code	32
	@NO_APP
	.loc	2 131 9 is_stmt 1
	mov	r0, #4
	str	r0, [sp, #12]
	.loc	2 132 49
	ldr	r0, [sp, #12]
	.loc	2 132 5 is_stmt 0
	@APP
	MCR p15, 0, r0, c2, c0, 2
	.code	32
	@NO_APP
	.loc	2 135 17 is_stmt 1
	ldr	r0, .LCPI5_2
	ldr	r0, [r0]
	.loc	2 135 9 is_stmt 0
	str	r0, [sp, #12]
	.loc	2 136 49 is_stmt 1
	ldr	r0, [sp, #12]
	.loc	2 136 5 is_stmt 0
	@APP
	MCR p15, 0, r0, c2, c0, 1
	.code	32
	@NO_APP
	.loc	2 139 17 is_stmt 1
	ldr	r0, [r11, #-8]
	.loc	2 139 9 is_stmt 0
	str	r0, [sp, #12]
	.loc	2 140 49 is_stmt 1
	ldr	r0, [sp, #12]
	.loc	2 140 5 is_stmt 0
	@APP
	MCR p15, 0, r0, c2, c0, 0
	.code	32
	@NO_APP
	.loc	2 143 5 is_stmt 1
	@APP
	MRC p15, 0, r0, c1, c0, 0
	.code	32
	@NO_APP
	str	r0, [sp, #12]
	.loc	2 145 9
	ldr	r0, [sp, #12]
	ldr	r1, .LCPI5_3
	orr	r0, r0, r1
	str	r0, [sp, #12]
	.loc	2 147 49
	ldr	r0, [sp, #12]
	.loc	2 147 5 is_stmt 0
	@APP
	MCR p15, 0, r0, c1, c0, 0
	.code	32
	@NO_APP
	.loc	2 149 5 is_stmt 1
	bl	_flush_all
	.loc	2 150 1
	mov	sp, r11
	pop	{r11, pc}
.Ltmp48:
	.p2align	2
	.loc	2 0 1 is_stmt 0
.LCPI5_0:
	.long	.L.str.1
.LCPI5_1:
	.long	1431655765
.LCPI5_2:
	.long	kernel_pgtbl
.LCPI5_3:
	.long	8400909
.Lfunc_end5:
	.size	load_pgtlb, .Lfunc_end5-load_pgtlb
	.cfi_endproc
	.cantunwind
	.fnend

	.p2align	2
	.type	_flush_all,%function
	.code	32
_flush_all:
.Lfunc_begin6:
	.loc	2 93 0 is_stmt 1
	.fnstart
	.cfi_startproc
	.pad	#4
	sub	sp, sp, #4
	.cfi_def_cfa_offset 4
	mov	r0, #0
.Ltmp49:
	.loc	2 94 10 prologue_end
	str	r0, [sp]
	.loc	2 97 50
	ldr	r0, [sp]
	.loc	2 97 5 is_stmt 0
	@APP
	MCR p15, 0, r0, c8, c7, 0
	.code	32
	@NO_APP
	.loc	2 102 1 is_stmt 1
	add	sp, sp, #4
	bx	lr
.Ltmp50:
.Lfunc_end6:
	.size	_flush_all, .Lfunc_end6-_flush_all
	.cfi_endproc
	.cantunwind
	.fnend

	.globl	clear_bss
	.p2align	2
	.type	clear_bss,%function
	.code	32
clear_bss:
.Lfunc_begin7:
	.loc	2 162 0
	.fnstart
	.cfi_startproc
	.save	{r11, lr}
	push	{r11, lr}
	.cfi_def_cfa_offset 8
	.cfi_offset 14, -4
	.cfi_offset 11, -8
	.setfp	r11, sp
	mov	r11, sp
	.cfi_def_cfa_register 11
	.pad	#8
	sub	sp, sp, #8
.Ltmp51:
	.loc	2 163 5 prologue_end
	ldr	r0, .LCPI7_0
	ldr	r1, .LCPI7_1
	sub	r2, r1, r0
	mov	r1, #0
	bl	memset
	.loc	2 164 1
	str	r0, [sp, #4]
	mov	sp, r11
	pop	{r11, pc}
.Ltmp52:
	.p2align	2
	.loc	2 0 1 is_stmt 0
.LCPI7_0:
	.long	edata
.LCPI7_1:
	.long	end
.Lfunc_end7:
	.size	clear_bss, .Lfunc_end7-clear_bss
	.cfi_endproc
	.cantunwind
	.fnend

	.globl	start
	.p2align	2
	.type	start,%function
	.code	32
start:
.Lfunc_begin8:
	.loc	2 167 0 is_stmt 1
	.fnstart
	.cfi_startproc
	.save	{r11, lr}
	push	{r11, lr}
	.cfi_def_cfa_offset 8
	.cfi_offset 14, -4
	.cfi_offset 11, -8
	.setfp	r11, sp
	mov	r11, sp
	.cfi_def_cfa_register 11
	.pad	#16
	sub	sp, sp, #16
.Ltmp53:
	.loc	2 169 5 prologue_end
	ldr	r0, .LCPI8_0
	bl	_puts
	.loc	2 173 5
	mov	r0, #1048576
	mov	lr, #0
	str	r0, [sp, #8]
	mov	r0, lr
	mov	r1, lr
	ldr	r2, [sp, #8]
	mov	r3, lr
	str	lr, [sp, #4]
	bl	set_bootpgtbl
	.loc	2 174 5
	mov	r0, #-2147483648
	ldr	r1, [sp, #4]
	ldr	r2, [sp, #8]
	ldr	r3, [sp, #4]
	bl	set_bootpgtbl
	.loc	2 177 12
	mov	r0, #983040
	orr	r0, r0, #-2147483648
	str	r0, [r11, #-4]
.Ltmp54:
	.loc	2 179 9
	ldr	r0, [r11, #-4]
	.loc	2 179 16 is_stmt 0
	ldr	r1, .LCPI8_1
.Ltmp55:
	.loc	2 179 9
	cmp	r0, r1
	bhi	.LBB8_2
	b	.LBB8_1
.LBB8_1:
.Ltmp56:
	.loc	2 180 9 is_stmt 1
	ldr	r0, .LCPI8_2
	bl	cprintf
	.loc	2 181 5
	b	.LBB8_2
.Ltmp57:
.LBB8_2:
	.loc	2 183 5
	mov	r0, #16711680
	orr	r0, r0, #-16777216
	mov	r2, #1048576
	mov	r1, #0
	str	r1, [sp]
	ldr	r3, [sp]
	bl	set_bootpgtbl
	.loc	2 184 5
	mov	r0, #-1879048192
	mov	r1, #268435456
	mov	r2, #134217728
	mov	r3, #1
	bl	set_bootpgtbl
	.loc	2 186 17
	ldr	r0, .LCPI8_3
	ldr	r0, [r0]
	.loc	2 186 31 is_stmt 0
	ldr	r1, .LCPI8_4
	ldr	r1, [r1]
	.loc	2 186 5
	bl	load_pgtlb
	.loc	2 187 5 is_stmt 1
	bl	jump_stack
	.loc	2 190 5
	bl	clear_bss
	.loc	2 192 5
	bl	kmain
	.loc	2 193 1
	mov	sp, r11
	pop	{r11, pc}
.Ltmp58:
	.p2align	2
	.loc	2 0 1 is_stmt 0
.LCPI8_0:
	.long	.L.str.2
.LCPI8_1:
	.long	end
.LCPI8_2:
	.long	.L.str.3
.LCPI8_3:
	.long	kernel_pgtbl
.LCPI8_4:
	.long	user_pgtbl
.Lfunc_end8:
	.size	start, .Lfunc_end8-start
	.cfi_endproc
	.cantunwind
	.fnend

	.type	.L.str,%object
	.section	.rodata.str1.1,"aMS",%progbits,1
.L.str:
	.asciz	"0123456789ABCDEF"
	.size	.L.str, 17

	.type	kernel_pgtbl,%object
	.data
	.globl	kernel_pgtbl
	.p2align	2
kernel_pgtbl:
	.long	_kernel_pgtbl
	.size	kernel_pgtbl, 4

	.type	user_pgtbl,%object
	.globl	user_pgtbl
	.p2align	2
user_pgtbl:
	.long	_user_pgtbl
	.size	user_pgtbl, 4

	.type	.L.str.1,%object
	.section	.rodata.str1.1,"aMS",%progbits,1
.L.str.1:
	.asciz	"need AARM v6 or higher\n"
	.size	.L.str.1, 24

	.type	.L.str.2,%object
.L.str.2:
	.asciz	"starting xv6 for ARM...\n"
	.size	.L.str.2, 25

	.type	.L.str.3,%object
.L.str.3:
	.asciz	"error: vector table overlaps kernel\n"
	.size	.L.str.3, 37

	.section	.debug_str,"MS",%progbits,1
.Linfo_string0:
	.asciz	"clang version 6.0.0 "
.Linfo_string1:
	.asciz	"start.c"
.Linfo_string2:
	.asciz	"/mnt/dalmore-home/one/src/xv6-rpi/src"
.Linfo_string3:
	.asciz	"kernel_pgtbl"
.Linfo_string4:
	.asciz	"unsigned int"
.Linfo_string5:
	.asciz	"uint32"
.Linfo_string6:
	.asciz	"user_pgtbl"
.Linfo_string7:
	.asciz	"unsigned char"
.Linfo_string8:
	.asciz	"uint8"
.Linfo_string9:
	.asciz	"uint"
.Linfo_string10:
	.asciz	"_uart_putc"
.Linfo_string11:
	.asciz	"_puts"
.Linfo_string12:
	.asciz	"_putint"
.Linfo_string13:
	.asciz	"get_pde"
.Linfo_string14:
	.asciz	"set_bootpgtbl"
.Linfo_string15:
	.asciz	"load_pgtlb"
.Linfo_string16:
	.asciz	"_flush_all"
.Linfo_string17:
	.asciz	"clear_bss"
.Linfo_string18:
	.asciz	"start"
.Linfo_string19:
	.asciz	"c"
.Linfo_string20:
	.asciz	"int"
.Linfo_string21:
	.asciz	"uart0"
.Linfo_string22:
	.asciz	"s"
.Linfo_string23:
	.asciz	"char"
.Linfo_string24:
	.asciz	"prefix"
.Linfo_string25:
	.asciz	"val"
.Linfo_string26:
	.asciz	"suffix"
.Linfo_string27:
	.asciz	"arr"
.Linfo_string28:
	.asciz	"idx"
.Linfo_string29:
	.asciz	"virt"
.Linfo_string30:
	.asciz	"phy"
.Linfo_string31:
	.asciz	"len"
.Linfo_string32:
	.asciz	"dev_mem"
.Linfo_string33:
	.asciz	"pde"
.Linfo_string34:
	.asciz	"kern_pgtbl"
.Linfo_string35:
	.asciz	"ret"
.Linfo_string36:
	.asciz	"arch"
.Linfo_string37:
	.asciz	"vectbl"
	.section	.debug_abbrev,"",%progbits
	.byte	1
	.byte	17
	.byte	1
	.byte	37
	.byte	14
	.byte	19
	.byte	5
	.byte	3
	.byte	14
	.byte	16
	.byte	23
	.byte	27
	.byte	14
	.ascii	"\264B"
	.byte	25
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	0
	.byte	0
	.byte	2
	.byte	52
	.byte	0
	.byte	3
	.byte	14
	.byte	73
	.byte	19
	.byte	63
	.byte	25
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	2
	.byte	24
	.byte	0
	.byte	0
	.byte	3
	.byte	15
	.byte	0
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	4
	.byte	22
	.byte	0
	.byte	73
	.byte	19
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	0
	.byte	0
	.byte	5
	.byte	36
	.byte	0
	.byte	3
	.byte	14
	.byte	62
	.byte	11
	.byte	11
	.byte	11
	.byte	0
	.byte	0
	.byte	6
	.byte	46
	.byte	1
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	64
	.byte	24
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	39
	.byte	25
	.byte	63
	.byte	25
	.byte	0
	.byte	0
	.byte	7
	.byte	5
	.byte	0
	.byte	2
	.byte	24
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	8
	.byte	52
	.byte	0
	.byte	2
	.byte	24
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	9
	.byte	46
	.byte	1
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	64
	.byte	24
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	39
	.byte	25
	.byte	73
	.byte	19
	.byte	63
	.byte	25
	.byte	0
	.byte	0
	.byte	10
	.byte	46
	.byte	1
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	64
	.byte	24
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	39
	.byte	25
	.byte	0
	.byte	0
	.byte	11
	.byte	46
	.byte	0
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	64
	.byte	24
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	39
	.byte	25
	.byte	63
	.byte	25
	.byte	0
	.byte	0
	.byte	12
	.byte	53
	.byte	0
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	0
	.section	.debug_info,"",%progbits
.Lcu_begin0:
	.long	628
	.short	4
	.long	.debug_abbrev
	.byte	4
	.byte	1
	.long	.Linfo_string0
	.short	12
	.long	.Linfo_string1
	.long	.Lline_table_start0
	.long	.Linfo_string2

	.long	.Lfunc_begin0
	.long	.Lfunc_end8-.Lfunc_begin0
	.byte	2
	.long	.Linfo_string3
	.long	55

	.byte	2
	.byte	47
	.byte	5
	.byte	3
	.long	kernel_pgtbl
	.byte	3
	.long	60
	.byte	4
	.long	71
	.long	.Linfo_string5
	.byte	1
	.byte	4
	.byte	5
	.long	.Linfo_string4
	.byte	7
	.byte	4
	.byte	2
	.long	.Linfo_string6
	.long	55

	.byte	2
	.byte	48
	.byte	5
	.byte	3
	.long	user_pgtbl
	.byte	3
	.long	100
	.byte	4
	.long	111
	.long	.Linfo_string8
	.byte	1
	.byte	6
	.byte	5
	.long	.Linfo_string7
	.byte	8
	.byte	1
	.byte	4
	.long	71
	.long	.Linfo_string9
	.byte	1
	.byte	1
	.byte	6
	.long	.Lfunc_begin0
	.long	.Lfunc_end0-.Lfunc_begin0
	.byte	1
	.byte	91
	.long	.Linfo_string10
	.byte	2
	.byte	9


	.byte	7
	.byte	2
	.byte	125
	.byte	8
	.long	.Linfo_string19
	.byte	2
	.byte	9
	.long	602
	.byte	8
	.byte	2
	.byte	125
	.byte	4
	.long	.Linfo_string21
	.byte	2
	.byte	11
	.long	609
	.byte	0
	.byte	6
	.long	.Lfunc_begin1
	.long	.Lfunc_end1-.Lfunc_begin1
	.byte	1
	.byte	91
	.long	.Linfo_string11
	.byte	2
	.byte	16


	.byte	7
	.byte	2
	.byte	125
	.byte	4
	.long	.Linfo_string22
	.byte	2
	.byte	16
	.long	619
	.byte	0
	.byte	6
	.long	.Lfunc_begin2
	.long	.Lfunc_end2-.Lfunc_begin2
	.byte	1
	.byte	91
	.long	.Linfo_string12
	.byte	2
	.byte	24


	.byte	7
	.byte	2
	.byte	145
	.byte	124
	.long	.Linfo_string24
	.byte	2
	.byte	24
	.long	619
	.byte	7
	.byte	2
	.byte	145
	.byte	120
	.long	.Linfo_string25
	.byte	2
	.byte	24
	.long	118
	.byte	7
	.byte	2
	.byte	145
	.byte	116
	.long	.Linfo_string26
	.byte	2
	.byte	24
	.long	619
	.byte	8
	.byte	2
	.byte	125
	.byte	16
	.long	.Linfo_string27
	.byte	2
	.byte	26
	.long	619
	.byte	8
	.byte	2
	.byte	125
	.byte	12
	.long	.Linfo_string28
	.byte	2
	.byte	27
	.long	602
	.byte	0
	.byte	9
	.long	.Lfunc_begin3
	.long	.Lfunc_end3-.Lfunc_begin3
	.byte	1
	.byte	91
	.long	.Linfo_string13
	.byte	2
	.byte	52

	.long	60

	.byte	7
	.byte	2
	.byte	125
	.byte	4
	.long	.Linfo_string29
	.byte	2
	.byte	52
	.long	60
	.byte	0
	.byte	6
	.long	.Lfunc_begin4
	.long	.Lfunc_end4-.Lfunc_begin4
	.byte	1
	.byte	91
	.long	.Linfo_string14
	.byte	2
	.byte	59


	.byte	7
	.byte	2
	.byte	145
	.byte	116
	.long	.Linfo_string29
	.byte	2
	.byte	59
	.long	60
	.byte	7
	.byte	2
	.byte	145
	.byte	112
	.long	.Linfo_string30
	.byte	2
	.byte	59
	.long	60
	.byte	7
	.byte	2
	.byte	145
	.byte	108
	.long	.Linfo_string31
	.byte	2
	.byte	59
	.long	118
	.byte	7
	.byte	2
	.byte	125
	.byte	24
	.long	.Linfo_string32
	.byte	2
	.byte	59
	.long	602
	.byte	8
	.byte	2
	.byte	125
	.byte	20
	.long	.Linfo_string33
	.byte	2
	.byte	61
	.long	60
	.byte	8
	.byte	2
	.byte	125
	.byte	16
	.long	.Linfo_string28
	.byte	2
	.byte	62
	.long	602
	.byte	0
	.byte	6
	.long	.Lfunc_begin5
	.long	.Lfunc_end5-.Lfunc_begin5
	.byte	1
	.byte	91
	.long	.Linfo_string15
	.byte	2
	.byte	104


	.byte	7
	.byte	2
	.byte	145
	.byte	124
	.long	.Linfo_string34
	.byte	2
	.byte	104
	.long	55
	.byte	7
	.byte	2
	.byte	145
	.byte	120
	.long	.Linfo_string6
	.byte	2
	.byte	104
	.long	55
	.byte	8
	.byte	2
	.byte	145
	.byte	116
	.long	.Linfo_string35
	.byte	2
	.byte	106
	.long	118
	.byte	8
	.byte	2
	.byte	145
	.byte	115
	.long	.Linfo_string36
	.byte	2
	.byte	107
	.long	624
	.byte	8
	.byte	2
	.byte	125
	.byte	12
	.long	.Linfo_string25
	.byte	2
	.byte	108
	.long	118
	.byte	0
	.byte	10
	.long	.Lfunc_begin6
	.long	.Lfunc_end6-.Lfunc_begin6
	.byte	1
	.byte	91
	.long	.Linfo_string16
	.byte	2
	.byte	92

	.byte	8
	.byte	2
	.byte	125
	.byte	0
	.long	.Linfo_string25
	.byte	2
	.byte	94
	.long	118
	.byte	0
	.byte	11
	.long	.Lfunc_begin7
	.long	.Lfunc_end7-.Lfunc_begin7
	.byte	1
	.byte	91
	.long	.Linfo_string17
	.byte	2
	.byte	161


	.byte	6
	.long	.Lfunc_begin8
	.long	.Lfunc_end8-.Lfunc_begin8
	.byte	1
	.byte	91
	.long	.Linfo_string18
	.byte	2
	.byte	166


	.byte	8
	.byte	2
	.byte	145
	.byte	124
	.long	.Linfo_string37
	.byte	2
	.byte	168
	.long	60
	.byte	0
	.byte	5
	.long	.Linfo_string20
	.byte	5
	.byte	4
	.byte	3
	.long	614
	.byte	12
	.long	100
	.byte	3
	.long	624
	.byte	5
	.long	.Linfo_string23
	.byte	8
	.byte	1
	.byte	0
	.section	.debug_ranges,"",%progbits
	.section	.debug_macinfo,"",%progbits
.Lcu_macro_begin0:
	.byte	0
	.section	.debug_pubnames,"",%progbits
	.long	.LpubNames_end0-.LpubNames_begin0
.LpubNames_begin0:
	.short	2
	.long	.Lcu_begin0
	.long	632
	.long	570
	.asciz	"start"
	.long	433
	.asciz	"load_pgtlb"
	.long	207
	.asciz	"_putint"
	.long	129
	.asciz	"_uart_putc"
	.long	78
	.asciz	"user_pgtbl"
	.long	295
	.asciz	"get_pde"
	.long	38
	.asciz	"kernel_pgtbl"
	.long	521
	.asciz	"_flush_all"
	.long	175
	.asciz	"_puts"
	.long	331
	.asciz	"set_bootpgtbl"
	.long	553
	.asciz	"clear_bss"
	.long	0
.LpubNames_end0:
	.section	.debug_pubtypes,"",%progbits
	.long	.LpubTypes_end0-.LpubTypes_begin0
.LpubTypes_begin0:
	.short	2
	.long	.Lcu_begin0
	.long	632
	.long	118
	.asciz	"uint"
	.long	60
	.asciz	"uint32"
	.long	71
	.asciz	"unsigned int"
	.long	100
	.asciz	"uint8"
	.long	111
	.asciz	"unsigned char"
	.long	602
	.asciz	"int"
	.long	624
	.asciz	"char"
	.long	0
.LpubTypes_end0:

	.ident	"clang version 6.0.0 "
	.section	".note.GNU-stack","",%progbits
	.eabi_attribute	30, 6
	.section	.debug_line,"",%progbits
.Lline_table_start0: