Chapter 9 Writing Machine Language Instructions and Directive Statements
Writing Directive Statements 177
9.4.18 funcinfo
Syntax
label
operation
operand
function_namefuncinfo
label_name, expression, register list
where
expression: Stack frame size
Functional description
This directive provides additional information about a function name specified as the operand to a call
instruction. The call instruction branches to the function after saving registers to the stack and setting
up the stack frame. To use call instructions, the program must define the stack frame size and the reg-
isters to be saved using a special format in the function’s declaration section. This special format takes
the form of the funcinfo directive.l
The linker uses the specified stack size and register list to automatically set up the proper calling se-
quences for calls to the function.
Operand coding rules
The label_name gives the branch target used by instructions other than the call instruction--the call in-
struction, for example. This label_name is necessary even if no other instructions call it. In that case,
assign a label to any empty statement immediately preceding the funcinfo directive and use the name of
that label. The label_name must be defined prior to the funcinfo directive. Otherwise, an error results.
The expression gives the size of the stack frame used by the function. It must evaluate to a value be-
tween 0 and255. A value outside this range results in an error. The register list gives a list of registers
to be saved to the stack before entering the function proper. Enclose the list in square brackets ([ ]) and
separate the registers in the list with commas. The registers that can appear in the list are D2, D3, A2,
A3 and OTHER, where OTHER indicates D0, D1, A0, A1, MDR, LIR. A register specification other
than these five results in an error.
NOTE:
When writing directive statements in between the function and label_name, it
may not link properly or it may create a bad execution format.
NOTE:
Optimization can be performed for the instructions between label_name and the
function name. For details, see Chapter 4 “Optimization Functions” Section 4.3
“Usage Examples”, “Optimization of function calls”.
Directive Specification Rules
The funcinfo directive must always define a branch target label for use with the call instruction.
Summary of Contents for PanaXSeries MN1030 Series
Page 1: ...MICROCOMPUTER MN1030 MN1030 Series Cross Assembler User s Manual Pub No 13110 120E ...
Page 2: ......
Page 13: ...1 Chapter 1 Getting Started ...
Page 25: ...2 Chapter 2 Program Development Flow ...
Page 32: ...Chapter 2 Program Development Flow 20 Programming with Assembler ...
Page 33: ...3 Chapter 3 Introduction to Operation ...
Page 54: ...Chapter 3 Introduction to Operation 42 Conditional Assembly and Linking ...
Page 55: ...4 Chapter 4 Optimization ...
Page 71: ...5 Chapter 5 Using Assembler ...
Page 95: ...6 Chapter 6 Using Linker ...
Page 128: ...Chapter 6 Using Linker 116 Instruction RAM Support ...
Page 129: ...7 Chapter 7 Types of Source Statements ...
Page 138: ...Chapter 7 Type of Source Statements 126 Blank Statements ...
Page 139: ...8 Chapter 8 Writing Source Statements ...
Page 157: ...9 Chapter 9 Writing Machine Language Instruction Statements and Directive Statements ...
Page 193: ...10 Chapter 10 Writing Assembler Control Statements ...
Page 217: ...11 Chapter 11 Writing Macro Control Statements ...
Page 236: ...Chapter 11 Writing Macro Control Statements 224 irpc ...
Page 237: ...12 Chapter 12 List of Machine Language Instructions ...
Page 261: ...13 Chapter 13 Error Messages ...
Page 276: ...Chapter 13 Error Messages 264 Linker Errors ...
Page 277: ...14 Chapter 14 Readinig List Files ...
Page 285: ...15 Chapter 15 Using Library Manager ...
Page 309: ...16 Chapter 16 Notes on Operating Environment ...
Page 321: ...17 Chapter 17 Appendix ...
Page 338: ... 4 Index ...