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