1/* main_vbs.inc: Display of statistics for ld-tigcc
2
3   Copyright (C) 2002-2003 Sebastian Reichelt
4
5   This program is free software; you can redistribute it and/or modify
6   it under the terms of the GNU General Public License as published by
7   the Free Software Foundation; either version 2, or (at your option)
8   any later version.
9
10   This program is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   GNU General Public License for more details.
14
15   You should have received a copy of the GNU General Public License
16   along with this program; if not, write to the Free Software Foundation,
17   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
18
19// This file is included by main.c
20{
21	if (DisplayStats)
22	{
23		printf ("Target Calculators:\n");
24		if (Program.Calcs & CALC_TI92)
25			printf ("  TI-92\n");
26		if (Program.Calcs & CALC_TI89)
27			printf ("  TI-89\n");
28		if (Program.Calcs & CALC_TI92PLUS)
29			printf ("  TI-92 Plus\n");
30		if (Program.Calcs & CALC_V200)
31			printf ("  V200\n");
32		printf ("Program Statistics:\n"
33				"  Program Variable Name:                    %s\\%s\n"
34				"  Program Variable Size:                    %ld Bytes\n",
35				ProgramFolder, ProgramName, (long) OptInfo->ProgramSize);
36		if (OptInfo->DataSize > 0)
37		{
38			printf ("  Data Variable Size:                       %ld Bytes\n",
39					(long) OptInfo->DataSize);
40		}
41		if (OptInfo->BSSSize > 0)
42		{
43			printf ("  BSS Size:                                 %ld Bytes\n",
44					(long) OptInfo->BSSSize);
45		}
46		printf ("  Absolute Relocs:                          %ld\n"
47				"  Natively Emitted Relocs:                  %ld\n",
48				(long) OptInfo->RelocCount, (long) OptInfo->NativeRelocCount);
49		if (OptInfo->OptimizeBranchesResult > 0)
50			printf (OptInfo->OptimizeBranches ? "  Relocs Removed by Branch Optimization:    %ld\n" : "  Relocs Removable by Branch Optimization:  %ld\n", (long) OptInfo->OptimizeBranchesResult);
51		if (OptInfo->OptimizeMovesResult > 0)
52			printf (OptInfo->OptimizeMoves ? "  Relocs Removed by Move Optimization:      %ld\n" : "  Relocs Removable by Move Optimization:    %ld\n", (long) OptInfo->OptimizeMovesResult);
53		if (OptInfo->OptimizeTestsResult > 0)
54			printf (OptInfo->OptimizeTests ? "  Relocs Removed by Test Optimization:      %ld\n" : "  Relocs Removable by Test Optimization:    %ld\n", (long) OptInfo->OptimizeTestsResult);
55		if (OptInfo->OptimizeCalcsResult > 0)
56			printf (OptInfo->OptimizeCalcs ? "  Relocs Removed by Calc Optimization:      %ld\n" : "  Relocs Removable by Calc Optimization:    %ld\n", (long) OptInfo->OptimizeCalcsResult);
57		if (OptInfo->UseFLineJumpsResult > 0)
58			printf (OptInfo->UseFLineJumps || OptInfo->Use4ByteFLineJumps ? "  Relocs Removed by F-Line Jumps:           %ld\n" : "  Relocs Removable by F-Line Jumps:         %ld\n", (long) OptInfo->UseFLineJumpsResult);
59		if (OptInfo->CutRangesResult > 0)
60			printf (OptInfo->CutRanges ? "  Space Saved by Range-Cutting:             %ld Bytes\n" : "  Estimated Space Savable by Range-Cutting: %ld Bytes\n", (long) OptInfo->CutRangesResult);
61		if (OptInfo->NearAssemblyResult > 0)
62			printf ("  Space Savable by Using GAS `-l' Switch:   %ld Bytes\n", (long) OptInfo->NearAssemblyResult);
63	}
64}
65