	.file	"extr_nv50.c_nv50_graph_trap_handler.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC0:
	.string	"TRAP: no units reporting traps?\n"
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC1:
	.string	"TRAP_DISPATCH - no ustatus?\n"
.LC2:
	.string	"TRAP DISPATCH_FAULT\n"
	.section	.rodata.str1.8
	.align 8
.LC3:
	.string	"ch %d [0x%010llx %s] subc %d class 0x%04x mthd 0x%04x data 0x%08x%08x 400808 0x%08x 400848 0x%08x\n"
	.section	.rodata.str1.1
.LC4:
	.string	"no stuck command?\n"
.LC5:
	.string	"TRAP DISPATCH_QUERY\n"
	.section	.rodata.str1.8
	.align 8
.LC6:
	.string	"ch %d [0x%010llx %s] subc %d class 0x%04x mthd 0x%04x data 0x%08x 40084c 0x%08x\n"
	.align 8
.LC7:
	.string	"TRAP_DISPATCH (unknown 0x%08x)\n"
	.section	.rodata.str1.1
.LC8:
	.string	"TRAP_M2MF"
.LC9:
	.string	"\n"
	.section	.rodata.str1.8
	.align 8
.LC10:
	.string	"TRAP_M2MF %08x %08x %08x %08x\n"
	.section	.rodata.str1.1
.LC11:
	.string	"TRAP_VFETCH"
	.section	.rodata.str1.8
	.align 8
.LC12:
	.string	"TRAP_VFETCH %08x %08x %08x %08x\n"
	.section	.rodata.str1.1
.LC13:
	.string	"TRAP_STRMOUT"
	.section	.rodata.str1.8
	.align 8
.LC14:
	.string	"TRAP_STRMOUT %08x %08x %08x %08x\n"
	.section	.rodata.str1.1
.LC15:
	.string	"TRAP_CCACHE"
	.section	.rodata.str1.8
	.align 8
.LC16:
	.string	"TRAP_CCACHE %08x %08x %08x %08x %08x %08x %08x\n"
	.section	.rodata.str1.1
.LC17:
	.string	"TRAP_UNKC04 0x%08x\n"
.LC18:
	.string	"TRAP_TEXTURE"
.LC19:
	.string	"TRAP_MP"
.LC20:
	.string	"TRAP_TPDMA"
.LC21:
	.string	"TRAP: unknown 0x%08x\n"
	.text
	.p2align 4
	.type	nv50_graph_trap_handler, @function
nv50_graph_trap_handler:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	mov	r13, r8
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	mov	r12d, ecx
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	mov	rbp, rdi
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	mov	ebx, esi
	mov	esi, 4194568
	sub	rsp, 40
	.cfi_def_cfa_offset 96
	mov	DWORD PTR 4[rsp], edx
	call	nv_rd32@PLT
	test	ebx, ebx
	mov	r15d, eax
	setne	r14b
	test	eax, eax
	jne	.L2
	test	r14b, r14b
	jne	.L113
.L2:
	test	r15b, 1
	jne	.L114
.L4:
	test	r15b, 2
	jne	.L115
	test	r15b, 4
	jne	.L116
.L19:
	test	r15b, 8
	jne	.L117
.L21:
	test	r15b, 16
	jne	.L118
.L23:
	test	r15b, 32
	jne	.L119
.L25:
	test	r15b, 64
	jne	.L120
.L27:
	test	r15b, -128
	jne	.L121
.L28:
	test	r15d, 256
	jne	.L122
.L29:
	test	r15d, r15d
	je	.L32
.L124:
	test	ebx, ebx
	jne	.L123
.L30:
	mov	edx, r15d
	mov	esi, 4194568
	mov	rdi, rbp
	mov	r15d, 1
	call	nv_wr32@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L32:
	mov	r15d, 1
.L1:
	add	rsp, 40
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	mov	eax, r15d
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L122:
	.cfi_restore_state
	mov	r8d, ebx
	mov	ecx, 4228872
	mov	edx, 4230664
	mov	rdi, rbp
	lea	r9, .LC20[rip]
	mov	esi, 8
	and	r15d, -257
	call	nv50_priv_tp_trap@PLT
	mov	edx, 256
	mov	esi, 4194568
	mov	rdi, rbp
	call	nv_wr32@PLT
	test	r15d, r15d
	je	.L32
	jmp	.L124
	.p2align 4,,10
	.p2align 3
.L121:
	mov	r8d, ebx
	mov	ecx, 4227868
	mov	edx, 4227860
	mov	rdi, rbp
	lea	r9, .LC19[rip]
	mov	esi, 7
	and	r15b, 127
	call	nv50_priv_tp_trap@PLT
	mov	edx, 128
	mov	esi, 4194568
	mov	rdi, rbp
	call	nv_wr32@PLT
	test	r15d, 256
	je	.L29
	jmp	.L122
	.p2align 4,,10
	.p2align 3
.L120:
	mov	r8d, ebx
	mov	ecx, 4228608
	mov	edx, 4229376
	mov	rdi, rbp
	lea	r9, .LC18[rip]
	mov	esi, 6
	and	r15d, -65
	call	nv50_priv_tp_trap@PLT
	mov	edx, 64
	mov	esi, 4194568
	mov	rdi, rbp
	call	nv_wr32@PLT
	test	r15b, -128
	je	.L28
	jmp	.L121
	.p2align 4,,10
	.p2align 3
.L119:
	mov	esi, 4202496
	mov	rdi, rbp
	call	nv_rd32@PLT
	test	ebx, ebx
	jne	.L125
