Added
This commit is contained in:
12
doc/sparc/pics/.distr
Normal file
12
doc/sparc/pics/.distr
Normal file
@@ -0,0 +1,12 @@
|
||||
EM_stack.orig
|
||||
EM_stack.ours
|
||||
compile_bars
|
||||
mem_config
|
||||
perf
|
||||
perf.comp
|
||||
perf.d
|
||||
perf.dhry
|
||||
reg_layout
|
||||
run-time_bars
|
||||
run-time_bars.bup
|
||||
signal_stack
|
||||
34
doc/sparc/pics/EM_stack.orig
Normal file
34
doc/sparc/pics/EM_stack.orig
Normal file
@@ -0,0 +1,34 @@
|
||||
.PS
|
||||
.ps -2
|
||||
.vs -2
|
||||
boxwid = 1.5;
|
||||
boxht = 0.24
|
||||
down;
|
||||
box "actual parameter n-1";
|
||||
box "." "." "." ht 0.6;
|
||||
box "actual parameter 0";
|
||||
move 0.3
|
||||
box "return status block";
|
||||
{arrow <- right with .w at last box.e; \
|
||||
box invis wid 0.3 "LB" }
|
||||
down
|
||||
move to 2nd last box.s
|
||||
move 0.1
|
||||
box "local variables"
|
||||
box "compiler temporaries"
|
||||
move 0.1
|
||||
box "register save block"
|
||||
move 0.1
|
||||
box "dynamic local generators"
|
||||
move 0.1
|
||||
box "operand"
|
||||
box "operand"
|
||||
move 0.1
|
||||
box "parameter m-1"
|
||||
box "." "." "." ht 0.6;
|
||||
box "parameter 0" with .n at last box .s
|
||||
{ arrow <- right with .w at last box.e; \
|
||||
box invis wid 0.3 "SP" }
|
||||
.ps +2
|
||||
.vs +2
|
||||
.PE
|
||||
106
doc/sparc/pics/EM_stack.ours
Normal file
106
doc/sparc/pics/EM_stack.ours
Normal file
@@ -0,0 +1,106 @@
|
||||
.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
|
||||
49
doc/sparc/pics/compile_bars
Normal file
49
doc/sparc/pics/compile_bars
Normal file
@@ -0,0 +1,49 @@
|
||||
.PS
|
||||
boxht = 0.5
|
||||
boxwid = 1
|
||||
moveht = 0.65
|
||||
down;
|
||||
{
|
||||
right;
|
||||
box invis "ACK" "w/o" "opt"
|
||||
box "cem" "0.7" wid 0.7
|
||||
box "opt" "0.4" wid 0.4
|
||||
box "be" "1.1" wid 1.1
|
||||
box "as" "1.4" wid 1.4
|
||||
box "ld" "0.4" wid 0.4
|
||||
box invis "4.0" wid 0.5
|
||||
}
|
||||
move
|
||||
{
|
||||
right;
|
||||
box invis "ACK" "with" "opt"
|
||||
box "cem" "0.7" wid 0.7
|
||||
box "opt" "0.4" wid 0.4
|
||||
box "be" "0.6" wid 0.6
|
||||
box "as" "0.7" wid 0.7
|
||||
box "ld" "0.4" wid 0.4
|
||||
box invis "2.8" wid 0.5
|
||||
}
|
||||
move
|
||||
{
|
||||
right;
|
||||
box invis "\fIcc\fR"
|
||||
box "cpp" "0.2" wid 0.2
|
||||
box "ccom" "1.0" wid 1.0
|
||||
box "as" "0.7" wid 0.7
|
||||
box "ld" "0.4" wid 0.4
|
||||
box invis "2.3" wid 0.5
|
||||
}
|
||||
move
|
||||
{
|
||||
right;
|
||||
box invis "\fIcc -O4\fR"
|
||||
box "cpp" "0.2" wid 0.2
|
||||
box "ccom" "1.0" wid 1.0
|
||||
box "iropt" "5.0 (not to scale!)" wid 1.5
|
||||
box "cg" "0.7" wid 0.7
|
||||
box "as" "1.7" wid 1.7
|
||||
box "ld" "0.4" wid 0.4
|
||||
box invis "9.0" wid 0.5
|
||||
}
|
||||
.PE
|
||||
34
doc/sparc/pics/mem_config
Normal file
34
doc/sparc/pics/mem_config
Normal file
@@ -0,0 +1,34 @@
|
||||
.PS
|
||||
boxwid = 1.3
|
||||
down
|
||||
[
|
||||
right
|
||||
[
|
||||
down;
|
||||
box "stack" ht .6
|
||||
box "free" ht 1
|
||||
box "heap" ht .3
|
||||
box "text" ht .5
|
||||
]
|
||||
move 1
|
||||
[
|
||||
down;
|
||||
box "\s-4SPARC stack\s+4" ht .2
|
||||
box "\s-4EM stack\s+4" ht .1
|
||||
box "\s-4SPARC stack\s+4" ht .1
|
||||
box "\s-4EM stack\s+4" ht .1
|
||||
box "\s-4free\s+4" ht .2
|
||||
box "\s-4SPARC stack\s+4" ht .1
|
||||
box "free" ht .8
|
||||
box "heap" ht .3
|
||||
box "text" ht .5
|
||||
]
|
||||
]
|
||||
move .3
|
||||
[
|
||||
right
|
||||
box invis "regular \(UX memory layout"
|
||||
move 1
|
||||
box invis "memory layout for EM"
|
||||
]
|
||||
.PF
|
||||
12
doc/sparc/pics/perf
Normal file
12
doc/sparc/pics/perf
Normal file
@@ -0,0 +1,12 @@
|
||||
.G1
|
||||
frame invis left solid bot solid
|
||||
label left "run time" "(log scale)" left .5
|
||||
label bot "compile time (log scale)"
|
||||
coord x 0.1,10 log x y 1000,20000 log y
|
||||
ticks left out at 2000,5000,10000,20000
|
||||
ticks bot out at 0.1 0.3 1.0 3.0 10
|
||||
copy "perf.d" thru X
|
||||
"\(bu" at $1, $2
|
||||
"$3" rjust at $1, $2
|
||||
X
|
||||
.G2
|
||||
7
doc/sparc/pics/perf.comp
Normal file
7
doc/sparc/pics/perf.comp
Normal file
@@ -0,0 +1,7 @@
|
||||
in-line in ../A
|
||||
|
||||
2.5 17.28 ack w/o opt
|
||||
1.6 2.93 ack with opt
|
||||
9.4 2.26 ack -O4
|
||||
1.5 7.43 \fIcc\fR
|
||||
2.7 2.02 \fIcc -O4\fR
|
||||
4
doc/sparc/pics/perf.d
Normal file
4
doc/sparc/pics/perf.d
Normal file
@@ -0,0 +1,4 @@
|
||||
1.0 1700 ack w/o opt
|
||||
1.9 8000 ack with opt
|
||||
1.6 8000 \fIcc\fR
|
||||
7 18000 \fIcc -O4\fR
|
||||
7
doc/sparc/pics/perf.dhry
Normal file
7
doc/sparc/pics/perf.dhry
Normal file
@@ -0,0 +1,7 @@
|
||||
in-line in ../A
|
||||
|
||||
3.5 1700 ack w/o opt
|
||||
2.8 8770 ack with opt
|
||||
16.0 10434 ack -O4
|
||||
2.3 7270 \fIcc\fR
|
||||
9.0 12500 \fIcc -O4\fR
|
||||
24
doc/sparc/pics/reg_layout
Normal file
24
doc/sparc/pics/reg_layout
Normal file
@@ -0,0 +1,24 @@
|
||||
.nr PS 12
|
||||
.nr VS 14
|
||||
.PP
|
||||
.TS
|
||||
allbox;
|
||||
l l l l
|
||||
l2f6 l l2f6 l.
|
||||
g0 0 l0 EM_SP
|
||||
g1 temporary 1 l1 EM_LB
|
||||
g2 temporary 2 l2
|
||||
g3 temporary 3 l3 reserved
|
||||
g4 64k..1M l4 reserved
|
||||
g5 temporary 4 l5 reserved
|
||||
g6 line number l6 reserved
|
||||
g7 file name l7 reserved
|
||||
o0 param 1 i0
|
||||
o1 param 2 i1
|
||||
o2 param 3 i2
|
||||
o3 param 4 i3
|
||||
o4 RETL_LD i4 RETL_ST
|
||||
o5 RETH_LD i5 RETH_ST
|
||||
sp stack pointer fp frame pointer
|
||||
o7 xxx i7 return address
|
||||
.TE
|
||||
101
doc/sparc/pics/run-time_bars
Normal file
101
doc/sparc/pics/run-time_bars
Normal file
@@ -0,0 +1,101 @@
|
||||
.PS
|
||||
boxht = 0.5
|
||||
boxwid = 1
|
||||
moveht = 1
|
||||
down;
|
||||
{
|
||||
right;
|
||||
box invis "ACK" "w/o" "opt."
|
||||
move
|
||||
[
|
||||
down;
|
||||
boxht = 0.25
|
||||
box wid 4.5
|
||||
"Sieve" ljust at last box.w + 0.1,-0.02
|
||||
"10(!)" ljust at last box.e + 0.1,-0.02
|
||||
box wid 4.5 with .nw at last box.sw
|
||||
"Dhrystones" ljust at last box.w + 0.1,-0.02
|
||||
"10(!)" ljust at last box.e + 0.1,-0.02
|
||||
] with .w at last box.e
|
||||
}
|
||||
move
|
||||
{
|
||||
right;
|
||||
box invis "ACK" "with" "our" "opt."
|
||||
move
|
||||
[
|
||||
down;
|
||||
boxht = 0.25
|
||||
box wid 1.4
|
||||
"Sieve" ljust at last box.w + 0.1,-0.02
|
||||
"1.4" ljust at last box.e + 0.1,-0.02
|
||||
box wid 1.9 with .nw at last box.sw
|
||||
"Dhrystones" ljust at last box.w + 0.1,-0.02
|
||||
"1.9" ljust at last box.e + 0.1,-0.02
|
||||
] with .w at last box.e
|
||||
}
|
||||
move
|
||||
{
|
||||
right;
|
||||
box invis "ACK" "-O4"
|
||||
move
|
||||
[
|
||||
down;
|
||||
boxht = 0.25
|
||||
box wid 1.1
|
||||
"Sieve" ljust at last box.w + 0.1,-0.02
|
||||
"1.1" ljust at last box.e + 0.1,-0.02
|
||||
box wid 1.6 with .nw at last box.sw
|
||||
"Dhrystones" ljust at last box.w + 0.1,-0.02
|
||||
"1.6" ljust at last box.e + 0.1,-0.02
|
||||
] with .w at last box.e
|
||||
}
|
||||
move
|
||||
{
|
||||
right;
|
||||
box invis "Sun's" "compiler" "w/o opt."
|
||||
move
|
||||
[
|
||||
down;
|
||||
boxht = 0.25
|
||||
box wid 3.7
|
||||
"Sieve" ljust at last box.w + 0.1,-0.02
|
||||
"3.7" ljust at last box.e + 0.1,-0.02
|
||||
box wid 2.2 with .nw at last box.sw
|
||||
"Dhrystones" ljust at last box.w + 0.1,-0.02
|
||||
"2.2" ljust at last box.e + 0.1,-0.02
|
||||
] with .w at last box.e
|
||||
}
|
||||
move
|
||||
{
|
||||
right;
|
||||
box invis "Sun's" "compiler" "-O"
|
||||
move
|
||||
[
|
||||
down;
|
||||
boxht = 0.25
|
||||
box wid 1.1
|
||||
"Sieve" ljust at last box.w + 0.1,-0.02
|
||||
"1.1" ljust at last box.e + 0.1,-0.02
|
||||
box wid 0.8 with .nw at last box.sw
|
||||
"Dhryst." ljust at last box.w + 0.1,-0.02
|
||||
"0.8!" ljust at last box.e + 0.1,-0.02
|
||||
] with .w at last box.e
|
||||
}
|
||||
move
|
||||
{
|
||||
right;
|
||||
box invis "Sun's" "compiler" "-O4"
|
||||
move
|
||||
[
|
||||
down;
|
||||
boxht = 0.25
|
||||
box wid 1.0
|
||||
"Sieve" ljust at last box.w + 0.1,-0.02
|
||||
"1.0" ljust at last box.e + 0.1,-0.02
|
||||
box wid 1.0 with .nw at last box.sw
|
||||
"Dhrystones" ljust at last box.w + 0.1,-0.02
|
||||
"1.0" ljust at last box.e + 0.1,-0.02
|
||||
] with .w at last box.e
|
||||
}
|
||||
.PE
|
||||
100
doc/sparc/pics/run-time_bars.bup
Normal file
100
doc/sparc/pics/run-time_bars.bup
Normal file
@@ -0,0 +1,100 @@
|
||||
.PS
|
||||
boxht = 0.5
|
||||
boxwid = 1
|
||||
moveht = 1
|
||||
down;
|
||||
{
|
||||
right;
|
||||
box invis "ACK" "w/o" "opt"
|
||||
move
|
||||
[
|
||||
down;
|
||||
boxht = 0.25
|
||||
box wid 4.5
|
||||
"C (arithmetic)" ljust at last box.w + 0.1,-0.02
|
||||
"10(!)" ljust at last box.e + 0.1,-0.02
|
||||
box wid 4.5 with .nw at last box.sw
|
||||
"C (dhrystones)" ljust at last box.w + 0.1,-0.02
|
||||
"10(!)" ljust at last box.e + 0.1,-0.02
|
||||
box wid 4.5 with .nw at last box.sw
|
||||
"Modula-2" ljust at last box.w + 0.1,-0.02
|
||||
"8(!)" ljust at last box.e + 0.1,-0.02
|
||||
] with .w at last box.e
|
||||
}
|
||||
move
|
||||
{
|
||||
right;
|
||||
box invis "ACK" "with" "peep-hole" "opt"
|
||||
move
|
||||
[
|
||||
down;
|
||||
boxht = 0.25
|
||||
box wid 1.4
|
||||
"C (arithmetic)" ljust at last box.w + 0.1,-0.02
|
||||
"1.4" ljust at last box.e + 0.1,-0.02
|
||||
box wid 1.9 with .nw at last box.sw
|
||||
"C (dhrystones)" ljust at last box.w + 0.1,-0.02
|
||||
"1.9" ljust at last box.e + 0.1,-0.02
|
||||
box wid 2.5 with .nw at last box.sw
|
||||
"Modula-2" ljust at last box.w + 0.1,-0.02
|
||||
"2.5" ljust at last box.e + 0.1,-0.02
|
||||
] with .w at last box.e
|
||||
}
|
||||
move
|
||||
{
|
||||
right;
|
||||
box invis "ACK" "-O4"
|
||||
move
|
||||
[
|
||||
down;
|
||||
boxht = 0.25
|
||||
box wid 1.1
|
||||
"C (arithmetic)" ljust at last box.w + 0.1,-0.02
|
||||
"1.1" ljust at last box.e + 0.1,-0.02
|
||||
box wid 1.6 with .nw at last box.sw
|
||||
"C (dhrystones)" ljust at last box.w + 0.1,-0.02
|
||||
"1.6" ljust at last box.e + 0.1,-0.02
|
||||
box wid 2.5 with .nw at last box.sw
|
||||
"Modula-2" ljust at last box.w + 0.1,-0.02
|
||||
"2.5" ljust at last box.e + 0.1,-0.02
|
||||
] with .w at last box.e
|
||||
}
|
||||
move
|
||||
{
|
||||
right;
|
||||
box invis "Sun's" "compiler" "w/o opt."
|
||||
move
|
||||
[
|
||||
down;
|
||||
boxht = 0.25
|
||||
box wid 3.7
|
||||
"C (arithmetic)" ljust at last box.w + 0.1,-0.02
|
||||
"3.7" ljust at last box.e + 0.1,-0.02
|
||||
box wid 2.2 with .nw at last box.sw
|
||||
"C (dhrystones)" ljust at last box.w + 0.1,-0.02
|
||||
"2.2" ljust at last box.e + 0.1,-0.02
|
||||
box wid 1.8 with .nw at last box.sw
|
||||
"Modula-2" ljust at last box.w + 0.1,-0.02
|
||||
"1.8" ljust at last box.e + 0.1,-0.02
|
||||
] with .w at last box.e
|
||||
}
|
||||
move
|
||||
{
|
||||
right;
|
||||
box invis "Sun's" "compiler" "-O4"
|
||||
move
|
||||
[
|
||||
down;
|
||||
boxht = 0.25
|
||||
box wid 1.0
|
||||
"C (arith.)" ljust at last box.w + 0.1,-0.02
|
||||
"1.0" ljust at last box.e + 0.1,-0.02
|
||||
box wid 1.0 with .nw at last box.sw
|
||||
"C (dhryst.)" ljust at last box.w + 0.1,-0.02
|
||||
"1.0" ljust at last box.e + 0.1,-0.02
|
||||
box wid 1.0 with .nw at last box.sw
|
||||
"Modula-2" ljust at last box.w + 0.1,-0.02
|
||||
"1.0" ljust at last box.e + 0.1,-0.02
|
||||
] with .w at last box.e
|
||||
}
|
||||
.PE
|
||||
42
doc/sparc/pics/signal_stack
Normal file
42
doc/sparc/pics/signal_stack
Normal file
@@ -0,0 +1,42 @@
|
||||
.PS
|
||||
boxwid = 1.3
|
||||
down
|
||||
[
|
||||
right
|
||||
[
|
||||
down;
|
||||
box "\s-4SPARC stack\s+4" ht .2
|
||||
box "\s-4EM stack\s+4" ht .1
|
||||
box "\s-4SPARC stack\s+4" ht .1
|
||||
box "\s-4EM stack\s+4" ht .1
|
||||
box "\s-4free\s+4" ht .2
|
||||
box "\s-4SPARC stack\s+4" ht .1
|
||||
box "free" ht .8
|
||||
box "heap" ht .3
|
||||
box "text" ht .5
|
||||
]
|
||||
move 1
|
||||
[
|
||||
down;
|
||||
box "\s-4SPARC stack\s+4" ht .2
|
||||
box "\s-4EM stack\s+4" ht .1
|
||||
box "\s-4SPARC stack\s+4" ht .1
|
||||
box "\s-4EM stack\s+4" ht .1
|
||||
box "\s-4free\s+4" ht .2
|
||||
box "\s-4SPARC stack\s+4" ht .1
|
||||
box "\s-4EM stack\s+4" ht .1
|
||||
box "\s-4free\s+4" ht .2
|
||||
box "\s-4SPARC stack\s+4" ht .1
|
||||
box "free" ht .4
|
||||
box "heap" ht .3
|
||||
box "text" ht .5
|
||||
]
|
||||
]
|
||||
move .3
|
||||
[
|
||||
right
|
||||
box invis "before signal"
|
||||
move 1
|
||||
box invis "during (1st) signal"
|
||||
]
|
||||
.PF
|
||||
Reference in New Issue
Block a user