Funcinfo - Panasonic PanaXSeries MN1030 Series User Manual

Panasonic microcomputer user's manual
Table of Contents

Advertisement

9.4.18 funcinfo

Syntax
label
function_namefuncinfo
where
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:
NOTE:
Directive Specification Rules
The funcinfo directive must always define a branch target label for use with the call instruction.
Chapter 9 Writing Machine Language Instructions and Directive Statements
operation
operand
label_name, expression, register list
expression: Stack frame size
When writing directive statements in between the function and label_name, it
may not link properly or it may create a bad execution format.
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".
Writing Directive Statements 177

Advertisement

Table of Contents
loading

Table of Contents