Skip to content

Commit 725f382

Browse files
committed
Remove big-endian support for now
Change-Id: I6660e11a5e85250e135c93c08c15399230a623bb
1 parent a41972c commit 725f382

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

llvm/lib/Target/AArch64/MachineSMEABIPass.cpp

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -520,21 +520,17 @@ void MachineSMEABI::emitAllocateLazySaveBuffer(
520520

521521
// 2. Setup the TPIDR2 block.
522522
{
523-
Register TPIDInitSaveSlicesReg = SVL;
524-
if (!Subtarget->isLittleEndian()) {
525-
Register TmpReg = MRI->createVirtualRegister(&AArch64::GPR64RegClass);
526-
// For big-endian targets move "num_za_save_slices" to the top two bytes.
527-
BuildMI(MBB, MBBI, DL, TII->get(AArch64::UBFMXri), TmpReg)
528-
.addReg(TPIDInitSaveSlicesReg)
529-
.addImm(16)
530-
.addImm(15);
531-
TPIDInitSaveSlicesReg = TmpReg;
532-
}
523+
// Note: This case just needs to do `SVL << 48`. It is not implemented as we
524+
// generally don't support big-endian SVE/SME.
525+
assert(
526+
Subtarget->isLittleEndian() &&
527+
"TPIDR2 block initialization is not supported on big-endian targets");
528+
533529
// Store buffer pointer and num_za_save_slices.
534530
// Bytes 10-15 are implicitly zeroed.
535531
BuildMI(MBB, MBBI, DL, TII->get(AArch64::STPXi))
536532
.addReg(Buffer)
537-
.addReg(TPIDInitSaveSlicesReg)
533+
.addReg(SVL)
538534
.addFrameIndex(getTPIDR2Block().FrameIndex)
539535
.addImm(0);
540536
}

0 commit comments

Comments
 (0)