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