summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/AsmParser
Commit message (Collapse)AuthorAgeFilesLines
...
* fix rdar://8431880 - rcl/rcr with no shift amount not recognizedChris Lattner2010-09-151-1/+9
| | | | llvm-svn: 113936
* add various broken forms of fnstsw. I didn't add the %raxChris Lattner2010-09-151-0/+19
| | | | | | | version because it adds a prefix and makes even less sense than the other broken forms. This wraps up rdar://8431422 llvm-svn: 113932
* add some aliases for f[u]comi, part of rdar://8431422Chris Lattner2010-09-151-7/+9
| | | | llvm-svn: 113930
* add a bunch of aliases for fp operations with no operand,Chris Lattner2010-09-151-5/+22
| | | | | | rdar://8431422 llvm-svn: 113929
* Diagnose invalid instructions like "incl" with "too few operands for ↵Chris Lattner2010-09-151-2/+4
| | | | | | | | | instruction" instead of crashing. This fixes: rdar://8431815 - crash when invalid operand is one that isn't present llvm-svn: 113921
* add a terrible hack to allow out with dx is parens, a gas bug.Chris Lattner2010-09-141-0/+14
| | | | | | This fixes PR8114 llvm-svn: 113894
* Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally."Michael J. Spencer2010-09-131-7/+0
| | | | | | | | | | This reverts commit r113632 Conflicts: cmake/modules/AddLLVM.cmake llvm-svn: 113819
* add a missed cmov alias, part of rdar://8416805Chris Lattner2010-09-111-0/+2
| | | | llvm-svn: 113693
* add support for all the setCC aliases. Part of rdar://8416805Chris Lattner2010-09-111-16/+14
| | | | llvm-svn: 113692
* add support for pushfd/popfd which are aliases for pushfl/popfl.Chris Lattner2010-09-111-0/+2
| | | | | | This fixes rdar://8408129 - pushfd and popfd get invalid instruction mnemonic errors llvm-svn: 113690
* implement rdar://8407928 - support for in/out with a missing "a" register.Chris Lattner2010-09-111-1/+33
| | | | llvm-svn: 113689
* fix the asmparser so that the target is responsible for skipping toChris Lattner2010-09-111-3/+9
| | | | | | | | | | | | | | the end of the line on a parser error, allowing skipping to happen for syntactic errors but not for semantic errors. Before we would miss emitting a diagnostic about the second line, because we skipped it due to the semantic error on the first line: foo %eax bar %al This fixes rdar://8414033 - llvm-mc ignores lines after an invalid instruction mnemonic errors llvm-svn: 113688
* CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally.Michael J. Spencer2010-09-101-0/+7
| | | | llvm-svn: 113632
* fix rdar://8407548, I missed the commuted form of xchg/test without a suffix.Chris Lattner2010-09-081-2/+4
| | | | llvm-svn: 113427
* fix bugs in push/pop segment support, rdar://8407242Chris Lattner2010-09-081-0/+1
| | | | llvm-svn: 113422
* add support for the commuted form of the test instruction, rdar://8018260.Chris Lattner2010-09-081-0/+10
| | | | llvm-svn: 113352
* implement proper support for sysret{,l,q}, rdar://8403907Chris Lattner2010-09-081-0/+1
| | | | llvm-svn: 113350
* implement the iret suite of instructions properly,Chris Lattner2010-09-081-0/+1
| | | | | | fixing rdar://8403974 llvm-svn: 113349
* add support for instruction prefixes on the same line as the instruction,Chris Lattner2010-09-081-6/+17
| | | | | | implementing rdar://8033482 and PR7254. llvm-svn: 113348
* change the MC "ParseInstruction" interface to make it the Chris Lattner2010-09-081-0/+4
| | | | | | | implementation's job to check for and lex the EndOfStatement marker. llvm-svn: 113347
* gas accepts xchg <mem>, <reg> as a synonym for xchg <reg>, <mem>.Chris Lattner2010-09-081-0/+11
| | | | | | Add this to the mc assembler, fixing PR8061 llvm-svn: 113346
* fix the encoding of the "jump on *cx" family of instructions,Chris Lattner2010-09-081-14/+0
| | | | | | rdar://8061602 llvm-svn: 113343
* Don't leak the old operand when transforming "sldt" into "sldtw".Benjamin Kramer2010-09-071-1/+3
| | | | llvm-svn: 113200
* add missing cmov aliases, this resolves rdar://8208499Chris Lattner2010-09-071-13/+27
| | | | llvm-svn: 113189
* remove duplicated entryChris Lattner2010-09-061-1/+0
| | | | llvm-svn: 113188
* "sldt <mem>" is ambiguous in 64-bit mode, but shouldChris Lattner2010-09-061-0/+7
| | | | | | | | always be disambiguated as sldtw. sldtw and sldtq with a mem operands have the same effect, but sldtw is more compact. Force it to sldtw, resolving rdar://8017530 llvm-svn: 113186
* fix rdar://8017621 - llvm-mc can't guess encoding for "push $(1000)"Chris Lattner2010-09-061-0/+1
| | | | llvm-svn: 113184
* in the case where an instruction only has one implementationChris Lattner2010-09-061-8/+19
| | | | | | | | | | | | | | | | | | | | of a mneumonic, report operand errors with better location info. For example, we now report: t.s:6:14: error: invalid operand for instruction cwtl $1 ^ but we fail for common cases like: t.s:11:4: error: invalid operand for instruction addl $1, $1 ^ because we don't know if this is supposed to be the reg/imm or imm/reg form. llvm-svn: 113178
* Now that we know if we had a total fail on the instruction mnemonic, Chris Lattner2010-09-061-7/+27
| | | | | | | | | | | | | | | | | | | | | | | | give a more detailed error. Before: t.s:11:4: error: unrecognized instruction addl $1, $1 ^ t.s:12:4: error: unrecognized instruction f2efqefa $1 ^ After: t.s:11:4: error: invalid operand for instruction addl $1, $1 ^ t.s:12:4: error: invalid instruction mnemonic 'f2efqefa' f2efqefa $1 ^ This fixes rdar://8017912 - llvm-mc says "unrecognized instruction" when it means "invalid operands" llvm-svn: 113176
* simplify the hacks around jrcxz.Chris Lattner2010-09-061-4/+1
| | | | llvm-svn: 113167
* have tblgen detect when an instruction would have matched, butChris Lattner2010-09-061-34/+44
| | | | | | | | | | | | | failed because a subtarget feature was not enabled. Use this to remove a bunch of hacks from the X86AsmParser for rejecting things like popfl in 64-bit mode. Previously these hacks weren't needed, but were important to get a message better than "invalid instruction" when used in the wrong mode. This also fixes bugs where pushal would not be rejected correctly in 32-bit mode (just pusha). llvm-svn: 113166
* change MatchInstructionImpl to return an enum instead of bool.Chris Lattner2010-09-061-5/+5
| | | | llvm-svn: 113165
* have AsmMatcherEmitter.cpp produce the hunk of code that gets includedChris Lattner2010-09-062-15/+12
| | | | | | | into the middle of the class, and rework how the different sections of the generated file are conditionally included for simplicity. llvm-svn: 113163
* random cleanupsChris Lattner2010-09-061-9/+12
| | | | llvm-svn: 113157
* MC/X86: Tweak imul recognition, previous hack only applies for the imul formDaniel Dunbar2010-08-241-1/+3
| | | | | | taking immediates. llvm-svn: 111950
* MC/X86: Add custom hack for recognizing "imul $12, %eax" and friends.Daniel Dunbar2010-08-241-0/+8
| | | | llvm-svn: 111947
* MC/X86: Warn on scale factors > 1 without index register, instead of erroring,Daniel Dunbar2010-08-241-3/+4
| | | | | | for 'as' compatibility. llvm-svn: 111945
* remove some code that is dead now that lea's are modeled with segment registers.Chris Lattner2010-08-181-14/+0
| | | | llvm-svn: 111343
* MC/X86/AsmParser: Give an explicit error message when we reject an instructionDaniel Dunbar2010-08-121-2/+31
| | | | | | because it could have an ambiguous suffix. llvm-svn: 110890
* MC/AsmParser: Push the burdon of emitting diagnostics about unmatchedDaniel Dunbar2010-08-121-12/+19
| | | | | | instructions onto the target specific parser, which can do a better job. llvm-svn: 110889
* MCAsmParser: Add dump() hook to MCParsedAsmOperand.Daniel Dunbar2010-08-111-0/+2
| | | | llvm-svn: 110790
* Support x86 "eiz" and "riz" pseudo index registers in the assembler.Bruno Cardoso Lopes2010-07-241-1/+15
| | | | llvm-svn: 109295
* Remove trailing whitespaceBruno Cardoso Lopes2010-07-231-30/+30
| | | | llvm-svn: 109276
* Add AVX version of CLMUL instructionsBruno Cardoso Lopes2010-07-231-0/+17
| | | | llvm-svn: 109248
* MC/X86: We now match instructions like "incl %eax" correctly for the arch we areDaniel Dunbar2010-07-191-53/+0
| | | | | | assembling; remove crufty custom cleanup code. llvm-svn: 108681
* TblGen/AsmMatcher: Add support for honoring instruction Requires<[]> ↵Daniel Dunbar2010-07-191-4/+12
| | | | | | | | attributes as part of the matcher. - Currently includes a hack to limit ourselves to "In32BitMode" and "In64BitMode", because we don't have the other infrastructure to properly deal with setting SSE, etc. features on X86. llvm-svn: 108677
* Target: Give the TargetAsmParser access to the TargetMachine.Daniel Dunbar2010-07-191-6/+7
| | | | | | - Unfortunate, but necessary for now to handle subtarget instruction matching. Eventually we should factor out the lower level target machine information so we don't need to do this. llvm-svn: 108664
* Don't pass StringRef by reference.Benjamin Kramer2010-07-141-2/+2
| | | | llvm-svn: 108366
* Added a check that pusha cannot be encoded in 64-bit mode.Kevin Enderby2010-07-131-0/+2
| | | | llvm-svn: 108265
* Add more assembly opcodes for SSE compare instructionsBruno Cardoso Lopes2010-07-071-8/+32
| | | | llvm-svn: 107823
OpenPOWER on IntegriCloud