implement p6shiftpush, hopefully correctly.