// File: /workspace/github_c_makefile_star2_O0/mmcco[P]sljit/test_src/sljitTest.c
// Function: test28
static void test28(void)
{
	/* Test mov. */
	executable_code code;
	struct sljit_compiler* compiler = sljit_create_compiler();
	struct sljit_const* const1;
	struct sljit_label* label;
	unsigned long label_addr;
	long buf[5];

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

	FAILED(!compiler, "cannot create compiler\n");

	buf[0] = -36;
	buf[1] = 8;
	buf[2] = 0;
	buf[3] = 10;
	buf[4] = 0;

	FAILED(!compiler, "cannot create compiler\n");
	sljit_emit_enter(compiler, 0, 1, 5, 5, 0, 0, 0);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R3, 0, SLJIT_IMM, -234);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R4, 0, SLJIT_MEM1(SLJIT_S0), sizeof(long));
	sljit_emit_op2(compiler, SLJIT_MUL, SLJIT_S3, 0, SLJIT_R3, 0, SLJIT_R4, 0);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), sizeof(long), SLJIT_S3, 0);
	sljit_emit_op2(compiler, SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, SLJIT_S3, 0, SLJIT_IMM, 0);
	sljit_emit_op_flags(compiler, SLJIT_MOV, SLJIT_S3, 0, SLJIT_UNUSED, 0, SLJIT_NOT_ZERO);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), 2 * sizeof(long), SLJIT_S3, 0);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_S4, 0, SLJIT_MEM1(SLJIT_S0), 3 * sizeof(long));
	sljit_emit_op2(compiler, SLJIT_SUB, SLJIT_S4, 0, SLJIT_S4, 0, SLJIT_R4, 0);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), 3 * sizeof(long), SLJIT_S4, 0);
	const1 = sljit_emit_const(compiler, SLJIT_S3, 0, 0);
	sljit_emit_ijump(compiler, SLJIT_JUMP, SLJIT_S3, 0);
	sljit_emit_op2(compiler, SLJIT_SUB, SLJIT_S3, 0, SLJIT_S3, 0, SLJIT_IMM, 100);
	label = sljit_emit_label(compiler);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), 4 * sizeof(long), SLJIT_S3, 0);
	sljit_emit_return(compiler, SLJIT_MOV, SLJIT_R4, 0);

	code.code = sljit_generate_code(compiler);
	CHECK(compiler);
	label_addr = sljit_get_label_addr(label);
	sljit_set_const(sljit_get_const_addr(const1), label_addr);
	sljit_free_compiler(compiler);

	FAILED(code.func1((long)&buf) != 8, "test28 case 1 failed\n");
	FAILED(buf[1] != -1872, "test28 case 2 failed\n");
	FAILED(buf[2] != 1, "test28 case 3 failed\n");
	FAILED(buf[3] != 2, "test28 case 4 failed\n");
	FAILED(buf[4] != label_addr, "test28 case 5 failed\n");

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
callq 0x18ba0
movq %rax, -0x10(%rbp)
cmpl $0x0, 0x26fac(%rip)     # 0x34354
je 0xd3b8
leaq 0x21848(%rip), %rdi     # 0x2ebf9
movb $0x0, %al
callq 0x2070
cmpq $0x0, -0x10(%rbp)
jne 0xd3d2
leaq 0x2000d(%rip), %rdi     # 0x2d3d3
movb $0x0, %al
callq 0x2070
jmp 0xd773
movq $-0x24, -0x50(%rbp)
movq $0x8, -0x48(%rbp)
movq $0x0, -0x40(%rbp)
movq $0xa, -0x38(%rbp)
movq $0x0, -0x30(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0xd414
leaq 0x1ffcb(%rip), %rdi     # 0x2d3d3
movb $0x0, %al
callq 0x2070
jmp 0xd773
movq -0x10(%rbp), %rdi
xorl %r9d, %r9d
movl $0x1, %edx
movl $0x5, %r8d
movl %r9d, %esi
movl %r8d, %ecx
movl $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
callq 0x19b20
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x4, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movq $-0xea, %r9
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x5, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x8c, %r8d
movl $0x8, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x64, %esi
movl $0x9, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x4, %r8d
movq %r9, %rcx
movl $0x5, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x8, %ecx
movl $0x9, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x262, %esi            # imm = 0x262
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x9, %r8d
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x9, %edx
xorl %eax, %eax
movl %eax, %r9d
xorl %r8d, %r8d
movq %r9, %rcx
movl $0x1, (%rsp)
callq 0x29010
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x10, %ecx
movl $0x9, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x8c, %r8d
movl $0x18, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x62, %esi
movl $0x8, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x5, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x18, %ecx
movl $0x8, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x9, %esi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x2a580
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movl $0x16, %esi
movl $0x9, %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x288b0
movq -0x10(%rbp), %rdi
movl $0x62, %esi
movl $0x9, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0x64, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
callq 0x28220
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x20, %ecx
movl $0x9, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x5, %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 0xd6ae
movq -0x10(%rbp), %rdi
callq 0x18030
movl %eax, %esi
leaq 0x1fd7f(%rip), %rdi     # 0x2d418
movb $0x0, %al
callq 0x2070
movq -0x10(%rbp), %rdi
callq 0x18d90
jmp 0xd773
movq -0x20(%rbp), %rdi
callq 0x18080
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x18040
movq %rax, %rdi
movq -0x28(%rbp), %rsi
callq 0x2ac60
movq -0x10(%rbp), %rdi
callq 0x18d90
movq -0x8(%rbp), %rax
leaq -0x50(%rbp), %rdi
callq *%rax
cmpq $0x8, %rax
je 0xd6f9
leaq 0x21515(%rip), %rdi     # 0x2ec05
movb $0x0, %al
callq 0x2070
jmp 0xd773
cmpq $-0x750, -0x48(%rbp)    # imm = 0xF8B0
je 0xd713
leaq 0x21511(%rip), %rdi     # 0x2ec1b
movb $0x0, %al
callq 0x2070
jmp 0xd773
cmpq $0x1, -0x40(%rbp)
je 0xd72a
leaq 0x21510(%rip), %rdi     # 0x2ec31
movb $0x0, %al
callq 0x2070
jmp 0xd773
cmpq $0x2, -0x38(%rbp)
je 0xd741
leaq 0x2150f(%rip), %rdi     # 0x2ec47
movb $0x0, %al
callq 0x2070
jmp 0xd773
movq -0x30(%rbp), %rax
cmpq -0x28(%rbp), %rax
je 0xd75b
leaq 0x2150b(%rip), %rdi     # 0x2ec5d
movb $0x0, %al
callq 0x2070
jmp 0xd773
movq -0x8(%rbp), %rdi
callq 0x18e10
movl 0x26bf2(%rip), %eax     # 0x3435c
addl $0x1, %eax
movl %eax, 0x26be9(%rip)     # 0x3435c
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)