Qualcomm Hexagon™ Application Binary Interface

Qualcomm Hexagon™ Application Binary Interface

Qualcomm Hexagon Application Binary Interface User Guide 80-N2040-23 Rev. K December 4, 2018 Technologies, Inc.. Confidential andSent Proprietary to LLVM - DevelopersQualcomm ([email protected]) Watermarked by '0#.w|na\hsinih'Total Number on of 9/16/2019 Pages 60 of LLVM on Monday, September 16, 2019 All Qualcomm products mentioned herein are products of Qualcomm Technologies, Inc. and/or its subsidiaries. Qualcomm and Hexagon are trademarks of Qualcomm Incorporated, registered in the United States and other countries. Other product and brand names may be trademarks or registered trademarks of their respective owners. This technical data may be subject to U.S. and international export, re-export, or transfer (“export”) laws. Diversion contrary to U.S. and international law is strictly prohibited. Qualcomm Technologies, Inc. 5775 Morehouse Drive San Diego, CA 92121 U.S.A. © 2018 Qualcomm Technologies, Inc. and/or its subsidiaries. All rights reserved. Contents 1 Introduction ...........................................................................................6 1.1 Conventions................................................................................................................6 1.2 Technical assistance....................................................................................................6 2 ABI overview..........................................................................................7 3 Data types ..............................................................................................8 3.1 Basic data types ..........................................................................................................8 3.2 Memory alignment .....................................................................................................9 3.2.1 Static allocation...............................................................................................10 3.2.2 Stack allocation ...............................................................................................10 3.2.3 Heap allocation ............................................................................................... 11 4 Software stack .....................................................................................12 4.1 Stack sections ........................................................................................................... 12 Technologies, Inc.. 5 Parameter passing ..............................................................................14 Confidential andSent Proprietary to LLVM - DevelopersQualcomm 5.1 Fixed argument list function calls([email protected]) ............................................................................ 14 5.2 Variable argument list function calls ........................................................................ 16 5.3 Vector register Watermarkedusage for function by '0#.w|na\hsinih' callsTotal ....................................................................16 Number on of 9/16/2019 Pages 60 of LLVM on Monday, September 16, 2019 6 Return values.......................................................................................17 7 Register usage across calls...............................................................18 7.1 Outgoing memory arguments ................................................................................... 18 8 C++ exception handling......................................................................19 9 Operating system interface................................................................20 10 Process initialization.........................................................................21 10.1 Special registers...................................................................................................... 21 10.2 General registers..................................................................................................... 21 80-N2040-23 Rev. K 2 Qualcomm Hexagon Application Binary Interface User Guide Contents 11 Program loading................................................................................22 11.1 Position-independent objects.................................................................................. 22 12 Object files.........................................................................................23 12.1 Compatibility.......................................................................................................... 23 12.2 ELF header ............................................................................................................. 24 12.3 Sections................................................................................................................... 25 12.4 Relocation...............................................................................................................26 12.4.1 Relocation fields ........................................................................................... 26 12.4.2 Relocation symbols....................................................................................... 27 12.4.3 Relocation types............................................................................................ 28 12.4.4 Special relocation types ................................................................................ 32 12.5 Linker-generated symbols ......................................................................................32 13 Program headers...............................................................................33 14 Dynamic linking.................................................................................34 14.1 Dynamic section ..................................................................................................... 35 14.2 Global offset table .................................................................................................. 36 14.3 Procedure linkage table .......................................................................................... 37 15 Thread-local storage.........................................................................40 Technologies, Inc.. 15.1 Thread-local storage section................................................................................... 40 15.2 Runtime allocation.................................................................................................. 40 15.3 Load-time Confidentialallocation...............................................................................................41 andSent Proprietary to LLVM - DevelopersQualcomm ([email protected]) 15.4 Interface.................................................................................................................. 41 15.5 Thread-local storageWatermarked access.................................................................................... by '0#.w|na\hsinih'Total Number on of 9/16/2019 Pages 60 42 15.5.1 General dynamic (GD).................................................................................. 42 of LLVM on Monday, September 16, 2019 15.5.2 Local dynamic (LD)......................................................................................42 15.5.3 Initial executable (IE).................................................................................... 43 15.5.4 Local executable (LE)................................................................................... 43 16 Coding examples...............................................................................44 16.1 Register use.............................................................................................................44 16.2 Assembler symbols................................................................................................. 45 16.3 Addressing constraints............................................................................................ 46 16.4 Function prologs and epilogs.................................................................................. 47 16.4.1 Absolute ........................................................................................................47 16.5 Direct function call ................................................................................................. 49 16.5.1 Absolute ........................................................................................................49 16.5.2 Position-independent..................................................................................... 49 80-N2040-23 Rev. K 3 Qualcomm Hexagon Application Binary Interface User Guide Contents 16.6 Indirect function call...............................................................................................50 16.6.1 Absolute ........................................................................................................50 16.6.2 Position-independent..................................................................................... 51 16.7 Direct branch .......................................................................................................... 52 16.7.1 Absolute and position-independent............................................................... 52 16.8 Indirect branch........................................................................................................53 16.8.1 Absolute ........................................................................................................53 16.8.2 Position-independent..................................................................................... 54 16.9 Data access .............................................................................................................55

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    60 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