! Copyright (C) 2005 Slava Pestov. ! See http://factor.sf.net/license.txt for BSD license. IN: compiler-backend USING: assembler compiler kernel math math-internals memory namespaces words ; : >3-vop< ( vop -- out1 in2 in1 ) [ vop-out-1 v>operand ] keep [ vop-in-2 v>operand ] keep vop-in-1 ; : maybe-immediate ( vop imm comp -- ) pick vop-in-1 integer? [ >r >r >3-vop< v>operand r> execute r> drop ] [ >r >r >3-vop< v>operand swap r> drop r> execute ] ifte ; inline : simple-overflow ( vop inv word -- ) >r >r