By: rwessel (rwessel.delete@this.yahoo.com), August 13, 2022 1:53 pm
Room: Moderated Discussions
Megol (golem960.delete@this.gmail.com) on August 13, 2022 1:22 pm wrote:
> Marcus (m.delete@this.bitsnbites.eu) on August 13, 2022 8:14 am wrote:
> > Megol (golem960.delete@this.gmail.com) on August 12, 2022 3:04 am wrote:
> > > Brett (ggtgp.delete@this.yahoo.com) on August 11, 2022 3:26 pm wrote:
> > > > Any 68k manual, each instruction spells out the bits:
> > > > https://web.njit.edu/~rosensta/classes/architecture/252software/code.pdf
> > > >
> > > > There is unused state in the mode bits that can be used to add another 8 data registers transparently for
> > > > one source.
> > > FOR A SMALL SUBSET OF OPERATIONS!
> > > That's the thing - it's not something that's really available as an extension, it's a very lopsided hack.
> > >
> > > >Though instead the AMMX extension added 32 bit instructions and used a similar format.
> > > It also wasted the only reasonable opcode space available for a prefix (11 free bits) to add MMX support.
> > > At least happy they moved from supporting the mostly useless ColdFire sign extension
> > > opcodes to use the encoding space as a prefix operation as I had been proposing.
> > > Of course my prefix ideas were more general.
> > >
> > > > ColdFire obsoleted the 2 of the 3 opmode operation size bits for all but MOVE loads/stores. That frees up
> > > > huge opportunities for expansion. The plan may have been to use these bits to double the register file.
> > > Not relevant as the 68080 is intended to be compatible with Amiga software.
> > >
> > > > Ugly, but not so ugly as x86.
> > > Debatable. X86 is like two separate architectures with some similarities,
> > > the 8086-80286 was pretty clean, the 80386 too.
> > I always thought that the 68000 was the less crippled and most forward looking architecture
> > (between x86 and 68k): Everything was 32 bits wide (registers, operations, etc), the address
> > space was flat (non-segmented) and you had a plethora (relatively speaking) of GPRs.
> Yes but those two processor families weren't really designed for the same purpose,
> the 8086 was more an extended 16bit 8080 and the 68000 a minicomputer in a chip. Remember
> that Intel imagined a world where the 432 project would rule, not the 8-bit bus cost
> reduced version of their QnD 16 bit reimagination of the 8080 processor ;)
>
> > Things appeared to be set up for future success, but then Motorla screwed things up, I suppose.
> Yes and it was arguably the best architecture of the two. John Crawford worked wonders with the 80386
> extension which practically (IMO) removed most problem areas and made x86 more or less orthogonal.
I think the un-orthogonality of the 8086 can be overstated. The biggest area was addressing, where only a limited number of registers (and combinations) were allowed. Most of the general instructions were pretty flexible with their operands and many of the ones that weren't, still haven't really been fixed (the string and shift instructions, for example), and other have just seen wholesale replacement (all the better forms of multiply, or movsx/zx replacing the convert instructions, for example).
We'll ignore x87, just because who wants to actually think about that (of course, the FPU situation on x86 was generally much less of a mess than on the 68k).
In a lot of ways, the 386's "cleanup" of the 8086s "un-orthogonality" mainly involved fixing addressing.
Don't get me wrong, there are several messes in the x86 ISA, but it's easy to overstate the case.
> Marcus (m.delete@this.bitsnbites.eu) on August 13, 2022 8:14 am wrote:
> > Megol (golem960.delete@this.gmail.com) on August 12, 2022 3:04 am wrote:
> > > Brett (ggtgp.delete@this.yahoo.com) on August 11, 2022 3:26 pm wrote:
> > > > Any 68k manual, each instruction spells out the bits:
> > > > https://web.njit.edu/~rosensta/classes/architecture/252software/code.pdf
> > > >
> > > > There is unused state in the mode bits that can be used to add another 8 data registers transparently for
> > > > one source.
> > > FOR A SMALL SUBSET OF OPERATIONS!
> > > That's the thing - it's not something that's really available as an extension, it's a very lopsided hack.
> > >
> > > >Though instead the AMMX extension added 32 bit instructions and used a similar format.
> > > It also wasted the only reasonable opcode space available for a prefix (11 free bits) to add MMX support.
> > > At least happy they moved from supporting the mostly useless ColdFire sign extension
> > > opcodes to use the encoding space as a prefix operation as I had been proposing.
> > > Of course my prefix ideas were more general.
> > >
> > > > ColdFire obsoleted the 2 of the 3 opmode operation size bits for all but MOVE loads/stores. That frees up
> > > > huge opportunities for expansion. The plan may have been to use these bits to double the register file.
> > > Not relevant as the 68080 is intended to be compatible with Amiga software.
> > >
> > > > Ugly, but not so ugly as x86.
> > > Debatable. X86 is like two separate architectures with some similarities,
> > > the 8086-80286 was pretty clean, the 80386 too.
> > I always thought that the 68000 was the less crippled and most forward looking architecture
> > (between x86 and 68k): Everything was 32 bits wide (registers, operations, etc), the address
> > space was flat (non-segmented) and you had a plethora (relatively speaking) of GPRs.
> Yes but those two processor families weren't really designed for the same purpose,
> the 8086 was more an extended 16bit 8080 and the 68000 a minicomputer in a chip. Remember
> that Intel imagined a world where the 432 project would rule, not the 8-bit bus cost
> reduced version of their QnD 16 bit reimagination of the 8080 processor ;)
>
> > Things appeared to be set up for future success, but then Motorla screwed things up, I suppose.
> Yes and it was arguably the best architecture of the two. John Crawford worked wonders with the 80386
> extension which practically (IMO) removed most problem areas and made x86 more or less orthogonal.
I think the un-orthogonality of the 8086 can be overstated. The biggest area was addressing, where only a limited number of registers (and combinations) were allowed. Most of the general instructions were pretty flexible with their operands and many of the ones that weren't, still haven't really been fixed (the string and shift instructions, for example), and other have just seen wholesale replacement (all the better forms of multiply, or movsx/zx replacing the convert instructions, for example).
We'll ignore x87, just because who wants to actually think about that (of course, the FPU situation on x86 was generally much less of a mess than on the 68k).
In a lot of ways, the 386's "cleanup" of the 8086s "un-orthogonality" mainly involved fixing addressing.
Don't get me wrong, there are several messes in the x86 ISA, but it's easy to overstate the case.