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

Register AAPCS PurposeSorted ascending MECRISP Forth Purpose
r0 Argument, result, scratch register 1 Scratch
r1 Argument, result, scratch register 2 Scratch
r2 Argument, scratch register 3 Scratch
r3 Argument, scratch register 4 Scratch
r12 Intra-procedure-call scratch register unused
r14 Link register (LR) Link register (LR)
r9 Platform register (usage defined by platform in use) unused
r15 Program counter (PC) Program counter (PC)
r13 Stack pointer (SP) Stack pointer (SP)
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
r10 Variable register 7 unused
r11 Variable register 8 unused

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

Comments

Edit | Attach | Watch | Print version | History: r7 | r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2020-07-13 - PeterSchmid
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback