// File: Silica[P]PSL/./PSL/code.h
// Function: PSL::variable::Variable::CALL::Execute(PSL::variable::Variable::Environment&)
CLONE(CALL)
	EXEC
	{
		variable r = env.pop();
		variable v = env.pop();
		env.push(r);
		#ifdef PSL_OPTIMIZE_TAILCALL
		MNEMONIC::mnemonic n = env.getNext();
		if (isMethod(v.x))
		{
			rsv z = v[1];
/*		���\�b�h��this�𑩔����Ȃ��ׁA���\�b�h�Ăяo���Ŗ����œK������������
		�X�R�[�v�Ɋ����t�����ꂽ���[�J���I�u�W�F�N�g(this)���j�������Ȃ��烁�\�b�h���Ăяo�����Ă��܂�
		���\�b�h�X�R�[�v��this�𑩔������̂Ŏ��̃X�R�[�v�������Ă��܂��Ζ����Ȃ�
		���ׂ̈����ňꎞ�I��this���ێ����Ă��� */
			if (n == MNEMONIC::RETURN)	env.Return();
			else if (n == MNEMONIC::END)env.endScope();
			v.prepare(env);
		}
		else
		#endif
		{
			#ifdef PSL_OPTIMIZE_TAILCALL
			if (n == MNEMONIC::RETURN)	env.Return();
			else if (n == MNEMONIC::END)env.endScope();
			#endif
			v.prepare(env);
		}
		return RC::CALL;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x20(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x11950
movq -0x68(%rbp), %rsi
leaq -0x18(%rbp), %rdi
callq 0xcd50
jmp 0x34143
leaq -0x20(%rbp), %rdi
callq 0xcd90
movq -0x10(%rbp), %rsi
leaq -0x40(%rbp), %rdi
callq 0x11950
jmp 0x3415b
leaq -0x38(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0xcd50
jmp 0x3416a
leaq -0x40(%rbp), %rdi
callq 0xcd90
movq -0x10(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq -0x48(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x11b10
jmp 0x3418a
movq -0x70(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x11aa0
jmp 0x34199
leaq -0x48(%rbp), %rdi
callq 0xcd90
movq -0x10(%rbp), %rdi
callq 0x343d0
movl %eax, -0x74(%rbp)
jmp 0x341b0
movl -0x74(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x38(%rbp), %rdi
callq 0x1c060
movb %al, -0x75(%rbp)
jmp 0x341c4
movb -0x75(%rbp), %al
testb $0x1, %al
jne 0x341d0
jmp 0x342ec
leaq -0x60(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0x1, %edx
callq 0x22460
jmp 0x341e4
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x11b10
jmp 0x341f3
leaq -0x60(%rbp), %rdi
callq 0xcdc0
cmpl $0x16, -0x4c(%rbp)
jne 0x342ba
movq -0x10(%rbp), %rdi
callq 0x33aa0
jmp 0x34211
jmp 0x342d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xcd90
jmp 0x3435a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x34351
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0xcd90
jmp 0x34351
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x34348
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xcd90
jmp 0x34348
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0xcdc0
jmp 0x34348
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xcd90
jmp 0x34348
cmpl $0xff, -0x4c(%rbp)
jne 0x342d0
movq -0x10(%rbp), %rdi
callq 0x1a400
jmp 0x342ce
jmp 0x342d0
jmp 0x342d2
movq -0x10(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x343f0
jmp 0x342e1
leaq -0x58(%rbp), %rdi
callq 0xcd90
jmp 0x34328
cmpl $0x16, -0x4c(%rbp)
jne 0x342ff
movq -0x10(%rbp), %rdi
callq 0x33aa0
jmp 0x342fd
jmp 0x34317
cmpl $0xff, -0x4c(%rbp)
jne 0x34315
movq -0x10(%rbp), %rdi
callq 0x1a400
jmp 0x34313
jmp 0x34315
jmp 0x34317
movq -0x10(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x343f0
jmp 0x34326
jmp 0x34328
leaq -0x38(%rbp), %rdi
callq 0xcdc0
leaq -0x18(%rbp), %rdi
callq 0xcdc0
movl $0x1, %eax
addq $0x80, %rsp
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0xcdc0
leaq -0x18(%rbp), %rdi
callq 0xcdc0
movq -0x28(%rbp), %rdi
callq 0xc280
nopw %cs:(%rax,%rax)
nopl (%rax)