main-with-argv := False_u8; main-with := False_u8; compile-text-header := λ . (: ( (let output SNil) (set output (SCons( (close output) (close(SAtom '.global\s_start\n_s )) ))) (set output (SCons( (close output) (close(SAtom '.text\n_s )) ))) (set output (SCons( (close output) (close(SAtom '_start:\n_s )) ))) (if (non-zero assemble-init-section) ( (set output (SCons( (close output) (close(SAtom '\tmov\s%rsp,%rbp\n_s )) ))) (set output (SCons( (close output) (close assemble-init-section) ))) (set output (SCons( (close output) (close(SAtom '\tmov\s%rbp,%rsp\n_s )) ))) ) ()) (if (==( main-with-argv True_u8 )) ( (set output (SCons( (close output) (close(SAtom '\tpopq\s%r8\n_s )) ))) (set output (SCons( (close output) (close(SAtom '\tmovq\s%rsp,\s%r9\n_s )) ))) ) ()) (if (==( main-with True_u8 )) ( (set output (SCons( (close output) (close(SAtom '\tpush\s%rbp\n_s )) ))) (set output (SCons( (close output) (close(SAtom '\tmov\s%rsp,\s%rbp\n_s )) ))) (if (==( main-with-argv True_u8 )) ( (set output (SCons( (close output) (close(SAtom '\tpushq\s%r8\n_s )) ))) (set output (SCons( (close output) (close(SAtom '\tpushq\s%r9\n_s )) ))) ) ()) (set output (SCons( (close output) (close(SAtom '\tcall\smain\n_s )) ))) (set output (SCons( (close output) (close(SAtom '\tmov\s%rbp,\s%rsp\n_s )) ))) (set output (SCons( (close output) (close(SAtom '\tpop\s%rbp\n_s )) ))) ) ()) output ) S); compile-data-header := λ . (: ( (let output SNil) (set output (SCons( (close output) (close(SAtom '.data\n_s )) ))) output ) S); compile-exit-cleanup := λ . (: ( (let r SNil) (set r (SCons( (close r) (close(SAtom '\tmov\s$60,\s%rax\n_s)) ))) (set r (SCons( (close r) (close(SAtom '\tmov\s$0,\s%rdi\n_s)) ))) (set r (SCons( (close r) (close(SAtom '\tsyscall\n_s)) ))) r ) S);