summaryrefslogtreecommitdiff
path: root/includes/compiler/PCodeUtilities.h
diff options
context:
space:
mode:
Diffstat (limited to 'includes/compiler/PCodeUtilities.h')
-rw-r--r--includes/compiler/PCodeUtilities.h23
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