|
META TOPICPARENT |
name="WebHome" |
Calling C Functions from Forth and Vice Versa |
|
> > | Register Usage |
| Procedure Call Standard for the ARM Architecture AAPCS
https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/on-the-aapcs-with-an-application-to-efficient-parameter-passing |
|
r1 |
Argument, result, scratch register 2 |
Scratch |
r2 |
Argument, scratch register 3 |
Scratch |
r3 |
Argument, scratch register 4 |
Scratch |
|
|
< < |
r4 |
Variable register 1 |
|
r5 |
Variable register 2 |
|
|
> > |
r4 |
Variable register 1 |
DO Index |
r5 |
Variable register 2 |
DO Limit |
|
|
r6 |
Variable register 3 |
Top Of Stack TOS |
|
|
< < |
r7 |
Variable register 4 |
Data Stack |
r8 |
Variable register 5 |
|
r9 |
Platform register (usage defined by platform in use) |
|
r10 |
Variable register 7 |
|
r11 |
Variable register 8 |
|
r12 |
Intra-procedure-call scratch register |
|
|
> > |
r7 |
Variable register 4 |
Data stack pointer |
r8 |
Variable register 5 |
unused |
r9 |
Platform register (usage defined by platform in use) |
unused |
r10 |
Variable register 7 |
unused |
r11 |
Variable register 8 |
unused |
r12 |
Intra-procedure-call scratch register |
unused |
|
|
r13 |
Stack pointer (SP) |
Stack pointer (SP) |
r14 |
Link register (LR) |
Link register (LR) |
r15 |
Program counter (PC) |
Program counter (PC) |
|
|
< < | |
> > | VFP Register Usage
The VFP-v2 co-processor has 32 single-precision registers, s0-s31, which may also be accessed as 16
double-precision registers, d0-d15 (with d0 overlapping s0, s1; d1 overlapping s2, s3; etc).
Calling C Functions from Forth
Calling Forth Words from C Functions
Stack Pointer and Top Of Stack |
|
-- Peter Schmid - 2020-07-13 |