diff options
author | Kevin Enderby <enderby@apple.com> | 2010-02-03 21:04:42 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2010-02-03 21:04:42 +0000 |
commit | 00f1e6c0300f140ec0f0bb8d46835b4b2de9ed4f (patch) | |
tree | a368dedd7e9a8d8f36b4a19892dd5cf6fdf8386d /llvm/test | |
parent | 21e771e96e2abfa14a8f49ab50601682a24f7582 (diff) | |
download | bcm5719-llvm-00f1e6c0300f140ec0f0bb8d46835b4b2de9ed4f.tar.gz bcm5719-llvm-00f1e6c0300f140ec0f0bb8d46835b4b2de9ed4f.zip |
Added support for X86 instruction prefixes so llvm-mc can assemble them. The
Lock prefix, Repeat string operation prefixes and the Segment override prefixes.
Also added versions of the move string and store string instructions without the
repeat prefixes to X86InstrInfo.td. And finally marked the rep versions of
move/store string records in X86InstrInfo.td as isCodeGenOnly = 1 so tblgen is
happy building the disassembler files.
llvm-svn: 95252
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/MC/AsmParser/X86/x86_instructions.s | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/llvm/test/MC/AsmParser/X86/x86_instructions.s b/llvm/test/MC/AsmParser/X86/x86_instructions.s index a1b881b3157..06a1907f239 100644 --- a/llvm/test/MC/AsmParser/X86/x86_instructions.s +++ b/llvm/test/MC/AsmParser/X86/x86_instructions.s @@ -70,3 +70,71 @@ // CHECK: shll $2, %eax sall $2, %eax + +// CHECK: rep +// CHECK: insb + rep;insb + +// CHECK: rep +// CHECK: outsb + rep;outsb + +// CHECK: rep +// CHECK: movsb + rep;movsb + +// CHECK: rep +// CHECK: lodsb + rep;lodsb + +// CHECK: rep +// CHECK: stosb + rep;stosb + +// NOTE: repz and repe have the same opcode as rep +// CHECK: rep +// CHECK: cmpsb + repz;cmpsb + +// NOTE: repnz has the same opcode as repne +// CHECK: repne +// CHECK: cmpsb + repnz;cmpsb + +// NOTE: repe and repz have the same opcode as rep +// CHECK: rep +// CHECK: scasb + repe;scasb + +// CHECK: repne +// CHECK: scasb + repne;scasb + +// CHECK: lock +// CHECK: cmpxchgb %al, 0(%ebx) + lock;cmpxchgb %al, 0(%ebx) + +// CHECK: cs +// CHECK: movb 0(%eax), %al + cs;movb 0(%eax), %al + +// CHECK: ss +// CHECK: movb 0(%eax), %al + ss;movb 0(%eax), %al + +// CHECK: ds +// CHECK: movb 0(%eax), %al + ds;movb 0(%eax), %al + +// CHECK: es +// CHECK: movb 0(%eax), %al + es;movb 0(%eax), %al + +// CHECK: fs +// CHECK: movb 0(%eax), %al + fs;movb 0(%eax), %al + +// CHECK: gs +// CHECK: movb 0(%eax), %al + gs;movb 0(%eax), %al + |