Skip to content
  1. Dec 19, 2013
    • Rafael Espindola's avatar
      Long doubles are required to be aligned to 128 bits and svr4 32 bits. · 9ec26f39
      Rafael Espindola authored
      Clang was already getting this right.
      
      llvm-svn: 197694
      9ec26f39
    • Hal Finkel's avatar
      Add a disassembler to the PowerPC backend · 2345347e
      Hal Finkel authored
      The tests for the disassembler were adapted from the encoder tests, and for the
      most part, the output from the disassembler matches that encoder-test inputs.
      There are some places where more-informative mnemonics could be produced
      (notably for the branch instructions), and those cases are noted in the tests
      with FIXMEs.
      
      Future work includes:
      
       - Generating more-informative mnemonics when possible (this may also be done
         in the printer).
      
       - Remove the dependence on positional "numbered" operand-to-variable mapping
         (for both encoding and decoding).
      
       - Internally using 64-bit instruction variants in 64-bit mode (if this turns
         out to matter).
      
      llvm-svn: 197693
      2345347e
    • Zoran Jovanovic's avatar
      Support for microMIPS LL and SC instructions. · ff9d5f32
      Zoran Jovanovic authored
      llvm-svn: 197692
      ff9d5f32
    • Zoran Jovanovic's avatar
      Support for microMIPS TLS relocations. · 69be811a
      Zoran Jovanovic authored
      llvm-svn: 197685
      69be811a
    • Matt Arsenault's avatar
      R600/SI: Make private pointers be 32-bit. · a98cd6a5
      Matt Arsenault authored
      Different sized address spaces should theoretically work
      most of the time now, and since 64-bit add is currently
      disabled, using more 32-bit pointers fixes some cases.
      
      llvm-svn: 197659
      a98cd6a5
    • Saleem Abdulrasool's avatar
      ARM IAS: support .inst directive · c0da2cb3
      Saleem Abdulrasool authored
      This adds support for the .inst directive.  This is an ARM specific directive to
      indicate an instruction encoded as a constant expression.  The major difference
      between .word, .short, or .byte and .inst is that the latter will be
      disassembled as an instruction since it does not get flagged as data.
      
      llvm-svn: 197657
      c0da2cb3
    • Josh Magee's avatar
      [stackprotector] Use analysis from the StackProtector pass for stack layout in... · 22b8ba2d
      Josh Magee authored
      [stackprotector] Use analysis from the StackProtector pass for stack layout in PEI a nd LocalStackSlot passes.
      
      This changes the MachineFrameInfo API to use the new SSPLayoutKind information
      produced by the StackProtector pass (instead of a boolean flag) and updates a
      few pass dependencies (to preserve the SSP analysis).
      
      The stack layout follows the same approach used prior to this change - i.e.,
      only LargeArray stack objects will be placed near the canary and everything
      else will be laid out normally.  After this change, structures containing large
      arrays will also be placed near the canary - a case previously missed by the
      old implementation.
      
      Out of tree targets will need to update their usage of
      MachineFrameInfo::CreateStackObject to remove the MayNeedSP argument. 
      
      The next patch will implement the rules for sspstrong and sspreq.  The end goal
      is to support ssp-strong stack layout rules.
      
      WIP.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2158
      
      llvm-svn: 197653
      22b8ba2d
    • Rafael Espindola's avatar
      Add stack alignment information for Sparc. · 2fc7101e
      Rafael Espindola authored
      This matches the data in clang which was added by Jakob Stoklund Olesen in
      r179596.
      
      Thanks for erikjv on irc for pointing me to the relevant documents:
      http://sparc.com/standards/64.psabi.1.35.ps.Z
      page 25: Every stack frame must be 16-byte aligned.
      
      http://sparc.com/standards/psABI3rd.pdf
      page 3-10: Although the architecture requires only word alignment, software convention and the operating system require every stack frame to be doubleword aligned.
      
      I tried to add a test, but it looks like sparc doesn't implement dynamic stack
      realignment. This will be tested in clang shortly.
      
      llvm-svn: 197646
      2fc7101e
    • Reid Kleckner's avatar
      Begin adding docs and IR-level support for the inalloca attribute · a534a381
      Reid Kleckner authored
      The inalloca attribute is designed to support passing C++ objects by
      value in the Microsoft C++ ABI.  It behaves the same as byval, except
      that it always implies that the argument is in memory and that the bytes
      are never copied.  This attribute allows the caller to take the address
      of an outgoing argument's memory and execute arbitrary code to store
      into it.
      
      This patch adds basic IR support, docs, and verification.  It does not
      attempt to implement any lowering or fix any possibly broken transforms.
      
      When this patch lands, a complete description of this feature should
      appear at http://llvm.org/docs/InAlloca.html .
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2173
      
      llvm-svn: 197645
      a534a381
    • Rafael Espindola's avatar
      Synchronize the NaCl DataLayout strings with the ones in clang. · ddb913cc
      Rafael Espindola authored
      Patch by Derek Schuff.
      
      llvm-svn: 197640
      ddb913cc
    • Reed Kotler's avatar
      Make cosmetic changes as part of Mips internal post commit review of · 47f3c64a
      Reed Kotler authored
      patch r196331.
      
      llvm-svn: 197638
      47f3c64a
    • Reed Kotler's avatar
      Fix a problem with mips16 stubs when calls are transformed during · 2500bd6c
      Reed Kotler authored
      tail call optimization. Some more work may be needed for indirect
      calls but this patch fixes the current regression in Prolangc++/trees.
      S2 optimization as part of the general cleanup and optimization
      of prolog and epilog was not saving S2 in this case and needed to.
      
      llvm-svn: 197630
      2500bd6c
  2. Dec 18, 2013
  3. Dec 17, 2013
  4. Dec 16, 2013
Loading