Appendix A messages

The messages in this appendix are error messages or warning messages. Each message contains three sections:

  • Message number and message text
  • Cause of the message
  • Action to be taken

For some messages that are used for file headings, the Action section is omitted.

Item Description
1252-001 <name> is defined already.
Cause
The user has previously used name in a definition-type statement and is trying to define it again, which is not allowed. There are three instances where this message is displayed:
  • A label name has been defined previously in the source code.
  • A .set pseudo-op name has been defined previously in the source code.
  • A .lcomm or .comm pseudo-op name has been previously defined in the source code.
Action
Correct the name-redefined error.
1252-002 There is nesting overflow. Do not specify more than 100 .function, .bb, or .bi pseudo-ops without specifying the matching .ef, .eb, or .ei pseudo-ops.
Cause
This syntax error message will only be displayed if debugger pseudo-ops are used. The .function, .bb, and .bi pseudo-ops generate pointers that are saved on a stack with a limiting size of 100 pointers. If more than 100 .function and .bb pseudo-ops have been encountered without encountering the matching .ef and .eb pseudo-ops, this syntax error message is displayed.
Action
Rewrite the code to avoid this nesting.

Note: Debugger pseudo-ops are normally generated by compilers, rather than being inserted in the source code by the programmer.

1252-003 The .set operand is not defined or is a forward reference.
Cause
The .set pseudo-op has the following syntax:

.set name,expr

The expr parameter can be an integer, a predefined name (specified by a label, or by a .lcomm or .comm pseudo-op) or an algebraic combination of an integer and a name. This syntax error message appears when the expr parameter is not defined.

Action
Verify that all elements of the expr parameter are defined before the .set statement.
1252-004 The .globl symbol is not valid. Check that the .globl name is a relocatable expression.
Cause
The .globl name must be a relocatable expression. This syntax error message is displayed when the Name parameter of the .globl pseudo-op is not a relocatable expression.

Relocation refers to an entity that represents a memory location whose address or location can and will be changed to reflect run-time locations. Entities and symbol names that are defined as relocatable or nonrelocatable. a.

Relocatable expressions include label names, .lcomm, names, .comm and .csect names.

The following are the nonrelocatable items and nonrelocatable expressions:

  • .dsect names
  • labels contained within a .dsect
  • labels contained within a csect with a storage class of BS or UC
  • .set names
  • absolute expression (constant or integer)
  • tocrelative (.tc label or name)
  • tocofrelative (.tocof label or name)
  • unknown (undefined in Pass 2 of the assembler)
Action
Ensure that the Name parameter of the .globl pseudo-op is a relocatable expression. If not defined, the name is assumed to be external.
1252-005 The storage class is not valid. Specify a supported storage class for the csect name.
Cause
This syntax error message is displayed when the storage mapping class value used to specify the Qualname in the .csect pseudo-op is not one of the predefined values.
Action
See the .csect pseudo-op for the list of predefined storage mapping classes. Correct the program error and assemble and link the program again.
1252-006 The ERRTOK in the ICSECT ERRTOK is not known. Depending upon where you acquired this product, contact either your service representative or your approved supplier.
Cause
This is an internal error message.
Action
Contact your service representative or your approved supplier to report the problem.
1252-007 The alignment must be an absolute expression.
Cause
This syntax error message is caused by an incorrect operand (the optional alignment parameter) to the .csect pseudo-op. This alignment parameter must be either an absolute expression (an integer) or resolve algebraically into an absolute expression.
Action
Correct the alignment parameter, then assemble and link the program again.
1252-008 The .tocof name1 is not valid. Check that the name1 has not been defined previously.
Cause
The Name1 parameter of the .tocof pseudo-op has been defined elsewhere in the current module.
Action:
Ensure that the name1 symbol is defined only in the .tocof pseudo-op.
1252-009 A Begin or End block or .function pseudo-op is missing. Make sure that there is a matching .eb statement for each .bb statement and that there is a matching .ef statement for each .bf statement.
Cause
If there is not a matching .eb pseudo-op for each .bb pseudo-op or if there is not a matching .ef pseudo-op for each .bf pseudo-op, this error message is displayed.
Action
Verify that there is a matching .eb pseudo-op for every .bb pseudo-op, and verify that there is a matching .ef pseudo-op for every .bf pseudo-op.
1252-010 The .tocof Name2 is not valid. Make sure that name2 is an external symbol.
Cause
The Name2 parameter for the .tocof pseudo-op has not been properly defined.
Action
Ensure that the Name2 parameter is externally defined (it must appear in an .extern or .globl pseudo-op) and ensure that it is not defined locally in this source module.

Note: If the Name2 parameter is defined locally and is externalized using a .extern pseudo-op, this message is also displayed.

