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/PCodeUtilities.h | |
parent | d0b9848c54e6f85ab713f059dcd1ddef7e57caa6 (diff) | |
download | MWCC-9a46dd0e2e80790d9848c0bbd718932a27c23269.tar.gz MWCC-9a46dd0e2e80790d9848c0bbd718932a27c23269.zip |
honk
Diffstat (limited to '')
-rw-r--r-- | includes/compiler/PCodeUtilities.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/includes/compiler/PCodeUtilities.h b/includes/compiler/PCodeUtilities.h new file mode 100644 index 0000000..312dd55 --- /dev/null +++ b/includes/compiler/PCodeUtilities.h @@ -0,0 +1,23 @@ +#ifndef COMPILER_PCODEUTILITIES_H +#define COMPILER_PCODEUTILITIES_H + +#include "compiler/common.h" + +extern void pcsetrecordbit(PCode *pc); +extern void pcsetsideeffects(PCode *pc); +extern void pcsetlinkbit(PCode *pc); +extern void branch_label(PCodeLabel *label); +extern void branch_conditional(short a, short compareop, short c, PCodeLabel *label); +extern void branch_always(PCodeLabel *label); +extern void branch_decrement_always(short opcode, PCodeLabel *label); +extern void branch_indirect(Object *obj); +extern int branch_count_volatiles(void); +extern PCodeArg *branch_record_volatiles(PCodeArg *arglist, UInt32 *masks); +extern void branch_subroutine(Object *obj, short add_nop, UInt32 *masks); +extern void branch_subroutine_ctr(UInt32 *masks); +extern void add_immediate(short dest_reg, short base_reg, Object *obj, short offset); +extern PCode *add_immediate_lo(short dest_reg, short base_reg, Object *obj, short offset, char add_to_block); +extern PCode *op_absolute_ha(short dest_reg, short base_reg, Object *obj, short offset, char add_to_block); +extern void load_store_register(short opcode, short dest_reg, short base_reg, Object *obj, SInt32 offset); + +#endif |