// File: gioannides[P]Language_Processors/src/../include/ast/ast_node.hpp
// Function: EnumSpecifier::render_asm(std::basic_ofstream<char, std::char_traits<char>>&, Context&)
void render_asm(std::ofstream& file, Context& contxt){ 
			contxt.EnumCounter = 0;
			if( IDENTIFIER == NULL )
			{
				if(contxt.function)
				{
					contxt.EnumTemp.ScopeID = contxt.funct_id;
				}
				else
				{	
					contxt.EnumTemp.ScopeID = "global";
				}
				ENumeratorList->render_asm(file,contxt);
			//	contxt.Enum.push_back(contxt.EnumTemp);				
			}
			else if( IDENTIFIER != NULL && ENumeratorList == NULL){
				contxt.variable.id = *IDENTIFIER;
				contxt.variable.DataType = "int";
				contxt.variable.word_size = 4;
				if(contxt.function){
					contxt.variable.scope = contxt.funct_id;
				}
				else{
					contxt.variable.scope = "global";
				}
				contxt.variable.value = 0;
				contxt.variable.Pointer = false;
			}
			else if( IDENTIFIER != NULL && ENumeratorList != NULL)
			{
				if(contxt.function){
					contxt.EnumTemp.ScopeID = contxt.funct_id;
				}
				else{	
					contxt.EnumTemp.ScopeID = "global";
				}
				ENumeratorList->render_asm(file,contxt);
				
				//std::cout << contxt.EnumValuesTemp.IDENTIFIER << " " << contxt.EnumValuesTemp.value << std::endl;
			}
			
			
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rcx
movl $0x0, 0x148(%rcx)
cmpq $0x0, 0x10(%rax)
jne 0x1164c
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
je 0x1161b
movq -0x18(%rbp), %rsi
addq $0x220, %rsi            # imm = 0x220
movq -0x18(%rbp), %rdi
addq $0xd8, %rdi
callq 0x8060
jmp 0x11632
movq -0x18(%rbp), %rdi
addq $0xd8, %rdi
leaq 0x52df0(%rip), %rsi     # 0x6441d
callq 0x8590
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x11790
jmp 0x11784
movq -0x20(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x11714
movq -0x20(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x11714
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rsi
movq -0x18(%rbp), %rdi
addq $0x258, %rdi            # imm = 0x258
addq $0x8, %rdi
callq 0x8060
movq -0x18(%rbp), %rdi
addq $0x258, %rdi            # imm = 0x258
addq $0x58, %rdi
leaq 0x538af(%rip), %rsi     # 0x64f4b
callq 0x8590
movq -0x18(%rbp), %rax
movl $0x4, 0x258(%rax)
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
je 0x116dd
movq -0x18(%rbp), %rsi
addq $0x220, %rsi            # imm = 0x220
movq -0x18(%rbp), %rdi
addq $0x258, %rdi            # imm = 0x258
addq $0x30, %rdi
callq 0x8060
jmp 0x116f8
movq -0x18(%rbp), %rdi
addq $0x258, %rdi            # imm = 0x258
addq $0x30, %rdi
leaq 0x52d2a(%rip), %rsi     # 0x6441d
callq 0x8590
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x280(%rax)
movq -0x18(%rbp), %rax
movb $0x0, 0x2f4(%rax)
jmp 0x11782
movq -0x20(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x11780
movq -0x20(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x11780
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
je 0x11754
movq -0x18(%rbp), %rsi
addq $0x220, %rsi            # imm = 0x220
movq -0x18(%rbp), %rdi
addq $0xd8, %rdi
callq 0x8060
jmp 0x1176b
movq -0x18(%rbp), %rdi
addq $0xd8, %rdi
leaq 0x52cb7(%rip), %rsi     # 0x6441d
callq 0x8590
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x11790
jmp 0x11782
jmp 0x11784
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)