1252-011 A .space parameter is undefined.
Cause
The Number parameter to the .space pseudo-op must be a positive absolute expression. This message indicates that the Number parameter contains an undefined element (such as a label or name for a .lcomm, or .csect pseudo-op that will be defined later).
Action
Verify that the Number parameter is an absolute expression, integer expression, or an algebraic expression that resolves into an absolute expression.
1252-012 The .space size must be an absolute expression.
Cause
The Number parameter to the .space pseudo-op must be a positive absolute expression. This message indicates that the Number parameter contains a nonabsolute element (such as a label or name for a .lcomm, .comm, or .csect pseudo-op).
Action
Verify that the Number parameter specifies an absolute expression, or an integer or algebraic expression that resolves into an absolute expression.
1252-013 The .space size must be a positive absolute expression.
Cause
The Number parameter to the .space pseudo-op must be a positive absolute expression. This message indicates that the Number parameter resolves to a negative absolute expression.
Action
Verify that the Number parameter is a positive absolute expression.
1252-014 The .rename Name symbol must be defined in the source code.
Cause
The Name parameter to the .rename pseudo-op must be defined somewhere in the source code. This message indicates that the Name parameter has not been defined.
Action
Verify that the Name parameter is defined somewhere in the source code.
1252-015 A pseudo-op parameter is not defined.
Cause
This is a syntax error message displayed for the .line, .xline, .bf, .ef, .bb, and .eb pseudo-ops. These expressions have an expression operand that must resolve.
Action
Change the source code so that the expression resolves or is defined.
1252-016 The specified opcode or pseudo-op is not valid. Use supported instructions or pseudo-ops only.
Cause
The first element (after any label) on the source line is not recognized as an instruction or pseudo-op.
Action
Use only supported instructions or pseudo-ops.
1252-017 The ERRTOK in the args parameter is not valid. Depending upon where you acquired this product, contact either your service representative or your approved supplier.
Cause
This is an internal error message.
Action
Contact your service representative or your approved supplier to report the problem.
1252-018 Use a .tc inside a .toc scope only. Precede the .tc statements with a .toc statement.
Cause
A .tc pseudo-op is only valid after a .toc pseudo-op and prior to a .csect pseudo-op. Otherwise, this message is displayed.
Action
Ensure that a .toc pseudo-op precedes the .tc pseudo-ops. Any other pseudo-ops should be preceded by a .csect pseudo-op. The .tc pseudo-ops do not have to be followed by a .csect pseudo-op, if they are the last pseudo-ops in a source file.
1252-019 Do not specify externally defined symbols as .byte or .vbyte expression parameters.
Cause
If the Expression parameter of the .byte or .vbyte pseudo-op contains externally defined symbols (the symbols appear in a .extern or .globl pseudo-op), this message is displayed.
Action
Verify that the Expression parameter of the .byte or .vbyte pseudo-op does not contain externally defined symbols.
1252-020 Do not specify externally defined symbols as .short Expression parameters.
Cause
If the Expression parameter of the .short pseudo-op contains externally defined symbols (the symbols appear in an .extern or .globl pseudo-op), this message is displayed.
Action
Verify that the Expression parameter of the .short pseudo-op does not contain externally defined symbols.
1252-021 The expression must be absolute.
Cause
The Expression parameter of the .vbyte pseudo-op is not an absolute expression.
Action
Ensure that the expression is an absolute expression.
1252-022 The first parameter must resolve into an absolute expression from 1 through 4.
Cause
The first parameter of the .vbyte pseudo-op must be an absolute expression ranging from 1 to 4.
Action
Verify that the first parameter of the .vbyte pseudo-op resolves to an absolute expression from 1 to 4.
1252-023 The symbol <name> is not defined.
Cause
An undefined symbol is used in the source program.
Action
A symbol can be defined as a label, or as the Name parameter of a .csect, .comm, .lcomm, .dsect, .set, .extern, or .globl pseudo-op. The -u flag of the as command suppresses this message.
1252-024 The .stab string must contain a : character.
Cause
The first parameter of the .stabx pseudo-op is a string constant. It must contain a : (colon). Otherwise, this message is displayed.
Action
Verify that the first parameter of the .stabx pseudo-op contains a : (colon).
1252-025 The register, base register, or mask parameter is not valid. The register number is limited to the number of registers on your machine.
Cause
The register number used as the operand of an instruction or pseudo-op is not an absolute value, or the value is out of range of the architecture.
Action
An absolute expression should be used to specify this value. For PowerPC® and POWER® family, valid values are in the range of 0-31.
1252-026 Cannot create a temporary file. Check the /tmp directory permissions.
Cause
This message indicates a permission problem in the /tmp filesystem.
Action
Check the permissions on the /tmp directory.
1252-027 Warning: Aligning with zeroes: The .short pseudo-op is not on the halfword boundary.
Cause
This warning indicates that a .short pseudo-op is not on the halfword boundary. The assembler places zeros into the current location until the statement is aligned to a halfword boundary.
Action
If the user wants to control the alignment, using a .align pseudo-op with the Number parameter set to 1 prior to the .short pseudo-op will perform the same function. A .byte pseudo-op with an Expression parameter set to 0 prior to the .short pseudo-op will perform the same function that the assembler does internally.
1252-028 Cannot reopen the intermediate result file in the /tmp directory. Make sure that the size of the /tmp file system is sufficient to store the file, and check that the file system is not damaged.
Cause
This message indicates that a system problem occurred while closing the intermediate file and then opening the file again.
Action
The intermediate file normally resides in the /tmp filesystem. Check the /tmp filesystem space to see if it is large enough to contain the intermediate file.
1252-029 There is not enough memory available now. Cannot allocate the text and data sections. Try again later or use local problem reporting procedures.
Cause
This is a memory-management problem. It is reported when the malloc function is called while allocating the text and data section. There is either not enough main memory, or memory pointers are being corrupted.
Action
Try again later. If the problem continues to occur, check the applications load for the memory or talk to the system administrator.
1252-030 Cannot create the file <filename>. Check path name and permissions.
Cause
This message indicates that the assembler is unable to create the output file (object file). An object file is created in the specified location if the -o flag of the as command is used. If the -o flag is not used, an object file with the default name of a.out is created in the current directory. If there are permission problems for the directory or the path name is invalid, this message is displayed.
Action
Check the path name and permissions.
1252-031 There is not enough memory available now. Cannot allocate the ESD section. Try again later or use local problem reporting procedures.
Cause
This is a memory-management problem. It is reported when the malloc function is called while allocating the ESD section. There is either not enough main memory, or memory pointers are being corrupted.
Action
Try again later. If the problem continues to occur, check the applications load for the memory or talk to the system administrator.
1252-032 There is not enough memory available now. Cannot allocate the RLD section. Try again later or use local problem reporting procedures.
Cause
This is a memory-management problem. It is reported when the malloc function is called while allocating the RLD section. There is either not enough main memory, or memory pointers are being corrupted.
Action
Try again later. If the problem continues to occur, check the applications load for the memory or talk to the system administrator.
1252-033 There is not enough memory available now. Cannot allocate the string section. Try again later or use local problem reporting procedures.
Cause
This is a memory-management problem. It is reported when the malloc function is called while allocating the string section. There is either not enough main memory, or memory pointers are being corrupted.
Action
Try again later. If the problem continues occur, check applications load for the memory or talk to the system administrator.
1252-034 There is not enough memory available now. Cannot allocate the line number section. Try again later or use local problem reporting procedures.
Cause
This is a memory-management problem. It is reported when the malloc function is called while allocating the line number section. There is either not enough main memory, or memory pointers are being corrupted.
Action
Try again later. If the problem continues to occur, check the applications load for the memory or talk to the system administrator.
1252-035 through 1252-037 Obsolete messages.
1252-038 Cannot open file <filename>. Check path name and permissions.
Cause
The specified source file is not found or has no read permission; the listfile or the xcrossfile has no write permission; or the specified path does not exist.
Action
Check the path name and read/write permissions.
1252-039 Not used currently.
1252-040 The specified expression is not valid. Make sure that all symbols are defined. Check the rules on symbols used in an arithmetic expression concerning relocation.
Cause
The indicated expression does not resolve into an absolute expression, relocatable expression, external expression, toc relative expression, tocof symbol, or restricted external expression.
Action
Verify that all symbols are defined. Also, there are some rules concerning relocation on which symbols can be used in an arithmetic expression. See Expressions for more information.
1252-041 Cannot divide the value by 0 during any arithmetic divisions.
Cause
During an arithmetic division, the divisor is zero.
Action
Ensure that the value is not divided by zero.
1252-042 The internal arithmetic operator is not known. Depending upon where you acquired this product, contact either your service representative or your approved supplier.
Cause
This is an internal error message.
Action
Contact your service representative or your approved supplier to report the problem.
1252-043 The relocatable assembler expression is not valid. Check that the expressions can be combined.
Cause
This message is displayed when some invalid arithmetic combinations of the expressions are used.
Action
Ensure that the correct arithmetic combination is used. See Expressions for the specific rules of the valid arithmetic combinations for expressions.
1252-044 The specified source character <char> does not have meaning in the command context used.
Cause
A source character has no meaning in the context in which it is used. For example,.long 3@1 , the @ is not an arithmetic operator or an integer digit, and has no meaning in this context.
Action
Ensure that all characters are valid and have meaning in the context in which they are used.
1252-045 Cannot open the list file <filename>. Check the quality of the file system.
Cause
This occurs during pass two of the assembler, and indicates a possible filesystem problem or a closing problem with the original listing file.
Action
Check the file system according to the file path name.
1252-046 Not used currently.
1252-047 There is a nesting underflow. Check for missing .function, .bi, or .bb pseudo-ops.
Cause
This syntax error message is displayed only if debugger pseudo-ops are used. The .function, .bb, and .bi pseudo-ops generate pointers that are saved on a stack with a limiting size of 100 pointers. The .ef, .eb, and .ei pseudo-ops then remove these pointers from the stack. If the number of .ef, .eb, and .ei pseudo-ops encountered is greater than the number of pointers on the stack, this message is displayed.
Action
Rewrite the code to avoid this problem.
1252-048 Found a symbol type that is not valid when building external symbols. Depending upon where you acquired this product, contact either your service representative or your approved supplier.
Cause
This is an internal error message.
Action
Contact your service representative or your approved supplier to report the problem.
1252-049 There is not enough memory to contain all the hash strings. Depending upon where you acquired this product, contact either your service representative or your approved supplier.
Cause
This is an internal error message.
Action
Contact your service representative or your approved supplier to report the problem.
1252-050 There is not enough memory available now. Cannot allocate the debug section. Try again later or use local problem reporting procedures.
Cause
This is a memory-management problem. It is reported when the malloc function is called while allocating the debug section. There is either not enough main memory, or memory pointers are being corrupted.
Action
Try again later. If the problem continues to occur, check the applications load for the memory or talk to the system administrator.
1252-051 There is an sclass type of Number=<number> that is not valid. Depending upon where you acquired this product, contact either your service representative or your approved supplier.
Cause
This is an internal error message.
Action
Contact your service representative or your approved supplier to report the problem.
1252-052 The specified .align parameter must be an absolute value from 0 to 12.
Cause
The Number parameter of the .align pseudo-op is not an absolute value, or the value is not in the range 0-12.
Action
Verify that the Number parameter resolves into an absolute expression ranging from 0 to 12.
1252-053 Change the value of the .org parameter until it is contained in the current csect.
Cause
The value of the parameter for the .org pseudo-op causes the location counter to go outside of the current csect.
Action
Ensure that the value of the first parameter meets the following criteria:

