// File: /workspace/github_c_makefile_star2_O0/dalnefre[P]kernel_abe/atom.c
// Function: test_atom
void
test_atom()
{
	CONS* p;
	CONS* q;
	char* s;
	char buf[256];

	DBUG_ENTER("test_atom");
	TRACE(printf("--test_atom--\n"));
	p = ATOM(NULL);
	q = ATOM("");
	assert(nilp(p));
	assert(p == q);
	assert(atom_str(q)[0] == '\0');
	
	s = "T";
	strncpy(buf, s, sizeof(buf - 1));
	p = ATOM(s);
	q = ATOM(buf);
	assert(p == q);
	q = ATOM("n");
	assert(p != q);
	s = "nil";
	strncpy(buf, s, sizeof(buf - 1));
	p = ATOM(s);
	assert(p != q);
	assert(strcmp(s, atom_str(p)) == 0);
	q = ATOM(buf);
	assert(p == q);
	p = ATOM("F");
	assert(p != q);
	
	p = MK_CONS(lu_atom_root);
	DBUG_PRINT("", ("lu_atom_root=%s", cons_to_str(p)));
	DBUG_RETURN;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x150, %rsp            # imm = 0x150
leaq 0x90a7(%rip), %rax      # 0x2a989
movq %rax, -0x148(%rbp)
leaq 0xda30(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x140(%rbp)
movl $0x82, -0x13c(%rbp)
leaq 0x7a5e(%rip), %rax      # 0x2936f
movq %rax, -0x138(%rbp)
leaq 0xd8a1(%rip), %rax      # 0x2f1c0
movq %rax, -0x130(%rbp)
leaq 0xd9f3(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x128(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x28490
leaq 0x9045(%rip), %rdi      # 0x2a993
movb $0x0, %al
callq 0x20e0
xorl %eax, %eax
movl %eax, %edi
callq 0x216e0
movq %rax, -0x8(%rbp)
leaq 0x7a06(%rip), %rdi      # 0x2936f
callq 0x216e0
movq %rax, -0x10(%rbp)
leaq 0xd917(%rip), %rax      # 0x2f290
cmpq %rax, -0x8(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x2198f
jmp 0x219ae
leaq 0x85a7(%rip), %rdi      # 0x29f3d
leaq 0x8f96(%rip), %rsi      # 0x2a933
movl $0x86, %edx
leaq 0x8ff9(%rip), %rcx      # 0x2a9a2
callq 0x2100
movq -0x8(%rbp), %rax
cmpq -0x10(%rbp), %rax
jne 0x219ba
jmp 0x219d9
leaq 0x8ff2(%rip), %rdi      # 0x2a9b3
leaq 0x8f6b(%rip), %rsi      # 0x2a933
movl $0x87, %edx
leaq 0x8fce(%rip), %rcx      # 0x2a9a2
callq 0x2100
movq -0x10(%rbp), %rdi
callq 0x217a0
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x219ec
jmp 0x21a0b
leaq 0x8fc7(%rip), %rdi      # 0x2a9ba
leaq 0x8f39(%rip), %rsi      # 0x2a933
movl $0x88, %edx
leaq 0x8f9c(%rip), %rcx      # 0x2a9a2
callq 0x2100
leaq 0x7b47(%rip), %rax      # 0x29559
movq %rax, -0x18(%rbp)
leaq -0x120(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x8, %edx
callq 0x2070
movq -0x18(%rbp), %rdi
callq 0x216e0
movq %rax, -0x8(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x216e0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpq -0x10(%rbp), %rax
jne 0x21a54
jmp 0x21a73
leaq 0x8f58(%rip), %rdi      # 0x2a9b3
leaq 0x8ed1(%rip), %rsi      # 0x2a933
movl $0x8e, %edx
leaq 0x8f34(%rip), %rcx      # 0x2a9a2
callq 0x2100
leaq 0x7a96(%rip), %rdi      # 0x29510
callq 0x216e0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpq -0x10(%rbp), %rax
je 0x21a8f
jmp 0x21aae
leaq 0x8f3b(%rip), %rdi      # 0x2a9d1
leaq 0x8e96(%rip), %rsi      # 0x2a933
movl $0x90, %edx
leaq 0x8ef9(%rip), %rcx      # 0x2a9a2
callq 0x2100
leaq 0x8f23(%rip), %rax      # 0x2a9d8
movq %rax, -0x18(%rbp)
leaq -0x120(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x8, %edx
callq 0x2070
movq -0x18(%rbp), %rdi
callq 0x216e0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq -0x10(%rbp), %rax
je 0x21ae7
jmp 0x21b06
leaq 0x8ee3(%rip), %rdi      # 0x2a9d1
leaq 0x8e3e(%rip), %rsi      # 0x2a933
movl $0x94, %edx
leaq 0x8ea1(%rip), %rcx      # 0x2a9a2
callq 0x2100
movq -0x18(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0x8(%rbp), %rdi
callq 0x217a0
movq -0x150(%rbp), %rdi
movq %rax, %rsi
callq 0x2160
cmpl $0x0, %eax
jne 0x21b30
jmp 0x21b4f
leaq 0x8ea5(%rip), %rdi      # 0x2a9dc
leaq 0x8df5(%rip), %rsi      # 0x2a933
movl $0x95, %edx
leaq 0x8e58(%rip), %rcx      # 0x2a9a2
callq 0x2100
leaq -0x120(%rbp), %rdi
callq 0x216e0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpq -0x10(%rbp), %rax
jne 0x21b6b
jmp 0x21b8a
leaq 0x8e41(%rip), %rdi      # 0x2a9b3
leaq 0x8dba(%rip), %rsi      # 0x2a933
movl $0x97, %edx
leaq 0x8e1d(%rip), %rcx      # 0x2a9a2
callq 0x2100
leaq 0x7530(%rip), %rdi      # 0x290c1
callq 0x216e0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq -0x10(%rbp), %rax
je 0x21ba6
jmp 0x21bc5
leaq 0x8e24(%rip), %rdi      # 0x2a9d1
leaq 0x8d7f(%rip), %rsi      # 0x2a933
movl $0x99, %edx
leaq 0x8de2(%rip), %rcx      # 0x2a9a2
callq 0x2100
movq 0xdc3c(%rip), %rax      # 0x2f808
andq $-0x4, %rax
orq $0x0, %rax
movq %rax, -0x8(%rbp)
leaq 0xdd41(%rip), %rax      # 0x2f920
cmpl $0x0, (%rax)
je 0x21c3d
leaq 0xd735(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x7776(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0x776b(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x21c3d
leaq 0xd70b(%rip), %rax      # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x9c, 0xc(%rax)
movq -0x8(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x8dc2(%rip), %rdi      # 0x2a9f8
movb $0x0, %al
callq 0x28540
jmp 0x21c3f
movl $0x9d, -0x13c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x28660
addq $0x150, %rsp            # imm = 0x150
popq %rbp
retq
nop