// File: gioannides[P]Language_Processors/src/../include/ast/ast_node.hpp
// Function: Initializer::render_asm(std::basic_ofstream<char, std::char_traits<char>>&, Context&)
void render_asm(std::ofstream& file,Context& contxt) {
			
			if(InitializerListPtr != NULL ) {
				InitializerListPtr->render_asm(file,contxt);
			}
			
			if( AssignmentExpressionPtr != NULL) {
				contxt.no_of_initial_values++;
				AssignmentExpressionPtr->render_asm(file,contxt);
				if(!contxt.function && !contxt.function_dec) {
				 	
				if(contxt.Variables[contxt.good_i].Pointer){
					file << std::endl << "\t.word\t" << contxt.GlobalPointerValue; //contxt.variable.value;
					std::string str = contxt.GlobalPointerValue;
    					std::regex regex_pattern("[A-Za-z_]([A-Za-z_]|[0-9])*");
					contxt.AddressOf = std::regex_match(str,regex_pattern);   					
				}
				
				else if( contxt.variable.word_size > 4 ){					
					file << std::endl << "\t.double\t" << contxt.variable.value ; 	//TODO: Convert to IEEE-754 for FLOAT and DOUBLE
				}
				else if( (contxt.variable.word_size==4) && contxt.variable.DataType!="float"){
					file << std::endl << "\t.word\t" << contxt.eval[contxt.Regs+1]; //contxt.variable.value;
				}
				else if( (contxt.variable.word_size==4) && contxt.variable.DataType=="float"){
					file << std::endl << "\t.float\t" << contxt.eval_f[contxt.Regs+1]; //contxt.variable.value;
					contxt.float_ = false;
				}
				else if(contxt.variable.word_size==2){
					file << std::endl << "\t.half\t" << contxt.eval_f[contxt.Regs+1];
				}
				else if(contxt.variable.word_size==1){
					file << std::endl << "\t.byte\t" << contxt.eval[contxt.Regs+1];
				}
				        // reset the value of the global
				for(int i=contxt.Regs; i<=20; i++)
				{
					file << "\n#" << contxt.eval[i];
					contxt.eval[i] = 0; 
				}
				
				
				}
			}
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, 0x10(%rax)
je 0x30d8b
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x31150
movq -0x70(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x31110
movq -0x70(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x13e80(%rcx), %edx
addl $0x1, %edx
movl %edx, 0x13e80(%rcx)
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x219c0
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
jne 0x3110e
movq -0x18(%rbp), %rax
testb $0x1, 0x13e7c(%rax)
jne 0x3110e
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
testb $0x1, 0x9c(%rax)
je 0x30ecc
movq -0x10(%rbp), %rdi
movq 0x57159(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x33ce8(%rip), %rsi     # 0x64b0e
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rsi
addq $0x50, %rsi
callq 0x83c0
movq -0x18(%rbp), %rsi
addq $0x50, %rsi
leaq -0x38(%rbp), %rdi
callq 0x81a0
leaq 0x33cdc(%rip), %rsi     # 0x64b2f
leaq -0x58(%rbp), %rdi
movl $0x10, %edx
callq 0x311b0
jmp 0x30e63
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
xorl %edx, %edx
callq 0x31250
movb %al, -0x71(%rbp)
jmp 0x30e77
movb -0x71(%rbp), %cl
movq -0x18(%rbp), %rax
andb $0x1, %cl
movb %cl, 0x49(%rax)
leaq -0x58(%rbp), %rdi
callq 0x312a0
leaq -0x38(%rbp), %rdi
callq 0x8280
jmp 0x310b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x30ebe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x312a0
leaq -0x38(%rbp), %rdi
callq 0x8280
jmp 0x31119
movq -0x18(%rbp), %rax
cmpl $0x4, 0x258(%rax)
jle 0x30f11
movq -0x10(%rbp), %rdi
movq 0x5708c(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x33c11(%rip), %rsi     # 0x64b04
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movsd 0x280(%rax), %xmm0
callq 0x8800
jmp 0x310b2
movq -0x18(%rbp), %rax
cmpl $0x4, 0x258(%rax)
jne 0x30f86
movq -0x18(%rbp), %rdi
addq $0x258, %rdi            # imm = 0x258
addq $0x58, %rdi
leaq 0x33410(%rip), %rsi     # 0x64344
callq 0x1f7a0
testb $0x1, %al
jne 0x30f3f
jmp 0x30f86
movq -0x10(%rbp), %rdi
movq 0x57026(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x33bb5(%rip), %rsi     # 0x64b0e
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movl 0x5f8(%rax,%rcx,4), %esi
callq 0x8730
jmp 0x310b0
movq -0x18(%rbp), %rax
cmpl $0x4, 0x258(%rax)
jne 0x31008
movq -0x18(%rbp), %rdi
addq $0x258, %rdi            # imm = 0x258
addq $0x58, %rdi
leaq 0x3339b(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x30fb4
jmp 0x31008
movq -0x10(%rbp), %rdi
movq 0x56fb1(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x33b48(%rip), %rsi     # 0x64b16
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movss 0xa238(%rax,%rcx,4), %xmm0
callq 0x8340
movq -0x18(%rbp), %rax
movb $0x0, 0x340(%rax)
jmp 0x310ae
movq -0x18(%rbp), %rax
cmpl $0x2, 0x258(%rax)
jne 0x3105b
movq -0x10(%rbp), %rdi
movq 0x56f50(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x33af0(%rip), %rsi     # 0x64b1f
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movss 0xa238(%rax,%rcx,4), %xmm0
callq 0x8340
jmp 0x310ac
movq -0x18(%rbp), %rax
cmpl $0x1, 0x258(%rax)
jne 0x310aa
movq -0x10(%rbp), %rdi
movq 0x56efd(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x33aa5(%rip), %rsi     # 0x64b27
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movl 0x5f8(%rax,%rcx,4), %esi
callq 0x8730
jmp 0x310ac
jmp 0x310ae
jmp 0x310b0
jmp 0x310b2
jmp 0x310b4
movq -0x18(%rbp), %rax
movl 0x310(%rax), %eax
movl %eax, -0x68(%rbp)
cmpl $0x14, -0x68(%rbp)
jg 0x3110c
movq -0x10(%rbp), %rdi
leaq 0x33a79(%rip), %rsi     # 0x64b4b
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movslq -0x68(%rbp), %rcx
movl 0x5f8(%rax,%rcx,4), %esi
callq 0x8730
movq -0x18(%rbp), %rax
movslq -0x68(%rbp), %rcx
movl $0x0, 0x5f8(%rax,%rcx,4)
movl -0x68(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x68(%rbp)
jmp 0x310c1
jmp 0x3110e
jmp 0x31110
addq $0x80, %rsp
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x8760
nopw %cs:(%rax,%rax)
nopl (%rax)