Skip to content
  1. Nov 03, 2010
    • Bill Wendling's avatar
      The MC code couldn't handle ARM LDR instructions with negative offsets: · e84eb99c
      Bill Wendling authored
          vldr.64 d1, [r0, #-32]
      
      The problem was with how the addressing mode 5 encodes the offsets. This change
      makes sure that the way offsets are handled in addressing mode 5 is consistent
      throughout the MC code. It involves re-refactoring the "getAddrModeImmOpValue"
      method into an "Imm12" and "addressing mode 5" version. But not to worry! The
      majority of the duplicated code has been unified.
      
      llvm-svn: 118144
      e84eb99c
    • Jim Grosbach's avatar
      Break ARM addrmode4 (load/store multiple base address) into its constituent · c6af2b40
      Jim Grosbach authored
      parts. Represent the operation mode as an optional operand instead.
      rdar://8614429
      
      llvm-svn: 118137
      c6af2b40
    • Chris Lattner's avatar
      Completely reject instructions that have an operand in their · cc5dce89
      Chris Lattner authored
      ins/outs list that isn't specified by their asmstring.  Previously
      the asmmatcher would just force a 0 register into it, which clearly
      isn't right.  Mark a bunch of ARM instructions that use this as 
      isCodeGenOnly.  Some of them are clearly pseudo instructions (like
      t2TBB) others use a weird hasExtraSrcRegAllocReq thing that will
      either need to be removed or the asmmatcher will need to be taught
      about it (someday).
      
      llvm-svn: 118119
      cc5dce89
  2. Nov 02, 2010
  3. Nov 01, 2010
  4. Oct 31, 2010
  5. Oct 30, 2010
    • Bob Wilson's avatar
      Overhaul memory barriers in the ARM backend. Radar 8601999. · 7ed59714
      Bob Wilson authored
      There were a number of issues to fix up here:
      * The "device" argument of the llvm.memory.barrier intrinsic should be
      used to distinguish the "Full System" domain from the "Inner Shareable"
      domain.  It has nothing to do with using DMB vs. DSB instructions.
      * The compiler should never need to emit DSB instructions.  Remove the
      ARMISD::SYNCBARRIER node and also remove the instruction patterns for DSB.
      * Merge the separate DMB/DSB instructions for options only used for the
      disassembler with the default DMB/DSB instructions.  Add the default
      "full system" option ARM_MB::SY to the ARM_MB::MemBOpt enum.
      * Add a separate ARMISD::MEMBARRIER_MCR node for subtargets that implement
      a data memory barrier using the MCR instruction.
      * Fix up encodings for these instructions (except MCR).
      I also updated the tests and added a few new ones to check for DMB options
      that were not currently being exercised.
      
      llvm-svn: 117756
      7ed59714
    • Jim Grosbach's avatar
      Encode the register list operands for ARM mode LDM/STM instructions. · 74ef9e18
      Jim Grosbach authored
      llvm-svn: 117753
      74ef9e18
    • Jim Grosbach's avatar
      s/getNEONVcvtImm32/getNEONVcvtImm32OpValue/ to be consistent with other operand · 58018e62
      Jim Grosbach authored
      encoder functions.
      
      llvm-svn: 117738
      58018e62
  6. Oct 29, 2010
  7. Oct 28, 2010
  8. Oct 27, 2010
  9. Oct 23, 2010
  10. Oct 22, 2010
Loading