Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/lib/Target/Mips/MicroMipsInstrInfo.td
Show First 20 Lines • Show All 878 Lines • ▼ Show 20 Lines | let DecoderNamespace = "MicroMips", Predicates = [InMicroMips] in { | ||||
/// Word Swap Bytes Within Halfwords | /// Word Swap Bytes Within Halfwords | ||||
def WSBH_MM : MMRel, SubwordSwap<"wsbh", GPR32Opnd, II_WSBH>, | def WSBH_MM : MMRel, SubwordSwap<"wsbh", GPR32Opnd, II_WSBH>, | ||||
SEB_FM_MM<0x1ec>, ISA_MIPS32R2; | SEB_FM_MM<0x1ec>, ISA_MIPS32R2; | ||||
// TODO: Add '0 < pos+size <= 32' constraint check to ext instruction | // TODO: Add '0 < pos+size <= 32' constraint check to ext instruction | ||||
def EXT_MM : MMRel, ExtBase<"ext", GPR32Opnd, uimm5, uimm5_plus1, immZExt5, | def EXT_MM : MMRel, ExtBase<"ext", GPR32Opnd, uimm5, uimm5_plus1, immZExt5, | ||||
immZExt5Plus1, MipsExt>, EXT_FM_MM<0x2c>; | immZExt5Plus1, MipsExt>, EXT_FM_MM<0x2c>; | ||||
def INS_MM : MMRel, InsBase<"ins", GPR32Opnd, uimm5, uimm5_inssize_plus1, | def INS_MM : MMRel, InsBase<"ins", GPR32Opnd, uimm5, uimm5_inssize_plus1, | ||||
MipsIns>, EXT_FM_MM<0x0c>; | immZExt5, immZExt5Plus1, MipsIns>, | ||||
EXT_FM_MM<0x0c>; | |||||
/// Jump Instructions | /// Jump Instructions | ||||
let DecoderMethod = "DecodeJumpTargetMM" in { | let DecoderMethod = "DecodeJumpTargetMM" in { | ||||
def J_MM : MMRel, JumpFJ<jmptarget_mm, "j", br, bb, "j">, | def J_MM : MMRel, JumpFJ<jmptarget_mm, "j", br, bb, "j">, | ||||
J_FM_MM<0x35>; | J_FM_MM<0x35>; | ||||
def JAL_MM : MMRel, JumpLink<"jal", calltarget_mm>, J_FM_MM<0x3d>; | def JAL_MM : MMRel, JumpLink<"jal", calltarget_mm>, J_FM_MM<0x3d>; | ||||
def JALX_MM : MMRel, JumpLink<"jalx", calltarget>, J_FM_MM<0x3c>; | def JALX_MM : MMRel, JumpLink<"jalx", calltarget>, J_FM_MM<0x3c>; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 292 Lines • Show Last 20 Lines |