mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
[AArch64] Cleanup sign extend in genAlternativeCodeSequence
Use the machinery in MathExtras instead of rolling it by hand. This fixes PR28624. llvm-svn: 276366
This commit is contained in:
parent
6ec0a83576
commit
fbccf1a76d
@ -3462,7 +3462,7 @@ void AArch64InstrInfo::genAlternativeCodeSequence(
|
||||
unsigned Val = Root.getOperand(3).getImm();
|
||||
Imm = Imm << Val;
|
||||
}
|
||||
uint64_t UImm = Imm << (64 - BitSize) >> (64 - BitSize);
|
||||
uint64_t UImm = SignExtend64(Imm, BitSize);
|
||||
uint64_t Encoding;
|
||||
if (AArch64_AM::processLogicalImmediate(UImm, BitSize, Encoding)) {
|
||||
MachineInstrBuilder MIB1 =
|
||||
@ -3548,12 +3548,12 @@ void AArch64InstrInfo::genAlternativeCodeSequence(
|
||||
RC = &AArch64::GPR64RegClass;
|
||||
}
|
||||
unsigned NewVR = MRI.createVirtualRegister(OrrRC);
|
||||
int Imm = Root.getOperand(2).getImm();
|
||||
uint64_t Imm = Root.getOperand(2).getImm();
|
||||
if (Root.getOperand(3).isImm()) {
|
||||
unsigned Val = Root.getOperand(3).getImm();
|
||||
Imm = Imm << Val;
|
||||
}
|
||||
uint64_t UImm = -Imm << (64 - BitSize) >> (64 - BitSize);
|
||||
uint64_t UImm = SignExtend64(-Imm, BitSize);
|
||||
uint64_t Encoding;
|
||||
if (AArch64_AM::processLogicalImmediate(UImm, BitSize, Encoding)) {
|
||||
MachineInstrBuilder MIB1 =
|
||||
|
Loading…
Reference in New Issue
Block a user