• Home
  • History
  • Annotate
  • only in /external/llvm/test/MC/X86/
History log of /external/llvm/test/MC/X86/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0780179d532d20b6b01ba0f1434c93f81b7faea8 01-Aug-2013 Elena Demikhovsky <elena.demikhovsky@intel.com> EVEX and compressed displacement encoding for AVX512

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187576 91177308-0d34-0410-b5e6-96231b3b80d8
vx512-encodings.s
6ee1464ba599f1afbed502fa1b3ac18c8577fd97 26-Jul-2013 Craig Topper <craig.topper@gmail.com> Add test cases for the various instruction alias and Intel syntax fixes that have gone in lately.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187188 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
86-32-coverage.s
86-64.s
9b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1 23-Jul-2013 Craig Topper <craig.topper@gmail.com> Don't let x86 asm printer use the no operand movsd alias. It should use the normal movsl instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186924 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
86-64.s
877d123bdb0198705884e4ca7980d2ab845d9888 22-Jul-2013 Kevin Enderby <enderby@apple.com> Fix the move to/from accumulator register instructions that use a full 64-bit
absolute address encoded in the instruction.

rdar://8612627 and rdar://14299221


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186878 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
4e3170b63a31c515644846ce7a77631429d93050 22-Jul-2013 Craig Topper <craig.topper@gmail.com> Recommit r186813: More Intel syntax alias fixes. With the addition of suppressing some of the aliases from being emitted by the asm printer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186869 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
73477b9f32da6488f2883f33fd17fa0de61f2bd1 03-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Prefix failing commands with not to make clear they are expected to fail.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185554 91177308-0d34-0410-b5e6-96231b3b80d8
lignedBundling/align-mode-argument-error.s
lignedBundling/bundle-group-too-large-error.s
lignedBundling/bundle-lock-option-error.s
lignedBundling/lock-without-bundle-mode-error.s
lignedBundling/switch-section-locked-error.s
lignedBundling/unlock-without-lock-error.s
23306deb92e2424165f2145895e21e223c3887eb 18-Jun-2013 Stefanus Du Toit <stefanus.du.toit@intel.com> Add support for encoding the HLE XACQUIRE and XRELEASE prefixes.

For decoding, keep the current behavior of always decoding these as their REP
versions. In the future, this could be improved to recognize the cases where
these behave as XACQUIRE and XRELEASE and decode them as such.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184207 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-hle-encoding.s
19b30d56b224ab3507f7a93743eac2b01c5861dd 13-Jun-2013 Benjamin Kramer <benny.kra@googlemail.com> X86: Make the cmov aliases work with intel syntax too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183907 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
ffc49cbea41c08132587a3e622bb65191fa576a2 10-May-2013 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Fix a crasher when we fail on a direct match.

The issue was that the MatchingInlineAsm and VariantID args to the
MatchInstructionImpl function weren't being set properly. Specifically, when
parsing intel syntax, the parser thought it was parsing inline assembly in the
at&t dialect; that will never be the case.

The crash was caused when the emitter tried to emit the instruction, but the
operands weren't set. When parsing inline assembly we only set the opcode, not
the operands, which is used to lookup the instruction descriptor.
rdar://13854391 and PR15945

Also, this commit reverts r176036. Now that we're correctly parsing the intel
syntax the pushad/popad don't match properly. I've reimplemented that fix using
a MnemonicAlias.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181620 91177308-0d34-0410-b5e6-96231b3b80d8
86_errors.s
a70d02ff2841d535875fe80bd3d3c25ba90613da 10-May-2013 Chad Rosier <mcrosier@apple.com> [x86AsmParser] It's valid to stop parsing an operand at an immediate.
rdar://13854369 and PR15944

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181564 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
f74d82d8e49ec54953c106a89e0a5951466d4e6b 23-Apr-2013 Chad Rosier <mcrosier@apple.com> Add test case for PR15779, which has previously been fixed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180058 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
3f1f9c37986953250cbda7a7bfb7123571449be7 19-Apr-2013 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Apply the condition code mnemonic aliases to both the Intel and
AT&T dialect. Test case for r179804 as well.
rdar://13674398 and PR13340.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179813 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
d58f773b96fdb5539d9da2192b8cf2ff6112239f 17-Apr-2013 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Add support for the minus unary operator. Previously, we were
unable to handle cases such as __asm mov eax, 8*-8.

This patch also attempts to simplify the state machine. Further, the error
reporting has been improved. Test cases included, but more will be added to
the clang side shortly.
rdar://13668445


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179719 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
02d2e612521954b5ff7c1ba6fd53e36bc51e1c48 11-Apr-2013 Michael Liao <michael.liao@intel.com> Add CLAC/STAC instruction encoding/decoding support

As these two instructions in AVX extension are privileged instructions for
special purpose, it's only expected to be used in inlined assembly.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179266 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
e112453fc39b97147ea3f23bf0b1973cd9f739b1 05-Apr-2013 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Add support for numeric displacement expressions in bracketed
memory operands.

Essentially, this layers an infix calculator on top of the parsing state
machine. The scale on the index register is still expected to be an immediate

__asm mov eax, [eax + ebx*4]

and will not work with more complex expressions. For example,

__asm mov eax, [eax + ebx*(2*2)]

The plus and minus binary operators assume the numeric value of a register is
zero so as to not change the displacement. Register operands should never
be an operand for a multiply or divide operation; the scale*indexreg
expression is always replaced with a zero on the operand stack to prevent
such a case.
rdar://13521380


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178881 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
c26392aa5d9c2dbca2909d6874d181455f8aeb8f 29-Mar-2013 Michael Liao <michael.liao@intel.com> Add support of RDSEED defined in AVX2 extension



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178314 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-rand-encoding.s
30509ee8a348116335475beaf9e5504471c86e73 28-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Move test since it depends on the X86 backend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178249 91177308-0d34-0410-b5e6-96231b3b80d8
de-reloc.s
dd40e8cd54805aa81c8548ac8c87755c562c1723 27-Mar-2013 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Add support of imm displacement before bracketed memory
expression. Specifically, this syntax:

ImmDisp [ BaseReg + Scale*IndexReg + Disp ]

We don't currently support:

ImmDisp [ Symbol ]

rdar://13518671


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178186 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-ms-inline-asm.s
9b3939983fd0103b102c7aec0ed08d1e8bd28214 25-Mar-2013 Dave Zarzycki <zarzycki@apple.com> x86 -- add the XTEST instruction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177888 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-rtm-encoding.s
8ee1c1cfaff9eece05ecabfa267cd68c98af5dd2 18-Mar-2013 Craig Topper <craig.topper@gmail.com> Post process ADC/SBB and use a shorter encoding if they use a sign extended immediate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177243 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-encoding.s
4bef961baf9660f1ac5a5b80378631cd942636b2 18-Mar-2013 Craig Topper <craig.topper@gmail.com> Refactor some duplicated code into helper functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177242 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-encoding.s
9d3f3c5f400578855f6f7b71670cb8514b4fac0f 14-Mar-2013 Craig Topper <craig.topper@gmail.com> Fix a bug in the calculation of the VEX.B bit for FMA4 rr with the VEX.W bit set. The VEX.B was being calculated from the wrong operand. Fixes at least some portion of PR14185.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177014 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-fma4-encoding.s
1ab326310cc9fddf0cc17b981f4f9996f1a19e76 05-Mar-2013 Eli Bendersky <eliben@google.com> Fixes a test by replacing .align by .p2align and setting triples explicitly.

