	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal4,4byte_literals
	.p2align	2                               ## -- Begin function GPU_SetViewport
LCPI0_0:
	.long	0x3f000000                      ## float 0.5
LCPI0_1:
	.long	0x40000000                      ## float 2
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4
LCPI0_2:
	.long	15                              ## 0xf
	.long	15                              ## 0xf
	.long	2                               ## 0x2
	.long	2                               ## 0x2
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_GPU_SetViewport
	.p2align	4, 0x90
_GPU_SetViewport:                       ## @GPU_SetViewport
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$40, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movl	%r8d, %r14d
	cvtsi2ss	%r8d, %xmm0
	movss	%xmm0, -44(%rbp)                ## 4-byte Spill
	movl	%r9d, %r12d
	xorps	%xmm0, %xmm0
	cvtsi2ss	%r9d, %xmm0
	movss	%xmm0, -48(%rbp)                ## 4-byte Spill
	movl	%ecx, -68(%rbp)                 ## 4-byte Spill
	movl	%edx, -72(%rbp)                 ## 4-byte Spill
	movq	%rsi, %r13
	movq	%rdi, %rbx
	movq	_GPUREG_FRAMEBUFFER_FLUSH@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movl	$1, %esi
	callq	_GPUCMD_AddWrite
	movq	_GPUREG_FRAMEBUFFER_INVALIDATE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movl	$1, %esi
	callq	_GPUCMD_AddWrite
	decl	%r12d
	movl	%r12d, %eax
	shll	$12, %eax
	andl	$16773120, %eax                 ## imm = 0xFFF000
	movl	%r14d, %ecx
	andl	$4095, %ecx                     ## imm = 0xFFF
	leal	(%rcx,%rax), %r15d
	addl	$16777216, %r15d                ## imm = 0x1000000
	sarl	$3, %ebx
	movl	%ebx, -64(%rbp)
	sarl	$3, %r13d
	movl	%r13d, -60(%rbp)
	movl	%r15d, -56(%rbp)
	movq	_GPUREG_DEPTHBUFFER_LOC@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	-64(%rbp), %r13
	movq	%r13, %rsi
	movl	$3, %edx
	callq	_GPUCMD_AddIncrementalWrites
	movq	_GPUREG_RENDERBUF_DIM@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movl	%r15d, %esi
	callq	_GPUCMD_AddWrite
	movq	_GPUREG_DEPTHBUFFER_FORMAT@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movl	$3, %esi
	callq	_GPUCMD_AddWrite
	movq	_GPUREG_COLORBUFFER_FORMAT@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movl	$2, %esi
	callq	_GPUCMD_AddWrite
	movq	_GPUREG_FRAMEBUFFER_BLOCK32@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	xorl	%esi, %esi
	callq	_GPUCMD_AddWrite
	movss	-44(%rbp), %xmm0                ## 4-byte Reload
                                        ## xmm0 = mem[0],zero,zero,zero
	mulss	LCPI0_0(%rip), %xmm0
	callq	_f32tof24
	movl	%eax, -64(%rbp)
	movss	LCPI0_1(%rip), %xmm0            ## xmm0 = mem[0],zero,zero,zero
	divss	-44(%rbp), %xmm0                ## 4-byte Folded Reload
	callq	_f32tof31
	addl	%eax, %eax
	movl	%eax, -60(%rbp)
	movss	LCPI0_0(%rip), %xmm0            ## xmm0 = mem[0],zero,zero,zero
	mulss	-48(%rbp), %xmm0                ## 4-byte Folded Reload
	callq	_f32tof24
	movl	%eax, -56(%rbp)
	movss	LCPI0_1(%rip), %xmm0            ## xmm0 = mem[0],zero,zero,zero
	divss	-48(%rbp), %xmm0                ## 4-byte Folded Reload
	callq	_f32tof31
	addl	%eax, %eax
	movl	%eax, -52(%rbp)
	movq	_GPUREG_VIEWPORT_WIDTH@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%r13, %rsi
	movl	$4, %edx
	callq	_GPUCMD_AddIncrementalWrites
	movq	_GPUREG_VIEWPORT_XY@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movl	-68(%rbp), %eax                 ## 4-byte Reload
	shll	$16, %eax
	movzwl	-72(%rbp), %esi                 ## 2-byte Folded Reload
	orl	%eax, %esi
	callq	_GPUCMD_AddWrite
	movq	$0, -64(%rbp)
	shll	$16, %r12d
	decl	%r14d
	movzwl	%r14w, %eax
	orl	%r12d, %eax
	movl	%eax, -56(%rbp)
	movq	_GPUREG_SCISSORTEST_MODE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%r13, %rsi
	movl	$3, %edx
	callq	_GPUCMD_AddIncrementalWrites
	movaps	LCPI0_2(%rip), %xmm0            ## xmm0 = [15,15,2,2]
	movaps	%xmm0, -64(%rbp)
	movq	_GPUREG_COLORBUFFER_READ@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%r13, %rsi
	movl	$4, %edx
	callq	_GPUCMD_AddIncrementalWrites
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_GPUREG_FRAMEBUFFER_FLUSH,4,2   ## @GPUREG_FRAMEBUFFER_FLUSH
	.comm	_GPUREG_FRAMEBUFFER_INVALIDATE,4,2 ## @GPUREG_FRAMEBUFFER_INVALIDATE
	.comm	_GPUREG_DEPTHBUFFER_LOC,4,2     ## @GPUREG_DEPTHBUFFER_LOC
	.comm	_GPUREG_RENDERBUF_DIM,4,2       ## @GPUREG_RENDERBUF_DIM
	.comm	_GPUREG_DEPTHBUFFER_FORMAT,4,2  ## @GPUREG_DEPTHBUFFER_FORMAT
	.comm	_GPUREG_COLORBUFFER_FORMAT,4,2  ## @GPUREG_COLORBUFFER_FORMAT
	.comm	_GPUREG_FRAMEBUFFER_BLOCK32,4,2 ## @GPUREG_FRAMEBUFFER_BLOCK32
	.comm	_GPUREG_VIEWPORT_WIDTH,4,2      ## @GPUREG_VIEWPORT_WIDTH
	.comm	_GPUREG_VIEWPORT_XY,4,2         ## @GPUREG_VIEWPORT_XY
	.comm	_GPUREG_SCISSORTEST_MODE,4,2    ## @GPUREG_SCISSORTEST_MODE
	.comm	_GPUREG_COLORBUFFER_READ,4,2    ## @GPUREG_COLORBUFFER_READ
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ; -- Begin function GPU_SetViewport
lCPI0_0:
	.long	15                              ; 0xf
	.long	15                              ; 0xf
	.long	2                               ; 0x2
	.long	2                               ; 0x2
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_GPU_SetViewport
	.p2align	2
