summaryrefslogtreecommitdiff
path: root/includes/compiler/CParser.h
diff options
context:
space:
mode:
authorAsh Wolf <ninji@wuffs.org>2022-11-20 00:07:22 -0500
committerAsh Wolf <ninji@wuffs.org>2022-11-20 00:07:22 -0500
commit9d2728a5605f651934fe67a6fe6986b3e4a2c011 (patch)
treee81e0a3588a0c8d1855bf28316efe27d86b04d66 /includes/compiler/CParser.h
parent9a46dd0e2e80790d9848c0bbd718932a27c23269 (diff)
downloadMWCC-9d2728a5605f651934fe67a6fe6986b3e4a2c011.tar.gz
MWCC-9d2728a5605f651934fe67a6fe6986b3e4a2c011.zip
add a bunch of code and a ton of stub files for later
Diffstat (limited to '')
-rw-r--r--includes/compiler/CParser.h61
1 files changed, 46 insertions, 15 deletions
diff --git a/includes/compiler/CParser.h b/includes/compiler/CParser.h
index 21a3d59..4eb1abb 100644
--- a/includes/compiler/CParser.h
+++ b/includes/compiler/CParser.h
@@ -22,6 +22,37 @@ enum {
AlignMode8_Packed
};
+enum {
+ CPU_PPC401,
+ CPU_PPC403,
+ CPU_PPC505,
+ CPU_PPC509,
+ CPU_PPC555,
+ CPU_PPC601,
+ CPU_PPC602,
+ CPU_PPC603,
+ CPU_PPC603e,
+ CPU_PPC604,
+ CPU_PPC604e,
+ CPU_PPC740,
+ CPU_PPC750,
+ CPU_PPC801,
+ CPU_PPC821,
+ CPU_PPC823,
+ CPU_PPC850,
+ CPU_PPC860,
+ CPU_PPC8240,
+ CPU_PPC8260,
+ CPU_Generic,
+ CPU_PPC7400,
+ CPU_PPCGEKKO,
+ CPU_PPCELF,
+ CPU_PPC7450,
+ CPU_PPC556,
+ CPU_PPC565
+};
+
+
// not sure how many of these are char and how many are unsigned char or Boolean
typedef struct COpts {
Boolean little_endian;
@@ -33,18 +64,18 @@ typedef struct COpts {
char x06; // linker/objgen related
short cpu;
char schedule_cpu;
- unsigned char schedule_mode; // may be an enum??
+ char schedule_mode; // may be an enum??
SInt32 debuglisting;
- char profile;
- char traceback;
+ Boolean profile;
+ Boolean traceback;
Boolean disable_registers;
- char fp_contract;
+ Boolean fp_contract;
Boolean no_register_save_helpers;
char ppc_unroll_speculative;
short ppc_unroll_instructions_limit;
short ppc_unroll_factor_limit;
Boolean altivec_model;
- UInt8 x1B; // altivec/vrsave related
+ UInt8 altivec_vrsave;
UInt8 code_alignment;
char x1D;
UInt8 x1E; // some register used in TOC_use_isel
@@ -53,7 +84,7 @@ typedef struct COpts {
Boolean use_lmw_stmw;
char report_heap_info;
char misaligned_mem_access;
- char switch_tables;
+ Boolean switch_tables;
char prepare_compress;
char some_alignment; // used in CMach_AllocationAlignment
Boolean asmsemicolcomment;
@@ -80,7 +111,7 @@ typedef struct COpts {
Boolean cpp_extensions;
Boolean pointercast_lvalue;
char useRTTI;
- char delete_exception;
+ Boolean delete_exception;
char _4B;
Boolean oldalignment;
Boolean unsignedchars;
@@ -95,7 +126,7 @@ typedef struct COpts {
Boolean longlong;
Boolean longlong_enums;
char no_tfuncinline;
- char _59;
+ Boolean _59;
Boolean flat_include;
char syspath_once;
Boolean always_import;
@@ -110,7 +141,7 @@ typedef struct COpts {
Boolean array_new_delete;
Boolean dollar_identifiers;
char def_inline_tfuncs;
- char arg_dep_lookup;
+ Boolean arg_dep_lookup;
Boolean simple_prepdump;
char line_prepdump;
char fullpath_prepdump;
@@ -139,18 +170,18 @@ typedef struct COpts {
Boolean supress_warnings;
Boolean warn_illpragma;
Boolean warn_emptydecl;
- char warn_possunwant;
+ Boolean warn_possunwant;
char warn_unusedvar;
char warn_unusedarg;
Boolean warn_extracomma;
char warn_hidevirtual;
Boolean warn_largeargs;
- char warn_implicitconv;
+ Boolean warn_implicitconv;
char warn_notinlined;
Boolean warn_structclass;
Boolean warn_padding;
- char warn_no_side_effect;
- char warn_resultnotused;
+ Boolean warn_no_side_effect;
+ Boolean warn_resultnotused;
char warn_ptr_int_conv;
char align_mode;
Boolean align_array_members;
@@ -163,7 +194,7 @@ typedef struct COpts {
char dont_inline;
char always_inline;
Boolean peephole;
- char global_optimizer;
+ Boolean global_optimizer;
char side_effects;
Boolean internal;
Boolean import;
@@ -173,7 +204,7 @@ typedef struct COpts {
char force_active;
char optimizationlevel;
Boolean optimize_for_size;
- char optimizewithasm;
+ Boolean optimizewithasm;
Boolean crippled;
char opt_common_subs;
char opt_loop_invariants;