Patch by David Sehr



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176502 91177308-0d34-0410-b5e6-96231b3b80d8
86_long_nop.s
81ee0f73685f966ea279b01cbb9587c70ad91bed 05-Mar-2013 David Sehr <sehr@google.com> Add a test that .align directives on capable processors use long NOPs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176490 91177308-0d34-0410-b5e6-96231b3b80d8
86_long_nop.s
6c4265a541c9e431961113c1a5d92fb4628bfe13 05-Mar-2013 David Sehr <sehr@google.com> The current X86 NOP padding uses one long NOP followed by the remainder in
one-byte NOPs. If the processor actually executes those NOPs, as it sometimes
does with aligned bundling, this can have a performance impact. From my
micro-benchmarks run on my one machine, a 15-byte NOP followed by twelve
one-byte NOPs is about 20% worse than a 15 followed by a 12. This patch
changes NOP emission to emit as many 15-byte (the maximum) as possible followed
by at most one shorter NOP.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176464 91177308-0d34-0410-b5e6-96231b3b80d8
lignedBundling/long-nop-pad.s
dca83187b7c4465ad6ff8507052223d31c0ea66a 25-Feb-2013 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Add support for the pushad/popad mnemonics.
rdar://13254235

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176036 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-ms-inline-asm.s
50e75bfc29269def44981ab5f109334d95f55007 25-Feb-2013 Matt Beaumont-Gay <matthewbg@google.com> 'Hexadecimal' has two 'a's and only one 'i'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176031 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-hex.s
e186d7191c2cf95753a9790b1490df8a07416daa 14-Feb-2013 Rafael Espindola <rafael.espindola@gmail.com> Revert r15266. This fixes llvm.org/pr15266.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175173 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-binary.s
8915e27704b2afd362a69c6be1111fb06bbcc727 12-Feb-2013 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Add support for lexing binary integers with a [bB] suffix.

This is complicated by backward labels (e.g., 0b can be both a backward label
and a binary zero). The current implementation assumes [0-9]b is always a
label and thus it's possible for 0b and 1b to not be interpreted correctly for
ms-style inline assembly. However, this is relatively simple to fix in the
inline assembly (i.e., drop the [bB]).

This patch also limits backward labels to [0-9]b, so that only 0b and 1b are
ambiguous.
Part of rdar://12470373


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174983 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-binary.s
d556fd129026f6e3fa6ea9c2c70ba489bff18954 12-Feb-2013 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Add support for lexing hexidecimal integers with a [hH] suffix.
Part of rdar://12470373

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174926 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-hex.s
f918d7fd7393049bc87bc03fda2d2cd3cec1dacb 05-Feb-2013 Derek Schuff <dschuff@google.com> [MC] Bundle alignment: Invalidate relaxed fragments

Currently, when a fragment is relaxed, its size is modified, but its
offset is not (it gets laid out as a side effect of checking whether
it needs relaxation), then all subsequent fragments are invalidated
because their offsets need to change. When bundling is enabled,
relaxed fragments need to get laid out again, because the increase in
size may push it over a bundle boundary. So instead of only
invalidating subsequent fragments, also invalidate the fragment that
gets relaxed, which causes it to get laid out again.

This patch also fixes some trailing whitespace and fixes the
bundling-related debug output of MCFragments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174401 91177308-0d34-0410-b5e6-96231b3b80d8
lignedBundling/relax-at-bundle-end.s
b11917c1aa7348a67d80149fa9613f09a8d56f14 31-Jan-2013 Derek Schuff <dschuff@google.com> [MC] bundle alignment: prevent padding instructions from crossing bundle boundaries

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174067 91177308-0d34-0410-b5e6-96231b3b80d8
lignedBundling/autogen-inst-offset-align-to-end.s
lignedBundling/pad-align-to-bundle-end.s
e6482fabd20a2a5b4f81aff55812782f3b617514 29-Jan-2013 Craig Topper <craig.topper@gmail.com> Merge SSE and AVX shuffle instructions in the comment printer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173777 91177308-0d34-0410-b5e6-96231b3b80d8
huffle-comments.s
467016e58d57021b14f2ae562d221f00b07cb254 28-Jan-2013 Craig Topper <craig.topper@gmail.com> Fix 256-bit PALIGNR comment decoding to understand that it works on independent 256-bit lanes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173674 91177308-0d34-0410-b5e6-96231b3b80d8
huffle-comments.s
200b306f2006533a0e7a0ca75cb3103620e7aa84 26-Jan-2013 Benjamin Kramer <benny.kra@googlemail.com> X86: Decode PALIGN operands so I don't have to do it in my head.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173572 91177308-0d34-0410-b5e6-96231b3b80d8
huffle-comments.s
767295f1143db4ed844ea9d25f9758e624c35302 25-Jan-2013 Eli Bendersky <eliben@google.com> Now that llvm-dwarfdump supports flags to specify which DWARF section to dump,
use them in tests that run llvm-dwarfdump. This is in order to make tests as
specific as possible.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173498 91177308-0d34-0410-b5e6-96231b3b80d8
nux32-dwarf-gen.s
aaf483ff1775a6b7b0022158c59e73e404d568ef 22-Jan-2013 Eli Bendersky <eliben@google.com> Add forgotten test case for the x32 commit


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173181 91177308-0d34-0410-b5e6-96231b3b80d8
nux32-dwarf-gen.s
341c5fbe840cffedc4155a2cf130626d2bba11b5 22-Jan-2013 Benjamin Kramer <benny.kra@googlemail.com> X86: Make sure we account for the FMA4 register immediate value, otherwise rip-rel relocations will be off by one byte.

PR15040.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173176 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-fma4-encoding.s
dd2e8950222ab74157b1c083ffa77b0fbaf1d210 14-Jan-2013 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Extend support for parsing Intel bracketed memory operands that
have an arbitrary ordering of the base register, index register and displacement.
rdar://12527141


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172484 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
59d152197d741ab930dfc99ced3cac1b8bc8bef9 08-Jan-2013 Eli Bendersky <eliben@google.com> Add some additional tests for the .bundle_lock align_to_end feature that didn't
make into the last commit.

Also, update the test-generation script to generate an exhaustive test for
align_to_end as well, and include the generated test.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171811 91177308-0d34-0410-b5e6-96231b3b80d8
lignedBundling/autogen-inst-offset-align-to-end.s
lignedBundling/bundle-lock-option-error.s
lignedBundling/pad-align-to-bundle-end.s
6c1d4972cf1cd6b6072e31c05f97abb1ed7a8497 07-Jan-2013 Eli Bendersky <eliben@google.com> Add the align_to_end option to .bundle_lock in the MC implementation of aligned
bundling. The document describing this feature and the implementation has also
been updated:

https://sites.google.com/a/chromium.org/dev/nativeclient/pnacl/aligned-bundling-support-in-llvm


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171797 91177308-0d34-0410-b5e6-96231b3b80d8
lignedBundling/asm-printing-bundle-directives.s
f564a9389da68266f44314fe38ab399fd2211134 06-Jan-2013 Craig Topper <craig.topper@gmail.com> Fix suffix handling for parsing and printing of cvtsi2ss, cvtsi2sd, cvtss2si, cvttss2si, cvtsd2si, and cvttsd2si to match gas behavior.

cvtsi2* should parse with an 'l' or 'q' suffix or no suffix at all. No suffix should be treated the same as 'l' suffix. Printing should always print a suffix. Previously we didn't parse or print an 'l' suffix.
cvtt*2si/cvt*2si should parse with an 'l' or 'q' suffix or not suffix at all. No suffix should use the destination register size to choose encoding. Printing should not print a suffix.

