john gilmore wrote:

Ed Jaffe's comments about z/OS alsi values are as usual entirely correct.

As usual too there are other contexts in which IBM publications discuss architectural levels and use terminology derived from 'architecture' in quite different ways. (Consistency is the hobgoblin of little minds; is it not?)

What follows is an extract from the current (V3R5) z/OS Enterprise PL/I Programming Guide. It defines the possible values---1,2,3,4,5,6---of this compiler's ARCH parameter. (This compiler shares its code-generation machinery with the corresponding release of the z/OS C compiler; and these level values are thus applicable mutatis mutandis to it too.)

ARCH ( n ) The current values that may be specified for the ARCH level are:

0 Produces code that is executable on all models.

[snip]

6 Produces code that uses instructions available on the 2084-xxx models in z/Architecture mode. Specifically, the compiler on these ARCH(6) machines and their follow-ons may exploit the long-displacement instruction set. The long-displacement facility provides a 20-bit signed displacement field in 69 previously existing instructions (by using a previously unused byte in the instructions) and 44 new instructions. A 20-bit signed displacement allows relative addressing of up to 524,287 bytes beyond the location designated by a base register or base and index register pair and up to 524,288 bytes before that location. The enhanced previously existing instructions generally are ones that handle 64-bit binary integers. The new instructions generally are new versions of instructions for 32-bit binary integers. The new instructions also include v A LOAD BYTE instruction that sign-extends a byte from storage to form a 32-bit or 64-bit result in a general register v New floating-point LOAD and STORE instructions The long-displacement facility provides register-constraint relief by reducing the need for base registers, code size reduction by allowing fewer instructions to be used, and additional improved performance through removal of possible address-generation interlocks.

If you specify an ARCH value less than 2, the compiler will reset it to 2. Note: The ��x�� in the model numbers above (such as 9672-Rx4 is a ��wildcard�� and stands for any alphanumeric machine of that type, such as 9627-RA4).Note: Code that is compiled at ARCH(n) runs on machines in the ARCH(m) group if and only if m >= n.


And the system's ARCHLVL= parameter adds even more confusion! ARCHLVL=1 is ESA/390. In OS/390 V2R10, this meant any machine with ALS1 or ALS2 support. In z/OS, this applies only to machines with ALS2 support. ARCHLVL=2 is z/Architecture. This means the minimum z900 instruction set supported by z900. The same applies to the ARCHLVL= parameter on the SYSSTATE macro. In that case, ARCHLVL=0 implies machines that do not support the relative & immediate facility -- i.e. those before 9672-G2 which do not support ALS1, ARCHLVL=1 implies ALS1 & higher machines in ESA/390 mode, and ARCHLVL=2 implies z/Architecture as implemented on the z900. Sheesh!

--
.-----------------------------------------------------------------.
| Edward E. Jaffe                |                                |
| Mgr, Research & Development    | [EMAIL PROTECTED]    |
| Phoenix Software International | Tel: (310) 338-0400 x318       |
| 5200 W Century Blvd, Suite 800 | Fax: (310) 338-0801            |
| Los Angeles, CA 90045          | http://www.phoenixsoftware.com |
'-----------------------------------------------------------------'

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to