From d745eb89d8e8059ebb75f1e7a47f3b3fee9c6103 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sun, 27 Apr 2025 10:52:42 -0700 Subject: [PATCH] [TableGen] Simplify insertBits (NFC) We can use "constexpr if" to combine the two variants of functions. --- llvm/utils/TableGen/DecoderEmitter.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/llvm/utils/TableGen/DecoderEmitter.cpp b/llvm/utils/TableGen/DecoderEmitter.cpp index 415fe13f87547..f0f07dfce4abb 100644 --- a/llvm/utils/TableGen/DecoderEmitter.cpp +++ b/llvm/utils/TableGen/DecoderEmitter.cpp @@ -2145,16 +2145,14 @@ static void emitInsertBits(formatted_raw_ostream &OS) { // Helper function for inserting bits extracted from an encoded instruction into // a field. template -static std::enable_if_t::value> -insertBits(InsnType &field, InsnType bits, unsigned startBit, unsigned numBits) { - assert(startBit + numBits <= sizeof field * 8); - field |= (InsnType)bits << startBit; -} - -template -static std::enable_if_t::value> -insertBits(InsnType &field, uint64_t bits, unsigned startBit, unsigned numBits) { - field.insertBits(bits, startBit, numBits); +static void insertBits(InsnType &field, InsnType bits, unsigned startBit, + unsigned numBits) { + if constexpr (std::is_integral::value) { + assert(startBit + numBits <= sizeof field * 8); + field |= (InsnType)bits << startBit; + } else { + field.insertBits(bits, startBit, numBits); + } } )"; }