Liste des Groupes | Revenir à c arch |
On 17/09/2024 03:36, Waldek Hebisch wrote:David Brown <david.brown@hesbynett.no> wrote:On 16/09/2024 19:51, MitchAlsup1 wrote:On Mon, 16 Sep 2024 8:34:19 +0000, David Brown wrote:>
On 15/09/2024 21:13, MitchAlsup1 wrote:>>>
As to HW sadism:: this not not <realistically> any harder than
mis- aligned DW accesses from the cache. Many ISA from the
rather distant past could do these rather efficiently {360
SRDL,...}
Anyone who designs a data structure with a bit-field that spans
two 64-bit parts of a struct is probably ignorant of C
bit-fields and software in general. It is highly unlikely to be
necessary or even beneficial from the hardware viewpoint, but
really inconvenient on the software side (whether you use
bit-fields or not).
Sometimes you don't have a choice::
x86-64 segment registers.
PCIe MMI/O registers,
..
The folks designing those register setups had a choice, and made a
bad choice from the viewpoint of software (whether it be C,
assembly, or any other language).
>
It's conceivable that it was the right choice on balance,
considering many factors. And it's certainly more believable that
it was an appropriate choice when sizes were smaller. It is less
believable that there is an overwhelming need to cross a 64-bit
boundary.
Several pieces of software discoverd that "bad" smaller data
structures lead to faster execution. Simply, smaller data
structures lead to better utilization of caches and busses, and
efect due to this was larger than cost of extra instructions. So
need to cross 64-bit boundary may be rare, but there will be cases
when it is best choice.
It is possible, but I think it is rare.
Perhaps my perception is biased from working with microcontrollers,
where you often don't have caches and instruction speeds are not
nearly as much faster than ram access speeds as you see in modern x86
systems.
The other thing I don't like about split bit-fields is that there is
typically no way to do atomic updates, which can mean you need extra
care to keep things correct.
Les messages affichés proviennent d'usenet.