New back end ia16: 16-bit Intel x86

Ross Ridge rridge@csclub.uwaterloo.ca
Tue Jul 31 15:24:00 GMT 2007


Rask Ingemann Lambertsen writes:
> It is the best I can think of. Probably my preference was for x86-16,
>but that's not possible (see below). With IA-32 and IA-64 being well
>established, I think IA-16 is a good choice because it conveys the
>information that it's Intel's 16-bit architecture.

It's not Intel's 16-bit architecture, that's the problem.  It's Intel's
IA-32 architecture in 16-bit mode.  Your port seems to be limited to
just the 16-bit IA-32 CPUs, but architecturely there's no reason why
the port couldn't use, for example, SSE instructions and registers.
They work in both real mode and 16-bit protected mode.

>>According to Intel, processors like the 8086 and 80286 are part of the IA-32
>> architecture and there is no IA-16.
>
> Interesting idea. There was no IA-32 until the 80386 appeared.

There was no IA-32 until the Itanium and the IA-64 architecture appeared.
The architecture didn't have a consistant formal name until then.

> The "32" in "IA-32" of course refers to the fact that it is a
>32-bit architecture, unlike the previous members of the x86 family.

No, the "32" is there to distingish it from the IA-64 architecture.
When Intel introduced the IA-32 name, processors like the 8086 and 808186
were explictly documented as being part of the architecture.  Like other
CPU architectures it encompasses 16-bit, 32-bit and now 64-bit processors.

>The "i386" name was a mistake and should not be repeated...

Given the lack of a formal name at the time it seems a reasonable enough
choice to me.

> (so "i8086" is out as well).

Well, if your port is going to be strictly limitted to targetting only
16-bit IA-32 processors then "i80x86" would probably be most descriptive
and accurate name for the target.  However, I don't see why it should
be limitted to just 16-bit processors.

>I'm sure that dashes in the back end name will be rejected.
>Consider the s/x86-64/x86_64/h mess.

I did say "something like i386-16" so "i386_16", "ia32rm16" or anything
that indicates that IA-32 processors in 16-bit mode are being targetted.

					Ross Ridge



More information about the Gcc-patches mailing list