// File: /workspace/github_c_makefile_star2_O0/dalnefre[P]kernel_abe/atom.c
// Function: test_number
void
test_number()
{
	int i;
	int j;
	CONS* p;
	
	DBUG_ENTER("test_number");
	TRACE(printf("--test_number--\n"));

	j = 0;
	p = NUMBER(j);
	DBUG_PRINT("", ("NUMBER(%d)=16#%08lx", j, (ulint)p));
	assert(numberp(p));
	i = MK_INT(p);
	assert(0 == i);
	assert(!nilp(p));
	assert(!consp(p));
	assert(!atomp(p));
#if NUMBER_IS_FUNC
#if TYPETAG_USES_2LSB
	assert(funcp(p));
	assert(!boolp(p));
#endif
#else
	assert(!funcp(p));
#endif

	j = 1;
	p = NUMBER(j);
	DBUG_PRINT("", ("NUMBER(%d)=16#%08lx", j, (ulint)p));
	assert(numberp(p));
	i = MK_INT(p);
	assert(i == j);
	assert(!nilp(p));
	assert(!consp(p));
	assert(!atomp(p));
#if NUMBER_IS_FUNC
	assert(funcp(p));
#else
	assert(!funcp(p));
#endif
	assert(!boolp(p));

	j = -1;
	p = NUMBER(j);
	DBUG_PRINT("", ("NUMBER(%d)=16#%08lx", j, (ulint)p));
	assert(numberp(p));
	i = MK_INT(p);
	assert(i == j);
	assert(!nilp(p));
	assert(!consp(p));
	assert(!atomp(p));
#if NUMBER_IS_FUNC
	assert(funcp(p));
#else
	assert(!funcp(p));
#endif
	assert(!boolp(p));

	j = 0x07FFFFFF;
	p = NUMBER(j);
	DBUG_PRINT("", ("NUMBER(%d)=16#%08lx", j, (ulint)p));
	assert(numberp(p));
	i = MK_INT(p);
	assert(i == j);

	j = -j;
	p = NUMBER(j);
	DBUG_PRINT("", ("NUMBER(%d)=16#%08lx", j, (ulint)p));
	assert(numberp(p));
	i = MK_INT(p);
	assert(i == j);
	
	DBUG_RETURN;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
leaq 0x8d89(%rip), %rax      # 0x2aa18
movq %rax, -0x38(%rbp)
leaq 0xd686(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x30(%rbp)
movl $0xad, -0x2c(%rbp)
leaq 0x76ba(%rip), %rax      # 0x2936f
movq %rax, -0x28(%rbp)
leaq 0xd500(%rip), %rax      # 0x2f1c0
movq %rax, -0x20(%rbp)
leaq 0xd655(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x28490
leaq 0x8d3e(%rip), %rdi      # 0x2aa24
movb $0x0, %al
callq 0x20e0
movl $0x0, -0x8(%rbp)
movslq -0x8(%rbp), %rax
shlq $0x2, %rax
orq $0x3, %rax
movq %rax, -0x10(%rbp)
leaq 0xdc15(%rip), %rax      # 0x2f920
cmpl $0x0, (%rax)
je 0x21d64
leaq 0xd609(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x764a(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0x763f(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x21d64
leaq 0xd5df(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0xb2, 0xc(%rax)
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq 0x8cd8(%rip), %rdi      # 0x2aa35
movb $0x0, %al
callq 0x28540
jmp 0x21d66
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x3, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x21d84
jmp 0x21da3
leaq 0x9758(%rip), %rdi      # 0x2b4e3
leaq 0x8ba1(%rip), %rsi      # 0x2a933
movl $0xb3, %edx
leaq 0x8cab(%rip), %rcx      # 0x2aa49
callq 0x2100
movq -0x10(%rbp), %rax
sarq $0x2, %rax
movl %eax, -0x4(%rbp)
xorl %eax, %eax
cmpl -0x4(%rbp), %eax
jne 0x21db7
jmp 0x21dd6
leaq 0x8c9e(%rip), %rdi      # 0x2aa5c
leaq 0x8b6e(%rip), %rsi      # 0x2a933
movl $0xb5, %edx
leaq 0x8c78(%rip), %rcx      # 0x2aa49
callq 0x2100
leaq 0xd4b3(%rip), %rax      # 0x2f290
cmpq %rax, -0x10(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x21df3
jmp 0x21e12
leaq 0x8142(%rip), %rdi      # 0x29f3c
leaq 0x8b32(%rip), %rsi      # 0x2a933
movl $0xb6, %edx
leaq 0x8c3c(%rip), %rcx      # 0x2aa49
callq 0x2100
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x39(%rbp)
je 0x21e30
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0x39(%rbp)
movb -0x39(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x21e42
jmp 0x21e61
leaq 0x8c1a(%rip), %rdi      # 0x2aa63
leaq 0x8ae3(%rip), %rsi      # 0x2a933
movl $0xb7, %edx
leaq 0x8bed(%rip), %rcx      # 0x2aa49
callq 0x2100
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x2, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x21e7f
jmp 0x21e9e
leaq 0x8be7(%rip), %rdi      # 0x2aa6d
leaq 0x8aa6(%rip), %rsi      # 0x2a933
movl $0xb8, %edx
leaq 0x8bb0(%rip), %rcx      # 0x2aa49
callq 0x2100
xorl %eax, %eax
movl $0x1, %ecx
cmpq %rcx, -0x10(%rbp)
movb %al, -0x3a(%rbp)
je 0x21ec0
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x3, %rax
sete %al
movb %al, -0x3a(%rbp)
movb -0x3a(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x21ed2
jmp 0x21ef1
leaq 0x9600(%rip), %rdi      # 0x2b4d9
leaq 0x8a53(%rip), %rsi      # 0x2a933
movl $0xbb, %edx
leaq 0x8b5d(%rip), %rcx      # 0x2aa49
callq 0x2100
cmpq $0x0, -0x10(%rbp)
je 0x21f05
movl $0x1, %eax
cmpq %rax, -0x10(%rbp)
je 0x21f05
jmp 0x21f24
leaq 0x8b6b(%rip), %rdi      # 0x2aa77
leaq 0x8a20(%rip), %rsi      # 0x2a933
movl $0xbc, %edx
leaq 0x8b2a(%rip), %rcx      # 0x2aa49
callq 0x2100
movl $0x1, -0x8(%rbp)
movslq -0x8(%rbp), %rax
shlq $0x2, %rax
orq $0x3, %rax
movq %rax, -0x10(%rbp)
leaq 0xd9de(%rip), %rax      # 0x2f920
cmpl $0x0, (%rax)
je 0x21f9b
leaq 0xd3d2(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x7413(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0x7408(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x21f9b
leaq 0xd3a8(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0xc4, 0xc(%rax)
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq 0x8aa1(%rip), %rdi      # 0x2aa35
movb $0x0, %al
callq 0x28540
jmp 0x21f9d
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x3, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x21fbb
jmp 0x21fda
leaq 0x9521(%rip), %rdi      # 0x2b4e3
leaq 0x896a(%rip), %rsi      # 0x2a933
movl $0xc5, %edx
leaq 0x8a74(%rip), %rcx      # 0x2aa49
callq 0x2100
movq -0x10(%rbp), %rax
sarq $0x2, %rax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
jne 0x21fef
jmp 0x2200e
leaq 0x8a8b(%rip), %rdi      # 0x2aa81
leaq 0x8936(%rip), %rsi      # 0x2a933
movl $0xc7, %edx
leaq 0x8a40(%rip), %rcx      # 0x2aa49
callq 0x2100
leaq 0xd27b(%rip), %rax      # 0x2f290
cmpq %rax, -0x10(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x2202b
jmp 0x2204a
leaq 0x7f0a(%rip), %rdi      # 0x29f3c
leaq 0x88fa(%rip), %rsi      # 0x2a933
movl $0xc8, %edx
leaq 0x8a04(%rip), %rcx      # 0x2aa49
callq 0x2100
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x3b(%rbp)
je 0x22068
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0x3b(%rbp)
movb -0x3b(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x2207a
jmp 0x22099
leaq 0x89e2(%rip), %rdi      # 0x2aa63
leaq 0x88ab(%rip), %rsi      # 0x2a933
movl $0xc9, %edx
leaq 0x89b5(%rip), %rcx      # 0x2aa49
callq 0x2100
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x2, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x220b7
jmp 0x220d6
leaq 0x89af(%rip), %rdi      # 0x2aa6d
leaq 0x886e(%rip), %rsi      # 0x2a933
movl $0xca, %edx
leaq 0x8978(%rip), %rcx      # 0x2aa49
callq 0x2100
xorl %eax, %eax
movl $0x1, %ecx
cmpq %rcx, -0x10(%rbp)
movb %al, -0x3c(%rbp)
je 0x220f8
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x3, %rax
sete %al
movb %al, -0x3c(%rbp)
movb -0x3c(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x2210a
jmp 0x22129
leaq 0x93c8(%rip), %rdi      # 0x2b4d9
leaq 0x881b(%rip), %rsi      # 0x2a933
movl $0xcc, %edx
leaq 0x8925(%rip), %rcx      # 0x2aa49
callq 0x2100
cmpq $0x0, -0x10(%rbp)
je 0x2213d
movl $0x1, %eax
cmpq %rax, -0x10(%rbp)
je 0x2213d
jmp 0x2215c
leaq 0x8933(%rip), %rdi      # 0x2aa77
leaq 0x87e8(%rip), %rsi      # 0x2a933
movl $0xd0, %edx
leaq 0x88f2(%rip), %rcx      # 0x2aa49
callq 0x2100
movl $0xffffffff, -0x8(%rbp) # imm = 0xFFFFFFFF
movslq -0x8(%rbp), %rax
shlq $0x2, %rax
orq $0x3, %rax
movq %rax, -0x10(%rbp)
leaq 0xd7a6(%rip), %rax      # 0x2f920
cmpl $0x0, (%rax)
je 0x221d3
leaq 0xd19a(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x71db(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0x71d0(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x221d3
leaq 0xd170(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0xd4, 0xc(%rax)
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq 0x8869(%rip), %rdi      # 0x2aa35
movb $0x0, %al
callq 0x28540
jmp 0x221d5
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x3, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x221f3
jmp 0x22212
leaq 0x92e9(%rip), %rdi      # 0x2b4e3
leaq 0x8732(%rip), %rsi      # 0x2a933
movl $0xd5, %edx
leaq 0x883c(%rip), %rcx      # 0x2aa49
callq 0x2100
movq -0x10(%rbp), %rax
sarq $0x2, %rax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
jne 0x22227
jmp 0x22246
leaq 0x8853(%rip), %rdi      # 0x2aa81
leaq 0x86fe(%rip), %rsi      # 0x2a933
movl $0xd7, %edx
leaq 0x8808(%rip), %rcx      # 0x2aa49
callq 0x2100
leaq 0xd043(%rip), %rax      # 0x2f290
cmpq %rax, -0x10(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x22263
jmp 0x22282
leaq 0x7cd2(%rip), %rdi      # 0x29f3c
leaq 0x86c2(%rip), %rsi      # 0x2a933
movl $0xd8, %edx
leaq 0x87cc(%rip), %rcx      # 0x2aa49
callq 0x2100
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x3d(%rbp)
je 0x222a0
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0x3d(%rbp)
movb -0x3d(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x222b2
jmp 0x222d1
leaq 0x87aa(%rip), %rdi      # 0x2aa63
leaq 0x8673(%rip), %rsi      # 0x2a933
movl $0xd9, %edx
leaq 0x877d(%rip), %rcx      # 0x2aa49
callq 0x2100
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x2, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x222ef
jmp 0x2230e
leaq 0x8777(%rip), %rdi      # 0x2aa6d
leaq 0x8636(%rip), %rsi      # 0x2a933
movl $0xda, %edx
leaq 0x8740(%rip), %rcx      # 0x2aa49
callq 0x2100
xorl %eax, %eax
movl $0x1, %ecx
cmpq %rcx, -0x10(%rbp)
movb %al, -0x3e(%rbp)
je 0x22330
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x3, %rax
sete %al
movb %al, -0x3e(%rbp)
movb -0x3e(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x22342
jmp 0x22361
leaq 0x9190(%rip), %rdi      # 0x2b4d9
leaq 0x85e3(%rip), %rsi      # 0x2a933
movl $0xdc, %edx
leaq 0x86ed(%rip), %rcx      # 0x2aa49
callq 0x2100
cmpq $0x0, -0x10(%rbp)
je 0x22375
movl $0x1, %eax
cmpq %rax, -0x10(%rbp)
je 0x22375
jmp 0x22394
leaq 0x86fb(%rip), %rdi      # 0x2aa77
leaq 0x85b0(%rip), %rsi      # 0x2a933
movl $0xe0, %edx
leaq 0x86ba(%rip), %rcx      # 0x2aa49
callq 0x2100
movl $0x7ffffff, -0x8(%rbp)  # imm = 0x7FFFFFF
movslq -0x8(%rbp), %rax
shlq $0x2, %rax
orq $0x3, %rax
movq %rax, -0x10(%rbp)
leaq 0xd56e(%rip), %rax      # 0x2f920
cmpl $0x0, (%rax)
je 0x2240b
leaq 0xcf62(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x6fa3(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0x6f98(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x2240b
leaq 0xcf38(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0xe4, 0xc(%rax)
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq 0x8631(%rip), %rdi      # 0x2aa35
movb $0x0, %al
callq 0x28540
jmp 0x2240d
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x3, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x2242b
jmp 0x2244a
leaq 0x90b1(%rip), %rdi      # 0x2b4e3
leaq 0x84fa(%rip), %rsi      # 0x2a933
movl $0xe5, %edx
leaq 0x8604(%rip), %rcx      # 0x2aa49
callq 0x2100
movq -0x10(%rbp), %rax
sarq $0x2, %rax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
jne 0x2245f
jmp 0x2247e
leaq 0x861b(%rip), %rdi      # 0x2aa81
leaq 0x84c6(%rip), %rsi      # 0x2a933
movl $0xe7, %edx
leaq 0x85d0(%rip), %rcx      # 0x2aa49
callq 0x2100
xorl %eax, %eax
subl -0x8(%rbp), %eax
movl %eax, -0x8(%rbp)
movslq -0x8(%rbp), %rax
shlq $0x2, %rax
orq $0x3, %rax
movq %rax, -0x10(%rbp)
leaq 0xd483(%rip), %rax      # 0x2f920
cmpl $0x0, (%rax)
je 0x224f6
leaq 0xce77(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x6eb8(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0x6ead(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x224f6
leaq 0xce4d(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0xeb, 0xc(%rax)
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq 0x8546(%rip), %rdi      # 0x2aa35
movb $0x0, %al
callq 0x28540
jmp 0x224f8
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x3, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x22516
jmp 0x22535
leaq 0x8fc6(%rip), %rdi      # 0x2b4e3
leaq 0x840f(%rip), %rsi      # 0x2a933
movl $0xec, %edx
leaq 0x8519(%rip), %rcx      # 0x2aa49
callq 0x2100
movq -0x10(%rbp), %rax
sarq $0x2, %rax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl -0x8(%rbp), %eax
jne 0x2254a
jmp 0x22569
leaq 0x8530(%rip), %rdi      # 0x2aa81
leaq 0x83db(%rip), %rsi      # 0x2a933
movl $0xee, %edx
leaq 0x84e5(%rip), %rcx      # 0x2aa49
callq 0x2100
movl $0xf0, -0x2c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x28660
addq $0x40, %rsp
popq %rbp
retq
nop