summaryrefslogtreecommitdiff
path: root/includes/compiler.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.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.h222
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