diff options
Diffstat (limited to 'gcc-4.9/libgcc/config/bfin')
-rw-r--r-- | gcc-4.9/libgcc/config/bfin/crti.S | 59 | ||||
-rw-r--r-- | gcc-4.9/libgcc/config/bfin/crtlibid.S | 29 | ||||
-rw-r--r-- | gcc-4.9/libgcc/config/bfin/crtn.S | 50 | ||||
-rw-r--r-- | gcc-4.9/libgcc/config/bfin/lib1funcs.S | 211 | ||||
-rw-r--r-- | gcc-4.9/libgcc/config/bfin/libgcc-glibc.ver | 1913 | ||||
-rw-r--r-- | gcc-4.9/libgcc/config/bfin/linux-unwind.h | 164 | ||||
-rw-r--r-- | gcc-4.9/libgcc/config/bfin/t-bfin | 3 | ||||
-rw-r--r-- | gcc-4.9/libgcc/config/bfin/t-crtlibid | 3 | ||||
-rw-r--r-- | gcc-4.9/libgcc/config/bfin/t-crtstuff | 1 | ||||
-rw-r--r-- | gcc-4.9/libgcc/config/bfin/t-linux | 1 |
10 files changed, 2434 insertions, 0 deletions
diff --git a/gcc-4.9/libgcc/config/bfin/crti.S b/gcc-4.9/libgcc/config/bfin/crti.S new file mode 100644 index 000000000..b46e102a8 --- /dev/null +++ b/gcc-4.9/libgcc/config/bfin/crti.S @@ -0,0 +1,59 @@ +/* Specialized code needed to support construction and destruction of + file-scope objects in C++ and Java code, and to support exception handling. + Copyright (C) 2005-2014 Free Software Foundation, Inc. + Contributed by Analog Devices. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +/* + * This file just supplies function prologues for the .init and .fini + * sections. It is linked in before crtbegin.o. + */ + + .ident "GNU C crti.o" + + .section .init + .globl __init + .type __init,@function +__init: +#if defined __ID_SHARED_LIB__ + [--SP] = P5; +#elif defined __BFIN_FDPIC__ + [--SP] = P3; +#endif + LINK 12; +#if defined __ID_SHARED_LIB__ + P5 = [P5 + _current_shared_library_p5_offset_] +#endif + .section .fini + .globl __fini + .type __fini,@function +__fini: +#if defined __ID_SHARED_LIB__ + [--SP] = P5; +#elif defined __BFIN_FDPIC__ + [--SP] = P3; +#endif + LINK 12; +#if defined __ID_SHARED_LIB__ + P5 = [P5 + _current_shared_library_p5_offset_] +#endif diff --git a/gcc-4.9/libgcc/config/bfin/crtlibid.S b/gcc-4.9/libgcc/config/bfin/crtlibid.S new file mode 100644 index 000000000..a821a0a7f --- /dev/null +++ b/gcc-4.9/libgcc/config/bfin/crtlibid.S @@ -0,0 +1,29 @@ +/* Provide a weak definition of the library ID, for the benefit of certain + configure scripts. + Copyright (C) 2005-2014 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + + .ident "GNU C crtlibid.o" + +.weak _current_shared_library_p5_offset_ +.set _current_shared_library_p5_offset_, 0 diff --git a/gcc-4.9/libgcc/config/bfin/crtn.S b/gcc-4.9/libgcc/config/bfin/crtn.S new file mode 100644 index 000000000..270e1e72d --- /dev/null +++ b/gcc-4.9/libgcc/config/bfin/crtn.S @@ -0,0 +1,50 @@ +/* Specialized code needed to support construction and destruction of + file-scope objects in C++ and Java code, and to support exception handling. + Copyright (C) 2005-2014 Free Software Foundation, Inc. + Contributed by Analog Devices. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +/* + * This file supplies function epilogues for the .init and .fini sections. + * It is linked in after all other files. + */ + + .ident "GNU C crtn.o" + + .section .init + unlink; +#if defined __ID_SHARED_LIB__ + P5 = [SP++]; +#elif defined __BFIN_FDPIC__ + P3 = [SP++]; +#endif + rts; + + .section .fini + unlink; +#if defined __ID_SHARED_LIB__ + P5 = [SP++]; +#elif defined __BFIN_FDPIC__ + P3 = [SP++]; +#endif + rts; diff --git a/gcc-4.9/libgcc/config/bfin/lib1funcs.S b/gcc-4.9/libgcc/config/bfin/lib1funcs.S new file mode 100644 index 000000000..45c6ac8b9 --- /dev/null +++ b/gcc-4.9/libgcc/config/bfin/lib1funcs.S @@ -0,0 +1,211 @@ +/* libgcc functions for Blackfin. + Copyright (C) 2005-2014 Free Software Foundation, Inc. + Contributed by Analog Devices. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#ifdef L_divsi3 +.text +.align 2 +.global ___divsi3; +.type ___divsi3, STT_FUNC; + +___divsi3: + [--SP]= RETS; + [--SP] = R7; + + R2 = -R0; + CC = R0 < 0; + IF CC R0 = R2; + R7 = CC; + + R2 = -R1; + CC = R1 < 0; + IF CC R1 = R2; + R2 = CC; + R7 = R7 ^ R2; + + CALL ___udivsi3; + + CC = R7; + R1 = -R0; + IF CC R0 = R1; + + R7 = [SP++]; + RETS = [SP++]; + RTS; +#endif + +#ifdef L_modsi3 +.align 2 +.global ___modsi3; +.type ___modsi3, STT_FUNC; + +___modsi3: + [--SP] = RETS; + [--SP] = R0; + [--SP] = R1; + CALL ___divsi3; + R2 = [SP++]; + R1 = [SP++]; + R2 *= R0; + R0 = R1 - R2; + RETS = [SP++]; + RTS; +#endif + +#ifdef L_udivsi3 +.align 2 +.global ___udivsi3; +.type ___udivsi3, STT_FUNC; + +___udivsi3: + P0 = 32; + LSETUP (0f, 1f) LC0 = P0; + /* upper half of dividend */ + R3 = 0; +0: + /* The first time round in the loop we shift in garbage, but since we + perform 33 shifts, it doesn't matter. */ + R0 = ROT R0 BY 1; + R3 = ROT R3 BY 1; + R2 = R3 - R1; + CC = R3 < R1 (IU); +1: + /* Last instruction of the loop. */ + IF ! CC R3 = R2; + + /* Shift in the last bit. */ + R0 = ROT R0 BY 1; + /* R0 is the result, R3 contains the remainder. */ + R0 = ~ R0; + RTS; +#endif + +#ifdef L_umodsi3 +.align 2 +.global ___umodsi3; +.type ___umodsi3, STT_FUNC; + +___umodsi3: + [--SP] = RETS; + CALL ___udivsi3; + R0 = R3; + RETS = [SP++]; + RTS; +#endif + +#ifdef L_umulsi3_highpart +.align 2 +.global ___umulsi3_highpart; +.type ___umulsi3_highpart, STT_FUNC; + +___umulsi3_highpart: + A1 = R1.L * R0.L (FU); + A1 = A1 >> 16; + A0 = R1.H * R0.H, A1 += R1.L * R0.H (FU); + A1 += R0.L * R1.H (FU); + A1 = A1 >> 16; + A0 += A1; + R0 = A0 (FU); + RTS; +#endif + +#ifdef L_smulsi3_highpart +.align 2 +.global ___smulsi3_highpart; +.type ___smulsi3_highpart, STT_FUNC; + +___smulsi3_highpart: + A1 = R1.L * R0.L (FU); + A1 = A1 >> 16; + A0 = R0.H * R1.H, A1 += R0.H * R1.L (IS,M); + A1 += R1.H * R0.L (IS,M); + A1 = A1 >>> 16; + R0 = (A0 += A1); + RTS; +#endif + +#ifdef L_muldi3 +.align 2 +.global ___muldi3; +.type ___muldi3, STT_FUNC; + +/* + R1:R0 * R3:R2 + = R1.h:R1.l:R0.h:R0.l * R3.h:R3.l:R2.h:R2.l +[X] = (R1.h * R3.h) * 2^96 +[X] + (R1.h * R3.l + R1.l * R3.h) * 2^80 +[X] + (R1.h * R2.h + R1.l * R3.l + R3.h * R0.h) * 2^64 +[T1] + (R1.h * R2.l + R3.h * R0.l + R1.l * R2.h + R3.l * R0.h) * 2^48 +[T2] + (R1.l * R2.l + R3.l * R0.l + R0.h * R2.h) * 2^32 +[T3] + (R0.l * R2.h + R2.l * R0.h) * 2^16 +[T4] + (R0.l * R2.l) + + We can discard the first three lines marked "X" since we produce + only a 64 bit result. So, we need ten 16-bit multiplies. + + Individual mul-acc results: +[E1] = R1.h * R2.l + R3.h * R0.l + R1.l * R2.h + R3.l * R0.h +[E2] = R1.l * R2.l + R3.l * R0.l + R0.h * R2.h +[E3] = R0.l * R2.h + R2.l * R0.h +[E4] = R0.l * R2.l + + We also need to add high parts from lower-level results to higher ones: + E[n]c = E[n] + (E[n+1]c >> 16), where E4c := E4 + + One interesting property is that all parts of the result that depend + on the sign of the multiplication are discarded. Those would be the + multiplications involving R1.h and R3.h, but only the top 16 bit of + the 32 bit result depend on the sign, and since R1.h and R3.h only + occur in E1, the top half of these results is cut off. + So, we can just use FU mode for all of the 16-bit multiplies, and + ignore questions of when to use mixed mode. */ + +___muldi3: + /* [SP] technically is part of the caller's frame, but we can + use it as scratch space. */ + A0 = R2.H * R1.L, A1 = R2.L * R1.H (FU) || R3 = [SP + 12]; /* E1 */ + A0 += R3.H * R0.L, A1 += R3.L * R0.H (FU) || [SP] = R4; /* E1 */ + A0 += A1; /* E1 */ + R4 = A0.w; + A0 = R0.l * R3.l (FU); /* E2 */ + A0 += R2.l * R1.l (FU); /* E2 */ + + A1 = R2.L * R0.L (FU); /* E4 */ + R3 = A1.w; + A1 = A1 >> 16; /* E3c */ + A0 += R2.H * R0.H, A1 += R2.L * R0.H (FU); /* E2, E3c */ + A1 += R0.L * R2.H (FU); /* E3c */ + R0 = A1.w; + A1 = A1 >> 16; /* E2c */ + A0 += A1; /* E2c */ + R1 = A0.w; + + /* low(result) = low(E3c):low(E4) */ + R0 = PACK (R0.l, R3.l); + /* high(result) = E2c + (E1 << 16) */ + R1.h = R1.h + R4.l (NS) || R4 = [SP]; + RTS; + +.size ___muldi3, .-___muldi3 +#endif diff --git a/gcc-4.9/libgcc/config/bfin/libgcc-glibc.ver b/gcc-4.9/libgcc/config/bfin/libgcc-glibc.ver new file mode 100644 index 000000000..e8cbadd99 --- /dev/null +++ b/gcc-4.9/libgcc/config/bfin/libgcc-glibc.ver @@ -0,0 +1,1913 @@ +# Copyright (C) 2000-2014 Free Software Foundation, Inc. +# +# This file is part of GCC. +# +# GCC is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GCC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +GCC_3.0 { + # libgcc1 integer symbols + ___absvsi2 + ___addvsi3 + ___ashlsi3 + ___ashrsi3 + ___divsi3 + ___lshrsi3 + ___modsi3 + ___mulsi3 + ___mulvsi3 + ___negvsi2 + ___subvsi3 + ___udivsi3 + ___umodsi3 + + # libgcc1 floating point symbols + ___addsf3 + ___adddf3 + ___addxf3 + ___addtf3 + ___divsf3 + ___divdf3 + ___divxf3 + ___divtf3 + ___eqsf2 + ___eqdf2 + ___eqxf2 + ___eqtf2 + ___extenddfxf2 + ___extenddftf2 + ___extendsfdf2 + ___extendsfxf2 + ___extendsftf2 + ___fixsfsi + ___fixdfsi + ___fixxfsi + ___fixtfsi + ___floatsisf + ___floatsidf + ___floatsixf + ___floatsitf + ___gesf2 + ___gedf2 + ___gexf2 + ___getf2 + ___gtsf2 + ___gtdf2 + ___gtxf2 + ___gttf2 + ___lesf2 + ___ledf2 + ___lexf2 + ___letf2 + ___ltsf2 + ___ltdf2 + ___ltxf2 + ___lttf2 + ___mulsf3 + ___muldf3 + ___mulxf3 + ___multf3 + ___negsf2 + ___negdf2 + ___negxf2 + ___negtf2 + ___nesf2 + ___nedf2 + ___nexf2 + ___netf2 + ___subsf3 + ___subdf3 + ___subxf3 + ___subtf3 + ___truncdfsf2 + ___truncxfsf2 + ___trunctfsf2 + ___truncxfdf2 + ___trunctfdf2 + + # libgcc2 DImode arithmetic (for 32-bit targets). + ___absvdi2 + ___addvdi3 + ___ashldi3 + ___ashrdi3 + ___cmpdi2 + ___divdi3 + ___ffsdi2 + ___fixdfdi + ___fixsfdi + ___fixtfdi + ___fixxfdi + ___fixunsdfdi + ___fixunsdfsi + ___fixunssfsi + ___fixunssfdi + ___fixunstfdi + ___fixunstfsi + ___fixunsxfdi + ___fixunsxfsi + ___floatdidf + ___floatdisf + ___floatdixf + ___floatditf + ___lshrdi3 + ___moddi3 + ___muldi3 + ___mulvdi3 + ___negdi2 + ___negvdi2 + ___subvdi3 + ___ucmpdi2 + ___udivdi3 + ___udivmoddi4 + ___umoddi3 + + # libgcc2 TImode arithmetic (for 64-bit targets). + ___ashlti3 + ___ashrti3 + ___cmpti2 + ___divti3 + ___ffsti2 + ___fixdfti + ___fixsfti + ___fixtfti + ___fixxfti + ___lshrti3 + ___modti3 + ___multi3 + ___negti2 + ___ucmpti2 + ___udivmodti4 + ___udivti3 + ___umodti3 + ___fixunsdfti + ___fixunssfti + ___fixunstfti + ___fixunsxfti + ___floattidf + ___floattisf + ___floattixf + ___floattitf + + # Used to deal with trampoline initialization on some platforms + ___clear_cache + + # EH symbols + __Unwind_DeleteException + __Unwind_Find_FDE + __Unwind_ForcedUnwind + __Unwind_GetGR + __Unwind_GetIP + __Unwind_GetLanguageSpecificData + __Unwind_GetRegionStart + __Unwind_GetTextRelBase + __Unwind_GetDataRelBase + __Unwind_RaiseException + __Unwind_Resume + __Unwind_SetGR + __Unwind_SetIP + ___deregister_frame + ___deregister_frame_info + ___deregister_frame_info_bases + ___register_frame + ___register_frame_info + ___register_frame_info_bases + ___register_frame_info_table + ___register_frame_info_table_bases + ___register_frame_table + + # SjLj EH symbols + __Unwind_SjLj_Register + __Unwind_SjLj_Unregister + __Unwind_SjLj_RaiseException + __Unwind_SjLj_ForcedUnwind + __Unwind_SjLj_Resume +} + +%inherit GCC_3.3 GCC_3.0 +GCC_3.3 { + __Unwind_FindEnclosingFunction + __Unwind_GetCFA + __Unwind_Backtrace + __Unwind_Resume_or_Rethrow + __Unwind_SjLj_Resume_or_Rethrow +} + +%inherit GCC_3.3.1 GCC_3.3 +GCC_3.3.1 { + ___gcc_personality_sj0 + ___gcc_personality_v0 +} + +%inherit GCC_3.3.2 GCC_3.3.1 +GCC_3.3.2 { +} +%inherit GCC_3.3.4 GCC_3.3.2 +GCC_3.3.4 { + ___unorddf2 + ___unordsf2 +} + +%inherit GCC_3.4 GCC_3.3.4 +GCC_3.4 { + # bit scanning and counting built-ins + ___clzsi2 + ___clzdi2 + ___clzti2 + ___ctzsi2 + ___ctzdi2 + ___ctzti2 + ___popcountsi2 + ___popcountdi2 + ___popcountti2 + ___paritysi2 + ___paritydi2 + ___parityti2 +} + +%inherit GCC_3.4.2 GCC_3.4 +GCC_3.4.2 { + # Used to deal with trampoline initialization on some platforms + ___enable_execute_stack + ___trampoline_setup +} + +%inherit GCC_3.4.4 GCC_3.4.2 +GCC_3.4.4 { + # libgcc2 TImode arithmetic (for 64-bit targets). + ___absvti2 + ___addvti3 + ___mulvti3 + ___negvti2 + ___subvti3 +} + +%inherit GCC_4.0.0 GCC_3.4.4 +GCC_4.0.0 { + # libgcc2 __builtin_powi helpers. + ___powisf2 + ___powidf2 + ___powixf2 + ___powitf2 + + # c99 compliant complex arithmetic + ___divsc3 + ___divdc3 + ___divxc3 + ___divtc3 + ___mulsc3 + ___muldc3 + ___mulxc3 + ___multc3 +} + +%inherit GCC_4.1.0 GCC_4.0.0 +GCC_4.1.0 { + ___smulsi3_highpart + ___umulsi3_highpart +} + +%inherit GCC_4.2.0 GCC_4.1.0 +GCC_4.2.0 { + # unsigned-to-floating conversions + ___floatunsisf + ___floatunsidf + ___floatunsixf + ___floatunsitf + ___floatundidf + ___floatundisf + ___floatundixf + ___floatunditf + ___floatuntidf + ___floatuntisf + ___floatuntixf + ___floatuntitf + __Unwind_GetIPInfo +} + +%inherit GCC_4.3.0 GCC_4.2.0 +GCC_4.3.0 { + # byte swapping routines + ___bswapsi2 + ___bswapdi2 + ___emutls_get_address + ___emutls_register_common + ___ffssi2 + ___extendxftf2 + ___trunctfxf2 + + # fixed-point routines + ___addqq3 + ___addhq3 + ___addsq3 + ___adddq3 + ___addtq3 + ___adduqq3 + ___adduhq3 + ___addusq3 + ___addudq3 + ___addutq3 + ___addha3 + ___addsa3 + ___addda3 + ___addta3 + ___adduha3 + ___addusa3 + ___adduda3 + ___adduta3 + ___ssaddqq3 + ___ssaddhq3 + ___ssaddsq3 + ___ssadddq3 + ___ssaddtq3 + ___ssaddha3 + ___ssaddsa3 + ___ssaddda3 + ___ssaddta3 + ___usadduqq3 + ___usadduhq3 + ___usaddusq3 + ___usaddudq3 + ___usaddutq3 + ___usadduha3 + ___usaddusa3 + ___usadduda3 + ___usadduta3 + ___subqq3 + ___subhq3 + ___subsq3 + ___subdq3 + ___subtq3 + ___subuqq3 + ___subuhq3 + ___subusq3 + ___subudq3 + ___subutq3 + ___subha3 + ___subsa3 + ___subda3 + ___subta3 + ___subuha3 + ___subusa3 + ___subuda3 + ___subuta3 + ___sssubqq3 + ___sssubhq3 + ___sssubsq3 + ___sssubdq3 + ___sssubtq3 + ___sssubha3 + ___sssubsa3 + ___sssubda3 + ___sssubta3 + ___ussubuqq3 + ___ussubuhq3 + ___ussubusq3 + ___ussubudq3 + ___ussubutq3 + ___ussubuha3 + ___ussubusa3 + ___ussubuda3 + ___ussubuta3 + ___mulqq3 + ___mulhq3 + ___mulsq3 + ___muldq3 + ___multq3 + ___muluqq3 + ___muluhq3 + ___mulusq3 + ___muludq3 + ___mulutq3 + ___mulha3 + ___mulsa3 + ___mulda3 + ___multa3 + ___muluha3 + ___mulusa3 + ___muluda3 + ___muluta3 + ___ssmulqq3 + ___ssmulhq3 + ___ssmulsq3 + ___ssmuldq3 + ___ssmultq3 + ___ssmulha3 + ___ssmulsa3 + ___ssmulda3 + ___ssmulta3 + ___usmuluqq3 + ___usmuluhq3 + ___usmulusq3 + ___usmuludq3 + ___usmulutq3 + ___usmuluha3 + ___usmulusa3 + ___usmuluda3 + ___usmuluta3 + ___divqq3 + ___divhq3 + ___divsq3 + ___divdq3 + ___divtq3 + ___divha3 + ___divsa3 + ___divda3 + ___divta3 + ___udivuqq3 + ___udivuhq3 + ___udivusq3 + ___udivudq3 + ___udivutq3 + ___udivuha3 + ___udivusa3 + ___udivuda3 + ___udivuta3 + ___ssdivqq3 + ___ssdivhq3 + ___ssdivsq3 + ___ssdivdq3 + ___ssdivtq3 + ___ssdivha3 + ___ssdivsa3 + ___ssdivda3 + ___ssdivta3 + ___usdivuqq3 + ___usdivuhq3 + ___usdivusq3 + ___usdivudq3 + ___usdivutq3 + ___usdivuha3 + ___usdivusa3 + ___usdivuda3 + ___usdivuta3 + ___negqq2 + ___neghq2 + ___negsq2 + ___negdq2 + ___negtq2 + ___neguqq2 + ___neguhq2 + ___negusq2 + ___negudq2 + ___negutq2 + ___negha2 + ___negsa2 + ___negda2 + ___negta2 + ___neguha2 + ___negusa2 + ___neguda2 + ___neguta2 + ___ssnegqq2 + ___ssneghq2 + ___ssnegsq2 + ___ssnegdq2 + ___ssnegtq2 + ___ssnegha2 + ___ssnegsa2 + ___ssnegda2 + ___ssnegta2 + ___usneguqq2 + ___usneguhq2 + ___usnegusq2 + ___usnegudq2 + ___usnegutq2 + ___usneguha2 + ___usnegusa2 + ___usneguda2 + ___usneguta2 + ___ashlqq3 + ___ashlhq3 + ___ashlsq3 + ___ashldq3 + ___ashltq3 + ___ashluqq3 + ___ashluhq3 + ___ashlusq3 + ___ashludq3 + ___ashlutq3 + ___ashlha3 + ___ashlsa3 + ___ashlda3 + ___ashlta3 + ___ashluha3 + ___ashlusa3 + ___ashluda3 + ___ashluta3 + ___ashrqq3 + ___ashrhq3 + ___ashrsq3 + ___ashrdq3 + ___ashrtq3 + ___ashrha3 + ___ashrsa3 + ___ashrda3 + ___ashrta3 + ___lshruqq3 + ___lshruhq3 + ___lshrusq3 + ___lshrudq3 + ___lshrutq3 + ___lshruha3 + ___lshrusa3 + ___lshruda3 + ___lshruta3 + ___ssashlqq3 + ___ssashlhq3 + ___ssashlsq3 + ___ssashldq3 + ___ssashltq3 + ___ssashlha3 + ___ssashlsa3 + ___ssashlda3 + ___ssashlta3 + ___usashluqq3 + ___usashluhq3 + ___usashlusq3 + ___usashludq3 + ___usashlutq3 + ___usashluha3 + ___usashlusa3 + ___usashluda3 + ___usashluta3 + ___cmpqq2 + ___cmphq2 + ___cmpsq2 + ___cmpdq2 + ___cmptq2 + ___cmpuqq2 + ___cmpuhq2 + ___cmpusq2 + ___cmpudq2 + ___cmputq2 + ___cmpha2 + ___cmpsa2 + ___cmpda2 + ___cmpta2 + ___cmpuha2 + ___cmpusa2 + ___cmpuda2 + ___cmputa2 + ___fractqqhq2 + ___fractqqsq2 + ___fractqqdq2 + ___fractqqtq2 + ___fractqqha + ___fractqqsa + ___fractqqda + ___fractqqta + ___fractqquqq + ___fractqquhq + ___fractqqusq + ___fractqqudq + ___fractqqutq + ___fractqquha + ___fractqqusa + ___fractqquda + ___fractqquta + ___fractqqqi + ___fractqqhi + ___fractqqsi + ___fractqqdi + ___fractqqti + ___fractqqsf + ___fractqqdf + ___fracthqqq2 + ___fracthqsq2 + ___fracthqdq2 + ___fracthqtq2 + ___fracthqha + ___fracthqsa + ___fracthqda + ___fracthqta + ___fracthquqq + ___fracthquhq + ___fracthqusq + ___fracthqudq + ___fracthqutq + ___fracthquha + ___fracthqusa + ___fracthquda + ___fracthquta + ___fracthqqi + ___fracthqhi + ___fracthqsi + ___fracthqdi + ___fracthqti + ___fracthqsf + ___fracthqdf + ___fractsqqq2 + ___fractsqhq2 + ___fractsqdq2 + ___fractsqtq2 + ___fractsqha + ___fractsqsa + ___fractsqda + ___fractsqta + ___fractsquqq + ___fractsquhq + ___fractsqusq + ___fractsqudq + ___fractsqutq + ___fractsquha + ___fractsqusa + ___fractsquda + ___fractsquta + ___fractsqqi + ___fractsqhi + ___fractsqsi + ___fractsqdi + ___fractsqti + ___fractsqsf + ___fractsqdf + ___fractdqqq2 + ___fractdqhq2 + ___fractdqsq2 + ___fractdqtq2 + ___fractdqha + ___fractdqsa + ___fractdqda + ___fractdqta + ___fractdquqq + ___fractdquhq + ___fractdqusq + ___fractdqudq + ___fractdqutq + ___fractdquha + ___fractdqusa + ___fractdquda + ___fractdquta + ___fractdqqi + ___fractdqhi + ___fractdqsi + ___fractdqdi + ___fractdqti + ___fractdqsf + ___fractdqdf + ___fracttqqq2 + ___fracttqhq2 + ___fracttqsq2 + ___fracttqdq2 + ___fracttqha + ___fracttqsa + ___fracttqda + ___fracttqta + ___fracttquqq + ___fracttquhq + ___fracttqusq + ___fracttqudq + ___fracttqutq + ___fracttquha + ___fracttqusa + ___fracttquda + ___fracttquta + ___fracttqqi + ___fracttqhi + ___fracttqsi + ___fracttqdi + ___fracttqti + ___fracttqsf + ___fracttqdf + ___fracthaqq + ___fracthahq + ___fracthasq + ___fracthadq + ___fracthatq + ___fracthasa2 + ___fracthada2 + ___fracthata2 + ___fracthauqq + ___fracthauhq + ___fracthausq + ___fracthaudq + ___fracthautq + ___fracthauha + ___fracthausa + ___fracthauda + ___fracthauta + ___fracthaqi + ___fracthahi + ___fracthasi + ___fracthadi + ___fracthati + ___fracthasf + ___fracthadf + ___fractsaqq + ___fractsahq + ___fractsasq + ___fractsadq + ___fractsatq + ___fractsaha2 + ___fractsada2 + ___fractsata2 + ___fractsauqq + ___fractsauhq + ___fractsausq + ___fractsaudq + ___fractsautq + ___fractsauha + ___fractsausa + ___fractsauda + ___fractsauta + ___fractsaqi + ___fractsahi + ___fractsasi + ___fractsadi + ___fractsati + ___fractsasf + ___fractsadf + ___fractdaqq + ___fractdahq + ___fractdasq + ___fractdadq + ___fractdatq + ___fractdaha2 + ___fractdasa2 + ___fractdata2 + ___fractdauqq + ___fractdauhq + ___fractdausq + ___fractdaudq + ___fractdautq + ___fractdauha + ___fractdausa + ___fractdauda + ___fractdauta + ___fractdaqi + ___fractdahi + ___fractdasi + ___fractdadi + ___fractdati + ___fractdasf + ___fractdadf + ___fracttaqq + ___fracttahq + ___fracttasq + ___fracttadq + ___fracttatq + ___fracttaha2 + ___fracttasa2 + ___fracttada2 + ___fracttauqq + ___fracttauhq + ___fracttausq + ___fracttaudq + ___fracttautq + ___fracttauha + ___fracttausa + ___fracttauda + ___fracttauta + ___fracttaqi + ___fracttahi + ___fracttasi + ___fracttadi + ___fracttati + ___fracttasf + ___fracttadf + ___fractuqqqq + ___fractuqqhq + ___fractuqqsq + ___fractuqqdq + ___fractuqqtq + ___fractuqqha + ___fractuqqsa + ___fractuqqda + ___fractuqqta + ___fractuqquhq2 + ___fractuqqusq2 + ___fractuqqudq2 + ___fractuqqutq2 + ___fractuqquha + ___fractuqqusa + ___fractuqquda + ___fractuqquta + ___fractuqqqi + ___fractuqqhi + ___fractuqqsi + ___fractuqqdi + ___fractuqqti + ___fractuqqsf + ___fractuqqdf + ___fractuhqqq + ___fractuhqhq + ___fractuhqsq + ___fractuhqdq + ___fractuhqtq + ___fractuhqha + ___fractuhqsa + ___fractuhqda + ___fractuhqta + ___fractuhquqq2 + ___fractuhqusq2 + ___fractuhqudq2 + ___fractuhqutq2 + ___fractuhquha + ___fractuhqusa + ___fractuhquda + ___fractuhquta + ___fractuhqqi + ___fractuhqhi + ___fractuhqsi + ___fractuhqdi + ___fractuhqti + ___fractuhqsf + ___fractuhqdf + ___fractusqqq + ___fractusqhq + ___fractusqsq + ___fractusqdq + ___fractusqtq + ___fractusqha + ___fractusqsa + ___fractusqda + ___fractusqta + ___fractusquqq2 + ___fractusquhq2 + ___fractusqudq2 + ___fractusqutq2 + ___fractusquha + ___fractusqusa + ___fractusquda + ___fractusquta + ___fractusqqi + ___fractusqhi + ___fractusqsi + ___fractusqdi + ___fractusqti + ___fractusqsf + ___fractusqdf + ___fractudqqq + ___fractudqhq + ___fractudqsq + ___fractudqdq + ___fractudqtq + ___fractudqha + ___fractudqsa + ___fractudqda + ___fractudqta + ___fractudquqq2 + ___fractudquhq2 + ___fractudqusq2 + ___fractudqutq2 + ___fractudquha + ___fractudqusa + ___fractudquda + ___fractudquta + ___fractudqqi + ___fractudqhi + ___fractudqsi + ___fractudqdi + ___fractudqti + ___fractudqsf + ___fractudqdf + ___fractutqqq + ___fractutqhq + ___fractutqsq + ___fractutqdq + ___fractutqtq + ___fractutqha + ___fractutqsa + ___fractutqda + ___fractutqta + ___fractutquqq2 + ___fractutquhq2 + ___fractutqusq2 + ___fractutqudq2 + ___fractutquha + ___fractutqusa + ___fractutquda + ___fractutquta + ___fractutqqi + ___fractutqhi + ___fractutqsi + ___fractutqdi + ___fractutqti + ___fractutqsf + ___fractutqdf + ___fractuhaqq + ___fractuhahq + ___fractuhasq + ___fractuhadq + ___fractuhatq + ___fractuhaha + ___fractuhasa + ___fractuhada + ___fractuhata + ___fractuhauqq + ___fractuhauhq + ___fractuhausq + ___fractuhaudq + ___fractuhautq + ___fractuhausa2 + ___fractuhauda2 + ___fractuhauta2 + ___fractuhaqi + ___fractuhahi + ___fractuhasi + ___fractuhadi + ___fractuhati + ___fractuhasf + ___fractuhadf + ___fractusaqq + ___fractusahq + ___fractusasq + ___fractusadq + ___fractusatq + ___fractusaha + ___fractusasa + ___fractusada + ___fractusata + ___fractusauqq + ___fractusauhq + ___fractusausq + ___fractusaudq + ___fractusautq + ___fractusauha2 + ___fractusauda2 + ___fractusauta2 + ___fractusaqi + ___fractusahi + ___fractusasi + ___fractusadi + ___fractusati + ___fractusasf + ___fractusadf + ___fractudaqq + ___fractudahq + ___fractudasq + ___fractudadq + ___fractudatq + ___fractudaha + ___fractudasa + ___fractudada + ___fractudata + ___fractudauqq + ___fractudauhq + ___fractudausq + ___fractudaudq + ___fractudautq + ___fractudauha2 + ___fractudausa2 + ___fractudauta2 + ___fractudaqi + ___fractudahi + ___fractudasi + ___fractudadi + ___fractudati + ___fractudasf + ___fractudadf + ___fractutaqq + ___fractutahq + ___fractutasq + ___fractutadq + ___fractutatq + ___fractutaha + ___fractutasa + ___fractutada + ___fractutata + ___fractutauqq + ___fractutauhq + ___fractutausq + ___fractutaudq + ___fractutautq + ___fractutauha2 + ___fractutausa2 + ___fractutauda2 + ___fractutaqi + ___fractutahi + ___fractutasi + ___fractutadi + ___fractutati + ___fractutasf + ___fractutadf + ___fractqiqq + ___fractqihq + ___fractqisq + ___fractqidq + ___fractqitq + ___fractqiha + ___fractqisa + ___fractqida + ___fractqita + ___fractqiuqq + ___fractqiuhq + ___fractqiusq + ___fractqiudq + ___fractqiutq + ___fractqiuha + ___fractqiusa + ___fractqiuda + ___fractqiuta + ___fracthiqq + ___fracthihq + ___fracthisq + ___fracthidq + ___fracthitq + ___fracthiha + ___fracthisa + ___fracthida + ___fracthita + ___fracthiuqq + ___fracthiuhq + ___fracthiusq + ___fracthiudq + ___fracthiutq + ___fracthiuha + ___fracthiusa + ___fracthiuda + ___fracthiuta + ___fractsiqq + ___fractsihq + ___fractsisq + ___fractsidq + ___fractsitq + ___fractsiha + ___fractsisa + ___fractsida + ___fractsita + ___fractsiuqq + ___fractsiuhq + ___fractsiusq + ___fractsiudq + ___fractsiutq + ___fractsiuha + ___fractsiusa + ___fractsiuda + ___fractsiuta + ___fractdiqq + ___fractdihq + ___fractdisq + ___fractdidq + ___fractditq + ___fractdiha + ___fractdisa + ___fractdida + ___fractdita + ___fractdiuqq + ___fractdiuhq + ___fractdiusq + ___fractdiudq + ___fractdiutq + ___fractdiuha + ___fractdiusa + ___fractdiuda + ___fractdiuta + ___fracttiqq + ___fracttihq + ___fracttisq + ___fracttidq + ___fracttitq + ___fracttiha + ___fracttisa + ___fracttida + ___fracttita + ___fracttiuqq + ___fracttiuhq + ___fracttiusq + ___fracttiudq + ___fracttiutq + ___fracttiuha + ___fracttiusa + ___fracttiuda + ___fracttiuta + ___fractsfqq + ___fractsfhq + ___fractsfsq + ___fractsfdq + ___fractsftq + ___fractsfha + ___fractsfsa + ___fractsfda + ___fractsfta + ___fractsfuqq + ___fractsfuhq + ___fractsfusq + ___fractsfudq + ___fractsfutq + ___fractsfuha + ___fractsfusa + ___fractsfuda + ___fractsfuta + ___fractdfqq + ___fractdfhq + ___fractdfsq + ___fractdfdq + ___fractdftq + ___fractdfha + ___fractdfsa + ___fractdfda + ___fractdfta + ___fractdfuqq + ___fractdfuhq + ___fractdfusq + ___fractdfudq + ___fractdfutq + ___fractdfuha + ___fractdfusa + ___fractdfuda + ___fractdfuta + ___satfractqqhq2 + ___satfractqqsq2 + ___satfractqqdq2 + ___satfractqqtq2 + ___satfractqqha + ___satfractqqsa + ___satfractqqda + ___satfractqqta + ___satfractqquqq + ___satfractqquhq + ___satfractqqusq + ___satfractqqudq + ___satfractqqutq + ___satfractqquha + ___satfractqqusa + ___satfractqquda + ___satfractqquta + ___satfracthqqq2 + ___satfracthqsq2 + ___satfracthqdq2 + ___satfracthqtq2 + ___satfracthqha + ___satfracthqsa + ___satfracthqda + ___satfracthqta + ___satfracthquqq + ___satfracthquhq + ___satfracthqusq + ___satfracthqudq + ___satfracthqutq + ___satfracthquha + ___satfracthqusa + ___satfracthquda + ___satfracthquta + ___satfractsqqq2 + ___satfractsqhq2 + ___satfractsqdq2 + ___satfractsqtq2 + ___satfractsqha + ___satfractsqsa + ___satfractsqda + ___satfractsqta + ___satfractsquqq + ___satfractsquhq + ___satfractsqusq + ___satfractsqudq + ___satfractsqutq + ___satfractsquha + ___satfractsqusa + ___satfractsquda + ___satfractsquta + ___satfractdqqq2 + ___satfractdqhq2 + ___satfractdqsq2 + ___satfractdqtq2 + ___satfractdqha + ___satfractdqsa + ___satfractdqda + ___satfractdqta + ___satfractdquqq + ___satfractdquhq + ___satfractdqusq + ___satfractdqudq + ___satfractdqutq + ___satfractdquha + ___satfractdqusa + ___satfractdquda + ___satfractdquta + ___satfracttqqq2 + ___satfracttqhq2 + ___satfracttqsq2 + ___satfracttqdq2 + ___satfracttqha + ___satfracttqsa + ___satfracttqda + ___satfracttqta + ___satfracttquqq + ___satfracttquhq + ___satfracttqusq + ___satfracttqudq + ___satfracttqutq + ___satfracttquha + ___satfracttqusa + ___satfracttquda + ___satfracttquta + ___satfracthaqq + ___satfracthahq + ___satfracthasq + ___satfracthadq + ___satfracthatq + ___satfracthasa2 + ___satfracthada2 + ___satfracthata2 + ___satfracthauqq + ___satfracthauhq + ___satfracthausq + ___satfracthaudq + ___satfracthautq + ___satfracthauha + ___satfracthausa + ___satfracthauda + ___satfracthauta + ___satfractsaqq + ___satfractsahq + ___satfractsasq + ___satfractsadq + ___satfractsatq + ___satfractsaha2 + ___satfractsada2 + ___satfractsata2 + ___satfractsauqq + ___satfractsauhq + ___satfractsausq + ___satfractsaudq + ___satfractsautq + ___satfractsauha + ___satfractsausa + ___satfractsauda + ___satfractsauta + ___satfractdaqq + ___satfractdahq + ___satfractdasq + ___satfractdadq + ___satfractdatq + ___satfractdaha2 + ___satfractdasa2 + ___satfractdata2 + ___satfractdauqq + ___satfractdauhq + ___satfractdausq + ___satfractdaudq + ___satfractdautq + ___satfractdauha + ___satfractdausa + ___satfractdauda + ___satfractdauta + ___satfracttaqq + ___satfracttahq + ___satfracttasq + ___satfracttadq + ___satfracttatq + ___satfracttaha2 + ___satfracttasa2 + ___satfracttada2 + ___satfracttauqq + ___satfracttauhq + ___satfracttausq + ___satfracttaudq + ___satfracttautq + ___satfracttauha + ___satfracttausa + ___satfracttauda + ___satfracttauta + ___satfractuqqqq + ___satfractuqqhq + ___satfractuqqsq + ___satfractuqqdq + ___satfractuqqtq + ___satfractuqqha + ___satfractuqqsa + ___satfractuqqda + ___satfractuqqta + ___satfractuqquhq2 + ___satfractuqqusq2 + ___satfractuqqudq2 + ___satfractuqqutq2 + ___satfractuqquha + ___satfractuqqusa + ___satfractuqquda + ___satfractuqquta + ___satfractuhqqq + ___satfractuhqhq + ___satfractuhqsq + ___satfractuhqdq + ___satfractuhqtq + ___satfractuhqha + ___satfractuhqsa + ___satfractuhqda + ___satfractuhqta + ___satfractuhquqq2 + ___satfractuhqusq2 + ___satfractuhqudq2 + ___satfractuhqutq2 + ___satfractuhquha + ___satfractuhqusa + ___satfractuhquda + ___satfractuhquta + ___satfractusqqq + ___satfractusqhq + ___satfractusqsq + ___satfractusqdq + ___satfractusqtq + ___satfractusqha + ___satfractusqsa + ___satfractusqda + ___satfractusqta + ___satfractusquqq2 + ___satfractusquhq2 + ___satfractusqudq2 + ___satfractusqutq2 + ___satfractusquha + ___satfractusqusa + ___satfractusquda + ___satfractusquta + ___satfractudqqq + ___satfractudqhq + ___satfractudqsq + ___satfractudqdq + ___satfractudqtq + ___satfractudqha + ___satfractudqsa + ___satfractudqda + ___satfractudqta + ___satfractudquqq2 + ___satfractudquhq2 + ___satfractudqusq2 + ___satfractudqutq2 + ___satfractudquha + ___satfractudqusa + ___satfractudquda + ___satfractudquta + ___satfractutqqq + ___satfractutqhq + ___satfractutqsq + ___satfractutqdq + ___satfractutqtq + ___satfractutqha + ___satfractutqsa + ___satfractutqda + ___satfractutqta + ___satfractutquqq2 + ___satfractutquhq2 + ___satfractutqusq2 + ___satfractutqudq2 + ___satfractutquha + ___satfractutqusa + ___satfractutquda + ___satfractutquta + ___satfractuhaqq + ___satfractuhahq + ___satfractuhasq + ___satfractuhadq + ___satfractuhatq + ___satfractuhaha + ___satfractuhasa + ___satfractuhada + ___satfractuhata + ___satfractuhauqq + ___satfractuhauhq + ___satfractuhausq + ___satfractuhaudq + ___satfractuhautq + ___satfractuhausa2 + ___satfractuhauda2 + ___satfractuhauta2 + ___satfractusaqq + ___satfractusahq + ___satfractusasq + ___satfractusadq + ___satfractusatq + ___satfractusaha + ___satfractusasa + ___satfractusada + ___satfractusata + ___satfractusauqq + ___satfractusauhq + ___satfractusausq + ___satfractusaudq + ___satfractusautq + ___satfractusauha2 + ___satfractusauda2 + ___satfractusauta2 + ___satfractudaqq + ___satfractudahq + ___satfractudasq + ___satfractudadq + ___satfractudatq + ___satfractudaha + ___satfractudasa + ___satfractudada + ___satfractudata + ___satfractudauqq + ___satfractudauhq + ___satfractudausq + ___satfractudaudq + ___satfractudautq + ___satfractudauha2 + ___satfractudausa2 + ___satfractudauta2 + ___satfractutaqq + ___satfractutahq + ___satfractutasq + ___satfractutadq + ___satfractutatq + ___satfractutaha + ___satfractutasa + ___satfractutada + ___satfractutata + ___satfractutauqq + ___satfractutauhq + ___satfractutausq + ___satfractutaudq + ___satfractutautq + ___satfractutauha2 + ___satfractutausa2 + ___satfractutauda2 + ___satfractqiqq + ___satfractqihq + ___satfractqisq + ___satfractqidq + ___satfractqitq + ___satfractqiha + ___satfractqisa + ___satfractqida + ___satfractqita + ___satfractqiuqq + ___satfractqiuhq + ___satfractqiusq + ___satfractqiudq + ___satfractqiutq + ___satfractqiuha + ___satfractqiusa + ___satfractqiuda + ___satfractqiuta + ___satfracthiqq + ___satfracthihq + ___satfracthisq + ___satfracthidq + ___satfracthitq + ___satfracthiha + ___satfracthisa + ___satfracthida + ___satfracthita + ___satfracthiuqq + ___satfracthiuhq + ___satfracthiusq + ___satfracthiudq + ___satfracthiutq + ___satfracthiuha + ___satfracthiusa + ___satfracthiuda + ___satfracthiuta + ___satfractsiqq + ___satfractsihq + ___satfractsisq + ___satfractsidq + ___satfractsitq + ___satfractsiha + ___satfractsisa + ___satfractsida + ___satfractsita + ___satfractsiuqq + ___satfractsiuhq + ___satfractsiusq + ___satfractsiudq + ___satfractsiutq + ___satfractsiuha + ___satfractsiusa + ___satfractsiuda + ___satfractsiuta + ___satfractdiqq + ___satfractdihq + ___satfractdisq + ___satfractdidq + ___satfractditq + ___satfractdiha + ___satfractdisa + ___satfractdida + ___satfractdita + ___satfractdiuqq + ___satfractdiuhq + ___satfractdiusq + ___satfractdiudq + ___satfractdiutq + ___satfractdiuha + ___satfractdiusa + ___satfractdiuda + ___satfractdiuta + ___satfracttiqq + ___satfracttihq + ___satfracttisq + ___satfracttidq + ___satfracttitq + ___satfracttiha + ___satfracttisa + ___satfracttida + ___satfracttita + ___satfracttiuqq + ___satfracttiuhq + ___satfracttiusq + ___satfracttiudq + ___satfracttiutq + ___satfracttiuha + ___satfracttiusa + ___satfracttiuda + ___satfracttiuta + ___satfractsfqq + ___satfractsfhq + ___satfractsfsq + ___satfractsfdq + ___satfractsftq + ___satfractsfha + ___satfractsfsa + ___satfractsfda + ___satfractsfta + ___satfractsfuqq + ___satfractsfuhq + ___satfractsfusq + ___satfractsfudq + ___satfractsfutq + ___satfractsfuha + ___satfractsfusa + ___satfractsfuda + ___satfractsfuta + ___satfractdfqq + ___satfractdfhq + ___satfractdfsq + ___satfractdfdq + ___satfractdftq + ___satfractdfha + ___satfractdfsa + ___satfractdfda + ___satfractdfta + ___satfractdfuqq + ___satfractdfuhq + ___satfractdfusq + ___satfractdfudq + ___satfractdfutq + ___satfractdfuha + ___satfractdfusa + ___satfractdfuda + ___satfractdfuta + ___fractunsqqqi + ___fractunsqqhi + ___fractunsqqsi + ___fractunsqqdi + ___fractunsqqti + ___fractunshqqi + ___fractunshqhi + ___fractunshqsi + ___fractunshqdi + ___fractunshqti + ___fractunssqqi + ___fractunssqhi + ___fractunssqsi + ___fractunssqdi + ___fractunssqti + ___fractunsdqqi + ___fractunsdqhi + ___fractunsdqsi + ___fractunsdqdi + ___fractunsdqti + ___fractunstqqi + ___fractunstqhi + ___fractunstqsi + ___fractunstqdi + ___fractunstqti + ___fractunshaqi + ___fractunshahi + ___fractunshasi + ___fractunshadi + ___fractunshati + ___fractunssaqi + ___fractunssahi + ___fractunssasi + ___fractunssadi + ___fractunssati + ___fractunsdaqi + ___fractunsdahi + ___fractunsdasi + ___fractunsdadi + ___fractunsdati + ___fractunstaqi + ___fractunstahi + ___fractunstasi + ___fractunstadi + ___fractunstati + ___fractunsuqqqi + ___fractunsuqqhi + ___fractunsuqqsi + ___fractunsuqqdi + ___fractunsuqqti + ___fractunsuhqqi + ___fractunsuhqhi + ___fractunsuhqsi + ___fractunsuhqdi + ___fractunsuhqti + ___fractunsusqqi + ___fractunsusqhi + ___fractunsusqsi + ___fractunsusqdi + ___fractunsusqti + ___fractunsudqqi + ___fractunsudqhi + ___fractunsudqsi + ___fractunsudqdi + ___fractunsudqti + ___fractunsutqqi + ___fractunsutqhi + ___fractunsutqsi + ___fractunsutqdi + ___fractunsutqti + ___fractunsuhaqi + ___fractunsuhahi + ___fractunsuhasi + ___fractunsuhadi + ___fractunsuhati + ___fractunsusaqi + ___fractunsusahi + ___fractunsusasi + ___fractunsusadi + ___fractunsusati + ___fractunsudaqi + ___fractunsudahi + ___fractunsudasi + ___fractunsudadi + ___fractunsudati + ___fractunsutaqi + ___fractunsutahi + ___fractunsutasi + ___fractunsutadi + ___fractunsutati + ___fractunsqiqq + ___fractunsqihq + ___fractunsqisq + ___fractunsqidq + ___fractunsqitq + ___fractunsqiha + ___fractunsqisa + ___fractunsqida + ___fractunsqita + ___fractunsqiuqq + ___fractunsqiuhq + ___fractunsqiusq + ___fractunsqiudq + ___fractunsqiutq + ___fractunsqiuha + ___fractunsqiusa + ___fractunsqiuda + ___fractunsqiuta + ___fractunshiqq + ___fractunshihq + ___fractunshisq + ___fractunshidq + ___fractunshitq + ___fractunshiha + ___fractunshisa + ___fractunshida + ___fractunshita + ___fractunshiuqq + ___fractunshiuhq + ___fractunshiusq + ___fractunshiudq + ___fractunshiutq + ___fractunshiuha + ___fractunshiusa + ___fractunshiuda + ___fractunshiuta + ___fractunssiqq + ___fractunssihq + ___fractunssisq + ___fractunssidq + ___fractunssitq + ___fractunssiha + ___fractunssisa + ___fractunssida + ___fractunssita + ___fractunssiuqq + ___fractunssiuhq + ___fractunssiusq + ___fractunssiudq + ___fractunssiutq + ___fractunssiuha + ___fractunssiusa + ___fractunssiuda + ___fractunssiuta + ___fractunsdiqq + ___fractunsdihq + ___fractunsdisq + ___fractunsdidq + ___fractunsditq + ___fractunsdiha + ___fractunsdisa + ___fractunsdida + ___fractunsdita + ___fractunsdiuqq + ___fractunsdiuhq + ___fractunsdiusq + ___fractunsdiudq + ___fractunsdiutq + ___fractunsdiuha + ___fractunsdiusa + ___fractunsdiuda + ___fractunsdiuta + ___fractunstiqq + ___fractunstihq + ___fractunstisq + ___fractunstidq + ___fractunstitq + ___fractunstiha + ___fractunstisa + ___fractunstida + ___fractunstita + ___fractunstiuqq + ___fractunstiuhq + ___fractunstiusq + ___fractunstiudq + ___fractunstiutq + ___fractunstiuha + ___fractunstiusa + ___fractunstiuda + ___fractunstiuta + ___satfractunsqiqq + ___satfractunsqihq + ___satfractunsqisq + ___satfractunsqidq + ___satfractunsqitq + ___satfractunsqiha + ___satfractunsqisa + ___satfractunsqida + ___satfractunsqita + ___satfractunsqiuqq + ___satfractunsqiuhq + ___satfractunsqiusq + ___satfractunsqiudq + ___satfractunsqiutq + ___satfractunsqiuha + ___satfractunsqiusa + ___satfractunsqiuda + ___satfractunsqiuta + ___satfractunshiqq + ___satfractunshihq + ___satfractunshisq + ___satfractunshidq + ___satfractunshitq + ___satfractunshiha + ___satfractunshisa + ___satfractunshida + ___satfractunshita + ___satfractunshiuqq + ___satfractunshiuhq + ___satfractunshiusq + ___satfractunshiudq + ___satfractunshiutq + ___satfractunshiuha + ___satfractunshiusa + ___satfractunshiuda + ___satfractunshiuta + ___satfractunssiqq + ___satfractunssihq + ___satfractunssisq + ___satfractunssidq + ___satfractunssitq + ___satfractunssiha + ___satfractunssisa + ___satfractunssida + ___satfractunssita + ___satfractunssiuqq + ___satfractunssiuhq + ___satfractunssiusq + ___satfractunssiudq + ___satfractunssiutq + ___satfractunssiuha + ___satfractunssiusa + ___satfractunssiuda + ___satfractunssiuta + ___satfractunsdiqq + ___satfractunsdihq + ___satfractunsdisq + ___satfractunsdidq + ___satfractunsditq + ___satfractunsdiha + ___satfractunsdisa + ___satfractunsdida + ___satfractunsdita + ___satfractunsdiuqq + ___satfractunsdiuhq + ___satfractunsdiusq + ___satfractunsdiudq + ___satfractunsdiutq + ___satfractunsdiuha + ___satfractunsdiusa + ___satfractunsdiuda + ___satfractunsdiuta + ___satfractunstiqq + ___satfractunstihq + ___satfractunstisq + ___satfractunstidq + ___satfractunstitq + ___satfractunstiha + ___satfractunstisa + ___satfractunstida + ___satfractunstita + ___satfractunstiuqq + ___satfractunstiuhq + ___satfractunstiusq + ___satfractunstiudq + ___satfractunstiutq + ___satfractunstiuha + ___satfractunstiusa + ___satfractunstiuda + ___satfractunstiuta +} + +%inherit GCC_4.4.0 GCC_4.3.0 +GCC_4.4.0 { + ___sync_fetch_and_add_1 + ___sync_fetch_and_sub_1 + ___sync_fetch_and_or_1 + ___sync_fetch_and_and_1 + ___sync_fetch_and_xor_1 + ___sync_fetch_and_nand_1 + ___sync_add_and_fetch_1 + ___sync_sub_and_fetch_1 + ___sync_or_and_fetch_1 + ___sync_and_and_fetch_1 + ___sync_xor_and_fetch_1 + ___sync_nand_and_fetch_1 + ___sync_bool_compare_and_swap_1 + ___sync_val_compare_and_swap_1 + ___sync_lock_test_and_set_1 + + ___sync_fetch_and_add_2 + ___sync_fetch_and_sub_2 + ___sync_fetch_and_or_2 + ___sync_fetch_and_and_2 + ___sync_fetch_and_xor_2 + ___sync_fetch_and_nand_2 + ___sync_add_and_fetch_2 + ___sync_sub_and_fetch_2 + ___sync_or_and_fetch_2 + ___sync_and_and_fetch_2 + ___sync_xor_and_fetch_2 + ___sync_nand_and_fetch_2 + ___sync_bool_compare_and_swap_2 + ___sync_val_compare_and_swap_2 + ___sync_lock_test_and_set_2 + + ___sync_fetch_and_add_4 + ___sync_fetch_and_sub_4 + ___sync_fetch_and_or_4 + ___sync_fetch_and_and_4 + ___sync_fetch_and_xor_4 + ___sync_fetch_and_nand_4 + ___sync_add_and_fetch_4 + ___sync_sub_and_fetch_4 + ___sync_or_and_fetch_4 + ___sync_and_and_fetch_4 + ___sync_xor_and_fetch_4 + ___sync_nand_and_fetch_4 + ___sync_bool_compare_and_swap_4 + ___sync_val_compare_and_swap_4 + ___sync_lock_test_and_set_4 + + ___sync_fetch_and_add_8 + ___sync_fetch_and_sub_8 + ___sync_fetch_and_or_8 + ___sync_fetch_and_and_8 + ___sync_fetch_and_xor_8 + ___sync_fetch_and_nand_8 + ___sync_add_and_fetch_8 + ___sync_sub_and_fetch_8 + ___sync_or_and_fetch_8 + ___sync_and_and_fetch_8 + ___sync_xor_and_fetch_8 + ___sync_nand_and_fetch_8 + ___sync_bool_compare_and_swap_8 + ___sync_val_compare_and_swap_8 + ___sync_lock_test_and_set_8 + + ___sync_fetch_and_add_16 + ___sync_fetch_and_sub_16 + ___sync_fetch_and_or_16 + ___sync_fetch_and_and_16 + ___sync_fetch_and_xor_16 + ___sync_fetch_and_nand_16 + ___sync_add_and_fetch_16 + ___sync_sub_and_fetch_16 + ___sync_or_and_fetch_16 + ___sync_and_and_fetch_16 + ___sync_xor_and_fetch_16 + ___sync_nand_and_fetch_16 + ___sync_bool_compare_and_swap_16 + ___sync_val_compare_and_swap_16 + ___sync_lock_test_and_set_16 + + ___sync_synchronize +} + +%inherit GCC_4.5.0 GCC_4.4.0 +GCC_4.5.0 { + ___unordxf2 + ___unordtf2 +} diff --git a/gcc-4.9/libgcc/config/bfin/linux-unwind.h b/gcc-4.9/libgcc/config/bfin/linux-unwind.h new file mode 100644 index 000000000..dc58f0a81 --- /dev/null +++ b/gcc-4.9/libgcc/config/bfin/linux-unwind.h @@ -0,0 +1,164 @@ +/* DWARF2 EH unwinding support for Blackfin. + Copyright (C) 2007-2014 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +/* Do code reading to identify a signal frame, and set the frame + state data appropriately. See unwind-dw2.c for the structs. + Don't use this at all if inhibit_libc is used. */ + +#ifndef inhibit_libc + +#include <signal.h> +#include <sys/ucontext.h> + +#define MD_FALLBACK_FRAME_STATE_FOR bfin_fallback_frame_state + +static _Unwind_Reason_Code +bfin_fallback_frame_state (struct _Unwind_Context *context, + _Unwind_FrameState *fs) +{ + unsigned char *pc = context->ra; + struct sigcontext *sc; + long new_cfa; + + /* P0=__NR_rt_sigreturn (X); EXCPT 0x0; */ + if (*(unsigned short *)pc == 0xe128 + && *(unsigned short *)(pc + 2) == 0x00ad + && *(unsigned short *)(pc + 4) == 0x00a0) + { + struct rt_sigframe { + int sig; + siginfo_t *pinfo; + void *puc; + char retcode[8]; + siginfo_t info; + struct ucontext uc; + } *rt_ = context->cfa; + + /* The void * cast is necessary to avoid an aliasing warning. + The aliasing warning is correct, but should not be a problem + because it does not alias anything. */ + sc = (struct sigcontext *)(void *)&rt_->uc.uc_mcontext.gregs; + } + else + return _URC_END_OF_STACK; + + new_cfa = sc->sc_usp; + fs->regs.cfa_how = CFA_REG_OFFSET; + fs->regs.cfa_reg = 14; + fs->regs.cfa_offset = new_cfa - (long) context->cfa; + + fs->regs.reg[0].how = REG_SAVED_OFFSET; + fs->regs.reg[0].loc.offset = (long)&sc->sc_r0 - new_cfa; + fs->regs.reg[1].how = REG_SAVED_OFFSET; + fs->regs.reg[1].loc.offset = (long)&sc->sc_r1 - new_cfa; + fs->regs.reg[2].how = REG_SAVED_OFFSET; + fs->regs.reg[2].loc.offset = (long)&sc->sc_r2 - new_cfa; + fs->regs.reg[3].how = REG_SAVED_OFFSET; + fs->regs.reg[3].loc.offset = (long)&sc->sc_r3 - new_cfa; + fs->regs.reg[4].how = REG_SAVED_OFFSET; + fs->regs.reg[4].loc.offset = (long)&sc->sc_r4 - new_cfa; + fs->regs.reg[5].how = REG_SAVED_OFFSET; + fs->regs.reg[5].loc.offset = (long)&sc->sc_r5 - new_cfa; + fs->regs.reg[6].how = REG_SAVED_OFFSET; + fs->regs.reg[6].loc.offset = (long)&sc->sc_r6 - new_cfa; + fs->regs.reg[7].how = REG_SAVED_OFFSET; + fs->regs.reg[7].loc.offset = (long)&sc->sc_r7 - new_cfa; + fs->regs.reg[8].how = REG_SAVED_OFFSET; + fs->regs.reg[8].loc.offset = (long)&sc->sc_p0 - new_cfa; + fs->regs.reg[9].how = REG_SAVED_OFFSET; + fs->regs.reg[9].loc.offset = (long)&sc->sc_p1 - new_cfa; + fs->regs.reg[10].how = REG_SAVED_OFFSET; + fs->regs.reg[10].loc.offset = (long)&sc->sc_p2 - new_cfa; + fs->regs.reg[11].how = REG_SAVED_OFFSET; + fs->regs.reg[11].loc.offset = (long)&sc->sc_p3 - new_cfa; + fs->regs.reg[12].how = REG_SAVED_OFFSET; + fs->regs.reg[12].loc.offset = (long)&sc->sc_p4 - new_cfa; + fs->regs.reg[13].how = REG_SAVED_OFFSET; + fs->regs.reg[13].loc.offset = (long)&sc->sc_p5 - new_cfa; + + fs->regs.reg[15].how = REG_SAVED_OFFSET; + fs->regs.reg[15].loc.offset = (long)&sc->sc_fp - new_cfa; + fs->regs.reg[16].how = REG_SAVED_OFFSET; + fs->regs.reg[16].loc.offset = (long)&sc->sc_i0 - new_cfa; + fs->regs.reg[17].how = REG_SAVED_OFFSET; + fs->regs.reg[17].loc.offset = (long)&sc->sc_i1 - new_cfa; + fs->regs.reg[18].how = REG_SAVED_OFFSET; + fs->regs.reg[18].loc.offset = (long)&sc->sc_i2 - new_cfa; + fs->regs.reg[19].how = REG_SAVED_OFFSET; + fs->regs.reg[19].loc.offset = (long)&sc->sc_i3 - new_cfa; + fs->regs.reg[20].how = REG_SAVED_OFFSET; + fs->regs.reg[20].loc.offset = (long)&sc->sc_b0 - new_cfa; + fs->regs.reg[21].how = REG_SAVED_OFFSET; + fs->regs.reg[21].loc.offset = (long)&sc->sc_b1 - new_cfa; + fs->regs.reg[22].how = REG_SAVED_OFFSET; + fs->regs.reg[22].loc.offset = (long)&sc->sc_b2 - new_cfa; + fs->regs.reg[23].how = REG_SAVED_OFFSET; + fs->regs.reg[23].loc.offset = (long)&sc->sc_b3 - new_cfa; + fs->regs.reg[24].how = REG_SAVED_OFFSET; + fs->regs.reg[24].loc.offset = (long)&sc->sc_l0 - new_cfa; + fs->regs.reg[25].how = REG_SAVED_OFFSET; + fs->regs.reg[25].loc.offset = (long)&sc->sc_l1 - new_cfa; + fs->regs.reg[26].how = REG_SAVED_OFFSET; + fs->regs.reg[26].loc.offset = (long)&sc->sc_l2 - new_cfa; + fs->regs.reg[27].how = REG_SAVED_OFFSET; + fs->regs.reg[27].loc.offset = (long)&sc->sc_l3 - new_cfa; + fs->regs.reg[28].how = REG_SAVED_OFFSET; + fs->regs.reg[28].loc.offset = (long)&sc->sc_m0 - new_cfa; + fs->regs.reg[29].how = REG_SAVED_OFFSET; + fs->regs.reg[29].loc.offset = (long)&sc->sc_m1 - new_cfa; + fs->regs.reg[30].how = REG_SAVED_OFFSET; + fs->regs.reg[30].loc.offset = (long)&sc->sc_m2 - new_cfa; + fs->regs.reg[31].how = REG_SAVED_OFFSET; + fs->regs.reg[31].loc.offset = (long)&sc->sc_m3 - new_cfa; + /* FIXME: Handle A0, A1, CC. */ + fs->regs.reg[35].how = REG_SAVED_OFFSET; + fs->regs.reg[35].loc.offset = (long)&sc->sc_rets - new_cfa; + fs->regs.reg[36].how = REG_SAVED_OFFSET; + fs->regs.reg[36].loc.offset = (long)&sc->sc_pc - new_cfa; + fs->regs.reg[37].how = REG_SAVED_OFFSET; + fs->regs.reg[37].loc.offset = (long)&sc->sc_retx - new_cfa; + + fs->regs.reg[40].how = REG_SAVED_OFFSET; + fs->regs.reg[40].loc.offset = (long)&sc->sc_astat - new_cfa; + fs->regs.reg[41].how = REG_SAVED_OFFSET; + fs->regs.reg[41].loc.offset = (long)&sc->sc_seqstat - new_cfa; + + fs->regs.reg[44].how = REG_SAVED_OFFSET; + fs->regs.reg[44].loc.offset = (long)&sc->sc_lt0 - new_cfa; + fs->regs.reg[45].how = REG_SAVED_OFFSET; + fs->regs.reg[45].loc.offset = (long)&sc->sc_lt1 - new_cfa; + fs->regs.reg[46].how = REG_SAVED_OFFSET; + fs->regs.reg[46].loc.offset = (long)&sc->sc_lc0 - new_cfa; + fs->regs.reg[47].how = REG_SAVED_OFFSET; + fs->regs.reg[47].loc.offset = (long)&sc->sc_lc1 - new_cfa; + fs->regs.reg[48].how = REG_SAVED_OFFSET; + fs->regs.reg[48].loc.offset = (long)&sc->sc_lb0 - new_cfa; + fs->regs.reg[49].how = REG_SAVED_OFFSET; + fs->regs.reg[49].loc.offset = (long)&sc->sc_lb1 - new_cfa; + fs->retaddr_column = 35; + + return _URC_NO_REASON; +} + +#endif /* ifdef inhibit_libc */ diff --git a/gcc-4.9/libgcc/config/bfin/t-bfin b/gcc-4.9/libgcc/config/bfin/t-bfin new file mode 100644 index 000000000..bc2b088ff --- /dev/null +++ b/gcc-4.9/libgcc/config/bfin/t-bfin @@ -0,0 +1,3 @@ +LIB1ASMSRC = bfin/lib1funcs.S +LIB1ASMFUNCS = _divsi3 _udivsi3 _umodsi3 _modsi3 _muldi3 _umulsi3_highpart +LIB1ASMFUNCS += _smulsi3_highpart diff --git a/gcc-4.9/libgcc/config/bfin/t-crtlibid b/gcc-4.9/libgcc/config/bfin/t-crtlibid new file mode 100644 index 000000000..b0c93e71e --- /dev/null +++ b/gcc-4.9/libgcc/config/bfin/t-crtlibid @@ -0,0 +1,3 @@ +# Assemble startup files. +crtlibid.o: $(srcdir)/config/bfin/crtlibid.S + $(gcc_compile) -c -x assembler-with-cpp $< diff --git a/gcc-4.9/libgcc/config/bfin/t-crtstuff b/gcc-4.9/libgcc/config/bfin/t-crtstuff new file mode 100644 index 000000000..eee12eb69 --- /dev/null +++ b/gcc-4.9/libgcc/config/bfin/t-crtstuff @@ -0,0 +1 @@ +CRTSTUFF_T_CFLAGS = $(PICFLAG) diff --git a/gcc-4.9/libgcc/config/bfin/t-linux b/gcc-4.9/libgcc/config/bfin/t-linux new file mode 100644 index 000000000..1c42e482b --- /dev/null +++ b/gcc-4.9/libgcc/config/bfin/t-linux @@ -0,0 +1 @@ +SHLIB_MAPFILES = $(srcdir)/config/bfin/libgcc-glibc.ver |