LLVM API Documentation

Enumerations
llvm::PPCII Namespace Reference

Enumerations

enum  TOF {
  MO_NO_FLAG, MO_PLT_OR_STUB = 1, MO_PIC_FLAG = 2, MO_NLP_FLAG = 4,
  MO_NLP_HIDDEN_FLAG = 8, MO_ACCESS_MASK = 0xf0, MO_LO = 1 << 4, MO_HA = 2 << 4,
  MO_TPREL_LO = 4 << 4, MO_TPREL_HA = 3 << 4, MO_DTPREL_LO = 5 << 4, MO_TLSLD_LO = 6 << 4,
  MO_TOC_LO = 7 << 4, MO_TLS = 8 << 4
}
 Target Operand Flag enum. More...
enum  {
  PPC970_First = 0x1, PPC970_Single = 0x2, PPC970_Cracked = 0x4, PPC970_Shift = 3,
  PPC970_Mask = 0x07 << PPC970_Shift
}
enum  PPC970_Unit {
  PPC970_Pseudo = 0 << PPC970_Shift, PPC970_FXU = 1 << PPC970_Shift, PPC970_LSU = 2 << PPC970_Shift, PPC970_FPU = 3 << PPC970_Shift,
  PPC970_CRU = 4 << PPC970_Shift, PPC970_VALU = 5 << PPC970_Shift, PPC970_VPERM = 6 << PPC970_Shift, PPC970_BRU = 7 << PPC970_Shift
}

Detailed Description

PPCII - This namespace holds all of the PowerPC target-specific per-instruction flags. These must match the corresponding definitions in PPC.td and PPCInstrFormats.td.


Enumeration Type Documentation

anonymous enum
Enumerator:
PPC970_First 

PPC970_First - This instruction starts a new dispatch group, so it will always be the first one in the group.

PPC970_Single 

PPC970_Single - This instruction starts a new dispatch group and terminates it, so it will be the sole instruction in the group.

PPC970_Cracked 

PPC970_Cracked - This instruction is cracked into two pieces, requiring two dispatch pipes to be available to issue.

PPC970_Shift 

PPC970_Mask/Shift - This is a bitmask that selects the pipeline type that an instruction is issued to.

PPC970_Mask 

Definition at line 30 of file PPCInstrInfo.h.

Enumerator:
PPC970_Pseudo 

These are the various PPC970 execution unit pipelines. Each instruction is one of these.

PPC970_FXU 
PPC970_LSU 
PPC970_FPU 
PPC970_CRU 
PPC970_VALU 
PPC970_VPERM 
PPC970_BRU 

Definition at line 52 of file PPCInstrInfo.h.

Target Operand Flag enum.

Enumerator:
MO_NO_FLAG 
MO_PLT_OR_STUB 

MO_PLT_OR_STUB - On a symbol operand "FOO", this indicates that the reference is actually to the "FOO$stub" or "FOO@plt" symbol. This is used for calls and jumps to external functions on Tiger and earlier, and for PIC calls on Linux and ELF systems.

MO_PIC_FLAG 

MO_PIC_FLAG - If this bit is set, the symbol reference is relative to the function's picbase, e.g. lo16(symbol-picbase).

MO_NLP_FLAG 

MO_NLP_FLAG - If this bit is set, the symbol reference is actually to the non_lazy_ptr for the global, e.g. lo16(symbol$non_lazy_ptr-picbase).

MO_NLP_HIDDEN_FLAG 

MO_NLP_HIDDEN_FLAG - If this bit is set, the symbol reference is to a symbol with hidden visibility. This causes a different kind of non-lazy-pointer to be generated.

MO_ACCESS_MASK 

The next are not flags but distinct values.

MO_LO 

MO_LO, MO_HA - lo16(symbol) and ha16(symbol)

MO_HA 
MO_TPREL_LO 
MO_TPREL_HA 
MO_DTPREL_LO 

These values identify relocations on immediates folded into memory operations.

MO_TLSLD_LO 
MO_TOC_LO 
MO_TLS 

Definition at line 55 of file PPC.h.