Skip to content
  1. Feb 12, 2010
  2. Feb 10, 2010
  3. Feb 09, 2010
  4. Feb 03, 2010
  5. Jan 30, 2010
  6. Jan 23, 2010
  7. Jan 14, 2010
    • Chris Lattner's avatar
      Split the TargetAsmParser "ParseInstruction" interface in half: · f29c0b68
      Chris Lattner authored
      the new ParseInstruction method just parses and returns a list of
      target operands.  A new MatchInstruction interface is used to
      turn the operand list into an MCInst.
      
      This requires new/deleting all the operands, but it also gives 
      targets the ability to use polymorphic operands if they want to. 
      
      llvm-svn: 93469
      f29c0b68
  8. Aug 12, 2009
    • Daniel Dunbar's avatar
      llvm-mc/AsmParser: Match hard coded registers (e.g. 'shldl %cl, %eax, %eax') · 3fb754af
      Daniel Dunbar authored
      We now match all of 403.gcc (as emitted by clang). :)
      
      llvm-svn: 78750
      3fb754af
    • Daniel Dunbar's avatar
      Add 'isCodeGenOnly' bit to Instruction .td records. · c4f8ea4c
      Daniel Dunbar authored
       - Used to mark fake instructions which don't correspond to an actual machine
         instruction (or are duplicates of a real instruction). This is to be used for
         "special cases" in the .td files, which should be ignored by things like the
         assembler and disassembler. We still need a good solution to handle pervasive
         duplication, like with the Int_ instructions.
      
       - Set the bit on fake "mov 0" style instructions, which allows turning an
         assembler matcher warning into a hard error.
      
       - -2 FIXMEs.
      
      llvm-svn: 78731
      c4f8ea4c
  9. Aug 11, 2009
  10. Aug 10, 2009
  11. Aug 09, 2009
  12. Aug 08, 2009
  13. Aug 07, 2009
    • Daniel Dunbar's avatar
    • Daniel Dunbar's avatar
      llvm-mc/AsmMatcher: Tweaks in response to feedback. · 15b80370
      Daniel Dunbar authored
      llvm-svn: 78404
      15b80370
    • Daniel Dunbar's avatar
      llvm-mc/AsmMatcher: Move to a slightly more sane matching design. · e10787e7
      Daniel Dunbar authored
       - Still not very sane, but a least its not 60k lines on X86. :)
      
       - In terms of correctness, currently some things are hard wired for X86, and we
         still don't properly resolve ambiguities (this is ignoring the instructions
         we don't even match due to funny .td stuff or other corner cases).
      
      The high level changes:
       1. Represent tokens which are significant for matching explicitly as separate
          operands. This uniformly handles not only the instruction mnemonic, but
          also 'signficiant' syntax like the '*' in "call * ...".
      
       2. Separate the matching of operands to an instruction from the construction of
          the MCInst. In theory this can be done during matching, but since the number
          of variations is small I think it makes sense to decompose the problems.
      
       3. Improved a few of the mechanisms to at least successfully flatten / tokenize
          the assembly strings for PowerPC and ARM.
      
       4. The comment at the top of AsmMatcherEmitter.cpp explains the approach I'm
          moving towards for handling ambiguous instructions. The high-bit is to infer
          a partial ordering of the operand classes (and force the user to specify one
          if we can't) and use that to resolve ambiguities.
      
      llvm-svn: 78378
      e10787e7
  14. Aug 04, 2009
  15. Aug 02, 2009
  16. Jul 31, 2009
    • Daniel Dunbar's avatar
      llvm-mc: Match a few X86 instructions. · b6d6aa2d
      Daniel Dunbar authored
       - This is "experimental" code, I am feeling my way around and working out the
         best way to do things (and learning tblgen in the process). Comments welcome,
         but keep in mind this stuff will change radically.
      
       - This is enough to match "subb" and friends, but not much else. The next step is to
         automatically generate the matchers for individual operands.
      
      llvm-svn: 77657
      b6d6aa2d
Loading