This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Complete enumeration values for Tag_ABI_VFP_args
ClosedPublic

Authored by peter.smith on Jul 31 2018, 3:55 AM.

Details

Summary

The LLD implementation of Tag_ABI_VFP_args needs to check the rarely seen values of 3 (toolchain specific) and 4 compatible with both Base and VFP. We currently only have enum values for 0 (Base AAPCS) and 1 (VFP AAPCS), this patch adds the missing enumeration values so that LLD (D49993) can refer to them without having to use the raw numbers.

From Addenda to, and Errata in, the ABI for the Arm Architecture: http://infocenter.arm.com/help/topic/com.arm.doc.ihi0045e/IHI0045E_ABI_addenda.pdf

Tag_ABI_VFP_args, (=28), uleb128
0 The user intended FP parameter/result passing to conform to AAPCS, base variant
1 The user intended FP parameter/result passing to conform to AAPCS, VFP variant
2 The user intended FP parameter/result passing to conform to tool chain-specific
 conventions
3 Code is compatible with both the base and VFP variants; the user did not permit
 non-variadic functions to pass FP parameters/results

Diff Detail

Repository
rL LLVM

Event Timeline

peter.smith created this revision.Jul 31 2018, 3:55 AM
grimar accepted this revision.Jul 31 2018, 4:02 AM

LGTM. Minor suggestion is bellow.

include/llvm/Support/ARMBuildAttributes.h
216 ↗(On Diff #158204)

I am not sure, maybe Toolchain ->ToolChain since it is 2 different words in spec.

This revision is now accepted and ready to land.Jul 31 2018, 4:02 AM

Thanks, I'll update the patches to use ToolChain on commit.

emaste added a subscriber: emaste.Jul 31 2018, 6:09 AM
This revision was automatically updated to reflect the committed changes.