HPlogo HP Assembler Reference Manual: HP 9000 Computers > Chapter 8 Diagnostic Messages

Warning Messages

» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

The following messages describe compiler warnings that prevent the Assembler from creating an object file. You must correct these errors to assemble your program.

1
MESSAGE

Use of old style opcode, "%s"

CAUSE

Attempt to use an opcode that has been renamed for PA2.0.

ACTION

Consult the PA-RISC Architecture manual for the new form of the opcode.

2
MESSAGE

Unknown option "%s" ignored.

CAUSE

An unknown or invalid command-line option was passed to the assembler.

ACTION

Remove the invalid option from the command-line.

3
MESSAGE

Argument is missing for "%s"

CAUSE

Missing argument for command-line option <operand>.

ACTION

Add an argument to the command-line option.

4
MESSAGE

Illegal argument for option "%s"

CAUSE

Invalid value for command-line option <operand>

ACTION

Supply a valid value for the command-line option.

5
MESSAGE

Usage of field selector "%s" with instruction "%s" may be incorrect

CAUSE

Using an improper field selector for the instruction.

ACTION

Change the field selector.

7
MESSAGE

Space characteristics may not be changed after first declaration

CAUSE

Attempt to change the values assigned to keywords for a space previously declared with a .SPACE directive. The first declaration of the space may be in the file pcc_prefix.s.

ACTION

Use desired values for keywords on first declaration of space. Specify keyword values on first declaration of space only.

8
MESSAGE

Subspace characteristics may not be changed after first definition

CAUSE

Attempt to change the values assigned to keywords for a subspace previously declared with a .SUBSPACE directive. The first declaration of the subspace may be in the file pcc_prefix.s.

ACTION

Use desired values for keywords on first declaration of subspace. Specify keyword values on first declaration of subspace only.

10
MESSAGE

Alignment omitted - 8 assumed

CAUSE

Missing argument for .ALIGN directive.

ACTION

Use a valid power of two integer argument with .ALIGN

11
MESSAGE

Missing value - zero assumed

CAUSE

Missing argument for .ORIGIN or .EQU directive

ACTION

Use a valid integer argument.

12
MESSAGE

Size omitted - 4 assumed

CAUSE

Missing argument for .COMM directive.

ACTION

Specify the actual number of bytes to reserve.

13
MESSAGE

Modification of %r3 with a frame size larger than 8191 bytes violates .ENTER/.LEAVE convention

CAUSE

General register 3 used as a temporary register within a procedure where the frame size was set by the FRAME keyword to a size larger than 8191 bytes.

Note: %r3 is predefined as a frame pointer for procedures with large frames.

ACTION

Don't use %r3 as a temporary register in a procedure that has a large frame.

14
MESSAGE

KEEP should not be in force for this statement

CAUSE

.KEEP directive used outside of a procedure

ACTION

Remove the .KEEP directive.

15
MESSAGE

Procedure makes calls but is not flagged as CALLER in CALLINFO

CAUSE

Missing CALLER keyword in .CALLINFO directive for this procedure.

ACTION

Add CALLER keyword to .CALLINFO for this procedure.

16
MESSAGE

Redefinition of symbol

CAUSE

Symbol used in label definition is already defined.

ACTION

Use a different name in the label part to avoid overwriting the previous definition.

17
MESSAGE

Existing register name, number, and type are being overwritten

CAUSE

Name (label) used with .REG was previously defined.

ACTION

Use a different name in the label part to avoid overwriting previous definition.

18
MESSAGE

The "%s" error message catalog cannot be located

CAUSE

Error message catalog for LANG <operand> cannot be accessed.

ACTION

Insure that your NLSPATH variable is set correctly. Also insure that the default error message catalog for the assembler is accessible in /usr/lib/nls/msg/C/as.cat

19
MESSAGE

Defining register missing or defining register has no type

CAUSE

Parameter to .REG is not one of the predefined assembler registers, nor is it a previously defined (by another .REG directive) register.

ACTION

Either use one of the predefined assembler register names or a register name previously defined by a .REG directive.

20
MESSAGE

General register expected in this field - %s

CAUSE

Wrong register type used.

