{ (def 'gav 0x8a40bfaa73256b60764c1bf40675a99083efb075) (def 'alloc (len) (asm msize 0 1 len msize add sub mstore8)) (def 'send (to value) (call (- (gas) 21) to value 0 0 0 0)) (def 'send (gaslimit to value) (call gaslimit to value 0 0 0 0)) (def 'msg (gaslimit to value data datasize outsize) { [32]:outsize [0]:(alloc @32) (call gaslimit to value data datasize @0 @32) @0 }) (def 'msg (gaslimit to value data datasize) { (call gaslimit to value data datasize 0 32) @0 }) (def 'msg (gaslimit to value data) { [0] data (msg gaslimit to value 0 32) }) (def 'create (to value code) { [0]:(msize) (create to value @0 (lll code @0) }) (def 'sha3 (val) { [0]:val (sha3 0 32) }) (def 'return (val) { [0]:val (return 0 32) }) (def 'makesvar (name pos) { (def name (sload pos)) (def name (v) (sstore pos v)) } ) (def 'svarcount 0) (def 'svar (name) { (makesvar name svarcount) (def 'svarcount (+ svarcount 1)) } ) (def 'makevar (name pos) { (def name (mload pos)) (def name (v) (mstore pos v)) } ) (def 'varcount 128) ;; Allow 4 x 32 byte slots for us to use. (def 'var (name) { (makevar name varcount) (def 'varcount (+ varcount 32)) } ) }