// File: /workspace/github_c_makefile_star2_O0/LangProc[P]langproc-2020-cw/src/compiler.cpp
// Function: main
int main()
{
	std::cout << "f:" << std::endl;
	std::cout << "PUSH0:" << std::endl;
	std::cout << "addiu $sp, $sp, -44" << std::endl;
	std::cout << "sw $ra, 40($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "sw $fp, 36($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "sw $s0, 4($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "sw $s1, 8($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "sw $s2, 12($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "sw $s3, 16($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "sw $s4, 20($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "sw $s5, 24($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "sw $s6, 28($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "sw $s7, 32($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "move $fp, $sp" << std::endl;
	std::cout << "body2:" << std::endl;
	std::cout << "li $v0, 42" << std::endl;
	std::cout << "addiu $sp, $sp, 0" << std::endl;
	std::cout << "move $fp, $sp" << std::endl;
	std::cout << "b POP1" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "addiu $sp, $sp, 0" << std::endl;
	std::cout << "move $fp, $sp" << std::endl;
	std::cout << "POP1:" << std::endl;
	std::cout << "mtc1 $v0, $f0" << std::endl;
	std::cout << "lw $s0, 4($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "lw $s1, 8($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "lw $s2, 12($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "lw $s3, 16($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "lw $s4, 20($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "lw $s5, 24($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "lw $s6, 28($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "lw $s7, 32($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "lw $ra, 40($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "lw $fp, 36($sp)" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << "move $sp, $fp" << std::endl;
	std::cout << "jr $ra" << std::endl;
	std::cout << "nop" << std::endl;
	std::cout << ".global f" << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq 0x2e1d(%rip), %rdi      # 0x3fd8
leaq 0xe42(%rip), %rsi       # 0x2004
callq 0x1040
movq %rax, %rdi
movq 0x2df7(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2dfb(%rip), %rdi      # 0x3fd8
leaq 0xe23(%rip), %rsi       # 0x2007
callq 0x1040
movq %rax, %rdi
movq 0x2dd5(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2dd9(%rip), %rdi      # 0x3fd8
leaq 0xe08(%rip), %rsi       # 0x200e
callq 0x1040
movq %rax, %rdi
movq 0x2db3(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2db7(%rip), %rdi      # 0x3fd8
leaq 0xdfa(%rip), %rsi       # 0x2022
callq 0x1040
movq %rax, %rdi
movq 0x2d91(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2d95(%rip), %rdi      # 0x3fd8
leaq 0xde8(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2d6f(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2d73(%rip), %rdi      # 0x3fd8
leaq 0xdca(%rip), %rsi       # 0x2036
callq 0x1040
movq %rax, %rdi
movq 0x2d4d(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2d51(%rip), %rdi      # 0x3fd8
leaq 0xda4(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2d2b(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2d2f(%rip), %rdi      # 0x3fd8
leaq 0xd96(%rip), %rsi       # 0x2046
callq 0x1040
movq %rax, %rdi
movq 0x2d09(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2d0d(%rip), %rdi      # 0x3fd8
leaq 0xd60(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2ce7(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2ceb(%rip), %rdi      # 0x3fd8
leaq 0xd61(%rip), %rsi       # 0x2055
callq 0x1040
movq %rax, %rdi
movq 0x2cc5(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2cc9(%rip), %rdi      # 0x3fd8
leaq 0xd1c(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2ca3(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2ca7(%rip), %rdi      # 0x3fd8
leaq 0xd2c(%rip), %rsi       # 0x2064
callq 0x1040
movq %rax, %rdi
movq 0x2c81(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2c85(%rip), %rdi      # 0x3fd8
leaq 0xcd8(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2c5f(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2c63(%rip), %rdi      # 0x3fd8
leaq 0xcf8(%rip), %rsi       # 0x2074
callq 0x1040
movq %rax, %rdi
movq 0x2c3d(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2c41(%rip), %rdi      # 0x3fd8
leaq 0xc94(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2c1b(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2c1f(%rip), %rdi      # 0x3fd8
leaq 0xcc4(%rip), %rsi       # 0x2084
callq 0x1040
movq %rax, %rdi
movq 0x2bf9(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2bfd(%rip), %rdi      # 0x3fd8
leaq 0xc50(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2bd7(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2bdb(%rip), %rdi      # 0x3fd8
leaq 0xc90(%rip), %rsi       # 0x2094
callq 0x1040
movq %rax, %rdi
movq 0x2bb5(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2bb9(%rip), %rdi      # 0x3fd8
leaq 0xc0c(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2b93(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2b97(%rip), %rdi      # 0x3fd8
leaq 0xc5c(%rip), %rsi       # 0x20a4
callq 0x1040
movq %rax, %rdi
movq 0x2b71(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2b75(%rip), %rdi      # 0x3fd8
leaq 0xbc8(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2b4f(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2b53(%rip), %rdi      # 0x3fd8
leaq 0xc28(%rip), %rsi       # 0x20b4
callq 0x1040
movq %rax, %rdi
movq 0x2b2d(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2b31(%rip), %rdi      # 0x3fd8
leaq 0xb84(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2b0b(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2b0f(%rip), %rdi      # 0x3fd8
leaq 0xbf4(%rip), %rsi       # 0x20c4
callq 0x1040
movq %rax, %rdi
movq 0x2ae9(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2aed(%rip), %rdi      # 0x3fd8
leaq 0xbe0(%rip), %rsi       # 0x20d2
callq 0x1040
movq %rax, %rdi
movq 0x2ac7(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2acb(%rip), %rdi      # 0x3fd8
leaq 0xbc5(%rip), %rsi       # 0x20d9
callq 0x1040
movq %rax, %rdi
movq 0x2aa5(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2aa9(%rip), %rdi      # 0x3fd8
leaq 0xbae(%rip), %rsi       # 0x20e4
callq 0x1040
movq %rax, %rdi
movq 0x2a83(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2a87(%rip), %rdi      # 0x3fd8
leaq 0xb6c(%rip), %rsi       # 0x20c4
callq 0x1040
movq %rax, %rdi
movq 0x2a61(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2a65(%rip), %rdi      # 0x3fd8
leaq 0xb7c(%rip), %rsi       # 0x20f6
callq 0x1040
movq %rax, %rdi
movq 0x2a3f(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2a43(%rip), %rdi      # 0x3fd8
leaq 0xa96(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2a1d(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2a21(%rip), %rdi      # 0x3fd8
leaq 0xb26(%rip), %rsi       # 0x20e4
callq 0x1040
movq %rax, %rdi
movq 0x29fb(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x29ff(%rip), %rdi      # 0x3fd8
leaq 0xae4(%rip), %rsi       # 0x20c4
callq 0x1040
movq %rax, %rdi
movq 0x29d9(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x29dd(%rip), %rdi      # 0x3fd8
leaq 0xafb(%rip), %rsi       # 0x20fd
callq 0x1040
movq %rax, %rdi
movq 0x29b7(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x29bb(%rip), %rdi      # 0x3fd8
leaq 0xadf(%rip), %rsi       # 0x2103
callq 0x1040
movq %rax, %rdi
movq 0x2995(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2999(%rip), %rdi      # 0x3fd8
leaq 0xacb(%rip), %rsi       # 0x2111
callq 0x1040
movq %rax, %rdi
movq 0x2973(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2977(%rip), %rdi      # 0x3fd8
leaq 0x9ca(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2951(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2955(%rip), %rdi      # 0x3fd8
leaq 0xa96(%rip), %rsi       # 0x2120
callq 0x1040
movq %rax, %rdi
movq 0x292f(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2933(%rip), %rdi      # 0x3fd8
leaq 0x986(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x290d(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2911(%rip), %rdi      # 0x3fd8
leaq 0xa61(%rip), %rsi       # 0x212f
callq 0x1040
movq %rax, %rdi
movq 0x28eb(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x28ef(%rip), %rdi      # 0x3fd8
leaq 0x942(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x28c9(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x28cd(%rip), %rdi      # 0x3fd8
leaq 0xa2d(%rip), %rsi       # 0x213f
callq 0x1040
movq %rax, %rdi
movq 0x28a7(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x28ab(%rip), %rdi      # 0x3fd8
leaq 0x8fe(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2885(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2889(%rip), %rdi      # 0x3fd8
leaq 0x9f9(%rip), %rsi       # 0x214f
callq 0x1040
movq %rax, %rdi
movq 0x2863(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2867(%rip), %rdi      # 0x3fd8
leaq 0x8ba(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2841(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2845(%rip), %rdi      # 0x3fd8
leaq 0x9c5(%rip), %rsi       # 0x215f
callq 0x1040
movq %rax, %rdi
movq 0x281f(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2823(%rip), %rdi      # 0x3fd8
leaq 0x876(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x27fd(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2801(%rip), %rdi      # 0x3fd8
leaq 0x991(%rip), %rsi       # 0x216f
callq 0x1040
movq %rax, %rdi
movq 0x27db(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x27df(%rip), %rdi      # 0x3fd8
leaq 0x832(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x27b9(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x27bd(%rip), %rdi      # 0x3fd8
leaq 0x95d(%rip), %rsi       # 0x217f
callq 0x1040
movq %rax, %rdi
movq 0x2797(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x279b(%rip), %rdi      # 0x3fd8
leaq 0x7ee(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2775(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2779(%rip), %rdi      # 0x3fd8
leaq 0x929(%rip), %rsi       # 0x218f
callq 0x1040
movq %rax, %rdi
movq 0x2753(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2757(%rip), %rdi      # 0x3fd8
leaq 0x7aa(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2731(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2735(%rip), %rdi      # 0x3fd8
leaq 0x8f5(%rip), %rsi       # 0x219f
callq 0x1040
movq %rax, %rdi
movq 0x270f(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x2713(%rip), %rdi      # 0x3fd8
leaq 0x766(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x26ed(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x26f1(%rip), %rdi      # 0x3fd8
leaq 0x8c1(%rip), %rsi       # 0x21af
callq 0x1040
movq %rax, %rdi
movq 0x26cb(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x26cf(%rip), %rdi      # 0x3fd8
leaq 0x8ad(%rip), %rsi       # 0x21bd
callq 0x1040
movq %rax, %rdi
movq 0x26a9(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x26ad(%rip), %rdi      # 0x3fd8
leaq 0x700(%rip), %rsi       # 0x2032
callq 0x1040
movq %rax, %rdi
movq 0x2687(%rip), %rsi      # 0x3fc8
callq 0x1050
movq 0x268b(%rip), %rdi      # 0x3fd8
leaq 0x870(%rip), %rsi       # 0x21c4
callq 0x1040
movq %rax, %rdi
movq 0x2665(%rip), %rsi      # 0x3fc8
callq 0x1050
xorl %eax, %eax
popq %rbp
retq