Parent document is top of "comp.sys.hp.hpux FAQ"
Previous document is "9.11 What are the specs of the audio hardware on the 700 series?"
Next document is "9.13 How do I read an SGI-written tar format DDS tape?"
9.12 What are the various revisions of PA-RISC?
PA-RISC 1.1 is an extension to the PA-RISC 1.0 architecture, and is
fully backwards-compatible (i.e., *all* PA-RISC 1.0 programs will
execute without change on PA-RISC 1.1 machines). The biggest difference
is that PA-RISC 1.1 added 16 more floating-point registers, the ability
to address each double-precision floating-point register as two
single-precision registers, and a few new floating-point operations, so
the floating-point performance is greatly improved. There were a few
changes on the integer side, but nothing major.
The first machines to be shipped with PA-RISC 1.1 CPUs were the first
Series 700 machines (the "Snakes" series). Shortly after that, however,
the "Nova" series of Series 800 (8x7) machines was introduced using the
same PA-RISC 1.1 CPU. Since then, every new PA-RISC machine that HP has
produced is based on the PA-RISC 1.1 architecture.
Thus, all Series 700 machines are PA-RISC 1.1, and the newer Series 800
machines are PA-RISC 1.1. If you compile a program on a Series 700
machine, the compiler will generate PA-RISC 1.1 code by default, but if
you compile a program on a Series 800 machine (even a newer 1.1
machine), the compiler will generate PA-RISC 1.0 code to ensure that the
program will run within the entire 800 family.
To force the compiler to generate PA-RISC 1.0 code, you use the +DA 1.0
compiler option. This is all you need to do, as long as you are careful
not to link your code with any libraries that were compiled for PA-RISC
1.1. If *any* object module in your program is compiled for PA-RISC
1.1, your entire program will be marked as a PA-RISC 1.1 program. The
"file" command will tell you which architecture is required to execute
your program. Most system archive libraries that HP ships are compiled
for PA-RISC 1.0; an exception is the math library, which is shipped in
both forms (a PA-RISC 1.1 version is in /lib/pa1.1), although the 1.1
version contains a few entry points that are not available in the 1.0
version.
The scheduling option, +DS xxx, does not affect the compatibility of the
object code. It affects only how the optimizer schedules instructions
that have long latencies, so it is usually to your advantage to schedule
the code for the fastest machine currently shipping, even if you are
generating 1.0 code.
When compiling code on one platform for another platform, the thing
you do have to worry about is the operating system release. In general
you can compile a program on a Series 700 machine with +DA 1.0, and it
will run correctly as long as the program will execute on the same or
a later release of the OS as the one on which it was compiled. Thus,
you can not expect a program compiled on a 700 running 9.0 to run on
an 800 running 8.0.
(Thanks to Cary Coutant, HP)
Parent document is top of "comp.sys.hp.hpux FAQ"
Previous document is "9.11 What are the specs of the audio hardware on the 700 series?"
Next document is "9.13 How do I read an SGI-written tar format DDS tape?"