// File: Nallantli[P]Rossa/main/rossa/node/node.cpp
// Function: CallNode::genParser() const
ptr_instruction_t CallNode::genParser() const
{
	auto fcallee = callee->genParser();
	std::vector<ptr_instruction_t> fargs;
	for (auto &c : args)
		fargs.push_back(c->genParser());
	if (fcallee->getType() == INNER)
	{
		return std::make_shared<CallWithInnerI>(fcallee, std::make_shared<SequenceI>(fargs, token), token);
	}
	return std::make_shared<CallI>(fcallee, std::make_shared<SequenceI>(fargs, token), token);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0xd8(%rbp)
movq %rdi, %rax
movq %rax, -0xd0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
addq $0xa8, %rdi
callq 0x2d030
movq %rax, %rsi
movq (%rsi), %rax
leaq -0x20(%rbp), %rdi
callq *(%rax)
leaq -0x38(%rbp), %rdi
callq 0xe52f0
movq -0xc8(%rbp), %rax
addq $0xb8, %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
callq 0xe5310
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rdi
callq 0xe5340
movq %rax, -0x50(%rbp)
leaq -0x48(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xe5370
testb $0x1, %al
jne 0xd699e
jmp 0xd6a13
leaq -0x48(%rbp), %rdi
callq 0xe53b0
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
callq 0x2d030
movq %rax, %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x68(%rbp), %rdi
callq *%rax
jmp 0xd69c5
leaq -0x38(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xe5400
jmp 0xd69d4
leaq -0x68(%rbp), %rdi
callq 0x2a4e0
leaq -0x48(%rbp), %rdi
callq 0xe5430
jmp 0xd698b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xd6b87
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x2a4e0
jmp 0xd6b87
leaq -0x20(%rbp), %rdi
callq 0x2d300
movq %rax, %rdi
callq 0x128000
movl %eax, -0xdc(%rbp)
jmp 0xd6a2c
movl -0xdc(%rbp), %eax
cmpl $0x5, %eax
jne 0xd6ad3
movq -0xc8(%rbp), %rdx
addq $0x28, %rdx
leaq -0x98(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xe5520
jmp 0xd6a58
movq -0xc8(%rbp), %rcx
addq $0x28, %rcx
leaq -0x88(%rbp), %rdi
leaq -0x20(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq 0xe6680
jmp 0xd6a7c
movq -0xd8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0xe6700
leaq -0x88(%rbp), %rdi
callq 0xe6730
leaq -0x98(%rbp), %rdi
callq 0xe55d0
movl $0x1, -0x9c(%rbp)
jmp 0xd6b65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x98(%rbp), %rdi
callq 0xe55d0
jmp 0xd6b87
movq -0xc8(%rbp), %rdx
addq $0x28, %rdx
leaq -0xc0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xe5520
jmp 0xd6af0
movq -0xc8(%rbp), %rcx
addq $0x28, %rcx
leaq -0xb0(%rbp), %rdi
leaq -0x20(%rbp), %rsi
leaq -0xc0(%rbp), %rdx
callq 0xe6750
jmp 0xd6b14
movq -0xd8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xe67d0
leaq -0xb0(%rbp), %rdi
callq 0xe6800
leaq -0xc0(%rbp), %rdi
callq 0xe55d0
movl $0x1, -0x9c(%rbp)
jmp 0xd6b65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0xe55d0
jmp 0xd6b87
leaq -0x38(%rbp), %rdi
callq 0xe55f0
leaq -0x20(%rbp), %rdi
callq 0x2a4e0
movq -0xd0(%rbp), %rax
addq $0xe0, %rsp
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0xe55f0
leaq -0x20(%rbp), %rdi
callq 0x2a4e0
movq -0x70(%rbp), %rdi
callq 0x119c0
nopw %cs:(%rax,%rax)