LLVM  8.0.1
Enumerations
llvm::PPCII Namespace Reference

PPCII - This namespace holds all of the PowerPC target-specific per-instruction flags. More...

Enumerations

enum  TOF {
  MO_NO_FLAG, MO_PLT = 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
}
 
enum  { NewDef_Shift = 6, UseVSXReg = 0x1 << NewDef_Shift, XFormMemOp = 0x1 << (NewDef_Shift+1) }
 

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

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.

◆ anonymous enum

anonymous enum
Enumerator
NewDef_Shift 

Shift count to bypass PPC970 flags.

UseVSXReg 

The VSX instruction that uses VSX register (vs0-vs63), instead of VMX register (v0-v31).

XFormMemOp 

This instruction is an X-Form memory operation.

Definition at line 65 of file PPCInstrInfo.h.

◆ PPC970_Unit

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.

◆ TOF

Target Operand Flag enum.

Enumerator
MO_NO_FLAG 
MO_PLT 

On a symbol operand "FOO", this indicates that the reference is actually to "FOO@plt".

This is used for calls and jumps to external functions on 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 71 of file PPC.h.