Original 'l' suffix issue with cvtsi2* pointed out by Michael Kuperstein.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171668 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-avx.s
86-32-coverage.s
86-64.s
86_64-avx-encoding.s
5bf3a28b36c5d95ad3732b749db651630027b09c 02-Jan-2013 Kevin Enderby <enderby@apple.com> Adds missing aliases for fcom and fcomp instructions without arguments.
Patch by Michael M Kuperstein!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171414 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
15019a8814b7877367ca7bcd7d173710259f7c20 20-Dec-2012 Eli Bendersky <eliben@google.com> Change Lit error redirection to FileCheck to a more common syntax since it
can potentially cause some bots to fail.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170726 91177308-0d34-0410-b5e6-96231b3b80d8
lignedBundling/align-mode-argument-error.s
lignedBundling/asm-printing-bundle-directives.s
lignedBundling/bundle-group-too-large-error.s
lignedBundling/lock-without-bundle-mode-error.s
lignedBundling/switch-section-locked-error.s
lignedBundling/unlock-without-lock-error.s
b17201f1b8c35414e3bbd71c3f37ee6313d77e86 20-Dec-2012 Eli Bendersky <eliben@google.com> Add a largish auto-generated test for the aligned bundling feature, along with
the script generating it. The test should never be modified manually. If anyone
needs to change it, please change the script and re-run it.

The script is placed into utils/testgen - I couldn't think of a better place,
and after some discussion on IRC this looked like a logical location.





git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170720 91177308-0d34-0410-b5e6-96231b3b80d8
lignedBundling/autogen-inst-offset-padding.s
16996c4940ad4248dc2a874d060b30e94e55b672 20-Dec-2012 Eli Bendersky <eliben@google.com> Tests for the aligned bundling support added in r170718


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170719 91177308-0d34-0410-b5e6-96231b3b80d8
lignedBundling/align-mode-argument-error.s
lignedBundling/asm-printing-bundle-directives.s
lignedBundling/bundle-group-too-large-error.s
lignedBundling/different-sections.s
lignedBundling/lit.local.cfg
lignedBundling/lock-without-bundle-mode-error.s
lignedBundling/pad-bundle-groups.s
lignedBundling/relax-in-bundle-group.s
lignedBundling/single-inst-bundling.s
lignedBundling/switch-section-locked-error.s
lignedBundling/unlock-without-lock-error.s
25953bfb0763047df28c01057183493490667531 13-Dec-2012 Eli Bendersky <eliben@google.com> Make this Lit config file a bit slimmer


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170083 91177308-0d34-0410-b5e6-96231b3b80d8
it.local.cfg
3ca6382120c16e30151e19175d40480ee72de641 14-Nov-2012 Jim Grosbach <grosbach@apple.com> X86: Better diagnostics for 32-bit vs. 64-bit mode mismatches.

When an instruction as written requires 32-bit mode and we're assembling
in 64-bit mode, or vice-versa, issue a more specific diagnostic about
what's wrong.

rdar://12700702

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167937 91177308-0d34-0410-b5e6-96231b3b80d8
86_errors.s
be02a90de17f857ba65bbd8a11653ca1bad30adc 08-Nov-2012 Michael Liao <michael.liao@intel.com> Add support of RTM from TSX extension

- Add RTM code generation support throught 3 X86 intrinsics:
xbegin()/xend() to start/end a transaction region, and xabort() to abort a
tranaction region



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167573 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-rtm-encoding.s
2fbc239e4fbdd12c24fb2cf9e3e915861fc12030 29-Oct-2012 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Add support for the [] operator. Essentially, [expr1][expr2] is
equivalent to [expr1 + expr2]. See test cases for more examples.
rdar://12470392

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166949 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-ms-inline-asm.s
d95666c226e41218a07541aaa2cc1fba823c25e4 25-Oct-2012 Chad Rosier <mcrosier@apple.com> Tell llvm-mc we're using intel syntax, so we don't have to use directives.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166640 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-ms-inline-asm.s
b3009eec47d2aaa61cc848a66a7bbd69ad9e0f19 25-Oct-2012 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Add back-end test case for r166632. Make sure we emit the
correct .s output as well as get the correct encoding by the integrated
assembler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166638 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-ms-inline-asm.s
08b6b81ec57e7d8b99844b7f4a211942570ffff1 13-Oct-2012 Benjamin Kramer <benny.kra@googlemail.com> X86: Depending on the local semantics of .align this test can also emit a nopl instead of nopw.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165880 91177308-0d34-0410-b5e6-96231b3b80d8
86_nop.s
126afcbf654e42dc3f659a1a66bfa8a784e7bd46 13-Oct-2012 Benjamin Kramer <benny.kra@googlemail.com> X86: Disable long nops for all cpus prior to pentiumpro/i686.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165878 91177308-0d34-0410-b5e6-96231b3b80d8
86_nop.s
2811ae66a857691b47fbcf98a12521380c05aad0 19-Sep-2012 NAKAMURA Takumi <geek4civic@gmail.com> llvm/test/MC/X86/x86_nop.s: Make sure -arch=x86 when -mcpu=geode.

-mcpu doesn't infer -arch. Consider non-x86 host.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164185 91177308-0d34-0410-b5e6-96231b3b80d8
86_nop.s
36b07f2f07d3dbd4b803a2ac899d6c3c2202ae8c 18-Sep-2012 Roman Divacky <rdivacky@freebsd.org> Add test for r164132.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164134 91177308-0d34-0410-b5e6-96231b3b80d8
86_nop.s
2cfe90b1191ea770ce5e47f6536508e89b829b17 11-Sep-2012 Chad Rosier <mcrosier@apple.com> Add newline.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163565 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-2.s
3c4ecd7dab5567017ad573769b0af484479bac6f 10-Sep-2012 Chad Rosier <mcrosier@apple.com> [ms-inline asm] Add support for .att_syntax directive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163542 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-2.s
9765c6ecde9ca96c37fe3e27d360aadc387b6942 31-Aug-2012 Jim Grosbach <grosbach@apple.com> X86: Fix encoding of 'movd %xmm0, %rax'

The assembly string for the VMOVPQIto64rr instruction incorrectly lacked the 'v'
prefix, resulting in mis-assembly of the vanilla movd instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162963 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
7f76cb6666194d7269bbd6ee0966eacc709dd10a 26-Jul-2012 Craig Topper <craig.topper@gmail.com> Make l/q suffixes on AVX forms of scalar convert instructions consistent with their non-AVX forms.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160775 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-avx.s
86_64-avx-encoding.s
75dc33a60b65bbbf2253b0b916df1d36a4da4237 18-Jul-2012 Craig Topper <craig.topper@gmail.com> Make x86 asm parser to check for xmm vs ymm for index register in gather instructions. Also fix Intel syntax for gather instructions to use 'DWORD PTR' or 'QWORD PTR' to match gas.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160420 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
86_64-avx-encoding.s
97a0c6bc91bf31fa701dda478d9616c2de6b2393 10-Jul-2012 Craig Topper <craig.topper@gmail.com> Reverse assembler/disassembler operand order for gather instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159983 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-avx-encoding.s
a101014026be32a27e9d77d01e01ef08eb57e465 03-Jul-2012 Craig Topper <craig.topper@gmail.com> Add aliases for pblendvb, blendvpd, and blendvps instructions with the implicit xmm0 operand specified. Fixes PR13252.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159644 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
40307c7dbe2d104784763c28697d7926793674af 29-Jun-2012 Manman Ren <mren@apple.com> X86: add more GATHER intrinsics in LLVM

Corrected type for index of llvm.x86.avx2.gather.d.pd.256
from 256-bit to 128-bit.
Corrected types for src|dst|mask of llvm.x86.avx2.gather.q.ps.256
from 256-bit to 128-bit.

