Skip to content
  1. Jul 18, 2013
    • Richard Sandiford's avatar
      [SystemZ] Rename and formatting fixes · 5cbac967
      Richard Sandiford authored
      In hindsight, using "RISBG" for something that can be any type of
      R.SBG instruction was a bit confusing, so this renames it to RxSBG.
      That might not be the best choice either, since there is an instruction
      called RXSBG, but hopefully the lower-case letter stands out enough.
      
      While there I fixed a couple of GNUisms that had crept in --
      sorry about that!
      
      llvm-svn: 186569
      5cbac967
    • Joey Gouly's avatar
      Remove the extra leading 0 from VMAXNMND. · 923d593f
      Joey Gouly authored
      The N3VDIntnp pattern takes bits<5> and I gave it 6 bits.
      
      Thanks to Jiangning Liu for spotting it!
      
      llvm-svn: 186568
      923d593f
    • Vladimir Medic's avatar
      This patch extends mips register parsing methods to allow indexed register... · 3467b907
      Vladimir Medic authored
      This patch extends mips register parsing methods to allow indexed register parsing. The corresponding test cases are added to the patch.
      
      llvm-svn: 186567
      3467b907
    • Craig Topper's avatar
    • Hal Finkel's avatar
      PPC: Support dynamic allocas with large alignment · 1860763c
      Hal Finkel authored
      Support for dynamic stack alignments in the PPC backend has been unfinished, in
      part because it depends on dynamic stack realignment (which I only just
      recently implemented fully). Now we can also support dynamic allocas with
      higher than the default target stack alignment (16 bytes).
      
      In order to round-up the requested size to the maximum requested alignment, we
      need an additional register to hold the rounded-up size. We're already using one
      scavenged register to hold the previous stack-pointer value (which needs to be
      stored with the signal-safe stdux update), and so when we have dynamic allocas
      and a large alignment, we allocate two emergency spill slots for the scavenger.
      
      llvm-svn: 186562
      1860763c
    • Hal Finkel's avatar
      PPC: Add base-pointer support to builtin setjmp/longjmp · f05d6c78
      Hal Finkel authored
      First, this changes the base-pointer implementation to remove an unnecessary
      complication (and one that is incompatible with how builtin SjLj is
      implemented): instead of using r31 as the base pointer when it is not needed as
      a frame pointer, now the base pointer will always be r30 when needed.
      
      Second, we introduce another pseudo register, BP, which is used just like the FP
      pseudo register to refer to the base register before we know for certain what
      register it will be.
      
      Third, we now save BP into the jmp_buf, and restore r30 from that slot in
      longjmp.  If the function that called setjmp did not use a base pointer, then
      r30 will be overwritten by the setjmp-calling-function's restore code. FP
      restoration (which is restored into r31) works the same way.
      
      llvm-svn: 186545
      f05d6c78
  2. Jul 17, 2013
  3. Jul 16, 2013
  4. Jul 15, 2013
    • Hal Finkel's avatar
      Fix register subclass handling in PPCInstrInfo::insertSelect · 8e8618ae
      Hal Finkel authored
      PPCInstrInfo::insertSelect and PPCInstrInfo::canInsertSelect were computing the
      common subclass of the true and false inputs, and then selecting either the
      32-bit or the 64-bit isel variant based on the result of calling
      PPC::GPRCRegClass.hasSubClassEq(RC) and PPC::G8RCRegClass.hasSubClassEq(RC)
      (where RC is the common subclass). Unfortunately, this is not quite right: if
      we have something like this:
      
        %vreg8<def> = SELECT_CC_I8 %vreg4<kill>, %vreg7<kill>, %vreg6<kill>, 76;
          G8RC_and_G8RC_NOX0:%vreg8 CRRC:%vreg4 G8RC_NOX0:%vreg7,%vreg6
      
      then the common subclass of G8RC_and_G8RC_NOX0 and G8RC_NOX0 is G8RC_NOX0, and
      G8RC_NOX0 is not a subclass of G8RC (because it also contains the ZERO8
      pseudo-register). As a result, we also need to check the common subclass
      against GPRC_NOR0 and G8RC_NOX0 explicitly.
      
      This had not been a problem for clients of insertSelect that called
      canInsertSelect first (because it had a compensating mistake), but insertSelect
      is also used by the PPC pseudo-instruction expander, and this error was causing
      a problem in that context.
      
      This problem was found by csmith.
      
      llvm-svn: 186343
      8e8618ae
    • Tom Stellard's avatar
    • Job Noorman's avatar
      Test commit to see if write access works. · a928e1d7
      Job Noorman authored
      llvm-svn: 186321
      a928e1d7
    • Craig Topper's avatar
      Make some arrays 'static const' · e952ad0b
      Craig Topper authored
      llvm-svn: 186311
      e952ad0b
    • Craig Topper's avatar
      Add const qualifier to some static arrays. · de1f1511
      Craig Topper authored
      llvm-svn: 186309
      de1f1511
Loading