diff options
author | Ash Wolf <ninji@wuffs.org> | 2022-11-20 00:07:22 -0500 |
---|---|---|
committer | Ash Wolf <ninji@wuffs.org> | 2022-11-20 00:07:22 -0500 |
commit | 9d2728a5605f651934fe67a6fe6986b3e4a2c011 (patch) | |
tree | e81e0a3588a0c8d1855bf28316efe27d86b04d66 /includes/compiler.h | |
parent | 9a46dd0e2e80790d9848c0bbd718932a27c23269 (diff) | |
download | MWCC-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.h | 222 |
1 files changed, 0 insertions, 222 deletions
diff --git a/includes/compiler.h b/includes/compiler.h index 6557749..cea535f 100644 --- a/includes/compiler.h +++ b/includes/compiler.h @@ -32,113 +32,6 @@ struct InlineXRef { -typedef enum ExceptionActionType { - EAT_NOP, - EAT_DESTROYLOCAL, - EAT_DESTROYLOCALCOND, - EAT_DESTROYLOCALOFFSET, - EAT_DESTROYLOCALPOINTER, - EAT_DESTROYLOCALARRAY, - EAT_DESTROYPARTIALARRAY, - EAT_DESTROYMEMBER, - EAT_DESTROYMEMBERCOND, - EAT_DESTROYMEMBERARRAY, - EAT_DELETEPOINTER, - EAT_DELETELOCALPOINTER, - EAT_DELETEPOINTERCOND, - EAT_CATCHBLOCK, - EAT_ACTIVECATCHBLOCK, - EAT_SPECIFICATION, - EAT_TERMINATE, - EAT_DESTROYBASE, - EAT_NACTIONS -} ExceptionActionType; - -struct ExceptionAction { - ExceptionAction *prev; - union { - struct { - Object *local; - Object *dtor; - } destroy_local; - struct { - Object *local; - Object *cond; - Object *dtor; - } destroy_local_cond; - struct { - Object *local; - Object *dtor; - SInt32 offset; - } destroy_local_offset; - struct { - Object *pointer; - Object *dtor; - } destroy_local_pointer; - struct { - Object *localarray; - Object *dtor; - SInt32 elements; - SInt32 element_size; - } destroy_local_array; - struct { - Object *arraypointer; - Object *arraycounter; - Object *dtor; - Object *element_size; - } destroy_partial_array; - struct { - Object *objectptr; - Object *dtor; - SInt32 offset; - } destroy_member; - struct { - Object *objectptr; - Object *cond; - Object *dtor; - SInt32 offset; - } destroy_member_cond; - struct { - Object *objectptr; - Object *dtor; - SInt32 offset; - SInt32 elements; - SInt32 element_size; - } destroy_member_array; - struct { - Object *pointerobject; - Object *deletefunc; - } delete_pointer; - struct { - Object *pointerobject; - Object *deletefunc; - Object *cond; - } delete_pointer_cond; - struct { - Object *catch_object; - Object *catch_info_object; - CLabel *catch_label; - Object *catch_typeid; - Type *catch_type; - UInt32 catch_qual; - } catch_block; - struct { - Object *catch_info_object; - Boolean call_dtor; - } active_catch_block; - struct { - SInt32 unexp_ids; - Object **unexp_id; - CLabel *unexp_label; - Object *unexp_info_object; - } specification; - struct { - Object *object; - Boolean is_dep; - } local; - } data; - ExceptionActionType type; -}; struct MemInitializer { MemInitializer *next; @@ -211,89 +104,8 @@ typedef struct Substitution { } Substitution; // Registers.c -enum { - RegisterMax = 32 -}; -const char RegClass_SPR = 0; -const char RegClass_CRFIELD = 1; -const char RegClass_VR = 2; -const char RegClass_FPR = 3; -const char RegClass_GPR = 4; -const char RegClassMax = 5; -/*enum RegClass { - RegClass_SPR, - RegClass_CRFIELD, - RegClass_VR, - RegClass_FPR, - RegClass_GPR, - RegClassMax -};*/ - -enum { - RegState0 = 0, - RegState1 = 1, - RegState2 = 2 -}; - -extern int used_virtual_registers[RegClassMax]; -extern int used_nonvolatile_registers[RegClassMax]; -extern int assignable_registers[RegClassMax]; -extern int n_real_registers[RegClassMax]; -extern int n_scratch_registers[RegClassMax]; -extern int scratch_registers[RegClassMax][RegisterMax]; -extern int n_nonvolatile_registers[RegClassMax]; -extern int nonvolatile_registers[RegClassMax][RegisterMax]; -extern UInt8 reg_state[RegClassMax][RegisterMax]; -extern int first_temporary_register[RegClassMax]; -extern int last_temporary_register[RegClassMax]; -extern char *register_class_name[RegClassMax]; -extern char *register_class_format[RegClassMax]; -extern int coloring; -extern int optimizing; - -extern void init_registers(); -extern void assign_register_to_variable(Object *obj, char rclass); -extern void retain_register_for_argument(Object *obj, char rclass, short reg); -extern int available_registers(char rclass); -extern UInt32 volatile_registers(char rclass); -extern short obtain_nonvolatile_register(char rclass); -extern void open_temp_registers(); -extern void check_temp_registers(); -extern void close_temp_registers(); -extern int count_scratch_registers(); -extern void init_modified_registers(); -extern void note_modified_registers(Object *obj); -extern void find_modified_registers(Object *obj, UInt32 *masks); // RegisterInfo.c -extern short last_exception_register[RegClassMax]; -extern short first_fe_temporary_register[RegClassMax]; -extern short last_argument_register[RegClassMax]; -extern short _FP_; -extern short _CALLER_SP_; -extern char *special_register_names[RegClassMax][RegisterMax]; -extern short spr_to_sysreg[4]; - -extern void asm_used_register(char rclass, short reg); -extern void retain_register(Object *obj, char rclass, short reg); -extern void retain_GPR_pair(Object *obj, short reg, short regHi); -extern int is_register_object(Object *obj); -extern int GetABIFirstNonVolatile(char rclass); -extern char GetRegisterClassName(char rclass); -extern void setup_diagnostic_reg_strings(); -extern void init_target_registers(); -extern void assign_register_by_type(Object *obj); -extern void assign_GPR_pair(Object *obj); -extern void open_fe_temp_registers(); -extern void set_last_exception_registers(); -extern VarInfo *Registers_GetVarInfo(Object *obj); -extern int used_vrstate_VRs(); -extern UInt32 colored_vrs_as_vrsave(PCodeBlock *block); -extern void save_before_coloring_nonvolatile_registers(char rclass); -extern void reset_nonvolatile_registers(char rclass); -extern int is_nonvolatile_register(char rclass, int reg); -extern void init_endian(); -extern void update_asm_nonvolatile_registers(); // LOOSE DECLS extern short high_offset; @@ -453,42 +265,8 @@ enum { INTRINSIC_36 = 36 }; -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_PPC7400 = 0x15, - CPU_PPCGEKKO, - CPU_PPCELF, - CPU_PPC7450, - CPU_PPC556, - CPU_PPC565 -}; - extern char *ScanFloat(char *input, double *output, Boolean *fail); -#define FITS_IN_SHORT(value) ( (value) == ((short) (value)) ) -// should HIGH_PART have (short) around it? -#define HIGH_PART(value) ( (((value) >> 16) + (((value) & 0x8000) >> 15)) ) -#define LOW_PART(value) ( (short) (value) ) - #ifdef __MWERKS__ #pragma options align=reset #endif |