Support the following intrinsics:
llvm.x86.avx2.gather.d.q, llvm.x86.avx2.gather.q.q
llvm.x86.avx2.gather.d.q.256, llvm.x86.avx2.gather.q.q.256
llvm.x86.avx2.gather.d.d, llvm.x86.avx2.gather.q.d
llvm.x86.avx2.gather.d.d.256, llvm.x86.avx2.gather.q.d.256


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159402 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-avx-encoding.s
1f7a1b68a07ea6bdf521525a7928f4a8c5216713 26-Jun-2012 Manman Ren <mren@apple.com> X86: add GATHER intrinsics (AVX2) in LLVM

Support the following intrinsics:
llvm.x86.avx2.gather.d.pd, llvm.x86.avx2.gather.q.pd
llvm.x86.avx2.gather.d.pd.256, llvm.x86.avx2.gather.q.pd.256
llvm.x86.avx2.gather.d.ps, llvm.x86.avx2.gather.q.ps
llvm.x86.avx2.gather.d.ps.256, llvm.x86.avx2.gather.q.ps.256

Modified Disassembler to handle VSIB addressing mode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159221 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-avx-encoding.s
952caee4f66a968f54588cca48215a5008283ea3 26-Jun-2012 Craig Topper <craig.topper@gmail.com> Remove some duplicate instructions that exist only to given different mnemonics for the assembler. Use InstAlias instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159184 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-avx.s
86_64-avx-encoding.s
1386e9b7b16a8138ae7060c2dbb8b029f7c4fce2 29-May-2012 Benjamin Kramer <benny.kra@googlemail.com> Add intrinsics, code gen, assembler and disassembler support for the SSE4a extrq and insertq instructions.

This required light surgery on the assembler and disassembler
because the instructions use an uncommon encoding. They are
the only two instructions in x86 that use register operands
and two immediates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157634 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-sse4a.s
0d82fe77f2b6f48b5fab131c1671169d154f8c69 11-Apr-2012 Charles Davis <cdavis@mines.edu> Add retw and lretw instructions. Also, fix Intel syntax parsing for all
ret instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154468 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-encoding.s
86-32.s
86-64.s
769bbfd951018f9b36f3d2f0d70a23d81f2d3287 03-Apr-2012 Craig Topper <craig.topper@gmail.com> Add support for AVX enhanced comparison predicates. Patch from Kay Tiong Khoo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153935 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-avx-encoding.s
4fd3d292753bd8232a76d5ac6b107f5899e5bfaa 21-Mar-2012 Joerg Sonnenberger <joerg@bec.de> Fix generation of the address size override prefix. Add assertions for
the invalid cases. At least 16bit operand in 64bit mode is currently not
rejected in the parser.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153166 91177308-0d34-0410-b5e6-96231b3b80d8
ddress-size.s
0f5ab7c5f392d8207a4b0c5bf1f8b274a9f410df 13-Mar-2012 Kevin Enderby <enderby@apple.com> Change the X86 assembler to not require a segment register on string
instruction's destination operand like it does for the source operand.
Also fix a typo in the comment for X86AsmParser::isSrcOp().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152654 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
84faf659125cb354794e457fa5a8a8daad84760d 12-Mar-2012 Kevin Enderby <enderby@apple.com> Added a missing error check for X86 assembly with mismatched base and index
registers not both being 64-bit or both being 32-bit registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152580 91177308-0d34-0410-b5e6-96231b3b80d8
86_errors.s
58dfaa14651f36fc9fce2031eb011e65ae267b9f 09-Mar-2012 Kevin Enderby <enderby@apple.com> Add the missing call to Error when a bad X86 scale expression is parsed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152443 91177308-0d34-0410-b5e6-96231b3b80d8
86_errors.s
63054f99af1fd013322e8081227b29656d49a2d2 09-Mar-2012 NAKAMURA Takumi <geek4civic@gmail.com> test/MC/X86/lit.local.cfg: Fix up to detect 'X86' in targets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152406 91177308-0d34-0410-b5e6-96231b3b80d8
it.local.cfg
54427e52197ecd8c748736d7bbb431f2bf65c90e 06-Mar-2012 Eli Friedman <eli.friedman@gmail.com> Fix the operand ordering on aliases for shld and shrd. PR12173, part 2.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152136 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
ec93b6decad4b95fd8a9531dc024b2b1881019bf 05-Mar-2012 Eli Friedman <eli.friedman@gmail.com> Make aliases for shld and shrd match gas. PR12173.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152014 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
b80d571ea85db5d52fafed0523cf59e693502198 23-Feb-2012 Kevin Enderby <enderby@apple.com> Updated the llvm-mc disassembler C API to support for the X86 target.
rdar://10873652

As part of this I updated the llvm-mc disassembler C API to always call the
SymbolLookUp call back even if there is no getOpInfo call back. If there is a
getOpInfo call back that is tried first and then if that gets no information
then the SymbolLookUp is called. I also made the code more robust by
memset(3)'ing to zero the LLVMOpInfo1 struct before then setting
SymbolicOp.Value before for the call to getOpInfo. And also don't use any
values from the LLVMOpInfo1 struct if getOpInfo returns 0. And also don't
use any of the ReferenceType or ReferenceName values from SymbolLookUp if it
returns NULL. rdar://10873563 and rdar://10873683

For the X86 target also fixed bugs so the annotations get printed.

Also fixed a few places in the ARM target that was not producing symbolic
operands for some instructions. rdar://10878166


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151267 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
28a713b20ad17f9a02d4677d8a2fea0edb208418 19-Feb-2012 Craig Topper <craig.topper@gmail.com> Add vmfunc instruction to X86 assembler and disassembler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150899 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
86-32.s
9e3d0b335111b2df73984a6cfd9ef1cd5d323872 18-Feb-2012 Craig Topper <craig.topper@gmail.com> Add X86 assembler and disassembler support for AMD SVM instructions. Original patch by Kay Tiong Khoo. Few tweaks by me for code density and to reduce replication.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150873 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
86-32.s
0f0c411079cd21bb3a81a1b70bf8c67539a16c22 16-Feb-2012 Eli Bendersky <eli.bendersky@intel.com> Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed.

