// File: /workspace/github_cpp_makefile_star2_O2/rossy[P]crossc/SPIRV-Cross/spirv_glsl.cpp
// Function: spirv_cross::CompilerGLSL::emit_pls()
void CompilerGLSL::emit_pls()
{
	auto &execution = get_entry_point();
	if (execution.model != ExecutionModelFragment)
		SPIRV_CROSS_THROW("Pixel local storage only supported in fragment shaders.");

	if (!options.es)
		SPIRV_CROSS_THROW("Pixel local storage only supported in OpenGL ES.");

	if (options.version < 300)
		SPIRV_CROSS_THROW("Pixel local storage only supported in ESSL 3.0 and above.");

	if (!pls_inputs.empty())
	{
		statement("__pixel_local_inEXT _PLSIn");
		begin_scope();
		for (auto &input : pls_inputs)
			statement(pls_decl(input), ";");
		end_scope_decl();
		statement("");
	}

	if (!pls_outputs.empty())
	{
		statement("__pixel_local_outEXT _PLSOut");
		begin_scope();
		for (auto &output : pls_outputs)
			statement(pls_decl(output), ";");
		end_scope_decl();
		statement("");
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
callq 0x12fa4
cmpl $0x4, 0xb8(%rax)
jne 0x2aeff
cmpb $0x0, 0x43c(%rbx)
je 0x2af4d
cmpl $0x12b, 0x438(%rbx)     # imm = 0x12B
jbe 0x2af98
movq 0x758(%rbx), %rax
cmpq 0x760(%rbx), %rax
je 0x2ae69
leaq 0x68075(%rip), %rsi     # 0x92e6e
movq %rbx, %rdi
callq 0x42748
movq %rbx, %rdi
callq 0x22d28
movq 0x758(%rbx), %r14
movq 0x760(%rbx), %r13
leaq 0x8(%rsp), %r15
leaq 0x6ec5e(%rip), %r12     # 0x99a81
cmpq %r13, %r14
je 0x2ae52
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x2b022
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x953a
movq %r15, %rdi
callq 0x6548
addq $0x8, %r14
jmp 0x2ae23
movq %rbx, %rdi
callq 0x22dba
leaq 0x64a26(%rip), %rsi     # 0x8f887
movq %rbx, %rdi
callq 0x928e
movq 0x770(%rbx), %rax
cmpq 0x778(%rbx), %rax
je 0x2aef0
leaq 0x68009(%rip), %rsi     # 0x92e89
movq %rbx, %rdi
callq 0xae86
movq %rbx, %rdi
callq 0x22d28
movq 0x770(%rbx), %r14
movq 0x778(%rbx), %r13
leaq 0x8(%rsp), %r15
leaq 0x6ebd7(%rip), %r12     # 0x99a81
cmpq %r13, %r14
je 0x2aed9
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x2b022
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x953a
movq %r15, %rdi
callq 0x6548
addq $0x8, %r14
jmp 0x2aeaa
movq %rbx, %rdi
callq 0x22dba
leaq 0x6499f(%rip), %rsi     # 0x8f887
movq %rbx, %rdi
callq 0x928e
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x10
popq %rdi
callq 0x6140
movq %rax, %r14
leaq 0x67eba(%rip), %rsi     # 0x92dcb
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x6100
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6f6e
xorl %ebp, %ebp
leaq 0xbbe87(%rip), %rsi     # 0xe6dc0
movq 0xbd0a0(%rip), %rdx     # 0xe7fe0
movq %r14, %rdi
callq 0x6490
jmp 0x2afe1
pushq $0x10
popq %rdi
callq 0x6140
movq %rax, %r14
leaq 0x67ea4(%rip), %rsi     # 0x92e03
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x6100
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6f6e
xorl %ebp, %ebp
leaq 0xbbe39(%rip), %rsi     # 0xe6dc0
movq 0xbd052(%rip), %rdx     # 0xe7fe0
movq %r14, %rdi
callq 0x6490
jmp 0x2afe1
pushq $0x10
popq %rdi
callq 0x6140
movq %rax, %r14
leaq 0x67e8a(%rip), %rsi     # 0x92e34
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x6100
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6f6e
xorl %ebp, %ebp
leaq 0xbbdee(%rip), %rsi     # 0xe6dc0
movq 0xbd007(%rip), %rdx     # 0xe7fe0
movq %r14, %rdi
callq 0x6490
jmp 0x2afe9
jmp 0x2affd
jmp 0x2afe9
jmp 0x2affd
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x6548
testb %bpl, %bpl
jne 0x2b000
jmp 0x2b019
movq %rax, %rbx
movq %r14, %rdi
callq 0x6200
jmp 0x2b019
jmp 0x2b00c
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x6548
movq %rbx, %rdi
callq 0x64b0
nop