// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/semantics.c
// Function: set_constexpr_uint64
static void _set_constexpr_uint64(
	ParserContext *ctx,
	ParserASTNode *node,
	uint8_t target_type,
	uint64_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 0x5bcb2
jmp 0x5bcd1
leaq 0x2089d(%rip), %rdi     # 0x7c556
leaq 0x2258a(%rip), %rsi     # 0x7e24a
movl $0x92b, %edx            # imm = 0x92B
leaq 0x23b7c(%rip), %rcx     # 0x7f848
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x5bcda
jmp 0x5bcf9
leaq 0x1a2f2(%rip), %rdi     # 0x75fd3
leaq 0x22562(%rip), %rsi     # 0x7e24a
movl $0x92c, %edx            # imm = 0x92C
leaq 0x23b54(%rip), %rcx     # 0x7f848
callq 0x30a0
movzbl -0x11(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x28(%rbp)
subl $0xf, %eax
ja 0x5bed3
movq -0x28(%rbp), %rax
leaq 0x223d7(%rip), %rcx     # 0x7e0f0
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 0x5bef2
movq -0x20(%rbp), %rax
movb %al, %cl
movq -0x10(%rbp), %rax
movb %cl, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x2, 0x71(%rax)
jmp 0x5bef2
movq -0x20(%rbp), %rax
movw %ax, %cx
movq -0x10(%rbp), %rax
movw %cx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x3, 0x71(%rax)
jmp 0x5bef2
movq -0x20(%rbp), %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x4, 0x71(%rax)
jmp 0x5bef2
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x5, 0x71(%rax)
jmp 0x5bef2
movq -0x20(%rbp), %rax
movb %al, %cl
movq -0x10(%rbp), %rax
movb %cl, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x6, 0x71(%rax)
jmp 0x5bef2
movq -0x20(%rbp), %rax
movw %ax, %cx
movq -0x10(%rbp), %rax
movw %cx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x7, 0x71(%rax)
jmp 0x5bef2
movq -0x20(%rbp), %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x8, 0x71(%rax)
jmp 0x5bef2
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x9, 0x71(%rax)
jmp 0x5bef2
movq -0x20(%rbp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, -0x30(%rbp)
testq %rax, %rax
movss %xmm0, -0x2c(%rbp)
js 0x5be62
movss -0x30(%rbp), %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x2c(%rbp), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0xa, 0x71(%rax)
jmp 0x5bef2
movaps 0x2239c(%rip), %xmm1    # 0x7e220
movq -0x20(%rbp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x2239b(%rip), %xmm1    # 0x7e230
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0xb, 0x71(%rax)
jmp 0x5bef2
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x88(%rax)
movq -0x10(%rbp), %rax
movb $0x10, 0x71(%rax)
jmp 0x5bef2
leaq 0x16581(%rip), %rdi     # 0x7245b
leaq 0x22369(%rip), %rsi     # 0x7e24a
movl $0x942, %edx            # imm = 0x942
leaq 0x2395b(%rip), %rcx     # 0x7f848
callq 0x30a0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)