Skip to content

Commit e84a781

Browse files
- Added LLVM_MARK_AS_BITMASK_ENUM & removed static_casts from encodeAAPCSZAState
1 parent b264d84 commit e84a781

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

clang/lib/AST/ItaniumMangle.cpp

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3543,21 +3543,22 @@ enum class AAPCSBitmaskSME : unsigned {
35433543
ArmIn = 0b001,
35443544
ArmOut = 0b010,
35453545
ArmInOut = 0b011,
3546-
ArmPreserves = 0b100
3546+
ArmPreserves = 0b100,
3547+
LLVM_MARK_AS_BITMASK_ENUM(/*LargestValue=*/ArmPreserves)
35473548
};
35483549

3549-
static unsigned encodeAAPCSZAState(unsigned SMEAttrs) {
3550+
static AAPCSBitmaskSME encodeAAPCSZAState(unsigned SMEAttrs) {
35503551
switch (SMEAttrs) {
35513552
case FunctionType::ARM_None:
3552-
return static_cast<unsigned>(AAPCSBitmaskSME::NoState);
3553+
return AAPCSBitmaskSME::NoState;
35533554
case FunctionType::ARM_In:
3554-
return static_cast<unsigned>(AAPCSBitmaskSME::ArmIn);
3555+
return AAPCSBitmaskSME::ArmIn;
35553556
case FunctionType::ARM_Out:
3556-
return static_cast<unsigned>(AAPCSBitmaskSME::ArmOut);
3557+
return AAPCSBitmaskSME::ArmOut;
35573558
case FunctionType::ARM_InOut:
3558-
return static_cast<unsigned>(AAPCSBitmaskSME::ArmInOut);
3559+
return AAPCSBitmaskSME::ArmInOut;
35593560
case FunctionType::ARM_Preserves:
3560-
return static_cast<unsigned>(AAPCSBitmaskSME::ArmPreserves);
3561+
return AAPCSBitmaskSME::ArmPreserves;
35613562
default:
35623563
llvm_unreachable("Unrecognised SME attribute");
35633564
}
@@ -3578,7 +3579,6 @@ void CXXNameMangler::mangleSMEAttrs(unsigned SMEAttrs) {
35783579
if (!SMEAttrs)
35793580
return;
35803581

3581-
// Streaming Mode
35823582
unsigned Bitmask = 0;
35833583
if (SMEAttrs & FunctionType::SME_PStateSMEnabledMask)
35843584
Bitmask |= static_cast<unsigned>(AAPCSBitmaskSME::ArmStreamingBit);
@@ -3588,11 +3588,13 @@ void CXXNameMangler::mangleSMEAttrs(unsigned SMEAttrs) {
35883588

35893589
// TODO: Must represent __arm_agnostic("sme_za_state")
35903590

3591-
Bitmask |= encodeAAPCSZAState(FunctionType::getArmZAState(SMEAttrs))
3592-
<< static_cast<unsigned>(AAPCSBitmaskSME::ZA_Shift);
3591+
Bitmask |= static_cast<unsigned>(
3592+
encodeAAPCSZAState(FunctionType::getArmZAState(SMEAttrs))
3593+
<< AAPCSBitmaskSME::ZA_Shift);
35933594

3594-
Bitmask |= encodeAAPCSZAState(FunctionType::getArmZT0State(SMEAttrs))
3595-
<< static_cast<unsigned>(AAPCSBitmaskSME::ZT0_Shift);
3595+
Bitmask |= static_cast<unsigned>(
3596+
encodeAAPCSZAState(FunctionType::getArmZT0State(SMEAttrs))
3597+
<< AAPCSBitmaskSME::ZT0_Shift);
35963598

35973599
Out << "Lj" << Bitmask << "EE";
35983600
}

0 commit comments

Comments
 (0)