// File: /workspace/github_c_makefile_star2_O0/mmcco[P]sljit/test_src/sljitTest.c
// Function: test11
static void test11(void)
{
	/* Test rewritable constants. */
	executable_code code;
	struct sljit_compiler* compiler = sljit_create_compiler();
	struct sljit_const* const1;
	struct sljit_const* const2;
	struct sljit_const* const3;
	struct sljit_const* const4;
	void* value;
	unsigned long const1_addr;
	unsigned long const2_addr;
	unsigned long const3_addr;
	unsigned long const4_addr;
#if (defined SLJIT_64BIT_ARCHITECTURE && SLJIT_64BIT_ARCHITECTURE)
	long word_value1 = SLJIT_W(0xaaaaaaaaaaaaaaaa);
	long word_value2 = SLJIT_W(0xfee1deadfbadf00d);
#else
	long word_value1 = 0xaaaaaaaal;
	long word_value2 = 0xfbadf00dl;
#endif
	long buf[3];

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

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

	sljit_emit_enter(compiler, 0, 1, 3, 1, 0, 0, 0);

	const1 = sljit_emit_const(compiler, SLJIT_MEM0(), (long)&buf[0], -0x81b9);
	SLJIT_ASSERT(!sljit_alloc_memory(compiler, 0));
	SLJIT_ASSERT(!sljit_alloc_memory(compiler, 16 * sizeof(long) + 1));
	value = sljit_alloc_memory(compiler, 16 * sizeof(long));
	SLJIT_ASSERT(!((long)value & (sizeof(long) - 1)));
	memset(value, 255, 16 * sizeof(long));
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, 2);
	const2 = sljit_emit_const(compiler, SLJIT_MEM2(SLJIT_S0, SLJIT_R0), SLJIT_WORD_SHIFT - 1, -65535);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R0, 0, SLJIT_R0, 0, SLJIT_IMM, (long)&buf[0] + 2 * sizeof(long) - 2);
	const3 = sljit_emit_const(compiler, SLJIT_MEM1(SLJIT_R0), 0, word_value1);
	value = sljit_alloc_memory(compiler, 17);
	SLJIT_ASSERT(!((long)value & (sizeof(long) - 1)));
	memset(value, 255, 16);
	const4 = sljit_emit_const(compiler, SLJIT_RETURN_REG, 0, 0xf7afcdb7);

	sljit_emit_return(compiler, SLJIT_MOV, SLJIT_RETURN_REG, 0);

	code.code = sljit_generate_code(compiler);
	CHECK(compiler);
	const1_addr = sljit_get_const_addr(const1);
	const2_addr = sljit_get_const_addr(const2);
	const3_addr = sljit_get_const_addr(const3);
	const4_addr = sljit_get_const_addr(const4);
	sljit_free_compiler(compiler);

	FAILED(code.func1((long)&buf) != 0xf7afcdb7, "test11 case 1 failed\n");
	FAILED(buf[0] != -0x81b9, "test11 case 2 failed\n");
	FAILED(buf[1] != -65535, "test11 case 3 failed\n");
	FAILED(buf[2] != word_value1, "test11 case 4 failed\n");

	sljit_set_const(const1_addr, -1);
	sljit_set_const(const2_addr, word_value2);
	sljit_set_const(const3_addr, 0xbab0fea1);
	sljit_set_const(const4_addr, -60089);

	FAILED(code.func1((long)&buf) != -60089, "test11 case 5 failed\n");
	FAILED(buf[0] != -1, "test11 case 6 failed\n");
	FAILED(buf[1] != word_value2, "test11 case 7 failed\n");
	FAILED(buf[2] != 0xbab0fea1, "test11 case 8 failed\n");

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
callq 0x18ba0
movq %rax, -0x10(%rbp)
movabsq $-0x5555555555555556, %rax # imm = 0xAAAAAAAAAAAAAAAA
movq %rax, -0x60(%rbp)
movabsq $-0x11e215204520ff3, %rax # imm = 0xFEE1DEADFBADF00D
movq %rax, -0x68(%rbp)
cmpl $0x0, 0x2e0fd(%rip)     # 0x34354
je 0x6267
leaq 0x278a7(%rip), %rdi     # 0x2db07
movb $0x0, %al
callq 0x2070
cmpq $0x0, -0x10(%rbp)
jne 0x6281
leaq 0x2715e(%rip), %rdi     # 0x2d3d3
movb $0x0, %al
callq 0x2070
jmp 0x6659
movq $0x0, -0x80(%rbp)
movq $0x0, -0x78(%rbp)
movq $0x0, -0x70(%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
movq -0x10(%rbp), %rdi
leaq -0x80(%rbp), %rdx
movl $0x80, %esi
movq $-0x81b9, %rcx          # imm = 0xFFFF7E47
callq 0x2a580
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x18ed0
cmpq $0x0, %rax
je 0x630b
leaq 0x270f1(%rip), %rdi     # 0x2d3eb
movl $0x33b, %esi            # imm = 0x33B
movb $0x0, %al
callq 0x2070
callq 0x2040
jmp 0x630d
jmp 0x630f
movq -0x10(%rbp), %rdi
movl $0x81, %esi
callq 0x18ed0
cmpq $0x0, %rax
je 0x633b
leaq 0x270c1(%rip), %rdi     # 0x2d3eb
movl $0x33c, %esi            # imm = 0x33C
movb $0x0, %al
callq 0x2070
callq 0x2040
jmp 0x633d
movq -0x10(%rbp), %rdi
movl $0x80, %esi
callq 0x18ed0
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
andq $0x7, %rax
cmpq $0x0, %rax
je 0x6375
leaq 0x27087(%rip), %rdi     # 0x2d3eb
movl $0x33e, %esi            # imm = 0x33E
movb $0x0, %al
callq 0x2070
callq 0x2040
jmp 0x6377
movq -0x38(%rbp), %rdi
movl $0xff, %esi
movl $0x80, %edx
callq 0x2080
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x2, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x18c, %esi            # imm = 0x18C
movl $0x2, %edx
movq $-0xffff, %rcx          # imm = 0xFFFF0001
callq 0x2a580
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x80(%rbp), %rax
addq $0x10, %rax
subq $0x2, %rax
movl $0x60, %esi
movl $0x1, %r8d
xorl %ecx, %ecx
movl %ecx, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x40, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movq -0x60(%rbp), %rcx
movl $0x81, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x2a580
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movl $0x11, %esi
callq 0x18ed0
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
andq $0x7, %rax
cmpq $0x0, %rax
je 0x6454
leaq 0x26fa8(%rip), %rdi     # 0x2d3eb
movl $0x345, %esi            # imm = 0x345
movb $0x0, %al
callq 0x2070
callq 0x2040
jmp 0x6456
movq -0x38(%rbp), %rdi
movl $0xff, %esi
movl $0x10, %edx
callq 0x2080
movq -0x10(%rbp), %rdi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %edx
movl $0xf7afcdb7, %ecx       # imm = 0xF7AFCDB7
callq 0x2a580
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x1a7c0
movq -0x10(%rbp), %rdi
callq 0x19070
movq %rax, -0x8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x18030
cmpl $0x1, %eax
je 0x64dd
movq -0x10(%rbp), %rdi
callq 0x18030
movl %eax, %esi
leaq 0x26f50(%rip), %rdi     # 0x2d418
movb $0x0, %al
callq 0x2070
movq -0x10(%rbp), %rdi
callq 0x18d90
jmp 0x6659
movq -0x18(%rbp), %rdi
callq 0x18040
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rdi
callq 0x18040
movq %rax, -0x48(%rbp)
movq -0x28(%rbp), %rdi
callq 0x18040
movq %rax, -0x50(%rbp)
movq -0x30(%rbp), %rdi
callq 0x18040
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rdi
callq 0x18d90
movq -0x8(%rbp), %rax
leaq -0x80(%rbp), %rdi
callq *%rax
movl $0xf7afcdb7, %ecx       # imm = 0xF7AFCDB7
cmpq %rcx, %rax
je 0x6541
leaq 0x275de(%rip), %rdi     # 0x2db13
movb $0x0, %al
callq 0x2070
jmp 0x6659
cmpq $-0x81b9, -0x80(%rbp)   # imm = 0xFFFF7E47
je 0x655e
leaq 0x275d7(%rip), %rdi     # 0x2db29
movb $0x0, %al
callq 0x2070
jmp 0x6659
cmpq $-0xffff, -0x78(%rbp)   # imm = 0xFFFF0001
je 0x657b
leaq 0x275d0(%rip), %rdi     # 0x2db3f
movb $0x0, %al
callq 0x2070
jmp 0x6659
movq -0x70(%rbp), %rax
cmpq -0x60(%rbp), %rax
je 0x6598
leaq 0x275c9(%rip), %rdi     # 0x2db55
movb $0x0, %al
callq 0x2070
jmp 0x6659
movq -0x40(%rbp), %rdi
movq $-0x1, %rsi
callq 0x2ac60
movq -0x48(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x2ac60
movq -0x50(%rbp), %rdi
movl $0xbab0fea1, %esi       # imm = 0xBAB0FEA1
callq 0x2ac60
movq -0x58(%rbp), %rdi
movq $-0xeab9, %rsi          # imm = 0xFFFF1547
callq 0x2ac60
movq -0x8(%rbp), %rax
leaq -0x80(%rbp), %rdi
callq *%rax
cmpq $-0xeab9, %rax          # imm = 0xFFFF1547
je 0x65f5
leaq 0x2757f(%rip), %rdi     # 0x2db6b
movb $0x0, %al
callq 0x2070
jmp 0x6659
cmpq $-0x1, -0x80(%rbp)
je 0x660c
leaq 0x2757e(%rip), %rdi     # 0x2db81
movb $0x0, %al
callq 0x2070
jmp 0x6659
movq -0x78(%rbp), %rax
cmpq -0x68(%rbp), %rax
je 0x6626
leaq 0x2757a(%rip), %rdi     # 0x2db97
movb $0x0, %al
callq 0x2070
jmp 0x6659
movl $0xbab0fea1, %eax       # imm = 0xBAB0FEA1
cmpq %rax, -0x70(%rbp)
je 0x6641
leaq 0x27575(%rip), %rdi     # 0x2dbad
movb $0x0, %al
callq 0x2070
jmp 0x6659
movq -0x8(%rbp), %rdi
callq 0x18e10
movl 0x2dd0c(%rip), %eax     # 0x3435c
addl $0x1, %eax
movl %eax, 0x2dd03(%rip)     # 0x3435c
addq $0x90, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)