fix base of shift instructions
This commit is contained in:
parent
bc1eceaaf7
commit
56e4333bab
1 changed files with 9 additions and 11 deletions
20
adis.c
20
adis.c
|
@ -875,18 +875,18 @@ NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE
|
||||||
void SLL(unsigned long word)
|
void SLL(unsigned long word)
|
||||||
{ //00 (00)
|
{ //00 (00)
|
||||||
if (word)
|
if (word)
|
||||||
sprintf(dis_op, "sll\t%s, %s, %02X", gpr_rn[getRD(word)], gpr_rn[getRT(word)], getSA(word) );
|
sprintf(dis_op, "sll\t%s, %s, %i", gpr_rn[getRD(word)], gpr_rn[getRT(word)], getSA(word) );
|
||||||
else
|
else
|
||||||
sprintf(dis_op, "nop");
|
sprintf(dis_op, "nop");
|
||||||
}
|
}
|
||||||
void SRL(unsigned long word)
|
void SRL(unsigned long word)
|
||||||
{ //02 (02)
|
{ //02 (02)
|
||||||
sprintf(dis_op, "srl\t%s, %s, %02X", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
sprintf(dis_op, "srl\t%s, %s, %i", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SRA(unsigned long word)
|
void SRA(unsigned long word)
|
||||||
{ //03 (03)
|
{ //03 (03)
|
||||||
sprintf(dis_op, "sra\t%s, %s, %02X", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
sprintf(dis_op, "sra\t%s, %s, %i", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SLLV(unsigned long word)
|
void SLLV(unsigned long word)
|
||||||
|
@ -1110,32 +1110,32 @@ void TNE(unsigned long word)
|
||||||
|
|
||||||
void DSLL(unsigned long word)
|
void DSLL(unsigned long word)
|
||||||
{ //56 (38)
|
{ //56 (38)
|
||||||
sprintf(dis_op, "dsll\t%s, %s, %02X", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
sprintf(dis_op, "dsll\t%s, %s, %i", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSRL(unsigned long word)
|
void DSRL(unsigned long word)
|
||||||
{ //58 (3A)
|
{ //58 (3A)
|
||||||
sprintf(dis_op, "dsrl\t%s, %s, %02X", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
sprintf(dis_op, "dsrl\t%s, %s, %i", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSRA(unsigned long word)
|
void DSRA(unsigned long word)
|
||||||
{ //59 (3B)
|
{ //59 (3B)
|
||||||
sprintf(dis_op, "dsra\t%s, %s, %02X", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
sprintf(dis_op, "dsra\t%s, %s, %i", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSLL32(unsigned long word)
|
void DSLL32(unsigned long word)
|
||||||
{ //60 (3C)
|
{ //60 (3C)
|
||||||
sprintf(dis_op, "dsll32\t%s, %s, %02X", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
sprintf(dis_op, "dsll32\t%s, %s, %i", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSRL32(unsigned long word)
|
void DSRL32(unsigned long word)
|
||||||
{ //62 (3E)
|
{ //62 (3E)
|
||||||
sprintf(dis_op, "dsrl32\t%s, %s, %02X", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
sprintf(dis_op, "dsrl32\t%s, %s, %i", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSRA32(unsigned long word)
|
void DSRA32(unsigned long word)
|
||||||
{ //63 (3F)
|
{ //63 (3F)
|
||||||
sprintf(dis_op, "dsra32\t%s, %s, %02X", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
sprintf(dis_op, "dsra32\t%s, %s, %i", gpr_rn[getRD(word)],gpr_rn[getRT(word)],getSA(word));
|
||||||
};
|
};
|
||||||
Handler SPECIAL_T[64] = {
|
Handler SPECIAL_T[64] = {
|
||||||
SLL, NONE, SRL, SRA, SLLV, NONE, SRLV, SRAV,
|
SLL, NONE, SRL, SRA, SLLV, NONE, SRLV, SRAV,
|
||||||
|
@ -1471,8 +1471,6 @@ int main(int argc, char * argv[])
|
||||||
FILE * ROM;
|
FILE * ROM;
|
||||||
int targetnum;
|
int targetnum;
|
||||||
|
|
||||||
//puts("test");
|
|
||||||
|
|
||||||
#define XBOX_HUGE (1024*1024*8)
|
#define XBOX_HUGE (1024*1024*8)
|
||||||
char *tmp = calloc(1, XBOX_HUGE);
|
char *tmp = calloc(1, XBOX_HUGE);
|
||||||
dis_op = calloc(1, XBOX_HUGE);
|
dis_op = calloc(1, XBOX_HUGE);
|
||||||
|
|
Loading…
Add table
Reference in a new issue