2022-11-07 03:06:21 +00:00
|
|
|
#ifndef COMPILER_PCODEUTILITIES_H
|
|
|
|
#define COMPILER_PCODEUTILITIES_H
|
|
|
|
|
|
|
|
#include "compiler/common.h"
|
2022-12-29 12:32:55 +00:00
|
|
|
#include "compiler/PCodeInfo.h"
|
2022-11-07 03:06:21 +00:00
|
|
|
|
|
|
|
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);
|
2022-12-29 12:32:55 +00:00
|
|
|
extern void branch_decrement_always(Opcode opcode, PCodeLabel *label);
|
2022-11-07 03:06:21 +00:00
|
|
|
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);
|
2022-12-29 12:32:55 +00:00
|
|
|
extern void add_immediate(short dest_reg, short base_reg, Object *obj, SInt16 offset);
|
|
|
|
extern PCode *add_immediate_lo(short dest_reg, short base_reg, Object *obj, SInt16 offset, char add_to_block);
|
|
|
|
extern PCode *op_absolute_ha(short dest_reg, short base_reg, Object *obj, SInt16 offset, char add_to_block);
|
|
|
|
extern void load_store_register(Opcode opcode, short dest_reg, short base_reg, Object *obj, SInt32 offset);
|
2022-11-07 03:06:21 +00:00
|
|
|
|
|
|
|
#endif
|