
Open Watcom C/C++ Version 1.7 for Alpha AXP - README
----------------------------------------------------

Welcome to the Open Watcom C/C++ Alpha Release.  This README provides
helpful hints found during testing as well as updated information that was
not available at the time the documentation was produced.

1. The Alpha hosted tools are slow because of alignment issues. This issue
will be worked on for a later release.

2. No AXP-specific tuning has been done on the optimizer. However, most
optimizations are not CPU specific and will be effective on AXP platform.


Where possible, the Alpha tools have been made command-line compatible with
the Intel versions of those tools.  Differences are outlined below.

1. Intel-specific compiler switches have been removed, and a few
Alpha-specific switches added.  For details, see the usage screen for the
Alpha compilers (wccaxp and wppaxp).

2. The linker system directives for the Alpha are as follows:
    sys ntaxp       - alpha console mode app
    sys ntaxp_win       - alpha windowed app
    sys ntaxp_dll       - alpha dll
    
3. The Alpha librarian creates Microsoft Visual C++ compatible AR-format
libraries.

4. The Alpha assembler (wasaxp) accepts a dialect of AXP assembly which is
compatible with the Microsoft Visual C++ assembler (asaxp).  For examples
or help in determining the format, a useful guide is to disassemble C object
files with the Alpha disassembler using the "-a" switch and examine the
output.

5. The type names that the debugger uses correspond to the nomenclature from
the "Alpha Architecture Reference Manual". Accordingly, the command to
examine a 4-byte quantity in the debugger is "e/l", instead of "e/d".
Similarily, "e/d" will format as a double.

6. All 64 bits of the integer registers are displayed in the register window,
but only the low order 32 bits are used in a debugger expression. If you
wish to test and/or set the high-order longword, you can use the ".l1" field
selection on a register name. E.g.:

        print r4.l1
        
will print the high 32 bits of the r4 register. Similarly:

        do t0.l1 = 8
        
will assign 8 to the high 32 bits of the t0 register. The ".l0" field selects
the low order 32 bits of the given register.
