Page MenuHomePhabricator

[X86][3DNOW] Teach decoder about AMD 3DNow! instrs
ClosedPublic

Authored by rafauler on Feb 14 2018, 11:44 AM.

Details

Summary

This patch makes the decoder understand old AMD 3DNow!
instructions that have never been properly supported in the X86
disassembler, despite being supported in other subsystems. Hopefully
this should make the X86 decoder more complete with respect to binaries
containing legacy code.

Diff Detail

Repository
rL LLVM

Event Timeline

rafauler created this revision.Feb 14 2018, 11:44 AM
craig.topper accepted this revision.Feb 14 2018, 11:54 AM

LGTM. Thanks a lot for doing this. Its good to see it finally supported.

This revision is now accepted and ready to land.Feb 14 2018, 11:54 AM

np, thanks for reviewing this!

craig.topper added inline comments.Feb 14 2018, 4:13 PM
test/MC/Disassembler/X86/amd3dnow.txt
28 ↗(On Diff #134284)

Is this all the 3dnow instructions? I think some may be missing.

rafauler added inline comments.Feb 14 2018, 4:18 PM
test/MC/Disassembler/X86/amd3dnow.txt
28 ↗(On Diff #134284)

There are some that are definitely missing, I'll try to add them all here, since there aren't too many in the entire 3dnow encoding space.

I found this bug in the database for 3dnow support being missing. https://bugs.llvm.org/show_bug.cgi?id=21168 We should be able to close it after this I hope.

rafauler updated this revision to Diff 134477.Feb 15 2018, 11:35 AM

Add a more complete LIT file that tests all opcodes

craig.topper accepted this revision.Feb 15 2018, 11:53 AM

Thank you for adding the additional tests. LGTM

This revision was automatically updated to reflect the committed changes.