Patch reviewed by Daniel Dunbar. It will be followed by additional cleanup patches.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150664 91177308-0d34-0410-b5e6-96231b3b80d8
g.exp
it.local.cfg
885f65b4a1c1ec80cd800a0617c57a2289472165 30-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax. Adjust special code, used to recognize cmp<comparison code>{ss,sd,ps,pd}, for intel syntax.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149291 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-encoding.s
be3e310d5ed8717f070acc71b0f4dae28cb08c4d 30-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax. Support .intel_syntax directive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149270 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-2.s
a28101e61aa3aeed5baf3d5b91d0f8bcb4e9e12a 27-Jan-2012 Devang Patel <dpatel@apple.com> Intel Syntax: Parse mem operand with seg reg. QWORD PTR FS:[320]


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149142 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
3b96e1fe3b695e6d845668ea90d75016f0f46a17 24-Jan-2012 Devang Patel <dpatel@apple.com> Intel Syntax: Extend special hand coded logic, to recognize special instructions, for intel syntax.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148864 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-encoding.s
f2d213745e07e884c1616f2f3d0b78f9e918e5db 23-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax: Robustify parsing of memory operand's displacement experssion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148737 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
3e08131185d5b3245065eb027900aed56b607970 23-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax: Parse memory operand with empty base reg, e.g. DWORD PTR [4*RDI]


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148721 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
7c64fe651ad4581ac66b6407116144442a8a7f03 23-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax: Parse segment registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148712 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
1aea430b8834f7bed3a14eda5027eac2133d6496 20-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax: Robustify register parsing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148591 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
fdd3b30151bc391efce74f4592a9a3bb595565a2 20-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax: Parse ... PTR [-8]


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148570 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-encoding.s
cf0e269d16f3d784b428c9b1b1e22d1f9e8bb91d 20-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax: For now, disable ambiguous JMP64pcrel32 for intel syntax.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148569 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-encoding.s
a951f77ca31b43551bd41765504519d6d76e6cbf 19-Jan-2012 Devang Patel <dpatel@apple.com> Post process 'and', 'sub' instructions and select better encoding, if available.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148489 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-encoding.s
e60540f380cc9466f3b2f7d17adfd37db137689c 19-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax: There is no need to create unary expr for simple negative displacement.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148486 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-encoding.s
ac0f0486022fb1798579c9a550154e839770efa9 19-Jan-2012 Devang Patel <dpatel@apple.com> Post process 'xor', 'or' and 'cmp' instructions and select better encoding, if available.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148485 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax-encoding.s
b8ba13f0096b560ee618512019ca86969a9fa772 18-Jan-2012 Devang Patel <dpatel@apple.com> Process instructions after match to select alternative encoding which may be more desirable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148431 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
2f8af1d643cde711b292117e50b30452877432ef 17-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax: Fix parser match class to check memory operand size.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148338 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
6220fea2a877e5cff559ed38e98c59a076ea9825 17-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax: Parse "BYTE PTR [RDX + RCX]"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148334 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
9a3d293cf3f72b3c0ed5d4474fc5d4d12fd36be2 17-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax: Do not unncessarily create plus expression for memory operand displacement.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148321 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
40bced0306e953c3d0fec19db4c4770b0e3c787e 17-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax: Ignore mnemonic aliases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148316 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
d37ad247cc04c2a436e537767ac1aec709901594 17-Jan-2012 Devang Patel <dpatel@apple.com> Intel syntax: Robustify memory operand parsing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148312 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
4a5c0fd70e7a2001b682c8972dab6b0127313c8f 13-Jan-2012 Devang Patel <dpatel@apple.com> Add new test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148128 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.s
989a6814643dba79d5add649695c0523edafc026 12-Jan-2012 Devang Patel <dpatel@apple.com> Remove test case, as Chris suggested.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148039 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.ll
21d3c40fb04a8d9d9c44597c662b31569e74ff69 12-Jan-2012 Devang Patel <dpatel@apple.com> Add test case to check intel syntax parsing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148034 91177308-0d34-0410-b5e6-96231b3b80d8
ntel-syntax.ll
7e840efc238db1123ea625b3d4e9893d6ea1bc50 16-Dec-2011 Eli Friedman <eli.friedman@gmail.com> Make sure we correctly note the existence of an i8 immediate for vblendvps and friends, so we compute fixups correctly. PR11586.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146709 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-avx-encoding.s
37e7ecf52b2f4e282b58ab81e59adc8b9b4ec336 12-Dec-2011 Jan Sjödin <jan_sjodin@yahoo.com> XOP instructions and encoding tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146407 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-xop-encoding.s
dd649e35e522f5e0b5da3f9d172e06a375c12f77 30-Nov-2011 Jan Sjödin <jan_sjodin@yahoo.com> Support for encoding all FMA4 instructions and tablegen patterns for all
remaining FMA4 instructions and intrinsics with tests.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145525 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-fma4-encoding.s
1b9b377975b3f437acef8c2ba90de582add52f65 25-Nov-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> This patch contains support for encoding FMA4 instructions and
tablegen patterns for scalar FMA4 operations and intrinsic. Also
add tests for vfmaddsd.

Patch by Jan Sjodin

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145133 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-fma4-encoding.s
9d399b1fc2f7dfad72f5ff3328983acb805eaf10 24-Nov-2011 Benjamin Kramer <benny.kra@googlemail.com> X86: alias cqo to cqto.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145121 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
5e6d54806570db81bbc8bdb480ce049f4bad05cc 31-Oct-2011 Rafael Espindola <rafael.espindola@gmail.com> Move test to the X86 directory, note the PR number and only run MC once.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143352 91177308-0d34-0410-b5e6-96231b3b80d8
011-09-06-NoNewline.s
55c4127134d127ccd52cc2f4115af00084b28807 27-Oct-2011 Kevin Enderby <enderby@apple.com> Change the sysexit mnemonic (and sysexitl) to never have the REX.W prefix and
not depend on In32BitMode. Use the sysexitq mnemonic for the version with the
REX.W prefix and only allow it only In64BitMode. rdar://9738584


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143112 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
86-64.s
86_errors.s
5679ec3b528fb897739251b1f66037767ce2f208 24-Oct-2011 Craig Topper <craig.topper@gmail.com> Add X86 SARX, SHRX, and SHLX instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142779 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-bmi-encoding.s
75485d6746f8b5b23c17cf6d2364e7e1e0705992 23-Oct-2011 Craig Topper <craig.topper@gmail.com> Add X86 RORX instruction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142741 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-bmi-encoding.s
717cdb0df88ddf704f057fb70ed7093836222609 19-Oct-2011 Craig Topper <craig.topper@gmail.com> Rename PEXTR to PEXT. Add intrinsics for BMI instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142480 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-bmi-encoding.s
ee62e4f6d192ee31d1ad9dd0ba0c41db6663d3c7 16-Oct-2011 Craig Topper <craig.topper@gmail.com> Add X86 PEXTR and PDEP instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142141 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-bmi-encoding.s
b53fa8bf19a51f0c49a9f8b6ede3e2ff3bdfb961 16-Oct-2011 Craig Topper <craig.topper@gmail.com> Add X86 BZHI instruction as well as BMI2 feature detection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142122 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-bmi-encoding.s
d8b7aa26134d2abee777f745c32005e63dea2455 16-Oct-2011 Chris Lattner <sabre@nondot.org> Enhance llvm::SourceMgr to support diagnostic ranges, the same way clang does. Enhance
the X86 asmparser to produce ranges in the one case that was annoying me, for example:

test.s:10:15: error: invalid operand for instruction
movl 0(%rax), 0(%edx)
^~~~~~~

