GCC Middle and Back End API Reference
target_regs Struct Reference

#include <regs.h>

Data Fields

unsigned char x_hard_regno_nregs [FIRST_PSEUDO_REGISTER][MAX_MACHINE_MODE]
enum machine_mode x_reg_raw_mode [FIRST_PSEUDO_REGISTER]
bool x_have_regs_of_mode [MAX_MACHINE_MODE]
char x_contains_reg_of_mode [N_REG_CLASSES][MAX_MACHINE_MODE]
char x_direct_load [NUM_MACHINE_MODES]
char x_direct_store [NUM_MACHINE_MODES]
bool x_float_extend_from_mem [NUM_MACHINE_MODES][NUM_MACHINE_MODES]

Detailed Description

Target-dependent globals.


Field Documentation

char target_regs::x_contains_reg_of_mode[N_REG_CLASSES][MAX_MACHINE_MODE]

1 if the corresponding class contains a register of the given mode.

char target_regs::x_direct_load[NUM_MACHINE_MODES]

Record for each mode whether we can move a register directly to or from an object of that mode in memory. If we can't, we won't try to use that mode directly when accessing a field of that mode.

char target_regs::x_direct_store[NUM_MACHINE_MODES]
bool target_regs::x_float_extend_from_mem[NUM_MACHINE_MODES][NUM_MACHINE_MODES]

Record for each mode whether we can float-extend from memory.

unsigned char target_regs::x_hard_regno_nregs[FIRST_PSEUDO_REGISTER][MAX_MACHINE_MODE]

For each starting hard register, the number of consecutive hard registers that a given machine mode occupies.

bool target_regs::x_have_regs_of_mode[MAX_MACHINE_MODE]

Vector indexed by machine mode saying whether there are regs of that mode.

enum machine_mode target_regs::x_reg_raw_mode[FIRST_PSEUDO_REGISTER]

For each hard register, the widest mode object that it can contain. This will be a MODE_INT mode if the register can hold integers. Otherwise it will be a MODE_FLOAT or a MODE_CC mode, whichever is valid for the register.


The documentation for this struct was generated from the following file: