summaryrefslogtreecommitdiff
path: root/includes/compiler/PCodeUtilities.h
blob: 312dd55afafb42c25625b984a713d2b9c0403453 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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