It should be straight-forward to enhance filecheck, tblgen, and/or the .ll parser to use
ranges where appropriate if someone is interested.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142106 91177308-0d34-0410-b5e6-96231b3b80d8
86_errors.s
17730847d59c919d97f097d46a3fcba1888e5300 16-Oct-2011 Craig Topper <craig.topper@gmail.com> Add X86 BEXTR instruction. This instruction uses VEX.vvvv to encode Operand 3 instead of Operand 2 so needs special casing in the disassembler and code emitter. Ultimately, should pass this information from tablegen

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142105 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-bmi-encoding.s
566f233ba64c0bb2773b5717cb18753c7564f4b7 15-Oct-2011 Craig Topper <craig.topper@gmail.com> Add support for X86 blsr, blsmsk, and blsi instructions. Required extra work because these are the first VEX encoded instructions to use the reg field as an opcode extension.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142082 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-bmi-encoding.s
acbaecd4c8e4d19207e63624dcd9e01947b51757 12-Oct-2011 Kevin Enderby <enderby@apple.com> Finish supporting cpp #file/line comments in assembler for error messages. So
for cpp pre-processed assembly we give correct filename and line numbers when
reporting errors in assembly files when using clang and -integrated-as on .s
files. rdar://8998895



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141814 91177308-0d34-0410-b5e6-96231b3b80d8
86_errors.s
25f6dfd108801d1dc5877c420ef0dd47131aeda7 07-Oct-2011 Craig Topper <craig.topper@gmail.com> Revert part of r141274. Only need to change encoding for xchg %eax, %eax in 64-bit mode. This is because in 64-bit mode xchg %eax, %eax implies zeroing the upper 32-bits of RAX which makes it not a NOP. In 32-bit mode using NOP encoding is fine.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141353 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
86-64.s
7ea16b01fad5236cc132cb5fc3e443fcbf70d3b8 06-Oct-2011 Craig Topper <craig.topper@gmail.com> Fix assembling of xchg %eax, %eax to not use the NOP encoding of 0x90. This was done by creating a new register group that excludes AX registers. Fixes PR10345. Also added aliases for flipping the order of the operands of xchg <reg>, %eax.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141274 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
86-64.s
448d98685847a1daf7451b95904ae92a3cbab2ac 20-Sep-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> The wrong relocation was being emitted for several SSSE3 instructions.
This fixes PR10963. Thanks to Benjamin for finding the wrong tablegen
declaration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140184 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-avx-encoding.s
d91c6e058b3f21a5299e6a2e8b9ed2f6899e0b19 20-Sep-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Fix PR10949. Fix the encoding of VMOVPQIto64rr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140098 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-avx-encoding.s
0c9acfcb50a844eefe92556e59c81fc302f32d1c 20-Aug-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Re-write part of VEX encoding logic, to be more easy to read! Also fix
a bug and add a testcase!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138123 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-avx-encoding.s
863e0f25b7b53f6c7f43cdb8a0b900003096595e 19-Aug-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Fix PR10677. Initial patch and idea by Peter Cooper but I've changed the
implementation!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138029 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-avx-encoding.s
1deddbbd5659edc92028c2278018d21375ce3c81 16-Aug-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Reorder declarations of vmovmskp* and also put the necessary AVX
predicate and TB encoding fields. This fix the encoding for the
attached testcase. This fixes PR10625.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137684 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-avx.s
5de728cfe1a922ac9b13546dca94526b2fa693b6 28-Jul-2011 Evan Cheng <evan.cheng@apple.com> Emit an error is asm parser parsed X86_64 only registers, e.g. %rax, %sil.
This can happen in cases where TableGen generated asm matcher cannot check
whether a register operand is in the right register class. e.g. mem operands.

rdar://8204588


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136292 91177308-0d34-0410-b5e6-96231b3b80d8
DNow.s
86-32-coverage.s
86_errors.s
c37d4bbf1f33c5e4b1c2f1bf1a6e2cae2ae5603a 28-Jul-2011 Kevin Enderby <enderby@apple.com> Fix llvm-mc handing of x86 instructions that take 8-bit unsigned immediates.

llvm-mc gives an "invalid operand" error for instructions that take an unsigned
immediate which have the high bit set such as:
pblendw $0xc5, %xmm2, %xmm1
llvm-mc treats all x86 immediates as signed values and range checks them.
A small number of x86 instructions use the imm8 field as a set of bits.
This change only changes those instructions and where the high bit is not
ignored. The others remain unchanged.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136287 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-avx.s
86-32-coverage.s
d521f2d2f1a866ba9f9e73ca566e2b486c15dc74 06-Jul-2011 Kevin Enderby <enderby@apple.com> Changed the X86 PUSH64i8 record to use the i64i8imm ParserMatchClass so that a
push with a small constant produces a 2-byte push.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134501 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
af45b3d8cb1b88d3cf775542996d78d8ce009274 05-Jul-2011 Eli Friedman <eli.friedman@gmail.com> Add assembler/disassembler support for non-AVX pclmulqdq. While I'm here, use proper aliases for the pclmullqlqdq and friends. PR10269.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134424 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
ca0ede7655cbe126441dd13599eafdf442eff3a9 30-Jun-2011 Joerg Sonnenberger <joerg@bec.de> Recognize the xstorerng alias for VIA PadLock's xstore instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134126 91177308-0d34-0410-b5e6-96231b3b80d8
adlock.s
a390a1aa48d8fa5085aa51b950f00d79dbb0c646 23-Jun-2011 Eli Friedman <eli.friedman@gmail.com> Add support for movntil/movntiq mnemonics. Reported on llvmdev.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133759 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
86-64.s
94d4c91bc5b2a84e6b93250599b6742777dbd35e 22-Jun-2011 Nick Lewycky <nicholas@mxc.ca> Add support for assembling "movq" when it's correct to do so, while continuing
to emit "movd" across the board to continue supporting a Darwin assembler bug.
This is the reincarnation of r133452.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133565 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
38c892624bc66cad98a81e080d235f4e33122562 21-Jun-2011 Bob Wilson <bob.wilson@apple.com> Revert r133452: "Emit movq for 64-bit register to XMM register moves..."

This is breaking compiler-rt and llvm-gcc builds on MacOSX when not using
the integrated assembler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133524 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
86_64-avx-encoding.s
1bd15700a0eb3057d3e2d65070c3fc6b99e0d8a2 20-Jun-2011 Nick Lewycky <nicholas@mxc.ca> Emit movq for 64-bit register to XMM register moves, but continue to accept
movd when assembling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133452 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
86_64-avx-encoding.s
393c4047c05b6d7b5851d339e51bb2cc35f630c2 15-Jun-2011 Bill Wendling <isanbard@gmail.com> Improve the heuristic to emit the alias if the number of hard-coded registers
are also greater than the alias.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133038 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
740e5b3586a474f1cea371cf6f652850e5420b90 14-Jun-2011 Bill Wendling <isanbard@gmail.com> Heuristic: If the number of operands in the alias are more than the number of
operands in the aliasee, don't print the alias.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132963 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
d521d8bf923b2f4b3e44a4ae2ebd0dcb59d7b23b 23-May-2011 Chris Lattner <sabre@nondot.org> add test from PR9164


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131876 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
b8a21ad91556903d055bb1de47f75655ca4e9ba6 23-May-2011 Chris Lattner <sabre@nondot.org> testcase for PR9378


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131875 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
b65122c8736e6f8795043ca9885feb676781af4a 04-May-2011 Eric Christopher <echristo@apple.com> Remove some random comments that snuck in from somewhere.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130812 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
2fc496fcf5c5caf3e6af755d2c8fc97686cc2dd2 03-May-2011 Eric Christopher <echristo@apple.com> xmm0 is an implicit parameter in this and so shouldn't be in the
string template.

