#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