// File: /workspace/github_c_makefile_star2_O0/zhou-yuxin[P]redis-aof-no-cow/deps/jemalloc/src/huge.c
// Function: je_huge_ralloc_no_move
bool
huge_ralloc_no_move(tsdn_t *tsdn, void *ptr, size_t oldsize, size_t usize_min,
    size_t usize_max, bool zero)
{

	assert(s2u(oldsize) == oldsize);
	/* The following should have been caught by callers. */
	assert(usize_min > 0 && usize_max <= HUGE_MAXCLASS);

	/* Both allocations must be huge to avoid a move. */
	if (oldsize < chunksize || usize_max < chunksize)
		return (true);

	if (CHUNK_CEILING(usize_max) > CHUNK_CEILING(oldsize)) {
		/* Attempt to expand the allocation in-place. */
		if (!huge_ralloc_no_move_expand(tsdn, ptr, oldsize, usize_max,
		    zero)) {
			arena_decay_tick(tsdn, huge_aalloc(ptr));
			return (false);
		}
		/* Try again, this time with usize_min. */
		if (usize_min < usize_max && CHUNK_CEILING(usize_min) >
		    CHUNK_CEILING(oldsize) && huge_ralloc_no_move_expand(tsdn,
		    ptr, oldsize, usize_min, zero)) {
			arena_decay_tick(tsdn, huge_aalloc(ptr));
			return (false);
		}
	}

	/*
	 * Avoid moving the allocation if the existing chunk size accommodates
	 * the new size.
	 */
	if (CHUNK_CEILING(oldsize) >= CHUNK_CEILING(usize_min)
	    && CHUNK_CEILING(oldsize) <= CHUNK_CEILING(usize_max)) {
		huge_ralloc_no_move_similar(tsdn, ptr, oldsize, usize_min,
		    usize_max, zero);
		arena_decay_tick(tsdn, huge_aalloc(ptr));
		return (false);
	}

	/* Attempt to shrink the allocation in-place. */
	if (CHUNK_CEILING(oldsize) > CHUNK_CEILING(usize_max)) {
		if (!huge_ralloc_no_move_shrink(tsdn, ptr, oldsize,
		    usize_max)) {
			arena_decay_tick(tsdn, huge_aalloc(ptr));
			return (false);
		}
	}
	return (true);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movb %r9b, %al
movq %rdi, -0x130(%rbp)
movq %rsi, -0x138(%rbp)
movq %rdx, -0x140(%rbp)
movq %rcx, -0x148(%rbp)
movq %r8, -0x150(%rbp)
andb $0x1, %al
movb %al, -0x151(%rbp)
jmp 0x6366b
jmp 0x6366d
jmp 0x6366f
movq -0x140(%rbp), %rax
leaq 0x40a2b(%rip), %rcx     # 0xa40a8
cmpq (%rcx), %rax
jb 0x63695
movq -0x150(%rbp), %rax
leaq 0x40a18(%rip), %rcx     # 0xa40a8
cmpq (%rcx), %rax
jae 0x636a1
movb $0x1, -0x121(%rbp)
jmp 0x63c76
movq -0x150(%rbp), %rax
leaq 0x40a01(%rip), %rcx     # 0xa40b0
addq (%rcx), %rax
leaq 0x409f7(%rip), %rcx     # 0xa40b0
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq -0x140(%rbp), %rcx
leaq 0x409df(%rip), %rdx     # 0xa40b0
addq (%rdx), %rcx
leaq 0x409d5(%rip), %rdx     # 0xa40b0
movq (%rdx), %rdx
xorq $-0x1, %rdx
andq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x639a4
movq -0x130(%rbp), %rdi
movq -0x138(%rbp), %rsi
movq -0x140(%rbp), %rdx
movq -0x150(%rbp), %rcx
movb -0x151(%rbp), %al
andb $0x1, %al
movzbl %al, %r8d
callq 0x63c90
testb $0x1, %al
jne 0x6381d
movq -0x130(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x138(%rbp), %rdi
callq 0x63ec0
movq -0x160(%rbp), %rcx
movq %rcx, -0xe8(%rbp)
movq %rax, -0xf0(%rbp)
movq -0xe8(%rbp), %rcx
movq -0xf0(%rbp), %rax
movq %rcx, -0xc0(%rbp)
movq %rax, -0xc8(%rbp)
movl $0x1, -0xcc(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xb8(%rbp)
cmpq $0x0, -0xb8(%rbp)
sete %al
testb $0x1, %al
jne 0x63797
jmp 0x63799
jmp 0x63811
movq -0xc0(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0xd8(%rbp), %rdi
movq -0xc8(%rbp), %rax
movl (%rax), %esi
callq 0x66220
movq %rax, -0xe0(%rbp)
cmpq $0x0, -0xe0(%rbp)
sete %al
testb $0x1, %al
jne 0x637e2
jmp 0x637e4
jmp 0x63811
movq -0xe0(%rbp), %rdi
movl -0xcc(%rbp), %esi
callq 0x65fd0
testb $0x1, %al
jne 0x637fc
jmp 0x63811
movq -0xc0(%rbp), %rdi
movq -0xc8(%rbp), %rsi
xorl %edx, %edx
callq 0x3b8a0
movb $0x0, -0x121(%rbp)
jmp 0x63c76
movq -0x148(%rbp), %rax
cmpq -0x150(%rbp), %rax
jae 0x639a2
movq -0x148(%rbp), %rax
leaq 0x40871(%rip), %rcx     # 0xa40b0
addq (%rcx), %rax
leaq 0x40867(%rip), %rcx     # 0xa40b0
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq -0x140(%rbp), %rcx
leaq 0x4084f(%rip), %rdx     # 0xa40b0
addq (%rdx), %rcx
leaq 0x40845(%rip), %rdx     # 0xa40b0
movq (%rdx), %rdx
xorq $-0x1, %rdx
andq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x639a2
movq -0x130(%rbp), %rdi
movq -0x138(%rbp), %rsi
movq -0x140(%rbp), %rdx
movq -0x148(%rbp), %rcx
movb -0x151(%rbp), %al
andb $0x1, %al
movzbl %al, %r8d
callq 0x63c90
testb $0x1, %al
jne 0x638b4
jmp 0x639a2
movq -0x130(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x138(%rbp), %rdi
callq 0x63ec0
movq -0x168(%rbp), %rcx
movq %rcx, -0xf8(%rbp)
movq %rax, -0x100(%rbp)
movq -0xf8(%rbp), %rcx
movq -0x100(%rbp), %rax
movq %rcx, -0x88(%rbp)
movq %rax, -0x90(%rbp)
movl $0x1, -0x94(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x80(%rbp)
cmpq $0x0, -0x80(%rbp)
sete %al
testb $0x1, %al
jne 0x63922
jmp 0x63924
jmp 0x63996
movq -0x88(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rdi
movq -0x90(%rbp), %rax
movl (%rax), %esi
callq 0x66220
movq %rax, -0xa8(%rbp)
cmpq $0x0, -0xa8(%rbp)
sete %al
testb $0x1, %al
jne 0x63967
jmp 0x63969
jmp 0x63996
movq -0xa8(%rbp), %rdi
movl -0x94(%rbp), %esi
callq 0x65fd0
testb $0x1, %al
jne 0x63981
jmp 0x63996
movq -0x88(%rbp), %rdi
movq -0x90(%rbp), %rsi
xorl %edx, %edx
callq 0x3b8a0
movb $0x0, -0x121(%rbp)
jmp 0x63c76
jmp 0x639a4
movq -0x140(%rbp), %rax
leaq 0x406fe(%rip), %rcx     # 0xa40b0
addq (%rcx), %rax
leaq 0x406f4(%rip), %rcx     # 0xa40b0
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq -0x148(%rbp), %rcx
leaq 0x406dc(%rip), %rdx     # 0xa40b0
addq (%rdx), %rcx
leaq 0x406d2(%rip), %rdx     # 0xa40b0
movq (%rdx), %rdx
xorq $-0x1, %rdx
andq %rdx, %rcx
cmpq %rcx, %rax
jb 0x63b36
movq -0x140(%rbp), %rax
leaq 0x406b1(%rip), %rcx     # 0xa40b0
addq (%rcx), %rax
leaq 0x406a7(%rip), %rcx     # 0xa40b0
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq -0x150(%rbp), %rcx
leaq 0x4068f(%rip), %rdx     # 0xa40b0
addq (%rdx), %rcx
leaq 0x40685(%rip), %rdx     # 0xa40b0
movq (%rdx), %rdx
xorq $-0x1, %rdx
andq %rdx, %rcx
cmpq %rcx, %rax
ja 0x63b36
movq -0x130(%rbp), %rdi
movq -0x138(%rbp), %rsi
movq -0x140(%rbp), %rdx
movq -0x148(%rbp), %rcx
movq -0x150(%rbp), %r8
movb -0x151(%rbp), %al
andb $0x1, %al
movzbl %al, %r9d
callq 0x63ef0
movq -0x130(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0x138(%rbp), %rdi
callq 0x63ec0
movq -0x170(%rbp), %rcx
movq %rcx, -0x108(%rbp)
movq %rax, -0x110(%rbp)
movq -0x108(%rbp), %rcx
movq -0x110(%rbp), %rax
movq %rcx, -0x50(%rbp)
movq %rax, -0x58(%rbp)
movl $0x1, -0x5c(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
sete %al
testb $0x1, %al
jne 0x63ad4
jmp 0x63ad6
jmp 0x63b2a
movq -0x50(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rdi
movq -0x58(%rbp), %rax
movl (%rax), %esi
callq 0x66220
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x70(%rbp)
sete %al
testb $0x1, %al
jne 0x63b07
jmp 0x63b09
jmp 0x63b2a
movq -0x70(%rbp), %rdi
movl -0x5c(%rbp), %esi
callq 0x65fd0
testb $0x1, %al
jne 0x63b1b
jmp 0x63b2a
movq -0x50(%rbp), %rdi
movq -0x58(%rbp), %rsi
xorl %edx, %edx
callq 0x3b8a0
movb $0x0, -0x121(%rbp)
jmp 0x63c76
movq -0x140(%rbp), %rax
leaq 0x4056c(%rip), %rcx     # 0xa40b0
addq (%rcx), %rax
leaq 0x40562(%rip), %rcx     # 0xa40b0
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq -0x150(%rbp), %rcx
leaq 0x4054a(%rip), %rdx     # 0xa40b0
addq (%rdx), %rcx
leaq 0x40540(%rip), %rdx     # 0xa40b0
movq (%rdx), %rdx
xorq $-0x1, %rdx
andq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x63c6f
movq -0x130(%rbp), %rdi
movq -0x138(%rbp), %rsi
movq -0x140(%rbp), %rdx
movq -0x150(%rbp), %rcx
callq 0x64340
testb $0x1, %al
jne 0x63c6d
movq -0x130(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x138(%rbp), %rdi
callq 0x63ec0
movq -0x178(%rbp), %rcx
movq %rcx, -0x118(%rbp)
movq %rax, -0x120(%rbp)
movq -0x118(%rbp), %rcx
movq -0x120(%rbp), %rax
movq %rcx, -0x18(%rbp)
movq %rax, -0x20(%rbp)
movl $0x1, -0x24(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
sete %al
testb $0x1, %al
jne 0x63c0e
jmp 0x63c10
jmp 0x63c64
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
movq -0x20(%rbp), %rax
movl (%rax), %esi
callq 0x66220
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
sete %al
testb $0x1, %al
jne 0x63c41
jmp 0x63c43
jmp 0x63c64
movq -0x38(%rbp), %rdi
movl -0x24(%rbp), %esi
callq 0x65fd0
testb $0x1, %al
jne 0x63c55
jmp 0x63c64
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
xorl %edx, %edx
callq 0x3b8a0
movb $0x0, -0x121(%rbp)
jmp 0x63c76
jmp 0x63c6f
movb $0x1, -0x121(%rbp)
movb -0x121(%rbp), %al
andb $0x1, %al
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
nopw (%rax,%rax)