// File: /workspace/github_c_makefile_star2_O2/mmcco[P]sljit/sljit_src/sljitNativeX86_common.c
// Function: sljit_emit_jump
struct sljit_jump* sljit_emit_jump(struct sljit_compiler *compiler, int type)
{
	u_char *inst;
	struct sljit_jump *jump;

	CHECK_ERROR_PTR();
	CHECK_PTR(check_sljit_emit_jump(compiler, type));

	if (compiler->flags_saved) {
		if ((type & 0xff) <= SLJIT_JUMP) {
			if (emit_restore_flags(compiler, 0))
				return NULL;
		}
		compiler->flags_saved = 0;
	}

	jump = ensure_abuf(compiler, sizeof(struct sljit_jump));
	PTR_FAIL_IF_NULL(jump);
	set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP);
	type &= 0xff;

	if (type >= SLJIT_CALL1) {
		if (call_with_args(compiler, type))
			return NULL;
	}

	/* Worst case size. */
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
	compiler->size += (type >= SLJIT_JUMP) ? 5 : 6;
#else
	compiler->size += (type >= SLJIT_JUMP) ? (10 + 3) : (2 + 10 + 3);
#endif

	inst = ensure_buf(compiler, 2);
	PTR_FAIL_IF_NULL(inst);

	*inst++ = 0;
	*inst++ = type + 4;
	return jump;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
cmpl $0x0, (%rdi)
jne 0x1ac95
movl %esi, %ebx
movq %rdi, %r14
cmpl $0x0, 0x84(%rdi)
je 0x1ab4f
andl $0x0, 0x84(%r14)
jmp 0x1abe7
testl $0xffffee00, %ebx       # imm = 0xFFFFEE00
jne 0x1aca6
movzbl %bl, %eax
cmpl $0x1c, %eax
jae 0x1acb4
cmpl $0x16, %eax
setb %cl
btl $0x8, %ebx
setae %dl
orb %cl, %dl
je 0x1acc2
movq 0x78(%r14), %rdi
testq %rdi, %rdi
je 0x1abe7
cmpl $0x1000, %ebx           # imm = 0x1000
leaq 0x3866(%rip), %rsi      # 0x1e3f8
leaq 0x6a18(%rip), %rdx      # 0x215b1
cmovbq %rsi, %rdx
btl $0x8, %ebx
leaq 0x6a0c(%rip), %r8       # 0x215b4
cmovaeq %rsi, %r8
leaq 0x6a07(%rip), %r9       # 0x215ba
leaq 0x69fd(%rip), %rcx      # 0x215b7
cmovaeq %r9, %rcx
cmpl $0x16, %eax
cmovaeq %rsi, %rcx
cmpl $0xe, %eax
cmovbq %r8, %rcx
movl %eax, %eax
leaq 0xf12b(%rip), %rsi      # 0x29d00
movq (%rsi,%rax,8), %r8
leaq 0x69c2(%rip), %rsi      # 0x215a2
xorl %eax, %eax
callq 0x20c0
cmpl $0x0, 0x74(%r14)
je 0x1ac10
movzbl %bl, %eax
cmpl $0x16, %eax
ja 0x1ac0b
xorl %r15d, %r15d
movq %r14, %rdi
xorl %esi, %esi
callq 0x17b48
testl %eax, %eax
jne 0x1ac98
andl $0x0, 0x74(%r14)
pushq $0x20
popq %rsi
movq %r14, %rdi
callq 0x12cc6
testq %rax, %rax
je 0x1ac8e
movq %rax, %r15
andq $0x0, (%rax)
movl %ebx, %eax
andl $0x1000, %eax           # imm = 0x1000
movq %rax, 0x10(%r15)
movq 0x28(%r14), %rax
leaq 0x10(%r14), %rcx
testq %rax, %rax
cmovneq %rax, %rcx
movq %r15, (%rcx)
movq %r15, 0x28(%r14)
movzbl %bl, %ebp
cmpl $0x19, %ebp
jb 0x1ac5e
movq %r14, %rdi
movl %ebp, %esi
callq 0x1acda
testl %eax, %eax
jne 0x1ac95
xorl %eax, %eax
cmpl $0x16, %ebp
setb %al
movq 0x60(%r14), %rcx
leaq 0xd(%rcx,%rax,2), %rax
movq %rax, 0x60(%r14)
pushq $0x2
popq %rsi
movq %r14, %rdi
callq 0x1354f
testq %rax, %rax
je 0x1ac8e
movb $0x0, (%rax)
addb $0x4, %bl
movb %bl, 0x1(%rax)
jmp 0x1ac98
movl $0x2, (%r14)
xorl %r15d, %r15d
movq %r15, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x6652(%rip), %rdi      # 0x212ff
movl $0x51d, %esi            # imm = 0x51D
jmp 0x1acce
leaq 0x6644(%rip), %rdi      # 0x212ff
movl $0x51e, %esi            # imm = 0x51E
jmp 0x1acce
leaq 0x6636(%rip), %rdi      # 0x212ff
movl $0x51f, %esi            # imm = 0x51F
xorl %eax, %eax
callq 0x2080
callq 0x2040