opcodes[]: global scope global { global scope implicit__test_32 { } type utf8str: type ucs1str: type ucs2str: type FD: type BlockDevice: type IdeBlockDevice: type I2cBlockDevice: type SerialDevice: void test_32 () { local scope ANON var uint32 a var uint32 b local scope ANON var uint32 a local scope ANON var int32 a var int32 b local scope ANON var uint32 a local scope ANON var int32 a local scope ANON var uint32 a 36863 ( -- uint32 ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) + ( uint32, uint32 -- uint32 ) 73726 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) 4294933708 ( -- uint32 ) lvar-8+8 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) + ( uint32, uint32 -- uint32 ) 4294900120 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) drop ( uint32 -- ) drop ( uint32 -- ) 2166586723 ( -- uint32 ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- int16 ) >> ( uint32, int16 -- uint32 ) 1083293361 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 2 ( -- int16 ) >> ( uint32, int16 -- uint32 ) 541646680 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 3 ( -- int16 ) >> ( uint32, int16 -- uint32 ) 270823340 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 4 ( -- int16 ) >> ( uint32, int16 -- uint32 ) 135411670 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- int16 ) << ( uint32, int16 -- uint32 ) 38206150 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 2 ( -- int16 ) << ( uint32, int16 -- uint32 ) 76412300 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 3 ( -- int16 ) << ( uint32, int16 -- uint32 ) 152824600 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 4 ( -- int16 ) << ( uint32, int16 -- uint32 ) 305649200 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) drop ( uint32 -- ) -2037612874 ( -- int32 ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 1 ( -- int16 ) >> ( int32, int16 -- int32 ) -1018806437 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 2 ( -- int16 ) >> ( int32, int16 -- int32 ) -509403219 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 3 ( -- int16 ) >> ( int32, int16 -- int32 ) -254701610 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 4 ( -- int16 ) >> ( int32, int16 -- int32 ) -127350805 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 1 ( -- int16 ) << ( int32, int16 -- int32 ) 219741548 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 2 ( -- int16 ) << ( int32, int16 -- int32 ) 439483096 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 3 ( -- int16 ) << ( int32, int16 -- int32 ) 878966192 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 4 ( -- int16 ) << ( int32, int16 -- int32 ) 1757932384 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) 2045678987 ( -- int32 ) lvar-8+8 "b" ( -- int32& ) peek ( int32& -- int32 ) 1 ( -- int16 ) >> ( int32, int16 -- int32 ) 1022839493 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) drop ( int32 -- ) drop ( int32 -- ) push_procptr bit32 ( -- void(uint16, uint16)* ) 32 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) push_procptr cmp32 ( -- void(uint16, uint16)* ) 32 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) push_procptr cmp32s ( -- void(uint16, uint16)* ) 32 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) push_procptr cmp32us ( -- void(uint16, uint16)* ) 32 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) push_procptr addsub32 ( -- void(uint16, uint16)* ) 32 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) 0 ( -- uint32 ) 123 ( -- uint32 ) lvar-4+8 "a" ( -- uint32& ) poke ( uint32, uint32& -- ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 32 ( -- uint32 ) * ( uint32, uint32 -- uint32 ) 3936 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) 34456 ( -- uint32 ) lvar-4+8 "a" ( -- uint32& ) poke ( uint32, uint32& -- ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 132 ( -- uint32 ) * ( uint32, uint32 -- uint32 ) 4548192 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) 34456 ( -- uint32 ) lvar-4+8 "a" ( -- uint32& ) poke ( uint32, uint32& -- ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 56132 ( -- uint32 ) * ( uint32, uint32 -- uint32 ) 1934084192 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) 3774456 ( -- uint32 ) lvar-4+8 "a" ( -- uint32& ) poke ( uint32, uint32& -- ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 132 ( -- uint32 ) * ( uint32, uint32 -- uint32 ) 498228192 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) 33373548 ( -- uint32 ) lvar-4+8 "a" ( -- uint32& ) poke ( uint32, uint32& -- ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 2 ( -- uint32 ) * ( uint32, uint32 -- uint32 ) 66747096 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) drop ( uint32 -- ) 0 ( -- int32 ) 123 ( -- int32 ) lvar-4+8 "a" ( -- int32& ) poke ( int32, int32& -- ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 32 ( -- uint32 ) * ( int32, uint32 -- int32 ) 3936 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) 34456 ( -- int32 ) lvar-4+8 "a" ( -- int32& ) poke ( int32, int32& -- ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 132 ( -- uint32 ) * ( int32, uint32 -- int32 ) 4548192 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) -24456 ( -- int32 ) lvar-4+8 "a" ( -- int32& ) poke ( int32, int32& -- ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 56132 ( -- uint32 ) * ( int32, uint32 -- int32 ) -1372764192 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) 3774456 ( -- int32 ) lvar-4+8 "a" ( -- int32& ) poke ( int32, int32& -- ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 132 ( -- uint32 ) * ( int32, uint32 -- int32 ) 498228192 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) -33373548 ( -- int32 ) lvar-4+8 "a" ( -- int32& ) poke ( int32, int32& -- ) lvar-4+4 "a" ( -- int32& ) peek ( int32& -- int32 ) 2 ( -- uint32 ) * ( int32, uint32 -- int32 ) -66747096 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) drop ( int32 -- ) 2166586723 ( -- uint32 ) lvar-4+4 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 33092 ( -- uint32 ) / ( uint32, uint32 -- uint32 ) 65471 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) drop ( uint32 -- ) push_procptr mul32 ( -- void(uint16, uint16)* ) 32 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) push_procptr muldiv32 ( -- void(uint16, uint16)* ) 32 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) push_procptr muldiv32s ( -- void(uint16, uint16)* ) 32 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) local scope ANON { } local scope ANON { } local scope ANON { } local scope ANON { } local scope ANON { } local scope ANON { } } uint32 rand32 ( uint16 bits ) { var uint16 bits var uint32 b call random ( -- uint16 ) cast ( uint16 -- uint32 ) call random ( -- uint16 ) 32768 ( -- uint16 ) | ( uint16, uint16 -- uint16 ) lvar-4+6 "b" ( -- uint32& ) hi ( uint32& -- uint16& ) poke ( uint16, uint16& -- ) lvar-4+4 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) 32 ( -- uint16 ) lvar+0+10 "bits" ( -- uint16& ) peek ( uint16& -- uint16 ) - ( uint16, uint16 -- uint16 ) >> ( uint32, int16 -- uint32 ) tor ( uint32 -- ) drop ( uint32 -- ) drop ( uint16 -- ) fromr ( -- uint32 ) } void bit32 ( uint16 n, uint16 m ) { var uint16 n var uint16 m var uint32 a var uint32 b var uint32 c var uint32 v lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand32 ( uint16 -- uint32 ) lvar+0+4 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand32 ( uint16 -- uint32 ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) & ( uint32, uint32 -- uint32 ) lvar-12+12 "c" ( -- uint32& ) hi ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+14 "a" ( -- uint32& ) hi ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+16 "b" ( -- uint32& ) hi ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) & ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-12+12 "c" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+14 "a" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+16 "b" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) & ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) | ( uint32, uint32 -- uint32 ) lvar-12+16 "c" ( -- uint32& ) poke ( uint32, uint32& -- ) lvar-12+12 "c" ( -- uint32& ) hi ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+14 "a" ( -- uint32& ) hi ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+16 "b" ( -- uint32& ) hi ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) | ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-12+12 "c" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+14 "a" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+16 "b" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) | ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) ^ ( uint32, uint32 -- uint32 ) lvar-12+16 "c" ( -- uint32& ) poke ( uint32, uint32& -- ) lvar-12+12 "c" ( -- uint32& ) hi ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+14 "a" ( -- uint32& ) hi ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+16 "b" ( -- uint32& ) hi ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) ^ ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-12+12 "c" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+14 "a" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+16 "b" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) ^ ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) ~ ( uint32 -- uint32 ) | ( uint32, uint32 -- uint32 ) 4294967295 ( -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) - ( int32 -- int32 ) + ( uint32, int32 -- int32 ) 0 ( -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) call msbit ( uint32 -- uint8 ) cast ( uint8 -- uint16 ) lvar+2+14 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 1 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-16+20 "v" ( -- uint32& ) |= ( uint32, uint32& -- ) lvar-16+16 "v" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+20 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+24 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) | ( uint32, uint32 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-16+20 "v" ( -- uint32& ) poke ( uint32, uint32& -- ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-16+20 "v" ( -- uint32& ) &= ( uint32, uint32& -- ) lvar-16+16 "v" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+20 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+24 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) & ( uint32, uint32 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-16+20 "v" ( -- uint32& ) poke ( uint32, uint32& -- ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-16+20 "v" ( -- uint32& ) ^= ( uint32, uint32& -- ) lvar-16+16 "v" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+20 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+24 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) ^ ( uint32, uint32 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) drop ( uint32 -- ) drop ( uint32 -- ) drop ( uint32 -- ) drop ( uint32 -- ) drop ( uint16 -- ) drop ( uint16 -- ) } void cmp32 ( uint16 n, uint16 m ) { var uint16 n var uint16 m var uint32 a var uint32 b lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L703 jp ( -- ) -> L702 L703: lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call min ( uint16, uint16 -- uint16 ) call rand32 ( uint16 -- uint32 ) lvar+2+4 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+6 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call max ( uint16, uint16 -- uint16 ) call rand32 ( uint16 -- uint32 ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) <= ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) < ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) != ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- uint32 ) + ( uint32, uint32 -- uint32 ) <= ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) <= ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) >= ( uint32, uint32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) > ( uint32, uint32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert0 ( bool ) lvar-8+8 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) != ( uint32, uint32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- uint32 ) + ( uint32, uint32 -- uint32 ) >= ( uint32, uint32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) > ( uint32, uint32 -- bool ) call assert0 ( bool ) drop ( uint32 -- ) drop ( uint32 -- ) L702: drop ( uint16 -- ) drop ( uint16 -- ) } void cmp32s ( uint16 n, uint16 m ) { var uint16 n var uint16 m var int32 a var int32 b lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L707 jp ( -- ) -> L706 L707: lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 32 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L711 lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) jp ( -- ) -> L712 L711: lvar+0+0 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) 32 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L709 lvar+0+0 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) jp ( -- ) -> L712 L709: lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call min ( uint16, uint16 -- uint16 ) L712: call rand32 ( uint16 -- uint32 ) lvar+2+4 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 32 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L715 lvar+0+4 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) jp ( -- ) -> L716 L715: lvar+0+4 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) 32 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L713 lvar+2+4 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) jp ( -- ) -> L716 L713: lvar+2+4 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+6 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call max ( uint16, uint16 -- uint16 ) L716: call rand32 ( uint16 -- uint32 ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) != ( int32, int32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) <= ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) >= ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) < ( int32, int32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) > ( int32, int32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- int32& ) peek ( int32& -- int32 ) >= ( int32, int32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- int32& ) peek ( int32& -- int32 ) < ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- int32& ) peek ( int32& -- int32 ) > ( int32, int32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- int32& ) peek ( int32& -- int32 ) == ( int32, int32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- int32& ) peek ( int32& -- int32 ) != ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- int32& ) peek ( int32& -- int32 ) <= ( int32, int32 -- bool ) call assert1 ( bool ) drop ( int32 -- ) drop ( int32 -- ) L706: drop ( uint16 -- ) drop ( uint16 -- ) } void cmp32us ( uint16 n, uint16 m ) { var uint16 n var uint16 m var int32 a var uint32 b lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L719 jp ( -- ) -> L718 L719: lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 32 ( -- uint16 ) == ( uint16, uint16 -- bool ) or1 ( bool -- ) -> L721 lvar+0+0 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) 32 ( -- uint16 ) == ( uint16, uint16 -- bool ) L721: jp_z ( bool -- ) -> L722 lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) jp ( -- ) -> L723 L722: lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call min ( uint16, uint16 -- uint16 ) L723: call rand32 ( uint16 -- uint32 ) lvar+2+4 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 32 ( -- uint16 ) == ( uint16, uint16 -- bool ) or1 ( bool -- ) -> L724 lvar+0+4 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) 32 ( -- uint16 ) == ( uint16, uint16 -- bool ) L724: jp_z ( bool -- ) -> L725 lvar+0+4 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) jp ( -- ) -> L726 L725: lvar+2+4 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+6 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call max ( uint16, uint16 -- uint16 ) L726: call rand32 ( uint16 -- uint32 ) lvar+2+8 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 32 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L727 lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) != ( int32, uint32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) == ( int32, uint32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) != ( uint32, int32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) == ( uint32, int32 -- bool ) call assert0 ( bool ) jp ( -- ) -> L727 L727: lvar-8+8 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) <= ( uint32, int32 -- bool ) call assert0 ( bool ) lvar-8+8 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) > ( uint32, int32 -- bool ) call assert1 ( bool ) lvar-8+8 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) < ( uint32, int32 -- bool ) call assert0 ( bool ) lvar-8+8 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) == ( uint32, int32 -- bool ) call assert0 ( bool ) lvar-8+8 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) != ( uint32, int32 -- bool ) call assert1 ( bool ) lvar-8+8 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) >= ( uint32, int32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) >= ( int32, uint32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) < ( int32, uint32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) > ( int32, uint32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( int32, uint32 -- bool ) call assert0 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) != ( int32, uint32 -- bool ) call assert1 ( bool ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) <= ( int32, uint32 -- bool ) call assert1 ( bool ) drop ( uint32 -- ) drop ( int32 -- ) L718: drop ( uint16 -- ) drop ( uint16 -- ) } void mul32 ( uint16 n, uint16 m ) { var uint16 n var uint16 m var uint32 a var uint32 b var uint32 c var uint16 axc var uint16 axd var uint16 bxc var uint16 bxd var uint16 f var uint16 e var uint16 d lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand32 ( uint16 -- uint32 ) lvar+0+4 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand32 ( uint16 -- uint32 ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) * ( uint32, uint32 -- uint32 ) lvar-12+12 "c" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+14 "a" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+16 "b" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) * ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) lo ( uint32& -- uint16& ) hi ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) lvar-8+14 "b" ( -- uint32& ) lo ( uint32& -- uint16& ) hi ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) * ( uint8, uint8 -- uint16 ) lvar-4+14 "a" ( -- uint32& ) lo ( uint32& -- uint16& ) lo ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) lvar-8+16 "b" ( -- uint32& ) lo ( uint32& -- uint16& ) hi ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) * ( uint8, uint8 -- uint16 ) lvar-4+16 "a" ( -- uint32& ) lo ( uint32& -- uint16& ) hi ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) lvar-8+18 "b" ( -- uint32& ) lo ( uint32& -- uint16& ) lo ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) * ( uint8, uint8 -- uint16 ) lvar-4+18 "a" ( -- uint32& ) lo ( uint32& -- uint16& ) lo ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) lvar-8+20 "b" ( -- uint32& ) lo ( uint32& -- uint16& ) lo ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) * ( uint8, uint8 -- uint16 ) lvar-14+20 "axc" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-16+22 "axd" ( -- uint16& ) peek ( uint16& -- uint16 ) 8 ( -- int16 ) >> ( uint16, int16 -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar-18+22 "bxc" ( -- uint16& ) peek ( uint16& -- uint16 ) 8 ( -- int16 ) >> ( uint16, int16 -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar-20+22 "bxd" ( -- uint16& ) peek ( uint16& -- uint16 ) 8 ( -- int16 ) >> ( uint16, int16 -- uint16 ) lvar-16+24 "axd" ( -- uint16& ) peek ( uint16& -- uint16 ) 255 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar-18+24 "bxc" ( -- uint16& ) peek ( uint16& -- uint16 ) 255 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) + ( uint16, uint16 -- uint16 ) 8 ( -- int16 ) >> ( uint16, int16 -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar-4+22 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 65535 ( -- uint32 ) & ( uint32, uint32 -- uint32 ) lvar-8+26 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) 65535 ( -- uint32 ) & ( uint32, uint32 -- uint32 ) * ( uint32, uint32 -- uint32 ) 16 ( -- int16 ) >> ( uint32, int16 -- uint32 ) cast ( uint32 -- uint16 ) lvar-4+24 "a" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- uint32 ) lvar-8+28 "b" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- uint32 ) * ( uint32, uint32 -- uint32 ) hi ( uint32 -- uint16 ) lvar-26+26 "d" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-24+28 "e" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-26+26 "d" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-22+28 "f" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-12+26 "c" ( -- uint32& ) hi ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+28 "a" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+30 "b" ( -- uint32& ) hi ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) * ( uint16, uint16 -- uint16 ) lvar-4+30 "a" ( -- uint32& ) hi ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+32 "b" ( -- uint32& ) lo ( uint32& -- uint16& ) peek ( uint16& -- uint16 ) * ( uint16, uint16 -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar-22+30 "f" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint32 -- ) drop ( uint32 -- ) drop ( uint32 -- ) drop ( uint16 -- ) drop ( uint16 -- ) } void muldiv32 ( uint16 n, uint16 m ) { var uint16 n var uint16 m var uint32 a var uint32 b var uint32 c var uint32 v lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint16, uint16 -- uint16 ) 32 ( -- uint16 ) > ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L733 jp ( -- ) -> L732 L733: lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand32 ( uint16 -- uint32 ) lvar+0+4 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand32 ( uint16 -- uint32 ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) * ( uint32, uint32 -- uint32 ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 2 ( -- uint32 ) * ( uint32, uint32 -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- int16 ) << ( uint32, int16 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 4 ( -- uint32 ) * ( uint32, uint32 -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 2 ( -- int16 ) << ( uint32, int16 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 8 ( -- uint32 ) * ( uint32, uint32 -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 3 ( -- int16 ) << ( uint32, int16 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 2 ( -- uint32 ) / ( uint32, uint32 -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- int16 ) >> ( uint32, int16 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 4 ( -- uint32 ) / ( uint32, uint32 -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 2 ( -- int16 ) >> ( uint32, int16 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 8 ( -- uint32 ) / ( uint32, uint32 -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 3 ( -- int16 ) >> ( uint32, int16 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 0 ( -- uint32 ) != ( uint32, uint32 -- bool ) jp_z ( bool -- ) -> L735 lvar-12+12 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) / ( uint32, uint32 -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) jp ( -- ) -> L735 L735: lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) 0 ( -- uint32 ) != ( uint32, uint32 -- bool ) jp_z ( bool -- ) -> L737 lvar-12+12 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) / ( uint32, uint32 -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) jp ( -- ) -> L737 L737: lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- uint32 ) > ( uint32, uint32 -- bool ) jp_z ( bool -- ) -> L739 lvar-12+12 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- uint32 ) + ( uint32, uint32 -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) / ( uint32, uint32 -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) jp ( -- ) -> L739 L739: lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- uint32 ) > ( uint32, uint32 -- bool ) jp_z ( bool -- ) -> L741 lvar-12+12 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) + ( uint32, uint32 -- uint32 ) 1 ( -- uint32 ) - ( uint32, uint32 -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) / ( uint32, uint32 -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) jp ( -- ) -> L741 L741: lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar+0+16 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) >> ( uint32, int16 -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- uint32 ) lvar+0+24 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( uint32, int16 -- uint32 ) / ( uint32, uint32 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar+2+16 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( uint32, int16 -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- uint32 ) lvar+2+24 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( uint32, int16 -- uint32 ) * ( uint32, uint32 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-16+20 "v" ( -- uint32& ) *= ( uint32, uint32& -- ) lvar-16+16 "v" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-12+20 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-16+20 "v" ( -- uint32& ) /= ( uint32, uint32& -- ) lvar-16+16 "v" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+20 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) drop ( uint32 -- ) drop ( uint32 -- ) drop ( uint32 -- ) drop ( uint32 -- ) L732: drop ( uint16 -- ) drop ( uint16 -- ) } void muldivssub ( int32 a, int32 b, int32 c ) { var int32 a var int32 b var int32 c var int32 v lvar+8+0 "a" ( -- int32& ) peek ( int32& -- int32 ) 0 ( -- int32 ) != ( int32, int32 -- bool ) and0 ( bool -- ) -> L747 lvar+0+0 "c" ( -- int32& ) peek ( int32& -- int32 ) lvar+8+4 "a" ( -- int32& ) peek ( int32& -- int32 ) / ( int32, int32 -- int32 ) lvar+4+4 "b" ( -- int32& ) peek ( int32& -- int32 ) != ( int32, int32 -- bool ) L747: or1 ( bool -- ) -> L749 lvar+4+0 "b" ( -- int32& ) peek ( int32& -- int32 ) 0 ( -- int32 ) != ( int32, int32 -- bool ) and0 ( bool -- ) -> L749 lvar+0+0 "c" ( -- int32& ) peek ( int32& -- int32 ) lvar+4+4 "b" ( -- int32& ) peek ( int32& -- int32 ) / ( int32, int32 -- int32 ) lvar+8+4 "a" ( -- int32& ) peek ( int32& -- int32 ) != ( int32, int32 -- bool ) L749: jp_z ( bool -- ) -> L745 "\r\na=" ( -- ucs1str ) call puts ( ucs1str ) lvar+8+0 "a" ( -- int32& ) hi ( int32& -- int16& ) peek ( int16& -- int16 ) call putnum ( int16 ) "." ( -- ucs1str ) call puts ( ucs1str ) lvar+8+0 "a" ( -- int32& ) lo ( int32& -- int16& ) peek ( int16& -- int16 ) call putnum ( int16 ) " b=" ( -- ucs1str ) call puts ( ucs1str ) lvar+4+0 "b" ( -- int32& ) hi ( int32& -- int16& ) peek ( int16& -- int16 ) call putnum ( int16 ) "." ( -- ucs1str ) call puts ( ucs1str ) lvar+4+0 "b" ( -- int32& ) lo ( int32& -- int16& ) peek ( int16& -- int16 ) call putnum ( int16 ) " c=" ( -- ucs1str ) call puts ( ucs1str ) lvar+0+0 "c" ( -- int32& ) hi ( int32& -- int16& ) peek ( int16& -- int16 ) call putnum ( int16 ) "." ( -- ucs1str ) call puts ( ucs1str ) lvar+0+0 "c" ( -- int32& ) lo ( int32& -- int16& ) peek ( int16& -- int16 ) call putnum ( int16 ) call flush () jp ( -- ) -> L745 L745: lvar+8+0 "a" ( -- int32& ) peek ( int32& -- int32 ) 0 ( -- int32 ) != ( int32, int32 -- bool ) jp_z ( bool -- ) -> L750 lvar+0+0 "c" ( -- int32& ) peek ( int32& -- int32 ) lvar+8+4 "a" ( -- int32& ) peek ( int32& -- int32 ) / ( int32, int32 -- int32 ) lvar+4+4 "b" ( -- int32& ) peek ( int32& -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) jp ( -- ) -> L750 L750: lvar+4+0 "b" ( -- int32& ) peek ( int32& -- int32 ) 0 ( -- int32 ) != ( int32, int32 -- bool ) jp_z ( bool -- ) -> L752 lvar+0+0 "c" ( -- int32& ) peek ( int32& -- int32 ) lvar+4+4 "b" ( -- int32& ) peek ( int32& -- int32 ) / ( int32, int32 -- int32 ) lvar+8+4 "a" ( -- int32& ) peek ( int32& -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) jp ( -- ) -> L752 L752: lvar+8+0 "a" ( -- int32& ) peek ( int32& -- int32 ) call abs ( int32 -- uint32 ) 1 ( -- uint32 ) > ( uint32, uint32 -- bool ) jp_z ( bool -- ) -> L754 lvar+0+0 "c" ( -- int32& ) peek ( int32& -- int32 ) lvar+0+4 "c" ( -- int32& ) peek ( int32& -- int32 ) call sign ( int32 -- int16 ) cast ( int16 -- int32 ) + ( int32, int32 -- int32 ) lvar+8+4 "a" ( -- int32& ) peek ( int32& -- int32 ) / ( int32, int32 -- int32 ) lvar+4+4 "b" ( -- int32& ) peek ( int32& -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) jp ( -- ) -> L754 L754: lvar+8+0 "a" ( -- int32& ) peek ( int32& -- int32 ) call abs ( int32 -- uint32 ) 1 ( -- uint32 ) > ( uint32, uint32 -- bool ) jp_z ( bool -- ) -> L756 lvar+0+0 "c" ( -- int32& ) peek ( int32& -- int32 ) lvar+0+4 "c" ( -- int32& ) peek ( int32& -- int32 ) call sign ( int32 -- int16 ) cast ( int16 -- int32 ) lvar+8+8 "a" ( -- int32& ) peek ( int32& -- int32 ) call abs ( int32 -- uint32 ) 1 ( -- uint32 ) - ( uint32, uint32 -- uint32 ) * ( int32, uint32 -- int32 ) + ( int32, int32 -- int32 ) lvar+8+4 "a" ( -- int32& ) peek ( int32& -- int32 ) / ( int32, int32 -- int32 ) lvar+4+4 "b" ( -- int32& ) peek ( int32& -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) jp ( -- ) -> L756 L756: lvar+8+0 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar+4+4 "b" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+8 "v" ( -- int32& ) *= ( int32, int32& -- ) lvar-4+4 "v" ( -- int32& ) peek ( int32& -- int32 ) lvar+0+8 "c" ( -- int32& ) peek ( int32& -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) lvar+4+4 "b" ( -- int32& ) peek ( int32& -- int32 ) lvar-4+8 "v" ( -- int32& ) /= ( int32, int32& -- ) lvar-4+4 "v" ( -- int32& ) peek ( int32& -- int32 ) lvar+8+8 "a" ( -- int32& ) peek ( int32& -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) drop ( int32 -- ) drop ( int32 -- ) drop ( int32 -- ) drop ( int32 -- ) } void muldiv32s ( uint16 n, uint16 m ) { var uint16 n var uint16 m var int32 a var int32 b var int32 c lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint16, uint16 -- uint16 ) 30 ( -- uint16 ) > ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L760 jp ( -- ) -> L759 L760: lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand32 ( uint16 -- uint32 ) lvar+0+4 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand32 ( uint16 -- uint32 ) lvar-4+8 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+12 "b" ( -- int32& ) peek ( int32& -- int32 ) * ( int32, int32 -- int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+16 "b" ( -- int32& ) peek ( int32& -- int32 ) lvar-12+20 "c" ( -- int32& ) peek ( int32& -- int32 ) call muldivssub ( int32, int32, int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) - ( int32 -- int32 ) lvar-8+16 "b" ( -- int32& ) peek ( int32& -- int32 ) lvar-12+20 "c" ( -- int32& ) peek ( int32& -- int32 ) - ( int32 -- int32 ) call muldivssub ( int32, int32, int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar-8+16 "b" ( -- int32& ) peek ( int32& -- int32 ) - ( int32 -- int32 ) lvar-12+20 "c" ( -- int32& ) peek ( int32& -- int32 ) - ( int32 -- int32 ) call muldivssub ( int32, int32, int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) - ( int32 -- int32 ) lvar-8+16 "b" ( -- int32& ) peek ( int32& -- int32 ) - ( int32 -- int32 ) lvar-12+20 "c" ( -- int32& ) peek ( int32& -- int32 ) call muldivssub ( int32, int32, int32 ) lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) 0 ( -- int32 ) >= ( int32, int32 -- bool ) jp_z ( bool -- ) -> L763 lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar+0+16 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) >> ( int32, int16 -- int32 ) lvar-4+16 "a" ( -- int32& ) peek ( int32& -- int32 ) 1 ( -- int32 ) lvar+0+24 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( int32, int16 -- int32 ) / ( int32, int32 -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) jp ( -- ) -> L762 L763: lvar-4+12 "a" ( -- int32& ) peek ( int32& -- int32 ) lvar+0+16 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) >> ( int32, int16 -- int32 ) - ( int32 -- int32 ) lvar-4+16 "a" ( -- int32& ) peek ( int32& -- int32 ) - ( int32 -- int32 ) 1 ( -- int32 ) lvar+0+24 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( int32, int16 -- int32 ) / ( int32, int32 -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) L762: lvar-8+12 "b" ( -- int32& ) peek ( int32& -- int32 ) lvar+2+16 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( int32, int16 -- int32 ) lvar-8+16 "b" ( -- int32& ) peek ( int32& -- int32 ) 1 ( -- int32 ) lvar+2+24 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( int32, int16 -- int32 ) * ( int32, int32 -- int32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) drop ( int32 -- ) drop ( int32 -- ) drop ( int32 -- ) L759: drop ( uint16 -- ) drop ( uint16 -- ) } void addsub32 ( uint16 n, uint16 m ) { var uint16 n var uint16 m var uint32 a var uint32 b var uint32 c var uint32 v lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand32 ( uint16 -- uint32 ) lvar+0+4 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand32 ( uint16 -- uint32 ) lvar-4+8 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) + ( uint32, uint32 -- uint32 ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) ~ ( uint32 -- uint32 ) 4294967295 ( -- uint32 ) lvar-4+20 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) - ( uint32, uint32 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-8+12 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) + ( uint32, uint32 -- uint32 ) lvar-12+16 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) + ( uint32, uint32 -- uint32 ) lvar-12+16 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-12+12 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) - ( uint32, uint32 -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-12+12 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) - ( uint32, uint32 -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-12+12 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) - ( int32 -- int32 ) + ( uint32, int32 -- int32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( int32, int32 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+16 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) + ( uint32, uint32 -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- int16 ) << ( uint32, int16 -- uint32 ) + ( uint32, uint32 -- uint32 ) lvar-12+16 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) 1 ( -- int16 ) << ( uint32, int16 -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-4+12 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-16+20 "v" ( -- uint32& ) += ( uint32, uint32& -- ) lvar-16+16 "v" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-12+20 "c" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) lvar-8+16 "b" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-16+20 "v" ( -- uint32& ) -= ( uint32, uint32& -- ) lvar-16+16 "v" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar-4+20 "a" ( -- uint32& ) peek ( uint32& -- uint32 ) == ( uint32, uint32 -- bool ) call assert1 ( bool ) drop ( uint32 -- ) drop ( uint32 -- ) drop ( uint32 -- ) drop ( uint32 -- ) drop ( uint16 -- ) drop ( uint16 -- ) } void test ( void(uint16, uint16) fu, uint16 maxbits ) { var void(uint16, uint16) fu var uint16 maxbits var uint16 n local scope ANON var uint16 m 1 ( -- uint16 ) L768: 1 ( -- uint16 ) L770: lvar-2+4 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+6 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+2+8 "fu" ( -- void(uint16, uint16)& ) peek ( void(uint16, uint16)& -- void(uint16, uint16) ) call_procptr ( uint16, uint16, void(uint16, uint16) ) lvar-4+4 "m" ( -- uint16& ) pppeek ( uint16& -- uint16 ) lvar+0+6 "maxbits" ( -- uint16& ) peek ( uint16& -- uint16 ) <= ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L771 jp ( -- ) -> L770 L771: lvar-2+4 "n" ( -- uint16& ) pppeek ( uint16& -- uint16 ) lvar+0+6 "maxbits" ( -- uint16& ) peek ( uint16& -- uint16 ) <= ( uint16, uint16 -- bool ) jp_nz ( bool -- ) -> L772 drop ( uint16 -- ) jp ( -- ) -> L767 L772: drop ( uint16 -- ) jp ( -- ) -> L768 L767: drop ( uint16 -- ) drop ( uint16 -- ) drop ( void(uint16, uint16) -- ) local scope ANON { } } }