doug@oakhill.UUCP (Doug MacGregor) (12/14/84)
M68000 Architecture Analysis - Part III.b The following table indicates the type of conditional branch and the frequency that these branches are taken. This data can be obtained using the trace on change of flow capability of the 68020. The conditional branches are described both in terms of type, branch and decrement and branch, as well as by branch condition. TYPE OF BRANCH TOTAL TAKEN PERCENT TAKEN -------------- ----- ----- ------------- Bcc = 31866146 20173059 63.31 DBcc = 0 0 0.00 CONDITION TOTAL TAKEN PERCENT TAKEN --------- ----- ----- ------------- T / BRA = 12475756 12504574 100.23 F / BSR = 2313338 2058652 88.99 HI = 0 0 0.00 LS = 1589603 1488938 93.67 CC (HS) = 0 0 0.00 CS (LO) = 0 0 0.00 NE = 2481308 1073789 43.28 EQ = 8154363 2630824 32.26 VC = 0 0 0.00 VS = 0 0 0.00 PL = 0 0 0.00 MI = 0 0 0.00 GE = 93454 16 0.02 LT = 208 21 10.10 GT = 4289479 413064 9.63 LE = 468637 3181 0.68 The following plot depicts the branch displacement range. For the 68000, a branch displacement of 0 indicates that the branch displacement is 16-bits and is contained in the fol- lowing word of the instruction. This plot can be con- structed for either the branch taken (if that trace informa- tion is provided) and for all branch instructions, whether taken or not. 25.00 + | | | | 22.00 + | | | | 20.00 + | | | | 17.00 + | | | | x 15.00 + x | x | x | x x | x x 12.00 + x x | x x | x x | x x | x x 10.00 + x x | x x | x x | x x | x x x 7.00 + x x x | x x x x | x x xx x x | x x xx x x | x x xx x x 5.00 + x x xx x x | x x xx x x | x x x xx x x | xx x x xx x x | x xx x x xx xx xx x 2.00 + x xx x x xx xx xx x x | x x xx x x xx xx xx x x x x | x x xx x x xx xx xx x x x x | x x xxx xx x xx xx xx x x x x x x x | x xx xxx xx x x xxxxx xx x x x x xxx x x x 0.00 + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ -128 -112 -96 -80 -64 -48 -32 -16 0 16 32 48 64 80 96 112 128 BRANCH DISPLACEMENT The following sets of figures are probably of limited interest, for they indicate the types of shift and rotate operations, their frequency and the nature of the shift (memory, dynamic, or static). TYPE OF SHIFT TOTAL PERCENT -------------- ----- ------- MEMORY = 0 0.00 DYNAMIC = 0 0.00 STATIC = 8668531 100.00 ----- ------- TOTAL = 8668531 100.00 SHIFT TYPE TOTAL PERCENT ---------- ----- ------- ASR = 0 0.00 LSR = 30 0.00 ROXR = 0 0.00 ROR = 0 0.00 ASL = 255616 2.95 LSL = 8412678 97.05 ROXL = 207 0.00 ROL = 0 0.00 The shift count for the static shift and rotate operations is shown in the following plot. This example is not typi- cal, but by using this, it is possible to evaluate the nature of shift operations. 100.00 + | | | | 90.00 + | | | | 80.00 + | | | | 70.00 + | | | | 60.00 + | | | | xxxxxxx 50.00 + xxxxxxx | xxxxxxx | xxxxxxx | xxxxxxx | xxxxxxx 40.00 + xxxxxxx | xxxxxxx | xxxxxxx | xxxxxxx | xxxxxxx 30.00 + xxxxxxx | xxxxxxx xxxxxxx | xxxxxxx xxxxxxx | xxxxxxx xxxxxxx | xxxxxxx xxxxxxx 20.00 + xxxxxxx xxxxxxx | xxxxxxx xxxxxxx | xxxxxxx xxxxxxx | xxxxxxx xxxxxxx xxxxxxx | xxxxxxx xxxxxxx xxxxxxx 10.00 + xxxxxxx xxxxxxx xxxxxxx | xxxxxxx xxxxxxx xxxxxxx | xxxxxxx xxxxxxx xxxxxxx | xxxxxxx xxxxxxx xxxxxxx | xxxxxxx xxxxxxx xxxxxxx xxxxxxx 0.00 + xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx ----+-------+-------+-------+-------+-------+-------+-------+ 1 2 3 4 5 6 7 8 SHIFT COUNT The final category of data collected indicates the register utilization for this code sample. The areas described are the average number of registers used by an instruction. Because it is not possible to track sequential relationships it is not possible to determine the number of registers being used at any one time. The register utilization is portrayed in both tabular and plot form. TOTAL PERCENTAGE COVERED = 100.00 # OF REGISTERS USED / INSTRUCTION PERCENT --------------------------------- ------- NO REGISTERS 20.02 1 REGISTERS 26.35 2 REGISTERS 51.20 3 REGISTERS 2.33 4 REGISTERS 0.09 D0 7.606843 D1 11.022688 D2 14.092865 D3 3.762555 D4 0.592202 D5 0.011442 D6 0.007673 D7 0.071163 A0 10.459511 A1 0.489466 A2 15.531519 A3 2.635934 A4 5.537547 A5 8.943160 A6 32.904263 A7 16.715405 IND 5.308478 RL 0.424293 If there is information that is not currently provided that would be of interest, please make a recommendation, it may be something that we are interested in too. 50.00 + | | | | 45.00 + | | | | 40.00 + | | | | 35.00 + | | | xxxxx | xxxxx 30.00 + xxxxx | xxxxx | xxxxx | xxxxx | xxxxx 25.00 + xxxxx | xxxxx | xxxxx | xxxxx | xxxxx 20.00 + xxxxx | xxxxx | xxxxx | xxxxx | xxxxxxxxxx 15.00 + xxxxx xxxxxxxxxx | xxxxx xxxxx xxxxxxxxxx | xxxxx xxxxx xxxxxxxxxx | xxxxx xxxxx xxxxxxxxxx | xxxxxxxxxx xxxxx xxxxxxxxxx 10.00 + xxxxxxxxxx xxxxx xxxxx xxxxxxxxxx | xxxxxxxxxx xxxxx xxxxx xxxxxxxxxx | xxxxxxxxxx xxxxx xxxxx xxxxxxxxxxxxxxx | xxxxxxxxxxxxxxx xxxxx xxxxx xxxxxxxxxxxxxxx | xxxxxxxxxxxxxxx xxxxx xxxxx xxxxxxxxxxxxxxx 5.00 + xxxxxxxxxxxxxxx xxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxx | xxxxxxxxxxxxxxx xxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxx | xxxxxxxxxxxxxxxxxxxx xxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxx | xxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | xxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0.00 + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ---+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-- D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4 A5 A6 A7 INDEX REG REGISTER USAGE COUNT LIST