Fix rotrv (dis)assembly

This commit is contained in:
Kingcom 2013-10-13 10:36:43 +02:00
parent 7e6b6f90ed
commit 480c766776
3 changed files with 7 additions and 4 deletions

View file

@ -110,7 +110,7 @@ const tMipsOpcode MipsOpcodes[] = {
// 110 | TGE | TGEU | TLT | TLTU | TEQ | --- | TNE | --- |
// 111 | dsll | --- | dsrl | dsra |dsll32 | --- |dsrl32 |dsra32 |
// hi |-------|-------|-------|-------|-------|-------|-------|-------|
// *1: rotr when rs = 1 (PSP only) *2: rotrv when rs = 1 (PSP only)
// *1: rotr when rs = 1 (PSP only) *2: rotrv when sa = 1 (PSP only)
// *3: dsrlv on PS2, clz on PSP *4: dsrav on PS2, clo on PSP
// *5: dadd on PS2, max on PSP *6: daddu on PS2, min on PSP
// *7: dsub on PS2, msub on PSP *8: dsubu on PS2, msubu on PSP
@ -127,8 +127,8 @@ const tMipsOpcode MipsOpcodes[] = {
{ "sllv", "d,s", 0x00000004, O_RDT|O_RS },
{ "srlv", "d,t,s", 0x00000006, O_RD|O_RT|O_RS },
{ "srlv", "d,s", 0x00000006, O_RDT|O_RS },
{ "rotrv", "d,t,s", 0x00200006, O_RD|O_RT|O_RS },
{ "rotrv", "d,s", 0x00200006, O_RDT|O_RS },
{ "rotrv", "d,t,s", 0x00000046, O_RD|O_RT|O_RS },
{ "rotrv", "d,s", 0x00000046, O_RDT|O_RS },
{ "srav", "d,t,s", 0x00000007, O_RD|O_RT|O_RS },
{ "srav", "d,s", 0x00000007, O_RDT|O_RS },
{ "jr", "s", 0x00000008, O_RS|MO_DELAY|MO_NODELAY },

View file

@ -278,7 +278,10 @@ namespace MIPSDis
int rt = _RT;
int rs = _RS;
int rd = _RD;
int sa = (op>>6) & 0x1F;
const char *name = MIPSGetName(op);
if (((op & 0x3f) == 6) && sa == 1)
name = "rotrv";
sprintf(out, "%s\t%s, %s, %s",name,RN(rd),RN(rt),RN(rs));
}

View file

@ -1141,7 +1141,7 @@ void CtrlDisAsmView::search(bool continueSearch)
return;
}
for (int i = 0; searchQuery[i] != 0; i++)
for (int i = 0; i < searchQuery.size(); i++)
{
searchQuery[i] = tolower(searchQuery[i]);
}