< := λ(: l U64)(: r U64). (: ( (gensym-label end) (mov( 1_u64 RAX )) (mov( l R8 )) (mov( r R9 )) (cmp( R9 R8 )) (jb end) (mov( 0_u64 RAX )) (label end) (as RAX U64) ) U64); < := λ(: l I64)(: r I64). (: ( (gensym-label end) (mov( 1_u64 RAX )) (mov( l R8 )) (mov( r R9 )) (cmp( R9 R8 )) (jl end) (mov( 0_u64 RAX )) (label end) (as RAX U64) ) U64); <= := λ(: l U64)(: r U64). (: ( (gensym-label end) (mov( 1_u64 RAX )) (mov( l R8 )) (mov( r R9 )) (cmp( R9 R8 )) (jbe end) (mov( 0_u64 RAX )) (label end) (as RAX U64) ) U64); <= := λ(: l I64)(: r I64). (: ( (gensym-label end) (mov( 1_u64 RAX )) (mov( l R8 )) (mov( r R9 )) (cmp( R9 R8 )) (jle end) (mov( 0_u64 RAX )) (label end) (as RAX U64) ) U64); > := λ(: l U64)(: r U64). (: ( (gensym-label end) (mov( 1_u64 RAX )) (mov( l R8 )) (mov( r R9 )) (cmp( R9 R8 )) (ja end) (mov( 0_u64 RAX )) (label end) (as RAX U64) ) U64); > := λ(: l I64)(: r I64). (: ( (gensym-label end) (mov( 1_u64 RAX )) (mov( l R8 )) (mov( r R9 )) (cmp( R9 R8 )) (jg end) (mov( 0_u64 RAX )) (label end) (as RAX U64) ) U64); >= := λ(: l U64)(: r U64). (: ( (gensym-label end) (mov( 1_u64 RAX )) (mov( l R8 )) (mov( r R9 )) (cmp( R9 R8 )) (jae end) (mov( 0_u64 RAX )) (label end) (as RAX U64) ) U64); >= := λ(: l I64)(: r I64). (: ( (gensym-label end) (mov( 1_u64 RAX )) (mov( l R8 )) (mov( r R9 )) (cmp( R9 R8 )) (jge end) (mov( 0_u64 RAX )) (label end) (as RAX U64) ) U64); == := λ(: l U64)(: r U64). (: ( (gensym-label end) (mov( 1_u64 RAX )) (mov( l R8 )) (mov( r R9 )) (cmp( R9 R8 )) (je end) (mov( 0_u64 RAX )) (label end) (as RAX U64) ) U64); == := λ(: l I64)(: r I64). (: ( (gensym-label end) (mov( 1_u64 RAX )) (mov( l R8 )) (mov( r R9 )) (cmp( R9 R8 )) (je end) (mov( 0_u64 RAX )) (label end) (as RAX U64) ) U64); != := λ(: l U64)(: r U64). (: ( (gensym-label end) (mov( 1_u64 RAX )) (mov( l R8 )) (mov( r R9 )) (cmp( R9 R8 )) (jne end) (mov( 0_u64 RAX )) (label end) (as RAX U64) ) U64); && := λ(: l U64)(: r U64). (: ( (gensym-label end) (mov( 0_u64 RAX )) (mov( l R8 )) (cmp( 0_u64 R8 )) (je end) (mov( r R8 )) (cmp( 0_u64 R8 )) (je end) (mov( 1_u64 RAX )) (label end) (as RAX U64) ) U64); || := λ(: l U64)(: r U64). (: ( (gensym-label end) (gensym-label end-true) (mov( 0_u64 RAX )) (mov( l R8 )) (cmp( 0_u64 R8 )) (jne end-true) (mov( r R8 )) (cmp( 0_u64 R8 )) (jne end-true) (jmp end) (label end-true) (mov( 1_u64 RAX )) (label end) (as RAX U64) ) U64); != := λ(: l I64)(: r I64). (: ( (gensym-label end) (mov( 1_u64 RAX )) (mov( l R8 )) (mov( r R9 )) (cmp( R9 R8 )) (jne end) (mov( 0_u64 RAX )) (label end) (as RAX U64) ) U64); + := λ(: l U64)(: r U64). (: ( (mov( l R8 )) (mov( r RAX )) (add( R8 RAX )) (as RAX U64) ) U64); + := λ(: l I64)(: r I64). (: ( (mov( l R8 )) (mov( r RAX )) (add( R8 RAX )) (as RAX I64) ) I64); - := λ(: l I64)(: r I64). (: ( (mov( r R8 )) (mov( l RAX )) (sub( R8 RAX )) (as RAX I64) ) I64); ^ := λ(: l U64)(: r U64). (: ( (mov( r R8 )) (mov( l RAX )) (xor( R8 RAX )) (as RAX U64) ) U64); % := λ(: l U64)(: r U64). (: ( (mov( 0_u64 RDX )) (mov( l RAX )) (mov( r R8 )) (div( R8 )) (as RDX U64) ) U64); % := λ(: l I64)(: r I64). (: ( (mov( 0_u64 RDX )) (mov( l RAX )) (mov( r R8 )) (idiv( R8 )) (as RDX I64) ) I64); / := λ(: l U64)(: r U64). (: ( (mov( 0_u64 RDX )) (mov( l RAX )) (mov( r R8 )) (div( R8 )) (as RAX U64) ) U64); / := λ(: l I64)(: r I64). (: ( (mov( 0_u64 RDX )) (mov( l RAX )) (mov( r R8 )) (idiv( R8 )) (as RAX I64) ) I64); * := λ(: l U64)(: r U64). (: ( (mov( r RAX )) (mov( l R8 )) (mul( R8 )) (as RAX U64) ) U64); * := λ(: l I64)(: r I64). (: ( (mov( r RAX )) (mov( l R8 )) (imul( R8 )) (as RAX I64) ) I64); != := λ(: l U8)(: r U8). (: ( (push R14) (push R15) (gensym-label end-true) (gensym-label end-false) (gensym-label end) (mov( l R14B )) (mov( r R15B )) (cmp( R14B R15B )) (je end-false) (jmp end-true) (label end-true) (mov( 1_u64 RAX )) (jmp end) (label end-false) (mov( 0_u64 RAX )) (jmp end) (label end) (pop R15) (pop R14) (as RAX U64) ) U64); == := λ(: l U8)(: r U8). (: ( (push R14) (push R15) (gensym-label end-true) (gensym-label end-false) (gensym-label end) (mov( l R14B )) (mov( r R15B )) (cmp( R14B R15B )) (je end-true) (jmp end-false) (label end-true) (mov( 1_u64 RAX )) (jmp end) (label end-false) (mov( 0_u64 RAX )) (jmp end) (label end) (pop R15) (pop R14) (as RAX U64) ) U64); == := λ(: l U16)(: r U16). (: ( (push R14) (push R15) (gensym-label end-true) (gensym-label end-false) (gensym-label end) (mov( l R14W )) (mov( r R15W )) (cmp( R14W R15W )) (je end-true) (jmp end-false) (label end-true) (mov( 1_u64 RAX )) (jmp end) (label end-false) (mov( 0_u64 RAX )) (jmp end) (label end) (pop R15) (pop R14) (as RAX U64) ) U64); == := λ(: l U32)(: r U32). (: ( (push R14) (push R15) (gensym-label end-true) (gensym-label end-false) (gensym-label end) (mov( l R14D )) (mov( r R15D )) (cmp( R14D R15D )) (je end-true) (jmp end-false) (label end-true) (mov( 1_u64 RAX )) (jmp end) (label end-false) (mov( 0_u64 RAX )) (jmp end) (label end) (pop R15) (pop R14) (as RAX U64) ) U64); not := λ(: x U64). (: ( (let r 0_u64) (if (==( x 0_u64 )) ( (set r 1_u64) ) ()) r ) U64); not := λ(: x U8). (: ( (let r 0_u64) (if (==( x 0_u8 )) ( (set r 1_u64) ) ()) r ) U64); == := λ(: l I8)(: r I8). (: ( (push R14) (push R15) (gensym-label end-true) (gensym-label end-false) (gensym-label end) (mov( l R14B )) (mov( r R15B )) (cmp( R14B R15B )) (je end-true) (jmp end-false) (label end-true) (mov( 1_u64 RAX )) (jmp end) (label end-false) (mov( 0_u64 RAX )) (jmp end) (label end) (pop R15) (pop R14) (as RAX U64) ) U64); == := λ(: l I16)(: r I16). (: ( (push R14) (push R15) (gensym-label end-true) (gensym-label end-false) (gensym-label end) (mov( l R14W )) (mov( r R15W )) (cmp( R14W R15W )) (je end-true) (jmp end-false) (label end-true) (mov( 1_u64 RAX )) (jmp end) (label end-false) (mov( 0_u64 RAX )) (jmp end) (label end) (pop R15) (pop R14) (as RAX U64) ) U64); == := λ(: l I32)(: r I32). (: ( (push R14) (push R15) (gensym-label end-true) (gensym-label end-false) (gensym-label end) (mov( l R14D )) (mov( r R15D )) (cmp( R14D R15D )) (je end-true) (jmp end-false) (label end-true) (mov( 1_u64 RAX )) (jmp end) (label end-false) (mov( 0_u64 RAX )) (jmp end) (label end) (pop R15) (pop R14) (as RAX U64) ) U64);