This is an archive of the discontinued LLVM Phabricator instance.

x86-32: PUSHF/POPF use/def EFLAGS
ClosedPublic

Authored by jfb on Dec 16 2014, 11:41 AM.

Details

Summary

As a side-quest for D6629 jvoung pointed out that I should use -verify-machineinstrs and this found a bug in x86-32's handling of EFLAGS for PUSHF/POPF. This patch fixes the use/def, and adds -verify-machineinstrs to all x86 tests which contain 'EFLAGS'. One exception: this patch leaves inline-asm-fpstack.ll as-is because it fails -verify-machineinstrs in a way unrelated to EFLAGS. This patch also modifies cmpxchg-clobber-flags.ll along the lines of what D6629 already does by also testing i386.

Diff Detail

Repository
rL LLVM

Event Timeline

jfb updated this revision to Diff 17347.Dec 16 2014, 11:41 AM
jfb retitled this revision from to x86-32: PUSHF/POPF use/def EFLAGS.
jfb updated this object.
jfb edited the test plan for this revision. (Show Details)
jfb added reviewers: t.p.northover, jvoung.
jfb added a subscriber: Unknown Object (MLST).
t.p.northover accepted this revision.Dec 16 2014, 11:44 AM
t.p.northover edited edge metadata.

Oh, well spotted. I think this looks fine.

Tim.

This revision is now accepted and ready to land.Dec 16 2014, 11:44 AM
This revision was automatically updated to reflect the committed changes.
jfb added a comment.Dec 16 2014, 12:22 PM

I filed a bug for the test that I left as failing: http://llvm.org/bugs/show_bug.cgi?id=21931