mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
arm64: Add umull alias.
This commit is contained in:
parent
1d1c80d9cf
commit
31a5227076
3 changed files with 10 additions and 1 deletions
|
@ -1354,6 +1354,10 @@ void ARM64XEmitter::UMADDL(ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm, ARM64Reg Ra)
|
|||
{
|
||||
EncodeData3SrcInst(5, Rd, Rn, Rm, Ra);
|
||||
}
|
||||
void ARM64XEmitter::UMULL(ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm)
|
||||
{
|
||||
UMADDL(Rd, Rn, Rm, SP);
|
||||
}
|
||||
void ARM64XEmitter::UMSUBL(ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm, ARM64Reg Ra)
|
||||
{
|
||||
EncodeData3SrcInst(6, Rd, Rn, Rm, Ra);
|
||||
|
|
|
@ -532,6 +532,7 @@ public:
|
|||
void SMSUBL(ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm, ARM64Reg Ra);
|
||||
void SMULH(ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm);
|
||||
void UMADDL(ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm, ARM64Reg Ra);
|
||||
void UMULL(ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm);
|
||||
void UMSUBL(ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm, ARM64Reg Ra);
|
||||
void UMULH(ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm);
|
||||
void MUL(ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm);
|
||||
|
|
|
@ -437,7 +437,11 @@ static void DataProcessingRegister(uint32_t w, uint64_t addr, Instruction *instr
|
|||
// The rest are 64-bit accumulator, 32-bit operands
|
||||
char sign = (op31 >> 2) ? 'u' : 's';
|
||||
int opn = (op31 & 0x3) << 1 | o0;
|
||||
snprintf(instr->text, sizeof(instr->text), "%c%s x%d, x%d, w%d, w%d", sign, opnames[opn], Rd, Rn, Rm, Ra);
|
||||
if (opn < 4 && Ra == 31) {
|
||||
snprintf(instr->text, sizeof(instr->text), "%cmull x%d, w%d, w%d", sign, Rd, Rn, Rm);
|
||||
} else {
|
||||
snprintf(instr->text, sizeof(instr->text), "%c%s x%d, w%d, w%d, x%d", sign, opnames[opn], Rd, Rn, Rm, Ra);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Logical (extended register)
|
||||
|
|
Loading…
Add table
Reference in a new issue