// File: /workspace/github_c_makefile_star2_O0/mmcco[P]sljit/test_src/sljitTest.c
// Function: test17
static void test17(void)
{
	/* Test arm constant pool. */
	executable_code code;
	struct sljit_compiler* compiler = sljit_create_compiler();
	int i;
	long buf[5];

	if (verbose)
		printf("Run test17\n");

	FAILED(!compiler, "cannot create compiler\n");
	buf[0] = 0;
	buf[1] = 0;
	buf[2] = 0;
	buf[3] = 0;
	buf[4] = 0;

	sljit_emit_enter(compiler, 0, 1, 3, 1, 0, 0, 0);
	for (i = 0; i <= 0xfff; i++) {
		sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, 0x81818000 | i);
		sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, 0x81818000 | i);
		if ((i & 0x3ff) == 0)
			sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), (i >> 10) * sizeof(long), SLJIT_R0, 0);
	}
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), 4 * sizeof(long), SLJIT_R0, 0);
	sljit_emit_return(compiler, SLJIT_UNUSED, 0, 0);

	code.code = sljit_generate_code(compiler);
	CHECK(compiler);
	sljit_free_compiler(compiler);

	code.func1((long)&buf);
	FAILED((unsigned long)buf[0] != 0x81818000, "test17 case 1 failed\n");
	FAILED((unsigned long)buf[1] != 0x81818400, "test17 case 2 failed\n");
	FAILED((unsigned long)buf[2] != 0x81818800, "test17 case 3 failed\n");
	FAILED((unsigned long)buf[3] != 0x81818c00, "test17 case 4 failed\n");
	FAILED((unsigned long)buf[4] != 0x81818fff, "test17 case 5 failed\n");

	sljit_free_code(code.code);
	successful_tests++;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
callq 0x18ba0
movq %rax, -0x10(%rbp)
cmpl $0x0, 0x2c00c(%rip)     # 0x34354
je 0x8358
leaq 0x25c0f(%rip), %rdi     # 0x2df60
movb $0x0, %al
callq 0x2070
cmpq $0x0, -0x10(%rbp)
jne 0x8372
leaq 0x2506d(%rip), %rdi     # 0x2d3d3
movb $0x0, %al
callq 0x2070
jmp 0x85a1
movq $0x0, -0x40(%rbp)
movq $0x0, -0x38(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rdi
xorl %r9d, %r9d
movl $0x1, %r8d
movl $0x3, %ecx
movl %r9d, %esi
movl %r8d, %edx
movl $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
callq 0x19b20
movl $0x0, -0x14(%rbp)
cmpl $0xfff, -0x14(%rbp)     # imm = 0xFFF
jg 0x8476
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %eax
orl $0x81818000, %eax       # imm = 0x81818000
movl %eax, %eax
movl %eax, %r9d
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %eax
orl $0x81818000, %eax       # imm = 0x81818000
movl %eax, %eax
movl %eax, %r9d
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
callq 0x1d3d0
movl -0x14(%rbp), %eax
andl $0x3ff, %eax            # imm = 0x3FF
cmpl $0x0, %eax
jne 0x8466
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %eax
sarl $0xa, %eax
movslq %eax, %rcx
shlq $0x3, %rcx
movl $0x20, %esi
movl $0x8c, %edx
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x1d3d0
jmp 0x8468
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x83cd
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x20, %ecx
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
movl %edx, %esi
callq 0x1a7c0
movq -0x10(%rbp), %rdi
callq 0x19070
movq %rax, -0x8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x18030
cmpl $0x1, %eax
je 0x84ec
movq -0x10(%rbp), %rdi
callq 0x18030
movl %eax, %esi
leaq 0x24f41(%rip), %rdi     # 0x2d418
movb $0x0, %al
callq 0x2070
movq -0x10(%rbp), %rdi
callq 0x18d90
jmp 0x85a1
movq -0x10(%rbp), %rdi
callq 0x18d90
movq -0x8(%rbp), %rax
leaq -0x40(%rbp), %rdi
callq *%rax
movl $0x81818000, %eax       # imm = 0x81818000
cmpq %rax, -0x40(%rbp)
je 0x851d
leaq 0x25a5b(%rip), %rdi     # 0x2df6c
movb $0x0, %al
callq 0x2070
jmp 0x85a1
movl $0x81818400, %eax       # imm = 0x81818400
cmpq %rax, -0x38(%rbp)
je 0x8538
leaq 0x25a53(%rip), %rdi     # 0x2df82
movb $0x0, %al
callq 0x2070
jmp 0x85a1
movl $0x81818800, %eax       # imm = 0x81818800
cmpq %rax, -0x30(%rbp)
je 0x8553
leaq 0x25a4e(%rip), %rdi     # 0x2df98
movb $0x0, %al
callq 0x2070
jmp 0x85a1
movl $0x81818c00, %eax       # imm = 0x81818C00
cmpq %rax, -0x28(%rbp)
je 0x856e
leaq 0x25a49(%rip), %rdi     # 0x2dfae
movb $0x0, %al
callq 0x2070
jmp 0x85a1
movl $0x81818fff, %eax       # imm = 0x81818FFF
cmpq %rax, -0x20(%rbp)
je 0x8589
leaq 0x25a44(%rip), %rdi     # 0x2dfc4
movb $0x0, %al
callq 0x2070
jmp 0x85a1
movq -0x8(%rbp), %rdi
callq 0x18e10
movl 0x2bdc4(%rip), %eax     # 0x3435c
addl $0x1, %eax
movl %eax, 0x2bdbb(%rip)     # 0x3435c
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)