: canonicalize ( indirect -- )
#! Modify the indirect to work around certain addressing mode
#! quirks.
- dup canonicalize-EBP canonicalize-ESP ;
+ dup canonicalize-EBP
+ canonicalize-ESP ;
C: indirect ( base index scale displacement -- indirect )
[ set-indirect-displacement ] keep
dup integer? [ >r f f f r> ] [ f f f ] if <indirect> ;
: [+] ( reg displacement -- indirect )
- dup integer? [ >r f f r> ] [ f f ] if <indirect> ;
+ dup integer?
+ [ dup zero? [ drop f ] when >r f f r> ]
+ [ f f ] if
+ <indirect> ;
: reg-code "register" word-prop 7 bitand ;