Must be a positive value (includes 0).

Must result in an address that is contained in the current csect.

Must be an external (E_EXT) or relocatable (E_REL) expression.

2363-054 The register parameter in .using must be absolute and must represent a register on the current machine.
Cause
The second parameter of the .using pseudo-op does not represent an absolute value, or the value is out of the valid register number range.
Action
Ensure that the value is absolute and is within the range of 0-31 for PowerPC® and POWER® family.
1252-055 There is a base address in .using that is not valid. The base address must be a relocatable expression.
Cause
The first parameter of the .using pseudo-op is not a relocatable expression.
Action
Ensure that the first parameter is relocatable. The first parameter can be a TOC-relative label, a label/name that is relocatable (relocatable=REL), or an external symbol that is defined within the current assembly source as a csect name/TOC entry.
1252-056 Specify a .using argument that references only the beginning of the TOC section. The argument cannot reference locations contained within the TOC section.
Cause
The first parameter of the .using pseudo-op is a TOC-relative expression, but it does not point to the beginning of the TOC.
Action
Verify that the first parameter describes the beginning of the TOC if it is TOC-relative.
1252-057 The external expression is not valid. The symbol cannot be external. If the symbol is external, the symbol must be defined within the assembly using a .toc or a .csect entry.
Cause
An external expression other than a csect name or a TOC entry is used for the first parameter of the .using pseudo-op.
Action
Ensure that the symbol is either not external (not specified by an .extern pseudo-op) or is defined within the assembly source using a TOC entry or csect entry.
1252-058 Warning: The label <name> is aligned with csect <csectname>.
Cause
If the label is in the same line of the .csect pseudo-op. this warning is reported when the -w flag of the as command is used. This message indicates that a label may not be aligned as intended. If the label should point to the top of the csect, it should be contained within the csect, in the first line next to the .csect pseudo-op.
Action
Evaluate the intent of the label.
1252-059 The register in .drop must be an absolute value that is a valid register number.
Cause
The parameter of the .drop pseudo-op is not an absolute value, or the value is not in the range of valid register numbers.
Action
Use an absolute value to indicate a valid register. For PowerPC® and POWER® family, valid register numbers are in the range of 0-31.
1252-060 The register in .drop is not in use. Delete this line or insert a .using line previous to this .drop line.
Cause
This message indicates that the register represented by the parameter of the .drop pseudo-op was never used in a previous .using statement.
Action
Either delete the .drop pseudo-op or insert the .using pseudo-op that should have been used prior to this .drop pseudo-op.
1252-061 A statement within .toc scope is not valid. Use the .tc pseudo-op to define entries within .toc scope.
Cause
If a statement other than a .tc pseudo-op is used within the .toc scope, this message is displayed.
Action
Place a .tc pseudo-op only inside the .toc scope.
1252-062 The alignment must be a value from 0 to 31.
Cause
The optional second parameter (Number) of the .csect parameter defines alignment for the top of the current csect. Alignment must be in the range 0-31. Otherwise, this message is displayed.
Action
Ensure that the second parameter is in the valid range.
1252-063 Obsolete message.
1252-064 The .comm size must be an absolute expression.
Cause
The second parameter of the .comm pseudo-op must be an absolute expression. Otherwise, this message is displayed.
Action
Ensure that the second parameter is an absolute expression.
1252-065 Not used currently.
1252-066 There is not enough memory available now. Cannot allocate the typchk section. Try again later or use local problem reporting procedures.
Cause
This is a memory-management problem. It is reported when the malloc function is called while allocating the debug section. There is either not enough main memory, or memory pointers are being corrupted.
Action
Try again later. If the problem continues to occur, check the applications load for the memory or talk to the system administrator.
1252-067 The specified common storage class is not valid. Depending upon where you acquired this product, contact either your service representative or your approved supplier.
Cause
This is an internal error message.
Action
Contact your service representative or your approved supplier to report the problem.
1252-068 The .hash string is set for symbol name already. Check that this is the only .hash statement associated with the symbol name.
Cause
The Name parameter of the .hash pseudo-op has already been assigned a string value in a previous .hash statement.
Action
Ensure that the Name parameter is unique for each .hash pseudo-op.
1252-069 The character <char> in the hash string is not valid. The characters in the string must be in the set [0-9A-Fa-f].
Cause
The characters in the hash string value (the second parameter of the .hash pseudo-op) are required to be in the set [0-9A-Fa-f]. The characters represent a hexadecimal hash code. Otherwise, this message is displayed.
Action
Ensure that the characters specified by the StringConstant parameter are contained within this set.
1252-070 The specified symbol or symbol type for the hash value is not valid.
Cause
If the Name parameter for the .hash pseudo-op is not a defined external symbol, this message is displayed.
Notes:
  1. This message can be suppressed by using the -u flag of the as command.
  2. A defined internal symbol (for example, a local label) can also cause this message to be displayed.
