reorganise things a bit to align further with the actual names/structure

This commit is contained in:
Ash Wolf 2023-01-15 12:14:05 +00:00
parent 8078e7f897
commit 35d488e972
84 changed files with 920 additions and 917 deletions

View File

@ -37,7 +37,7 @@ add_executable(mwcc
command_line/CmdLine/Src/MacEmul/Memory.c command_line/CmdLine/Src/MacEmul/Memory.c
command_line/CmdLine/Src/MacEmul/Files.c command_line/CmdLine/Src/MacEmul/Files.c
command_line/CmdLine/Src/MacEmul/TextUtils.c command_line/CmdLine/Src/MacEmul/TextUtils.c
command_line/CmdLine/Src/uFileTypeMappings.c command_line/CmdLine/Src/CLFileTypes.c
command_line/CmdLine/Src/Project/CLFiles.c command_line/CmdLine/Src/Project/CLFiles.c
command_line/CmdLine/Src/Project/CLOverlays.c command_line/CmdLine/Src/Project/CLOverlays.c
command_line/CmdLine/Src/Project/CLSegs.c command_line/CmdLine/Src/Project/CLSegs.c
@ -51,13 +51,15 @@ add_executable(mwcc
command_line/CmdLine/Src/CLIncludeFileCache.c command_line/CmdLine/Src/CLIncludeFileCache.c
command_line/CmdLine/Src/CLLoadAndCache.c command_line/CmdLine/Src/CLLoadAndCache.c
command_line/CmdLine/Src/MacEmul/ErrMgr.c command_line/CmdLine/Src/MacEmul/ErrMgr.c
compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Static/cc-mach-ppc-mw.c compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Static/cc-mach-ppc-mw.c
compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Options/Glue/ParserGlue-mach-ppc-cc.c compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Options/Glue/ParserGlue-mach-ppc-cc.c
compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Plugin/cc-mach-ppc.c compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Plugin/cc-mach-ppc.c
compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Plugin/libimp-mach-ppc.c compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Plugin/libimp-mach-ppc.c
unsorted/TargetOptimizer-ppc-mach.c compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Options/Glue/TargetOptimizer-ppc-mach.c
unsorted/OptimizerHelpers.c
compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Options/Glue/TargetWarningHelpers-ppc-cc.c command_line/C++_Parser/Src/Library/OptimizerHelpers.c
command_line/C++_Parser/Src/Library/StdTargetWarningHelpers-cc.c
command_line/C++_Parser/Src/Library/WarningHelpers.c command_line/C++_Parser/Src/Library/WarningHelpers.c
compiler_and_linker/unsorted/CCompiler.c compiler_and_linker/unsorted/CCompiler.c
@ -176,26 +178,28 @@ add_executable(mwcc
compiler_and_linker/unsorted/GCCInlineAsm.c compiler_and_linker/unsorted/GCCInlineAsm.c
compiler_and_linker/unsorted/BitVectors.c compiler_and_linker/unsorted/BitVectors.c
unsorted/StaticParserGlue.c command_line/C++_Parser/Src/Library/StaticParserGlue.c
unsorted/ParserFace.c command_line/C++_Parser/Src/Library/ParserFace.c
unsorted/ParserHelpers.c command_line/C++_Parser/Src/Library/ParserHelpers.c
unsorted/ToolHelpers.c command_line/C++_Parser/Src/Library/ToolHelpers.c
unsorted/ParserHelpers-cc.c command_line/C++_Parser/Src/Library/ParserHelpers-cc.c
unsorted/Arguments.c command_line/C++_Parser/Src/Library/Arguments.c
unsorted/ToolHelpers-cc.c command_line/C++_Parser/Src/Library/ToolHelpers-cc.c
unsorted/IO.c command_line/C++_Parser/Src/Library/IO.c
unsorted/Projects.c command_line/C++_Parser/Src/Library/Projects.c
unsorted/Targets.c command_line/C++_Parser/Src/Library/Targets.c
unsorted/Option.c command_line/C++_Parser/Src/Library/Option.c
unsorted/ParserErrors.c command_line/C++_Parser/Src/Library/ParserErrors.c
unsorted/Utils.c command_line/C++_Parser/Src/Library/Utils.c
unsorted/Parameter.c command_line/C++_Parser/Src/Library/Parameter.c
unsorted/Help.c command_line/C++_Parser/Src/Library/Help.c
unsorted/uContext1.cpp
unsorted/uContextCL.cpp command_line/PluginLib/Src/Library/CWPluginsPrivate.cpp
unsorted/uContextSecret.cpp command_line/PluginLib/Src/Library/DropInCompilerLinkerPrivate.cpp
unsorted/uCOS.c command_line/PluginLib/Src/Internal/CWSecretPluginCallbacks.cpp
unsorted/uContextParser.cpp command_line/PluginLib/Src/Internal/COSToolsCLT.c
command_line/PluginLib/Src/Library/CWParserPluginsPrivate.cpp
unsorted/uLibImporter.c unsorted/uLibImporter.c
unsorted/CmdLineBuildDate.c unsorted/CmdLineBuildDate.c

View File

@ -1,8 +1,5 @@
#include "parser.h" #include "parser.h"
// I'm making assumptions about the name of this file
// based on TargetWarningHelpers-ppc-ld.c existing in the linker
PExtraWarningC pExtraWarningC = {0}; PExtraWarningC pExtraWarningC = {0};
Pragma warningPragmas[] = { Pragma warningPragmas[] = {
&pExtraWarningC.warn_largeargs, "warn_largeargs", 0, &pExtraWarningC.warn_largeargs, "warn_largeargs", 0,

View File

@ -1,7 +1,5 @@
#include "cmdline.h" #include "cmdline.h"
// I don't actually have a name for this file, annoyingly enough
void AddFileTypeMappingList(OSFileTypeMappings **list, const OSFileTypeMappingList *entry) { void AddFileTypeMappingList(OSFileTypeMappings **list, const OSFileTypeMappingList *entry) {
OS_AddFileTypeMappingList(list, entry); OS_AddFileTypeMappingList(list, entry);
} }

View File

@ -4,16 +4,16 @@ extern const char *CMDLINE_BUILD_TIME;
extern const char *CMDLINE_BUILD_DATE; extern const char *CMDLINE_BUILD_DATE;
// Glue functions // Glue functions
extern int RegisterStaticParserPlugins(); extern int RegisterStaticParserPlugins(void);
extern int RegisterStaticParserResources(); extern int RegisterStaticParserResources(void);
extern void GetStaticTarget(OSType *cpu, OSType *os); extern void GetStaticTarget(OSType *cpu, OSType *os);
extern void GetStaticPluginType(OSType *language, OSType *plugintype); extern void GetStaticPluginType(OSType *language, OSType *plugintype);
extern void GetStaticParserPluginType(OSType *style); extern void GetStaticParserPluginType(OSType *style);
extern int RegisterStaticTargetResources(); extern int RegisterStaticTargetResources(void);
extern int RegisterStaticTargetPlugins(); extern int RegisterStaticTargetPlugins(void);
extern int RegisterStaticParserToolInfo(); extern int RegisterStaticParserToolInfo(void);
int main(int argc, char **argv) { int main(int argc, char **argv) {
OSType cpu; OSType cpu;

View File

@ -7,16 +7,16 @@ static CWParserContext *GetContext(CWPluginContext context) {
return 0; return 0;
} }
CW_CALLBACK CWParserGetBuildDate(CWPluginContext context, const char **buildDate, const char **buildTime) { CW_CALLBACK CWParserGetBuildDate(CWPluginContext context, const char **bdate, const char **btime) {
CWParserContext *pc; CWParserContext *pc;
if (!(pc = GetContext(context))) if (!(pc = GetContext(context)))
return cwErrInvalidCallback; return cwErrInvalidCallback;
if (!buildDate) if (!bdate)
return cwErrInvalidParameter; return cwErrInvalidParameter;
if (!buildTime) if (!btime)
return cwErrInvalidParameter; return cwErrInvalidParameter;
*buildDate = pc->build_date; *bdate = pc->build_date;
*buildTime = pc->build_time; *btime = pc->build_time;
return cwNoErr; return cwNoErr;
} }

View File

@ -474,10 +474,10 @@ CW_CALLBACK CWPostFileAction(CWPluginContext context, const CWFileSpec *theFile)
return context->callbacks->cbPostFileAction(context, theFile); return context->callbacks->cbPostFileAction(context, theFile);
} }
CW_CALLBACK CWCheckoutLicense(CWPluginContext context, const char *a, const char *b, SInt32 c, void *d, SInt32 *cookiePtr) { CW_CALLBACK CWCheckoutLicense(CWPluginContext context, const char *featureName, const char *licenseVersion, SInt32 flags, void *reserved, SInt32 *cookie) {
if (!ValidateContext(context) && !ValidateInitTermContext(context)) if (!ValidateContext(context) && !ValidateInitTermContext(context))
return cwErrInvalidParameter; return cwErrInvalidParameter;
return context->callbacks->cbCheckoutLicense(context, a, b, c, d, cookiePtr); return context->callbacks->cbCheckoutLicense(context, featureName, licenseVersion, flags, reserved, cookie);
} }
CW_CALLBACK CWCheckinLicense(CWPluginContext context, SInt32 cookie) { CW_CALLBACK CWCheckinLicense(CWPluginContext context, SInt32 cookie) {

View File

@ -58,7 +58,7 @@ static PrefDataPanel stPrefPanels[] = {
"CmdLine Linker Panel", &pCmdLineLinker, sizeof(pCmdLineLinker) "CmdLine Linker Panel", &pCmdLineLinker, sizeof(pCmdLineLinker)
}; };
static int PreParse() { static int PreParse(void) {
setLinkerOutputFilename = 0; setLinkerOutputFilename = 0;
linkerOutputFilename[0] = 0; linkerOutputFilename[0] = 0;
definesHandle = NULL; definesHandle = NULL;
@ -67,7 +67,7 @@ static int PreParse() {
return 1; return 1;
} }
static int MidParse() { static int MidParse(void) {
const char *match; const char *match;
const char *env; const char *env;
@ -85,7 +85,7 @@ static int MidParse() {
return 1; return 1;
} }
static int PostParse() { static int PostParse(void) {
if (!SetupPragmas(irPragmas) || !SetupPragmas(warningPragmas)) if (!SetupPragmas(irPragmas) || !SetupPragmas(warningPragmas))
return 0; return 0;
@ -132,6 +132,6 @@ static ParserTool parser = {
&PostParse &PostParse
}; };
int RegisterStaticParserToolInfo() { int RegisterStaticParserToolInfo(void) {
return SetParserToolInfo(&parser); return SetParserToolInfo(&parser);
} }

View File

@ -246,7 +246,7 @@ static CompilerLinkerPluginCallbacks lk_cl_cb = {
NULL NULL
}; };
int RegisterStaticCompilerPlugin() { int RegisterStaticCompilerPlugin(void) {
return RegisterStaticCompilerLinkerPlugin(&plugin_cb, &plugin_cl_cb) && RegisterStaticCompilerLinkerPlugin(&lk_cb, &lk_cl_cb); return RegisterStaticCompilerLinkerPlugin(&plugin_cb, &plugin_cl_cb) && RegisterStaticCompilerLinkerPlugin(&lk_cb, &lk_cl_cb);
} }
@ -563,6 +563,6 @@ static const char *STR10100[] = {
NULL NULL
}; };
int RegisterCompilerResources() { int RegisterCompilerResources(void) {
return RegisterResource("Compiler Errors", 10000, STR10000) && RegisterResource("Compiler Strings", 10100, STR10100); return RegisterResource("Compiler Errors", 10000, STR10000) && RegisterResource("Compiler Strings", 10100, STR10100);
} }

View File

@ -135,12 +135,12 @@ static CompilerLinkerPluginCallbacks machlibimport_cl_cb = {
NULL NULL
}; };
int RegisterStaticLibImporterPlugin() { int RegisterStaticLibImporterPlugin(void) {
return RegisterStaticCompilerLinkerPlugin(&machlibimport_cb, &machlibimport_cl_cb); return RegisterStaticCompilerLinkerPlugin(&machlibimport_cb, &machlibimport_cl_cb);
} }
#include "compiler_and_linker/Plugin_Tools/MacOS_PPC/Lib_Importer_Mach/Resources/Errors.r" #include "compiler_and_linker/Plugin_Tools/MacOS_PPC/Lib_Importer_Mach/Resources/Errors.r"
int RegisterLibImporterResources() { int RegisterLibImporterResources(void) {
return RegisterResource("Mach-O Lib Importer Errors", 911, STR911); return RegisterResource("Mach-O Lib Importer Errors", 911, STR911);
} }

View File

@ -1,11 +1,11 @@
#include "cmdline.h" #include "cmdline.h"
// cc-mach-ppc.c // cc-mach-ppc.c
extern int RegisterStaticCompilerPlugin(); extern int RegisterStaticCompilerPlugin(void);
extern int RegisterCompilerResources(); extern int RegisterCompilerResources(void);
// libimp-mach-ppc.c // libimp-mach-ppc.c
extern int RegisterStaticLibImporterPlugin(); extern int RegisterStaticLibImporterPlugin(void);
extern int RegisterLibImporterResources(); extern int RegisterLibImporterResources(void);
void GetStaticTarget(OSType *cpu, OSType *os) { void GetStaticTarget(OSType *cpu, OSType *os) {
*cpu = targetCPUPowerPC; *cpu = targetCPUPowerPC;
@ -21,11 +21,11 @@ void GetStaticParserPluginType(OSType *style) {
*style = CWFOURCHAR('S','e','e','p'); *style = CWFOURCHAR('S','e','e','p');
} }
int RegisterStaticTargetPlugins() { int RegisterStaticTargetPlugins(void) {
return RegisterStaticCompilerPlugin() && RegisterStaticLibImporterPlugin(); return RegisterStaticCompilerPlugin() && RegisterStaticLibImporterPlugin();
} }
int RegisterStaticTargetResources() { int RegisterStaticTargetResources(void) {
OS_UseMacResourceForkInfo(1); OS_UseMacResourceForkInfo(1);
return RegisterCompilerResources() && RegisterLibImporterResources(); return RegisterCompilerResources() && RegisterLibImporterResources();
} }

View File

@ -58,7 +58,7 @@ struct CompilerOption {
char *name; char *name;
short bits; short bits;
} compileroptions[138] = { } compileroptions[138] = {
"little_endian", OPT_FLAG_4000 | OPT_OFFSET(little_endian), "little_endian", OPT_FLAG_4000 | OPT_OFFSET(littleendian),
"longlong", OPT_OFFSET(longlong), "longlong", OPT_OFFSET(longlong),
"traceback", OPT_OFFSET(traceback), "traceback", OPT_OFFSET(traceback),
"disable_registers", OPT_OFFSET(disable_registers), "disable_registers", OPT_OFFSET(disable_registers),
@ -71,7 +71,7 @@ struct CompilerOption {
"optimizewithasm", OPT_OFFSET(optimizewithasm), "optimizewithasm", OPT_OFFSET(optimizewithasm),
"use_lmw_stmw", OPT_OFFSET(use_lmw_stmw), "use_lmw_stmw", OPT_OFFSET(use_lmw_stmw),
"no_register_save_helpers", OPT_OFFSET(no_register_save_helpers), "no_register_save_helpers", OPT_OFFSET(no_register_save_helpers),
"ppc_opt_bclr_bcctr", OPT_OFFSET(ppc_opt_bclr_bcctr), "ppc_opt_bclt_bctr", OPT_OFFSET(opt_bcc_lr_ctr),
"misaligned_mem_access", OPT_OFFSET(misaligned_mem_access), "misaligned_mem_access", OPT_OFFSET(misaligned_mem_access),
"switch_tables", OPT_OFFSET(switch_tables), "switch_tables", OPT_OFFSET(switch_tables),
"prepare_compress", OPT_OFFSET(prepare_compress), "prepare_compress", OPT_OFFSET(prepare_compress),
@ -81,29 +81,29 @@ struct CompilerOption {
"ecplusplus", OPT_OFFSET(ecplusplus), "ecplusplus", OPT_OFFSET(ecplusplus),
"objective_c", OPT_OFFSET(objective_c), "objective_c", OPT_OFFSET(objective_c),
"objc_strict", OPT_OFFSET(objc_strict), "objc_strict", OPT_OFFSET(objc_strict),
"ARM_conform", OPT_OFFSET(ARM_conform), "ARM_conform", OPT_OFFSET(ARMconform),
"ARM_scoping", OPT_OFFSET(ARM_scoping), "ARM_scoping", OPT_OFFSET(ARMscoping),
"require_prototypes", OPT_OFFSET(require_prototypes), "require_prototypes", OPT_OFFSET(checkprotos),
"trigraphs", OPT_OFFSET(trigraphs), "trigraphs", OPT_OFFSET(trigraphs),
"only_std_keywords", OPT_OFFSET(only_std_keywords), "only_std_keywords", OPT_OFFSET(onlystdkeywords),
"enumsalwaysint", OPT_OFFSET(enumsalwaysint), "enumsalwaysint", OPT_OFFSET(enumsalwaysint),
"ANSI_strict", OPT_OFFSET(ANSI_strict), "ANSI_strict", OPT_OFFSET(ANSIstrict),
"mpwc_relax", OPT_OFFSET(mpwc_relax), "mpwc_relax", OPT_OFFSET(mpwc_relax),
"mpwc_newline", OPT_OFFSET(mpwc_newline), "mpwc_newline", OPT_OFFSET(mpwc_newline),
"ignore_oldstyle", OPT_OFFSET(ignore_oldstyle), "ignore_oldstyle", OPT_OFFSET(ignore_oldstyle),
"cpp_extensions", OPT_OFFSET(cpp_extensions), "cpp_extensions", OPT_OFFSET(cpp_extensions),
"pointercast_lvalue", OPT_OFFSET(pointercast_lvalue), "pointercast_lvalue", OPT_OFFSET(pointercast_lvalue),
"RTTI", OPT_OFFSET(useRTTI), "RTTI", OPT_OFFSET(RTTI),
"delete_exception", OPT_OFFSET(delete_exception), "delete_exception", OPT_OFFSET(delete_exception),
"oldalignment", OPT_OFFSET(oldalignment), "oldalignment", OPT_OFFSET(oldalignment),
"multibyteaware", OPT_OFFSET(multibyteaware), "multibyteaware", OPT_OFFSET(multibyteaware),
"unsigned_char", OPT_OFFSET(unsignedchars), "unsigned_char", OPT_OFFSET(unsigned_char),
"auto_inline", OPT_OFFSET(autoinline), "auto_inline", OPT_OFFSET(auto_inline),
"inline_bottom_up", OPT_OFFSET(inline_bottom_up), "inline_bottom_up", OPT_OFFSET(inline_bottom_up),
"defer_codegen", OPT_OFFSET(defer_codegen), "defer_codegen", OPT_OFFSET(defer_codegen),
"direct_to_som", OPT_OFFSET(direct_to_som), "direct_to_som", OPT_OFFSET(direct_to_som),
"SOMCheckEnvironment", OPT_OFFSET(som_env_check), "SOMCheckEnvironment", OPT_OFFSET(som_env_check),
"SOMCallOptimization", OPT_OFFSET(som_call_opt), "SOMCallOptimization", OPT_OFFSET(som_call_optimize),
"bool", OPT_OFFSET(booltruefalse), "bool", OPT_OFFSET(booltruefalse),
"old_enum_mangler", OPT_OFFSET(old_enum_mangler), "old_enum_mangler", OPT_OFFSET(old_enum_mangler),
"longlong_enums", OPT_OFFSET(longlong_enums), "longlong_enums", OPT_OFFSET(longlong_enums),
@ -144,11 +144,11 @@ struct CompilerOption {
"optEH", OPT_OFFSET(optEH), "optEH", OPT_OFFSET(optEH),
"optEH2", OPT_OFFSET(optEH2), "optEH2", OPT_OFFSET(optEH2),
"new_mangler", OPT_OFFSET(new_mangler), "new_mangler", OPT_OFFSET(new_mangler),
"microsoft_exceptions", OPT_OFFSET(microsoft), "microsoft_exceptions", OPT_OFFSET(microsoft_EH),
"microsoft_RTTI", OPT_OFFSET(microsoft), "microsoft_RTTI", OPT_OFFSET(microsoft_EH),
"warning_errors", OPT_OFFSET(warningerrors), "warning_errors", OPT_OFFSET(warningerrors),
"extended_errorcheck", OPT_OFFSET(pedantic), "extended_errorcheck", OPT_OFFSET(pedantic),
"check_header_flags", OPT_OFFSET(check_header_flags), "check_header_flags", OPT_OFFSET(checkprecompflags),
"supress_warnings", OPT_OFFSET(supress_warnings), "supress_warnings", OPT_OFFSET(supress_warnings),
"warn_illpragma", OPT_OFFSET(warn_illpragma), "warn_illpragma", OPT_OFFSET(warn_illpragma),
"warn_emptydecl", OPT_OFFSET(warn_emptydecl), "warn_emptydecl", OPT_OFFSET(warn_emptydecl),
@ -165,40 +165,40 @@ struct CompilerOption {
"warn_no_side_effect", OPT_OFFSET(warn_no_side_effect), "warn_no_side_effect", OPT_OFFSET(warn_no_side_effect),
"warn_resultnotused", OPT_OFFSET(warn_resultnotused), "warn_resultnotused", OPT_OFFSET(warn_resultnotused),
"warn_ptr_int_conv", OPT_OFFSET(warn_ptr_int_conv), "warn_ptr_int_conv", OPT_OFFSET(warn_ptr_int_conv),
"align_array_members", OPT_OFFSET(align_array_members), "align_array_members", OPT_OFFSET(alignarraymembers),
"dont_reuse_strings", OPT_OFFSET(dont_reuse_strings), "dont_reuse_strings", OPT_OFFSET(dont_reuse_strings),
"pool_strings", OPT_OFFSET(pool_strings), "pool_strings", OPT_OFFSET(poolstrings),
"explicit_zero_data", OPT_OFFSET(explicit_zero_data), "explicit_zero_data", OPT_OFFSET(explicit_zero_data),
"readonly_strings", OPT_OFFSET(readonly_strings), "readonly_strings", OPT_OFFSET(readonly_strings),
"opt_common_subs", OPT_OFFSET(opt_common_subs), "opt_common_subs", OPT_OFFSET(commonsubs),
"opt_loop_invariants", OPT_OFFSET(opt_loop_invariants), "opt_loop_invariants", OPT_OFFSET(loopinvariants),
"opt_propagation", OPT_OFFSET(opt_propagation), "opt_propagation", OPT_OFFSET(propagation),
"opt_unroll_loops", OPT_OFFSET(opt_unroll_loops), "opt_unroll_loops", OPT_OFFSET(unrolling),
"opt_lifetimes", OPT_OFFSET(opt_lifetimes), "opt_lifetimes", OPT_OFFSET(lifetimes),
"opt_strength_reduction", OPT_OFFSET(opt_strength_reduction), "opt_strength_reduction", OPT_OFFSET(strengthreduction),
"opt_strength_reduction_strict", OPT_OFFSET(opt_strength_reduction_strict), "opt_strength_reduction_strict", OPT_OFFSET(strengthreductionstrict),
"opt_dead_code", OPT_OFFSET(opt_dead_code), "opt_dead_code", OPT_OFFSET(deadcode),
"opt_dead_assignments", OPT_OFFSET(opt_dead_assignments), "opt_dead_assignments", OPT_OFFSET(deadstore),
"opt_vectorize_loops", OPT_OFFSET(opt_vectorize_loops), "opt_vectorize_loops", OPT_OFFSET(vectorizeloops),
"opt_pointer_analysis", OPT_OFFSET(opt_pointer_analysis), "opt_pointer_analysis", OPT_OFFSET(opt_pointer_analysis),
"exceptions", OPT_OFFSET(exceptions), "exceptions", OPT_OFFSET(exceptions),
"dont_inline", OPT_OFFSET(dont_inline), "dont_inline", OPT_OFFSET(dontinline),
"always_inline", OPT_OFFSET(always_inline), "always_inline", OPT_OFFSET(alwaysinline),
"optimize_for_size", OPT_OFFSET(optimize_for_size), "optimize_for_size", OPT_OFFSET(optimizesize),
"peephole", OPT_OFFSET(peephole), "peephole", OPT_OFFSET(peephole),
"global_optimizer", OPT_OFFSET(global_optimizer), "global_optimizer", OPT_OFFSET(globaloptimizer),
"side_effects", OPT_OFFSET(side_effects), "side_effects", OPT_OFFSET(sideeffects),
"internal", OPT_FLAG_2000 | OPT_OFFSET(internal), "internal", OPT_FLAG_2000 | OPT_OFFSET(cfm_internal),
"import", OPT_FLAG_2000 | OPT_OFFSET(import), "import", OPT_FLAG_2000 | OPT_OFFSET(cfm_import),
"export", OPT_FLAG_2000 | OPT_OFFSET(export), "export", OPT_FLAG_2000 | OPT_OFFSET(cfm_export),
"lib_export", OPT_FLAG_2000 | OPT_OFFSET(lib_export), "lib_export", OPT_FLAG_2000 | OPT_OFFSET(cfm_lib_export),
"nosyminline", OPT_OFFSET(nosyminline), "nosyminline", OPT_OFFSET(nosyminline),
"force_active", OPT_OFFSET(force_active), "force_active", OPT_OFFSET(force_active),
"sym", OPT_OFFSET(isGeneratingDebugInfo), "sym", OPT_OFFSET(filesyminfo),
NULL, 0 NULL, 0
}; };
CParams *cparamblkptr; CompilerLinkerParamBlk *cparamblkptr;
short tk; short tk;
CInt64 tkintconst; CInt64 tkintconst;
Float tkfloatconst; Float tkfloatconst;
@ -274,7 +274,7 @@ static Macro trgtM;
GList pplist; GList pplist;
struct COptsPush { struct COptsPush {
struct COptsPush *next; struct COptsPush *next;
COpts opts; CompilerLinkerOptions opts;
}; };
struct COptPush { struct COptPush {
struct COptPush *next; struct COptPush *next;
@ -284,7 +284,7 @@ struct COptPush {
}; };
static struct COptsPush *coptpushs; static struct COptsPush *coptpushs;
static struct COptPush *coptpush; static struct COptPush *coptpush;
static COpts *coptssave; static CompilerLinkerOptions *coptssave;
static Boolean dofreeaheap; static Boolean dofreeaheap;
static GList mlist; static GList mlist;
static Handle ts_buffer; static Handle ts_buffer;
@ -578,8 +578,8 @@ static Boolean setupfile(StringPtr filename, Boolean flag1, Boolean flag2) {
cannotopenerror(filename, 0); cannotopenerror(filename, 0);
return 0; return 0;
} }
if (file_type == copts.pchType) { if (file_type == copts.headtype) {
if (cparamblkptr->isCachingPrecompiledHeaders) { if (cparamblkptr->caching_includes) {
if (CWAllocMemHandle(cparamblkptr->context, file_size, 1, &cache_hnd) != cwNoErr) { if (CWAllocMemHandle(cparamblkptr->context, file_size, 1, &cache_hnd) != cwNoErr) {
if (CWAllocMemHandle(cparamblkptr->context, file_size, 0, &cache_hnd) != cwNoErr) { if (CWAllocMemHandle(cparamblkptr->context, file_size, 0, &cache_hnd) != cwNoErr) {
COS_FileClose(refnum); COS_FileClose(refnum);
@ -611,17 +611,17 @@ static Boolean setupfile(StringPtr filename, Boolean flag1, Boolean flag2) {
} }
} }
} else { } else {
if (!cparamblkptr->mainFileText) { if (!cparamblkptr->sourcetext) {
COS_FileGetFSSpecInfo(&cparamblkptr->mainFileSpec, &file_vrefnum, &file_dirid, file_filename); COS_FileGetFSSpecInfo(&cparamblkptr->sourcefile, &file_vrefnum, &file_dirid, file_filename);
cannotopenerror(file_filename, 1); cannotopenerror(file_filename, 1);
return 0; return 0;
} }
prepinfo.textfile = cparamblkptr->mainFileSpec; prepinfo.textfile = cparamblkptr->sourcefile;
prepinfo.textbuffer = (char *) cparamblkptr->mainFileText; prepinfo.textbuffer = (char *) cparamblkptr->sourcetext;
prepinfo.textlength = cparamblkptr->mainFileTextLength; prepinfo.textlength = cparamblkptr->sourcetextsize;
prepinfo.fileID = cparamblkptr->mainFileID; prepinfo.fileID = cparamblkptr->browserfileID;
prepinfo.recordbrowseinfo = cparamblkptr->field276; prepinfo.recordbrowseinfo = cparamblkptr->recordbrowseinfo;
} }
if (filesp >= 0) { if (filesp >= 0) {
@ -1282,7 +1282,7 @@ void CPrep_SetSourceFile(FileOffsetInfo *foi) {
if (foi->file) { if (foi->file) {
if (foi->file == filestack[0]) { if (foi->file == filestack[0]) {
if (cprep_cursymfile) { if (cprep_cursymfile) {
if (cparamblkptr->isPrecompiling != 1) if (cparamblkptr->precompile != 1)
ObjGen_SrcBreakName(NULL, 0, 0); ObjGen_SrcBreakName(NULL, 0, 0);
cprep_cursymfile = NULL; cprep_cursymfile = NULL;
} }
@ -1290,7 +1290,7 @@ void CPrep_SetSourceFile(FileOffsetInfo *foi) {
if (cprep_cursymfile != foi->file) { if (cprep_cursymfile != foi->file) {
for (list = cprep_files; list; list = list->next) { for (list = cprep_files; list; list = list->next) {
if (foi->file == list->fileinfo) { if (foi->file == list->fileinfo) {
if (cparamblkptr->isPrecompiling != 1) if (cparamblkptr->precompile != 1)
ObjGen_SrcBreakName(list->fileinfo->nameNode, list->fileinfo->fileModDate, 0); ObjGen_SrcBreakName(list->fileinfo->nameNode, list->fileinfo->fileModDate, 0);
cprep_cursymfile = foi->file; cprep_cursymfile = foi->file;
return; return;
@ -1301,7 +1301,7 @@ void CPrep_SetSourceFile(FileOffsetInfo *foi) {
list->next = cprep_files; list->next = cprep_files;
cprep_files = list; cprep_files = list;
list->fileinfo = foi->file; list->fileinfo = foi->file;
if (cparamblkptr->isPrecompiling != 1) if (cparamblkptr->precompile != 1)
ObjGen_SrcBreakName(list->fileinfo->nameNode, list->fileinfo->fileModDate, 1); ObjGen_SrcBreakName(list->fileinfo->nameNode, list->fileinfo->fileModDate, 1);
cprep_cursymfile = foi->file; cprep_cursymfile = foi->file;
} }
@ -1418,7 +1418,7 @@ void CPrep_GetPrepPos(CPrepFileInfo **file, SInt32 *ppos) {
*ppos = pos - prep_file_start; *ppos = pos - prep_file_start;
} }
UInt8 C_Compiler(CParams *param) { UInt8 C_Compiler(CompilerLinkerParamBlk *param) {
TStreamElement ts; TStreamElement ts;
UInt8 code; UInt8 code;
@ -1438,7 +1438,7 @@ UInt8 C_Compiler(CParams *param) {
linetick = COS_GetTicks() + 5; linetick = COS_GetTicks() + 5;
code = 0; code = 0;
copts.delete_exception = 1; copts.delete_exception = 1;
copts.som_call_opt = 1; copts.som_call_optimize = 1;
copts.template_patch = 1; copts.template_patch = 1;
copts.template_friends = 1; copts.template_friends = 1;
copts.simple_class_byval = 1; copts.simple_class_byval = 1;
@ -1464,7 +1464,7 @@ UInt8 C_Compiler(CParams *param) {
InitNameHash(); InitNameHash();
setupprep(); setupprep();
CParser_Setup(); CParser_Setup();
SetupPrecompiler(cparamblkptr->isPrecompiling); SetupPrecompiler(cparamblkptr->precompile);
SetupAssembler(); SetupAssembler();
ObjGen_Setup(); ObjGen_Setup();
PointerAnalysis_Setup(); PointerAnalysis_Setup();
@ -1474,12 +1474,12 @@ UInt8 C_Compiler(CParams *param) {
if (copts.oldprefixname[0]) if (copts.oldprefixname[0])
setupfile(copts.oldprefixname, 1, 0); setupfile(copts.oldprefixname, 1, 0);
coptssave = galloc(sizeof(COpts)); coptssave = galloc(sizeof(CompilerLinkerOptions));
*coptssave = copts; *coptssave = copts;
coptpushs = NULL; coptpushs = NULL;
coptpush = NULL; coptpush = NULL;
preprocessing_only = param->isPreprocessing; preprocessing_only = param->preprocess;
if (param->isPreprocessing) if (param->preprocess)
CPrep_Preprocess(); CPrep_Preprocess();
else else
cparser(); cparser();
@ -1500,20 +1500,20 @@ UInt8 C_Compiler(CParams *param) {
} }
if (!anyerrors) { if (!anyerrors) {
if (param->isPrecompiling == 1) { if (param->precompile == 1) {
CBrowse_Finish(param); CBrowse_Finish(param);
PrecompilerWrite(); PrecompilerWrite();
} else if (!param->isPreprocessing) { } else if (!param->preprocess) {
ObjGen_Finish(); ObjGen_Finish();
CBrowse_Finish(param); CBrowse_Finish(param);
} }
code = 1; code = 1;
} }
if (param->isPreprocessing) { if (param->preprocess) {
cparamblkptr->objectDataHandle = pplist.data; cparamblkptr->objectdata = pplist.data;
pplist.data = NULL; pplist.data = NULL;
cparamblkptr->browseDataHandle = NULL; cparamblkptr->browsedata = NULL;
} }
} else { } else {
CWDisplayLines(param->context, lines); CWDisplayLines(param->context, lines);
@ -1529,7 +1529,7 @@ UInt8 C_Compiler(CParams *param) {
CBrowse_Cleanup(param); CBrowse_Cleanup(param);
} }
param->objectdata.compiledlines = lines; param->object.compiledlines = lines;
if (cprep_nomem_exit) { if (cprep_nomem_exit) {
CompilerGetCString(7, string); CompilerGetCString(7, string);
CWReportMessage(cparamblkptr->context, NULL, string, NULL, messagetypeError, 0); CWReportMessage(cparamblkptr->context, NULL, string, NULL, messagetypeError, 0);
@ -2003,7 +2003,7 @@ static void CPrep_Define(void) {
} }
} }
if (copts.ANSI_strict) if (copts.ANSIstrict)
CPrep_Error(CErrorStr117); CPrep_Error(CErrorStr117);
AppendGListByte(&mlist, '#'); AppendGListByte(&mlist, '#');
pos = ptr17; pos = ptr17;
@ -2076,7 +2076,7 @@ static void CPrep_Define(void) {
macro->next = macrohashtable[macro->name->hashval]; macro->next = macrohashtable[macro->name->hashval];
macrohashtable[macro->name->hashval] = macro; macrohashtable[macro->name->hashval] = macro;
if (cparamblkptr->browseOptions.recordMacros && prep_file->recordbrowseinfo) { if (cparamblkptr->browseoptions.recordMacros && prep_file->recordbrowseinfo) {
CBrowse_NewMacro(macro, prep_file, gDirectiveStart, pos - prep_file_start + 1); CBrowse_NewMacro(macro, prep_file, gDirectiveStart, pos - prep_file_start + 1);
} }
@ -2143,7 +2143,7 @@ static Boolean CPrep_CheckTarget(void) {
return 0; return 0;
} }
result = !strcmp(cparams.targetName, tkstring); result = !strcmp(cparams.idetargetname, tkstring);
if (!notendofline()) { if (!notendofline()) {
CError_Error(CErrorStr112); CError_Error(CErrorStr112);
@ -2185,11 +2185,11 @@ static Boolean CPrep_CheckOption(void) {
} }
if (!strcmp(tkidentifier->name, "scheduling")) { if (!strcmp(tkidentifier->name, "scheduling")) {
result = copts.schedule_mode != 0; result = copts.schedule_factor != 0;
} else if (!strcmp(tkidentifier->name, "precompile")) { } else if (!strcmp(tkidentifier->name, "precompile")) {
result = cparamblkptr->isPrecompiling == 1; result = cparamblkptr->precompile == 1;
} else if (!strcmp(tkidentifier->name, "preprocess")) { } else if (!strcmp(tkidentifier->name, "preprocess")) {
result = cparamblkptr->isPreprocessing; result = cparamblkptr->preprocess;
} else { } else {
for (option = compileroptions; option->name; option++) { for (option = compileroptions; option->name; option++) {
if (!strcmp(tkidentifier->name, option->name)) { if (!strcmp(tkidentifier->name, option->name)) {
@ -2813,19 +2813,19 @@ static void pragma_on_off_reset(UInt32 bits) {
return; return;
} }
if (flag && !strcmp(tkidentifier->name, "list")) { if (flag && !strcmp(tkidentifier->name, "list")) {
if (cparamblkptr->isPreprocessing) { if (cparamblkptr->preprocess) {
skipendofline(); skipendofline();
return; return;
} }
macrocheck = 1; macrocheck = 1;
if ((bits & OPT_OFFSET_MASK) == OPT_OFFSET(internal)) if ((bits & OPT_OFFSET_MASK) == OPT_OFFSET(cfm_internal))
imex_flags = OBJECT_FLAGS_10; imex_flags = OBJECT_FLAGS_10;
else if ((bits & OPT_OFFSET_MASK) == OPT_OFFSET(import)) else if ((bits & OPT_OFFSET_MASK) == OPT_OFFSET(cfm_import))
imex_flags = OBJECT_FLAGS_20; imex_flags = OBJECT_FLAGS_20;
else if ((bits & OPT_OFFSET_MASK) == OPT_OFFSET(export)) else if ((bits & OPT_OFFSET_MASK) == OPT_OFFSET(cfm_export))
imex_flags = OBJECT_FLAGS_40; imex_flags = OBJECT_FLAGS_40;
else if ((bits & OPT_OFFSET_MASK) == OPT_OFFSET(lib_export)) else if ((bits & OPT_OFFSET_MASK) == OPT_OFFSET(cfm_lib_export))
imex_flags = OBJECT_FLAGS_60; imex_flags = OBJECT_FLAGS_60;
else else
CError_FATAL(3610); CError_FATAL(3610);
@ -2921,7 +2921,7 @@ static void CPrep_PragmaUnused(void) {
NameSpaceObjectList *list; NameSpaceObjectList *list;
short t; short t;
if (cparamblkptr->isPreprocessing) { if (cparamblkptr->preprocess) {
skipendofline(); skipendofline();
return; return;
} }
@ -2994,7 +2994,7 @@ static void CPrep_PragmaInlineMaxSize(void) {
if (notendofline() && plex() == '(' && notendofline()) { if (notendofline() && plex() == '(' && notendofline()) {
switch (plex()) { switch (plex()) {
case TK_INTCONST: case TK_INTCONST:
copts.inline_max_size = CInt64_GetULong(&tkintconst); copts.inlinemaxsize = CInt64_GetULong(&tkintconst);
break; break;
default: default:
CPrep_Warning(CErrorStr186); CPrep_Warning(CErrorStr186);
@ -3019,7 +3019,7 @@ static void CPrep_PragmaInlineMaxTotalSize(void) {
if (notendofline() && plex() == '(' && notendofline()) { if (notendofline() && plex() == '(' && notendofline()) {
switch (plex()) { switch (plex()) {
case TK_INTCONST: case TK_INTCONST:
copts.inline_max_total_size = CInt64_GetULong(&tkintconst); copts.inlinemaxtotalsize = CInt64_GetULong(&tkintconst);
break; break;
default: default:
CPrep_Warning(CErrorStr186); CPrep_Warning(CErrorStr186);
@ -3061,7 +3061,7 @@ static void pragma_segment(void) {
if (!i || i >= 255) if (!i || i >= 255)
CPrep_Warning(CErrorStr186); CPrep_Warning(CErrorStr186);
copts.forcedSegment = GetHashNameNodeExport(name); copts.cursegmentname = GetHashNameNodeExport(name);
ObjGen_SegmentName(); ObjGen_SegmentName();
} else { } else {
if (copts.warn_illpragma) if (copts.warn_illpragma)
@ -3072,22 +3072,22 @@ static void pragma_segment(void) {
static void pragma_options(void) { static void pragma_options(void) {
if (notendofline() && plex() == TK_IDENTIFIER && !strcmp(tkidentifier->name, "align") && notendofline() && plex() == '=' && notendofline() && plex() == TK_IDENTIFIER) { if (notendofline() && plex() == TK_IDENTIFIER && !strcmp(tkidentifier->name, "align") && notendofline() && plex() == '=' && notendofline() && plex() == TK_IDENTIFIER) {
if (!strcmp(tkidentifier->name, "reset")) { if (!strcmp(tkidentifier->name, "reset")) {
CPrep_PopOption(OPT_OFFSET(align_mode)); CPrep_PopOption(OPT_OFFSET(structalignment));
goto done; goto done;
} else if (!strcmp(tkidentifier->name, "native")) { } else if (!strcmp(tkidentifier->name, "native")) {
CPrep_PushOption(OPT_OFFSET(align_mode), AlignMode2_PPC); CPrep_PushOption(OPT_OFFSET(structalignment), AlignMode2_PPC);
goto done; goto done;
} else if (!strcmp(tkidentifier->name, "mac68k")) { } else if (!strcmp(tkidentifier->name, "mac68k")) {
CPrep_PushOption(OPT_OFFSET(align_mode), AlignMode0_Mac68k); CPrep_PushOption(OPT_OFFSET(structalignment), AlignMode0_Mac68k);
goto done; goto done;
} else if (!strcmp(tkidentifier->name, "mac68k4byte")) { } else if (!strcmp(tkidentifier->name, "mac68k4byte")) {
CPrep_PushOption(OPT_OFFSET(align_mode), AlignMode1_Mac68k4byte); CPrep_PushOption(OPT_OFFSET(structalignment), AlignMode1_Mac68k4byte);
goto done; goto done;
} else if (!strcmp(tkidentifier->name, "power")) { } else if (!strcmp(tkidentifier->name, "power")) {
CPrep_PushOption(OPT_OFFSET(align_mode), AlignMode2_PPC); CPrep_PushOption(OPT_OFFSET(structalignment), AlignMode2_PPC);
goto done; goto done;
} else if (!strcmp(tkidentifier->name, "packed")) { } else if (!strcmp(tkidentifier->name, "packed")) {
CPrep_PushOption(OPT_OFFSET(align_mode), AlignMode8_Packed); CPrep_PushOption(OPT_OFFSET(structalignment), AlignMode8_Packed);
goto done; goto done;
} }
} }
@ -3127,7 +3127,7 @@ static void pragma_pop(void) {
static void pragma_overload(void) { static void pragma_overload(void) {
Object *obj; Object *obj;
if (cparamblkptr->isPreprocessing) { if (cparamblkptr->preprocess) {
skipendofline(); skipendofline();
return; return;
} }
@ -3192,7 +3192,7 @@ static void pragma_opt_unroll_count(void) {
if (t == TK_INTCONST) { if (t == TK_INTCONST) {
lv = CInt64_GetULong(&tkintconst); lv = CInt64_GetULong(&tkintconst);
if (lv >= 0 && lv <= 127) { if (lv >= 0 && lv <= 127) {
CPrep_PushOption(OPT_OFFSET(loop_unroll_count), lv); CPrep_PushOption(OPT_OFFSET(unrollfactor), lv);
CodeGen_UpdateOptimizerOptions(); CodeGen_UpdateOptimizerOptions();
CodeGen_UpdateBackEndOptions(); CodeGen_UpdateBackEndOptions();
} else { } else {
@ -3200,7 +3200,7 @@ static void pragma_opt_unroll_count(void) {
skipendofline(); skipendofline();
} }
} else if (t == TK_IDENTIFIER && !strcmp(tkidentifier->name, "reset")) { } else if (t == TK_IDENTIFIER && !strcmp(tkidentifier->name, "reset")) {
CPrep_PopOption(OPT_OFFSET(loop_unroll_count)); CPrep_PopOption(OPT_OFFSET(unrollfactor));
CodeGen_UpdateOptimizerOptions(); CodeGen_UpdateOptimizerOptions();
CodeGen_UpdateBackEndOptions(); CodeGen_UpdateBackEndOptions();
} else { } else {
@ -3223,7 +3223,7 @@ static void pragma_opt_unroll_instr_count(void) {
if (t == TK_INTCONST) { if (t == TK_INTCONST) {
lv = CInt64_GetULong(&tkintconst); lv = CInt64_GetULong(&tkintconst);
if (lv >= 0 && lv <= 127) { if (lv >= 0 && lv <= 127) {
CPrep_PushOption(OPT_OFFSET(loop_unroll_size_threshold), lv); CPrep_PushOption(OPT_OFFSET(unrollinstrfactor), lv);
CodeGen_UpdateOptimizerOptions(); CodeGen_UpdateOptimizerOptions();
CodeGen_UpdateBackEndOptions(); CodeGen_UpdateBackEndOptions();
} else { } else {
@ -3231,7 +3231,7 @@ static void pragma_opt_unroll_instr_count(void) {
skipendofline(); skipendofline();
} }
} else if (t == TK_IDENTIFIER && !strcmp(tkidentifier->name, "reset")) { } else if (t == TK_IDENTIFIER && !strcmp(tkidentifier->name, "reset")) {
CPrep_PopOption(OPT_OFFSET(loop_unroll_size_threshold)); CPrep_PopOption(OPT_OFFSET(unrollinstrfactor));
CodeGen_UpdateOptimizerOptions(); CodeGen_UpdateOptimizerOptions();
CodeGen_UpdateBackEndOptions(); CodeGen_UpdateBackEndOptions();
} else { } else {
@ -3254,7 +3254,7 @@ static void pragma_pack(void) {
if (notendofline() && plex() == '(') { if (notendofline() && plex() == '(') {
macrocheck = 1; macrocheck = 1;
if (notendofline() && ((t = plex()) == ')')) { if (notendofline() && ((t = plex()) == ')')) {
copts.align_mode = coptssave->align_mode; copts.structalignment = coptssave->structalignment;
} else { } else {
did_push = did_pop = 0; did_push = did_pop = 0;
do { do {
@ -3263,14 +3263,14 @@ static void pragma_pack(void) {
if (cprep_packstackp) { if (cprep_packstackp) {
cprep_packstackp--; cprep_packstackp--;
cprep_packstack[cprep_packstackp].identifier = NULL; cprep_packstack[cprep_packstackp].identifier = NULL;
cprep_packstack[cprep_packstackp].align_mode = copts.align_mode; cprep_packstack[cprep_packstackp].align_mode = copts.structalignment;
did_push = 1; did_push = 1;
} else { } else {
CPrep_Warning(CErrorStr186); CPrep_Warning(CErrorStr186);
} }
} else if (!strcmp(tkidentifier->name, "pop")) { } else if (!strcmp(tkidentifier->name, "pop")) {
if (cprep_packstackp < 128) { if (cprep_packstackp < 128) {
copts.align_mode = cprep_packstack[cprep_packstackp].align_mode; copts.structalignment = cprep_packstack[cprep_packstackp].align_mode;
cprep_packstackp++; cprep_packstackp++;
did_pop = 1; did_pop = 1;
} else { } else {
@ -3285,7 +3285,7 @@ static void pragma_pack(void) {
break; break;
} }
if (i < 128) { if (i < 128) {
copts.align_mode = cprep_packstack[i].align_mode; copts.structalignment = cprep_packstack[i].align_mode;
cprep_packstackp = i + 1; cprep_packstackp = i + 1;
} else { } else {
CPrep_Warning(CErrorStr186); CPrep_Warning(CErrorStr186);
@ -3300,22 +3300,22 @@ static void pragma_pack(void) {
if (t == TK_INTCONST) { if (t == TK_INTCONST) {
switch (CInt64_GetULong(&tkintconst)) { switch (CInt64_GetULong(&tkintconst)) {
case 0: case 0:
copts.align_mode = coptssave->align_mode; copts.structalignment = coptssave->structalignment;
break; break;
case 1: case 1:
copts.align_mode = AlignMode3_1Byte; copts.structalignment = AlignMode3_1Byte;
break; break;
case 2: case 2:
copts.align_mode = AlignMode4_2Byte; copts.structalignment = AlignMode4_2Byte;
break; break;
case 4: case 4:
copts.align_mode = AlignMode5_4Byte; copts.structalignment = AlignMode5_4Byte;
break; break;
case 8: case 8:
copts.align_mode = AlignMode6_8Byte; copts.structalignment = AlignMode6_8Byte;
break; break;
case 16: case 16:
copts.align_mode = AlignMode7_16Byte; copts.structalignment = AlignMode7_16Byte;
break; break;
default: default:
if (copts.warn_illpragma) if (copts.warn_illpragma)
@ -4098,7 +4098,7 @@ static void prepelse(void) {
return; return;
} }
if (!copts.ANSI_strict) if (!copts.ANSIstrict)
skipendofline(); skipendofline();
else else
goendofline(); goendofline();
@ -4127,7 +4127,7 @@ static void prependif(void) {
} }
macrocheck = 0; macrocheck = 0;
if (!copts.ANSI_strict) if (!copts.ANSIstrict)
skipendofline(); skipendofline();
else else
goendofline(); goendofline();
@ -4264,7 +4264,7 @@ void preprocessor(void) {
macrocheck = 1; macrocheck = 1;
return; return;
} }
if (!copts.ANSI_strict) { if (!copts.ANSIstrict) {
if (!strcmp("warning", tkidentifier->name)) { if (!strcmp("warning", tkidentifier->name)) {
CPrep_Warning(CErrorStr337); CPrep_Warning(CErrorStr337);
skipendofline(); skipendofline();
@ -4307,7 +4307,7 @@ void preprocessor(void) {
prependif(); prependif();
return; return;
} }
if (copts.objective_c || !copts.ANSI_strict) { if (copts.objective_c || !copts.ANSIstrict) {
if (!strcmp("import", tkidentifier->name)) { if (!strcmp("import", tkidentifier->name)) {
prepinclude(1); prepinclude(1);
macrocheck = 1; macrocheck = 1;

View File

@ -81,7 +81,7 @@ loop:
} }
} }
if (tokenstacklevel <= 0) { if (tokenstacklevel <= 0) {
if (p[0] == '/' && (!copts.ANSI_strict || copts.cplusplus || copts.c9x)) { if (p[0] == '/' && (!copts.ANSIstrict || copts.cplusplus || copts.c9x)) {
spaceskip = 1; spaceskip = 1;
nextcharpos = (char *) CPrep_SkipNewComment(p + 1); nextcharpos = (char *) CPrep_SkipNewComment(p + 1);
return CPrep_SkipNewCommentChar; return CPrep_SkipNewCommentChar;
@ -224,7 +224,7 @@ loop:
p += 2; p += 2;
} }
} }
if (p[0] == '/' && (!copts.ANSI_strict || copts.cplusplus)) { if (p[0] == '/' && (!copts.ANSIstrict || copts.cplusplus)) {
spaceskip = 1; spaceskip = 1;
pos = (char *) CPrep_SkipNewComment(p + 1); pos = (char *) CPrep_SkipNewComment(p + 1);
return CPrep_SkipNewCommentChar; return CPrep_SkipNewCommentChar;
@ -676,7 +676,7 @@ static short intsuffix(short token, Boolean flag) {
break; break;
case 'i': case 'i':
case 'I': case 'I':
if (copts.cpp_extensions && !copts.ANSI_strict && copts.longlong) { if (copts.cpp_extensions && !copts.ANSIstrict && copts.longlong) {
pos = nextcharpos; pos = nextcharpos;
t = prepcurchar(); t = prepcurchar();
if (t == '6') { if (t == '6') {
@ -745,7 +745,7 @@ static short floatsuffix(short token) {
break; break;
case 'd': case 'd':
case 'D': case 'D':
if (!copts.ANSI_strict) { if (!copts.ANSIstrict) {
pos = nextcharpos; pos = nextcharpos;
token = *pos; token = *pos;
whichtype = IT_DOUBLE; whichtype = IT_DOUBLE;
@ -1001,7 +1001,7 @@ void skipendofline(void) {
} }
} }
if (*p == '/' && (!copts.ANSI_strict || copts.cplusplus)) { if (*p == '/' && (!copts.ANSIstrict || copts.cplusplus)) {
// EOL comment // EOL comment
pos = (char *) CPrep_SkipNewComment(p + 1); pos = (char *) CPrep_SkipNewComment(p + 1);
if (CPrep_SkipNewCommentChar == '\r') if (CPrep_SkipNewCommentChar == '\r')
@ -1133,7 +1133,7 @@ static short tapos(short _t) {
CError_FATAL(1386); CError_FATAL(1386);
} }
} else { } else {
if (copts.unsignedchars) if (copts.unsigned_char)
t &= 0xFF; t &= 0xFF;
CInt64_SetLong(&tkintconst, t); CInt64_SetLong(&tkintconst, t);
tksize = copts.cplusplus ? IT_SCHAR : IT_INT; tksize = copts.cplusplus ? IT_SCHAR : IT_INT;
@ -1556,7 +1556,7 @@ static short tzero(short t) {
if (pos == p) if (pos == p)
CError_Error(CErrorStr105); CError_Error(CErrorStr105);
pos = p; pos = p;
} else if (!copts.ANSI_strict && (ch == 'b' || ch == 'B')) { } else if (!copts.ANSIstrict && (ch == 'b' || ch == 'B')) {
p = CInt64_ScanBinString(&tkintconst, pos, &failed); p = CInt64_ScanBinString(&tkintconst, pos, &failed);
if (pos == p) if (pos == p)
CError_Error(CErrorStr105); CError_Error(CErrorStr105);
@ -1691,7 +1691,7 @@ static short tchra(void) {
return 0; return 0;
if (!strcmp("auto", tkidentifier->name)) if (!strcmp("auto", tkidentifier->name))
return TK_AUTO; return TK_AUTO;
if ((copts.cplusplus || !copts.only_std_keywords) && !strcmp("asm", tkidentifier->name)) if ((copts.cplusplus || !copts.onlystdkeywords) && !strcmp("asm", tkidentifier->name))
return TK_ASM; return TK_ASM;
if (copts.cplusplus && !in_assembler && !preprocessing_only) { if (copts.cplusplus && !in_assembler && !preprocessing_only) {
if (!strcmp("and", tkidentifier->name)) if (!strcmp("and", tkidentifier->name))
@ -1845,7 +1845,7 @@ static short tchri(void) {
if (copts.cplusplus || copts.c9x) { if (copts.cplusplus || copts.c9x) {
if (!strcmp("inline", tkidentifier->name)) if (!strcmp("inline", tkidentifier->name))
return TK_INLINE; return TK_INLINE;
} else if (!copts.only_std_keywords) { } else if (!copts.onlystdkeywords) {
if (!strcmp("inline", tkidentifier->name)) if (!strcmp("inline", tkidentifier->name))
return TK_INLINE; return TK_INLINE;
} }
@ -1933,7 +1933,7 @@ static short tchrp(short t) {
pos = ReadIdentifier(pos - 1); pos = ReadIdentifier(pos - 1);
if (macrocheck && macrotest()) if (macrocheck && macrotest())
return 0; return 0;
if (!copts.only_std_keywords && !strcmp("pascal", tkidentifier->name)) if (!copts.onlystdkeywords && !strcmp("pascal", tkidentifier->name))
return TK_PASCAL; return TK_PASCAL;
if (copts.cplusplus && t == 'p') { if (copts.cplusplus && t == 'p') {
if (!strcmp("private", tkidentifier->name)) if (!strcmp("private", tkidentifier->name))

View File

@ -451,7 +451,7 @@ static void CABI_AllocateVTable(DeclE *decle, TypeClass *tclass) {
} }
void CABI_LayoutClass(DeclE *decle, TypeClass *tclass) { void CABI_LayoutClass(DeclE *decle, TypeClass *tclass) {
char saveAlignMode = copts.align_mode; char saveAlignMode = copts.structalignment;
tclass->size = 0; tclass->size = 0;
if (!tclass->sominfo) { if (!tclass->sominfo) {
@ -465,7 +465,7 @@ void CABI_LayoutClass(DeclE *decle, TypeClass *tclass) {
if (tclass->flags & CLASS_FLAGS_20) if (tclass->flags & CLASS_FLAGS_20)
CABI_AllocateVirtualBases(decle, tclass); CABI_AllocateVirtualBases(decle, tclass);
} else { } else {
copts.align_mode = AlignMode2_PPC; copts.structalignment = AlignMode2_PPC;
CABI_AllocateMembers(decle, tclass); CABI_AllocateMembers(decle, tclass);
} }
@ -479,7 +479,7 @@ void CABI_LayoutClass(DeclE *decle, TypeClass *tclass) {
tclass->flags |= CLASS_FLAGS_2; tclass->flags |= CLASS_FLAGS_2;
copts.align_mode = saveAlignMode; copts.structalignment = saveAlignMode;
} }
void CABI_MakeDefaultArgConstructor(TypeClass *tclass, Object *func) { void CABI_MakeDefaultArgConstructor(TypeClass *tclass, Object *func) {
@ -505,8 +505,8 @@ void CABI_MakeDefaultArgConstructor(TypeClass *tclass, Object *func) {
CFunc_FuncGenSetup(&firstStmt, func); CFunc_FuncGenSetup(&firstStmt, func);
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args); CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args);
@ -555,7 +555,7 @@ void CABI_MakeDefaultArgConstructor(TypeClass *tclass, Object *func) {
CFunc_Gen(&firstStmt, func, 0); CFunc_Gen(&firstStmt, func, 0);
CScope_RestoreScope(&savedScope); CScope_RestoreScope(&savedScope);
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
func->u.func.defargdata = NULL; func->u.func.defargdata = NULL;
} }
@ -747,11 +747,11 @@ SInt32 CABI_GetCtorOffsetOffset(TypeClass *tclass, TypeClass *baseclass) {
size -= baseSize; size -= baseSize;
} }
saveAlignMode = copts.align_mode; saveAlignMode = copts.structalignment;
if (tclass->eflags & CLASS_EFLAGS_F0) if (tclass->eflags & CLASS_EFLAGS_F0)
copts.align_mode = ((tclass->eflags & CLASS_EFLAGS_F0) >> 4) - 1; copts.structalignment = ((tclass->eflags & CLASS_EFLAGS_F0) >> 4) - 1;
size += CMach_MemberAlignValue(TYPE(&stunsignedlong), size); size += CMach_MemberAlignValue(TYPE(&stunsignedlong), size);
copts.align_mode = saveAlignMode; copts.structalignment = saveAlignMode;
return size; return size;
} }
@ -1179,8 +1179,8 @@ void CABI_MakeDefaultConstructor(TypeClass *tclass, Object *func) {
CFunc_FuncGenSetup(&firstStmt, func); CFunc_FuncGenSetup(&firstStmt, func);
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args); CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args);
@ -1199,7 +1199,7 @@ void CABI_MakeDefaultConstructor(TypeClass *tclass, Object *func) {
CFunc_Gen(&firstStmt, func, 0); CFunc_Gen(&firstStmt, func, 0);
CScope_RestoreScope(&savedScope); CScope_RestoreScope(&savedScope);
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
} }
static ENode *CABI_AssignObject(TypeClass *tclass, ENode *expr1, ENode *expr2) { static ENode *CABI_AssignObject(TypeClass *tclass, ENode *expr1, ENode *expr2) {
@ -1550,8 +1550,8 @@ void CABI_MakeDefaultCopyConstructor(TypeClass *tclass, Object *func) {
CFunc_FuncGenSetup(&firstStmt, func); CFunc_FuncGenSetup(&firstStmt, func);
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args); CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args);
@ -1570,7 +1570,7 @@ void CABI_MakeDefaultCopyConstructor(TypeClass *tclass, Object *func) {
CFunc_Gen(&firstStmt, func, 0); CFunc_Gen(&firstStmt, func, 0);
CScope_RestoreScope(&savedScope); CScope_RestoreScope(&savedScope);
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
} }
void CABI_MakeDefaultAssignmentOperator(TypeClass *tclass, Object *func) { void CABI_MakeDefaultAssignmentOperator(TypeClass *tclass, Object *func) {
@ -1592,8 +1592,8 @@ void CABI_MakeDefaultAssignmentOperator(TypeClass *tclass, Object *func) {
CFunc_FuncGenSetup(&firstStmt, func); CFunc_FuncGenSetup(&firstStmt, func);
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args); CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args);
@ -1628,7 +1628,7 @@ void CABI_MakeDefaultAssignmentOperator(TypeClass *tclass, Object *func) {
CFunc_Gen(&firstStmt, func, 0); CFunc_Gen(&firstStmt, func, 0);
CScope_RestoreScope(&savedScope); CScope_RestoreScope(&savedScope);
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
} }
static Statement *CABI_DestroyMembers(Statement *stmt, ObjMemberVar *ivars, TypeClass *tclass) { static Statement *CABI_DestroyMembers(Statement *stmt, ObjMemberVar *ivars, TypeClass *tclass) {
@ -1862,8 +1862,8 @@ void CABI_MakeDefaultDestructor(TypeClass *tclass, Object *func) {
CFunc_FuncGenSetup(&firstStmt, func); CFunc_FuncGenSetup(&firstStmt, func);
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args); CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args);
@ -1879,7 +1879,7 @@ void CABI_MakeDefaultDestructor(TypeClass *tclass, Object *func) {
CFunc_Gen(&firstStmt, func, 0); CFunc_Gen(&firstStmt, func, 0);
CScope_RestoreScope(&savedScope); CScope_RestoreScope(&savedScope);
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
} }
static void CABI_CreateLayeredDestructor(TypeClass *tclass, Object *obj1, Object *func, CABIDestroyMode mode) { static void CABI_CreateLayeredDestructor(TypeClass *tclass, Object *obj1, Object *func, CABIDestroyMode mode) {
@ -1894,8 +1894,8 @@ static void CABI_CreateLayeredDestructor(TypeClass *tclass, Object *obj1, Object
CFunc_FuncGenSetup(&firstStmt, func); CFunc_FuncGenSetup(&firstStmt, func);
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args); CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args);
@ -1911,7 +1911,7 @@ static void CABI_CreateLayeredDestructor(TypeClass *tclass, Object *obj1, Object
CFunc_Gen(&firstStmt, func, 0); CFunc_Gen(&firstStmt, func, 0);
CScope_RestoreScope(&savedScope); CScope_RestoreScope(&savedScope);
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
} }
void CABI_MakeLayeredDestructor(TypeClass *tclass, Object *func) { void CABI_MakeLayeredDestructor(TypeClass *tclass, Object *func) {

View File

@ -106,12 +106,12 @@ typedef struct BrowseHeader {
// forward decls // forward decls
static void RecordUndefinedMemberFunctions(void); static void RecordUndefinedMemberFunctions(void);
void CBrowse_Setup(CParams *params) { void CBrowse_Setup(CompilerLinkerParamBlk *params) {
BrowseHeader hdr; BrowseHeader hdr;
CError_ASSERT(123, params != NULL); CError_ASSERT(123, params != NULL);
params->objectdata.browsedata = NULL; params->object.browsedata = NULL;
InitGList(&gBrowseData, 0x10000); InitGList(&gBrowseData, 0x10000);
InitGList(&gMemberFuncList, 1024); InitGList(&gMemberFuncList, 1024);
@ -130,7 +130,7 @@ void CBrowse_Setup(CParams *params) {
AppendGListData(&gBrowseData, &hdr, sizeof(hdr)); AppendGListData(&gBrowseData, &hdr, sizeof(hdr));
} }
void CBrowse_Finish(CParams *params) { void CBrowse_Finish(CompilerLinkerParamBlk *params) {
CWMemHandle hnd; CWMemHandle hnd;
CError_ASSERT(151, params != NULL); CError_ASSERT(151, params != NULL);
@ -142,13 +142,13 @@ void CBrowse_Finish(CParams *params) {
COS_ResizeHandle(gBrowseData.data, gBrowseData.size); COS_ResizeHandle(gBrowseData.data, gBrowseData.size);
if (CWSecretAttachHandle(params->context, gBrowseData.data, &hnd) == cwNoErr) { if (CWSecretAttachHandle(params->context, gBrowseData.data, &hnd) == cwNoErr) {
params->objectdata.browsedata = hnd; params->object.browsedata = hnd;
gBrowseData.data = NULL; gBrowseData.data = NULL;
} }
} }
} }
void CBrowse_Cleanup(CParams *params) { void CBrowse_Cleanup(CompilerLinkerParamBlk *params) {
FreeGList(&gBrowseData); FreeGList(&gBrowseData);
FreeGList(&gClassData); FreeGList(&gClassData);
FreeGList(&gMemberFuncList); FreeGList(&gMemberFuncList);

View File

@ -1765,7 +1765,7 @@ void CClass_ClassAction(TypeClass *tclass) {
CClass_AllocVTable(tclass); CClass_AllocVTable(tclass);
memclrw(vtable_object_data, vtable_data_size); memclrw(vtable_object_data, vtable_data_size);
if (copts.useRTTI && !(tclass->flags & (CLASS_FLAGS_10 | CLASS_FLAGS_2000))) if (copts.RTTI && !(tclass->flags & (CLASS_FLAGS_10 | CLASS_FLAGS_2000)))
vtable_object_links = CRTTI_ConstructVTableHeaders(tclass, vtable_object_data, vtable_object_links); vtable_object_links = CRTTI_ConstructVTableHeaders(tclass, vtable_object_data, vtable_object_links);
CError_ASSERT(2492, tclass->vtable->object->type->size == tclass->vtable->size); CError_ASSERT(2492, tclass->vtable->object->type->size == tclass->vtable->size);
@ -1779,7 +1779,7 @@ void CClass_MakeStaticActionClass(TypeClass *tclass) {
tclass->vtable->object->qual |= Q_20000; tclass->vtable->object->qual |= Q_20000;
if (!(tclass->vtable->object->flags & OBJECT_FLAGS_2)) { if (!(tclass->vtable->object->flags & OBJECT_FLAGS_2)) {
CParser_NewCallBackAction(tclass->vtable->object, tclass); CParser_NewCallBackAction(tclass->vtable->object, tclass);
} else if (cparamblkptr->isPrecompiling != 1) { } else if (cparamblkptr->precompile != 1) {
CParser_NewClassAction(tclass); CParser_NewClassAction(tclass);
} }
} }
@ -1800,7 +1800,7 @@ void CClass_MemberDef(Object *obj, TypeClass *tclass) {
CError_Error(CErrorStr280); CError_Error(CErrorStr280);
tclass->action = CLASS_ACTION_0; tclass->action = CLASS_ACTION_0;
CClass_MakeStaticActionClass(tclass); CClass_MakeStaticActionClass(tclass);
} else if (cparamblkptr->isPrecompiling != 1) { } else if (cparamblkptr->precompile != 1) {
CParser_NewClassAction(tclass); CParser_NewClassAction(tclass);
} }
} }

View File

@ -13,7 +13,7 @@ Boolean systemHandles;
static Boolean using_license_manager; static Boolean using_license_manager;
Boolean crippled; Boolean crippled;
SInt32 license_cookie; SInt32 license_cookie;
CParams cparams; CompilerLinkerParamBlk cparams;
static void get_extension(ConstStringPtr src, char *dst) { static void get_extension(ConstStringPtr src, char *dst) {
int ep; int ep;
@ -33,86 +33,86 @@ static int setup_param_block(CWPluginContext context) {
static char target_name[128]; static char target_name[128];
CWTargetInfo tinfo; CWTargetInfo tinfo;
memset(&cparams, 0, sizeof(CParams)); memset(&cparams, 0, sizeof(CompilerLinkerParamBlk));
cparams.context = context; cparams.context = context;
if (CWGetPluginRequest(context, &cparams.pluginRequest) != cwNoErr) if (CWGetPluginRequest(context, &cparams.request) != cwNoErr)
return 0; return 0;
if (CWGetAPIVersion(context, &cparams.apiVersion) != cwNoErr) if (CWGetAPIVersion(context, &cparams.version) != cwNoErr)
return 0; return 0;
if (CWGetProjectFile(context, &cparams.projectFile) != cwNoErr) if (CWGetProjectFile(context, &cparams.targetfile) != cwNoErr)
return 0; return 0;
if (CWGetProjectFileCount(context, &cparams.projectFileCount) != cwNoErr) if (CWGetProjectFileCount(context, &cparams.numfiles) != cwNoErr)
return 0; return 0;
if (CWGetMainFileNumber(context, &cparams.mainFileNumber) != cwNoErr) if (CWGetMainFileNumber(context, &cparams.whichfile) != cwNoErr)
return 0; return 0;
if (CWGetMainFileSpec(context, &cparams.mainFileSpec) != cwNoErr) if (CWGetMainFileSpec(context, &cparams.sourcefile) != cwNoErr)
return 0; return 0;
if (CWGetMainFileText(context, &cparams.mainFileText, &cparams.mainFileTextLength) != cwNoErr) if (CWGetMainFileText(context, &cparams.sourcetext, &cparams.sourcetextsize) != cwNoErr)
return 0; return 0;
if (CWIsPrecompiling(context, &cparams.isPrecompiling) != cwNoErr) if (CWIsPrecompiling(context, &cparams.precompile) != cwNoErr)
return 0; return 0;
if (CWIsAutoPrecompiling(context, &cparams.isAutoPrecompiling) != cwNoErr) if (CWIsAutoPrecompiling(context, &cparams.autoprecompile) != cwNoErr)
return 0; return 0;
if (CWIsPreprocessing(context, &cparams.isPreprocessing) != cwNoErr) if (CWIsPreprocessing(context, &cparams.preprocess) != cwNoErr)
return 0; return 0;
if (CWIsGeneratingDebugInfo(context, &cparams.isGeneratingDebugInfo) != cwNoErr) if (CWIsGeneratingDebugInfo(context, &cparams.SYMinfo) != cwNoErr)
return 0; return 0;
if (CWIsCachingPrecompiledHeaders(context, &cparams.isCachingPrecompiledHeaders) != cwNoErr) if (CWIsCachingPrecompiledHeaders(context, &cparams.caching_includes) != cwNoErr)
return 0; return 0;
if (CWGetBrowseOptions(context, &cparams.browseOptions) != cwNoErr) if (CWGetBrowseOptions(context, &cparams.browseoptions) != cwNoErr)
return 0; return 0;
cparams.field276 = cparams.isPreprocessing == 0; cparams.recordbrowseinfo = cparams.preprocess == 0;
if (CWGetMainFileID(context, &cparams.mainFileID) != cwNoErr) if (CWGetMainFileID(context, &cparams.browserfileID) != cwNoErr)
return 0; return 0;
if (CWGetTargetInfo(context, &tinfo) != cwNoErr) if (CWGetTargetInfo(context, &tinfo) != cwNoErr)
return 0; return 0;
cparams.targetOS = tinfo.targetOS; cparams.targetOS = tinfo.targetOS;
cparams.targetCPU = tinfo.targetCPU; cparams.targetCPU = tinfo.targetCPU;
cparams.targetName = target_name; cparams.idetargetname = target_name;
return CWGetTargetName(context, target_name, sizeof(target_name)) == cwNoErr; return CWGetTargetName(context, target_name, sizeof(target_name)) == cwNoErr;
} }
static short store_compile_results(void) { static short store_compile_results(void) {
CWResult result; CWResult result;
if (cparams.objectDataHandle) if (cparams.objectdata)
CWSecretAttachHandle(cparams.context, cparams.objectDataHandle, &cparams.objectdata.objectdata); CWSecretAttachHandle(cparams.context, cparams.objectdata, &cparams.object.objectdata);
if (cparams.browseDataHandle) if (cparams.browsedata)
CWSecretAttachHandle(cparams.context, cparams.browseDataHandle, &cparams.objectdata.browsedata); CWSecretAttachHandle(cparams.context, cparams.browsedata, &cparams.object.browsedata);
if (cparams.isPreprocessing) { if (cparams.preprocess) {
if (cparams.objectdata.objectdata) { if (cparams.object.objectdata) {
CWNewTextDocumentInfo docinfo; CWNewTextDocumentInfo docinfo;
memset(&docinfo, 0, sizeof(CWNewTextDocumentInfo)); memset(&docinfo, 0, sizeof(CWNewTextDocumentInfo));
docinfo.text = cparams.objectdata.objectdata; docinfo.text = cparams.object.objectdata;
cparams.objectdata.objectdata = NULL; cparams.object.objectdata = NULL;
result = CWCreateNewTextDocument(cparams.context, &docinfo); result = CWCreateNewTextDocument(cparams.context, &docinfo);
} }
} else { } else {
result = CWStoreObjectData(cparams.context, cparams.mainFileNumber, &cparams.objectdata); result = CWStoreObjectData(cparams.context, cparams.whichfile, &cparams.object);
} }
return result; return result;
} }
static void initialize_compiler_options(CParams *params) { static void initialize_compiler_options(CompilerLinkerParamBlk *params) {
static PFrontEndC pFrontEnd; static PFrontEndC pFrontEnd;
PWarningC pWarningC; PWarningC pWarningC;
PGlobalOptimizer pGlobalOptimizer; PGlobalOptimizer pGlobalOptimizer;
Handle prefsdata; Handle prefsdata;
char extension[256]; char extension[256];
memclrw(&copts, sizeof(COpts)); memclrw(&copts, sizeof(CompilerLinkerOptions));
CWSecretGetNamedPreferences(cparams.context, "C/C++ Compiler", &prefsdata); CWSecretGetNamedPreferences(cparams.context, "C/C++ Compiler", &prefsdata);
pFrontEnd = *((PFrontEndC *) *prefsdata); pFrontEnd = *((PFrontEndC *) *prefsdata);
copts.little_endian = 0; copts.littleendian = 0;
copts.cplusplus = 1; copts.cplusplus = 1;
copts.objective_c = pFrontEnd.objective_c; copts.objective_c = pFrontEnd.objective_c;
get_extension(params->mainFileSpec.name, extension); get_extension(params->sourcefile.name, extension);
if (!strcmp(extension, ".c") || !strcmp(extension, ".h") || !strcmp(extension, ".pch")) { if (!strcmp(extension, ".c") || !strcmp(extension, ".h") || !strcmp(extension, ".pch")) {
copts.cplusplus = pFrontEnd.cplusplus; copts.cplusplus = pFrontEnd.cplusplus;
} else if (!strcmp(extension, ".m")) { } else if (!strcmp(extension, ".m")) {
@ -123,34 +123,34 @@ static void initialize_compiler_options(CParams *params) {
copts.objective_c = 1; copts.objective_c = 1;
} }
copts.require_prototypes = pFrontEnd.checkprotos; copts.checkprotos = pFrontEnd.checkprotos;
copts.ARM_conform = pFrontEnd.arm; copts.ARMconform = pFrontEnd.arm;
copts.ARM_scoping = pFrontEnd.arm; copts.ARMscoping = pFrontEnd.arm;
copts.trigraphs = pFrontEnd.trigraphs; copts.trigraphs = pFrontEnd.trigraphs;
copts.only_std_keywords = pFrontEnd.onlystdkeywords; copts.onlystdkeywords = pFrontEnd.onlystdkeywords;
copts.enumsalwaysint = pFrontEnd.enumsalwaysint; copts.enumsalwaysint = pFrontEnd.enumsalwaysint;
copts.mpwc_relax = pFrontEnd.mpwpointerstyle; copts.mpwc_relax = pFrontEnd.mpwpointerstyle;
copts.ANSI_strict = pFrontEnd.ansistrict; copts.ANSIstrict = pFrontEnd.ansistrict;
copts.mpwc_newline = pFrontEnd.mpwcnewline; copts.mpwc_newline = pFrontEnd.mpwcnewline;
copts.exceptions = pFrontEnd.enableexceptions; copts.exceptions = pFrontEnd.enableexceptions;
copts.dont_reuse_strings = pFrontEnd.dontreusestrings; copts.dont_reuse_strings = pFrontEnd.dontreusestrings;
copts.pool_strings = pFrontEnd.poolstrings; copts.poolstrings = pFrontEnd.poolstrings;
copts.dont_inline = pFrontEnd.dontinline; copts.dontinline = pFrontEnd.dontinline;
copts.useRTTI = pFrontEnd.useRTTI; copts.RTTI = pFrontEnd.useRTTI;
copts.oldprefixname = pFrontEnd.oldprefixname; copts.oldprefixname = pFrontEnd.oldprefixname;
copts.multibyteaware = pFrontEnd.multibyteaware; copts.multibyteaware = pFrontEnd.multibyteaware;
copts.unsignedchars = pFrontEnd.unsignedchars; copts.unsigned_char = pFrontEnd.unsignedchars;
copts.autoinline = pFrontEnd.autoinline; copts.auto_inline = pFrontEnd.autoinline;
copts.direct_to_som = pFrontEnd.direct_to_som; copts.direct_to_som = pFrontEnd.direct_to_som;
copts.som_env_check = pFrontEnd.som_env_check; copts.som_env_check = pFrontEnd.som_env_check;
copts.booltruefalse = pFrontEnd.booltruefalse; copts.booltruefalse = pFrontEnd.booltruefalse;
copts.always_inline = pFrontEnd.alwaysinline; copts.alwaysinline = pFrontEnd.alwaysinline;
copts.inlinelevel = pFrontEnd.inlinelevel; copts.inlinelevel = pFrontEnd.inlinelevel;
copts.wchar_type = pFrontEnd.wchar_type; copts.wchar_type = pFrontEnd.wchar_type;
copts.ecplusplus = pFrontEnd.ecplusplus; copts.ecplusplus = pFrontEnd.ecplusplus;
copts.defer_codegen = pFrontEnd.defer_codegen; copts.defer_codegen = pFrontEnd.defer_codegen;
copts.inline_max_size = 512; copts.inlinemaxsize = 512;
copts.inline_max_total_size = 100000; copts.inlinemaxtotalsize = 100000;
CWSecretGetNamedPreferences(cparams.context, "C/C++ Warnings", &prefsdata); CWSecretGetNamedPreferences(cparams.context, "C/C++ Warnings", &prefsdata);
pWarningC = *((PWarningC *) *prefsdata); pWarningC = *((PWarningC *) *prefsdata);
@ -172,15 +172,15 @@ static void initialize_compiler_options(CParams *params) {
pGlobalOptimizer = *((PGlobalOptimizer *) *prefsdata); pGlobalOptimizer = *((PGlobalOptimizer *) *prefsdata);
copts.optimizationlevel = pGlobalOptimizer.optimizationlevel; copts.optimizationlevel = pGlobalOptimizer.optimizationlevel;
copts.optimize_for_size = (Boolean) (pGlobalOptimizer.optfor == 1); copts.optimizesize = (Boolean) (pGlobalOptimizer.optfor == 1);
copts.crippled = crippled; copts.crippled = crippled;
copts.loop_unroll_count = 8; copts.unrollfactor = 8;
copts.loop_unroll_size_threshold = 100; copts.unrollinstrfactor = 100;
copts.isGeneratingDebugInfo = params->isGeneratingDebugInfo; copts.filesyminfo = params->SYMinfo;
copts.pchCreator = CWFOURCHAR('C','W','I','E'); copts.appltype = CWFOURCHAR('C', 'W', 'I', 'E');
copts.pchType = CWFOURCHAR('M','M','C','H'); copts.headtype = CWFOURCHAR('M', 'M', 'C', 'H');
copts.text = CWFOURCHAR('T','E','X','T'); copts.texttype = CWFOURCHAR('T','E','X','T');
} }
static void GetLicense(void) { static void GetLicense(void) {

View File

@ -436,7 +436,7 @@ static void scandirectdecl1(DeclInfo *declinfo) {
CError_Error(CErrorStr124); CError_Error(CErrorStr124);
len = cint64_one; len = cint64_one;
} else if (CInt64_IsZero(&len)) { } else if (CInt64_IsZero(&len)) {
if (!copts.ANSI_strict && declinfo->x50) { if (!copts.ANSIstrict && declinfo->x50) {
flag = 1; flag = 1;
} else { } else {
CError_Error(CErrorStr124); CError_Error(CErrorStr124);
@ -1595,7 +1595,7 @@ void CDecl_TypedefDeclarator(DeclInfo *declinfo) {
const UInt32 mask = Q_ALIGNED_MASK | Q_REFERENCE | Q_PASCAL | Q_VOLATILE | Q_CONST; const UInt32 mask = Q_ALIGNED_MASK | Q_REFERENCE | Q_PASCAL | Q_VOLATILE | Q_CONST;
if (!is_typesame(objt->type, declinfo->thetype) || (objt->qual & mask) != (declinfo->qual & mask)) { if (!is_typesame(objt->type, declinfo->thetype) || (objt->qual & mask) != (declinfo->qual & mask)) {
CError_Error(CErrorStr249, declinfo->name->name, objt->type, objt->qual, declinfo->thetype, declinfo->qual); CError_Error(CErrorStr249, declinfo->name->name, objt->type, objt->qual, declinfo->thetype, declinfo->qual);
} else if (!copts.cplusplus && (copts.pedantic || copts.ANSI_strict)) { } else if (!copts.cplusplus && (copts.pedantic || copts.ANSIstrict)) {
if (copts.pedantic) if (copts.pedantic)
CError_Warning(CErrorStr122, declinfo->name->name); CError_Warning(CErrorStr122, declinfo->name->name);
else else
@ -1626,7 +1626,7 @@ void CDecl_TypedefDeclarator(DeclInfo *declinfo) {
} }
} }
if (cparamblkptr->browseOptions.recordTypedefs && declinfo->file->recordbrowseinfo) if (cparamblkptr->browseoptions.recordTypedefs && declinfo->file->recordbrowseinfo)
CBrowse_NewTypedef(nspace, declinfo->name, declinfo->file, declinfo->file2, declinfo->x60, CPrep_BrowserFileOffset()); CBrowse_NewTypedef(nspace, declinfo->name, declinfo->file, declinfo->file2, declinfo->x60, CPrep_BrowserFileOffset());
} }
@ -1742,7 +1742,7 @@ static void CDecl_DataDeclarator(DeclInfo *declinfo, short access, Boolean flag)
CTemplTool_IsTemplateArgumentDependentType(declinfo->thetype)) CTemplTool_IsTemplateArgumentDependentType(declinfo->thetype))
CTemplClass_RegisterObjectDef(TEMPL_CLASS(nspace->theclass), OBJ_BASE(obj)); CTemplClass_RegisterObjectDef(TEMPL_CLASS(nspace->theclass), OBJ_BASE(obj));
if (flag && nspace->theclass && cparamblkptr->browseOptions.recordClasses) if (flag && nspace->theclass && cparamblkptr->browseoptions.recordClasses)
CBrowse_AddClassMemberData(obj, CPrep_BrowserTokenOffset(&member_fileoffset) + 1, CPrep_BrowserFileOffset()); CBrowse_AddClassMemberData(obj, CPrep_BrowserTokenOffset(&member_fileoffset) + 1, CPrep_BrowserFileOffset());
} }
@ -1790,9 +1790,9 @@ Boolean CDecl_FunctionDeclarator(DeclInfo *declinfo, NameSpace *nspace, Boolean
} }
if (obj->nspace == cscope_root && !strcmp(obj->name->name, "main")) { if (obj->nspace == cscope_root && !strcmp(obj->name->name, "main")) {
if (obj->sclass == TK_STATIC || (copts.ANSI_strict && TYPE_FUNC(obj->type)->functype != (Type *) &stsignedint)) if (obj->sclass == TK_STATIC || (copts.ANSIstrict && TYPE_FUNC(obj->type)->functype != (Type *) &stsignedint))
CError_Error(CErrorStr334); CError_Error(CErrorStr334);
} else if (copts.require_prototypes && (pflag || declinfo->x64)) { } else if (copts.checkprotos && (pflag || declinfo->x64)) {
if (obj->sclass != TK_STATIC && !(obj->qual & Q_INLINE) && !obj->nspace->is_unnamed) if (obj->sclass != TK_STATIC && !(obj->qual & Q_INLINE) && !obj->nspace->is_unnamed)
CError_Warning(CErrorStr178); CError_Warning(CErrorStr178);
} }
@ -2214,7 +2214,7 @@ static TypeEnum *CDecl_OldParseEnumList(TypeEnum *tenum, HashNameNode *name) {
} }
if (copts.enumsalwaysint) { if (copts.enumsalwaysint) {
if (copts.ANSI_strict) { if (copts.ANSIstrict) {
if (!CInt64_IsInRange(val, stsignedint.size)) if (!CInt64_IsInRange(val, stsignedint.size))
CError_Error(CErrorStr154); CError_Error(CErrorStr154);
} else { } else {
@ -2236,7 +2236,7 @@ static TypeEnum *CDecl_OldParseEnumList(TypeEnum *tenum, HashNameNode *name) {
break; break;
basetype = TYPE(CDecl_FindSignedType(8)); basetype = TYPE(CDecl_FindSignedType(8));
if (basetype->size != 8) { if (basetype->size != 8) {
if (!copts.ANSI_strict && CInt64_IsInRange(maximum, 4) && CInt64_IsInURange(minimum, 4)) if (!copts.ANSIstrict && CInt64_IsInRange(maximum, 4) && CInt64_IsInURange(minimum, 4))
break; break;
if (overflowed) if (overflowed)
CError_Error(CErrorStr154); CError_Error(CErrorStr154);
@ -2288,7 +2288,7 @@ static TypeEnum *CDecl_OldParseEnumList(TypeEnum *tenum, HashNameNode *name) {
tenum->enumlist = oec; tenum->enumlist = oec;
} }
if (cparamblkptr->browseOptions.recordEnums) { if (cparamblkptr->browseoptions.recordEnums) {
CPrepFileInfo *f = CPrep_BrowserCurrentFile(); CPrepFileInfo *f = CPrep_BrowserCurrentFile();
if (f->recordbrowseinfo) { if (f->recordbrowseinfo) {
CBrowse_NewEnumConstant(cscope_current, oec->name, f, fileinfo, offset, CPrep_BrowserFileOffset()); CBrowse_NewEnumConstant(cscope_current, oec->name, f, fileinfo, offset, CPrep_BrowserFileOffset());
@ -2376,7 +2376,7 @@ void CDecl_ComputeUnderlyingEnumType(TypeEnum *tenum) {
if (CInt64_IsInRange(maximum, r26->size) && CInt64_IsInRange(minimum, r26->size)) if (CInt64_IsInRange(maximum, r26->size) && CInt64_IsInRange(minimum, r26->size))
break; break;
if (r26->size == stsignedlong.size && !copts.ANSI_strict && CInt64_IsInRange(minimum, r26->size) && CInt64_IsInURange(maximum, r26->size)) if (r26->size == stsignedlong.size && !copts.ANSIstrict && CInt64_IsInRange(minimum, r26->size) && CInt64_IsInURange(maximum, r26->size))
break; break;
} while (1); } while (1);
} else { } else {
@ -2432,7 +2432,7 @@ static Type *CDecl_FindUnderlyingType(short size, CInt64 *a, CInt64 *b) {
return TYPE(&stsignedlong); return TYPE(&stsignedlong);
if (size <= stsignedlonglong.size && copts.longlong && copts.longlong_enums && CInt64_IsInRange(*a, stsignedlonglong.size) && CInt64_IsInRange(*b, stsignedlonglong.size)) if (size <= stsignedlonglong.size && copts.longlong && copts.longlong_enums && CInt64_IsInRange(*a, stsignedlonglong.size) && CInt64_IsInRange(*b, stsignedlonglong.size))
return TYPE(&stsignedlonglong); return TYPE(&stsignedlonglong);
if (!copts.ANSI_strict && size <= stsignedlong.size && CInt64_IsInRange(*a, stsignedlong.size) && CInt64_IsInURange(*b, stunsignedlong.size)) if (!copts.ANSIstrict && size <= stsignedlong.size && CInt64_IsInRange(*a, stsignedlong.size) && CInt64_IsInURange(*b, stunsignedlong.size))
return TYPE(&stsignedlong); return TYPE(&stsignedlong);
} }
@ -2560,7 +2560,7 @@ static TypeEnum *CDecl_ParseEnumList(TypeEnum *tenum, HashNameNode *name) {
if (!has_template_value) { if (!has_template_value) {
if (copts.enumsalwaysint) { if (copts.enumsalwaysint) {
if (!CInt64_IsInRange(val, stsignedint.size) && (copts.ANSI_strict || !CInt64_IsInURange(val, stunsignedint.size))) if (!CInt64_IsInRange(val, stsignedint.size) && (copts.ANSIstrict || !CInt64_IsInURange(val, stunsignedint.size)))
overflowed = 1; overflowed = 1;
basetype = TYPE(&stsignedint); basetype = TYPE(&stsignedint);
} else if (CInt64_IsNegative(&val) && !is_unsigned(basetype)) { } else if (CInt64_IsNegative(&val) && !is_unsigned(basetype)) {
@ -2601,7 +2601,7 @@ static TypeEnum *CDecl_ParseEnumList(TypeEnum *tenum, HashNameNode *name) {
tenum->enumlist = oec; tenum->enumlist = oec;
} }
if (cparamblkptr->browseOptions.recordEnums) { if (cparamblkptr->browseoptions.recordEnums) {
CPrepFileInfo *f = CPrep_BrowserCurrentFile(); CPrepFileInfo *f = CPrep_BrowserCurrentFile();
if (f->recordbrowseinfo) { if (f->recordbrowseinfo) {
CBrowse_NewEnumConstant(cscope_current, oec->name, f, fileinfo, offset, CPrep_BrowserFileOffset()); CBrowse_NewEnumConstant(cscope_current, oec->name, f, fileinfo, offset, CPrep_BrowserFileOffset());
@ -2651,7 +2651,7 @@ void scanenum(DeclInfo *declinfo) {
declinfo->thetype = TYPE(CDecl_ParseEnumList(NULL, name)); declinfo->thetype = TYPE(CDecl_ParseEnumList(NULL, name));
} }
if (cparamblkptr->browseOptions.recordEnums && declinfo->file->recordbrowseinfo) if (cparamblkptr->browseoptions.recordEnums && declinfo->file->recordbrowseinfo)
CBrowse_NewEnum( CBrowse_NewEnum(
cscope_current, cscope_current,
TYPE_ENUM(declinfo->thetype)->enumname, TYPE_ENUM(declinfo->thetype)->enumname,
@ -2716,7 +2716,7 @@ void CDecl_ScanStructDeclarator(BigDeclInfo *bde) {
return; return;
} }
if ((!copts.ANSI_strict || copts.c9x) && !bde->declinfo2.thetype->size && IS_TYPE_ARRAY(bde->declinfo2.thetype)) { if ((!copts.ANSIstrict || copts.c9x) && !bde->declinfo2.thetype->size && IS_TYPE_ARRAY(bde->declinfo2.thetype)) {
if (bde->declinfo2.storageclass != TK_STATIC && bde->declinfo2.storageclass != TK_TYPEDEF) { if (bde->declinfo2.storageclass != TK_STATIC && bde->declinfo2.storageclass != TK_TYPEDEF) {
type = TYPE_POINTER(bde->declinfo2.thetype)->target; type = TYPE_POINTER(bde->declinfo2.thetype)->target;
while (IS_TYPE_ARRAY(type)) while (IS_TYPE_ARRAY(type))
@ -2749,7 +2749,7 @@ void CDecl_ScanStructDeclarator(BigDeclInfo *bde) {
goto fuckup; goto fuckup;
CError_Error(CErrorStr138); CError_Error(CErrorStr138);
bde->declinfo2.thetype = TYPE(&stunsignedint); bde->declinfo2.thetype = TYPE(&stunsignedint);
} else if (copts.ANSI_strict && !copts.cplusplus) { } else if (copts.ANSIstrict && !copts.cplusplus) {
if (bde->declinfo2.thetype != TYPE(&stsignedint) && bde->declinfo2.thetype != TYPE(&stunsignedint)) { if (bde->declinfo2.thetype != TYPE(&stsignedint) && bde->declinfo2.thetype != TYPE(&stunsignedint)) {
CError_Error(CErrorStr138); CError_Error(CErrorStr138);
bde->declinfo2.thetype = TYPE(&stunsignedint); bde->declinfo2.thetype = TYPE(&stunsignedint);
@ -2981,7 +2981,7 @@ static SInt32 scanstructdeclarationlist(TypeStruct *tstruct, Boolean flag) {
break; break;
tk = lex(); tk = lex();
} }
} else if (!copts.ANSI_strict && IS_TYPE_STRUCT(bde.declinfo.thetype)) { } else if (!copts.ANSIstrict && IS_TYPE_STRUCT(bde.declinfo.thetype)) {
member = galloc(sizeof(StructMember)); member = galloc(sizeof(StructMember));
memclrw(member, sizeof(StructMember)); memclrw(member, sizeof(StructMember));
member->type = bde.declinfo.thetype; member->type = bde.declinfo.thetype;
@ -3084,7 +3084,7 @@ void scanstruct(DeclInfo *declinfo, short structtype) {
type = (Type *) CDecl_DefineStruct(NULL, structtype); type = (Type *) CDecl_DefineStruct(NULL, structtype);
} }
if ((add_to_browse = cparamblkptr->browseOptions.recordClasses && declinfo->file->recordbrowseinfo)) if ((add_to_browse = cparamblkptr->browseoptions.recordClasses && declinfo->file->recordbrowseinfo))
CBrowse_BeginStruct(declinfo, TYPE_STRUCT(type), &gl); CBrowse_BeginStruct(declinfo, TYPE_STRUCT(type), &gl);
typecopy = *TYPE_STRUCT(type); typecopy = *TYPE_STRUCT(type);
@ -3254,7 +3254,7 @@ static void CDecl_AddFunctionMember(DeclE *decle, TypeClass *tclass, DeclInfo *d
InlineFunctionObject(obj, NULL); InlineFunctionObject(obj, NULL);
} }
if (cparamblkptr->browseOptions.recordClasses) if (cparamblkptr->browseoptions.recordClasses)
CBrowse_AddClassMemberFunction(obj, CPrep_BrowserTokenOffset(&member_fileoffset) + 1, CPrep_BrowserFileOffset()); CBrowse_AddClassMemberFunction(obj, CPrep_BrowserTokenOffset(&member_fileoffset) + 1, CPrep_BrowserFileOffset());
} }
@ -3516,7 +3516,7 @@ static ObjMemberVar *CDecl_InstanceDataDeclarator(DeclE *decle, TypeClass *tclas
CScope_AddObject(tclass->nspace, name, OBJ_BASE(ivar)); CScope_AddObject(tclass->nspace, name, OBJ_BASE(ivar));
if ((tclass->flags & CLASS_FLAGS_100) && CTemplTool_IsTemplateArgumentDependentType(type)) if ((tclass->flags & CLASS_FLAGS_100) && CTemplTool_IsTemplateArgumentDependentType(type))
CTemplClass_RegisterObjectDef(TEMPL_CLASS(tclass), OBJ_BASE(ivar)); CTemplClass_RegisterObjectDef(TEMPL_CLASS(tclass), OBJ_BASE(ivar));
if (cparamblkptr->browseOptions.recordClasses) if (cparamblkptr->browseoptions.recordClasses)
CBrowse_AddClassMemberVar(ivar, CPrep_BrowserTokenOffset(&member_fileoffset) + 1, CPrep_BrowserFileOffset()); CBrowse_AddClassMemberVar(ivar, CPrep_BrowserTokenOffset(&member_fileoffset) + 1, CPrep_BrowserFileOffset());
} }
@ -4082,7 +4082,7 @@ static void CDecl_ParseBaseClassList(TypeClass *tclass, short mode, Boolean is_t
tk = lex(); tk = lex();
break; break;
case TK_PROTECTED: case TK_PROTECTED:
if (!copts.ARM_conform) { if (!copts.ARMconform) {
access = ACCESSPROTECTED; access = ACCESSPROTECTED;
tk = lex(); tk = lex();
} }
@ -4809,16 +4809,16 @@ void CDecl_ParseClass(DeclInfo *declinfo, short mode, Boolean flag1, UInt8 class
TEMPL_CLASS_INST(tclass)->is_specialized = 1; TEMPL_CLASS_INST(tclass)->is_specialized = 1;
} }
CError_ASSERT(6853, copts.align_mode >= 0 && copts.align_mode <= 14); CError_ASSERT(6853, copts.structalignment >= 0 && copts.structalignment <= 14);
tclass->eflags |= (UInt8) ((copts.align_mode + 1) << 4); tclass->eflags |= (UInt8) ((copts.structalignment + 1) << 4);
if (tk == ':') if (tk == ':')
CDecl_ParseBaseClassList(tclass, mode, is_templ); CDecl_ParseBaseClassList(tclass, mode, is_templ);
CScope_SetClassDefScope(tclass, &scopesave); CScope_SetClassDefScope(tclass, &scopesave);
if (tk == '{') { if (tk == '{') {
tk = lex(); tk = lex();
if ((add_to_browse = cparamblkptr->browseOptions.recordClasses && declinfo->file->recordbrowseinfo)) { if ((add_to_browse = cparamblkptr->browseoptions.recordClasses && declinfo->file->recordbrowseinfo)) {
offsetsave = member_fileoffset; offsetsave = member_fileoffset;
CBrowse_BeginClass(declinfo, &gl); CBrowse_BeginClass(declinfo, &gl);
} }

View File

@ -1241,7 +1241,7 @@ static ENode *CExpr_ParseNameResultExpr(CScopeParseResult *pr, ENode *expr, Bool
return nullnode(); return nullnode();
} }
if (copts.require_prototypes) if (copts.checkprotos)
CError_Error(CErrorStr178); CError_Error(CErrorStr178);
tfunc = galloc(sizeof(TypeFunc)); tfunc = galloc(sizeof(TypeFunc));
@ -2645,7 +2645,7 @@ ENode *unary_expression(void) {
return CExpr_ParseAlignof(); return CExpr_ParseAlignof();
case TK_LOGICAL_AND: case TK_LOGICAL_AND:
if (copts.ANSI_strict) if (copts.ANSIstrict)
break; break;
if ((tk = lex()) != TK_IDENTIFIER) { if ((tk = lex()) != TK_IDENTIFIER) {
@ -3027,7 +3027,7 @@ ENode *cast_expression(void) {
return tmp; return tmp;
} }
if (tk == '{' && (!copts.ANSI_strict || copts.c9x) && !IS_TYPE_VECTOR(di.thetype)) if (tk == '{' && (!copts.ANSIstrict || copts.c9x) && !IS_TYPE_VECTOR(di.thetype))
return CInit_AutoObject(NULL, di.thetype, di.qual); return CInit_AutoObject(NULL, di.thetype, di.qual);
expr = cast_expression(); expr = cast_expression();
@ -4349,7 +4349,7 @@ static ENode *conditional_expression(void) {
else else
tk = lex(); tk = lex();
expr2 = (copts.cplusplus && !copts.ARM_conform) ? assignment_expression() : conditional_expression(); expr2 = (copts.cplusplus && !copts.ARMconform) ? assignment_expression() : conditional_expression();
if (is_templdep_cond || IS_TYPE_TEMPLDEPEXPR(expr1->rtype) || IS_TYPE_TEMPLDEPEXPR(expr2->rtype)) { if (is_templdep_cond || IS_TYPE_TEMPLDEPEXPR(expr1->rtype) || IS_TYPE_TEMPLDEPEXPR(expr2->rtype)) {
result = CExpr_NewENode(ECOND); result = CExpr_NewENode(ECOND);

View File

@ -824,7 +824,7 @@ ENode *CExpr_LValue(ENode *expr, Boolean flag1, Boolean flag2) {
loop: loop:
switch (expr->type) { switch (expr->type) {
case ETYPCON: case ETYPCON:
if (copts.pointercast_lvalue || !copts.ANSI_strict) { if (copts.pointercast_lvalue || !copts.ANSIstrict) {
if (expr->rtype->type == TYPEPOINTER && expr->data.monadic->rtype->type == TYPEPOINTER) { if (expr->rtype->type == TYPEPOINTER && expr->data.monadic->rtype->type == TYPEPOINTER) {
switch (expr->data.monadic->type) { switch (expr->data.monadic->type) {
case EINDIRECT: case EINDIRECT:
@ -2583,7 +2583,7 @@ ENode *CExpr_GenericFuncCall(BClassList *path, ENode *funcexpr, Boolean flag1, O
objexpr = CSOM_MethodAccess(pathcopy, obj, flag1); objexpr = CSOM_MethodAccess(pathcopy, obj, flag1);
} else { } else {
if (obj->datatype == DVFUNC) { if (obj->datatype == DVFUNC) {
if (flag1 || (!copts._59 && !had_alias && funcexpr && CExpr_IsStaticType(funcexpr))) if (flag1 || (!copts.always_vdispatch && !had_alias && funcexpr && CExpr_IsStaticType(funcexpr)))
objexpr->flags |= ENODE_FLAG_80; objexpr->flags |= ENODE_FLAG_80;
} }
funcexpr = CExpr_GetClassAccessNode(path, buildpath, funcexpr, obj, access, flag4); funcexpr = CExpr_GetClassAccessNode(path, buildpath, funcexpr, obj, access, flag4);

View File

@ -165,7 +165,7 @@ void CFunc_SetupLocalVarInfo(Object *obj) {
obj->u.var.info->func = cscope_currentfunc; obj->u.var.info->func = cscope_currentfunc;
if (obj->sclass == TK_REGISTER) { if (obj->sclass == TK_REGISTER) {
if (!copts.optimize_for_size) if (!copts.optimizesize)
obj->u.var.info->usage = 100; obj->u.var.info->usage = 100;
else else
obj->u.var.info->usage = 5; obj->u.var.info->usage = 5;
@ -318,7 +318,7 @@ static FuncArg *parameter_list(DeclInfo *declinfo) {
while (1) { while (1) {
if (tk == TK_ELLIPSIS) { if (tk == TK_ELLIPSIS) {
if (flag26) { if (flag26) {
if (!copts.cplusplus && copts.ANSI_strict) if (!copts.cplusplus && copts.ANSIstrict)
CError_Warning(CErrorStr127); CError_Warning(CErrorStr127);
args = &elipsis; args = &elipsis;
} else { } else {
@ -907,7 +907,7 @@ static void scancase(DeclThing *thing) {
tk = lex(); tk = lex();
min = CExpr_IntConstConvert(thing->switchinfo->x8, thing->switchinfo->x8, CExpr_IntegralConstExpr()); min = CExpr_IntConstConvert(thing->switchinfo->x8, thing->switchinfo->x8, CExpr_IntegralConstExpr());
if (!copts.ANSI_strict && tk == TK_ELLIPSIS) { if (!copts.ANSIstrict && tk == TK_ELLIPSIS) {
tk = lex(); tk = lex();
max = CExpr_IntConstConvert(thing->switchinfo->x8, thing->switchinfo->x8, CExpr_IntegralConstExpr()); max = CExpr_IntConstConvert(thing->switchinfo->x8, thing->switchinfo->x8, CExpr_IntegralConstExpr());
if (CInt64_Greater(min, max)) if (CInt64_Greater(min, max))
@ -1676,7 +1676,7 @@ static void statement(DeclThing *thing) {
else else
tk = lex(); tk = lex();
if (copts.cplusplus && !copts.ARM_scoping && isdeclaration(1, 0, 0, '=')) { if (copts.cplusplus && !copts.ARMscoping && isdeclaration(1, 0, 0, '=')) {
block = CFunc_NewDeclBlock(); block = CFunc_NewDeclBlock();
expr = CFunc_ParseLocalDeclarationList(0, 1, 0, 0); expr = CFunc_ParseLocalDeclarationList(0, 1, 0, 0);
if (CScope_IsEmptyNameSpace(cscope_current)) { if (CScope_IsEmptyNameSpace(cscope_current)) {
@ -1730,7 +1730,7 @@ static void statement(DeclThing *thing) {
case TK_GOTO: case TK_GOTO:
if ((tk = lex()) != TK_IDENTIFIER) { if ((tk = lex()) != TK_IDENTIFIER) {
if (tk == '*' && !copts.ANSI_strict) { if (tk == '*' && !copts.ANSIstrict) {
tk = lex(); tk = lex();
stmt = CFunc_AppendStatement(ST_GOTOEXPR); stmt = CFunc_AppendStatement(ST_GOTOEXPR);
stmt->expr = expression(); stmt->expr = expression();
@ -1793,7 +1793,7 @@ static void statement(DeclThing *thing) {
expr = expression(); expr = expression();
CExpr_CheckUnusedExpression(expr); CExpr_CheckUnusedExpression(expr);
} else { } else {
if (!copts.ARM_scoping) if (!copts.ARMscoping)
block = CFunc_NewDeclBlock(); block = CFunc_NewDeclBlock();
expr = CFunc_ParseLocalDeclarationList(0, 1, 1, 0); expr = CFunc_ParseLocalDeclarationList(0, 1, 1, 0);
if (block && CScope_IsEmptyNameSpace(cscope_current)) { if (block && CScope_IsEmptyNameSpace(cscope_current)) {
@ -1816,7 +1816,7 @@ static void statement(DeclThing *thing) {
} }
if ((tk = lex()) != ';') { if ((tk = lex()) != ';') {
if (copts.cplusplus && !copts.ARM_scoping && isdeclaration(1, 0, 0, '=')) { if (copts.cplusplus && !copts.ARMscoping && isdeclaration(1, 0, 0, '=')) {
if (!block) if (!block)
block = CFunc_NewDeclBlock(); block = CFunc_NewDeclBlock();
expr = CFunc_ParseLocalDeclarationList(0, 1, 0, 0); expr = CFunc_ParseLocalDeclarationList(0, 1, 0, 0);
@ -1975,7 +1975,7 @@ static void statement(DeclThing *thing) {
else else
tk = lex(); tk = lex();
if (copts.cplusplus && !copts.ARM_scoping && isdeclaration(1, 0, 0, '=')) { if (copts.cplusplus && !copts.ARMscoping && isdeclaration(1, 0, 0, '=')) {
block = CFunc_NewDeclBlock(); block = CFunc_NewDeclBlock();
expr = CFunc_ParseLocalDeclarationList(0, 1, 0, 0); expr = CFunc_ParseLocalDeclarationList(0, 1, 0, 0);
if (CScope_IsEmptyNameSpace(cscope_current)) { if (CScope_IsEmptyNameSpace(cscope_current)) {
@ -2043,7 +2043,7 @@ static void statement(DeclThing *thing) {
else else
tk = lex(); tk = lex();
if (copts.cplusplus && !copts.ARM_scoping && isdeclaration(1, 0, 0, '=')) { if (copts.cplusplus && !copts.ARMscoping && isdeclaration(1, 0, 0, '=')) {
block = CFunc_NewDeclBlock(); block = CFunc_NewDeclBlock();
expr = CFunc_ParseLocalDeclarationList(0, 1, 0, 0); expr = CFunc_ParseLocalDeclarationList(0, 1, 0, 0);
if (CScope_IsEmptyNameSpace(cscope_current)) { if (CScope_IsEmptyNameSpace(cscope_current)) {
@ -2111,7 +2111,7 @@ static void statement(DeclThing *thing) {
return; return;
case TK_ASM: case TK_ASM:
if (copts.cplusplus || !copts.ANSI_strict) { if (copts.cplusplus || !copts.ANSIstrict) {
tk = lex(); tk = lex();
volatileasm = 0; volatileasm = 0;
@ -2319,7 +2319,7 @@ void CFunc_SetupNewFuncArgs(Object *func, FuncArg *args) {
TPTR_QUAL(obj->type) = Q_REFERENCE | Q_RESTRICT; TPTR_QUAL(obj->type) = Q_REFERENCE | Q_RESTRICT;
} }
if (obj->name == no_name_node && copts.ANSI_strict && !copts.cplusplus && !(func->qual & Q_80000)) if (obj->name == no_name_node && copts.ANSIstrict && !copts.cplusplus && !(func->qual & Q_80000))
CError_Error(CErrorStr127); CError_Error(CErrorStr127);
if (newlist) { if (newlist) {
@ -2933,7 +2933,7 @@ void CFunc_ParseFuncDef(Object *func, DeclInfo *di, TypeClass *tclass, Boolean i
if (di->x45 && (func->qual & Q_ASM)) if (di->x45 && (func->qual & Q_ASM))
CError_Error(CErrorStr176); CError_Error(CErrorStr176);
if (cparamblkptr->isPrecompiling == 1 && !(func->qual & Q_INLINE)) if (cparamblkptr->precompile == 1 && !(func->qual & Q_INLINE))
CError_ErrorTerm(CErrorStr180); CError_ErrorTerm(CErrorStr180);
if (di->x49) if (di->x49)
@ -3077,7 +3077,7 @@ void InitExpr_Register(ENode *expr, Object *object) {
InitExpr *scan; InitExpr *scan;
if ( if (
cparamblkptr->isPrecompiling == 1 && cparamblkptr->precompile == 1 &&
object->sclass != TK_STATIC && object->sclass != TK_STATIC &&
!(object->qual & (Q_20000 | Q_OVERLOAD)) !(object->qual & (Q_20000 | Q_OVERLOAD))
) )
@ -3112,14 +3112,14 @@ void CFunc_GenerateDummyFunction(Object *func) {
if (!anyerrors) { if (!anyerrors) {
nspace = CFunc_FuncGenSetup(&firstStmt, NULL); nspace = CFunc_FuncGenSetup(&firstStmt, NULL);
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
CFunc_CodeCleanup(&firstStmt); CFunc_CodeCleanup(&firstStmt);
CFunc_Gen(&firstStmt, func, 0); CFunc_Gen(&firstStmt, func, 0);
cscope_current = nspace->parent; cscope_current = nspace->parent;
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
} }
} }
@ -3129,7 +3129,7 @@ void CFunc_GenerateSingleExprFunc(Object *func, ENode *expr) {
Statement firstStmt; Statement firstStmt;
Statement *stmt; Statement *stmt;
if (cparamblkptr->isPrecompiling == 1) { if (cparamblkptr->precompile == 1) {
CError_Error(CErrorStr180); CError_Error(CErrorStr180);
return; return;
} }
@ -3137,8 +3137,8 @@ void CFunc_GenerateSingleExprFunc(Object *func, ENode *expr) {
if (!anyerrors) { if (!anyerrors) {
nspace = CFunc_FuncGenSetup(&firstStmt, func); nspace = CFunc_FuncGenSetup(&firstStmt, func);
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
stmt = CFunc_AppendStatement(ST_EXPRESSION); stmt = CFunc_AppendStatement(ST_EXPRESSION);
stmt->expr = expr; stmt->expr = expr;
@ -3147,7 +3147,7 @@ void CFunc_GenerateSingleExprFunc(Object *func, ENode *expr) {
CInline_GenFunc(&firstStmt, func, 0); CInline_GenFunc(&firstStmt, func, 0);
cscope_current = nspace->parent; cscope_current = nspace->parent;
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
} }
} }
@ -3161,7 +3161,7 @@ void CFunc_GenerateDummyCtorFunc(Object *func, Object *real_ctor) {
Statement firstStmt; Statement firstStmt;
Statement *stmt; Statement *stmt;
if (cparamblkptr->isPrecompiling == 1) { if (cparamblkptr->precompile == 1) {
CError_Error(CErrorStr180); CError_Error(CErrorStr180);
return; return;
} }
@ -3171,8 +3171,8 @@ void CFunc_GenerateDummyCtorFunc(Object *func, Object *real_ctor) {
nspace = CFunc_FuncGenSetup(&firstStmt, func); nspace = CFunc_FuncGenSetup(&firstStmt, func);
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args); CFunc_SetupNewFuncArgs(func, TYPE_FUNC(func->type)->args);
@ -3219,6 +3219,6 @@ void CFunc_GenerateDummyCtorFunc(Object *func, Object *real_ctor) {
cscope_current = nspace->parent; cscope_current = nspace->parent;
cscope_currentfunc = NULL; cscope_currentfunc = NULL;
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
} }
} }

View File

@ -586,7 +586,7 @@ static void CInit_InitTypeInt(CInit_Stuff *s, ENode *expr, TypeIntegral *tint, U
if (IS_TYPE_INT(expr->rtype)) { if (IS_TYPE_INT(expr->rtype)) {
if (ENODE_IS(expr, EINTCONST)) { if (ENODE_IS(expr, EINTCONST)) {
CMach_InitIntMem(TYPE(tint), expr->data.intval, s->buffer + s->size); CMach_InitIntMem(TYPE(tint), expr->data.intval, s->buffer + s->size);
} else if (ENODE_IS(expr, ETYPCON) && IS_TYPE_POINTER_ONLY(expr->data.monadic->rtype) && expr->rtype->size == 4 && (copts.cplusplus || !copts.ANSI_strict)) { } else if (ENODE_IS(expr, ETYPCON) && IS_TYPE_POINTER_ONLY(expr->data.monadic->rtype) && expr->rtype->size == 4 && (copts.cplusplus || !copts.ANSIstrict)) {
CInit_InitTypePointer(s, expr->data.monadic, TYPE_POINTER(expr->data.monadic->rtype), qual); CInit_InitTypePointer(s, expr->data.monadic, TYPE_POINTER(expr->data.monadic->rtype), qual);
} else { } else {
CInit_InitNonConst(s, TYPE(tint), expr); CInit_InitNonConst(s, TYPE(tint), expr);
@ -636,7 +636,7 @@ static void CInit_SetBitfield(TypeBitfield *tbitfield, UInt8 *buffer, CInt64 val
int pos; int pos;
int step; int step;
if (copts.little_endian) { if (copts.littleendian) {
pos = tbitfield->unkA; pos = tbitfield->unkA;
step = 1; step = 1;
} else { } else {
@ -645,7 +645,7 @@ static void CInit_SetBitfield(TypeBitfield *tbitfield, UInt8 *buffer, CInt64 val
} }
for (i = 0; i < tbitfield->unkB; i++) { for (i = 0; i < tbitfield->unkB; i++) {
if (CInt64_GetULong(&val) & 1) { if (CInt64_GetULong(&val) & 1) {
if (copts.little_endian) { if (copts.littleendian) {
buffer[pos >> 3] |= 1 << (pos & 7); buffer[pos >> 3] |= 1 << (pos & 7);
} else { } else {
buffer[pos >> 3] |= 0x80 >> (pos & 7); buffer[pos >> 3] |= 0x80 >> (pos & 7);
@ -1430,7 +1430,7 @@ static void CInit_ExprPointer(TypePointer *tptr, ENode *expr) {
static void CInit_ExprInt(TypeIntegral *tint, ENode *expr) { static void CInit_ExprInt(TypeIntegral *tint, ENode *expr) {
if (ENODE_IS(expr, EINTCONST)) { if (ENODE_IS(expr, EINTCONST)) {
CMach_InitIntMem(TYPE(tint), expr->data.intval, cinit_initinfo->buffer + cinit_initinfo->expr_offset); CMach_InitIntMem(TYPE(tint), expr->data.intval, cinit_initinfo->buffer + cinit_initinfo->expr_offset);
} else if (ENODE_IS(expr, ETYPCON) && IS_TYPE_POINTER_ONLY(expr->data.monadic->rtype) && expr->rtype->size == 4 && (copts.cplusplus || !copts.ANSI_strict)) { } else if (ENODE_IS(expr, ETYPCON) && IS_TYPE_POINTER_ONLY(expr->data.monadic->rtype) && expr->rtype->size == 4 && (copts.cplusplus || !copts.ANSIstrict)) {
CInit_ExprPointer(TYPE_POINTER(expr->data.monadic->rtype), expr->data.monadic); CInit_ExprPointer(TYPE_POINTER(expr->data.monadic->rtype), expr->data.monadic);
} else if (cinit_initinfo->expr_cb) { } else if (cinit_initinfo->expr_cb) {
cinit_initinfo->expr_cb(TYPE(tint), expr, 0); cinit_initinfo->expr_cb(TYPE(tint), expr, 0);
@ -2976,13 +2976,13 @@ void CInit_RewriteString(ENode *expr, Boolean flag) {
PooledString *str; PooledString *str;
Boolean is_wide; Boolean is_wide;
if (cparamblkptr->isPrecompiling == 1) if (cparamblkptr->precompile == 1)
CError_Error(CErrorStr180); CError_Error(CErrorStr180);
CError_ASSERT(4220, expr->rtype->type == TYPEPOINTER); CError_ASSERT(4220, expr->rtype->type == TYPEPOINTER);
is_wide = TYPE_POINTER(expr->rtype)->target->size != 1; is_wide = TYPE_POINTER(expr->rtype)->target->size != 1;
if (copts.pool_strings) { if (copts.poolstrings) {
if (is_wide) if (is_wide)
str = CInit_DeclarePooledWString(expr->data.string.data, expr->data.string.size); str = CInit_DeclarePooledWString(expr->data.string.data, expr->data.string.size);
else else
@ -3047,14 +3047,14 @@ static void declaredata(Object *obj, void *data, OLinkList *list, SInt32 size, B
qual = obj->qual; qual = obj->qual;
if (cparamblkptr->isPrecompiling == 1) { if (cparamblkptr->precompile == 1) {
PreComp_StaticData(obj, data, list, size); PreComp_StaticData(obj, data, list, size);
} else { } else {
obj->flags |= OBJECT_FLAGS_4; obj->flags |= OBJECT_FLAGS_4;
if (!fatalerrors) { if (!fatalerrors) {
for (scan = list; scan; scan = scan->next) for (scan = list; scan; scan = scan->next)
CInline_ObjectAddrRef(scan->obj); CInline_ObjectAddrRef(scan->obj);
if (copts.isGeneratingDebugInfo) if (copts.filesyminfo)
CPrep_SetSourceFile(&cparser_fileoffset); CPrep_SetSourceFile(&cparser_fileoffset);
if (is_readonly) if (is_readonly)
ObjGen_DeclareReadOnlyData(obj, data, list, size); ObjGen_DeclareReadOnlyData(obj, data, list, size);

View File

@ -1709,7 +1709,7 @@ static Boolean CInline_InlineFunctionCheck(ENode *expr) {
(object->datatype == DFUNC || (object->datatype == DVFUNC && (expr->flags & ENODE_FLAG_80))) (object->datatype == DFUNC || (object->datatype == DVFUNC && (expr->flags & ENODE_FLAG_80)))
) )
{ {
if (copts.always_inline) if (copts.alwaysinline)
return 1; return 1;
if (copts.inline_bottom_up) { if (copts.inline_bottom_up) {
@ -2809,7 +2809,7 @@ static void CInline_ExportCheck(ENode *expr) {
expr = expr->data.funccall.funcref; expr = expr->data.funccall.funcref;
if ( if (
copts.warn_notinlined && copts.warn_notinlined &&
!copts.dont_inline && !copts.dontinline &&
ENODE_IS(expr, EOBJREF) && ENODE_IS(expr, EOBJREF) &&
(expr->data.objref->qual & Q_INLINE) && (expr->data.objref->qual & Q_INLINE) &&
expr->data.objref->datatype != DINLINEFUNC && expr->data.objref->datatype != DINLINEFUNC &&
@ -2853,10 +2853,10 @@ static void CInline_ExportCheck(ENode *expr) {
static void CInline_Expand(Statement *stmt) { static void CInline_Expand(Statement *stmt) {
Statement *scan; Statement *scan;
if (!copts.dont_inline && copts.inlinelevel >= 0) { if (!copts.dontinline && copts.inlinelevel >= 0) {
if (copts.inline_bottom_up) { if (copts.inline_bottom_up) {
inline_max_size = copts.inline_max_size; inline_max_size = copts.inlinemaxsize;
while (inline_max_size > 1 && EstimateExpandedSizeOfFunction(stmt) > copts.inline_max_total_size) while (inline_max_size > 1 && EstimateExpandedSizeOfFunction(stmt) > copts.inlinemaxtotalsize)
inline_max_size >>= 1; inline_max_size >>= 1;
} }
@ -2891,7 +2891,7 @@ static void CInline_Expand(Statement *stmt) {
if (!copts.inline_bottom_up && !any_inline_expanded) if (!copts.inline_bottom_up && !any_inline_expanded)
break; break;
if (!copts.always_inline || copts.inline_bottom_up) { if (!copts.alwaysinline || copts.inline_bottom_up) {
if (copts.inlinelevel == 0) { if (copts.inlinelevel == 0) {
if (copts.inline_bottom_up) { if (copts.inline_bottom_up) {
if ((cinline_level + 1) >= 8) if ((cinline_level + 1) >= 8)
@ -3150,7 +3150,7 @@ void CInline_PackIFunctionData(CI_FuncData *funcdata, Statement *stmt, Object *o
funcdata->can_inline = CInline_CanInline(object, stmt->next); funcdata->can_inline = CInline_CanInline(object, stmt->next);
if (copts.isGeneratingDebugInfo) { if (copts.filesyminfo) {
funcdata->fileoffset = cparser_fileoffset; funcdata->fileoffset = cparser_fileoffset;
funcdata->fileoffset.is_inline = 1; funcdata->fileoffset.is_inline = 1;
funcdata->symdecloffset = symdecloffset; funcdata->symdecloffset = symdecloffset;
@ -3415,28 +3415,28 @@ static void CInline_GenIFunctionCode(Object *object, CI_FuncData *func, UInt8 un
CScopeSave saveScope; CScopeSave saveScope;
Statement firstStmt; Statement firstStmt;
if (cparamblkptr->isPrecompiling != 1 && func) { if (cparamblkptr->precompile != 1 && func) {
ObjGen_SetupSym(); ObjGen_SetupSym();
CScope_SetFunctionScope(object, &saveScope); CScope_SetFunctionScope(object, &saveScope);
CFunc_FuncGenSetup(&firstStmt, object); CFunc_FuncGenSetup(&firstStmt, object);
CInline_UnpackIFunctionData(object, func, &firstStmt); CInline_UnpackIFunctionData(object, func, &firstStmt);
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
if (copts.nosyminline || (!symdecloffset && !symdeclend)) if (copts.nosyminline || (!symdecloffset && !symdeclend))
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
expanding_function = object; expanding_function = object;
recursive_inline = 0; recursive_inline = 0;
CInline_Expand(&firstStmt); CInline_Expand(&firstStmt);
if (!anyerrors) { if (!anyerrors) {
if (copts.isGeneratingDebugInfo) if (copts.filesyminfo)
CPrep_SetSourceFile(&cparser_fileoffset); CPrep_SetSourceFile(&cparser_fileoffset);
CodeGen_Generator(&firstStmt, object, unk, 0); CodeGen_Generator(&firstStmt, object, unk, 0);
} }
CScope_RestoreScope(&saveScope); CScope_RestoreScope(&saveScope);
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
} }
} }
@ -3902,8 +3902,8 @@ void CInline_GenFunc(Statement *stmt, Object *object, UInt8 unk) {
flag30 = 0; flag30 = 0;
if (!(object->qual & Q_INLINE)) { if (!(object->qual & Q_INLINE)) {
if ( if (
copts.autoinline && copts.auto_inline &&
!copts.dont_inline && !copts.dontinline &&
CInline_CanInline(object, stmt->next) && CInline_CanInline(object, stmt->next) &&
CInline_IsSmallFunction(object, stmt->next) CInline_IsSmallFunction(object, stmt->next)
) )
@ -3962,7 +3962,7 @@ void CInline_GenFunc(Statement *stmt, Object *object, UInt8 unk) {
recursive_inline = 0; recursive_inline = 0;
CInline_Expand(stmt); CInline_Expand(stmt);
if (copts.isGeneratingDebugInfo) if (copts.filesyminfo)
CPrep_SetSourceFile(&cparser_fileoffset); CPrep_SetSourceFile(&cparser_fileoffset);
if (!anyerrors) if (!anyerrors)
@ -4175,8 +4175,8 @@ void CInline_Finish(void) {
} while (doMore); } while (doMore);
nspace = CFunc_FuncGenSetup(&firstStmt, NULL); nspace = CFunc_FuncGenSetup(&firstStmt, NULL);
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
init = init_expressions; init = init_expressions;
while (init) { while (init) {
@ -4196,11 +4196,11 @@ void CInline_Finish(void) {
CInline_Expand(&firstStmt); CInline_Expand(&firstStmt);
if (!anyerrors) { if (!anyerrors) {
if (copts.isGeneratingDebugInfo) if (copts.filesyminfo)
CPrep_SetSourceFile(&cparser_fileoffset); CPrep_SetSourceFile(&cparser_fileoffset);
CodeGen_Generator(&firstStmt, NULL, 0, 1); CodeGen_Generator(&firstStmt, NULL, 0, 1);
} }
cscope_current = nspace->parent; cscope_current = nspace->parent;
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
} }

View File

@ -175,12 +175,12 @@ SInt32 CMach_ArgumentAlignment(Type *type) {
UInt8 save_oldalignment; UInt8 save_oldalignment;
SInt32 align; SInt32 align;
save_align_mode = copts.align_mode; save_align_mode = copts.structalignment;
save_oldalignment = copts.oldalignment; save_oldalignment = copts.oldalignment;
copts.align_mode = AlignMode2_PPC; copts.structalignment = AlignMode2_PPC;
copts.oldalignment = 0; copts.oldalignment = 0;
align = CMach_GetQualifiedTypeAlign(type, 0); align = CMach_GetQualifiedTypeAlign(type, 0);
copts.align_mode = save_align_mode; copts.structalignment = save_align_mode;
copts.oldalignment = save_oldalignment; copts.oldalignment = save_oldalignment;
if (type->type == TYPESTRUCT && !TYPE_STRUCT(type)->members && TYPE_STRUCT(type)->align > align) if (type->type == TYPESTRUCT && !TYPE_STRUCT(type)->members && TYPE_STRUCT(type)->align > align)
@ -218,7 +218,7 @@ SInt32 CMach_AllocationAlignment(Type *type, UInt32 qual) {
if (copts.optimizationlevel > 0) { if (copts.optimizationlevel > 0) {
if (type->type == TYPEARRAY || (type->type == TYPESTRUCT && (TYPE_STRUCT(type)->stype < STRUCT_TYPE_4 || TYPE_STRUCT(type)->stype > STRUCT_TYPE_E)) || type->type == TYPECLASS || (type->type == TYPEMEMBERPOINTER && (UInt32) type->size == 12)) { if (type->type == TYPEARRAY || (type->type == TYPESTRUCT && (TYPE_STRUCT(type)->stype < STRUCT_TYPE_4 || TYPE_STRUCT(type)->stype > STRUCT_TYPE_E)) || type->type == TYPECLASS || (type->type == TYPEMEMBERPOINTER && (UInt32) type->size == 12)) {
return (copts.some_alignment > align) ? copts.some_alignment : align; return (copts.min_struct_alignment > align) ? copts.min_struct_alignment : align;
} }
} }
@ -844,7 +844,7 @@ static SInt16 CMach_GetQualifiedStructAlign(const TypeStruct *tstruct, Boolean f
if (tstruct->stype >= STRUCT_TYPE_4 && tstruct->stype <= STRUCT_TYPE_E) if (tstruct->stype >= STRUCT_TYPE_4 && tstruct->stype <= STRUCT_TYPE_E)
return 16; return 16;
switch (copts.align_mode) { switch (copts.structalignment) {
case AlignMode3_1Byte: case AlignMode3_1Byte:
case AlignMode8_Packed: case AlignMode8_Packed:
return 1; return 1;
@ -858,7 +858,7 @@ static SInt16 CMach_GetQualifiedStructAlign(const TypeStruct *tstruct, Boolean f
return 1; return 1;
best = 1; best = 1;
switch (copts.align_mode) { switch (copts.structalignment) {
default: default:
CError_FATAL(1026); CError_FATAL(1026);
case AlignMode4_2Byte: case AlignMode4_2Byte:
@ -928,7 +928,7 @@ static SInt16 CMach_GetQualifiedClassAlign(TypeClass *tclass, Boolean flag) {
SInt32 align; SInt32 align;
Boolean isFirst; Boolean isFirst;
switch (copts.align_mode) { switch (copts.structalignment) {
case AlignMode3_1Byte: case AlignMode3_1Byte:
case AlignMode8_Packed: case AlignMode8_Packed:
return 1; return 1;
@ -940,7 +940,7 @@ static SInt16 CMach_GetQualifiedClassAlign(TypeClass *tclass, Boolean flag) {
if (tclass->size <= 1) if (tclass->size <= 1)
return 1; return 1;
best = 1; best = 1;
switch (copts.align_mode) { switch (copts.structalignment) {
default: default:
CError_FATAL(1149); CError_FATAL(1149);
case AlignMode4_2Byte: case AlignMode4_2Byte:
@ -1011,7 +1011,7 @@ SInt16 CMach_GetClassAlign(TypeClass *tclass) {
} }
static SInt16 CMach_GetWinTypeAlign(Type *type) { static SInt16 CMach_GetWinTypeAlign(Type *type) {
int packoffs = copts.align_mode - 3; int packoffs = copts.structalignment - 3;
SInt32 align = cmach_packsize[packoffs]; SInt32 align = cmach_packsize[packoffs];
if (type->size < align) if (type->size < align)
align = type->size; align = type->size;
@ -1019,7 +1019,7 @@ static SInt16 CMach_GetWinTypeAlign(Type *type) {
} }
static SInt16 CMach_GetWinMinimizeAlign(SInt16 align) { static SInt16 CMach_GetWinMinimizeAlign(SInt16 align) {
int packoffs = copts.align_mode - 3; int packoffs = copts.structalignment - 3;
SInt16 minimum = cmach_packsize[packoffs]; SInt16 minimum = cmach_packsize[packoffs];
if (minimum < align) if (minimum < align)
align = minimum; align = minimum;
@ -1033,7 +1033,7 @@ static SInt16 CMach_GetQualifiedTypeAlign(Type *type, Boolean flag) {
if (type->type == TYPESTRUCT && TYPE_STRUCT(type)->stype >= STRUCT_TYPE_4 && TYPE_STRUCT(type)->stype <= STRUCT_TYPE_E) if (type->type == TYPESTRUCT && TYPE_STRUCT(type)->stype >= STRUCT_TYPE_4 && TYPE_STRUCT(type)->stype <= STRUCT_TYPE_E)
return 16; return 16;
switch (copts.align_mode) { switch (copts.structalignment) {
case AlignMode3_1Byte: case AlignMode3_1Byte:
case AlignMode8_Packed: case AlignMode8_Packed:
return 1; return 1;
@ -1063,13 +1063,13 @@ restart:
return 1; return 1;
if (copts.oldalignment && type->size == 8) if (copts.oldalignment && type->size == 8)
return 8; return 8;
if (copts.align_mode != AlignMode0_Mac68k && type->size >= 4) if (copts.structalignment != AlignMode0_Mac68k && type->size >= 4)
return 4; return 4;
return 2; return 2;
case TYPEFLOAT: case TYPEFLOAT:
if (isWin) if (isWin)
return CMach_GetWinTypeAlign(type); return CMach_GetWinTypeAlign(type);
switch (copts.align_mode) { switch (copts.structalignment) {
case AlignMode0_Mac68k: case AlignMode0_Mac68k:
return 2; return 2;
case AlignMode1_Mac68k4byte: case AlignMode1_Mac68k4byte:
@ -1085,19 +1085,19 @@ restart:
case TYPEPOINTER: case TYPEPOINTER:
if (isWin) if (isWin)
return CMach_GetWinTypeAlign(type); return CMach_GetWinTypeAlign(type);
if (copts.align_mode == AlignMode0_Mac68k) if (copts.structalignment == AlignMode0_Mac68k)
return 2; return 2;
else else
return 4; return 4;
case TYPEARRAY: case TYPEARRAY:
if (copts.align_array_members) { if (copts.alignarraymembers) {
if (isWin) if (isWin)
return CMach_GetWinTypeAlign(type); return CMach_GetWinTypeAlign(type);
if (type->size == 1) if (type->size == 1)
return 1; return 1;
if (copts.align_mode == AlignMode0_Mac68k || type->size <= 2) if (copts.structalignment == AlignMode0_Mac68k || type->size <= 2)
return 2; return 2;
if (copts.align_mode == AlignMode1_Mac68k4byte || type->size < 8) if (copts.structalignment == AlignMode1_Mac68k4byte || type->size < 8)
return 4; return 4;
align = CMach_GetQualifiedTypeAlign(TYPE_POINTER(type)->target, flag); align = CMach_GetQualifiedTypeAlign(TYPE_POINTER(type)->target, flag);
if (align > 4) if (align > 4)
@ -1151,7 +1151,7 @@ static SInt16 CMach_GetMemberAlignment(Type *type, SInt32 var, Boolean flag) {
if (IS_TYPE_VECTOR(type) && align < 16) if (IS_TYPE_VECTOR(type) && align < 16)
align = 16; align = 16;
switch (copts.align_mode) { switch (copts.structalignment) {
case AlignMode8_Packed: case AlignMode8_Packed:
align = 1; align = 1;
break; break;
@ -1238,7 +1238,7 @@ SInt32 CMach_StructLayoutBitfield(TypeBitfield *tbitfield, UInt32 qual) {
required_alignment = 2; required_alignment = 2;
break; break;
case 4: case 4:
if (copts.align_mode != AlignMode0_Mac68k && copts.align_mode != AlignMode4_2Byte) if (copts.structalignment != AlignMode0_Mac68k && copts.structalignment != AlignMode4_2Byte)
required_alignment = 4; required_alignment = 4;
else else
required_alignment = 2; required_alignment = 2;
@ -1249,7 +1249,7 @@ SInt32 CMach_StructLayoutBitfield(TypeBitfield *tbitfield, UInt32 qual) {
CError_FATAL(1620); CError_FATAL(1620);
} }
switch (copts.align_mode) { switch (copts.structalignment) {
case AlignMode3_1Byte: case AlignMode3_1Byte:
case AlignMode8_Packed: case AlignMode8_Packed:
required_alignment = 0; required_alignment = 0;
@ -1322,7 +1322,7 @@ Boolean CMach_PassResultInHiddenArg(Type *type) {
} }
char *CMach_GetCPU(void) { char *CMach_GetCPU(void) {
switch (copts.cpu) { switch (copts.processor) {
case CPU_PPC401: return "__PPC401__"; case CPU_PPC401: return "__PPC401__";
case CPU_PPC403: return "__PPC403__"; case CPU_PPC403: return "__PPC403__";
case CPU_PPC505: return "__PPC505__"; case CPU_PPC505: return "__PPC505__";

View File

@ -1449,7 +1449,7 @@ static void CObjC_EncodeType(Type *type, UInt32 qual, Boolean flag) {
AppendGListByte(&name_mangle_list, 'C'); AppendGListByte(&name_mangle_list, 'C');
return; return;
case IT_CHAR: case IT_CHAR:
AppendGListByte(&name_mangle_list, copts.unsignedchars ? 'C' : 'c'); AppendGListByte(&name_mangle_list, copts.unsigned_char ? 'C' : 'c');
return; return;
case IT_UCHAR: case IT_UCHAR:
AppendGListByte(&name_mangle_list, 'C'); AppendGListByte(&name_mangle_list, 'C');

View File

@ -186,7 +186,7 @@ static short cse_cost(COptCSE *cse) {
return cse_objectcost(cse->expr->data.monadic->data.objref); return cse_objectcost(cse->expr->data.monadic->data.objref);
cost = 1; cost = 1;
if (!copts.optimize_for_size) { if (!copts.optimizesize) {
if (ENODE_IS3(cse->expr, EMUL, EDIV, EMODULO)) if (ENODE_IS3(cse->expr, EMUL, EDIV, EMODULO))
cost = 2; cost = 2;
} }
@ -1195,7 +1195,7 @@ static void BasicBlockAnalyze(Statement *stmt) {
SwitchCase *swcase; SwitchCase *swcase;
setbytes = 2 * ((localcount - 1) / 16) + 2; setbytes = 2 * ((localcount - 1) / 16) + 2;
if (copts.global_optimizer) { if (copts.globaloptimizer) {
setbytes += 32; setbytes += 32;
extravars = 0; extravars = 0;
} }
@ -1561,8 +1561,8 @@ void SetVarUsage(Object *obj, Boolean noregister) {
if (obj->datatype == DLOCAL || obj->datatype == DNONLAZYPTR) { if (obj->datatype == DLOCAL || obj->datatype == DNONLAZYPTR) {
vi = obj->u.var.info; vi = obj->u.var.info;
vi->used = 1; vi->used = 1;
if (!copts.global_optimizer) { if (!copts.globaloptimizer) {
if (copts.optimize_for_size) if (copts.optimizesize)
vi->usage++; vi->usage++;
else else
vi->usage += curstmtvalue; vi->usage += curstmtvalue;
@ -1817,7 +1817,7 @@ void COpt_SimpleOptimizer(Object *obj, Statement *stmt) {
Statement *COpt_Optimizer(Object *obj, Statement *stmt) { Statement *COpt_Optimizer(Object *obj, Statement *stmt) {
copt_isleaffunction = 1; copt_isleaffunction = 1;
if (copts.global_optimizer) if (copts.globaloptimizer)
stmt = IRO_Optimizer(obj, stmt); stmt = IRO_Optimizer(obj, stmt);
static_for_inlines = 0; static_for_inlines = 0;

View File

@ -72,7 +72,7 @@ Object *Xthrw_func;
Object *Xicth_func; Object *Xicth_func;
Object *Xecth_func; Object *Xecth_func;
Object *Xunex_func; Object *Xunex_func;
COpts copts; CompilerLinkerOptions copts;
GList name_mangle_list; GList name_mangle_list;
HashNameNode *no_name_node; HashNameNode *no_name_node;
HashNameNode *temp_argument_name; HashNameNode *temp_argument_name;
@ -375,7 +375,7 @@ void CParser_Setup(void) {
CParser_SetUniqueID(1); CParser_SetUniqueID(1);
dont_set_references = 0; dont_set_references = 0;
copts.side_effects = 1; copts.sideeffects = 1;
cparser_classactions = NULL; cparser_classactions = NULL;
name_obj_check = NULL; name_obj_check = NULL;
callbackactions = NULL; callbackactions = NULL;
@ -603,7 +603,7 @@ HashNameNode *CParser_AppendUniqueNameFile(char *prefix) {
i++; i++;
} }
COS_FileGetFSSpecInfo(&cparamblkptr->mainFileSpec, NULL, NULL, filename); COS_FileGetFSSpecInfo(&cparamblkptr->sourcefile, NULL, NULL, filename);
src = (char *) &filename[1]; src = (char *) &filename[1];
len = filename[0]; len = filename[0];
for (j = 0; j < len && i < 255; j++, i++) { for (j = 0; j < len && i < 255; j++, i++) {
@ -630,7 +630,7 @@ static HashNameNode *CParser_GetUnnamedNameSpaceName(void) {
strcpy(buf, "@unnamed@"); strcpy(buf, "@unnamed@");
dst = buf + strlen(buf); dst = buf + strlen(buf);
COS_FileGetFSSpecInfo(&cparamblkptr->mainFileSpec, NULL, NULL, filename); COS_FileGetFSSpecInfo(&cparamblkptr->sourcefile, NULL, NULL, filename);
src = (char *) &filename[1]; src = (char *) &filename[1];
len = filename[0]; len = filename[0];
for (i = 0; i < len && dst < &buf[254]; i++) { for (i = 0; i < len && dst < &buf[254]; i++) {
@ -657,18 +657,18 @@ static void CParser_SetCFMFlags(Object *object, DeclInfo *declinfo) {
object->flags |= declinfo->exportflags; object->flags |= declinfo->exportflags;
if (object->datatype == DDATA) { if (object->datatype == DDATA) {
if (copts.export) if (copts.cfm_export)
object->flags |= OBJECT_FLAGS_40; object->flags |= OBJECT_FLAGS_40;
if (copts.internal) if (copts.cfm_internal)
object->flags |= OBJECT_FLAGS_10; object->flags |= OBJECT_FLAGS_10;
} else if (copts.internal) { } else if (copts.cfm_internal) {
object->flags |= OBJECT_FLAGS_10; object->flags |= OBJECT_FLAGS_10;
} else { } else {
if (copts.import) if (copts.cfm_import)
object->flags |= OBJECT_FLAGS_20; object->flags |= OBJECT_FLAGS_20;
if (copts.export) if (copts.cfm_export)
object->flags |= OBJECT_FLAGS_40; object->flags |= OBJECT_FLAGS_40;
if (copts.lib_export) if (copts.cfm_lib_export)
object->flags |= OBJECT_FLAGS_20 | OBJECT_FLAGS_40; object->flags |= OBJECT_FLAGS_20 | OBJECT_FLAGS_40;
} }
} }
@ -1350,14 +1350,14 @@ Boolean is_unsigned(Type *type) {
type = TYPE_ENUM(type)->enumtype; type = TYPE_ENUM(type)->enumtype;
if ( if (
(type == TYPE(&stunsignedchar)) || (type == TYPE(&stunsignedchar)) ||
(type == TYPE(&stunsignedshort)) || (type == TYPE(&stunsignedshort)) ||
(type == TYPE(&stunsignedint)) || (type == TYPE(&stunsignedint)) ||
(type == TYPE(&stunsignedlong)) || (type == TYPE(&stunsignedlong)) ||
(type == TYPE(&stunsignedlonglong)) || (type == TYPE(&stunsignedlonglong)) ||
(type == TYPE(&stbool)) || (type == TYPE(&stbool)) ||
(copts.unsignedchars && (type == TYPE(&stchar))) || (copts.unsigned_char && (type == TYPE(&stchar))) ||
(type->type == TYPEPOINTER)) (type->type == TYPEPOINTER))
return 1; return 1;
return 0; return 0;
@ -3458,7 +3458,7 @@ void cparser(void) {
CParser_ParseDeclaration(&di); CParser_ParseDeclaration(&di);
} while (tk && (tk = lex())); } while (tk && (tk = lex()));
} else { } else {
if (!copts.cplusplus && copts.ANSI_strict) if (!copts.cplusplus && copts.ANSIstrict)
CError_Error(CErrorStr102); CError_Error(CErrorStr102);
} }
@ -3466,13 +3466,13 @@ void cparser(void) {
copts.defer_codegen = 0; copts.defer_codegen = 0;
CParser_GlobalCleanup(1); CParser_GlobalCleanup(1);
if (cparamblkptr->isPrecompiling != 1) { if (cparamblkptr->precompile != 1) {
CInline_Finish(); CInline_Finish();
CParser_GlobalCleanup(1); CParser_GlobalCleanup(1);
} }
CClass_GenThunks(); CClass_GenThunks();
if (cparamblkptr->isPrecompiling != 1) if (cparamblkptr->precompile != 1)
CObjC_GenerateModule(); CObjC_GenerateModule();
CSOM_Cleanup(); CSOM_Cleanup();

View File

@ -3087,7 +3087,7 @@ static OSErr CPrec_WriteFile(void) {
cprec_header->magic = 0xBEEFFACE; cprec_header->magic = 0xBEEFFACE;
cprec_header->version = 1047; cprec_header->version = 1047;
cprec_header->target = 2; cprec_header->target = 2;
cprec_header->check_header_flags = copts.check_header_flags; cprec_header->check_header_flags = copts.checkprecompflags;
cprec_header->cplusplus = copts.cplusplus; cprec_header->cplusplus = copts.cplusplus;
cprec_header->uniqueID = CParser_GetUniqueID(); cprec_header->uniqueID = CParser_GetUniqueID();
cprec_header->cobjc_selrefcount = cobjc_selrefcount; cprec_header->cobjc_selrefcount = cobjc_selrefcount;
@ -3158,10 +3158,10 @@ void PrecompilerWrite(void) {
char str[128]; char str[128];
FSSpec spec; FSSpec spec;
spec = cparamblkptr->mainFileSpec; spec = cparamblkptr->sourcefile;
if (CWGetPrecompiledHeaderSpec(cparamblkptr->context, &spec, precomp_target_str) == cwNoErr) { if (CWGetPrecompiledHeaderSpec(cparamblkptr->context, &spec, precomp_target_str) == cwNoErr) {
strindex = 3; strindex = 3;
err = COS_FileNew(&spec, &cprec_refnum, copts.pchCreator, copts.pchType); err = COS_FileNew(&spec, &cprec_refnum, copts.appltype, copts.headtype);
if (err == noErr) { if (err == noErr) {
strindex = 4; strindex = 4;
err = CPrec_WriteFile(); err = CPrec_WriteFile();
@ -3433,7 +3433,7 @@ void PrecompilerRead(short refnum, void *buffer) {
if (cprec_header->target != 2) if (cprec_header->target != 2)
CError_ErrorTerm(CErrorStr223); CError_ErrorTerm(CErrorStr223);
copts.check_header_flags = cprec_header->check_header_flags; copts.checkprecompflags = cprec_header->check_header_flags;
CPrec_ReadRawBuffer(); CPrec_ReadRawBuffer();
CPrec_RelocateRawBuffer(); CPrec_RelocateRawBuffer();
@ -3477,6 +3477,6 @@ void PrecompilerRead(short refnum, void *buffer) {
CPrep_InsertSpecialMacros(); CPrep_InsertSpecialMacros();
if (cparamblkptr->isPrecompiling != 1) if (cparamblkptr->precompile != 1)
CPrec_DefineStaticData(); CPrec_DefineStaticData();
} }

View File

@ -397,7 +397,7 @@ ENode *CRTTI_ParseTypeID(void) {
Type *typeinfoType; Type *typeinfoType;
UInt32 qual; UInt32 qual;
if (!copts.useRTTI) if (!copts.RTTI)
CError_Warning(CErrorStr257); CError_Warning(CErrorStr257);
typeinfoType = CRTTI_FindTypeInfoType(); typeinfoType = CRTTI_FindTypeInfoType();
@ -661,7 +661,7 @@ static ENode *CRTTI_UniversalCast(ENode *expr, Type *type, UInt32 qual, UInt8 mo
} }
if (isSimpleCast) { if (isSimpleCast) {
if (needsTypcon && ENODE_IS(expr, EINDIRECT) && (copts.pointercast_lvalue || !copts.ANSI_strict)) if (needsTypcon && ENODE_IS(expr, EINDIRECT) && (copts.pointercast_lvalue || !copts.ANSIstrict))
expr = makemonadicnode(expr, ETYPCON); expr = makemonadicnode(expr, ETYPCON);
expr->rtype = type; expr->rtype = type;
@ -687,7 +687,7 @@ ENode *CRTTI_Parse_dynamic_cast(void) {
if (!expr) if (!expr)
return nullnode(); return nullnode();
if (!copts.useRTTI) if (!copts.RTTI)
CError_Warning(CErrorStr257); CError_Warning(CErrorStr257);
CRTTI_ConstCastCheck(expr->rtype, expr->flags, di.thetype, di.qual); CRTTI_ConstCastCheck(expr->rtype, expr->flags, di.thetype, di.qual);

View File

@ -165,7 +165,7 @@ void CSOM_Setup(Boolean flag) {
void CSOM_Cleanup(void) { void CSOM_Cleanup(void) {
CSOMStub *stub; CSOMStub *stub;
if (cparamblkptr->isPrecompiling != 1) { if (cparamblkptr->precompile != 1) {
for (stub = csom_stubs; stub; stub = stub->next) { for (stub = csom_stubs; stub; stub = stub->next) {
switch (stub->x10) { switch (stub->x10) {
case 0: case 0:
@ -1604,7 +1604,7 @@ ENode *CSOM_New(TypeClass *tclass) {
} }
} }
if (!copts.som_env_check || !copts.som_call_opt) { if (!copts.som_env_check || !copts.som_call_optimize) {
newFunc = CSOM_FindRTFunc("somNewObjectInstance", "ppll"); newFunc = CSOM_FindRTFunc("somNewObjectInstance", "ppll");
if (!newFunc) if (!newFunc)
return nullnode(); return nullnode();
@ -1621,7 +1621,7 @@ ENode *CSOM_New(TypeClass *tclass) {
); );
expr->rtype = CDecl_NewPointerType(TYPE(tclass)); expr->rtype = CDecl_NewPointerType(TYPE(tclass));
if (copts.som_env_check && !copts.som_call_opt) { if (copts.som_env_check && !copts.som_call_optimize) {
ENode *tempExpr; ENode *tempExpr;
ENode *checkExpr; ENode *checkExpr;
ENode *notExpr; ENode *notExpr;
@ -1830,7 +1830,7 @@ ENode *CSOM_EnvCheck(ENode *funccall, ENodeList *checkArg) {
*expr27 = *arg2->node; *expr27 = *arg2->node;
} }
if (copts.som_call_opt) { if (copts.som_call_optimize) {
funccall = makediadicnode(funccall, funccallexpr(rt_som_check, expr27, NULL, NULL, NULL), ECOMMA); funccall = makediadicnode(funccall, funccallexpr(rt_som_check, expr27, NULL, NULL, NULL), ECOMMA);
if (expr26) if (expr26)
funccall = makediadicnode(funccall, expr26, ECOMMA); funccall = makediadicnode(funccall, expr26, ECOMMA);
@ -2059,7 +2059,7 @@ ENode *CSOM_MethodAccess(BClassList *path, Object *func, Boolean flag) {
expr->flags |= ENODE_FLAG_10; expr->flags |= ENODE_FLAG_10;
} else { } else {
CSOM_FindIntroClassOffset(tclass2, func, &tclass3, &offset); CSOM_FindIntroClassOffset(tclass2, func, &tclass3, &offset);
if (copts.som_call_opt && CSOM_CanUseGlueCall(TYPE_FUNC(func->type))) if (copts.som_call_optimize && CSOM_CanUseGlueCall(TYPE_FUNC(func->type)))
return CSOM_SOMGlueCall(tclass3, offset, func); return CSOM_SOMGlueCall(tclass3, offset, func);
expr = create_objectrefnode(tclass3->sominfo->classdataobject); expr = create_objectrefnode(tclass3->sominfo->classdataobject);

View File

@ -281,7 +281,7 @@ TemplateMember *CTemplClass_DefineMember(TemplClass *tmclass, Object *object, Fi
static void CTemplClass_ParseBody(TemplClass *templ, short mode, SInt32 *offset) { static void CTemplClass_ParseBody(TemplClass *templ, short mode, SInt32 *offset) {
DeclInfo di; DeclInfo di;
templ->align = copts.align_mode; templ->align = copts.structalignment;
memclrw(&di, sizeof(di)); memclrw(&di, sizeof(di));
di.file = CPrep_BrowserCurrentFile(); di.file = CPrep_BrowserCurrentFile();
@ -794,7 +794,7 @@ TemplClass *CTemplClass_DefineNestedClass(TemplClass *parent, HashNameNode *name
CDecl_DefineClass(parent->theclass.nspace, name, TYPE_CLASS(templ), mode, 0, 1); CDecl_DefineClass(parent->theclass.nspace, name, TYPE_CLASS(templ), mode, 0, 1);
templ->theclass.flags = CLASS_FLAGS_100; templ->theclass.flags = CLASS_FLAGS_100;
templ->align = copts.align_mode; templ->align = copts.structalignment;
action = galloc(sizeof(TemplateAction)); action = galloc(sizeof(TemplateAction));
memclrw(action, sizeof(TemplateAction)); memclrw(action, sizeof(TemplateAction));
@ -1614,10 +1614,10 @@ Boolean CTempl_InstantiateTemplateClass(TypeClass *tclass) {
declE.x8 = templ->lex_order_count; declE.x8 = templ->lex_order_count;
declE.xC = templ->flags & TEMPLCLASS_FLAGS_1; declE.xC = templ->flags & TEMPLCLASS_FLAGS_1;
saveAlignMode = copts.align_mode; saveAlignMode = copts.structalignment;
copts.align_mode = templ->align; copts.structalignment = templ->align;
CDecl_CompleteClass(&declE, TYPE_CLASS(inst)); CDecl_CompleteClass(&declE, TYPE_CLASS(inst));
copts.align_mode = saveAlignMode; copts.structalignment = saveAlignMode;
if (templ->theclass.align > inst->theclass.align) { if (templ->theclass.align > inst->theclass.align) {
inst->theclass.align = templ->theclass.align; inst->theclass.align = templ->theclass.align;

View File

@ -953,7 +953,7 @@ static void CTempl_ParseTemplateFunction(TemplateFunction *templ, TypeClass *tcl
templ->srcfile = file; templ->srcfile = file;
templ->startoffset = *startOffset; templ->startoffset = *startOffset;
templ->endoffset = offset + 1; templ->endoffset = offset + 1;
if (cparamblkptr->browseOptions.recordTemplates && file->recordbrowseinfo) if (cparamblkptr->browseoptions.recordTemplates && file->recordbrowseinfo)
CBrowse_NewTemplateFunc(templ); CBrowse_NewTemplateFunc(templ);
} }
@ -1643,15 +1643,15 @@ Boolean CTempl_GenFuncInstance(TemplateFunction *templ, TemplFuncInstance *inst,
CPrep_StreamInsert(&templ->stream, &streamState); CPrep_StreamInsert(&templ->stream, &streamState);
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
if (copts.nosyminline || !templ->deftoken.tokenfile) if (copts.nosyminline || !templ->deftoken.tokenfile)
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
CError_ASSERT(2112, (tk = lex()) == '{' || tk == ':' || tk == TK_TRY); CError_ASSERT(2112, (tk = lex()) == '{' || tk == ':' || tk == TK_TRY);
symdecltoken = *CPrep_CurStreamElement(); symdecltoken = *CPrep_CurStreamElement();
if (copts.isGeneratingDebugInfo) { if (copts.filesyminfo) {
CPrep_NewFileOffsetInfo(&cparser_fileoffset, &templ->deftoken); CPrep_NewFileOffsetInfo(&cparser_fileoffset, &templ->deftoken);
symdecloffset = cparser_fileoffset.tokenline; symdecloffset = cparser_fileoffset.tokenline;
} }
@ -1680,7 +1680,7 @@ Boolean CTempl_GenFuncInstance(TemplateFunction *templ, TemplFuncInstance *inst,
CTemplTool_PopInstance(&stack); CTemplTool_PopInstance(&stack);
CPrep_StreamRemove(&templ->stream, &streamState); CPrep_StreamRemove(&templ->stream, &streamState);
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
if (di.file->recordbrowseinfo) if (di.file->recordbrowseinfo)
CBrowse_NewFunction(inst->object, di.file, di.file2, di.x60, templ->endoffset); CBrowse_NewFunction(inst->object, di.file, di.file2, di.x60, templ->endoffset);
@ -1713,8 +1713,8 @@ void CTempl_InstantiateMember(TemplClass *templ, TemplClassInst *inst, TemplateM
symdecltoken = *CPrep_CurStreamElement(); symdecltoken = *CPrep_CurStreamElement();
saveDebugInfo = copts.isGeneratingDebugInfo; saveDebugInfo = copts.filesyminfo;
if (copts.isGeneratingDebugInfo) { if (copts.filesyminfo) {
CPrep_NewFileOffsetInfo(&cparser_fileoffset, &symdecltoken); CPrep_NewFileOffsetInfo(&cparser_fileoffset, &symdecltoken);
symdecloffset = cparser_fileoffset.tokenline; symdecloffset = cparser_fileoffset.tokenline;
} }
@ -1746,7 +1746,7 @@ void CTempl_InstantiateMember(TemplClass *templ, TemplClassInst *inst, TemplateM
CTemplTool_PopInstance(&stack); CTemplTool_PopInstance(&stack);
CTemplTool_RemoveTemplateArgumentNameSpace(nspace, inst, &savedScope); CTemplTool_RemoveTemplateArgumentNameSpace(nspace, inst, &savedScope);
CPrep_StreamRemove(&tmemb->stream, &savedState); CPrep_StreamRemove(&tmemb->stream, &savedState);
copts.isGeneratingDebugInfo = saveDebugInfo; copts.filesyminfo = saveDebugInfo;
gForceSourceLoc = saveSourceLoc; gForceSourceLoc = saveSourceLoc;
} }

View File

@ -217,7 +217,7 @@ static void retain_argument_register(Object *obj, short reg) {
if (type->size <= 4) { if (type->size <= 4) {
retain_register(obj, RegClass_GPR, reg); retain_register(obj, RegClass_GPR, reg);
} else if (reg < GPRLimit) { } else if (reg < GPRLimit) {
if (copts.little_endian) if (copts.littleendian)
retain_GPR_pair(obj, reg, reg + 1); retain_GPR_pair(obj, reg, reg + 1);
else else
retain_GPR_pair(obj, reg + 1, reg); retain_GPR_pair(obj, reg + 1, reg);
@ -519,7 +519,7 @@ void move_assigned_argument(Object *obj, short reg) {
if (reg) { if (reg) {
if (vi->reg) { if (vi->reg) {
if (TYPE_IS_8BYTES(type)) { if (TYPE_IS_8BYTES(type)) {
if (copts.little_endian) { if (copts.littleendian) {
if (vi->reg != reg) if (vi->reg != reg)
emitpcode(PC_MR, vi->reg, reg); emitpcode(PC_MR, vi->reg, reg);
if (reg < GPRLimit) { if (reg < GPRLimit) {
@ -872,7 +872,7 @@ void CodeGen_Generator(Statement *statements, Object *func, UInt8 mysteryFlag, B
setheaperror(CodeGen_heaperror); setheaperror(CodeGen_heaperror);
} }
if (cparamblkptr->isPrecompiling == 1) if (cparamblkptr->precompile == 1)
CError_Error(CErrorStr180); CError_Error(CErrorStr180);
if (!func) { if (!func) {
@ -928,7 +928,7 @@ void CodeGen_Generator(Statement *statements, Object *func, UInt8 mysteryFlag, B
allocate_locals(); allocate_locals();
process_arguments(move_assigned_argument, has_varargs); process_arguments(move_assigned_argument, has_varargs);
if (copts.schedule_mode || copts.altivec_model) if (copts.schedule_factor || copts.altivec_model)
branch_label(makepclabel()); branch_label(makepclabel());
load_TOC_pointers(); load_TOC_pointers();
@ -1032,7 +1032,7 @@ void CodeGen_Generator(Statement *statements, Object *func, UInt8 mysteryFlag, B
else else
pclistblocks(CMangler_GetLinkName(func)->name, "INITIAL CODE"); pclistblocks(CMangler_GetLinkName(func)->name, "INITIAL CODE");
if (copts.schedule_mode == 2) { if (copts.schedule_factor == 2) {
if (copts.peephole) if (copts.peephole)
peepholemergeblocks(func, 0); peepholemergeblocks(func, 0);
if (copts.debuglisting) if (copts.debuglisting)
@ -1045,7 +1045,7 @@ void CodeGen_Generator(Statement *statements, Object *func, UInt8 mysteryFlag, B
} }
if (copts.peephole) { if (copts.peephole) {
if (copts.schedule_mode == 0 && copts.optimizationlevel > 1) if (copts.schedule_factor == 0 && copts.optimizationlevel > 1)
peepholemergeblocks(func, 0); peepholemergeblocks(func, 0);
peepholeoptimizeforward(func); peepholeoptimizeforward(func);
if (copts.debuglisting) if (copts.debuglisting)
@ -1073,7 +1073,7 @@ void CodeGen_Generator(Statement *statements, Object *func, UInt8 mysteryFlag, B
pclistblocks(CMangler_GetLinkName(func)->name, "AFTER GENERATING EPILOGUE, PROLOGUE"); pclistblocks(CMangler_GetLinkName(func)->name, "AFTER GENERATING EPILOGUE, PROLOGUE");
if (copts.peephole) { if (copts.peephole) {
if (copts.schedule_mode) { if (copts.schedule_factor) {
peepholemergeblocks(func, 1); peepholemergeblocks(func, 1);
if (copts.debuglisting) if (copts.debuglisting)
pclistblocks(CMangler_GetLinkName(func)->name, "AFTER MERGING EPILOGUE, PROLOGUE"); pclistblocks(CMangler_GetLinkName(func)->name, "AFTER MERGING EPILOGUE, PROLOGUE");
@ -1083,7 +1083,7 @@ void CodeGen_Generator(Statement *statements, Object *func, UInt8 mysteryFlag, B
pclistblocks(CMangler_GetLinkName(func)->name, "AFTER PEEPHOLE OPTIMIZATION"); pclistblocks(CMangler_GetLinkName(func)->name, "AFTER PEEPHOLE OPTIMIZATION");
} }
if (copts.schedule_mode) { if (copts.schedule_factor) {
if (copts.debuglisting) if (copts.debuglisting)
pclistblocks_start_scheduler(CMangler_GetLinkName(func)->name, "BEFORE SCHEDULING"); pclistblocks_start_scheduler(CMangler_GetLinkName(func)->name, "BEFORE SCHEDULING");
scheduleinstructions(1); scheduleinstructions(1);
@ -1125,7 +1125,7 @@ void CodeGen_GenVDispatchThunk(Object *thunkobj, Object *obj, SInt32 a, SInt32 b
Boolean save_traceback; Boolean save_traceback;
char reg; char reg;
save_debug = copts.isGeneratingDebugInfo; save_debug = copts.filesyminfo;
save_peephole = copts.peephole; save_peephole = copts.peephole;
save_traceback = copts.traceback; save_traceback = copts.traceback;
@ -1161,11 +1161,11 @@ void CodeGen_GenVDispatchThunk(Object *thunkobj, Object *obj, SInt32 a, SInt32 b
emitpcode(PC_B, 0, obj); emitpcode(PC_B, 0, obj);
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
copts.peephole = 0; copts.peephole = 0;
copts.traceback = 0; copts.traceback = 0;
assemblefunction(thunkobj, NULL); assemblefunction(thunkobj, NULL);
copts.isGeneratingDebugInfo = save_debug; copts.filesyminfo = save_debug;
copts.peephole = save_peephole; copts.peephole = save_peephole;
copts.traceback = save_traceback; copts.traceback = save_traceback;
} }
@ -1231,7 +1231,7 @@ void CodeGen_SOMStub(Object *a, Object *b, Object *c, SInt32 offset) {
Object *tmp; Object *tmp;
Operand opnd; Operand opnd;
save_debug = copts.isGeneratingDebugInfo; save_debug = copts.filesyminfo;
save_peephole = copts.peephole; save_peephole = copts.peephole;
save_traceback = copts.traceback; save_traceback = copts.traceback;
@ -1264,11 +1264,11 @@ void CodeGen_SOMStub(Object *a, Object *b, Object *c, SInt32 offset) {
load_store_register(PC_LWZ, 12, 12, NULL, (short) offset); load_store_register(PC_LWZ, 12, 12, NULL, (short) offset);
emitpcode(PC_B, 0, b); emitpcode(PC_B, 0, b);
copts.isGeneratingDebugInfo = 0; copts.filesyminfo = 0;
copts.peephole = 0; copts.peephole = 0;
copts.traceback = 0; copts.traceback = 0;
assemblefunction(a, NULL); assemblefunction(a, NULL);
copts.isGeneratingDebugInfo = save_debug; copts.filesyminfo = save_debug;
copts.peephole = save_peephole; copts.peephole = save_peephole;
copts.traceback = save_traceback; copts.traceback = save_traceback;
} }
@ -1295,7 +1295,7 @@ static void CodeGen_EOLCheck(void) {
static void schedule_for(int what) { static void schedule_for(int what) {
CPrep_PushOption(OPT_OFFSET(schedule_cpu), what); CPrep_PushOption(OPT_OFFSET(schedule_cpu), what);
if (copts.schedule_mode == 0) if (copts.schedule_factor == 0)
CPrep_PushOption(OPT_OFFSET(schedule_mode), 2); CPrep_PushOption(OPT_OFFSET(schedule_mode), 2);
} }
@ -1467,12 +1467,12 @@ void CodeGen_ParsePragma(HashNameNode *name) {
return; return;
} }
if (!strcmp(name->name, "ppc_unroll_speculative")) { if (!strcmp(name->name, "unroll_speculative")) {
if (plex() == TK_IDENTIFIER) { if (plex() == TK_IDENTIFIER) {
if (!strcmp(tkidentifier->name, "off")) { if (!strcmp(tkidentifier->name, "off")) {
copts.ppc_unroll_speculative = 0; copts.unroll_speculative = 0;
} else if (!strcmp(tkidentifier->name, "on")) { } else if (!strcmp(tkidentifier->name, "on")) {
copts.ppc_unroll_speculative = 1; copts.unroll_speculative = 1;
} else { } else {
CError_Error(CErrorStr186); CError_Error(CErrorStr186);
return; return;
@ -1484,19 +1484,19 @@ void CodeGen_ParsePragma(HashNameNode *name) {
return; return;
} }
if (!strcmp(name->name, "ppc_unroll_instructions_limit")) { if (!strcmp(name->name, "unroll_instr_limit")) {
t = plex(); t = plex();
if (t == TK_INTCONST) { if (t == TK_INTCONST) {
copts.ppc_unroll_instructions_limit = CInt64_GetULong(&tkintconst); copts.unroll_instr_limit = CInt64_GetULong(&tkintconst);
if (copts.ppc_unroll_instructions_limit < 0) { if (copts.unroll_instr_limit < 0) {
copts.ppc_unroll_instructions_limit = 0; copts.unroll_instr_limit = 0;
CError_Error(CErrorStr186); CError_Error(CErrorStr186);
} }
} else if (t == TK_IDENTIFIER) { } else if (t == TK_IDENTIFIER) {
if (!strcmp(tkidentifier->name, "off")) { if (!strcmp(tkidentifier->name, "off")) {
copts.ppc_unroll_instructions_limit = 0; copts.unroll_instr_limit = 0;
} else if (!strcmp(tkidentifier->name, "on")) { } else if (!strcmp(tkidentifier->name, "on")) {
copts.ppc_unroll_instructions_limit = 70; copts.unroll_instr_limit = 70;
} else { } else {
CError_Error(CErrorStr186); CError_Error(CErrorStr186);
return; return;
@ -1539,19 +1539,19 @@ void CodeGen_ParsePragma(HashNameNode *name) {
return; return;
} }
if (!strcmp(name->name, "ppc_unroll_factor_limit")) { if (!strcmp(name->name, "unroll_factor_limit")) {
t = plex(); t = plex();
if (t == TK_INTCONST) { if (t == TK_INTCONST) {
copts.ppc_unroll_factor_limit = CInt64_GetULong(&tkintconst); copts.unroll_factor_limit = CInt64_GetULong(&tkintconst);
if (copts.ppc_unroll_factor_limit < 0) { if (copts.unroll_factor_limit < 0) {
copts.ppc_unroll_factor_limit = 0; copts.unroll_factor_limit = 0;
CError_Error(CErrorStr186); CError_Error(CErrorStr186);
} }
} else if (t == TK_IDENTIFIER) { } else if (t == TK_IDENTIFIER) {
if (!strcmp(tkidentifier->name, "off")) { if (!strcmp(tkidentifier->name, "off")) {
copts.ppc_unroll_factor_limit = 0; copts.unroll_factor_limit = 0;
} else if (!strcmp(tkidentifier->name, "on")) { } else if (!strcmp(tkidentifier->name, "on")) {
copts.ppc_unroll_factor_limit = 10; copts.unroll_factor_limit = 10;
} else { } else {
CError_Error(CErrorStr186); CError_Error(CErrorStr186);
return; return;
@ -1637,67 +1637,67 @@ void CodeGen_ParsePragma(HashNameNode *name) {
if (t == TK_INTCONST) { if (t == TK_INTCONST) {
switch (CInt64_GetULong(&tkintconst)) { switch (CInt64_GetULong(&tkintconst)) {
case 401: case 401:
copts.cpu = 0; copts.processor = 0;
break; break;
case 403: case 403:
copts.cpu = 1; copts.processor = 1;
break; break;
case 505: case 505:
copts.cpu = 2; copts.processor = 2;
break; break;
case 509: case 509:
copts.cpu = 3; copts.processor = 3;
break; break;
case 555: case 555:
copts.cpu = 4; copts.processor = 4;
break; break;
case 556: case 556:
copts.cpu = 25; copts.processor = 25;
break; break;
case 565: case 565:
copts.cpu = 26; copts.processor = 26;
break; break;
case 601: case 601:
copts.cpu = 5; copts.processor = 5;
break; break;
case 602: case 602:
copts.cpu = 6; copts.processor = 6;
break; break;
case 8240: case 8240:
copts.cpu = 18; copts.processor = 18;
break; break;
case 8260: case 8260:
copts.cpu = 19; copts.processor = 19;
break; break;
case 603: case 603:
copts.cpu = 7; copts.processor = 7;
break; break;
case 604: case 604:
copts.cpu = 9; copts.processor = 9;
break; break;
case 740: case 740:
copts.cpu = 11; copts.processor = 11;
break; break;
case 750: case 750:
copts.cpu = 12; copts.processor = 12;
break; break;
case 801: case 801:
copts.cpu = 13; copts.processor = 13;
break; break;
case 821: case 821:
copts.cpu = 14; copts.processor = 14;
break; break;
case 823: case 823:
copts.cpu = 15; copts.processor = 15;
break; break;
case 850: case 850:
copts.cpu = 16; copts.processor = 16;
break; break;
case 860: case 860:
copts.cpu = 17; copts.processor = 17;
break; break;
case 7400: case 7400:
copts.cpu = 21; copts.processor = 21;
break; break;
default: default:
PPCError_Warning(208); PPCError_Warning(208);
@ -1706,15 +1706,15 @@ void CodeGen_ParsePragma(HashNameNode *name) {
} }
} else if (t == TK_IDENTIFIER) { } else if (t == TK_IDENTIFIER) {
if (!strcmp(tkidentifier->name, "generic")) if (!strcmp(tkidentifier->name, "generic"))
copts.cpu = 20; copts.processor = 20;
else if (!strcmp(tkidentifier->name, "603e")) else if (!strcmp(tkidentifier->name, "603e"))
copts.cpu = 8; copts.processor = 8;
else if (!strcmp(tkidentifier->name, "604e")) else if (!strcmp(tkidentifier->name, "604e"))
copts.cpu = 10; copts.processor = 10;
else if (!strcmp(tkidentifier->name, "PPC603e")) else if (!strcmp(tkidentifier->name, "PPC603e"))
copts.cpu = 8; copts.processor = 8;
else if (!strcmp(tkidentifier->name, "PPC604e")) else if (!strcmp(tkidentifier->name, "PPC604e"))
copts.cpu = 10; copts.processor = 10;
else else
PPCError_Warning(208); PPCError_Warning(208);
} else { } else {
@ -1889,7 +1889,7 @@ void CodeGen_UpdateObject(Object *object) {
} }
void CodeGen_UpdateBackEndOptions(void) { void CodeGen_UpdateBackEndOptions(void) {
copts.global_optimizer = 1; copts.globaloptimizer = 1;
} }
SInt32 CodeGen_objc_method_self_offset(ObjCMethod *meth) { SInt32 CodeGen_objc_method_self_offset(ObjCMethod *meth) {
@ -2360,10 +2360,10 @@ void CodeGen_InsertSpecialMacros(void) {
if (!copts.codegen_dynamic) if (!copts.codegen_dynamic)
CPrep_InsertSpecialMacro(&dynM, "__STATIC__"); CPrep_InsertSpecialMacro(&dynM, "__STATIC__");
if (copts.oldalignment && copts.align_mode == AlignMode2_PPC) if (copts.oldalignment && copts.structalignment == AlignMode2_PPC)
CPrep_InsertSpecialMacro(&alignM, "__NATURAL_ALIGNMENT__"); CPrep_InsertSpecialMacro(&alignM, "__NATURAL_ALIGNMENT__");
if (!copts.ANSI_strict) if (!copts.ANSIstrict)
CPrep_InsertSpecialMacro(&ppcM, "ppc"); CPrep_InsertSpecialMacro(&ppcM, "ppc");
} }
@ -2397,7 +2397,7 @@ char *CodeGen_ExpandSpecialMacro(Macro *macro) {
if (macro == &_machM) return "1"; if (macro == &_machM) return "1";
if (macro == &archM) return "ppc"; if (macro == &archM) return "ppc";
if (macro == &dynM) return "1"; if (macro == &dynM) return "1";
if (!copts.ANSI_strict && macro == &ppcM) return "1"; if (!copts.ANSIstrict && macro == &ppcM) return "1";
if (macro == &_ppc_M) return "1"; if (macro == &_ppc_M) return "1";
CError_FATAL(4801); CError_FATAL(4801);

View File

@ -26,11 +26,11 @@ void CodeGen_InitBackEndOptions(void) {
CWSecretGetNamedPreferences(cparams.context, "PPC Mach-O Linker", &handle); CWSecretGetNamedPreferences(cparams.context, "PPC Mach-O Linker", &handle);
pmol = *((PMachOLinker *) *handle); pmol = *((PMachOLinker *) *handle);
copts.code_alignment = 16; copts.function_align = 16;
copts.misaligned_mem_access = 1; copts.misaligned_mem_access = 1;
copts.switch_tables = 1; copts.switch_tables = 1;
copts.prepare_compress = 0; copts.prepare_compress = 0;
copts.some_alignment = 4; copts.min_struct_alignment = 4;
copts.altivec_model = 0; copts.altivec_model = 0;
copts.altivec_vrsave = 1; copts.altivec_vrsave = 1;
copts.codegen_pic = pb.pic; copts.codegen_pic = pb.pic;
@ -41,61 +41,61 @@ void CodeGen_InitBackEndOptions(void) {
copts.no_implicit_templates = 0; copts.no_implicit_templates = 0;
copts.absolutepath = pmol.symfullpath; copts.absolutepath = pmol.symfullpath;
copts.x06 = pmol.exports; copts.x06 = pmol.exports;
copts.schedule_mode = 2; copts.schedule_factor = 2;
copts.altivec_model = pb.altivec; copts.altivec_model = pb.altivec;
copts.readonly_strings = pb.readonlystrings; copts.readonly_strings = pb.readonlystrings;
if (pb.schedule) if (pb.schedule)
copts.schedule_mode = 2; copts.schedule_factor = 2;
else else
copts.schedule_mode = 0; copts.schedule_factor = 0;
switch (pb.processor) { switch (pb.processor) {
case 1: case 1:
copts.cpu = CPU_PPC601; copts.processor = CPU_PPC601;
copts.schedule_cpu = 1; copts.scheduling = 1;
break; break;
case 2: case 2:
copts.cpu = CPU_PPC603; copts.processor = CPU_PPC603;
copts.schedule_cpu = 2; copts.scheduling = 2;
break; break;
case 3: case 3:
copts.cpu = CPU_PPC603e; copts.processor = CPU_PPC603e;
copts.schedule_cpu = 5; copts.scheduling = 5;
break; break;
case 4: case 4:
copts.cpu = CPU_PPC604; copts.processor = CPU_PPC604;
copts.schedule_cpu = 3; copts.scheduling = 3;
break; break;
case 5: case 5:
copts.cpu = CPU_PPC604e; copts.processor = CPU_PPC604e;
copts.schedule_cpu = 6; copts.scheduling = 6;
break; break;
case 6: case 6:
copts.cpu = CPU_PPC750; copts.processor = CPU_PPC750;
copts.schedule_cpu = 4; copts.scheduling = 4;
break; break;
case 7: case 7:
copts.cpu = CPU_PPC7400; copts.processor = CPU_PPC7400;
copts.schedule_cpu = 7; copts.scheduling = 7;
break; break;
case 8: case 8:
copts.cpu = CPU_PPC7450; copts.processor = CPU_PPC7450;
copts.schedule_cpu = 10; copts.scheduling = 10;
break; break;
default: default:
copts.cpu = CPU_Generic; copts.processor = CPU_Generic;
copts.schedule_cpu = 8; copts.scheduling = 8;
break; break;
} }
copts.peephole = pb.peephole; copts.peephole = pb.peephole;
copts.align_mode = pb.structalignment; copts.structalignment = pb.structalignment;
copts.profile = pb.profiler; copts.profile = pb.profiler;
copts.fp_contract = pb.fpcontract; copts.fp_contract = pb.fpcontract;
copts.traceback = pb.tracebacktables > 0; copts.traceback = pb.tracebacktables > 0;
copts.x1D = pb.tracebacktables == 2; copts.x1D = pb.tracebacktables == 2;
copts.x1E = 0; copts.gen_isel = 0;
if (pb.processorspecific && copts.cpu >= CPU_PPC603) if (pb.processorspecific && copts.processor >= CPU_PPC603)
copts.gen_fsel = 10; copts.gen_fsel = 10;
else else
copts.gen_fsel = 0; copts.gen_fsel = 0;
@ -103,16 +103,16 @@ void CodeGen_InitBackEndOptions(void) {
copts.altivec_vrsave = 1; copts.altivec_vrsave = 1;
else else
copts.altivec_vrsave = 0; copts.altivec_vrsave = 0;
copts.ppc_unroll_speculative = 1; copts.unroll_speculative = 1;
copts.ppc_unroll_instructions_limit = 70; copts.unroll_instr_limit = 70;
copts.ppc_unroll_factor_limit = 10; copts.unroll_factor_limit = 10;
copts.ppc_opt_bclr_bcctr = 1; copts.opt_bcc_lr_ctr = 1;
copts.use_lmw_stmw = 1; copts.use_lmw_stmw = 1;
if (copts.optimizationlevel > 2) if (copts.optimizationlevel > 2)
copts.optimizewithasm = 1; copts.optimizewithasm = 1;
else else
copts.optimizewithasm = 0; copts.optimizewithasm = 0;
copts.opt_strength_reduction_strict = 1; copts.strengthreductionstrict = 1;
} }
void Test_Version_Numbers(void) { void Test_Version_Numbers(void) {

View File

@ -42,7 +42,7 @@ void setup_assembly_argument(Object *obj, short reg) {
short regLo; short regLo;
short regHi; short regHi;
if (reg < 10) { if (reg < 10) {
if (copts.little_endian) { if (copts.littleendian) {
regLo = reg; regLo = reg;
regHi = reg + 1; regHi = reg + 1;
} else { } else {
@ -198,7 +198,7 @@ void Assembler(Object *func) {
if (fatalerrors) if (fatalerrors)
return; return;
if (copts.isGeneratingDebugInfo) if (copts.filesyminfo)
CPrep_SetSourceFile(&cparser_fileoffset); CPrep_SetSourceFile(&cparser_fileoffset);
sm_section = SECT_TEXT; sm_section = SECT_TEXT;
@ -372,7 +372,7 @@ void Assembler(Object *func) {
func->section = sm_section; func->section = sm_section;
if (copts.isGeneratingDebugInfo) if (copts.filesyminfo)
symdeclend = CPrep_GetFileOffsetInfo(&cparser_fileoffset); symdeclend = CPrep_GetFileOffsetInfo(&cparser_fileoffset);
copts.peephole = 0; copts.peephole = 0;

View File

@ -183,7 +183,7 @@ static ArgInfo *analyze_arguments(ENode *funcref, ENodeList *arg_expr, FuncArg *
} else if (TYPE_IS_8BYTES(type)) { } else if (TYPE_IS_8BYTES(type)) {
if (gpr_counter <= 10) { if (gpr_counter <= 10) {
info->flags |= AIF_PassInGPR; info->flags |= AIF_PassInGPR;
if (copts.little_endian) { if (copts.littleendian) {
info->gpr = gpr_counter; info->gpr = gpr_counter;
info->gprHi = gpr_counter + 1; info->gprHi = gpr_counter + 1;
} else { } else {
@ -335,7 +335,7 @@ static void pass_in_register(ArgInfo *info) {
if (!info->evaluated) if (!info->evaluated)
GEN_NODE_TO_REG(info->expr, info->gpr, info->gprHi, &info->opnd); GEN_NODE_TO_REG(info->expr, info->gpr, info->gprHi, &info->opnd);
coerce_to_register_pair(&info->opnd, type, info->gpr, info->gprHi); coerce_to_register_pair(&info->opnd, type, info->gpr, info->gprHi);
if (copts.little_endian) { if (copts.littleendian) {
if (info->gprHi > 10) { if (info->gprHi > 10) {
load_store_register( load_store_register(
PC_STW, info->opnd.regHi, 1, PC_STW, info->opnd.regHi, 1,

View File

@ -746,7 +746,7 @@ static int StabTypeID(Type *type) {
} }
if (IS_TYPE_INT(TPTR_TARGET(type))) { if (IS_TYPE_INT(TPTR_TARGET(type))) {
if (TYPE_INTEGRAL(TPTR_TARGET(type))->integral == IT_CHAR) { if (TYPE_INTEGRAL(TPTR_TARGET(type))->integral == IT_CHAR) {
id = copts.unsignedchars ? StabType_UCharPtr : StabType_CharPtr; id = copts.unsigned_char ? StabType_UCharPtr : StabType_CharPtr;
break; break;
} }
if (TYPE_INTEGRAL(TPTR_TARGET(type))->integral == IT_UCHAR) { if (TYPE_INTEGRAL(TPTR_TARGET(type))->integral == IT_UCHAR) {
@ -865,7 +865,7 @@ static void output_stab_string(SInt32 (*func)(char *, SInt16, UInt32), SInt16 de
static void output_default_types(void) { static void output_default_types(void) {
Output_LSYM_Stab("int:t(0,1)=r(0,1);0020000000000;0017777777777;", 0, 0); Output_LSYM_Stab("int:t(0,1)=r(0,1);0020000000000;0017777777777;", 0, 0);
if (copts.unsignedchars) if (copts.unsigned_char)
Output_LSYM_Stab("char:t(0,2)=r(0,2);0;255;", 0, 0); Output_LSYM_Stab("char:t(0,2)=r(0,2);0;255;", 0, 0);
else else
Output_LSYM_Stab("char:t(0,2)=r(0,2);-128;127;", 0, 0); Output_LSYM_Stab("char:t(0,2)=r(0,2);-128;127;", 0, 0);

View File

@ -26,7 +26,7 @@ static void optimizelevel2(Object *func) {
static void optimizelevel3(Object *func) { static void optimizelevel3(Object *func) {
if (copts.peephole) { if (copts.peephole) {
if (copts.schedule_mode == 0 && copts.optimizationlevel > 1) if (copts.schedule_factor == 0 && copts.optimizationlevel > 1)
peepholemergeblocks(func, 0); peepholemergeblocks(func, 0);
peepholeoptimizeforward(func); peepholeoptimizeforward(func);
@ -84,7 +84,7 @@ static void optimizelevel3(Object *func) {
} }
if (copts.peephole) { if (copts.peephole) {
if (copts.schedule_mode == 0 && copts.optimizationlevel > 1) if (copts.schedule_factor == 0 && copts.optimizationlevel > 1)
peepholemergeblocks(func, 0); peepholemergeblocks(func, 0);
peepholeoptimizeforward(func); peepholeoptimizeforward(func);
@ -102,7 +102,7 @@ static void optimizelevel3(Object *func) {
static void optimizelevel4(Object *func) { static void optimizelevel4(Object *func) {
if (copts.peephole) { if (copts.peephole) {
if (copts.schedule_mode == 0 && copts.optimizationlevel > 1) if (copts.schedule_factor == 0 && copts.optimizationlevel > 1)
peepholemergeblocks(func, 0); peepholemergeblocks(func, 0);
peepholeoptimizeforward(func); peepholeoptimizeforward(func);
@ -172,7 +172,7 @@ static void optimizelevel4(Object *func) {
} }
if (copts.peephole) { if (copts.peephole) {
if (copts.schedule_mode == 0 && copts.optimizationlevel > 1) if (copts.schedule_factor == 0 && copts.optimizationlevel > 1)
peepholemergeblocks(func, 0); peepholemergeblocks(func, 0);
peepholeoptimizeforward(func); peepholeoptimizeforward(func);

View File

@ -1512,7 +1512,7 @@ void InlineAsm_InitializePPC(void) {
supports_hardware_fpu = 1; supports_hardware_fpu = 1;
assembledinstructions = 0; assembledinstructions = 0;
switch (copts.cpu) { switch (copts.processor) {
case CPU_PPC401: cpu = CPUMask_401; break; case CPU_PPC401: cpu = CPUMask_401; break;
case CPU_PPC403: cpu = CPUMask_403; break; case CPU_PPC403: cpu = CPUMask_403; break;
case CPU_PPC505: cpu = CPUMask_50x; break; case CPU_PPC505: cpu = CPUMask_50x; break;
@ -1697,7 +1697,7 @@ void InlineAsm_ProcessDirective(SInt32 directive) {
stmt = CFunc_AppendStatement(ST_ASM); stmt = CFunc_AppendStatement(ST_ASM);
stmt->expr = NULL; stmt->expr = NULL;
stmt->expr = (ENode *) InlineAsm_CreateFrFree(); stmt->expr = (ENode *) InlineAsm_CreateFrFree();
if (copts.isGeneratingDebugInfo) if (copts.filesyminfo)
stmt->sourceoffset = CPrep_GetFileOffsetInfo(&cparser_fileoffset); stmt->sourceoffset = CPrep_GetFileOffsetInfo(&cparser_fileoffset);
else else
stmt->sourceoffset = -1; stmt->sourceoffset = -1;
@ -1820,7 +1820,7 @@ void InlineAsm_ScanAssemblyInstruction(void) {
stmt = CFunc_AppendStatement(ST_ASM); stmt = CFunc_AppendStatement(ST_ASM);
stmt->expr = NULL; stmt->expr = NULL;
if (copts.isGeneratingDebugInfo) if (copts.filesyminfo)
stmt->sourceoffset = CPrep_GetFileOffsetInfo(&cparser_fileoffset); stmt->sourceoffset = CPrep_GetFileOffsetInfo(&cparser_fileoffset);
else else
stmt->sourceoffset = -1; stmt->sourceoffset = -1;

View File

@ -534,7 +534,7 @@ void gen_DIV(ENode *expr, short outputReg, short outputRegHi, Operand *output) {
if (is_unsigned(type)) { if (is_unsigned(type)) {
if (ENODE_IS(right, EINTCONST) && (tmp = ispowerof2(right->data.intval.lo))) { if (ENODE_IS(right, EINTCONST) && (tmp = ispowerof2(right->data.intval.lo))) {
shift_right_immediate(left, type, tmp, outputReg, output); shift_right_immediate(left, type, tmp, outputReg, output);
} else if (!copts.optimize_for_size && ENODE_IS(right, EINTCONST) && right->data.intval.lo != 1) { } else if (!copts.optimizesize && ENODE_IS(right, EINTCONST) && right->data.intval.lo != 1) {
SInt32 value; SInt32 value;
int tmpreg1; int tmpreg1;
int tmpreg2; int tmpreg2;
@ -590,7 +590,7 @@ void gen_DIV(ENode *expr, short outputReg, short outputRegHi, Operand *output) {
signed_divide_by_power_of_2(left, tmp, 0, outputReg, output); signed_divide_by_power_of_2(left, tmp, 0, outputReg, output);
} else if (ENODE_IS(right, EINTCONST) && (tmp = ispowerof2(-right->data.intval.lo))) { } else if (ENODE_IS(right, EINTCONST) && (tmp = ispowerof2(-right->data.intval.lo))) {
signed_divide_by_power_of_2(left, tmp, 1, outputReg, output); signed_divide_by_power_of_2(left, tmp, 1, outputReg, output);
} else if (!copts.optimize_for_size && ENODE_IS(right, EINTCONST) && (value = right->data.intval.lo) != 1u && value != -1) { } else if (!copts.optimizesize && ENODE_IS(right, EINTCONST) && (value = right->data.intval.lo) != 1u && value != -1) {
int tmpreg2; int tmpreg2;
int tmpreg3; int tmpreg3;
int tmpreg1; int tmpreg1;
@ -664,7 +664,7 @@ void gen_MODULO(ENode *expr, short outputReg, short outputRegHi, Operand *output
shift_and_mask(left, 0, 32 - tmp, 31, outputReg, output); shift_and_mask(left, 0, 32 - tmp, 31, outputReg, output);
else else
signed_mod_by_power_of_2(left, tmp, 0, outputReg, output); signed_mod_by_power_of_2(left, tmp, 0, outputReg, output);
} else if (!copts.optimize_for_size && ENODE_IS(right, EINTCONST) && (value = right->data.intval.lo) != 1u && value != -1) { } else if (!copts.optimizesize && ENODE_IS(right, EINTCONST) && (value = right->data.intval.lo) != 1u && value != -1) {
GEN_NODE(left, &op1); GEN_NODE(left, &op1);
ENSURE_GPR(&op1, left->rtype, 0); ENSURE_GPR(&op1, left->rtype, 0);
@ -2463,7 +2463,7 @@ static void signed_divide_by_power_of_2(ENode *expr, int shift, int negate, shor
memclrw(&op, sizeof(Operand)); memclrw(&op, sizeof(Operand));
GEN_NODE_TO_GPR(expr, &op, expr->rtype, 0); GEN_NODE_TO_GPR(expr, &op, expr->rtype, 0);
if (!copts.optimize_for_size && shift == 1) { if (!copts.optimizesize && shift == 1) {
tmpreg1 = ALLOC_GPR(); tmpreg1 = ALLOC_GPR();
emitpcode(PC_RLWINM, tmpreg1, op.reg, 1, 31, 31); emitpcode(PC_RLWINM, tmpreg1, op.reg, 1, 31, 31);
tmpreg2 = ALLOC_GPR(); tmpreg2 = ALLOC_GPR();
@ -3054,7 +3054,7 @@ void gen_condition_gpr(ENode *cond, Operand *output, short outputReg) {
} }
if (IS_INT_CONST_ZERO(right)) { if (IS_INT_CONST_ZERO(right)) {
if (copts.optimize_for_size) { if (copts.optimizesize) {
tmpReg = ALLOC_GPR(); tmpReg = ALLOC_GPR();
emitpcode(PC_ADDIC, tmpReg, op1.reg, -1); emitpcode(PC_ADDIC, tmpReg, op1.reg, -1);
finalReg = outputReg ? outputReg : ALLOC_GPR(); finalReg = outputReg ? outputReg : ALLOC_GPR();
@ -3072,7 +3072,7 @@ void gen_condition_gpr(ENode *cond, Operand *output, short outputReg) {
return; return;
} }
if (copts.optimize_for_size) { if (copts.optimizesize) {
tmpReg = ALLOC_GPR(); tmpReg = ALLOC_GPR();
emitpcode(PC_SUBF, tmpReg, op1.reg, op2.reg); emitpcode(PC_SUBF, tmpReg, op1.reg, op2.reg);
tmpReg2 = ALLOC_GPR(); tmpReg2 = ALLOC_GPR();
@ -3109,7 +3109,7 @@ void gen_condition_gpr(ENode *cond, Operand *output, short outputReg) {
case ELESSEQU: case ELESSEQU:
if (is_unsigned(left->rtype)) { if (is_unsigned(left->rtype)) {
if (copts.optimize_for_size) { if (copts.optimizesize) {
tmpReg = ALLOC_GPR(); tmpReg = ALLOC_GPR();
emitpcode(PC_LI, tmpReg, -1); emitpcode(PC_LI, tmpReg, -1);
tmpReg2 = ALLOC_GPR(); tmpReg2 = ALLOC_GPR();
@ -3184,7 +3184,7 @@ void gen_condition_gpr(ENode *cond, Operand *output, short outputReg) {
output->optype = OpndType_GPR; output->optype = OpndType_GPR;
output->reg = finalReg; output->reg = finalReg;
} else { } else {
if (copts.optimize_for_size) { if (copts.optimizesize) {
tmpReg = ALLOC_GPR(); tmpReg = ALLOC_GPR();
emitpcode(PC_SUBFC, tmpReg, op2.reg, op1.reg); emitpcode(PC_SUBFC, tmpReg, op2.reg, op1.reg);
tmpReg2 = ALLOC_GPR(); tmpReg2 = ALLOC_GPR();
@ -3368,7 +3368,7 @@ void gen_negated_condition_gpr(ENode *cond, Operand *output, short outputReg) {
} }
if (IS_INT_CONST_ZERO(right)) { if (IS_INT_CONST_ZERO(right)) {
if (copts.optimize_for_size) { if (copts.optimizesize) {
tmpReg = ALLOC_GPR(); tmpReg = ALLOC_GPR();
emitpcode(PC_ADDIC, tmpReg, op1.reg, -1); emitpcode(PC_ADDIC, tmpReg, op1.reg, -1);
finalReg = outputReg ? outputReg : ALLOC_GPR(); finalReg = outputReg ? outputReg : ALLOC_GPR();
@ -3386,7 +3386,7 @@ void gen_negated_condition_gpr(ENode *cond, Operand *output, short outputReg) {
return; return;
} }
if (copts.optimize_for_size) { if (copts.optimizesize) {
tmpReg = ALLOC_GPR(); tmpReg = ALLOC_GPR();
emitpcode(PC_SUBF, tmpReg, op2.reg, op1.reg); emitpcode(PC_SUBF, tmpReg, op2.reg, op1.reg);
tmpReg2 = ALLOC_GPR(); tmpReg2 = ALLOC_GPR();
@ -3459,7 +3459,7 @@ void gen_negated_condition_gpr(ENode *cond, Operand *output, short outputReg) {
} }
if (IS_INT_CONST_ZERO(right)) { if (IS_INT_CONST_ZERO(right)) {
if (copts.optimize_for_size) { if (copts.optimizesize) {
tmpReg = ALLOC_GPR(); tmpReg = ALLOC_GPR();
emitpcode(PC_SUBFIC, tmpReg, op1.reg, 0); emitpcode(PC_SUBFIC, tmpReg, op1.reg, 0);
finalReg = outputReg ? outputReg : ALLOC_GPR(); finalReg = outputReg ? outputReg : ALLOC_GPR();
@ -3477,7 +3477,7 @@ void gen_negated_condition_gpr(ENode *cond, Operand *output, short outputReg) {
return; return;
} }
if (copts.optimize_for_size) { if (copts.optimizesize) {
tmpReg = ALLOC_GPR(); tmpReg = ALLOC_GPR();
emitpcode(PC_SUBF, tmpReg, op2.reg, op1.reg); emitpcode(PC_SUBF, tmpReg, op2.reg, op1.reg);
tmpReg2 = ALLOC_GPR(); tmpReg2 = ALLOC_GPR();

View File

@ -172,7 +172,7 @@ Statement *IRO_Optimizer(Object *func, Statement *statements) {
if (!DisableDueToAsm && copts.optimizationlevel > 0 && copts.opt_pointer_analysis && func) { if (!DisableDueToAsm && copts.optimizationlevel > 0 && copts.opt_pointer_analysis && func) {
IRO_AnalyzePointers(func); IRO_AnalyzePointers(func);
if (copts.opt_propagation && IRO_EvaluateDefinitePointers(func)) { if (copts.propagation && IRO_EvaluateDefinitePointers(func)) {
IRO_UpdateFlagsOnInts(); IRO_UpdateFlagsOnInts();
IRO_UpdateVars(); IRO_UpdateVars();
IRO_DumpAfterPhase("IRO_EvaluateDefinitePointers", 0); IRO_DumpAfterPhase("IRO_EvaluateDefinitePointers", 0);
@ -202,7 +202,7 @@ Statement *IRO_Optimizer(Object *func, Statement *statements) {
} }
if (!DisableDueToAsm && copts.optimizationlevel > 0) { if (!DisableDueToAsm && copts.optimizationlevel > 0) {
passCount = copts._B4 ? 2 : 1; passCount = copts.multiplepasses ? 2 : 1;
IRO_CPFirstTime = 1; IRO_CPFirstTime = 1;
for (pass = 0; pass < passCount; pass++) { for (pass = 0; pass < passCount; pass++) {
IRO_Dump("*****************\n"); IRO_Dump("*****************\n");
@ -213,7 +213,7 @@ Statement *IRO_Optimizer(Object *func, Statement *statements) {
IRO_ScalarizeClassDataMembers(); IRO_ScalarizeClassDataMembers();
IRO_DumpAfterPhase("IRO_ScalarizeClassDataMembers", 0); IRO_DumpAfterPhase("IRO_ScalarizeClassDataMembers", 0);
if (copts.opt_propagation) { if (copts.propagation) {
IRO_CopyAndConstantPropagation(); IRO_CopyAndConstantPropagation();
IRO_CPFirstTime = 0; IRO_CPFirstTime = 0;
IRO_ExpressionPropagation(); IRO_ExpressionPropagation();
@ -226,8 +226,8 @@ Statement *IRO_Optimizer(Object *func, Statement *statements) {
IRO_DumpAfterPhase("IRO_ExpressionPropagation", 0); IRO_DumpAfterPhase("IRO_ExpressionPropagation", 0);
if (copts.opt_dead_assignments || copts.opt_propagation) if (copts.deadstore || copts.propagation)
IRO_UseDef(copts.opt_dead_assignments, copts.opt_propagation); IRO_UseDef(copts.deadstore, copts.propagation);
IRO_DumpAfterPhase("after IRO_UseDef", 0); IRO_DumpAfterPhase("after IRO_UseDef", 0);
IRO_UpdateVars(); IRO_UpdateVars();
@ -246,7 +246,7 @@ Statement *IRO_Optimizer(Object *func, Statement *statements) {
IRO_RenumberInts(); IRO_RenumberInts();
} }
if (copts.opt_unroll_loops && !copts.optimize_for_size && pass == 0) { if (copts.unrolling && !copts.optimizesize && pass == 0) {
IRO_DumpAfterPhase("Before IRO_LoopUnroller", 0); IRO_DumpAfterPhase("Before IRO_LoopUnroller", 0);
IRO_LoopUnroller(); IRO_LoopUnroller();
IRO_DumpAfterPhase("After IRO_LoopUnroller", 0); IRO_DumpAfterPhase("After IRO_LoopUnroller", 0);
@ -255,7 +255,7 @@ Statement *IRO_Optimizer(Object *func, Statement *statements) {
VectorPhaseCalledFromUnroll = 0; VectorPhaseCalledFromUnroll = 0;
if (pass == 0 && (copts.opt_loop_invariants || copts.opt_strength_reduction)) { if (pass == 0 && (copts.loopinvariants || copts.strengthreduction)) {
IRO_DumpAfterPhase("Before IRO_FindLoops", 0); IRO_DumpAfterPhase("Before IRO_FindLoops", 0);
IRO_FindLoops(); IRO_FindLoops();
LoopOptimizerRun = 1; LoopOptimizerRun = 1;
@ -263,7 +263,7 @@ Statement *IRO_Optimizer(Object *func, Statement *statements) {
} }
IRO_DumpAfterPhase("After IRO_FindLoops", 0); IRO_DumpAfterPhase("After IRO_FindLoops", 0);
if (copts.opt_propagation) { if (copts.propagation) {
IRO_CopyAndConstantPropagation(); IRO_CopyAndConstantPropagation();
IRO_ConstantFolding(); IRO_ConstantFolding();
IRO_EvaluateConditionals(); IRO_EvaluateConditionals();
@ -271,10 +271,10 @@ Statement *IRO_Optimizer(Object *func, Statement *statements) {
IRO_DumpAfterPhase("Second pass:IRO_CopyAndConstantPropagation, IRO_ConstantFolding, IRO_EvaluateConditionals", 0); IRO_DumpAfterPhase("Second pass:IRO_CopyAndConstantPropagation, IRO_ConstantFolding, IRO_EvaluateConditionals", 0);
if (copts.opt_common_subs) if (copts.commonsubs)
IRO_FindExpressions(NULL, 0); IRO_FindExpressions(NULL, 0);
if (copts.opt_common_subs) { if (copts.commonsubs) {
IRO_ComputeAvail(); IRO_ComputeAvail();
IRO_CommonSubs(); IRO_CommonSubs();
} }
@ -288,7 +288,7 @@ Statement *IRO_Optimizer(Object *func, Statement *statements) {
do { do {
IRO_UpdateFlagsOnInts(); IRO_UpdateFlagsOnInts();
if (copts.opt_dead_code) if (copts.deadcode)
IRO_RemoveUnreachable(); IRO_RemoveUnreachable();
IRO_DumpAfterPhase("IRO_RemoveUnreachable", 0); IRO_DumpAfterPhase("IRO_RemoveUnreachable", 0);
@ -301,7 +301,7 @@ Statement *IRO_Optimizer(Object *func, Statement *statements) {
changed2 |= IRO_DoJumpChaining(); changed2 |= IRO_DoJumpChaining();
IRO_DumpAfterPhase("IRO_DoJumpChaining", 0); IRO_DumpAfterPhase("IRO_DoJumpChaining", 0);
if (copts.opt_propagation) { if (copts.propagation) {
IRO_RenumberInts(); IRO_RenumberInts();
IRO_DumpAfterPhase("Before IRO_CopyAndConstantPropagation", 0); IRO_DumpAfterPhase("Before IRO_CopyAndConstantPropagation", 0);
changed2 |= IRO_CopyAndConstantPropagation(); changed2 |= IRO_CopyAndConstantPropagation();
@ -309,8 +309,8 @@ Statement *IRO_Optimizer(Object *func, Statement *statements) {
IRO_ConstantFolding(); IRO_ConstantFolding();
} }
if (copts.opt_dead_assignments || copts.opt_propagation) if (copts.deadstore || copts.propagation)
changed2 |= IRO_UseDef(copts.opt_dead_assignments, copts.opt_propagation); changed2 |= IRO_UseDef(copts.deadstore, copts.propagation);
IRO_DumpAfterPhase("IRO_UseDef", 0); IRO_DumpAfterPhase("IRO_UseDef", 0);
changed2 |= IRO_EvaluateConditionals(); changed2 |= IRO_EvaluateConditionals();
@ -318,7 +318,7 @@ Statement *IRO_Optimizer(Object *func, Statement *statements) {
} while (changed2); } while (changed2);
} }
if (copts.opt_lifetimes) { if (copts.lifetimes) {
IRO_UseDef(0, 0); IRO_UseDef(0, 0);
IRO_SplitLifetimes(); IRO_SplitLifetimes();
} }
@ -382,20 +382,20 @@ void CodeGen_UpdateOptimizerOptions(void) {
Boolean flag; Boolean flag;
flag = copts.optimizationlevel >= 1; flag = copts.optimizationlevel >= 1;
copts.opt_dead_code = flag; copts.deadcode = flag;
flag = copts.optimizationlevel >= 2; flag = copts.optimizationlevel >= 2;
copts.opt_propagation = flag; copts.propagation = flag;
copts.opt_common_subs = flag; copts.commonsubs = flag;
flag = copts.optimizationlevel >= 3; flag = copts.optimizationlevel >= 3;
copts.opt_vectorize_loops = flag; copts.vectorizeloops = flag;
copts.opt_unroll_loops = flag; copts.unrolling = flag;
copts.opt_dead_assignments = flag; copts.deadstore = flag;
copts.opt_lifetimes = flag; copts.lifetimes = flag;
copts.opt_strength_reduction = flag; copts.strengthreduction = flag;
copts.opt_loop_invariants = flag; copts.loopinvariants = flag;
flag = copts.optimizationlevel >= 4; flag = copts.optimizationlevel >= 4;
copts._B4 = flag; copts.multiplepasses = flag;
} }

View File

@ -1321,7 +1321,7 @@ static Boolean GeneratePossibleCondAss(IRONode *fnode) {
r23 = fnode->last->type == IROLinearIf; r23 = fnode->last->type == IROLinearIf;
r20 = fnode->last->u.diadic.right; r20 = fnode->last->u.diadic.right;
r19flag = 0; r19flag = 0;
if (r28 && copts.opt_common_subs && IRO_IsSubableExpression(r20)) if (r28 && copts.commonsubs && IRO_IsSubableExpression(r20))
r19flag = 1; r19flag = 1;
if (r19flag) { if (r19flag) {
@ -1344,7 +1344,7 @@ static Boolean GeneratePossibleCondAss(IRONode *fnode) {
r19flag = 1; r19flag = 1;
} }
if (r19flag && !copts.opt_common_subs) if (r19flag && !copts.commonsubs)
return 0; return 0;
} }

View File

@ -407,7 +407,7 @@ static int Reducable(IROLinear *nd, IROLinear **resultNd1, IROLinear **resultNd2
if (!*resultVar || (*resultVar)->xA != 2) if (!*resultVar || (*resultVar)->xA != 2)
return 0; return 0;
if (copts.ANSI_strict || copts.opt_strength_reduction_strict) { if (copts.ANSIstrict || copts.strengthreductionstrict) {
Type *type = (*resultVar)->object->type; Type *type = (*resultVar)->object->type;
if (IRO_IsUnsignedType(type) && type->size < stunsignedlong.size) if (IRO_IsUnsignedType(type) && type->size < stunsignedlong.size)
return 0; return 0;
@ -1278,17 +1278,17 @@ static void MyHandleLoop_Vector(IRONode *fnode) {
} }
} }
if (copts.opt_loop_invariants || copts.opt_strength_reduction) { if (copts.loopinvariants || copts.strengthreduction) {
MoveInvarianceInAddressExpr(); MoveInvarianceInAddressExpr();
IRO_DumpAfterPhase("MoveInvarianceInAddressExpr", 0); IRO_DumpAfterPhase("MoveInvarianceInAddressExpr", 0);
IRO_FindExpressions(InLoop, 1); IRO_FindExpressions(InLoop, 1);
IRO_DumpExprs(); IRO_DumpExprs();
} }
if (copts.opt_loop_invariants) if (copts.loopinvariants)
UnmarkSubexpressionsOfInvariantExpressions(); UnmarkSubexpressionsOfInvariantExpressions();
if (!copts.optimize_for_size && copts.opt_strength_reduction) { if (!copts.optimizesize && copts.strengthreduction) {
for (expr = IRO_FirstExpr; expr; expr = expr->next) { for (expr = IRO_FirstExpr; expr; expr = expr->next) {
if ( if (
!(expr->x0 & 4) && !(expr->x0 & 4) &&
@ -1306,7 +1306,7 @@ static void MyHandleLoop_Vector(IRONode *fnode) {
} }
} }
if (!copts.optimize_for_size && copts.opt_strength_reduction) { if (!copts.optimizesize && copts.strengthreduction) {
RisList = NULL; RisList = NULL;
for (expr = IRO_FirstExpr; expr; expr = exprnext) { for (expr = IRO_FirstExpr; expr; expr = exprnext) {
exprnext = expr->next; exprnext = expr->next;
@ -1355,7 +1355,7 @@ static void MyHandleLoop_Vector(IRONode *fnode) {
expr = IRO_FirstExpr; expr = IRO_FirstExpr;
removedExprs = NULL; removedExprs = NULL;
if (copts.opt_loop_invariants) { if (copts.loopinvariants) {
while (expr) { while (expr) {
exprnext = expr->next; exprnext = expr->next;
flag24 = 0; flag24 = 0;
@ -1461,14 +1461,14 @@ static void MyHandleLoop_Motion(IRONode *fnode) {
} }
} }
if (copts.opt_loop_invariants || copts.opt_strength_reduction) { if (copts.loopinvariants || copts.strengthreduction) {
MoveInvarianceInAddressExpr(); MoveInvarianceInAddressExpr();
IRO_DumpAfterPhase("MoveInvarianceInAddressExpr", 0); IRO_DumpAfterPhase("MoveInvarianceInAddressExpr", 0);
IRO_FindExpressions(InLoop, 0); IRO_FindExpressions(InLoop, 0);
IRO_DumpExprs(); IRO_DumpExprs();
} }
if (copts.opt_loop_invariants) if (copts.loopinvariants)
UnmarkSubexpressionsOfInvariantExpressions(); UnmarkSubexpressionsOfInvariantExpressions();
checkflag = 1; checkflag = 1;

View File

@ -5161,7 +5161,7 @@ void PointerAnalysis_GetFunctionDependencies(Object *proc, IROLinear *funccall,
} }
void PointerAnalysis_PragmaMode(void) { void PointerAnalysis_PragmaMode(void) {
if (cparamblkptr->isPreprocessing) { if (cparamblkptr->preprocess) {
skipendofline(); skipendofline();
return; return;
} }

View File

@ -112,7 +112,7 @@ static void IRO_FindLoops_Unroll(void) {
listfnode = list->fnode; listfnode = list->fnode;
IRO_Dump("IRO_FindLoops_Unroll:Found loop with header %d\n", listfnode->index); IRO_Dump("IRO_FindLoops_Unroll:Found loop with header %d\n", listfnode->index);
IRO_DumpBits("Loop includes: ", InLoop); IRO_DumpBits("Loop includes: ", InLoop);
LoopUnroll(copts.loop_unroll_count, listfnode); LoopUnroll(copts.unrollfactor, listfnode);
IRO_UpdateFlagsOnInts(); IRO_UpdateFlagsOnInts();
} }
} }
@ -1329,7 +1329,7 @@ static int IsLoopUnrollable(IROLoop *loop) {
} }
} }
if (loop->sizeBySomeMeasurement > copts.loop_unroll_size_threshold) { if (loop->sizeBySomeMeasurement > copts.unrollinstrfactor) {
IRO_Dump("IsLoopUnrollable:No because loop size greater than threshold\n"); IRO_Dump("IsLoopUnrollable:No because loop size greater than threshold\n");
return 0; return 0;
} }

View File

@ -188,8 +188,8 @@ static void unrollloop(Loop *loop) {
PCode *firstInstr; PCode *firstInstr;
PCode *nextInstr; PCode *nextInstr;
for (factor = copts.ppc_unroll_factor_limit; factor > 1; factor--) { for (factor = copts.unroll_factor_limit; factor > 1; factor--) {
if ((loop->iterationCount % factor) == 0 && (loop->bodySize - 2) * factor <= copts.ppc_unroll_instructions_limit) if ((loop->iterationCount % factor) == 0 && (loop->bodySize - 2) * factor <= copts.unroll_instr_limit)
break; break;
} }
@ -339,8 +339,8 @@ static void unrollloopconditional(Loop *loop) {
outputBlockCount = 0; outputBlockCount = 0;
instructionCount = 0; instructionCount = 0;
for (factor = copts.ppc_unroll_factor_limit; factor > 1; factor--) { for (factor = copts.unroll_factor_limit; factor > 1; factor--) {
if ((loop->iterationCount % factor) == 0 && (loop->bodySize - 2) * factor <= copts.ppc_unroll_instructions_limit) if ((loop->iterationCount % factor) == 0 && (loop->bodySize - 2) * factor <= copts.unroll_instr_limit)
break; break;
} }
@ -547,9 +547,9 @@ static void unrollunknownBDNZ(Loop *loop) {
return; return;
factor = 128; factor = 128;
while (factor > copts.ppc_unroll_factor_limit) while (factor > copts.unroll_factor_limit)
factor >>= 1; factor >>= 1;
while (factor > 1 && (loop->bodySize - 2) * factor > copts.ppc_unroll_instructions_limit) while (factor > 1 && (loop->bodySize - 2) * factor > copts.unroll_instr_limit)
factor >>= 1; factor >>= 1;
if (factor < 2) if (factor < 2)
@ -1175,7 +1175,7 @@ static void optimizeloop(Loop *loop) {
if (loop->isKnownCountingLoop) { if (loop->isKnownCountingLoop) {
if (loop->iterationCount > 0) { if (loop->iterationCount > 0) {
skiplooptest(loop); skiplooptest(loop);
if (!copts.optimize_for_size && !loop->x4D && !loop->x57) { if (!copts.optimizesize && !loop->x4D && !loop->x57) {
if (loop->x4F) if (loop->x4F)
unrollloop(loop); unrollloop(loop);
else if (!loop->x4E) else if (!loop->x4E)
@ -1193,7 +1193,7 @@ static void optimizeloop(Loop *loop) {
optimizedloops = 1; optimizedloops = 1;
} else if (loop->isUnknownCountingLoop && !loop->x4E && !loop->x4D) { } else if (loop->isUnknownCountingLoop && !loop->x4E && !loop->x4D) {
rewriteunknownloopwithBDNZ(loop); rewriteunknownloopwithBDNZ(loop);
if (copts.ppc_unroll_speculative && !copts.optimize_for_size) { if (copts.unroll_speculative && !copts.optimizesize) {
if (loop->x4F && !loop->x57 && !loop->x52) if (loop->x4F && !loop->x57 && !loop->x52)
unrollunknownBDNZ(loop); unrollunknownBDNZ(loop);
} }

View File

@ -679,10 +679,10 @@ void MachO_Finish(void) {
COS_ResizeHandle(ObjFile.data, ObjFile.size); COS_ResizeHandle(ObjFile.data, ObjFile.size);
cparamblkptr->objectDataHandle = ObjFile.data; cparamblkptr->objectdata = ObjFile.data;
cparamblkptr->objectdata.codesize = CodeSize; cparamblkptr->object.codesize = CodeSize;
cparamblkptr->objectdata.udatasize = UdataSize; cparamblkptr->object.udatasize = UdataSize;
cparamblkptr->objectdata.idatasize = IdataSize; cparamblkptr->object.idatasize = IdataSize;
} }
void MachO_Cleanup(void) { void MachO_Cleanup(void) {

View File

@ -655,7 +655,7 @@ void ObjGen_Finish(void) {
UInt32 opMask; UInt32 opMask;
UInt32 argMask; UInt32 argMask;
if (copts.isGeneratingDebugInfo) if (copts.filesyminfo)
GenStab_SourceFile(""); GenStab_SourceFile("");
CInit_DeclarePooledStrings(); CInit_DeclarePooledStrings();
@ -1036,7 +1036,7 @@ static void definedatasymbol(Object *object, MachOSection *section, SInt32 value
flag = ObjGen_DeclareSymbol(object, section, value); flag = ObjGen_DeclareSymbol(object, section, value);
ObjGen_GetHashNodeRelocID(object, section, 0); ObjGen_GetHashNodeRelocID(object, section, 0);
if (flag && copts.isGeneratingDebugInfo) if (flag && copts.filesyminfo)
GenStab_Var(object); GenStab_Var(object);
if (object->toc) if (object->toc)
patchuplazyptr(object); patchuplazyptr(object);
@ -1210,11 +1210,11 @@ void ObjGen_SrcBreakName(HashNameNode *name, SInt32 fileModDate, Boolean flag) {
char buf1[1024]; char buf1[1024];
char buf2[1024]; char buf2[1024];
if (copts.isGeneratingDebugInfo) { if (copts.filesyminfo) {
if (name) if (name)
strncpy(buf1, name->name, sizeof(buf1)); strncpy(buf1, name->name, sizeof(buf1));
else else
COS_FileGetPathName(buf1, &cparamblkptr->mainFileSpec, &fileModDate); COS_FileGetPathName(buf1, &cparamblkptr->sourcefile, &fileModDate);
if (name && copts.absolutepath) if (name && copts.absolutepath)
ptr = buf1 + strlen(buf1); ptr = buf1 + strlen(buf1);
@ -1712,17 +1712,17 @@ void ObjGen_DeclareTracebackTable(Object *tableobj, void *data, SInt32 size) {
} }
void ObjGen_DeclareSymInfo(void) { void ObjGen_DeclareSymInfo(void) {
if (copts.isGeneratingDebugInfo) if (copts.filesyminfo)
SymContainedVars(); SymContainedVars();
} }
void ObjGen_Line(UInt32 line, UInt32 offset) { void ObjGen_Line(UInt32 line, UInt32 offset) {
if (copts.isGeneratingDebugInfo && line) if (copts.filesyminfo && line)
GenStab_Line(line, offset + last_base_offset[last_function_sect_id]); GenStab_Line(line, offset + last_base_offset[last_function_sect_id]);
} }
void ObjGen_OutputDebugInfo(Object *funcobj) { void ObjGen_OutputDebugInfo(Object *funcobj) {
if (copts.isGeneratingDebugInfo) if (copts.filesyminfo)
GenStab_Function(funcobj, CMangler_GetLinkName(funcobj)->id); GenStab_Function(funcobj, CMangler_GetLinkName(funcobj)->id);
} }

View File

@ -1349,7 +1349,7 @@ SInt32 optimizefinalbranches(SInt32 codesize) {
instr->args[2].data.label.label = target->args[0].data.label.label; instr->args[2].data.label.label = target->args[0].data.label.label;
changed = 1; changed = 1;
} }
} else if (copts.ppc_opt_bclr_bcctr) { } else if (copts.opt_bcc_lr_ctr) {
if (target->op == PC_BLR) { if (target->op == PC_BLR) {
if (instr->op == PC_BT) if (instr->op == PC_BT)
instr->op = PC_BTLR; instr->op = PC_BTLR;
@ -1425,7 +1425,7 @@ SInt32 optimizefinalbranches(SInt32 codesize) {
instr->args[3].data.label.label = target->args[0].data.label.label; instr->args[3].data.label.label = target->args[0].data.label.label;
changed = 1; changed = 1;
} }
} else if (copts.ppc_opt_bclr_bcctr) { } else if (copts.opt_bcc_lr_ctr) {
if (target->op == PC_BLR) { if (target->op == PC_BLR) {
instr->op = PC_BCLR; instr->op = PC_BCLR;
instr->argCount = 3; instr->argCount = 3;
@ -1556,7 +1556,7 @@ SInt32 assemblefunction(Object *func, EntryPoint *entrypoints) {
codesize = pccomputeoffsets(); codesize = pccomputeoffsets();
} }
if (copts.code_alignment > 4) if (copts.function_align > 4)
codesize = insert_align_nops(func, codesize); codesize = insert_align_nops(func, codesize);
tbsize = 0; tbsize = 0;
@ -1573,7 +1573,7 @@ SInt32 assemblefunction(Object *func, EntryPoint *entrypoints) {
codebase = gl->size; codebase = gl->size;
AppendGListNoData(gl, codesize + tbsize); AppendGListNoData(gl, codesize + tbsize);
if (copts.isGeneratingDebugInfo) { if (copts.filesyminfo) {
ObjGen_SymFunc(func); ObjGen_SymFunc(func);
ObjGen_Line(functionbodyoffset, 0); ObjGen_Line(functionbodyoffset, 0);
ObjGen_DeclareSymInfo(); ObjGen_DeclareSymInfo();
@ -1590,7 +1590,7 @@ SInt32 assemblefunction(Object *func, EntryPoint *entrypoints) {
for (block = pcbasicblocks; block; block = block->nextBlock) { for (block = pcbasicblocks; block; block = block->nextBlock) {
for (offset2 = block->codeOffset, instr = block->firstPCode; instr; instr = instr->nextPCode, offset2 += 4) { for (offset2 = block->codeOffset, instr = block->firstPCode; instr; instr = instr->nextPCode, offset2 += 4) {
if (copts.isGeneratingDebugInfo && instr->sourceoffset != -1) if (copts.filesyminfo && instr->sourceoffset != -1)
ObjGen_Line(instr->sourceoffset, offset2); ObjGen_Line(instr->sourceoffset, offset2);
*((UInt32 *) (*gl->data + codebase + offset2)) = assemblepcode(instr, offset2, &wop); *((UInt32 *) (*gl->data + codebase + offset2)) = assemblepcode(instr, offset2, &wop);
@ -1600,7 +1600,7 @@ SInt32 assemblefunction(Object *func, EntryPoint *entrypoints) {
} }
} }
if (copts.isGeneratingDebugInfo) if (copts.filesyminfo)
ObjGenMach_SymFuncEnd(func, codesize); ObjGenMach_SymFuncEnd(func, codesize);
if (copts.traceback) if (copts.traceback)

View File

@ -81,7 +81,7 @@ static void pclistblock(PCodeBlock *block, char *format, UInt32 vecSize) {
fprintf(pcfile, "}\n\n"); fprintf(pcfile, "}\n\n");
cpu = copts.schedule_cpu; cpu = copts.scheduling;
if (cpu == 10) { if (cpu == 10) {
mi = &machine7450; mi = &machine7450;
} else if (copts.altivec_model != 0 || cpu == 7) { } else if (copts.altivec_model != 0 || cpu == 7) {

View File

@ -1449,7 +1449,7 @@ static int MR_ADDI(PCode *instr, UInt32 *masks) {
int prevFlag = 0; int prevFlag = 0;
int nextFlag = 0; int nextFlag = 0;
if (copts.cpu == CPU_PPC603e) { if (copts.processor == CPU_PPC603e) {
if (prev) if (prev)
prevFlag = (prev->flags & fOpTypeMask) == fOpTypeGPR; prevFlag = (prev->flags & fOpTypeMask) == fOpTypeGPR;
if (next) if (next)

View File

@ -346,7 +346,7 @@ int is_nonvolatile_register(RegClass rclass, int reg) {
} }
void init_endian(void) { void init_endian(void) {
if (copts.little_endian) { if (copts.littleendian) {
high_offset = 4; high_offset = 4;
low_offset = 0; low_offset = 0;
high_reg = 4; high_reg = 4;

View File

@ -464,7 +464,7 @@ void scheduleinstructions(Boolean flag) {
PCodeBlock *block; PCodeBlock *block;
int cpu; int cpu;
cpu = copts.schedule_cpu; cpu = copts.scheduling;
if (cpu == 10) { if (cpu == 10) {
MI = &machine7450; MI = &machine7450;
} else if (copts.altivec_model != 0 || cpu == 7) { } else if (copts.altivec_model != 0 || cpu == 7) {
@ -534,7 +534,7 @@ int is_dependent(PCode *a, PCode *b, char rclass) {
int uses_vpermute_unit(PCode *instr) { int uses_vpermute_unit(PCode *instr) {
int cpu; int cpu;
cpu = copts.schedule_cpu; cpu = copts.scheduling;
if (cpu == 10) if (cpu == 10)
return machine7450.uses_vpermute_unit(instr); return machine7450.uses_vpermute_unit(instr);
if (copts.altivec_model != 0 || cpu == 7) if (copts.altivec_model != 0 || cpu == 7)

View File

@ -26,7 +26,7 @@ void estimatespillcosts(void) {
int weight; int weight;
for (block = pcbasicblocks; block; block = block->nextBlock) { for (block = pcbasicblocks; block; block = block->nextBlock) {
if (copts.optimize_for_size) if (copts.optimizesize)
weight = 1; weight = 1;
else else
weight = block->loopWeight; weight = block->loopWeight;
@ -37,7 +37,7 @@ void estimatespillcosts(void) {
while (i--) { while (i--) {
if (PC_OP_IS_READ_ANY_REGISTER(op, coloring_class)) { if (PC_OP_IS_READ_ANY_REGISTER(op, coloring_class)) {
node = interferencegraph[op->data.reg.reg]; node = interferencegraph[op->data.reg.reg];
if (node->instr8 || copts.optimize_for_size) if (node->instr8 || copts.optimizesize)
node->spillCost += weight; node->spillCost += weight;
else else
node->spillCost += weight * 2; node->spillCost += weight * 2;

View File

@ -588,7 +588,7 @@ static void save_nonvolatile_GPRs(int reg, SInt32 offset) {
o = offset + non_volatile_save_offset[RegClass_GPR]; o = offset + non_volatile_save_offset[RegClass_GPR];
if (!use_helper_function(RegClass_GPR)) { if (!use_helper_function(RegClass_GPR)) {
if (copts.use_lmw_stmw && ((used_nonvolatile_registers[RegClass_GPR] > 4) || (copts.optimize_for_size && (used_nonvolatile_registers[RegClass_GPR] > 1)))) { if (copts.use_lmw_stmw && ((used_nonvolatile_registers[RegClass_GPR] > 4) || (copts.optimizesize && (used_nonvolatile_registers[RegClass_GPR] > 1)))) {
emitpcode(PC_STMW, used_nonvolatile_registers[RegClass_GPR] - 1, 32 - used_nonvolatile_registers[RegClass_GPR], reg, 0, o); emitpcode(PC_STMW, used_nonvolatile_registers[RegClass_GPR] - 1, 32 - used_nonvolatile_registers[RegClass_GPR], reg, 0, o);
} else { } else {
for (i = 1; i <= used_nonvolatile_registers[RegClass_GPR]; i++) { for (i = 1; i <= used_nonvolatile_registers[RegClass_GPR]; i++) {
@ -608,7 +608,7 @@ static void restore_nonvolatile_GPRs(int reg, SInt32 offset) {
o = offset + non_volatile_save_offset[RegClass_GPR]; o = offset + non_volatile_save_offset[RegClass_GPR];
if (!use_helper_function(RegClass_GPR)) { if (!use_helper_function(RegClass_GPR)) {
if (copts.use_lmw_stmw && ((used_nonvolatile_registers[RegClass_GPR] > 4) || (copts.optimize_for_size && (used_nonvolatile_registers[RegClass_GPR] > 1)))) { if (copts.use_lmw_stmw && ((used_nonvolatile_registers[RegClass_GPR] > 4) || (copts.optimizesize && (used_nonvolatile_registers[RegClass_GPR] > 1)))) {
emitpcode(PC_LMW, used_nonvolatile_registers[RegClass_GPR] - 1, 32 - used_nonvolatile_registers[RegClass_GPR], reg, 0, o); emitpcode(PC_LMW, used_nonvolatile_registers[RegClass_GPR] - 1, 32 - used_nonvolatile_registers[RegClass_GPR], reg, 0, o);
setpcodeflags(fIsVolatile); setpcodeflags(fIsVolatile);
} else { } else {
@ -876,7 +876,7 @@ void assign_arguments_to_memory(Object *func, UInt8 mysteryFlag, Boolean hasVara
} }
obj->u.var.uid = pos; obj->u.var.uid = pos;
Registers_GetVarInfo(obj)->flags = (Registers_GetVarInfo(obj)->flags & ~VarInfoFlag1) | VarInfoFlag1; Registers_GetVarInfo(obj)->flags = (Registers_GetVarInfo(obj)->flags & ~VarInfoFlag1) | VarInfoFlag1;
if (!copts.little_endian && (IS_TYPE_INT(obj->type) || IS_TYPE_ENUM(obj->type)) && obj->type->size < 4) if (!copts.littleendian && (IS_TYPE_INT(obj->type) || IS_TYPE_ENUM(obj->type)) && obj->type->size < 4)
obj->u.var.uid += 4 - obj->type->size; obj->u.var.uid += 4 - obj->type->size;
pos += type->size; pos += type->size;
pos = ALIGN(pos, 4); pos = ALIGN(pos, 4);
@ -1089,11 +1089,11 @@ static Boolean use_helper_function(char rclass) {
case RegClass_GPR: case RegClass_GPR:
if (copts.use_lmw_stmw) if (copts.use_lmw_stmw)
return 0; return 0;
return (used_nonvolatile_registers[RegClass_GPR] > 4) || (copts.optimize_for_size && used_nonvolatile_registers[RegClass_GPR] > 2); return (used_nonvolatile_registers[RegClass_GPR] > 4) || (copts.optimizesize && used_nonvolatile_registers[RegClass_GPR] > 2);
case RegClass_FPR: case RegClass_FPR:
return (used_nonvolatile_registers[RegClass_FPR] > 3) || (copts.optimize_for_size && used_nonvolatile_registers[RegClass_FPR] > 2); return (used_nonvolatile_registers[RegClass_FPR] > 3) || (copts.optimizesize && used_nonvolatile_registers[RegClass_FPR] > 2);
case RegClass_VR: case RegClass_VR:
return (used_nonvolatile_registers[RegClass_VR] > 3) || (copts.optimize_for_size && used_nonvolatile_registers[RegClass_VR] > 2); return (used_nonvolatile_registers[RegClass_VR] > 3) || (copts.optimizesize && used_nonvolatile_registers[RegClass_VR] > 2);
default: default:
CError_FATAL(2862); CError_FATAL(2862);
return 0; return 0;

View File

@ -388,7 +388,7 @@ void move_block(Operand *dst, Operand *src, SInt32 len, SInt32 align) {
move_block_via_load_store(&myDst, src, len, align); move_block_via_load_store(&myDst, src, len, align);
else if (len == 8 && align == 8) else if (len == 8 && align == 8)
move_block_via_load_store(&myDst, src, len, align); move_block_via_load_store(&myDst, src, len, align);
else if (len <= 16 || (copts.optimize_for_size == 0 && len <= 64)) else if (len <= 16 || (copts.optimizesize == 0 && len <= 64))
move_block_via_load_store_sequence(&myDst, src, len, align); move_block_via_load_store_sequence(&myDst, src, len, align);
else else
move_block_via_inline_loop(&myDst, src, len, align); move_block_via_inline_loop(&myDst, src, len, align);

View File

@ -147,7 +147,7 @@ void createNonLazyPointer(Object *obj) {
void referenceIndirectPointer(Object *obj) { void referenceIndirectPointer(Object *obj) {
VarInfo *vi = obj->toc->u.toc.info; VarInfo *vi = obj->toc->u.toc.info;
vi->used = 1; vi->used = 1;
vi->usage += copts.optimize_for_size ? 1 : curstmtvalue; vi->usage += copts.optimizesize ? 1 : curstmtvalue;
} }
Object *createIndirect(Object *obj, Boolean flag1, Boolean flag2) { Object *createIndirect(Object *obj, Boolean flag1, Boolean flag2) {
@ -317,7 +317,7 @@ static Object *CreatePooledFloatConst(Type *type, Float *data, SInt32 *pOffset)
buffer = galloc(8u); buffer = galloc(8u);
CMach_InitFloatMem(type, *data, buffer); CMach_InitFloatMem(type, *data, buffer);
if (cparamblkptr->isPrecompiling == 1) if (cparamblkptr->precompile == 1)
CError_Error(CErrorStr180); CError_Error(CErrorStr180);
for (entry = doubleconstpool; entry; entry = entry->next) { for (entry = doubleconstpool; entry; entry = entry->next) {
@ -365,7 +365,7 @@ static Object *CreatePooledFloatConst(Type *type, Float *data, SInt32 *pOffset)
buffer = galloc(4u); buffer = galloc(4u);
CMach_InitFloatMem(type, *data, buffer); CMach_InitFloatMem(type, *data, buffer);
if (cparamblkptr->isPrecompiling == 1) if (cparamblkptr->precompile == 1)
CError_Error(CErrorStr180); CError_Error(CErrorStr180);
for (entry = floatconstpool; entry; entry = entry->next) { for (entry = floatconstpool; entry; entry = entry->next) {
@ -441,7 +441,7 @@ static void RewriteVectorConst(ENode *expr) {
CMach_InitVectorMem(expr->rtype, expr->data.vector128val, data, 1); CMach_InitVectorMem(expr->rtype, expr->data.vector128val, data, 1);
if (cparamblkptr->isPrecompiling == 1) if (cparamblkptr->precompile == 1)
CError_Error(CErrorStr180); CError_Error(CErrorStr180);
for (entry = vectorconstpool; entry; entry = entry->next) { for (entry = vectorconstpool; entry; entry = entry->next) {
@ -1391,7 +1391,7 @@ Boolean TOC_use_isel(ENode *expr, Boolean flag) {
if (flag) if (flag)
opt = 10; opt = 10;
else else
opt = copts.x1E; opt = copts.gen_isel;
if (!opt) return 0; if (!opt) return 0;
if (!copts.peephole) return 0; if (!copts.peephole) return 0;
@ -2232,7 +2232,7 @@ Object *createstaticinitobject(void) {
TypeFunc *tfunc; TypeFunc *tfunc;
Object *obj; Object *obj;
COS_FileGetFSSpecInfo(&cparamblkptr->mainFileSpec, NULL, NULL, fname); COS_FileGetFSSpecInfo(&cparamblkptr->sourcefile, NULL, NULL, fname);
sprintf(buf, "__sinit_%*.*s", -fname[0], fname[0], &fname[1]); sprintf(buf, "__sinit_%*.*s", -fname[0], fname[0], &fname[1]);
for (p = &buf[1]; *p; p++) { for (p = &buf[1]; *p; p++) {
if (*p == '.') if (*p == '.')

View File

@ -7,9 +7,9 @@ extern Boolean gUseTokenStreamSource;
extern Boolean gForceSourceLoc; extern Boolean gForceSourceLoc;
extern Boolean gUseNameTable; extern Boolean gUseNameTable;
extern void CBrowse_Setup(CParams *params); extern void CBrowse_Setup(CompilerLinkerParamBlk *params);
extern void CBrowse_Finish(CParams *params); extern void CBrowse_Finish(CompilerLinkerParamBlk *params);
extern void CBrowse_Cleanup(CParams *params); extern void CBrowse_Cleanup(CompilerLinkerParamBlk *params);
extern void CBrowse_BeginClass(DeclInfo *di, GList *gl); extern void CBrowse_BeginClass(DeclInfo *di, GList *gl);
extern void CBrowse_AddClassMemberVar(ObjMemberVar *ivar, SInt32 startOffset, SInt32 endOffset); extern void CBrowse_AddClassMemberVar(ObjMemberVar *ivar, SInt32 startOffset, SInt32 endOffset);
extern void CBrowse_AddClassMemberFunction(Object *object, SInt32 startOffset, SInt32 endOffset); extern void CBrowse_AddClassMemberFunction(Object *object, SInt32 startOffset, SInt32 endOffset);

View File

@ -6,7 +6,7 @@
extern Boolean systemHandles; extern Boolean systemHandles;
extern Boolean crippled; extern Boolean crippled;
extern SInt32 license_cookie; extern SInt32 license_cookie;
extern CParams cparams; extern CompilerLinkerParamBlk cparams;
extern CWPLUGIN_ENTRY(MWC_main)(CWPluginContext context); extern CWPLUGIN_ENTRY(MWC_main)(CWPluginContext context);
extern void PrintProgressFunction(const char *str); extern void PrintProgressFunction(const char *str);

View File

@ -53,82 +53,81 @@ enum {
}; };
// not sure how many of these are char and how many are unsigned char or Boolean typedef struct CompilerLinkerOptions {
typedef struct COpts { Boolean littleendian;
Boolean little_endian;
Boolean codegen_dynamic; Boolean codegen_dynamic;
Boolean codegen_pic; Boolean codegen_pic;
Boolean no_common; Boolean no_common;
Boolean no_implicit_templates; Boolean no_implicit_templates;
Boolean absolutepath; // determines the path written to debug info Boolean absolutepath; // determines the path written to debug info
char x06; // linker/objgen related char x06; // linker/objgen related
short cpu; short processor;
char schedule_cpu; char scheduling;
char schedule_mode; // may be an enum?? char schedule_factor;
SInt32 debuglisting; SInt32 debuglisting;
Boolean profile; Boolean profile;
Boolean traceback; Boolean traceback;
Boolean disable_registers; Boolean disable_registers;
Boolean fp_contract; Boolean fp_contract;
Boolean no_register_save_helpers; Boolean no_register_save_helpers;
Boolean ppc_unroll_speculative; Boolean unroll_speculative;
short ppc_unroll_instructions_limit; short unroll_instr_limit;
short ppc_unroll_factor_limit; short unroll_factor_limit;
Boolean altivec_model; Boolean altivec_model;
UInt8 altivec_vrsave; UInt8 altivec_vrsave;
UInt8 code_alignment; UInt8 function_align;
UInt8 x1D; UInt8 x1D;
UInt8 x1E; // some register used in TOC_use_isel UInt8 gen_isel;
UInt8 gen_fsel; UInt8 gen_fsel;
Boolean ppc_opt_bclr_bcctr; Boolean opt_bcc_lr_ctr;
Boolean use_lmw_stmw; Boolean use_lmw_stmw;
char report_heap_info; char report_heap_info;
Boolean misaligned_mem_access; Boolean misaligned_mem_access;
Boolean switch_tables; Boolean switch_tables;
char prepare_compress; Boolean prepare_compress;
char some_alignment; // used in CMach_AllocationAlignment char min_struct_alignment; // used in CMach_AllocationAlignment
Boolean asmsemicolcomment; Boolean asmsemicolcomment;
Boolean asmpoundcomment; Boolean asmpoundcomment;
StringPtr oldprefixname; StringPtr oldprefixname;
short inlinelevel; short inlinelevel;
int inline_max_size; int inlinemaxsize;
int inline_max_total_size; int inlinemaxtotalsize;
Boolean inline_bottom_up; Boolean inline_bottom_up;
Boolean cplusplus; Boolean cplusplus;
Boolean ecplusplus; Boolean ecplusplus;
Boolean objective_c; Boolean objective_c;
Boolean objc_strict; Boolean objc_strict;
Boolean ARM_conform; Boolean ARMconform;
Boolean ARM_scoping; Boolean ARMscoping;
Boolean require_prototypes; Boolean checkprotos;
Boolean trigraphs; Boolean trigraphs;
Boolean only_std_keywords; Boolean onlystdkeywords;
Boolean enumsalwaysint; Boolean enumsalwaysint;
Boolean ANSI_strict; Boolean ANSIstrict;
Boolean mpwc_relax; Boolean mpwc_relax;
Boolean mpwc_newline; Boolean mpwc_newline;
Boolean ignore_oldstyle; Boolean ignore_oldstyle;
Boolean cpp_extensions; Boolean cpp_extensions;
Boolean pointercast_lvalue; Boolean pointercast_lvalue;
Boolean useRTTI; Boolean RTTI;
Boolean delete_exception; Boolean delete_exception;
char _4B; Boolean test_dummy;
Boolean oldalignment; Boolean oldalignment;
Boolean unsignedchars; Boolean unsigned_char;
Boolean multibyteaware; Boolean multibyteaware;
Boolean autoinline; Boolean auto_inline;
Boolean defer_codegen; Boolean defer_codegen;
Boolean direct_to_som; Boolean direct_to_som;
Boolean som_env_check; Boolean som_env_check;
Boolean som_call_opt; Boolean som_call_optimize;
Boolean booltruefalse; Boolean booltruefalse;
char old_enum_mangler; Boolean old_enum_mangler;
Boolean longlong; Boolean longlong;
Boolean longlong_enums; Boolean longlong_enums;
char no_tfuncinline; Boolean no_tfuncinline;
Boolean _59; Boolean always_vdispatch;
Boolean flat_include; Boolean flat_include;
char syspath_once; Boolean syspath_once;
Boolean always_import; Boolean always_import;
Boolean simple_class_byval; Boolean simple_class_byval;
Boolean wchar_type; Boolean wchar_type;
@ -136,16 +135,16 @@ typedef struct COpts {
Boolean vbase_abi_v2; Boolean vbase_abi_v2;
Boolean def_inherited; Boolean def_inherited;
Boolean template_patch; Boolean template_patch;
char template_friends; Boolean template_friends;
Boolean faster_pch_gen; Boolean faster_pch_gen;
Boolean array_new_delete; Boolean array_new_delete;
Boolean dollar_identifiers; Boolean dollar_identifiers;
char def_inline_tfuncs; Boolean def_inline_tfuncs;
Boolean arg_dep_lookup; Boolean arg_dep_lookup;
Boolean simple_prepdump; Boolean simple_prepdump;
Boolean line_prepdump; Boolean line_prepdump;
Boolean fullpath_prepdump; Boolean fullpath_prepdump;
char old_mtemplparser; Boolean old_mtemplparser;
Boolean suppress_init_code; Boolean suppress_init_code;
Boolean reverse_bitfields; Boolean reverse_bitfields;
Boolean c9x; Boolean c9x;
@ -153,20 +152,20 @@ typedef struct COpts {
Boolean no_static_dtors; Boolean no_static_dtors;
Boolean longlong_prepeval; Boolean longlong_prepeval;
Boolean const_strings; Boolean const_strings;
char dumpir; Boolean dumpir;
Boolean experimental; Boolean experimental;
Boolean gcc_extensions; Boolean gcc_extensions;
char stdc_fp_contract; Boolean stdc_fp_contract;
char stdc_fenv_access; Boolean stdc_fenv_access;
char stdc_cx_limitedr; Boolean stdc_cx_limitedr;
Boolean old_argmatch; Boolean old_argmatch;
Boolean optEH; Boolean optEH;
Boolean optEH2; Boolean optEH2;
Boolean new_mangler; Boolean new_mangler;
char microsoft; Boolean microsoft_EH;
Boolean warningerrors; Boolean warningerrors;
Boolean pedantic; Boolean pedantic;
Boolean check_header_flags; Boolean checkprecompflags;
Boolean supress_warnings; Boolean supress_warnings;
Boolean warn_illpragma; Boolean warn_illpragma;
Boolean warn_emptydecl; Boolean warn_emptydecl;
@ -183,51 +182,51 @@ typedef struct COpts {
Boolean warn_no_side_effect; Boolean warn_no_side_effect;
Boolean warn_resultnotused; Boolean warn_resultnotused;
Boolean warn_ptr_int_conv; Boolean warn_ptr_int_conv;
char align_mode; char structalignment;
Boolean align_array_members; Boolean alignarraymembers;
Boolean dont_reuse_strings; Boolean dont_reuse_strings;
Boolean pool_strings; Boolean poolstrings;
Boolean explicit_zero_data; Boolean explicit_zero_data;
Boolean readonly_strings; Boolean readonly_strings;
Boolean exceptions; Boolean exceptions;
char _99; Boolean dddummy;
Boolean dont_inline; Boolean dontinline;
Boolean always_inline; Boolean alwaysinline;
Boolean peephole; Boolean peephole;
Boolean global_optimizer; Boolean globaloptimizer;
char side_effects; Boolean sideeffects;
Boolean internal; Boolean cfm_internal;
Boolean import; Boolean cfm_import;
Boolean export; Boolean cfm_export;
Boolean lib_export; Boolean cfm_lib_export;
Boolean nosyminline; Boolean nosyminline;
char force_active; Boolean force_active;
char optimizationlevel; char optimizationlevel;
Boolean optimize_for_size; Boolean optimizesize;
Boolean optimizewithasm; Boolean optimizewithasm;
Boolean crippled; Boolean crippled;
Boolean opt_common_subs; Boolean commonsubs;
Boolean opt_loop_invariants; Boolean loopinvariants;
Boolean opt_propagation; Boolean propagation;
Boolean opt_dead_assignments; Boolean deadstore;
Boolean opt_strength_reduction; Boolean strengthreduction;
Boolean opt_strength_reduction_strict; Boolean strengthreductionstrict;
Boolean opt_dead_code; Boolean deadcode;
Boolean opt_lifetimes; Boolean lifetimes;
char _B1; // unused? Boolean logopts;
Boolean opt_unroll_loops; Boolean unrolling;
char opt_vectorize_loops; Boolean vectorizeloops;
Boolean _B4; // amount of IRO passes? Boolean multiplepasses;
Boolean opt_pointer_analysis; Boolean opt_pointer_analysis;
unsigned char opt_pointer_analysis_mode; UInt8 opt_pointer_analysis_mode;
char loop_unroll_count; char unrollfactor;
char loop_unroll_size_threshold; char unrollinstrfactor;
Boolean isGeneratingDebugInfo; Boolean filesyminfo;
CWDataType pchCreator; CWDataType appltype;
CWDataType pchType; CWDataType headtype;
CWDataType text; CWDataType texttype;
HashNameNode *forcedSegment; // when set by #pragma segment HashNameNode *cursegmentname; // when set by #pragma segment
} COpts; } CompilerLinkerOptions;
typedef struct ParserTryBlock { typedef struct ParserTryBlock {
struct ParserTryBlock *next; struct ParserTryBlock *next;
@ -290,7 +289,7 @@ extern Object *Xthrw_func;
extern Object *Xicth_func; extern Object *Xicth_func;
extern Object *Xecth_func; extern Object *Xecth_func;
extern Object *Xunex_func; extern Object *Xunex_func;
extern COpts copts; extern CompilerLinkerOptions copts;
extern struct GList name_mangle_list; extern struct GList name_mangle_list;
extern HashNameNode *no_name_node; extern HashNameNode *no_name_node;
extern HashNameNode *temp_argument_name; extern HashNameNode *temp_argument_name;

View File

@ -25,7 +25,7 @@ typedef struct TokenStack {
} TokenStack; } TokenStack;
//#define OPT_OFFSET(optname) ((short) (((char *) (&copts.optname)) - ((char *) &copts))) //#define OPT_OFFSET(optname) ((short) (((char *) (&copts.optname)) - ((char *) &copts)))
#define OPT_OFFSET(optname) ((UInt16) ( &((COpts *)0)->optname )) #define OPT_OFFSET(optname) ((UInt16) ( &((CompilerLinkerOptions *)0)->optname ))
enum { enum {
OPT_OFFSET_MASK = 0x1FFF, OPT_OFFSET_MASK = 0x1FFF,
OPT_FLAG_2000 = 0x2000, OPT_FLAG_2000 = 0x2000,
@ -33,7 +33,7 @@ enum {
OPT_FLAG_8000 = 0x8000 OPT_FLAG_8000 = 0x8000
}; };
extern CParams *cparamblkptr; extern CompilerLinkerParamBlk *cparamblkptr;
extern short tk; extern short tk;
extern CInt64 tkintconst; extern CInt64 tkintconst;
extern Float tkfloatconst; extern Float tkfloatconst;
@ -112,7 +112,7 @@ extern SInt32 CPrep_GetFileOffsetInfo(FileOffsetInfo *foi);
extern void CPrep_GetFileOffsetInfo2(FileOffsetInfo *foi, SInt32 *pLine, HashNameNode **pName); extern void CPrep_GetFileOffsetInfo2(FileOffsetInfo *foi, SInt32 *pLine, HashNameNode **pName);
extern void CPrep_ResetFileInfo(FileOffsetInfo *foi); extern void CPrep_ResetFileInfo(FileOffsetInfo *foi);
extern void CPrep_GetPrepPos(CPrepFileInfo **file, SInt32 *ppos); extern void CPrep_GetPrepPos(CPrepFileInfo **file, SInt32 *ppos);
extern UInt8 C_Compiler(CParams *param); extern UInt8 C_Compiler(CompilerLinkerParamBlk *param);
extern void poptokenseq(void); extern void poptokenseq(void);
extern void foundnl(void); extern void foundnl(void);
extern void newline(void); extern void newline(void);

View File

@ -112,7 +112,7 @@ typedef struct BClassList BClassList;
typedef struct CI_FuncData CI_FuncData; typedef struct CI_FuncData CI_FuncData;
typedef struct CLabel CLabel; typedef struct CLabel CLabel;
typedef struct ClassList ClassList; typedef struct ClassList ClassList;
typedef struct CParams CParams; typedef struct CompilerLinkerParamBlk CompilerLinkerParamBlk;
typedef struct CPrepFileInfo CPrepFileInfo; typedef struct CPrepFileInfo CPrepFileInfo;
typedef struct CScopeSave CScopeSave; typedef struct CScopeSave CScopeSave;
typedef struct DeclE DeclE; typedef struct DeclE DeclE;
@ -296,30 +296,30 @@ typedef enum RegClass {
#ifdef __MWERKS__ #ifdef __MWERKS__
#pragma options align=mac68k #pragma options align=mac68k
#endif #endif
struct CParams { struct CompilerLinkerParamBlk {
CWPluginContext context; CWPluginContext context;
CWObjectData objectdata; CWObjectData object;
Handle objectDataHandle; Handle objectdata;
Handle browseDataHandle; Handle browsedata;
SInt32 pluginRequest; SInt32 request;
SInt32 apiVersion; SInt32 version;
FSSpec projectFile; FSSpec targetfile;
SInt32 projectFileCount; SInt32 numfiles;
SInt32 mainFileNumber; SInt32 whichfile;
FSSpec mainFileSpec; FSSpec sourcefile;
const char *mainFileText; const char *sourcetext;
SInt32 mainFileTextLength; SInt32 sourcetextsize;
Boolean isPrecompiling; Boolean precompile;
Boolean isAutoPrecompiling; Boolean autoprecompile;
Boolean isPreprocessing; Boolean preprocess;
Boolean isGeneratingDebugInfo; Boolean SYMinfo;
Boolean isCachingPrecompiledHeaders; Boolean caching_includes;
CWBrowseOptions browseOptions; CWBrowseOptions browseoptions;
Boolean field276; Boolean recordbrowseinfo;
SInt16 mainFileID; SInt16 browserfileID;
CWDataType targetOS; CWDataType targetOS;
CWDataType targetCPU; CWDataType targetCPU;
char *targetName; char *idetargetname;
}; };
#define FITS_IN_SHORT(value) ( (value) == ((short) (value)) ) #define FITS_IN_SHORT(value) ( (value) == ((short) (value)) )

View File

@ -32,8 +32,8 @@ typedef struct BasePluginCallbacks {
typedef struct CompilerLinkerPluginCallbacks { typedef struct CompilerLinkerPluginCallbacks {
CWPLUGIN_ENTRY (*GetTargetList)(const struct CWTargetList **targetList); CWPLUGIN_ENTRY (*GetTargetList)(const struct CWTargetList **targetList);
CWPLUGIN_ENTRY (*GetDefaultMappingList)(const CWExtMapList **mappings); CWPLUGIN_ENTRY (*GetDefaultMappingList)(const CWExtMapList **mappings);
CWPLUGIN_ENTRY (*Unmangle)(); CWPLUGIN_ENTRY (*Unmangle)(CWUnmangleInfo *unmangleInfo);
CWPLUGIN_ENTRY (*BrSymbolEntryPoint)(); CWPLUGIN_ENTRY (*BrSymbolEntryPoint)(CWCompilerBrSymbolInfo *symbolInfo);
CWPLUGIN_ENTRY (*GetObjectFlags)(const CWObjectFlags **objectFlags); CWPLUGIN_ENTRY (*GetObjectFlags)(const CWObjectFlags **objectFlags);
CWPLUGIN_ENTRY (*WriteObjectFile)(const FSSpec *srcfss, const FSSpec *outfss, OSType creator, OSType type, Handle data); CWPLUGIN_ENTRY (*WriteObjectFile)(const FSSpec *srcfss, const FSSpec *outfss, OSType creator, OSType type, Handle data);
} CompilerLinkerPluginCallbacks; } CompilerLinkerPluginCallbacks;

View File

@ -203,7 +203,7 @@ struct CWParserCallbacks {
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
CW_CALLBACK CWCheckoutLicense(CWPluginContext context, const char *a, const char *b, SInt32 c, void *d, SInt32 *cookiePtr); CW_CALLBACK CWCheckoutLicense(CWPluginContext context, const char *featureName, const char *licenseVersion, SInt32 flags, void *reserved, SInt32 *cookie);
CW_CALLBACK CWCheckinLicense(CWPluginContext context, SInt32 cookie); CW_CALLBACK CWCheckinLicense(CWPluginContext context, SInt32 cookie);
CW_CALLBACK CWOSErrorMessage(CWPluginContext context, const char *msg, OSErr errorcode); CW_CALLBACK CWOSErrorMessage(CWPluginContext context, const char *msg, OSErr errorcode);
@ -214,7 +214,7 @@ CW_CALLBACK CWSecretDetachHandle(CWPluginContext context, CWMemHandle memHandle,
CW_CALLBACK CWSecretPeekHandle(CWPluginContext context, CWMemHandle memHandle, Handle *handle); CW_CALLBACK CWSecretPeekHandle(CWPluginContext context, CWMemHandle memHandle, Handle *handle);
CW_CALLBACK CWSecretGetNamedPreferences(CWPluginContext context, const char *prefsname, Handle *prefsdata); CW_CALLBACK CWSecretGetNamedPreferences(CWPluginContext context, const char *prefsname, Handle *prefsdata);
CW_CALLBACK CWParserGetBuildDate(CWPluginContext context, const char **buildDate, const char **buildTime); CW_CALLBACK CWParserGetBuildDate(CWPluginContext context, const char **bdate, const char **btime);
CW_CALLBACK CWParserGetCommandLine(CWPluginContext context, CWCommandLineArgs **args); CW_CALLBACK CWParserGetCommandLine(CWPluginContext context, CWCommandLineArgs **args);
CW_CALLBACK CWParserGetTargetInfo(CWPluginContext context, CWDataType *cpu, CWDataType *os); CW_CALLBACK CWParserGetTargetInfo(CWPluginContext context, CWDataType *cpu, CWDataType *os);
CW_CALLBACK CWParserGetToolInfo(CWPluginContext context, const ToolVersionInfo **toolVersionInfo); CW_CALLBACK CWParserGetToolInfo(CWPluginContext context, const ToolVersionInfo **toolVersionInfo);

View File

@ -5,207 +5,212 @@ export MWCIncludes=/usr/include
MWC_FLAGS="-c -g -opt l=4,noschedule,speed -enum min -Iincludes -Isdk_hdrs -w all,nounused,nonotinlined -wchar_t on -bool off -Cpp_exceptions off -maxwarnings 10" MWC_FLAGS="-c -g -opt l=4,noschedule,speed -enum min -Iincludes -Isdk_hdrs -w all,nounused,nonotinlined -wchar_t on -bool off -Cpp_exceptions off -maxwarnings 10"
#~/bin/mwccppc $MWC_FLAGS -o objs/CLCompilerLinkerDropin_V10.o command_line/CmdLine/Src/Callbacks/CLCompilerLinkerDropin_V10.cpp # CmdLine
#~/bin/mwccppc $MWC_FLAGS -o objs/CLDropinCallbacks_V10.o command_line/CmdLine/Src/Callbacks/CLDropinCallbacks_V10.cpp ~/bin/mwccppc $MWC_FLAGS -o objs/CLCompilerLinkerDropin_V10.o command_line/CmdLine/Src/Callbacks/CLCompilerLinkerDropin_V10.cpp
#~/bin/mwccppc $MWC_FLAGS -o objs/CLParserCallbacks_V1.o command_line/CmdLine/Src/Callbacks/CLParserCallbacks_V1.cpp ~/bin/mwccppc $MWC_FLAGS -o objs/CLDropinCallbacks_V10.o command_line/CmdLine/Src/Callbacks/CLDropinCallbacks_V10.cpp
# ~/bin/mwccppc $MWC_FLAGS -o objs/CLParserCallbacks_V1.o command_line/CmdLine/Src/Callbacks/CLParserCallbacks_V1.cpp
#~/bin/mwccppc $MWC_FLAGS -o objs/CLStaticMain.o command_line/CmdLine/Src/Clients/CLStaticMain.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ClientGlue.o command_line/CmdLine/Src/Clients/ClientGlue.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLStaticMain.o command_line/CmdLine/Src/Clients/CLStaticMain.c
# ~/bin/mwccppc $MWC_FLAGS -o objs/ClientGlue.o command_line/CmdLine/Src/Clients/ClientGlue.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLErrors.o command_line/CmdLine/Src/Envir/CLErrors.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLIO.o command_line/CmdLine/Src/Envir/CLIO.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLErrors.o command_line/CmdLine/Src/Envir/CLErrors.c
# ~/bin/mwccppc $MWC_FLAGS -o objs/CLIO.o command_line/CmdLine/Src/Envir/CLIO.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ErrMgr.o command_line/CmdLine/Src/MacEmul/ErrMgr.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Files.o command_line/CmdLine/Src/MacEmul/Files.c ~/bin/mwccppc $MWC_FLAGS -o objs/ErrMgr.o command_line/CmdLine/Src/MacEmul/ErrMgr.c
#~/bin/mwccppc $MWC_FLAGS -o objs/LowMem.o command_line/CmdLine/Src/MacEmul/LowMem.c ~/bin/mwccppc $MWC_FLAGS -o objs/Files.o command_line/CmdLine/Src/MacEmul/Files.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Memory.o command_line/CmdLine/Src/MacEmul/Memory.c ~/bin/mwccppc $MWC_FLAGS -o objs/LowMem.o command_line/CmdLine/Src/MacEmul/LowMem.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Resources.o command_line/CmdLine/Src/MacEmul/Resources.c ~/bin/mwccppc $MWC_FLAGS -o objs/Memory.o command_line/CmdLine/Src/MacEmul/Memory.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ResourceStrings.o command_line/CmdLine/Src/MacEmul/ResourceStrings.c ~/bin/mwccppc $MWC_FLAGS -o objs/Resources.o command_line/CmdLine/Src/MacEmul/Resources.c
#~/bin/mwccppc $MWC_FLAGS -o objs/TextUtils.o command_line/CmdLine/Src/MacEmul/TextUtils.c ~/bin/mwccppc $MWC_FLAGS -o objs/ResourceStrings.o command_line/CmdLine/Src/MacEmul/ResourceStrings.c
# ~/bin/mwccppc $MWC_FLAGS -o objs/TextUtils.o command_line/CmdLine/Src/MacEmul/TextUtils.c
#~/bin/mwccppc $MWC_FLAGS -o objs/FileHandles.o command_line/CmdLine/Src/OSLib/FileHandles.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Generic.o command_line/CmdLine/Src/OSLib/Generic.c ~/bin/mwccppc $MWC_FLAGS -o objs/FileHandles.o command_line/CmdLine/Src/OSLib/FileHandles.c
#~/bin/mwccppc $MWC_FLAGS -o objs/MacFileTypes.o command_line/CmdLine/Src/OSLib/MacFileTypes.c ~/bin/mwccppc $MWC_FLAGS -o objs/Generic.o command_line/CmdLine/Src/OSLib/Generic.c
#~/bin/mwccppc $MWC_FLAGS -o objs/MacSpecs.o command_line/CmdLine/Src/OSLib/MacSpecs.c ~/bin/mwccppc $MWC_FLAGS -o objs/MacFileTypes.o command_line/CmdLine/Src/OSLib/MacFileTypes.c
#~/bin/mwccppc $MWC_FLAGS -o objs/MemUtils.o command_line/CmdLine/Src/OSLib/MemUtils.c ~/bin/mwccppc $MWC_FLAGS -o objs/MacSpecs.o command_line/CmdLine/Src/OSLib/MacSpecs.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Posix.o command_line/CmdLine/Src/OSLib/Posix.c ~/bin/mwccppc $MWC_FLAGS -o objs/MemUtils.o command_line/CmdLine/Src/OSLib/MemUtils.c
#~/bin/mwccppc $MWC_FLAGS -o objs/StringExtras.o command_line/CmdLine/Src/OSLib/StringExtras.c ~/bin/mwccppc $MWC_FLAGS -o objs/Posix.o command_line/CmdLine/Src/OSLib/Posix.c
#~/bin/mwccppc $MWC_FLAGS -o objs/StringUtils.o command_line/CmdLine/Src/OSLib/StringUtils.c ~/bin/mwccppc $MWC_FLAGS -o objs/StringExtras.o command_line/CmdLine/Src/OSLib/StringExtras.c
# ~/bin/mwccppc $MWC_FLAGS -o objs/StringUtils.o command_line/CmdLine/Src/OSLib/StringUtils.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLPlugins.o command_line/CmdLine/Src/Plugins/CLPlugins.c
# ~/bin/mwccppc $MWC_FLAGS -o objs/CLPlugins.o command_line/CmdLine/Src/Plugins/CLPlugins.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLAccessPaths.o command_line/CmdLine/Src/Project/CLAccessPaths.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLFiles.o command_line/CmdLine/Src/Project/CLFiles.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLAccessPaths.o command_line/CmdLine/Src/Project/CLAccessPaths.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLOverlays.o command_line/CmdLine/Src/Project/CLOverlays.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLFiles.o command_line/CmdLine/Src/Project/CLFiles.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLProj.o command_line/CmdLine/Src/Project/CLProj.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLOverlays.o command_line/CmdLine/Src/Project/CLOverlays.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLSegs.o command_line/CmdLine/Src/Project/CLSegs.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLProj.o command_line/CmdLine/Src/Project/CLProj.c
# ~/bin/mwccppc $MWC_FLAGS -o objs/CLSegs.o command_line/CmdLine/Src/Project/CLSegs.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLBrowser.o command_line/CmdLine/Src/CLBrowser.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLDependencies.o command_line/CmdLine/Src/CLDependencies.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLBrowser.o command_line/CmdLine/Src/CLBrowser.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLFileOps.o command_line/CmdLine/Src/CLFileOps.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLDependencies.o command_line/CmdLine/Src/CLDependencies.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLIncludeFileCache.o command_line/CmdLine/Src/CLIncludeFileCache.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLFileOps.o command_line/CmdLine/Src/CLFileOps.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLLicenses.o command_line/CmdLine/Src/CLLicenses.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLFileTypes.o command_line/CmdLine/Src/CLFileTypes.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLLoadAndCache.o command_line/CmdLine/Src/CLLoadAndCache.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLIncludeFileCache.o command_line/CmdLine/Src/CLIncludeFileCache.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLMain.o command_line/CmdLine/Src/CLMain.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLLicenses.o command_line/CmdLine/Src/CLLicenses.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLPluginRequests.o command_line/CmdLine/Src/CLPluginRequests.cpp ~/bin/mwccppc $MWC_FLAGS -o objs/CLLoadAndCache.o command_line/CmdLine/Src/CLLoadAndCache.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLPrefs.o command_line/CmdLine/Src/CLPrefs.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLMain.o command_line/CmdLine/Src/CLMain.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLTarg.o command_line/CmdLine/Src/CLTarg.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLPluginRequests.o command_line/CmdLine/Src/CLPluginRequests.cpp
#~/bin/mwccppc $MWC_FLAGS -o objs/CLToolExec.o command_line/CmdLine/Src/CLToolExec.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLPrefs.o command_line/CmdLine/Src/CLPrefs.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CLWriteObjectFile.o command_line/CmdLine/Src/CLWriteObjectFile.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLTarg.o command_line/CmdLine/Src/CLTarg.c
#~/bin/mwccppc $MWC_FLAGS -o objs/uFileTypeMappings.o command_line/CmdLine/Src/uFileTypeMappings.c ~/bin/mwccppc $MWC_FLAGS -o objs/CLToolExec.o command_line/CmdLine/Src/CLToolExec.c
# ~/bin/mwccppc $MWC_FLAGS -o objs/CLWriteObjectFile.o command_line/CmdLine/Src/CLWriteObjectFile.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ParserGlue-mach-ppc-cc.o compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Options/Glue/ParserGlue-mach-ppc-cc.c
~/bin/mwccppc $MWC_FLAGS -o objs/TargetWarningHelpers-ppc-cc.o compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Options/Glue/TargetWarningHelpers-ppc-cc.c ~/bin/mwccppc $MWC_FLAGS -o objs/ParserGlue-mach-ppc-cc.o compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Options/Glue/ParserGlue-mach-ppc-cc.c
# ~/bin/mwccppc $MWC_FLAGS -o objs/TargetOptimizer-ppc-mach.o compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Options/Glue/TargetOptimizer-ppc-mach.c
~/bin/mwccppc $MWC_FLAGS -o objs/cc-mach-ppc.o compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Plugin/cc-mach-ppc.c ~/bin/mwccppc $MWC_FLAGS -o objs/cc-mach-ppc.o compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Plugin/cc-mach-ppc.c
~/bin/mwccppc $MWC_FLAGS -o objs/libimp-mach-ppc.o compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Plugin/libimp-mach-ppc.c ~/bin/mwccppc $MWC_FLAGS -o objs/libimp-mach-ppc.o compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Plugin/libimp-mach-ppc.c
#
#~/bin/mwccppc $MWC_FLAGS -o objs/cc-mach-ppc-mw.o compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Static/cc-mach-ppc-mw.c ~/bin/mwccppc $MWC_FLAGS -o objs/cc-mach-ppc-mw.o compiler_and_linker/CmdLine_Tools/MacOS_PPC/Tools_PPC/Src/Static/cc-mach-ppc-mw.c
#
~/bin/mwccppc $MWC_FLAGS -o objs/CPrep.o compiler_and_linker/FrontEnd/C/CPrep.c ~/bin/mwccppc $MWC_FLAGS -o objs/CPrep.o compiler_and_linker/FrontEnd/C/CPrep.c
~/bin/mwccppc $MWC_FLAGS -o objs/CPrepTokenizer.o compiler_and_linker/FrontEnd/C/CPrepTokenizer.c ~/bin/mwccppc $MWC_FLAGS -o objs/CPrepTokenizer.o compiler_and_linker/FrontEnd/C/CPrepTokenizer.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CScope.o compiler_and_linker/FrontEnd/C/CScope.c ~/bin/mwccppc $MWC_FLAGS -o objs/CScope.o compiler_and_linker/FrontEnd/C/CScope.c
#
#~/bin/mwccppc $MWC_FLAGS -o objs/CompilerTools.o compiler_and_linker/FrontEnd/Common/CompilerTools.c ~/bin/mwccppc $MWC_FLAGS -o objs/CompilerTools.o compiler_and_linker/FrontEnd/Common/CompilerTools.c
#
#~/bin/mwccppc $MWC_FLAGS -o objs/AddPropagation.o compiler_and_linker/unsorted/AddPropagation.c ~/bin/mwccppc $MWC_FLAGS -o objs/AddPropagation.o compiler_and_linker/unsorted/AddPropagation.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Alias.o compiler_and_linker/unsorted/Alias.c ~/bin/mwccppc $MWC_FLAGS -o objs/Alias.o compiler_and_linker/unsorted/Alias.c
#~/bin/mwccppc $MWC_FLAGS -o objs/BitVectors.o compiler_and_linker/unsorted/BitVectors.c ~/bin/mwccppc $MWC_FLAGS -o objs/BitVectors.o compiler_and_linker/unsorted/BitVectors.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CABI.o compiler_and_linker/unsorted/CABI.c ~/bin/mwccppc $MWC_FLAGS -o objs/CABI.o compiler_and_linker/unsorted/CABI.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CBrowse.o compiler_and_linker/unsorted/CBrowse.c ~/bin/mwccppc $MWC_FLAGS -o objs/CBrowse.o compiler_and_linker/unsorted/CBrowse.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CClass.o compiler_and_linker/unsorted/CClass.c ~/bin/mwccppc $MWC_FLAGS -o objs/CClass.o compiler_and_linker/unsorted/CClass.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CCompiler.o compiler_and_linker/unsorted/CCompiler.c ~/bin/mwccppc $MWC_FLAGS -o objs/CCompiler.o compiler_and_linker/unsorted/CCompiler.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CDecl.o compiler_and_linker/unsorted/CDecl.c ~/bin/mwccppc $MWC_FLAGS -o objs/CDecl.o compiler_and_linker/unsorted/CDecl.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CError.o compiler_and_linker/unsorted/CError.c ~/bin/mwccppc $MWC_FLAGS -o objs/CError.o compiler_and_linker/unsorted/CError.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CException.o compiler_and_linker/unsorted/CException.c ~/bin/mwccppc $MWC_FLAGS -o objs/CException.o compiler_and_linker/unsorted/CException.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CExpr.o compiler_and_linker/unsorted/CExpr.c ~/bin/mwccppc $MWC_FLAGS -o objs/CExpr.o compiler_and_linker/unsorted/CExpr.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CExpr2.o compiler_and_linker/unsorted/CExpr2.c ~/bin/mwccppc $MWC_FLAGS -o objs/CExpr2.o compiler_and_linker/unsorted/CExpr2.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CExprConvMatch.o compiler_and_linker/unsorted/CExprConvMatch.c ~/bin/mwccppc $MWC_FLAGS -o objs/CExprConvMatch.o compiler_and_linker/unsorted/CExprConvMatch.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CFunc.o compiler_and_linker/unsorted/CFunc.c ~/bin/mwccppc $MWC_FLAGS -o objs/CFunc.o compiler_and_linker/unsorted/CFunc.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CInit.o compiler_and_linker/unsorted/CInit.c ~/bin/mwccppc $MWC_FLAGS -o objs/CInit.o compiler_and_linker/unsorted/CInit.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CInline.o compiler_and_linker/unsorted/CInline.c ~/bin/mwccppc $MWC_FLAGS -o objs/CInline.o compiler_and_linker/unsorted/CInline.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CInt64.o compiler_and_linker/unsorted/CInt64.c ~/bin/mwccppc $MWC_FLAGS -o objs/CInt64.o compiler_and_linker/unsorted/CInt64.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CIRTransform.o compiler_and_linker/unsorted/CIRTransform.c ~/bin/mwccppc $MWC_FLAGS -o objs/CIRTransform.o compiler_and_linker/unsorted/CIRTransform.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CMachine.o compiler_and_linker/unsorted/CMachine.c ~/bin/mwccppc $MWC_FLAGS -o objs/CMachine.o compiler_and_linker/unsorted/CMachine.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CMangler.o compiler_and_linker/unsorted/CMangler.c ~/bin/mwccppc $MWC_FLAGS -o objs/CMangler.o compiler_and_linker/unsorted/CMangler.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CObjC.o compiler_and_linker/unsorted/CObjC.c ~/bin/mwccppc $MWC_FLAGS -o objs/CObjC.o compiler_and_linker/unsorted/CObjC.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CObjCModern.o compiler_and_linker/unsorted/CObjCModern.c ~/bin/mwccppc $MWC_FLAGS -o objs/CObjCModern.o compiler_and_linker/unsorted/CObjCModern.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CodeGen.o compiler_and_linker/unsorted/CodeGen.c ~/bin/mwccppc $MWC_FLAGS -o objs/CodeGen.o compiler_and_linker/unsorted/CodeGen.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CodeGenOptPPC.o compiler_and_linker/unsorted/CodeGenOptPPC.c ~/bin/mwccppc $MWC_FLAGS -o objs/CodeGenOptPPC.o compiler_and_linker/unsorted/CodeGenOptPPC.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CodeMotion.o compiler_and_linker/unsorted/CodeMotion.c ~/bin/mwccppc $MWC_FLAGS -o objs/CodeMotion.o compiler_and_linker/unsorted/CodeMotion.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Coloring.o compiler_and_linker/unsorted/Coloring.c ~/bin/mwccppc $MWC_FLAGS -o objs/Coloring.o compiler_and_linker/unsorted/Coloring.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ConstantPropagation.o compiler_and_linker/unsorted/ConstantPropagation.c ~/bin/mwccppc $MWC_FLAGS -o objs/ConstantPropagation.o compiler_and_linker/unsorted/ConstantPropagation.c
#~/bin/mwccppc $MWC_FLAGS -o objs/COptimizer.o compiler_and_linker/unsorted/COptimizer.c ~/bin/mwccppc $MWC_FLAGS -o objs/COptimizer.o compiler_and_linker/unsorted/COptimizer.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CopyPropagation.o compiler_and_linker/unsorted/CopyPropagation.c ~/bin/mwccppc $MWC_FLAGS -o objs/CopyPropagation.o compiler_and_linker/unsorted/CopyPropagation.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CParser.o compiler_and_linker/unsorted/CParser.c ~/bin/mwccppc $MWC_FLAGS -o objs/CParser.o compiler_and_linker/unsorted/CParser.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CPrec.o compiler_and_linker/unsorted/CPrec.c ~/bin/mwccppc $MWC_FLAGS -o objs/CPrec.o compiler_and_linker/unsorted/CPrec.c
~/bin/mwccppc $MWC_FLAGS -o objs/CPreprocess.o compiler_and_linker/unsorted/CPreprocess.c ~/bin/mwccppc $MWC_FLAGS -o objs/CPreprocess.o compiler_and_linker/unsorted/CPreprocess.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CRTTI.o compiler_and_linker/unsorted/CRTTI.c ~/bin/mwccppc $MWC_FLAGS -o objs/CRTTI.o compiler_and_linker/unsorted/CRTTI.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CSOM.o compiler_and_linker/unsorted/CSOM.c ~/bin/mwccppc $MWC_FLAGS -o objs/CSOM.o compiler_and_linker/unsorted/CSOM.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CTemplateClass.o compiler_and_linker/unsorted/CTemplateClass.c ~/bin/mwccppc $MWC_FLAGS -o objs/CTemplateClass.o compiler_and_linker/unsorted/CTemplateClass.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CTemplateFunc.o compiler_and_linker/unsorted/CTemplateFunc.c ~/bin/mwccppc $MWC_FLAGS -o objs/CTemplateFunc.o compiler_and_linker/unsorted/CTemplateFunc.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CTemplateNew.o compiler_and_linker/unsorted/CTemplateNew.c ~/bin/mwccppc $MWC_FLAGS -o objs/CTemplateNew.o compiler_and_linker/unsorted/CTemplateNew.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CTemplateTools.o compiler_and_linker/unsorted/CTemplateTools.c ~/bin/mwccppc $MWC_FLAGS -o objs/CTemplateTools.o compiler_and_linker/unsorted/CTemplateTools.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Exceptions.o compiler_and_linker/unsorted/Exceptions.c ~/bin/mwccppc $MWC_FLAGS -o objs/Exceptions.o compiler_and_linker/unsorted/Exceptions.c
#~/bin/mwccppc $MWC_FLAGS -o objs/FuncLevelAsmPPC.o compiler_and_linker/unsorted/FuncLevelAsmPPC.c ~/bin/mwccppc $MWC_FLAGS -o objs/FuncLevelAsmPPC.o compiler_and_linker/unsorted/FuncLevelAsmPPC.c
#~/bin/mwccppc $MWC_FLAGS -o objs/FunctionCalls.o compiler_and_linker/unsorted/FunctionCalls.c ~/bin/mwccppc $MWC_FLAGS -o objs/FunctionCalls.o compiler_and_linker/unsorted/FunctionCalls.c
#~/bin/mwccppc $MWC_FLAGS -o objs/GCCInlineAsm.o compiler_and_linker/unsorted/GCCInlineAsm.c ~/bin/mwccppc $MWC_FLAGS -o objs/GCCInlineAsm.o compiler_and_linker/unsorted/GCCInlineAsm.c
#~/bin/mwccppc $MWC_FLAGS -o objs/GenStabs.o compiler_and_linker/unsorted/GenStabs.c ~/bin/mwccppc $MWC_FLAGS -o objs/GenStabs.o compiler_and_linker/unsorted/GenStabs.c
#~/bin/mwccppc $MWC_FLAGS -o objs/GlobalOptimizer.o compiler_and_linker/unsorted/GlobalOptimizer.c ~/bin/mwccppc $MWC_FLAGS -o objs/GlobalOptimizer.o compiler_and_linker/unsorted/GlobalOptimizer.c
#~/bin/mwccppc $MWC_FLAGS -o objs/InlineAsm.o compiler_and_linker/unsorted/InlineAsm.c ~/bin/mwccppc $MWC_FLAGS -o objs/InlineAsm.o compiler_and_linker/unsorted/InlineAsm.c
#~/bin/mwccppc $MWC_FLAGS -o objs/InlineAsmMnemonicsPPC.o compiler_and_linker/unsorted/InlineAsmMnemonicsPPC.c ~/bin/mwccppc $MWC_FLAGS -o objs/InlineAsmMnemonicsPPC.o compiler_and_linker/unsorted/InlineAsmMnemonicsPPC.c
#~/bin/mwccppc $MWC_FLAGS -o objs/InlineAsmPPC.o compiler_and_linker/unsorted/InlineAsmPPC.c ~/bin/mwccppc $MWC_FLAGS -o objs/InlineAsmPPC.o compiler_and_linker/unsorted/InlineAsmPPC.c
#~/bin/mwccppc $MWC_FLAGS -o objs/InlineAsmRegisters.o compiler_and_linker/unsorted/InlineAsmRegisters.c ~/bin/mwccppc $MWC_FLAGS -o objs/InlineAsmRegisters.o compiler_and_linker/unsorted/InlineAsmRegisters.c
#~/bin/mwccppc $MWC_FLAGS -o objs/InlineAsmRegistersPPC.o compiler_and_linker/unsorted/InlineAsmRegistersPPC.c ~/bin/mwccppc $MWC_FLAGS -o objs/InlineAsmRegistersPPC.o compiler_and_linker/unsorted/InlineAsmRegistersPPC.c
#~/bin/mwccppc $MWC_FLAGS -o objs/InstrSelection.o compiler_and_linker/unsorted/InstrSelection.c ~/bin/mwccppc $MWC_FLAGS -o objs/InstrSelection.o compiler_and_linker/unsorted/InstrSelection.c
#~/bin/mwccppc $MWC_FLAGS -o objs/InterferenceGraph.o compiler_and_linker/unsorted/InterferenceGraph.c ~/bin/mwccppc $MWC_FLAGS -o objs/InterferenceGraph.o compiler_and_linker/unsorted/InterferenceGraph.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Intrinsics.o compiler_and_linker/unsorted/Intrinsics.c ~/bin/mwccppc $MWC_FLAGS -o objs/Intrinsics.o compiler_and_linker/unsorted/Intrinsics.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroBitVect.o compiler_and_linker/unsorted/IroBitVect.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroBitVect.o compiler_and_linker/unsorted/IroBitVect.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroCSE.o compiler_and_linker/unsorted/IroCSE.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroCSE.o compiler_and_linker/unsorted/IroCSE.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroDump.o compiler_and_linker/unsorted/IroDump.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroDump.o compiler_and_linker/unsorted/IroDump.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroEmptyLoop.o compiler_and_linker/unsorted/IroEmptyLoop.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroEmptyLoop.o compiler_and_linker/unsorted/IroEmptyLoop.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroEval.o compiler_and_linker/unsorted/IroEval.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroEval.o compiler_and_linker/unsorted/IroEval.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroExprRegeneration.o compiler_and_linker/unsorted/IroExprRegeneration.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroExprRegeneration.o compiler_and_linker/unsorted/IroExprRegeneration.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroFlowgraph.o compiler_and_linker/unsorted/IroFlowgraph.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroFlowgraph.o compiler_and_linker/unsorted/IroFlowgraph.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroJump.o compiler_and_linker/unsorted/IroJump.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroJump.o compiler_and_linker/unsorted/IroJump.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroLinearForm.o compiler_and_linker/unsorted/IroLinearForm.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroLinearForm.o compiler_and_linker/unsorted/IroLinearForm.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroLoop.o compiler_and_linker/unsorted/IroLoop.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroLoop.o compiler_and_linker/unsorted/IroLoop.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroMalloc.o compiler_and_linker/unsorted/IroMalloc.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroMalloc.o compiler_and_linker/unsorted/IroMalloc.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroPointerAnalysis.o compiler_and_linker/unsorted/IroPointerAnalysis.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroPointerAnalysis.o compiler_and_linker/unsorted/IroPointerAnalysis.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroPropagate.o compiler_and_linker/unsorted/IroPropagate.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroPropagate.o compiler_and_linker/unsorted/IroPropagate.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IrOptimizer.o compiler_and_linker/unsorted/IrOptimizer.c ~/bin/mwccppc $MWC_FLAGS -o objs/IrOptimizer.o compiler_and_linker/unsorted/IrOptimizer.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroRangePropagation.o compiler_and_linker/unsorted/IroRangePropagation.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroRangePropagation.o compiler_and_linker/unsorted/IroRangePropagation.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroSubable.o compiler_and_linker/unsorted/IroSubable.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroSubable.o compiler_and_linker/unsorted/IroSubable.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroTransform.o compiler_and_linker/unsorted/IroTransform.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroTransform.o compiler_and_linker/unsorted/IroTransform.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroUnrollLoop.o compiler_and_linker/unsorted/IroUnrollLoop.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroUnrollLoop.o compiler_and_linker/unsorted/IroUnrollLoop.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IROUseDef.o compiler_and_linker/unsorted/IROUseDef.c ~/bin/mwccppc $MWC_FLAGS -o objs/IROUseDef.o compiler_and_linker/unsorted/IROUseDef.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroUtil.o compiler_and_linker/unsorted/IroUtil.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroUtil.o compiler_and_linker/unsorted/IroUtil.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IroVars.o compiler_and_linker/unsorted/IroVars.c ~/bin/mwccppc $MWC_FLAGS -o objs/IroVars.o compiler_and_linker/unsorted/IroVars.c
#~/bin/mwccppc $MWC_FLAGS -o objs/LiveVariables.o compiler_and_linker/unsorted/LiveVariables.c ~/bin/mwccppc $MWC_FLAGS -o objs/LiveVariables.o compiler_and_linker/unsorted/LiveVariables.c
#~/bin/mwccppc $MWC_FLAGS -o objs/LoadDeletion.o compiler_and_linker/unsorted/LoadDeletion.c ~/bin/mwccppc $MWC_FLAGS -o objs/LoadDeletion.o compiler_and_linker/unsorted/LoadDeletion.c
#~/bin/mwccppc $MWC_FLAGS -o objs/LoopDetection.o compiler_and_linker/unsorted/LoopDetection.c ~/bin/mwccppc $MWC_FLAGS -o objs/LoopDetection.o compiler_and_linker/unsorted/LoopDetection.c
#~/bin/mwccppc $MWC_FLAGS -o objs/LoopOptimization.o compiler_and_linker/unsorted/LoopOptimization.c ~/bin/mwccppc $MWC_FLAGS -o objs/LoopOptimization.o compiler_and_linker/unsorted/LoopOptimization.c
#~/bin/mwccppc $MWC_FLAGS -o objs/MachO.o compiler_and_linker/unsorted/MachO.c ~/bin/mwccppc $MWC_FLAGS -o objs/MachO.o compiler_and_linker/unsorted/MachO.c
#~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation601.o compiler_and_linker/unsorted/MachineSimulation601.c ~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation601.o compiler_and_linker/unsorted/MachineSimulation601.c
#~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation603.o compiler_and_linker/unsorted/MachineSimulation603.c ~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation603.o compiler_and_linker/unsorted/MachineSimulation603.c
#~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation603e.o compiler_and_linker/unsorted/MachineSimulation603e.c ~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation603e.o compiler_and_linker/unsorted/MachineSimulation603e.c
#~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation604.o compiler_and_linker/unsorted/MachineSimulation604.c ~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation604.o compiler_and_linker/unsorted/MachineSimulation604.c
#~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation7400.o compiler_and_linker/unsorted/MachineSimulation7400.c ~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation7400.o compiler_and_linker/unsorted/MachineSimulation7400.c
#~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation750.o compiler_and_linker/unsorted/MachineSimulation750.c ~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation750.o compiler_and_linker/unsorted/MachineSimulation750.c
#~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation821.o compiler_and_linker/unsorted/MachineSimulation821.c ~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulation821.o compiler_and_linker/unsorted/MachineSimulation821.c
#~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulationAltiVec.o compiler_and_linker/unsorted/MachineSimulationAltiVec.c ~/bin/mwccppc $MWC_FLAGS -o objs/MachineSimulationAltiVec.o compiler_and_linker/unsorted/MachineSimulationAltiVec.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ObjGenMachO.o compiler_and_linker/unsorted/ObjGenMachO.c ~/bin/mwccppc $MWC_FLAGS -o objs/ObjGenMachO.o compiler_and_linker/unsorted/ObjGenMachO.c
#~/bin/mwccppc $MWC_FLAGS -o objs/OpcodeInfo.o compiler_and_linker/unsorted/OpcodeInfo.c ~/bin/mwccppc $MWC_FLAGS -o objs/OpcodeInfo.o compiler_and_linker/unsorted/OpcodeInfo.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Operands.o compiler_and_linker/unsorted/Operands.c ~/bin/mwccppc $MWC_FLAGS -o objs/Operands.o compiler_and_linker/unsorted/Operands.c
#~/bin/mwccppc $MWC_FLAGS -o objs/PCode.o compiler_and_linker/unsorted/PCode.c ~/bin/mwccppc $MWC_FLAGS -o objs/PCode.o compiler_and_linker/unsorted/PCode.c
#~/bin/mwccppc $MWC_FLAGS -o objs/PCodeAssembly.o compiler_and_linker/unsorted/PCodeAssembly.c ~/bin/mwccppc $MWC_FLAGS -o objs/PCodeAssembly.o compiler_and_linker/unsorted/PCodeAssembly.c
#~/bin/mwccppc $MWC_FLAGS -o objs/PCodeInfo.o compiler_and_linker/unsorted/PCodeInfo.c ~/bin/mwccppc $MWC_FLAGS -o objs/PCodeInfo.o compiler_and_linker/unsorted/PCodeInfo.c
#~/bin/mwccppc $MWC_FLAGS -o objs/PCodeListing.o compiler_and_linker/unsorted/PCodeListing.c ~/bin/mwccppc $MWC_FLAGS -o objs/PCodeListing.o compiler_and_linker/unsorted/PCodeListing.c
#~/bin/mwccppc $MWC_FLAGS -o objs/PCodeUtilities.o compiler_and_linker/unsorted/PCodeUtilities.c ~/bin/mwccppc $MWC_FLAGS -o objs/PCodeUtilities.o compiler_and_linker/unsorted/PCodeUtilities.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Peephole.o compiler_and_linker/unsorted/Peephole.c ~/bin/mwccppc $MWC_FLAGS -o objs/Peephole.o compiler_and_linker/unsorted/Peephole.c
#~/bin/mwccppc $MWC_FLAGS -o objs/PPCError.o compiler_and_linker/unsorted/PPCError.c ~/bin/mwccppc $MWC_FLAGS -o objs/PPCError.o compiler_and_linker/unsorted/PPCError.c
#~/bin/mwccppc $MWC_FLAGS -o objs/RegisterInfo.o compiler_and_linker/unsorted/RegisterInfo.c ~/bin/mwccppc $MWC_FLAGS -o objs/RegisterInfo.o compiler_and_linker/unsorted/RegisterInfo.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Registers.o compiler_and_linker/unsorted/Registers.c ~/bin/mwccppc $MWC_FLAGS -o objs/Registers.o compiler_and_linker/unsorted/Registers.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ScanFloat.o compiler_and_linker/unsorted/ScanFloat.c ~/bin/mwccppc $MWC_FLAGS -o objs/ScanFloat.o compiler_and_linker/unsorted/ScanFloat.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Scheduler.o compiler_and_linker/unsorted/Scheduler.c ~/bin/mwccppc $MWC_FLAGS -o objs/Scheduler.o compiler_and_linker/unsorted/Scheduler.c
#~/bin/mwccppc $MWC_FLAGS -o objs/SpillCode.o compiler_and_linker/unsorted/SpillCode.c ~/bin/mwccppc $MWC_FLAGS -o objs/SpillCode.o compiler_and_linker/unsorted/SpillCode.c
#~/bin/mwccppc $MWC_FLAGS -o objs/StackFrame.o compiler_and_linker/unsorted/StackFrame.c ~/bin/mwccppc $MWC_FLAGS -o objs/StackFrame.o compiler_and_linker/unsorted/StackFrame.c
#~/bin/mwccppc $MWC_FLAGS -o objs/StrengthReduction.o compiler_and_linker/unsorted/StrengthReduction.c ~/bin/mwccppc $MWC_FLAGS -o objs/StrengthReduction.o compiler_and_linker/unsorted/StrengthReduction.c
#~/bin/mwccppc $MWC_FLAGS -o objs/StructMoves.o compiler_and_linker/unsorted/StructMoves.c ~/bin/mwccppc $MWC_FLAGS -o objs/StructMoves.o compiler_and_linker/unsorted/StructMoves.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Switch.o compiler_and_linker/unsorted/Switch.c ~/bin/mwccppc $MWC_FLAGS -o objs/Switch.o compiler_and_linker/unsorted/Switch.c
#~/bin/mwccppc $MWC_FLAGS -o objs/TOC.o compiler_and_linker/unsorted/TOC.c ~/bin/mwccppc $MWC_FLAGS -o objs/TOC.o compiler_and_linker/unsorted/TOC.c
#~/bin/mwccppc $MWC_FLAGS -o objs/uDump.o compiler_and_linker/unsorted/uDump.c ~/bin/mwccppc $MWC_FLAGS -o objs/uDump.o compiler_and_linker/unsorted/uDump.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Unmangle.o compiler_and_linker/unsorted/Unmangle.c ~/bin/mwccppc $MWC_FLAGS -o objs/Unmangle.o compiler_and_linker/unsorted/Unmangle.c
#~/bin/mwccppc $MWC_FLAGS -o objs/UseDefChains.o compiler_and_linker/unsorted/UseDefChains.c ~/bin/mwccppc $MWC_FLAGS -o objs/UseDefChains.o compiler_and_linker/unsorted/UseDefChains.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ValueNumbering.o compiler_and_linker/unsorted/ValueNumbering.c ~/bin/mwccppc $MWC_FLAGS -o objs/ValueNumbering.o compiler_and_linker/unsorted/ValueNumbering.c
#~/bin/mwccppc $MWC_FLAGS -o objs/VectorArraysToRegs.o compiler_and_linker/unsorted/VectorArraysToRegs.c ~/bin/mwccppc $MWC_FLAGS -o objs/VectorArraysToRegs.o compiler_and_linker/unsorted/VectorArraysToRegs.c
#
#~/bin/mwccppc $MWC_FLAGS -o objs/Arguments.o unsorted/Arguments.c ~/bin/mwccppc $MWC_FLAGS -o objs/CmdLineBuildDate.o unsorted/CmdLineBuildDate.c
#~/bin/mwccppc $MWC_FLAGS -o objs/CmdLineBuildDate.o unsorted/CmdLineBuildDate.c ~/bin/mwccppc $MWC_FLAGS -o objs/uLibImporter.o unsorted/uLibImporter.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Help.o unsorted/Help.c
#~/bin/mwccppc $MWC_FLAGS -o objs/IO.o unsorted/IO.c # C++_Parser
#~/bin/mwccppc $MWC_FLAGS -o objs/OptimizerHelpers.o unsorted/OptimizerHelpers.c ~/bin/mwccppc $MWC_FLAGS -o objs/Arguments.o command_line/C++_Parser/Src/Library/Arguments.c
~/bin/mwccppc $MWC_FLAGS -o objs/Option.o unsorted/Option.c ~/bin/mwccppc $MWC_FLAGS -o objs/Help.o command_line/C++_Parser/Src/Library/Help.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Parameter.o unsorted/Parameter.c ~/bin/mwccppc $MWC_FLAGS -o objs/IO.o command_line/C++_Parser/Src/Library/IO.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ParserErrors.o unsorted/ParserErrors.c ~/bin/mwccppc $MWC_FLAGS -o objs/Option.o command_line/C++_Parser/Src/Library/Option.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ParserFace.o unsorted/ParserFace.c ~/bin/mwccppc $MWC_FLAGS -o objs/Parameter.o command_line/C++_Parser/Src/Library/Parameter.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ParserHelpers.o unsorted/ParserHelpers.c ~/bin/mwccppc $MWC_FLAGS -o objs/ParserErrors.o command_line/C++_Parser/Src/Library/ParserErrors.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ParserHelpers-cc.o unsorted/ParserHelpers-cc.c ~/bin/mwccppc $MWC_FLAGS -o objs/ParserFace.o command_line/C++_Parser/Src/Library/ParserFace.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Projects.o unsorted/Projects.c ~/bin/mwccppc $MWC_FLAGS -o objs/ParserHelpers.o command_line/C++_Parser/Src/Library/ParserHelpers.c
#~/bin/mwccppc $MWC_FLAGS -o objs/StaticParserGlue.o unsorted/StaticParserGlue.c ~/bin/mwccppc $MWC_FLAGS -o objs/ParserHelpers-cc.o command_line/C++_Parser/Src/Library/ParserHelpers-cc.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Targets.o unsorted/Targets.c ~/bin/mwccppc $MWC_FLAGS -o objs/Projects.o command_line/C++_Parser/Src/Library/Projects.c
~/bin/mwccppc $MWC_FLAGS -o objs/TargetOptimizer-ppc-mach.o unsorted/TargetOptimizer-ppc-mach.c ~/bin/mwccppc $MWC_FLAGS -o objs/StaticParserGlue.o command_line/C++_Parser/Src/Library/StaticParserGlue.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ToolHelpers.o unsorted/ToolHelpers.c ~/bin/mwccppc $MWC_FLAGS -o objs/Targets.o command_line/C++_Parser/Src/Library/Targets.c
#~/bin/mwccppc $MWC_FLAGS -o objs/ToolHelpers-cc.o unsorted/ToolHelpers-cc.c ~/bin/mwccppc $MWC_FLAGS -o objs/ToolHelpers.o command_line/C++_Parser/Src/Library/ToolHelpers.c
#~/bin/mwccppc $MWC_FLAGS -o objs/uContext1.o unsorted/uContext1.cpp ~/bin/mwccppc $MWC_FLAGS -o objs/ToolHelpers-cc.o command_line/C++_Parser/Src/Library/ToolHelpers-cc.c
#~/bin/mwccppc $MWC_FLAGS -o objs/uContextCL.o unsorted/uContextCL.cpp ~/bin/mwccppc $MWC_FLAGS -o objs/Utils.o command_line/C++_Parser/Src/Library/Utils.c
#~/bin/mwccppc $MWC_FLAGS -o objs/uContextParser.o unsorted/uContextParser.cpp
#~/bin/mwccppc $MWC_FLAGS -o objs/uContextSecret.o unsorted/uContextSecret.cpp ~/bin/mwccppc $MWC_FLAGS -o objs/OptimizerHelpers.o command_line/C++_Parser/Src/Library/OptimizerHelpers.c
#~/bin/mwccppc $MWC_FLAGS -o objs/uCOS.o unsorted/uCOS.c ~/bin/mwccppc $MWC_FLAGS -o objs/StdTargetWarningHelpers-cc.o command_line/C++_Parser/Src/Library/StdTargetWarningHelpers-cc.c
#~/bin/mwccppc $MWC_FLAGS -o objs/uLibImporter.o unsorted/uLibImporter.c ~/bin/mwccppc $MWC_FLAGS -o objs/WarningHelpers.o command_line/C++_Parser/Src/Library/WarningHelpers.c
#~/bin/mwccppc $MWC_FLAGS -o objs/Utils.o unsorted/Utils.c
# ~/bin/mwccppc $MWC_FLAGS -o objs/COSToolsCLT.o command_line/PluginLib/Src/Internal/COSToolsCLT.c
#~/bin/mwccppc $MWC_FLAGS -o objs/WarningHelpers.o command_line/C++_Parser/Src/Library/WarningHelpers.c ~/bin/mwccppc $MWC_FLAGS -o objs/CWSecretPluginCallbacks.o command_line/PluginLib/Src/Internal/CWSecretPluginCallbacks.cpp
~/bin/mwccppc $MWC_FLAGS -o objs/CWParserPluginsPrivate.o command_line/PluginLib/Src/Library/CWParserPluginsPrivate.cpp
~/bin/mwccppc $MWC_FLAGS -o objs/CWPluginsPrivate.o command_line/PluginLib/Src/Library/CWPluginsPrivate.cpp
~/bin/mwccppc $MWC_FLAGS -o objs/DropInCompilerLinkerPrivate.o command_line/PluginLib/Src/Library/DropInCompilerLinkerPrivate.cpp
ld /usr/lib/crt1.o \ ld /usr/lib/crt1.o \
objs/CLStaticMain.o \ objs/CLStaticMain.o \
@ -235,7 +240,7 @@ ld /usr/lib/crt1.o \
objs/Memory.o \ objs/Memory.o \
objs/Files.o \ objs/Files.o \
objs/TextUtils.o \ objs/TextUtils.o \
objs/uFileTypeMappings.o \ objs/CLFileTypes.o \
objs/CLFiles.o \ objs/CLFiles.o \
objs/CLOverlays.o \ objs/CLOverlays.o \
objs/CLSegs.o \ objs/CLSegs.o \
@ -255,7 +260,7 @@ ld /usr/lib/crt1.o \
objs/libimp-mach-ppc.o \ objs/libimp-mach-ppc.o \
objs/TargetOptimizer-ppc-mach.o \ objs/TargetOptimizer-ppc-mach.o \
objs/OptimizerHelpers.o \ objs/OptimizerHelpers.o \
objs/TargetWarningHelpers-ppc-cc.o \ objs/StdTargetWarningHelpers-cc.o \
objs/WarningHelpers.o \ objs/WarningHelpers.o \
\ \
objs/CCompiler.o \ objs/CCompiler.o \
@ -389,11 +394,11 @@ ld /usr/lib/crt1.o \
objs/Utils.o \ objs/Utils.o \
objs/Parameter.o \ objs/Parameter.o \
objs/Help.o \ objs/Help.o \
objs/uContext1.o \ objs/CWPluginsPrivate.o \
objs/uContextCL.o \ objs/DropInCompilerLinkerPrivate.o \
objs/uContextSecret.o \ objs/CWSecretPluginCallbacks.o \
objs/uCOS.o \ objs/COSToolsCLT.o \
objs/uContextParser.o \ objs/CWParserPluginsPrivate.o \
objs/uLibImporter.o \ objs/uLibImporter.o \
objs/CmdLineBuildDate.o \ objs/CmdLineBuildDate.o \
\ \