Sujet : Re: Oops (Concertina II Going Around in Circles)
De : anton (at) *nospam* mips.complang.tuwien.ac.at (Anton Ertl)
Groupes : comp.archDate : 11. May 2024, 18:48:51
Autres entêtes
Organisation : Institut fuer Computersprachen, Technische Universitaet Wien
Message-ID : <2024May11.194851@mips.complang.tuwien.ac.at>
References : 1 2
User-Agent : xrn 10.11
jgd@cix.co.uk (John Dallman) writes:
Also, teaching development tools about vast instruction sets is likely to
demonstrate the RISC lesson again: compilers only use the simple parts.
That needs some elaboration. There are several potential reasons for
that:
1) The compiler writers found it too hard to use the complex
instructions or addressing modes. For some kinds of instructions that
is the case (e.g, for the AES instructions in Intel and AMD CPUs), but
at least these days such instructions are there for use in libraries
written in assembly language/with intrinsics.
2) Some instructions are slower than a sequence of simpler
instructions, so compilers will avoid them even if they would
otherwise use them. That has been reported by both the IBM 801
project about some S/370 instructions and by the Berkeley RISC project
about the VAX. I don't remember any reports about addressing modes
with that problem.
3) Some instructions or addressing modes can be selected by compilers
and are beneficial when they are used, but they are selected rarely
because they fit the needs of the compiled program rarely.
IIRC the RISC papers mentioned mainly 2), with a little bit of 3).
- anton
-- 'Anyone trying for "industrial quality" ISA should avoid undefined behavior.' Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>