// File: /workspace/github_c_makefile_star2_O1/lucvoo[P]sparse-dev/target-riscv.c
// Function: predefine_riscv
static void predefine_riscv(const struct target *self)
{
	static const char *cmodels[CMODEL_LAST] = {
		[CMODEL_MEDANY] = "medany",
		[CMODEL_MEDLOW] = "medlow",
		[CMODEL_PIC]    = "pic",
	};
	const char *cmodel = cmodels[arch_cmodel];

	predefine("__riscv", 1, "1");
	predefine("__riscv_xlen", 1, "%d", ptr_ctype.bit_size);

	if (riscv_flags & RISCV_ATOMIC)
		predefine("__riscv_atomic", 1, "1");
	if (riscv_flags & RISCV_COMP)
		predefine("__riscv_compressed", 1, "1");
	if (riscv_flags & RISCV_DIV)
		predefine("__riscv_div", 1, "1");
	if (riscv_flags & RISCV_EMBD)
		predefine("__riscv_32e", 1, "1");
	if (riscv_flags & RISCV_FPU)
		predefine("__riscv_flen", 1, "%d", (riscv_flags & RISCV_DOUBLE) ? 64 : 32);
	if (riscv_flags & RISCV_FDIV)
		predefine("__riscv_fdiv", 1, "1");
	if (riscv_flags & RISCV_FDIV)
		predefine("__riscv_fsqrt", 1, "1");
	if (riscv_flags & RISCV_MUL)
		predefine("__riscv_mul", 1, "1");
	if ((riscv_flags & RISCV_MUL) && (riscv_flags & RISCV_DIV))
		predefine("__riscv_muldiv", 1, "1");
	if (riscv_flags & RISCV_ZICSR)
		predefine("__riscv_zicsr", 1, "1");
	if (riscv_flags & RISCV_ZIFENCEI)
		predefine("__riscv_zifencei", 1, "1");
	if (riscv_flags & RISCV_ZICBOM)
		predefine("__riscv_zicbom", 1, "1");
	if (riscv_flags & RISCV_ZIHINTPAUSE)
		predefine("__riscv_zihintpause", 1, "1");

	if (cmodel)
		predefine_strong("__riscv_cmodel_%s", cmodel);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
leaq 0x3a437(%rip), %rax     # 0x67d9c
movslq (%rax), %r14
leaq 0x2ec41(%rip), %rax     # 0x5c5b0
movq (%rax,%r14,8), %rbx
leaq 0x1b58a(%rip), %rdi     # 0x48f04
leaq 0x1e932(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
leaq 0x3fba4(%rip), %rax     # 0x6d538
movl 0x50(%rax), %ecx
leaq 0x1b56e(%rip), %rdi     # 0x48f0c
leaq 0x14d7c(%rip), %rdx     # 0x42721
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
testb $0x10, 0x415e0(%rip)    # 0x6ef98
je 0x2d9d4
leaq 0x1b558(%rip), %rdi     # 0x48f19
leaq 0x1e8eb(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
testb $0x1, 0x415be(%rip)     # 0x6ef99
je 0x2d9f7
leaq 0x1b544(%rip), %rdi     # 0x48f28
leaq 0x1e8c8(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
testb $0x8, 0x4159a(%rip)     # 0x6ef98
je 0x2da1a
leaq 0x1b534(%rip), %rdi     # 0x48f3b
leaq 0x1e8a5(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
testb $0x2, 0x41578(%rip)     # 0x6ef99
je 0x2da3d
leaq 0x1b51d(%rip), %rdi     # 0x48f47
leaq 0x1e882(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
movl 0x41555(%rip), %ecx     # 0x6ef98
testb $-0x20, %cl
je 0x2da6a
andl $0x40, %ecx
shrl %ecx
addl $0x20, %ecx
leaq 0x1b4fc(%rip), %rdi     # 0x48f53
leaq 0x14cc3(%rip), %rdx     # 0x42721
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
testb $-0x80, 0x41527(%rip)   # 0x6ef98
je 0x2da8d
leaq 0x1b4e6(%rip), %rdi     # 0x48f60
leaq 0x1e832(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
testb $-0x80, 0x41504(%rip)   # 0x6ef98
je 0x2dab0
leaq 0x1b4d0(%rip), %rdi     # 0x48f6d
leaq 0x1e80f(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
testb $0x4, 0x414e1(%rip)     # 0x6ef98
je 0x2dad3
leaq 0x1b4bb(%rip), %rdi     # 0x48f7b
leaq 0x1e7ec(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
movl 0x414bf(%rip), %eax     # 0x6ef98
notl %eax
testb $0xc, %al
jne 0x2daf9
leaq 0x1b4a1(%rip), %rdi     # 0x48f87
leaq 0x1e7c6(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
testb $0x4, 0x41499(%rip)     # 0x6ef99
je 0x2db1c
leaq 0x1b48d(%rip), %rdi     # 0x48f96
leaq 0x1e7a3(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
testb $0x8, 0x41476(%rip)     # 0x6ef99
je 0x2db3f
leaq 0x1b478(%rip), %rdi     # 0x48fa4
leaq 0x1e780(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
testb $0x10, 0x41453(%rip)    # 0x6ef99
je 0x2db62
leaq 0x1b466(%rip), %rdi     # 0x48fb5
leaq 0x1e75d(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
testb $0x20, 0x41430(%rip)    # 0x6ef99
je 0x2db85
leaq 0x1b452(%rip), %rdi     # 0x48fc4
leaq 0x1e73a(%rip), %rdx     # 0x4c2b3
movl $0x1, %esi
xorl %eax, %eax
callq 0x1edb4
movl $0x197, %eax            # imm = 0x197
btq %r14, %rax
jb 0x2dba8
leaq 0x1b441(%rip), %rdi     # 0x48fd8
movq %rbx, %rsi
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x1f363
addq $0x8, %rsp
popq %rbx
popq %r14
retq