underlying>> ;
SIMD-INTRINSIC: (simd-gather-2) ( m n rep -- v ) <rep-array> [ 2 set-firstn-unsafe ] keep underlying>> ;
SIMD-INTRINSIC: (simd-gather-4) ( m n o p rep -- v ) <rep-array> [ 4 set-firstn-unsafe ] keep underlying>> ;
-SIMD-INTRINSIC: (simd-select) ( a n rep -- x ) [ swap ] dip byte>rep-array nth-unsafe ;
+SIMD-INTRINSIC: (simd-select) ( a n rep -- x ) swapd byte>rep-array nth-unsafe ;
SIMD-INTRINSIC: alien-vector ( c-ptr n rep -- value )
[ swap <displaced-alien> ] dip rep-size memory>byte-array ;
: define-pair-method ( a b pair-generic definition -- )
[ 2array ] 2dip swap
- [ "pair-generic-methods" word-prop [ swap ] dip set-at ]
+ [ "pair-generic-methods" word-prop swapd set-at ]
[ make-pair-generic ] bi ;
: ?prefix-swap ( quot ? -- quot' )
GENERIC: eval-insn ( stack insn -- stack )
: binary-op ( stack quot: ( x y -- z ) -- stack )
- [ uncons uncons [ swap ] dip ] dip dip cons ; inline
+ [ uncons uncons swapd ] dip dip cons ; inline
M: add-insn eval-insn drop [ + ] binary-op ;
M: sub-insn eval-insn drop [ - ] binary-op ;
! Chainable setters
: set-slot* ( tuple value name -- tuple )
- [ swap ] dip '[ _ set-slot ] keep ; inline
+ swapd '[ _ set-slot ] keep ; inline
: change-slot* ( tuple name quot: ( ..a old -- ..b new ) -- ..b tuple )
'[ _ _ change-slot ] keep ; inline
MACRO: slots ( names -- quot: ( tuple -- values... ) )
[ '[ _ slot ] ] { } map-as '[ _ cleave ] ;
+
MACRO: {slots} ( names -- quot: ( tuple -- {values} ) )
dup length '[ _ slots _ narray ] ;