Skip to content
  1. Aug 30, 2011
  2. Jul 30, 2011
    • David Greene's avatar
      Unconstify Inits · af8ee2cd
      David Greene authored
      Remove const qualifiers from Init references, per Chris' request.
      
      llvm-svn: 136531
      af8ee2cd
  3. Jul 29, 2011
    • David Greene's avatar
      [AVX] Constify Inits · 1aa0e3e1
      David Greene authored
      Make references to Inits const everywhere.  This is the final step
      before making them unique.
      
      llvm-svn: 136485
      1aa0e3e1
  4. Jul 28, 2011
    • Kevin Enderby's avatar
      Fix llvm-mc handing of x86 instructions that take 8-bit unsigned immediates. · 5ef6c453
      Kevin Enderby authored
      llvm-mc gives an "invalid operand" error for instructions that take an unsigned
      immediate which have the high bit set such as:
          pblendw $0xc5, %xmm2, %xmm1
      llvm-mc treats all x86 immediates as signed values and range checks them.
      A small number of x86 instructions use the imm8 field as a set of bits.
      This change only changes those instructions and where the high bit is not
      ignored.  The others remain unchanged.
      
      llvm-svn: 136287
      5ef6c453
  5. Jul 16, 2011
  6. Jul 12, 2011
  7. Jul 11, 2011
    • David Greene's avatar
      [AVX] Make Inits Foldable · af973b4f
      David Greene authored
      Manage Inits in a FoldingSet.  This provides several benefits:
      
      - Memory for Inits is properly managed
      
      - Duplicate Inits are folded into Flyweights, saving memory
      
      - It enforces const-correctness, protecting against certain classes
        of bugs
      
      The above benefits allow Inits to be used in more contexts, which in
      turn provides more dynamism to TableGen.  This enhanced capability
      will be used by the AVX code generator to a fold common patterns
      together.
      
      llvm-svn: 134907
      af973b4f
  8. Apr 04, 2011
  9. 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
  10. Feb 22, 2011
  11. 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
  12. Nov 01, 2010
  13. Oct 27, 2010
  14. Oct 05, 2010
  15. 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
  16. Sep 29, 2010
  17. Sep 07, 2010
  18. Jul 12, 2010
  19. Jul 08, 2010
  20. Jun 12, 2010
  21. Jun 09, 2010
  22. 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
  23. May 20, 2010
  24. May 06, 2010
  25. Apr 07, 2010
  26. Mar 14, 2010
  27. Feb 24, 2010
  28. Feb 13, 2010
  29. Feb 12, 2010
  30. Feb 10, 2010
  31. 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
  32. 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