aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.2.1-5666.3
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2012-11-27 14:48:18 +0800
committerAndrew Hsieh <andrewhsieh@google.com>2012-11-27 15:02:36 +0800
commit954a4ce00a0a2a93c783c30141e9703cca2442f6 (patch)
tree471fc71a6ddfc7178655f017e6357584d517535c /gcc-4.2.1-5666.3
parent07d0f8a9ce3cf806a3a157d86181fc343cc54bac (diff)
downloadtoolchain_gcc-954a4ce00a0a2a93c783c30141e9703cca2442f6.tar.gz
toolchain_gcc-954a4ce00a0a2a93c783c30141e9703cca2442f6.tar.bz2
toolchain_gcc-954a4ce00a0a2a93c783c30141e9703cca2442f6.zip
Add helper functions to GCC 4.4.3 for Thumb1 compressed dispatch-table call
This is partial port of r148770 to resolve GCC 4.4.3 linker error when taking library armeabi/libgabi++_static.a compiled by later GCC. ./obj/local/armeabi/libgabi++_static.a(dwarf_helper.o): In function __cxxabiv1::readEncodedPointer(unsigned char const**, unsigned char)': dwarf_helper.cc:(.text+0x74): undefined reference to __gnu_thumb1_case_sqi' This change is partial because it only provides enough helper functions in lib1funcs.asm, but doesn't enable GCC 4.4.3 to geneate Thumb1 compressed dispatch-table. ------------------------------------------------------------------------ r148770 | rearnsha | 2009-06-22 04:48:15 +0800 (Mon, 22 Jun 2009) | 27 lines * arm.c (thumb1_output_casesi): New function. * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if optimizing for size or PIC. (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1. * arm.md (UNSPEC_THUMB1_CASESI): New constant. (casesi): Handle Thumb-1 when optimizing for size or PIC. (thumb1_casesi_internal_pic): New expand rule. (thumb1_casesi_dispatch): New pattern. * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for thumb-1 mode. * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now in the text seciton when PIC or optimizing for size. * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise. * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack preservation properties of code. (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions. (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions. (__gnu_thumb1_case_si): New function. * t-arm (LIB1ASMSRC): Define here. (LIB1ASMFUNCS): Add some common functions. * t-arm-elf (LIB1ASMSRC): Delete. (LIB1ASMFUNCS): Append to existing set. * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. * t-symbian (LIB1ASMFUNCS): Likewise. * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. Change-Id: I293661cd65b60854b485326a003a474b59104eeb
Diffstat (limited to 'gcc-4.2.1-5666.3')
0 files changed, 0 insertions, 0 deletions