// File: lhydave[P]SysYCompilerLab/front/node.cpp
// Function: sysY_AST::func_call_exp_node::new_temp()
void func_call_exp_node::new_temp()
{
	if (temped || exp_type == EXP_NUM || exp_type == EXP_VAR)
		return;
	check_ret_type(this);
	sysy_name = "#t" + to_string(temp_id);
	eeyore_name = "t" + to_string(temp_id++);
	code += "\t" + eeyore_name + " = call f_" + sysy_func_name + "\n";
	reg_var(sysy_name);
	temped = true;
	return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x158(%rbp)
cmpl $0x0, 0x9c(%rax)
jne 0x12803
movq -0x158(%rbp), %rax
cmpl $0x2, 0x98(%rax)
je 0x12803
movq -0x158(%rbp), %rax
cmpl $0x1, 0x98(%rax)
jne 0x12808
jmp 0x12b30
movq -0x158(%rbp), %rdi
callq 0x12450
movl 0x5fbee(%rip), %esi     # 0x72408
leaq -0x48(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0x13410
movq -0x160(%rbp), %rdx
leaq 0x3b4ad(%rip), %rsi     # 0x4dce5
leaq -0x28(%rbp), %rdi
callq 0x14000
jmp 0x12843
movq -0x158(%rbp), %rdi
addq $0x50, %rdi
leaq -0x28(%rbp), %rsi
movq %rsi, -0x170(%rbp)
callq 0x5410
movq -0x170(%rbp), %rdi
callq 0x56c0
leaq -0x48(%rbp), %rdi
callq 0x56c0
movl 0x5fb8f(%rip), %esi     # 0x72408
movl %esi, %eax
incl %eax
movl %eax, 0x5fb85(%rip)     # 0x72408
leaq -0x98(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x13410
movq -0x168(%rbp), %rdx
leaq 0x3b43f(%rip), %rsi     # 0x4dce3
leaq -0x78(%rbp), %rdi
callq 0x14000
jmp 0x128af
movq -0x158(%rbp), %rdi
addq $0x70, %rdi
movq %rdi, -0x180(%rbp)
leaq -0x78(%rbp), %rsi
movq %rsi, -0x188(%rbp)
callq 0x5410
movq -0x188(%rbp), %rdi
callq 0x56c0
leaq -0x98(%rbp), %rdi
callq 0x56c0
movq -0x180(%rbp), %rdx
leaq 0x3c368(%rip), %rsi     # 0x4ec5f
leaq -0x118(%rbp), %rdi
movq %rdi, -0x178(%rbp)
callq 0x12d60
movq -0x178(%rbp), %rsi
leaq 0x3b565(%rip), %rdx     # 0x4de7d
leaq -0xf8(%rbp), %rdi
callq 0x12d10
jmp 0x12926
movq -0x158(%rbp), %rdx
addq $0xb8, %rdx
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x132d0
jmp 0x12949
leaq 0x3b2f0(%rip), %rdx     # 0x4dc40
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x12d10
jmp 0x12965
movq -0x158(%rbp), %rdi
addq $0x18, %rdi
leaq -0xb8(%rbp), %rsi
callq 0x5440
jmp 0x1297e
leaq -0xb8(%rbp), %rdi
callq 0x56c0
leaq -0xd8(%rbp), %rdi
callq 0x56c0
leaq -0xf8(%rbp), %rdi
callq 0x56c0
leaq -0x118(%rbp), %rdi
callq 0x56c0
movq -0x158(%rbp), %rax
addq $0x50, %rax
movq %rax, -0x1a0(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x1b0(%rbp)
movaps %xmm0, -0x130(%rbp)
movq $0x0, -0x120(%rbp)
leaq -0x130(%rbp), %rdi
movq %rdi, -0x198(%rbp)
callq 0x12cb0
movaps -0x1b0(%rbp), %xmm0
movaps %xmm0, -0x150(%rbp)
movq $0x0, -0x140(%rbp)
leaq -0x150(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x12cb0
movq -0x1a0(%rbp), %rdi
movq -0x198(%rbp), %r8
movq -0x190(%rbp), %r9
xorl %ecx, %ecx
movl %ecx, %esi
movl %ecx, %edx
callq 0x1c140
jmp 0x12a3d
leaq -0x150(%rbp), %rdi
callq 0x13160
leaq -0x130(%rbp), %rdi
callq 0x13160
movq -0x158(%rbp), %rax
movl $0x1, 0x9c(%rax)
jmp 0x12b30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x56c0
jmp 0x12b39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x56c0
jmp 0x12b39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x12afc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x12af0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x12ae4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x56c0
leaq -0xd8(%rbp), %rdi
callq 0x56c0
leaq -0xf8(%rbp), %rdi
callq 0x56c0
leaq -0x118(%rbp), %rdi
callq 0x56c0
jmp 0x12b39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x13160
leaq -0x130(%rbp), %rdi
callq 0x13160
jmp 0x12b39
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x5610
nopw %cs:(%rax,%rax)