Action
Use the -u flag of the as command, or use the .extern or .globl pseudo-op to define the Name parameter as an external symbol.
1252-071 and 1252-072 Not used currently.
1252-073 There is not enough memory available now. Cannot allocate a segment in memory. Try again later or use local problem reporting procedures.
Cause
This indicates a malloc, realloc, or calloc problem. The following problems can generate this type of error:
  • Not enough main memory to allocate
  • Corruption in memory pointers
  • Corruption in the filesystem
Action
Check the file systems and memory status.
1252-074 The pseudo-op is not within the text section. The .function, .bf, and .ef pseudo-ops must be contained within a csect with one of the following storage classes: RO, PR, XO, SV, DB, GL, TI, or TB.
Cause
If the .function, .bf and .ef pseudo-ops are not within a csect with a storage mapping class of RO, PR, XO, SV, DB, GL, TI, or TB, this syntax error message is displayed.
Action
Ensure that the .function, .bf, and .ef pseudo-ops are within the scope of a text csect.
1252-075 The specified number of parameters is not valid.
Cause
This is a syntax error message. The number of parameters specified with the instruction is incorrect.
Action
Verify that the correct number of parameters are specified for this instruction.
1252-076 The .line pseudo-op must be contained within a text or data .csect.
Cause
This is a syntax error message. The .line pseudo-op must be within a text or data section. If the .line pseudo-op is contained in a .dsect pseudo-op, or in a .csect pseudo-op with a storage mapping class of BS or UC, this error is displayed.
Action
Verify that the .line pseudo-op is not contained within the scope of a .dsect; or in a .csect pseudo-op with a storage mapping class of BS or UC.
1252-077 The file table is full. Do not include more than 99 files in any single assembly source file.
Cause
The .xline pseudo-op indicates a filename along with the number. These pseudo-ops are generated with the -l option of the m4 command. A maximum of 99 files may be included with this option. If more than 99 files are included, this message is displayed.
Action
Ensure that the m4 command has not included more than 99 files in any single assembly source file.
1252-078 The bit mask parameter starting at <positionnumber> is not valid.
Cause
This is a syntax error message. In rotate left instructions, there are two input operand formats: rlxx RA,RS,SH,MB,ME, or rlxx RA,RS,SH,BM. This message is displayed only if the second format is used. The BM parameter specifies the mask for this instruction. It must be constructed by certain rules. Otherwise, this message is displayed. See Extended mnemonics of 32-bit fixed-point rotate and shift instructions for information on constructing the BM parameter.
Action
Correct the bit mask value.
1252-079 Found a type that is not valid when counting the RLDs. Depending upon where you acquired this product, contact either your service representative or your approved supplier.
Cause
This is an internal error message.
Action
Contact your service representative or your approved supplier to report the problem.
1252-080 The specified branch target must be on a full word boundary.
Cause
This is a syntax error message. Branch instructions have a target or location to which the program logic should jump. These target addresses must be on a fullword boundary.
Action
Ensure that the branch target is on a fullword address (an address that ends in 0, 4, 8, or c). The assembler listing indicates location counter addresses. This is useful when trying to track down this type of problem.
1252-081 The instruction is not aligned properly. The instruction requires machine-specific alignment.
Cause
On PowerPC® and POWER® family, the alignment must be fullword. If this message is displayed, it is probable that an instruction or pseudo-op prior to the current instruction has modified the location counter to result in an address that does not fall on a fullword.
Action
Ensure that the instruction is on a fullword address.
1252-082 Use more parameters for the instruction.
Cause
Each instruction expects a set number of arguments to be passed to it. If too few arguments are used, this error is displayed.
Action
Check the instruction definition to find out how many arguments are needed for this instruction.
1252-083 Use fewer parameters for the instruction.
Cause
Each instruction expects a set number of arguments to be passed to it. If too many arguments are used, this error is displayed.
Action
Check the instruction definition to find out how many arguments are needed for this instruction.
1252-084 and 1252-085 Obsolete messages.
1252-086 The target of the branch instruction must be a relocatable or external expression.
Cause
An absolute expression target is used where a relocatable or external expression is acceptable for a branch instruction.
Action
Replace the current branch instruction with an absolute branch instruction, or replace the absolute expression target with a relocatable target.
1252-087 The target of the branch instruction must be a relocatable or external expression.
Cause
This is a syntax error message. The target of the branch instruction must be either relocatable or external.
Action
Ensure that the target of this branch instruction is either relocatable or external.