.L26:
	mov	edx, -1073741824
	mov	esi, 4202496
	mov	rdi, rbp
	call	nv_wr32@PLT
	test	r15b, 64
	je	.L27
	jmp	.L120
	.p2align 4,,10
	.p2align 3
.L118:
	mov	esi, 4214808
	mov	rdi, rbp
	call	nv_rd32@PLT
	mov	r12d, eax
	test	ebx, ebx
	jne	.L126
.L24:
	mov	edx, -1073741824
	mov	esi, 4214808
	mov	rdi, rbp
	and	r15d, -17
	call	nv_wr32@PLT
	mov	edx, 16
	mov	esi, 4194568
	mov	rdi, rbp
	call	nv_wr32@PLT
	test	r15b, 32
	je	.L25
	jmp	.L119
	.p2align 4,,10
	.p2align 3
.L117:
	mov	esi, 4200448
	mov	rdi, rbp
	call	nv_rd32@PLT
	mov	r12d, eax
	test	ebx, ebx
	jne	.L127
.L22:
	mov	edx, 128
	mov	esi, 4194368
	mov	rdi, rbp
	and	r15d, -9
	call	nv_wr32@PLT
	xor	edx, edx
	mov	esi, 4194368
	mov	rdi, rbp
	call	nv_wr32@PLT
	mov	edx, -1073741824
	mov	esi, 4200448
	mov	rdi, rbp
	call	nv_wr32@PLT
	mov	edx, 8
	mov	esi, 4194568
	mov	rdi, rbp
	call	nv_wr32@PLT
	test	r15b, 16
	je	.L23
	jmp	.L118
	.p2align 4,,10
	.p2align 3
.L116:
	mov	esi, 4197380
	mov	rdi, rbp
	call	nv_rd32@PLT
	mov	r12d, eax
	test	ebx, ebx
	jne	.L128
.L20:
	mov	edx, -1073741824
	mov	esi, 4197380
	mov	rdi, rbp
	and	r15d, -5
	call	nv_wr32@PLT
	mov	edx, 4
	mov	esi, 4194568
	mov	rdi, rbp
	call	nv_wr32@PLT
	test	r15b, 8
	je	.L21
	jmp	.L117
	.p2align 4,,10
	.p2align 3
.L115:
	mov	esi, 4220928
	mov	rdi, rbp
	call	nv_rd32@PLT
	mov	r12d, eax
	test	ebx, ebx
	jne	.L129
.L18:
	mov	edx, 2
	mov	esi, 4194368
	mov	rdi, rbp
	and	r15d, -3
	call	nv_wr32@PLT
	xor	edx, edx
	mov	esi, 4194368
	mov	rdi, rbp
	call	nv_wr32@PLT
	mov	edx, -1073741824
	mov	esi, 4220928
	mov	rdi, rbp
	call	nv_wr32@PLT
	mov	edx, 2
	mov	esi, 4194568
	mov	rdi, rbp
	call	nv_wr32@PLT
	test	r15b, 4
	je	.L19
	jmp	.L116
	.p2align 4,,10
	.p2align 3
.L113:
	lea	rsi, .LC0[rip]
	mov	rdi, rbp
	xor	eax, eax
	mov	r15d, 1
	call	nv_error@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L114:
	mov	esi, 4196356
	mov	rdi, rbp
	call	nv_rd32@PLT
	mov	r11d, eax
	mov	DWORD PTR 8[rsp], eax
	and	r11d, 2147483647
	jne	.L5
	test	r14b, r14b
	je	.L5
	lea	rsi, .LC1[rip]
	mov	rdi, rbp
	xor	eax, eax
	call	nv_error@PLT
	xor	edx, edx
	mov	esi, 4195584
	mov	rdi, rbp
	call	nv_wr32@PLT
	test	BYTE PTR 8[rsp], 1
	jne	.L130
.L7:
	mov	edx, -1073741824
	mov	esi, 4196356
	mov	rdi, rbp
	call	nv_wr32@PLT
	mov	edx, 1
	mov	esi, 4194568
	mov	rdi, rbp
	call	nv_wr32@PLT
	and	r15d, -2
	jne	.L4
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L5:
	xor	edx, edx
	mov	esi, 4195584
	mov	rdi, rbp
	mov	DWORD PTR 12[rsp], r11d
	call	nv_wr32@PLT
	test	BYTE PTR 8[rsp], 1
	mov	r11d, DWORD PTR 12[rsp]
	jne	.L131
.L12:
	test	r11b, 2
	jne	.L132
.L14:
	test	r11d, r11d
	je	.L7
	test	r14b, r14b
	je	.L7
	mov	edx, r11d
	lea	rsi, .LC7[rip]
	mov	rdi, rbp
	xor	eax, eax
	call	nv_error@PLT
	jmp	.L7
	.p2align 4,,10
	.p2align 3
.L129:
	mov	rdi, rbp
	lea	rsi, .LC8[rip]
	xor	eax, eax
	call	nv_error@PLT
	mov	edi, DWORD PTR nv50_graph_trap_m2mf[rip]
	mov	esi, r12d
	and	esi, 2147483647
	call	nouveau_bitfield_print@PLT
	lea	rdi, .LC9[rip]
	call	pr_cont@PLT
	mov	rdi, rbp
	mov	esi, 4220944
	call	nv_rd32@PLT
	mov	rdi, rbp
	mov	esi, 4220940
	mov	r14d, eax
	call	nv_rd32@PLT
	mov	rdi, rbp
	mov	esi, 4220936
	mov	r13d, eax
	call	nv_rd32@PLT
	mov	rdi, rbp
	mov	esi, 4220932
	mov	r12d, eax
	call	nv_rd32@PLT
	mov	r9d, r14d
	mov	r8d, r13d
	mov	ecx, r12d
	mov	edx, eax
	lea	rsi, .LC10[rip]
	mov	rdi, rbp
	xor	eax, eax
	call	nv_error@PLT
	jmp	.L18
	.p2align 4,,10
	.p2align 3
