// File: /workspace/github_cpp_makefile_star2_O2/gioannides[P]Language_Processors/src/../include/ast/ast_node.hpp
// Function: TranslationUnit::render_asm(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>) const
virtual void render_asm(std::string file_name) const {

			
			std::ofstream file;
			file.open(file_name.c_str());

			std::string new_file_name = "";

			for(int i(0); i < file_name.size(); ++i) {
				if(file_name[i] != '.') {
					new_file_name += file_name[i];
					break;
				}
			}
			file << "\t.file 1 " << "\"" << new_file_name << ".c\"" << std::endl;
			file << "\t.section .mdebug.abi32" << std::endl;
			file << "\t.previous" <<std::endl;
			file << "\t.nan legacy" << std::endl;
			file << "\t.module fp=32" << std::endl;
			file << "\t.module nooddspreg" << std::endl;
			file << "\t.abicalls" << std::endl;
			if(TranslationUnitPtr != NULL){
				TranslationUnitPtr->render_asm(file,contxt);
			}
			if( ExternalDecl != NULL){
				ExternalDecl->render_asm(file,contxt);
			}
			
			// for (int i=0; i<contxt.functions_declared.size(); i++)
			// {
			// 	std::cout << contxt.functions_declared[i].name << " - " << contxt.functions_declared[i].paramters_size; 
			// }
			 // print_scopes(contxt,file);
			  //print_variables(contxt,file);
			//print_declared(contxt, file);
		}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x230, %rsp            # imm = 0x230
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x30(%rsp), %r15
movq %r15, %rdi
callq 0x7570
movq (%r14), %rsi
pushq $0x10
popq %rdx
movq %r15, %rdi
callq 0x7060
leaq 0x230fb(%rip), %rsi     # 0x2d707
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x7120
movq 0x8(%r14), %rax
xorl %ecx, %ecx
cmpq %rcx, %rax
je 0xa641
movq (%r14), %rdx
movb (%rdx,%rcx), %dl
incq %rcx
cmpb $0x2e, %dl
je 0xa621
movsbl %dl, %esi
leaq 0x10(%rsp), %rdi
callq 0x72b0
leaq 0x22e35(%rip), %rsi     # 0x2d47d
leaq 0x30(%rsp), %rdi
callq 0x7310
leaq 0x22d50(%rip), %rsi     # 0x2d3a9
movq %rax, %rdi
callq 0x7310
leaq 0x10(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x22e12(%rip), %rsi     # 0x2d487
movq %rax, %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
leaq 0x22dff(%rip), %rsi     # 0x2d48b
leaq 0x30(%rsp), %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
leaq 0x22dfe(%rip), %rsi     # 0x2d4a3
leaq 0x30(%rsp), %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
leaq 0x22df0(%rip), %rsi     # 0x2d4ae
leaq 0x30(%rsp), %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
leaq 0x22de4(%rip), %rsi     # 0x2d4bb
leaq 0x30(%rsp), %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
leaq 0x22dda(%rip), %rsi     # 0x2d4ca
leaq 0x30(%rsp), %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
leaq 0x22dd5(%rip), %rsi     # 0x2d4de
leaq 0x30(%rsp), %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
movq 0x10(%rbx), %rdi
testq %rdi, %rdi
je 0xa735
leaq 0x48f35(%rip), %rdx     # 0x53660
leaq 0x30(%rsp), %rsi
callq 0xbe62
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0xa74f
leaq 0x48f1b(%rip), %rdx     # 0x53660
leaq 0x30(%rsp), %rsi
callq 0xbea4
leaq 0x10(%rsp), %rdi
callq 0x7170
leaq 0x30(%rsp), %rdi
callq 0x74d0
addq $0x230, %rsp            # imm = 0x230
popq %rbx
popq %r14
popq %r15
retq
jmp 0xa779
jmp 0xa774
movq %rax, %rbx
jmp 0xa786
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x7170
leaq 0x30(%rsp), %rdi
callq 0x74d0
movq %rbx, %rdi
callq 0x75c0