* doc/stack_frames.txt: Some fixes, described PowerPC stack frames.
authoredwin <none@none>
Mon, 20 Mar 2006 15:37:41 +0000 (15:37 +0000)
committeredwin <none@none>
Mon, 20 Mar 2006 15:37:41 +0000 (15:37 +0000)
doc/stack_frames.txt

index 7855d10e9830a50516464055d612955043d7120e..700c2e54ca31007707e7066b8896f26324b91637 100644 (file)
@@ -50,9 +50,12 @@ V   u8[0..1] alignment dummy slot                           (in non-leaf methods
 |   u8[]  ^  callee-saved float registers
 V   u8[]  ^  callee-saved integer registers
 |          
-|   >>>> sp on method entry, stack base for replacement  (16-byte aligned) <<<<
+|   >>>> sp on method entry, stack base for replacement  (8-byte odd) <<<<
 V
 |   u8       return address
+|
+V                                                 >>>>> (16-byte aligned) <<<<
+|
 |   u8[]     arguments on stack
 V
 
@@ -61,8 +64,6 @@ V
 alpha stack frames
 ------------------
 
-XXX currently the stack on alpha is not 16-byte aligned!
-
 ,--memory address rising
 |
 V   >>>> sp in method (after initial sub) <<<<
@@ -71,6 +72,7 @@ V   >>>> sp in method (after initial sub) <<<<
 V   u8[]  v  local variable slots allocated on stack    /
 |
 |   u8       synchronized object / saved return value       (only for synched methods)
+|   u8[0..1] alignment dummy slot
 V
 |   u8[]  ^  callee-saved float registers
 |   u8[]  ^  callee-saved integer registers
@@ -97,7 +99,7 @@ V   >>>> sp in method (after initial sub) (16-byte aligned) <<<<
 V   u8[]  v  local variable slots allocated on stack    /
 |
 |   u8       synchronized object / saved return value       (only for synched methods)
-|   u8[0..1] alignment dummy-slot                           (to ensure 16-byte alignment of sp)
+|   u8[0..1] alignment dummy slot                           (to ensure 16-byte alignment of sp)
 V
 |   u8[]  ^  callee-saved float registers
 |   u8[]  ^  callee-saved integer registers
@@ -112,3 +114,27 @@ V
 |
 V
 
+
+powerpc stack frames
+--------------------
+
+,--memory address rising
+|
+V   >>>> sp in method (after initial sub) (16-byte aligned) <<<<
+|          
+|   u4[]  v  arguments for calling methods (incl. LA)   \__ rd->memuse slots
+V   u4[]  v  local variable slots allocated on stack    /
+|
+|   u4[2..3] synchronized object / saved return value       (only for synched methods)
+|   u4[0..3] alignment slots
+V
+|   u8[]  ^  callee-saved float registers
+|   u4[]  ^  callee-saved integer registers
+V          
+|   >>>> sp on method entry, stack base for replacement (16-byte aligned) <<<<
+|
+|   u4[]     arguments on stack (inludes LA == linkage area)
+|
+V
+
+