// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/semantics.c
// Function: set_constexpr_int64
static void _set_constexpr_int64(
	ParserContext *ctx,
	ParserASTNode *node,
	uint8_t target_type,
	int64_t value
) {
	assert(ctx);
	assert(node);

	#define	_A(type)	\
		case FE_TYPE_##type: {	\
			FE_EXPR_AST_NODE_SET_CONSTEXPR_RESULT_##type##_VAL(node, value);	\
			break;	\
		}

	switch (target_type) {
		_A(CHAR)
		_A(INT8)
		_A(INT16)
		_A(INT32)
		_A(INT64)
		_A(UINT8)
		_A(UINT16)
		_A(UINT32)
		_A(UINT64)
		_A(FLOAT)
		_A(DOUBLE)
		_A(POINTER)
		default: {
			assert(0);
		}
	}

	#undef	_A
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x5b852
jmp 0x5b871
leaq 0x20cfd(%rip), %rdi     # 0x7c556
leaq 0x229ea(%rip), %rsi     # 0x7e24a
movl $0x8fe, %edx            # imm = 0x8FE
leaq 0x23f4d(%rip), %rcx     # 0x7f7b9
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x5b87a
jmp 0x5b899
leaq 0x1a752(%rip), %rdi     # 0x75fd3
leaq 0x229c2(%rip), %rsi     # 0x7e24a
movl $0x8ff, %edx            # imm = 0x8FF
leaq 0x23f25(%rip), %rcx     # 0x7f7b9
callq 0x30a0
movzbl -0x11(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x28(%rbp)
subl $0xf, %eax
ja 0x5ba17
movq -0x28(%rbp), %rax
leaq 0x227b7(%rip), %rcx     # 0x7e070
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rax
movb %al, %cl
movq -0x10(%rbp), %rax
movb %cl, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x1, 0x71(%rax)
jmp 0x5ba36
movq -0x20(%rbp), %rax
movb %al, %cl
movq -0x10(%rbp), %rax
movb %cl, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x2, 0x71(%rax)
jmp 0x5ba36
movq -0x20(%rbp), %rax
movw %ax, %cx
movq -0x10(%rbp), %rax
movw %cx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x3, 0x71(%rax)
jmp 0x5ba36
movq -0x20(%rbp), %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x4, 0x71(%rax)
jmp 0x5ba36
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x5, 0x71(%rax)
jmp 0x5ba36
movq -0x20(%rbp), %rax
movb %al, %cl
movq -0x10(%rbp), %rax
movb %cl, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x6, 0x71(%rax)
jmp 0x5ba36
movq -0x20(%rbp), %rax
movw %ax, %cx
movq -0x10(%rbp), %rax
movw %cx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x7, 0x71(%rax)
jmp 0x5ba36
movq -0x20(%rbp), %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x8, 0x71(%rax)
jmp 0x5ba36
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x9, 0x71(%rax)
jmp 0x5ba36
cvtsi2ssq -0x20(%rbp), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0xa, 0x71(%rax)
jmp 0x5ba36
cvtsi2sdq -0x20(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0xb, 0x71(%rax)
jmp 0x5ba36
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x10, 0x71(%rax)
jmp 0x5ba36
leaq 0x16a3d(%rip), %rdi     # 0x7245b
leaq 0x22825(%rip), %rsi     # 0x7e24a
movl $0x915, %edx            # imm = 0x915
leaq 0x23d88(%rip), %rcx     # 0x7f7b9
callq 0x30a0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)