// File: /workspace/github_c_makefile_star2_O0/mmcco[P]sljit/test_src/sljitTest.c
// Function: test5
static void test5(void)
{
	/* Test add. */
	executable_code code;
	struct sljit_compiler* compiler = sljit_create_compiler();
	long buf[9];

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

	FAILED(!compiler, "cannot create compiler\n");
	buf[0] = 100;
	buf[1] = 200;
	buf[2] = 300;
	buf[3] = 0;
	buf[4] = 0;
	buf[5] = 0;
	buf[6] = 0;
	buf[7] = 0;
	buf[8] = 313;

	sljit_emit_enter(compiler, 0, 1, 3, 2, 0, 0, 0);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_UNUSED, 0, SLJIT_IMM, 16, SLJIT_IMM, 16);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_UNUSED, 0, SLJIT_IMM, 255, SLJIT_IMM, 255);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_UNUSED, 0, SLJIT_S0, 0, SLJIT_S0, 0);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, sizeof(long));
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R1, 0, SLJIT_IMM, 50);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_MEM2(SLJIT_S0, SLJIT_R0), 1, SLJIT_MEM2(SLJIT_S0, SLJIT_R0), 1, SLJIT_MEM2(SLJIT_S0, SLJIT_R0), 0);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R0, 0, SLJIT_R0, 0, SLJIT_IMM, sizeof(long) + 2);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, 50);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R0, 0, SLJIT_R0, 0, SLJIT_MEM1(SLJIT_S0), 0);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_MEM1(SLJIT_S0), 0, SLJIT_MEM1(SLJIT_S0), 0, SLJIT_R0, 0);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R0, 0, SLJIT_IMM, 4, SLJIT_R0, 0);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R1, 0, SLJIT_IMM, 50, SLJIT_R1, 0);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_MEM1(SLJIT_S0), 5 * sizeof(long), SLJIT_IMM, 50, SLJIT_MEM1(SLJIT_S0), 5 * sizeof(long));
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R1, 0, SLJIT_MEM1(SLJIT_S0), 5 * sizeof(long), SLJIT_R1, 0);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_MEM1(SLJIT_S0), 4 * sizeof(long), SLJIT_R1, 0, SLJIT_MEM1(SLJIT_S0), 4 * sizeof(long));
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_MEM1(SLJIT_S0), 5 * sizeof(long), SLJIT_MEM1(SLJIT_S0), 4 * sizeof(long), SLJIT_MEM1(SLJIT_S0), 5 * sizeof(long));
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_MEM1(SLJIT_S0), 3 * sizeof(long), SLJIT_MEM1(SLJIT_S0), 4 * sizeof(long), SLJIT_R1, 0);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R1, 0, SLJIT_IMM, 0x1e7d39f2);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_MEM1(SLJIT_S0), 6 * sizeof(long), SLJIT_R1, 0, SLJIT_IMM, 0x23de7c06);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_MEM1(SLJIT_S0), 7 * sizeof(long), SLJIT_IMM, 0x3d72e452, SLJIT_R1, 0);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_MEM1(SLJIT_S0), 8 * sizeof(long), SLJIT_IMM, -43, SLJIT_MEM1(SLJIT_S0), 8 * sizeof(long));
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R0, 0, SLJIT_IMM, 1000, SLJIT_R0, 0);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R0, 0, SLJIT_R0, 0, SLJIT_IMM, 1430);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R0, 0, SLJIT_IMM, -99, SLJIT_R0, 0);

	sljit_emit_return(compiler, SLJIT_MOV, SLJIT_R0, 0);

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

	FAILED(code.func1((long)&buf) != 2437 + 2 * sizeof(long), "test5 case 1 failed\n");
	FAILED(buf[0] != 202 + 2 * sizeof(long), "test5 case 2 failed\n");
	FAILED(buf[2] != 500, "test5 case 3 failed\n");
	FAILED(buf[3] != 400, "test5 case 4 failed\n");
	FAILED(buf[4] != 200, "test5 case 5 failed\n");
	FAILED(buf[5] != 250, "test5 case 6 failed\n");
	FAILED(buf[6] != 0x425bb5f8, "test5 case 7 failed\n");
	FAILED(buf[7] != 0x5bf01e44, "test5 case 8 failed\n");
	FAILED(buf[8] != 270, "test5 case 9 failed\n");

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
callq 0x18ba0
movq %rax, -0x10(%rbp)
cmpl $0x0, 0x30e7c(%rip)     # 0x34354
je 0x34e8
leaq 0x2a0bc(%rip), %rdi     # 0x2d59d
movb $0x0, %al
callq 0x2070
cmpq $0x0, -0x10(%rbp)
jne 0x3502
leaq 0x29edd(%rip), %rdi     # 0x2d3d3
movb $0x0, %al
callq 0x2070
jmp 0x3b72
movq $0x64, -0x60(%rbp)
movq $0xc8, -0x58(%rbp)
movq $0x12c, -0x50(%rbp)     # imm = 0x12C
movq $0x0, -0x48(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x38(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
movq $0x139, -0x20(%rbp)     # imm = 0x139
movq -0x10(%rbp), %rdi
xorl %r9d, %r9d
movl $0x1, %edx
movl $0x3, %ecx
movl $0x2, %r8d
movl %r9d, %esi
movl $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
callq 0x19b20
movq -0x10(%rbp), %rdi
movl $0x60, %esi
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x10, %r9d
movl $0x40, (%rsp)
movq $0x10, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0xff, %r9d
movl $0x40, (%rsp)
movq $0xff, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0xc, %r8d
movq %r9, %rcx
movl $0xc, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x8, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x32, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x18c, %r8d            # imm = 0x18C
movl $0x1, %r9d
xorl %eax, %eax
movl %r8d, %edx
movq %r9, %rcx
movl $0x18c, (%rsp)          # imm = 0x18C
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0xa, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x2, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0x32, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x8c, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x8c, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x1, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x4, %r9d
movl $0x1, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x32, %r9d
movl $0x2, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x8c, %edx
movl $0x28, %ecx
movl $0x40, %r8d
movl $0x32, %r9d
movl $0x8c, (%rsp)
movq $0x28, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x8c, %r8d
movl $0x28, %r9d
movl $0x2, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x8c, %edx
movl $0x20, %ecx
movl $0x2, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl $0x8c, (%rsp)
movq $0x20, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x8c, %r8d
movl $0x28, %ecx
movl $0x20, %r9d
movl %r8d, %edx
movl $0x8c, (%rsp)
movq $0x28, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x8c, %r8d
movl $0x18, %ecx
movl $0x20, %r9d
xorl %eax, %eax
movl %r8d, %edx
movl $0x2, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x1e7d39f2, %r9d       # imm = 0x1E7D39F2
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x8c, %edx
movl $0x30, %ecx
movl $0x2, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl $0x40, (%rsp)
movq $0x23de7c06, 0x8(%rsp)  # imm = 0x23DE7C06
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x8c, %edx
movl $0x38, %ecx
movl $0x40, %r8d
movl $0x3d72e452, %r9d       # imm = 0x3D72E452
xorl %eax, %eax
movl $0x2, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x8c, %edx
movl $0x40, %ecx
movl $0x40, %r8d
movq $-0x2b, %r9
movl $0x8c, (%rsp)
movq $0x40, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x3e8, %r9d            # imm = 0x3E8
movl $0x1, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0x596, 0x8(%rsp)       # imm = 0x596
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movq $-0x63, %r9
movl $0x1, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
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 0x3a50
movq -0x10(%rbp), %rdi
callq 0x18030
movl %eax, %esi
leaq 0x299dd(%rip), %rdi     # 0x2d418
movb $0x0, %al
callq 0x2070
movq -0x10(%rbp), %rdi
callq 0x18d90
jmp 0x3b72
movq -0x10(%rbp), %rdi
callq 0x18d90
movq -0x8(%rbp), %rax
leaq -0x60(%rbp), %rdi
callq *%rax
cmpq $0x995, %rax            # imm = 0x995
je 0x3a7e
leaq 0x29b36(%rip), %rdi     # 0x2d5a8
movb $0x0, %al
callq 0x2070
jmp 0x3b72
cmpq $0xda, -0x60(%rbp)
je 0x3a9b
leaq 0x29b2e(%rip), %rdi     # 0x2d5bd
movb $0x0, %al
callq 0x2070
jmp 0x3b72
cmpq $0x1f4, -0x50(%rbp)     # imm = 0x1F4
je 0x3ab8
leaq 0x29b26(%rip), %rdi     # 0x2d5d2
movb $0x0, %al
callq 0x2070
jmp 0x3b72
cmpq $0x190, -0x48(%rbp)     # imm = 0x190
je 0x3ad5
leaq 0x29b1e(%rip), %rdi     # 0x2d5e7
movb $0x0, %al
callq 0x2070
jmp 0x3b72
cmpq $0xc8, -0x40(%rbp)
je 0x3af2
leaq 0x29b16(%rip), %rdi     # 0x2d5fc
movb $0x0, %al
callq 0x2070
jmp 0x3b72
cmpq $0xfa, -0x38(%rbp)
je 0x3b0c
leaq 0x29b0e(%rip), %rdi     # 0x2d611
movb $0x0, %al
callq 0x2070
jmp 0x3b72
cmpq $0x425bb5f8, -0x30(%rbp) # imm = 0x425BB5F8
je 0x3b26
leaq 0x29b09(%rip), %rdi     # 0x2d626
movb $0x0, %al
callq 0x2070
jmp 0x3b72
cmpq $0x5bf01e44, -0x28(%rbp) # imm = 0x5BF01E44
je 0x3b40
leaq 0x29b04(%rip), %rdi     # 0x2d63b
movb $0x0, %al
callq 0x2070
jmp 0x3b72
cmpq $0x10e, -0x20(%rbp)     # imm = 0x10E
je 0x3b5a
leaq 0x29aff(%rip), %rdi     # 0x2d650
movb $0x0, %al
callq 0x2070
jmp 0x3b72
movq -0x8(%rbp), %rdi
callq 0x18e10
movl 0x307f3(%rip), %eax     # 0x3435c
addl $0x1, %eax
movl %eax, 0x307ea(%rip)     # 0x3435c
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax,%rax)