// File: /workspace/github_c_makefile_star2_O3/Yamsman[P]scc/src/sym.c
// Function: symtable_predef
void symtable_predef(symtable *stb) {
	//Get date and time strings
	static char sdate[16];
	static char stime[16];
	time_t c_time = time(NULL);
	struct tm *l_time = localtime(&c_time);
	strftime(sdate, 16, "\"%b %d %Y\"", l_time);
	strftime(stime, 16, "\"%H:%M:%S\"", l_time);

	//Static buffer for __FILE__ and __LINE__ (filled in lex_expand_macro)
	static char sfili[256];
	
	//Predefine macros
	PREDEF_MACRO(stb, __DATE__, sdate);
	PREDEF_MACRO(stb, __FILE__, sfili);
	PREDEF_MACRO(stb, __LINE__, sfili);
	PREDEF_MACRO(stb, __STDC__, "1");
	PREDEF_MACRO(stb, __STDC_HOSTED__, "0");
	PREDEF_MACRO(stb, __STDC_VERSION__, "199901L");
	PREDEF_MACRO(stb, __TIME__, stime);
	return;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
xorl %r13d, %r13d
xorl %edi, %edi
callq 0x3160
movq %rsp, %rdi
movq %rax, (%rdi)
callq 0x3050
movq %rax, %r12
leaq 0x898d(%rip), %r15      # 0x145a0
leaq 0x33a6(%rip), %rdx      # 0xefc0
movl $0x10, %esi
movq %r15, %rdi
movq %rax, %rcx
callq 0x31b0
leaq 0x897f(%rip), %r14      # 0x145b0
leaq 0x3393(%rip), %rdx      # 0xefcb
movl $0x10, %esi
movq %r14, %rdi
movq %r12, %rcx
callq 0x31b0
movl $0x40, %edi
callq 0x3170
movq %rax, %r12
movaps 0x3344(%rip), %xmm0     # 0xefa0
movups %xmm0, (%rax)
leaq 0x28(%rax), %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl %r13d, 0x20(%rax)
xorl %esi, %esi
callq 0xc88c
movq %r13, 0x38(%r12)
leaq 0x3355(%rip), %rsi      # 0xefd6
movq %rbx, %rdi
movq %r12, %rdx
xorl %ecx, %ecx
callq 0xbe8d
movq %r15, 0x48(%rax)
movl $0x1, %ebp
movl %ebp, 0x54(%rax)
movl $0x40, %edi
callq 0x3170
movq %rax, %r15
movaps 0x32f2(%rip), %xmm0     # 0xefa0
movups %xmm0, (%rax)
leaq 0x28(%rax), %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl %r13d, 0x20(%rax)
xorl %esi, %esi
callq 0xc88c
movq %r13, 0x38(%r15)
leaq 0x2168(%rip), %rsi      # 0xde3a
movq %rbx, %rdi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0xbe8d
leaq 0x88da(%rip), %r12      # 0x145c0
movq %r12, 0x48(%rax)
movl %ebp, 0x54(%rax)
movl $0x40, %edi
callq 0x3170
movq %rax, %r15
movaps 0x329f(%rip), %xmm0     # 0xefa0
movups %xmm0, (%rax)
leaq 0x28(%rax), %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl %r13d, 0x20(%rax)
xorl %esi, %esi
callq 0xc88c
movq %r13, 0x38(%r15)
leaq 0x2123(%rip), %rsi      # 0xde48
movq %rbx, %rdi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0xbe8d
movq %r12, 0x48(%rax)
movl %ebp, 0x54(%rax)
movl $0x40, %edi
callq 0x3170
movq %rax, %r15
movaps 0x3253(%rip), %xmm0     # 0xefa0
movups %xmm0, (%rax)
leaq 0x28(%rax), %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl %r13d, 0x20(%rax)
xorl %esi, %esi
callq 0xc88c
movq %r13, 0x38(%r15)
leaq 0x326e(%rip), %rsi      # 0xefdf
movq %rbx, %rdi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0xbe8d
leaq 0x198c(%rip), %rcx      # 0xd711
movq %rcx, 0x48(%rax)
movl %ebp, 0x54(%rax)
movl $0x40, %edi
callq 0x3170
movq %rax, %r15
movaps 0x3200(%rip), %xmm0     # 0xefa0
movups %xmm0, (%rax)
leaq 0x28(%rax), %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl %r13d, 0x20(%rax)
xorl %esi, %esi
callq 0xc88c
movq %r13, 0x38(%r15)
leaq 0x3224(%rip), %rsi      # 0xefe8
movq %rbx, %rdi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0xbe8d
leaq 0x1935(%rip), %rcx      # 0xd70d
movq %rcx, 0x48(%rax)
movl %ebp, 0x54(%rax)
movl $0x40, %edi
callq 0x3170
movq %rax, %r15
movaps 0x31ad(%rip), %xmm0     # 0xefa0
movups %xmm0, (%rax)
leaq 0x28(%rax), %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl %r13d, 0x20(%rax)
xorl %esi, %esi
callq 0xc88c
movq %r13, 0x38(%r15)
leaq 0x31e1(%rip), %rsi      # 0xeff8
movq %rbx, %rdi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0xbe8d
leaq 0x31de(%rip), %rcx      # 0xf009
movq %rcx, 0x48(%rax)
movl %ebp, 0x54(%rax)
movl $0x40, %edi
callq 0x3170
movq %rax, %r15
movaps 0x315a(%rip), %xmm0     # 0xefa0
movups %xmm0, (%rax)
leaq 0x28(%rax), %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl %r13d, 0x20(%rax)
xorl %esi, %esi
callq 0xc88c
movq %r13, 0x38(%r15)
leaq 0x31a7(%rip), %rsi      # 0xf011
movq %rbx, %rdi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0xbe8d
movq %r14, 0x48(%rax)
movl %ebp, 0x54(%rax)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq