+// note: only C flag updated correctly
+#define emith_rolf(d, s, cnt) { \
+ EOP_MOV_REG(A_COND_AL,1,d,s,A_AM1_ROR,32-(cnt)); \
+ /* we don't have ROL so we shift to get the right carry */ \
+ EOP_TST_REG(A_COND_AL,d,d,A_AM1_LSR,1); \
+}
+
+#define emith_rorf(d, s, cnt) \
+ EOP_MOV_REG(A_COND_AL,1,d,s,A_AM1_ROR,cnt)
+
+#define emith_rolcf(d) \
+ emith_adcf_r_r(d, d)
+
+#define emith_rorcf(d) \
+ EOP_MOV_REG(A_COND_AL,1,d,d,A_AM1_ROR,0) /* ROR #0 -> RRX */
+