summaryrefslogtreecommitdiffstats
path: root/images/cpu_supplement/stack_frame_contents.ditaa
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--images/cpu_supplement/stack_frame_contents.ditaa35
1 files changed, 35 insertions, 0 deletions
diff --git a/images/cpu_supplement/stack_frame_contents.ditaa b/images/cpu_supplement/stack_frame_contents.ditaa
new file mode 100644
index 0000000..c608d56
--- /dev/null
+++ b/images/cpu_supplement/stack_frame_contents.ditaa
@@ -0,0 +1,35 @@
+ low addresses
+
+ +-------------------------+
+ %sp --> | 16 words for storing |
+ | LOCAL and IN registers |
+ +-------------------------+
+ | one:-word pointer to |
+ | aggregate return value |
+ +-------------------------+
+ | 6 words for callee |
+ | to store register |
+ | arguments |
+ +-------------------------+
+ | outgoing parameters |
+ | past the 6th, if any |
+ +-------------------------+
+ | space, if needed, for |
+ | compiler temporaries |
+ | and saved floating- |
+ | point registers |
+ +-------------------------+
+
+ +-------------------------+
+ | space dynamically |
+ | allocated via the |
+ | alloca() library call |
+ +-------------------------+
+ | space, if needed, for |
+ | automatic arrays, |
+ | aggregates, and |
+ | addressable scalar |
+ | automatics |
+ +-------------------------+
+ %fp -->
+ high addresses