HP UX Developer Tools manual Register Procedure Calling Conventions, Register Synonyms Description

Page 28

Program Structure

Registers and Register Mnemonics

Some additional predefined register mnemonics are provided in “Register Procedure Calling Conventions” on page 28 to match the standard procedure-calling convention. This is discussed briefly in “HP-UX Architecture Conventions” on page 39. You can find detailed information on both 32-bit and 64-bit calling conventions under the topic PA-RISC Architecture at URL: http://www.software.hp.com/STK/.

Table 2-7

Register Procedure Calling Conventions

 

 

 

 

 

 

 

Register

Synonyms

Description

 

 

 

 

 

 

 

%fr4

%farg0 %fret

Floating argument, return value

 

 

%fr5

%farg1

Second floating argument

 

 

%fr6

%farg2

Third floating argument

 

 

%fr7

%farg3

Fourth floating argument

 

 

%r2

%rp

Return link

 

 

%r19

%t4

Fourth temporary register

 

 

%r20

%t3

Third temporary register

 

 

%r21

%t2

Second temporary register

 

 

%r22

%t1

First temporary register

 

 

%r23

%arg3

Argument word 3

 

 

%r24

%arg2

Argument word 2

 

 

%r25

%arg1

Argument word 1

 

 

%r26

%arg0

Argument word 0

 

 

%r27

%dp

Data pointer

 

 

%r28

%ret0

Return value

 

 

%r29

%ret1 %sl

Return value, static link

 

 

%r30

%sp

Stack pointer

 

 

%r31

%mrp

Millicode return link

 

 

%sr1

%sret %sarg

Return value, argument

 

 

 

 

 

In addition, there is a special register mnemonic defined as %previous_sp, that allows access to the previous value of the stack pointer.

%previous_sp must be used in the position of a base register; it can be used only between .ENTER and .LEAVE pseudo-operations. %previous_sp is the same as %sp unless the current .PROC has a large

28

Chapter 2

