Call - Intel i960 Jx Developer's Manual

Microprocessor
Table of Contents

Advertisement

INSTRUCTION SET REFERENCE
6.2.13

call

Mnemonic:
call
Format:
call
Description:
Calls a new procedure. targ operand specifies the IP of called procedure's
first instruction. When using the Intel i960 processor assembler, targ must be
a label.
In executing this instruction, the processor performs a local call operation as
described in
operation, the processor saves the set of local registers associated with the
calling procedure and allocates a new set of local registers and a new stack
frame for the called procedure. Processor then goes to the instruction
specified with targ and begins execution.
targ can be no farther than -2
# Wait for any uncompleted instructions to finish.
Action:
implicit_syncf();
temp = (SP + (SALIGN*16 - 1)) & ~(SALIGN*16 - 1)
# Round stack pointer to next boundary.
# SALIGN=1 on i960 Jx processors.
RIP
if (register_set_available)
allocate_new_frame( );
else
{
}
#
temp[31:2] = sign_extension(targ[23:2]);
IP[31:2] = IP[31:2] + temp[31:2];
IP[1:0] = 0;
PFP = FP;
FP = temp;
SP = temp + 64;
STANDARD
Faults:
Example:
call xyz
Opcode:
call
See Also:
bal, calls, callx
6-24
Call
targ
disp
section 7.1.3.1, "Call Operation" (pg.
23
to (2
IP;
save_register_set( );
allocate_new_frame( );
Local register references now refer to new frame.
Refer to
# IP
09H
CTRL
7-6). As part of this
23
- 4) bytes from current IP.
# Save register set in memory at its FP.
section 6.1.6, "Faults" (pg.
xyz
6-5).

Advertisement

Table of Contents
loading

Table of Contents