ACTION

Use a general register.

21
MESSAGE

Space register expected in this field - %s

CAUSE

Wrong register type used.

ACTION

Use a space register.

22
MESSAGE

Control register expected in this field - %s

CAUSE

Wrong register type used.

ACTION

Use a control register.

23
MESSAGE

Floating point register expected in this field - %s

CAUSE

Wrong register type used.

ACTION

Use a floating-point register.

25
MESSAGE

This subspace should have no initialized data in it

CAUSE

Use of a directive, such as .WORD that allocates and initializes data, when the currently active subspace has the ZERO keyword associated with it, which disallows initialized data.

ACTION

Either use the .BLOCK directive to allocate storage in this subspace or remove the ZERO keyword from the .SUBSPACE definition.

26
MESSAGE

Output file name missing

CAUSE

Filename needed for -o command-line option.

ACTION

Supply a valid filename for the -o command-line option.

27
MESSAGE

XREF file name missing after -v

CAUSE

Filename needed for -v command-line option.

ACTION

Supply a valid filename for the -v command-line option.

28
MESSAGE

Only one copyright message permitted

CAUSE

More than one .COPYRIGHT directive encountered.

ACTION

Remove the extra .COPYRIGHT directive(s).

29
MESSAGE

A procedure may not be empty

CAUSE

Procedure with no code encountered.

ACTION

Add at least one instruction to procedure or delete the procedure from the source file.

30
MESSAGE

Procedure does not have .CALLINFO

CAUSE

Procedure requires a .CALLINFO due to use of .ENTER/.LEAVE or if there are no unwind space requirements.

ACTION

Insert a correct .CALLINFO directive at the start of the procedure.

31
MESSAGE

Empty source file(s)

CAUSE

Input source file was empty.

ACTION

An empty source file usually indicates an error of some kind.

32
MESSAGE

Missing .PROCEND

CAUSE

A .PROC was not terminated by a corresponding .PROCEND

ACTION

Insert a .PROCEND

33
MESSAGE

Cache hint may not work on some hardware

CAUSE

An instruction was encountered that was performing a load to %r0. This type of instruction is reserved as a hint to the cache system. However some of the early hardware didn't properly perform this cache hint feature.

ACTION

Avoid using loads to %r0 if you want your code to execute correctly on all PA-RISC machines.

34
MESSAGE

Missing .LEVEL directive; A .LEVEL 1.0 was inserted before .ALLOW

CAUSE

A .ALLOW directive was encountered without first seeing a .LEVEL directive.

ACTION

Insert a .LEVEL directive at the start of the source file.

35
MESSAGE

Use of .ALLOW %s not meaningful for file assembled at .LEVEL %s

CAUSE

The .ALLOW directive supplied has no meaning for a file assembled at given .LEVEL. For example if your source file specifies .LEVEL 1.1 then a .ALLOW 1.0 or .ALLOW 1.1 would not be meaningful for this source file.

ACTION

Removed .ALLOW directive or change .LEVEL.

36
MESSAGE

Use of %s is incorrect for the current %s of %s

CAUSE

Use of a feature that is not supported on the hardware that the assembler is targeting. The assembler is told what hardware it is targeting through the use of the .LEVEL and .ALLOW directives. Using PA1.1 features while at .LEVEL 1.0 will generate this message.

ACTION

Insert a .LEVEL or .ALLOW directive as appropriate, or remove the offending instruction from the source file.

37
MESSAGE

Use of %s requires key bit %s to be enabled with a .LEVEL or .ALLOW

CAUSE

Use of a feature that requires a key bit to be set.

ACTION

Add key bit to the .LEVEL or .ALLOW directive.

38
MESSAGE

Encoding for %s requires a format that is incorrect for the current %s of %s

CAUSE

The instruction requires an encoding format that is not available on the hardware that the assembler is targeting. The assembler is told what hardware it is targeting through the use of the .LEVEL and .ALLOW directives. Using a PA-RISC 2.0 instruction encoding format while at .LEVEL 1.1 will generate this message.

ACTION

Change the instruction such that it can be properly encoded on the hardware that the assembler is targeting or change the .LEVEL to 2.0.

