// File: AgathokakologicalBit[P]wit/src/code_generation/generators/javascript/generator.cpp
// Function: akbit::system::code_generation::js::(anonymous namespace)::cg_visit_value_tuple[abi:cxx11](std::shared_ptr<akbit::system::Node>, akbit::system::Node::value_tuple_t&, akbit::system::code_generation::js::Settings)
std::string cg_visit_value_tuple(std::shared_ptr<Node>, Node::value_tuple_t &val, Settings s)
    {
      std::string res = s.vectorise_tuple ? "[" : "(";
      s.vectorise_tuple = true;

      for (auto& p : val.entries)
      {
        if (&p != &val.entries.front()) res += ", ";
        res += cg_visit(p, s);
      }

      res += (res[0] == '[') ? ']' : ')';
      return res;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0xd0(%rbp)
movb %r8b, %al
movq %rdi, %r8
movq %r8, -0xc8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rcx, -0x24(%rbp)
movb %al, -0x1c(%rbp)
movq -0x24(%rbp), %rax
movq %rax, -0x14(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0xc(%rbp)
movq %rsi, -0x30(%rbp)
movq %rdx, -0x38(%rbp)
movb $0x0, -0x39(%rbp)
testb $0x1, -0xc(%rbp)
je 0x34afa
leaq 0x21a2(%rip), %rax      # 0x36c93
movq %rax, -0xd8(%rbp)
jmp 0x34b0a
leaq 0x214f(%rip), %rax      # 0x36c50
movq %rax, -0xd8(%rbp)
jmp 0x34b0a
movq -0xd8(%rbp), %rax
movq %rax, -0xe8(%rbp)
leaq -0x3a(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0x4570
movq -0xd0(%rbp), %rdi
movq -0xe8(%rbp), %rsi
movq -0xe0(%rbp), %rdx
callq 0x9e70
jmp 0x34b44
leaq -0x3a(%rbp), %rdi
callq 0x4370
movb $0x1, -0xc(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
callq 0x18160
movq %rax, -0x60(%rbp)
movq -0x58(%rbp), %rdi
callq 0x17fa0
movq %rax, -0x68(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x22a70
testb $0x1, %al
jne 0x34b89
jmp 0x34cd1
leaq -0x60(%rbp), %rdi
callq 0x184a0
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x38(%rbp), %rdi
callq 0x34fc0
movq %rax, %rcx
movq -0xf0(%rbp), %rax
cmpq %rcx, %rax
je 0x34bfb
movq -0xd0(%rbp), %rdi
leaq 0x20bd(%rip), %rsi      # 0x36c84
callq 0x42d0
jmp 0x34bce
jmp 0x34bfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x3a(%rbp), %rdi
callq 0x4370
jmp 0x34d42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x34d36
movq -0x70(%rbp), %rsi
leaq -0xa0(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
callq 0x9b20
movq -0xf8(%rbp), %rsi
movl -0xc(%rbp), %eax
movl %eax, -0xa8(%rbp)
movq -0x14(%rbp), %rax
movq %rax, -0xb0(%rbp)
movl -0xa8(%rbp), %eax
movl %eax, -0xb8(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rdx
movl -0xb8(%rbp), %ecx
leaq -0x90(%rbp), %rdi
callq 0x31180
jmp 0x34c62
movq -0xd0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x4410
jmp 0x34c77
leaq -0x90(%rbp), %rdi
callq 0x4210
leaq -0xa0(%rbp), %rdi
callq 0x9b50
leaq -0x60(%rbp), %rdi
callq 0x22ab0
jmp 0x34b73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x34cc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x4210
leaq -0xa0(%rbp), %rdi
callq 0x9b50
jmp 0x34d36
movq -0xd0(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x45f0
movq %rax, -0x100(%rbp)
jmp 0x34cea
movq -0xd0(%rbp), %rdi
movq -0x100(%rbp), %rax
movb (%rax), %al
subb $0x5b, %al
movl $0x5d, %eax
movl $0x29, %esi
cmovel %eax, %esi
callq 0x4220
jmp 0x34d10
movb $0x1, -0x39(%rbp)
testb $0x1, -0x39(%rbp)
jne 0x34d26
movq -0xd0(%rbp), %rdi
callq 0x4210
movq -0xc8(%rbp), %rax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq -0xd0(%rbp), %rdi
callq 0x4210
movq -0x48(%rbp), %rdi
callq 0x4560
nopl (%rax,%rax)