The following examples use two instructions and are only concerned
with the floating-point register fields:
The first operand of the Load Short (LE) instruction is a register
field requiring a resolved absolute value of 0 through to 15. This
value specifies a Floating-Point Register (FPR).
The first operand of the Load Long (LD) instruction is a register
field requiring a resolved absolute value of 0 through to 15. This
value specifies a Floating-Point Register (FPR).
Each unresolved floating-point register field is an expression
composed of one or more terms. The assembler checks only the
first term:
If the term is not a symbol, no more checking is performed.
If the assembler type of the symbol is FPR, no more checking is performed.
If the assembler type of the symbol is assigned but is not FPR,
the assembler issues a warning message (severity 4) about a type checking
conflict.
If the assembler type of the symbol is
not assigned, and if the flag shows that at least one instance of an EQU with FPR
has been encountered, the assembler issues an informational message (severity 0)
about a possible type checking conflict.
If the assembler type of the symbol is
not assigned,and if the flag shows that no instances of an EQU with FPR have been
encountered, no more checking is performed.
Figure 1 shows an example of Floating-Point Register
checking, with a warning message about an incompatible symbol type, and an
informational message about a symbol not assigned an assembler type due to the
existence of an EQU statement with FPR in the source code.
Figure 1. Floating-Point Register type checking with FPR activated
00000000 7845 C00C 0000000C 30 LE 4,12(5,12)
00000004 7845 C00C 0000000C 31 LE FP4,12(R5,R12)
00000008 6825 C00C 0000000C 32 LD A2,12(R5,R12)
** ASMA323W Symbol A2 has incompatible type with floating-point register field
0000000C 6865 C00C 0000000C 33 LD FP6,12(R5,R12)
** ASMA324I Symbol FP6 may have incompatible type with floating-point register field
34 *
00000004 35 FP4 EQU 4,,,,FPR
00000006 36 FP6 EQU 6
37 *
00000005 38 R5 EQU 5,,,,GR
0000000C 39 R12 EQU 12,,,,GR
00000002 40 A2 EQU 2,,,,AR
Figure 2 shows an example of Floating-Point Register
checking, with a warning message about an incompatible symbol type, and tolerance of
symbols not assigned an assembler type due to the lack of an EQU statement
with FPR in the source code.
Figure 2. Floating-Point Register type checking with FPR inactive
00000000 7845 C00C 0000000C 30 LE 4,12(5,12)
00000004 7845 C00C 0000000C 31 LE FP4,12(R5,R12)
00000008 6825 C00C 0000000C 32 LD A2,12(R5,R12)
** ASMA323W Symbol A2 has incompatible type with floating-point register field
0000000C 6865 C00C 0000000C 33 LD FP6,12(R5,R12)
34 *
00000004 35 FP4 EQU 4
00000006 36 FP6 EQU 6
37 *
00000005 38 R5 EQU 5,,,,GR
0000000C 39 R12 EQU 12,,,,GR
00000002 40 A2 EQU 2,,,,AR