Talk:Bytecode: Difference between revisions

Content deleted Content added
Bytecode vs. machine code: similar issues on older machines
Line 106:
:::::
:::::The VAX-11/780 was hardly the first machine with variable length instructions, nor the first with complicated operand specifications. The [[Bendix G-20]], [[GE 635]] and [[RCA]] 601 have similar complexities in one way or another. A more modern example is the encoding of opcodes on [[IBM z/Architecture]]. The VAX was more influenced by the [[PDP-11]] than by, e.g., [[UCSD p-code]] --[[User:Chatul|Shmuel (Seymour J.) Metz Username:Chatul]] ([[User talk:Chatul|talk]]) 14:25, 30 November 2022 (UTC)
::::::
::::::Not the first, but maybe worst. It would have been a lot better for [[VAX]] to put all the address mode bytes immediately after the opcode byte. Until you get to an address mode byte, you don't know how long that address mode is. For S/370, and I believe z/, you know the instruction length from the first byte. For VAX, it is almost the last byte. Address modes can have a 0, 1, 2, 4, 8, or 16 byte immediate value. For z/, you know quickly where the next instruction starts, and can start decoding it in parallel. Or even that z/ instructions are always an even number of bytes. I suspect VAX would have been what Brooks calls a [[Second-system effect]]. The [[PDP-11]] is nice and simple in many ways, that [[VAX]] is complicated. It isn't even easy to figure out what the longest VAX instruction is, with which addressing modes are allowed for which operands, of which instructions. (I believe you can't write to immediate operands, for example.) [[User:Gah4|Gah4]] ([[User talk:Gah4|talk]]) 21:03, 30 November 2022 (UTC)
 
== Bytecode v8 ==