1. 04 9月, 2013 1 次提交
    • C
      tile: support FRAME_POINTER · 49cf78ef
      Chris Metcalf 提交于
      Allow enabling frame pointer support; this makes it easier to hook
      into the various kernel features that claim they require it without
      having to add Kconfig conditionals everywhere (a la mips, ppc, s390,
      and microblaze).  When enabled, it basically eliminates leaf functions
      as such, and stops optimizing tail and sibling calls.  It adds around
      3% to the size of the kernel when enabled.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      49cf78ef
  2. 02 8月, 2013 1 次提交
    • C
      tile: optimize and clean up string functions · c53c70a9
      Chris Metcalf 提交于
      This change cleans up the string code in a number of ways:
      
      - For memcpy(), fix bug in prefetch and increase distance to 3 lines;
        optimize for unaligned data; do all loads before wh64 to make memcpy
        safe for forward-overlapping calls; etc.  Performance is improved.
      
      - Use new copy_byte() function on tilegx to spread a single byte value
        out into a full word using the shufflebytes instruction.
      
      - Clean up header include ordering to be more canonical, and remove
        spurious #undefs of function names.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      c53c70a9
  3. 26 5月, 2012 1 次提交
  4. 13 5月, 2011 1 次提交
    • C
      arch/tile: finish enabling support for TILE-Gx 64-bit chip · 18aecc2b
      Chris Metcalf 提交于
      This support was partially present in the existing code (look for
      "__tilegx__" ifdefs) but with this change you can build a working
      kernel using the TILE-Gx toolchain and ARCH=tilegx.
      
      Most of these files are new, generally adding a foo_64.c file
      where previously there was just a foo_32.c file.
      
      The ARCH=tilegx directive redirects to arch/tile, not arch/tilegx,
      using the existing SRCARCH mechanism in the top-level Makefile.
      
      Changes to existing files:
      
      - <asm/bitops.h> and <asm/bitops_32.h> changed to factor the
        include of <asm-generic/bitops/non-atomic.h> in the common header.
      
      - <asm/compat.h> and arch/tile/kernel/compat.c changed to remove
        the "const" markers I had put on compat_sys_execve() when trying
        to match some recent similar changes to the non-compat execve.
        It turns out the compat version wasn't "upgraded" to use const.
      
      - <asm/opcode-tile_64.h> and <asm/opcode_constants_64.h> were
        previously included accidentally, with the 32-bit contents.  Now
        they have the proper 64-bit contents.
      
      Finally, I had to hack the existing hacky drivers/input/input-compat.h
      to add yet another "#ifdef" for INPUT_COMPAT_TEST (same as x86_64).
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> [drivers/input]
      18aecc2b