From 1397d5d01e4f8b55b487d0bfa7db15d5bcbf146d Mon Sep 17 00:00:00 2001 From: Geza Lore Date: Thu, 13 Aug 2026 19:44:04 +0100 Subject: [PATCH] Optimize VL_WORDS_I/VL_BYTES_I (#8095) --- include/verilatedos.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/verilatedos.h b/include/verilatedos.h index fc597a494..ae3ceb3bf 100644 --- a/include/verilatedos.h +++ b/include/verilatedos.h @@ -470,6 +470,7 @@ using ssize_t = uint32_t; ///< signed size_t; returned from read() // Integer size macros #define VL_BYTESIZE 8 ///< Bits in a CData / byte +#define VL_BYTESIZE_LOG2 3 ///< log2(VL_BYTESIZE) #define VL_SHORTSIZE 16 ///< Bits in a SData / short #define VL_IDATASIZE 32 ///< Bits in an IData / word #define VL_QUADSIZE 64 ///< Bits in a QData / quadword @@ -482,9 +483,9 @@ using ssize_t = uint32_t; ///< signed size_t; returned from read() #endif /// Return number of bytes argument-number of bits needs (1 bit=1 byte) -#define VL_BYTES_I(nbits) (((nbits) + (VL_BYTESIZE - 1)) / VL_BYTESIZE) +#define VL_BYTES_I(nbits) (((nbits) + (VL_BYTESIZE - 1)) >> VL_BYTESIZE_LOG2) /// Return Words/EDatas in argument-number of bits needs (1 bit=1 word) -#define VL_WORDS_I(nbits) (((nbits) + (VL_EDATASIZE - 1)) / VL_EDATASIZE) +#define VL_WORDS_I(nbits) (((nbits) + (VL_EDATASIZE - 1)) >> VL_EDATASIZE_LOG2) // Number of Words/EDatas a quad requires #define VL_WQ_WORDS_E VL_WORDS_I(VL_QUADSIZE)