Hacker News new | ask | show | jobs
by jws 1567 days ago
Definitely low bits:

#define DATA(buf) ((char*)((intptr_t)((buf)->data) << BFT_TYPE_BITS))

Older programmers tend to raise an eyebrow at added computation like the "<<", but here in 2022 we need to remember that we are about to do a memory access and even if it's in L1 cache, that "<<" is basically free by comparison.

1 comments

Most microcontrollers do not have cache of this form (rather a simple read-ahead buffer at most). Microcontrollers are also one of the targets of this type of library and the shift absolutely will have an effect.