Skip to content

Commit 913093f

Browse files
committed
Remove big-endian support
1 parent 72fc8f4 commit 913093f

File tree

2 files changed

+7
-78
lines changed

2 files changed

+7
-78
lines changed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2984,23 +2984,18 @@ AArch64TargetLowering::EmitInitTPIDR2Object(MachineInstr &MI,
29842984
AArch64FunctionInfo *FuncInfo = MF->getInfo<AArch64FunctionInfo>();
29852985
TPIDR2Object &TPIDR2 = FuncInfo->getTPIDR2Obj();
29862986
if (TPIDR2.Uses > 0) {
2987+
// Note: This case just needs to do `SVL << 48`. It is not implemented as we
2988+
// generally don't support big-endian SVE/SME.
2989+
assert(
2990+
Subtarget->isLittleEndian() &&
2991+
"TPIDR2 block initialization is not supported on big-endian targets");
2992+
29872993
const TargetInstrInfo *TII = Subtarget->getInstrInfo();
2988-
unsigned TPIDInitSaveSlicesReg = MI.getOperand(1).getReg();
2989-
if (!Subtarget->isLittleEndian()) {
2990-
unsigned TmpReg =
2991-
MF->getRegInfo().createVirtualRegister(&AArch64::GPR64RegClass);
2992-
// For big-endian targets move "num_za_save_slices" to the top two bytes.
2993-
BuildMI(*BB, MI, MI.getDebugLoc(), TII->get(AArch64::UBFMXri), TmpReg)
2994-
.addReg(TPIDInitSaveSlicesReg)
2995-
.addImm(16)
2996-
.addImm(15);
2997-
TPIDInitSaveSlicesReg = TmpReg;
2998-
}
29992994
// Store buffer pointer and num_za_save_slices.
30002995
// Bytes 10-15 are implicitly zeroed.
30012996
BuildMI(*BB, MI, MI.getDebugLoc(), TII->get(AArch64::STPXi))
30022997
.addReg(MI.getOperand(0).getReg())
3003-
.addReg(TPIDInitSaveSlicesReg)
2998+
.addReg(MI.getOperand(1).getReg())
30042999
.addFrameIndex(TPIDR2.FrameIndex)
30053000
.addImm(0);
30063001
} else

llvm/test/CodeGen/AArch64/sme-tpidr2-init-aarch64be.ll

Lines changed: 0 additions & 66 deletions
This file was deleted.

0 commit comments

Comments
 (0)