Skip to content

Commit

Permalink
ARM parsing aliases for data-size suffices on VST1.
Browse files Browse the repository at this point in the history
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145454 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
Jim Grosbach committed Nov 29, 2011
1 parent 7c6b2c9 commit 1ec7bf0
Showing 1 changed file with 56 additions and 19 deletions.
75 changes: 56 additions & 19 deletions lib/Target/ARM/ARMInstrNEON.td
Original file line number Diff line number Diff line change
Expand Up @@ -5448,28 +5448,65 @@ defm : VFPDT64ReqInstAlias<"vst1${p}", "$Vd, $Rn, $Rm",
(VST1q64wb_register zero_reg, addrmode6:$Rn,
rGPR:$Rm, VecListTwoD:$Vd, pred:$p)>;

// FIXME: The three and four register VST1 instructions haven't been moved
// to the VecList* encoding yet, so we can't do assembly parsing support
// for them. Uncomment these when that happens.
// Load three D registers.
//defm : VFPDT8ReqInstAlias<"vst1${p}", "$Vd, $Rn",
// (VST1d8T addrmode6:$Rn, VecListThreeD:$Vd, pred:$p)>;
//defm : VFPDT16ReqInstAlias<"vst1${p}", "$Vd, $Rn",
// (VST1d16T addrmode6:$Rn, VecListThreeD:$Vd, pred:$p)>;
//defm : VFPDT32ReqInstAlias<"vst1${p}", "$Vd, $Rn",
// (VST1d32T addrmode6:$Rn, VecListThreeD:$Vd, pred:$p)>;
//defm : VFPDT64ReqInstAlias<"vst1${p}", "$Vd, $Rn",
// (VST1d64T addrmode6:$Rn, VecListThreeD:$Vd, pred:$p)>;
defm : VFPDT8ReqInstAlias<"vst1${p}", "$Vd, $Rn",
(VST1d8T addrmode6:$Rn, VecListThreeD:$Vd, pred:$p)>;
defm : VFPDT16ReqInstAlias<"vst1${p}", "$Vd, $Rn",
(VST1d16T addrmode6:$Rn, VecListThreeD:$Vd, pred:$p)>;
defm : VFPDT32ReqInstAlias<"vst1${p}", "$Vd, $Rn",
(VST1d32T addrmode6:$Rn, VecListThreeD:$Vd, pred:$p)>;
defm : VFPDT64ReqInstAlias<"vst1${p}", "$Vd, $Rn",
(VST1d64T addrmode6:$Rn, VecListThreeD:$Vd, pred:$p)>;
defm : VFPDT8ReqInstAlias<"vst1${p}", "$Vd, $Rn!",
(VST1d8Twb_fixed zero_reg, addrmode6:$Rn, VecListThreeD:$Vd, pred:$p)>;
defm : VFPDT16ReqInstAlias<"vst1${p}", "$Vd, $Rn!",
(VST1d16Twb_fixed zero_reg, addrmode6:$Rn, VecListThreeD:$Vd, pred:$p)>;
defm : VFPDT32ReqInstAlias<"vst1${p}", "$Vd, $Rn!",
(VST1d32Twb_fixed zero_reg, addrmode6:$Rn, VecListThreeD:$Vd, pred:$p)>;
defm : VFPDT64ReqInstAlias<"vst1${p}", "$Vd, $Rn!",
(VST1d64Twb_fixed zero_reg, addrmode6:$Rn, VecListThreeD:$Vd, pred:$p)>;
defm : VFPDT8ReqInstAlias<"vst1${p}", "$Vd, $Rn, $Rm",
(VST1d8Twb_register zero_reg, addrmode6:$Rn, rGPR:$Rm,
VecListThreeD:$Vd, pred:$p)>;
defm : VFPDT16ReqInstAlias<"vst1${p}", "$Vd, $Rn, $Rm",
(VST1d16Twb_register zero_reg, addrmode6:$Rn, rGPR:$Rm,
VecListThreeD:$Vd, pred:$p)>;
defm : VFPDT32ReqInstAlias<"vst1${p}", "$Vd, $Rn, $Rm",
(VST1d32Twb_register zero_reg, addrmode6:$Rn, rGPR:$Rm,
VecListThreeD:$Vd, pred:$p)>;
defm : VFPDT64ReqInstAlias<"vst1${p}", "$Vd, $Rn, $Rm",
(VST1d64Twb_register zero_reg, addrmode6:$Rn, rGPR:$Rm,
VecListThreeD:$Vd, pred:$p)>;

