106 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| .ps 10
 | |
| .vs 12
 | |
| .PS
 | |
| boxwid = 1.3
 | |
| boxht = 0.25
 | |
| down;
 | |
| box "floating point" "register dump area" ht 0.6
 | |
| box "tmp float store"
 | |
| box "register dump area" ht 0.6
 | |
| { arrow <- right with .w at 3/4 <last box.e, last box.se>; \
 | |
| box invis wid 0.3 "%fp" }
 | |
| move .1
 | |
| box dotted "gap"
 | |
| { arrow <- right with .w at last box.e; \
 | |
| box invis wid 0.3 "%LB" }
 | |
| move .1
 | |
| box "locals"
 | |
| box "actual parameter n-1";
 | |
| box "." "." "." ht 0.6;
 | |
| box "actual parameter 0";
 | |
| { arrow <- right with .w at last box.e; \
 | |
| box invis wid 0.3 "%SP" }
 | |
| move 0.1
 | |
| box "large gap" "(>64kb)" ht 1.0
 | |
| box "register dump area" ht 0.6
 | |
| { arrow <- right with .w at 3/4 <last box.e, last box.se>; \
 | |
| box invis wid 0.3 "%sp" }
 | |
| move 0.2
 | |
| box invis "\\s+2just before call\\s0"
 | |
| move 1
 | |
| box dotted "gap"
 | |
| box invis "0 or 4 bytes" "for stack alignment" with .w at last box.e
 | |
| box invis height .7 "when gap is 0 bytes," "%fp == %LB" with .n at 2nd last box.s
 | |
| .PF
 | |
| .PS
 | |
| down;
 | |
| move to 2.4,0
 | |
| box "floating point" "register dump area" ht 0.6
 | |
| box "tmp float store"
 | |
| box "register dump area" ht 0.6
 | |
| { arrow <- right with .w at 3/4 <last box.e, last box.se>; \
 | |
| box invis wid 0.3 "%fp" }
 | |
| move .1
 | |
| box dotted "gap"
 | |
| { arrow <- right with .w at last box.e; \
 | |
| box invis wid 0.3 "%LB" }
 | |
| move .1
 | |
| box "locals"
 | |
| box "actual parameter n-1";
 | |
| box "." "." "." ht 0.6;
 | |
| box "actual parameter 0";
 | |
| { arrow <- right with .w at last box.e; \
 | |
| box invis wid 0.3 "%SP" }
 | |
| move .1
 | |
| box dotted "gap"
 | |
| move .4
 | |
| box "floating point" "register dump area" ht 0.6
 | |
| box "tmp float store"
 | |
| box "register dump area" ht 0.6
 | |
| { arrow <- right with .w at 3/4 <last box.e, last box.se>; \
 | |
| box invis wid 0.3 "%sp" }
 | |
| move 0.2
 | |
| box invis "\\s+2'during' call\\s0"
 | |
| .PF
 | |
| .PS
 | |
| down;
 | |
| move to 4.8,0
 | |
| box "floating point" "register dump area" ht 0.6
 | |
| box "tmp float store"
 | |
| box "register dump area" ht 0.6
 | |
| move .1
 | |
| box dotted "gap"
 | |
| move .1
 | |
| box "locals"
 | |
| box "actual parameter n-1";
 | |
| box "." "." "." ht 0.6;
 | |
| box "actual parameter 0";
 | |
| move .1
 | |
| box dotted "gap"
 | |
| move .4
 | |
| box "floating point" "register dump area" ht 0.6
 | |
| box "tmp float store"
 | |
| box "register dump area" ht 0.6
 | |
| { arrow <- right with .w at 3/4 <last box.e, last box.se>; \
 | |
| box invis wid 0.3 "%fp" }
 | |
| move .1
 | |
| box dotted "gap"
 | |
| { arrow <- right with .w at last box.e; \
 | |
| box invis wid 0.3 "%LB" }
 | |
| move .1
 | |
| box "locals"
 | |
| box "actual parameter n-1";
 | |
| box "." "." "." ht 0.6;
 | |
| box "actual parameter 0";
 | |
| { arrow <- right with .w at last box.e; \
 | |
| box invis wid 0.3 "%SP" }
 | |
| move 0.1
 | |
| box "large gap" "(>64kb)" ht 1.0
 | |
| box "register dump area" ht 0.6
 | |
| { arrow <- right with .w at 3/4 <last box.e, last box.se>; \
 | |
| box invis wid 0.3 "%sp" }
 | |
| move 0.2
 | |
| box invis "\\s+2after call\\s0"
 | |
| .PF
 | |
| .ps 12
 | |
| .vs 14
 |