.L128:
	mov	rdi, rbp
	lea	rsi, .LC11[rip]
	xor	eax, eax
	call	nv_error@PLT
	mov	edi, DWORD PTR nv50_graph_trap_vfetch[rip]
	mov	esi, r12d
	and	esi, 2147483647
	call	nouveau_bitfield_print@PLT
	lea	rdi, .LC9[rip]
	call	pr_cont@PLT
	mov	rdi, rbp
	mov	esi, 4197392
	call	nv_rd32@PLT
	mov	rdi, rbp
	mov	esi, 4197388
	mov	r14d, eax
	call	nv_rd32@PLT
	mov	rdi, rbp
	mov	esi, 4197384
	mov	r13d, eax
	call	nv_rd32@PLT
	mov	rdi, rbp
	mov	esi, 4197376
	mov	r12d, eax
	call	nv_rd32@PLT
	mov	r9d, r14d
	mov	r8d, r13d
	mov	ecx, r12d
	mov	edx, eax
	lea	rsi, .LC12[rip]
	mov	rdi, rbp
	xor	eax, eax
	call	nv_error@PLT
	jmp	.L20
	.p2align 4,,10
	.p2align 3
.L127:
	mov	rdi, rbp
	lea	rsi, .LC13[rip]
	xor	eax, eax
	call	nv_error@PLT
	mov	edi, DWORD PTR nv50_graph_trap_strmout[rip]
	mov	esi, r12d
	and	esi, 2147483647
	call	nouveau_bitfield_print@PLT
	lea	rdi, .LC9[rip]
	call	pr_cont@PLT
	mov	rdi, rbp
	mov	esi, 4200464
	call	nv_rd32@PLT
	mov	rdi, rbp
	mov	esi, 4200460
	mov	r14d, eax
	call	nv_rd32@PLT
	mov	rdi, rbp
	mov	esi, 4200456
	mov	r13d, eax
	call	nv_rd32@PLT
	mov	rdi, rbp
	mov	esi, 4200452
	mov	r12d, eax
	call	nv_rd32@PLT
	mov	r9d, r14d
	mov	r8d, r13d
	mov	ecx, r12d
	mov	edx, eax
	lea	rsi, .LC14[rip]
	mov	rdi, rbp
	xor	eax, eax
	call	nv_error@PLT
	jmp	.L22
	.p2align 4,,10
	.p2align 3
.L126:
	lea	rsi, .LC15[rip]
	mov	rdi, rbp
	xor	eax, eax
	call	nv_error@PLT
	mov	edi, DWORD PTR nv50_graph_trap_ccache[rip]
	mov	esi, r12d
	and	esi, 2147483647
	call	nouveau_bitfield_print@PLT
	lea	rdi, .LC9[rip]
	call	pr_cont@PLT
	mov	esi, 4214812
	mov	rdi, rbp
	call	nv_rd32@PLT
	mov	esi, 4214804
	mov	rdi, rbp
	mov	DWORD PTR 4[rsp], eax
	call	nv_rd32@PLT
	mov	esi, 4214800
	mov	rdi, rbp
	mov	DWORD PTR 12[rsp], eax
	call	nv_rd32@PLT
	mov	esi, 4214796
	mov	rdi, rbp
	mov	DWORD PTR 8[rsp], eax
	call	nv_rd32@PLT
	mov	esi, 4214792
	mov	rdi, rbp
	mov	r14d, eax
	call	nv_rd32@PLT
	mov	esi, 4214788
	mov	rdi, rbp
	mov	r13d, eax
	call	nv_rd32@PLT
	mov	esi, 4214784
	mov	rdi, rbp
	mov	r12d, eax
	call	nv_rd32@PLT
	sub	rsp, 8
	.cfi_def_cfa_offset 104
	mov	r9d, r14d
	mov	r8d, r13d
	mov	edx, eax
	mov	eax, DWORD PTR 12[rsp]
	lea	rsi, .LC16[rip]
	mov	rdi, rbp
	push	rax
	.cfi_def_cfa_offset 112
	mov	r11d, DWORD PTR 28[rsp]
	xor	eax, eax
	push	r11
	.cfi_def_cfa_offset 120
	mov	ecx, DWORD PTR 32[rsp]
	push	rcx
	.cfi_def_cfa_offset 128
	mov	ecx, r12d
	call	nv_error@PLT
	add	rsp, 32
	.cfi_def_cfa_offset 96
	jmp	.L24
	.p2align 4,,10
	.p2align 3
.L125:
	and	eax, 2147483647
	lea	rsi, .LC17[rip]
	mov	rdi, rbp
	mov	edx, eax
	xor	eax, eax
	call	nv_error@PLT
	jmp	.L26
	.p2align 4,,10
	.p2align 3
.L123:
	mov	edx, r15d
	lea	rsi, .LC21[rip]
	mov	rdi, rbp
	xor	eax, eax
	call	nv_error@PLT
	jmp	.L30
	.p2align 4,,10
	.p2align 3
