diff options
author | Ash Wolf <ninji@wuffs.org> | 2022-11-07 03:06:21 +0000 |
---|---|---|
committer | Ash Wolf <ninji@wuffs.org> | 2022-11-07 03:06:21 +0000 |
commit | 9a46dd0e2e80790d9848c0bbd718932a27c23269 (patch) | |
tree | e7a8e976c7138d50a69ff4778c4e8572efd94452 /includes/compiler/CodeGen.h | |
parent | d0b9848c54e6f85ab713f059dcd1ddef7e57caa6 (diff) | |
download | MWCC-9a46dd0e2e80790d9848c0bbd718932a27c23269.tar.gz MWCC-9a46dd0e2e80790d9848c0bbd718932a27c23269.zip |
honk
Diffstat (limited to '')
-rw-r--r-- | includes/compiler/CodeGen.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/includes/compiler/CodeGen.h b/includes/compiler/CodeGen.h new file mode 100644 index 0000000..3954d51 --- /dev/null +++ b/includes/compiler/CodeGen.h @@ -0,0 +1,79 @@ +#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 |