// File: rossy[P]crossc/SPIRV-Cross/spirv_glsl.cpp
// Function: spirv_cross::CompilerGLSL::type_to_glsl_constructor[abi:cxx11](spirv_cross::SPIRType const&)
string CompilerGLSL::type_to_glsl_constructor(const SPIRType &type)
{
	if (type.array.size() > 1)
	{
		if (options.flatten_multidimensional_arrays)
			SPIRV_CROSS_THROW("Cannot flatten constructors of multidimensional array constructors, e.g. float[][]().");
		else if (!options.es && options.version < 430)
			require_extension_internal("GL_ARB_arrays_of_arrays");
		else if (options.es && options.version < 310)
			SPIRV_CROSS_THROW("Arrays of arrays not supported before ESSL version 310.");
	}

	auto e = type_to_glsl(type);
	for (uint32_t i = 0; i < type.array.size(); i++)
		e += "[]";
	return e;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0xb8(%rbp)
movq %rdi, %rax
movq %rax, -0xb0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x18(%rbp), %rdi
addq $0x20, %rdi
callq 0x8650
cmpq $0x1, %rax
jbe 0x72eb5
movq -0xa8(%rbp), %rax
testb $0x1, 0x440(%rax)
je 0x72d06
movb $0x1, -0x4d(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0xc8(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x7650
movq -0xc0(%rbp), %rdx
leaq 0xd2058(%rip), %rsi     # 0x144cd9
leaq -0x38(%rbp), %rdi
callq 0x7520
jmp 0x72c8c
movq -0xc8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x9c50
jmp 0x72c9e
movq -0xc8(%rbp), %rdi
movb $0x0, -0x4d(%rbp)
leaq 0x13b128(%rip), %rsi    # 0x1addd8
leaq -0x69027(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x72f83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x72ce4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x7708
leaq -0x39(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x4d(%rbp)
jne 0x72cf5
jmp 0x72d01
movq -0xc8(%rbp), %rdi
callq 0x72c0
jmp 0x72f7a
movq -0xa8(%rbp), %rax
testb $0x1, 0x43c(%rax)
jne 0x72db4
movq -0xa8(%rbp), %rax
cmpl $0x1ae, 0x438(%rax)     # imm = 0x1AE
jae 0x72db4
leaq -0x71(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
callq 0x7650
movq -0xd0(%rbp), %rdx
leaq 0xd1e39(%rip), %rsi     # 0x144b88
leaq -0x70(%rbp), %rdi
callq 0x7520
jmp 0x72d5a
movq -0xa8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x589d0
jmp 0x72d6c
leaq -0x70(%rbp), %rdi
callq 0x7708
leaq -0x71(%rbp), %rdi
callq 0x73d0
jmp 0x72eb1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x72da6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x7708
leaq -0x71(%rbp), %rdi
callq 0x73d0
jmp 0x72f7a
movq -0xa8(%rbp), %rax
testb $0x1, 0x43c(%rax)
je 0x72eaf
movq -0xa8(%rbp), %rax
cmpl $0x136, 0x438(%rax)     # imm = 0x136
jae 0x72eaf
movb $0x1, -0x9a(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0xe0(%rbp)
leaq -0x99(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
callq 0x7650
movq -0xd8(%rbp), %rdx
leaq 0xd1f17(%rip), %rsi     # 0x144d2f
leaq -0x98(%rbp), %rdi
callq 0x7520
jmp 0x72e26
movq -0xe0(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x9c50
jmp 0x72e3b
movq -0xe0(%rbp), %rdi
movb $0x0, -0x9a(%rbp)
leaq 0x13af88(%rip), %rsi    # 0x1addd8
leaq -0x691c7(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x72f83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x72e87
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x7708
leaq -0x99(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x9a(%rbp)
jne 0x72e9e
jmp 0x72eaa
movq -0xe0(%rbp), %rdi
callq 0x72c0
jmp 0x72f7a
jmp 0x72eb1
jmp 0x72eb3
jmp 0x72eb5
movq -0xa8(%rbp), %rsi
movq -0xb8(%rbp), %rdi
movb $0x0, -0x9b(%rbp)
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
xorl %ecx, %ecx
callq *0x98(%rax)
movl $0x0, -0xa0(%rbp)
movl -0xa0(%rbp), %eax
movq %rax, -0xe8(%rbp)
movq -0x18(%rbp), %rdi
addq $0x20, %rdi
callq 0x8650
movq %rax, %rcx
movq -0xe8(%rbp), %rax
cmpq %rcx, %rax
jae 0x72f4e
movq -0xb8(%rbp), %rdi
leaq 0xcf526(%rip), %rsi     # 0x142440
callq 0x7340
jmp 0x72f21
jmp 0x72f23
movl -0xa0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa0(%rbp)
jmp 0x72ee3
movq -0xb8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x7708
jmp 0x72f7a
movb $0x1, -0x9b(%rbp)
testb $0x1, -0x9b(%rbp)
jne 0x72f6a
movq -0xb8(%rbp), %rdi
callq 0x7708
movq -0xb0(%rbp), %rax
addq $0xf0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x7640
nopw %cs:(%rax,%rax)