diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2012-11-27 14:48:18 +0800 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2012-11-27 15:02:36 +0800 |
commit | 954a4ce00a0a2a93c783c30141e9703cca2442f6 (patch) | |
tree | 471fc71a6ddfc7178655f017e6357584d517535c /gcc-4.2.1-5666.3/libcpp/internal.h | |
parent | 07d0f8a9ce3cf806a3a157d86181fc343cc54bac (diff) | |
download | toolchain_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/libcpp/internal.h')
0 files changed, 0 insertions, 0 deletions