Relocatable expressions include label names, .lcomm names, .comm names, and .csect names.

Relocation refers to an entity that represents a memory location whose address or location can and will be changed to reflect run-time locations. Entities and symbol names that are defined as relocatable or non-relocatable are described in Expressions.

1252-088 The branch address is out of range. The target address cannot exceed the ability of the instruction to represent the bit size of the branch address value.
Cause
This is a syntax error message. Branch instructions limit the target address sizes to 26 bits, 16 bits, and other instruction-specific sizes. When the target address value cannot be represented in the instruction-specific limiting space, this message is displayed.
Action
Ensure that the target address value does not exceed the instruction's ability to represent the target address (bit size).
1252-089 through 1252-098 Obsolete messages.
1252-099 The specified displacement is not valid. The instruction displacement must be relocatable, absolute, or external.
Cause
This is a syntax error message. The instruction displacement must be either relocatable; absolute; external which has the XTY_SD or STY_CM symbol type (a csect or common block name); or possibly TOC-relative (but not a negative TOC-relative), depending on the machine platform.
Action
Verify that the displacement is valid for this instruction.
1252-100 Either the displacement value or the contents of the specified general purpose register, or both, do not yield a valid address.
Cause
Indicates an invalid d(r) operand. Either d or r is missing.
Action
Verify that the base/displacement operand is formed correctly. Correct the programming error, then assemble and link the program again.

Note: If d or r does not need to be specified, 0 should be put in the place.

1252-101 and 1252-102 Obsolete messages.
1252-103 The specified instruction is not supported by this machine.
Cause
This is an internal error message.
Action
Contact your service representative or your approved supplier to report the problem.
1252-104 The <parm #> parameter must be absolute.
Cause
The indicated parameter must be absolute (nonrelocatable, nonexternal).
Action
Refer to the specific instruction article for the instruction syntax.
1252-105 Obsolete message.
1252-106 Not currently used.
1252-107 The parameter <parm #> must be within range for the specific instruction.
Cause
This error occurs in the following situations:
  • The parameter value does not lie within the lower and upper bounds.
  • The parameter value for the SPR encoding is undefined.
  • The parameter value for the rotate and shift instructions is beyond the limitation.
Action
See the specific instruction article for the instruction definition. See Extended mnemonics of moving from or to special-purpose registers for the list of SPR encodings. In general, if the assembly mode is com, pwr, or pwr2, the SPR range is 0 to 31. Otherwise, the SPR range is 0 to 1023. See .csect pseudo-op for information on restrictions. Change the source code, then assemble and link the program again.
1252-108 Warning: The alignment for label <name> is not valid. The label requires machine-specific alignment.
Cause
Indicates that a label is not aligned properly to be the subject of a branch. In other words, the label is not aligned to a fullword address (an address ending in 0, 4, 8, or c).
Action
To control the alignment, a .align pseudo-op prior to the label will perform the alignment function. Also, a .byte pseudo-op with a parameter of 0 or a .short pseudo-op with a parameter of 0 prior to the label will shift the alignment of the label.
1252-109 Warning: Aligning with zeros: The .long pseudo-op is not on fullword boundary.
Cause
Indicates that a .long pseudo-op exists that is not aligned properly on a fullword internal address (an address that ends in 0, 4, 8, or c). The assembler generates zeros to properly align the statement.
Action
To control the alignment, a .align pseudo-op with a parameter of 2 prior to the .long pseudo-op will perform the alignment. Also, a .byte pseudo-op with a parameter of 0 or a .short pseudo-op with a parameter of 0 prior to the .long pseudo-op will perform the alignment.
1252-110 Warning: Aligning with zeros in program csect.
Cause
If the .align pseudo-op is used within a .csect of type [PR] or [GL], and the .align pseudo-op is not on a fullword address (for PowerPC® and POWER® family, all instructions are four bytes long and are fullword aligned), the assembler performs alignment by padding zeros, and this warning message is displayed. It is also displayed when a fullword alignment occurs in other pseudo-op statements.
Action
Look for a reason why the alignment is not on a fullword. This could indicate a possible pseudo-op or instruction in the wrong place.
1252-111 Warning: Csect alignment has changed. To change alignment, check previous .csect statements.
Cause
The beginning of the csect is aligned according to a default value (2, fullword) or the Number parameter. This warning indicates that the alignment that was in effect when the csect was created has been changed later in the source code.

The csect alignment change can be caused by any of the following:

  • The Number parameter of the .csect pseudo-op specifies a value greater than previous .csect pseudo-ops that have the same Qualname.
  • The Number parameter of a .align pseudo-op specifies a value greater than the current csect alignment.
  • A .double pseudo-op is used, which causes the alignment to increase to 3. If the current csect alignment is less than 3, this warning is reported.
