PROCEDURE CALLS
7-5
7
7.1.2.4
Considerations When Popping Data off the Stack
Care should be taken in reading the stack in the presence of unforeseen faults and interrupts. In the
general case, to ensure that data about to be popped off the stack is not corrupted by a fault or
interrupt record, the data should be read first and then the sp should be decremented:
subo
24,sp,r4
ld
20(r4),rn
...
ld (r4),rn
mov
r4,sp
7.1.2.5
Previous Frame Pointer
The previous frame pointer is the previous stack frame’s first byte address. This address’s upper
28 bits are stored in local register r0, the previous frame pointer (PFP) register. The four
least-significant bits of the PFP are used to store the return type field. See
Figure 7-5
and
Table 7-2
for more information on the PFP and the return-type field.
7.1.2.6
Return Type Field
PFP register bits 0 through 3 contain return type information for the calling procedure. When a
procedure call is made — either explicit or implicit — the processor records the call type in the
return type field. The processor then uses this information to select the proper return mechanism
when returning to the calling procedure. The use of this information is described in
section 7.8,
“RETURNS” (pg. 7-20)
.
7.1.2.7
Return Instruction Pointer
The actual RIP register (r2) is reserved by the processor to support the call and return mechanism
and must not be used by software; the actual value of RIP is unpredictable at all times. For
example, an implicit procedure call (fault or interrupt) can occur at any time and modify the RIP.
An OPERATION.INVALID_OPERAND fault is generated when attempting to write to the RIP.
The image of the RIP register in the stack frame is used by the processor to determine that frame’s
return instruction address. When a call is made, the processor saves the address of the instruction
after the call in the image of the RIP register in the calling frame.
7.1.3
Call and Return Action
To clarify how procedures are linked and how the local registers and stack are managed, the
following sections describe a general call and return operation and the operations performed with
the FP, SP, PFP and RIP registers.
Содержание 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: ......