Skip to content
  1. Apr 04, 2011
  2. Mar 15, 2011
    • Sean Callanan's avatar
      X86 table-generator and disassembler support for the AVX · c3fd5237
      Sean Callanan authored
      instruction set.  This code adds support for the VEX prefix
      and for the YMM registers accessible on AVX-enabled
      architectures.  Instruction table support that enables AVX
      instructions for the disassembler is in an upcoming patch.
      
      llvm-svn: 127644
      c3fd5237
  3. Feb 22, 2011
  4. Dec 13, 2010
    • Owen Anderson's avatar
      In Thumb2, direct branches can be encoded as either a "short" conditional... · 578074b2
      Owen Anderson authored
      In Thumb2, direct branches can be encoded as either a "short" conditional branch with a null predicate, or
      as a "long" direct branch.  While the mnemonics are the same, they encode the branch offset differently, and
      the Darwin assembler appears to prefer the "long" form for direct branches.  Thus, in the name of bitwise
      equivalence, provide encoding and fixup support for it.
      
      llvm-svn: 121710
      578074b2
  5. Nov 01, 2010
  6. Oct 27, 2010
  7. Oct 05, 2010
  8. Oct 01, 2010
    • Dale Johannesen's avatar
      Massive rewrite of MMX: · dd224d23
      Dale Johannesen authored
      The x86_mmx type is used for MMX intrinsics, parameters and
      return values where these use MMX registers, and is also
      supported in load, store, and bitcast.
      
      Only the above operations generate MMX instructions, and optimizations
      do not operate on or produce MMX intrinsics. 
      
      MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into
      smaller pieces.  Optimizations may occur on these forms and the
      result casted back to x86_mmx, provided the result feeds into a
      previous existing x86_mmx operation.
      
      The point of all this is prevent optimizations from introducing
      MMX operations, which is unsafe due to the EMMS problem.
      
      llvm-svn: 115243
      dd224d23
  9. Sep 29, 2010
  10. Sep 07, 2010
  11. Jul 12, 2010
  12. Jul 08, 2010
  13. Jun 12, 2010
  14. Jun 09, 2010
  15. Jun 05, 2010
    • Chris Lattner's avatar
      revert r105521, which is breaking the buildbots with stuff like this: · fdd26143
      Chris Lattner authored
      In file included from X86InstrInfo.cpp:16:
      X86GenInstrInfo.inc:2789: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2790: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2792: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2793: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2808: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2809: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2816: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2817: error: integer constant is too large for 'long' type
      
      llvm-svn: 105524
      fdd26143
    • Bruno Cardoso Lopes's avatar
      Initial AVX support for some instructions. No patterns matched · 594fa263
      Bruno Cardoso Lopes authored
      yet, only assembly encoding support.
      
      llvm-svn: 105521
      594fa263
  16. May 20, 2010
  17. May 06, 2010
  18. Apr 07, 2010
  19. Mar 14, 2010
  20. Feb 24, 2010
  21. Feb 13, 2010
  22. Feb 12, 2010
  23. Feb 10, 2010
  24. Dec 22, 2009
    • Sean Callanan's avatar
      Fixes to the X86 disassembler: · 36eab808
      Sean Callanan authored
      Made LEA memory operands emit only 4 MCInst operands.
      Made the scale operand equal 1 for instructions that have no
      SIB byte.
      
      llvm-svn: 91919
      36eab808
  25. Dec 19, 2009
    • Daniel Dunbar's avatar
      Add missing newlines at EOF (for clang++). · f008ea5f
      Daniel Dunbar authored
      llvm-svn: 91756
      f008ea5f
    • Sean Callanan's avatar
      Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit · 04cc307e
      Sean Callanan authored
      incarnations), integrated into the MC framework.  
      
      The disassembler is table-driven, using a custom TableGen backend to 
      generate hierarchical tables optimized for fast decode.  The disassembler 
      consumes MemoryObjects and produces arrays of MCInsts, adhering to the 
      abstract base class MCDisassembler (llvm/MC/MCDisassembler.h).
      
      The disassembler is documented in detail in
      
      - lib/Target/X86/Disassembler/X86Disassembler.cpp (disassembler runtime)
      - utils/TableGen/DisassemblerEmitter.cpp (table emitter)
      
      You can test the disassembler by running llvm-mc -disassemble for i386
      or x86_64 targets.  Please let me know if you encounter any problems
      with it.
      
      llvm-svn: 91749
      04cc307e
Loading