IA-64 UNIX System V Application Binary Interface

IA-64 UNIX System V Application Binary Interface

UNIX System V Application Binary Interface January 2000 Order Number: 245370-001 THIS DOCUMENT IS PROVIDED “AS IS” WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. Information in this document is provided in connection with Intel products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel's Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty, relating to sale and/or use of Intel products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Intel products are not intended for use in medical, life saving, or life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The IA-64 processor may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800- 548-4725, or by visiting Intel’s website at http://developer.intel.com/design/litcentr. Copyright © Intel Corporation, 2000 *Third-party brands and names are the property of their respective owners. Contents 1Introduction 1-1 1.1 The Intel IA-64 Architecture and the System V ABI......................................................1-1 1.2 How to Use the System V ABI for Intel IA-64 Processors ............................................1-1 1.3 Evolution of the ABI Specification.................................................................................1-2 1.4 Additional Documents...................................................................................................1-2 2 Software Installation 2-1 3 Low-level System Information 3-1 3.1 Introduction ...................................................................................................................3-1 3.2 Machine Interface .........................................................................................................3-1 3.2.1 Fundamental Types......................................................................................3-1 3.3 Operating System Interface ..........................................................................................3-2 3.3.1 Exception Interface.......................................................................................3-2 3.3.2 Signal Delivery..............................................................................................3-4 3.3.3 Signal Handler Interface ...............................................................................3-5 3.3.3.1Signal Delivery – Implementation Notes............................................................3-5 3.3.4 Debugging Support.......................................................................................3-6 3.3.5 Process Startup ............................................................................................3-6 4 Object Files 4-1 4.1 ELF Header ..................................................................................................................4-1 4.1.1 Machine Information .....................................................................................4-1 4.1.1.1Programming Model ..........................................................................................4-1 4.1.1.2File Class ...........................................................................................................4-1 4.1.1.3Data Encoding ...................................................................................................4-1 4.1.1.4Operating System Identification.........................................................................4-1 4.1.1.5Processor Identification .....................................................................................4-2 4.1.1.6Processor-Specific Flags ...................................................................................4-2 4.2 Sections ........................................................................................................................4-3 4.2.1 Section Types...............................................................................................4-3 4.2.2 Section Attribute Flags .................................................................................4-4 4.2.3 Special Sections...........................................................................................4-4 4.2.4 Architecture Extensions................................................................................4-6 4.3 Relocations...................................................................................................................4-6 4.3.1 Relocation Types..........................................................................................4-6 5 Program Loading and Dynamic Linking 5-1 5.1 Program Header ...........................................................................................................5-1 5.2 Program Loading ..........................................................................................................5-1 5.2.1 Link-Time and Run-Time Addresses ............................................................5-4 5.2.2 Initializations.................................................................................................5-4 5.3 Dynamic Linking ...........................................................................................................5-4 5.3.1 Dynamic Linker.............................................................................................5-4 5.3.2 Dynamic Section...........................................................................................5-5 5.3.3 Shared Object Dependencies.......................................................................5-5 5.3.4 Global Offset Table.......................................................................................5-6 5.3.5 Function Addresses......................................................................................5-6 UNIX System V Application Binary Interface iii 5.3.6 Procedure Linkage Table .............................................................................5-7 5.3.7 Initialization and Termination Functions .....................................................5-10 6Libraries 6-1 7 Miscellaneous 7-1 7.1 Introduction...................................................................................................................7-1 7.2 Development Environment ...........................................................................................7-1 7.2.1 Pre-Defined Preprocessor Symbols .............................................................7-1 7.2.2 Pre-Defined Preprocessor Assertions ..........................................................7-1 7.2.3 Compiler Pragmas........................................................................................7-2 7.3 ILP32 ABI .....................................................................................................................7-2 7.3.1 Objectives of the 32-bit Little-endian Runtime Architecture..........................7-3 7.3.2 Changes from the 64-bit Software Conventions...........................................7-3 7.3.3 Addressing and Protection ...........................................................................7-3 7.3.4 Data Allocation .............................................................................................7-4 7.3.4.1Global Variables ................................................................................................7-4 7.3.5 Local Memory Stack Variables.....................................................................7-4 7.3.6 Parameter Passing.......................................................................................7-4 Figures 3-1 Double-Extended (80-bit) Floating-point Formats .....................................................................3-2 4-1 Instruction Bundle Layout ..........................................................................................................4-7 4-2 Relocatable Fields .....................................................................................................................4-8 5-1 Example Executable File ...........................................................................................................5-2 5-2 Example Program Header Segments........................................................................................5-2 5-3 Example Process Image Segments ..........................................................................................5-3 5-4 Procedure Linkage Table Sample Entries .................................................................................5-8 Tables 3-1 Additional Fundamental Data Types .........................................................................................3-1

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    46 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us