This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
fixeria gerrit-no-reply at lists.osmocom.orgfixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/26309 ) Change subject: bitvec_read_field(): optimize by expanding bytenum_from_bitnum() ...................................................................... bitvec_read_field(): optimize by expanding bytenum_from_bitnum() The bitvec_read_field() is used in performance critical places, such as the CSN.1 decoder in osmo-pcu. Thus the less conditional statements we have in the parsing loop, the better. The bitvec_get_bit_pos() alone is quite a complex function, which does check the boundaries and even supports the L/H syntax. Even if it gets inlined by the compiler, we don't really want to run redundant checks and run bitval2mask() on each iteration. Change-Id: I438fc82d33ab2edbabd4215ec7bc46afb07d50ab --- M src/bitvec.c 1 file changed, 4 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/bitvec.c b/src/bitvec.c index 2303a0d..13deeff 100644 --- a/src/bitvec.c +++ b/src/bitvec.c @@ -491,8 +491,10 @@ errno = 0; for (i = 0; i < len; i++) { - int bit = bitvec_get_bit_pos((const struct bitvec *)bv, bv->cur_bit); - if (bit) + unsigned int bytenum = bytenum_from_bitnum(bv->cur_bit); + unsigned int bitnum = 7 - (bv->cur_bit % 8); + + if (bv->data[bytenum] & (1 << bitnum)) ui |= ((uint64_t)1 << (len - i - 1)); bv->cur_bit++; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/26309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I438fc82d33ab2edbabd4215ec7bc46afb07d50ab Gerrit-Change-Number: 26309 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20211118/7cc7a17f/attachment.htm>