.L132:
	mov	esi, 4196428
	mov	rdi, rbp
	mov	DWORD PTR 12[rsp], r11d
	call	nv_rd32@PLT
	mov	esi, 4196444
	mov	rdi, rbp
	mov	DWORD PTR 8[rsp], eax
	call	nv_rd32@PLT
	mov	esi, 4196372
	mov	rdi, rbp
	mov	DWORD PTR 16[rsp], eax
	call	nv_rd32@PLT
	lea	rsi, .LC5[rip]
	mov	rdi, rbp
	mov	DWORD PTR 20[rsp], eax
	xor	eax, eax
	call	nv_error@PLT
	mov	edx, DWORD PTR 8[rsp]
	mov	r11d, DWORD PTR 12[rsp]
	test	edx, edx
	jns	.L15
	test	r14b, r14b
	jne	.L133
.L15:
	test	ebx, ebx
	jne	.L134
.L16:
	xor	edx, edx
	mov	esi, 4196428
	mov	rdi, rbp
	mov	DWORD PTR 4[rsp], r11d
	call	nv_wr32@PLT
	mov	r11d, DWORD PTR 4[rsp]
	and	r11d, -3
	jmp	.L14
	.p2align 4,,10
	.p2align 3
.L131:
	mov	esi, 4196360
	mov	rdi, rbp
	call	nv_rd32@PLT
	mov	esi, 4196364
	mov	rdi, rbp
	mov	DWORD PTR 12[rsp], eax
	call	nv_rd32@PLT
	mov	esi, 4196368
	mov	rdi, rbp
	mov	DWORD PTR 16[rsp], eax
	call	nv_rd32@PLT
	mov	esi, 4196372
	mov	rdi, rbp
	mov	DWORD PTR 20[rsp], eax
	call	nv_rd32@PLT
	mov	esi, 4196424
	mov	rdi, rbp
	mov	DWORD PTR 24[rsp], eax
	call	nv_rd32@PLT
	lea	rsi, .LC2[rip]
	mov	rdi, rbp
	mov	DWORD PTR 28[rsp], eax
	xor	eax, eax
	call	nv_error@PLT
	mov	edx, DWORD PTR 12[rsp]
	test	edx, edx
	jns	.L10
	test	r14b, r14b
	je	.L10
.L8:
	mov	rdi, r13
	mov	DWORD PTR 12[rsp], edx
	call	nouveau_client_name@PLT
	mov	edx, DWORD PTR 12[rsp]
	mov	ecx, r12d
	mov	rdi, rbp
	mov	r8d, eax
	mov	eax, DWORD PTR 28[rsp]
	lea	rsi, .LC3[rip]
	mov	r9d, edx
	push	rax
	.cfi_def_cfa_offset 104
	sar	r9d, 16
	push	rdx
	.cfi_def_cfa_offset 112
	mov	eax, DWORD PTR 32[rsp]
	and	edx, 8188
	and	r9d, 7
	push	rax
	.cfi_def_cfa_offset 120
	mov	eax, DWORD PTR 44[rsp]
	push	rax
	.cfi_def_cfa_offset 128
	push	rdx
	.cfi_def_cfa_offset 136
	mov	eax, DWORD PTR 64[rsp]
	push	rax
	.cfi_def_cfa_offset 144
	mov	edx, DWORD PTR 52[rsp]
	xor	eax, eax
	call	nv_error@PLT
	add	rsp, 48
	.cfi_def_cfa_offset 96
.L13:
	xor	edx, edx
	mov	esi, 4196360
	mov	rdi, rbp
	call	nv_wr32@PLT
	mov	esi, 4196584
	mov	rdi, rbp
	call	nv_rd32@PLT
	mov	esi, 4196584
	mov	rdi, rbp
	and	eax, 3
	mov	edx, eax
	call	nv_wr32@PLT
	xor	edx, edx
	mov	esi, 4196424
	mov	rdi, rbp
	call	nv_wr32@PLT
	mov	r11d, DWORD PTR 8[rsp]
	and	r11d, 2147483646
	jmp	.L12
	.p2align 4,,10
	.p2align 3
.L133:
	mov	rdi, r13
	call	nouveau_client_name@PLT
	mov	edx, DWORD PTR 8[rsp]
	lea	rsi, .LC6[rip]
	mov	rdi, rbp
	mov	r8d, eax
	push	rdx
	.cfi_def_cfa_offset 104
	mov	ecx, DWORD PTR 24[rsp]
	mov	r9d, edx
	and	edx, 8188
	sar	r9d, 16
	push	rcx
	.cfi_def_cfa_offset 112
	and	r9d, 7
	mov	ecx, r12d
	push	rdx
	.cfi_def_cfa_offset 120
	mov	eax, DWORD PTR 44[rsp]
	push	rax
	.cfi_def_cfa_offset 128
	mov	edx, DWORD PTR 36[rsp]
	xor	eax, eax
	call	nv_error@PLT
	add	rsp, 32
	.cfi_def_cfa_offset 96
	mov	r11d, DWORD PTR 12[rsp]
	jmp	.L16
	.p2align 4,,10
	.p2align 3
.L10:
	test	ebx, ebx
	je	.L13
	.p2align 4,,10
	.p2align 3
.L31:
	lea	rsi, .LC4[rip]
	mov	rdi, rbp
	xor	eax, eax
	call	nv_error@PLT
	jmp	.L13
	.p2align 4,,10
	.p2align 3
.L134:
	lea	rsi, .LC4[rip]
	mov	rdi, rbp
	xor	eax, eax
	mov	DWORD PTR 4[rsp], r11d
	call	nv_error@PLT
	mov	r11d, DWORD PTR 4[rsp]
	jmp	.L16
	.p2align 4,,10
	.p2align 3
