Just a sample of the Echomail archive
COMPOSVM:
[ << oldest | < older | list | newer > | newest >> ]
|  Message 263,418 of 264,034  |
|  Johnny Billquist to All  |
|  Re: VMS previous DEC/CPQ/HP[E] decisions  |
|  23 Sep 25 15:20:25  |
 From: bqt@softjar.se On 2025-09-21 02:51, Arne Vajhøj wrote: > On 9/20/2025 4:13 PM, John Dallman wrote: >> The VAX instruction set is quite nice in some ways and quite horrible in >> others. Some of those made it hard to make run very fast. >> >> The extremely variable-length instructions are a prime example. > > CASEx is probably the worst. > > Example of >100 bytes long: I think that's a bad example. The size of case is basically just a displacement table, which is not needed at all be read in for the execution of the instruction. It's just that at some point, *one* of the elements of that displacement table needs to be read in in order to adjust the PC. The rest you can ignore, and from a pipelining point of view, it's similar to any kind of conditional branching. Potentially performance killing is that it would be very hard to do speculative fetching or execution on a case instruction, so you'd probably stall on a memory fetch. But conditional branches always are a bit of a hiccup for performance, case might be a bit worse, but nowhere near a real killer. So no, I don't think case is a good example of something making VAX hard to get fast. What is much more painful is just the general arguments processing for any instruction, which is all rather variable in size, and which cannot be predicted, and which *have* to be read in before you can make much progress on any instruction. Displacement with indexing for maybe 5 arguments. *That's* a headache. Johnny --- SoupGate-Win32 v1.05 * Origin: you cannot sedate... all the things you hate (1:229/2) |
[ << oldest | < older | list | newer > | newest >> ]
(c) 1994, bbs@darkrealms.ca