PROCEDURE CALLS
7-14
Example 7-2. Parameter Passing Code Example
7.4
LOCAL CALLS
A local call does not cause a stack switch. A local call can be made two ways:
•
with the
call
and
callx
instructions; or
•
with a system-local call as described in
section 7.5, “SYSTEM CALLS” (pg. 7-15)
.
call
specifies the address of the called procedures as the IP plus a signed, 24-bit displacement (i.e.,
-2
23
to 2
23
- 4).
callx
allows any of the addressing modes to be used to specify the procedure
address. The IP-with-displacement addressing mode allows full 32-bit IP-relative addressing.
When a local call is made with a
call
or
callx
, the processor performs the same operation as
described in
section 7.1.3.1, “Call Operation” (pg. 7-6)
. The target IP for the call is derived from
the instruction’s operands and the new stack frame is allocated on the current stack.
# Example of parameter passing . . .
# C-source:int a,b[10];
#
a = proc1(a,1,’x’,&b[0]);
#
assembles to ...
mov
r3,g0
# value of a
ldconst
1,g1
# value of 1
ldconst
120,g2
# value of “x”
lda
0x40(fp),g3
# reference to b[10]
call
_proc1
mov
g0,r3
#save return value in “a”
.
.
_proc1:
movq
g0,r4
# save parameters
.
.
# other instructions in procedure
.
# and nested calls
mov
r3,g0
# load return parameter
ret
Содержание i960 Jx
Страница 1: ...Release Date December 1997 Order Number 272483 002 i960 Jx Microprocessor Developer s Manual ...
Страница 24: ......
Страница 25: ...1 INTRODUCTION ...
Страница 26: ......
Страница 35: ...2 DATA TYPES AND MEMORY ADDRESSING MODES ...
Страница 36: ......
Страница 46: ......
Страница 47: ...3 PROGRAMMING ENVIRONMENT ...
Страница 48: ......
Страница 73: ...4 CACHE AND ON CHIP DATA RAM ...
Страница 74: ......
Страница 85: ...5 INSTRUCTION SET OVERVIEW ...
Страница 86: ......
Страница 111: ...6 INSTRUCTION SET REFERENCE ...
Страница 112: ......
Страница 195: ...INSTRUCTION SET REFERENCE 6 83 6 Opcode mov 5CCH REG movl 5DCH REG movt 5ECH REG movq 5FCH REG See Also LOAD STORE lda ...
Страница 233: ...7 PROCEDURE CALLS ...
Страница 234: ......
Страница 256: ......
Страница 257: ...8 FAULTS ...
Страница 258: ......
Страница 291: ...9 TRACING AND DEBUGGING ...
Страница 292: ......
Страница 309: ...10 TIMERS ...
Страница 310: ......
Страница 324: ......
Страница 325: ...11 INTERRUPTS ...
Страница 326: ......
Страница 369: ...12 INITIALIZATION AND SYSTEM REQUIREMENTS ...
Страница 370: ......
Страница 412: ......
Страница 413: ...13 MEMORY CONFIGURATION ...
Страница 414: ......
Страница 429: ...14 EXTERNAL BUS ...
Страница 430: ......
Страница 468: ......
Страница 469: ...15 TEST FEATURES ...
Страница 470: ......
Страница 493: ...A CONSIDERATIONS FOR WRITING PORTABLE CODE ...
Страница 494: ......
Страница 502: ......
Страница 503: ...B OPCODES AND EXECUTION TIMES ...
Страница 504: ......
Страница 515: ...C MACHINE LEVEL INSTRUCTION FORMATS ...
Страница 516: ......
Страница 523: ...D REGISTER AND DATA STRUCTURES ...
Страница 524: ......
Страница 550: ......
Страница 551: ...GLOSSARY ...
Страница 552: ......
Страница 561: ...INDEX ...
Страница 562: ......
Страница 578: ......