Skip to content
  1. Oct 28, 2012
    • Rafael Espindola's avatar
      Remove TargetELFWriterInfo. · d957cb25
      Rafael Espindola authored
      All the credit goes to Jan Voung for noticing it was dead!
      
      llvm-svn: 166902
      d957cb25
    • Reed Kotler's avatar
      This patch is for the implementation of mips16 complex pattern addr16. · 3589dd74
      Reed Kotler authored
      Previously mips16 was sharing the pattern addr which is used for mips32
      and mips64. This had a number of problems:
      1) Storing and loading byte and halfword quantities for mips16 has particular
      problems due to the primarily non mips16 nature of SP. When we must
      load/store byte/halfword stack objects in a function, we must create a mips16
      alias register for SP. This functionality is tested in stchar.ll.
      2) We need to have an FP register under certain conditions (such as 
      dynamically sized alloca). We use mips16 register S0 for this purpose.
      In this case, we also use this register when accessing frame objects so this
      issue also affects the complex pattern addr16. This functionality is
      tested in alloca16.ll.
      
      The Mips16InstrInfo.td has been updated to use addr16 instead of addr.
      
      The complex pattern C++ function for addr has been copied to addr16 and
      updated to reflect the above issues.
      
      llvm-svn: 166897
      3589dd74
  2. Oct 27, 2012
  3. Oct 26, 2012
  4. Oct 25, 2012
    • Chad Rosier's avatar
      [ms-inline asm] Perform field lookups with the dot operator. · 240b7b96
      Chad Rosier authored
      llvm-svn: 166724
      240b7b96
    • Reed Kotler's avatar
      implement mips16 patterns for select nodes · 097556d6
      Reed Kotler authored
      llvm-svn: 166721
      097556d6
    • Chad Rosier's avatar
      [ms-inline asm] Add support for creating AsmRewrites in the target specific · f0e87200
      Chad Rosier authored
      AsmParser logic.  To be used/tested in a subsequent commit.
      
      llvm-svn: 166714
      f0e87200
    • Nadav Rotem's avatar
      Minor cleanups. · 8b749b23
      Nadav Rotem authored
      llvm-svn: 166706
      8b749b23
    • Chad Rosier's avatar
      911c1f38
    • Adhemerval Zanella's avatar
      This patch fixes the MC object emission of 'nop' for external function calls · 1be10dc7
      Adhemerval Zanella authored
      and also fixes the R_PPC64_TOC16 and R_PPC64_TOC16_DS relocation offset.
      The 'nop' is needed so a restore TOC instruction (ld r2,40(r1)) can be placed
      by the linker to correct restore the TOC of previous function.
      
      Current code has two issues: it defines in PPCInstr64Bit.td file a LDinto_toc
      and LDtoc_restore as a DSForm_1 with DS_RA=0 where it should be
      DS=2 (the 8 bytes displacement of the TOC saving). It also wrongly emits a
      MC intruction using an uint32_t value while the PPC::BL8_NOP_ELF
      and PPC::BLA8_NOP_ELF are both uint64_t (because of the following 'nop').
      
      This patch corrects the remaining ExecutionEngine using MCJIT:
      
      ExecutionEngine/2002-12-16-ArgTest.ll
      ExecutionEngine/2003-05-07-ArgumentTest.ll
      ExecutionEngine/2005-12-02-TailCallBug.ll
      ExecutionEngine/hello.ll
      ExecutionEngine/hello2.ll
      ExecutionEngine/test-call.ll
      
      llvm-svn: 166682
      1be10dc7
    • Bill Schmidt's avatar
      This patch addresses a PPC64 ELF issue with passing parameters consisting of · 6ed3b99f
      Bill Schmidt authored
      structs having size 3, 5, 6, or 7.  Such a struct must be passed and received
      as right-justified within its register or memory slot.  The problem is only
      present for structs that are passed in registers.
      
      Previously, as part of a patch handling all structs of size less than 8, I
      added logic to rotate the incoming register so that the struct was left-
      justified prior to storing the whole register.  This was incorrect because
      the address of the parameter had already been adjusted earlier to point to
      the right-adjusted value in the storage slot.  Essentially I had accidentally
      accounted for the right-adjustment twice.
      
      In this patch, I removed the incorrect logic and reorganized the code to make
      the flow clearer.
      
      The removal of the rotates changes the expected code generation, so test case
      structsinregs.ll has been modified to reflect this.  I also added a new test
      case, jaggedstructs.ll, to demonstrate that structs of these sizes can now
      be properly received and passed.
      
      I've built and tested the code on powerpc64-unknown-linux-gnu with no new
      regressions.  I also ran the GCC compatibility test suite and verified that
      earlier problems with these structs are now resolved, with no new regressions.
      
      llvm-svn: 166680
      6ed3b99f
    • Adhemerval Zanella's avatar
      Initial TOC support for PowerPC64 object creation · f2aceda8
      Adhemerval Zanella authored
      This patch adds initial PPC64 TOC MC object creation using the small mcmodel
      (a single 64K TOC) adding the some TOC relocations (R_PPC64_TOC,
      R_PPC64_TOC16, and R_PPC64_TOC16DS).
      
      The addition of 'undefinedExplicitRelSym' hook on 'MCELFObjectTargetWriter'
      is meant to avoid the creation of an unreferenced ".TOC." symbol (used in
      the .odp creation) as well to set the R_PPC64_TOC relocation target as the
      temporary ".TOC." symbol. On PPC64 ABI, the R_PPC64_TOC relocation should
      not point to any symbol.
      
      llvm-svn: 166677
      f2aceda8
    • Michael Liao's avatar
      Atom has SIMD instruction set extension up to SSSE3 · c6696b04
      Michael Liao authored
      llvm-svn: 166665
      c6696b04
Loading