armemu: Implement REVSH

This commit is contained in:
Normmatt 2014-12-17 03:01:42 -05:00 committed by Lioncash
parent bc81cc9490
commit 8045df14d2

View File

@ -6076,10 +6076,10 @@ L_stm_s_takeabort:
ror = 24; ror = 24;
break; break;
case 0xf3: case 0xf3: // REV
DEST = ((RHS & 0xFF) << 24) | ((RHS & 0xFF00)) << 8 | ((RHS & 0xFF0000) >> 8) | ((RHS & 0xFF000000) >> 24); DEST = ((RHS & 0xFF) << 24) | ((RHS & 0xFF00)) << 8 | ((RHS & 0xFF0000) >> 8) | ((RHS & 0xFF000000) >> 24);
return 1; return 1;
case 0xfb: case 0xfb: // REV16
DEST = ((RHS & 0xFF) << 8) | ((RHS & 0xFF00)) >> 8 | ((RHS & 0xFF0000) << 8) | ((RHS & 0xFF000000) >> 8); DEST = ((RHS & 0xFF) << 8) | ((RHS & 0xFF00)) >> 8 | ((RHS & 0xFF0000) << 8) | ((RHS & 0xFF000000) >> 8);
return 1; return 1;
default: default:
@ -6206,9 +6206,13 @@ L_stm_s_takeabort:
ror = 24; ror = 24;
break; break;
case 0xfb: case 0xfb: // REVSH
printf("Unhandled v6 insn: revsh\n"); {
return 0; DEST = ((RHS & 0xFF) << 8) | ((RHS & 0xFF00) >> 8);
if (DEST & 0x8000)
DEST |= 0xffff0000;
return 1;
}
default: default:
break; break;
} }