[PATCH] D60704: [ARM] Disallow SP and PC in VMOVRH and VMOVHR.
Simon Tatham via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 15 05:59:39 PDT 2019
simon_tatham created this revision.
simon_tatham added reviewers: dmgreen, samparker, SjoerdMeijer.
Herald added subscribers: llvm-commits, hiraditya, kristof.beyls, javed.absar.
Herald added a project: LLVM.
Arm v8.1-M supports the VMOV instructions that move a half-precision
value to and from a GPR, but not if the GPR is SP or PC.
This change affects the same instructions in other architectures as
well. Strictly speaking, that's not quite right (in Arm v8-A, it's not
UNPREDICTABLE to move a half precision value into SP), but it seems
unlikely that those instructions are particularly useful.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D60704
Files:
llvm/lib/Target/ARM/ARMInstrVFP.td
Index: llvm/lib/Target/ARM/ARMInstrVFP.td
===================================================================
--- llvm/lib/Target/ARM/ARMInstrVFP.td
+++ llvm/lib/Target/ARM/ARMInstrVFP.td
@@ -1246,9 +1246,9 @@
// Move H->R, clearing top 16 bits
def VMOVRH : AVConv2I<0b11100001, 0b1001,
- (outs GPR:$Rt), (ins HPR:$Sn),
+ (outs rGPR:$Rt), (ins HPR:$Sn),
IIC_fpMOVSI, "vmov", ".f16\t$Rt, $Sn",
- [(set GPR:$Rt, (arm_vmovrh HPR:$Sn))]>,
+ [(set rGPR:$Rt, (arm_vmovrh HPR:$Sn))]>,
Requires<[HasFPRegs16]>,
Sched<[WriteFPMOV]> {
// Instruction operands.
@@ -1268,9 +1268,9 @@
// Move R->H, clearing top 16 bits
def VMOVHR : AVConv4I<0b11100000, 0b1001,
- (outs HPR:$Sn), (ins GPR:$Rt),
+ (outs HPR:$Sn), (ins rGPR:$Rt),
IIC_fpMOVIS, "vmov", ".f16\t$Sn, $Rt",
- [(set HPR:$Sn, (arm_vmovhr GPR:$Rt))]>,
+ [(set HPR:$Sn, (arm_vmovhr rGPR:$Rt))]>,
Requires<[HasFPRegs16]>,
Sched<[WriteFPMOV]> {
// Instruction operands.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60704.195164.patch
Type: text/x-patch
Size: 1196 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190415/953ff261/attachment.bin>
More information about the llvm-commits
mailing list