[Info-vax] Moving away from OpenVMS
John Reagan
johnrreagan at earthlink.net
Wed May 23 10:40:21 EDT 2012
"Bob Koehler" wrote in message
news:0kp36lkfTvGW at eisner.encompasserve.org...
> What did it take to port from Alpha to IA64? Parts should be easier
> since Alpha had a few features to make VMS work, like PALcode, and
> IA64 didn't. A Macro-32 compiler might be harder since IA32 is CISC,
> so you don't have the one-to-many relationship between VAX
> instructions and IA32 instructions that you have with VAX to RISC or
> EPIC.
> But that latter is a matter of generating efficient code, just
> getting code to work should not be such a big deal. A 32 bit add
> instruction on VAX has different side affects than the same
> instruction on IA32, but you can still add additional instructions
> to get the side effects when needed, just like RISC.
Again, don't forget that you need BLISS and C just for the OS and you'll
want all the rest of the compilers for the customer base. GEM's old x86
target was 32-bit only, just did the things that Visual Fortran required,
and generated Windows object files and Windows debugging info. All of that
would need fixing. And switching to some other code generator (gcc, LLVM,
open64) might work but I'd have to think about it.
As I've mention before, the smaller register set (as compared to Itanium and
Alpha) causes more rework for facilities like RMS that currently use lots of
GLOBAL REGISTERs to pass around implicit arguments between routines. Since
the Alpha and Itanium compilers were able to make it all work (there is some
funky spilling involving GLOBAL REGISTERs on Itanium and corresponding
funky-ness in the unwind descriptors and LIB$ calling standard routines to
cover it up), nobody had ever attempted to clean up all those RMS internal
interfaces. I suspect a move to x86 would force that issue. It would also
impact user code as well (any Macro that specified non-standard arguments to
.CALL_ENTRY or .CALL_LINKAGE).
So while the Itanium port only required touching of 5% of the code (I think
that's the number that Clair Grant used to quote), I would guess the number
would go up to at least 25% of the code for x86 (including some rather
important code).
On the bright side, x86 doesn't have NaTs. :)
More information about the Info-vax
mailing list