// Load four D registers.
//defm : VFPDT8ReqInstAlias<"vst1${p}", "$Vd, $Rn",
// (VST1d8Q addrmode6:$Rn, VecListFourD:$Vd, pred:$p)>;
//defm : VFPDT16ReqInstAlias<"vst1${p}", "$Vd, $Rn",
// (VST1d16Q addrmode6:$Rn, VecListFourD:$Vd, pred:$p)>;
//defm : VFPDT32ReqInstAlias<"vst1${p}", "$Vd, $Rn",
// (VST1d32Q addrmode6:$Rn, VecListFourD:$Vd, pred:$p)>;
//defm : VFPDT64ReqInstAlias<"vst1${p}", "$Vd, $Rn",
// (VST1d64Q addrmode6:$Rn, VecListFourD:$Vd, pred:$p)>;
defm : VFPDT8ReqInstAlias<"vst1${p}", "$Vd, $Rn",
(VST1d8Q addrmode6:$Rn, VecListFourD:$Vd, pred:$p)>;
defm : VFPDT16ReqInstAlias<"vst1${p}", "$Vd, $Rn",
(VST1d16Q addrmode6:$Rn, VecListFourD:$Vd, pred:$p)>;
defm : VFPDT32ReqInstAlias<"vst1${p}", "$Vd, $Rn",
(VST1d32Q addrmode6:$Rn, VecListFourD:$Vd, pred:$p)>;
defm : VFPDT64ReqInstAlias<"vst1${p}", "$Vd, $Rn",
(VST1d64Q addrmode6:$Rn, VecListFourD:$Vd, pred:$p)>;
defm : VFPDT8ReqInstAlias<"vst1${p}", "$Vd, $Rn!",
(VST1d8Qwb_fixed zero_reg, addrmode6:$Rn, VecListFourD:$Vd, pred:$p)>;
defm : VFPDT16ReqInstAlias<"vst1${p}", "$Vd, $Rn!",
(VST1d16Qwb_fixed zero_reg, addrmode6:$Rn, VecListFourD:$Vd, pred:$p)>;
defm : VFPDT32ReqInstAlias<"vst1${p}", "$Vd, $Rn!",
(VST1d32Qwb_fixed zero_reg, addrmode6:$Rn, VecListFourD:$Vd, pred:$p)>;
defm : VFPDT64ReqInstAlias<"vst1${p}", "$Vd, $Rn!",
(VST1d64Qwb_fixed zero_reg, addrmode6:$Rn, VecListFourD:$Vd, pred:$p)>;
defm : VFPDT8ReqInstAlias<"vst1${p}", "$Vd, $Rn, $Rm",
(VST1d8Qwb_register zero_reg, addrmode6:$Rn, rGPR:$Rm,
VecListFourD:$Vd, pred:$p)>;
defm : VFPDT16ReqInstAlias<"vst1${p}", "$Vd, $Rn, $Rm",
(VST1d16Qwb_register zero_reg, addrmode6:$Rn, rGPR:$Rm,
VecListFourD:$Vd, pred:$p)>;
defm : VFPDT32ReqInstAlias<"vst1${p}", "$Vd, $Rn, $Rm",
(VST1d32Qwb_register zero_reg, addrmode6:$Rn, rGPR:$Rm,
VecListFourD:$Vd, pred:$p)>;
defm : VFPDT64ReqInstAlias<"vst1${p}", "$Vd, $Rn, $Rm",
(VST1d64Qwb_register zero_reg, addrmode6:$Rn, rGPR:$Rm,
VecListFourD:$Vd, pred:$p)>;


// VTRN instructions data type suffix aliases for more-specific types.
Expand Down

0 comments on commit 1ec7bf0

Please sign in to comment.