MWCC/includes/compiler/CodeGen.h

80 lines
2.5 KiB
C
Raw Normal View History

2022-11-07 03:06:21 +00:00
#ifndef COMPILER_CODEGEN_H
#define COMPILER_CODEGEN_H
#include "compiler/common.h"
#include "compiler/CPrep.h"
#ifdef __MWERKS__
#pragma options align=mac68k
#endif
extern Macro vecM;
extern Macro altivecM;
extern Object *gFunction;
extern PCodeLabel *returnlabel;
extern PCodeLabel *cleanreturnlabel;
extern Boolean needs_cleanup;
extern Statement *current_statement;
extern int has_catch_blocks;
extern int disable_optimizer;
extern SInt32 current_linenumber;
extern Boolean has_altivec_arrays;
extern short high_reg;
extern short low_reg;
extern short high_offset;
extern short low_offset;
extern short low_reg2;
extern short high_reg2;
extern PCodeLabel *pic_base_pcodelabel;
extern Object *dyld_stub_binding_helper;
extern Object *rt_cvt_fp2unsigned;
extern Object *rt_profile_entry;
extern Object *rt_profile_exit;
extern Object *rt_div2i;
extern Object *rt_div2u;
extern Object *rt_mod2i;
extern Object *rt_mod2u;
extern Object *rt_shr2i;
extern Object *rt_shr2u;
extern Object *rt_shl2i;
extern Object *rt_cvt_ull_dbl;
extern Object *rt_cvt_sll_dbl;
extern Object *rt_cvt_ull_flt;
extern Object *rt_cvt_sll_flt;
extern Object *rt_cvt_dbl_usll;
extern VarInfo *CodeGen_GetNewVarInfo(void);
extern Object *maketemporary(Type *type);
typedef void (*ArgumentProcessor)(Object *obj, short reg);
extern void process_arguments(ArgumentProcessor func, Boolean flag);
extern void move_assigned_argument(Object *obj, short reg);
extern void assign_labels();
extern void CodeGen_Generator();
extern void CodeGen_GenVDispatchThunk();
extern void CodeGen_SetupRuntimeObjects();
extern Boolean CodeGen_ReInitRuntimeObjects(Boolean is_precompiler);
extern Boolean CodeGen_IsPublicRuntimeObject(Object *obj);
extern void CodeGen_SOMStub();
extern void CodeGen_ParseDeclSpec(HashNameNode *identifier, DeclInfo *declinfo);
extern void CodeGen_ParsePragma(HashNameNode *name);
extern void CodeGen_UpdateObject(Object *object);
extern void CodeGen_UpdateBackEndOptions();
extern void CodeGen_objc_method_self_offset();
extern void CodeGen_objc_method_sel_offset();
extern void CodeGen_objc_method_arg_offset();
extern void CodeGen_objc_method_args_size();
extern void CodeGen_HandleIntrinsicCall();
extern void CodeGen_HandleTypeCast();
extern short CodeGen_AssignCheck(ENode *expr, Type *type, Boolean flag1, Boolean flag2);
extern void CodeGen_CollapseVectorExpression();
extern void CodeGen_InsertSpecialMacros();
extern char *CodeGen_ExpandSpecialMacro(Macro *macro);
extern void CodeGen_reportheapinfo();
extern void CodeGen_InitialSanityCheck();
#ifdef __MWERKS__
#pragma options align=reset
#endif
#endif