PUSH_1
PUSH_1(X, DATA_, 1, (ds) + (n), o, (p), s, X##mA, (dA), ##a); \
PUSH_1(X, DATA_, 1, 0, o, (p), s, X##mA, (dA))
PUSH_1(X, DATAp, ds, 0, o, (p), s, X##mA, (dp))