Action
This message may or may not indicate a problem, depending on the user's intent. Evaluate whether a problem has occurred or not.
1252-112 Warning: The <inst. format> instruction is not supported by this machine.
Cause
This is an internal error message.
Action
Contact your service representative or your approved supplier to report the problem
1252-113 and 1252-114 Obsolete messages.
1252-115 The sort failed with status <number>. Check the condition of the system sort command or use local problem reporting procedures.
Cause
When the -x flag of the as command is used from the command line, the system sort routine is called. If this call is not successful, this message is displayed. Either the sort utility is not available, or a system problem has occurred.
Action
Check the condition of the system sort command, check the system itself (using the fsck command), or use local problem reporting procedures.
1252-116 There is a system error from <name>. Check the condition of the system sort command or use local problem reporting procedures.
Cause
name has the sort command. When the -x flag of the as command is used from the command line, the system sort routine is called. The assembler forks a process to call the sort utility. If this fork fails to exec the sort routine, this message is displayed. Either the sort utility is not available, or a system problem has occurred.
Action
Check the condition of the system sort command, check the system itself (using the fsck command), or use local problem reporting procedures.
1252-117 "Assembler:"
Cause
This line defines a header to the standard error output to indicate that it is an assembly program.
1252-118 "line <number>"
Cause
number contains the line number on which an error or warning resides. When assembling a source program, this message is displayed prior to the error/warning message on the screen. This message is also printed prior to the error/warning message in the assembler listing file.
1252-119 ".xref"
Cause
This message defines the default suffix extension for the file name of the symbol cross-reference file.
1252-120 ".lst"
Cause
This message defines the default suffix extension for the file name of the assembler listing file.
1252-121 "SYMBOL FILE CSECT LINENO"
Cause
This line defines the heading of the symbol cross-reference file.
1252-122 to 1252-123 Define several formats used in the assembler listing file.
1252-124 Obsolete, replaced by 1252-179.
1252-125 to 1252-132 Define the spaces or formats for the assembler listing file.
1252-133 to 1252-134 Define formats for output numbers and names.
1252-135 Defines 8 spaces that are used in the listing file.
1252-136 Defines a format used in the listing file.
1252-137 to 1252-140 Formats for output of a number.
1252-141 There is an error in the collect pointer. Use local problem reporting procedures.
Cause
This is an internal error message.
Action
Contact your service representative or your approved supplier to report the problem.
1252-142 Syntax error
Cause
If an error occurred in the assembly processing and the error is not defined in the message catalog, this generic error message is used. This message covers both pseudo-ops and instructions. Therefore, a usage statement would be useless.
Action
Determine intent and source line construction, then consult the specific instruction article to correct the source line.
1252-143 The .function Size must be an absolute expression.
Cause
The Size parameter of the .function pseudo-op represents the size of the function. It must be an absolute expression.
Action
Change the Size parameter, then assemble and link the program again.
1252-144 Warning: Any initialized data in <name> csect of BS or UC storage class is ignored but required to establish length.
Cause
Indicates that the statements in the csect with a storage mapping class of BS or UC are used to calculate length of the csect and are not used to initialize data.
Action
None.
1252-145 and 1252-146 Obsolete, replaced by 1252-180 and 1252-181.
1252-147 Invalid .machine assembly mode operand: <name>
Cause
The .machine pseudo-op is used in a source program to indicate the assembly mode value. This message indicates that an undefined value was used.
Action
See the .machine pseudo-op for a list of the defined assembly mode values.
1252-148 Invalid .source language identifier operand: <name>
Cause
The .source pseudo-op indicates the source language type (C, FORTRAN, etc.). This message indicates that an invalid source language type was used.
Action
See the .source pseudo-op for a list of the defined language types.
1252-149 Instruction <name1> is not implemented in the current assembly mode <name2>.
Cause
Instructions that are not in the POWER® family/PowerPC® intersection area are implemented only in certain assembly modes. This message indicates that the instruction in the source program is not supported in the indicated assembly mode.
Action
Use a different assembly mode or a different instruction.
1252-150 The first operand value of value is not valid for PowerPC®. A BO field of 6, 7 14, 15, or greater than 20 is not valid.
Cause
In branch conditional instructions, the first operand is the BO field. If the input value is outside of the required values, this message is displayed.
Action
See the Features of the AIX® assembler for the BO field encoding information to find the correct value of the input operand.
1252-151 This instruction form is not valid for PowerPC®. The register used in operand two must not be zero and must not be the same as the register used in operand one.
Cause
In the update form of fixed-point load instructions, PowerPC® requires that the RA operand not be equal to zero and that it not be equal to RT. If these requirements are violated, this message is displayed.
Action
See the Features of the AIX® assembler for a list of these instructions, and refer to the instruction articles for the syntax and restrictions of these instructions. Change the source code, then assemble and link the program again.
1252-152 Internal error related to the source program domain. Depending upon where you acquired this product, contact your service representative or your approved supplier.
Cause
This is an internal error message.
Action
Contact your service representative or your approved supplier to report the problem.
1252-153 Warning: Instruction <name> functions differently between PowerPC® and POWER®.
Cause
This warning message is not displayed unless the -w flag of the as command is used in the command line. Some instructions have the same op code in PowerPC® and POWER, but are functionally different. This message provides a warning if the assembly mode is com and these instructions are used.
Action
See Functional differences for POWER® family and PowerPC® instructions for information on instructions that have the same op code but are functionally different in POWER and PowerPC®.
1252-154 The second operand is not valid. For 32-bit implementation, the second operand must have a value of zero.
Cause
In the fixed-point compare instructions, the value in the L field must be zero for 32-bit implementation. Also, if the mtsri instruction is used in one of the PowerPC® assembly modes, the RA operand must contain zero. Otherwise, this message is displayed.
Action
Put the correct value in the second operand, then assemble and link the program again.
1252-155 Displacement must be divisible by 4.
Cause
If an instruction has the DS form, its 16-bit signed displacement value must be divisible by 4. Otherwise, this message is displayed.
Action
Change the displacement value, then assemble and link the program again.
1252-156 The sum of argument 3 and 4 must be less than 33.
Cause
When some extended mnemonics for word rotate and shift instructions are converted to the base instruction, the values of the third and fourth operands are added to calculate the SH field, MB field, or ME field. Since these fields are 5 bits in length, the sum of the third and fourth operands must not be greater than 32.
Action
See Extended mnemonics of 32-bit fixed-point rotate and shift instructions for information on converting the extended mnemonic to the base instruction. Change the value of the input operands accordingly, then assemble and link the program again.
1252-157 The value of operand 3 must be greater than or equal to the value of operand 4.
Cause
When some extended mnemonics for word rotate and shift instructions are converted to the base instruction, the value of the fourth operand is subtracted from the value of the third operand to get the ME or MB field. The result must be positive. Otherwise, this message is displayed.
Action
See Extended mnemonics of 32-bit fixed-point rotate and shift instructions for information on converting the extended mnemonic to the base instruction. Change the value of the input operands accordingly, then assemble and link the program again.
1252-158 Warning: Special-purpose register number 6 is used to designate the DEC register when the assembly mode is name.
Cause
This warning is displayed when the mfdec instruction is used and the assembly mode is any. The DEC encoding for the mfdec instruction is 22 for PowerPC® and 6 for POWER. When the assembly mode is any, the POWER encoding number is used to generate the object code, and this message is displayed to indicate this.
Action
None.
1252-159 The d(r) format is not valid for operand <value>.
Cause
Indicates an assembly programming error. The d(r) format is used in the place that a register number or an immediate value is required.
Action
Correct the programming error, then assemble and link the program again.
1252-160 Warning: A hash code value should be 10 bytes long.
Cause
When the .hash pseudo-op is used, the second parameter, StringConstant, gives the actual hash code value. This value should contain a 2-byte language ID, a 4-byte general hash, and a 4-byte language hash. The hash code value should be 10 bytes long. If the value length is not 10 bytes and the -w flag of the as command is used, this warning is displayed.
Action
Use the correct hash code value.
1252-161 A system problem occurred while processing file <filename>.
Cause
A problem with system I/O developed dynamically. This message is produced by the assembler to indicate an fwrite, putc, or fclose error. The I/O problem could be caused by corruption of the filesystem or not enough space in the file systems.
Action
Check the proper file system according to the path name reported.
1252-162 Invalid -m flag assembly mode operand: <name>.
Cause
When an invalid assembly mode is entered on the command line using -m flag of the as command, this message is displayed.
Action
See the Assembling and linking a program for the defined assembly modes.
1252-163 The first operand's value <value> is not valid for PowerPC®. The third bit of the BO field must be one for the Branch Conditional to Count Register instruction.
Cause
If the third bit of the BO operand is zero for the bcctr or bcc (Branch Conditional to Count Register) instruction, the instruction form is invalid and this message is displayed.
Action
Change the third bit to one, then assemble and link the program again.
1252-164 This instruction form is not valid for PowerPC®. RA, and RB if present in the instruction, cannot be in the range of registers to be loaded. Also, RA=RT=0 is not allowed.
Cause
In multiple register load instructions, PowerPC® requires that the RA operand, and the RB operand if present in the instruction format, not be in the range of registers to be loaded. Also RA=RT=0 is not allowed. Otherwise, this message is displayed.
Action
Check the register number of the RA, RB, or RT operand to ensure that this requirement is met.
1252-165 The value of the first operand must be zero for PowerPC®.
Cause
If the POWER svca instruction is used in one of the PowerPC® assembly modes, the first operand is the SV operand. This operand must be zero. Otherwise, this message is displayed.
Action
Put zero into the first operand, or use the PowerPC® sc instruction, which does not require an operand.
1252-166 This instruction form is not valid for PowerPC®. The register used in operand two must not be zero.
Cause
For the update form of fixed-point store instructions and floating-point load and store instructions, PowerPC® requires that the RA operand not be equal to zero. Otherwise, this message is displayed.
Action
Check the register number specified by the RA operand, then assemble and link the source code again.
1252-167 Specify a name with the -<flagname> flag.
Cause
The -n and -o flags of the as command require a filename as a parameter. The -m flag of the as command requires a mode name as a parameter. If the required name is missing, this error message is displayed. This message replaces message 1252-035.
Action
Provide a filename with the -n and -o flags of the as command, and provide a mode name with the -m flag of the as command.
1252-168 -<name> is not a recognized flag.
Cause
An undefined flag was used on the command line. This message replaces message 1252-036.
Action
Make a correction and run the command again.
1252-169 Only one input file is allowed.
Cause
More than one input source file was specified on the command line. This message replaces message 1252-037
Action
Specify only one input source file at a time.
1252-170 The Assembler command has the following syntax: as -l[ListFile] -s[ListFile] -n Name -o ObjectFile [-w|-W] -x[XCrossFile] -u -m ModeName [InputFile]
Cause
This message displays the usage of the as command.
Action
None.
1252-171 The displacement must be greater than or equal to <value1> and less than or equal to <value2>.
Cause
For 16-bit displacements, the limits are 32767 and -32768. If the displacement is out of range, this message is displayed. This message replaces message 1252-106.
Action
See the specific instruction articles for displacement requirements.
1252-172 The .extern symbol is not valid. Check that the .extern Name is a relocatable expression.
Cause
The Name parameter of the .extern pseudo-op must specify a relocatable expression. This message is displayed if the Name parameter of the .extern pseudo-op does not specify a relocatable expression. For information on relocatable and nonrelocatable expressions, see message 1252-004 .
Action
Ensure that the Name parameter of the .extern pseudo-op is a relocatable expression.
1252-173 Warning: The immediate value for instruction <name> is <value>. It may not be portable to a 64-bit machine if this value is to be treated as an unsigned value.
Cause
This warning is reported only for the addis instruction (or the lis extended mnemonic of the addis instruction). The immediate value field of these instructions is defined as a signed integer, which should have a valid value range of -32768 to 32767. To maintain compatibility with the cau instruction, however, this range is expanded to -65536 to 65535. This should cause no problems in a 32-bit mode, because there is nowhere for sign extension to go. However, this will cause a problem on a 64-bit machine, because sign extension propagates across the upper 32 bits of the register.
Action
Use caution when using the addis instruction to construct an unsigned integer. The addis instruction has different semantics on a 32-bit implementation (or in 32-bit mode on a 64-bit implementation) than it does in 64-bit mode. The addis instruction with an unsigned integer in 32-bit mode cannot be directly ported to a 64-bit mode. The code sequence to construct an unsigned integer in 64-bit mode is significantly different from that needed in 32-bit mode.
1252-174 Too many .machine "push" instructions without corresponding .machine "pop" instructions.
Cause
The maximum size of the assembly stack has been exceeded. More than 100 entries have been added to the stack with .machine "push" but not removed with .machine "pop".
Action
Change the source program to eliminate the assembly stack overflow condition.
1252-175 A .machine "pop" is seen without a matching .machine "push".
Cause
Pseudo-op .machine "pop" attempted to remove an entry from the assembly stack, but the stack is empty. The source program may be missing a .machine "push".
Action
Correct the source program.
1252-176 The .ref pseudo-op cannot appear in section <name>.
Cause
A .ref pseudo-op appears in a dsect or a csect with a storage mapping class of BS or UC, which is not permitted.
Action
Change the source program.
1252-177 The operand of the .ref <name> is not a relocatable symbol.
Cause
.ref pseudo-op operand name is one of the following items: a dsect name or label, a csect name or label with a storage mapping class of BS or UC, a .set operand which represents an item that is not relocatable, or a constant value.
Action
Correct the source program.
1252-178 The maximum number of sections or symbols that an expression can refer to has been exceeded.
Cause
An expression refers to more than 50 control sections (csects or dsects).
Action
Correct the source program.
1252-179 File# Line# Mode Name Loc Ctr Object Code Source
Cause
This line defines the heading of the assembler listing file without the mnemonics cross reference of POWER and PowerPC®.
1252-180 File# Line# Mode Name Loc Ctr Object Code PowerPC® Source
Cause
This is one of the headings of the assembler listing file with the mnemonics cross-reference of POWER and PowerPC®. The assembler listing column labeled PowerPC® contains PowerPC® mnemonics for statements where the source program uses POWER mnemonics. This message is used for assembly modes of the PowerPC® category (including com, ppc, 601, and any).
1252-181 File# Line# Mode Name Loc Ctr Object Code POWER Source
Cause
This is one of the headings of the assembler listing file with the mnemonics cross-reference of POWER and PowerPC®. The assembler listing column labeled POWER contains POWER mnemonics for statements where the source program uses PowerPC® mnemonics. This message is used for assembly modes of the POWER category (including pwr and pwr2).
1252-182 Storage mapping class <name> is not valid for .comm pseudo-op. RW is used as the storage mapping class for the object code.
Cause
The storage mapping class of the .comm pseudo-op is some value other than the valid values (TD, RW, BS, and UC). The assembler reports this as a warning and uses RW as the storage mapping class.
Action
Change the source program.
1252-183 TD csect only allowed inside ".toc" scope.
Cause
A csect with storage mapping class TD has been used without first using the .toc pseudo-op.
Action
Use the .toc pseudo-op before this instruction.
1252-184 TOC anchor must be defined to use a TOC-relative reference to <name>. Include a .toc pseudo-op in the source.
Cause
A TOC-relative reference is being used, but the TOC anchor is not defined. This can happen if an external TD symbol is defined and used as a displacement in a D-form instruction, but there is no .toc pseudo-op in the source program.
Action
Use the .toc pseudo-op in the program.
1252-185 Warning: Operand is missing from pseudo-op.
Cause
An operand required for pseudo-ops .byte, .vbyte, .short, .long, or .llong is missing.
Action
Provide an initial value for the data storage area created by these pseudo-ops.
1252-186 Warning: The maximum length of a stabstring is <number> characters. Extra characters have been discarded.
Cause
A stabstring is limited in length; the specified stabstring is greater than the maximum lenght of a single string.
Action
Split the string into 2 or more strings, continuing the information from one stabstring to the next.
1252-187 Warning: The alignment of the current csect is less than the alignment specified with the .align pseudo-op.
Cause
The alignment of the csect is not as strict as the alignment required by the use of a .align pseudo-op within that csect.
Action
The .align pseudo-op specifies alignment of an item within the csect; the alignment speicified for the csect should be equal to or greater than this value. For example, if the csect requires word alignment, and a .llong within the csect requires doubleword alignment, there is a potential for the .llong value to ultimately (after linking) be only word-aligned. This may not be what is intended by the user.
1252-188 Zero is used in the L operand for the <instruction> instruction.
Cause
Some compare instructions allowed the L operand to be optional in 32-bit mode. In 64-bit mode, the operand is not optional.
Action
All 4 operands should be specified for the instruction, or, alternatively, use an extended mnemonic.
1252-189 Invalid value for environment variable OBJECT_MODE. Set the OBJECT_MODE environment variable to 32 or 64 or use the -a32 or -a64 option.
Cause
The value of the OBJECT_MODE environment variable is not recognized by the assembler.
Action
Set the OBJECT_MODE environment variable to either 32 or 64, or use the -a32 or -a64 command line option. Any other value for the environment variable has no meaning to the assembler.
1252-190 Invalid reference to label <name>: .function pseudo-op must refer to a csect.
Cause
The .function pseudo-op referred to a local label.
Action
The reference <name> should be the name (label) of a csect.
1252-191 Only <name> should be used for relocatable expressions.
Cause
The expression used to initialize <name> contains references to externally defined symbols (i.e. the symbols appear in .extern pseudo-op).
Action
Verify that no externally defined symbols are contained within the expression operands for <name>. Relocation in 32-bit mode can only be applied to 32-bit quantities; in 64-bit mode relocation can only be applied to 64-bit quantities.
1252-192 Assembly mode is not specified. Set the OBJECT_MODE environment variable to 32 or 64 or use the -a32 or -a64 option.
Cause
The environment variable contains the value 32_64.
Action
Set the OBJECT_MODE environment variable to either 32 or 64, or use the -a32 or -a64 command line option.
1252-193 Values specified with the .set psuedo-op are treated as 32-bit signed numbers. Unexpected results may occur when these values are used in a .llong expression.
Cause
In 32-bit mode, an expression that results from the use of .set has been used to set the initial value of a .llong.
Action
For initializing .llong's when in 32-bit mode, values are treated as 64-bit. If a .set symbol whose most significant bit is set is used as part of the initialization, the value may not be interpreted in a manner intended by the user. For example, the value 0xFFFF_0000 may have been intended to be a positive 64-bit quantity, but is a negative 32-bit number which would be sign extended to become 0xFFFF_FFFF_FFFF_0000.
1252-194 Warning: The immediate value for instruction <instruction> is <number>. It may not be portable to a 64-bit machine if this value is to be treated as an unsigned value.
Cause
This is a alternate version of message 173; see above for more information.