// File: /workspace/github_c_makefile_star2_O3/lucvoo[P]sparse-dev/target.c
// Function: target_init
void target_init(void)
{
	const struct target *target = arch_target;

	switch (arch_m64) {
	case ARCH_X32:
		if (target->target_x32bit)
			target = target->target_x32bit;
		goto case_32bit;

	case ARCH_LP32:
		max_int_alignment = 4;
		if (target->target_32bit)
			target = target->target_32bit;
		/* fallthrough */
	case_32bit:
		bits_in_long = 32;
		bits_in_pointer = 32;
		pointer_alignment = 4;
		size_t_ctype = &uint_ctype;
		ssize_t_ctype = &int_ctype;
		int64_ctype = &llong_ctype;
		uint64_ctype = &ullong_ctype;
		intmax_ctype = &llong_ctype;
		uintmax_ctype = &ullong_ctype;
		fast64_ctype = &llong_ctype;
		ufast64_ctype = &ullong_ctype;
		break;

	case ARCH_LLP64:
		bits_in_long = 32;
		size_t_ctype = &ullong_ctype;
		ssize_t_ctype = &llong_ctype;
		int64_ctype = &llong_ctype;
		uint64_ctype = &ullong_ctype;
		intmax_ctype = &llong_ctype;
		uintmax_ctype = &ullong_ctype;
		/* fallthrough */
	case ARCH_LP64:
		if (target->target_64bit)
			target = target->target_64bit;
		break;
	}
	arch_target = target;

	if (fpie > fpic)
		fpic = fpie;

	if (target->wchar)
		wchar_ctype = target->wchar;
	if (target->wint)
		wint_ctype = target->wint;
	if (target->bits_in_longdouble)
		bits_in_longdouble = target->bits_in_longdouble;
	if (target->max_fp_alignment)
		max_fp_alignment = target->max_fp_alignment;

	if (target->init)
		target->init(target);

	if (arch_msize_long || target->size_t_long) {
		size_t_ctype = &ulong_ctype;
		ssize_t_ctype = &long_ctype;
	}
	if (fshort_wchar)
		wchar_ctype = &ushort_ctype;
}

// Assembly:
pushq %rbx
movq 0x37ec7(%rip), %rbx     # 0x64740
leaq 0x33ce0(%rip), %rax     # 0x60560
movl (%rax), %eax
cmpq $0x3, %rax
ja 0x2c97b
leaq 0x1b0a1(%rip), %rcx     # 0x47934
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x4, 0x37e72(%rip)     # 0x64718
movl $0x30, %eax
jmp 0x2c901
movl $0x20, 0x37e55(%rip)    # 0x6470c
leaq 0x3f57a(%rip), %rax     # 0x6be38
movq %rax, 0x37d5b(%rip)     # 0x64620
leaq 0x3f3ac(%rip), %rcx     # 0x6bc78
movq %rcx, 0x37d55(%rip)     # 0x64628
movq %rcx, 0x37d66(%rip)     # 0x64640
movq %rax, 0x37d67(%rip)     # 0x64648
movq %rcx, 0x37d48(%rip)     # 0x64630
movq %rax, 0x37d49(%rip)     # 0x64638
movq 0x40(%rbx), %rax
testq %rax, %rax
cmovneq %rax, %rbx
jmp 0x2c97b
movl $0x38, %eax
movq (%rbx,%rax), %rax
testq %rax, %rax
cmovneq %rax, %rbx
movl $0x20, %eax
movl %eax, 0x37df5(%rip)     # 0x6470c
movl %eax, 0x37e0f(%rip)     # 0x6472c
movl $0x4, 0x37e09(%rip)     # 0x64730
leaq 0x3efca(%rip), %rax     # 0x6b8f8
movq %rax, 0x37ceb(%rip)     # 0x64620
leaq 0x3edfc(%rip), %rax     # 0x6b738
movq %rax, 0x37ce5(%rip)     # 0x64628
leaq 0x3f32e(%rip), %rax     # 0x6bc78
movq %rax, 0x37cef(%rip)     # 0x64640
leaq 0x3f4e0(%rip), %rcx     # 0x6be38
movq %rcx, 0x37ce9(%rip)     # 0x64648
movq %rax, 0x37cca(%rip)     # 0x64630
movq %rcx, 0x37ccb(%rip)     # 0x64638
movq %rax, 0x37d6c(%rip)     # 0x646e0
movq %rcx, 0x37d6d(%rip)     # 0x646e8
movq %rbx, 0x37dbe(%rip)     # 0x64740
leaq 0x3a447(%rip), %rax     # 0x66dd0
movl (%rax), %eax
leaq 0x3a43a(%rip), %rcx     # 0x66dcc
cmpl (%rcx), %eax
jle 0x2c998
movl %eax, (%rcx)
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x2c9a8
movq %rax, 0x37cb8(%rip)     # 0x64660
movq 0x20(%rbx), %rax
testq %rax, %rax
je 0x2c9b8
movq %rax, 0x37cb0(%rip)     # 0x64668
movl 0x28(%rbx), %eax
testl %eax, %eax
je 0x2c9c5
movl %eax, 0x37d5f(%rip)     # 0x64724
movl 0x2c(%rbx), %eax
testl %eax, %eax
je 0x2c9d2
movl %eax, 0x37d56(%rip)     # 0x64728
movq 0x50(%rbx), %rax
testq %rax, %rax
je 0x2c9e0
movq %rbx, %rdi
callq *%rax
leaq 0x3a3b9(%rip), %rax     # 0x66da0
cmpl $0x0, (%rax)
jne 0x2c9f2
testb $0x4, 0x8(%rbx)
je 0x2ca0e
leaq 0x3f19f(%rip), %rax     # 0x6bb98
movq %rax, 0x37c20(%rip)     # 0x64620
leaq 0x3efd1(%rip), %rax     # 0x6b9d8
movq %rax, 0x37c1a(%rip)     # 0x64628
leaq 0x3a3bf(%rip), %rax     # 0x66dd4
cmpl $0x0, (%rax)
je 0x2ca28
leaq 0x3ec37(%rip), %rax     # 0x6b658
movq %rax, 0x37c38(%rip)     # 0x64660
popq %rbx
retq
nop