static char *vd_va_vb(char *s,ppc_word in,int mask) { static const char *fmt = "v%d,"; if (mask) { if (mask & 4) s += sprintf(s,fmt,(int)PPCGETD(in)); if (mask & 2) { if (mask & 16) { /* A = SIMM */ int a = PPCGETA(in); s += sprintf(s,fmt+1,(a>15)?(a-32):a); } else if (mask & 8) /* A = UIMM */ s += sprintf(s,fmt+1,(int)PPCGETA(in)); else s += sprintf(s,fmt,(int)PPCGETA(in)); } if (mask & 1) s += sprintf(s,fmt,(int)PPCGETB(in)); *--s = '\0'; } else *s = '\0'; return (s); }
static char *rd_ra_rb(char *s,ppc_word in,int mask) { static const char *fmt = "r%d,"; if (mask) { if (mask & 4) s += sprintf(s,fmt,(int)PPCGETD(in)); if (mask & 2) s += sprintf(s,fmt,(int)PPCGETA(in)); if (mask & 1) s += sprintf(s,fmt,(int)PPCGETB(in)); *--s = '\0'; } else *s = '\0'; return (s); }
static char *fd_ra_rb(char *s,ppc_word in,int mask) { static const char *ffmt = "f%d,"; static const char *rfmt = "%s,"; if (mask) { if (mask & 4) s += sprintf(s,ffmt,(int)PPCGETD(in)); if (mask & 2) s += sprintf(s,rfmt,regnames[(int)PPCGETA(in)]); if (mask & 1) s += sprintf(s,rfmt,regnames[(int)PPCGETB(in)]); *--s = '\0'; } else *s = '\0'; return (s); }
static void ra_rb(char *s,ppc_word in) { sprintf(s,"r%d,r%d",(int)PPCGETA(in),(int)PPCGETB(in)); }
static void ra_rb(char *s,ppc_word in) { sprintf(s,"%s, %s",regnames[(int)PPCGETA(in)],regnames[(int)PPCGETB(in)]); }