diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/powerpc/decode/vle32.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/powerpc/decode/vle32.c b/arch/powerpc/decode/vle32.c index 3b67184c..f722c789 100644 --- a/arch/powerpc/decode/vle32.c +++ b/arch/powerpc/decode/vle32.c @@ -383,13 +383,12 @@ static void FillOperands32Vle(Instruction* instruction, uint32_t word32, uint64_ case PPC_ID_VLE_E_AND2IS: case PPC_ID_VLE_E_OR2I: case PPC_ID_VLE_E_OR2IS: - case PPC_ID_VLE_E_LIS: { uint32_t ui5_15 = word32 & 0x7ff; uint32_t ui0_4 = (word32 >> 16) & 0x1f; uint32_t ui = (ui0_4 << 11) | ui5_15; - PushRA(instruction, word32); + PushRD(instruction, word32); if (translate) PushRS(instruction, word32); @@ -399,6 +398,16 @@ static void FillOperands32Vle(Instruction* instruction, uint32_t word32, uint64_ break; } + case PPC_ID_VLE_E_LIS: + { + uint32_t ui5_15 = word32 & 0x7ff; + uint32_t ui0_4 = (word32 >> 16) & 0x1f; + uint32_t ui = (ui0_4 << 11) | ui5_15; + PushRD(instruction, word32); + PushUIMMValue(instruction, ui); + break; + } + // <op>[.] rA, rS, SH case PPC_ID_VLE_E_RLWIx: case PPC_ID_VLE_E_SLWIx: |