.L130:
	mov	esi, 4196360
	mov	rdi, rbp
	call	nv_rd32@PLT
	mov	esi, 4196364
	mov	rdi, rbp
	mov	DWORD PTR 12[rsp], eax
	call	nv_rd32@PLT
	mov	esi, 4196368
	mov	rdi, rbp
	mov	DWORD PTR 16[rsp], eax
	call	nv_rd32@PLT
	mov	esi, 4196372
	mov	rdi, rbp
	mov	DWORD PTR 20[rsp], eax
	call	nv_rd32@PLT
	mov	esi, 4196424
	mov	rdi, rbp
	mov	DWORD PTR 24[rsp], eax
	call	nv_rd32@PLT
	lea	rsi, .LC2[rip]
	mov	rdi, rbp
	mov	DWORD PTR 28[rsp], eax
	xor	eax, eax
	call	nv_error@PLT
	mov	edx, DWORD PTR 12[rsp]
	test	edx, edx
	jns	.L31
	jmp	.L8
	.cfi_endproc
.LFE0:
	.size	nv50_graph_trap_handler, .-nv50_graph_trap_handler
	.comm	nv50_graph_trap_vfetch,4,4
	.comm	nv50_graph_trap_strmout,4,4
	.comm	nv50_graph_trap_m2mf,4,4
	.comm	nv50_graph_trap_ccache,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_nv50.c_nv50_graph_trap_handler.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"TRAP: no units reporting traps?\012\000"
	.align	2
.LC1:
	.ascii	"TRAP_DISPATCH - no ustatus?\012\000"
	.align	2
.LC2:
	.ascii	"TRAP DISPATCH_FAULT\012\000"
	.align	2
.LC3:
	.ascii	"ch %d [0x%010llx %s] subc %d class 0x%04x mthd 0x%0"
	.ascii	"4x data 0x%08x%08x 400808 0x%08x 400848 0x%08x\012\000"
	.align	2
.LC4:
	.ascii	"no stuck command?\012\000"
	.align	2
.LC5:
	.ascii	"TRAP DISPATCH_QUERY\012\000"
	.align	2
.LC6:
	.ascii	"ch %d [0x%010llx %s] subc %d class 0x%04x mthd 0x%0"
	.ascii	"4x data 0x%08x 40084c 0x%08x\012\000"
	.align	2
.LC7:
	.ascii	"TRAP_DISPATCH (unknown 0x%08x)\012\000"
	.align	2
.LC8:
	.ascii	"TRAP_M2MF\000"
	.align	2
.LC9:
	.ascii	"\012\000"
	.align	2
.LC10:
	.ascii	"TRAP_M2MF %08x %08x %08x %08x\012\000"
	.align	2
.LC11:
	.ascii	"TRAP_VFETCH\000"
	.align	2
.LC12:
	.ascii	"TRAP_VFETCH %08x %08x %08x %08x\012\000"
	.align	2
.LC13:
	.ascii	"TRAP_STRMOUT\000"
	.align	2
.LC14:
	.ascii	"TRAP_STRMOUT %08x %08x %08x %08x\012\000"
	.align	2
.LC15:
	.ascii	"TRAP_CCACHE\000"
	.align	2
.LC16:
	.ascii	"TRAP_CCACHE %08x %08x %08x %08x %08x %08x %08x\012\000"
	.align	2
.LC17:
	.ascii	"TRAP_UNKC04 0x%08x\012\000"
	.align	2
.LC18:
	.ascii	"TRAP_TEXTURE\000"
	.align	2
.LC19:
	.ascii	"TRAP_MP\000"
	.align	2
.LC20:
	.ascii	"TRAP_TPDMA\000"
	.align	2
.LC21:
	.ascii	"TRAP: unknown 0x%08x\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	nv50_graph_trap_handler, %function
nv50_graph_trap_handler:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	mov	r6, r1
	sub	sp, sp, #52
	subs	r9, r6, #0
	ldr	r1, .L117
	mov	r8, r3
	movne	r9, #1
	mov	r7, r2
	mov	r5, r0
	bl	nv_rd32
	cmp	r0, #0
	moveq	r3, r9
	movne	r3, #0
	cmp	r3, #0
	bne	.L95
	tst	r0, #1
	mov	r4, r0
	bne	.L96
.L4:
	tst	r4, #2
	bne	.L97
	tst	r4, #4
	bne	.L98
.L18:
	tst	r4, #8
	bne	.L99
.L20:
	tst	r4, #16
	bne	.L100
.L22:
	tst	r4, #32
	bne	.L101
.L24:
	tst	r4, #64
	bne	.L102
.L26:
	tst	r4, #128
	bne	.L103
.L27:
	tst	r4, #256
	bne	.L104
.L28:
	cmp	r4, #0
	moveq	r4, #1
	beq	.L1
.L106:
	cmp	r6, #0
	bne	.L105
.L29:
	mov	r2, r4
	mov	r0, r5
	ldr	r1, .L117
	bl	nv_wr32
	mov	r4, #1
