Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX 11i Version 1.6 Release Notes: HP-UX Servers and Workstations > Chapter 7 Programming

IPF Assembler

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Index

The IPF assembler, also known as the IA-64 assembler, is used to assemble source files written according to the IPF Assembly Language Specification.

Summary of Change

The HP-UX 11i v1.6 release of the IPF assembler contains a number of enhancements. The most significant enhancement is the hazard checking logic and support for the pred.rel assembler directive.

Details of Change

The fixes in HP-UX 11i v1.6 are:

  • Explicit bundling not being respected in certain cases:

    In certain cases, especially when using explicit but incomplete bundling the assembler was creating a bundle with a template other than the one explicitly requested by the user by using the template directives. The root cause is related to doing bundle fixes to convert any intra-bundle stops to inter-bundle stops. If applicable and possible, this assures that any instruction that must be the first in an instruction group and that's in a subsequent bundle will, in fact, be the first in the instruction group and not follow nops that are placed after the intra bundle stops in the preceding bundle. The fix selects the best template from a set of possible templates, without taking into account the fact that a explicit template directive is in effect.

  • X-format unwind records:

    The emission of the X-format unwind records was found incorrect when the unwind directive contained the register rp or r0. The assembler mistakenly created a record for rp when r0 was specified and failed to create a record for rp when rp was specified. Also, the assembler did not accept the @psp and @priunat pseudo-registers.

  • Expression evaluation was unsigned by default:

    The assembler in cases treated a negative number as a large unsigned number, and as such rejected the immediate as too large or the displacement as too distant to be encoded in the instruction.

  • Temporary symbols in object file:

    Non-scope restricted temporary symbols were emitted to the object file by mistake.

The enhancements in HP-UX 11i v1.6 are:

  • Improved support for opaque and stub symbols:

    Support for opaque symbols and stub symbols is improved by allowing the export class to be set for those symbols.

  • Allow predication for alloc instructions:

    To bring the assembler up to date with respect to Intel's SDM version 1.1, the alloc instruction can now be predicated.

  • Catalog handling in a XDK environment:

    The XDK logic in the assembler has changed to avoid occasional catalog problems caused by the improper setting of NLSPATH. The assembler now always annotates NLSPATH to include the correct path to the catalog file independently of how it was invoked. This causes the catalog to be found in almost all cases.

  • New implementation of dependency checking:

    The dependency or hazard checking logic is vastly improved and now keeps track of dependencies in almost all cases. This includes switching to and from different code sections in between instruction groups. As such, dependency checking is found robust enough to emit errors for the definite violations. Possible dependency violations still remain warnings. As a consequence of the new implementation, support for the .pred.rel directive has been added.

    IMPORTANT: The assembler is now more likely to emit the following warning:

    warning: redundant instruction stop

    This is the result of acting on the fact that certain instructions do end instruction groups. The explicit use of an instruction stop after these instructions is therefore redundant. The warning is harmless, but it has been observed that the removal of the redundant stop improves bundling and yield more compact code.

Impact

Assembly code that contains definite dependency violations now cause an error, and as such may result in failed builds that used to succeed with a prior version of the assembler.

Compatibility

Compatibility with the Intel IA-64Architecture Software Developer's Manual Version 1.1 has been maintained or increased slightly. This manual, as well as other related information, can be obtained at:

http://developer.intel.com/design/itanium/manuals/index.htm

Performance

There are no negative performance issues.

Obsolescence

Not applicable.

Documentation

The as(1) manpage has been updated to reflect these changes, please refer to this manpage for more information.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 2002 Hewlett-Packard Development Company, L.P.