3 ms·
> even the best compilers don’t use a third of the opcodes our modern CPUs boast of That’s not necessarily an indication of the weakness of compilers. It also
by Someone 3mo ago
> even the best compilers don’t use a third of the opcodes our modern CPUs boast of
That’s not necessarily an indication of the weakness of compilers. It also could be an indication that hardware designers could leave out instructions.
X86, in particular, will have lots of them for backwards compatibility reasons (extreme example: the old 80-bit x87 FP stack)
There also are instructions that are expected to never get used by ‘normal’ compilers but cannot be removed because they only make sense in lower-level code such as those for switching between protection levels, implementing compare-and-swap, etc.
- gmueckl 3mo agox87 support may not be the most obscure part of the instruction set. Ther is also hardware support for BCD math in 16 bit amd 32 bit mode. Who uses that anymore?
- ks6g10 3mo agoUnfortunately some exchanges (twse) uses packed BCD encoding.
- Joker_vD 3mo agoBCD allows for insanely fast conversion to and from decimal string representation. And if doing arithmetic in it is only slightly worse than doing it in binary... it may actually be faster on the whole for some workloads.
- gmueckl 3mo agoBut those instructions were dropped in 64 bit mode.
- anamax 3mo agobcd is a reasonable way to do fixed-point decimal arithmetic. binary floating point, let alone IEEE, is almost useless for implementing decimal arithmetic.