HP UX Developer Tools manual Call Directive, Call argumentdescription argumentdescription

Page 63

Assembler Directives and Pseudo-Operations

.CALL Directive

.CALL Directive

The .CALL directive marks the next branch statement as a procedure call, and permits you to describe the location of arguments and the function return result.

Syntax

.CALL [ argument_description[ argument_description] ...]

Parameters

 

argument_

 

 

description

Allows you to communicate to the linker the types of

 

 

registers used to pass floating point arguments and

 

 

receive floating point return results in the succeeding

 

 

procedure call. Similarly, this information can be

 

 

communicated in the .EXPORT directive.

 

 

The linker requires this information because the

 

 

runtime architecture allows floating point arguments

 

 

and return values to reside in either general registers

 

 

or floating point registers, depending on source

 

 

language convention. At link time, the linker ensures

 

 

that both the caller and called procedure agree on

 

 

argument location. If not, the linker may insert code to

 

 

relocate the arguments (or return result) before control

 

 

is transferred to the called procedure or a procedure

 

 

return is completed.

 

 

You can use up to 5 argument-descriptionsin the

 

 

.CALL directive; one for each of the four arguments

 

 

that may be passed in registers (arg0arg3), and one

 

 

for a return value (ret0).

 

In PA-RISC 2.0W, (64-bit mode) the Assembler ignores the .CALL

NOTE

 

directive. This means that the linker does not ensure that the caller and

 

called procedure agree on argument locations. If you do not know the

 

prototype of the called procedure, you must pass floating point

Chapter 4

63

Image 63
Contents 92432-90012 June HP 9000 ComputersLegal Notices Restricted Rights LegendHanover Street Palo Alto, California Contents Assembler Directives and Pseudo-Operations Contents Contents Contents Contents Pseudo-Instruction Set Assembling Your Program Diagnostic Messages Programming ExamplesIndex Preface Printing HistoryEdition Date Software Version Related Documentation AudienceThis Manual Typographical ConventionsSummary of Technical Changes for HP-UX Assembler Features Assembly LanguageAssembler Features Chapter Summary of Changes for PA-RISCSummary of Changes for PA-RISC 2.0W Wide Mode, 64-bit Summary of Changes for PA-RISCSummary of Changes for PA-RISC 2.0W Wide Mode, 64-bit Program Structure Label Opcode Operands Comments Program StructureSymbols 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 Double-Precision Floating-Point Registers Space RegistersControl Registers Synonyms Register Synonyms Description Register Procedure Calling ConventionsOperator Operation ExpressionsExpressions Standard Arithmetic OperatorsLegal 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 Macro Processing Defining New Instructions With MacrosMacro Processing Contains general register 19, or binary 10011. These Spaces HP-UX Architecture ConventionsSpaces Memory Layout on HP-UX Sr4 Sr5 Sr6 Subspaces AttributesSubspaces Directives Standard Subspaces and Sort KeysSpace 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 Assembly Listing Shared LibrariesShared Libraries Assembly Listing Introduction Assembler DirectivesDirective Function Requests common storage for a specified number Bytes Pseudo-Operations Directive Function Reserves 16 bits a half word of storage Example Align DirectiveSyntax ParametersAllow Directive DiscussionAllow 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 Second word in the argument list Form of argument-description is Arg=location Where arg canReturn value for a procedure first 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 Label Labels the location of the reserved storage Comm DirectiveComm Directive Label .COMM numbytesCopyright Directive Copyright DirectiveCompany-name Proc Callinfo Enter Double Pseudo-Operation Integer .fraction E powerFraction E power 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 DirectivesValue Symbolicname .EQU valueEQU Directive EQU DirectiveExport 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 Labelid Names the label identifier Label DirectiveLabel Directive Label labelidLevel 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 Label User-defined register name REG DirectiveREG Directive Label .REG typedregisterShlibversion 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 Chapter 111 Subspa DirectiveSubspa Directive Name An identifier that names the current subspace112 Chapter 113 Version Directive Version Directive114 Chapter 115 Word Pseudo-OperationWord Pseudo-Operation Word initvalue , initvaluePredefined Subspace Directives Directive Space Name Default ParametersProgramming Aids Programming AidsChapter 117 ShortdataProgramming Aids 118 119 Pseudo-Instruction Set120 Compare and Branch Conditions Comb and Comib Cond DescriptionChapter 121 122 Add and Branch Conditions Addb and Addib Description123 Invoking the Assembler124 Using the as CommandUsing the as Command Assemble code for the architecturefilename LevelChapter 125 126 WnumberTables, see HP-UX Linker and Libraries Online User GuideWa, ,as-argument as-argument Using the cc CommandUsing the cc Command Passing Arguments to the Assembler128 Cpp Preprocessor129 Programming ExamplesBinary 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 Chapter 135 Programming Examples136 Demonstrating the Procedure Calling ConventionDemonstrating the Procedure Calling Convention Program ListingChapter 137 Assembly Program Listing138 Output of the cc -S CommandAssembly Program Listing From the C Compiler Output of the cc -S CommandChapter 139 Output of the cc -S Command 140 141 142 Option operandChapter 143 144 ReserveWrong register type used Use a general registerChapter 145 Use a space register Use a control register146 Chapter 147 148 Chapter 149 150 Chapter 151 152 Used to invoke the assemblerChapter 153 Error Messages Error Messages154 Chapter 155 156 Chapter 157 158 1030 10271028 10291034 10311032 10331038 10351036 1037162 Chapter 163 1057 10541055 1056Chapter 165 166 Chapter 167 168 1082 Format keyword=value1080 1081170 Chapter 171 10881089 10901096 10911094 10951100 10971098 10991104 11011102 1103Chapter 175 1105Panic Messages Panic Messages176 2008 20052006 2007User Warning Messages User Warning Messages178 7006 70037004 7005180 Chapter 181 182 7201 Limit Error MessagesLimit Error Messages 7200184 72027203 7204Chapter 185 Diagnostic Messages186 Branching Error Messages Branching Error MessagesChapter 187 188 Chapter 189 190 Chapter 191 192 7835 78277828 7834194 78367837 ExprIndex 195 IndexNumerics 196Copyright Index 197HP C/HP-UX,49 198Mfctl Index 199Double 200See also memory Index 201202
Related manuals
Manual 29 pages 37.9 Kb Manual 44 pages 5.6 Kb Manual 2 pages 37.54 Kb