This is an archive of the discontinued LLVM Phabricator instance.

[x86] Distinguish the 'o', 'v', 'X', and 'i' inline assembly memory constraints.
ClosedPublic

Authored by dsanders on Mar 11 2015, 8:15 AM.

Details

Summary

But still handle them the same way since I don't know how they differ on
this target.

Of these, 'o' and 'v' are not tested but were already implemented.

I'm not sure why 'i' is required for X86 since it's supposed to be an
immediate constraint rather than a memory constraint. A test asserts
without it so I've included it for now.

No functional change intended. Depends on D8173.

Diff Detail

Repository
rL LLVM

Event Timeline

dsanders updated this revision to Diff 21723.Mar 11 2015, 8:15 AM
dsanders retitled this revision from to [x86] Distinguish the 'o', 'v', 'X', and 'i' inline assembly memory constraints..
dsanders updated this object.
dsanders edited the test plan for this revision. (Show Details)
dsanders added a reviewer: nadav.
dsanders added a subscriber: Unknown Object (MLST).

Ping. The main thing I'm looking for is for is for someone with knowledge of the target to say whether they're aware of any supported constraints that this patch doesn't cover.

Chris: I've CC'd you since Nadav suggested I CC the original author of the code and I found that (cosmetic changes aside) it was added by you way back in r28728 (which was in 2006).

Ping 2...

Nadav: I'm not sure there's anyone to review this patch. I'm pretty confident that I've got support for everything that was supported before but if there are any issues then it's going to be a simple matter of adding a case label and maybe a mapping from the constraint code to the constraint id. Would you be happy for me to commit if I agree to restore 'm' behaviour for any constraints that we find have somehow been missed out?

Just to record it in phabricator. Nadav has replied and was ok with committing this patch. I'll commit in the morning

This revision was automatically updated to reflect the committed changes.