Fixes rdar://8493866


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130747 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
c25e8d8cea7af83b5538ac0e521366d06c9720d9 15-Apr-2011 Joerg Sonnenberger <joerg@bec.de> Add encoding tests for flds/filds


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129589 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
86_64-encoding.s
d336de318eafd7643f65a901315920ec10ce05cd 14-Apr-2011 Bill Wendling <isanbard@gmail.com> As Dan pointed out, movzbl, movsbl, and friends are nicer than their alias
(movzx/movsx) because they give more information. Revert that part of the patch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129498 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
c6df9883da99915d1cfa491b381ffa703c61ed90 14-Apr-2011 Bill Wendling <isanbard@gmail.com> Have the X86 back-end emit the alias instead of what's being aliased. In most
cases, it's much nicer and more informative reading the alias.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129497 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
86-64.s
15f895179953b258e4ca20860d0d58f25f3a3edb 09-Apr-2011 Chris Lattner <sabre@nondot.org> fix rdar://8735979 - "int 3" doesn't match to "int3". Unfortunately,
InstAlias doesn't allow matching immediate operands, so we have to write
C++ code to do this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129223 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
4a8ac8de1ddfeaadb9ff13ce361bfc6435f18028 04-Apr-2011 Joerg Sonnenberger <joerg@bec.de> Add support for the VIA PadLock instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128826 91177308-0d34-0410-b5e6-96231b3b80d8
adlock.s
96622aa063435b1de085489f0e3e49b5912c22da 18-Mar-2011 Joerg Sonnenberger <joerg@bec.de> Support explicit argument forms for the X86 string instructions.
For now, only the default segments are supported.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127875 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
86-64.s
86d822df6d9a484b3672b2a909641262663a45dc 04-Mar-2011 Eli Friedman <eli.friedman@gmail.com> Followup to r126970: add 64-bit encoding tests for str with reg operand.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126987 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
ac39bd534be9a8022c09cc8be81db2de109baecb 04-Mar-2011 Eli Friedman <eli.friedman@gmail.com> PR9377: Handle x86 str with register operand in a way consistent with gas.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126970 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
00743c2218ff3f0f4edce972e2d88893a19e6ef8 22-Feb-2011 Joerg Sonnenberger <joerg@bec.de> Use the same (%dx) hack for in[bwl] as for out[bwl].


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126244 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
d86f482e4a9d71596e4f81afb0f7912ab3e40a7f 22-Feb-2011 Joerg Sonnenberger <joerg@bec.de> Recognize loopz and loopnz as aliases for loope and loopne.
From Dimitry Andric.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126168 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
86-64.s
87ca0e077d91b96a765b3b24cadfa8891026a33a 22-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Implement xgetbv and xsetbv.
Patch by Jai Menon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126165 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
824a9076eaf8d109bc79f53e51b7d7a045f42552 19-Feb-2011 Chris Lattner <sabre@nondot.org> implement PR9264: disambiguating 'bt mem, imm' as a btl.
This is reasonable to do since all bt-mem forms do the
same thing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126047 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
5ad596f9d27a67767118857471e63b55bfb152d6 18-Feb-2011 Joerg Sonnenberger <joerg@bec.de> Recognize monitor/mwait with explicit register arguments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125805 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
86-64.s
97755a063eb65705e928550b048ecb921c83545c 18-Feb-2011 Joerg Sonnenberger <joerg@bec.de> Recognize leavel and leaveq aliases for leave.
Validate encoding of leave in 64bit mode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125795 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
86_64-encoding.s
26f23100ac8165c510c00f7a37f1ab13bf66f141 13-Feb-2011 Reid Kleckner <reid@kleckner.net> Add encodings and mnemonics for FXSAVE64 and FXRSTOR64.

These are just FXSAVE and FXRSTOR with REX.W prefixes. These versions use
64-bit pointer values instead of 32-bit pointer values in the memory map they
dump and restore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125446 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-encoding.s
3a5004dc3ee789bcbafd5b9733d3302e73e1187d 11-Jan-2011 Chris Lattner <sabre@nondot.org> Fix PR8946, a missing reg/reg form of movdqu.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123242 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
c00210cef28b48b17408eb79e94691779da9d474 30-Dec-2010 Nick Lewycky <nicholas@mxc.ca> Add another non-commutable instruction that gas accepts commuted forms for.
Fixes PR8861.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122641 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
7ab3cc32d6bd3c3166184e27713c91f5317c7f85 25-Dec-2010 Chris Lattner <sabre@nondot.org> Generalize a previous change, fixing PR8855 - an valid large immediate
rejected by the mc assembler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122557 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
76331754d4a06e2394c15ae8f4870f4aeaf5ca1f 09-Dec-2010 Kevin Enderby <enderby@apple.com> Allow a slash, '/', as a prefix separator for X86. rdar://8741045


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121320 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
d8f717911dcdccb1a60b3049ea22c7767970dcb7 28-Nov-2010 Chris Lattner <sabre@nondot.org> fix PR8686, accepting a 'b' suffix at the end of all the setcc
instructions. I choose to handle this with an asmparser hack,
though it could be handled by changing all the instruction definitions
to allow be "setneb" instead of "setne". The asm parser hack is
better in this case, because we want the disassembler to produce
setne, not setneb.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120260 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
bfd2d26159c87262fcf462ea442f99478a2093c9 27-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement the data16 prefix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120224 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
5c7106b2e375edca4b63ab48b218654f978698a4 24-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Testcase for r120017.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120099 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650 21-Nov-2010 Chris Lattner <sabre@nondot.org> implement PR8524, apparently mainline gas accepts movq as an alias for movd
when transfering between i64 gprs and mmx regs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119931 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
269f10b316b41fde5c9bf3f6e5c471f371862834 12-Nov-2010 Chris Lattner <sabre@nondot.org> accept lret as an alias for lretl, fixing the reopened part of PR8592


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118916 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
6b5e3978e3f720f6d2828068157b9d9687aee711 12-Nov-2010 Chris Lattner <sabre@nondot.org> implement PR8592: empirically "lretq" is a "lret" with a rex.w prefix.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118903 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
689cf3cb6222652b92fdbd52e96c1d2f421ac44e 06-Nov-2010 Chris Lattner <sabre@nondot.org> implement aliases for div/idiv that have an explicit A register operand,
implementing rdar://8431864


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118364 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
04a75abe234f1093f69a065d799b3271ccd09f99 06-Nov-2010 Chris Lattner <sabre@nondot.org> add aliases for movs between seg registers and mem. There are multiple
different forms of this instruction (movw/movl/movq) which we reported
as being ambiguous. Since they all do the same thing, gas just picks the
one with the shortest encoding. Follow its lead here.

This implements rdar://8208615


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118362 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
db28788e4ae01c3fa8003773fc236768e87f6917 06-Nov-2010 Chris Lattner <sabre@nondot.org> go to great lengths to work around a GAS bug my previous patch
exposed:

GAS doesn't accept "fcomip %st(1)", it requires "fcomip %st(1), %st(0)"
even though st(0) is implicit in all other fp stack instructions.

Fortunately, there is an alias for fcomip named "fcompi" and gas does
accept the default argument for the alias (boggle!).

As such, switch the canonical form of this instruction to "pi" instead
of "ip". This makes the code generator and disassembler generate pi,
avoiding the gas bug.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118356 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
86-32.s
8c24b0c6996a8f03ff32766f0695dcf19577af59 06-Nov-2010 Chris Lattner <sabre@nondot.org> rework the rotate-by-1 instructions to be defined like the
shift-by-1 instructions, where the asmstring doesn't contain
the implicit 1. It turns out that a bunch of these rotate
instructions were completely broken because they used 1
instead of $1.

This fixes assembly mismatches on "rclb $1, %bl" and friends,
where we used to generate the 3 byte form, we now generate the
proper 2-byte form.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118355 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
235705b9ca08b66532528930adf9d9c23fd7b42b 06-Nov-2010 Chris Lattner <sabre@nondot.org> change the fp comparison instructions to not have %st0 explicitly
listed in its asm string, for consistency with the other similar
instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118354 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
86-32.s
86-64.s
fb7000fcbde3b5257ac055e1e5abdee5df21842b 06-Nov-2010 Chris Lattner <sabre@nondot.org> correct suffix matching to search for s/l/t suffixes on
floating point stack instructions instead of looking for b/w/l/q.

This fixes issues where we'd accidentally match fistp to fistpl,
when it is in fact an ambiguous instruction.

This changes the behavior of llvm-mc to reject fstp, which was the
correct fix for rdar://8456389:
t.s:1:1: error: ambiguous instructions require an explicit suffix (could be 'fstps', 'fstpl', or 'fstpt')
fstp (%rax)

it also causes us to correctly reject fistp and fist, which addresses
PR8528:

t.s:2:1: error: ambiguous instructions require an explicit suffix (could be 'fistps', or 'fistpl')
fistp (%rax)
^
t.s:3:1: error: ambiguous instructions require an explicit suffix (could be 'fists', or 'fistl')
fist (%rax)
^

