mirror of
https://github.com/Lime3DS/Lime3DS.git
synced 2024-11-11 12:45:05 +01:00
Merge pull request #2585 from MerryMage/sxtb16-sxtab16
dyncom: Correct SXTAB16 and SXTB16
This commit is contained in:
commit
bb448ae66f
@ -3928,13 +3928,13 @@ SXTB16_INST : {
|
|||||||
if (inst_cream->Rn == 15) {
|
if (inst_cream->Rn == 15) {
|
||||||
u32 lo = (u32)(s8)rm_val;
|
u32 lo = (u32)(s8)rm_val;
|
||||||
u32 hi = (u32)(s8)(rm_val >> 16);
|
u32 hi = (u32)(s8)(rm_val >> 16);
|
||||||
RD = (lo | (hi << 16));
|
RD = (lo & 0xFFFF) | (hi << 16);
|
||||||
}
|
}
|
||||||
// SXTAB16
|
// SXTAB16
|
||||||
else {
|
else {
|
||||||
u32 lo = (rn_val & 0xFFFF) + (u32)(s8)(rm_val & 0xFF);
|
u32 lo = rn_val + (u32)(s8)(rm_val & 0xFF);
|
||||||
u32 hi = ((rn_val >> 16) & 0xFFFF) + (u32)(s8)((rm_val >> 16) & 0xFF);
|
u32 hi = (rn_val >> 16) + (u32)(s8)((rm_val >> 16) & 0xFF);
|
||||||
RD = (lo | (hi << 16));
|
RD = (lo & 0xFFFF) | (hi << 16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user