_GPU_SetViewport:                       ; @GPU_SetViewport
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #128
	.cfi_def_cfa_offset 128
	stp	d11, d10, [sp, #16]             ; 16-byte Folded Spill
	stp	d9, d8, [sp, #32]               ; 16-byte Folded Spill
	stp	x26, x25, [sp, #48]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #64]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #80]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #96]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #112]            ; 16-byte Folded Spill
	add	x29, sp, #112
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	.cfi_offset w25, -72
	.cfi_offset w26, -80
	.cfi_offset b8, -88
	.cfi_offset b9, -96
	.cfi_offset b10, -104
	.cfi_offset b11, -112
	mov	x22, x5
	mov	x19, x4
	mov	x21, x3
	mov	x20, x2
	mov	x23, x1
	mov	x24, x0
	scvtf	s9, w4
	scvtf	s8, w5
Lloh0:
	adrp	x8, _GPUREG_FRAMEBUFFER_FLUSH@GOTPAGE
Lloh1:
	ldr	x8, [x8, _GPUREG_FRAMEBUFFER_FLUSH@GOTPAGEOFF]
Lloh2:
	ldr	w0, [x8]
	mov	w1, #1
	bl	_GPUCMD_AddWrite
Lloh3:
	adrp	x8, _GPUREG_FRAMEBUFFER_INVALIDATE@GOTPAGE
Lloh4:
	ldr	x8, [x8, _GPUREG_FRAMEBUFFER_INVALIDATE@GOTPAGEOFF]
Lloh5:
	ldr	w0, [x8]
	mov	w1, #1
	bl	_GPUCMD_AddWrite
	sub	w25, w22, #1
	and	w8, w19, #0xfff
	bfi	w8, w25, #12, #12
	orr	w22, w8, #0x1000000
	asr	w8, w24, #3
	asr	w9, w23, #3
	stp	w8, w9, [sp]
	str	w22, [sp, #8]
Lloh6:
	adrp	x8, _GPUREG_DEPTHBUFFER_LOC@GOTPAGE
Lloh7:
	ldr	x8, [x8, _GPUREG_DEPTHBUFFER_LOC@GOTPAGEOFF]
Lloh8:
	ldr	w0, [x8]
	mov	x1, sp
	mov	w2, #3
	bl	_GPUCMD_AddIncrementalWrites
Lloh9:
	adrp	x8, _GPUREG_RENDERBUF_DIM@GOTPAGE
Lloh10:
	ldr	x8, [x8, _GPUREG_RENDERBUF_DIM@GOTPAGEOFF]
Lloh11:
	ldr	w0, [x8]
	mov	x1, x22
	bl	_GPUCMD_AddWrite
Lloh12:
	adrp	x8, _GPUREG_DEPTHBUFFER_FORMAT@GOTPAGE
Lloh13:
	ldr	x8, [x8, _GPUREG_DEPTHBUFFER_FORMAT@GOTPAGEOFF]
Lloh14:
	ldr	w0, [x8]
	mov	w1, #3
	bl	_GPUCMD_AddWrite
Lloh15:
	adrp	x8, _GPUREG_COLORBUFFER_FORMAT@GOTPAGE
Lloh16:
	ldr	x8, [x8, _GPUREG_COLORBUFFER_FORMAT@GOTPAGEOFF]
Lloh17:
	ldr	w0, [x8]
	mov	w1, #2
	bl	_GPUCMD_AddWrite
Lloh18:
	adrp	x8, _GPUREG_FRAMEBUFFER_BLOCK32@GOTPAGE
Lloh19:
	ldr	x8, [x8, _GPUREG_FRAMEBUFFER_BLOCK32@GOTPAGEOFF]
Lloh20:
	ldr	w0, [x8]
	mov	w1, #0
	bl	_GPUCMD_AddWrite
	fmov	s10, #0.50000000
	fmul	s0, s9, s10
	bl	_f32tof24
	str	w0, [sp]
	fmov	s11, #2.00000000
	fdiv	s0, s11, s9
	bl	_f32tof31
	lsl	w8, w0, #1
	str	w8, [sp, #4]
	fmul	s0, s8, s10
	bl	_f32tof24
	str	w0, [sp, #8]
	fdiv	s0, s11, s8
	bl	_f32tof31
	lsl	w8, w0, #1
	str	w8, [sp, #12]
Lloh21:
	adrp	x8, _GPUREG_VIEWPORT_WIDTH@GOTPAGE
Lloh22:
	ldr	x8, [x8, _GPUREG_VIEWPORT_WIDTH@GOTPAGEOFF]
Lloh23:
	ldr	w0, [x8]
	mov	x1, sp
	mov	w2, #4
	bl	_GPUCMD_AddIncrementalWrites
Lloh24:
	adrp	x8, _GPUREG_VIEWPORT_XY@GOTPAGE
Lloh25:
	ldr	x8, [x8, _GPUREG_VIEWPORT_XY@GOTPAGEOFF]
Lloh26:
	ldr	w0, [x8]
	bfi	w20, w21, #16, #16
	mov	x1, x20
	bl	_GPUCMD_AddWrite
	str	xzr, [sp]
	sub	w8, w19, #1
	bfi	w8, w25, #16, #16
	str	w8, [sp, #8]
Lloh27:
	adrp	x8, _GPUREG_SCISSORTEST_MODE@GOTPAGE
Lloh28:
	ldr	x8, [x8, _GPUREG_SCISSORTEST_MODE@GOTPAGEOFF]
Lloh29:
	ldr	w0, [x8]
	mov	x1, sp
	mov	w2, #3
	bl	_GPUCMD_AddIncrementalWrites
Lloh30:
	adrp	x8, lCPI0_0@PAGE
Lloh31:
	ldr	q0, [x8, lCPI0_0@PAGEOFF]
	str	q0, [sp]
Lloh32:
	adrp	x8, _GPUREG_COLORBUFFER_READ@GOTPAGE
Lloh33:
	ldr	x8, [x8, _GPUREG_COLORBUFFER_READ@GOTPAGEOFF]
Lloh34:
	ldr	w0, [x8]
	mov	x1, sp
	mov	w2, #4
	bl	_GPUCMD_AddIncrementalWrites
	ldp	x29, x30, [sp, #112]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #96]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #80]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #64]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #48]             ; 16-byte Folded Reload
	ldp	d9, d8, [sp, #32]               ; 16-byte Folded Reload
	ldp	d11, d10, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #128
	ret
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpAdrp	Lloh30, Lloh32
	.loh AdrpLdr	Lloh30, Lloh31
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh24, Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh21, Lloh22, Lloh23
	.loh AdrpLdrGotLdr	Lloh18, Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.cfi_endproc
                                        ; -- End function
	.comm	_GPUREG_FRAMEBUFFER_FLUSH,4,2   ; @GPUREG_FRAMEBUFFER_FLUSH
	.comm	_GPUREG_FRAMEBUFFER_INVALIDATE,4,2 ; @GPUREG_FRAMEBUFFER_INVALIDATE
	.comm	_GPUREG_DEPTHBUFFER_LOC,4,2     ; @GPUREG_DEPTHBUFFER_LOC
	.comm	_GPUREG_RENDERBUF_DIM,4,2       ; @GPUREG_RENDERBUF_DIM
	.comm	_GPUREG_DEPTHBUFFER_FORMAT,4,2  ; @GPUREG_DEPTHBUFFER_FORMAT
	.comm	_GPUREG_COLORBUFFER_FORMAT,4,2  ; @GPUREG_COLORBUFFER_FORMAT
	.comm	_GPUREG_FRAMEBUFFER_BLOCK32,4,2 ; @GPUREG_FRAMEBUFFER_BLOCK32
	.comm	_GPUREG_VIEWPORT_WIDTH,4,2      ; @GPUREG_VIEWPORT_WIDTH
	.comm	_GPUREG_VIEWPORT_XY,4,2         ; @GPUREG_VIEWPORT_XY
	.comm	_GPUREG_SCISSORTEST_MODE,4,2    ; @GPUREG_SCISSORTEST_MODE
	.comm	_GPUREG_COLORBUFFER_READ,4,2    ; @GPUREG_COLORBUFFER_READ
.subsections_via_symbols
