// File: /workspace/github_cpp_makefile_star2_O3/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 0x15f76
cmpl $0x4, 0xb8(%rax)
jne 0x33119
cmpb $0x0, 0x43c(%rbx)
je 0x33182
cmpl $0x12b, 0x438(%rbx)     # imm = 0x12B
jbe 0x331e8
movq 0x758(%rbx), %rax
cmpq 0x760(%rbx), %rax
je 0x3305b
leaq 0x84ec7(%rip), %rsi     # 0xb7e8e
movq %rbx, %rdi
callq 0x527f6
leaq 0x87c01(%rip), %rsi     # 0xbabd7
movq %rbx, %rdi
callq 0x59e02
incl 0x638(%rbx)
movq 0x758(%rbx), %r14
movq 0x760(%rbx), %r13
cmpq %r13, %r14
je 0x33044
leaq 0x18(%rsp), %rbp
leaq 0x8(%rsp), %r15
leaq 0x8bae9(%rip), %r12     # 0xbeaf1
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x332a6
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0xaa14
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3303b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
addq $0x8, %r14
cmpq %r13, %r14
jne 0x33008
movq %rbx, %rdi
callq 0x28270
leaq 0x8185c(%rip), %rsi     # 0xb48af
movq %rbx, %rdi
callq 0xa6c4
movq 0x770(%rbx), %rax
cmpq 0x778(%rbx), %rax
je 0x3310a
leaq 0x84e33(%rip), %rsi     # 0xb7ea9
movq %rbx, %rdi
callq 0xcdb2
leaq 0x87b52(%rip), %rsi     # 0xbabd7
movq %rbx, %rdi
callq 0x59e02
incl 0x638(%rbx)
movq 0x770(%rbx), %r14
movq 0x778(%rbx), %r13
cmpq %r13, %r14
je 0x330f3
leaq 0x18(%rsp), %rbp
leaq 0x8(%rsp), %r15
leaq 0x8ba3a(%rip), %r12     # 0xbeaf1
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x332a6
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0xaa14
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x330ea
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
addq $0x8, %r14
cmpq %r13, %r14
jne 0x330b7
movq %rbx, %rdi
callq 0x28270
leaq 0x817ad(%rip), %rsi     # 0xb48af
movq %rbx, %rdi
callq 0xa6c4
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x84cb5(%rip), %rsi     # 0xb7deb
leaq 0x84ce5(%rip), %rdx     # 0xb7e22
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0xc8c6a(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0xc8c42(%rip), %rsi     # 0xfbdb0
movq 0xc9e63(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x3324c
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x84c84(%rip), %rsi     # 0xb7e23
leaq 0x84cad(%rip), %rdx     # 0xb7e53
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0xc8c01(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0xc8bd9(%rip), %rsi     # 0xfbdb0
movq 0xc9dfa(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x3324c
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x84c4f(%rip), %rsi     # 0xb7e54
leaq 0x84c81(%rip), %rdx     # 0xb7e8d
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0xc8b9b(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0xc8b73(%rip), %rsi     # 0xfbdb0
movq 0xc9d94(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x33254
jmp 0x33275
jmp 0x33254
jmp 0x33275
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3326e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
testb %bpl, %bpl
jne 0x33278
jmp 0x3329e
movq %rax, %rbx
movq %r14, %rdi
callq 0x6200
jmp 0x3329e
jmp 0x33284
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3329e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
movq %rbx, %rdi
callq 0x64a0