39
MESSAGE

The completer specified ,%s is obsolete but will be accepted as ,%s

CAUSE

The use of the ,SH completer is incorrect.

ACTION

Replace the ,SH completer by the ,BC completer is the source.

40
MESSAGE

Poorly formed operand, accepted as %s(%r0)

CAUSE

The previous assembler would silently accept poorly formed operands and add a trailing (%r0) to the operand. The new assembler will also accept these poorly formed operands and also add the trailing (%r0) to the operand, but it additionally flags this as a potential problem by issuing this warning.

ACTION

Add a trailing (%r0) to the operand or otherwise correct the poorly formed operand.

41
MESSAGE

A register typed operand is expected here - %s

CAUSE

The old assembler would accept integers between 0 and 31 as valid registers, or alternatively accept names that were defined using a .EQU to an integer. The new assembler performs additional type checks on the operands and wants to see either a predefined register (starting with a %) or a register name that was previously defined by the .REG directive. The file /usr/lib/pcc_prefix.s is typically included when the assembler is invoked through cc(1) and this file defines many register names that are typically used in assembly programs.

ACTION

Inspect the source file and replace the integer with the appropriate predefined register, or for a name, find and replace the .EQU directive with a correct .REG directive.

Alternatively the w41 command-line option may be used to suppress all occurrences of this warning message.

Note that future versions of the assembler may require proper register typing of operands in order for it to be able to disambiguate between immediates and registers for certain opcodes. Thus in future versions of the assembler this message may be a non-suppressible error instead of a warning.

42
MESSAGE

Use of %s is incorrect for the current %s of %s

CAUSE

Use of a cbit in a FTEST or FCMP instruction, with a .LEVEL of 1.1 or 1.0. The cbit feature of FCMP and FTEST is only available for .LEVEL 2.0.

ACTION

Insert a .LEVEL or .ALLOW directive as appropriate, or remove the offending instruction from the source file.

44
MESSAGE

Value for ACCESS was not specified for this new .SUBSPA directive.

CAUSE

A new subspace is being defined by the this .SUBSPA directive and a value of the ACCESS keyword is not supplied. You must always give a value for ACCESS when defining a new subspace.

ACTION

If the subspace that you are referencing is a predefined subspace then make sure that the header file /usr/lib/pcc_prefix.s is being included. You must add the header file to the command-line if you are invoking as(1) directly. The header file will typically be included for you if you invoke the assembler using cc(1)

If you are declaring a new subspace then add the proper ACCESS definition to the .SUBSPA directive. The value ACCESS=0x2c should be used for all code or read-only subspaces and the value ACCESS=0x1f should be used for all data or read-write subspaces.

45
MESSAGE

Previous value for .SHLIB is being changed to this value

CAUSE

More than one .SHLIB directive was encountered.

ACTION

Remove the extra .SHLIB directive(s).

46
MESSAGE

The +DA option conflicts with the .LEVEL directive, using .LEVEL %s.

CAUSE

The assembly source file contained a .LEVEL directive which conflicted with the command-line +DA option. The assembler always honors the .LEVEL directive found in the source file. The command-line +DA was ignored.

ACTION

Remove +DA from the command-line used to invoke the assembler.

47
MESSAGE

The behavior of instruction %s is undefined with the operands and completers supplied.

CAUSE

The behavior of the instruction used is undefined with the operands supplied.

ACTION

Read the PA-RISC Architecture manual entry for the instruction being used, paying attention to the cases in which the behavior of the instruction is undefined. Recode the operands for the instruction so that the operands don't cause the instruction to be undefined.

48
MESSAGE

Expression encountered while expecting a register; Register %s substituted for expression.

CAUSE

An expression was encountered in a location where a predefined register (starting with a % or a register name that was previously defined by the .REG directive was expected. (Also see warning 41).

ACTION

Replace expression with a predefined register or a register name that was previously defined by the .REG directive.

49
MESSAGE

Number is too large. The value -1 will be used instead.

CAUSE

A number was encountered that was too large to fit in a 64-bit integer.

ACTION

Replace the number with a smaller value.

© 1998 Hewlett-Packard Development Company, L.P.