// File: /workspace/github_cpp_makefile_star2_O3/gioannides[P]Language_Processors/src/../include/ast/ast_Expressions.cpp
// Function: ConditionalExpression::render_asm(std::basic_ofstream<char, std::char_traits<char>>&, Context&)
inline void ConditionalExpression::render_asm(std::ofstream& file,Context& contxt) {

			std::string label_id = labelGen(contxt);
			std::string ELSE = "$ELSE" + label_id;
			std::string IF = "$IF" + label_id;
			std::string END = "$END" + label_id;
			
			
			if( LogicalORExpression != NULL && ExpressioN == NULL && ConditionalExpressionPtr == NULL) {
				LogicalORExpression->render_asm(file,contxt);
				
				
			}
			else if (LogicalORExpression != NULL && ExpressioN != NULL && ConditionalExpressionPtr != NULL) {
				
				contxt.rhs_of_expression = true;
				LogicalORExpression->render_asm(file,contxt);
				contxt.rhs_of_expression = false;				
				file << std::endl << "\tbeq\t$2,$0," << ELSE;
				file << std::endl << "\tnop";
				file << std::endl << IF << ":";
				contxt.rhs_of_expression = true;
				ExpressioN->render_asm(file,contxt);
				contxt.rhs_of_expression = false;
				file << "\n\tb " << END;
				file << std::endl << "\tnop";
				file << std::endl << ELSE << ":";
				contxt.rhs_of_expression = true;
				ConditionalExpressionPtr->render_asm(file,contxt);
				contxt.rhs_of_expression = false;
				file << "\n\tb " << END;
				file << std::endl << "\tnop";
			}
			if(contxt.function){
				file << std::endl << END << ":";
			}
			
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rdx, %r14
movq %rsi, %rbx
movq %rdi, %r15
leaq 0x68(%rsp), %r12
movq %r12, %rdi
movq %rdx, %rsi
callq 0xfdc2
leaq 0x27c95(%rip), %rsi     # 0x37665
leaq 0x28(%rsp), %rdi
movq %r12, %rdx
callq 0xfef4
leaq 0x27c87(%rip), %rsi     # 0x3766b
leaq 0x48(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0xfef4
leaq 0x27c75(%rip), %rsi     # 0x3766f
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0xfef4
movq 0x8(%r15), %rdi
movq 0x10(%r15), %rax
testq %rdi, %rdi
setne %dl
movq 0x18(%r15), %rcx
movq %rax, %rsi
orq %rcx, %rsi
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0xfa3e
movq %rbx, %rsi
movq %r14, %rdx
callq 0xff76
jmp 0xfcaa
testq %rcx, %rcx
sete %cl
testq %rax, %rax
sete %al
testq %rdi, %rdi
sete %dl
orb %al, %dl
orb %cl, %dl
jne 0xfcaa
movb $0x1, 0x1d1(%r14)
movq %rbx, %rsi
movq %r14, %rdx
callq 0xff76
movb $0x0, 0x1d1(%r14)
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x27bce(%rip), %rsi     # 0x37674
movl $0xb, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x27aff(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x278d6(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movb $0x1, 0x1d1(%r14)
movq 0x10(%r15), %rax
movq %rax, %rcx
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xfb59
movq 0x8(%rcx), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x1a310
movb $0x0, 0x1d1(%r14)
leaq 0x27afd(%rip), %rsi     # 0x37680
movl $0x4, %edx
movq %rbx, %rdi
callq 0x73a0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x73a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x27a22(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x277f9(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movb $0x1, 0x1d1(%r14)
movq 0x18(%r15), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0xf9a2
movb $0x0, 0x1d1(%r14)
leaq 0x27a30(%rip), %rsi     # 0x37680
movl $0x4, %edx
movq %rbx, %rdi
callq 0x73a0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x73a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x27955(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
cmpb $0x1, 0x218(%r14)
jne 0xfd01
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x27722(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfd14
callq 0x72e0
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfd27
callq 0x72e0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfd3a
callq 0x72e0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfd4d
callq 0x72e0
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
jmp 0xfd81
movq %rax, %rbx
jmp 0xfd94
movq %rax, %rbx
jmp 0xfda7
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfd81
callq 0x72e0
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfd94
callq 0x72e0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfda7
callq 0x72e0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfdba
callq 0x72e0
movq %rbx, %rdi
callq 0x75f0