llvm-project/llvm/test/MC/X86
Chad Rosier 4a7005e976 [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

llvm-svn: 178881
2013-04-05 16:28:55 +00:00
..
AlignedBundling The current X86 NOP padding uses one long NOP followed by the remainder in 2013-03-05 00:02:23 +00:00
3DNow.s Emit an error is asm parser parsed X86_64 only registers, e.g. %rax, %sil. 2011-07-27 23:22:03 +00:00
2011-09-06-NoNewline.s Move test to the X86 directory, note the PR number and only run MC once. 2011-10-31 17:23:09 +00:00
address-size.s Fix generation of the address size override prefix. Add assertions for 2012-03-21 05:48:07 +00:00
fde-reloc.s Move test since it depends on the X86 backend. 2013-03-28 17:01:28 +00:00
gnux32-dwarf-gen.s Now that llvm-dwarfdump supports flags to specify which DWARF section to dump, 2013-01-25 21:44:53 +00:00
intel-syntax-2.s Add newline. 2012-09-10 23:09:27 +00:00
intel-syntax-encoding.s Post process ADC/SBB and use a shorter encoding if they use a sign extended immediate. 2013-03-18 03:34:55 +00:00
intel-syntax-hex.s 'Hexadecimal' has two 'a's and only one 'i'. 2013-02-25 18:11:18 +00:00
intel-syntax.s [ms-inline asm] Add support for numeric displacement expressions in bracketed 2013-04-05 16:28:55 +00:00
lit.local.cfg Make this Lit config file a bit slimmer 2012-12-13 02:03:46 +00:00
padlock.s Recognize the xstorerng alias for VIA PadLock's xstore instruction. 2011-06-30 01:38:03 +00:00
shuffle-comments.s Merge SSE and AVX shuffle instructions in the comment printer. 2013-01-29 07:54:31 +00:00
x86-32-avx.s Fix suffix handling for parsing and printing of cvtsi2ss, cvtsi2sd, cvtss2si, cvttss2si, cvtsd2si, and cvttsd2si to match gas behavior. 2013-01-06 20:39:29 +00:00
x86-32-coverage.s Fix suffix handling for parsing and printing of cvtsi2ss, cvtsi2sd, cvtss2si, cvttss2si, cvtsd2si, and cvttsd2si to match gas behavior. 2013-01-06 20:39:29 +00:00
x86-32-fma3.s
x86-32-ms-inline-asm.s [ms-inline asm] Add support of imm displacement before bracketed memory 2013-03-27 21:49:56 +00:00
x86-32.s Add retw and lretw instructions. Also, fix Intel syntax parsing for all 2012-04-11 01:10:53 +00:00
x86-64.s Fix suffix handling for parsing and printing of cvtsi2ss, cvtsi2sd, cvtss2si, cvttss2si, cvtsd2si, and cvttsd2si to match gas behavior. 2013-01-06 20:39:29 +00:00
x86_64-avx-clmul-encoding.s
x86_64-avx-encoding.s Fix suffix handling for parsing and printing of cvtsi2ss, cvtsi2sd, cvtss2si, cvttss2si, cvtsd2si, and cvttsd2si to match gas behavior. 2013-01-06 20:39:29 +00:00
x86_64-bmi-encoding.s Add X86 SARX, SHRX, and SHLX instructions. 2011-10-23 22:18:24 +00:00
x86_64-encoding.s
x86_64-fma3-encoding.s
x86_64-fma4-encoding.s 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. 2013-03-14 07:40:52 +00:00
x86_64-imm-widths.s
x86_64-rand-encoding.s Add support of RDSEED defined in AVX2 extension 2013-03-28 23:41:26 +00:00
x86_64-rtm-encoding.s x86 -- add the XTEST instruction 2013-03-25 18:59:43 +00:00
x86_64-sse4a.s Add intrinsics, code gen, assembler and disassembler support for the SSE4a extrq and insertq instructions. 2012-05-29 19:05:25 +00:00
x86_64-xop-encoding.s XOP instructions and encoding tests. 2011-12-12 19:37:49 +00:00
x86_directives.s
x86_errors.s X86: Better diagnostics for 32-bit vs. 64-bit mode mismatches. 2012-11-14 18:04:47 +00:00
x86_long_nop.s Fixes a test by replacing .align by .p2align and setting triples explicitly. 2013-03-05 18:56:14 +00:00
x86_nop.s X86: Depending on the local semantics of .align this test can also emit a nopl instead of nopw. 2012-10-13 17:38:00 +00:00
x86_operands.s