opcodes[]: global scope global { global scope implicit__test_8 { } type utf8str: type ucs1str: type ucs2str: type FD: type BlockDevice: type IdeBlockDevice: type I2cBlockDevice: type SerialDevice: void test_8 () { push_procptr bit ( -- void(uint16, uint16)* ) 8 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) push_procptr cmp ( -- void(uint16, uint16)* ) 8 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) push_procptr cmps ( -- void(uint16, uint16)* ) 8 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) push_procptr cmpus ( -- void(uint16, uint16)* ) 8 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) push_procptr addsub ( -- void(uint16, uint16)* ) 8 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) push_procptr muldiv ( -- void(uint16, uint16)* ) 8 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) push_procptr muldivs ( -- void(uint16, uint16)* ) 8 ( -- uint16 ) call test ( void(uint16,uint16), uint16 ) } uint8 rand ( uint16 bits ) { var uint16 bits var uint8 b call random ( -- uint16 ) 128 ( -- uint16 ) | ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) lvar-2+2 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 8 ( -- uint16 ) lvar+0+6 "bits" ( -- uint16& ) peek ( uint16& -- uint16 ) - ( uint16, uint16 -- uint16 ) >> ( uint16, int16 -- uint16 ) cast ( uint16 -- uint8 ) tor ( uint8 -- ) drop ( uint8 -- ) drop ( uint16 -- ) fromr ( -- uint8 ) } void bit ( uint16 n, uint16 m ) { var uint16 n var uint16 m var uint8 a var uint8 b var uint8 c var uint8 v lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand ( uint16 -- uint8 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand ( uint16 -- uint8 ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) & ( uint8, uint8 -- uint8 ) lvar-6+6 "c" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-4+10 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) & ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) | ( uint8, uint8 -- uint8 ) lvar-6+8 "c" ( -- uint8& ) poke ( uint8, uint8& -- ) lvar-6+6 "c" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-4+10 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) | ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) ^ ( uint8, uint8 -- uint8 ) lvar-6+8 "c" ( -- uint8& ) poke ( uint8, uint8& -- ) lvar-6+6 "c" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-4+10 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) ^ ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) 1 ( -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) - ( int8 -- int8 ) + ( uint8, int8 -- int16 ) 0 ( -- int16 ) == ( int16, int16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) call msbit ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) lvar+2+8 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 1 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-8+10 "v" ( -- uint8& ) |= ( uint8, uint8& -- ) lvar-8+8 "v" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+10 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+12 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) | ( uint8, uint8 -- uint8 ) == ( uint8, uint8 -- bool ) call assert1 ( bool ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-8+10 "v" ( -- uint8& ) poke ( uint8, uint8& -- ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-8+10 "v" ( -- uint8& ) &= ( uint8, uint8& -- ) lvar-8+8 "v" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+10 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+12 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) & ( uint8, uint8 -- uint8 ) == ( uint8, uint8 -- bool ) call assert1 ( bool ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-8+10 "v" ( -- uint8& ) poke ( uint8, uint8& -- ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-8+10 "v" ( -- uint8& ) ^= ( uint8, uint8& -- ) lvar-8+8 "v" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+10 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+12 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) ^ ( uint8, uint8 -- uint8 ) == ( uint8, uint8 -- bool ) call assert1 ( bool ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint16 -- ) drop ( uint16 -- ) } void cmp ( uint16 n, uint16 m ) { var uint16 n var uint16 m var uint8 a var uint8 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 rand ( uint16 -- uint8 ) lvar+2+2 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+4 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call max ( uint16, uint16 -- uint16 ) call rand ( uint16 -- uint8 ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) <= ( uint8, uint8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) < ( uint8, uint8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) != ( uint8, uint8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) == ( uint8, uint8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) <= ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) <= ( uint8, uint8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) >= ( uint8, uint8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) > ( uint8, uint8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) == ( uint8, uint8 -- bool ) call assert0 ( bool ) lvar-4+4 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) != ( uint8, uint8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) >= ( uint16, uint16 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) > ( uint8, uint8 -- bool ) call assert0 ( bool ) drop ( uint8 -- ) drop ( uint8 -- ) L702: drop ( uint16 -- ) drop ( uint16 -- ) } void cmps ( uint16 n, uint16 m ) { var uint16 n var uint16 m var int8 a var int8 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 ) 8 ( -- 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 ) 8 ( -- 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 rand ( uint16 -- uint8 ) lvar+2+2 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 8 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L715 lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) jp ( -- ) -> L716 L715: lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) 8 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L713 lvar+2+2 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) jp ( -- ) -> L716 L713: lvar+2+2 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+4 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call max ( uint16, uint16 -- uint16 ) L716: call rand ( uint16 -- uint8 ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) == ( int8, int8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) != ( int8, int8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) <= ( int8, int8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) >= ( int8, int8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) < ( int8, int8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) > ( int8, int8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- int8& ) peek ( int8& -- int8 ) >= ( int8, int8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- int8& ) peek ( int8& -- int8 ) < ( int8, int8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- int8& ) peek ( int8& -- int8 ) > ( int8, int8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- int8& ) peek ( int8& -- int8 ) == ( int8, int8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- int8& ) peek ( int8& -- int8 ) != ( int8, int8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- int8& ) peek ( int8& -- int8 ) <= ( int8, int8 -- bool ) call assert1 ( bool ) drop ( int8 -- ) drop ( int8 -- ) L706: drop ( uint16 -- ) drop ( uint16 -- ) } void cmpus ( uint16 n, uint16 m ) { var uint16 n var uint16 m var int8 a var uint8 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 ) 8 ( -- uint16 ) == ( uint16, uint16 -- bool ) or1 ( bool -- ) -> L721 lvar+0+0 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) 8 ( -- 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 rand ( uint16 -- uint8 ) lvar+2+2 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 8 ( -- uint16 ) == ( uint16, uint16 -- bool ) or1 ( bool -- ) -> L724 lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) 8 ( -- uint16 ) == ( uint16, uint16 -- bool ) L724: jp_z ( bool -- ) -> L725 lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) jp ( -- ) -> L726 L725: lvar+2+2 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+4 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call max ( uint16, uint16 -- uint16 ) L726: call rand ( uint16 -- uint8 ) lvar+2+4 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 8 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L727 lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) != ( int8, uint8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) == ( int8, uint8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) != ( uint8, int8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) == ( uint8, int8 -- bool ) call assert0 ( bool ) jp ( -- ) -> L727 L727: lvar-4+4 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) <= ( uint8, int8 -- bool ) call assert0 ( bool ) lvar-4+4 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) > ( uint8, int8 -- bool ) call assert1 ( bool ) lvar-4+4 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) < ( uint8, int8 -- bool ) call assert0 ( bool ) lvar-4+4 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) == ( uint8, int8 -- bool ) call assert0 ( bool ) lvar-4+4 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) != ( uint8, int8 -- bool ) call assert1 ( bool ) lvar-4+4 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) >= ( uint8, int8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) >= ( int8, uint8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) < ( int8, uint8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) > ( int8, uint8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) == ( int8, uint8 -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) != ( int8, uint8 -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) <= ( int8, uint8 -- bool ) call assert1 ( bool ) drop ( uint8 -- ) drop ( int8 -- ) L718: drop ( uint16 -- ) drop ( uint16 -- ) } void muldiv ( uint16 n, uint16 m ) { var uint16 n var uint16 m var uint8 a var uint8 b var uint16 c var uint16 v lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 8 ( -- uint16 ) >= ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L731 jp ( -- ) -> L730 L731: lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint16, uint16 -- uint16 ) 8 ( -- uint16 ) > ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L733 jp ( -- ) -> L730 L733: lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand ( uint16 -- uint8 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand ( uint16 -- uint8 ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) * ( uint8, uint8 -- uint16 ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar+0+8 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) >> ( uint16, int16 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) lvar+0+12 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( uint16, int16 -- uint16 ) / ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar+2+8 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( uint16, int16 -- uint16 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) lvar+2+12 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( uint16, int16 -- uint16 ) * ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) 0 ( -- uint8 ) != ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L735 lvar-6+6 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) / ( uint16, uint16 -- uint16 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) jp ( -- ) -> L735 L735: lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) 0 ( -- uint8 ) != ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L737 lvar-6+6 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) / ( uint16, uint16 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) jp ( -- ) -> L737 L737: lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) 1 ( -- uint8 ) > ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L739 lvar-6+6 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) 1 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) / ( uint16, uint16 -- uint16 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) jp ( -- ) -> L739 L739: lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) 1 ( -- uint8 ) > ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L741 lvar-6+6 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) + ( uint16, uint16 -- uint16 ) 1 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) / ( uint16, uint16 -- uint16 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) jp ( -- ) -> L741 L741: lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-8+10 "v" ( -- uint16& ) *= ( uint16, uint16& -- ) lvar-8+8 "v" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-6+10 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-8+10 "v" ( -- uint16& ) /= ( uint16, uint16& -- ) lvar-8+8 "v" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2+10 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint8 -- ) drop ( uint8 -- ) L730: drop ( uint16 -- ) drop ( uint16 -- ) } void muldivs ( uint16 n, uint16 m ) { var uint16 n var uint16 m var int8 a var int8 b var int16 c var int16 v lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 8 ( -- uint16 ) >= ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L745 jp ( -- ) -> L744 L745: lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint16, uint16 -- uint16 ) 8 ( -- uint16 ) > ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L747 jp ( -- ) -> L744 L747: lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand ( uint16 -- uint8 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand ( uint16 -- uint8 ) lvar-2+4 "a" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+6 "b" ( -- int8& ) peek ( int8& -- int8 ) * ( int8, int8 -- int16 ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) lvar+0+8 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) >> ( int16, int16 -- int16 ) lvar-2+8 "a" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) 1 ( -- int16 ) lvar+0+12 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( int16, int16 -- int16 ) / ( int16, int16 -- int16 ) == ( int16, int16 -- bool ) call assert1 ( bool ) lvar-4+6 "b" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) lvar+2+8 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( int16, int16 -- int16 ) lvar-4+8 "b" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) 1 ( -- uint16 ) lvar+2+12 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( uint16, int16 -- uint16 ) * ( int16, uint16 -- int16 ) == ( int16, int16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) 0 ( -- int8 ) != ( int8, int8 -- bool ) jp_z ( bool -- ) -> L749 lvar-6+6 "c" ( -- int16& ) peek ( int16& -- int16 ) lvar-2+8 "a" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) / ( int16, int16 -- int16 ) lvar-4+8 "b" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) == ( int16, int16 -- bool ) call assert1 ( bool ) jp ( -- ) -> L749 L749: lvar-4+6 "b" ( -- int8& ) peek ( int8& -- int8 ) 0 ( -- int8 ) != ( int8, int8 -- bool ) jp_z ( bool -- ) -> L751 lvar-6+6 "c" ( -- int16& ) peek ( int16& -- int16 ) lvar-4+8 "b" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) / ( int16, int16 -- int16 ) lvar-2+8 "a" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) == ( int16, int16 -- bool ) call assert1 ( bool ) jp ( -- ) -> L751 L751: lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) 1 ( -- int8 ) > ( int8, int8 -- bool ) jp_z ( bool -- ) -> L753 lvar-6+6 "c" ( -- int16& ) peek ( int16& -- int16 ) 1 ( -- uint16 ) + ( int16, uint16 -- int16 ) lvar-2+8 "a" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) / ( int16, int16 -- int16 ) lvar-4+8 "b" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) == ( int16, int16 -- bool ) call assert1 ( bool ) jp ( -- ) -> L753 L753: lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) 1 ( -- int8 ) > ( int8, int8 -- bool ) jp_z ( bool -- ) -> L755 lvar-6+6 "c" ( -- int16& ) peek ( int16& -- int16 ) lvar-2+8 "a" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) + ( int16, int16 -- int16 ) 1 ( -- uint16 ) - ( int16, uint16 -- int16 ) lvar-2+8 "a" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) / ( int16, int16 -- int16 ) lvar-4+8 "b" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) == ( int16, int16 -- bool ) call assert1 ( bool ) jp ( -- ) -> L755 L755: lvar-2+6 "a" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) lvar-4+8 "b" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) lvar-8+10 "v" ( -- int16& ) *= ( int16, int16& -- ) lvar-8+8 "v" ( -- int16& ) peek ( int16& -- int16 ) lvar-6+10 "c" ( -- int16& ) peek ( int16& -- int16 ) == ( int16, int16 -- bool ) call assert1 ( bool ) lvar-4+8 "b" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) lvar-8+10 "v" ( -- int16& ) /= ( int16, int16& -- ) lvar-8+8 "v" ( -- int16& ) peek ( int16& -- int16 ) lvar-2+10 "a" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) == ( int16, int16 -- bool ) call assert1 ( bool ) drop ( int16 -- ) drop ( int16 -- ) drop ( int8 -- ) drop ( int8 -- ) L744: drop ( uint16 -- ) drop ( uint16 -- ) } void addsub ( uint16 n, uint16 m ) { var uint16 n var uint16 m var uint8 a var uint8 b var uint16 c var uint16 v lvar+2+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand ( uint16 -- uint8 ) lvar+0+2 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) call rand ( uint16 -- uint8 ) lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) + ( uint8, uint8 -- uint16 ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 2 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- int16 ) << ( uint16, int16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 4 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 2 ( -- int16 ) << ( uint16, int16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 8 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 3 ( -- int16 ) << ( uint16, int16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 2 ( -- uint16 ) / ( uint16, uint16 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- int16 ) >> ( uint16, int16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 4 ( -- uint16 ) / ( uint16, uint16 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 2 ( -- int16 ) >> ( uint16, int16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 8 ( -- uint16 ) / ( uint16, uint16 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 3 ( -- int16 ) >> ( uint16, int16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) ~ ( uint8 -- uint8 ) cast ( uint8 -- int16 ) -1 ( -- int16 ) lvar-2+10 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) - ( int16, uint16 -- int16 ) == ( int16, int16 -- bool ) call assert1 ( bool ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) + ( uint8, uint8 -- uint16 ) lvar-6+8 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) + ( uint8, uint8 -- uint16 ) lvar-6+8 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-6+6 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) - ( uint16, uint16 -- uint16 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-6+6 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) - ( uint16, uint16 -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-6+6 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) - ( int8 -- int8 ) cast ( int8 -- int16 ) + ( uint16, int16 -- int16 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) == ( int16, int16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+8 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) + ( uint8, uint8 -- uint16 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- int16 ) << ( uint16, int16 -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar-6+8 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) 2 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-2+6 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-8+10 "v" ( -- uint16& ) += ( uint16, uint16& -- ) lvar-8+8 "v" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-6+10 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) lvar-4+8 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-8+10 "v" ( -- uint16& ) -= ( uint16, uint16& -- ) lvar-8+8 "v" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2+10 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) == ( uint16, uint16 -- bool ) call assert1 ( bool ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint8 -- ) drop ( uint8 -- ) 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 ) L761: 1 ( -- uint16 ) L763: 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 -- ) -> L764 jp ( -- ) -> L763 L764: lvar-2+4 "n" ( -- uint16& ) pppeek ( uint16& -- uint16 ) lvar+0+6 "maxbits" ( -- uint16& ) peek ( uint16& -- uint16 ) <= ( uint16, uint16 -- bool ) jp_nz ( bool -- ) -> L765 drop ( uint16 -- ) jp ( -- ) -> L760 L765: drop ( uint16 -- ) jp ( -- ) -> L761 L760: drop ( uint16 -- ) drop ( uint16 -- ) drop ( void(uint16, uint16) -- ) local scope ANON { } } }