// File: rossy[P]crossc/SPIRV-Cross/spirv_glsl.cpp
// Function: spirv_cross::CompilerGLSL::remap_pls_variables()
void CompilerGLSL::remap_pls_variables()
{
	for (auto &input : pls_inputs)
	{
		auto &var = get<SPIRVariable>(input.id);

		bool input_is_target = false;
		if (var.storage == StorageClassUniformConstant)
		{
			auto &type = get<SPIRType>(var.basetype);
			input_is_target = type.image.dim == DimSubpassData;
		}

		if (var.storage != StorageClassInput && !input_is_target)
			SPIRV_CROSS_THROW("Can only use in and target variables for PLS inputs.");
		var.remapped_variable = true;
	}

	for (auto &output : pls_outputs)
	{
		auto &var = get<SPIRVariable>(output.id);
		if (var.storage != StorageClassOutput)
			SPIRV_CROSS_THROW("Can only use out variables for PLS outputs.");
		var.remapped_variable = true;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xd0(%rbp)
addq $0x758, %rax            # imm = 0x758
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x9e250
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x9e280
movq %rax, -0x20(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x9e2b0
testb $0x1, %al
jne 0x57ac4
jmp 0x57c05
leaq -0x18(%rbp), %rdi
callq 0x9e2f0
movq -0xd0(%rbp), %rdi
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movl (%rax), %esi
callq 0xfec0
movq %rax, -0x30(%rbp)
movb $0x0, -0x31(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, 0x10(%rax)
jne 0x57b1f
movq -0xd0(%rbp), %rdi
movq -0x30(%rbp), %rax
movl 0xc(%rax), %esi
callq 0xea90
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpl $0x6, 0x84(%rax)
sete %al
andb $0x1, %al
movb %al, -0x31(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x1, 0x10(%rax)
je 0x57bef
testb $0x1, -0x31(%rbp)
jne 0x57bef
movb $0x1, -0x75(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0xe0(%rbp)
leaq -0x61(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
callq 0x7650
movq -0xd8(%rbp), %rdx
leaq 0xe8e4a(%rip), %rsi     # 0x1409b4
leaq -0x60(%rbp), %rdi
callq 0x7520
jmp 0x57b75
movq -0xe0(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x9c50
jmp 0x57b87
movq -0xe0(%rbp), %rdi
movb $0x0, -0x75(%rbp)
leaq 0x15623f(%rip), %rsi    # 0x1addd8
leaq -0x4df10(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x57d8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x57bcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x7708
leaq -0x61(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x75(%rbp)
jne 0x57bde
jmp 0x57bea
movq -0xe0(%rbp), %rdi
callq 0x72c0
jmp 0x57d81
movq -0x30(%rbp), %rax
movb $0x1, 0x5b(%rax)
leaq -0x18(%rbp), %rdi
callq 0x9e310
jmp 0x57aae
movq -0xd0(%rbp), %rax
addq $0x770, %rax            # imm = 0x770
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rdi
callq 0x9e250
movq %rax, -0x88(%rbp)
movq -0x80(%rbp), %rdi
callq 0x9e280
movq %rax, -0x90(%rbp)
leaq -0x88(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x9e2b0
testb $0x1, %al
jne 0x57c52
jmp 0x57d78
leaq -0x88(%rbp), %rdi
callq 0x9e2f0
movq -0xd0(%rbp), %rdi
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movl (%rax), %esi
callq 0xfec0
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
cmpl $0x3, 0x10(%rax)
je 0x57d5c
movb $0x1, -0xc2(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0xf0(%rbp)
leaq -0xc1(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x7650
movq -0xe8(%rbp), %rdx
leaq 0xe8d1e(%rip), %rsi     # 0x1409e9
leaq -0xc0(%rbp), %rdi
callq 0x7520
jmp 0x57cd9
movq -0xf0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x9c50
jmp 0x57cee
movq -0xf0(%rbp), %rdi
movb $0x0, -0xc2(%rbp)
leaq 0x1560d5(%rip), %rsi    # 0x1addd8
leaq -0x4e07a(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x57d8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x57d37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x7708
leaq -0xc1(%rbp), %rdi
callq 0x73d0
testb $0x1, -0xc2(%rbp)
jne 0x57d4e
jmp 0x57d5a
movq -0xf0(%rbp), %rdi
callq 0x72c0
jmp 0x57d81
movq -0xa0(%rbp), %rax
movb $0x1, 0x5b(%rax)
leaq -0x88(%rbp), %rdi
callq 0x9e310
jmp 0x57c36
addq $0xf0, %rsp
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0x7640
nopw (%rax,%rax)