[PATCH] ARM: Enable DP copy, load and store instructions for FPv4-SP

Oliver Stannard oliver.stannard at arm.com
Thu Aug 14 08:53:53 PDT 2014


The FPv4-SP floating-point unit is generally reffered to as single-precision only, but it does have double-precision registers and load, store and GPR<->DPR move instructions which operate on them. This patch enables the use of these registers, the main advantage of which is that we now comply with the AAPCS-VFP calling convention. This partially reverts r209650, which added some AAPCS-VFP support, but did not handle return values or alignment of double arguments in registers.

This patch also adds tests for Thumb2 code generation for floating-point instructions and intrinsics, which previously only existed for ARM.

http://reviews.llvm.org/D4907

Files:
  lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  lib/Target/ARM/ARMBaseInstrInfo.cpp
  lib/Target/ARM/ARMCallingConv.h
  lib/Target/ARM/ARMISelLowering.cpp
  lib/Target/ARM/ARMISelLowering.h
  lib/Target/ARM/ARMInstrVFP.td
  test/CodeGen/ARM/aapcs-hfa-code.ll
  test/CodeGen/ARM/darwin-eabi.ll
  test/CodeGen/Thumb2/aapcs.ll
  test/CodeGen/Thumb2/cortex-fp.ll
  test/CodeGen/Thumb2/float-cmp.ll
  test/CodeGen/Thumb2/float-intrinsics-double.ll
  test/CodeGen/Thumb2/float-intrinsics-float.ll
  test/CodeGen/Thumb2/float-ops.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4907.12511.patch
Type: text/x-patch
Size: 54785 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140814/760b7e89/attachment.bin>


More information about the llvm-commits mailing list