.L1:
	mov	r0, r4
	add	sp, sp, #52
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L104:
	ldr	r3, .L117+4
	mov	r1, #8
	ldr	r2, .L117+8
	str	r3, [sp, #4]
	mov	r0, r5
	ldr	r3, .L117+12
	str	r6, [sp]
	bl	nv50_priv_tp_trap
	bic	r4, r4, #256
	mov	r2, #256
	mov	r0, r5
	ldr	r1, .L117
	bl	nv_wr32
	cmp	r4, #0
	moveq	r4, #1
	beq	.L1
	b	.L106
.L103:
	ldr	r3, .L117+16
	mov	r1, #7
	ldr	r2, .L117+20
	str	r3, [sp, #4]
	mov	r0, r5
	ldr	r3, .L117+24
	str	r6, [sp]
	bl	nv50_priv_tp_trap
	bic	r4, r4, #128
	mov	r2, #128
	mov	r0, r5
	ldr	r1, .L117
	bl	nv_wr32
	tst	r4, #256
	beq	.L28
	b	.L104
.L102:
	ldr	r3, .L117+28
	mov	r1, #6
	ldr	r2, .L117+32
	str	r3, [sp, #4]
	mov	r0, r5
	ldr	r3, .L117+36
	str	r6, [sp]
	bl	nv50_priv_tp_trap
	bic	r4, r4, #64
	mov	r2, #64
	mov	r0, r5
	ldr	r1, .L117
	bl	nv_wr32
	tst	r4, #128
	beq	.L27
	b	.L103
.L101:
	mov	r0, r5
	ldr	r1, .L117+40
	bl	nv_rd32
	cmp	r6, #0
	bne	.L107
.L25:
	mov	r2, #-1073741824
	mov	r0, r5
	ldr	r1, .L117+40
	bl	nv_wr32
	tst	r4, #64
	beq	.L26
	b	.L102
.L100:
	mov	r0, r5
	ldr	r1, .L117+44
	bl	nv_rd32
	cmp	r6, #0
	mov	r7, r0
	bne	.L108
.L23:
	mov	r2, #-1073741824
	ldr	r1, .L117+44
	mov	r0, r5
	bl	nv_wr32
	bic	r4, r4, #16
	mov	r2, #16
	mov	r0, r5
	ldr	r1, .L117
	bl	nv_wr32
	tst	r4, #32
	beq	.L24
	b	.L101
.L99:
	mov	r0, r5
	ldr	r1, .L117+48
	bl	nv_rd32
	cmp	r6, #0
	mov	r7, r0
	bne	.L109
.L21:
	mov	r2, #128
	ldr	r1, .L117+52
	mov	r0, r5
	bl	nv_wr32
	mov	r2, #0
	ldr	r1, .L117+52
	mov	r0, r5
	bl	nv_wr32
	mov	r2, #-1073741824
	ldr	r1, .L117+48
	mov	r0, r5
	bl	nv_wr32
	bic	r4, r4, #8
	mov	r2, #8
	mov	r0, r5
	ldr	r1, .L117
	bl	nv_wr32
	tst	r4, #16
	beq	.L22
	b	.L100
.L98:
	mov	r0, r5
	ldr	r1, .L117+56
	bl	nv_rd32
	cmp	r6, #0
	mov	r7, r0
	bne	.L110
.L19:
	mov	r2, #-1073741824
	ldr	r1, .L117+56
	mov	r0, r5
	bl	nv_wr32
	bic	r4, r4, #4
	mov	r2, #4
	mov	r0, r5
	ldr	r1, .L117
	bl	nv_wr32
	tst	r4, #8
	beq	.L20
	b	.L99
.L97:
	mov	r0, r5
	ldr	r1, .L117+60
	bl	nv_rd32
	cmp	r6, #0
	mov	r7, r0
	bne	.L111
.L17:
	mov	r2, #2
	ldr	r1, .L117+52
	mov	r0, r5
	bl	nv_wr32
	mov	r2, #0
	ldr	r1, .L117+52
	mov	r0, r5
	bl	nv_wr32
	mov	r2, #-1073741824
	ldr	r1, .L117+60
	mov	r0, r5
	bl	nv_wr32
	bic	r4, r4, #2
	mov	r2, #2
	mov	r0, r5
	ldr	r1, .L117
	bl	nv_wr32
	tst	r4, #4
	beq	.L18
	b	.L98
.L96:
	mov	r0, r5
	ldr	r1, .L117+64
	str	r3, [sp, #32]
	bl	nv_rd32
	bics	r10, r0, #-2147483648
	moveq	r2, r9
	movne	r2, #0
	cmp	r2, #0
	mov	fp, r0
	bne	.L112
	mov	r0, r5
	ldr	r1, .L117+68
	bl	nv_wr32
	tst	fp, #1
	bne	.L113
.L11:
	tst	r10, #2
	bne	.L114
.L13:
	cmp	r10, #0
	moveq	r9, #0
	cmp	r9, #0
	beq	.L7
	mov	r2, r10
	mov	r0, r5
	ldr	r1, .L117+72
	bl	nv_error
.L7:
	mov	r2, #-1073741824
	ldr	r1, .L117+64
	mov	r0, r5
	bl	nv_wr32
	mov	r2, #1
	mov	r0, r5
	ldr	r1, .L117
	bl	nv_wr32
	bics	r4, r4, #1
	bne	.L4
	b	.L1
.L95:
	mov	r4, #1
	mov	r0, r5
	ldr	r1, .L117+76
	bl	nv_error
	mov	r0, r4
	add	sp, sp, #52
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L112:
	ldr	r1, .L117+80
	mov	r0, r5
	bl	nv_error
	ldr	r3, [sp, #32]
	mov	r0, r5
	mov	r2, r3
	ldr	r1, .L117+68
	bl	nv_wr32
	tst	fp, #1
	beq	.L7
	ldr	r1, .L117+84
	mov	r0, r5
	bl	nv_rd32
	mov	r3, r0
	ldr	r1, .L117+88
	mov	r0, r5
	str	r3, [sp, #32]
	bl	nv_rd32
	mov	r2, r0
	ldr	r1, .L117+92
	mov	r0, r5
	str	r2, [sp, #36]
	bl	nv_rd32
	mov	r2, r0
	ldr	r1, .L117+96
	mov	r0, r5
	str	r2, [sp, #40]
	bl	nv_rd32
	mov	r2, r0
	ldr	r1, .L117+100
	mov	r0, r5
	str	r2, [sp, #44]
	bl	nv_rd32
	ldr	r1, .L117+104
	mov	r10, r0
	mov	r0, r5
	bl	nv_error
	ldr	r3, [sp, #32]
	cmp	r3, #0
	blt	.L8
.L30:
	mov	r0, r5
	ldr	r1, .L117+108
	bl	nv_error
	b	.L12
.L111:
	mov	r0, r5
	ldr	r1, .L117+112
	bl	nv_error
	ldr	r3, .L117+116
	bic	r1, r7, #-2147483648
	ldr	r0, [r3]
	bl	nouveau_bitfield_print
	ldr	r0, .L117+120
	bl	pr_cont
	mov	r0, r5
	ldr	r1, .L117+124
	bl	nv_rd32
	ldr	r1, .L117+128
	mov	r7, r0
	mov	r0, r5
	bl	nv_rd32
	ldr	r1, .L117+132
	mov	r8, r0
	mov	r0, r5
	bl	nv_rd32
	ldr	r1, .L117+136
	mov	r9, r0
	mov	r0, r5
	bl	nv_rd32
	mov	r3, r8
	str	r0, [sp, #4]
	mov	r2, r7
	mov	r0, r5
	ldr	r1, .L117+140
	str	r9, [sp]
	bl	nv_error
	b	.L17
.L110:
	mov	r0, r5
	ldr	r1, .L117+144
	bl	nv_error
	ldr	r3, .L117+148
	bic	r1, r7, #-2147483648
	ldr	r0, [r3]
	bl	nouveau_bitfield_print
	ldr	r0, .L117+120
	bl	pr_cont
	mov	r0, r5
	ldr	r1, .L117+152
	bl	nv_rd32
	ldr	r1, .L117+156
	mov	r7, r0
	mov	r0, r5
	bl	nv_rd32
	ldr	r1, .L117+160
	mov	r8, r0
	mov	r0, r5
	bl	nv_rd32
	ldr	r1, .L117+164
	mov	r9, r0
	mov	r0, r5
	bl	nv_rd32
	mov	r3, r8
	str	r0, [sp, #4]
	mov	r2, r7
	mov	r0, r5
	ldr	r1, .L117+168
	str	r9, [sp]
	bl	nv_error
	b	.L19
.L109:
	mov	r0, r5
	ldr	r1, .L117+172
	bl	nv_error
	ldr	r3, .L117+176
	bic	r1, r7, #-2147483648
	ldr	r0, [r3]
	bl	nouveau_bitfield_print
	ldr	r0, .L117+120
	bl	pr_cont
	mov	r0, r5
	ldr	r1, .L117+180
	bl	nv_rd32
	ldr	r1, .L117+184
	mov	r7, r0
	mov	r0, r5
	bl	nv_rd32
	ldr	r1, .L117+188
	mov	r8, r0
	mov	r0, r5
	bl	nv_rd32
	ldr	r1, .L117+192
	mov	r9, r0
	mov	r0, r5
	bl	nv_rd32
	mov	r3, r8
	str	r0, [sp, #4]
	mov	r2, r7
	mov	r0, r5
	ldr	r1, .L117+196
	str	r9, [sp]
	bl	nv_error
	b	.L21
.L108:
	mov	r0, r5
	ldr	r1, .L117+200
	bl	nv_error
	ldr	r3, .L117+204
	bic	r1, r7, #-2147483648
	ldr	r0, [r3]
	bl	nouveau_bitfield_print
	ldr	r0, .L117+120
	bl	pr_cont
	mov	r0, r5
	ldr	r1, .L117+208
	bl	nv_rd32
	ldr	r1, .L117+212
	mov	r7, r0
	mov	r0, r5
	bl	nv_rd32
	ldr	r1, .L117+216
	mov	r8, r0
	mov	r0, r5
	bl	nv_rd32
	mov	r3, r0
	ldr	r1, .L117+220
	mov	r0, r5
	str	r3, [sp, #32]
	bl	nv_rd32
	ldr	r1, .L117+224
	mov	r9, r0
	mov	r0, r5
	bl	nv_rd32
	ldr	r1, .L117+228
	mov	r10, r0
	mov	r0, r5
	bl	nv_rd32
	ldr	r1, .L117+232
	mov	fp, r0
	mov	r0, r5
	bl	nv_rd32
	ldr	r3, [sp, #32]
	str	r0, [sp, #16]
	stm	sp, {r3, r9, r10, fp}
	mov	r2, r7
	mov	r3, r8
	mov	r0, r5
	ldr	r1, .L117+236
	bl	nv_error
	b	.L23
.L107:
	bic	r2, r0, #-2147483648
	ldr	r1, .L117+240
	mov	r0, r5
	bl	nv_error
	b	.L25
.L105:
	mov	r2, r4
	mov	r0, r5
	ldr	r1, .L117+244
	bl	nv_error
	b	.L29
.L114:
	ldr	r1, .L117+248
	mov	r0, r5
	bl	nv_rd32
	mov	r3, r0
	ldr	r1, .L117+252
	mov	r0, r5
	str	r3, [sp, #32]
	bl	nv_rd32
	ldr	r1, .L117+96
	mov	fp, r0
	mov	r0, r5
	bl	nv_rd32
	mov	r2, r0
	ldr	r1, .L117+256
	mov	r0, r5
	str	r2, [sp, #36]
	bl	nv_error
	ldr	r3, [sp, #32]
	ands	r2, r9, r3, lsr #31
	bne	.L115
	cmp	r6, #0
	bne	.L116
.L15:
	mov	r2, #0
	mov	r0, r5
	ldr	r1, .L117+248
	bl	nv_wr32
	bic	r10, r10, #2
	b	.L13
.L113:
	ldr	r1, .L117+84
	mov	r0, r5
	bl	nv_rd32
	mov	r3, r0
	ldr	r1, .L117+88
	mov	r0, r5
	str	r3, [sp, #32]
	bl	nv_rd32
	mov	r2, r0
	ldr	r1, .L117+92
	mov	r0, r5
	str	r2, [sp, #36]
	bl	nv_rd32
	mov	r2, r0
	ldr	r1, .L117+96
	mov	r0, r5
	str	r2, [sp, #40]
	bl	nv_rd32
	mov	r2, r0
	ldr	r1, .L117+100
	mov	r0, r5
	str	r2, [sp, #44]
	bl	nv_rd32
	ldr	r1, .L117+104
	mov	r10, r0
	mov	r0, r5
	bl	nv_error
	ldr	r3, [sp, #32]
	ands	r2, r9, r3, lsr #31
	bne	.L8
	cmp	r6, #0
	bne	.L30
.L12:
	mov	r2, #0
	ldr	r1, .L117+84
	mov	r0, r5
	bl	nv_wr32
	ldr	r1, .L117+260
	mov	r0, r5
	bl	nv_rd32
	ldr	r1, .L117+260
	and	r2, r0, #3
	mov	r0, r5
	bl	nv_wr32
	mov	r2, #0
	mov	r0, r5
	ldr	r1, .L117+100
	bl	nv_wr32
	bic	r10, fp, #-2147483647
	b	.L11
.L8:
	ldr	r0, [sp, #88]
	str	r3, [sp, #32]
	bl	nouveau_client_name
	ldr	r3, [sp, #32]
	ldr	r1, .L117+264
	asr	r2, r3, #16
	and	r1, r1, r3
	str	r3, [sp, #24]
	ldr	r3, [sp, #36]
	and	r2, r2, #7
	str	r3, [sp, #20]
	ldr	r3, [sp, #40]
	str	r0, [sp]
	str	r3, [sp, #16]
	ldr	r3, [sp, #44]
	str	r1, [sp, #12]
	str	r3, [sp, #8]
	str	r2, [sp, #4]
	mov	r3, r8
	mov	r2, r7
	mov	r0, r5
	ldr	r1, .L117+268
	str	r10, [sp, #28]
	bl	nv_error
	b	.L12
.L116:
	mov	r0, r5
	ldr	r1, .L117+108
	bl	nv_error
	b	.L15
.L115:
	ldr	r0, [sp, #88]
	bl	nouveau_client_name
	ldr	r3, [sp, #32]
	ldr	ip, .L117+264
	asr	r1, r3, #16
	and	ip, ip, r3
	str	r3, [sp, #20]
	ldr	r3, [sp, #36]
	and	r1, r1, #7
	str	r0, [sp]
	str	r3, [sp, #8]
	str	r1, [sp, #4]
	mov	r3, r8
	mov	r2, r7
	mov	r0, r5
	ldr	r1, .L117+272
	str	fp, [sp, #16]
	str	ip, [sp, #12]
	bl	nv_error
	b	.L15
.L118:
	.align	2
.L117:
	.word	4194568
	.word	.LC20
	.word	4230664
	.word	4228872
	.word	.LC19
	.word	4227860
	.word	4227868
	.word	.LC18
	.word	4229376
	.word	4228608
	.word	4202496
	.word	4214808
	.word	4200448
	.word	4194368
	.word	4197380
	.word	4220928
	.word	4196356
	.word	4195584
	.word	.LC7
	.word	.LC0
	.word	.LC1
	.word	4196360
	.word	4196364
	.word	4196368
	.word	4196372
	.word	4196424
	.word	.LC2
	.word	.LC4
	.word	.LC8
	.word	nv50_graph_trap_m2mf
	.word	.LC9
	.word	4220932
	.word	4220936
	.word	4220940
	.word	4220944
	.word	.LC10
	.word	.LC11
	.word	nv50_graph_trap_vfetch
	.word	4197376
	.word	4197384
	.word	4197388
	.word	4197392
	.word	.LC12
	.word	.LC13
	.word	nv50_graph_trap_strmout
	.word	4200452
	.word	4200456
	.word	4200460
	.word	4200464
	.word	.LC14
	.word	.LC15
	.word	nv50_graph_trap_ccache
	.word	4214784
	.word	4214788
	.word	4214792
	.word	4214796
	.word	4214800
	.word	4214804
	.word	4214812
	.word	.LC16
	.word	.LC17
	.word	.LC21
	.word	4196428
	.word	4196444
	.word	.LC5
	.word	4196584
	.word	8188
	.word	.LC3
	.word	.LC6
	.size	nv50_graph_trap_handler, .-nv50_graph_trap_handler
	.comm	nv50_graph_trap_vfetch,4,4
	.comm	nv50_graph_trap_strmout,4,4
	.comm	nv50_graph_trap_m2mf,4,4
	.comm	nv50_graph_trap_ccache,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
