mirror of
https://git.wuffs.org/MWCC
synced 2025-12-20 10:25:31 +00:00
add a bunch of code and a ton of stub files for later
This commit is contained in:
42
includes/compiler/RegisterInfo.h
Normal file
42
includes/compiler/RegisterInfo.h
Normal file
@@ -0,0 +1,42 @@
|
||||
#ifndef COMPILER_REGISTERINFO_H
|
||||
#define COMPILER_REGISTERINFO_H
|
||||
|
||||
#include "compiler/common.h"
|
||||
#include "compiler/Registers.h"
|
||||
|
||||
extern short last_exception_register[RegClassMax];
|
||||
extern short first_fe_temporary_register[RegClassMax];
|
||||
extern short last_argument_register[RegClassMax];
|
||||
extern short _FP_;
|
||||
extern short _CALLER_SP_;
|
||||
extern char *special_register_names[RegClassMax][RegisterMax];
|
||||
extern short spr_to_sysreg[4];
|
||||
|
||||
extern void asm_used_register(char rclass, short reg);
|
||||
extern void retain_register(Object *obj, char rclass, short reg);
|
||||
extern void retain_GPR_pair(Object *obj, short reg, short regHi);
|
||||
extern int is_register_object(Object *obj);
|
||||
extern int GetABIFirstNonVolatile(char rclass);
|
||||
extern char GetRegisterClassName(char rclass);
|
||||
extern void setup_diagnostic_reg_strings(void);
|
||||
extern void init_target_registers(void);
|
||||
extern void assign_register_by_type(Object *obj);
|
||||
extern void assign_GPR_pair(Object *obj);
|
||||
extern void open_fe_temp_registers(void);
|
||||
extern void set_last_exception_registers(void);
|
||||
extern VarInfo *Registers_GetVarInfo(Object *obj);
|
||||
extern int used_vrstate_VRs(void);
|
||||
extern UInt32 colored_vrs_as_vrsave(PCodeBlock *block);
|
||||
extern void save_before_coloring_nonvolatile_registers(char rclass);
|
||||
extern void reset_nonvolatile_registers(char rclass);
|
||||
extern int is_nonvolatile_register(char rclass, int reg);
|
||||
extern void init_endian(void);
|
||||
extern void update_asm_nonvolatile_registers(void);
|
||||
|
||||
#define OBJECT_REG(obj) ( Registers_GetVarInfo((obj)) ? (Registers_GetVarInfo((obj))->reg) : 0 )
|
||||
#define OBJECT_REG_HI(obj) ( Registers_GetVarInfo((obj)) ? (Registers_GetVarInfo((obj))->regHi) : 0 )
|
||||
#define ALLOC_GPR() (used_virtual_registers[RegClass_GPR]++)
|
||||
#define ALLOC_FPR() (used_virtual_registers[RegClass_FPR]++)
|
||||
#define ALLOC_VR() (used_virtual_registers[RegClass_VR]++)
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user