Thanks to Ismail Donmez for tracking down the issue here!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118346 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
acc473fcf9860567d4da60625944d48b075d28f8 01-Nov-2010 Chris Lattner <sabre@nondot.org> "mov[zs]x (mem), GR16" are not ambiguous: the mem
must be 8 bits. Support this memory form.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117902 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
b501d4f673c0db267a76800339f9943f2ce6fe33 01-Nov-2010 Chris Lattner <sabre@nondot.org> Implement enough of the missing instalias support to get
aliases installed and working. They now work when the
matched pattern and the result instruction have exactly
the same operand list.

This is now enough for us to define proper aliases for
movzx and movsx, implementing rdar://8017633 and PR7459.

Note that we do not accept instructions like:
movzx 0(%rsp), %rsi

GAS accepts this instruction, but it doesn't make any
sense because we don't know the size of the memory
operand. It could be 8/16/32 bits.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117901 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
4164f6bbbf4ebce676e8a6c0a0cf7a78ef46a0f3 01-Nov-2010 Chris Lattner <sabre@nondot.org> make the asm matcher emitter reject instructions that have comments
in their asmstring. Fix the two x86 "NOREX" instructions that have them.
If these comments are important, the instlowering stuff can print them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117897 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
1a1ecc9f3c2684249bd765d1299302d629aaf4fe 30-Oct-2010 Chris Lattner <sabre@nondot.org> fix an encoding mismatch where "sal %eax, 1" was not using the short encoding
for shl. Caught by inspection.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117820 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
905b8f76142b43cd33c36c554d359ee8740f51d5 30-Oct-2010 Chris Lattner <sabre@nondot.org> add a test for the ud2a alias.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117803 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
529b1a43986265fb399eecd0dcbf9c409d049853 27-Oct-2010 Kevin Enderby <enderby@apple.com> Added the x86 instruction ud2b (2nd official undefined instruction).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117485 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
e460890351ed36fa518960a417d85964c2b29eee 27-Oct-2010 Kevin Enderby <enderby@apple.com> Yet another tweak to X86 instructions to add ud2a as an alias to ud2
(still to add ud2b).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117435 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
5a378076a44ef3f507b91aa8e7715fabaec42074 27-Oct-2010 Kevin Enderby <enderby@apple.com> Another tweak to X86 instructions to add the missing flex instruction (without
the wait prefix).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117434 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
f4630ecc3f2b80440b2d9e59add56a3b422de684 27-Oct-2010 Kevin Enderby <enderby@apple.com> Tweaks to X86 instructions to allow the 'w' suffix in places it makes
sense, when the instruction takes the 16-bit ax register or m16 memory
location. These changes to llvm-mc matches what the darwin assembler
allows for these instructions. Done differently than in r117031 that
caused a valgrind error which was later reverted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117433 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
41e8cc73cf570754fffdc6963321c153a8010458 27-Oct-2010 Kevin Enderby <enderby@apple.com> Added some aliases to the fcomip and fucompi Intel instructions. So that llvm-mc
will accept versions that the darwin assembler allows. Forms ending in "pi" and
forms without all the operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117427 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
0966ec08610c02c8556105f2fff88a7e7247a549 22-Oct-2010 Andrew Trick <atrick@apple.com> Reverting r117031 to cleanup valgrind errors.
It doesn't look like anything is wrong with the checkin,
but the new test cases expose a mem bug in AsmParser.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117087 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
86-32.s
86-64.s
0b9325c97d031ab0e9a240d69a2be11ec1559e37 21-Oct-2010 Kevin Enderby <enderby@apple.com> More tweaks to X86 instructions to allow the 'w' suffix in places it makes
sense, when the instruction takes the 16-bit ax register or m16 memory
location. These changes to llvm-mc matches what the darwin assembler allows
for these instructions. Also added the missing flex (without the wait prefix)
and ud2a as an alias to ud2 (still to add ud2b).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117031 91177308-0d34-0410-b5e6-96231b3b80d8
86-32-coverage.s
86-32.s
86-64.s
87f4a1a4331e40cbba28e829561759d146273840 19-Oct-2010 Kevin Enderby <enderby@apple.com> Added a few tweaks to the Intel Descriptor-table support instructions to allow
word forms and suffixed versions to match the darwin assembler in 32-bit and
64-bit modes. This is again for use just with assembly source for llvm-mc .


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116773 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
86-64.s
7aef62ff8c72506cc9b77333d25f4aa8aa9cf9fe 18-Oct-2010 Kevin Enderby <enderby@apple.com> Added a handful of x86-32 instructions that were missing so that llvm-mc would
be more complete. These are only expected to be used by llvm-mc with assembly
source so there is no pattern, [], in the .td files. Most are being added to
X86InstrInfo.td as Chris suggested and only comments about register uses are
added. Suggestions welcome on the .td changes as I'm not sure on every detail
of the x86 records. More missing instructions will be coming.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116716 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
86-64.s
508fc4708bb859391af8969614e67c84ab56c38c 05-Oct-2010 Chris Lattner <sabre@nondot.org> Replace a gross hack (the MOV64ri_alt instruction) with a slightly less
gross hack (having the asmmatcher handle the alias).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115685 91177308-0d34-0410-b5e6-96231b3b80d8
86-64.s
86_64-imm-widths.s
d32d85e5ba2de223c853b2e1c9bd57a39ebab4ce 03-Oct-2010 Eli Friedman <eli.friedman@gmail.com> Add 3DNowA instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115477 91177308-0d34-0410-b5e6-96231b3b80d8
DNow.s
591d76ea5a10062316e18075eccd4c62d60b5a80 03-Oct-2010 Chris Lattner <sabre@nondot.org> the immediate field of pshufw is actually an 8-bit field, not a 8-bit field that is sign extended. This fixes PR8288


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115473 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
cc07d7116a7d398b2e1da9ad8bc17f7bf74164f5 03-Oct-2010 Chris Lattner <sabre@nondot.org> add support for the prefetch/prefetchw instructions, move femms into
the right file. The assembler supports all the 3dnow instructions now,
but not the "3dnowa" ones.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115468 91177308-0d34-0410-b5e6-96231b3b80d8
DNow.s
f132fa0e74b5faa5f7095cbe0dcf87e72939b588 03-Oct-2010 Chris Lattner <sabre@nondot.org> what the heck, add support for the rest of the 3dNow! binary operations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115467 91177308-0d34-0410-b5e6-96231b3b80d8
DNow.s
548abfcbd671b1144bf517b17643259dcae76f4f 03-Oct-2010 Chris Lattner <sabre@nondot.org> Implement support for the bizarre 3DNow! encoding (which is unlike anything
else in X86), and add support for pavgusb. This is apparently the
only instruction (other than movsx) that is preventing ffmpeg from building
with clang.

If someone else is interested in banging out the rest of the 3DNow!
instructions, it should be quite easy now.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115466 91177308-0d34-0410-b5e6-96231b3b80d8
DNow.s
d47691460770c886cf2fdafaf0f53e0cd101ccf1 02-Oct-2010 Chris Lattner <sabre@nondot.org> fix a regression introduced in r115243, in which the instruction
backing int_x86_ssse3_pshuf_w got removed. This caused PR8280.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115422 91177308-0d34-0410-b5e6-96231b3b80d8
86-32.s
3286db670c689104c0df4f98fbb4a66f6e4d2db5 01-Oct-2010 Chris Lattner <sabre@nondot.org> move X86 subdir up a level


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115292 91177308-0d34-0410-b5e6-96231b3b80d8
g.exp
86-32-avx.s
86-32-coverage.s
86-32-fma3.s
86-32.s
86-64.s
86_64-avx-clmul-encoding.s
86_64-avx-encoding.s
86_64-encoding.s
86_64-fma3-encoding.s
86_64-imm-widths.s
86_directives.s
86_errors.s
86_operands.s