---+ Calling C Functions from Forth and Vice Versa ---++ Register Usage Procedure Call Standard for the ARM Architecture [[https://developer.arm.com/documentation/ihi0042/j][AAPCS]] https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/on-the-aapcs-with-an-application-to-efficient-parameter-passing | *Register* | *AAPCS Purpose* | *MECRISP Forth Purpose* | *ISR Stacking* | | xPSR | Processor Status Register, Flags | Flags | 1 | | r0 | Argument, result, scratch register 1 | Scratch | 2 | | r1 | Argument, result, scratch register 2 | Scratch | 3 | | r2 | Argument, scratch register 3 | Scratch | 4 | | r3 | Argument, scratch register 4 | Scratch | 5 | | 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 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 | 6 | | r13 | Stack pointer (SP) | Stack pointer (SP) | | | r14 | Link register (LR) | Link register (LR) | 7 | | r15 | Program counter (PC) | Program counter (PC) | 0 | ---++ 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 -- %USERSIG{PeterSchmid - 2020-07-13}% ---++ Comments %COMMENT%
This topic: MecrispCube
>
WebHome
>
CallingCFunction
Topic revision: r3 - 2020-07-17 - PeterSchmid
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback