static void _6502_anal_esil_mov(RAnalOp *op, ut8 data0) {
	const char* src="unk";
	const char* dst="unk";
	switch(data0) {
	case 0xaa: // tax
		src="a";
		dst="x";
		break;
	case 0x8a: // txa
		src="x";
		dst="a";
		break;
	case 0xa8: // tay
		src="a";
		dst="y";
		break;
	case 0x98: // tya
		src="y";
		dst="a";
		break;
	case 0x9a: // txs
		src="x";
		dst="sp";
		break;
	case 0xba: // tsx
		src="sp";
		dst="x";
		break;
	default:
		// FIXME: should not happen
		break;
	}
	r_strbuf_setf (&op->esil, "%s,%s,=",src,dst);

	// don't update NZ on txs
	if (data0 != 0x9a) _6502_anal_update_flags (op, _6502_FLAGS_NZ);
}
static void _6502_anal_esil_mov(RAnalOp *op, ut8 data0) {
	const char* src="unk";
	const char* dst="unk";
	switch(data0) {
	case 0xaa:  
		src="a";
		dst="x";
		break;
	case 0x8a:  
		src="x";
		dst="a";
		break;
	case 0xa8:  
		src="a";
		dst="y";
		break;
	case 0x98:  
		src="y";
		dst="a";
		break;
	case 0x9a:  
		src="x";
		dst="sp";
		break;
	case 0xba:  
		src="sp";
		dst="x";
		break;
	default:
		 
		break;
	}
	r_strbuf_setf (&op->esil, "%s,%s,=",src,dst);

	 
	if (data0 != 0x9a) _6502_anal_update_flags (op, _6502_FLAGS_NZ);
}