Image 28
Contents HP 9000 Computers 92432-90012 JuneRestricted Rights Legend Legal NoticesHanover Street Palo Alto, California Contents Assembler Directives and Pseudo-Operations Contents Contents Contents Contents Pseudo-Instruction Set Assembling Your Program Programming Examples Diagnostic MessagesIndex Printing History PrefaceEdition Date Software Version Audience Related DocumentationTypographical Conventions This ManualSummary of Technical Changes for HP-UX Assembly Language Assembler FeaturesAssembler Features Summary of Changes for PA-RISC Summary of Changes for PA-RISC 2.0W Wide Mode, 64-bitSummary of Changes for PA-RISC ChapterSummary of Changes for PA-RISC 2.0W Wide Mode, 64-bit Program Structure Program Structure Label Opcode Operands CommentsSymbols and Constants Symbols and ConstantsInteger Constants Signed Unsigned Registers and Register Mnemonics Registers and Register MnemonicsRegisters by using an L or R suffix General Registers Single-Precision Floating-Point Registers Space Registers Double-Precision Floating-Point RegistersControl Registers Synonyms Register Procedure Calling Conventions Register Synonyms DescriptionExpressions ExpressionsStandard Arithmetic Operators Operator OperationLegal Combinations For Relocatable Terms Operation Result Available Field Selectors Meaning Field Meaning Selector Multiple of 2048 allows a three-instruction sequence Parenthesized Subexpressions Operands and Completers Operands and CompletersAddi Defining New Instructions With Macros Macro ProcessingMacro Processing Contains general register 19, or binary 10011. These HP-UX Architecture Conventions SpacesSpaces Memory Layout on HP-UX Sr4 Sr5 Sr6 Attributes SubspacesSubspaces Standard Subspaces and Sort Keys DirectivesSpace Subspace Sort Key Use Sections in 64-bit Mode Sections in 64-bit Mode$INIT$ Location Counters Location CountersCompiler Conventions Compiler ConventionsCompiler Conventions Global Symbol Usage Mfctl Shared Libraries Assembly ListingShared Libraries Assembly Listing Assembler Directives IntroductionDirective Function Requests common storage for a specified number Bytes Pseudo-Operations Directive Function Reserves 16 bits a half word of storage Align Directive SyntaxParameters ExampleDiscussion Allow DirectiveAllow Directive To the .LEVEL specified for the file Block and .BLOCKZ Pseudo-Operations Block and .BLOCKZ Pseudo-OperationsSpace $TEXT$ Subspa $CODE$ Block Byte Pseudo-Operation Byte Pseudo-OperationByte initvalue , initvalue Call Directive Call DirectiveCall argumentdescription argumentdescription Form of argument-description is Arg=location Where arg can Return value for a procedurefirst word in the argument list Second word in the argument listLIT Align Word Procend Export Callinfo Directive Callinfo DirectiveCallinfo parameter , parameter Register ENTRYSR= Unwound It restores the RP value when it encounters a .LEAVE Callinfo Directive Stack Frames Re-enter code subspace Comm Directive Comm DirectiveLabel .COMM numbytes Label Labels the location of the reserved storageCopyright Directive Copyright DirectiveCompany-name Proc Callinfo Enter Integer .fraction E power Fraction E powerDouble Pseudo-Operation Double Pseudo-OperationDword Pseudo-Operation Dword Pseudo-OperationDword initvalue , initvalue END Directive END DirectiveEndm Directive Endm DirectiveEnter and .LEAVE Pseudo-Operations Enter and .LEAVE Pseudo-OperationsSpace $TEXT$ Entry and .EXIT Directives Entry and .EXIT DirectivesSymbolicname .EQU value EQU DirectiveEQU Directive ValueExport Directive Export DirectiveArgument Export proc,ENTRY,ARGW0=GR Float Pseudo-Operation Float Pseudo-OperationHalf Pseudo-Operation Half Pseudo-OperationHalf initvalue , initvalue Import Directive Import DirectiveNOP END Label Directive Label DirectiveLabel labelid Labelid Names the label identifierLevel Directive Level DirectiveLevel Directive Listoff and .LISTON Directives Listoff and .LISTON DirectivesListon Code Space $TEXT$ SPNUM=0,SORT=0 Subspa $CODE$ Locct Directive Locct DirectiveMacro Directive Macro DirectiveLabel .MACRO formalparameter,formalparameter Examples 100 Origin Directive Origin DirectiveChapter 101 Proc and .PROCEND Directives Proc and .PROCEND Directives102 Chapter 103 REG Directive REG DirectiveLabel .REG typedregister Label User-defined register nameShlibversion Directive Shlibversion DirectiveChapter 105 Space Directive Space Directive106 Chapter 107 Spnum Pseudo-Operation Spnum Pseudo-Operation108 String and .STRINGZ Pseudo-Operations String and .STRINGZ Pseudo-OperationsChapter 109 110 Subspa Directive Subspa DirectiveName An identifier that names the current subspace Chapter 111112 Chapter 113 Version Directive Version Directive114 Word Pseudo-Operation Word Pseudo-OperationWord initvalue , initvalue Chapter 115Directive Space Name Default Parameters Programming AidsProgramming Aids Predefined Subspace DirectivesShortdata Chapter 117Programming Aids 118 Pseudo-Instruction Set 119120 Cond Description Compare and Branch Conditions Comb and ComibChapter 121 Add and Branch Conditions Addb and Addib Description 122Invoking the Assembler 123Using the as Command Using the as CommandAssemble code for the architecture 124Level filenameChapter 125 Wnumber Tables, see HP-UX Linker and LibrariesOnline User Guide 126Using the cc Command Using the cc CommandPassing Arguments to the Assembler Wa, ,as-argument as-argumentCpp Preprocessor 128Programming Examples 129Binary Search for Highest Bit Position Binary Search for Highest Bit Position130 Chapter 131 Copying a String Copying a String132 Chapter 133 Dividing a Double-Word Dividend Dividing a Double-Word Dividend134 Programming Examples Chapter 135Demonstrating the Procedure Calling Convention Demonstrating the Procedure Calling ConventionProgram Listing 136Assembly Program Listing Chapter 137Output of the cc -S Command Assembly Program Listing From the C CompilerOutput of the cc -S Command 138Chapter 139 Output of the cc -S Command 140 141 Option operand 142Chapter 143 Reserve 144Use a general register Wrong register type usedChapter 145 Use a control register Use a space register146 Chapter 147 148 Chapter 149 150 Chapter 151 Used to invoke the assembler 152Chapter 153 Error Messages Error Messages154 Chapter 155 156 Chapter 157 158 1027 10281029 10301031 10321033 10341035 10361037 1038162 Chapter 163 1054 10551056 1057Chapter 165 166 Chapter 167 168 Format keyword=value 10801081 1082170 1088 10891090 Chapter 1711091 10941095 10961097 10981099 11001101 11021103 11041105 Chapter 175Panic Messages Panic Messages176 2005 20062007 2008User Warning Messages User Warning Messages178 7003 70047005 7006180 Chapter 181 182 Limit Error Messages Limit Error Messages7200 72017202 72037204 184Diagnostic Messages Chapter 185186 Branching Error Messages Branching Error MessagesChapter 187 188 Chapter 189 190 Chapter 191 192 7827 78287834 78357836 7837Expr 194Index Index 195196 NumericsIndex 197 Copyright198 HP C/HP-UX,49Index 199 Mfctl200 DoubleIndex 201 See also memory202
Related manuals
Manual 29 pages 37.9 Kb Manual 44 pages 5.6 Kb Manual 2 pages 37.54 Kb